agent-workbench 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -8
- package/dist/server.js +2153 -527
- package/dist/web/assets/de-CmDQFS83.js +1 -0
- package/dist/web/assets/es-kfFlJ6C6.js +1 -0
- package/dist/web/assets/fr-CgQRflYh.js +1 -0
- package/dist/web/assets/{highlight-BXBl9DQv.js → highlight-DsNwA50i.js} +1 -1
- package/dist/web/assets/index-mQpsIj-O.js +149 -0
- package/dist/web/assets/index-vJBDG99a.css +32 -0
- package/dist/web/assets/ja-BPlbe60x.js +1 -0
- package/dist/web/assets/ko-DeqZlJbl.js +1 -0
- package/dist/web/assets/pt-BR-Czz2tUjz.js +1 -0
- package/dist/web/assets/ru-Dxhm5BY3.js +1 -0
- package/dist/web/assets/zh-CN-CldKBtQb.js +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +3 -1
- package/dist/web/assets/de-B1W5R6hb.js +0 -1
- package/dist/web/assets/es-7g4wzPIf.js +0 -1
- package/dist/web/assets/fr-DaY5ttUk.js +0 -1
- package/dist/web/assets/index-Bk0CUikM.css +0 -32
- package/dist/web/assets/index-D8_sieMX.js +0 -139
- package/dist/web/assets/ja-C1rp47bG.js +0 -1
- package/dist/web/assets/ko-D0Bwy-Ri.js +0 -1
- package/dist/web/assets/pt-BR-BVIxhwAC.js +0 -1
- package/dist/web/assets/ru-CCRfyRi5.js +0 -1
- package/dist/web/assets/zh-CN-CaghDQ5n.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={"agent.composer.imagesRefused":"Cette CLI n'accepte pas d'images depuis la zone de saisie.","agent.continue.discovering":"La session n'est pas encore dans l'historique : elle y apparaît avec le premier message.","agent.continue.noConversation":"Cet onglet n'a pas encore de conversation à continuer.","agent.continue.noMessages":"Cette conversation n'a pas encore de messages à continuer.","agent.continue.title":"Continuer cette conversation avec une autre CLI","agent.dot.idle":"CLI prête, rien en cours","agent.dot.noStatus":"Cette CLI ne publie pas son état","agent.dot.open":"CLI ouverte","agent.dot.statusLineOnly":"Cette CLI ne publie son état qu'avec la status line configurée","agent.dot.statusLinePending":"La status line n'a pas encore publié l'état de cette conversation","agent.handoff.notice":"Suite d'une conversation {{label}} : l'agent repart d'une transcription {{turns}}, et non du contexte qu'il avait. Les résultats des outils sont tronqués et les images ne sont pas transmises.","agent.handoff.prefill.noDelivery":"Le message est dans la zone de saisie : vérifiez-le et envoyez-le avec Enter.","agent.handoff.prefill.notReady":"La CLI n'était pas prête à temps : le message est dans la zone de saisie, à vous de l'envoyer.","agent.handoff.prefill.sendFailed":"L'envoi automatique a échoué : le message est dans la zone de saisie, à vous de l'envoyer.","agent.handoff.sending":"Envoi de la continuation…","agent.handoff.tabLabel":"Suite : {{title}}","agent.handoff.tabLabelNoTitle":"Suite","agent.handoff.turns.all_one":"de {{count}} tour","agent.handoff.turns.all_other":"des {{count}} tours","agent.handoff.turns.lastManyOfMore_one":"des {{included}} derniers tours sur plus de {{count}}","agent.handoff.turns.lastManyOfMore_other":"des {{included}} derniers tours sur plus de {{count}}","agent.handoff.turns.lastMany_one":"des {{included}} derniers tours sur {{count}}","agent.handoff.turns.lastMany_other":"des {{included}} derniers tours sur {{count}}","agent.handoff.turns.lastOne":"du dernier tour sur {{total}}","agent.handoff.turns.lastOneOfMore":"du dernier tour sur plus de {{total}}","agent.handoff.turns.single":"de l'unique tour","agent.meter.idle.noFile":"La session n'a encore mesuré aucune réponse. Le contexte ne part pas de zéro : le prompt système, les outils et le fichier d'instructions du projet en occupent déjà une partie, et le chiffre réel apparaît avec la première réponse.","agent.meter.idle.statusLine":"La status line n'a encore publié aucun token pour cette conversation. Le contexte ne part pas de zéro : le chiffre apparaît quand la CLI exécute la status line, avec le premier message ou à la reprise de la session.","agent.meter.idle.withFile":"La session n'a encore mesuré aucune réponse. Le contexte ne part pas de zéro : le prompt système, les outils et {{file}} en occupent déjà une partie, et le chiffre réel apparaît avec la première réponse.","agent.meter.origin.catalog":"limite issue du catalogue de modèles de la CLI","agent.meter.origin.estimated":"limite déduite des tokens mesurés","agent.meter.setup.disabled":"Cette CLI ne publie ses tokens que via sa status line, et celle de l'application est désactivée. « Configurer » explique comment faire.","agent.meter.setup.missing":"Cette CLI ne publie ses tokens que via sa status line, et celle-ci n'est pas encore configurée. « Configurer » explique comment faire.","agent.meter.setup.otherCommand":"Cette CLI ne publie ses tokens que via sa status line, et vous avez configuré une autre status line. « Configurer » explique comment faire.","agent.meter.setup.unreadable":"Cette CLI ne publie ses tokens que via sa status line, et son settings.json n'a pas pu être lu. « Configurer » explique comment faire.","agent.mode.blocked":"Une confirmation est en attente dans la CLI : changer de mode maintenant l'approuverait. Répondez-y dans l'onglet CLI.","agent.mode.title":"Mode {{mode}} : {{hint}}. Le changer envoie {{key}} à l'onglet CLI","agent.mode.titleBlind":"{{title}}. Sans les données de la status line, l'application ne peut pas savoir si une confirmation est en attente ; changer de mode à ce moment-là l'approuve","agent.note.empty":"La note est vide","agent.note.needsTab":"Ouvrez d'abord un onglet : la conversation s'ouvre dans son projet","agent.note.noReadySignal":"La CLI de cet onglet n'indique pas quand elle est prête : la note ne peut donc pas être envoyée","agent.note.send":"Envoyer la note à l'agent dans une nouvelle conversation ouverte dans {{cwd}}","agent.openBlocked":"Ouverture d'un onglet dans ce projet…","agent.openTool.noLabel":"La CLI a un outil sans résultat : une approbation est peut-être en attente. Répondez-y dans l'onglet CLI.","agent.openTool.withLabel":"{{label}} a un outil sans résultat : une approbation est peut-être en attente. Répondez-y dans l'onglet CLI.","agent.queueReturned.noLabel":"La CLI n'a pas eu le temps de transmettre le message envoyé pendant son travail : l'interruption est arrivée avant. Il est de retour dans la zone de saisie, non envoyé.","agent.queueReturned.withLabel":"{{label}} n'a pas eu le temps de transmettre le message envoyé pendant son travail : l'interruption est arrivée avant. Il est de retour dans la zone de saisie, non envoyé.","agent.serverClosed.noLabel":"Le serveur de la CLI s'est arrêté et cet onglet a perdu sa connexion.","agent.serverClosed.relaunch":"Relancer","agent.serverClosed.relaunching":"Relance en cours…","agent.serverClosed.withLabel":"Le serveur {{label}} s'est arrêté et cet onglet a perdu sa connexion.","agent.session.cliMissing":"{{label}} n'est pas installé.","agent.shortcuts.antigravity.answerPermission":"Répondre à une demande d'autorisation : 1 l'accepte, 4 la refuse","agent.shortcuts.antigravity.cycleMode":"Changer de mode : accept-edits, plan et par défaut (quand le terminal a le focus)","agent.shortcuts.antigravity.help":"Afficher les raccourcis de la CLI","agent.shortcuts.antigravity.interrupt":"Interrompre le tour en cours, ou annuler une demande d'autorisation","agent.shortcuts.claudeCode.cancel":"Annuler","agent.shortcuts.claudeCode.cycleMode":"Changer le mode de permissions (quand le terminal a le focus)","agent.shortcuts.claudeCode.fullOutput":"Afficher la sortie complète","agent.shortcuts.claudeCode.pasteImage":"Coller une image depuis le presse-papiers","agent.shortcuts.claudeCode.pasteText":"Coller du texte depuis le presse-papiers","agent.shortcuts.claudeCode.rewind":"Ouvrir le menu rewind","agent.shortcuts.claudeCode.searchHistory":"Rechercher dans l'historique des commandes","agent.shortcuts.codex.cycleMode":"Basculer entre le mode par défaut et Plan (quand le terminal a le focus)","agent.shortcuts.codex.editPrevious":"Modifier un message précédent","agent.shortcuts.codex.effort":"Baisser / augmenter l'effort","agent.shortcuts.codex.externalEditor":"Modifier le message dans l'éditeur externe","agent.shortcuts.codex.interruptOrExit":"Interrompre, ou quitter s'il n'y a pas de tour en cours","agent.shortcuts.codex.interruptTurn":"Interrompre le tour en cours","agent.shortcuts.codex.mention":"Mentionner un fichier, une skill ou un plugin","agent.shortcuts.codex.note":"Dans Codex, Alt + ← / → changent d'agent, mais ici l'application les utilise pour changer d'onglet.","agent.shortcuts.codex.queue":"Mettre le message en file d'attente pendant que l'agent travaille","agent.shortcuts.codex.searchHistory":"Rechercher dans l'historique des messages","agent.shortcuts.codex.transcript":"Afficher la transcription","agent.shortcuts.commands":"Commandes","agent.shortcuts.composer.newline":"Saut de ligne sans envoyer","agent.shortcuts.composer.pasteText":"Coller du texte","agent.shortcuts.composer.pasteWithImages":"Coller du texte ou une image (elle apparaît en miniature)","agent.shortcuts.composer.send":"Envoyer le message","agent.shortcuts.interruptCli":"Interrompre ce que fait la CLI","agent.shortcuts.leaderThen":"Ctrl + X, puis {{key}}","agent.shortcuts.opencode.clearInput":"Effacer la saisie ; deux fois, quitter","agent.shortcuts.opencode.commandList":"Liste des commandes, avec les variantes du modèle","agent.shortcuts.opencode.cycleAgent":"Changer d'agent, build ou plan (quand le terminal a le focus)","agent.shortcuts.opencode.interrupt":"Interrompre (le premier appui ne fait qu'avertir)","agent.shortcuts.opencode.model":"Choisir un modèle","agent.shortcuts.opencode.newSession":"Nouvelle session : l'onglet reste lié à la session avec laquelle il a été ouvert","agent.shortcuts.opencode.newline":"Saut de ligne","agent.shortcuts.opencode.note":"Dans OpenCode, Ctrl + T change la variante du modèle, mais le navigateur se réserve ce raccourci : la commande est accessible via Ctrl + P.","agent.shortcuts.opencode.paste":"Coller","agent.shortcuts.pi.bash":"Exécuter une commande shell","agent.shortcuts.pi.clearOrExit":"Effacer l'éditeur ; deux fois, quitter","agent.shortcuts.pi.cycleThinking":"Changer le niveau de réflexion (quand le terminal a le focus)","agent.shortcuts.pi.model":"Choisir un modèle","agent.shortcuts.pi.newline":"Saut de ligne","agent.shortcuts.pi.nextModel":"Passer au modèle suivant","agent.shortcuts.pi.toolOutput":"Replier ou déplier la sortie des outils","agent.shortcuts.pi.tree":"Avec l'éditeur vide : ouvrir l'arbre de la session","agent.statusLine.noFragment":"Le dossier de l'application contient des caractères que la console interprète (comme & % ! ou des guillemets) et, avec eux, aucune ligne ne peut être exécutée par la CLI : sous Windows, elle exécute la ligne avec cmd /c et aucun guillemet ne passe. Placer le dossier de configuration dans un chemin sans ces caractères résout le problème.","agent.statusLine.state.active":"Configurée","agent.statusLine.state.disabled":"Désactivée (enabled: false)","agent.statusLine.state.missing":"Non configurée","agent.statusLine.state.otherCommand":"Vous avez une autre status line : coller celle-ci la remplace","agent.statusLine.state.unreadable":"Impossible de lire settings.json","agent.thread.discovering":"La session apparaît dans l'historique avec le premier message.","agent.thread.noTranscript":"Cette conversation provient d'une version de la CLI qui ne laissait pas de transcription lisible. Elle peut être reprise depuis la barre latérale, mais il n'y a rien à afficher ici.","agent.waiting.answer":"La CLI attend une réponse de votre part.","agent.waiting.permission":"La CLI attend que vous autorisiez un outil.","agent.waiting.question":"L'agent vous a posé une question : répondez-y dans le fil.","agentMenu.chooseTitle":"Choisir avec quelle CLI ouvrir","agentMenu.openWith":"Ouvrir avec","agentMenu.titleWithAgent":"{{title}} — avec {{label}}","app.banner.revoked":"L'accès de cet appareil a été révoqué, ou l'accès à distance a été désactivé. Pour revenir, associez-le de nouveau depuis l'ordinateur où tourne Agent Workbench.","app.divider.consoleHeight":"Faites glisser pour modifier la hauteur de la console","app.divider.width":"Faites glisser pour modifier la largeur","app.empty.hint":"Choisissez un projet à gauche, ou ouvrez une session de l'historique pour la reprendre.","app.empty.newSession":"Nouvelle session dans {{cwd}}","app.empty.noTabs":"Aucun onglet ouvert.","app.empty.opening":"Ouverture…","app.header.cliVersion":"CLI {{version}}","app.header.remoteAccess":"Accès à distance","app.header.remoteBadge":"À distance","app.header.remoteBadgeTitle":"Cette fenêtre est connectée depuis un appareil associé. La gestion de l'accès à distance, ainsi que tout ce qui ouvre un fichier avec les applications de l'ordinateur où tourne Agent Workbench, n'est disponible que sur cet ordinateur.","app.header.shortcuts":"Afficher les raccourcis clavier","app.markerNotice":"Ce serveur a été lancé depuis une session de CLI. La variable <code>{{variable}}</code> a été retirée de l'environnement des onglets : elle désactive l'enregistrement de l'historique, et sans lui il n'y aurait ni conversation ni jauge de contexte. Le reste de l'environnement n'est pas modifié.","app.panel.name":"Panneau","app.panel.show":"Afficher le panneau de droite (Alt+P)","app.picker.project.confirm":"Ouvrir ici","app.picker.project.confirmTitle":"Ouvrir un onglet d'agent dans {{path}}","app.picker.project.title":"Nouveau projet","app.picker.vault.confirm":"Utiliser ce dossier","app.picker.vault.confirmTitle":"Déplacer la sauvegarde vers {{path}}. Le dossier actuel reste intact","app.picker.vault.title":"Dossier de la sauvegarde","app.sidebar.name":"Projets","app.sidebar.show":"Afficher la liste des projets","app.status.connecting":"Connexion en cours","app.status.failed":"Pas de connexion","app.status.open":"Connecté","app.status.reconnecting":"Reconnexion en cours","app.status.revoked":"Accès révoqué","archive.allBlocked_one":"Sa seule conversation a un onglet ouvert. Fermez-le d'abord.","archive.allBlocked_other":"Ses {{count}} conversations ont un onglet ouvert. Fermez-les d'abord.","archive.blockedStays_one":"Une autre a un onglet ouvert et ne sera pas archivée.","archive.blockedStays_other":"{{count}} autres ont un onglet ouvert et ne seront pas archivées.","archive.confirm_one":"Archiver {{count}} conversation ?","archive.confirm_other":"Archiver les {{count}} conversations ?","archive.withBlocked":"{{confirm}} {{blocked}}","common.cancel":"Annuler","common.close":"Fermer","common.closeEsc":"Fermer (Esc)","common.copied":"Copié","common.copyCode":"Copier le code","common.dismissNotice":"Fermer l'avis","common.gotIt":"Compris","composer.attach":"Joindre un fichier","composer.attachTitle":"Joindre un fichier : un log, un PDF, un document ou une image","composer.chip.editHint":"Afficher et modifier le texte collé","composer.chip.editorLabel":"Modifier le texte collé #{{number}}","composer.chip.pastedTextEmpty":"#{{number}} · Texte collé · vide, ne sera pas envoyé","composer.chip.pastedText_one":"#{{number}} · Texte collé · {{count}} ligne","composer.chip.pastedText_other":"#{{number}} · Texte collé · {{count}} lignes","composer.chip.remove":"Retirer","composer.pastedImage":"image collée","composer.placeholder.ended":"La session de cet onglet est terminée.","composer.placeholder.ready":"Saisissez votre message.","composer.placeholder.sleeping":"La CLI de cet onglet n'est pas encore ouverte.","composer.problem.draftTooLong":"Ce message est trop long pour être gardé comme brouillon : si vous fermez Agent Workbench avant de l'envoyer, il sera perdu.","composer.problem.empty":"« {{name}} » est vide.","composer.problem.imageTooBig":"L'image fait {{size}} Mo ; le maximum est de {{max}} Mo.","composer.problem.imageUnreadable":"Impossible de lire l'image du presse-papiers.","composer.problem.tooBig":"« {{name}} » fait {{size}} Mo ; le maximum est de {{max}} Mo.","composer.problem.tooManyFiles_one":"Jusqu'à {{count}} fichier par message.","composer.problem.tooManyFiles_other":"Jusqu'à {{count}} fichiers par message.","composer.problem.tooManyImages_one":"Jusqu'à {{count}} image par message.","composer.problem.tooManyImages_other":"Jusqu'à {{count}} images par message.","composer.problem.unreadable":"Impossible de lire « {{name}} ».","composer.resizeTitle":"Faites glisser pour redimensionner la zone de saisie","composer.send":"Envoyer","composer.sendTitle":"Envoyer (Enter)","composer.stop":"Arrêter","composer.stopTitle":"Interrompre ce que fait la CLI (Esc)","console.collapse":"Replier. Les processus continuent de tourner : pour les arrêter, utilisez le × de chaque terminal","console.name":"Console","console.noShell":"Aucune console système n'a été trouvée.","console.openAnother":"Ouvrir un autre {{shell}} dans {{cwd}}","console.openAnyIn":"Ouvrir une console dans {{cwd}}","console.openIn":"Ouvrir {{shell}} dans {{cwd}}","console.tab.close":"Fermer ce terminal et arrêter son processus","console.tab.exited":"Terminé avec le code {{code}}","console.tab.label":"Terminal {{number}}","console.tab.title":"{{shell}} {{number}} dans {{cwd}}","continue.menuLabel":"Continuer avec","controls.effort.high":"Élevé","controls.effort.inUse":"Effort utilisé : {{effort}}. Le changer envoie {{command}} à l'onglet CLI","controls.effort.inUseSaved":"Effort utilisé : {{effort}}. Le changer envoie {{command}} à l'onglet CLI, et la CLI l'enregistre comme valeur par défaut pour les prochains onglets","controls.effort.low":"Faible","controls.effort.max":"Max","controls.effort.medium":"Moyen","controls.effort.minimal":"Minimal","controls.effort.noData":"Effort : aucune donnée. Tous les modèles n'ont pas de niveaux — avec haiku, /effort ne laisse aucune trace","controls.effort.off":"Désactivé","controls.effort.placeholder":"effort — inconnu","controls.effort.provisional":"Effort selon votre configuration : {{effort}}. Aucune réponse ne l'a encore confirmé","controls.effort.xhigh":"Très élevé","controls.model.default":"Par défaut","controls.model.inUse":"Modèle utilisé : {{model}}. Le changer envoie /model à l'onglet CLI","controls.model.inUseSaved":"Modèle utilisé : {{model}}. Le changer envoie /model à l'onglet CLI, et la CLI l'enregistre comme valeur par défaut pour les prochains onglets","controls.model.noData":"Modèle : aucune réponse dans cette session pour l'instant","controls.model.placeholder":"modèle — inconnu","controls.model.provisional":"Modèle selon votre configuration : {{model}}. Aucune réponse ne l'a encore confirmé","conversation.answerUnconfirmed":"La CLI n'a pas confirmé cette réponse. Réessayez, ou répondez dans l'onglet CLI.","diff.binary":"Fichier binaire : aucun diff à afficher.","diff.noChanges":"Aucune modification.","diff.truncated":"Le diff a été tronqué en raison de sa taille. Le fichier complet se lit plus facilement hors de ce panneau.","docs.backToList":"Afficher la liste","docs.failed":"Impossible de lire le document. Réessayez avec ⟳.","docs.mode.formatted":"Mis en forme","docs.mode.label":"Comment afficher ce Markdown","docs.mode.source":"Source","docs.reload":"Relire le document","docs.reloadFailed":"Impossible de relire : voici la dernière version reçue.","docs.search.placeholder":"Rechercher dans ce document","docs.tab.close":"Fermer ce document","files.allHidden":"tout son contenu est masqué","files.empty":"vide","files.hidden.hide":"Masquer à nouveau ce qu'excluent .gitignore et la liste intégrée","files.hidden.show":"Afficher aussi ce qu'excluent .gitignore et la liste intégrée","files.hiddenCount_one":"{{count}} masqué","files.hiddenCount_other":"{{count}} masqués","files.hiddenTitle":"Masqués : .git, node_modules, dist, bin, obj et tout ce qu'indique .gitignore","files.insertFolderPath":"Mettre le chemin de ce dossier dans votre message","files.insertPath":"Mettre le chemin de « {{name}} » dans votre message","files.loading":"chargement…","files.menu.copyAbsolute":"Copier le chemin absolu","files.menu.copyRelative":"Copier le chemin relatif","files.menu.insertMention":"Insérer comme @chemin","files.menu.openWithSystem":"Ouvrir avec l'application par défaut","files.moreEntries":"il y a plus d'éléments que ceux affichés","files.pathInserted":"Ajouté à votre message","files.preview.binary":"Fichier binaire : pas d'aperçu.","files.preview.insertPath":"Mettre le chemin dans votre message","files.preview.truncated":"Le fichier a été tronqué en raison de sa taille. Ouvrez-le avec l'application par défaut pour le voir en entier.","files.readDirFailed":"Impossible de lire le répertoire.","files.readingDir":"Lecture du répertoire…","files.readingFile":"Lecture du fichier…","files.refresh":"Recharger l'arborescence","files.reveal":"Ouvrir « {{name}} » dans l'explorateur de fichiers du système","files.revealFolder":"Ouvrir ce dossier dans l'explorateur de fichiers du système","files.row.alwaysHidden":"toujours masqué : .git, node_modules, dist, bin, obj","files.row.ignored":"masqué par .gitignore","files.search.clear":"Effacer (Esc)","files.search.more":"il y a plus de résultats que ceux affichés","files.search.moreTitle":"Affinez la recherche pour tous les voir","files.search.none":"Aucun fichier de ce nom.","files.search.placeholder":"Rechercher des fichiers par nom…","files.search.prompt":"Tapez pour rechercher.","files.search.searching":"Recherche…","format.bytes.b":"{{value}} o","format.bytes.gb":"{{value}} Go","format.bytes.kb":"{{value}} Ko","format.bytes.mb":"{{value}} Mo","format.duration.minutes":"{{value}} min","format.duration.minutesSeconds":"{{minutes}} min {{seconds}} s","format.duration.ms":"{{value}} ms","format.duration.seconds":"{{value}} s","format.duration.underSecond":"moins de 1 s","git.aheadBehindTitle":"Commits en avance et en retard sur la branche amont","git.backToChanges":"Modifications","git.clean":"L'arbre de travail est propre.","git.detached":"HEAD détachée","git.detachedAt":"HEAD détachée @ {{head}}","git.group.conflict":"En conflit","git.group.conflictHint":"À résoudre avant de continuer","git.group.staged":"Indexés","git.group.stagedHint":"Déjà ajoutés avec git add","git.group.unstaged":"Non indexés","git.group.unstagedHint":"Modifiés dans l'arbre de travail","git.group.untracked":"Non suivis","git.group.untrackedHint":"Nouveaux fichiers que git ne connaît pas","git.kind.added":"ajouté","git.kind.conflict":"en conflit","git.kind.copied":"copié","git.kind.deleted":"supprimé","git.kind.modified":"modifié","git.kind.renamed":"renommé","git.kind.typeChanged":"type modifié","git.kind.untracked":"non suivi","git.newFolderTitle":"{{path}} — nouveau dossier ; son contenu apparaît dans Fichiers","git.readingDiff":"Lecture du diff…","git.refresh":"Actualiser l'état maintenant","git.stagedTag":"indexé","git.truncated":"Il y a plus de modifications que celles affichées. En général, cela signifie qu'il manque une règle dans <code>.gitignore</code>.","git.unknownState":"L'état du dépôt n'est pas encore connu.","git.upstreamTitle":"Branche amont : {{upstream}}","git.worktrees.detached":"HEAD détachée","git.worktrees.heading":"Autres worktrees","git.worktrees.headingTitle":"Autres arbres de travail de ce dépôt","header.locale.auto":"Automatique (navigateur : {{name}})","header.locale.title":"Langue : {{name}}","header.locale.titleAuto":"Langue : {{name}} (automatique, selon le navigateur)","memory.action.appendBlock":"le bloc sera ajouté à la fin","memory.action.appendLines":"des lignes seront ajoutées à la fin","memory.action.copy":"sera copié","memory.action.create":"sera créé","memory.action.replaceBlock":"le bloc sera remplacé","memory.back":"← Mémoire","memory.error.connectionLost":"La connexion a été coupée avant la réponse. Une fois la connexion rétablie, l'état indiquera ce qui a été écrit.","memory.form.copyFromMain":"Copier les notes du worktree principal","memory.form.existingNotes":"Notes existantes","memory.form.files":"Fichiers d'instructions","memory.form.importNative_one":"Importer {{count}} note de la mémoire de Claude Code","memory.form.importNative_other":"Importer {{count}} notes de la mémoire de Claude Code","memory.form.noFiles":"Choisissez au moins un fichier d'instructions","memory.form.planning":"Calcul en cours…","memory.form.preview":"Prévisualiser les modifications","memory.git.alreadyIgnored":"Ce dépôt ignore déjà <code>.agents/memory/</code>. Pour la versionner, il faut retirer cette règle de <code>.gitignore</code> à la main.","memory.git.blocked":"Comme git renvoie une erreur, l'installation n'est possible que sans toucher à .gitignore","memory.git.dontTouch":"Ne pas toucher à <code>.gitignore</code>","memory.git.errorHint":"git a renvoyé une erreur","memory.git.errorWarning":"git a renvoyé une erreur : impossible de savoir si la mémoire est ignorée. Elle peut être installée sans toucher à <code>.gitignore</code>.","memory.git.ignore":"Ignorer la mémoire","memory.git.ignoreHint":"recommandé","memory.git.version":"La versionner","memory.git.versionHint":"pour les dépôts privés","memory.global.copy":"Copier l'extrait","memory.global.intro":"Ce qui s'applique à tous vos projets va dans <code>~/.agents/global.md</code>. L'application ne l'écrit pas : chaque CLI le lit dès que vous ajoutez son extrait.","memory.global.title":"Mémoire globale","memory.index":"Index","memory.intro.what":"La mémoire partagée conserve ce que les agents apprennent sur ce projet — décisions, contraintes, pièges déjà rencontrés — pour la session suivante.","memory.intro.where":"Elle se trouve dans <code>.agents/memory/</code> : une note par fichier et un index, <code>MEMORY.md</code>. Les quatre CLI la lisent grâce à un bloc balisé dans leur fichier d'instructions. Rien n'est écrit tant que vous n'avez pas confirmé les modifications.","memory.list.empty":"Aucune note pour l'instant. Les agents les enregistrent ici quand ils apprennent quelque chose d'utile pour une autre session.","memory.list.notes":"Notes","memory.loading":"Lecture de la mémoire…","memory.native.import_one":"Importer {{count}} note","memory.native.import_other":"Importer {{count}} notes","memory.native.importing":"Importation…","memory.native.pending_one":"La mémoire native de Claude Code contient {{count}} note qui ne figure pas ici.","memory.native.pending_other":"La mémoire native de Claude Code contient {{count}} notes qui ne figurent pas ici.","memory.note.loading":"Lecture de la note…","memory.note.truncated":"La note a été tronquée en raison de sa taille.","memory.plan.back":"Retour","memory.plan.changes":"Modifications","memory.plan.copiedFrom":"Copie de {{path}}","memory.plan.install":"Installer","memory.plan.nothing":"Rien à modifier : le pont est déjà à jour.","memory.plan.update":"Mettre à jour","memory.plan.writing":"Écriture…","memory.problem.brokenBlock":"Ses marqueurs de bloc sont mal formés","memory.problem.brokenBlockWarning":"<code>{{file}}</code> a des marqueurs de bloc de mémoire mal formés : un marqueur sans sa paire, ou le bloc répété. L'application n'y touchera pas tant que vous ne l'aurez pas corrigé à la main.","memory.problem.encoding":"Il n'est pas en UTF-8","memory.problem.encodingWarning":"<code>{{file}}</code> n'est pas en UTF-8 (il semble être en UTF-16, ce qu'écrit <code>></code> dans Windows PowerShell 5.1). Enregistrez-le en UTF-8 : l'application n'y touchera pas d'ici là.","memory.problem.outside":"C'est un lien qui pointe hors du projet","memory.problem.outsideWarning":"<code>{{file}}</code> est un lien qui pointe hors du projet : l'application ne le lit pas et ne l'écrit pas.","memory.reach.adjust":"Ajuster","memory.reach.adjustTitle":"Choisir à nouveau les fichiers d'instructions du pont","memory.reach.doesNotReach":" : n'accède pas à la mémoire, {{via}}","memory.reach.reaches":" : accède à la mémoire via {{via}}","memory.reach.title":"{{label}} : {{via}}","memory.result.imported_one":"{{count}} note importée.","memory.result.imported_other":"{{count}} notes importées.","memory.result.installed_one":"Terminé : {{count}} fichier modifié.","memory.result.installed_other":"Terminé : {{count}} fichiers modifiés.","memory.result.nothingChanged":"Il n'y avait rien à modifier : le pont était déjà à jour.","memory.result.nothingImported":"Il n'y avait aucune nouvelle note à importer.","memory.result.skipped_one":"Fichier non écrasé, car il existait déjà avec un autre contenu : {{files}}.","memory.result.skipped_other":"Fichiers non écrasés, car ils existaient déjà avec un autre contenu : {{files}}.","memory.result.withSkipped":"{{result}} {{skipped}}","memory.update.button":"Mettre à jour le pont","memory.update.missing":"Le bloc manque dans {{files}}.","memory.update.outdatedAndMissing_one":"{{outdated}} a un bloc obsolète ; le bloc manque dans {{missing}}.","memory.update.outdatedAndMissing_other":"{{outdated}} ont un bloc obsolète ; le bloc manque dans {{missing}}.","memory.update.outdated_one":"{{files}} a un bloc obsolète.","memory.update.outdated_other":"{{files}} ont un bloc obsolète.","meter.configure":"Configurer","meter.label":"Contexte","meter.lastResponseTitle":"Dernière réponse du modèle","meter.modelWithOrigin":"{{model}} — {{origin}}","meter.noTokens":"cette CLI ne publie pas de tokens","meter.noTokensTitle":"Cette CLI ne publie pas le nombre de tokens utilisés par chaque réponse : il n'y a donc rien à mesurer.","meter.output":"sortie {{tokens}}","meter.responses_one":"{{count}} réponse","meter.responses_other":"{{count}} réponses","meter.sessionTitle":"Cumul sur toute la session","meter.sessionTotals_one":"session {{output}} sortie · {{cache}} cache · {{count}} réponse","meter.sessionTotals_other":"session {{output}} sortie · {{cache}} cache · {{count}} réponses","meter.unknownModel":"modèle non reconnu : affichage des tokens, sans la taille de la fenêtre","meter.unknownModelShort":"modèle non reconnu : taille de fenêtre inconnue","meter.unmeasured":"non mesuré","meter.windowPercent":"{{percent}} % de la fenêtre","mode.acceptEdits.hint":"Accepte les modifications de fichiers sans demander","mode.acceptEdits.label":"Accepter les modifs","mode.auto.hint":"La CLI décide seule quels outils utiliser, sans demander","mode.auto.label":"Auto","mode.default.hint":"Demande avant chaque outil non autorisé","mode.default.label":"Manuel","mode.plan.hint":"Analyse et propose un plan, sans rien toucher tant que vous ne l'avez pas approuvé","mode.plan.label":"Plan","narrow.keys.ctrlO":"Ctrl+O (dans Claude Code, déplie ce qui est tronqué)","narrow.keys.ctrlX":"Ctrl+X","narrow.keys.down":"Flèche vers le bas","narrow.keys.esc":"Échap","narrow.keys.interrupt":"Ctrl+C : interrompre","narrow.keys.label":"Touches du terminal","narrow.keys.left":"Flèche vers la gauche","narrow.keys.right":"Flèche vers la droite","narrow.keys.shiftTab":"Maj+Tab (dans Claude Code, change le mode de permissions)","narrow.keys.tab":"Tabulation","narrow.keys.up":"Flèche vers le haut","narrow.menu.chimePage":"Cette page","narrow.menu.chimeSystem":"Système","narrow.menu.cli":"CLI","narrow.menu.connection":"Connexion","narrow.menu.folder":"Dossier","narrow.menu.language":"Langue","narrow.menu.notifications":"Notifications système","narrow.menu.phoneAppDisconnect":"Déconnecter","narrow.menu.phoneAppSettings":"Réglages","narrow.menu.shortcuts":"Raccourcis clavier","narrow.menu.sound":"Son de notification","narrow.menu.theme":"Thème","narrow.more":"Plus","narrow.projects":"Projets","narrow.tabs.close":"Fermer l'onglet","narrow.tabs.new":"Nouvel onglet","narrow.tabs.none":"Aucun onglet ouvert.","narrow.tabs.open":"Onglets","narrow.tabs.rename":"Renommer","narrow.view.chat":"Chat","notes.attach":"Joindre une image depuis un fichier","notes.closeConfirm":"Fermer cette note la supprime, ainsi que ses images.","notes.closeNote":"Fermer la note. Elle est supprimée, ainsi que ses images","notes.collapse":"Replier. Les notes ne sont pas perdues : c'est le × de chaque onglet qui les ferme","notes.empty":"Aucune note. Le <b>+</b> en ouvre une ; elles servent à noter une idée sans quitter ce que vous faites.","notes.expand":"Déplier les notes","notes.imageAlt":"image de la note","notes.imageFallbackName":"l'image","notes.imageOnly":"Image","notes.imageTooBig":"« {{name}} » fait {{size}} Mo ; le maximum est de {{max}} Mo.","notes.imageUnavailable":"l'image n'est pas disponible","notes.lightboxClose":"Cliquez pour fermer","notes.name":"Notes","notes.new":"Nouvelle note","notes.placeholder":"Notez une idée. Vous pouvez coller ou faire glisser des images ici.","notes.readFailed":"Impossible de lire l'image.","notes.removeImage":"Retirer l'image","notes.resize":"Faites glisser pour modifier la hauteur","notes.thumbMissing":"introuvable","notes.tooManyImages_one":"Jusqu'à {{count}} image par note.","notes.tooManyImages_other":"Jusqu'à {{count}} images par note.","notes.untitled":"Note","notify.attention":"« {{tab}} » vous attend","notify.done":"« {{tab}} » a terminé","panel.cliUnseen":"La CLI a écrit quelque chose","panel.hide":"Masquer le panneau (Alt+P)","panel.restoreWidth":"Rétablir la largeur de la colonne","panel.tab.cli":"CLI","panel.tab.files":"Fichiers","panel.tab.git":"Modifications","panel.tab.memory":"Mémoire","panel.tab.plans":"Plans","panel.widen":"Élargir la colonne — l'interface de la CLI a besoin de place pour afficher les diffs et les tableaux","picker.create":"Créer","picker.createHere":"Créer un dossier ici","picker.empty":"Il n'y a aucun sous-dossier ici.","picker.goTo":"Aller à {{root}}","picker.loading":"Lecture du disque…","picker.newFolderName":"Nom du dossier","picker.truncated":"Il y a plus de sous-dossiers que la liste ne peut en afficher. Ouvrez-en un pour affiner.","picker.up":"dossier parent","plans.empty":"Cette conversation n'a encore écrit aucun document. Les plans du mode plan apparaissent ici, ainsi que les fichiers <code>.md</code> que l'agent enregistre dans le projet ou dans son dossier temporaire.","plans.loading":"Lecture du plan…","plans.missing":"introuvable","plans.missingTitle":"Le fichier n'est plus sur le disque","plans.truncated":"Le plan a été tronqué en raison de sa taille.","remote.address":"Adresse de cet ordinateur","remote.copied":"Copié","remote.copy":"Copier","remote.device.connected":"Connecté en ce moment","remote.device.lastSeen":"Dernière connexion : {{when}}","remote.device.never":"Jamais connecté","remote.device.paired":"Associé : {{when}}","remote.device.rename":"Renommer","remote.device.revoke":"Révoquer","remote.device.revokeConfirm":"Cliquez de nouveau pour révoquer","remote.devices":"Appareils associés","remote.devices.empty":"Aucun pour le moment.","remote.intro":"Utilisez Agent Workbench depuis un autre ordinateur de votre réseau ou depuis votre téléphone. Rien n'est ouvert au réseau : la connexion passe par un tunnel SSH.","remote.onlyOnHost":"Uniquement sur l'ordinateur où tourne Agent Workbench : cela s'ouvre avec les applications de cet ordinateur.","remote.pair.after":"Ensuite, l'autre ordinateur ouvre simplement {{url}}.","remote.pair.cancel":"Annuler","remote.pair.expires":"Elle ne fonctionne qu'une fois et expire dans {{time}}.","remote.pair.needsActive":"Vous pourrez associer un appareil une fois l'accès à distance activé et en fonctionnement.","remote.pair.open":"Une fois le tunnel lancé, ouvrez cette adresse dans le navigateur de l'autre ordinateur :","remote.pair.start":"Associer un appareil","remote.phone.authorize.admin":"1. Autorisez la clé du téléphone : sur cet ordinateur, collez ceci dans PowerShell en tant qu'administrateur.","remote.phone.authorize.powershell":"1. Autorisez la clé du téléphone : sur cet ordinateur, collez ceci dans PowerShell.","remote.phone.authorize.terminal":"1. Autorisez la clé du téléphone : sur cet ordinateur, collez ceci dans un terminal.","remote.phone.authorizeOnce":"La clé n'ouvre que le tunnel vers Agent Workbench : ni terminal ni commandes. Si vous l'avez déjà collée, inutile de recommencer.","remote.phone.hint":"Avec l'app Android ? Elle n'a besoin que de l'étape 1 : elle ouvre le tunnel et s'associe toute seule.","remote.phone.qrLabel":"Code à scanner avec le téléphone","remote.phone.scan":"2. Dans l'application, touchez « Scanner le code » et visez ici :","remote.phone.secret":"Ne partagez pas ce code ni une photo de celui-ci : il contient la clé du téléphone.","remote.phone.start":"Associer un téléphone","remote.phone.title":"Un téléphone","remote.port":"Port","remote.portInvalid":"Un nombre entre {{min}} et {{max}}.","remote.portSave":"Enregistrer","remote.restartHint":"L'activation, ou le changement de port, prend effet au redémarrage d'Agent Workbench. Le redémarrage ferme les CLI ouvertes : les onglets reviennent en veille.","remote.ssh.linux":"Dans un terminal (Ubuntu ou Debian ; sur d’autres distributions, installez leur serveur OpenSSH) :","remote.ssh.macos":"Réglages Système → Général → Partage → activez « Session à distance ».","remote.ssh.windows":"Ouvrez PowerShell en tant qu’administrateur et collez ceci. La première ligne télécharge et installe le serveur : cela prend quelques minutes et affiche « Running » pendant ce temps. Attendez le retour de l’invite avant de continuer.","remote.state.active":"Activé, port {{port}}","remote.state.off":"Désactivé","remote.state.portBusy":"Le port {{port}} est occupé : l'accès à distance ne fonctionne donc pas lors de cette exécution. Fermez l'autre programme (il peut s'agir d'un autre Agent Workbench) et redémarrez, ou choisissez un autre port.","remote.state.restartNeeded":"Activé, mais cela ne prend effet qu'au redémarrage d'Agent Workbench","remote.step.host":"1. Sur cet ordinateur, une fois : activez SSH","remote.step.hostHint":"C'est un réglage du système qui demande les droits d'administrateur, donc l'app ne le fait pas elle-même. Le système de cet ordinateur est ouvert :","remote.step.pair":"3. Associez-le, une fois par appareil","remote.step.tunnel":"2. Sur l'autre ordinateur, à chaque utilisation","remote.step.tunnelHint":"Collez cette commande dans son terminal et laissez-le ouvert. Elle demande le mot de passe de votre utilisateur sur cet ordinateur.","remote.title":"Accès à distance","remote.trouble":"Ça ne se connecte pas ?","remote.trouble.network":"Sous Windows, vérifiez que le réseau Wi‑Fi de cet ordinateur est défini comme Privé.","remote.turnOff":"Désactiver","remote.turnOffHint":"La désactivation prend effet immédiatement : les appareils associés sont déconnectés, et restent associés.","remote.turnOn":"Activer l'accès à distance","remote.userHint":"Si SSH refuse « {{user}} » : avec un compte Microsoft ou professionnel, essayez le nom de votre dossier utilisateur (C:\\Users\\<nom>) et le mot de passe du compte, pas le code PIN.","remote.vpnHint":"Un VPN professionnel qui bloque le réseau local coupe la connexion tant qu'il est actif. L'app n'y peut rien.","search.found":"{{hits}} dans {{sessions}}","search.hits_one":"{{count}} résultat","search.hits_other":"{{count}} résultats","search.mode.conversations":"Dans les conversations","search.mode.conversationsTitle":"Recherche dans le texte des conversations enregistrées dans la sauvegarde, sans tenir compte de la casse ni des accents","search.mode.titles":"Dans les titres","search.off":"La sauvegarde est désactivée : la recherche porte sur ce qu'elle a enregistré lorsqu'elle était activée.","search.placeholder.conversations":"Rechercher dans les conversations (Enter)","search.placeholder.titles":"Filtrer les projets et les sessions","search.role.assistant":"Réponse","search.role.title":"Titre","search.role.user":"Demande","search.sessions_one":"{{count}} session","search.sessions_other":"{{count}} sessions","search.status.done":"{{found}}.","search.status.none":"Aucun résultat","search.status.noneIn":"Aucun résultat dans {{sessions}}.","search.status.progressFound_one":"Recherche… {{scanned}} sur {{count}} session, {{found}} pour l'instant.","search.status.progressFound_other":"Recherche… {{scanned}} sur {{count}} sessions, {{found}} pour l'instant.","search.status.progress_one":"Recherche… {{scanned}} sur {{count}} session.","search.status.progress_other":"Recherche… {{scanned}} sur {{count}} sessions.","search.status.searching":"Recherche…","search.status.truncatedResults":"{{found}} : voici les premiers, affinez la recherche pour voir le reste.","search.status.truncatedTime":"{{found}} : la recherche s'est arrêtée au bout de {{seconds}} s, sans examiner {{left}}.","search.tooShort":"Saisissez au moins {{min}} caractères et appuyez sur Enter.","searchHook.connectionLost":"La connexion au serveur a été perdue : relancez la recherche.","server.agentUnknown":"Ce serveur ne sait pas lancer cette CLI.","server.answerInterrupted":"La réponse n'a pas été envoyée en entier : l'interruption l'a coupée.","server.answerInvalid":"La réponse ne correspond pas à la question.","server.answerNoFreeText":"Cette question n'accepte pas de réponse libre : choisissez l'une des options.","server.answerNotPending":"Cette question n'attend plus de réponse.","server.answerSendFailed":"Impossible d'envoyer la réponse : répondez dans l'onglet CLI.","server.answersUnsupported":"Cette CLI n'accepte pas de réponses depuis la conversation. Répondez dans l'onglet CLI.","server.archiveOpenTab":"Les sessions ayant un onglet ouvert ne sont pas archivées. Fermez-le d'abord.","server.attachmentEmpty":"« {{name}} » est arrivé vide.","server.attachmentExecutable":"Les exécutables ne peuvent pas être joints : « {{name}} ».","server.attachmentSaveFailed":"Impossible d'enregistrer le fichier joint.","server.attachmentTooLarge":"« {{name}} » fait {{size}} Mo ; le maximum est de {{max}} Mo.","server.badMessage":"Message non reconnu par le protocole.","server.cliMissing":"La commande « {{command}} » est introuvable dans le PATH. Agent Workbench utilise la CLI que vous avez déjà installée : il ne l'inclut pas et ne la télécharge pas. Installez-la depuis {{url}}, puis relancez l'application.","server.cliNotFound":"La CLI n'est pas installée ou est introuvable dans le PATH.","server.cliNotInstalled":"{{label}} est introuvable : la CLI n'est pas installée ou n'est pas dans le PATH.","server.cliOpenFailed":"Impossible d'ouvrir la CLI de l'onglet.","server.continueFailed":"Impossible de préparer la continuation.","server.continueHistoryMissing":"L'historique de cette conversation est introuvable.","server.continueNoFolder":"Cette conversation n'indique pas dans quel dossier elle s'est déroulée.","server.continueNotInHistory":"Cette conversation n'est pas dans l'historique : si elle vient de commencer, réessayez dans quelques secondes.","server.continueReadFailed":"Impossible de lire cette conversation.","server.continueSameCli":"Cette conversation appartient déjà à cette CLI : pour la poursuivre, ouvrez-la depuis la barre latérale.","server.continueTabFailed":"Impossible d'ouvrir l'onglet de la continuation.","server.continueTranscriptFailed":"Impossible d'enregistrer la transcription de la continuation.","server.conversationNotFollowed":"Cette conversation n'est plus suivie.","server.cwdMissing":"Le répertoire n'existe pas : {{cwd}}","server.cwdNotDir":"Ce n'est pas un répertoire : {{cwd}}","server.diffBinaryUntracked":"Fichier binaire non suivi.","server.diffNewEmpty":"Nouveau fichier vide.","server.diffNoStaged":"Aucune modification indexée pour ce fichier.","server.diffNoUnstaged":"Aucune modification non indexée pour ce fichier.","server.diffReadFailed":"Impossible de lire le diff.","server.dirReadFailed":"Impossible de lire le répertoire.","server.dirSearchFailed":"Impossible de rechercher dans le répertoire.","server.fileReadFailed":"Impossible de lire le fichier.","server.filesPerMessage":"Vous pouvez joindre jusqu'à {{max}} fichiers par message.","server.gitCommandFailed":"git {{command}} a échoué.","server.gitMissing":"git est introuvable dans le PATH. Le panneau Modifications a besoin de git ; le reste de l'application fonctionne normalement.","server.gitNotFound":"git est introuvable dans le PATH.","server.gitNotRepo":"Ce dossier ne se trouve pas dans un dépôt git.","server.gitRunFailed":"Impossible d'exécuter git pour lire l'état du dépôt.","server.gitStatusUnknown":"L'état du dépôt n'est pas encore connu.","server.gitUnexpected":"Réponse inattendue de git {{command}}.","server.handoffEmpty":"Cette conversation n'a aucun message à continuer.","server.handoffNoTranscript":"Cette conversation n'a aucun message à continuer : cette CLI n'a pas laissé de transcription lisible.","server.imageEmpty":"L'image est arrivée vide.","server.imageTooLarge":"L'image fait {{size}} Mo ; le maximum est de {{max}} Mo.","server.imageTypeUnsupported":"Type d'image non pris en charge : {{type}}","server.imageUnknownFormat":"Le contenu n'est pas une image dans un format connu.","server.imagesPerMessage":"Vous pouvez joindre jusqu'à {{max}} images par message.","server.imagesUnsupported":"Cette CLI n'accepte pas d'images depuis la zone de saisie.","server.memoryAppeared":"{{file}} est apparu pendant l'installation. Vérifiez à nouveau les modifications.","server.memoryBrokenBlock":"{{file}} a des marqueurs de bloc de mémoire mal formés (un marqueur sans sa paire, ou le bloc répété). Corrigez-le à la main : l'application ne touchera pas à ce fichier d'ici là.","server.memoryChooseFile":"Choisissez au moins un fichier d'instructions.","server.memoryGitFailed":"Impossible d'interroger git ({{detail}}). Sans cela, on ne peut pas savoir si .gitignore doit être modifié.","server.memoryHardLinks":"{{file}} a des liens physiques : l'application ne le modifie pas, car l'écrire casserait le lien. Ajoutez le bloc à la main.","server.memoryLinkOutside":"{{path}} pointe hors du projet (un lien ou une jonction) : l'application n'y écrit pas.","server.memoryNotAFile":"{{label}} existe mais n'est pas un fichier.","server.memoryNotInstalled":"Installez d'abord le pont : le dossier .agents/memory est absent.","server.memoryNotUtf8":"{{file}} n'est pas en UTF-8 (il semble être en UTF-16, ce que produit `>` dans Windows PowerShell 5.1). Enregistrez-le en UTF-8 : l'application n'y touchera pas d'ici là.","server.memoryNoteClaude":"Ajoutez cette ligne à la fin. Claude Code importe le fichier au démarrage.","server.memoryNoteGone":"Cette note n'existe plus.","server.memoryNoteHardLink":"Lien physique. `~/{{path}}` doit exister au préalable, et le fichier de la CLI non : s'il existe, déplacez son contenu dans `global.md` puis supprimez-le. Si votre éditeur enregistre en remplaçant le fichier, le lien se rompt : dans ce cas, copiez le contenu.","server.memoryNoteHardLinkCmd":"Lien physique, dans cmd. `~/{{path}}` doit exister au préalable, et le fichier de la CLI non : s'il existe, déplacez son contenu dans `global.md` puis supprimez-le. Si votre éditeur enregistre en remplaçant le fichier, le lien se rompt : dans ce cas, copiez le contenu.","server.memoryNoteName":"Ce nom n'est pas une note de la mémoire.","server.memoryNoteOpenCode":"Dans l'objet racine. Chemin absolu : OpenCode ne développe pas `~` dans cette clé (non vérifié).","server.memorySameFile":"{{other}} et {{file}} sont le même fichier (un lien). N'en choisissez qu'un.","server.memoryViaEncoding":"{{file}} n'est pas en UTF-8","server.memoryViaFallback":"CLAUDE.md (fichier de repli)","server.memoryViaFile":"{{file}}","server.memoryViaNoBlock":"{{file}} ne contient pas le bloc","server.memoryViaNoBlockEither":"ni AGENTS.md ni CLAUDE.md ne contiennent le bloc","server.memoryViaNoFolder":"le dossier .agents/memory est absent","server.memoryViaNoIndex":".agents/memory/MEMORY.md est absent","server.memoryViaOutside":"{{file}} pointe hors du projet","server.modePendingConfirmation":"Une confirmation est en attente dans la CLI : changer de mode maintenant l'approuverait. Répondez-y dans l'onglet CLI.","server.modeUnreachable":"Ce mode n'est pas accessible depuis le mode actuel. Changez-le avec {{key}} dans l'onglet CLI.","server.modesUnsupported":"Cette CLI n'a pas de modes de permissions à changer d'ici.","server.noteCliNotStarted":"La CLI de cet onglet n'a pas réussi à démarrer ; la note n'a pas été envoyée.","server.noteEmpty":"La note est vide.","server.noteExists":"Cette note existe déjà.","server.noteGone":"La note n'existe plus.","server.noteIdInvalid":"L'identifiant de la note n'est pas valide.","server.noteImageFailed":"Impossible de joindre une image de la note.","server.noteImagesMax":"Jusqu'à {{max}} images par note.","server.noteImagesUnsupported":"Cette CLI n'accepte pas d'images ; la note n'a pas été envoyée.","server.noteInterrupted":"La note n'a pas été envoyée en entier : l'interruption l'a coupée.","server.noteNoAgent":"Cet onglet n'a pas d'agent à qui envoyer la note.","server.noteNoReadySignal":"Cette CLI n'indique pas quand elle est prête ; la note n'a pas été envoyée.","server.noteSaveFailed":"Impossible d'enregistrer la note.","server.noteTooLong":"Une note peut contenir jusqu'à {{max}} caractères.","server.notesMax":"Jusqu'à {{max}} notes ouvertes. Fermez-en une d'abord.","server.openToolSubmit":"{{label}} a un outil sans résultat : une approbation est peut-être en attente. Répondez-y dans l'onglet CLI.","server.operationFailed":"L'opération n'a pas pu aboutir : {{detail}}","server.pasteImageFailed":"Impossible d'enregistrer l'image collée.","server.pathMissing":"Le chemin n'existe pas.","server.pathNotRelative":"Seuls les chemins relatifs au répertoire de l'onglet sont acceptés.","server.pathNullByte":"Le chemin contient un octet nul.","server.pathOpenFailed":"Impossible d'ouvrir le chemin.","server.pathOutside":"Le chemin sort du répertoire de l'onglet.","server.pendingSubmitAnswer":"{{label}} attend une réponse : la touche Enter qui envoie le message y répondrait. Répondez-y dans l'onglet CLI.","server.pendingSubmitPermission":"{{label}} attend que vous autorisiez un outil : la touche Enter qui envoie le message l'approuverait. Répondez-y dans l'onglet CLI.","server.pickerCliFolder":"Ce dossier appartient à la CLI et ne peut pas être ouvert d'ici.","server.pickerClosed":"Ce sélecteur de dossier n'est plus ouvert.","server.pickerCreateFailed":"Impossible de créer le dossier à cet endroit.","server.pickerFolderExists":"Un dossier portant ce nom existe déjà.","server.pickerListFailed":"Impossible de lister ce dossier.","server.pickerNameChars":"Le nom contient des caractères non autorisés.","server.pickerNameInvalid":"Le nom du dossier n'est pas valide.","server.pickerNoProjectsHere":"Impossible de créer un projet ici : c'est le dossier de la CLI.","server.pickerNotListed":"Ce dossier ne figure pas dans la liste actuelle.","server.pickerRootMissing":"Cette racine n'existe pas.","server.pickerTooMany":"Trop de sélecteurs de dossier sont ouverts.","server.planReadFailed":"Impossible de lire le plan.","server.raw":"{{text}}","server.relaunchCloseFailed":"Impossible de fermer la CLI de l'onglet pour la relancer.","server.remoteDeviceGone":"Cet appareil n'est plus associé.","server.remoteFailed":"La modification de l'accès à distance n'a pas pu être effectuée.","server.remoteHostOnly":"L'accès à distance ne se gère que depuis l'ordinateur où tourne Agent Workbench.","server.remoteNotActive":"L'accès à distance n'est pas encore activé et en fonctionnement. Activez-le et redémarrez Agent Workbench.","server.remoteOpensOnHost":"Cela ouvre une fenêtre sur l'ordinateur où tourne Agent Workbench : ce n'est donc pas disponible depuis un appareil distant.","server.remotePortInvalid":"Le port doit être un nombre compris entre {{min}} et {{max}}.","server.remoteTooManyDevices":"Il y a déjà {{max}} appareils associés. Révoquez-en un d'abord.","server.searchFailed":"Impossible de rechercher dans la sauvegarde.","server.settingsFailed":"Impossible d'enregistrer les réglages.","server.settingsHostOnly":"Ces réglages ne se modifient que sur l'ordinateur où tourne Agent Workbench.","server.settingsShellMissing":"Cette console n'est plus installée.","server.shellNotFound":"Aucune console système n'a été trouvée.","server.submitInterrupted":"Le message n'a pas été envoyé en entier : l'interruption l'a coupé.","server.submitStoppedTool":"Le message n'a pas été envoyé en entier : {{label}} a ouvert un outil pendant la saisie et attend peut-être une approbation. Vérifiez l'onglet CLI.","server.submitStoppedToolNoLabel":"Le message n'a pas été envoyé en entier : la CLI a ouvert un outil pendant la saisie et attend peut-être une approbation. Vérifiez l'onglet CLI.","server.submitStoppedWaiting":"Le message n'a pas été envoyé en entier : {{label}} a commencé à attendre une réponse pendant la saisie. Répondez-y avant d'envoyer un autre message.","server.submitStoppedWaitingNoLabel":"Le message n'a pas été envoyé en entier : la CLI a commencé à attendre une réponse pendant la saisie. Répondez-y avant d'envoyer un autre message.","server.tabClosedWhileOpening":"L'onglet s'est fermé pendant son ouverture.","server.tabDirGone":"Le répertoire de l'onglet n'existe plus.","server.tabOpenFailed":"Impossible d'ouvrir l'onglet.","server.terminalAsleep":"La CLI de cet onglet n'est pas ouverte. Ouvrez-la pour écrire à l'agent.","server.terminalGone":"Le terminal n'existe plus.","server.terminalOpenFailed":"Impossible d'ouvrir le terminal.","server.tooManyTabs":"Vous ne pouvez pas ouvrir plus de {{max}} onglets à la fois.","server.vaultBusyMeasuring":"La sauvegarde est occupée à mesurer. Réessayez quand ce sera terminé.","server.vaultBusyMoving":"La sauvegarde est occupée à changer de dossier. Réessayez quand ce sera terminé.","server.vaultBusyWriting":"La sauvegarde est occupée à copier. Réessayez quand ce sera terminé.","server.vaultCannotWrite":"Impossible d'écrire dans ce dossier.","server.vaultCurrentInsideTarget":"La sauvegarde actuelle ne peut pas se retrouver dans le nouveau dossier.","server.vaultDiskFull":"Disque plein : la passe s'est arrêtée ({{detail}})","server.vaultFailed":"L'opération de la sauvegarde n'a pas pu aboutir.","server.vaultIndexNotReady":"L'historique est encore en cours de lecture. Mesurez quand ce sera terminé.","server.vaultMeasureFirst":"Mesurez d'abord l'espace nécessaire.","server.vaultMemoryFailed":"mémoire de {{cwd}} : {{detail}}","server.vaultMoveFailed":"Impossible de déplacer la sauvegarde : {{detail}}","server.vaultMoving":"La sauvegarde est en cours de déplacement vers un autre dossier. Réessayez quand ce sera terminé.","server.vaultNoCopyYet":"Il n'y a pas encore de sauvegarde.","server.vaultNotLoaded":"La sauvegarde n'est pas chargée.","server.vaultProjectGone":"Ce projet n'est plus dans la barre latérale.","server.vaultReasonNewerFormat":"la copie existante est dans un format plus récent","server.vaultReasonOriginMissing":"la source est introuvable","server.vaultReasonUnsafeId":"un identifiant de session qui ne peut pas être copié","server.vaultSessionFailed":"{{agent}}/{{session}}: {{detail}}","server.vaultSessionMissing":"Cette session n'est pas dans la sauvegarde.","server.vaultTargetCliFolder":"Ce dossier appartient à une CLI : la sauvegarde n'y est pas conservée.","server.vaultTargetInsideCurrent":"Le nouveau dossier ne peut pas se trouver dans la sauvegarde actuelle.","server.vaultTargetNotAbsolute":"Le dossier de la sauvegarde doit être un chemin absolu.","server.waitingSubmit":"{{label}} attend une réponse : répondez-y avant d'envoyer un autre message.","session.untitled":"Session sans titre","settings.cli.disabled":"Désactivée","settings.cli.hint":"Une CLI décochée n'apparaît ni dans le menu ni dans la barre latérale, et son historique n'est pas lu.","settings.cli.install":"Comment l'installer","settings.cli.notInstalled":"Non installée","settings.cli.restart":"Les changements des CLI s'appliquent au redémarrage de l'app.","settings.console.auto":"Automatique","settings.console.autoWith":"Automatique ({{shell}})","settings.console.hint":"S'applique aux consoles ouvertes à partir de maintenant ; celles déjà ouvertes restent telles quelles.","settings.hiddenHint":"Masqué : {{name}}. Vous pouvez l'afficher à nouveau depuis ⚙ Réglages.","settings.hide.console":"Masquer la console (elle revient depuis ⚙ Réglages)","settings.hide.notes":"Masquer les notes (elles reviennent depuis ⚙ Réglages)","settings.hostOnly":"La console et les CLI ne se modifient que sur l'ordinateur où tourne Agent Workbench.","settings.language":"Langue","settings.more.open":"{{name}}…","settings.oldServer":"Le serveur est d'une version antérieure : redémarrez-le pour choisir la console et les CLI.","settings.open":"Réglages","settings.panels.cliAlways":"L'onglet CLI est toujours affiché : les autorisations et les questions de l'agent y apparaissent.","settings.panels.consoleConfirmYes":"Masquer et fermer","settings.panels.consoleConfirm_one":"Masquer la console ferme {{count}} terminal ouvert.","settings.panels.consoleConfirm_other":"Masquer la console ferme {{count}} terminaux ouverts.","settings.section.appearance":"Apparence","settings.section.clis":"CLI","settings.section.console":"Console","settings.section.more":"Plus","settings.section.panels":"Panneaux","settings.terminalTheme":"Thème du terminal","settings.terminalTheme.dark":"Toujours sombre","settings.terminalTheme.follow":"Suivre le thème de l'app","settings.terminalTheme.hint":"Les CLI choisissent leurs couleurs pour un terminal sombre : sur un terminal clair, certains textes se lisent mal.","settings.title":"Réglages","shortcuts.altNumber":"<strong>Alt + chiffre</strong> n'est pas utilisé non plus, et c'est voulu : sous Windows, Alt avec le pavé numérique sert à saisir les caractères absents du clavier (<kbd>Alt + 164</kbd> = ñ). L'intercepter empêcherait de saisir les caractères accentués. Pour changer d'onglet, il y a <kbd>Alt + ←</kbd> et <kbd>Alt + →</kbd>.","shortcuts.app.closeTab":"Fermer l'onglet actif","shortcuts.app.newTab":"Nouvel onglet dans le répertoire de l'onglet actuel","shortcuts.app.previousTab":"Revenir à l'onglet précédent (hors du terminal : dans le terminal, le raccourci va à la CLI)","shortcuts.app.switchTab":"Onglet précédent / suivant (aussi Alt + PgUp / PgDn)","shortcuts.app.togglePanel":"Afficher ou masquer le panneau de droite","shortcuts.ariaLabel":"Raccourcis clavier","shortcuts.browserReserved":"<strong>Ctrl+T</strong>, <strong>Ctrl+W</strong> et <strong>Ctrl+Tab</strong> ne peuvent pas être utilisés : le navigateur les réserve à ses propres onglets et l'événement n'atteint jamais la page.","shortcuts.cliHint":"C'est la CLI qui les gère. L'application ne les intercepte pas : ils lui parviennent tels quels. Dans le terminal, le saut de ligne reste <kbd>Ctrl + J</kbd> et les images se collent avec <kbd>Alt + V</kbd> ; c'est la zone de saisie qui utilise les touches ci-dessus.","shortcuts.section.app":"Application","shortcuts.section.cli":"CLI, dans le terminal","shortcuts.section.composer":"Dans la zone de saisie","shortcuts.title":"Raccourcis","sidebar.action.archive":"Archiver","sidebar.action.restore":"Restaurer","sidebar.action.undo":"Annuler","sidebar.archived.hide_one":"Masquer {{count}} archivée","sidebar.archived.hide_other":"Masquer {{count}} archivées","sidebar.archived.show_one":"Afficher {{count}} archivée","sidebar.archived.show_other":"Afficher {{count}} archivées","sidebar.archived.toggleTitle":"Les sessions archivées restent sur le disque ; ce bouton ne fait que les afficher ou les masquer","sidebar.empty.noMatch":"Rien ne correspond au filtre.","sidebar.empty.noProjects":"Aucun projet trouvé dans l'historique.","sidebar.hide":"Masquer les projets","sidebar.history.button":"Archiver l'historique…","sidebar.history.buttonTitle":"Masquer d'un coup les sessions d'une CLI antérieures à aujourd'hui. Rien n'est supprimé","sidebar.history.confirm_one":"{{count}} session {{label}} sera masquée ; rien n'est supprimé","sidebar.history.confirm_other":"{{count}} sessions {{label}} seront masquées ; rien n'est supprimé","sidebar.history.count_one":"{{count}} session antérieure à aujourd'hui","sidebar.history.count_other":"{{count}} sessions antérieures à aujourd'hui","sidebar.history.heading":"Archiver tout ce qui précède aujourd'hui","sidebar.history.region":"Archiver l'historique","sidebar.indexing":"Indexation {{scanned}} / {{total}}","sidebar.newProject":"Nouveau projet : choisir ou créer un dossier","sidebar.project.archive":"Archiver le projet","sidebar.project.archiveTitle":"Archiver le projet : masque ses conversations dans la barre latérale. Rien n'est supprimé","sidebar.project.export":"Exporter en Markdown","sidebar.project.folderGone":"Le dossier n'existe plus sur le disque","sidebar.project.missing":"dossier introuvable","sidebar.project.newSession":"Nouvelle session dans ce projet","sidebar.reindex":"Réindexer l'historique","sidebar.searchMode.label":"Où rechercher","sidebar.searchMode.titlesTitle":"Filtre la liste par nom de projet et titre de session","sidebar.selection.count_one":"{{count}} sélectionnée","sidebar.selection.count_other":"{{count}} sélectionnées","sidebar.session.archive":"Archiver — la retire de la liste, rien n'est supprimé","sidebar.session.blocked":"Elle a un onglet ouvert. Fermez-le d'abord.","sidebar.session.restore":"Remettre dans la liste","sidebar.undo.dismissTitle":"Fermer l'avis ; les sessions restent archivées","sidebar.undo.text_one":"{{count}} session archivée ({{what}})","sidebar.undo.text_other":"{{count}} sessions archivées ({{what}})","sidebar.vaultLine.lastError":"Dernière erreur : {{error}}","sidebar.vaultLine.title":"Voir l'état et le dossier de la sauvegarde","sound.notify.blocked":"Le navigateur bloque les notifications de cette page. Autorisez-les dans les paramètres du site, puis cliquez de nouveau.","sound.notify.off":"Notifications système désactivées — cliquez pour les activer","sound.notify.on":"Notifications système activées — cliquez pour les désactiver. Elles ne s'affichent que lorsque cette fenêtre n'est pas visible.","sound.off":"Son de notification coupé — cliquez pour l'activer","sound.on":"Son de notification activé — cliquez pour le couper","sound.volume":"Volume du son de notification","statusLine.benefit":"Avec la status line configurée, les onglets de cette CLI affichent leur état, la barre « en attente » quand elle demande l'autorisation d'utiliser un outil, et la jauge de contexte avec la fenêtre exacte. Sans elle, impossible de le savoir : la CLI ne l'écrit dans aucun autre fichier.","statusLine.check":"Vérifier","statusLine.checkHint":"L'application s'en aperçoit aussi d'elle-même en quelques secondes.","statusLine.checking":"Vérification…","statusLine.copied":"Copiée","statusLine.copy":"Copier","statusLine.copyTitle":"Copier la ligne dans le presse-papiers","statusLine.lineSection":"La ligne","statusLine.mergeHint":"Fusionnez-la avec le contenu actuel du fichier ci-dessous, sans le remplacer : s'il contient déjà des accolades, ajoutez seulement la clé <kbd>statusLine</kbd>.","statusLine.runsEverywhere":"Une fois la ligne en place, chaque session de la CLI l'exécute, y compris celles que vous ouvrez hors de l'application, et elle nécessite <kbd>node</kbd> dans le PATH.","statusLine.scriptHint":"Il n'enregistre que l'état, le modèle et les tokens de chaque conversation, dans le dossier de l'application. Il n'enregistre ni votre e-mail, ni votre quota, ni le coût, que la CLI lui transmet aussi, et il n'affiche rien : la ligne propre à la CLI reste telle quelle.","statusLine.scriptSection":"Ce que fait le script","statusLine.title":"Status line pour {{agent}}","statusLine.whereHint":"L'application ne touche pas à ce fichier : c'est vous qui le modifiez.","statusLine.whereSection":"Où","summary.alsoWorksWith":"Fonctionne aussi avec : {{names}}","summary.newerServer":"Le serveur est d'une version plus récente que cette page (protocole {{server}}, cette page utilise le {{page}}). Rechargez la page avec F5.","summary.outdatedServer":"Le serveur en cours d'exécution est d'une version plus ancienne que cette page (protocole {{server}}, cette page utilise le {{page}}). Redémarrez-le et rechargez la page.","support.dismiss":"Pas maintenant","support.link":"Soutenir","support.notice":"Si Agent Workbench vous est utile, pensez à soutenir le projet.","tabs.aria.opening":"ouverture en cours","tabs.aria.working":"l'agent travaille","tabs.close":"Fermer (Alt+W)","tabs.dot.busy":"L'agent travaille","tabs.dot.exited":"La CLI de cet onglet s'est fermée","tabs.dot.sleeping":"En veille : lisible, sans CLI ouverte","tabs.dot.waiting":"La CLI attend une réponse de votre part","tabs.new":"Nouvel onglet (Alt+T)","tabs.state.alive":"actif","tabs.state.exited":"terminé (code {{code}})","tabs.state.opening":"ouverture…","tabs.state.sleeping":"en veille","terminal.exited":"le processus s'est terminé (code {{code}})","terminal.replayTruncated":"sortie antérieure tronquée","theme.dark":"Thème sombre","theme.light":"Thème clair","theme.system":"Thème du système","theme.title":"{{theme}} — cliquez pour changer","thread.continueWith":"↪ Continuer avec…","thread.copyMessage":"Copier le texte de ce message","thread.empty.noMessages":"La session ne contient encore aucun message.","thread.empty.unavailable":"Cet onglet n'a pas de répertoire connu : il n'y a donc aucun fichier de session à suivre.","thread.empty.waiting":"En attente du premier message. Le fichier de session est créé au début de la conversation.","thread.fold.less":"afficher moins","thread.fold.more_one":"afficher {{count}} ligne","thread.fold.more_other":"afficher les {{count}} lignes","thread.goToCli":"Aller à l'onglet CLI","thread.image.alt":"image du message","thread.image.gone":"l'image n'est plus dans le fichier","thread.image.loading":"chargement de l'image…","thread.image.openTitle":"Cliquez pour l'afficher en taille réelle","thread.jumpToEnd":"Aller à la fin","thread.jumpToEndNew_one":"Aller à la fin : {{count}} nouveau message","thread.jumpToEndNew_other":"Aller à la fin : {{count}} nouveaux messages","thread.jumpToOwn":"Aller à votre message précédent","thread.loadEarlier":"Charger les messages précédents","thread.loadingMore":"Chargement…","thread.notice.compacted":"Contexte compacté","thread.notice.compactedAuto":"Contexte compacté automatiquement","thread.notice.error":"La CLI a renvoyé une erreur : {{detail}}","thread.notice.errorNoDetail":"La CLI a renvoyé une erreur","thread.notice.interrupted":"Interrompu","thread.openInFiles":"Ouvrir {{path}} dans l'onglet Fichiers","thread.pasted_one":"Texte collé #{{number}} · {{count}} ligne","thread.pasted_other":"Texte collé #{{number}} · {{count}} lignes","thread.question.answerInCli":"Répondez dans l'onglet CLI","thread.question.answered":"Réponse donnée","thread.question.multi":"choix multiple","thread.question.pickEach":"Choisissez une option pour chaque question · vous pouvez aussi répondre dans l'onglet CLI","thread.question.pickOne":"Choisissez une option · vous pouvez aussi répondre dans l'onglet CLI","thread.question.placeholder":"Écrivez votre réponse","thread.question.send":"Envoyer","thread.question.sendAnswers":"Envoyer les réponses","thread.question.useText":"Utiliser ce texte","thread.question.writeOther":"Écrire une autre réponse…","thread.question.writeOtherHint":"Pour proposer une alternative ou donner plus de contexte","thread.rewind":"Revenir ici — ouvre le menu rewind de la CLI dans l'onglet CLI (Esc Esc)","thread.search.next":"Suivant","thread.search.none":"aucun résultat","thread.search.placeholder":"Rechercher dans la conversation","thread.search.previous":"Précédent","thread.status.awaitingReply":"Remis à la CLI · pas encore de réponse · {{elapsed}}","thread.status.delivered":"Remis à la CLI","thread.status.sending":"Envoi à la CLI…","thread.status.subagent":"{{name}} ({{elapsed}})","thread.status.subagentUnnamed":"sans nom","thread.status.subagentsMore_one":"{{count}} autre","thread.status.subagentsMore_other":"{{count}} autres","thread.status.subagents_one":"{{count}} sous-agent travaille encore : {{list}}","thread.status.subagents_other":"{{count}} sous-agents travaillent encore : {{list}}","thread.status.working":"L'agent travaille…","thread.status.workingDelivered":"L'agent travaille · message remis","thread.status.workingFor":"L'agent travaille · {{elapsed}}","thread.status.workingForDelivered":"L'agent travaille · {{elapsed}} · message remis","thread.tool.error":"erreur","thread.tool.imagesNotSent_one":"({{count}} image : non transmise au panneau)","thread.tool.imagesNotSent_other":"({{count}} images : non transmises au panneau)","thread.tool.images_one":"{{count}} image","thread.tool.images_other":"{{count}} images","thread.tool.input":"entrée","thread.tool.noOutput":"(aucune sortie)","thread.tool.orphanResult":"résultat orphelin","thread.tool.result":"résultat","thread.truncated":"… (tronqué)","thread.turn.effort":"effort {{effort}}","thread.turn.queued":"envoyé pendant que l'agent travaillait","thread.turn.queuedTitle":"Vous l'avez écrit pendant que l'agent travaillait : il a rejoint le tour déjà en cours","thread.turn.you":"Vous","thread.wake.exited":"La CLI de cet onglet s'est fermée.","thread.wake.exitedWithCode":"La CLI de cet onglet s'est fermée (code de sortie {{code}}).","thread.wake.open":"Ouvrir la CLI","thread.wake.opening":"Ouverture…","thread.wake.sleeping":"Vous lisez cette conversation sans que la CLI soit ouverte. Ouvrez-la pour écrire à l'agent.","threadFont.size.l":"grande","threadFont.size.m":"normale","threadFont.size.s":"petite","threadFont.title":"Taille du texte : {{current}} (clic : {{next}})","time.daysAgo":"il y a {{count}} j","time.hoursAgo":"il y a {{count}} h","time.justNow":"à l'instant","time.minutesAgo":"il y a {{count}} min","tools.run.agent_one":"{{count}} sous-agent","tools.run.agent_other":"{{count}} sous-agents","tools.run.callsTo_one":"{{count}} appel à {{name}}","tools.run.callsTo_other":"{{count}} appels à {{name}}","tools.run.edit_one":"{{count}} modification","tools.run.edit_other":"{{count}} modifications","tools.run.find_one":"{{count}} recherche dans le projet","tools.run.find_other":"{{count}} recherches dans le projet","tools.run.read_one":"{{count}} fichier lu","tools.run.read_other":"{{count}} fichiers lus","tools.run.shell_one":"{{count}} commande de console","tools.run.shell_other":"{{count}} commandes de console","tools.run.todo_one":"{{count}} liste de tâches","tools.run.todo_other":"{{count}} listes de tâches","tools.run.web_one":"{{count}} recherche","tools.run.web_other":"{{count}} recherches","vault.archived":"Les sessions archivées ne sont pas copiées, et archiver une session déjà copiée ne supprime pas sa copie. L'application ne supprime jamais rien dans ce dossier.","vault.busy":"Une opération de la sauvegarde est en cours. Attendez qu'elle se termine.","vault.button.off":"Sauvegarde : désactivée. La configurer","vault.button.on":"Sauvegarde : activée. Voir l'état et le dossier","vault.dialog.activate":"Activer","vault.dialog.activateExistingHint":"Le dossier contient déjà une sauvegarde. Une fois activée, l'app la complète et la tient à jour.","vault.dialog.activateExistingTitle":"Le dossier contient déjà une sauvegarde : l'activation la complète","vault.dialog.activateMeasuredHint":"Copie tout ce qui a été mesuré, puis chaque session qui change, après une minute de calme.","vault.dialog.activateMeasuredTitle":"Copie maintenant ce qui a été mesuré, puis chaque session qui change","vault.dialog.changeDir":"Changer de dossier…","vault.dialog.changeDirTitle":"Choisir un autre dossier. Ce qui a été copié y est recopié ; celui-ci reste intact","vault.dialog.defaultDir":"C'est le dossier par défaut, dans celui de l'application.","vault.dialog.folderSection":"Dossier","vault.dialog.inFolder":"Dans le dossier","vault.dialog.lastError":"Dernière erreur","vault.dialog.lastPass":"dernière passe : {{when}}","vault.dialog.measure":"Mesurer","vault.dialog.measureAgain":"Mesurer à nouveau","vault.dialog.measureTitle":"Lit tout l'historique sans rien écrire, pas même le dossier","vault.dialog.needsMeasure":"Mesurez d'abord l'espace nécessaire : le bouton « {{activate}} » apparaîtra ensuite.","vault.dialog.openFolder":"Ouvrir le dossier","vault.dialog.openFolderTitle":"Ouvrir le dossier dans l'explorateur de fichiers du système","vault.dialog.pendingCalm_one":"{{count}} en attente de sa minute de calme","vault.dialog.pendingCalm_other":"{{count}} en attente de leur minute de calme","vault.dialog.sizeSection":"Espace nécessaire","vault.dialog.table.archived":"Archivées","vault.dialog.table.archivedTitle":"Les sessions archivées ne sont pas copiées","vault.dialog.table.images":"Images","vault.dialog.table.memory_one":"Mémoire de {{count}} projet","vault.dialog.table.memory_other":"Mémoire de {{count}} projets","vault.dialog.table.sessions":"Sessions","vault.dialog.table.size":"Taille","vault.dialog.table.total":"Total","vault.dialog.turnOff":"Désactiver","vault.dialog.turnOffHint":"La désactiver ne supprime rien : ce qui a été copié reste dans le dossier.","vault.dialog.waiting":"En attente de l'état du serveur…","vault.export.done":"Exporté : le dossier a été ouvert","vault.export.exporting":"Export en Markdown…","vault.export.idle":"Exporter les sessions de ce projet en Markdown","vault.indexNotReady":"L'historique est encore en cours de lecture. Mesurez quand ce sera terminé.","vault.line.copying":"copie en cours","vault.line.copyingProgress":"copie {{done}} / {{total}}","vault.line.measuring":"mesure en cours","vault.line.moving":"déplacement vers un autre dossier","vault.line.neverCopied":"pas encore de copie","vault.line.pending_one":"{{count}} en attente","vault.line.pending_other":"{{count}} en attente","vault.mark.copy":"sauvegarde","vault.mark.copyTitle":"L'historique de la CLI ne contient plus cette session. C'est la sauvegarde qui s'ouvre, en Markdown.","vault.mark.partial":"partielle","vault.mark.partialTitle":"Seuls le résumé et les documents ont été récupérés : le contenu de la conversation est chiffré.","vault.measure.summary":"Mesure effectuée {{when}}, en {{duration}}","vault.measure.summaryNoWhen":"Mesure effectuée en {{duration}}","vault.name":"Sauvegarde","vault.note.empty_one":"{{count}} vide","vault.note.empty_other":"{{count}} vides","vault.note.failedWithReasons_one":"{{count}} en échec ({{reasons}})","vault.note.failedWithReasons_other":"{{count}} en échec ({{reasons}})","vault.note.failed_one":"{{count}} en échec","vault.note.failed_other":"{{count}} en échec","vault.note.notCopied":"Sessions non copiées : {{parts}}","vault.note.unsupported_one":"{{count}} sans lecture complète","vault.note.unsupported_other":"{{count}} sans lecture complète","vault.previousDir":"L'ancien dossier est resté intact : {{dir}}","vault.privacy":"La sauvegarde conserve la même chose que l'historique de chaque CLI — messages, entrées et résultats des outils, images — dans un dossier à vous. Si vous la placez dans un dossier synchronisé ou dans un dépôt, tout cela voyage avec elle.","vault.sessions_one":"{{count}} session","vault.sessions_other":"{{count}} sessions","vault.state.measuring":"Mesure en cours…","vault.state.measuringProgress":"Mesure en cours… {{done}} / {{total}}","vault.state.moving":"Déplacement vers un autre dossier…","vault.state.off":"Désactivée","vault.state.on":"Activée","vault.state.writing":"Copie en cours…","vault.state.writingProgress":"Copie en cours… {{done}} / {{total}}","workspace.connectFailed":"Impossible de se connecter au serveur local. Rouvrez l'URL qu'il a affichée au démarrage."};export{e as default};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
:root,:root[data-theme=dark]{--surface: #12141a;--chrome: #1a1d25;--chrome-alt: #161920;--raised: #1f232c;--border: #272b35;--text: #d8dee9;--text-dim: #7c869b;--accent: #5fb3a1;--danger: #e06c75;--warning: #d6a15e;--hover: rgba(255, 255, 255, .05);--diff-added: rgba(95, 179, 161, .13);--diff-removed: rgba(224, 108, 117, .13);--diff-hunk: rgba(124, 134, 155, .14);--mark: rgba(214, 161, 94, .35);--code-keyword: #c792ea;--code-string: #a3d18a;--code-number: #e0a05f;--code-comment: #6b7386;--code-title: #82b8f0;--code-attr: #7fd1c0;--code-meta: #9aa3b5;--code-danger: #e06c75;--project-color-s: 55%;--project-color-l: 58%;color-scheme:dark}:root[data-theme=light]{--surface: #fbfbfd;--chrome: #eef0f5;--chrome-alt: #f5f6fa;--raised: #ffffff;--border: #d7dbe4;--text: #22262e;--text-dim: #6a7183;--accent: #2c7f6c;--danger: #c1382b;--warning: #9a6414;--hover: rgba(0, 0, 0, .045);--diff-added: rgba(44, 127, 108, .13);--diff-removed: rgba(193, 56, 43, .11);--diff-hunk: rgba(106, 113, 131, .13);--mark: rgba(214, 161, 94, .45);--code-keyword: #8250c4;--code-string: #2f7d3f;--code-number: #a35a12;--code-comment: #8a91a1;--code-title: #2360b4;--code-attr: #16736a;--code-meta: #6a7183;--code-danger: #c1382b;--project-color-s: 60%;--project-color-l: 42%;color-scheme:light}:root,:root[data-terminal-theme=dark]{--terminal-bg: #12141a}:root[data-terminal-theme=light]{--terminal-bg: #fbfbfd}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--surface);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;overflow:hidden}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:disabled{opacity:.4;cursor:default}code,kbd{font-family:Cascadia Mono,Consolas,monospace}.app{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--chrome);border-bottom:1px solid var(--border);flex:0 0 auto}.app-name{font-weight:600;letter-spacing:.2px;white-space:nowrap}.header-spacer{flex:1 1 auto;min-width:8px}.status{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);white-space:nowrap}.status-open{color:var(--accent);border-color:var(--accent)}.status-reconnecting{color:var(--warning);border-color:var(--warning)}.status-failed,.status-revoked{color:var(--danger);border-color:var(--danger)}.remote-badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--warning);color:var(--warning);white-space:nowrap;cursor:help}.meta{color:var(--text-dim);font-family:Cascadia Mono,Consolas,monospace;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta-dim{opacity:.75}.banner{display:flex;align-items:center;gap:12px;padding:8px 14px;font-size:12px;flex:0 0 auto}.banner-error{background:color-mix(in srgb,var(--danger) 12%,transparent);border-bottom:1px solid var(--danger);color:var(--danger)}.banner-lines{white-space:pre-line}.banner-notice{background:color-mix(in srgb,var(--warning) 12%,transparent);border-bottom:1px solid var(--warning);color:var(--warning);align-items:flex-start;line-height:1.5}.banner-notice code{font-size:11px;background:color-mix(in srgb,var(--text) 10%,transparent);padding:1px 4px;border-radius:3px}.banner-close{margin-left:auto;font-size:16px;line-height:1}.banner-support{background:color-mix(in srgb,var(--accent) 10%,transparent);border-bottom:1px solid var(--accent);color:var(--text)}.banner-support-link{color:var(--accent);font-weight:600}.banner-support-dismiss{margin-left:auto}.support-hint a{color:var(--accent)}.app-body{flex:1 1 auto;min-height:0;display:flex}.sidebar{width:270px;flex:0 0 auto;display:flex;flex-direction:column;background:var(--chrome-alt);border-right:1px solid var(--border);min-height:0}.sidebar-header{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--border);flex:0 0 auto}.sidebar-filter{flex:1 1 auto;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:5px 8px;font:inherit;font-size:12px}.sidebar-filter:focus{outline:1px solid var(--accent)}.icon-button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border:1px solid var(--border);border-radius:4px;color:var(--text-dim);line-height:1}.icon-button:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.sound-control{position:relative;flex:0 0 auto;display:inline-flex}.sound-volume{position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:30;display:none;padding-top:4px}.sound-control:hover .sound-volume,.sound-control:focus-within .sound-volume{display:block}.sound-volume-box{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 6px;border:1px solid var(--border);border-radius:5px;background:var(--chrome);box-shadow:0 4px 14px #00000059}.sound-volume-slider{writing-mode:vertical-lr;direction:rtl;width:16px;height:96px;margin:0;accent-color:var(--accent);cursor:pointer}.sound-volume-value{font-size:10px;color:var(--text-dim);font-variant-numeric:tabular-nums}.icon-button-on{color:var(--accent);border-color:var(--accent)}.link-button{flex:0 0 auto;color:var(--text-dim);font-size:11px;padding:2px 4px;border-radius:4px}.link-button:hover{color:var(--accent);background:var(--hover)}.sidebar-progress{padding:6px 10px;font-size:11px;color:var(--text-dim);border-bottom:1px solid var(--border)}.sidebar-scroll{flex:1 1 auto;overflow-y:auto;padding:4px 0 12px}.sidebar-empty{padding:12px;color:var(--text-dim);font-size:12px}.project{padding:1px 6px}.project-row{display:flex;align-items:center;gap:4px}.project-toggle{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:4px;text-align:left}.project-toggle:hover{background:var(--hover)}.chevron{flex:0 0 auto;display:inline-block;transition:transform .12s ease;color:var(--text-dim)}.chevron-open{transform:rotate(90deg)}.project-swatch{flex:0 0 auto;width:3px;align-self:stretch;border-radius:2px;min-height:12px}.project-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-count{flex:0 0 auto;font-size:10px;color:var(--text-dim);background:var(--surface);border-radius:999px;padding:1px 6px}.project-missing{margin:0 6px 4px 26px;font-size:10px;color:var(--warning)}.session-list{list-style:none;margin:0 0 6px;padding:0 0 0 18px}.session-item{display:block;width:100%;padding:4px 8px;border-radius:4px;border-left:1px solid var(--border);text-align:left}.session-item:hover:not(:disabled){background:var(--hover);border-left-color:var(--accent)}.session-title{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-meta{display:block;font-size:10px;color:var(--text-dim)}.workspace{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.workspace-narrow{flex:0 0 360px}.tab-bar{display:flex;align-items:stretch;gap:2px;padding:4px 6px 0;background:var(--chrome);border-bottom:1px solid var(--border);flex:0 0 auto;overflow-x:hidden}.tab{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:44px;max-width:200px;padding:6px 8px;border:1px solid transparent;border-bottom:none;border-radius:5px 5px 0 0;cursor:pointer;white-space:nowrap;color:var(--text-dim);-webkit-user-select:none;user-select:none;box-shadow:inset 0 -3px 0 var(--tab-project-color, transparent)}.tab:hover{background:var(--hover)}.tab-active{background:var(--surface);border-color:var(--tab-project-color, var(--border));color:var(--text)}.tab.tab-attention{animation:tab-attention .5s step-end 2}@keyframes tab-attention{0%{background:var(--surface);border-color:var(--tab-project-color, var(--border));color:var(--text)}60%,to{background:transparent;border-color:transparent;color:var(--text-dim)}}.tab-dead .tab-label{text-decoration:line-through;opacity:.7}.tab-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:0 0 auto}.tab-dot-dead{background:var(--text-dim)}.tab-dot-sleeping{background:transparent;border:1px solid var(--text-dim);width:7px;height:7px;box-sizing:border-box}.tab-working{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;height:6px}.tab-working i{width:3px;height:3px;border-radius:50%;background:var(--accent);animation:tab-working-pulse 1.1s ease-in-out infinite}.tab-working i:nth-child(2){animation-delay:.18s}.tab-working i:nth-child(3){animation-delay:.36s}@keyframes tab-working-pulse{0%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.tab-bang{flex:0 0 auto;width:6px;text-align:center;font-size:12px;font-weight:700;line-height:1;color:var(--warning)}.tab-pending{opacity:.62;cursor:default;font-style:italic}.tab-opening{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:7px;height:7px}.tab-opening i{width:7px;height:7px;box-sizing:border-box;border-radius:50%;border:1px solid var(--text-dim);border-top-color:var(--accent);animation:tab-opening-spin .7s linear infinite}@keyframes tab-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.tab-working i{animation:none;opacity:1}.tab-opening i{animation:none}}.tab-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.tab-close{flex:0 0 auto;font-size:14px;line-height:1;color:var(--text-dim);padding:0 2px;opacity:0}.tab:hover .tab-close,.tab-active .tab-close{opacity:1}.tab-close:hover{color:var(--danger)}.tab-input{background:var(--surface);border:1px solid var(--accent);border-radius:3px;color:var(--text);font:inherit;padding:1px 4px;width:150px}.tab-new{flex:0 0 auto;padding:4px 10px;color:var(--text-dim);font-size:15px;line-height:1}.tab-new:hover:not(:disabled){color:var(--accent)}.split-button{display:inline-flex;align-items:stretch;flex:0 0 auto}.tab-new.split-button-main{padding-right:3px}.tab-new.split-button-arrow{padding:4px 7px 4px 2px;font-size:10px}.icon-button.split-button-main{border-top-right-radius:0;border-bottom-right-radius:0}.icon-button.split-button-arrow{min-width:15px;padding:0 3px;margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;font-size:9px}.icon-button.split-button-main:hover:not(:disabled),.icon-button.split-button-arrow:hover:not(:disabled){position:relative}.agent-badge{display:inline-block;margin-right:5px;padding:0 3px;border:1px solid var(--border);border-radius:3px;font-size:9px;font-weight:600;line-height:13px;letter-spacing:.3px;color:var(--text-dim);vertical-align:1px}.chat-stack{position:relative;flex:1 1 auto;min-height:0;min-width:0;display:flex}.conversation-pane{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column}.composer{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding:0 10px 10px;border-top:1px solid var(--border);background:var(--chrome-alt)}.composer-divider{height:8px;margin:0 -10px;border-left:none}.composer-dragging{outline:1px dashed var(--accent);outline-offset:-3px}.composer-problem{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger);font-size:11.5px}.composer-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{position:relative;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.chip-image img{display:block;height:56px;width:auto;max-width:140px;object-fit:cover;border-radius:5px;cursor:zoom-in}.chip-image{margin:0;line-height:0;overflow:hidden}.chip-text{display:flex;align-items:center;flex-wrap:wrap;max-width:100%}.chip-toggle{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px;color:var(--text-dim)}.chip-toggle:hover{color:var(--text)}.chip-icon{color:var(--accent)}.chip-chevron{font-size:9px}.chip-open{flex:1 0 100%}.chip-editor{flex:1 0 100%;box-sizing:border-box;width:100%;height:180px;min-height:80px;margin:0;padding:8px;border:none;border-top:1px solid var(--border);border-radius:0 0 6px 6px;background:transparent;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--text);resize:vertical;scrollbar-width:thin}.chip-editor:focus{outline:none;box-shadow:inset 0 0 0 1px var(--accent)}.chip-remove{position:absolute;top:2px;right:3px;font-size:13px;line-height:1;color:var(--text-dim);background:color-mix(in srgb,var(--surface) 80%,transparent);border-radius:3px;padding:0 3px;opacity:0}.chip:hover .chip-remove,.chip:focus-within .chip-remove{opacity:1}.chip-remove:hover{color:var(--danger)}.chip-file-label{cursor:default}.chip-file-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-file-size{color:var(--text-dim)}.composer-attach{display:inline-flex;align-items:center;color:var(--text-dim)}.composer-attach:hover:not(:disabled){color:var(--accent)}.composer-input{width:100%;min-height:34px;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;font-size:calc(13px * var(--thread-scale, 1));line-height:1.5;resize:none;overflow-y:auto;scrollbar-width:thin}.composer-input:focus{outline:none;border-color:var(--composer-accent, var(--accent))}.composer-bar{display:flex;align-items:center;gap:8px}.composer-spacer{flex:1 1 auto}.agent-select-mode{font-weight:500}.agent-select{flex:0 0 auto;max-width:130px;padding:4px 6px;background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--text-dim);font:inherit;font-size:11px}.agent-select:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.composer-field{position:relative;display:flex}.composer-field .composer-input{min-height:38px;padding-right:44px}.composer-field-two .composer-input{padding-right:78px}.composer-field-actions{position:absolute;right:6px;bottom:5px;display:flex;gap:6px}.composer-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--chrome-alt);color:var(--text-dim)}.composer-send{background:var(--accent);border-color:var(--accent);color:var(--surface)}.composer-send:disabled{background:var(--chrome-alt);border-color:var(--border);color:var(--text-dim);opacity:.6}.composer-stop:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.terminal-stack{position:relative;height:100%;width:100%;min-height:0;padding:6px 8px;background:var(--terminal-bg)}.terminal-surface{position:absolute;top:6px;right:8px;bottom:6px;left:8px;touch-action:none}.terminal-surface-hidden{visibility:hidden;pointer-events:none}.terminal-surface .xterm{height:100%}.empty-state{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;color:var(--text-dim)}.note-attach{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.empty-hint{font-size:12px;max-width:380px;text-align:center}.primary-button{margin-top:8px;padding:7px 14px;border:1px solid var(--accent);border-radius:5px;color:var(--accent);font-family:Cascadia Mono,Consolas,monospace;font-size:12px}.primary-button:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}.divider{flex:0 0 auto;width:7px;cursor:col-resize;background:linear-gradient(to right,transparent 0,transparent 2px,var(--border) 2px,var(--border) 3px,transparent 3px);touch-action:none}.divider:hover{background:linear-gradient(to right,transparent 0,transparent 2px,var(--accent) 2px,var(--accent) 4px,transparent 4px)}.panel-slot{flex:0 0 auto;min-width:0;display:flex;flex-direction:column}.panel-slot-collapsed{width:0!important;overflow:hidden}.panel-slot-expanded{flex:1 1 auto}.panel-peek{flex:0 0 auto;width:22px;border:none;border-left:1px solid var(--border);background:var(--chrome-alt);color:var(--text-dim);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:0}.panel-peek:hover{background:var(--chrome);color:var(--text)}.panel-peek-arrow{font-size:15px;line-height:1}.panel-peek-label{writing-mode:vertical-rl;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.panel-peek-left{border-left:none;border-right:1px solid var(--border)}.side-panel{display:flex;flex-direction:column;flex:1 1 0;min-height:auto;width:100%;min-width:0;background:var(--chrome-alt);border-left:1px solid var(--border)}.side-panel-hidden{flex:0 0 0;visibility:hidden;overflow:hidden;border-left:none}.side-panel-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);flex:0 0 auto}.project-swatch{flex:0 0 auto;width:10px;height:10px;border-radius:2px}.side-panel-title{flex:1 1 auto;min-width:0;font-weight:600;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-panel-tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid var(--border);flex:0 0 auto;min-width:0}.side-panel-tab{display:flex;align-items:center;gap:5px;flex:0 1 auto;min-width:0;padding:5px 10px;border-radius:5px 5px 0 0;border:1px solid transparent;border-bottom:none;font-size:11.5px;color:var(--text-dim);white-space:nowrap}.side-panel-tab-label{min-width:3ch;overflow:hidden;text-overflow:ellipsis}.side-panel-tab .side-panel-badge,.side-panel-tab .side-panel-dot{flex:none}.side-panel-tab:hover{background:var(--hover)}.side-panel-tab-active{background:var(--surface);border-color:var(--border);color:var(--text)}.side-panel-badge{font-size:10px;line-height:1;padding:2px 5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.side-panel-dot{width:6px;height:6px;border-radius:50%;background:var(--warning);flex:0 0 auto}.side-panel-body{position:relative;flex:1 1 auto;min-height:0;contain:size;overflow:clip;min-width:0;display:flex;flex-direction:column}.cli-slot{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}.cli-slot-hidden{visibility:hidden;pointer-events:none}.hdivider{flex:0 0 auto;height:7px;cursor:row-resize;background:linear-gradient(to bottom,transparent 0,transparent 3px,var(--border) 3px,var(--border) 4px,transparent 4px);border-left:1px solid var(--border);touch-action:none}.hdivider:hover{background:linear-gradient(to bottom,transparent 0,transparent 2px,var(--accent) 2px,var(--accent) 4px,transparent 4px)}.console-slot{flex:0 1 auto;min-height:90px;display:flex}.console-pane{display:flex;flex-direction:column;width:100%;min-width:0;min-height:0;background:var(--surface);border-left:1px solid var(--border);border-top:1px solid var(--border)}.console-header{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--chrome-alt);border-bottom:1px solid var(--border);flex:0 0 auto}.strip-tabs{display:flex;align-items:stretch;gap:2px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.strip-tab{flex:0 0 auto;display:flex;align-items:center;max-width:160px;border:1px solid transparent;border-radius:4px;padding-left:4px;font-size:12px;color:var(--text-dim);white-space:nowrap}.strip-tab:hover{background:var(--chrome-alt)}.strip-tab.is-active{border-color:var(--border);background:var(--surface);color:var(--text)}.strip-tab.is-dead .strip-tab-label{text-decoration:line-through;opacity:.6}.strip-tab-label,.strip-tab-close,.strip-tab-new{border:none;background:none;color:inherit;font:inherit;cursor:pointer}.strip-tab-label{flex:1 1 auto;min-width:0;padding:3px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strip-tab-close{flex:0 0 auto;padding:3px 5px;color:var(--text-dim);opacity:0;line-height:1;border-radius:3px}.strip-tab:hover .strip-tab-close,.strip-tab.is-active .strip-tab-close{opacity:1}.strip-tab-close:hover{color:var(--danger);background:var(--hover)}.strip-tab-new{flex:0 0 auto;color:var(--text-dim);font-size:14px;line-height:1;padding:0 7px}.strip-tab-new:hover{color:var(--text)}.strip-spacer{flex:1 1 auto}.strip-collapsed{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:6px 10px;border:none;border-top:1px solid var(--border);background:var(--chrome-alt);color:var(--text-dim);font:inherit;font-size:12px;cursor:pointer;text-align:left}.strip-collapsed:hover{background:var(--chrome);color:var(--text)}.strip-collapsed-arrow{font-size:10px}.strip-collapsed-count{padding:0 5px;border-radius:8px;background:var(--chrome);font-size:11px;font-variant-numeric:tabular-nums}.console-body{position:relative;flex:1 1 auto;min-height:0}.console-body .terminal-surface{top:4px;right:4px;bottom:4px;left:8px}.console-empty{display:flex;align-items:center;justify-content:center;height:100%;padding:8px;text-align:center}.panel-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.panel-subhead{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);flex:0 0 auto;min-height:34px}.panel-subhead-title{flex:1 1 auto;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-tagline{color:var(--text-dim);font-size:10px}.panel-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 10px 14px;scrollbar-width:thin}.panel-note{margin:14px 10px;color:var(--text-dim);font-size:12px;line-height:1.6}.panel-note code{font-size:11px}.conversation-search{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid var(--border);flex:0 0 auto}.conversation-waiting{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:6px 10px;border-top:1px solid var(--warning);background:var(--chrome-alt);font-size:12px;color:var(--text)}.conversation-wake{border-top-color:var(--border)}.conversation-wake-dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--text-dim);box-sizing:border-box;flex:0 0 auto}.conversation-wake span:nth-of-type(2){flex:1 1 auto;color:var(--text-dim)}.conversation-waiting .primary-button-small{flex:0 0 auto;white-space:nowrap}.primary-button-small{margin-top:0;padding:3px 10px;font-size:11px}.conversation-waiting-dot{width:7px;height:7px;border-radius:50%;background:var(--warning);flex:0 0 auto;animation:waiting-pulse 1.6s ease-in-out infinite}@keyframes waiting-pulse{0%,to{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.conversation-waiting-dot{animation:none}}.conversation-search-input{flex:1 1 auto;min-width:0;padding:5px 8px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font:inherit;font-size:12px}.conversation-search-input:focus{outline:none;border-color:var(--accent)}.conversation-matches{font-size:11px;color:var(--text-dim);white-space:nowrap}.conversation-spacer{flex:1 1 auto}.conversation-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}.conversation-more{align-self:center;padding:4px 12px;border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--text-dim)}.conversation-more:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.conversation-more-loading{display:inline-flex;align-items:center;gap:6px;color:var(--accent);border-color:var(--accent)}.conversation-more-spinner{width:10px;height:10px;box-sizing:border-box;border-radius:50%;border:1.5px solid var(--text-dim);border-top-color:var(--accent);animation:tab-opening-spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.conversation-more-spinner{animation:none}}.conversation-empty{color:var(--text-dim);font-size:12px;line-height:1.6;margin:20px 4px}.conversation-scroll-frame{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.conversation-jump{position:absolute;right:16px;bottom:12px;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:32px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--raised);color:var(--text);font-size:14px;line-height:1;box-shadow:0 2px 8px #00000040}.conversation-jump:hover,.conversation-jump.has-unseen{border-color:var(--accent)}.conversation-jump:hover{color:var(--accent)}.conversation-jump.is-hinting{animation:jump-hint .5s step-end 2}@keyframes jump-hint{0%{border-color:var(--accent);color:var(--accent)}60%,to{border-color:var(--border);color:var(--text)}}.conversation-jump-tip{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--raised);color:var(--text);font-size:12px;font-weight:400;line-height:1.3;white-space:nowrap;box-shadow:0 2px 8px #00000040;pointer-events:none}.conversation-jump-count{font-size:11px;font-weight:600;color:var(--accent)}.conversation-jump-own{top:12px;bottom:auto}.conversation-jump.is-seeking{opacity:.6;cursor:progress}.thread-status{flex:0 0 auto;display:flex;flex-direction:column;gap:3px;padding:5px 10px;border-top:1px solid var(--border);background:var(--chrome-alt);font-size:12px;color:var(--text-dim)}.thread-status-row{display:flex;align-items:center;gap:8px;min-width:0}.thread-status-text{min-width:0;overflow-wrap:anywhere}.thread-status-working .thread-status-text,.thread-status-sending .thread-status-text{color:var(--text)}.thread-status-check{flex:0 0 auto;font-size:11px;font-weight:700;line-height:1;color:var(--accent)}.thread-status-sending-dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--accent);box-sizing:border-box;flex:0 0 auto;animation:waiting-pulse 1.6s ease-in-out infinite}.thread-status-subagent-mark i{background:var(--text-dim)}@media(prefers-reduced-motion:reduce){.thread-status-sending-dot{animation:none}}:root[data-thread-font=m] .conversation-pane,:root[data-thread-font=m] .composer{--thread-scale: 1.12}:root[data-thread-font=l] .conversation-pane,:root[data-thread-font=l] .composer{--thread-scale: 1.28}:root[data-notes-font=m] .notes{--notes-scale: 1.12}:root[data-notes-font=l] .notes{--notes-scale: 1.28}.thread-font-button{font-size:11px;font-weight:600;letter-spacing:-.02em}.thread-font-button .thread-font-big{font-size:14px}.turn{position:relative;padding:2px 0}.turn-user{border-left:2px solid var(--accent);border-radius:0 6px 6px 0;background:color-mix(in srgb,var(--accent) 7%,transparent);padding:8px 12px}.turn-match{outline:1px solid var(--warning);outline-offset:2px}.turn-actions{position:absolute;z-index:1;top:2px;right:calc(2px + var(--turn-actions-shift, 0px));display:flex;gap:2px;opacity:0;transition:opacity .12s,right .12s;background:color-mix(in srgb,var(--surface) 85%,transparent);border-radius:4px}.turn:hover .turn-actions,.turn:focus-within .turn-actions{opacity:1}.turn-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:10px;color:var(--text-dim);font-family:Cascadia Mono,Consolas,monospace}.turn-who{font-family:Segoe UI,system-ui,sans-serif;font-weight:600;color:var(--accent)}.turn-meta-bit{padding:0 5px;border-radius:999px;border:1px solid var(--border)}.turn-queued{padding:0 5px;border-radius:999px;border:1px solid var(--warning);color:var(--warning)}.turn-notice{padding:4px 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);font-size:calc(12px * var(--thread-scale, 1));text-align:center;color:var(--text-dim)}.turn-notice-interrupted{color:var(--warning)}.turn-notice-error{color:var(--danger)}.fold-toggle{display:block;margin-top:4px;font-size:11px;color:var(--accent)}.fold-toggle:hover{text-decoration:underline}.conversation-image{display:block;max-width:260px;max-height:180px;border:1px solid var(--border);border-radius:6px;cursor:zoom-in;margin:4px 0}.conversation-image-placeholder{font-size:11px;color:var(--text-dim);padding:10px;border:1px dashed var(--border);border-radius:6px;margin:4px 0;width:fit-content}.part-mine{white-space:pre-wrap}.part-own{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.part-own>.part-text{align-self:stretch}.thread-pasted{max-width:100%;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.thread-pasted-open{align-self:stretch}.thread-pasted-toggle{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:calc(11.5px * var(--thread-scale, 1));color:var(--text-dim)}.thread-pasted-toggle:hover{color:var(--text)}.thread-pasted-text{max-height:320px;overflow:auto;padding:8px;border-top:1px solid var(--border);font-family:Cascadia Mono,Consolas,monospace;font-size:calc(11.5px * var(--thread-scale, 1));line-height:1.5;overflow-wrap:anywhere;scrollbar-width:thin}.part-text{overflow-wrap:anywhere;line-height:1.55;font-size:calc(12.5px * var(--thread-scale, 1))}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md-paragraph{margin:0 0 8px;white-space:pre-wrap}.md-heading{margin:14px 0 6px;font-weight:600;line-height:1.35}.md-h1{font-size:calc(16px * var(--thread-scale, 1))}.md-h2{font-size:calc(14.5px * var(--thread-scale, 1))}.md-h3{font-size:calc(13.5px * var(--thread-scale, 1))}.md-h4,.md-h5,.md-h6{font-size:calc(12.5px * var(--thread-scale, 1));color:var(--text-dim)}.md-list{margin:0 0 8px;padding-left:20px}.md-list li{margin:2px 0}.md-quote{margin:0 0 8px;padding:2px 0 2px 10px;border-left:2px solid var(--border);color:var(--text-dim);white-space:pre-wrap}.md-rule{border:none;border-top:1px solid var(--border);margin:12px 0}.md code{font-family:Cascadia Mono,Consolas,monospace;font-size:calc(11.5px * var(--thread-scale, 1));background:color-mix(in srgb,var(--text) 9%,transparent);border-radius:3px;padding:1px 4px}.md-code-wrap{position:relative;margin:0 0 8px}.md-code{margin:0;padding:10px 12px;background:var(--chrome-alt);border:1px solid var(--border);border-radius:6px;overflow-x:auto;scrollbar-width:thin}.md-code code{background:none;padding:0;font-size:calc(11.5px * var(--thread-scale, 1));line-height:1.5}.md-code-tools{position:absolute;top:3px;right:6px;display:flex;align-items:center;gap:6px}.turn-actions+.part-text>.md>.md-code-wrap:first-child>.md-code-tools{right:36px}.md-code-lang{font-size:9.5px;color:var(--text-dim);text-transform:lowercase}.md-code-copy{padding:1px 5px;border-radius:4px;font-size:12px;line-height:1.3;color:var(--text-dim);background:color-mix(in srgb,var(--chrome-alt) 85%,transparent);opacity:0;transition:opacity .12s}.md-code-wrap:hover .md-code-copy,.md-code-copy:focus-visible{opacity:1}.md-code-copy:hover{color:var(--text)}.md-table-wrap{overflow-x:auto;margin:0 0 8px;scrollbar-width:thin}.md-table{border-collapse:collapse;font-size:calc(12px * var(--thread-scale, 1))}.md-table th,.md-table td{border:1px solid var(--border);padding:4px 8px;text-align:left;vertical-align:top}.md-table th{background:var(--chrome-alt);font-weight:600}.md a{color:var(--accent)}.part-truncated{color:var(--warning);font-size:calc(11px * var(--thread-scale, 1))}.part-text mark,.tool-pre mark{background:var(--mark);color:inherit;border-radius:2px}.tool-group{margin:4px 0}.tool-group-summary{display:flex;align-items:center;gap:8px;padding:3px 4px;cursor:pointer;list-style:none;color:var(--text-dim);font-size:calc(12px * var(--thread-scale, 1));border-radius:5px}.tool-group-summary::-webkit-details-marker{display:none}.tool-group-summary:hover{background:var(--chrome);color:var(--text)}.tool-group-chevron{font-size:10px;transition:transform .12s ease}.tool-group[open]>.tool-group-summary>.tool-group-chevron{transform:rotate(90deg)}.tool-group-count{flex:1 1 auto}.tool-group-time{font-variant-numeric:tabular-nums;font-size:11px}.tool-group-body{margin-left:7px;padding-left:10px;border-left:1px solid var(--border)}.tool{margin-top:6px;border:1px solid var(--border);border-radius:5px;background:var(--chrome)}.tool-summary{display:flex;align-items:center;gap:8px;padding:5px 8px;cursor:pointer;font-size:calc(11px * var(--thread-scale, 1));list-style:none}.tool-summary::-webkit-details-marker{display:none}.tool-summary:before{content:"▸";color:var(--text-dim);font-size:10px}.tool[open]>.tool-summary:before{content:"▾"}.tool-name{font-family:Cascadia Mono,Consolas,monospace;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-error{color:var(--danger);border:1px solid var(--danger);border-radius:3px;padding:0 4px;font-size:calc(10px * var(--thread-scale, 1))}.tool-images{color:var(--text-dim);font-size:10px}.tool-block{padding:0 8px 8px}.tool-label{display:block;font-size:calc(10px * var(--thread-scale, 1));color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.tool-pre{margin:0;padding:6px 8px;background:var(--surface);border-radius:4px;font-family:Cascadia Mono,Consolas,monospace;font-size:calc(11px * var(--thread-scale, 1));line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow-y:auto}.tool-pre-error{color:var(--danger)}.meter{display:flex;flex-direction:column;gap:5px}.meter-compact{flex:0 0 auto;flex-direction:row;align-items:center;gap:6px;white-space:nowrap}.meter-bar-inline{display:block;width:56px;flex:0 0 auto}.meter-bar-inline .meter-fill{display:block}.meter-compact .meter-value{font-size:11px}.meter-idle{display:flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap;color:var(--text-dim)}.meter-idle .meter-value{font-size:11px;color:var(--text-dim)}.meter-idle .meter-bar{flex:1 1 56px}.meter-idle .meter-bar-inline{flex:0 0 auto}.meter-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px}.meter-row-dim{color:var(--text-dim);font-size:10px}.meter-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.meter-value{font-family:Cascadia Mono,Consolas,monospace;font-size:12px}.meter-dim{color:var(--text-dim)}.meter-bar{height:4px;border-radius:999px;background:var(--border);overflow:hidden}.meter-fill{height:100%;border-radius:999px;transition:width .25s}.meter-fill-ok{background:var(--accent)}.meter-fill-warn{background:var(--warning)}.meter-fill-danger{background:var(--danger)}.meter-note{font-size:10px;color:var(--text-dim);font-style:italic}.git-headline{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:8px;overflow:hidden}.git-branch{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.git-upstream{font-size:10px;color:var(--text-dim);font-family:Cascadia Mono,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.git-ab{display:flex;gap:5px;font-size:11px;font-family:Cascadia Mono,Consolas,monospace;white-space:nowrap}.git-ahead{color:var(--accent)}.git-behind{color:var(--warning)}.git-group{margin-bottom:12px}.git-group-title{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim)}.git-group-count{font-size:10px;padding:0 5px;border-radius:999px;background:var(--border);color:var(--text-dim);letter-spacing:0}.git-list{list-style:none;margin:0;padding:0}.git-item{display:flex;align-items:baseline;gap:7px;width:100%;padding:3px 5px;border-radius:4px;text-align:left}.git-item:hover{background:var(--hover)}.git-item-static{cursor:default}.git-item-static:hover{background:none}.git-badge{flex:0 0 auto;width:15px;text-align:center;font-family:Cascadia Mono,Consolas,monospace;font-size:10px;font-weight:700;border-radius:3px;color:var(--text-dim)}.git-badge-added,.git-badge-untracked{color:var(--accent)}.git-badge-modified,.git-badge-renamed,.git-badge-copied,.git-badge-type-changed{color:var(--warning)}.git-badge-deleted,.git-badge-conflict{color:var(--danger)}.git-path{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden}.git-path-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-path-dir{font-size:10px;color:var(--text-dim);direction:rtl;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-worktree{display:flex;flex-direction:column;padding:3px 5px}.git-worktree-branch{font-size:12px}.git-worktree-path{font-size:10px;color:var(--text-dim);font-family:Cascadia Mono,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff{font-family:Cascadia Mono,Consolas,monospace;font-size:11px;line-height:1.5;white-space:pre;min-width:max-content}.diff-line{display:flex;align-items:baseline}.diff-num{flex:0 0 auto;width:34px;padding-right:6px;text-align:right;color:var(--text-dim);opacity:.6;-webkit-user-select:none;user-select:none}.diff-marker{flex:0 0 auto;width:12px;color:var(--text-dim);-webkit-user-select:none;user-select:none}.diff-text{flex:1 1 auto}.diff-line-added{background:var(--diff-added)}.diff-line-added .diff-marker{color:var(--accent)}.diff-line-removed{background:var(--diff-removed)}.diff-line-removed .diff-marker{color:var(--danger)}.diff-line-hunk{background:var(--diff-hunk);color:var(--text-dim)}.diff-line-meta{color:var(--text-dim);opacity:.75}.tree{list-style:none;margin:0;padding:0}.tree-item{display:flex;align-items:center;border-radius:4px}.tree-item:hover{background:var(--hover)}.tree-row{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0;padding-top:3px;padding-bottom:3px;padding-right:6px;border-radius:4px;text-align:left}.tree-action{flex:0 0 auto;display:flex;align-items:center;padding:2px 6px 2px 2px;color:var(--text-dim);visibility:hidden}.tree-item:hover .tree-action,.tree-action:focus-visible,.tree-action-done{visibility:visible}.tree-action-done,.tree-action:hover{color:var(--accent)}.tree-chevron{flex:0 0 auto;width:10px;color:var(--text-dim);transition:transform .12s ease}.tree-chevron-open{transform:rotate(90deg)}.tree-row-dir .tree-name{font-weight:500}.tree-name{flex:1 1 auto;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-size{flex:0 0 auto;font-size:10px;color:var(--text-dim);opacity:.7}.tree-search{position:relative;display:flex;align-items:center;padding:0 8px 6px}.tree-search-input{flex:1 1 auto;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:5px 24px 5px 8px;font:inherit;font-size:12px}.tree-search-input:focus{outline:1px solid var(--accent)}.tree-search-clear{position:absolute;right:12px;color:var(--text-dim);font-size:14px;line-height:1;padding:2px 4px}.tree-search-clear:hover{color:var(--text)}.tree-result{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;gap:1px}.tree-result-path{font-size:10px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.tree-results .tree-row{padding-left:6px}.tree-row-hidden .tree-name{color:var(--text-dim);font-style:italic}.tree-loading,.tree-empty,.tree-hidden{padding:3px 6px;font-size:10px;color:var(--text-dim);font-style:italic}.plan-list{list-style:none;margin:0;padding:4px 0}.plan-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:6px 10px;border-radius:4px;text-align:left}.plan-row:hover{background:var(--hover)}.plan-item{display:flex;align-items:center;border-radius:4px}.plan-item:hover{background:var(--hover)}.plan-item .plan-row{flex:1 1 auto;width:auto;min-width:0}.plan-item .plan-row:hover{background:transparent}.plan-action{align-self:stretch;padding:0 10px}.plan-item:hover .plan-action{visibility:visible}.plan-name{font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.plan-path{font-size:10px;color:var(--text-dim);direction:rtl;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.plan-meta{font-size:10px;color:var(--text-dim)}.plan-row-missing{cursor:default;opacity:.6}.plan-row-missing:hover{background:transparent}.plan-body{padding:6px 10px 16px}.doc-strip{gap:4px;padding:4px 8px}.doc-strip-list{flex:0 0 auto;padding:3px 8px;border:1px solid transparent;border-radius:4px;background:none;color:var(--accent);font:inherit;font-size:12px;white-space:nowrap;cursor:pointer}.doc-strip-list:hover{background:var(--chrome-alt)}.doc-strip-list.is-active{border-color:var(--border);background:var(--surface);color:var(--text)}.doc-tabs{flex:1 1 auto}.doc-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid var(--border);flex:0 0 auto}.doc-mode{display:inline-flex;flex:0 0 auto;border:1px solid var(--border);border-radius:4px;overflow:hidden}.doc-mode button{padding:3px 8px;border:none;background:none;color:var(--text-dim);font:inherit;font-size:11px;cursor:pointer}.doc-mode button+button{border-left:1px solid var(--border)}.doc-mode button.is-active{background:var(--raised);color:var(--text)}.doc-note{margin:6px 10px 0}::highlight(doc-search){background-color:var(--mark)}::highlight(doc-search-current){background-color:var(--accent);color:var(--surface)}.memory-reach{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;padding:7px 10px;border-bottom:1px solid var(--border);flex:0 0 auto;font-size:11.5px;color:var(--text-dim)}.memory-reach-item{display:inline-flex;align-items:center;gap:5px;cursor:default}.memory-reach-on{color:var(--text)}.memory-reach-mark{width:10px;text-align:center;color:var(--text-dim)}.memory-reach-on .memory-reach-mark{color:var(--accent)}.memory-reach-adjust{margin-left:auto}.memory-intro{margin:6px 0 4px;color:var(--text-dim);font-size:12px;line-height:1.6}.memory-intro p{margin:0 0 8px}.memory-intro code,.memory-warning code,.memory-fragment-note code,.memory-empty code,.memory-option code{font-size:11px;color:var(--text)}.memory-section-label{margin:14px 0 6px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.memory-form{margin-bottom:4px}.memory-option{display:flex;align-items:baseline;gap:7px;padding:3px 0;font-size:12px;cursor:pointer}.memory-option input{margin:0;accent-color:var(--accent);align-self:center}.memory-option-hint{color:var(--text-dim);font-size:11px}.memory-actions{display:flex;align-items:center;gap:8px;margin-top:12px}.memory-warning{margin:8px 0;padding:6px 9px;border-left:2px solid var(--warning);background:var(--chrome-alt);font-size:11.5px;line-height:1.55;color:var(--text)}.memory-warning-line{margin:0}.memory-git-message{margin:4px 0 0;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-dim)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.memory-message{display:flex;align-items:flex-start;gap:8px;margin:4px 0 8px;padding:6px 6px 6px 9px;border-left:2px solid var(--accent);background:var(--chrome-alt);font-size:11.5px;line-height:1.55}.memory-message>span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.memory-message-error{border-left-color:var(--danger)}.memory-callout{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:8px 0;padding:7px 9px;border:1px solid var(--border);border-radius:5px;font-size:11.5px;line-height:1.5}.memory-callout>span{flex:1 1 180px}.memory-empty{margin:6px 0;color:var(--text-dim);font-size:11.5px;line-height:1.55}.memory-change-list{list-style:none;margin:0;padding:0}.memory-change{margin-bottom:10px}.memory-change-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;margin-bottom:4px}.memory-change-file{font-size:11.5px;color:var(--text)}.memory-preview{margin:0;padding:7px 9px;max-height:220px;overflow:auto;background:var(--chrome-alt);border:1px solid var(--border);border-radius:5px;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;line-height:1.5;white-space:pre;color:var(--text);scrollbar-width:thin}.memory-note-description{font-size:11px;color:var(--text-dim);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.memory-global{margin-top:18px;border-top:1px solid var(--border);padding-top:8px}.memory-global-summary{cursor:pointer;list-style:none;font-size:12px;color:var(--text-dim);padding:3px 0}.memory-global-summary::-webkit-details-marker{display:none}.memory-global-summary:before{content:"▸ ";font-size:10px}.memory-global[open]>.memory-global-summary:before{content:"▾ "}.memory-global-summary:hover{color:var(--text)}.memory-fragment{margin:12px 0}.memory-fragment-label{font-size:12px;color:var(--text)}.memory-fragment-target{min-width:0;font-size:10.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memory-fragment-body{display:flex;align-items:flex-start;gap:6px}.memory-fragment-body .memory-preview{flex:1 1 auto;min-width:0}.memory-fragment-body .tree-action-done{color:var(--accent);border-color:var(--accent)}.memory-fragment-note{margin:4px 0 0;font-size:11px;color:var(--text-dim);line-height:1.5}.md-local-link{color:var(--accent);padding:0;text-align:left}.md-local-link:hover{text-decoration:underline}.md code.md-file-link{cursor:pointer;text-decoration:underline dotted;text-decoration-color:color-mix(in srgb,var(--accent) 75%,transparent);text-underline-offset:2px}.md code.md-file-link:hover,.md code.md-file-link:focus-visible{color:var(--accent);text-decoration-style:solid}.preview{display:flex;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;line-height:1.55}.preview-gutter{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;padding-right:8px;margin-right:8px;border-right:1px solid var(--border);color:var(--text-dim);opacity:.55;-webkit-user-select:none;user-select:none}.preview-code{flex:1 1 auto;margin:0;font:inherit;white-space:pre;min-width:max-content}.preview-fallback .panel-note{margin-bottom:8px}.preview-open{margin:0 10px 14px}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag,.hljs-type,.hljs-built_in{color:var(--code-keyword)}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-quote{color:var(--code-string)}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-link{color:var(--code-number)}.hljs-comment{color:var(--code-comment);font-style:italic}.hljs-title,.hljs-section,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:var(--code-title)}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-variable,.hljs-template-variable,.hljs-params{color:var(--code-attr)}.hljs-meta,.hljs-tag,.hljs-punctuation{color:var(--code-meta)}.hljs-deletion{color:var(--code-danger)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.context-menu{position:fixed;z-index:40;min-width:190px;padding:4px;background:var(--raised);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column}.context-menu-item{padding:6px 10px;border-radius:4px;text-align:left;font-size:12px;white-space:nowrap}.context-menu-item:hover{background:var(--hover);color:var(--accent)}.context-menu-check{display:inline-block;width:16px;color:var(--accent)}.locale-button{font-size:10.5px;font-weight:600;letter-spacing:.04em}.agent-menu{position:fixed;z-index:45;min-width:180px;padding:4px;background:var(--raised);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column}.agent-menu-item{display:flex;align-items:baseline;gap:12px;padding:6px 10px;border-radius:4px;text-align:left;font-size:12px;white-space:nowrap;color:var(--text)}.agent-menu-item-active{background:var(--hover);color:var(--accent)}.agent-menu-item:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.agent-menu-label{flex:1 1 auto}.agent-menu-version{font-size:10px;color:var(--text-dim)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#00000073}.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;background:var(--chrome-alt);border:1px solid var(--border);border-radius:8px;box-shadow:0 16px 48px #0006}.modal-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.modal-title{flex:1 1 auto;font-weight:600}.modal-body{overflow-y:auto;padding:12px 14px 16px}.modal-section{margin:14px 0 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim)}.modal-section:first-child{margin-top:0}.modal-hint{margin:8px 0;font-size:11.5px;color:var(--text-dim);line-height:1.6}.settings-dialog{width:min(600px,calc(100vw - 32px))}.settings-row{display:flex;align-items:center;gap:10px;margin:6px 0}.settings-row-top{align-items:flex-start}.settings-more{flex-wrap:wrap}.settings-label{flex:0 0 150px;font-size:12.5px;color:var(--text)}.settings-choices{display:flex;flex-direction:column;gap:4px}.settings-choice{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text);cursor:pointer}.settings-panels{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px 12px}.settings-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;padding:6px 8px;border:1px solid var(--warning);border-radius:6px;font-size:12px;color:var(--text)}.settings-clis{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.settings-cli{display:flex;align-items:center;gap:10px;font-size:12.5px}.settings-cli-name{min-width:130px}.settings-cli-missing{padding-left:22px;color:var(--text-dim)}.settings-cli-detail{flex:1 1 auto;min-width:0;font-size:11.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-restart{margin:6px 0;font-size:12px;color:var(--warning)}.settings-problem{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px;color:var(--danger)}.section-hide{position:relative;display:inline-flex;flex:0 0 auto}.section-hide-confirm{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:max-content;max-width:280px;padding:8px 10px;background:var(--raised);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #0000004d;font-size:12px;color:var(--text);white-space:normal}.strip-collapsed-row{flex:0 0 auto;display:flex;align-items:center;border-top:1px solid var(--border);background:var(--chrome-alt)}.strip-collapsed-row .strip-collapsed{flex:1 1 auto;min-width:0;border-top:none}.strip-collapsed-row .section-hide{padding:0 6px}.status-line-state{margin:0 0 8px;font-weight:600;color:var(--warning)}.status-line-state-active{color:var(--accent)}.status-line-fragment{display:flex;align-items:flex-start;gap:6px}.status-line-fragment .tool-pre{flex:1 1 auto;min-width:0}.status-line-path{margin:4px 0;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.status-line-actions{display:flex;align-items:baseline;gap:10px;margin-top:12px}.status-line-actions .primary-button{margin-top:0}.remote-port{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-top:10px}.remote-port .modal-hint{margin:0}.remote-port-input,.remote-host-select,.remote-device-input{padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font:inherit;font-size:12px}.remote-port-input{width:72px;font-variant-numeric:tabular-nums}.remote-port-input:focus,.remote-host-select:focus,.remote-device-input:focus{border-color:var(--accent);outline:none}.remote-port .remote-port-invalid{color:var(--danger)}.remote-os{margin:4px 0;padding:2px 8px;border:1px solid var(--border);border-radius:4px}.remote-os-summary{padding:4px 0;font-size:12px;cursor:pointer}.remote-os[open]{padding-bottom:8px}.remote-os .modal-hint{margin:4px 0}.remote-trouble{margin:0;padding-left:16px}.remote-devices{margin:0;padding:0;list-style:none}.remote-device{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--border)}.remote-device:first-child{border-top:none}.remote-device-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.remote-device-label{max-width:100%;padding:0;font-weight:600;text-align:left;overflow-wrap:anywhere}.remote-device-label:hover{color:var(--accent)}.remote-device-input{width:min(260px,100%)}.remote-device-seen,.remote-device-paired{font-size:11px;color:var(--text-dim)}.remote-device-connected{color:var(--accent)}.remote-device .remote-device-confirm{color:var(--danger)}.remote-phone-command{white-space:pre-wrap;word-break:break-all}.remote-phone-qr{display:block;width:min(280px,100%);height:auto;margin:8px 0;border-radius:4px}.shortcut-list{margin:0}.shortcut-row{display:flex;align-items:baseline;gap:12px;padding:3px 0}.shortcut-row dt{flex:0 0 110px}.shortcut-row dd{margin:0;font-size:12px;color:var(--text-dim)}kbd{display:inline-block;padding:2px 6px;font-size:11px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--surface);white-space:nowrap}.question{margin-top:8px;border:1px solid var(--accent);border-radius:6px;background:var(--chrome);padding:10px}.question-done{border-color:var(--border)}.question-item+.question-item{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.question-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:8px}.question-header{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);border:1px solid var(--border);border-radius:3px;padding:1px 5px}.question-done .question-header{color:var(--text-dim)}.question-text{font-size:calc(13px * var(--thread-scale, 1));color:var(--text)}.question-hint{font-size:10px;color:var(--text-dim)}.question-options{display:flex;flex-direction:column;gap:6px}.question-option{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:7px 9px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}.question-option:hover:not(:disabled){border-color:var(--accent);background:var(--hover)}.question-option:disabled{cursor:default}.question-option-picked{border-color:var(--accent);background:var(--diff-added)}.question-option-label{font-size:calc(12px * var(--thread-scale, 1))}.question-option-desc{font-size:calc(11px * var(--thread-scale, 1));color:var(--text-dim);line-height:1.4}.question-foot{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px}.question-send{padding:5px 12px;border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:var(--surface);cursor:pointer;font:inherit;font-size:12px}.question-send:disabled{opacity:.45;cursor:default}.question-note,.question-sent{font-size:11px;color:var(--text-dim)}.question-option-write{border-style:dashed}.question-write{display:flex;flex-direction:column;gap:6px;padding:7px 9px;border:1px dashed var(--accent);border-radius:5px}.question-write-input{width:100%;resize:vertical;padding:5px 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font:inherit;font-size:calc(12px * var(--thread-scale, 1))}.question-write-input:focus{outline:none;border-color:var(--accent)}.question-write-actions{display:flex;align-items:center;gap:8px}.question-write-cancel{border:none;background:none;color:var(--text-dim);cursor:pointer;font:inherit;font-size:11px;padding:0}.question-write-cancel:hover{color:var(--text)}.question-failed{flex:1 1 100%;font-size:11px;color:var(--danger)}.session-row{display:flex;align-items:center;gap:2px}.session-row>.session-item{flex:1;min-width:0}.session-action{opacity:0;flex:none}.session-row:hover .session-action,.session-action:focus-visible{opacity:1}.session-action:disabled{opacity:0}.session-row:hover .session-action:disabled{opacity:.35}.session-archived>.session-item{opacity:.55;border-left-style:dashed}.session-selected>.session-item{background:var(--diff-added);border-left-color:var(--accent)}.sidebar-archive-bar{display:flex;align-items:center;gap:6px;padding-right:6px;border-bottom:1px solid var(--border)}.sidebar-archived-toggle{flex:1 1 auto;min-width:0;padding:4px 10px;text-align:left;font-size:11px;color:var(--text-dim)}.sidebar-archived-toggle:hover{color:var(--text);background:var(--hover)}.sidebar-archived-toggle.is-on{color:var(--accent)}.sidebar-archive-history{margin-left:auto;white-space:nowrap}.sidebar-archive-history.is-on{color:var(--accent)}.archive-history{display:flex;flex-direction:column;gap:4px;padding:4px 8px 8px;font-size:11.5px;color:var(--text);background:var(--chrome);border-bottom:1px solid var(--border);flex:none}.archive-history-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-dim)}.archive-history-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:4px 6px;border-radius:5px}.archive-history-row:hover{background:var(--hover)}.archive-history-text{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.archive-history-count{color:var(--text-dim)}.archive-history-confirm,.archive-history-confirm:hover{background:color-mix(in srgb,var(--warning) 16%,transparent)}.archive-history-confirm .archive-history-text{display:block}.archive-history-undo{flex-direction:row;align-items:center;gap:6px;padding:4px 8px 4px 14px}.archive-history-undo .archive-history-text{display:block;color:var(--text-dim)}.sidebar-selection{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 10px;font-size:11px;color:var(--text-dim);background:var(--chrome);border-top:1px solid var(--accent);flex:none}.archive-icon{width:13px;height:13px;display:block}.sidebar-vault-line{flex:none;display:block;width:100%;padding:4px 10px;text-align:left;font-size:11px;color:var(--text-dim);border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-vault-line:hover{color:var(--text);background:var(--hover)}.sidebar-vault-line.is-problem{color:var(--warning)}.session-vault-mark,.session-partial-mark{display:inline-block;margin-right:5px;padding:0 4px;border-radius:3px;font-size:9.5px;line-height:13px;vertical-align:1px}.session-vault-mark{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent)}.session-partial-mark{color:var(--warning);border:1px dashed color-mix(in srgb,var(--warning) 60%,transparent)}.project-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto;margin-left:-58px}.project-action{opacity:0;pointer-events:none;width:26px;min-width:26px;padding:0;background:var(--chrome-alt)}.project-row:hover .project-action,.project-action:focus-visible,.project-action-busy{opacity:1;pointer-events:auto}.project-archive-confirm{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 26px;font-size:11px;color:var(--text-dim)}.project-archive-confirm .archive-history-text{flex:1 1 auto;min-width:0}.project-action-busy{color:var(--accent);border-color:var(--accent)}.vault-modal{width:min(620px,calc(100vw - 32px))}.vault-state{flex:none;font-size:11px;color:var(--text-dim)}.vault-state-on{color:var(--accent)}.vault-lead{margin:0 0 6px;font-size:12px;line-height:1.6;color:var(--text)}.vault-summary{margin:4px 0;font-size:12px}.vault-progress{display:block;width:100%;height:6px;margin:8px 0;accent-color:var(--accent)}.vault-actions{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.vault-actions .link-button{font-size:12px}.vault-actions .modal-hint{margin:4px 0}.vault-switch{margin-top:10px}.vault-switch .primary-button{margin-top:0}.vault-table-wrap{overflow-x:auto;margin:6px 0}.vault-table{width:100%;border-collapse:collapse;font-size:11.5px}.vault-table th{font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-dim);text-align:right;padding:4px 6px;border-bottom:1px solid var(--border)}.vault-table td{padding:4px 6px;text-align:right;vertical-align:top;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border)}.vault-table th:first-child,.vault-table td:first-child{text-align:left}.vault-table tfoot td{font-weight:600;border-bottom:none}.vault-table-note{display:block;font-size:10.5px;color:var(--warning)}.vault-dir{margin:4px 0;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.vault-error{margin:4px 0;font-size:11.5px;color:var(--warning);overflow-wrap:anywhere}.vault-problem{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:6px 8px;border-radius:5px;font-size:11.5px;color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.vault-problem span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.notes{position:relative;flex:0 1 auto;display:flex;flex-direction:column;min-height:0;border-top:1px solid var(--border);border-left:1px solid var(--border);background:var(--chrome)}.notes:not(.notes-open){flex-shrink:0}.notes-open{min-height:32px}.notes-fill{flex:1 1 auto;border-top:none}.notes-resize{position:absolute;top:-3px;left:0;right:0;height:7px;cursor:row-resize;z-index:1}.notes-resize:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}.notes-header{display:flex;align-items:center;gap:4px;padding:4px 6px;flex:0 0 auto;min-width:0}.notes-body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;border-top:1px solid var(--border)}.notes-empty{margin:0;padding:10px 12px;font-size:12px;color:var(--text-dim)}.note-editor{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;min-height:0;padding:6px;background:var(--chrome-alt)}.note-editor-dragging{outline:1px dashed var(--accent);outline-offset:-3px}.note-closing{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:5px 8px;border-radius:5px;font-size:11.5px;background:color-mix(in srgb,var(--warning) 16%,transparent);color:var(--text)}.link-danger:hover{color:var(--danger)}.note-input{flex:1 1 auto;min-height:60px;width:100%;padding:8px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);font:inherit;font-size:calc(12.5px * var(--notes-scale, 1));line-height:1.45;resize:none;scrollbar-width:thin}.note-input:focus{outline:1px solid var(--accent)}.note-images{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto;scrollbar-width:thin}.note-thumb img{cursor:zoom-in}.note-thumb-placeholder{display:flex;align-items:center;justify-content:center;width:72px;height:56px;font-size:11px;line-height:1;color:var(--text-dim)}.note-footer{flex:0 0 auto;display:flex;align-items:center;gap:6px}.note-meta{font-size:11px;color:var(--text-dim)}.notes-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--surface) 88%,transparent);cursor:zoom-out}.notes-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border:1px solid var(--border);border-radius:6px;background:var(--raised)}.notes-lightbox-missing{color:var(--text-dim)}.picker-modal{width:min(520px,calc(100vw - 32px));padding:0 12px 12px;gap:8px}.picker-roots{display:flex;flex-wrap:wrap;gap:4px}.picker-root{padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--chrome);color:var(--text-dim);font:inherit;font-size:11.5px;cursor:pointer}.picker-root:hover{color:var(--text);border-color:var(--accent)}.picker-path{margin:0;font-family:Cascadia Mono,Consolas,monospace;font-size:11.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.picker-list{height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:5px;background:var(--surface);padding:4px}.picker-entry{display:block;width:100%;text-align:left;padding:4px 8px;border:none;border-radius:4px;background:none;color:var(--text);font:inherit;font-size:12px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-entry:hover{background:var(--hover)}.picker-up{color:var(--text-dim)}.picker-problem{margin:0;font-size:11.5px;color:var(--danger)}.picker-footer{display:flex;align-items:center;gap:8px}.picker-create{display:flex;align-items:center;gap:6px}.picker-create-input{width:170px;padding:3px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--surface);color:var(--text);font:inherit;font-size:12px}.picker-open{padding:5px 12px;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--surface);font:inherit;font-weight:600;cursor:pointer}.picker-open:hover{filter:brightness(1.08)}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;background:#000000e0;cursor:zoom-out}.viewer-frame{display:flex;min-height:0;cursor:default}.viewer-image{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:6px;box-shadow:0 12px 40px #00000080}.viewer-bar{display:flex;align-items:center;gap:12px;max-width:92vw;color:#d8dee9;font-size:11.5px;line-height:1.5}.viewer-caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-close{flex:0 0 auto;padding:0 8px;font-size:18px;line-height:1.2;color:#d8dee9;border:1px solid rgba(216,222,233,.35);border-radius:5px}.viewer-close:hover{border-color:var(--accent);color:var(--accent)}.session-continue{opacity:0;pointer-events:none;width:22px;min-width:22px;height:22px;padding:0;margin-left:-24px;background:var(--chrome-alt);font-size:12px}.session-row:hover .session-continue,.session-continue:focus-visible,.session-continue[aria-expanded=true]{opacity:1;pointer-events:auto}.conversation-continue{font-size:12px;white-space:nowrap}.handoff-notice{display:flex;align-items:flex-start;gap:8px;padding:5px 8px;border-radius:5px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text);font-size:11.5px;line-height:1.5}.handoff-notice-text{flex:1 1 auto;min-width:0}.handoff-notice-status{display:block;color:var(--accent)}.sidebar-search-mode{flex:none;display:flex;gap:4px;padding:0 8px 6px;border-bottom:1px solid var(--border)}.sidebar-search-mode-option{flex:1 1 0;min-width:0;padding:2px 6px;border:1px solid var(--border);border-radius:4px;font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-search-mode-option:hover{color:var(--text);background:var(--hover)}.sidebar-search-mode-option.is-on{color:var(--accent);border-color:var(--accent)}.search-results{padding:0 6px}.search-note,.search-status{margin:0;padding:6px 4px;font-size:11px;line-height:1.4;color:var(--text-dim)}.search-note{color:var(--warning)}.search-status.is-problem{color:var(--danger)}.search-group{margin-bottom:6px}.search-group-title,.search-hit{display:block;width:100%;text-align:left;border-radius:4px}.search-group-title{padding:4px 6px;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-hit{margin-left:12px;width:calc(100% - 12px);padding:3px 8px;border-left:1px solid var(--border)}.search-group-title:hover,.search-hit:hover{background:var(--hover)}.search-hit:hover{border-left-color:var(--accent)}.search-hit-snippet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11.5px;line-height:1.4;color:var(--text);overflow-wrap:anywhere}.search-hit-meta{display:block;font-size:10px;color:var(--text-dim)}.search-group-title mark,.search-hit mark{background:var(--mark);color:inherit;border-radius:2px}@media(max-width:768px){.app-narrow{height:100dvh}.app-narrow .narrow-header{gap:6px;padding:6px 8px;padding-top:calc(6px + env(safe-area-inset-top,0px))}.app-narrow .narrow-icon{min-width:40px;min-height:36px;font-size:18px}.narrow-current{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;color:var(--text);text-align:left}.narrow-current:hover,.narrow-current:focus-visible{background:var(--chrome-alt)}.narrow-current-label,.narrow-current .app-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.narrow-caret{flex:0 0 auto;color:var(--text-dim);font-size:11px}.app-narrow .banner{padding-left:12px;padding-right:12px}.narrow-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.narrow-views{flex:0 0 auto;display:flex;gap:2px;padding:0 6px;overflow-x:auto;scrollbar-width:none;background:var(--chrome);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch}.narrow-views::-webkit-scrollbar{display:none}.narrow-view-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:0 12px;color:var(--text-dim);font-size:13px;border-bottom:2px solid transparent;white-space:nowrap}.narrow-view-active{color:var(--text);border-bottom-color:var(--accent)}.narrow-view-dot{width:7px;height:7px;border-radius:50%;background:var(--warning)}.narrow-stack{position:relative;flex:1 1 auto;min-height:0;display:flex}.narrow-pane{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;min-width:0;isolation:isolate}.narrow-pane-hidden{visibility:hidden;pointer-events:none;inset:auto;width:0;height:0;overflow:hidden}.narrow-pane-veiled,.narrow-pane-veiled *{visibility:hidden!important;pointer-events:none!important}.app-narrow .workspace.narrow-pane{flex:none}.app-narrow .side-panel{position:absolute;top:0;right:0;bottom:0;left:0;flex:none;border-left:none}.app-narrow .side-panel-hidden{inset:auto;width:0;height:0}.app-narrow .side-panel-header,.app-narrow .side-panel-tabs{display:none}.app-narrow .notes,.app-narrow .notes-fill,.app-narrow .console-pane{flex:1 1 auto;height:auto;max-height:none;border-top:none}.app-narrow .strip-collapsed{display:none}.app-narrow .composer{padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.app-narrow .composer-bar{flex-wrap:wrap;row-gap:6px}.app-narrow .composer-divider{display:none}.app-narrow .composer-icon{width:36px;height:36px}.app-narrow .composer-field .composer-input{min-height:46px;padding-right:50px}.app-narrow .composer-field-two .composer-input{padding-right:92px}.app-narrow .conversation-search{flex-wrap:wrap;row-gap:4px}.app-narrow .conversation-waiting{flex-wrap:wrap}.app-narrow .question-option{min-height:44px}.app-narrow .question-send,.app-narrow .question-write-cancel{min-height:40px}.app-narrow .conversation-image{max-width:100%}.app-narrow .terminal-stack{padding:4px}.app-narrow .terminal-surface{top:4px;right:4px;bottom:4px;left:4px}.narrow-keys{flex:0 0 auto;display:flex;gap:4px;padding:4px 6px;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));background:var(--chrome);border-top:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.narrow-key{flex:1 0 auto;min-width:40px;min-height:38px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:var(--chrome-alt);color:var(--text);font-family:Cascadia Mono,Consolas,monospace;font-size:13px}.narrow-key:active{background:var(--accent);color:var(--surface)}.narrow-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#00000073;display:flex;align-items:flex-end}.narrow-drawer{position:absolute;top:0;bottom:0;left:0;width:min(85vw,360px);display:flex;background:var(--chrome-alt);box-shadow:8px 0 24px #00000059;padding-top:env(safe-area-inset-top,0px)}.narrow-drawer .sidebar{width:100%!important;flex:1 1 auto;border-right:none}.narrow-sheet{width:100%;max-height:80dvh;display:flex;flex-direction:column;gap:8px;padding:10px 12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));background:var(--chrome-alt);border-top:1px solid var(--border);border-radius:12px 12px 0 0;box-shadow:0 -8px 24px #00000059;overflow-y:auto}.narrow-sheet-empty{margin:8px 4px;color:var(--text-dim)}.narrow-tabs{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.narrow-tab-row{display:flex;align-items:center;gap:4px;border-radius:6px;box-shadow:inset 4px 0 0 var(--tab-project-color, transparent)}.narrow-tab-active{background:var(--surface);box-shadow:inset 4px 0 0 var(--tab-project-color, transparent),inset 0 0 0 1px var(--tab-project-color, var(--border))}.narrow-tab-select{flex:1 1 auto;min-width:0;min-height:44px;display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--text);text-align:left}.narrow-tab-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.narrow-tab-input{flex:1 1 auto;min-width:0;min-height:40px;padding:0 10px;border:1px solid var(--accent);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}.narrow-tab-row .icon-button{min-width:40px;min-height:40px}.narrow-sheet-new{align-self:stretch;min-height:44px;margin-top:4px}.narrow-menu{display:flex;flex-direction:column}.narrow-menu-row{display:flex;align-items:center;gap:12px;min-height:48px;border-top:1px solid var(--border)}.narrow-menu-row:first-child{border-top:none}.narrow-menu-label{flex:1 0 auto}.narrow-menu-value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--text-dim);font-size:12px}.narrow-menu-value-wrap{padding-block:8px;white-space:normal}.narrow-menu-row .icon-button{min-width:40px;min-height:40px}.narrow-chime-choice{display:flex;gap:6px}.narrow-chime-option{min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:6px;color:var(--text-dim);white-space:nowrap}.narrow-chime-option.is-on{color:var(--accent);border-color:var(--accent)}.narrow-menu-row .sound-volume{display:block;position:static;transform:none;padding:0}.narrow-menu-row .sound-volume-box{flex-direction:row;padding:0;border:none;background:none;box-shadow:none}.narrow-menu-row .sound-volume-slider{writing-mode:horizontal-tb;direction:ltr;width:110px;height:16px}.app-narrow .modal{width:100vw;max-height:100dvh;height:100dvh;border:none;border-radius:0;padding-top:env(safe-area-inset-top,0px)}.app-narrow .modal-header .icon-button{min-width:40px;min-height:40px}.app-narrow .modal-body{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.app-narrow .picker-list{height:auto;flex:1 1 auto;min-height:160px}}@media(hover:none){.session-action,.session-continue,.project-action,.tab-close,.chip-remove,.turn-actions,.tree-action,.md-code-copy{opacity:1;visibility:visible;pointer-events:auto}.session-action:disabled{opacity:.35}.project-actions,.session-continue{margin-left:0}.session-action,.session-continue,.project-action,.tree-action,.tab-close,.strip-tab-close{min-width:32px;min-height:32px}.tab-close{padding:0 6px}.session-item,.project-row,.tree-item,.side-panel-tab,.strip-tab{min-height:40px}}/**
|
|
2
|
-
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
|
|
3
|
-
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
|
4
|
-
* https://github.com/chjj/term.js
|
|
5
|
-
* @license MIT
|
|
6
|
-
*
|
|
7
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
* in the Software without restriction, including without limitation the rights
|
|
10
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
* furnished to do so, subject to the following conditions:
|
|
13
|
-
*
|
|
14
|
-
* The above copyright notice and this permission notice shall be included in
|
|
15
|
-
* all copies or substantial portions of the Software.
|
|
16
|
-
*
|
|
17
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
-
* THE SOFTWARE.
|
|
24
|
-
*
|
|
25
|
-
* Originally forked from (with the author's permission):
|
|
26
|
-
* Fabrice Bellard's javascript vt100 for jslinux:
|
|
27
|
-
* http://bellard.org/jslinux/
|
|
28
|
-
* Copyright (c) 2011 Fabrice Bellard
|
|
29
|
-
* The original design remains. The terminal itself
|
|
30
|
-
* has been extended to include xterm CSI codes, among
|
|
31
|
-
* other features.
|
|
32
|
-
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
|