@openchambery/web 1.18.2-beta.32 → 1.18.2-beta.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AssistantView-BhLt99kH.js → AssistantView-CyqYqSBS.js} +1 -1
- package/dist/assets/{ChatContainer-BlmxfoFd.js → ChatContainer-Zrx6VYNY.js} +37 -37
- package/dist/assets/{DiagramView-cv-vQB2f.js → DiagramView-BhNtXvCt.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-ClKjHmC-.js → MarkdownRendererImpl-B_WdBDW8.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-CeBAGm8g.js → MobileDetailNavigation-BhE67wxm.js} +1 -1
- package/dist/assets/{MobileShareBridge-CPF_cu0F.js → MobileShareBridge-BA3J1jLS.js} +1 -1
- package/dist/assets/MobileSurface-C2H0ruG_.js +2 -0
- package/dist/assets/{MultiRunWindow-S_3yVTw5.js → MultiRunWindow-BA5mfwZ_.js} +1 -1
- package/dist/assets/{OnboardingScreen-gMGdBXkS.js → OnboardingScreen-C1kAHsU9.js} +1 -1
- package/dist/assets/OverlayScrollbar-iaMCjwrs.js +2 -0
- package/dist/assets/{SettingsView-CAKZZQz7.js → SettingsView-CQWZzVWA.js} +11 -12
- package/dist/assets/{SettingsWindow-CG98Gozw.js → SettingsWindow-lwn2JmiX.js} +1 -1
- package/dist/assets/{TerminalView-BdiPDeDu.js → TerminalView-BElGXht9.js} +1 -1
- package/dist/assets/{ToolOutputDialog-D-6Ezjqs.js → ToolOutputDialog-D7u9jFSU.js} +1 -1
- package/dist/assets/{appThemeRegistry-DawdCrT-.js → appThemeRegistry-vXkgPjgC.js} +2 -2
- package/dist/assets/capgoAdapter-BSPH5_gX.js +1 -0
- package/dist/assets/{clipboard-DD27ttLy.js → clipboard-mzqrY_n2.js} +1 -1
- package/dist/assets/{context-menu-DB0-VukO.js → context-menu-CpKTnuwD.js} +1 -1
- package/dist/assets/{dialog-M9TJGHb8.js → dialog-DDrJKIhd.js} +1 -1
- package/dist/assets/{es-Dw9Q-ozz.js → es-DyE3MYjW.js} +1 -1
- package/dist/assets/{fr-ColDJ2rK.js → fr-T-bfFDvO.js} +1 -1
- package/dist/assets/{gitApi-DkIj7msF.js → gitApi-zi5YhJwU.js} +1 -1
- package/dist/assets/{insertionBoundaries-Ci7W_si4.js → insertionBoundaries-C1hCbzgU.js} +1 -1
- package/dist/assets/{ja-DK2Z5Adv.js → ja-CZPkddOJ.js} +1 -1
- package/dist/assets/{ko-BFhsYNY4.js → ko-MUUqS5Un.js} +1 -1
- package/dist/assets/{main-Byam6OLJ.js → main-CMfqjudP.js} +7 -7
- package/dist/assets/{main-JxXeBGUv.js → main-DLbPMZ4x.js} +2 -2
- package/dist/assets/{miniChat-MBdDWNL8.js → miniChat-BFFu11Qr.js} +2 -2
- package/dist/assets/{mobile-7J0N2edW.js → mobile-Dq4Aqx5i.js} +2 -2
- package/dist/assets/{multirun-BDLm-9p_.js → multirun-CkgchW0Z.js} +1 -1
- package/dist/assets/{pl-9HDNVuJh.js → pl-g4y8Kn6w.js} +1 -1
- package/dist/assets/{projectMeta-6Y8eqOct.js → projectMeta-CAaVXOy6.js} +1 -1
- package/dist/assets/{pt-BR-BjC1-fOS.js → pt-BR-Boqh_bme.js} +1 -1
- package/dist/assets/{radio-VgkIFFc0.js → radio-DARwjxAu.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-DtiL6bi8.js → renderElectronMiniChatApp-Crj2x6be.js} +2 -2
- package/dist/assets/{renderMobileApp-xWa6AxDE.js → renderMobileApp-DTR4EL7m.js} +5 -5
- package/dist/assets/{runtimeConfig-BgAUYwpw.js → runtimeConfig-BNfVHErs.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-CjX8fEqz.js → runtimeEndpointReset-DfIetFGb.js} +2 -2
- package/dist/assets/{sortable-tabs-strip-Z5_rGG_O.js → sortable-tabs-strip-CBs61Gj9.js} +1 -1
- package/dist/assets/src-BBD2IyWD.css +2 -0
- package/dist/assets/{store-CNhcDSiX.js → store-BLmIK6EO.js} +1 -1
- package/dist/assets/{uk-Dz5dc1bK.js → uk-B4CEXe9W.js} +1 -1
- package/dist/assets/{useAppFontEffects-D79ls-ks.js → useAppFontEffects-C1rqQjd3.js} +2 -2
- package/dist/assets/{useDesktopWindowControlsLayout-obujEeM2.js → useDesktopWindowControlsLayout-DKgGEkC_.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-DFAdHJ0-.js → useEffectiveDirectory-D_LmQKY0.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-BADiWXJ3.js → useMobileNavigationStore-otVaSvYC.js} +4 -4
- package/dist/assets/{useSessionAutoCleanup-CulttT9K.js → useSessionAutoCleanup-BNKAoZ1M.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-Cg5oIMcb.js → useWorkerHighlightedLines-BK6XKmOs.js} +1 -1
- package/dist/assets/{zh-CN-CK_vXKLC.js → zh-CN-C4wauCqC.js} +1 -1
- package/dist/assets/{zh-TW-D1PJ5wPO.js → zh-TW-DtT3aVC7.js} +1 -1
- package/dist/index.html +4 -4
- package/dist/mini-chat.html +4 -4
- package/dist/mobile.html +4 -4
- package/package.json +1 -1
- package/dist/assets/MobileSurface-RC5BWA3I.js +0 -2
- package/dist/assets/OverlayScrollbar-C3WqFk2J.js +0 -2
- package/dist/assets/capgoAdapter-LvGrONDp.js +0 -1
- package/dist/assets/src-BZ9v9Hhc.css +0 -2
|
@@ -12,4 +12,4 @@ Use @filename to include file contents.`,"settings.commands.page.templateHint.us
|
|
|
12
12
|
[Process exited{exitCodeSegment}{signalSegment}]\r
|
|
13
13
|
`,"terminalView.stream.processExitedWithCode":` with code {exitCode}`,"terminalView.stream.processExitedWithSignal":` (signal {signal})`,"terminalView.error.sessionEnded":`Terminal session ended`,"terminalView.error.connectionFailed":`Connection failed: {message}`,"terminalView.error.startSessionFailed":`Failed to start terminal session`,"terminalView.error.restartFailed":`Failed to restart terminal`,"terminalView.error.sendInputFailed":`Failed to send input`,"terminalView.empty.noWorkingDirectory":`No working directory available for terminal.`,"terminalView.empty.selectSession":`Select a session to open the terminal.`,"terminalView.empty.noWorkingDirectoryForSession":`No working directory available for this session.`,"terminalView.actions.retry":`Retry`,"terminalView.actions.hardRestart":`Hard Restart`,"terminalView.actions.hardRestartTitle":`Force kill and create fresh session`,"terminalView.quickKeys.escape":`Esc`,"terminalView.quickKeys.tabAria":`Tab`,"terminalView.quickKeys.controlLabel":`Ctrl`,"terminalView.quickKeys.controlModifierAria":`Control modifier`,"terminalView.quickKeys.commandModifierAria":`Command modifier`,"terminalView.quickKeys.arrowUpAria":`Arrow up`,"terminalView.quickKeys.arrowLeftAria":`Arrow left`,"terminalView.quickKeys.arrowDownAria":`Arrow down`,"terminalView.quickKeys.arrowRightAria":`Arrow right`,"terminalView.quickKeys.enterAria":`Enter`,"terminalView.tabs.closeTabTitle":`Close tab`,"terminalView.tabs.newTabTitle":`New tab`,"terminalView.bottomDock.resizeAria":`Resize terminal panel`,"terminalView.bottomDock.restoreTitle":`Restore terminal panel height`,"terminalView.bottomDock.restoreAria":`Restore terminal panel height`,"terminalView.bottomDock.expandTitle":`Expand terminal panel`,"terminalView.bottomDock.expandAria":`Expand terminal panel`,"terminalView.bottomDock.closeTitle":`Close terminal panel`,"terminalView.bottomDock.closeAria":`Close terminal panel`,"terminalView.viewport.inputAria":`Terminal input`,"directoryExplorerDialog.title":`Add project directory`,"directoryExplorerDialog.description":`Choose a folder to add as a project.`,"directoryExplorerDialog.toggle.showHidden":`Show hidden`,"directoryExplorerDialog.pathInput.placeholder":`Enter path or select from tree...`,"directoryExplorerDialog.actions.openingFinder":`Opening...`,"directoryExplorerDialog.actions.openInFinder":`Open in Finder`,"directoryExplorerDialog.actions.adding":`Adding...`,"directoryExplorerDialog.actions.addProject":`Add project`,"directoryExplorerDialog.actions.addLocalProject":`Add local project`,"directoryExplorerDialog.actions.cloneRepository":`Clone repository`,"directoryExplorerDialog.actions.cloneAndAdd":`Clone & add`,"directoryExplorerDialog.actions.cloning":`Cloning...`,"directoryExplorerDialog.actions.createAndAdd":`Create & add`,"directoryExplorerDialog.actions.alreadyAdded":`Already added`,"directoryExplorerDialog.clone.remoteUrlPlaceholder":`Repository URL (HTTPS or SSH)`,"directoryExplorerDialog.browse.directories":`Directories`,"directoryExplorerDialog.browse.loading":`Loading directories...`,"directoryExplorerDialog.browse.empty":`No matching directories.`,"directoryExplorerDialog.browse.parentDirectory":`Parent directory`,"directoryExplorerDialog.browse.addedBadge":`Added`,"directoryExplorerDialog.browse.quickAdd":`Add`,"directoryExplorerDialog.footer.navigate":`Navigate`,"directoryExplorerDialog.footer.select":`Select`,"directoryExplorerDialog.footer.add":`Add`,"directoryExplorerDialog.shortcut.enter":`Enter`,"directoryExplorerDialog.toast.unableToAccessDirectory":`Unable to access directory`,"directoryExplorerDialog.toast.desktopDeniedAccess":`Desktop denied directory access.`,"directoryExplorerDialog.toast.failedToOpenDirectory":`Failed to open directory`,"directoryExplorerDialog.toast.desktopCouldNotGrantAccess":`Desktop could not grant file access.`,"directoryExplorerDialog.toast.failedToAddProject":`Failed to add project`,"directoryExplorerDialog.toast.cloneUrlRequired":`Enter a repository URL before cloning.`,"directoryExplorerDialog.toast.selectValidDirectoryPath":`Please select a valid directory path.`,"directoryExplorerDialog.toast.failedToSelectDirectory":`Failed to select directory`,"directoryExplorerDialog.toast.unknownError":`Unknown error occurred.`,"directoryTree.actions.createNewDirectory":`Create new directory`,"directoryTree.actions.pinDirectory":`Pin directory`,"directoryTree.actions.unpinDirectory":`Unpin directory`,"directoryTree.actions.createDirectory":`Create directory`,"directoryTree.actions.cancel":`Cancel`,"directoryTree.actions.selectWorkingDirectoryAria":`Select working directory`,"directoryTree.state.locatingHomeDirectory":`Locating home directory...`,"directoryTree.state.loading":`Loading...`,"directoryTree.state.noDirectoriesFound":`No directories found`,"directoryTree.section.pinned":`Pinned`,"directoryTree.section.browse":`Browse`,"aboutDialog.versionLabel":`Version {version}`,"aboutDialog.openChamberVersionLabel":`OpenChamber version {version}`,"aboutDialog.openCodeVersionLabel":`OpenCode version {version}`,"aboutDialog.actions.copyDiagnostics":`Copy diagnostics`,"aboutDialog.actions.preparingDiagnostics":`Preparing diagnostics...`,"aboutDialog.actions.diagnosticsCopied":`Diagnostics copied`,"aboutDialog.diagnosticsDescription":`Includes OpenChamber state, OpenCode health, directories, and projects.`,"aboutDialog.footerNote":`Made with love for the community`,"aboutDialog.toast.copyFailed":`Copy failed`,"aboutDialog.toast.diagnosticsNotReady":`Diagnostics not ready yet. Wait a second and retry.`,"aboutDialog.toast.diagnosticsCopied":`Diagnostics copied`,"helpDialog.title":`Keyboard Shortcuts`,"helpDialog.description":`Use these keyboard shortcuts to navigate OpenChamber efficiently`,"helpDialog.section.navigationCommands":`Navigation & Commands`,"helpDialog.section.sessionManagement":`Session Management`,"helpDialog.section.panels":`Panels`,"helpDialog.section.interface":`Interface`,"helpDialog.section.leaderChords":`Leader key (Ctrl+X)`,"helpDialog.item.openCommandPalette":`Open Command Palette`,"helpDialog.item.showKeyboardShortcuts":`Show Keyboard Shortcuts (this dialog)`,"helpDialog.item.toggleSessionSidebar":`Toggle Session Sidebar`,"helpDialog.item.cycleAgent":`Cycle Agent (chat input)`,"helpDialog.item.openModelSelector":`Open Model Selector`,"helpDialog.item.navigateModels":`Navigate Models (in picker)`,"helpDialog.item.adjustThinkingMode":`Adjust Thinking Mode (in picker, when supported)`,"helpDialog.item.cycleThinkingVariant":`Cycle Thinking Variant (global shortcut)`,"helpDialog.item.newWindow":`New Window (desktop only)`,"helpDialog.item.createNewSession":`Create New Session`,"helpDialog.item.createNewWorktreeDraft":`Create New Worktree Draft`,"helpDialog.item.previousSession":`Previous Session`,"helpDialog.item.nextSession":`Next Session`,"helpDialog.item.focusChatInput":`Focus Chat Input`,"helpDialog.item.togglePromptNavigator":`Toggle Prompt Navigator`,"helpDialog.item.abortActiveRun":`Abort active run (double press)`,"helpDialog.item.toggleRightSidebar":`Toggle Review Panel`,"helpDialog.item.openRightSidebarGitTab":`Open Right Sidebar Git Tab`,"helpDialog.item.openRightSidebarFilesTab":`Open Right Sidebar Files Tab`,"helpDialog.item.cycleRightSidebarTab":`Cycle Right Sidebar Tab`,"helpDialog.item.closeContextPanelTab":`Close Context Panel Tab`,"helpDialog.item.toggleTerminal":`Toggle Terminal`,"helpDialog.item.newTerminalTab":`New Terminal Tab (when terminal is focused)`,"helpDialog.item.openNewTerminal":`Open New Terminal`,"helpDialog.item.previousTerminalTab":`Previous Terminal Tab (when terminal is focused)`,"helpDialog.item.nextTerminalTab":`Next Terminal Tab (when terminal is focused)`,"helpDialog.item.toggleBottomPanel":`Toggle Bottom Panel`,"helpDialog.item.toggleTerminalExpanded":`Toggle Terminal Expanded`,"helpDialog.item.togglePlanContextPanel":`Toggle Plan Context Panel`,"helpDialog.item.cycleTheme":`Cycle Theme (Light → Dark → System)`,"helpDialog.item.zoomIn":`Zoom In`,"helpDialog.item.zoomOut":`Zoom Out`,"helpDialog.item.zoomReset":`Reset Zoom`,"helpDialog.item.switchSession":`Switch Session`,"helpDialog.item.toggleServicesMenu":`Toggle Services Menu`,"helpDialog.item.openUsage":`Open Usage`,"helpDialog.item.cycleServicesTab":`Cycle Services Tab`,"helpDialog.item.openSettings":`Open Settings`,"helpDialog.item.leaderOpenModel":`Open model selector`,"helpDialog.item.leaderOpenAgent":`Open agent selector`,"helpDialog.item.leaderNewSession":`Create new session`,"helpDialog.item.leaderCompact":`Compact current session`,"chat.leaderKey.pendingAria":`Leader key active. Press a follow-up key.`,"chat.leaderKey.action.model":`Model`,"chat.leaderKey.action.agent":`Agent`,"chat.leaderKey.action.newSession":`New`,"chat.leaderKey.action.compact":`Compact`,"helpDialog.keyCombiner.or":`or`,"helpDialog.proTips.title":`Pro Tips:`,"helpDialog.proTips.commandPalette":`Use Command Palette ({shortcut}) to quickly access all actions`,"helpDialog.proTips.recentSessions":`The 5 most recent sessions appear in the Command Palette`,"helpDialog.proTips.themeCycling":`Theme cycling remembers your preference across sessions`,"header.actions.rightSidebarWithShortcut":`Right sidebar ({shortcut})`,"header.actions.toggleRightSidebarAria":`Toggle right sidebar`,"header.actions.openAppMenu":`OpenChamber menu`,"header.actions.openAppMenuAria":`Open OpenChamber menu`,"header.actions.openSessionsWithShortcut":`Open sessions ({shortcut})`,"header.actions.openSessionsAria":`Open sessions`,"header.actions.closeSessionsAria":`Close sessions`,"header.actions.newSessionAria":`New session`,"header.actions.newSessionWithShortcut":`New session ({shortcut})`,"header.actions.backAria":`Back`,"header.navigation.mainAria":`Main navigation`,"header.sessions.title":`Sessions`,"header.changes.availableAria":`Changes available`,"session.githubIssuePicker.error.noActiveProject":`No active project`,"session.githubIssuePicker.error.runtimeUnavailable":`GitHub runtime API unavailable`,"session.githubIssuePicker.error.notConnected":`GitHub not connected`,"session.githubIssuePicker.error.repoNotResolvable":`Repo not resolvable`,"session.githubIssuePicker.error.repoMustBeGithub":`Origin remote must be a GitHub URL`,"session.githubIssuePicker.error.issueNotFound":`Issue not found`,"session.githubIssuePicker.error.noModelSelected":`No model selected`,"session.githubIssuePicker.toast.loadMoreFailed":`Failed to load more issues`,"session.githubIssuePicker.toast.loadIssueDetailsFailed":`Failed to load issue details`,"session.githubIssuePicker.toast.sendContextFailed":`Failed to send issue context`,"session.githubIssuePicker.toast.sessionCreated":`Session created from issue`,"session.githubIssuePicker.toast.startSessionFailed":`Failed to start session`,"session.githubIssuePicker.title.select":`Link GitHub Issue`,"session.githubIssuePicker.title.createSession":`New Session From GitHub Issue`,"session.githubIssuePicker.description.select":`Select an issue to link to this session.`,"session.githubIssuePicker.description.createSession":`Seeds a new session with hidden issue context (title/body/labels/comments).`,"session.githubIssuePicker.searchPlaceholder":`Search using GitHub code search syntax`,"session.githubIssuePicker.empty.noActiveProject":`No active project selected.`,"session.githubIssuePicker.empty.runtimeUnavailable":`GitHub runtime API unavailable.`,"session.githubIssuePicker.empty.notConnected":`GitHub not connected. Connect your GitHub account in settings.`,"session.githubIssuePicker.empty.noIssuesFound":`No issues found`,"session.githubIssuePicker.empty.noOpenIssuesFound":`No open issues found`,"session.githubIssuePicker.loading.issues":`Loading issues...`,"session.githubIssuePicker.loading.more":`Loading...`,"session.githubIssuePicker.actions.openSettings":`Open settings`,"session.githubIssuePicker.actions.useIssue":`Use issue #{number}`,"session.githubIssuePicker.actions.openInGitHubAria":`Open in GitHub`,"session.githubIssuePicker.actions.loadMore":`Load more`,"session.githubIssuePicker.actions.sectionTitle":`Actions`,"session.githubIssuePicker.actions.toggleWorktreeAria":`Toggle worktree`,"session.githubIssuePicker.actions.createInWorktree":`Create in worktree`,"session.githubIssuePicker.actions.openRepo":`Open Repo`,"session.githubIssuePicker.actions.refresh":`Refresh`,"session.githubPrPicker.error.noActiveProject":`No active project`,"session.githubPrPicker.error.runtimeUnavailable":`GitHub runtime API unavailable`,"session.githubPrPicker.error.notConnected":`GitHub not connected`,"session.githubPrPicker.error.prNotFound":`Pull request not found`,"session.githubPrPicker.error.repoNotResolvable":`Repo not resolvable`,"session.githubPrPicker.error.repoMustBeGithub":`Origin remote must be a GitHub URL`,"session.githubPrPicker.toast.loadMoreFailed":`Failed to load more pull requests`,"session.githubPrPicker.toast.loadDetailsFailed":`Failed to load pull request details`,"session.githubPrPicker.title":`Link GitHub Pull Request`,"session.githubPrPicker.description":`Select a pull request to attach review context to this message.`,"session.githubPrPicker.searchPlaceholder":`Search using GitHub code search syntax`,"session.githubPrPicker.includeDiffAria":`Include PR diff in attached context`,"session.githubPrPicker.includeDiff":`Include PR diff`,"session.githubPrPicker.empty.noActiveProject":`No active project selected.`,"session.githubPrPicker.empty.runtimeUnavailable":`GitHub runtime API unavailable.`,"session.githubPrPicker.empty.notConnected":`GitHub not connected. Connect your GitHub account in settings.`,"session.githubPrPicker.empty.noPullRequestsFound":`No pull requests found`,"session.githubPrPicker.empty.noOpenPullRequestsFound":`No open pull requests found`,"session.githubPrPicker.loading.pullRequests":`Loading pull requests...`,"session.githubPrPicker.loading.more":`Loading...`,"session.githubPrPicker.actions.openSettings":`Open settings`,"session.githubPrPicker.actions.usePullRequest":`Use pull request #{number}`,"session.githubPrPicker.actions.openInGitHubAria":`Open in GitHub`,"session.githubPrPicker.actions.loadMore":`Load more`,"session.newWorktree.title":`New Worktree`,"session.newWorktree.mode.newBranch":`New Branch`,"session.newWorktree.mode.existingBranch":`Existing Branch`,"session.newWorktree.selectBranch":`Select Branch`,"session.newWorktree.chooseBranch":`Choose a branch...`,"session.newWorktree.fetchBranches":`Fetch branches`,"session.newWorktree.searchBranches":`Search branches...`,"session.newWorktree.loadingBranches":`Loading branches...`,"session.newWorktree.noBranchesFound":`No branches found`,"session.newWorktree.matchingBranches":`Matching branches`,"session.newWorktree.noMatchingBranches":`No matching branches`,"session.newWorktree.localBranches":`Local branches`,"session.newWorktree.remoteBranches":`Remote branches`,"session.newWorktree.otherLocalBranches":`Other local branches`,"session.newWorktree.otherRemoteBranches":`Other remote branches`,"session.newWorktree.branchName":`Branch Name`,"session.newWorktree.branchNamePlaceholder":`feature/my-awesome-feature`,"session.newWorktree.actions.change":`Change`,"session.newWorktree.actions.startFromGitHubIssuePr":`Start from GitHub Issue/PR`,"session.newWorktree.usingPrBranch":`Using PR branch: {branch}`,"session.newWorktree.fromIssue":`From issue #{number}: {title}`,"session.newWorktree.worktreeDirectory":`Worktree Directory`,"session.newWorktree.worktreeDirectoryPlaceholder":`my-worktree-directory`,"session.newWorktree.resetToMatchBranchName":`Reset to match branch name`,"session.newWorktree.sourceBranch":`Source Branch`,"session.newWorktree.selectSourceBranch":`Select Source Branch`,"session.newWorktree.selectSourceBranchPlaceholder":`Select source branch...`,"session.newWorktree.newBranchFromSource":`New branch will be created from {source}`,"session.newWorktree.issueNumber":`Issue #{number}`,"session.newWorktree.prNumber":`PR #{number}`,"session.newWorktree.includeDiffBadge":`+diff`,"session.newWorktree.newSessionTitle":`New session`,"session.newWorktree.fromSource":`from {source}`,"session.newWorktree.actions.cancel":`Cancel`,"session.newWorktree.actions.creating":`Creating...`,"session.newWorktree.actions.createWorktree":`Create Worktree`,"session.newWorktree.actions.reset":`Reset`,"session.newWorktree.error.noModelSelected":`No model selected`,"session.newWorktree.error.noActiveProject":`No active project`,"session.newWorktree.error.branchNameRequired":`Branch name is required`,"session.newWorktree.error.worktreeDirectoryRequired":`Worktree directory is required`,"session.newWorktree.error.sendGitHubContextFailed":`Failed to send GitHub context`,"session.newWorktree.error.createWorktreeFailed":`Failed to create worktree`,"session.newWorktree.toast.sessionFromIssue":`Session created from issue`,"session.newWorktree.toast.sessionFromPr":`Session created from PR`,"session.newWorktree.toast.worktreeCreated":`Worktree created`,"session.newWorktree.toast.worktreeCreatedDescription":`{target} - bootstrapping in background`,"session.githubIntegration.title":`Select from GitHub`,"session.githubIntegration.tabs.issues":`Issues`,"session.githubIntegration.tabs.pullRequests":`Pull Requests`,"session.githubIntegration.connect.title":`Connect to GitHub`,"session.githubIntegration.connect.description":`Link issues or pull requests to auto-fill worktree details`,"session.githubIntegration.connect.action":`Connect GitHub`,"session.githubIntegration.search.issuesPlaceholder":`Search using GitHub code search syntax`,"session.githubIntegration.search.prsPlaceholder":`Search using GitHub code search syntax`,"session.githubIntegration.empty.noIssuesFound":`No issues found`,"session.githubIntegration.empty.noPullRequestsFound":`No pull requests found`,"session.githubIntegration.actions.loadMore":`Load more`,"session.githubIntegration.actions.cancel":`Cancel`,"session.githubIntegration.actions.select":`Select`,"session.githubIntegration.selected.issueNumber":`Issue #{number}`,"session.githubIntegration.selected.prNumber":`PR #{number}`,"session.githubIntegration.includeDiffAria":`Include PR diff in session context`,"session.githubIntegration.includeDiff":`Include PR diff`,"session.githubIntegration.error.notConnected":`GitHub not connected`,"session.githubIntegration.error.loadDataFailed":`Failed to load data`,"session.githubIntegration.validation.branchAlreadyCheckedOut":`Branch is already checked out in a worktree`,"session.githubIntegration.validation.branchAlreadyExists":`Branch already exists locally`,"session.githubIntegration.validation.failed":`Validation failed`,"chat.fileAttachment.toast.attachFailed":`Failed to attach file`,"chat.fileAttachment.toast.someFilesSkipped":`Some files were skipped:
|
|
14
14
|
{summary}`,"chat.fileAttachment.toast.vscodePickFailed":`Failed to pick files in VS Code`,"chat.fileAttachment.fileFallback":`file`,"chat.fileAttachment.skippedFallback":`skipped`,"chat.fileAttachment.actions.attachAria":`Attach files`,"chat.fileAttachment.actions.attach":`Attach files`,"chat.fileAttachment.actions.removeNamed":`Remove {name}`,"chat.fileAttachment.actions.removeImage":`Remove image`,"chat.fileAttachment.actions.expandImages":`Show more images`,"chat.fileAttachment.actions.collapseImages":`Show fewer images`,"chat.fileAttachment.activeEditor.addFile":`Add file:{name} to context`,"chat.fileAttachment.activeEditor.pinSelection":`Pin selection to context`,"chat.fileAttachment.activeEditor.remove":`Remove from context`,"chat.fileAttachment.openInDiagram":`Open in diagram view`,"chat.pendingChanges.fileCountSingle":`{count} file`,"chat.pendingChanges.fileCountPlural":`{count} files`,"chat.pendingChanges.changedInWorkspace":`Changed in workspace`,"chat.changedFiles.title":`Changed files`,"chat.changedFiles.actions.openFileTitle":`Open {path}`,"chat.activity.title":`Processing details`,"chat.activity.active":`Working`,"chat.activity.compacting":`Compacting`,"chat.activity.compactionCompleted":`Compaction complete`,"chat.activity.expandAria":`Expand processing details`,"chat.activity.collapseAria":`Collapse processing details`,"chat.activity.completed":`Processed in {duration}`,"chat.activity.completedStatus":`Processed`,"chat.activity.agentsWorking":`{count} agents working`,"chat.activity.agentsInvolved":`{count} agents involved`,"chat.activity.moreHidden":`+{count} more...`,"chat.emptyState.opencodeUnreachable":`OpenCode is not reachable`,"chat.emptyState.startNewChat":`Start a new chat`,"chat.emptyState.draftTitle":`What are we working on?`,"chat.emptyState.draftTitleWithProject":`What are we working on in {project}?`,"chat.emptyState.establishingConversation":`Establishing conversation`,"chat.draftPresets.explore.label":`Explore the codebase`,"chat.draftPresets.catchup.label":`Catch me up`,"chat.draftPresets.weigh.label":`Weigh my options`,"chat.draftPresets.plan.label":`Start feature planning`,"chat.draftPresets.craftGoal.label":`Craft a Goal`,"chat.draftPresets.debug.label":`Debug an issue`,"chat.draftPresets.review.label":`Review my changes`,"chat.draftStarters.add":`Add a starter`,"chat.draftStarters.searchPlaceholder":`Search commands and skills…`,"chat.draftStarters.empty":`Nothing to add`,"chat.draftStarters.sectionBuiltIn":`Built-in`,"chat.draftStarters.sectionCommands":`Commands`,"chat.draftStarters.sectionSkills":`Skills`,"chat.draftStarters.remove":`Remove`,"chat.draftStarters.expand":`Show more`,"chat.draftStarters.collapse":`Show less`,"chat.scrollToBottom.aria":`Scroll to bottom`,"chat.promptNavigator.aria":`Prompt navigation`,"chat.promptNavigator.currentPrompt":`Current prompt`,"chat.promptNavigator.loadMore":`Load more prompts`,"chat.timeline.relative.justNow":`just now`,"chat.timeline.relative.minutesAgo":`{count}m ago`,"chat.timeline.relative.hoursAgo":`{count}h ago`,"chat.timeline.relative.daysAgo":`{count}d ago`,"chat.timeline.title":`Conversation Timeline`,"chat.timeline.description":`Navigate to any point in the conversation or fork a new session`,"chat.timeline.searchPlaceholder":`Search messages...`,"chat.timeline.empty.search":`No messages found`,"chat.timeline.empty.session":`No messages in this session yet`,"chat.timeline.noTextContent":`[No text content]`,"chat.timeline.actions.title":`Actions`,"chat.timeline.actions.revertFromHere":`Revert from here`,"chat.timeline.actions.forkFromHere":`Fork from here`,"chat.timeline.actions.previousTurn":`Previous turn`,"chat.timeline.actions.latest":`Latest`,"chat.timeline.help.clickMessage":`Click on a message to scroll to it in the conversation`,"chat.timeline.help.undoToPoint":`Undo to this point (message text will populate input)`,"chat.timeline.help.createSessionFromHere":`Create a new session starting from here`,"chat.statusRow.todo.status.inProgress":`In progress`,"chat.statusRow.todo.status.pending":`Pending`,"chat.statusRow.todo.status.completed":`Completed`,"chat.statusRow.todo.status.cancelled":`Cancelled`,"chat.statusRow.todo.priority.high":`High priority`,"chat.statusRow.todo.priority.medium":`Medium priority`,"chat.statusRow.todo.priority.low":`Low priority`,"chat.statusRow.actions.stopGeneratingAria":`Stop generating`,"chat.statusRow.tasksTitle":`Tasks`,"chat.statusRow.summary.activeLeft":`{active} active · {left} left`,"chat.statusRow.aborted":`Aborted`,"chat.statusRow.abortPrompt":`Press Esc again to abort`,"chat.assistantStatus.readingFile":`Reading file`,"chat.assistantStatus.writingFile":`Writing file`,"chat.assistantStatus.editingFile":`Editing file`,"chat.assistantStatus.editingFiles":`Editing files`,"chat.assistantStatus.compacting":`Compacting`,"chat.assistantStatus.applyingPatch":`Applying patch`,"chat.assistantStatus.runningCommand":`Running command`,"chat.assistantStatus.searchingContent":`Searching content`,"chat.assistantStatus.findingFiles":`Finding files`,"chat.assistantStatus.listingDirectory":`Listing directory`,"chat.assistantStatus.delegatingTask":`Delegating task`,"chat.assistantStatus.taskWorking":`{name} working`,"chat.assistantStatus.fetchingUrl":`Fetching URL`,"chat.assistantStatus.searchingWeb":`Searching web`,"chat.assistantStatus.webCodeSearch":`Searching web code`,"chat.assistantStatus.updatingTodos":`Updating tasks`,"chat.assistantStatus.readingTodos":`Reading tasks`,"chat.assistantStatus.learningSkill":`Learning skill`,"chat.assistantStatus.askingQuestion":`Asking question`,"chat.assistantStatus.switchingToPlanning":`Switching to planning`,"chat.assistantStatus.switchingToBuilding":`Switching to building`,"chat.assistantStatus.usingTool":`Using {tool}`,"chat.assistantStatus.working":`Working`,"chat.assistantStatus.processing":`Processing`,"chat.assistantStatus.preparing":`Preparing`,"chat.assistantStatus.warmingUp":`Warming up`,"chat.assistantStatus.gearsTurning":`Gears turning`,"chat.assistantStatus.computing":`Computing`,"chat.assistantStatus.calculating":`Calculating`,"chat.assistantStatus.analyzing":`Analyzing`,"chat.assistantStatus.wheelsSpinning":`Wheels spinning`,"chat.assistantStatus.calibrating":`Calibrating`,"chat.assistantStatus.synthesizing":`Synthesizing`,"chat.assistantStatus.connectingDots":`Connecting dots`,"chat.assistantStatus.inspectingLogic":`Inspecting logic`,"chat.assistantStatus.weighingOptions":`Weighing options`,"chat.assistantStatus.thinking":`Thinking`,"chat.assistantStatus.composing":`Composing`,"chat.assistantStatus.sendingMessage":`Sending message`,"chat.assistantStatus.waitingForPermission":`Waiting for permission`,"chat.assistantStatus.retrying":`Retrying`,"chat.assistantStatus.retryingIn":`Retrying {duration}`,"chat.assistantStatus.retryingAttempt":`Retrying (attempt {attempt})`,"chat.assistantStatus.retryingInAttempt":`Retrying {duration} (attempt {attempt})`,"chat.revertIndicator.redo":`Redo`,"chat.revertIndicator.redoAria":`Redo — restore reverted messages`,"chat.revertPopover.title":`Reverted`,"chat.revertPopover.noTextContent":`No text content`,"chat.revertPopover.forkFromHere":`Fork from here`,"chat.revertPopover.forkFromMessage":`Fork from this message`,"chat.revertPopover.restoreAll":`Restore all`,"chat.revertPopover.restore":`Restore`,"chat.revertPopover.revert":`Revert`,"chat.revertPopover.fork":`Fork`,"chat.revert.toast.undo":`Reverted to {preview}`,"chat.revert.toast.redo":`Redone`,"chat.revert.toast.restored":`Restored all messages`,"chat.errorBoundary.title":`Chat Error`,"chat.errorBoundary.description":`The chat interface encountered an error. This might be due to a temporary network issue or corrupted message data.`,"chat.errorBoundary.sessionLabel":`Session`,"chat.errorBoundary.detailsSummary":`Error details`,"chat.errorBoundary.resetAction":`Reset Chat`,"chat.errorBoundary.persistentHint":`If the problem persists, try refreshing the page.`,"chat.autocomplete.tabs.commands":`Commands`,"chat.autocomplete.tabs.agents":`Agents`,"chat.autocomplete.tabs.files":`Files`,"chat.autocomplete.keyboardHint":`↑↓ navigate • Enter select • Esc close`,"chat.commandAutocomplete.command.initDescription":`Create/update AGENTS.md file`,"chat.commandAutocomplete.command.undoDescription":`Undo the last message`,"chat.commandAutocomplete.command.redoDescription":`Redo previously undone messages`,"chat.commandAutocomplete.command.forkDescription":`Fork the current conversation state into a new session`,"chat.commandAutocomplete.command.timelineDescription":`Open the conversation timeline`,"chat.commandAutocomplete.command.modelDescription":`Open the model selector`,"chat.commandAutocomplete.command.compactDescription":`Compress session history using AI to reduce context size`,"chat.commandAutocomplete.command.newDescription":`Start a new session in the current project.`,"chat.commandAutocomplete.command.summaryDescription":`Non-destructive session summary. Optional topic hint after the command.`,"chat.commandAutocomplete.command.workspaceReviewDescription":`Review the workspace diff for intent, correctness, and adequacy, graded by severity.`,"chat.commandAutocomplete.command.handoffReviewDescription":`Create or reuse a separate review session from a generated handoff.`,"chat.commandAutocomplete.command.featurePlanDescription":`Start a guided, back-and-forth planning session for a new feature.`,"chat.commandAutocomplete.command.craftGoalDescription":`Turn an idea or task into a clear, verifiable Goal.`,"chat.chatInput.toast.craftGoalFailed":`Failed to start Goal crafting`,"chat.commandAutocomplete.command.catchUpDescription":`Re-establish context: what you were doing and where to pick up.`,"chat.commandAutocomplete.command.debugDescription":`Guided root-cause investigation for a bug before proposing a fix.`,"chat.commandAutocomplete.command.weighDescription":`Weigh 2-3 approaches with trade-offs and a recommendation before you commit.`,"chat.commandAutocomplete.command.exploreDescription":`Get oriented in this codebase: a high-level tour of the architecture and main parts.`,"chat.commandAutocomplete.badge.skill":`skill`,"chat.commandAutocomplete.badge.command":`command`,"chat.commandAutocomplete.badge.system":`system`,"chat.commandAutocomplete.empty":`No commands found`,"chat.agentMentionAutocomplete.badge.system":`system`,"chat.agentMentionAutocomplete.empty":`No agents found`,"chat.fileMentionAutocomplete.searchMoreAgents":`Type to search more agents`,"chat.fileMentionAutocomplete.groups.agents":`Agents`,"chat.fileMentionAutocomplete.groups.sessions":`Loaded sessions`,"chat.fileMentionAutocomplete.groups.directories":`Directories`,"chat.fileMentionAutocomplete.groups.recentFiles":`Recent files`,"chat.fileMentionAutocomplete.groups.files":`Files`,"chat.fileMentionAutocomplete.sessionType":`OpenCode session`,"chat.fileMentionAutocomplete.untitledSession":`Untitled session`,"chat.fileMentionAutocomplete.empty":`No matches found`,"chat.queuedMessage.attachments":`+{count} file(s)`,"chat.queuedMessage.empty":`(empty)`,"chat.queuedMessage.title":`Queue`,"chat.queuedMessage.edit":`edit`,"chat.queuedMessage.send":`send`,"chat.queuedMessage.queuing":`Queuing…`,"chat.queuedMessage.queuingAria":`Queuing message`,"chat.queuedMessage.sending":`Sending…`,"chat.queuedMessage.sendingAria":`Sending message`,"chat.queuedMessage.removeAria":`Remove from queue`,"chat.queuedMessage.reorderAria":`Drag to reorder`,"chat.container.returnToParent.aria":`Return to parent session`,"chat.container.returnToParent.titleNamed":`Return to: {title}`,"chat.container.returnToParent.title":`Return to parent session`,"chat.container.returnToParent.label":`Parent`,"chat.container.readOnlySubagentPromptBanner":`Subagent sessions cannot be prompted.`,"chat.unifiedControls.title":`Controls`,"chat.unifiedControls.model.title":`Model`,"chat.unifiedControls.model.noRecent":`No recent models`,"chat.unifiedControls.model.moreAria":`More models`,"chat.unifiedControls.effort.title":`Effort`,"chat.unifiedControls.effort.moreAria":`More effort options`,"chat.questionCard.summaryTab":`Summary`,"chat.questionCard.noAnswer":`(no answer)`,"chat.questionCard.inputNeeded":`Input needed`,"chat.questionCard.fromSubagent":`From subagent`,"chat.questionCard.questionFallback":`Question {index}`,"chat.questionCard.selectMultiple":`Select multiple`,"chat.questionCard.recommended":`recommended`,"chat.questionCard.other":`Other…`,"chat.questionCard.yourAnswer":`Your answer`,"chat.questionCard.submit":`Submit`,"chat.questionCard.next":`Next`,"chat.questionCard.dismiss":`Dismiss`,"chat.questionCard.copyMarkdown":`Copy as Markdown`,"chat.questionCard.copyJson":`Copy as JSON`,"chat.questionCard.copiedMarkdown":`Question copied as Markdown`,"chat.questionCard.copiedJson":`Question copied as JSON`,"chat.questionCard.copyFailed":`Failed to copy question`,"chat.questionCard.submitFailed":`Failed to send response`,"chat.questionCard.dismissFailed":`Failed to dismiss question`,"chat.questionCard.noLongerPending":`This question is no longer waiting for a response.`,"chat.questionCard.tryAgain":`Please try again in a moment.`,"chat.textSelection.toast.noProject":`No project found for this session`,"chat.textSelection.toast.addToNotesFailed":`Failed to add to notes`,"chat.textSelection.toast.addToNotesSuccess":`Added selected text to notes`,"chat.textSelection.toast.addToNotesSummaryFailed":`Could not summarize selection, added selected text to notes`,"chat.textSelection.actions.addToChat":`Add to chat`,"chat.textSelection.actions.newSession":`New session`,"chat.textSelection.actions.copy":`Copy`,"chat.textSelection.actions.addToNotes":`Add to notes`,"chat.textSelection.title.addToCurrentChat":`Add to current chat`,"chat.textSelection.title.newSessionWithSelection":`Create new session with selection`,"chat.textSelection.title.saveInsightToNotes":`Save selected text to notes`,"chat.messageBody.actions.editing":`Editing…`,"chat.messageBody.actions.editStaged":`Edit pending`,"chat.messageBody.actions.cancelEdit":`Cancel edit`,"chat.messageBody.actions.editAria":`Edit message and keep changes`,"chat.messageBody.actions.edit":`Edit and keep changes`,"chat.messageBody.actions.revertAria":`Revert to this message`,"chat.messageBody.actions.revert":`Revert from here`,"chat.messageBody.actions.forkAria":`Fork from this message`,"chat.messageBody.actions.fork":`Fork from here`,"chat.messageBody.actions.openSourceSessionAria":`Open original session`,"chat.messageBody.actions.openSourceSession":`Open original session`,"chat.messageBody.actions.copyMessageAria":`Copy message text`,"chat.messageBody.actions.copyMessage":`Copy message`,"chat.messageBody.actions.openPreviewAria":`Open preview`,"chat.messageBody.actions.openPreview":`Open preview`,"chat.messageBody.actions.copyAnswer":`Copy answer`,"chat.messageBody.actions.savingImage":`Saving image...`,"chat.messageBody.actions.saveAsImage":`Save as image`,"chat.messageBody.meta.tpsAria":`Generation rate: {rate}`,"chat.messageBody.meta.tpsTooltip":`Generation speed (tokens/sec), excluding tool call time`,"chat.messageBody.forkDialog.instructions.label":`Instructions`,"chat.messageBody.forkDialog.instructions.placeholder":`Add instructions for the new session…`,"chat.messageBody.forkDialog.createWorktree":`Create worktree`,"chat.forkTransition.preparing":`Preparing the fork`,"chat.forkTransition.copying":`Copying the conversation (long sessions may take a while)`,"chat.forkTransition.opening":`Opening the new session`,"chat.forkTransition.loading":`Loading recent messages`,"chat.forkTransition.progress":`{current} / {total}`,"chat.generatedResult.actions.copy":`Copy`,"chat.generatedResult.actions.copied":`Copied`,"chat.generatedResult.commit.title":`Generated commit message`,"chat.generatedResult.commit.highlights":`Highlights`,"chat.generatedResult.pullRequest.title":`Generated pull request`,"chat.generatedResult.pullRequest.titleLabel":`Title`,"chat.generatedResult.pullRequest.bodyLabel":`Body`,"chat.messageBody.tts.stopSpeaking":`Stop speaking`,"chat.messageBody.tts.readAloud":`Read aloud`,"chat.messageBody.tts.readAloudWithProvider":`Read aloud ({provider} voice)`,"planView.tts.readAloud":`Read plan aloud`,"planView.tts.stopSpeaking":`Stop speaking`,"filesView.tts.readAloud":`Read file aloud`,"filesView.tts.stopSpeaking":`Stop speaking`,"chat.messageBody.toast.imageSaved":`Image saved`,"chat.messageBody.toast.generateImageFailed":`Failed to generate image`,"chat.chatInput.actions.commands":`Commands`,"chat.chatInput.actions.attachFiles":`Attach files`,"chat.chatInput.actions.attachPhotos":`Attach photos`,"chat.chatInput.actions.addAttachment":`Add attachment`,"chat.chatInput.actions.linkGithubIssue":`Link GitHub Issue`,"chat.chatInput.actions.linkGithubPr":`Link GitHub PR`,"chat.chatInput.actions.modelAgentSettings":`Model and agent settings`,"chat.chatInput.actions.sendMessageAria":`Send message`,"chat.chatInput.actions.queueMessageAria":`Queue message`,"chat.chatInput.actions.queuingMessageAria":`Queuing…`,"chat.chatInput.actions.sendingMessageAria":`Sending…`,"chat.chatInput.actions.stopGeneratingAria":`Stop generating`,"chat.chatInput.focusMode.toggleAria":`Toggle focus mode`,"chat.chatInput.focusMode.label":`Focus mode`,"chat.chatInput.permissionAutoAccept.disable":`Disable permission auto-accept`,"chat.chatInput.permissionAutoAccept.enable":`Enable permission auto-accept`,"chat.chatInput.permissionAutoAccept.on":`Permission auto-accept: on`,"chat.chatInput.permissionAutoAccept.off":`Permission auto-accept: off`,"chat.chatInput.linked.byAuthor":`by {author}`,"chat.chatInput.linked.issue.openInBrowserAria":`Open issue in browser`,"chat.chatInput.linked.issue.removeAria":`Remove linked issue`,"chat.chatInput.linked.pr.number":`PR #{number}`,"chat.chatInput.linked.pr.openInBrowserAria":`Open pull request in browser`,"chat.chatInput.linked.pr.removeAria":`Remove linked pull request`,"chat.chatInput.placeholder.shell":`Enter shell command...`,"chat.chatInput.placeholder.chat":`@ for files/agents; / for commands and skills; ! for shell; # for snippets`,"chat.chatInput.placeholder.chatCompact":`Use @ / ! # for helpers`,"chat.chatInput.placeholder.selectSession":`Select or create a session to start chatting`,"chat.chatInput.pastedTextReference":`Pasted text #{index} · {count} characters`,"chat.dictation.start":`Start dictation`,"chat.dictation.overlayAria":`Dictation`,"chat.dictation.downloadingModel":`Downloading speech model...`,"chat.dictation.downloadingModelProgress":`Downloading speech model... {percent}%`,"chat.dictation.listening":`Listening...`,"chat.dictation.processing":`Transcribing...`,"chat.dictation.failed":`Transcription failed`,"chat.dictation.cancel":`Discard dictation`,"chat.dictation.insert":`Insert transcript`,"chat.dictation.insertAndSend":`Insert and send`,"chat.dictation.retry":`Retry transcription`,"chat.dictation.discard":`Discard recording`,"chat.snippetAutocomplete.action.addNew":`+ Add new snippet`,"chat.snippetAutocomplete.empty":`No snippets found`,"chat.snippetAutocomplete.footer":`↑↓ navigate • Enter select • Esc close`,"snippets.source.global":`global`,"snippets.source.project":`project`,"chat.chatInput.toast.compactFailed":`Failed to compact session`,"chat.chatInput.toast.summaryFailed":`Failed to generate summary`,"chat.messageBody.actions.sendReviewFeedback":`Send review feedback to implementing agent`,"chat.messageBody.actions.sendImplementationResponse":`Send implementation response to reviewing agent`,"chat.chatInput.toast.reviewFailed":`Failed to review changes`,"chat.chatInput.toast.planFeatureFailed":`Failed to start feature planning`,"chat.chatInput.toast.catchUpFailed":`Failed to catch up`,"chat.chatInput.toast.debugFailed":`Failed to start debugging`,"chat.chatInput.toast.weighFailed":`Failed to weigh options`,"chat.chatInput.toast.exploreFailed":`Failed to start the tour`,"chat.chatInput.toast.attachmentsTooLarge":`Attachments are too large to send. Please try reducing the number or size of images.`,"chat.chatInput.toast.sendAttachmentsFailed":`Failed to send attachments. Try fewer files or smaller images.`,"chat.chatInput.toast.messageSendFailed":`Message failed to send. Attachments restored.`,"chat.chatInput.toast.sendStatusUnknown":`Message status unknown. Please check and try again.`,"chat.chatInput.toast.queueOperationFailed":`Queue operation failed.`,"chat.chatInput.toast.queueOperationStatusUnknown":`Queue operation status is unknown. Server state will refresh automatically.`,"chat.chatInput.toast.clipboardAttachFailed":`Failed to attach image from clipboard`,"chat.chatInput.toast.attachFileFailed":`Failed to attach file`,"chat.chatInput.toast.attachNamedFailed":`Failed to attach {name}`,"chat.chatInput.toast.someFilesSkipped":`Some files were skipped:
|
|
15
|
-
{summary}`,"chat.chatInput.toast.vscodePickFailed":`Failed to pick files in VS Code`,"chat.chatInput.toast.openSessionFirst":`Open a session first`,"chat.chatInput.toast.togglePermissionAutoAcceptFailed":`Failed to toggle permission auto-accept`,"chat.chatInput.toast.sessionReferenceLoadFailed":`Could not load the session reference.`,"chat.chatInput.reviewComments":`Review comments:`,"chat.chatInput.reviewCommentsRemove":`Remove review comments`,"chat.chatInput.devServerLogs":`Dev Server logs:`,"chat.chatInput.devServerLogsRemove":`Remove Dev Server logs`,"chat.chatInput.previewAnnotations":`Preview annotations:`,"chat.chatInput.previewContext":`Preview context:`,"chat.chatInput.previewContextRemove":`Remove preview context`,"chat.chatInput.projectRoot":`Project root`,"chat.chatInput.branch":`Branch`,"chat.chatInput.draftPicker.projectTitle":`Project`,"chat.chatInput.draftPicker.newProject":`New project`,"chat.chatInput.draftPicker.searchProjects":`Search projects...`,"chat.chatInput.draftPicker.searchBranches":`Search branches...`,"chat.chatInput.worktrees":`Worktrees`,"chat.chatInput.worktreeNew":`+ New`,"chat.chatInput.branchSwitch.title":`Switch to {branch}?`,"chat.chatInput.branchSwitch.description":`How should this branch be opened for the new conversation?`,"chat.chatInput.branchSwitch.createWorktree":`Create worktree`,"chat.chatInput.branchSwitch.createWorktreeDescription":`Keep the current directory as-is and work in an isolated worktree.`,"chat.chatInput.branchSwitch.checkoutHere":`Checkout here`,"chat.chatInput.branchSwitch.checkoutHereDescription":`Switch the current directory to this branch.`,"chat.chatInput.branchSwitch.cancel":`Cancel`,"chat.chatInput.drop.insertMention":`Drop to insert as mention`,"chat.chatInput.drop.attachFiles":`Drop files here to attach`,"chat.chatInput.fileFallback":`file`,"chat.mobileStatus.editProjects.title":`Edit Projects`,"chat.mobileStatus.editProjects.footer":`Drag items to reorder, or use arrows to move. Tap edit to change details.`,"chat.mobileStatus.editProjects.empty":`No projects to edit`,"chat.mobileStatus.projects.empty":`No projects`,"chat.mobileStatus.projects.addAria":`Add project`,"chat.mobileStatus.projects.removeTitle":`Remove Project`,"chat.mobileStatus.projects.removeDescriptionPrefix":`Are you sure you want to remove`,"chat.mobileStatus.projects.cancel":`Cancel`,"chat.mobileStatus.projects.remove":`Remove`,"chat.mobileStatus.new":`New`,"chat.mobileStatus.noSessionsInProject":`No sessions in this project`,"chat.mobileStatus.swipeHint":`← Swipe here to open sidebars →`,"chat.mobileStatus.toast.addProjectFailed":`Failed to add project`,"chat.mobileStatus.toast.selectValidDirectory":`Please select a valid directory.`,"chat.mobileStatus.toast.selectDirectoryFailed":`Failed to select directory`,"chat.toolOutputDialog.image.previousAria":`Previous image`,"chat.toolOutputDialog.image.nextAria":`Next image`,"chat.toolOutputDialog.image.zoomInAria":`Zoom in`,"chat.toolOutputDialog.image.zoomOutAria":`Zoom out`,"chat.toolOutputDialog.image.resetZoomAria":`Reset zoom`,"chat.image.actions.sheetTitle":`Image`,"chat.image.actions.saveImage":`Save image`,"chat.image.actions.saveToPhotos":`Save to Photos`,"chat.image.actions.saving":`Saving…`,"chat.image.actions.saveSuccess":`Image saved`,"chat.image.actions.saveFailed":`Could not save image`,"chat.toolOutputDialog.mermaid.missingSource":`Missing Mermaid source URL.`,"chat.toolOutputDialog.mermaid.loadFailed":`Unable to load Mermaid diagram.`,"chat.toolOutputDialog.mermaid.dataUrlMalformed":`The Mermaid data URL is malformed.`,"chat.toolOutputDialog.mermaid.invalidLocalPath":`The local Mermaid file path is invalid.`,"chat.toolOutputDialog.mermaid.readFileFailedWithStatus":`Unable to read Mermaid file. Status: {status}.`,"chat.toolOutputDialog.mermaid.unsupportedUrlProtocol":`The Mermaid URL protocol is unsupported.`,"chat.toolOutputDialog.mermaid.loadFailedWithStatus":`Unable to load Mermaid diagram. Status: {status}.`,"chat.toolOutputDialog.mermaid.closeAria":`Close diagram preview`,"chat.toolOutputDialog.mermaid.loading":`Loading diagram...`,"chat.toolOutputDialog.mermaid.renderFailed":`Unable to render Mermaid diagram.`,"chat.toolOutputDialog.mermaid.retry":`Retry`,"chat.toolOutputDialog.commandCompleted":`Command completed successfully`,"chat.toolOutputDialog.noOutputProduced":`No output was produced`,"chat.activity.outputLoading":`Loading full output…`,"chat.activity.outputLoadFailed":`Could not load full output.`,"chat.activity.outputRetry":`Retry`,"chat.fileAttachment.image.loading":`Loading image…`,"chat.fileAttachment.image.loadFailed":`Could not load image.`,"chat.fileAttachment.image.retry":`Retry loading image`,"chat.fileAttachment.image.loadManually":`Load image`,"chat.fileAttachment.image.loadManuallyCount":`Load {count} images`,"chat.toolPart.lspErrors":`LSP errors`,"chat.toolPart.moreErrors":`+{count} more errors`,"chat.toolPart.error":`Error:`,"chat.toolPart.awaitingResponse":`Awaiting response...`,"chat.toolPart.noOutputProduced":`No output produced`,"chat.toolPart.output":`Output`,"chat.toolPart.showRawJson":`Show raw JSON`,"chat.toolPart.showFormattedJson":`Show formatted JSON`,"chat.toolPart.showNavigableJson":`Show navigable JSON`,"chat.toolPart.openFileAtFirstChange":`Open file at first change`,"chat.toolPart.openFileDiff":`Open file diff`,"chat.toolPart.copyOutput":`Copy output`,"chat.toolPart.copiedOutput":`Copied output`,"chat.toolPart.copyOutputFailed":`Failed to copy output`,"chat.toolPart.openSubtask":`Open {type} subtask`,"chat.todo.total":`Total`,"chat.todo.inProgress":`In Progress`,"chat.todo.pending":`Pending`,"chat.todo.completed":`Completed`,"chat.todo.cancelled":`Cancelled`,"chat.permissionCard.workingDirectory":`Working Directory:`,"chat.permissionCard.timeout":`Timeout:`,"chat.permissionCard.request":`Request:`,"chat.permissionCard.headers":`Headers:`,"chat.permissionCard.body":`Body:`,"chat.permissionCard.action":`Action:`,"chat.permissionCard.details":`Details:`,"chat.permissionCard.patterns":`Patterns:`,"chat.permissionCard.replaceAll":`Replace all occurrences`,"chat.permissionCard.responseFormat":`Response format:`,"chat.permissionCard.allowOnce":`Allow once`,"chat.permissionCard.alwaysAgree":`Always agree`,"chat.permissionToast.sessionFallback":`Session`,"chat.permissionToast.permissionFallback":`Permission details unavailable`,"chat.permissionToast.labels.session":`Session:`,"chat.permissionToast.labels.permission":`Permission:`,"chat.permissionToast.actions.once":`Once`,"chat.permissionToast.actions.always":`Always`,"chat.permissionToast.actions.deny":`Deny`,"chat.permissionToast.actions.approveOnceAria":`Approve once`,"chat.permissionToast.actions.approveOnceAriaWithSession":`Approve once for {session}`,"chat.permissionToast.actions.approveAlwaysAria":`Approve always`,"chat.permissionToast.actions.approveAlwaysAriaWithSession":`Approve always for {session}`,"chat.permissionToast.actions.denyAria":`Deny permission`,"chat.permissionToast.actions.denyAriaWithSession":`Deny permission for {session}`,"chat.permissionRequest.required":`Permission required:`,"chat.permissionRequest.actions.once":`Once`,"chat.permissionRequest.actions.always":`Always`,"chat.permissionRequest.actions.reject":`Reject`,"chat.modelControls.provider":`Provider`,"chat.modelControls.capability.toolCalling":`Tool calling`,"chat.modelControls.capability.reasoning":`Reasoning`,"chat.modelControls.modality.text":`Text`,"chat.modelControls.modality.image":`Image`,"chat.modelControls.modality.video":`Video`,"chat.modelControls.modality.audio":`Audio`,"chat.modelControls.modality.pdf":`PDF`,"chat.modelControls.capabilities":`Capabilities`,"chat.modelControls.modalities":`Modalities`,"chat.modelControls.input":`Input`,"chat.modelControls.output":`Output`,"chat.modelControls.limits":`Limits`,"chat.modelControls.context":`Context`,"chat.modelControls.metadata":`Metadata`,"chat.modelControls.knowledge":`Knowledge`,"chat.modelControls.release":`Release`,"chat.modelControls.mode":`Mode`,"chat.modelControls.model":`Model`,"chat.modelControls.temperature":`Temperature`,"chat.modelControls.topP":`Top P`,"chat.modelControls.permissions":`Permissions`,"chat.modelControls.edit":`Edit`,"chat.modelControls.bash":`Bash`,"chat.modelControls.webFetch":`WebFetch`,"chat.modelControls.customPrompt":`Custom Prompt`,"chat.modelControls.selectModel":`Select model`,"chat.modelControls.searchProvidersOrModels":`Search providers or models`,"chat.modelControls.clearSearch":`Clear search`,"chat.modelControls.current":`Current`,"chat.modelControls.thinking":`Thinking`,"chat.modelControls.default":`Default`,"chat.modelControls.selectAgent":`Select agent`,"chat.modelControls.costPerMillion":`Cost`,"chat.modelControls.costInput":`In`,"chat.modelControls.costOutput":`Out`,"chat.modelControls.metadataUnavailable":`Model metadata unavailable.`,"chat.modelControls.addNewProvider":`Add new provider`,"chat.modelControls.noAgentSelected":`No agent selected.`,"chat.modelControls.resetToDefault":`Reset to default`,"chat.modelControls.searchModels":`Search models`,"chat.modelControls.searchAgents":`Search agents`,"chat.modelControls.noModelsFound":`No models found`,"chat.modelControls.favorites":`Favorites`,"chat.modelControls.recent":`Recent`,"chat.modelControls.addToFavorites":`Add to favorites`,"chat.modelControls.removeFromFavorites":`Remove from favorites`,"chat.modelControls.favoriteAria":`Favorite`,"chat.modelControls.unfavoriteAria":`Unfavorite`,"chat.modelControls.collapseProvider":`Collapse provider`,"chat.modelControls.expandProvider":`Expand provider`,"chat.modelControls.keyboardHint":`↑↓ navigate{thinking} • Enter select • Esc close`,"chat.modelControls.keyboardHintNavigate":`↑↓ navigate`,"chat.modelControls.keyboardHintSwitchAgent":`{shortcut} switch agent`,"chat.modelControls.keyboardHintSwitchAgentLabel":`Switch agent`,"chat.modelControls.keyboardHintThinking":`←→ thinking`,"chat.modelControls.showThinkingModes":`Show thinking modes`,"chat.modelControls.hideThinkingModes":`Hide thinking modes`,"chat.modelControls.moreThinkingModes":`More thinking modes`,"chat.modelControls.noProvidersOrModelsFound":`No providers or models match your search.`,"chat.modelControls.reorderFavoriteAria":`Reorder favorite`,"chat.modelControls.reorderFavoriteTitle":`Drag to reorder favorite`,"chat.modelControls.reorderProviderTitle":`Drag to reorder provider`,"chat.modelControls.permissionLabel.custom":`Custom`,"chat.modelControls.permissionLabel.allow":`Allow`,"chat.modelControls.permissionLabel.deny":`Deny`,"chat.modelControls.permissionLabel.ask":`Ask`,"chat.modelControls.modeValue.primary":`Primary`,"chat.modelControls.modeValue.subagent":`Subagent`,"chat.modelControls.modeValue.all":`All`,"chat.modelControls.modeValue.none":`—`,"chat.reasoningTrace.thinking":`Thinking`,"chat.reasoningTrace.justification":`Justification`,"chat.reasoningTrace.expandAria":`Expand reasoning trace`,"chat.reasoningTrace.collapseAria":`Collapse reasoning trace`,"chat.reasoningTrace.thought":`Thought`,"chat.contextGroup.exploring":`Exploring`,"chat.contextGroup.explored":`Explored`,"chat.contextGroup.expandAria":`Expand explored tools`,"chat.contextGroup.collapseAria":`Collapse explored tools`,"chat.contextGroup.readSingle":`{count} read`,"chat.contextGroup.readPlural":`{count} reads`,"chat.contextGroup.searchSingle":`{count} search`,"chat.contextGroup.searchPlural":`{count} searches`,"chat.contextGroup.listSingle":`{count} list`,"chat.contextGroup.listPlural":`{count} lists`,"chat.skillGroup.expandAria":`Expand loaded skills`,"chat.skillGroup.collapseAria":`Collapse loaded skills`,"chat.skillGroup.summaryOverflow":`{names} and {count} more`,"chat.tools.display.read":`Read File`,"chat.tools.display.write":`Write File`,"chat.tools.display.edit":`Edit File`,"chat.tools.display.multiedit":`Multi-Edit`,"chat.tools.display.apply_patch":`Apply Patch`,"chat.tools.display.bash":`Shell Command`,"chat.tools.display.grep":`Search Files`,"chat.tools.display.glob":`Find Files`,"chat.tools.display.list":`List Directory`,"chat.tools.display.task":`Agent Task`,"chat.tools.display.webfetch":`Fetch URL`,"chat.tools.display.websearch":`Web Search`,"chat.tools.display.codesearch":`Code Search`,"chat.tools.display.todowrite":`Update Todo List`,"chat.tools.display.todoread":`Read Todo List`,"chat.tools.display.skill":`Load Skill`,"chat.tools.display.question":`Question`,"chat.tools.display.lsp":`LSP`,"chat.tools.display.plan_enter":`Plan Mode`,"chat.tools.display.plan_exit":`Build Mode`,"chat.tools.display.structuredoutput":`Structured Output`,"chat.messageBody.subtask.title":`Delegated task`,"chat.messageBody.subtask.hidePrompt":`Hide prompt`,"chat.messageBody.subtask.showPrompt":`Show prompt`,"chat.messageBody.subtask.openSession":`Open subtask session`,"chat.messageBody.subagent.completed":`Completed`,"chat.messageBody.subagent.error":`Failed`,"chat.messageBody.subagent.cancelled":`Cancelled`,"chat.messageBody.subagent.completedDescription":`Background subagent completed`,"chat.messageBody.subagent.errorDescription":`Background subagent failed`,"chat.messageBody.subagent.cancelledDescription":`Background subagent cancelled`,"chat.messageBody.subagent.openSession":`Open subagent session: {label}`,"chat.messageBody.shellCommand.title":`Shell command`,"chat.messageBody.shellCommand.hideOutput":`Hide output`,"chat.messageBody.shellCommand.showOutput":`Show output`,"chat.messageBody.shellCommand.copied":`Copied`,"chat.messageBody.shellCommand.copyOutput":`Copy output`,"commandPalette.title":`Command Palette`,"commandPalette.description":`Search files, sessions, and commands.`,"commandPalette.input.placeholder":`Search files, sessions, commands...`,"commandPalette.empty.noResults":`No results found.`,"commandPalette.empty.searchingFiles":`Searching files...`,"commandPalette.item.newSession":`New Session`,"commandPalette.item.newMiniChat":`New Mini Chat Window`,"commandPalette.item.newWorktreeDraft":`New Worktree Draft`,"commandPalette.item.addProject":`Add Project`,"commandPalette.item.showSessionSwitcher":`Show Session Switcher`,"commandPalette.item.toggleSidebar":`Toggle Sidebar`,"commandPalette.item.toggleRightSidebar":`Toggle Right Sidebar`,"commandPalette.item.showContextUsage":`Show Context Usage`,"commandPalette.item.toggleTerminal":`Toggle Terminal`,"commandPalette.item.newTerminalTab":`New Terminal Tab`,"commandPalette.item.openSettings":`Open Settings...`,"commandPalette.session.untitled":`Untitled Session`,"openCodeStatusDialog.title":`OpenCode Status`,"openCodeStatusDialog.description":`Inspect current OpenCode status and diagnostics.`,"openCodeStatusDialog.actions.copy":`Copy`,"openCodeStatusDialog.empty.noData":`No data.`,"openCodeStatusDialog.toast.copiedTitle":`Copied`,"openCodeStatusDialog.toast.copiedDescription":`Status copied to clipboard`,"openCodeStatusDialog.toast.copyFailed":`Failed to copy status`,"branchPickerDialog.title":`Branch Picker`,"branchPickerDialog.description.localBranchesForProject":`Local branches for {project}`,"branchPickerDialog.description.selectProject":`Select a project to view branches`,"branchPickerDialog.search.placeholder":`Search branches...`,"branchPickerDialog.search.renameBranchPlaceholder":`Rename branch`,"branchPickerDialog.state.noProjectSelected":`No project selected`,"branchPickerDialog.state.loadingBranches":`Loading branches...`,"branchPickerDialog.state.noMatchingBranches":`No matching branches`,"branchPickerDialog.state.noBranchesFound":`No branches found`,"branchPickerDialog.badge.head":`HEAD`,"branchPickerDialog.badge.worktree":`worktree`,"branchPickerDialog.actions.createWorktreeAria":`Create worktree from branch`,"branchPickerDialog.actions.renameAria":`Rename branch`,"branchPickerDialog.actions.deleteAria":`Delete branch`,"branchPickerDialog.actions.deleteWorktreeAria":`Remove worktree`,"branchPickerDialog.actions.confirmRenameAria":`Confirm rename`,"branchPickerDialog.actions.cancelRenameAria":`Cancel rename`,"branchPickerDialog.actions.confirmDeleteAria":`Confirm delete branch`,"branchPickerDialog.actions.cancelDeleteAria":`Cancel delete branch`,"branchPickerDialog.actions.deletePrompt":`Delete`,"branchPickerDialog.actions.forceDeletePrompt":`Force Delete`,"branchPickerDialog.tooltip.createWorktree":`Create worktree`,"branchPickerDialog.tooltip.worktreeAlreadyExists":`Worktree already exists`,"branchPickerDialog.tooltip.rename":`Rename branch`,"branchPickerDialog.tooltip.renameDisabledForRoot":`Cannot rename root branch`,"branchPickerDialog.tooltip.delete":`Delete branch`,"branchPickerDialog.tooltip.deleteCurrentBranch":`Cannot delete current branch`,"branchPickerDialog.tooltip.deleteDisabledForRoot":`Cannot delete root branch`,"branchPickerDialog.tooltip.deleteWorktree":`Remove worktree`,"branchPickerDialog.tooltip.deleteWorktreeRootProtected":`Cannot remove root worktree`,"branchPickerDialog.toast.branchRenamed":`Branch renamed`,"branchPickerDialog.toast.failedToRenameBranch":`Failed to rename branch`,"branchPickerDialog.toast.branchDeleted":`Branch deleted`,"branchPickerDialog.toast.branchNotMerged":`Branch is not fully merged`,"branchPickerDialog.toast.confirmAgainToForceDelete":`Confirm again to force delete`,"branchPickerDialog.toast.failedToDeleteBranch":`Failed to delete branch`,"branchPickerDialog.toast.worktreeCreated":`Worktree created`,"branchPickerDialog.toast.failedToCreateWorktree":`Failed to create worktree`,"branchPickerDialog.error.failedToLoad":`Failed to load branches`,"branchPickerDialog.error.renameRejected":`Rename was rejected`,"branchPickerDialog.error.renameFailed":`Failed to rename branch`,"branchPickerDialog.error.deleteRejected":`Delete was rejected`,"branchPickerDialog.error.deleteFailed":`Failed to delete branch`,"branchPickerDialog.error.createWorktreeFailed":`Failed to create worktree`,"projectEditDialog.title":`Edit project`,"projectEditDialog.field.name":`Name`,"projectEditDialog.field.namePlaceholder":`Project name`,"projectEditDialog.field.color":`Color`,"projectEditDialog.field.icon":`Icon`,"projectEditDialog.field.preview":`Preview`,"projectEditDialog.field.iconBackground":`Icon Background`,"projectEditDialog.field.iconBackgroundAria":`Project icon background color`,"projectEditDialog.option.none":`None`,"projectEditDialog.actions.uploadIcon":`Upload Icon`,"projectEditDialog.actions.uploading":`Uploading...`,"projectEditDialog.actions.discoverFavicon":`Discover Favicon`,"projectEditDialog.actions.discovering":`Discovering...`,"projectEditDialog.actions.removeProjectIcon":`Remove Project Icon`,"projectEditDialog.actions.removing":`Removing...`,"projectEditDialog.actions.undoRemove":`Undo Remove`,"projectEditDialog.actions.clear":`Clear`,"projectEditDialog.actions.cancel":`Cancel`,"projectEditDialog.actions.save":`Save`,"projectEditDialog.toast.failedToUploadIcon":`Failed to upload project icon`,"projectEditDialog.toast.iconUpdated":`Project icon updated`,"projectEditDialog.toast.failedToRemoveIcon":`Failed to remove project icon`,"projectEditDialog.toast.iconRemoved":`Project icon removed`,"projectEditDialog.toast.failedToDiscoverIcon":`Failed to discover project icon`,"projectEditDialog.toast.customIconAlreadySet":`Custom icon already set for this project`,"projectEditDialog.toast.iconDiscovered":`Project icon discovered`,"agentManager.sidebar.search.placeholder":`Search Agent Groups...`,"agentManager.sidebar.actions.newAgentGroup":`New Agent Group`,"agentManager.sidebar.actions.more":`... More ({count})`,"agentManager.sidebar.actions.showLess":`Show less`,"agentManager.sidebar.section.agentGroups":`Agent Groups`,"agentManager.sidebar.state.loading":`Loading...`,"agentManager.sidebar.state.noGroupsFound":`No groups found`,"agentManager.sidebar.state.noGroupsYet":`No agent groups yet`,"agentManager.sidebar.state.createToGetStarted":`Create a new agent group to get started`,"agentManager.sidebar.item.modelCountSingle":`{count} model`,"agentManager.sidebar.item.modelCountPlural":`{count} models`,"agentManager.sidebar.item.groupMenuAria":`Group menu`,"agentManager.sidebar.item.delete":`Delete`,"agentManager.sidebar.relativeTime.now":`now`,"agentManager.sidebar.relativeTime.minutes":`{count}m`,"agentManager.sidebar.relativeTime.hours":`{count}h`,"agentManager.sidebar.relativeTime.days":`{count}d`,"agentManager.sidebar.dialog.deleteGroupTitle":`Delete agent group`,"agentManager.sidebar.dialog.deleteGroupDescription":`Delete "{group}"? This removes all worktrees and sessions in this group.`,"agentManager.sidebar.dialog.cancel":`Cancel`,"agentManager.sidebar.dialog.delete":`Delete`,"agentManager.sidebar.dialog.deleting":`Deleting...`,"agentManager.sidebar.toast.deletingGroup":`Deleting "{group}"...`,"agentManager.sidebar.toast.deletedGroup":`Deleted "{group}"`,"agentManager.sidebar.toast.failedToDeleteGroup":`Failed to fully delete "{group}"`,"agentManager.detail.header.modelCountSingle":`{count} model`,"agentManager.detail.header.modelCountPlural":`{count} models`,"agentManager.detail.header.noBranch":`No branch`,"agentManager.detail.actions.worktreeActionsAria":`Worktree actions`,"agentManager.detail.actions.removeThisWorktree":`Remove this worktree`,"agentManager.detail.actions.keepThisRemoveOthers":`Leave this one, remove others`,"agentManager.detail.actions.copyWorktreePath":`Copy Worktree Path`,"agentManager.detail.dialog.removeWorktreeTitle":`Remove worktree`,"agentManager.detail.dialog.removeOtherWorktreesTitle":`Remove other worktrees`,"agentManager.detail.dialog.removeWorktreeDescription":`Remove "{label}"? This deletes all sessions in that worktree and removes the worktree itself.`,"agentManager.detail.dialog.removeOtherWorktreesDescription":`Keep "{label}" and remove the other worktrees in "{group}".`,"agentManager.detail.dialog.cancel":`Cancel`,"agentManager.detail.dialog.remove":`Remove`,"agentManager.detail.dialog.removeOthers":`Remove others`,"agentManager.detail.dialog.working":`Working...`,"agentManager.detail.state.loadingSessionFor":`Loading session for {label}`,"agentManager.detail.state.sessionId":`Session ID: {id}`,"agentManager.detail.state.noSessionsInGroup":`No sessions in this group`,"agentManager.detail.toast.noWorktreePath":`No worktree path available`,"agentManager.detail.toast.worktreePathCopied":`Worktree path copied`,"agentManager.detail.toast.failedToCopyPath":`Failed to copy path`,"agentManager.detail.toast.removingWorktree":`Removing worktree...`,"agentManager.detail.toast.removingOtherWorktrees":`Removing other worktrees...`,"agentManager.detail.toast.failedToFullyRemoveWorktree":`Failed to fully remove worktree`,"agentManager.detail.toast.worktreeRemoved":`Worktree removed`,"agentManager.detail.toast.otherWorktreesRemoved":`Removed other worktrees`,"agentManager.empty.groupName.label":`Group Name`,"agentManager.empty.groupName.placeholder":`e.g. feature-auth, bugfix-login`,"agentManager.empty.groupName.description":`Used for worktree directory and branch naming`,"agentManager.empty.baseBranch.label":`Base Branch`,"agentManager.empty.baseBranch.description":`Creates new branches from {branch}`,"agentManager.empty.setupCommands.label":`Setup commands`,"agentManager.empty.setupCommands.configured":`{count} configured`,"agentManager.empty.setupCommands.description":`Commands run in each new worktree. Use $ROOT_PROJECT_PATH for project root.`,"agentManager.empty.setupCommands.loading":`Loading...`,"agentManager.empty.setupCommands.commandPlaceholder":`e.g., bun install`,"agentManager.empty.setupCommands.removeCommandAria":`Remove command`,"agentManager.empty.setupCommands.addCommand":`Add command`,"agentManager.empty.agent.label":`Agent`,"agentManager.empty.agent.description":`Defaults to your configured default agent`,"agentManager.empty.models.label":`Models`,"agentManager.empty.models.addModel":`Add model`,"agentManager.empty.models.selectedSingle":`{count} model selected`,"agentManager.empty.models.selectedPlural":`{count} models selected`,"agentManager.empty.prompt.label":`Prompt`,"agentManager.empty.prompt.placeholder":`Ask anything...`,"agentManager.empty.prompt.addAttachmentAria":`Add attachment`,"agentManager.empty.actions.startAgentGroupAria":`Start Agent Group`,"agentManager.empty.toast.fileTooLarge":`File "{fileName}" is too large (max 10MB)`,"agentManager.empty.toast.failedToAttach":`Failed to attach "{fileName}"`,"agentManager.empty.toast.attachedSingle":`Attached {count} file`,"agentManager.empty.toast.attachedPlural":`Attached {count} files`,"agentManager.empty.toast.failedToCreateGroup":`Failed to create agent group`,"openInApp.actions.open":`Open`,"openInApp.actions.openInAria":`Open in {app}`,"openInApp.actions.chooseAppAria":`Choose app to open`,"openInApp.actions.copyPath":`Copy Path`,"openInApp.actions.refreshApps":`Refresh Apps`,"openInApp.toast.pathCopied":`Path copied to clipboard`,"projectActions.actions.addActionAria":`Add action`,"projectActions.actions.addAction":`Add action`,"projectActions.actions.addNewAction":`Add new action`,"projectActions.actions.autoDiscover":`Auto-discover`,"projectActions.actions.chooseActionAria":`Choose project action`,"projectActions.actions.openPreview":`Open Preview`,"projectActions.actions.runNamedAria":`Run {name}`,"projectActions.actions.stopNamedAria":`Stop {name}`,"projectActions.label.fallbackAction":`Action`,"projectActions.toast.openedUrlFromOutput":`Opened URL from action output`,"projectActions.toast.openedForwardedUrl":`Opened forwarded URL`,"projectActions.toast.openedActionUrl":`Opened action URL`,"projectActions.error.noActiveDirectory":`No active directory`,"projectActions.error.noActiveDirectoryForAction":`No active directory for action`,"projectActions.error.failedToCreateTerminalSession":`Failed to create terminal session`,"projectActions.error.invalidCustomUrlFormat":`Invalid custom URL format`,"projectActions.error.selectedDesktopSshForwardUnavailable":`Selected desktop SSH forward is unavailable`,"projectActions.error.failedToRunAction":`Failed to run action`,"mcpDropdown.title":`MCP Servers`,"mcpDropdown.actions.refreshAria":`Refresh`,"mcpDropdown.actions.openAria":`MCP servers`,"mcpDropdown.statusAria":`MCP status`,"mcpDropdown.status.unknown":`Unknown`,"mcpDropdown.status.connected":`Connected`,"mcpDropdown.status.failed":`Failed: {error}`,"mcpDropdown.status.unknownError":`Unknown error`,"mcpDropdown.status.needsAuth":`Needs authentication`,"mcpDropdown.status.needsRegistration":`Needs registration: {error}`,"mcpDropdown.empty.configureInConfig":`Configure MCP servers in Settings.`,"sessionAuth.error.rateLimitTitle":`Too many attempts`,"sessionAuth.error.networkTitle":`Unable to reach server`,"sessionAuth.error.rateLimitDescriptionSingle":`Please wait {minutes} minute before trying again.`,"sessionAuth.error.rateLimitDescriptionPlural":`Please wait {minutes} minutes before trying again.`,"sessionAuth.error.networkDescription":`We could not verify the UI session. If you're opening OpenChamber from another device on your local network, make sure Desktop Network Access is enabled on the desktop app and use the LAN address shown in Settings.`,"sessionAuth.error.retry":`Retry`,"sessionAuth.error.passkeySetupFailed":`Passkey setup failed.`,"sessionAuth.error.incorrectPassword":`Incorrect password. Try again.`,"sessionAuth.error.unexpectedResponse":`Unexpected response from server.`,"sessionAuth.error.networkRetry":`Network error. Check connection and retry.`,"sessionAuth.error.passkeySignInCanceled":`Passkey sign-in was canceled.`,"sessionAuth.error.enterPasswordForPasskey":`Enter your password to add a passkey.`,"sessionAuth.locked.tunnelTitle":`Tunnel access required`,"sessionAuth.locked.unlockTitle":`Unlock OpenChamber`,"sessionAuth.locked.tunnelDescription":`Open this tunnel using the one-time connect link from the desktop app.`,"sessionAuth.locked.passwordDescription":`This session is password-protected.`,"sessionAuth.locked.hostSwitcherHint":`Use Local if remote is unreachable.`,"sessionAuth.actions.cancelPasskey":`Cancel passkey`,"sessionAuth.actions.usePasskey":`Use passkey`,"sessionAuth.actions.unlockingAria":`Unlocking`,"sessionAuth.actions.unlockAria":`Unlock`,"sessionAuth.actions.trustDevice":`Trust this device`,"sessionAuth.actions.trustDeviceAria":`Trust this device`,"sessionAuth.actions.cancelPasskeySetup":`Cancel passkey setup`,"sessionAuth.actions.addPasskey":`Add passkey`,"sessionAuth.password.placeholder":`Enter password`,"sessionAuth.toast.passkeyAdded":`Passkey added`,"sessionAuth.toast.passkeySetupCanceled":`Passkey setup canceled`,"desktopHostSwitcher.title":`Instance`,"desktopHostSwitcher.transition.title":`Switching instance…`,"desktopHostSwitcher.transition.description":`Loading data from the selected instance.`,"desktopHostSwitcher.description":`Switch between Local and remote OpenChamber servers`,"desktopHostSwitcher.header.current":`Current`,"desktopHostSwitcher.header.default":`Default`,"desktopHostSwitcher.header.currentColon":`Current:`,"desktopHostSwitcher.header.currentDefaultColon":`Current default:`,"desktopHostSwitcher.status.connected":`Connected`,"desktopHostSwitcher.status.authRequired":`Auth required`,"desktopHostSwitcher.status.checking":`Checking`,"desktopHostSwitcher.status.updateRecommended":`Update recommended`,"desktopHostSwitcher.status.incompatible":`Incompatible`,"desktopHostSwitcher.status.wrongService":`Wrong service`,"desktopHostSwitcher.status.unreachable":`Unreachable`,"desktopHostSwitcher.status.unknown":`Unknown`,"desktopHostSwitcher.status.ping":` · {ms}ms ping`,"desktopHostSwitcher.statusAria":`Instance status`,"desktopHostSwitcher.sshPhase.ready":`Ready`,"desktopHostSwitcher.sshPhase.error":`Error`,"desktopHostSwitcher.sshPhase.reconnecting":`Reconnecting`,"desktopHostSwitcher.sshPhase.resolvingConfig":`Resolving config`,"desktopHostSwitcher.sshPhase.checkingAuth":`Checking auth`,"desktopHostSwitcher.sshPhase.connectingSsh":`Connecting SSH`,"desktopHostSwitcher.sshPhase.probingRemote":`Probing remote`,"desktopHostSwitcher.sshPhase.installing":`Installing`,"desktopHostSwitcher.sshPhase.updating":`Updating`,"desktopHostSwitcher.sshPhase.detectingServer":`Detecting server`,"desktopHostSwitcher.sshPhase.startingServer":`Starting server`,"desktopHostSwitcher.sshPhase.forwardingPorts":`Forwarding ports`,"desktopHostSwitcher.sshPhase.idle":`Idle`,"desktopHostSwitcher.ssh.needInstancesHint":`Need SSH instances? Manage them in Settings.`,"desktopHostSwitcher.ssh.instanceFallback":`SSH instance`,"desktopHostSwitcher.ssh.connectingTo":`Connecting to {host}`,"desktopHostSwitcher.actions.refresh":`Refresh`,"desktopHostSwitcher.actions.refreshInstancesAria":`Refresh instances`,"desktopHostSwitcher.actions.remoteSsh":`Remote SSH`,"desktopHostSwitcher.actions.instanceActionsAria":`Instance actions`,"desktopHostSwitcher.actions.edit":`Edit`,"desktopHostSwitcher.actions.delete":`Delete`,"desktopHostSwitcher.actions.connect":`Connect`,"desktopHostSwitcher.actions.defaultInstanceAria":`Default instance`,"desktopHostSwitcher.actions.setAsDefaultAria":`Set as default`,"desktopHostSwitcher.actions.setAsDefault":`Set as default`,"desktopHostSwitcher.actions.openInNewWindowAria":`Open in new window`,"desktopHostSwitcher.actions.openInNewWindow":`Open in new window`,"desktopHostSwitcher.actions.addInstance":`Add instance`,"desktopHostSwitcher.actions.cancel":`Cancel`,"desktopHostSwitcher.actions.save":`Save`,"desktopHostSwitcher.actions.add":`Add`,"desktopHostSwitcher.actions.switchToLocal":`Switch to Local`,"desktopHostSwitcher.actions.retry":`Retry`,"desktopHostSwitcher.actions.switchInstanceAria":`Switch instance`,"desktopHostSwitcher.actions.switchInstance":`Switch instance`,"desktopHostSwitcher.actions.switchToAria":`Switch to {instance}`,"desktopHostSwitcher.field.labelPlaceholder":`Label`,"desktopHostSwitcher.field.labelOptionalPlaceholder":`Label (optional)`,"desktopHostSwitcher.field.urlPlaceholder":`https://host:port`,"desktopHostSwitcher.state.limitedOnPage":`Instance switcher is limited on this page. Use Local to recover.`,"desktopHostSwitcher.state.loading":`Loading...`,"desktopHostSwitcher.state.instanceUnreachable":`Instance unreachable`,"desktopHostSwitcher.edit.title":`Edit instance`,"desktopHostSwitcher.add.title":`Add instance`,"desktopHostSwitcher.error.failedToSave":`Failed to save`,"desktopHostSwitcher.error.failedToLoad":`Failed to load`,"desktopHostSwitcher.error.invalidUrl":`Invalid URL (must be http/https)`,"desktopHostSwitcher.error.failedToOpenNewWindow":`Failed to open new window`,"desktopHostSwitcher.instance.local":`Local`,"desktopHostSwitcher.instance.fallback":`Instance`,"desktopHostSwitcher.startup.title":`Default SSH instance unavailable`,"desktopHostSwitcher.startup.connectingTo":`Connecting to {host}...`,"desktopHostSwitcher.startup.failed":`Failed to connect the default SSH instance.`,"desktopHostSwitcher.toast.sshConnected":`SSH instance "{host}" connected`,"desktopHostSwitcher.toast.sshFailedToConnect":`SSH instance "{host}" failed to connect`,"desktopHostSwitcher.toast.instanceUnreachable":`Instance "{host}" is unreachable`,"miniChat.header.newSession":`New session`,"miniChat.header.session":`Session`,"miniChat.header.defaultAgent":`Default agent`,"miniChat.header.noModel":`No model`,"miniChat.status.busy":`Running`,"miniChat.status.retry":`Retrying`,"miniChat.status.idle":`Idle`,"miniChat.actions.pin":`Pin above other windows`,"miniChat.actions.unpin":`Unpin window`,"miniChat.actions.pinAria":`Pin Mini Chat window`,"miniChat.actions.unpinAria":`Unpin Mini Chat window`,"miniChat.actions.openMain":`Open in main window`,"miniChat.actions.openMainAria":`Open session in main window`,"miniChat.unavailable.title":`Session unavailable`,"miniChat.unavailable.description":`This session could not be loaded. It may have been deleted, archived, or opened from a different project context.`,"sessions.sidebar.session.menu.openMiniChatWindow":`Open in Mini Chat Window`,"header.actions.newMiniChat":`New Mini Chat Window`,"header.actions.newMiniChatAria":`Open a new Mini Chat window`,"header.actions.openSessionMiniChat":`Open Session in Mini Chat`,"header.actions.openSessionMiniChatAria":`Open current session in Mini Chat`,"header.windowControls.groupAria":`Window controls`,"header.windowControls.minimize":`Minimize window`,"header.windowControls.maximize":`Maximize window`,"header.windowControls.restore":`Restore window`,"header.windowControls.close":`Close window`,"errorBoundary.title":`Something went wrong`,"errorBoundary.description":`The application encountered an unexpected error. This has been logged for debugging.`,"errorBoundary.state.unknownError":`Unknown error`,"errorBoundary.state.componentStackLabel":`Component stack:`,"errorBoundary.actions.errorDetails":`Error details`,"errorBoundary.actions.tryAgain":`Try again`,"errorBoundary.actions.copy":`Copy`,"errorBoundary.actions.copied":`Copied`,"jsonTreeView.error.emptyJson":`Empty JSON content`,"jsonTreeView.error.invalidJson":`Invalid JSON`,"jsonTreeView.error.invalidJsonTitle":`Invalid JSON`,"jsonTreeView.actions.expandAll":`Expand All`,"jsonTreeView.actions.collapseAll":`Collapse All`,"numberInput.actions.decreaseAria":`Decrease value`,"numberInput.actions.increaseAria":`Increase value`,"goToLineDialog.field.linePlaceholderShort":`Line`,"goToLineDialog.field.linePlaceholder":`Line number`,"goToLineDialog.actions.go":`Go`,"goToLineDialog.helper.editorUnavailable":`Editor unavailable.`,"goToLineDialog.helper.currentLineRange":`Current Line: {current}. Type a line number between 1 and {max} to navigate to.`,"goToLineDialog.helper.goToLine":`Go to line {line}`,"dialog.common.actions.close":`Close`,"filesView.toast.relativePathCopied":`Relative path copied`,"filesView.tree.menu.copyRelativePath":`Copy Relative Path`,"multiRun.branchSelector.placeholder.selectSourceBranch":`Select source branch...`,"multiRun.branchSelector.status.loadingBranches":`Loading branches...`,"multiRun.branchSelector.status.noBranchesFound":`No branches found`,"multiRun.branchSelector.status.notInGitRepository":`Not in a git repository.`,"multiRun.branchSelector.groups.localBranches":`Local branches`,"multiRun.branchSelector.groups.remoteBranches":`Remote branches`,"multiRun.window.actions.closeAria":`Close multi-run`,"multiRun.window.description":`OpenChamber Multi-Run window.`,"voice.status.idle":`Voice Ready`,"voice.status.listening":`Listening...`,"voice.status.processing":`Processing...`,"voice.status.speaking":`Speaking...`,"voice.status.error":`Voice Error`,"voice.status.conversationModeActiveAria":`Conversation mode active`,"voice.action.finishAndTranscribe":`Finish and transcribe voice input`,"onboarding.common.actions.back":`Back`,"onboarding.common.copyToClipboard":`Copy to clipboard`,"onboarding.common.status.copiedToClipboard":`Copied to clipboard`,"onboarding.chooser.title":`Welcome to OpenChamber`,"onboarding.chooser.description":`Choose how you want to connect to get started.`,"onboarding.chooser.tabs.localInstall":`Local Install`,"onboarding.chooser.tabs.connectRemote":`Connect Remote`,"onboarding.localSetup.title":`Setting Up OpenCode`,"onboarding.localSetup.description":`Install OpenCode CLI to continue.`,"onboarding.localSetup.dialog.selectOpencodeBinary":`Select opencode binary`,"onboarding.localSetup.errors.cliNotReady":`OpenCode CLI is not ready yet. Please confirm installation is complete and try again.`,"onboarding.localSetup.errors.detectionFailed":`Detection failed`,"onboarding.localSetup.windows.title":`Windows setup`,"onboarding.localSetup.windows.stepInstallWsl":`Install OpenCode with the command below.`,"onboarding.localSetup.windows.stepInstallWslSuffix":``,"onboarding.localSetup.windows.stepRunInstallInWsl":`Run the install command below in a Windows terminal.`,"onboarding.localSetup.windows.stepSetBinaryPath":`If OpenChamber does not detect OpenCode automatically, set the binary path below.`,"onboarding.localSetup.intro":`OpenCode is the heart of OpenChamber — install it to get started.`,"onboarding.localSetup.docs.windows":`OpenCode docs`,"onboarding.localSetup.docs.default":`OpenCode docs`,"onboarding.localSetup.actions.checking":`Checking…`,"onboarding.localSetup.actions.checkAndContinue":`I've completed installation, check and continue`,"onboarding.localSetup.actions.checkNow":`Check now`,"onboarding.localSetup.helper.checkAndContinue":`Click to check if OpenCode CLI is available. If successful, you'll automatically enter the main screen.`,"onboarding.localSetup.status.watching":`Waiting for OpenCode`,"onboarding.localSetup.status.autoContinue":`We'll continue automatically once it's detected.`,"onboarding.localSetup.field.alreadyInstalled":`Already installed? Set the OpenCode CLI path:`,"onboarding.localSetup.advanced.title":`Set a custom binary path`,"onboarding.localSetup.troubleshoot.title":`Having trouble?`,"onboarding.localSetup.actions.browse":`Browse`,"onboarding.localSetup.actions.apply":`Apply`,"onboarding.localSetup.helper.saveAndReload":`Saves to OpenChamber settings and reloads OpenCode configuration.`,"onboarding.localSetup.remotePreference":`Prefer to use a remote server?`,"onboarding.localSetup.actions.connectRemoteServer":`Connect to Remote Server →`,"onboarding.localSetup.windows.hintInstallInWsl":`On Windows, install and run OpenCode natively.`,"onboarding.localSetup.windows.hintDetectionFailed":`If detection fails, set a native path such as opencode.cmd or opencode.exe.`,"onboarding.localSetup.hint.ensurePath":`Already installed? Make sure opencode is in your PATH.`,"onboarding.localSetup.hint.setEnv":`Or set OPENCODE_BINARY environment variable.`,"onboarding.localSetup.hint.missingRuntime":`If you see "env: node: No such file or directory" or "env: bun: No such file or directory", install that runtime or ensure it is on PATH.`,"onboarding.remoteConnection.title":`Connect to Remote Server`,"onboarding.remoteConnection.titleRecovery":`Connect to a Different Server`,"onboarding.remoteConnection.description":`Enter the address of an OpenChamber server to connect to.`,"onboarding.remoteConnection.field.serverAddress":`Server Address`,"onboarding.remoteConnection.field.serverAddressPlaceholder":`https://your-server.example.com:4096`,"onboarding.remoteConnection.field.nameOptional":`Name (optional)`,"onboarding.remoteConnection.field.namePlaceholder":`My Remote Server`,"onboarding.remoteConnection.errors.connectionTestFailed":`Connection test failed`,"onboarding.remoteConnection.errors.failedToSaveConnection":`Failed to save connection`,"onboarding.remoteConnection.status.connectedSuccessfully":`Connected successfully ({latencyMs}ms)`,"onboarding.remoteConnection.status.authWarning":`Server requires authentication. You can still connect.`,"onboarding.remoteConnection.status.connectionFailed":`Connection Failed`,"onboarding.remoteConnection.status.suggestionsUnreachable":`Suggestions: Check the server address, verify the server is running, or check your network connection.`,"onboarding.remoteConnection.status.suggestionsWrongService":`Suggestions: Verify the URL points to an OpenChamber server, or contact the server administrator.`,"onboarding.remoteConnection.actions.testing":`Testing…`,"onboarding.remoteConnection.actions.testConnection":`Test Connection`,"onboarding.remoteConnection.actions.connectAndRestart":`Connect & Restart`,"onboarding.remoteConnection.actions.whatToDo":`What would you like to do?`,"onboarding.remoteConnection.actions.chooseDifferentServer":`Choose Different Server`,"onboarding.remoteConnection.actions.useLocalInstead":`Use Local Instead`,"onboarding.remoteConnection.probe.authMessage":`Server requires authentication. You can still connect, but may need to provide credentials.`,"onboarding.remoteConnection.probe.updateRecommendedMessage":`This instance is running a different OpenChamber version. You can connect, but update both apps if something does not work.`,"onboarding.remoteConnection.probe.incompatibleMessage":`Server is running OpenChamber but is not compatible with this app version. Update OpenChamber on the server, then try again.`,"onboarding.remoteConnection.probe.wrongServiceMessage":`Server responded but is not running OpenChamber. Verify the address points to an OpenChamber server.`,"onboarding.remoteConnection.probe.unreachableMessage":`Server is unreachable. Check your network connection and verify the server address.`,"onboarding.desktopRecovery.localUnavailable.title":`Local OpenCode Unavailable`,"onboarding.desktopRecovery.localUnavailable.description":`OpenCode CLI could not be started or is not installed. Install OpenCode or connect to a remote server instead.`,"onboarding.desktopRecovery.localUnavailable.retry":`Retry Local`,"onboarding.desktopRecovery.localUnavailable.useLocal":`Set Up Local`,"onboarding.desktopRecovery.noDefaultConnection.title":`No Default Connection`,"onboarding.desktopRecovery.noDefaultConnection.description":`Your saved default connection could not be found. Choose how you want to connect.`,"onboarding.desktopRecovery.remoteUnreachable.title":`Remote Server Unreachable`,"onboarding.desktopRecovery.remoteUnreachable.description":`Could not connect to "{host}". Check your network connection and verify the server address.`,"onboarding.desktopRecovery.remoteUnreachable.retry":`Retry Connection`,"onboarding.desktopRecovery.incompatibleServer.title":`Incompatible Server`,"onboarding.desktopRecovery.incompatibleServer.description":`The server at "{host}" is not running OpenChamber. Verify the address points to an OpenChamber server.`,"onboarding.desktopRecovery.remoteIncompatible.title":`Server Update Required`,"onboarding.desktopRecovery.remoteIncompatible.description":`The OpenChamber server at "{host}" is not compatible with this app version. Update OpenChamber on the server, then try again.`,"onboarding.desktopRecovery.common.useLocal":`Use Local`,"onboarding.desktopRecovery.common.useRemote":`Use Remote`,"onboarding.desktopRecovery.actions.retrying":`Retrying…`,"onboarding.desktopRecovery.actions.retryConnection":`Retry Connection`,"startup.initRecovery.title":`Startup failed`,"startup.initRecovery.description":`OpenChamber could not finish initialization. Check that the server is running, then retry.`,"startup.initRecovery.retry":`Retry`,"startup.initRecovery.retrying":`Retrying…`,"onboarding.desktopRecovery.placeholders.remoteServer":`the remote server`,"onboarding.desktopRecovery.placeholders.unknownServer":`unknown`,"vscodeLayout.title.chat":`Chat`,"vscodeLayout.title.newSession":`New session`,"vscodeLayout.title.sessions":`Sessions`,"vscodeLayout.title.sessionFallback":`Session`,"vscodeLayout.actions.backToSessionsAria":`Back to sessions`,"vscodeLayout.actions.archiveAllAria":`Archive all sessions`,"vscodeLayout.actions.archiveAllConfirm":`Archive all`,"vscodeLayout.actions.archiveAllSuccess":`Archived {count} session(s)`,"vscodeLayout.actions.archiveAllError":`Failed to archive {count} session(s)`,"vscodeLayout.actions.cancel":`Cancel`,"vscodeLayout.actions.newSessionAria":`New session`,"vscodeLayout.actions.openAgentManagerAria":`Open Agent Manager`,"vscodeLayout.actions.resizeSessionsSidebarAria":`Resize sessions sidebar`,"vscodeLayout.actions.settingsAria":`Settings`,"vscodeLayout.quota.title":`Rate limits`,"vscodeLayout.quota.mode.used":`Used`,"vscodeLayout.quota.mode.remaining":`Remaining`,"vscodeLayout.quota.lastUpdated":`Last updated {time}`,"vscodeLayout.quota.noRateLimitsAvailable":`No rate limits available.`,"vscodeLayout.quota.noRateLimitsReported":`No rate limits reported.`,"vscodeLayout.quota.actions.rateLimitsAria":`Rate limits`,"vscodeLayout.quota.actions.showUsedAria":`Show used quota`,"vscodeLayout.quota.actions.showRemainingAria":`Show remaining quota`,"vscodeLayout.quota.actions.refreshAria":`Refresh rate limits`,"updateDialog.header.updateAvailable":`Update Available`,"updateDialog.header.updating":`Updating OpenChamber...`,"updateDialog.changelog.title":`What's new`,"updateDialog.status.installingUpdate":`Installing update...`,"updateDialog.status.serverRestarting":`Server restarting...`,"updateDialog.status.waitingForServer":`Waiting for server...`,"updateDialog.status.autoReloadHint":`The page will reload automatically when the update is complete.`,"updateDialog.fallback.updateViaTerminal":`Or update via terminal:`,"updateDialog.actions.copyCommand":`Copy command`,"updateDialog.actions.copied":`Copied!`,"updateDialog.status.downloadingPayload":`Downloading update payload...`,"updateDialog.actions.downloadUpdate":`Download Update`,"updateDialog.status.downloading":`Downloading...`,"updateDialog.actions.restartToUpdate":`Restart to Update`,"updateDialog.actions.updateNow":`Update Now`,"updateDialog.actions.applyOtaNow":`Update now`,"updateDialog.actions.openMobileUpdate":`Open update`,"updateDialog.status.updating":`Updating...`,"updateDialog.error.updateFailed":`Update failed`,"updateDialog.error.takingLonger":`Update is taking longer than expected. Wait a bit and refresh, or run: openchamber update`,"mobileUpdate.toast.available.title":`OpenChamber update available`,"mobileUpdate.toast.available.description":`Version {version} is ready for Android.`,"mobileUpdate.toast.actions.download":`Download`,"mobileUpdate.toast.actions.dismiss":`Dismiss`,"opencodeUpdate.toast.available.title":`OpenCode update`,"opencodeUpdate.toast.available.description":`Version {version} available.`,"opencodeUpdate.toast.actions.update":`Update`,"opencodeUpdate.toast.actions.dismiss":`Dismiss`,"opencodeUpdate.toast.actions.reload":`Reload OpenCode`,"opencodeUpdate.toast.upgrading.title":`Updating OpenCode...`,"opencodeUpdate.toast.upgrading.description":`Keep OpenChamber open.`,"opencodeUpdate.toast.updated.title":`OpenCode updated`,"opencodeUpdate.toast.updated.description":`Update installed.`,"opencodeUpdate.toast.updated.descriptionWithVersion":`Version {version} installed.`,"opencodeUpdate.toast.failed.title":`Could not update OpenCode`,"opencodeUpdate.toast.failed.description":`The OpenCode upgrade failed.`,"opencodeUpdate.toast.reload.message":`Restarting OpenCode...`,"memoryDebugPanel.title":`Debug Panel`,"memoryDebugPanel.tabs.memory":`Memory`,"memoryDebugPanel.tabs.streaming":`Streaming`,"memoryDebugPanel.section.sessionsInMemory":`Sessions in Memory`,"memoryDebugPanel.section.uiStreamingMetrics":`UI Streaming Metrics`,"memoryDebugPanel.section.vscodeBridgeMetrics":`VS Code Bridge Metrics`,"memoryDebugPanel.section.noUiSamples":`No UI streaming samples yet. Start a stream and keep this panel open.`,"memoryDebugPanel.section.noVscodeSamples":`No VS Code bridge samples yet.`,"memoryDebugPanel.metric.totalMessages":`Total Messages`,"memoryDebugPanel.metric.cachedSessions":`Cached Sessions`,"memoryDebugPanel.metric.userMessages":`User Messages`,"memoryDebugPanel.metric.assistantMessages":`Assistant Messages`,"memoryDebugPanel.metric.viewportWindow":`Viewport Window`,"memoryDebugPanel.metric.zombieTimeout":`Zombie Timeout`,"memoryDebugPanel.metric.githubTotalRequests":`GitHub Total Requests`,"memoryDebugPanel.metric.metrics":`Metrics`,"memoryDebugPanel.metric.samples":`Samples`,"memoryDebugPanel.metric.lastUpdate":`Last Update`,"memoryDebugPanel.metric.uiMetrics":`UI Metrics`,"memoryDebugPanel.metric.vscodeMetrics":`VS Code Metrics`,"memoryDebugPanel.metric.messageListRenders":`MsgList Renders`,"memoryDebugPanel.metric.messageListStreamRenders":`MsgList Stream Renders`,"memoryDebugPanel.metric.chatMessageRenders":`ChatMessage Renders`,"memoryDebugPanel.metric.chatMessageStreamRenders":`ChatMessage Stream Renders`,"memoryDebugPanel.metric.chatMessageStaticDuringStream":`ChatMessage Static During Stream`,"memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn":`ChatMessage Static Outside Active Turn`,"memoryDebugPanel.metric.messagesValue":`{count} messages`,"memoryDebugPanel.metric.minutesValue":`{count} minutes`,"memoryDebugPanel.metric.msgsValue":`{count} msgs`,"memoryDebugPanel.metric.roleMsgsValue":`U {user} / A {assistant}`,"memoryDebugPanel.metric.countValue":`Count {value}`,"memoryDebugPanel.metric.avgValue":`Avg {value}`,"memoryDebugPanel.metric.maxValue":`Max {value}`,"memoryDebugPanel.metric.totalValue":`Total {value}`,"memoryDebugPanel.actions.logState":`Log State`,"memoryDebugPanel.actions.copyJson":`Copy JSON`,"memoryDebugPanel.tooltip.logCurrentState":`Log current memory state to browser console`,"memoryDebugPanel.streaming.copy.copied":`Streaming debug JSON copied`,"memoryDebugPanel.streaming.copy.failed":`Failed to copy JSON`,"memoryDebugPanel.streaming.copy.hint":`Copy exports both UI and VS Code streaming metrics as JSON`,"memoryDebugPanel.common.idle":`idle`,"memoryDebugPanel.common.live":`live`,"memoryDebugPanel.common.notAvailable":`n/a`,"memoryDebugPanel.common.untitled":`Untitled`,"directoryTree.field.newDirectoryPlaceholder":`new_directory`,"textarea.resizeHandleAria":`Resize textarea`,"sidebar.resize.leftPanelAria":`Resize left panel`,"sidebar.resize.rightPanelAria":`Resize right panel`,"mainLayout.mobile.closeDrawerAria":`Close drawer`,"sortableTabsStrip.aria.tabs":`Tabs`,"openChamberLogo.aria.logo":`OpenChamber logo`,"markdownRenderer.code.actions.copyTitle":`Copy code`,"markdownRenderer.code.actions.copiedTitle":`Copied`,"markdownRenderer.table.actions.copyTitle":`Copy table`,"markdownRenderer.code.actions.enableWrapTitle":`Enable line wrap`,"markdownRenderer.code.actions.disableWrapTitle":`Disable line wrap`,"markdownRenderer.table.actions.downloadTitle":`Download table`,"markdownRenderer.table.toast.downloadedAsFormat":`Table downloaded as {format}`,"markdownRenderer.mermaid.actions.copyTitle":`Copy`,"markdownRenderer.mermaid.actions.copySourceTitle":`Copy source`,"markdownRenderer.mermaid.actions.downloadSvgTitle":`Download SVG`,"markdownRenderer.mermaid.actions.zoomInTitle":`Zoom in`,"markdownRenderer.mermaid.actions.zoomOutTitle":`Zoom out`,"markdownRenderer.mermaid.actions.resetViewTitle":`Reset view`,"markdownRenderer.mermaid.toast.downloadFailed":`Failed to download diagram`,"common.date.today":`Today`,"common.date.yesterday":`Yesterday`,"common.date.yesterdayWithTime":`Yesterday {time}`,"common.relative.justNow":`Just now`,"common.relative.minutesAgoShort":`{count}min ago`,"common.relative.hoursAgoShort":`{count}h ago`,"common.relative.daysAgoShort":`{count}d ago`,"common.relative.weeksAgoShort":`{count}w ago`,"common.relative.yearsAgoShort":`{count}y ago`,"common.relative.minutesAgoCompact":`{count}m`,"common.relative.hoursAgoCompact":`{count}h`,"common.relative.daysAgoCompact":`{count}d ago`,"common.relative.weeksAgoCompact":`{count}w ago`,"common.relative.monthsAgoCompact":`{count}mo`,"common.relative.yearsAgoCompact":`{count}y ago`,"contextFileOpen.failure.tooLarge":`File is too large to open (>{count} lines)`,"contextFileOpen.failure.missing":`File not found`,"contextFileOpen.failure.unreadable":`Failed to open file`,"quota.window.5h":`5-Hour`,"quota.window.7d":`7-Day Limit`,"quota.window.7dSonnet":`7-Day Sonnet Limit`,"quota.window.7dOpus":`7-Day Opus Limit`,"quota.window.weekly":`Weekly Limit`,"quota.window.daily":`Daily`,"quota.window.monthly":`Monthly Limit`,"quota.window.credits":`Credits`,"quota.window.creditsBalance":`Credits Balance`,"quota.window.billingCycle":`Billing Cycle`,"quota.window.auto":`Auto`,"quota.window.api":`API`,"quota.window.planLimit":`Plan Limit`,"quota.window.onDemand":`On-demand`,"quota.window.session":`Session`,"quota.window.premium":`Premium Interactions`,"quota.window.chat":`Chat Requests`,"quota.window.completions":`Completions`,"quota.window.premiumInteractions":`Premium interactions`},i=[`en`,`fr`,`zh-CN`,`zh-TW`,`uk`,`es`,`pt-BR`,`ko`,`pl`,`ja`],a={en:`common.language.english`,fr:`common.language.french`,"zh-CN":`common.language.simplifiedChinese`,"zh-TW":`common.language.traditionalChinese`,uk:`common.language.ukrainian`,es:`common.language.spanish`,"pt-BR":`common.language.brazilianPortuguese`,ko:`common.language.korean`,pl:`common.language.polish`,ja:`common.language.japanese`},o=`openchamber.i18n.v1`;function s(e){if(!e)return;let t=e.toLowerCase().replace(/_/g,`-`);if(t===`zh-tw`||t.startsWith(`zh-tw-`)||t===`zh-hk`||t.startsWith(`zh-hk-`)||t===`zh-mo`||t.startsWith(`zh-mo-`)||t===`zh-hant`||t.startsWith(`zh-hant-`))return`zh-TW`;if(t.startsWith(`zh`))return`zh-CN`;if(t.startsWith(`en`))return`en`;if(t===`fr`||t.startsWith(`fr-`))return`fr`;if(t===`uk`||t.startsWith(`uk-`)||t===`ua`||t.startsWith(`ua-`))return`uk`;if(t===`es`||t.startsWith(`es-`))return`es`;if(t===`pt`||t.startsWith(`pt-`))return`pt-BR`;if(t===`ko`||t.startsWith(`ko-`))return`ko`;if(t===`ja`||t.startsWith(`ja-`))return`ja`;if(t===`pl`||t.startsWith(`pl-`))return`pl`}function c(e){return s(e)??`en`}function l(){if(!(typeof window>`u`))try{let e=window.localStorage.getItem(o);if(!e)return;let t=JSON.parse(e);return typeof t.locale==`string`?c(t.locale):void 0}catch{return}}function u(e){if(!(typeof window>`u`))try{window.localStorage.setItem(o,JSON.stringify({locale:e}))}catch{return}}function d(){let e=l();if(e)return e;if(typeof navigator<`u`)try{let e=[...navigator.languages??[],navigator.language];for(let t of e){let e=s(t);if(e)return e}}catch{return`en`}return`en`}var f=e({formatMessage:()=>_,initializeLocale:()=>g,useI18nStore:()=>h}),p=new Map([[`en`,r]]);async function m(e){let t=p.get(e);if(t)return t;let i=e===`zh-CN`?await n(()=>import(`./zh-CN-CK_vXKLC.js`),[]):e===`fr`?await n(()=>import(`./fr-ColDJ2rK.js`),[]):e===`zh-TW`?await n(()=>import(`./zh-TW-D1PJ5wPO.js`),[]):e===`es`?await n(()=>import(`./es-Dw9Q-ozz.js`),[]):e===`pt-BR`?await n(()=>import(`./pt-BR-BjC1-fOS.js`),[]):e===`uk`?await n(()=>import(`./uk-Dz5dc1bK.js`),[]):e===`ko`?await n(()=>import(`./ko-BFhsYNY4.js`),[]):e===`pl`?await n(()=>import(`./pl-9HDNVuJh.js`),[]):e===`ja`?await n(()=>import(`./ja-DK2Z5Adv.js`),[]):{dict:r};return p.set(e,i.dict),i.dict}var h=t()((e,t)=>({locale:`en`,dictionary:r,loadingLocale:null,setLocale:(n,i=!0)=>{let a=t(),o=p.get(n);a.locale===n&&a.loadingLocale!==n&&o||(i&&u(n),e({locale:n,dictionary:o??a.dictionary,loadingLocale:o?null:n}),!o&&m(n).then(r=>{t().locale===n&&e({dictionary:r,loadingLocale:null})}).catch(i=>{console.error(`[i18n] failed to load locale ${n}`,i),t().locale===n&&e({locale:`en`,dictionary:r,loadingLocale:null})}))}}));function g(){h.getState().setLocale(d(),!1)}function _(e,t,n){let i=e[t]??r[t]??t;return n?i.replace(/\{([^{}]+)\}/g,(e,t)=>{let r=n[t.trim()];return r==null?e:String(r)}):i}export{i as a,h as i,g as n,a as o,f as r,_ as t};
|
|
15
|
+
{summary}`,"chat.chatInput.toast.vscodePickFailed":`Failed to pick files in VS Code`,"chat.chatInput.toast.openSessionFirst":`Open a session first`,"chat.chatInput.toast.togglePermissionAutoAcceptFailed":`Failed to toggle permission auto-accept`,"chat.chatInput.toast.sessionReferenceLoadFailed":`Could not load the session reference.`,"chat.chatInput.reviewComments":`Review comments:`,"chat.chatInput.reviewCommentsRemove":`Remove review comments`,"chat.chatInput.devServerLogs":`Dev Server logs:`,"chat.chatInput.devServerLogsRemove":`Remove Dev Server logs`,"chat.chatInput.previewAnnotations":`Preview annotations:`,"chat.chatInput.previewContext":`Preview context:`,"chat.chatInput.previewContextRemove":`Remove preview context`,"chat.chatInput.projectRoot":`Project root`,"chat.chatInput.branch":`Branch`,"chat.chatInput.draftPicker.projectTitle":`Project`,"chat.chatInput.draftPicker.newProject":`New project`,"chat.chatInput.draftPicker.searchProjects":`Search projects...`,"chat.chatInput.draftPicker.searchBranches":`Search branches...`,"chat.chatInput.worktrees":`Worktrees`,"chat.chatInput.worktreeNew":`+ New`,"chat.chatInput.branchSwitch.title":`Switch to {branch}?`,"chat.chatInput.branchSwitch.description":`How should this branch be opened for the new conversation?`,"chat.chatInput.branchSwitch.createWorktree":`Create worktree`,"chat.chatInput.branchSwitch.createWorktreeDescription":`Keep the current directory as-is and work in an isolated worktree.`,"chat.chatInput.branchSwitch.checkoutHere":`Checkout here`,"chat.chatInput.branchSwitch.checkoutHereDescription":`Switch the current directory to this branch.`,"chat.chatInput.branchSwitch.cancel":`Cancel`,"chat.chatInput.drop.insertMention":`Drop to insert as mention`,"chat.chatInput.drop.attachFiles":`Drop files here to attach`,"chat.chatInput.fileFallback":`file`,"chat.mobileStatus.editProjects.title":`Edit Projects`,"chat.mobileStatus.editProjects.footer":`Drag items to reorder, or use arrows to move. Tap edit to change details.`,"chat.mobileStatus.editProjects.empty":`No projects to edit`,"chat.mobileStatus.projects.empty":`No projects`,"chat.mobileStatus.projects.addAria":`Add project`,"chat.mobileStatus.projects.removeTitle":`Remove Project`,"chat.mobileStatus.projects.removeDescriptionPrefix":`Are you sure you want to remove`,"chat.mobileStatus.projects.cancel":`Cancel`,"chat.mobileStatus.projects.remove":`Remove`,"chat.mobileStatus.new":`New`,"chat.mobileStatus.noSessionsInProject":`No sessions in this project`,"chat.mobileStatus.swipeHint":`← Swipe here to open sidebars →`,"chat.mobileStatus.toast.addProjectFailed":`Failed to add project`,"chat.mobileStatus.toast.selectValidDirectory":`Please select a valid directory.`,"chat.mobileStatus.toast.selectDirectoryFailed":`Failed to select directory`,"chat.toolOutputDialog.image.previousAria":`Previous image`,"chat.toolOutputDialog.image.nextAria":`Next image`,"chat.toolOutputDialog.image.zoomInAria":`Zoom in`,"chat.toolOutputDialog.image.zoomOutAria":`Zoom out`,"chat.toolOutputDialog.image.resetZoomAria":`Reset zoom`,"chat.image.actions.sheetTitle":`Image`,"chat.image.actions.saveImage":`Save image`,"chat.image.actions.saveToPhotos":`Save to Photos`,"chat.image.actions.saving":`Saving…`,"chat.image.actions.saveSuccess":`Image saved`,"chat.image.actions.saveFailed":`Could not save image`,"chat.toolOutputDialog.mermaid.missingSource":`Missing Mermaid source URL.`,"chat.toolOutputDialog.mermaid.loadFailed":`Unable to load Mermaid diagram.`,"chat.toolOutputDialog.mermaid.dataUrlMalformed":`The Mermaid data URL is malformed.`,"chat.toolOutputDialog.mermaid.invalidLocalPath":`The local Mermaid file path is invalid.`,"chat.toolOutputDialog.mermaid.readFileFailedWithStatus":`Unable to read Mermaid file. Status: {status}.`,"chat.toolOutputDialog.mermaid.unsupportedUrlProtocol":`The Mermaid URL protocol is unsupported.`,"chat.toolOutputDialog.mermaid.loadFailedWithStatus":`Unable to load Mermaid diagram. Status: {status}.`,"chat.toolOutputDialog.mermaid.closeAria":`Close diagram preview`,"chat.toolOutputDialog.mermaid.loading":`Loading diagram...`,"chat.toolOutputDialog.mermaid.renderFailed":`Unable to render Mermaid diagram.`,"chat.toolOutputDialog.mermaid.retry":`Retry`,"chat.toolOutputDialog.commandCompleted":`Command completed successfully`,"chat.toolOutputDialog.noOutputProduced":`No output was produced`,"chat.activity.outputLoading":`Loading full output…`,"chat.activity.outputLoadFailed":`Could not load full output.`,"chat.activity.outputRetry":`Retry`,"chat.fileAttachment.image.loading":`Loading image…`,"chat.fileAttachment.image.loadFailed":`Could not load image.`,"chat.fileAttachment.image.retry":`Retry loading image`,"chat.fileAttachment.image.loadManually":`Load image`,"chat.fileAttachment.image.loadManuallyCount":`Load {count} images`,"chat.toolPart.lspErrors":`LSP errors`,"chat.toolPart.moreErrors":`+{count} more errors`,"chat.toolPart.error":`Error:`,"chat.toolPart.awaitingResponse":`Awaiting response...`,"chat.toolPart.noOutputProduced":`No output produced`,"chat.toolPart.output":`Output`,"chat.toolPart.showRawJson":`Show raw JSON`,"chat.toolPart.showFormattedJson":`Show formatted JSON`,"chat.toolPart.showNavigableJson":`Show navigable JSON`,"chat.toolPart.openFileAtFirstChange":`Open file at first change`,"chat.toolPart.openFileDiff":`Open file diff`,"chat.toolPart.copyOutput":`Copy output`,"chat.toolPart.copiedOutput":`Copied output`,"chat.toolPart.copyOutputFailed":`Failed to copy output`,"chat.toolPart.openSubtask":`Open {type} subtask`,"chat.todo.total":`Total`,"chat.todo.inProgress":`In Progress`,"chat.todo.pending":`Pending`,"chat.todo.completed":`Completed`,"chat.todo.cancelled":`Cancelled`,"chat.permissionCard.workingDirectory":`Working Directory:`,"chat.permissionCard.timeout":`Timeout:`,"chat.permissionCard.request":`Request:`,"chat.permissionCard.headers":`Headers:`,"chat.permissionCard.body":`Body:`,"chat.permissionCard.action":`Action:`,"chat.permissionCard.details":`Details:`,"chat.permissionCard.patterns":`Patterns:`,"chat.permissionCard.replaceAll":`Replace all occurrences`,"chat.permissionCard.responseFormat":`Response format:`,"chat.permissionCard.allowOnce":`Allow once`,"chat.permissionCard.alwaysAgree":`Always agree`,"chat.permissionToast.sessionFallback":`Session`,"chat.permissionToast.permissionFallback":`Permission details unavailable`,"chat.permissionToast.labels.session":`Session:`,"chat.permissionToast.labels.permission":`Permission:`,"chat.permissionToast.actions.once":`Once`,"chat.permissionToast.actions.always":`Always`,"chat.permissionToast.actions.deny":`Deny`,"chat.permissionToast.actions.approveOnceAria":`Approve once`,"chat.permissionToast.actions.approveOnceAriaWithSession":`Approve once for {session}`,"chat.permissionToast.actions.approveAlwaysAria":`Approve always`,"chat.permissionToast.actions.approveAlwaysAriaWithSession":`Approve always for {session}`,"chat.permissionToast.actions.denyAria":`Deny permission`,"chat.permissionToast.actions.denyAriaWithSession":`Deny permission for {session}`,"chat.permissionRequest.required":`Permission required:`,"chat.permissionRequest.actions.once":`Once`,"chat.permissionRequest.actions.always":`Always`,"chat.permissionRequest.actions.reject":`Reject`,"chat.modelControls.provider":`Provider`,"chat.modelControls.capability.toolCalling":`Tool calling`,"chat.modelControls.capability.reasoning":`Reasoning`,"chat.modelControls.modality.text":`Text`,"chat.modelControls.modality.image":`Image`,"chat.modelControls.modality.video":`Video`,"chat.modelControls.modality.audio":`Audio`,"chat.modelControls.modality.pdf":`PDF`,"chat.modelControls.capabilities":`Capabilities`,"chat.modelControls.modalities":`Modalities`,"chat.modelControls.input":`Input`,"chat.modelControls.output":`Output`,"chat.modelControls.limits":`Limits`,"chat.modelControls.context":`Context`,"chat.modelControls.metadata":`Metadata`,"chat.modelControls.knowledge":`Knowledge`,"chat.modelControls.release":`Release`,"chat.modelControls.mode":`Mode`,"chat.modelControls.model":`Model`,"chat.modelControls.temperature":`Temperature`,"chat.modelControls.topP":`Top P`,"chat.modelControls.permissions":`Permissions`,"chat.modelControls.edit":`Edit`,"chat.modelControls.bash":`Bash`,"chat.modelControls.webFetch":`WebFetch`,"chat.modelControls.customPrompt":`Custom Prompt`,"chat.modelControls.selectModel":`Select model`,"chat.modelControls.searchProvidersOrModels":`Search providers or models`,"chat.modelControls.clearSearch":`Clear search`,"chat.modelControls.current":`Current`,"chat.modelControls.thinking":`Thinking`,"chat.modelControls.default":`Default`,"chat.modelControls.selectAgent":`Select agent`,"chat.modelControls.costPerMillion":`Cost`,"chat.modelControls.costInput":`In`,"chat.modelControls.costOutput":`Out`,"chat.modelControls.metadataUnavailable":`Model metadata unavailable.`,"chat.modelControls.addNewProvider":`Add new provider`,"chat.modelControls.noAgentSelected":`No agent selected.`,"chat.modelControls.resetToDefault":`Reset to default`,"chat.modelControls.searchModels":`Search models`,"chat.modelControls.searchAgents":`Search agents`,"chat.modelControls.noModelsFound":`No models found`,"chat.modelControls.favorites":`Favorites`,"chat.modelControls.recent":`Recent`,"chat.modelControls.addToFavorites":`Add to favorites`,"chat.modelControls.removeFromFavorites":`Remove from favorites`,"chat.modelControls.favoriteAria":`Favorite`,"chat.modelControls.unfavoriteAria":`Unfavorite`,"chat.modelControls.collapseProvider":`Collapse provider`,"chat.modelControls.expandProvider":`Expand provider`,"chat.modelControls.keyboardHint":`↑↓ navigate{thinking} • Enter select • Esc close`,"chat.modelControls.keyboardHintNavigate":`↑↓ navigate`,"chat.modelControls.keyboardHintSwitchAgent":`{shortcut} switch agent`,"chat.modelControls.keyboardHintSwitchAgentLabel":`Switch agent`,"chat.modelControls.keyboardHintThinking":`←→ thinking`,"chat.modelControls.showThinkingModes":`Show thinking modes`,"chat.modelControls.hideThinkingModes":`Hide thinking modes`,"chat.modelControls.moreThinkingModes":`More thinking modes`,"chat.modelControls.noProvidersOrModelsFound":`No providers or models match your search.`,"chat.modelControls.reorderFavoriteAria":`Reorder favorite`,"chat.modelControls.reorderFavoriteTitle":`Drag to reorder favorite`,"chat.modelControls.reorderProviderTitle":`Drag to reorder provider`,"chat.modelControls.permissionLabel.custom":`Custom`,"chat.modelControls.permissionLabel.allow":`Allow`,"chat.modelControls.permissionLabel.deny":`Deny`,"chat.modelControls.permissionLabel.ask":`Ask`,"chat.modelControls.modeValue.primary":`Primary`,"chat.modelControls.modeValue.subagent":`Subagent`,"chat.modelControls.modeValue.all":`All`,"chat.modelControls.modeValue.none":`—`,"chat.reasoningTrace.thinking":`Thinking`,"chat.reasoningTrace.justification":`Justification`,"chat.reasoningTrace.expandAria":`Expand reasoning trace`,"chat.reasoningTrace.collapseAria":`Collapse reasoning trace`,"chat.reasoningTrace.thought":`Thought`,"chat.contextGroup.exploring":`Exploring`,"chat.contextGroup.explored":`Explored`,"chat.contextGroup.expandAria":`Expand explored tools`,"chat.contextGroup.collapseAria":`Collapse explored tools`,"chat.contextGroup.readSingle":`{count} read`,"chat.contextGroup.readPlural":`{count} reads`,"chat.contextGroup.searchSingle":`{count} search`,"chat.contextGroup.searchPlural":`{count} searches`,"chat.contextGroup.listSingle":`{count} list`,"chat.contextGroup.listPlural":`{count} lists`,"chat.skillGroup.expandAria":`Expand loaded skills`,"chat.skillGroup.collapseAria":`Collapse loaded skills`,"chat.skillGroup.summaryOverflow":`{names} and {count} more`,"chat.tools.display.read":`Read File`,"chat.tools.display.write":`Write File`,"chat.tools.display.edit":`Edit File`,"chat.tools.display.multiedit":`Multi-Edit`,"chat.tools.display.apply_patch":`Apply Patch`,"chat.tools.display.bash":`Shell Command`,"chat.tools.display.grep":`Search Files`,"chat.tools.display.glob":`Find Files`,"chat.tools.display.list":`List Directory`,"chat.tools.display.task":`Agent Task`,"chat.tools.display.webfetch":`Fetch URL`,"chat.tools.display.websearch":`Web Search`,"chat.tools.display.codesearch":`Code Search`,"chat.tools.display.todowrite":`Update Todo List`,"chat.tools.display.todoread":`Read Todo List`,"chat.tools.display.skill":`Load Skill`,"chat.tools.display.question":`Question`,"chat.tools.display.lsp":`LSP`,"chat.tools.display.plan_enter":`Plan Mode`,"chat.tools.display.plan_exit":`Build Mode`,"chat.tools.display.structuredoutput":`Structured Output`,"chat.messageBody.subtask.title":`Delegated task`,"chat.messageBody.subtask.hidePrompt":`Hide prompt`,"chat.messageBody.subtask.showPrompt":`Show prompt`,"chat.messageBody.subtask.openSession":`Open subtask session`,"chat.messageBody.subagent.completed":`Completed`,"chat.messageBody.subagent.error":`Failed`,"chat.messageBody.subagent.cancelled":`Cancelled`,"chat.messageBody.subagent.completedDescription":`Background subagent completed`,"chat.messageBody.subagent.errorDescription":`Background subagent failed`,"chat.messageBody.subagent.cancelledDescription":`Background subagent cancelled`,"chat.messageBody.subagent.openSession":`Open subagent session: {label}`,"chat.messageBody.shellCommand.title":`Shell command`,"chat.messageBody.shellCommand.hideOutput":`Hide output`,"chat.messageBody.shellCommand.showOutput":`Show output`,"chat.messageBody.shellCommand.copied":`Copied`,"chat.messageBody.shellCommand.copyOutput":`Copy output`,"commandPalette.title":`Command Palette`,"commandPalette.description":`Search files, sessions, and commands.`,"commandPalette.input.placeholder":`Search files, sessions, commands...`,"commandPalette.empty.noResults":`No results found.`,"commandPalette.empty.searchingFiles":`Searching files...`,"commandPalette.item.newSession":`New Session`,"commandPalette.item.newMiniChat":`New Mini Chat Window`,"commandPalette.item.newWorktreeDraft":`New Worktree Draft`,"commandPalette.item.addProject":`Add Project`,"commandPalette.item.showSessionSwitcher":`Show Session Switcher`,"commandPalette.item.toggleSidebar":`Toggle Sidebar`,"commandPalette.item.toggleRightSidebar":`Toggle Right Sidebar`,"commandPalette.item.showContextUsage":`Show Context Usage`,"commandPalette.item.toggleTerminal":`Toggle Terminal`,"commandPalette.item.newTerminalTab":`New Terminal Tab`,"commandPalette.item.openSettings":`Open Settings...`,"commandPalette.session.untitled":`Untitled Session`,"openCodeStatusDialog.title":`OpenCode Status`,"openCodeStatusDialog.description":`Inspect current OpenCode status and diagnostics.`,"openCodeStatusDialog.actions.copy":`Copy`,"openCodeStatusDialog.empty.noData":`No data.`,"openCodeStatusDialog.toast.copiedTitle":`Copied`,"openCodeStatusDialog.toast.copiedDescription":`Status copied to clipboard`,"openCodeStatusDialog.toast.copyFailed":`Failed to copy status`,"branchPickerDialog.title":`Branch Picker`,"branchPickerDialog.description.localBranchesForProject":`Local branches for {project}`,"branchPickerDialog.description.selectProject":`Select a project to view branches`,"branchPickerDialog.search.placeholder":`Search branches...`,"branchPickerDialog.search.renameBranchPlaceholder":`Rename branch`,"branchPickerDialog.state.noProjectSelected":`No project selected`,"branchPickerDialog.state.loadingBranches":`Loading branches...`,"branchPickerDialog.state.noMatchingBranches":`No matching branches`,"branchPickerDialog.state.noBranchesFound":`No branches found`,"branchPickerDialog.badge.head":`HEAD`,"branchPickerDialog.badge.worktree":`worktree`,"branchPickerDialog.actions.createWorktreeAria":`Create worktree from branch`,"branchPickerDialog.actions.renameAria":`Rename branch`,"branchPickerDialog.actions.deleteAria":`Delete branch`,"branchPickerDialog.actions.deleteWorktreeAria":`Remove worktree`,"branchPickerDialog.actions.confirmRenameAria":`Confirm rename`,"branchPickerDialog.actions.cancelRenameAria":`Cancel rename`,"branchPickerDialog.actions.confirmDeleteAria":`Confirm delete branch`,"branchPickerDialog.actions.cancelDeleteAria":`Cancel delete branch`,"branchPickerDialog.actions.deletePrompt":`Delete`,"branchPickerDialog.actions.forceDeletePrompt":`Force Delete`,"branchPickerDialog.tooltip.createWorktree":`Create worktree`,"branchPickerDialog.tooltip.worktreeAlreadyExists":`Worktree already exists`,"branchPickerDialog.tooltip.rename":`Rename branch`,"branchPickerDialog.tooltip.renameDisabledForRoot":`Cannot rename root branch`,"branchPickerDialog.tooltip.delete":`Delete branch`,"branchPickerDialog.tooltip.deleteCurrentBranch":`Cannot delete current branch`,"branchPickerDialog.tooltip.deleteDisabledForRoot":`Cannot delete root branch`,"branchPickerDialog.tooltip.deleteWorktree":`Remove worktree`,"branchPickerDialog.tooltip.deleteWorktreeRootProtected":`Cannot remove root worktree`,"branchPickerDialog.toast.branchRenamed":`Branch renamed`,"branchPickerDialog.toast.failedToRenameBranch":`Failed to rename branch`,"branchPickerDialog.toast.branchDeleted":`Branch deleted`,"branchPickerDialog.toast.branchNotMerged":`Branch is not fully merged`,"branchPickerDialog.toast.confirmAgainToForceDelete":`Confirm again to force delete`,"branchPickerDialog.toast.failedToDeleteBranch":`Failed to delete branch`,"branchPickerDialog.toast.worktreeCreated":`Worktree created`,"branchPickerDialog.toast.failedToCreateWorktree":`Failed to create worktree`,"branchPickerDialog.error.failedToLoad":`Failed to load branches`,"branchPickerDialog.error.renameRejected":`Rename was rejected`,"branchPickerDialog.error.renameFailed":`Failed to rename branch`,"branchPickerDialog.error.deleteRejected":`Delete was rejected`,"branchPickerDialog.error.deleteFailed":`Failed to delete branch`,"branchPickerDialog.error.createWorktreeFailed":`Failed to create worktree`,"projectEditDialog.title":`Edit project`,"projectEditDialog.field.name":`Name`,"projectEditDialog.field.namePlaceholder":`Project name`,"projectEditDialog.field.color":`Color`,"projectEditDialog.field.icon":`Icon`,"projectEditDialog.field.preview":`Preview`,"projectEditDialog.field.iconBackground":`Icon Background`,"projectEditDialog.field.iconBackgroundAria":`Project icon background color`,"projectEditDialog.option.none":`None`,"projectEditDialog.actions.uploadIcon":`Upload Icon`,"projectEditDialog.actions.uploading":`Uploading...`,"projectEditDialog.actions.discoverFavicon":`Discover Favicon`,"projectEditDialog.actions.discovering":`Discovering...`,"projectEditDialog.actions.removeProjectIcon":`Remove Project Icon`,"projectEditDialog.actions.removing":`Removing...`,"projectEditDialog.actions.undoRemove":`Undo Remove`,"projectEditDialog.actions.clear":`Clear`,"projectEditDialog.actions.cancel":`Cancel`,"projectEditDialog.actions.save":`Save`,"projectEditDialog.toast.failedToUploadIcon":`Failed to upload project icon`,"projectEditDialog.toast.iconUpdated":`Project icon updated`,"projectEditDialog.toast.failedToRemoveIcon":`Failed to remove project icon`,"projectEditDialog.toast.iconRemoved":`Project icon removed`,"projectEditDialog.toast.failedToDiscoverIcon":`Failed to discover project icon`,"projectEditDialog.toast.customIconAlreadySet":`Custom icon already set for this project`,"projectEditDialog.toast.iconDiscovered":`Project icon discovered`,"agentManager.sidebar.search.placeholder":`Search Agent Groups...`,"agentManager.sidebar.actions.newAgentGroup":`New Agent Group`,"agentManager.sidebar.actions.more":`... More ({count})`,"agentManager.sidebar.actions.showLess":`Show less`,"agentManager.sidebar.section.agentGroups":`Agent Groups`,"agentManager.sidebar.state.loading":`Loading...`,"agentManager.sidebar.state.noGroupsFound":`No groups found`,"agentManager.sidebar.state.noGroupsYet":`No agent groups yet`,"agentManager.sidebar.state.createToGetStarted":`Create a new agent group to get started`,"agentManager.sidebar.item.modelCountSingle":`{count} model`,"agentManager.sidebar.item.modelCountPlural":`{count} models`,"agentManager.sidebar.item.groupMenuAria":`Group menu`,"agentManager.sidebar.item.delete":`Delete`,"agentManager.sidebar.relativeTime.now":`now`,"agentManager.sidebar.relativeTime.minutes":`{count}m`,"agentManager.sidebar.relativeTime.hours":`{count}h`,"agentManager.sidebar.relativeTime.days":`{count}d`,"agentManager.sidebar.dialog.deleteGroupTitle":`Delete agent group`,"agentManager.sidebar.dialog.deleteGroupDescription":`Delete "{group}"? This removes all worktrees and sessions in this group.`,"agentManager.sidebar.dialog.cancel":`Cancel`,"agentManager.sidebar.dialog.delete":`Delete`,"agentManager.sidebar.dialog.deleting":`Deleting...`,"agentManager.sidebar.toast.deletingGroup":`Deleting "{group}"...`,"agentManager.sidebar.toast.deletedGroup":`Deleted "{group}"`,"agentManager.sidebar.toast.failedToDeleteGroup":`Failed to fully delete "{group}"`,"agentManager.detail.header.modelCountSingle":`{count} model`,"agentManager.detail.header.modelCountPlural":`{count} models`,"agentManager.detail.header.noBranch":`No branch`,"agentManager.detail.actions.worktreeActionsAria":`Worktree actions`,"agentManager.detail.actions.removeThisWorktree":`Remove this worktree`,"agentManager.detail.actions.keepThisRemoveOthers":`Leave this one, remove others`,"agentManager.detail.actions.copyWorktreePath":`Copy Worktree Path`,"agentManager.detail.dialog.removeWorktreeTitle":`Remove worktree`,"agentManager.detail.dialog.removeOtherWorktreesTitle":`Remove other worktrees`,"agentManager.detail.dialog.removeWorktreeDescription":`Remove "{label}"? This deletes all sessions in that worktree and removes the worktree itself.`,"agentManager.detail.dialog.removeOtherWorktreesDescription":`Keep "{label}" and remove the other worktrees in "{group}".`,"agentManager.detail.dialog.cancel":`Cancel`,"agentManager.detail.dialog.remove":`Remove`,"agentManager.detail.dialog.removeOthers":`Remove others`,"agentManager.detail.dialog.working":`Working...`,"agentManager.detail.state.loadingSessionFor":`Loading session for {label}`,"agentManager.detail.state.sessionId":`Session ID: {id}`,"agentManager.detail.state.noSessionsInGroup":`No sessions in this group`,"agentManager.detail.toast.noWorktreePath":`No worktree path available`,"agentManager.detail.toast.worktreePathCopied":`Worktree path copied`,"agentManager.detail.toast.failedToCopyPath":`Failed to copy path`,"agentManager.detail.toast.removingWorktree":`Removing worktree...`,"agentManager.detail.toast.removingOtherWorktrees":`Removing other worktrees...`,"agentManager.detail.toast.failedToFullyRemoveWorktree":`Failed to fully remove worktree`,"agentManager.detail.toast.worktreeRemoved":`Worktree removed`,"agentManager.detail.toast.otherWorktreesRemoved":`Removed other worktrees`,"agentManager.empty.groupName.label":`Group Name`,"agentManager.empty.groupName.placeholder":`e.g. feature-auth, bugfix-login`,"agentManager.empty.groupName.description":`Used for worktree directory and branch naming`,"agentManager.empty.baseBranch.label":`Base Branch`,"agentManager.empty.baseBranch.description":`Creates new branches from {branch}`,"agentManager.empty.setupCommands.label":`Setup commands`,"agentManager.empty.setupCommands.configured":`{count} configured`,"agentManager.empty.setupCommands.description":`Commands run in each new worktree. Use $ROOT_PROJECT_PATH for project root.`,"agentManager.empty.setupCommands.loading":`Loading...`,"agentManager.empty.setupCommands.commandPlaceholder":`e.g., bun install`,"agentManager.empty.setupCommands.removeCommandAria":`Remove command`,"agentManager.empty.setupCommands.addCommand":`Add command`,"agentManager.empty.agent.label":`Agent`,"agentManager.empty.agent.description":`Defaults to your configured default agent`,"agentManager.empty.models.label":`Models`,"agentManager.empty.models.addModel":`Add model`,"agentManager.empty.models.selectedSingle":`{count} model selected`,"agentManager.empty.models.selectedPlural":`{count} models selected`,"agentManager.empty.prompt.label":`Prompt`,"agentManager.empty.prompt.placeholder":`Ask anything...`,"agentManager.empty.prompt.addAttachmentAria":`Add attachment`,"agentManager.empty.actions.startAgentGroupAria":`Start Agent Group`,"agentManager.empty.toast.fileTooLarge":`File "{fileName}" is too large (max 10MB)`,"agentManager.empty.toast.failedToAttach":`Failed to attach "{fileName}"`,"agentManager.empty.toast.attachedSingle":`Attached {count} file`,"agentManager.empty.toast.attachedPlural":`Attached {count} files`,"agentManager.empty.toast.failedToCreateGroup":`Failed to create agent group`,"openInApp.actions.open":`Open`,"openInApp.actions.openInAria":`Open in {app}`,"openInApp.actions.chooseAppAria":`Choose app to open`,"openInApp.actions.copyPath":`Copy Path`,"openInApp.actions.refreshApps":`Refresh Apps`,"openInApp.toast.pathCopied":`Path copied to clipboard`,"projectActions.actions.addActionAria":`Add action`,"projectActions.actions.addAction":`Add action`,"projectActions.actions.addNewAction":`Add new action`,"projectActions.actions.autoDiscover":`Auto-discover`,"projectActions.actions.chooseActionAria":`Choose project action`,"projectActions.actions.openPreview":`Open Preview`,"projectActions.actions.runNamedAria":`Run {name}`,"projectActions.actions.stopNamedAria":`Stop {name}`,"projectActions.label.fallbackAction":`Action`,"projectActions.toast.openedUrlFromOutput":`Opened URL from action output`,"projectActions.toast.openedForwardedUrl":`Opened forwarded URL`,"projectActions.toast.openedActionUrl":`Opened action URL`,"projectActions.error.noActiveDirectory":`No active directory`,"projectActions.error.noActiveDirectoryForAction":`No active directory for action`,"projectActions.error.failedToCreateTerminalSession":`Failed to create terminal session`,"projectActions.error.invalidCustomUrlFormat":`Invalid custom URL format`,"projectActions.error.selectedDesktopSshForwardUnavailable":`Selected desktop SSH forward is unavailable`,"projectActions.error.failedToRunAction":`Failed to run action`,"mcpDropdown.title":`MCP Servers`,"mcpDropdown.actions.refreshAria":`Refresh`,"mcpDropdown.actions.openAria":`MCP servers`,"mcpDropdown.statusAria":`MCP status`,"mcpDropdown.status.unknown":`Unknown`,"mcpDropdown.status.connected":`Connected`,"mcpDropdown.status.failed":`Failed: {error}`,"mcpDropdown.status.unknownError":`Unknown error`,"mcpDropdown.status.needsAuth":`Needs authentication`,"mcpDropdown.status.needsRegistration":`Needs registration: {error}`,"mcpDropdown.empty.configureInConfig":`Configure MCP servers in Settings.`,"sessionAuth.error.rateLimitTitle":`Too many attempts`,"sessionAuth.error.networkTitle":`Unable to reach server`,"sessionAuth.error.rateLimitDescriptionSingle":`Please wait {minutes} minute before trying again.`,"sessionAuth.error.rateLimitDescriptionPlural":`Please wait {minutes} minutes before trying again.`,"sessionAuth.error.networkDescription":`We could not verify the UI session. If you're opening OpenChamber from another device on your local network, make sure Desktop Network Access is enabled on the desktop app and use the LAN address shown in Settings.`,"sessionAuth.error.retry":`Retry`,"sessionAuth.error.passkeySetupFailed":`Passkey setup failed.`,"sessionAuth.error.incorrectPassword":`Incorrect password. Try again.`,"sessionAuth.error.unexpectedResponse":`Unexpected response from server.`,"sessionAuth.error.networkRetry":`Network error. Check connection and retry.`,"sessionAuth.error.passkeySignInCanceled":`Passkey sign-in was canceled.`,"sessionAuth.error.enterPasswordForPasskey":`Enter your password to add a passkey.`,"sessionAuth.locked.tunnelTitle":`Tunnel access required`,"sessionAuth.locked.unlockTitle":`Unlock OpenChamber`,"sessionAuth.locked.tunnelDescription":`Open this tunnel using the one-time connect link from the desktop app.`,"sessionAuth.locked.passwordDescription":`This session is password-protected.`,"sessionAuth.locked.hostSwitcherHint":`Use Local if remote is unreachable.`,"sessionAuth.actions.cancelPasskey":`Cancel passkey`,"sessionAuth.actions.usePasskey":`Use passkey`,"sessionAuth.actions.unlockingAria":`Unlocking`,"sessionAuth.actions.unlockAria":`Unlock`,"sessionAuth.actions.trustDevice":`Trust this device`,"sessionAuth.actions.trustDeviceAria":`Trust this device`,"sessionAuth.actions.cancelPasskeySetup":`Cancel passkey setup`,"sessionAuth.actions.addPasskey":`Add passkey`,"sessionAuth.password.placeholder":`Enter password`,"sessionAuth.toast.passkeyAdded":`Passkey added`,"sessionAuth.toast.passkeySetupCanceled":`Passkey setup canceled`,"desktopHostSwitcher.title":`Instance`,"desktopHostSwitcher.transition.title":`Switching instance…`,"desktopHostSwitcher.transition.description":`Loading data from the selected instance.`,"desktopHostSwitcher.description":`Switch between Local and remote OpenChamber servers`,"desktopHostSwitcher.header.current":`Current`,"desktopHostSwitcher.header.default":`Default`,"desktopHostSwitcher.header.currentColon":`Current:`,"desktopHostSwitcher.header.currentDefaultColon":`Current default:`,"desktopHostSwitcher.status.connected":`Connected`,"desktopHostSwitcher.status.authRequired":`Auth required`,"desktopHostSwitcher.status.checking":`Checking`,"desktopHostSwitcher.status.updateRecommended":`Update recommended`,"desktopHostSwitcher.status.incompatible":`Incompatible`,"desktopHostSwitcher.status.wrongService":`Wrong service`,"desktopHostSwitcher.status.unreachable":`Unreachable`,"desktopHostSwitcher.status.unknown":`Unknown`,"desktopHostSwitcher.status.ping":` · {ms}ms ping`,"desktopHostSwitcher.statusAria":`Instance status`,"desktopHostSwitcher.sshPhase.ready":`Ready`,"desktopHostSwitcher.sshPhase.error":`Error`,"desktopHostSwitcher.sshPhase.reconnecting":`Reconnecting`,"desktopHostSwitcher.sshPhase.resolvingConfig":`Resolving config`,"desktopHostSwitcher.sshPhase.checkingAuth":`Checking auth`,"desktopHostSwitcher.sshPhase.connectingSsh":`Connecting SSH`,"desktopHostSwitcher.sshPhase.probingRemote":`Probing remote`,"desktopHostSwitcher.sshPhase.installing":`Installing`,"desktopHostSwitcher.sshPhase.updating":`Updating`,"desktopHostSwitcher.sshPhase.detectingServer":`Detecting server`,"desktopHostSwitcher.sshPhase.startingServer":`Starting server`,"desktopHostSwitcher.sshPhase.forwardingPorts":`Forwarding ports`,"desktopHostSwitcher.sshPhase.idle":`Idle`,"desktopHostSwitcher.ssh.needInstancesHint":`Need SSH instances? Manage them in Settings.`,"desktopHostSwitcher.ssh.instanceFallback":`SSH instance`,"desktopHostSwitcher.ssh.connectingTo":`Connecting to {host}`,"desktopHostSwitcher.actions.refresh":`Refresh`,"desktopHostSwitcher.actions.refreshInstancesAria":`Refresh instances`,"desktopHostSwitcher.actions.remoteSsh":`Remote SSH`,"desktopHostSwitcher.actions.instanceActionsAria":`Instance actions`,"desktopHostSwitcher.actions.edit":`Edit`,"desktopHostSwitcher.actions.delete":`Delete`,"desktopHostSwitcher.actions.connect":`Connect`,"desktopHostSwitcher.actions.defaultInstanceAria":`Default instance`,"desktopHostSwitcher.actions.setAsDefaultAria":`Set as default`,"desktopHostSwitcher.actions.setAsDefault":`Set as default`,"desktopHostSwitcher.actions.openInNewWindowAria":`Open in new window`,"desktopHostSwitcher.actions.openInNewWindow":`Open in new window`,"desktopHostSwitcher.actions.addInstance":`Add instance`,"desktopHostSwitcher.actions.cancel":`Cancel`,"desktopHostSwitcher.actions.save":`Save`,"desktopHostSwitcher.actions.add":`Add`,"desktopHostSwitcher.actions.switchToLocal":`Switch to Local`,"desktopHostSwitcher.actions.retry":`Retry`,"desktopHostSwitcher.actions.switchInstanceAria":`Switch instance`,"desktopHostSwitcher.actions.switchInstance":`Switch instance`,"desktopHostSwitcher.actions.switchToAria":`Switch to {instance}`,"desktopHostSwitcher.field.labelPlaceholder":`Label`,"desktopHostSwitcher.field.labelOptionalPlaceholder":`Label (optional)`,"desktopHostSwitcher.field.urlPlaceholder":`https://host:port`,"desktopHostSwitcher.state.limitedOnPage":`Instance switcher is limited on this page. Use Local to recover.`,"desktopHostSwitcher.state.loading":`Loading...`,"desktopHostSwitcher.state.instanceUnreachable":`Instance unreachable`,"desktopHostSwitcher.edit.title":`Edit instance`,"desktopHostSwitcher.add.title":`Add instance`,"desktopHostSwitcher.error.failedToSave":`Failed to save`,"desktopHostSwitcher.error.failedToLoad":`Failed to load`,"desktopHostSwitcher.error.invalidUrl":`Invalid URL (must be http/https)`,"desktopHostSwitcher.error.failedToOpenNewWindow":`Failed to open new window`,"desktopHostSwitcher.instance.local":`Local`,"desktopHostSwitcher.instance.fallback":`Instance`,"desktopHostSwitcher.startup.title":`Default SSH instance unavailable`,"desktopHostSwitcher.startup.connectingTo":`Connecting to {host}...`,"desktopHostSwitcher.startup.failed":`Failed to connect the default SSH instance.`,"desktopHostSwitcher.toast.sshConnected":`SSH instance "{host}" connected`,"desktopHostSwitcher.toast.sshFailedToConnect":`SSH instance "{host}" failed to connect`,"desktopHostSwitcher.toast.instanceUnreachable":`Instance "{host}" is unreachable`,"miniChat.header.newSession":`New session`,"miniChat.header.session":`Session`,"miniChat.header.defaultAgent":`Default agent`,"miniChat.header.noModel":`No model`,"miniChat.status.busy":`Running`,"miniChat.status.retry":`Retrying`,"miniChat.status.idle":`Idle`,"miniChat.actions.pin":`Pin above other windows`,"miniChat.actions.unpin":`Unpin window`,"miniChat.actions.pinAria":`Pin Mini Chat window`,"miniChat.actions.unpinAria":`Unpin Mini Chat window`,"miniChat.actions.openMain":`Open in main window`,"miniChat.actions.openMainAria":`Open session in main window`,"miniChat.unavailable.title":`Session unavailable`,"miniChat.unavailable.description":`This session could not be loaded. It may have been deleted, archived, or opened from a different project context.`,"sessions.sidebar.session.menu.openMiniChatWindow":`Open in Mini Chat Window`,"header.actions.newMiniChat":`New Mini Chat Window`,"header.actions.newMiniChatAria":`Open a new Mini Chat window`,"header.actions.openSessionMiniChat":`Open Session in Mini Chat`,"header.actions.openSessionMiniChatAria":`Open current session in Mini Chat`,"header.windowControls.groupAria":`Window controls`,"header.windowControls.minimize":`Minimize window`,"header.windowControls.maximize":`Maximize window`,"header.windowControls.restore":`Restore window`,"header.windowControls.close":`Close window`,"errorBoundary.title":`Something went wrong`,"errorBoundary.description":`The application encountered an unexpected error. This has been logged for debugging.`,"errorBoundary.state.unknownError":`Unknown error`,"errorBoundary.state.componentStackLabel":`Component stack:`,"errorBoundary.actions.errorDetails":`Error details`,"errorBoundary.actions.tryAgain":`Try again`,"errorBoundary.actions.copy":`Copy`,"errorBoundary.actions.copied":`Copied`,"jsonTreeView.error.emptyJson":`Empty JSON content`,"jsonTreeView.error.invalidJson":`Invalid JSON`,"jsonTreeView.error.invalidJsonTitle":`Invalid JSON`,"jsonTreeView.actions.expandAll":`Expand All`,"jsonTreeView.actions.collapseAll":`Collapse All`,"numberInput.actions.decreaseAria":`Decrease value`,"numberInput.actions.increaseAria":`Increase value`,"goToLineDialog.field.linePlaceholderShort":`Line`,"goToLineDialog.field.linePlaceholder":`Line number`,"goToLineDialog.actions.go":`Go`,"goToLineDialog.helper.editorUnavailable":`Editor unavailable.`,"goToLineDialog.helper.currentLineRange":`Current Line: {current}. Type a line number between 1 and {max} to navigate to.`,"goToLineDialog.helper.goToLine":`Go to line {line}`,"dialog.common.actions.close":`Close`,"filesView.toast.relativePathCopied":`Relative path copied`,"filesView.tree.menu.copyRelativePath":`Copy Relative Path`,"multiRun.branchSelector.placeholder.selectSourceBranch":`Select source branch...`,"multiRun.branchSelector.status.loadingBranches":`Loading branches...`,"multiRun.branchSelector.status.noBranchesFound":`No branches found`,"multiRun.branchSelector.status.notInGitRepository":`Not in a git repository.`,"multiRun.branchSelector.groups.localBranches":`Local branches`,"multiRun.branchSelector.groups.remoteBranches":`Remote branches`,"multiRun.window.actions.closeAria":`Close multi-run`,"multiRun.window.description":`OpenChamber Multi-Run window.`,"voice.status.idle":`Voice Ready`,"voice.status.listening":`Listening...`,"voice.status.processing":`Processing...`,"voice.status.speaking":`Speaking...`,"voice.status.error":`Voice Error`,"voice.status.conversationModeActiveAria":`Conversation mode active`,"voice.action.finishAndTranscribe":`Finish and transcribe voice input`,"onboarding.common.actions.back":`Back`,"onboarding.common.copyToClipboard":`Copy to clipboard`,"onboarding.common.status.copiedToClipboard":`Copied to clipboard`,"onboarding.chooser.title":`Welcome to OpenChamber`,"onboarding.chooser.description":`Choose how you want to connect to get started.`,"onboarding.chooser.tabs.localInstall":`Local Install`,"onboarding.chooser.tabs.connectRemote":`Connect Remote`,"onboarding.localSetup.title":`Setting Up OpenCode`,"onboarding.localSetup.description":`Install OpenCode CLI to continue.`,"onboarding.localSetup.dialog.selectOpencodeBinary":`Select opencode binary`,"onboarding.localSetup.errors.cliNotReady":`OpenCode CLI is not ready yet. Please confirm installation is complete and try again.`,"onboarding.localSetup.errors.detectionFailed":`Detection failed`,"onboarding.localSetup.windows.title":`Windows setup`,"onboarding.localSetup.windows.stepInstallWsl":`Install OpenCode with the command below.`,"onboarding.localSetup.windows.stepInstallWslSuffix":``,"onboarding.localSetup.windows.stepRunInstallInWsl":`Run the install command below in a Windows terminal.`,"onboarding.localSetup.windows.stepSetBinaryPath":`If OpenChamber does not detect OpenCode automatically, set the binary path below.`,"onboarding.localSetup.intro":`OpenCode is the heart of OpenChamber — install it to get started.`,"onboarding.localSetup.docs.windows":`OpenCode docs`,"onboarding.localSetup.docs.default":`OpenCode docs`,"onboarding.localSetup.actions.checking":`Checking…`,"onboarding.localSetup.actions.checkAndContinue":`I've completed installation, check and continue`,"onboarding.localSetup.actions.checkNow":`Check now`,"onboarding.localSetup.helper.checkAndContinue":`Click to check if OpenCode CLI is available. If successful, you'll automatically enter the main screen.`,"onboarding.localSetup.status.watching":`Waiting for OpenCode`,"onboarding.localSetup.status.autoContinue":`We'll continue automatically once it's detected.`,"onboarding.localSetup.field.alreadyInstalled":`Already installed? Set the OpenCode CLI path:`,"onboarding.localSetup.advanced.title":`Set a custom binary path`,"onboarding.localSetup.troubleshoot.title":`Having trouble?`,"onboarding.localSetup.actions.browse":`Browse`,"onboarding.localSetup.actions.apply":`Apply`,"onboarding.localSetup.helper.saveAndReload":`Saves to OpenChamber settings and reloads OpenCode configuration.`,"onboarding.localSetup.remotePreference":`Prefer to use a remote server?`,"onboarding.localSetup.actions.connectRemoteServer":`Connect to Remote Server →`,"onboarding.localSetup.windows.hintInstallInWsl":`On Windows, install and run OpenCode natively.`,"onboarding.localSetup.windows.hintDetectionFailed":`If detection fails, set a native path such as opencode.cmd or opencode.exe.`,"onboarding.localSetup.hint.ensurePath":`Already installed? Make sure opencode is in your PATH.`,"onboarding.localSetup.hint.setEnv":`Or set OPENCODE_BINARY environment variable.`,"onboarding.localSetup.hint.missingRuntime":`If you see "env: node: No such file or directory" or "env: bun: No such file or directory", install that runtime or ensure it is on PATH.`,"onboarding.remoteConnection.title":`Connect to Remote Server`,"onboarding.remoteConnection.titleRecovery":`Connect to a Different Server`,"onboarding.remoteConnection.description":`Enter the address of an OpenChamber server to connect to.`,"onboarding.remoteConnection.field.serverAddress":`Server Address`,"onboarding.remoteConnection.field.serverAddressPlaceholder":`https://your-server.example.com:4096`,"onboarding.remoteConnection.field.nameOptional":`Name (optional)`,"onboarding.remoteConnection.field.namePlaceholder":`My Remote Server`,"onboarding.remoteConnection.errors.connectionTestFailed":`Connection test failed`,"onboarding.remoteConnection.errors.failedToSaveConnection":`Failed to save connection`,"onboarding.remoteConnection.status.connectedSuccessfully":`Connected successfully ({latencyMs}ms)`,"onboarding.remoteConnection.status.authWarning":`Server requires authentication. You can still connect.`,"onboarding.remoteConnection.status.connectionFailed":`Connection Failed`,"onboarding.remoteConnection.status.suggestionsUnreachable":`Suggestions: Check the server address, verify the server is running, or check your network connection.`,"onboarding.remoteConnection.status.suggestionsWrongService":`Suggestions: Verify the URL points to an OpenChamber server, or contact the server administrator.`,"onboarding.remoteConnection.actions.testing":`Testing…`,"onboarding.remoteConnection.actions.testConnection":`Test Connection`,"onboarding.remoteConnection.actions.connectAndRestart":`Connect & Restart`,"onboarding.remoteConnection.actions.whatToDo":`What would you like to do?`,"onboarding.remoteConnection.actions.chooseDifferentServer":`Choose Different Server`,"onboarding.remoteConnection.actions.useLocalInstead":`Use Local Instead`,"onboarding.remoteConnection.probe.authMessage":`Server requires authentication. You can still connect, but may need to provide credentials.`,"onboarding.remoteConnection.probe.updateRecommendedMessage":`This instance is running a different OpenChamber version. You can connect, but update both apps if something does not work.`,"onboarding.remoteConnection.probe.incompatibleMessage":`Server is running OpenChamber but is not compatible with this app version. Update OpenChamber on the server, then try again.`,"onboarding.remoteConnection.probe.wrongServiceMessage":`Server responded but is not running OpenChamber. Verify the address points to an OpenChamber server.`,"onboarding.remoteConnection.probe.unreachableMessage":`Server is unreachable. Check your network connection and verify the server address.`,"onboarding.desktopRecovery.localUnavailable.title":`Local OpenCode Unavailable`,"onboarding.desktopRecovery.localUnavailable.description":`OpenCode CLI could not be started or is not installed. Install OpenCode or connect to a remote server instead.`,"onboarding.desktopRecovery.localUnavailable.retry":`Retry Local`,"onboarding.desktopRecovery.localUnavailable.useLocal":`Set Up Local`,"onboarding.desktopRecovery.noDefaultConnection.title":`No Default Connection`,"onboarding.desktopRecovery.noDefaultConnection.description":`Your saved default connection could not be found. Choose how you want to connect.`,"onboarding.desktopRecovery.remoteUnreachable.title":`Remote Server Unreachable`,"onboarding.desktopRecovery.remoteUnreachable.description":`Could not connect to "{host}". Check your network connection and verify the server address.`,"onboarding.desktopRecovery.remoteUnreachable.retry":`Retry Connection`,"onboarding.desktopRecovery.incompatibleServer.title":`Incompatible Server`,"onboarding.desktopRecovery.incompatibleServer.description":`The server at "{host}" is not running OpenChamber. Verify the address points to an OpenChamber server.`,"onboarding.desktopRecovery.remoteIncompatible.title":`Server Update Required`,"onboarding.desktopRecovery.remoteIncompatible.description":`The OpenChamber server at "{host}" is not compatible with this app version. Update OpenChamber on the server, then try again.`,"onboarding.desktopRecovery.common.useLocal":`Use Local`,"onboarding.desktopRecovery.common.useRemote":`Use Remote`,"onboarding.desktopRecovery.actions.retrying":`Retrying…`,"onboarding.desktopRecovery.actions.retryConnection":`Retry Connection`,"startup.initRecovery.title":`Startup failed`,"startup.initRecovery.description":`OpenChamber could not finish initialization. Check that the server is running, then retry.`,"startup.initRecovery.retry":`Retry`,"startup.initRecovery.retrying":`Retrying…`,"onboarding.desktopRecovery.placeholders.remoteServer":`the remote server`,"onboarding.desktopRecovery.placeholders.unknownServer":`unknown`,"vscodeLayout.title.chat":`Chat`,"vscodeLayout.title.newSession":`New session`,"vscodeLayout.title.sessions":`Sessions`,"vscodeLayout.title.sessionFallback":`Session`,"vscodeLayout.actions.backToSessionsAria":`Back to sessions`,"vscodeLayout.actions.archiveAllAria":`Archive all sessions`,"vscodeLayout.actions.archiveAllConfirm":`Archive all`,"vscodeLayout.actions.archiveAllSuccess":`Archived {count} session(s)`,"vscodeLayout.actions.archiveAllError":`Failed to archive {count} session(s)`,"vscodeLayout.actions.cancel":`Cancel`,"vscodeLayout.actions.newSessionAria":`New session`,"vscodeLayout.actions.openAgentManagerAria":`Open Agent Manager`,"vscodeLayout.actions.resizeSessionsSidebarAria":`Resize sessions sidebar`,"vscodeLayout.actions.settingsAria":`Settings`,"vscodeLayout.quota.title":`Rate limits`,"vscodeLayout.quota.mode.used":`Used`,"vscodeLayout.quota.mode.remaining":`Remaining`,"vscodeLayout.quota.lastUpdated":`Last updated {time}`,"vscodeLayout.quota.noRateLimitsAvailable":`No rate limits available.`,"vscodeLayout.quota.noRateLimitsReported":`No rate limits reported.`,"vscodeLayout.quota.actions.rateLimitsAria":`Rate limits`,"vscodeLayout.quota.actions.showUsedAria":`Show used quota`,"vscodeLayout.quota.actions.showRemainingAria":`Show remaining quota`,"vscodeLayout.quota.actions.refreshAria":`Refresh rate limits`,"updateDialog.header.updateAvailable":`Update Available`,"updateDialog.header.updating":`Updating OpenChamber...`,"updateDialog.changelog.title":`What's new`,"updateDialog.status.installingUpdate":`Installing update...`,"updateDialog.status.serverRestarting":`Server restarting...`,"updateDialog.status.waitingForServer":`Waiting for server...`,"updateDialog.status.autoReloadHint":`The page will reload automatically when the update is complete.`,"updateDialog.fallback.updateViaTerminal":`Or update via terminal:`,"updateDialog.actions.copyCommand":`Copy command`,"updateDialog.actions.copied":`Copied!`,"updateDialog.status.downloadingPayload":`Downloading update payload...`,"updateDialog.actions.downloadUpdate":`Download Update`,"updateDialog.status.downloading":`Downloading...`,"updateDialog.actions.restartToUpdate":`Restart to Update`,"updateDialog.actions.updateNow":`Update Now`,"updateDialog.actions.applyOtaNow":`Update now`,"updateDialog.actions.openMobileUpdate":`Open update`,"updateDialog.status.updating":`Updating...`,"updateDialog.error.updateFailed":`Update failed`,"updateDialog.error.takingLonger":`Update is taking longer than expected. Wait a bit and refresh, or run: openchamber update`,"mobileUpdate.toast.available.title":`OpenChamber update available`,"mobileUpdate.toast.available.description":`Version {version} is ready for Android.`,"mobileUpdate.toast.actions.download":`Download`,"mobileUpdate.toast.actions.dismiss":`Dismiss`,"mobileUpdate.ota.toast.available.title":`Update available`,"mobileUpdate.ota.toast.available.description":`Version {version} is ready to install.`,"mobileUpdate.ota.toast.actions.update":`Update`,"mobileUpdate.ota.toast.actions.dismiss":`Dismiss`,"opencodeUpdate.toast.available.title":`OpenCode update`,"opencodeUpdate.toast.available.description":`Version {version} available.`,"opencodeUpdate.toast.actions.update":`Update`,"opencodeUpdate.toast.actions.dismiss":`Dismiss`,"opencodeUpdate.toast.actions.reload":`Reload OpenCode`,"opencodeUpdate.toast.upgrading.title":`Updating OpenCode...`,"opencodeUpdate.toast.upgrading.description":`Keep OpenChamber open.`,"opencodeUpdate.toast.updated.title":`OpenCode updated`,"opencodeUpdate.toast.updated.description":`Update installed.`,"opencodeUpdate.toast.updated.descriptionWithVersion":`Version {version} installed.`,"opencodeUpdate.toast.failed.title":`Could not update OpenCode`,"opencodeUpdate.toast.failed.description":`The OpenCode upgrade failed.`,"opencodeUpdate.toast.reload.message":`Restarting OpenCode...`,"memoryDebugPanel.title":`Debug Panel`,"memoryDebugPanel.tabs.memory":`Memory`,"memoryDebugPanel.tabs.streaming":`Streaming`,"memoryDebugPanel.section.sessionsInMemory":`Sessions in Memory`,"memoryDebugPanel.section.uiStreamingMetrics":`UI Streaming Metrics`,"memoryDebugPanel.section.vscodeBridgeMetrics":`VS Code Bridge Metrics`,"memoryDebugPanel.section.noUiSamples":`No UI streaming samples yet. Start a stream and keep this panel open.`,"memoryDebugPanel.section.noVscodeSamples":`No VS Code bridge samples yet.`,"memoryDebugPanel.metric.totalMessages":`Total Messages`,"memoryDebugPanel.metric.cachedSessions":`Cached Sessions`,"memoryDebugPanel.metric.userMessages":`User Messages`,"memoryDebugPanel.metric.assistantMessages":`Assistant Messages`,"memoryDebugPanel.metric.viewportWindow":`Viewport Window`,"memoryDebugPanel.metric.zombieTimeout":`Zombie Timeout`,"memoryDebugPanel.metric.githubTotalRequests":`GitHub Total Requests`,"memoryDebugPanel.metric.metrics":`Metrics`,"memoryDebugPanel.metric.samples":`Samples`,"memoryDebugPanel.metric.lastUpdate":`Last Update`,"memoryDebugPanel.metric.uiMetrics":`UI Metrics`,"memoryDebugPanel.metric.vscodeMetrics":`VS Code Metrics`,"memoryDebugPanel.metric.messageListRenders":`MsgList Renders`,"memoryDebugPanel.metric.messageListStreamRenders":`MsgList Stream Renders`,"memoryDebugPanel.metric.chatMessageRenders":`ChatMessage Renders`,"memoryDebugPanel.metric.chatMessageStreamRenders":`ChatMessage Stream Renders`,"memoryDebugPanel.metric.chatMessageStaticDuringStream":`ChatMessage Static During Stream`,"memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn":`ChatMessage Static Outside Active Turn`,"memoryDebugPanel.metric.messagesValue":`{count} messages`,"memoryDebugPanel.metric.minutesValue":`{count} minutes`,"memoryDebugPanel.metric.msgsValue":`{count} msgs`,"memoryDebugPanel.metric.roleMsgsValue":`U {user} / A {assistant}`,"memoryDebugPanel.metric.countValue":`Count {value}`,"memoryDebugPanel.metric.avgValue":`Avg {value}`,"memoryDebugPanel.metric.maxValue":`Max {value}`,"memoryDebugPanel.metric.totalValue":`Total {value}`,"memoryDebugPanel.actions.logState":`Log State`,"memoryDebugPanel.actions.copyJson":`Copy JSON`,"memoryDebugPanel.tooltip.logCurrentState":`Log current memory state to browser console`,"memoryDebugPanel.streaming.copy.copied":`Streaming debug JSON copied`,"memoryDebugPanel.streaming.copy.failed":`Failed to copy JSON`,"memoryDebugPanel.streaming.copy.hint":`Copy exports both UI and VS Code streaming metrics as JSON`,"memoryDebugPanel.common.idle":`idle`,"memoryDebugPanel.common.live":`live`,"memoryDebugPanel.common.notAvailable":`n/a`,"memoryDebugPanel.common.untitled":`Untitled`,"directoryTree.field.newDirectoryPlaceholder":`new_directory`,"textarea.resizeHandleAria":`Resize textarea`,"sidebar.resize.leftPanelAria":`Resize left panel`,"sidebar.resize.rightPanelAria":`Resize right panel`,"mainLayout.mobile.closeDrawerAria":`Close drawer`,"sortableTabsStrip.aria.tabs":`Tabs`,"openChamberLogo.aria.logo":`OpenChamber logo`,"markdownRenderer.code.actions.copyTitle":`Copy code`,"markdownRenderer.code.actions.copiedTitle":`Copied`,"markdownRenderer.table.actions.copyTitle":`Copy table`,"markdownRenderer.code.actions.enableWrapTitle":`Enable line wrap`,"markdownRenderer.code.actions.disableWrapTitle":`Disable line wrap`,"markdownRenderer.table.actions.downloadTitle":`Download table`,"markdownRenderer.table.toast.downloadedAsFormat":`Table downloaded as {format}`,"markdownRenderer.mermaid.actions.copyTitle":`Copy`,"markdownRenderer.mermaid.actions.copySourceTitle":`Copy source`,"markdownRenderer.mermaid.actions.downloadSvgTitle":`Download SVG`,"markdownRenderer.mermaid.actions.zoomInTitle":`Zoom in`,"markdownRenderer.mermaid.actions.zoomOutTitle":`Zoom out`,"markdownRenderer.mermaid.actions.resetViewTitle":`Reset view`,"markdownRenderer.mermaid.toast.downloadFailed":`Failed to download diagram`,"common.date.today":`Today`,"common.date.yesterday":`Yesterday`,"common.date.yesterdayWithTime":`Yesterday {time}`,"common.relative.justNow":`Just now`,"common.relative.minutesAgoShort":`{count}min ago`,"common.relative.hoursAgoShort":`{count}h ago`,"common.relative.daysAgoShort":`{count}d ago`,"common.relative.weeksAgoShort":`{count}w ago`,"common.relative.yearsAgoShort":`{count}y ago`,"common.relative.minutesAgoCompact":`{count}m`,"common.relative.hoursAgoCompact":`{count}h`,"common.relative.daysAgoCompact":`{count}d ago`,"common.relative.weeksAgoCompact":`{count}w ago`,"common.relative.monthsAgoCompact":`{count}mo`,"common.relative.yearsAgoCompact":`{count}y ago`,"contextFileOpen.failure.tooLarge":`File is too large to open (>{count} lines)`,"contextFileOpen.failure.missing":`File not found`,"contextFileOpen.failure.unreadable":`Failed to open file`,"quota.window.5h":`5-Hour`,"quota.window.7d":`7-Day Limit`,"quota.window.7dSonnet":`7-Day Sonnet Limit`,"quota.window.7dOpus":`7-Day Opus Limit`,"quota.window.weekly":`Weekly Limit`,"quota.window.daily":`Daily`,"quota.window.monthly":`Monthly Limit`,"quota.window.credits":`Credits`,"quota.window.creditsBalance":`Credits Balance`,"quota.window.billingCycle":`Billing Cycle`,"quota.window.auto":`Auto`,"quota.window.api":`API`,"quota.window.planLimit":`Plan Limit`,"quota.window.onDemand":`On-demand`,"quota.window.session":`Session`,"quota.window.premium":`Premium Interactions`,"quota.window.chat":`Chat Requests`,"quota.window.completions":`Completions`,"quota.window.premiumInteractions":`Premium interactions`},i=[`en`,`fr`,`zh-CN`,`zh-TW`,`uk`,`es`,`pt-BR`,`ko`,`pl`,`ja`],a={en:`common.language.english`,fr:`common.language.french`,"zh-CN":`common.language.simplifiedChinese`,"zh-TW":`common.language.traditionalChinese`,uk:`common.language.ukrainian`,es:`common.language.spanish`,"pt-BR":`common.language.brazilianPortuguese`,ko:`common.language.korean`,pl:`common.language.polish`,ja:`common.language.japanese`},o=`openchamber.i18n.v1`;function s(e){if(!e)return;let t=e.toLowerCase().replace(/_/g,`-`);if(t===`zh-tw`||t.startsWith(`zh-tw-`)||t===`zh-hk`||t.startsWith(`zh-hk-`)||t===`zh-mo`||t.startsWith(`zh-mo-`)||t===`zh-hant`||t.startsWith(`zh-hant-`))return`zh-TW`;if(t.startsWith(`zh`))return`zh-CN`;if(t.startsWith(`en`))return`en`;if(t===`fr`||t.startsWith(`fr-`))return`fr`;if(t===`uk`||t.startsWith(`uk-`)||t===`ua`||t.startsWith(`ua-`))return`uk`;if(t===`es`||t.startsWith(`es-`))return`es`;if(t===`pt`||t.startsWith(`pt-`))return`pt-BR`;if(t===`ko`||t.startsWith(`ko-`))return`ko`;if(t===`ja`||t.startsWith(`ja-`))return`ja`;if(t===`pl`||t.startsWith(`pl-`))return`pl`}function c(e){return s(e)??`en`}function l(){if(!(typeof window>`u`))try{let e=window.localStorage.getItem(o);if(!e)return;let t=JSON.parse(e);return typeof t.locale==`string`?c(t.locale):void 0}catch{return}}function u(e){if(!(typeof window>`u`))try{window.localStorage.setItem(o,JSON.stringify({locale:e}))}catch{return}}function d(){let e=l();if(e)return e;if(typeof navigator<`u`)try{let e=[...navigator.languages??[],navigator.language];for(let t of e){let e=s(t);if(e)return e}}catch{return`en`}return`en`}var f=e({formatMessage:()=>_,initializeLocale:()=>g,useI18nStore:()=>h}),p=new Map([[`en`,r]]);async function m(e){let t=p.get(e);if(t)return t;let i=e===`zh-CN`?await n(()=>import(`./zh-CN-C4wauCqC.js`),[]):e===`fr`?await n(()=>import(`./fr-T-bfFDvO.js`),[]):e===`zh-TW`?await n(()=>import(`./zh-TW-DtT3aVC7.js`),[]):e===`es`?await n(()=>import(`./es-DyE3MYjW.js`),[]):e===`pt-BR`?await n(()=>import(`./pt-BR-Boqh_bme.js`),[]):e===`uk`?await n(()=>import(`./uk-B4CEXe9W.js`),[]):e===`ko`?await n(()=>import(`./ko-MUUqS5Un.js`),[]):e===`pl`?await n(()=>import(`./pl-g4y8Kn6w.js`),[]):e===`ja`?await n(()=>import(`./ja-CZPkddOJ.js`),[]):{dict:r};return p.set(e,i.dict),i.dict}var h=t()((e,t)=>({locale:`en`,dictionary:r,loadingLocale:null,setLocale:(n,i=!0)=>{let a=t(),o=p.get(n);a.locale===n&&a.loadingLocale!==n&&o||(i&&u(n),e({locale:n,dictionary:o??a.dictionary,loadingLocale:o?null:n}),!o&&m(n).then(r=>{t().locale===n&&e({dictionary:r,loadingLocale:null})}).catch(i=>{console.error(`[i18n] failed to load locale ${n}`,i),t().locale===n&&e({locale:`en`,dictionary:r,loadingLocale:null})}))}}));function g(){h.getState().setLocale(d(),!1)}function _(e,t,n){let i=e[t]??r[t]??t;return n?i.replace(/\{([^{}]+)\}/g,(e,t)=>{let r=n[t.trim()];return r==null?e:String(r)}):i}export{i as a,h as i,g as n,a as o,f as r,_ as t};
|