@openchambery/web 1.18.2-beta.31 → 1.18.2-beta.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/assets/AssistantView-CoyhdTbE.js +1 -0
  2. package/dist/assets/{ChatContainer-Ddon7i5x.js → ChatContainer-qBpI03Vx.js} +40 -40
  3. package/dist/assets/{DiagramView-BgqIMaEm.js → DiagramView-DZ1WiggF.js} +1 -1
  4. package/dist/assets/{MarkdownRendererImpl-BxiDhVH9.js → MarkdownRendererImpl-CS_qAiJw.js} +1 -1
  5. package/dist/assets/{MobileDetailNavigation-BsQmEqPO.js → MobileDetailNavigation-Ceidd7mV.js} +1 -1
  6. package/dist/assets/{MobileShareBridge-CUwGZNSo.js → MobileShareBridge-BSA3qyLh.js} +1 -1
  7. package/dist/assets/MobileSurface-BovXyErC.js +2 -0
  8. package/dist/assets/{MultiRunWindow-CTWluFXJ.js → MultiRunWindow-BkBeFDKZ.js} +1 -1
  9. package/dist/assets/{OnboardingScreen-CC4fqs0M.js → OnboardingScreen-C1kAHsU9.js} +1 -1
  10. package/dist/assets/OverlayScrollbar-iaMCjwrs.js +2 -0
  11. package/dist/assets/{SettingsView-DpnDXF2_.js → SettingsView-JUMjBV3w.js} +11 -12
  12. package/dist/assets/{SettingsWindow-Dvi882vA.js → SettingsWindow-CDYfwAnv.js} +1 -1
  13. package/dist/assets/{TerminalView-xrLSN4j7.js → TerminalView-B4exX3-y.js} +1 -1
  14. package/dist/assets/{ToolOutputDialog-C9bzo8sK.js → ToolOutputDialog-DSBr6zoi.js} +1 -1
  15. package/dist/assets/{appThemeRegistry-BN9k7vVa.js → appThemeRegistry-DsF7lf1y.js} +2 -2
  16. package/dist/assets/capgoAdapter-BSPH5_gX.js +1 -0
  17. package/dist/assets/{clipboard-B5V61jlQ.js → clipboard-mzqrY_n2.js} +1 -1
  18. package/dist/assets/{context-menu-BbwapTNT.js → context-menu-D5fJRTnM.js} +1 -1
  19. package/dist/assets/{dialog-CnekXdCq.js → dialog-DDrJKIhd.js} +1 -1
  20. package/dist/assets/{es-ZHyqPb3M.js → es-DyE3MYjW.js} +3 -3
  21. package/dist/assets/{fr-nXAAl4qu.js → fr-T-bfFDvO.js} +3 -3
  22. package/dist/assets/{gitApi-k7AZQbpz.js → gitApi-jI37Cek-.js} +3 -3
  23. package/dist/assets/{insertionBoundaries-7W_1e-d-.js → insertionBoundaries-C7WpZcjj.js} +1 -1
  24. package/dist/assets/{ja-CLcxQZ5K.js → ja-CZPkddOJ.js} +3 -3
  25. package/dist/assets/{ko-KgjBt0nP.js → ko-MUUqS5Un.js} +3 -3
  26. package/dist/assets/{main-BxsNKnDp.js → main-CmqFzBNr.js} +15 -15
  27. package/dist/assets/{main-Ci6PEc-J.js → main-DfymqArl.js} +2 -2
  28. package/dist/assets/{miniChat-B5GJJFgo.js → miniChat-BDrhPk_q.js} +2 -2
  29. package/dist/assets/{mobile-D1NLpIYA.js → mobile-DwDESlsO.js} +2 -2
  30. package/dist/assets/multirun-HPTTgha1.js +4 -0
  31. package/dist/assets/pl-g4y8Kn6w.js +15 -0
  32. package/dist/assets/projectMeta-CL0zMdY1.js +3 -0
  33. package/dist/assets/{pt-BR-B6nleSMM.js → pt-BR-Boqh_bme.js} +3 -3
  34. package/dist/assets/radio-CxjX1QLI.js +1 -0
  35. package/dist/assets/renderElectronMiniChatApp-D59_P4W8.js +2 -0
  36. package/dist/assets/renderMobileApp-BCX14iIt.js +23 -0
  37. package/dist/assets/{runtimeConfig-pPnLM80M.js → runtimeConfig-BgB804OO.js} +1 -1
  38. package/dist/assets/runtimeEndpointReset-DVdmDWJF.js +145 -0
  39. package/dist/assets/{sortable-tabs-strip-C82FJb25.js → sortable-tabs-strip-CBs61Gj9.js} +1 -1
  40. package/dist/assets/src-BBD2IyWD.css +2 -0
  41. package/dist/assets/{store-BDxgw-Hx.js → store-BLmIK6EO.js} +3 -3
  42. package/dist/assets/{uk-KTDMzdyl.js → uk-B4CEXe9W.js} +3 -3
  43. package/dist/assets/{useAppFontEffects-BTAoI3qb.js → useAppFontEffects-Cq6OnxJa.js} +4 -4
  44. package/dist/assets/{useDesktopWindowControlsLayout-Dn5rwAx1.js → useDesktopWindowControlsLayout-WoSVT54r.js} +1 -1
  45. package/dist/assets/{useEffectiveDirectory-CfWfXRNf.js → useEffectiveDirectory-nzIU9x_o.js} +1 -1
  46. package/dist/assets/{useMobileNavigationStore-nmb4CWpS.js → useMobileNavigationStore-CjWKn8Qe.js} +21 -21
  47. package/dist/assets/{useSessionAutoCleanup-DdhPDfkF.js → useSessionAutoCleanup-a3EjB8JJ.js} +1 -1
  48. package/dist/assets/{useWorkerHighlightedLines-hY7VrbXR.js → useWorkerHighlightedLines-CszvGrwL.js} +1 -1
  49. package/dist/assets/{zh-CN-BilLDIh_.js → zh-CN-C4wauCqC.js} +3 -3
  50. package/dist/assets/{zh-TW-DBDsyRLQ.js → zh-TW-DtT3aVC7.js} +3 -3
  51. package/dist/index.html +4 -4
  52. package/dist/mini-chat.html +4 -4
  53. package/dist/mobile.html +4 -4
  54. package/package.json +1 -1
  55. package/server/lib/message-queue/DOCUMENTATION.md +1 -1
  56. package/dist/assets/AssistantView-BIn8F2Hj.js +0 -1
  57. package/dist/assets/MobileSurface-DJAZpIrG.js +0 -2
  58. package/dist/assets/OverlayScrollbar-C3WqFk2J.js +0 -2
  59. package/dist/assets/capgoAdapter-LvGrONDp.js +0 -1
  60. package/dist/assets/multirun-DGbjKRAa.js +0 -4
  61. package/dist/assets/pl-ZJkD7N-8.js +0 -15
  62. package/dist/assets/projectMeta-Bqs1hCSs.js +0 -3
  63. package/dist/assets/radio-Bvd_NJMe.js +0 -1
  64. package/dist/assets/renderElectronMiniChatApp-DM3gwCyN.js +0 -2
  65. package/dist/assets/renderMobileApp-Cxrys3-9.js +0 -23
  66. package/dist/assets/runtimeEndpointReset-AnjZIaRp.js +0 -145
  67. package/dist/assets/src-Da2IGcZi.css +0 -2
@@ -1,4 +1,4 @@
1
- import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t}from"./vendor-zustand-B4dlGEM2.js";import{o as n}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";var r={"settings.globalConfig.title":`Global Configuration`,"settings.globalConfig.description":`Edit the configuration files currently used from ~/.config/opencode.`,"settings.globalConfig.actions.reload":`Reload file`,"settings.globalConfig.restartHint":`Restart OpenCode after saving to apply configuration changes.`,"settings.globalConfig.toast.loadFailed":`Failed to load configuration file`,"settings.globalConfig.toast.saveFailed":`Failed to save configuration file`,"settings.globalConfig.toast.saved":`Configuration saved. Restart OpenCode to apply it.`,"settings.providers.page.openCodeGo.title":`OpenCode Go usage tracking`,"settings.providers.page.openCodeGo.description":`Connect the OpenCode Go dashboard to show rolling, weekly, and monthly quota.`,"settings.providers.page.openCodeGo.workspaceId":`Workspace ID`,"settings.providers.page.openCodeGo.authCookie":`Auth cookie`,"settings.providers.page.openCodeGo.help":`Copy the workspace ID from the dashboard URL and the auth cookie from your browser developer tools. OpenChamber never scans browser cookie storage.`,"settings.providers.page.openCodeGo.save":`Save and validate`,"settings.providers.page.openCodeGo.replace":`Replace`,"settings.providers.page.openCodeGo.validate":`Validate`,"settings.providers.page.openCodeGo.delete":`Delete`,"settings.providers.page.quotaCredentials.saved":`{provider} credentials saved.`,"settings.providers.page.openCodeGo.saveFailed":`Could not validate OpenCode Go credentials.`,"settings.providers.page.openCodeGo.valid":`OpenCode Go credentials are valid.`,"settings.providers.page.openCodeGo.invalid":`OpenCode Go credentials are invalid or expired.`,"settings.providers.page.openCodeGo.deleted":`OpenCode Go credentials deleted.`,"settings.providers.page.openCodeGo.deleteFailed":`Could not delete OpenCode Go credentials.`,"settings.appearance.language.label":`Language`,"settings.appearance.language.description":`Choose the interface language.`,"settings.appearance.language.select":`Select language`,"settings.window.description":`OpenChamber settings window.`,"settings.view.home.title":`Settings`,"settings.view.home.description":`Jump to common pages.`,"settings.view.home.cards.providers.title":`Providers`,"settings.view.home.cards.providers.description":`Connect models + credentials`,"settings.view.home.cards.agents.title":`Agents`,"settings.view.home.cards.agents.description":`Prompts, tools, permissions`,"settings.view.home.cards.skillsCatalog.title":`Skills Catalog`,"settings.view.home.cards.skillsCatalog.description":`Install skills from catalogs`,"settings.view.home.cards.mcp.title":`MCP`,"settings.view.home.cards.mcp.description":`Configure MCP servers + connections`,"settings.view.home.cards.plugins.title":`Plugins`,"settings.view.home.cards.plugins.description":`Manage opencode plugins`,"settings.view.home.cards.usage.title":`Usage`,"settings.view.home.cards.usage.description":`Quota + spend visibility`,"settings.view.unavailable.title":`Not available`,"settings.view.unavailable.description":`This settings page is not available in this runtime.`,"settings.view.badge.beta":`beta`,"settings.view.actions.reloadOpenCode":`Reload OpenCode`,"settings.view.actions.reloadOpenCodeTooltip":`Restart OpenCode and reload its configuration.`,"settings.view.actions.backToSettings":`Back to Settings`,"settings.view.actions.closeSettings":`Close settings`,"settings.view.actions.openSectionList":`Open section list`,"settings.view.actions.closeSettingsWithShortcut":`Close Settings ({shortcut}+,)`,"settings.view.actions.back":`Back`,"settings.view.actions.resizeNavigation":`Resize settings navigation`,"settings.view.navigation.groups.connection":`Connection`,"settings.view.navigation.groups.personalization":`Personalization`,"settings.view.navigation.groups.workspace":`Workspace`,"settings.view.navigation.groups.opencode":`OpenCode`,"settings.view.navigation.groups.content":`Content & Automation`,"settings.view.navigation.groups.system":`System`,"settings.view.search.placeholder":`Search settings`,"settings.view.search.aria":`Search settings`,"settings.view.search.clear":`Clear settings search`,"settings.view.search.noResults":`No matching settings`,"settings.page.projects.title":`Projects`,"settings.page.remoteInstances.title":`Remote Instances`,"settings.page.providers.title":`Providers`,"settings.page.usage.title":`Usage`,"settings.page.agents.title":`Agents`,"settings.page.commands.title":`Commands`,"settings.page.mcp.title":`MCP`,"settings.page.plugins.title":`Plugins`,"settings.page.skills.title":`Skills`,"settings.page.skillsCatalog.title":`Skills Catalog`,"settings.page.git.title":`Git`,"settings.page.appearance.title":`Appearance`,"settings.page.chat.title":`Chat`,"settings.page.shortcuts.title":`Shortcuts`,"settings.page.sessions.title":`Sessions`,"settings.page.summaryAI.title":`Summary AI`,"settings.page.magicPrompts.title":`Magic Prompts`,"settings.page.notifications.title":`Notifications`,"settings.page.voice.title":`Voice`,"settings.page.about.title":`About`,"settings.page.snippets.title":`Snippets`,"settings.snippets.sidebar.title":`Snippets`,"settings.snippets.sidebar.total":`Total: {count}`,"settings.snippets.sidebar.actions.create":`Create snippet`,"settings.snippets.sidebar.actions.more":`More actions for {name}`,"settings.snippets.sidebar.toast.deleted":`Snippet deleted`,"settings.snippets.sidebar.toast.deleteFailed":`Failed to delete snippet`,"settings.snippets.sidebar.dialog.deleteTitle":`Delete snippet?`,"settings.snippets.sidebar.dialog.deleteDescription":`This will permanently delete #{name}.`,"settings.snippets.page.empty.title":`Select a snippet`,"settings.snippets.page.empty.description":`Choose a snippet from the sidebar to edit it.`,"settings.snippets.page.title.new":`New snippet`,"settings.snippets.page.field.namePlaceholder":`snippet-name`,"settings.snippets.page.field.descriptionPlaceholder":`What this snippet does`,"settings.snippets.page.field.aliases":`Aliases`,"settings.snippets.page.field.aliasesPlaceholder":`safe, careful`,"settings.snippets.page.field.content":`Content`,"settings.snippets.page.field.contentPlaceholder":`Snippet markdown...`,"settings.snippets.page.hint":`Use #name in prompts. Supports aliases and prepend/append blocks compatible with opencode-snippets.`,"settings.snippets.page.toast.nameRequired":`Snippet name is required`,"settings.snippets.page.toast.contentRequired":`Snippet content is required`,"settings.snippets.page.toast.saveFailed":`Failed to save snippet`,"settings.snippets.page.toast.saved":`Snippet saved`,"settings.page.promptTemplates.title":`Prompt Templates`,"settings.promptTemplates.sidebar.title":`Prompt Templates`,"settings.promptTemplates.sidebar.total":`Total: {count}`,"settings.promptTemplates.sidebar.empty.title":`No prompt templates`,"settings.promptTemplates.sidebar.empty.description":`Create a prompt template to get started.`,"settings.promptTemplates.sidebar.toast.deleted":`Template "{name}" deleted`,"settings.promptTemplates.sidebar.toast.deleteFailed":`Failed to delete template`,"settings.promptTemplates.sidebar.toast.nameRequired":`Template name is required`,"settings.promptTemplates.sidebar.toast.renamed":`Template renamed`,"settings.promptTemplates.sidebar.toast.renameFailed":`Failed to rename template`,"settings.promptTemplates.sidebar.dialog.deleteTitle":`Delete template?`,"settings.promptTemplates.sidebar.dialog.deleteDescription":`This will permanently delete "{name}". This action cannot be undone.`,"settings.promptTemplates.sidebar.renameDialog.title":`Rename template`,"settings.promptTemplates.sidebar.renameDialog.description":`Enter a new name for "{name}".`,"settings.promptTemplates.sidebar.renameDialog.placeholder":`Template name`,"settings.promptTemplates.sidebar.badge.default":`default`,"settings.promptTemplates.page.empty.title":`Select a template`,"settings.promptTemplates.page.empty.description":`Choose a template from the sidebar to edit it.`,"settings.promptTemplates.page.title.new":`New template`,"settings.promptTemplates.page.subtitle.edit":`Edit template`,"settings.promptTemplates.page.subtitle.new":`Create a new prompt template`,"settings.promptTemplates.page.section.identity":`Identity`,"settings.promptTemplates.page.field.name":`Name`,"settings.promptTemplates.page.field.namePlaceholder":`Template name`,"settings.promptTemplates.page.section.template":`Template`,"settings.promptTemplates.page.field.templatePlaceholder":`Enter the prompt template text...`,"settings.promptTemplates.page.templateHint":`This text will be prepended to the user's prompt when selected in a multi-run group.`,"settings.promptTemplates.page.toast.nameRequired":`Template name is required`,"settings.promptTemplates.page.toast.updated":`Template updated`,"settings.promptTemplates.page.toast.updateFailed":`Failed to update template`,"settings.promptTemplates.page.toast.created":`Template created`,"settings.promptTemplates.page.toast.createFailed":`Failed to create template`,"settings.promptTemplates.page.toast.saveUnexpectedError":`An unexpected error occurred while saving`,"settings.magicPrompts.sidebar.title":`Magic Prompts`,"settings.magicPrompts.sidebar.description":`Select a prompt template to edit.`,"settings.magicPrompts.sidebar.group.git":`Git`,"settings.magicPrompts.sidebar.group.github":`GitHub`,"settings.magicPrompts.sidebar.group.planning":`Planning`,"settings.magicPrompts.sidebar.group.session":`Session`,"settings.magicPrompts.sidebar.item.gitCommitGenerate":`Commit Generation`,"settings.magicPrompts.sidebar.item.gitPrGenerate":`PR Generation`,"settings.magicPrompts.sidebar.item.gitConflictResolve":`Merge/Rebase Conflict Resolution`,"settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve":`Cherry-pick Conflict Resolution`,"settings.magicPrompts.sidebar.item.githubPrReview":`PR Review`,"settings.magicPrompts.sidebar.item.githubIssueReview":`Issue Review`,"settings.magicPrompts.sidebar.item.githubPrFailedChecksReview":`PR Failed Checks Review`,"settings.magicPrompts.sidebar.item.githubPrCommentsReview":`PR Comments Review`,"settings.magicPrompts.sidebar.item.githubSinglePrCommentReview":`Single PR Comment Review`,"settings.magicPrompts.sidebar.item.planTodo":`Todo Planning`,"settings.magicPrompts.sidebar.item.planImprove":`Improve Plan`,"settings.magicPrompts.sidebar.item.planImplement":`Implement Plan`,"settings.magicPrompts.sidebar.item.sessionSummary":`Session Summary`,"settings.magicPrompts.sidebar.item.sessionWorkspaceReview":`Workspace Review`,"settings.magicPrompts.sidebar.item.sessionExplore":`Codebase Tour`,"settings.magicPrompts.sidebar.item.sessionFeaturePlan":`Feature Planning`,"settings.magicPrompts.sidebar.item.sessionCraftGoal":`Goal Crafting`,"settings.magicPrompts.page.group.sessionCraftGoal.title":`Goal Crafting`,"settings.magicPrompts.page.group.sessionCraftGoal.description":`Prompts used by the /craft-goal slash command: visible user message + hidden instructions. Turns an idea or task into a clear, evidence-verifiable Goal through guided discovery.`,"settings.magicPrompts.sidebar.item.sessionCatchUp":`Catch Up`,"settings.magicPrompts.sidebar.item.sessionDebug":`Debugging`,"settings.magicPrompts.sidebar.item.sessionWeigh":`Weigh Options`,"settings.magicPrompts.sidebar.item.sessionFusion":`Fusion`,"settings.remoteInstances.sidebar.title":`Remote Instances`,"settings.remoteInstances.sidebar.description":`Connect to other OpenChamber servers via an import link or SSH.`,"settings.remoteInstances.sidebar.empty":`No remote instances yet. Import a link or add an SSH connection.`,"settings.remoteInstances.channel.link":`Link`,"settings.remoteInstances.channel.ssh":`SSH`,"settings.remoteInstances.sidebar.total":`Total {count}`,"settings.remoteInstances.sidebar.newSshInstanceName":`New SSH connection`,"settings.remoteInstances.sidebar.actions.addSshInstance":`Add SSH connection`,"settings.remoteInstances.sidebar.actions.connect":`Connect`,"settings.remoteInstances.sidebar.actions.disconnect":`Disconnect`,"settings.remoteInstances.sidebar.actions.retry":`Retry`,"settings.remoteInstances.sidebar.actions.remove":`Remove`,"settings.remoteInstances.sidebar.confirm.localPortInUseRetry":`Local port is already in use. Pick a random free local port and retry?`,"settings.remoteInstances.sidebar.toast.createFailed":`Failed to create SSH connection`,"settings.remoteInstances.sidebar.toast.retriedWithRandomPort":`Retried with a random local port`,"settings.remoteInstances.sidebar.toast.connectFailed":`Failed to connect instance`,"settings.remoteInstances.sidebar.toast.disconnectFailed":`Failed to disconnect instance`,"settings.remoteInstances.sidebar.toast.retryFailed":`Failed to retry connection`,"settings.remoteInstances.sidebar.toast.removeFailed":`Failed to remove instance`,"settings.remoteInstances.direct.sidebarTitle":`Server links`,"settings.remoteInstances.direct.sidebarDescription":`Connect with a pairing link`,"settings.remoteInstances.direct.title":`Other OpenChamber servers`,"settings.remoteInstances.direct.description":`Servers this app can switch to. Import a pairing link from another OpenChamber server.`,"settings.remoteInstances.direct.import.description":`Paste a connection link from another OpenChamber server.`,"settings.remoteInstances.direct.import.placeholder":`openchamber://connect?...`,"settings.remoteInstances.direct.import.action":`Import Link`,"settings.remoteInstances.direct.error.invalidConnectLink":`Invalid OpenChamber connection link.`,"settings.remoteInstances.direct.state.loading":`Loading instances...`,"settings.remoteInstances.direct.state.empty":`No imported servers yet.`,"settings.remoteInstances.clientAuth.title":`Connect to this server`,"settings.remoteInstances.clientAuth.description":`Create a secure link or token so OpenChamber Desktop can connect to this server.`,"settings.remoteInstances.clientAuth.field.labelPlaceholder":`Instance name — e.g. Home Mac`,"settings.remoteInstances.clientAuth.field.labelHint":`The other device will show this name for this server.`,"settings.remoteInstances.clientAuth.actions.create":`Create Token`,"settings.remoteInstances.clientAuth.actions.pair":`Create Link`,"settings.remoteInstances.clientAuth.actions.revoke":`Revoke`,"settings.remoteInstances.clientAuth.actions.clearRevoked":`Clear revoked`,"settings.remoteInstances.clientAuth.qrAlt":`OpenChamber connection QR code`,"settings.remoteInstances.clientAuth.qrEnlarge":`Enlarge QR code`,"settings.remoteInstances.clientAuth.qrScanHint":`Scan this with the OpenChamber app on your other device. It is single-use and expires.`,"settings.remoteInstances.clientAuth.qrDialogTitle":`Scan to connect`,"settings.remoteInstances.clientAuth.actions.addDevice":`Add a device`,"settings.remoteInstances.clientAuth.actions.copied":`Copied`,"settings.remoteInstances.clientAuth.addDevice.transportLabel":`Where will you use this device?`,"settings.remoteInstances.clientAuth.addDevice.subtitle":`Create a one-time QR code that connects another device to this server.`,"settings.remoteInstances.clientAuth.addDevice.transport.local":`This computer only`,"settings.remoteInstances.clientAuth.addDevice.transport.localHint":`For apps running on this same machine.`,"settings.remoteInstances.clientAuth.addDevice.transport.lan":`Home network only`,"settings.remoteInstances.clientAuth.addDevice.transport.lanHint":`Connects directly over your Wi-Fi. Does not work away from this network.`,"settings.remoteInstances.clientAuth.addDevice.transport.relay":`Anywhere`,"settings.remoteInstances.clientAuth.addDevice.transport.relayHint":`Works at home and away. Away traffic goes through OpenChamber Private Relay — an end-to-end encrypted tunnel. No setup needed.`,"settings.remoteInstances.clientAuth.addDevice.fallback.relay":`Also allow the encrypted relay when away from home`,"settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal":`Prefer the direct home connection when available`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLabel":`Relay server`,"settings.remoteInstances.clientAuth.addDevice.relayUrlHint":`Use the official OpenChamber Relay, or enter your own ws:// or wss:// endpoint. This device will save the endpoint from the QR code.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlDeployLink":`Deploy your own Relay.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLockedHint":`This server pins the Relay endpoint with OPENCHAMBER_RELAY_URL.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlInvalid":`Enter a valid Relay endpoint that starts with ws:// or wss://.`,"settings.remoteInstances.clientAuth.addDevice.create":`Create QR code`,"settings.remoteInstances.clientAuth.addDevice.targetLabel":`Target instance`,"settings.remoteInstances.clientAuth.addDevice.target.local":`This desktop`,"settings.remoteInstances.clientAuth.addDevice.target.sshEmpty":`No connected SSH instances`,"settings.remoteInstances.clientAuth.addDevice.target.sshNotReady":`Connect the SSH instance first`,"settings.remoteInstances.sidebar.actions.mobileConnect":`Phone connect`,"settings.remoteInstances.sidebar.actions.mobileConnectAria":`Create a phone pairing QR for {instance}`,"settings.remoteInstances.sidebar.actions.mobileConnectDisabled":`Connect this SSH instance before pairing a phone`,"settings.remoteInstances.sidebar.actions.syncConfig":`Sync config`,"settings.remoteInstances.sidebar.actions.syncConfigDisabled":`Connect this instance to sync its config`,"settings.remoteInstances.clientAuth.addDevice.done":`Done`,"settings.remoteInstances.clientAuth.addDevice.connectedToast":`Device connected.`,"settings.remoteInstances.clientAuth.pairingUrl":`Connection link`,"settings.remoteInstances.clientAuth.createdToken":`Copy this token now. For security, it will not be shown again.`,"settings.remoteInstances.clientAuth.state.loading":`Loading tokens...`,"settings.remoteInstances.clientAuth.state.empty":`No devices connected yet.`,"settings.remoteInstances.clientAuth.state.revoked":`Revoked`,"settings.remoteInstances.clientAuth.state.thisDevice":`This device`,"settings.remoteInstances.clientAuth.state.pending":`Waiting to connect…`,"settings.remoteInstances.clientAuth.state.viaRelay":`Relay`,"settings.remoteInstances.clientAuth.state.connectedDirect":`Connected · Local network`,"settings.remoteInstances.clientAuth.state.connectedRelay":`Connected · Relay`,"settings.remoteInstances.clientAuth.lastUsed":`Last used {date}`,"settings.remoteInstances.clientAuth.neverUsed":`Never used`,"settings.remoteInstances.relay.title":`OpenChamber Relay`,"settings.remoteInstances.relay.autoHint":`Turns on automatically when you pair a device over the relay.`,"settings.remoteInstances.relay.description":`Let your other devices connect from anywhere without opening ports. Traffic is end-to-end encrypted — the relay cannot read it.`,"settings.remoteInstances.relay.enableHint":`Nothing is shared until you enable the relay on this server.`,"settings.remoteInstances.relay.actions.enable":`Enable Relay`,"settings.remoteInstances.relay.actions.disable":`Disable`,"settings.remoteInstances.relay.confirm.disable":`Disable the relay? Devices connected through it will be disconnected immediately.`,"settings.remoteInstances.relay.state.loading":`Checking relay status...`,"settings.remoteInstances.relay.state.disabled":`Disabled`,"settings.remoteInstances.relay.state.connecting":`Connecting`,"settings.remoteInstances.relay.state.connected":`Connected`,"settings.remoteInstances.relay.state.reconnecting":`Reconnecting`,"settings.remoteInstances.relay.state.error":`Error`,"settings.remoteInstances.relay.status.clientsOne":`{count} device connected`,"settings.remoteInstances.relay.status.clientsMany":`{count} devices connected`,"settings.remoteInstances.relay.pair.title":`Pair a device`,"settings.remoteInstances.relay.pair.labelPlaceholder":`Device name (optional)`,"settings.remoteInstances.relay.pair.includeToken":`Include access token (one-scan pairing)`,"settings.remoteInstances.relay.pair.noTokenHint":`Without a token, the device signs in with this server’s UI password after connecting.`,"settings.remoteInstances.relay.pair.generate":`Create pairing link`,"settings.remoteInstances.relay.pair.requiresConnected":`Pairing becomes available once the relay is connected.`,"settings.remoteInstances.relay.pair.linkLabel":`Pairing link`,"settings.remoteInstances.relay.pair.warning":`This link grants access to this server. Do not share it.`,"settings.remoteInstances.relay.pair.qrAlt":`Relay pairing QR code`,"settings.remoteInstances.relay.pair.showQr":`Show QR code`,"settings.remoteInstances.relay.pair.qrDialogTitle":`Scan to pair`,"settings.remoteInstances.relay.pair.qrDialogDescription":`Scan this QR code with the OpenChamber app on your other device.`,"settings.remoteInstances.relay.pair.manageHint":`Manage or revoke paired devices in the “Connect to this server” list above.`,"settings.remoteInstances.relay.toast.enableFailed":`Failed to enable relay`,"settings.remoteInstances.relay.toast.disableFailed":`Failed to disable relay`,"settings.remoteInstances.relay.toast.offerFailed":`Failed to create pairing link`,"settings.remoteInstances.relay.toast.linkCopied":`Pairing link copied`,"settings.remoteInstances.sidebar.phase.ready":`Ready`,"settings.remoteInstances.sidebar.phase.error":`Error`,"settings.remoteInstances.sidebar.phase.reconnect":`Reconnect`,"settings.remoteInstances.sidebar.phase.installing":`Installing`,"settings.remoteInstances.sidebar.phase.updating":`Updating`,"settings.remoteInstances.sidebar.phase.forwarding":`Forwarding`,"settings.remoteInstances.sidebar.phase.starting":`Starting`,"settings.remoteInstances.sidebar.phase.connecting":`Connecting`,"settings.remoteInstances.sidebar.phase.idle":`Idle`,"settings.remoteInstances.page.section.instance":`Instance`,"settings.remoteInstances.page.section.instanceDescription":`Choose the SSH command and a display name for this connection.`,"settings.remoteInstances.page.field.mode":`Mode`,"settings.remoteInstances.page.field.modeHint":`Choose whether OpenChamber should start the server for you, or connect to one that is already running.`,"settings.remoteInstances.page.field.modePlaceholder":`Select mode`,"settings.remoteInstances.page.field.modeManaged":`Start it for me`,"settings.remoteInstances.page.field.modeExternal":`Already running`,"settings.remoteInstances.page.field.preferredRemotePort":`Preferred remote port`,"settings.remoteInstances.page.field.preferredRemotePortHint":`Port to use on the remote machine. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.keepServerRunning":`Keep server running`,"settings.remoteInstances.page.field.keepServerRunningHint":`Keep OpenChamber running on the remote machine after you disconnect.`,"settings.remoteInstances.page.field.bindHost":`Bind host`,"settings.remoteInstances.page.field.bindHostHint":`Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.`,"settings.remoteInstances.page.field.preferredLocalPort":`Preferred local port`,"settings.remoteInstances.page.field.preferredLocalPortHint":`Local port to open for this connection. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.forwardType":`Forward type`,"settings.remoteInstances.page.field.localListen":`Local listen`,"settings.remoteInstances.page.field.localTarget":`Local target`,"settings.remoteInstances.page.field.remoteListen":`Remote listen`,"settings.remoteInstances.page.field.remoteTarget":`Remote target`,"settings.remoteInstances.page.field.localHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.remoteHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.auto":`Auto`,"settings.remoteInstances.page.confirm.bindAllInterfaces":`Binding to 0.0.0.0 exposes forwarded ports to your local network. Continue?`,"settings.remoteInstances.page.preview.localSocks5":`(local SOCKS5)`,"settings.remoteInstances.page.preview.local":`(local)`,"settings.remoteInstances.page.preview.remote":`(remote)`,"settings.remoteInstances.page.toast.openLocalEndpointFailed":`Failed to open local address`,"settings.remoteInstances.page.toast.localUrlCopied":`Local URL copied`,"settings.remoteInstances.page.actions.copyLocalUrl":`Copy local URL`,"settings.remoteInstances.page.actions.open":`Open`,"settings.remoteInstances.page.logsDialog.selectedInstanceFallback":`Selected instance`,"settings.remoteInstances.page.patternDialog.descriptionWithHost":`{host} requires a concrete destination.`,"settings.remoteInstances.page.patternDialog.description":`Enter destination.`,"settings.common.actions.cancel":`Cancel`,"settings.common.actions.create":`Create`,"settings.common.actions.delete":`Delete`,"settings.common.actions.reset":`Reset`,"settings.common.actions.rename":`Rename`,"settings.common.actions.duplicate":`Duplicate`,"settings.common.actions.import":`Import`,"settings.common.actions.copyAll":`Copy all`,"settings.common.actions.clear":`Clear`,"settings.common.actions.saving":`Saving...`,"settings.common.actions.saveChanges":`Save Changes`,"settings.common.scope.global":`Global`,"settings.common.scope.project":`Project`,"settings.common.field.description":`Description`,"settings.common.badge.new":`New`,"settings.common.badge.modified":`Modified`,"settings.common.permission.allow":`Allow`,"settings.common.permission.ask":`Ask`,"settings.common.permission.deny":`Deny`,"settings.common.state.comingSoon":`Coming soon...`,"settings.projects.actions.title":`Actions`,"settings.projects.actions.description":`Per-project commands shown in header next to project name.`,"settings.projects.actions.validation.fillNameAndCommand":`Fill action name and command before saving.`,"settings.projects.actions.state.loading":`Loading...`,"settings.projects.actions.state.empty":`No actions configured yet.`,"settings.projects.actions.state.untitled":`Untitled action`,"settings.projects.actions.state.noDesktopSshForwards":`No enabled local SSH forwards available.`,"settings.projects.actions.field.selectIconAria":`Select icon`,"settings.projects.actions.field.iconAria":`Icon {icon}`,"settings.projects.actions.field.actionNamePlaceholder":`Action name`,"settings.projects.actions.field.command":`Command`,"settings.projects.actions.field.commandPlaceholder":`e.g. bun run lint`,"settings.projects.actions.field.autoOpenUrl":`Auto-open URL`,"settings.projects.actions.field.autoOpenUrlForAria":`Auto-open URL for {title}`,"settings.projects.actions.field.autoOpenUrlDescription":`Open URL from output or custom URL below`,"settings.projects.actions.field.overrideUrlPlaceholder":`Override URL (optional)`,"settings.projects.actions.field.overrideUrlTooltip":`If this field is filled, custom URL is used. If empty, app opens best URL from output.`,"settings.projects.actions.field.desktopSshForward":`Desktop SSH forward`,"settings.projects.actions.field.useOutputManualUrl":`Use output/manual URL`,"settings.projects.actions.actions.add":`Add action`,"settings.projects.actions.actions.save":`Save Actions`,"settings.projects.actions.toast.saveFailed":`Failed to save actions`,"settings.projects.actions.toast.saved":`Project actions saved`,"settings.openchamber.about.title":`About OpenChamber`,"settings.openchamber.about.field.version":`Version`,"settings.openchamber.about.field.clientVersion":`Client`,"settings.openchamber.about.field.webBundle":`Web bundle`,"settings.openchamber.about.field.instanceOpenChamberVersion":`OpenChamber`,"settings.openchamber.about.field.instanceOpenCodeVersion":`OpenCode`,"settings.openchamber.about.field.openCodeVersion":`OpenCode version`,"settings.openchamber.about.state.checking":`Checking...`,"settings.openchamber.about.state.upToDate":`Up to date`,"settings.openchamber.about.state.unknown":`unknown`,"settings.openchamber.about.state.builtin":`builtin`,"settings.openchamber.about.actions.checkUpdates":`Check updates`,"settings.openchamber.about.actions.update":`Update`,"settings.openchamber.about.actions.updateToVersion":`Update to {version}`,"settings.openchamber.about.actions.checkForUpdates":`Check for updates`,"settings.openchamber.about.toast.latestVersion":`You are on the latest version`,"settings.openchamber.about.toast.checkFailed":`Could not check for updates`,"settings.openchamber.about.diagnostics.label":`Diagnostics log`,"settings.openchamber.about.diagnostics.description":`Export local diagnostic feats for display and sync issues. No message bodies or tokens are included.`,"settings.openchamber.about.diagnostics.export":`Export log`,"settings.openchamber.about.diagnostics.exporting":`Exporting…`,"settings.openchamber.about.diagnostics.enable":`Record diagnostic feats`,"settings.openchamber.about.diagnostics.enableHint":`Available in beta builds. Records transcript sync and display lifecycle facts on this device.`,"settings.openchamber.about.diagnostics.toast.exported":`Diagnostics log exported`,"settings.openchamber.about.diagnostics.toast.failed":`Could not export diagnostics log`,"settings.openchamber.about.diagnostics.toast.empty":`Diagnostics log exported. No events were recorded yet.`,"settings.agents.sidebar.title":`Agents`,"settings.agents.sidebar.total":`Total {count}`,"settings.agents.sidebar.empty.title":`No agents configured`,"settings.agents.sidebar.empty.description":`Use the + button above to create one`,"settings.agents.sidebar.section.builtIn":`Built-in Agents`,"settings.agents.sidebar.section.custom":`Custom Agents`,"settings.agents.sidebar.badge.system":`system`,"settings.agents.sidebar.dialog.deleteTitle":`Delete Agent`,"settings.agents.sidebar.dialog.resetTitle":`Reset Agent`,"settings.agents.sidebar.dialog.deleteDescription":`Are you sure you want to delete agent "{name}"?`,"settings.agents.sidebar.dialog.resetDescription":`Are you sure you want to reset agent "{name}" to its default configuration?`,"settings.agents.sidebar.renameDialog.title":`Rename Agent`,"settings.agents.sidebar.renameDialog.description":`Enter a new name for the agent "@{name}"`,"settings.agents.sidebar.renameDialog.placeholder":`New agent name...`,"settings.agents.sidebar.toast.builtInCannotDelete":`Built-in agents cannot be deleted`,"settings.agents.sidebar.toast.agentDeleted":`Agent "{name}" deleted successfully`,"settings.agents.sidebar.toast.agentReset":`Agent "{name}" reset to default`,"settings.agents.sidebar.toast.deleteFailed":`Failed to delete agent`,"settings.agents.sidebar.toast.definitionNotFound":`Agent definition not found. Nothing was changed.`,"settings.agents.sidebar.toast.resetFailed":`Failed to reset agent`,"settings.agents.sidebar.toast.agentNameRequired":`Agent name is required`,"settings.agents.sidebar.toast.agentExists":`An agent with this name already exists`,"settings.agents.sidebar.toast.removeOldAfterRenameFailed":`Failed to remove old agent after rename`,"settings.agents.sidebar.toast.renameFailed":`Failed to rename agent`,"settings.agents.sidebar.toast.agentRenamed":`Agent renamed to "{name}"`,"settings.agents.page.toast.permissionNameRequired":`Permission name is required`,"settings.agents.page.toast.created":`Agent created successfully`,"settings.agents.page.toast.updated":`Agent updated successfully`,"settings.agents.page.toast.createFailed":`Failed to create agent`,"settings.agents.page.toast.updateFailed":`Failed to update agent`,"settings.agents.page.toast.saveUnexpectedError":`An error occurred while saving`,"settings.agents.page.toast.savedManualRestart":`Saved to disk. Restart your connected OpenCode server to apply the changes.`,"settings.agents.page.empty.title":`Select an agent from the sidebar`,"settings.agents.page.empty.description":`Or create a new one`,"settings.agents.page.title.new":`New Agent`,"settings.agents.page.subtitle.new":`Configure a new assistant persona`,"settings.agents.page.subtitle.edit":`Edit agent settings`,"settings.agents.page.section.identityRole":`Identity & Role`,"settings.agents.page.section.modelParameters":`Model & Parameters`,"settings.agents.page.section.systemPrompt":`System Prompt`,"settings.agents.page.section.toolPermissions":`Tool Permissions`,"settings.agents.page.field.agentName":`Agent Name`,"settings.agents.page.field.agentNamePlaceholder":`agent-name`,"settings.agents.page.field.scopePlaceholder":`Scope`,"settings.agents.page.field.descriptionPlaceholder":`What does this agent do?`,"settings.agents.page.field.mode":`Mode`,"settings.agents.page.field.modeTooltip":`Primary vs Subagent visibility`,"settings.agents.page.field.overrideModel":`Override Model`,"settings.agents.page.field.temperature":`Temperature`,"settings.agents.page.field.temperatureTooltip":`Controls randomness. Higher = creative, Lower = focused.`,"settings.agents.page.field.temperatureRange":`0.0 to 2.0`,"settings.agents.page.field.clearTemperatureAria":`Clear temperature override`,"settings.agents.page.field.topP":`Top P`,"settings.agents.page.field.topPTooltip":`Nucleus sampling diversity. Lower = likely tokens only.`,"settings.agents.page.field.topPRange":`0.0 to 1.0`,"settings.agents.page.field.clearTopPAria":`Clear top p override`,"settings.agents.page.field.variant":`Thinking Variant`,"settings.agents.page.field.variantTooltip":`Controls the thinking/reasoning depth for this agent. Maps to provider-specific parameters (e.g. Anthropic variant, OpenAI reasoning effort).`,"settings.agents.page.field.variantHint":`e.g. high, max, low`,"settings.agents.page.field.variantPlaceholder":`default`,"settings.agents.page.field.systemPromptPlaceholder":`You are an expert coding assistant...`,"settings.agents.page.mode.primary":`Primary`,"settings.agents.page.mode.subagent":`Subagent`,"settings.agents.page.mode.all":`All`,"settings.agents.page.permissions.defaultLabel":`Default`,"settings.agents.page.permissions.hideEditor":`Hide Editor`,"settings.agents.page.permissions.advancedEditor":`Advanced Editor`,"settings.agents.page.permissions.globalSummary":`Global: {summary}`,"settings.agents.page.permissions.rulesSummary":`Rules: {summary}`,"settings.agents.page.permissions.globalDefault":`Global Default`,"settings.agents.page.permissions.pattern":`Pattern`,"settings.agents.page.permissions.addCustomRule":`Add Custom Rule`,"settings.agents.page.permissions.permissionPlaceholder":`Permission...`,"settings.agents.page.permissions.patternPlaceholder":`Pattern (e.g. *)`,"settings.page.behavior.title":`Behavior`,"settings.behavior.page.title":`Behavior`,"settings.behavior.page.warning.title":`Global rules are combined with project rules`,"settings.behavior.page.warning.description":`Changes made here update {path}. OpenCode also includes any project-level AGENTS.md rules when they exist.`,"settings.behavior.page.section.systemPrompt":`Global AGENTS.md`,"settings.behavior.page.field.systemPromptPlaceholder":`You are a helpful AI assistant...
1
+ import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t}from"./vendor-zustand-B4dlGEM2.js";import{o as n}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";var r={"settings.globalConfig.title":`Global Configuration`,"settings.globalConfig.description":`Edit the configuration files currently used from ~/.config/opencode.`,"settings.globalConfig.actions.reload":`Reload file`,"settings.globalConfig.restartHint":`Restart OpenCode after saving to apply configuration changes.`,"settings.globalConfig.toast.loadFailed":`Failed to load configuration file`,"settings.globalConfig.toast.saveFailed":`Failed to save configuration file`,"settings.globalConfig.toast.saved":`Configuration saved. Restart OpenCode to apply it.`,"settings.providers.page.openCodeGo.title":`OpenCode Go usage tracking`,"settings.providers.page.openCodeGo.description":`Connect the OpenCode Go dashboard to show rolling, weekly, and monthly quota.`,"settings.providers.page.openCodeGo.workspaceId":`Workspace ID`,"settings.providers.page.openCodeGo.authCookie":`Auth cookie`,"settings.providers.page.openCodeGo.help":`Copy the workspace ID from the dashboard URL and the auth cookie from your browser developer tools. OpenChamber never scans browser cookie storage.`,"settings.providers.page.openCodeGo.save":`Save and validate`,"settings.providers.page.openCodeGo.replace":`Replace`,"settings.providers.page.openCodeGo.validate":`Validate`,"settings.providers.page.openCodeGo.delete":`Delete`,"settings.providers.page.quotaCredentials.saved":`{provider} credentials saved.`,"settings.providers.page.openCodeGo.saveFailed":`Could not validate OpenCode Go credentials.`,"settings.providers.page.openCodeGo.valid":`OpenCode Go credentials are valid.`,"settings.providers.page.openCodeGo.invalid":`OpenCode Go credentials are invalid or expired.`,"settings.providers.page.openCodeGo.deleted":`OpenCode Go credentials deleted.`,"settings.providers.page.openCodeGo.deleteFailed":`Could not delete OpenCode Go credentials.`,"settings.appearance.language.label":`Language`,"settings.appearance.language.description":`Choose the interface language.`,"settings.appearance.language.select":`Select language`,"settings.window.description":`OpenChamber settings window.`,"settings.view.home.title":`Settings`,"settings.view.home.description":`Jump to common pages.`,"settings.view.home.cards.providers.title":`Providers`,"settings.view.home.cards.providers.description":`Connect models + credentials`,"settings.view.home.cards.agents.title":`Agents`,"settings.view.home.cards.agents.description":`Prompts, tools, permissions`,"settings.view.home.cards.skillsCatalog.title":`Skills Catalog`,"settings.view.home.cards.skillsCatalog.description":`Install skills from catalogs`,"settings.view.home.cards.mcp.title":`MCP`,"settings.view.home.cards.mcp.description":`Configure MCP servers + connections`,"settings.view.home.cards.plugins.title":`Plugins`,"settings.view.home.cards.plugins.description":`Manage opencode plugins`,"settings.view.home.cards.usage.title":`Usage`,"settings.view.home.cards.usage.description":`Quota + spend visibility`,"settings.view.unavailable.title":`Not available`,"settings.view.unavailable.description":`This settings page is not available in this runtime.`,"settings.view.badge.beta":`beta`,"settings.view.actions.reloadOpenCode":`Reload OpenCode`,"settings.view.actions.reloadOpenCodeTooltip":`Restart OpenCode and reload its configuration.`,"settings.view.actions.backToSettings":`Back to Settings`,"settings.view.actions.closeSettings":`Close settings`,"settings.view.actions.openSectionList":`Open section list`,"settings.view.actions.closeSettingsWithShortcut":`Close Settings ({shortcut}+,)`,"settings.view.actions.back":`Back`,"settings.view.actions.resizeNavigation":`Resize settings navigation`,"settings.view.navigation.groups.connection":`Connection`,"settings.view.navigation.groups.personalization":`Personalization`,"settings.view.navigation.groups.workspace":`Workspace`,"settings.view.navigation.groups.opencode":`OpenCode`,"settings.view.navigation.groups.content":`Content & Automation`,"settings.view.navigation.groups.system":`System`,"settings.view.search.placeholder":`Search settings`,"settings.view.search.aria":`Search settings`,"settings.view.search.clear":`Clear settings search`,"settings.view.search.noResults":`No matching settings`,"settings.page.projects.title":`Projects`,"settings.page.remoteInstances.title":`Remote Instances`,"settings.page.providers.title":`Providers`,"settings.page.usage.title":`Usage`,"settings.page.agents.title":`Agents`,"settings.page.commands.title":`Commands`,"settings.page.mcp.title":`MCP`,"settings.page.plugins.title":`Plugins`,"settings.page.skills.title":`Skills`,"settings.page.skillsCatalog.title":`Skills Catalog`,"settings.page.git.title":`Git`,"settings.page.appearance.title":`Appearance`,"settings.page.chat.title":`Chat`,"settings.page.shortcuts.title":`Shortcuts`,"settings.page.sessions.title":`Sessions`,"settings.page.summaryAI.title":`Summary AI`,"settings.page.magicPrompts.title":`Magic Prompts`,"settings.page.notifications.title":`Notifications`,"settings.page.voice.title":`Voice`,"settings.page.about.title":`About`,"settings.page.snippets.title":`Snippets`,"settings.snippets.sidebar.title":`Snippets`,"settings.snippets.sidebar.total":`Total: {count}`,"settings.snippets.sidebar.actions.create":`Create snippet`,"settings.snippets.sidebar.actions.more":`More actions for {name}`,"settings.snippets.sidebar.toast.deleted":`Snippet deleted`,"settings.snippets.sidebar.toast.deleteFailed":`Failed to delete snippet`,"settings.snippets.sidebar.dialog.deleteTitle":`Delete snippet?`,"settings.snippets.sidebar.dialog.deleteDescription":`This will permanently delete #{name}.`,"settings.snippets.page.empty.title":`Select a snippet`,"settings.snippets.page.empty.description":`Choose a snippet from the sidebar to edit it.`,"settings.snippets.page.title.new":`New snippet`,"settings.snippets.page.field.namePlaceholder":`snippet-name`,"settings.snippets.page.field.descriptionPlaceholder":`What this snippet does`,"settings.snippets.page.field.aliases":`Aliases`,"settings.snippets.page.field.aliasesPlaceholder":`safe, careful`,"settings.snippets.page.field.content":`Content`,"settings.snippets.page.field.contentPlaceholder":`Snippet markdown...`,"settings.snippets.page.hint":`Use #name in prompts. Supports aliases and prepend/append blocks compatible with opencode-snippets.`,"settings.snippets.page.toast.nameRequired":`Snippet name is required`,"settings.snippets.page.toast.contentRequired":`Snippet content is required`,"settings.snippets.page.toast.saveFailed":`Failed to save snippet`,"settings.snippets.page.toast.saved":`Snippet saved`,"settings.page.promptTemplates.title":`Prompt Templates`,"settings.promptTemplates.sidebar.title":`Prompt Templates`,"settings.promptTemplates.sidebar.total":`Total: {count}`,"settings.promptTemplates.sidebar.empty.title":`No prompt templates`,"settings.promptTemplates.sidebar.empty.description":`Create a prompt template to get started.`,"settings.promptTemplates.sidebar.toast.deleted":`Template "{name}" deleted`,"settings.promptTemplates.sidebar.toast.deleteFailed":`Failed to delete template`,"settings.promptTemplates.sidebar.toast.nameRequired":`Template name is required`,"settings.promptTemplates.sidebar.toast.renamed":`Template renamed`,"settings.promptTemplates.sidebar.toast.renameFailed":`Failed to rename template`,"settings.promptTemplates.sidebar.dialog.deleteTitle":`Delete template?`,"settings.promptTemplates.sidebar.dialog.deleteDescription":`This will permanently delete "{name}". This action cannot be undone.`,"settings.promptTemplates.sidebar.renameDialog.title":`Rename template`,"settings.promptTemplates.sidebar.renameDialog.description":`Enter a new name for "{name}".`,"settings.promptTemplates.sidebar.renameDialog.placeholder":`Template name`,"settings.promptTemplates.sidebar.badge.default":`default`,"settings.promptTemplates.page.empty.title":`Select a template`,"settings.promptTemplates.page.empty.description":`Choose a template from the sidebar to edit it.`,"settings.promptTemplates.page.title.new":`New template`,"settings.promptTemplates.page.subtitle.edit":`Edit template`,"settings.promptTemplates.page.subtitle.new":`Create a new prompt template`,"settings.promptTemplates.page.section.identity":`Identity`,"settings.promptTemplates.page.field.name":`Name`,"settings.promptTemplates.page.field.namePlaceholder":`Template name`,"settings.promptTemplates.page.section.template":`Template`,"settings.promptTemplates.page.field.templatePlaceholder":`Enter the prompt template text...`,"settings.promptTemplates.page.templateHint":`This text will be prepended to the user's prompt when selected in a multi-run group.`,"settings.promptTemplates.page.toast.nameRequired":`Template name is required`,"settings.promptTemplates.page.toast.updated":`Template updated`,"settings.promptTemplates.page.toast.updateFailed":`Failed to update template`,"settings.promptTemplates.page.toast.created":`Template created`,"settings.promptTemplates.page.toast.createFailed":`Failed to create template`,"settings.promptTemplates.page.toast.saveUnexpectedError":`An unexpected error occurred while saving`,"settings.magicPrompts.sidebar.title":`Magic Prompts`,"settings.magicPrompts.sidebar.description":`Select a prompt template to edit.`,"settings.magicPrompts.sidebar.group.git":`Git`,"settings.magicPrompts.sidebar.group.github":`GitHub`,"settings.magicPrompts.sidebar.group.planning":`Planning`,"settings.magicPrompts.sidebar.group.session":`Session`,"settings.magicPrompts.sidebar.item.gitCommitGenerate":`Commit Generation`,"settings.magicPrompts.sidebar.item.gitPrGenerate":`PR Generation`,"settings.magicPrompts.sidebar.item.gitConflictResolve":`Merge/Rebase Conflict Resolution`,"settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve":`Cherry-pick Conflict Resolution`,"settings.magicPrompts.sidebar.item.githubPrReview":`PR Review`,"settings.magicPrompts.sidebar.item.githubIssueReview":`Issue Review`,"settings.magicPrompts.sidebar.item.githubPrFailedChecksReview":`PR Failed Checks Review`,"settings.magicPrompts.sidebar.item.githubPrCommentsReview":`PR Comments Review`,"settings.magicPrompts.sidebar.item.githubSinglePrCommentReview":`Single PR Comment Review`,"settings.magicPrompts.sidebar.item.planTodo":`Todo Planning`,"settings.magicPrompts.sidebar.item.planImprove":`Improve Plan`,"settings.magicPrompts.sidebar.item.planImplement":`Implement Plan`,"settings.magicPrompts.sidebar.item.sessionSummary":`Session Summary`,"settings.magicPrompts.sidebar.item.sessionWorkspaceReview":`Workspace Review`,"settings.magicPrompts.sidebar.item.sessionExplore":`Codebase Tour`,"settings.magicPrompts.sidebar.item.sessionFeaturePlan":`Feature Planning`,"settings.magicPrompts.sidebar.item.sessionCraftGoal":`Goal Crafting`,"settings.magicPrompts.page.group.sessionCraftGoal.title":`Goal Crafting`,"settings.magicPrompts.page.group.sessionCraftGoal.description":`Prompts used by the /craft-goal slash command: visible user message + hidden instructions. Turns an idea or task into a clear, evidence-verifiable Goal through guided discovery.`,"settings.magicPrompts.sidebar.item.sessionCatchUp":`Catch Up`,"settings.magicPrompts.sidebar.item.sessionDebug":`Debugging`,"settings.magicPrompts.sidebar.item.sessionWeigh":`Weigh Options`,"settings.magicPrompts.sidebar.item.sessionFusion":`Fusion`,"settings.remoteInstances.sidebar.title":`Remote Instances`,"settings.remoteInstances.sidebar.description":`Connect to other OpenChamber servers via an import link or SSH.`,"settings.remoteInstances.sidebar.empty":`No remote instances yet. Import a link or add an SSH connection.`,"settings.remoteInstances.channel.link":`Link`,"settings.remoteInstances.channel.ssh":`SSH`,"settings.remoteInstances.sidebar.total":`Total {count}`,"settings.remoteInstances.sidebar.newSshInstanceName":`New SSH connection`,"settings.remoteInstances.sidebar.actions.addSshInstance":`Add SSH connection`,"settings.remoteInstances.sidebar.actions.connect":`Connect`,"settings.remoteInstances.sidebar.actions.disconnect":`Disconnect`,"settings.remoteInstances.sidebar.actions.retry":`Retry`,"settings.remoteInstances.sidebar.actions.remove":`Remove`,"settings.remoteInstances.sidebar.confirm.localPortInUseRetry":`Local port is already in use. Pick a random free local port and retry?`,"settings.remoteInstances.sidebar.toast.createFailed":`Failed to create SSH connection`,"settings.remoteInstances.sidebar.toast.retriedWithRandomPort":`Retried with a random local port`,"settings.remoteInstances.sidebar.toast.connectFailed":`Failed to connect instance`,"settings.remoteInstances.sidebar.toast.disconnectFailed":`Failed to disconnect instance`,"settings.remoteInstances.sidebar.toast.retryFailed":`Failed to retry connection`,"settings.remoteInstances.sidebar.toast.removeFailed":`Failed to remove instance`,"settings.remoteInstances.direct.sidebarTitle":`Server links`,"settings.remoteInstances.direct.sidebarDescription":`Connect with a pairing link`,"settings.remoteInstances.direct.title":`Other OpenChamber servers`,"settings.remoteInstances.direct.description":`Servers this app can switch to. Import a pairing link from another OpenChamber server.`,"settings.remoteInstances.direct.import.description":`Paste a connection link from another OpenChamber server.`,"settings.remoteInstances.direct.import.placeholder":`openchamber://connect?...`,"settings.remoteInstances.direct.import.action":`Import Link`,"settings.remoteInstances.direct.error.invalidConnectLink":`Invalid OpenChamber connection link.`,"settings.remoteInstances.direct.state.loading":`Loading instances...`,"settings.remoteInstances.direct.state.empty":`No imported servers yet.`,"settings.remoteInstances.clientAuth.title":`Connect to this server`,"settings.remoteInstances.clientAuth.description":`Create a secure link or token so OpenChamber Desktop can connect to this server.`,"settings.remoteInstances.clientAuth.field.labelPlaceholder":`Instance name — e.g. Home Mac`,"settings.remoteInstances.clientAuth.field.labelHint":`The other device will show this name for this server.`,"settings.remoteInstances.clientAuth.actions.create":`Create Token`,"settings.remoteInstances.clientAuth.actions.pair":`Create Link`,"settings.remoteInstances.clientAuth.actions.revoke":`Revoke`,"settings.remoteInstances.clientAuth.actions.clearRevoked":`Clear revoked`,"settings.remoteInstances.clientAuth.qrAlt":`OpenChamber connection QR code`,"settings.remoteInstances.clientAuth.qrEnlarge":`Enlarge QR code`,"settings.remoteInstances.clientAuth.qrScanHint":`Scan this with the OpenChamber app on your other device. It is single-use and expires.`,"settings.remoteInstances.clientAuth.qrDialogTitle":`Scan to connect`,"settings.remoteInstances.clientAuth.actions.addDevice":`Add a device`,"settings.remoteInstances.clientAuth.actions.copied":`Copied`,"settings.remoteInstances.clientAuth.addDevice.transportLabel":`Where will you use this device?`,"settings.remoteInstances.clientAuth.addDevice.subtitle":`Create a one-time QR code that connects another device to this server.`,"settings.remoteInstances.clientAuth.addDevice.transport.local":`This computer only`,"settings.remoteInstances.clientAuth.addDevice.transport.localHint":`For apps running on this same machine.`,"settings.remoteInstances.clientAuth.addDevice.transport.lan":`Home network only`,"settings.remoteInstances.clientAuth.addDevice.transport.lanHint":`Connects directly over your Wi-Fi. Does not work away from this network.`,"settings.remoteInstances.clientAuth.addDevice.transport.relay":`Anywhere`,"settings.remoteInstances.clientAuth.addDevice.transport.relayHint":`Works at home and away. Away traffic goes through OpenChamber Private Relay — an end-to-end encrypted tunnel. No setup needed.`,"settings.remoteInstances.clientAuth.addDevice.fallback.relay":`Also allow the encrypted relay when away from home`,"settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal":`Prefer the direct home connection when available`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLabel":`Relay server`,"settings.remoteInstances.clientAuth.addDevice.relayUrlHint":`Use the official OpenChamber Relay, or enter your own ws:// or wss:// endpoint. This device will save the endpoint from the QR code.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlDeployLink":`Deploy your own Relay.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLockedHint":`This server pins the Relay endpoint with OPENCHAMBER_RELAY_URL.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlInvalid":`Enter a valid Relay endpoint that starts with ws:// or wss://.`,"settings.remoteInstances.clientAuth.addDevice.create":`Create QR code`,"settings.remoteInstances.clientAuth.addDevice.targetLabel":`Target instance`,"settings.remoteInstances.clientAuth.addDevice.target.local":`This desktop`,"settings.remoteInstances.clientAuth.addDevice.target.sshEmpty":`No connected SSH instances`,"settings.remoteInstances.clientAuth.addDevice.target.sshNotReady":`Connect the SSH instance first`,"settings.remoteInstances.sidebar.actions.mobileConnect":`Phone connect`,"settings.remoteInstances.sidebar.actions.mobileConnectAria":`Create a phone pairing QR for {instance}`,"settings.remoteInstances.sidebar.actions.mobileConnectDisabled":`Connect this SSH instance before pairing a phone`,"settings.remoteInstances.sidebar.actions.syncConfig":`Sync config`,"settings.remoteInstances.sidebar.actions.syncConfigDisabled":`Connect this instance to sync its config`,"settings.remoteInstances.clientAuth.addDevice.done":`Done`,"settings.remoteInstances.clientAuth.addDevice.connectedToast":`Device connected.`,"settings.remoteInstances.clientAuth.pairingUrl":`Connection link`,"settings.remoteInstances.clientAuth.createdToken":`Copy this token now. For security, it will not be shown again.`,"settings.remoteInstances.clientAuth.state.loading":`Loading tokens...`,"settings.remoteInstances.clientAuth.state.empty":`No devices connected yet.`,"settings.remoteInstances.clientAuth.state.revoked":`Revoked`,"settings.remoteInstances.clientAuth.state.thisDevice":`This device`,"settings.remoteInstances.clientAuth.state.pending":`Waiting to connect…`,"settings.remoteInstances.clientAuth.state.viaRelay":`Relay`,"settings.remoteInstances.clientAuth.state.connectedDirect":`Connected · Local network`,"settings.remoteInstances.clientAuth.state.connectedRelay":`Connected · Relay`,"settings.remoteInstances.clientAuth.lastUsed":`Last used {date}`,"settings.remoteInstances.clientAuth.neverUsed":`Never used`,"settings.remoteInstances.relay.title":`OpenChamber Relay`,"settings.remoteInstances.relay.autoHint":`Turns on automatically when you pair a device over the relay.`,"settings.remoteInstances.relay.description":`Let your other devices connect from anywhere without opening ports. Traffic is end-to-end encrypted — the relay cannot read it.`,"settings.remoteInstances.relay.enableHint":`Nothing is shared until you enable the relay on this server.`,"settings.remoteInstances.relay.actions.enable":`Enable Relay`,"settings.remoteInstances.relay.actions.disable":`Disable`,"settings.remoteInstances.relay.confirm.disable":`Disable the relay? Devices connected through it will be disconnected immediately.`,"settings.remoteInstances.relay.state.loading":`Checking relay status...`,"settings.remoteInstances.relay.state.disabled":`Disabled`,"settings.remoteInstances.relay.state.connecting":`Connecting`,"settings.remoteInstances.relay.state.connected":`Connected`,"settings.remoteInstances.relay.state.reconnecting":`Reconnecting`,"settings.remoteInstances.relay.state.error":`Error`,"settings.remoteInstances.relay.status.clientsOne":`{count} device connected`,"settings.remoteInstances.relay.status.clientsMany":`{count} devices connected`,"settings.remoteInstances.relay.pair.title":`Pair a device`,"settings.remoteInstances.relay.pair.labelPlaceholder":`Device name (optional)`,"settings.remoteInstances.relay.pair.includeToken":`Include access token (one-scan pairing)`,"settings.remoteInstances.relay.pair.noTokenHint":`Without a token, the device signs in with this server’s UI password after connecting.`,"settings.remoteInstances.relay.pair.generate":`Create pairing link`,"settings.remoteInstances.relay.pair.requiresConnected":`Pairing becomes available once the relay is connected.`,"settings.remoteInstances.relay.pair.linkLabel":`Pairing link`,"settings.remoteInstances.relay.pair.warning":`This link grants access to this server. Do not share it.`,"settings.remoteInstances.relay.pair.qrAlt":`Relay pairing QR code`,"settings.remoteInstances.relay.pair.showQr":`Show QR code`,"settings.remoteInstances.relay.pair.qrDialogTitle":`Scan to pair`,"settings.remoteInstances.relay.pair.qrDialogDescription":`Scan this QR code with the OpenChamber app on your other device.`,"settings.remoteInstances.relay.pair.manageHint":`Manage or revoke paired devices in the “Connect to this server” list above.`,"settings.remoteInstances.relay.toast.enableFailed":`Failed to enable relay`,"settings.remoteInstances.relay.toast.disableFailed":`Failed to disable relay`,"settings.remoteInstances.relay.toast.offerFailed":`Failed to create pairing link`,"settings.remoteInstances.relay.toast.linkCopied":`Pairing link copied`,"settings.remoteInstances.sidebar.phase.ready":`Ready`,"settings.remoteInstances.sidebar.phase.error":`Error`,"settings.remoteInstances.sidebar.phase.reconnect":`Reconnect`,"settings.remoteInstances.sidebar.phase.installing":`Installing`,"settings.remoteInstances.sidebar.phase.updating":`Updating`,"settings.remoteInstances.sidebar.phase.forwarding":`Forwarding`,"settings.remoteInstances.sidebar.phase.starting":`Starting`,"settings.remoteInstances.sidebar.phase.connecting":`Connecting`,"settings.remoteInstances.sidebar.phase.idle":`Idle`,"settings.remoteInstances.page.section.instance":`Instance`,"settings.remoteInstances.page.section.instanceDescription":`Choose the SSH command and a display name for this connection.`,"settings.remoteInstances.page.field.mode":`Mode`,"settings.remoteInstances.page.field.modeHint":`Choose whether OpenChamber should start the server for you, or connect to one that is already running.`,"settings.remoteInstances.page.field.modePlaceholder":`Select mode`,"settings.remoteInstances.page.field.modeManaged":`Start it for me`,"settings.remoteInstances.page.field.modeExternal":`Already running`,"settings.remoteInstances.page.field.preferredRemotePort":`Preferred remote port`,"settings.remoteInstances.page.field.preferredRemotePortHint":`Port to use on the remote machine. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.keepServerRunning":`Keep server running`,"settings.remoteInstances.page.field.keepServerRunningHint":`Keep OpenChamber running on the remote machine after you disconnect.`,"settings.remoteInstances.page.field.bindHost":`Bind host`,"settings.remoteInstances.page.field.bindHostHint":`Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.`,"settings.remoteInstances.page.field.preferredLocalPort":`Preferred local port`,"settings.remoteInstances.page.field.preferredLocalPortHint":`Local port to open for this connection. Leave empty to choose one automatically.`,"settings.remoteInstances.page.field.forwardType":`Forward type`,"settings.remoteInstances.page.field.localListen":`Local listen`,"settings.remoteInstances.page.field.localTarget":`Local target`,"settings.remoteInstances.page.field.remoteListen":`Remote listen`,"settings.remoteInstances.page.field.remoteTarget":`Remote target`,"settings.remoteInstances.page.field.localHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.remoteHostPlaceholder":`127.0.0.1`,"settings.remoteInstances.page.field.auto":`Auto`,"settings.remoteInstances.page.confirm.bindAllInterfaces":`Binding to 0.0.0.0 exposes forwarded ports to your local network. Continue?`,"settings.remoteInstances.page.preview.localSocks5":`(local SOCKS5)`,"settings.remoteInstances.page.preview.local":`(local)`,"settings.remoteInstances.page.preview.remote":`(remote)`,"settings.remoteInstances.page.toast.openLocalEndpointFailed":`Failed to open local address`,"settings.remoteInstances.page.toast.localUrlCopied":`Local URL copied`,"settings.remoteInstances.page.actions.copyLocalUrl":`Copy local URL`,"settings.remoteInstances.page.actions.open":`Open`,"settings.remoteInstances.page.logsDialog.selectedInstanceFallback":`Selected instance`,"settings.remoteInstances.page.patternDialog.descriptionWithHost":`{host} requires a concrete destination.`,"settings.remoteInstances.page.patternDialog.description":`Enter destination.`,"settings.common.actions.cancel":`Cancel`,"settings.common.actions.create":`Create`,"settings.common.actions.delete":`Delete`,"settings.common.actions.reset":`Reset`,"settings.common.actions.rename":`Rename`,"settings.common.actions.duplicate":`Duplicate`,"settings.common.actions.import":`Import`,"settings.common.actions.copyAll":`Copy all`,"settings.common.actions.clear":`Clear`,"settings.common.actions.saving":`Saving...`,"settings.common.actions.saveChanges":`Save Changes`,"settings.common.scope.global":`Global`,"settings.common.scope.project":`Project`,"settings.common.field.description":`Description`,"settings.common.badge.new":`New`,"settings.common.badge.modified":`Modified`,"settings.common.permission.allow":`Allow`,"settings.common.permission.ask":`Ask`,"settings.common.permission.deny":`Deny`,"settings.common.state.comingSoon":`Coming soon...`,"settings.projects.actions.title":`Actions`,"settings.projects.actions.description":`Per-project commands shown in header next to project name.`,"settings.projects.actions.validation.fillNameAndCommand":`Fill action name and command before saving.`,"settings.projects.actions.state.loading":`Loading...`,"settings.projects.actions.state.empty":`No actions configured yet.`,"settings.projects.actions.state.untitled":`Untitled action`,"settings.projects.actions.state.noDesktopSshForwards":`No enabled local SSH forwards available.`,"settings.projects.actions.field.selectIconAria":`Select icon`,"settings.projects.actions.field.iconAria":`Icon {icon}`,"settings.projects.actions.field.actionNamePlaceholder":`Action name`,"settings.projects.actions.field.command":`Command`,"settings.projects.actions.field.commandPlaceholder":`e.g. bun run lint`,"settings.projects.actions.field.autoOpenUrl":`Auto-open URL`,"settings.projects.actions.field.autoOpenUrlForAria":`Auto-open URL for {title}`,"settings.projects.actions.field.autoOpenUrlDescription":`Open URL from output or custom URL below`,"settings.projects.actions.field.overrideUrlPlaceholder":`Override URL (optional)`,"settings.projects.actions.field.overrideUrlTooltip":`If this field is filled, custom URL is used. If empty, app opens best URL from output.`,"settings.projects.actions.field.desktopSshForward":`Desktop SSH forward`,"settings.projects.actions.field.useOutputManualUrl":`Use output/manual URL`,"settings.projects.actions.actions.add":`Add action`,"settings.projects.actions.actions.save":`Save Actions`,"settings.projects.actions.toast.saveFailed":`Failed to save actions`,"settings.projects.actions.toast.saved":`Project actions saved`,"settings.openchamber.about.title":`About OpenChamber`,"settings.openchamber.about.field.version":`Version`,"settings.openchamber.about.field.clientVersion":`Client`,"settings.openchamber.about.field.webBundle":`Web bundle`,"settings.openchamber.about.field.instanceOpenChamberVersion":`OpenChamber`,"settings.openchamber.about.field.instanceOpenCodeVersion":`OpenCode`,"settings.openchamber.about.field.openCodeVersion":`OpenCode version`,"settings.openchamber.about.state.checking":`Checking...`,"settings.openchamber.about.state.upToDate":`Up to date`,"settings.openchamber.about.state.unknown":`unknown`,"settings.openchamber.about.state.builtin":`builtin`,"settings.openchamber.about.actions.checkUpdates":`Check updates`,"settings.openchamber.about.actions.update":`Update`,"settings.openchamber.about.actions.updateToVersion":`Update to {version}`,"settings.openchamber.about.actions.applyOtaToVersion":`Update now to {version}`,"settings.openchamber.about.actions.installNativeToVersion":`Install {version}`,"settings.openchamber.about.actions.checkForUpdates":`Check for updates`,"settings.openchamber.about.toast.latestVersion":`You are on the latest version`,"settings.openchamber.about.toast.checkFailed":`Could not check for updates`,"settings.openchamber.about.diagnostics.label":`Diagnostics log`,"settings.openchamber.about.diagnostics.description":`Export local diagnostic feats for display and sync issues. No message bodies or tokens are included.`,"settings.openchamber.about.diagnostics.export":`Export log`,"settings.openchamber.about.diagnostics.exporting":`Exporting…`,"settings.openchamber.about.diagnostics.enable":`Record diagnostic feats`,"settings.openchamber.about.diagnostics.enableHint":`Available in beta builds. Records transcript sync and display lifecycle facts on this device.`,"settings.openchamber.about.diagnostics.toast.exported":`Diagnostics log exported`,"settings.openchamber.about.diagnostics.toast.failed":`Could not export diagnostics log`,"settings.openchamber.about.diagnostics.toast.empty":`Diagnostics log exported. No events were recorded yet.`,"settings.agents.sidebar.title":`Agents`,"settings.agents.sidebar.total":`Total {count}`,"settings.agents.sidebar.empty.title":`No agents configured`,"settings.agents.sidebar.empty.description":`Use the + button above to create one`,"settings.agents.sidebar.section.builtIn":`Built-in Agents`,"settings.agents.sidebar.section.custom":`Custom Agents`,"settings.agents.sidebar.badge.system":`system`,"settings.agents.sidebar.dialog.deleteTitle":`Delete Agent`,"settings.agents.sidebar.dialog.resetTitle":`Reset Agent`,"settings.agents.sidebar.dialog.deleteDescription":`Are you sure you want to delete agent "{name}"?`,"settings.agents.sidebar.dialog.resetDescription":`Are you sure you want to reset agent "{name}" to its default configuration?`,"settings.agents.sidebar.renameDialog.title":`Rename Agent`,"settings.agents.sidebar.renameDialog.description":`Enter a new name for the agent "@{name}"`,"settings.agents.sidebar.renameDialog.placeholder":`New agent name...`,"settings.agents.sidebar.toast.builtInCannotDelete":`Built-in agents cannot be deleted`,"settings.agents.sidebar.toast.agentDeleted":`Agent "{name}" deleted successfully`,"settings.agents.sidebar.toast.agentReset":`Agent "{name}" reset to default`,"settings.agents.sidebar.toast.deleteFailed":`Failed to delete agent`,"settings.agents.sidebar.toast.definitionNotFound":`Agent definition not found. Nothing was changed.`,"settings.agents.sidebar.toast.resetFailed":`Failed to reset agent`,"settings.agents.sidebar.toast.agentNameRequired":`Agent name is required`,"settings.agents.sidebar.toast.agentExists":`An agent with this name already exists`,"settings.agents.sidebar.toast.removeOldAfterRenameFailed":`Failed to remove old agent after rename`,"settings.agents.sidebar.toast.renameFailed":`Failed to rename agent`,"settings.agents.sidebar.toast.agentRenamed":`Agent renamed to "{name}"`,"settings.agents.page.toast.permissionNameRequired":`Permission name is required`,"settings.agents.page.toast.created":`Agent created successfully`,"settings.agents.page.toast.updated":`Agent updated successfully`,"settings.agents.page.toast.createFailed":`Failed to create agent`,"settings.agents.page.toast.updateFailed":`Failed to update agent`,"settings.agents.page.toast.saveUnexpectedError":`An error occurred while saving`,"settings.agents.page.toast.savedManualRestart":`Saved to disk. Restart your connected OpenCode server to apply the changes.`,"settings.agents.page.empty.title":`Select an agent from the sidebar`,"settings.agents.page.empty.description":`Or create a new one`,"settings.agents.page.title.new":`New Agent`,"settings.agents.page.subtitle.new":`Configure a new assistant persona`,"settings.agents.page.subtitle.edit":`Edit agent settings`,"settings.agents.page.section.identityRole":`Identity & Role`,"settings.agents.page.section.modelParameters":`Model & Parameters`,"settings.agents.page.section.systemPrompt":`System Prompt`,"settings.agents.page.section.toolPermissions":`Tool Permissions`,"settings.agents.page.field.agentName":`Agent Name`,"settings.agents.page.field.agentNamePlaceholder":`agent-name`,"settings.agents.page.field.scopePlaceholder":`Scope`,"settings.agents.page.field.descriptionPlaceholder":`What does this agent do?`,"settings.agents.page.field.mode":`Mode`,"settings.agents.page.field.modeTooltip":`Primary vs Subagent visibility`,"settings.agents.page.field.overrideModel":`Override Model`,"settings.agents.page.field.temperature":`Temperature`,"settings.agents.page.field.temperatureTooltip":`Controls randomness. Higher = creative, Lower = focused.`,"settings.agents.page.field.temperatureRange":`0.0 to 2.0`,"settings.agents.page.field.clearTemperatureAria":`Clear temperature override`,"settings.agents.page.field.topP":`Top P`,"settings.agents.page.field.topPTooltip":`Nucleus sampling diversity. Lower = likely tokens only.`,"settings.agents.page.field.topPRange":`0.0 to 1.0`,"settings.agents.page.field.clearTopPAria":`Clear top p override`,"settings.agents.page.field.variant":`Thinking Variant`,"settings.agents.page.field.variantTooltip":`Controls the thinking/reasoning depth for this agent. Maps to provider-specific parameters (e.g. Anthropic variant, OpenAI reasoning effort).`,"settings.agents.page.field.variantHint":`e.g. high, max, low`,"settings.agents.page.field.variantPlaceholder":`default`,"settings.agents.page.field.systemPromptPlaceholder":`You are an expert coding assistant...`,"settings.agents.page.mode.primary":`Primary`,"settings.agents.page.mode.subagent":`Subagent`,"settings.agents.page.mode.all":`All`,"settings.agents.page.permissions.defaultLabel":`Default`,"settings.agents.page.permissions.hideEditor":`Hide Editor`,"settings.agents.page.permissions.advancedEditor":`Advanced Editor`,"settings.agents.page.permissions.globalSummary":`Global: {summary}`,"settings.agents.page.permissions.rulesSummary":`Rules: {summary}`,"settings.agents.page.permissions.globalDefault":`Global Default`,"settings.agents.page.permissions.pattern":`Pattern`,"settings.agents.page.permissions.addCustomRule":`Add Custom Rule`,"settings.agents.page.permissions.permissionPlaceholder":`Permission...`,"settings.agents.page.permissions.patternPlaceholder":`Pattern (e.g. *)`,"settings.page.behavior.title":`Behavior`,"settings.behavior.page.title":`Behavior`,"settings.behavior.page.warning.title":`Global rules are combined with project rules`,"settings.behavior.page.warning.description":`Changes made here update {path}. OpenCode also includes any project-level AGENTS.md rules when they exist.`,"settings.behavior.page.section.systemPrompt":`Global AGENTS.md`,"settings.behavior.page.field.systemPromptPlaceholder":`You are a helpful AI assistant...
2
2
 
3
3
  Use this space to define absolute rules for how the AI should behave across all sessions and providers.`,"settings.behavior.page.section.responseStyle":`Response style`,"settings.behavior.page.responseStyle.tooltip":`When enabled, these instructions guide how the assistant responds in each new conversation. They are sent with your first message and do not change your global AGENTS.md rules.`,"settings.behavior.page.responseStyle.enableAria":`Enable response style instructions`,"settings.behavior.page.responseStyle.enable":`Add response style instructions to new conversations`,"settings.behavior.page.responseStyle.preset":`Preset`,"settings.behavior.page.responseStyle.option.concise":`Concise`,"settings.behavior.page.responseStyle.option.detailed":`Detailed`,"settings.behavior.page.responseStyle.option.mentor":`Mentor`,"settings.behavior.page.responseStyle.option.pushback":`Pushback`,"settings.behavior.page.responseStyle.option.noFiller":`No filler`,"settings.behavior.page.responseStyle.option.matchEnergy":`Match my energy`,"settings.behavior.page.responseStyle.option.warmPeer":`Warm peer`,"settings.behavior.page.responseStyle.option.custom":`Custom`,"settings.behavior.page.responseStyle.customPlaceholder":`Write the instruction to add to the first message...`,"settings.behavior.page.toast.saved":`Behavior saved successfully`,"settings.behavior.page.toast.saveFailed":`Failed to save behavior`,"settings.commands.sidebar.title":`Commands`,"settings.commands.sidebar.total":`Total {count}`,"settings.commands.sidebar.empty.title":`No commands configured`,"settings.commands.sidebar.empty.description":`Use the + button above to create one`,"settings.commands.sidebar.section.builtIn":`Built-in Commands`,"settings.commands.sidebar.section.custom":`Custom Commands`,"settings.commands.sidebar.dialog.deleteTitle":`Delete Command`,"settings.commands.sidebar.dialog.resetTitle":`Reset Command`,"settings.commands.sidebar.dialog.deleteDescription":`Are you sure you want to delete command "{name}"?`,"settings.commands.sidebar.dialog.resetDescription":`Are you sure you want to reset command "{name}" to its default configuration?`,"settings.commands.sidebar.renameDialog.title":`Rename Command`,"settings.commands.sidebar.renameDialog.description":`Enter a new name for the command "/{name}"`,"settings.commands.sidebar.renameDialog.placeholder":`New command name...`,"settings.commands.sidebar.toast.builtInCannotDelete":`Built-in commands cannot be deleted`,"settings.commands.sidebar.toast.commandDeleted":`Command "{name}" deleted successfully`,"settings.commands.sidebar.toast.commandReset":`Command "{name}" reset to default`,"settings.commands.sidebar.toast.deleteFailed":`Failed to delete command`,"settings.commands.sidebar.toast.resetFailed":`Failed to reset command`,"settings.commands.sidebar.toast.commandNameRequired":`Command name is required`,"settings.commands.sidebar.toast.commandExists":`A command with this name already exists`,"settings.commands.sidebar.toast.removeOldAfterRenameFailed":`Failed to remove old command after rename`,"settings.commands.sidebar.toast.renameFailed":`Failed to rename command`,"settings.commands.page.toast.templateRequired":`Command template is required`,"settings.commands.page.toast.created":`Command created successfully`,"settings.commands.page.toast.updated":`Command updated successfully`,"settings.commands.page.toast.createFailed":`Failed to create command`,"settings.commands.page.toast.updateFailed":`Failed to update command`,"settings.commands.page.toast.saveUnexpectedError":`An error occurred while saving`,"settings.commands.page.empty.title":`Select a command from the sidebar`,"settings.commands.page.empty.description":`Or create a new one`,"settings.commands.page.title.new":`New Command`,"settings.commands.page.subtitle.new":`Configure a new slash command`,"settings.commands.page.subtitle.edit":`Edit command settings`,"settings.commands.page.section.identity":`Identity`,"settings.commands.page.section.executionContext":`Execution Context`,"settings.commands.page.section.template":`Command Template`,"settings.commands.page.field.commandName":`Command Name`,"settings.commands.page.field.commandNamePlaceholder":`command-name`,"settings.commands.page.field.descriptionPlaceholder":`What does this command do?`,"settings.commands.page.field.overrideAgent":`Override Agent`,"settings.commands.page.field.templatePlaceholder":`Your command template here...
4
4
 
@@ -11,5 +11,5 @@ Use @filename to include file contents.`,"settings.commands.page.templateHint.us
11
11
  {log}`,"contextPanel.preview.console.open":`Open preview console`,"contextPanel.preview.console.waiting":`Waiting for preview console`,"contextPanel.preview.console.title":`Preview console`,"contextPanel.preview.console.attach":`Attach`,"contextPanel.preview.console.copy":`Copy`,"contextPanel.preview.console.clear":`Clear`,"contextPanel.preview.console.empty":`No preview console events yet.`,"contextPanel.preview.console.noFilteredEvents":`No events match this filter.`,"contextPanel.preview.console.runtimeError":`Runtime error`,"contextPanel.preview.console.copied":`Preview console copied`,"contextPanel.preview.console.copyFailed":`Failed to copy preview console`,"contextPanel.preview.console.attached":`Preview console attached to chat`,"contextPanel.preview.console.attachNoSession":`Open a chat session before attaching preview logs`,"contextPanel.preview.console.attachAnnotation":`These are browser console logs from the dev server running for this project.`,"contextPanel.preview.inspect.toggle":`Inspect preview element`,"contextPanel.preview.inspect.attached":`Preview annotation attached to chat`,"contextPanel.preview.inspect.attachNoSession":`Open a chat session before attaching preview annotations`,"contextPanel.preview.inspect.attachAnnotation":`This is a selected DOM element from the in-app preview.`,"contextPanel.preview.inspect.attachAnnotationWithScreenshot":`This is a selected DOM element from the in-app preview. A screenshot of the visible preview area with the selected element highlighted is attached.`,"contextPanel.preview.console.filter.all":`All`,"contextPanel.preview.console.filter.errors":`Errors`,"contextPanel.preview.console.filter.warnings":`Warnings`,"contextPanel.preview.console.filter.logs":`Logs`,"terminalView.preview.open":`Preview`,"terminalView.preview.openTitle":`Open preview pane`,"sidebarFilesTree.menu.rename":`Rename`,"sidebarFilesTree.menu.copyPath":`Copy Path`,"sidebarFilesTree.menu.save":`Save`,"sidebarFilesTree.menu.newFile":`New File`,"sidebarFilesTree.menu.newFolder":`New Folder`,"sidebarFilesTree.menu.delete":`Delete`,"sidebarFilesTree.toast.pathCopied":`Path copied`,"sidebarFilesTree.toast.copyFailed":`Copy failed`,"sidebarFilesTree.toast.revealFailed":`Failed to reveal path`,"sidebarFilesTree.toast.filenameRequired":`Filename is required`,"sidebarFilesTree.toast.writeNotSupported":`Write not supported`,"sidebarFilesTree.toast.fileCreated":`File created`,"sidebarFilesTree.toast.operationFailed":`Operation failed`,"sidebarFilesTree.toast.folderNameRequired":`Folder name is required`,"sidebarFilesTree.toast.folderCreated":`Folder created`,"sidebarFilesTree.toast.nameRequired":`Name is required`,"sidebarFilesTree.toast.renameNotSupported":`Rename not supported`,"sidebarFilesTree.toast.renamedSuccessfully":`Renamed successfully`,"sidebarFilesTree.toast.deleteNotSupported":`Delete not supported`,"sidebarFilesTree.toast.deletedSuccessfully":`Deleted successfully`,"sidebarFilesTree.search.placeholder":`Search files...`,"sidebarFilesTree.search.clearAria":`Clear search`,"sidebarFilesTree.actions.newFileTitle":`New File`,"sidebarFilesTree.actions.newFolderTitle":`New Folder`,"sidebarFilesTree.actions.refreshTitle":`Refresh`,"sidebarFilesTree.actions.collapseAllTitle":`Collapse all`,"sidebarFilesTree.actions.expandAllTitle":`Expand all`,"sidebarFilesTree.actions.fileMenuTitle":`File menu`,"sidebarFilesTree.state.searching":`Searching...`,"sidebarFilesTree.state.loading":`Loading...`,"sidebarFilesTree.dialog.createFile.title":`Create File`,"sidebarFilesTree.dialog.createFolder.title":`Create Folder`,"sidebarFilesTree.dialog.rename.title":`Rename`,"sidebarFilesTree.dialog.delete.title":`Delete`,"sidebarFilesTree.dialog.createFile.description":`Create a new file in {path}`,"sidebarFilesTree.dialog.createFolder.description":`Create a new folder in {path}`,"sidebarFilesTree.dialog.rename.description":`Rename {name}`,"sidebarFilesTree.dialog.delete.description":`Are you sure you want to delete {name}? This action cannot be undone.`,"sidebarFilesTree.dialog.rootFallback":`root`,"sidebarFilesTree.dialog.rename.placeholder":`New name`,"sidebarFilesTree.dialog.namePlaceholder":`Name`,"sidebarFilesTree.dialog.cancel":`Cancel`,"sidebarFilesTree.dialog.confirm":`Confirm`,"sidebarFilesTree.dialog.delete.confirm":`Delete`,"filesView.dialog.createFile.title":`Create File`,"filesView.dialog.createFolder.title":`Create Folder`,"filesView.dialog.rename.title":`Rename`,"filesView.dialog.delete.title":`Delete`,"filesView.dialog.createFile.description":`Create a new file in {path}`,"filesView.dialog.createFolder.description":`Create a new folder in {path}`,"filesView.dialog.rename.description":`Rename {name}`,"filesView.dialog.delete.description":`Are you sure you want to delete {name}? This action cannot be undone.`,"filesView.dialog.rootFallback":`root`,"filesView.dialog.rename.placeholder":`New name`,"filesView.dialog.namePlaceholder":`Name`,"filesView.dialog.cancel":`Cancel`,"filesView.dialog.confirm":`Confirm`,"filesView.dialog.delete.confirm":`Delete`,"filesView.editor.saving":`Saving...`,"filesView.editor.saved":`Saved`,"filesView.editor.autoSaveOn":`Auto-save on`,"filesView.editor.manualSave":`Manual save`,"filesView.editor.saveNowTitle":`Save now ({shortcut}) - auto-saves after 1.5s`,"filesView.editor.saveNowManualTitle":`Save now ({shortcut})`,"filesView.editor.saveAria":`Save ({shortcut})`,"filesView.editor.openInDesktopApp":`Open in desktop app`,"filesView.editor.refreshApps":`Refresh Apps`,"filesView.editor.disableLineWrap":`Disable line wrap`,"filesView.editor.enableLineWrap":`Enable line wrap`,"filesView.editor.findInFile":`Find in file`,"filesView.editor.goToLine":`Go to line`,"filesView.editor.switchToEditMode":`Switch to edit mode`,"filesView.editor.switchToPreviewMode":`Switch to preview mode`,"filesView.editor.switchToTextView":`Switch to Text View`,"filesView.editor.switchToTreeView":`Switch to Tree View`,"filesView.toast.copyFailed":`Copy failed`,"filesView.toast.openInAppFailed":`Failed to open in {app}`,"filesView.toast.savingNotSupported":`Saving not supported`,"filesView.toast.writeFileFailed":`Failed to write file`,"filesView.toast.saveFailed":`Save failed`,"filesView.editor.copyFileContents":`Copy file contents`,"filesView.editor.copyFilePathTitle":`Copy file path ({path})`,"filesView.editor.saveFile":`Save file`,"filesView.editor.exitFullscreen":`Exit fullscreen`,"filesView.editor.fullscreen":`Fullscreen`,"filesView.unsaved.title":`Unsaved changes`,"filesView.unsaved.description":`Save your edits before continuing?`,"filesView.unsaved.saveChanges":`Save changes`,"filesView.unsaved.discard":`Discard`,"filesView.editor.back":`Back`,"filesView.editor.openFilesAria":`Open files`,"filesView.editor.closeFileAria":`Close {name}`,"filesView.editor.selectFile":`Select a file`,"filesView.editor.showControlsAria":`Show editor controls`,"filesView.editor.controlsTitle":`Editor controls`,"filesView.editor.pickFileFromTree":`Pick a file from the tree.`,"filesView.state.loading":`Loading...`,"filesView.state.openingFileAtChange":`Opening file at change...`,"filesView.tree.search.placeholder":`Search files...`,"filesView.tree.search.clearAria":`Clear search`,"filesView.tree.search.searching":`Searching...`,"filesView.tree.actions.newFileTitle":`New File`,"filesView.tree.actions.newFolderTitle":`New Folder`,"filesView.tree.actions.refreshTitle":`Refresh`,"filesView.editor.imageAltFallback":`Image`,"filesView.error.jsonViewerUnavailable":`JSON viewer unavailable`,"filesView.error.switchToTextMode":`Switch to text mode to view raw content.`,"filesView.warning.largeFilePreviewLimited":`This file is large ({sizeKb}KB). Preview may be limited.`,"filesView.error.previewUnavailable":`Preview unavailable`,"filesView.error.switchToEditMode":`Switch to edit mode to fix the issue.`,"filesView.error.readFileFailed":`Failed to read file`,"filesView.editor.htmlPreviewTitle":`HTML Preview`,"filesView.diagram.closeDiagramView":`Close diagram view`,"filesView.diagram.saveDiagram":`Save diagram`,"contextUsage.aria.label":`Context usage`,"contextUsage.mobile.title":`Context Usage`,"contextUsage.mobile.usedTokens":`Used tokens`,"contextUsage.mobile.contextLimit":`Context limit`,"contextUsage.mobile.outputLimit":`Output limit`,"contextUsage.mobile.usage":`Usage`,"contextUsage.tooltip.usage":`Usage: {percent}`,"contextUsage.tooltip.usedOfLimit":`{used} / {limit}`,"contextUsage.tooltip.usedTokens":`Used tokens: {tokens}`,"contextUsage.tooltip.contextLimit":`Context limit: {tokens}`,"contextUsage.tooltip.outputLimit":`Output limit: {tokens}`,"contextSidebar.session.untitled":`Untitled Session`,"contextSidebar.empty.openSession":`Open a session to inspect context.`,"contextSidebar.section.context":`Context`,"contextSidebar.section.lastAssistantMessage":`Last Assistant Message`,"contextSidebar.section.rawMessages":`Raw Messages`,"contextSidebar.context.percentUsed":`{percent}% used`,"contextSidebar.breakdown.user":`User`,"contextSidebar.breakdown.assistant":`Assistant`,"contextSidebar.breakdown.toolCalls":`Tool Calls`,"contextSidebar.breakdown.other":`Other`,"contextSidebar.stats.messages":`Messages`,"contextSidebar.stats.user":`User`,"contextSidebar.stats.assistant":`Assistant`,"contextSidebar.stats.cost":`Cost`,"contextSidebar.stats.sessionTps":`Session TPS`,"contextSidebar.tokens.input":`Input`,"contextSidebar.tokens.output":`Output`,"contextSidebar.tokens.reasoning":`Reasoning`,"contextSidebar.tokens.cacheRead":`Cache Read`,"contextSidebar.tokens.cacheWrite":`Cache Write`,"contextSidebar.tokens.cacheHit":`Cache Hit`,"contextSidebar.tokens.tps":`TPS`,"contextSidebar.actions.copyJson":`Copy JSON`,"contextSidebar.actions.copy":`Copy`,"contextSidebar.actions.copied":`Copied`,"planView.file.defaultName":`plan`,"planView.title.default":`Plan`,"planView.error.saveFailed":`Save failed`,"planView.error.previewUnavailable":`Preview unavailable`,"planView.error.switchToEditMode":`Switch to edit mode to fix the issue.`,"planView.error.writeFailed":`Write failed`,"planView.error.writePlanFileFailed":`Failed to write plan file ({status})`,"planView.actions.improvePlanAria":`Improve plan`,"planView.actions.improve":`Improve`,"planView.actions.implementPlanAria":`Implement plan`,"planView.actions.implement":`Implement`,"planView.actions.sendToNewSession":`Send to new session`,"planView.actions.sendToNewWorktreeSession":`Send to new worktree session`,"planView.actions.copyPlanContents":`Copy plan contents`,"planView.state.loading":`Loading...`,"diffView.binary.unavailable":`Content of this file cannot be viewed.`,"diffView.change.untracked":`Untracked file`,"diffView.change.new":`New file`,"diffView.change.deleted":`Deleted file`,"diffView.change.renamed":`Renamed file`,"diffView.change.copied":`Copied file`,"diffView.change.modified":`Modified file`,"diffView.selector.selectFile":`Select file`,"diffView.image.original":`Original`,"diffView.image.modified":`Modified`,"diffView.image.new":`New`,"diffView.image.originalAlt":`Original: {path}`,"diffView.image.modifiedAlt":`Modified: {path}`,"diffView.section.files":`Files`,"diffView.state.selectSessionDirectory":`Select a session directory to view diffs`,"diffView.state.loadingRepositoryStatus":`Loading repository status...`,"diffView.state.notGitRepository":`Not a git repository. Use the Git tab to initialize or change directories.`,"diffView.state.cleanWorkingTree":`Working tree clean, no changes to display`,"diffView.state.noLastTurnChanges":`No last turn changes to display`,"diffView.state.failedToLoadDiff":`Failed to load diff`,"diffView.state.loadingDiff":`Loading diff...`,"diffView.state.loadingChanges":`Loading changes...`,"diffView.state.largeDiff":`Large diff ({count} changed lines)`,"diffView.state.largeDiffDescription":`Rendering may be slow. You can still view the diff by clicking below.`,"diffView.summary.changedFilesSingle":`{count} file changed`,"diffView.summary.changedFilesPlural":`{count} files changed`,"diffView.scope.changed":`Changed`,"diffView.scope.staged":`Staged`,"diffView.scope.lastTurn":`Last turn`,"diffView.scope.selectorAria":`Select change mode`,"diffView.actions.retry":`Retry`,"diffView.actions.renderAnyway":`Render anyway`,"diffView.actions.expandAll":`Expand all`,"diffView.actions.collapseAll":`Collapse all`,"diffView.actions.loadFullFiles":`Load full files`,"diffView.actions.disableFullFiles":`Unload full files`,"diffView.actions.disableLineWrap":`Disable line wrap`,"diffView.actions.enableLineWrap":`Enable line wrap`,"diffView.actions.openFileInEditorAtChange":`Open this file in editor at change`,"diffView.actions.openFileAtFirstChangedLine":`Open this file at first changed line`,"diffView.actions.openFilePreview":`Open this file`,"diffView.actions.review":`Review`,"diffView.actions.reviewAria":`Review changes`,"diffView.reviewDialog.title":`Review changes`,"diffView.reviewDialog.description":`Start a separate review session for the current changes.`,"diffView.reviewDialog.generateHandoff":`Generate handoff`,"diffView.reviewDialog.autoReview":`Run automatic review loop`,"diffView.reviewDialog.info":`This flow works best when started from the session where the changes were implemented.`,"diffView.reviewDialog.actions.cancel":`Cancel`,"diffView.reviewDialog.actions.start":`Review`,"diffView.reviewDialog.actions.starting":`Starting...`,"diffView.reviewDialog.toast.noSessionDirectory":`Session directory is unavailable`,"diffView.reviewDialog.toast.startFailed":`Failed to start review flow`,"chat.history.loadOlder":`Load older messages`,"chat.history.loadingMore":`Loading more…`,"chat.history.loadOlderFailed":`Could not load older messages. Try again.`,"chat.history.loadOlderTimeout":`Loading older messages timed out. Try again.`,"chat.history.loadFailedTitle":`Unable to load this conversation`,"chat.history.loadFailedDescription":`The conversation is still available. Try loading it again.`,"chat.history.retry":`Try again`,"chat.autoReview.title":`Code review loop is running`,"chat.autoReview.status.waitingForReviewer":`Waiting for reviewer`,"chat.autoReview.status.waitingForImplementer":`Waiting for implementer`,"chat.autoReview.reviewSessionLabel":`Review session`,"chat.autoReview.actions.open":`Open`,"chat.autoReview.actions.stop":`Stop`,"diffView.hunk.label":`Hunks`,"diffView.hunk.stage":`Stage`,"diffView.hunk.unstage":`Unstage`,"diffView.hunk.discard":`Discard`,"diffView.hunk.stageTitle":`Stage hunk {index}`,"diffView.hunk.unstageTitle":`Unstage hunk {index}`,"diffView.hunk.discardTitle":`Discard hunk {index}`,"diffView.hunk.unavailable":`This hunk is no longer available. Refresh the diff and try again.`,"diffView.hunk.unsupported":`Staging individual hunks is not supported in this runtime.`,"rightSidebar.contextNotesTodo.plan.defaultTitle":`Plan`,"rightSidebar.contextNotesTodo.empty.selectProject":`Select a project to add notes and todos.`,"rightSidebar.contextNotesTodo.notes.title":`Quick notes - {project}`,"rightSidebar.contextNotesTodo.notes.placeholder":`Capture context, reminders, or links`,"rightSidebar.contextNotesTodo.todo.title":`Todo`,"rightSidebar.contextNotesTodo.todo.itemsSingle":`{count} item`,"rightSidebar.contextNotesTodo.todo.itemsPlural":`{count} items`,"rightSidebar.contextNotesTodo.todo.clearCompleted":`Clear completed`,"rightSidebar.contextNotesTodo.todo.inputPlaceholder":`Add a todo`,"rightSidebar.contextNotesTodo.todo.addAria":`Add todo`,"rightSidebar.contextNotesTodo.todo.empty":`No todos yet. Add a small checklist for this project.`,"rightSidebar.contextNotesTodo.todo.actions.markComplete":`Mark "{text}" complete`,"rightSidebar.contextNotesTodo.todo.actions.collapse":`Collapse todo "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.expand":`Expand todo "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.delete":`Delete "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.send":`Send "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.reorder":`Reorder "{text}"`,"rightSidebar.contextNotesTodo.todo.resizeAria":`Resize todo list`,"rightSidebar.contextNotesTodo.todo.sendMenu.currentSession":`Send to current session`,"rightSidebar.contextNotesTodo.todo.sendMenu.newSession":`Send to new session`,"rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession":`Send to new worktree session`,"rightSidebar.contextNotesTodo.plans.title":`Plans`,"rightSidebar.contextNotesTodo.plans.filesSingle":`{count} file`,"rightSidebar.contextNotesTodo.plans.filesPlural":`{count} files`,"rightSidebar.contextNotesTodo.plans.importFromFile":`Import plan from file`,"rightSidebar.contextNotesTodo.plans.empty":`No saved plans yet.`,"rightSidebar.contextNotesTodo.plans.deletePlan":`Delete plan`,"rightSidebar.contextNotesTodo.plans.deletePlanWithTitle":`Delete plan "{title}"`,"rightSidebar.contextNotesTodo.sendDialog.title.newSession":`Send to new session`,"rightSidebar.contextNotesTodo.sendDialog.title.newWorktree":`Send to new worktree`,"rightSidebar.contextNotesTodo.sendDialog.variant.default":`Default`,"rightSidebar.contextNotesTodo.sendDialog.actions.cancel":`Cancel`,"rightSidebar.contextNotesTodo.sendDialog.actions.send":`Send`,"rightSidebar.contextNotesTodo.sendDialog.actions.sending":`Sending`,"rightSidebar.contextNotesTodo.toast.saveNotesFailed":`Failed to save project notes`,"rightSidebar.contextNotesTodo.toast.loadNotesFailed":`Failed to load project notes`,"rightSidebar.contextNotesTodo.toast.noActiveSession":`No active session selected`,"rightSidebar.contextNotesTodo.toast.sentToCurrentSession":`Todo sent to current session`,"rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo":`Worktree actions are only available for Git repositories`,"rightSidebar.contextNotesTodo.toast.createSessionFailed":`Failed to create session`,"rightSidebar.contextNotesTodo.toast.sentToNewSession":`Todo sent to new session`,"rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession":`Todo sent to new worktree session`,"rightSidebar.contextNotesTodo.toast.sendTodoFailed":`Failed to send todo`,"rightSidebar.contextNotesTodo.toast.deletePlanFailed":`Failed to delete plan`,"rightSidebar.contextNotesTodo.toast.planFileEmpty":`Plan file is empty`,"rightSidebar.contextNotesTodo.toast.importPlanFailed":`Failed to import plan`,"rightSidebar.contextNotesTodo.toast.planImported":`Plan imported`,"rightSidebar.contextNotesTodo.toast.readPlanFileFailed":`Failed to read plan file`,"inlineComment.range.lines":`Lines {start}-{end}`,"inlineComment.input.placeholder":`Add a comment... (Cmd+Enter to save)`,"inlineComment.input.placeholderShort":`Add a comment...`,"inlineComment.actions.cancel":`Cancel`,"inlineComment.actions.save":`Save`,"inlineComment.actions.comment":`Comment`,"inlineComment.actions.showLess":`Show less`,"inlineComment.actions.showMore":`Show more`,"inlineComment.actions.editComment":`Edit comment`,"inlineComment.actions.deleteComment":`Delete comment`,"inlineComment.toast.selectSessionToSave":`Select a session to save comment`,"header.github.connectedWithLogin":`GitHub: {login}`,"header.github.connected":`GitHub connected`,"header.github.avatarWithLogin":`{login} avatar`,"header.github.avatar":`GitHub avatar`,"header.github.accountsTitle":`GitHub Accounts`,"header.github.accountSource.oauth":`OAuth`,"header.github.accountSource.cli":`CLI`,"header.services.openWithCurrent":`Switch instance (current: {current})`,"header.services.open":`Switch instance`,"header.services.tooltip.currentInstanceWithShortcuts":`Switch instance: {current} ({toggle}; next tab {nextTab})`,"header.services.tooltip.servicesWithShortcuts":`Switch instance ({toggle}; next tab {nextTab})`,"header.services.title":`Switch instance`,"header.services.viewAria":`Switch instance`,"header.services.closeAria":`Close instance switcher`,"header.services.rateLimits":`Rate limits`,"header.services.refreshRateLimitsAria":`Refresh rate limits`,"header.services.noRateLimits":`No rate limits available.`,"header.services.noRateLimitsReported":`No rate limits reported.`,"header.services.remoteUpdate.title":`Remote instance update`,"header.services.remoteUpdate.checking":`Looking for updates...`,"header.services.remoteUpdate.upToDate":`This instance is up to date.`,"header.services.remoteUpdate.available":`Version {version} is available for this instance.`,"header.services.remoteUpdate.error":`Failed to check remote instance updates`,"header.services.remoteUpdate.actions.open":`Update`,"header.services.used":`Used`,"header.services.remaining":`Remaining`,"header.services.modelFamily.other":`Other`,"header.services.shutdownDev":`Stop OpenChamber`,"header.actions.openPlanAria":`Open plan`,"header.actions.toggleChangesPanel":`Changes panel`,"header.actions.toggleChangesPanelAria":`Toggle changes panel`,"header.actions.sessionMenu":`Session actions`,"header.actions.sessionMenuAria":`Open session actions menu`,"header.actions.sessionMenu.servicesWithInstance":`Switch instance ({current})`,"header.actions.sessionMenu.viewUsage":`View usage`,"header.actions.planWithShortcut":`Plan ({shortcut})`,"header.actions.terminalPanelWithShortcut":`Terminal panel ({shortcut})`,"chat.recap.aria":`Session recap`,"chat.recap.label":`Recap:`,"chat.goal.dialog.titleCreate":`Set Session Goal`,"chat.goal.dialog.titleManage":`Session Goal`,"chat.goal.dialog.objectiveLabel":`Objective`,"chat.goal.dialog.objectivePlaceholder":`Describe the end state the agent should reach and verify…`,"chat.goal.dialog.budgetLabel":`Token budget`,"chat.goal.status.active":`Active`,"chat.goal.status.evaluating":`Evaluating…`,"chat.goal.status.paused":`Paused`,"chat.goal.status.blocked":`Blocked`,"chat.goal.status.budgetLimited":`Budget reached`,"chat.goal.status.complete":`Complete`,"chat.goal.usage.tokens":`{used}`,"chat.goal.usage.tokensWithBudget":`{used}/{budget}`,"chat.goal.usage.turns":`{turns} continuations`,"chat.goal.action.pause":`Pause`,"chat.goal.action.resume":`Resume`,"chat.goal.action.markComplete":`Mark complete`,"chat.goal.action.clear":`Remove goal`,"chat.goal.chip.label":`Goal`,"chat.goal.action.cancel":`Cancel`,"chat.goal.action.save":`Save goal`,"chat.goal.action.start":`Start goal`,"chat.goal.toast.actionFailed":`Goal update failed`,"chat.goal.toast.distillFallback":`Objective exceeded the limit and couldn't be distilled — a trimmed version is used for the auditor`,"chat.goal.row.aria":`Session goal — open details`,"chat.goal.button.createAria":`Set a session goal`,"chat.goal.button.manageAria":`Manage session goal`,"chat.goal.button.armAria":`Start a goal with the next message`,"chat.goal.counter.aria":`Goal objective length limit`,"chat.goal.button.disarmAria":`Goal armed — tap to disarm`,"chat.goal.button.cancelAria":`Goal running — tap to cancel it`,"chat.goal.cancelDialog.title":`Cancel this goal?`,"chat.goal.cancelDialog.description":`The agent will stop working toward this goal automatically.`,"chat.goal.cancelDialog.keep":`Keep goal`,"chat.goal.cancelDialog.confirm":`Cancel goal`,"header.actions.toggleTerminalPanel":`Terminal panel`,"header.actions.toggleTerminalPanelAria":`Toggle terminal panel`,"terminalView.stream.processExitedMessage":`\r
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
- {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.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.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-BilLDIh_.js`),[]):e===`fr`?await n(()=>import(`./fr-nXAAl4qu.js`),[]):e===`zh-TW`?await n(()=>import(`./zh-TW-DBDsyRLQ.js`),[]):e===`es`?await n(()=>import(`./es-ZHyqPb3M.js`),[]):e===`pt-BR`?await n(()=>import(`./pt-BR-B6nleSMM.js`),[]):e===`uk`?await n(()=>import(`./uk-KTDMzdyl.js`),[]):e===`ko`?await n(()=>import(`./ko-KgjBt0nP.js`),[]):e===`pl`?await n(()=>import(`./pl-ZJkD7N-8.js`),[]):e===`ja`?await n(()=>import(`./ja-CLcxQZ5K.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};
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`,"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};