openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
1 lines • 67.2 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Gu as t,Wu as n}from"./control-ui-core-CBJ5efDh.js";var r,i;function a(){return(a=e((()=>{t(),r={talkPage:{intro:`Configure realtime voice providers, models, and speaker voices.`,voiceSection:{title:`Realtime voice`,description:`Continuous speech conversations with your agent. The pickers below write talk.realtime settings; the full form further down covers everything else.`},status:{title:`Status`,ready:`Ready`,notReady:`Not configured`,unavailable:`Unavailable`,unavailableHint:`Connect to the Gateway to check realtime voice readiness.`,activeProvider:`Active provider: {provider}`,noProvider:`No realtime voice provider is configured yet.`},provider:{title:`Provider`,description:`Auto picks the first provider with working credentials.`,auto:`Auto`},model:{title:`Model`,description:`Realtime voice model for browser Talk sessions.`,default:`Provider default`,defaultNamed:`Default ({model})`},voice:{title:`Speaker voice`,description:`Voice used for spoken replies. GPT-Live locks the voice once a call starts.`,default:`Provider default`,unsupported:`unsupported`,unsupportedDefault:`This saved voice is unavailable for the selected route. Provider default will be used.`},gptLive:{title:`GPT-Live`,hint:`Released browser/Gateway-owned WebRTC tries OAuth first and falls back to a Platform API key. Direct backend sockets and unlisted or private routes require Platform API-key access. Delegated work can be steered while running and requires exact spoken confirmation for high-impact actions.`,ready:`Ready`}},configForm:{sections:{env:{label:`Environment Variables`,description:`Environment variables passed to the gateway process`},update:{label:`Updates`,description:`Auto-update settings and release channel`},agents:{label:`Agents`,description:`Agent configurations, models, and identities`},auth:{label:`Authentication`,description:`API keys and authentication profiles`},channels:{label:`Channels`,description:`Messaging channels (Telegram, Discord, Slack, etc.)`},messages:{label:`Messages`,description:`Message handling and routing settings`},commands:{label:`Commands`,description:`Custom slash commands`},hooks:{label:`Hooks`,description:`Webhooks and event hooks`},skills:{label:`Skills`,description:`Skill packs and capabilities`},tools:{label:`Tools`,description:`Tool configurations (browser, search, etc.)`},gateway:{label:`Gateway`,description:`Gateway server settings (port, auth, binding)`},wizard:{label:`Setup`,description:`Discovery preferences for setup and read-only setup history.`},meta:{label:`Metadata`,description:`Gateway metadata and version information`},logging:{label:`Logging`,description:`Log levels and output configuration`},browser:{label:`Browser`,description:`Browser automation settings`},ui:{label:`UI`,description:`User interface preferences`},models:{label:`Models`,description:`AI model configurations and providers`},bindings:{label:`Bindings`,description:`Key bindings and shortcuts`},broadcast:{label:`Broadcast`,description:`Broadcast and notification settings`},tts:{label:`Voice`,description:`Text-to-speech output, voices, and personas`},session:{label:`Session`,description:`Session management and persistence`},cron:{label:`Automations`,description:`Scheduled tasks and automation`},discovery:{label:`Discovery`,description:`Service discovery and networking`},talk:{label:`Talk`,description:`Voice and speech settings`},plugins:{label:`Plugins`,description:`Plugin management and extensions`},diagnostics:{label:`Diagnostics`,description:`Instrumentation, OpenTelemetry, and cache-trace settings`},cli:{label:`CLI`,description:`CLI banner and startup behavior`},secrets:{label:`Secrets`,description:`Secret provider configuration`},acp:{label:`ACP`,description:`Agent Communication Protocol runtime and streaming settings`},mcp:{label:`MCP`,description:`Model Context Protocol server definitions`}}},agentTools:{pluginSource:`Plugin`,channelSource:`Channel: {id}`,channel:`Channel`,builtIn:`Built-In`,plugin:`Plugin: {id}`,optional:`Optional`,inPreview:`Included in preview`,disabledByOverride:`Disabled by agent override.`,enabledByProfile:`Enabled by the current profile.`,enabledByOverride:`Enabled by agent override.`,notIncluded:`Not included in the current profile.`,overrideOff:`Override Off`,enabled:`Enabled`,overrideOn:`Override On`,profileOff:`Profile Off`,notListed:`Not listed`,otherAgent:`Other Agent`,title:`Tool access`,subtitle:`Choose tools for this agent. Full selects tools; it does not grant Full Access execution permissions.`,enabledSummary:`{enabled}/{total} enabled.`,enableAll:`Enable All`,disableAll:`Disable All`,loadConfig:`Load the gateway config to adjust tool profiles.`,explicitAllowlist:`This agent is using an explicit allowlist in config. Tool overrides are managed in the Config tab.`,globalAllowlist:`Global tools.allow is set. Agent overrides cannot enable tools that are globally blocked.`,loadingCatalog:`Loading runtime tool catalog…`,catalogFallback:`Could not load runtime tool catalog. Showing built-in fallback list instead.`,previewTitle:`Tool preview`,previewSubtitle:`Based on saved session settings and discovered tools. Availability is checked when a run starts, and additional tools may become available then. Changes may take time to appear here; unsaved edits are not included. Session:`,noSession:`no session`,switchAgent:`Switch chat to this agent to view its tool preview.`,previewLoading:`Loading…`,previewUnavailable:`Unavailable`,previewNotLoaded:`Not loaded`,loadingPreview:`Loading tool preview…`,previewError:`Could not load the tool preview for this session.`,emptyPreview:`No tools are listed in this preview. Run-specific tools may still become available.`,morePreviewTitle:`{count} more tools are listed in the groups below.`,morePreview:`+{count} more listed tools`,quickPresets:`Tool Presets`,catalogTitle:`Tool Catalog`,inherit:`Inherit`,profile:`Tool profile`,source:`Source`,listed:`Listed in preview`,status:`Status`,profileSourceAgent:`agent override`,profileSourceGlobal:`global default`,profileSourceDefault:`default`,statusSaving:`saving…`,statusUnsaved:`unsaved`,statusSaved:`saved`,toolPreview:`Tool preview`,more:`+{count} more`,toolsOne:`{count} Tool`,tools:`{count} Tools`,enabledToolsOne:`{count} Enabled Tool`,enabledTools:`{count} Enabled Tools`,listedToolsOne:`{count} Listed Tool`,listedTools:`{count} Listed Tools`,access:`Agent setting`,disableNamed:`Disable {name}`,enableNamed:`Enable {name}`,defaultPresets:`Default Presets`,previewVia:`Listed in preview via {source}.`,linkTool:`Link to This Tool`},searchPage:{enabled:`Web search`,advanced:`Advanced search settings`,enabledHint:`Allow agents to find up-to-date information on the web.`,provider:`Search provider`,automatic:`Automatic`,automaticHint:`Prefer native search when supported; otherwise use a configured search provider.`,scopeHint:`Search settings apply to all agents. Choose an agent and model to see their effective route.`,agent:`Agent`,model:`Model`,agentDefault:`Agent default`,route:`Search for this model`,routeKinds:{native:`Native search`,external:`Check in chat`,managed:`Provider search`,disabled:`Off`,unavailable:`Unavailable`},loading:`Checking search configuration…`,offline:`Connect to the Gateway to configure search.`,readOnly:`An administrator can change search settings and credentials.`,setup:`Provider setup`,setupProvider:`Configure provider`,setupHint:`Configure a provider for OpenClaw web search. External harnesses may also supply their own search tools.`,configured:`Configured`,pluginUnavailable:`Enable plugin to use`,pluginMissing:`Install plugin to use`,testInChat:`Test in chat`,testInChatHint:`Open a new chat with this agent and model selected. Nothing is sent automatically.`,needsSetup:`Needs setup`,configuration:`Configuration`,credentialSources:{config:`Saved credential`,secretRef:`Secret reference`,env:`Gateway environment`,"auth-profile":`Connected account`,none:`No separate API key required`,missing:`Credential missing`},health:`Search health`,untested:`Not tested`,untestedHint:`Configuration alone does not verify access. Run a search to check the current route.`,test:`Test search`,testProvider:`Test {provider}`,testing:`Searching…`,query:`Search query`,queryPlaceholder:`What would you like to find?`,queryDefault:`OpenClaw documentation`,success:`Search succeeded`,failure:`Search failed`,duration:`{ms} ms`,cached:`Cached result`,result:`Answer`,sources:`Sources`,noResults:`The provider returned no results for this query.`,pluginSettings:`All provider settings`,pluginSettingsHint:`Open the plugin’s complete configuration and access controls.`,moreProviders:`Add search providers`,moreProvidersHint:`Install a search plugin, or configure a custom endpoint with a compatible provider.`,docs:`Provider documentation`,refresh:`Refresh search status`},connection:{browser:{title:`Browser`,savedSignIn:`Saved sign-in for this gateway`,forgetDevice:`Forget this browser`,confirmTitle:`Forget this browser?`,confirmMessage:`Removes the saved sign-in for {gateway} and signs this tab out, clearing any active password or session credential, then reconnects fresh. Other gateways, your preferences, and this browser’s device identity are kept. You may need to sign in or approve this browser again.`,confirmLabel:`Forget`},ping:{title:`Gateway ping`,latest:`Latest ping`,average:`Avg ping`,averageHint:`Average browser-to-Gateway round-trip time, including Gateway handling.`,p50:`p50`,p50Hint:`50% of measured pings completed in this time or less (median).`,p95:`p95`,p95Hint:`95% of measured pings completed in this time or less.`,p99:`p99`,p99Hint:`99% of measured pings completed in this time or less.`,unit:`ms`,samples:`Samples: {count}/100 · every 5 s while visible`,measuring:`Measuring ping…`,failed:`Last ping failed. Retrying…`},activity:{title:`Gateway activity`,description:`Process CPU, memory, and event-loop delay · every 5 s while visible`,failed:`Activity refresh failed. Retrying…`,offline:`Connect to see Gateway activity.`},access:{title:`Connection`,descriptionOffline:`Not connected.`,connectedTo:`Connected to {host}`,tick:`{tick} tick`,auth:{none:`no auth`,token:`token auth`,password:`password auth`,trustedProxy:`proxy auth`},status:{connected:`Connected`,offline:`Offline`,connecting:`Connecting…`,starting:`Starting…`,reconnecting:`Reconnecting…`,"reload-required":`Reload required`},gatewayUrl:`Gateway URL`,gatewayUrlHint:`Use wss:// when the Gateway sits behind HTTPS or Tailscale Serve.`,secret:`Gateway secret`,secretPlaceholder:`Paste the token or type the password`,setupCodeHint:`This is a device setup code for the OpenClaw mobile app, not the Gateway secret. Paste it in the app's Gateway settings instead; the Gateway secret comes from openclaw gateway auth-token --show on the Gateway host.`,secretHint:`Tokens are saved for this tab after connecting. Passwords are never stored.`,tokenHint:`This Gateway expects its token. Saved for this tab after connecting.`,passwordHint:`This Gateway expects its password. Passwords are never stored.`,trustedProxy:`Authenticated via trusted proxy.`,trustedProxyStatus:`Trusted proxy`,sessionKey:`Default session`,sessionKeyHint:`Save the session to open in this browser without reconnecting.`,sessionTitle:`Session`,saved:`Saved`,sessionDescription:`For {host} in this browser.`,unsavedHint:`Connection changes have not been applied.`,applyReconnect:`Apply and reconnect`,discard:`Discard changes`,retry:`Retry connection`,details:`Connection details`,reconnect:`Reconnect`,reconnectHint:`Reconnect this browser to the current Gateway to troubleshoot a stuck connection.`,lastError:`Last error`,showSecret:`Show secret`,hideSecret:`Hide secret`,toggleSecretVisibility:`Toggle secret visibility`}},cloudWorkersPage:{pool:{tab:`Pool`,title:`Ready pool`,description:`Workers preparing for upcoming sessions and spares already running. Refreshes every 10 seconds while this view is visible.`,ready:`Ready`,preparing:`Preparing`,releasing:`Releasing`,attention:`Needs attention`,expired:`Expired`,unavailable:`Unavailable`,unknownProject:`Unknown project`,reserve:`Automatic reserve`,build:`On-demand build`,age:`Age: {age}`,expiresAt:`Expires {time}`,expiredAt:`Expired {time}`,offline:`Connect to the Gateway to view the ready pool.`,adminRequired:`Administrator access is required to view the ready pool.`,refreshFailed:`Could not refresh the pool: {error}.`,lastUpdated:`Showing the last update from {time}.`,capacity:`{used} of {limit} reserve slots in use`,disabledCapacity:`Unused workers awaiting release: {count}`,capacityHelp:`Preparing workers and pending cleanup count toward the limit. Unused running workers incur machine charges.`,disabled:`The pool is disabled. Unused workers are being released; active sessions continue.`,inventoryUnavailable:`Pool inventory unavailable`,target:`Ready workers per eligible project: {count}`,empty:`No unassigned prepared workers. Eligible sessions prepare a reserve after activation; Profiles controls the target and pool limit.`},snapshots:{title:`Snapshots`,viewLabel:`Cloud worker view`,unavailable:`Snapshots are available when the Crabbox worker provider is enabled and the Gateway advertises them.`,adminRequired:`Administrator access is required to inspect and manage snapshots.`,empty:`No snapshots are recorded locally.`,profileEmpty:`No snapshots are recorded for this profile.`,images:`Images`,building:`Building`,held:`Held by sessions`,attention:`Needs attention`,unlabeledProfile:`Unlabeled profile`,machineImage:`Machine image`,projectImage:`Project image`,warmOn:`Warm images on`,warmOff:`Warm images off`,available:`Available`,retiring:`Retiring`,retirementPending:`Checkpoint deletion pending`,retirementHint:`Checkpoint {checkpoint} is awaiting deletion. Cleanup retries during the next warm-image capture or worker teardown. Inspect openclaw crabbox warm-images --json and resolve provider deletion errors if it remains pending.`,scrubbing:`Building: scrubbing`,creating:`Building: creating`,uncertain:`Paused: uncertain`,noImage:`No image`,coldOnly:`Cold only`,captureUnsupportedHint:`Workers use an existing compatible snapshot when one is available and otherwise provision cold. Each eligible worker retries capture, so Crabbox configuration changes apply to the next dispatch. Set settings.warmImage: false on this profile to stop capture attempts.`,pending:`Pending`,created:`Created {age}`,lastUsed:`Last used {age}`,allocations:`Allocations: {count}`,runtime:`Runtime: {digest}`,baseCommit:`Commit: {commit}`,pinned:`Pinned`,pin:`Pin`,unpin:`Unpin`,delete:`Delete`,deleteTitle:`Delete snapshot`,deleteMessage:`Delete this checkpoint from the provider? This cannot be undone. Failed deletion remains recorded and retries during maintenance.`,deletePinned:`Unpin this snapshot before deleting it.`,deleteHeld:`Outstanding allocations still hold this snapshot.`,deleteCapturing:`Wait for the active capture to finish before deleting this snapshot.`,deletionRetiring:`Snapshot deletion is pending. Maintenance will retry provider cleanup.`,captureOrRetirement:`Wait for the active capture or checkpoint deletion to finish.`,previous:`Previous`,rollback:`Roll back`,rollbackTitle:`Roll back snapshot`,rollbackMessage:`Restore this previous checkpoint as the current image. The current image becomes the previous generation, or is retired when the retention policy keeps no previous generation unless it is pinned. Existing allocations keep their recorded checkpoint.`,retentionPolicy:`Retention policy`,retentionHelp:`Pinned checkpoints are exempt from age refresh, unused expiry, and capacity eviction. A runtime or recipe change still starts new workers cold until a compatible capture publishes.`,refreshAfter:`Refresh after`,refreshAfterHelp:`Default: 24h. Use whole minutes, hours, or days; minimum 1h.`,refreshAfterInvalid:`Enter a duration of at least 1h using up to eight digits and m, h, or d.`,retainUnused:`Retain unused`,retainUnusedHelp:`Default: 14d. Use whole minutes, hours, or days; minimum 1d.`,retainUnusedInvalid:`Enter a duration of at least 1d using up to eight digits and m, h, or d.`,keepPrevious:`Previous generations`,keepNone:`None (default)`,keepOne:`Keep one`,savePolicy:`Save retention policy`,policyApplies:`Policy changes apply without restarting the Gateway.`,policySaved:`Retention policy saved.`,policySaveFailed:`Could not save retention policy. Refresh the config and try again.`,buildSnapshot:`Build snapshot`,rebuild:`Rebuild`,profile:`Profile`,repository:`Repository`,chooseProfile:`Choose a profile`,chooseRepository:`Choose a repository`,selectBuildInputs:`Choose an enabled profile and a local repository.`,buildHelp:`Prepare the repository's committed HEAD and run its committed setup recipe without starting a session.`,noRepositories:`No local repositories were found. Add a local project from New Session, then reopen this dialog.`,buildStarted:`Build started`,buildReused:`Reusing the build already in progress`,capacity:`The prepared worker pool is full. Raise the prepared pool cap or destroy an unused worker, then try again.`,invalidProject:`The repository must be an accessible local Git checkout root with a HEAD commit. Select another repository or fix the checkout, then try again.`,invalidProfile:`This profile is unavailable or does not support project preparation. Refresh and select an eligible profile.`,cancelBuild:`Cancel build`,cancelBuildMessage:`Stop this snapshot build and destroy its worker? OpenClaw waits for provider work and cleanup to finish.`,buildCancelled:`Build canceled`,dismiss:`Dismiss`,dismissBuild:`Dismiss failed build`,dismissBuildMessage:`Request cleanup for this failed build and hide it from this view. The Gateway keeps the failed record until its retention window ends, so it can reappear after a reload.`,buildDismissed:`Failed build dismissed`,buildAge:`Age: {age}`,buildStates:{requested:`Requested`,provisioning:`Provisioning`,bootstrapping:`Bootstrapping`,ready:`Ready`,attached:`Attached`,idle:`Idle`,draining:`Draining`,destroying:`Destroying`,destroyed:`Destroyed`,failed:`Failed`,orphaned:`Orphaned`},refresh:`Refresh`,recover:`Recover`,recoverTitle:`Recover paused capture`,recoverMessage:`Clear this capture reservation after manual provider cleanup. Recovery preserves recorded images and allocation choices. It does not stop workers or delete provider artifacts.`,acknowledgement:`I stopped the owning capture and worker and reconciled provider artifacts`,recovered:`Capture reservation cleared. The next eligible worker can capture again.`,recoveryChanged:`The Gateway connection changed. Refresh snapshots and try recovery again.`,migration:`Needs migration`,migrationHint:`Run openclaw doctor --fix and follow its provider-cleanup recovery instructions before provisioning workers.`},intro:`Run agent sessions on ephemeral cloud machines instead of this gateway.`,sectionTitle:`Profiles`,sectionDescription:`Each profile defines how its provider provisions and retires a worker.`,empty:`No cloud worker profiles are configured.`,addProfile:`Add profile`,editProfile:`Edit profile`,editAction:`Edit`,deleteTitle:`Delete cloud worker profile`,deleteConfirm:`Delete profile {profile}? Repository defaults that use this profile will also be removed. New cloud sessions will no longer use it.`,advertised:`Advertised`,unavailable:`Unavailable`,profileSaved:`Profile saved. Build a snapshot from the Snapshots view.`,settingsSaved:`Saved. Changes apply without restarting the Gateway.`,adminRequired:`Administrator access is required to manage cloud worker profiles.`,catalogFailed:`Could not load advertised profiles: {error}. Check the gateway and retry.`,providerFact:`Provider: {provider}`,backendFact:`Crabbox backend: {backend}`,classFact:`Class: {value}`,operatingSystemFact:`Operating system: {value}`,ttlFact:`Max lifetime: {value}`,idleFact:`Idle stop: {value}`,desktopFact:`Desktop: {value}`,providerList:`View supported backends`,advanced:`Advanced`,preparedPool:`Prepared pool`,preparedPoolHelp:`Maximum unassigned workers across projects and profiles. Leave empty for the default of 4; zero drains unused reserves and stops refill. Reserves incur running-machine charges.`,savePool:`Save pool`,repositories:`Repositories`,repositoriesHelp:`Choose the default cloud worker profile for each repository. Explicit session profile choices take precedence.`,repositoriesEmpty:`No repository defaults are configured.`,addRepository:`Add repository`,editRepository:`Edit repository`,saveRepository:`Save repository`,repositoryIdentity:`Repository identity`,repositoryIdentityHelp:`Enter host/owner/repo or a Git remote URL. Saved identities use lowercase and omit the trailing .git.`,repositoryProfile:`Default profile`,selectProfile:`Choose a profile`,warmImage:{auto:`Auto`,on:`On`,off:`Off`},fields:{profileId:`Profile ID`,profileIdHelp:`Use letters, numbers, hyphens, or underscores.`,backend:`Crabbox backend`,backendHelp:`The backend passed to Crabbox, such as AWS, Azure, or Hetzner.`,backendPlaceholder:`hetzner`,operatingSystem:`Operating system`,operatingSystemHelp:`Options come from this profile's advertised operating systems. Choose Provider default to clear a saved target, including one no longer advertised.`,providerDefault:`Provider default`,machineClass:`Machine class`,machineClassHelp:`Enter a class accepted by the selected Crabbox backend and binary. The provider determines its effective sizing.`,ttl:`Max lifetime`,ttlHelp:`Use a positive Go duration such as 8h or 90m.`,ttlPlaceholder:`8h`,idleTimeout:`Idle stop`,idleTimeoutHelp:`Stop an unused worker after this positive Go duration.`,idleTimeoutPlaceholder:`45m`,setup:`Setup command`,setupHelp:`Optional idempotent shell command run before OpenClaw is installed.`,setupPlaceholder:`command -v node || install-node`,desktop:`Desktop`,desktopHelp:`Enable Browser and Terminal access on Linux, native Windows, or prepared macOS workers. Supports direct or coordinator-backed AWS and Azure, and coordinator-backed Hetzner. Existing workers must be reprovisioned after this changes.`,binary:`Crabbox binary`,binaryHelp:`Optional absolute path to the Crabbox executable on the gateway.`,binaryPlaceholder:`/usr/local/bin/crabbox`,warmImage:`Warm images`,warmImageHelp:`Auto enables images for Linux when a machine class is known and no setup environment names are set. Images incur provider snapshot storage charges.`,setupEnv:`Setup environment names`,setupEnvHelp:`Up to 16 unique POSIX environment variable names, separated by commas or whitespace. Requires a setup command. Values come from the gateway environment.`,readyWorkers:`Ready workers`,readyWorkersHelp:`Prepares unassigned workers per eligible project after a successful session. Leave empty for one; zero disables reserves. Ready workers incur running-machine charges.`,suspendAfter:`Suspend after`,suspendAfterHelp:`Reclaim an idle worker after a duration such as 45m or 2h (minimum 1m). Leave empty to keep workers running.`,actions:`Save profile`,actionsHelp:`New workers use the saved profile. Existing workers keep their provisioning settings.`},errors:{title:`Profile needs attention`,profileId:`Use a profile ID that starts with a letter or number and contains only letters, numbers, hyphens, or underscores.`,profileExists:`Choose another profile ID; this one already exists.`,profileMissing:`This profile changed or was removed. Reload the page and try again.`,backend:`Enter a Crabbox backend, such as aws, azure, or hetzner.`,target:`Use an operating system ID of up to 64 characters without surrounding spaces, or choose Provider default.`,warmImage:`Warm images require Linux. Choose Linux, Auto, or Off before saving.`,machineClass:`Enter a machine class of 1 to 128 characters.`,ttl:`Enter a positive Go duration for max lifetime, such as 8h or 90m.`,idleTimeout:`Enter a positive Go duration for idle stop, such as 45m.`,binary:`Enter an absolute Crabbox binary path or leave the field empty.`,setupEnv:`Enter at most 16 unique POSIX environment variable names. CRABBOX_ENV_ALLOW is reserved.`,repository:`Enter a valid repository identity, such as github.com/acme/app.`,repositoryExists:`This repository already has a default. Edit its existing mapping.`,repositoryMissing:`This repository mapping changed or was removed. Reload the config and try again.`,repositoryProfile:`Choose an existing cloud worker profile. Add a profile first if none are configured.`,preparedPool:`Enter a non-negative whole number or leave the field empty.`,settingsSaveFailed:`These settings were not saved. Reload the config and try again.`,setupEnvRequiresSetup:`Enter a setup command or clear the setup environment names.`,readyWorkers:`Enter a whole number of zero or more, or leave ready workers empty.`,suspendAfter:`Enter a duration of at least 1m, such as 45m or 2h, or leave suspend after empty.`,saveFailed:`The profile was not saved. Reload the config and try again.`,deleteFailed:`The profile was not deleted. Reload the config and try again.`}},modelProviders:{title:`Configured providers`,configureModels:`Model setup`,login:{action:`Connect provider`,title:`Connect a provider`,noOptions:`No account connection methods are available.`,accounts:`Accounts available to this agent`,noAccounts:`No connected accounts for this provider.`,connectAccount:`Connect an account`,apiKeyHint:`Connect with a key from your provider account.`,compareMethods:`Compare connection methods`,searchProviders:`Search providers…`,noMatches:`No providers match your search.`,noProviders:`No providers are available to connect.`,discover:`On this Gateway`,description:`Save credentials for this agent. Choose the active model separately.`,setupDescription:`Choose how to connect. Verifying an API key or token can also set this agent's active model.`,done:`Provider credentials saved.`,missingSelection:`The account selected for {model} is no longer available. Connect or choose an account to use with this model.`,chooseAccount:`Choose account`,useAccount:`Use this account`,useAccountDescription:`Test {model} with this account and use it for this agent's default. Conversations with their own account selection keep it.`,activated:`Account verified and selected for this agent's default model.`,selectionChanged:`The selected model or account changed. Close this dialog and choose again.`,finishing:`Credentials are being saved. Wait for the result.`,sessionExpired:`This sign-in session ended. Close this dialog and refresh Models to check the result.`},subtitle:`Global model defaults and provider access for your agents.`,accessTitle:`Provider access`,accessDescription:`Manage connections for the selected agent. Global defaults above apply to all agents.`,search:`Search providers…`,noMatches:`No providers match your search.`,updated:`Updated {time}`,refreshing:`Refreshing…`,disconnected:`Connect to the gateway to see configured model providers.`,emptyTitle:`No model providers configured`,emptySubtitle:`Sign in to a provider or add an API key, then refresh.`,status:{ok:`Signed in`,ready:`Ready`,expiring:`Expiring`,expired:`Expired`,missing:`Not signed in`,apiKey:`API key`,denied:`Credentials rejected`,configured:`Credentials configured`,modelsUnavailable:`Models unavailable`},expiresIn:`Credential expires in {time}`,models:`{count} models`,modelOne:`1 model`,modelsAvailable:`{available} of {count} models available`,globalUsage:`Global usage and cost`,noStats:`No live usage data reported by this provider.`,localCost:`Global session spend · {days}d`,localCostDetail:`{tokens} tokens · {messages} messages`,saving:`Saving…`,requestFailed:`Request failed.`,configUnavailable:`Configuration is unavailable. Refresh and try again.`,credentials:{label:`Credentials for {agent}`,oauth:`OAuth profiles: {count}`,tokenProfiles:`Token profiles: {count}`,configKey:`API key set in config`,envKey:`API key from environment`,envKeyNamed:`API key from environment ({name})`,profileKey:`API key profiles: {count}`,none:`Not configured`},profiles:{title:`Provider profiles`,accountOne:`1 account`,account:`Account {number}`,details:`Details`,accounts:`{count} accounts`,reorderHint:`Drag to set your preferred account order.`,reorder:`Reorder {account}, position {position}`,priority:`Priority {position}`,automaticOrder:`Account selection is automatic.`,priorityManagedByProvider:`Priority is managed by provider configuration.`,priorityManagedByAuth:`Priority is managed by auth.order.`,partialOrder:`Priority is inherited or managed across provider routes.`,partialStoredOrder:`Clear the custom order before changing priority.`,resetOrder:`Clear custom order`,resetOrderHint:`Remove this agent's custom priority and use the default order. Accounts stay connected.`,addAccount:`Add account`,lastUsed:`Last used {time} ago`,sourceConfig:`Provider config`,sourceExternal:`External CLI`,sourceInherited:`Shared credential`,sourceSaved:`Saved in OpenClaw`},apiKey:{label:`API key`,placeholder:`Enter provider API key`,replacePlaceholder:`Secret saved. Enter a new key to replace it.`,set:`Set API key`,remove:`Remove key`,saved:`Secret saved.`,removed:`Saved API keys removed.`,authModeBlocked:`API key changes are unavailable while auth mode is "{mode}".`},probe:{test:`Test connection`,testing:`Testing…`,unavailable:`Connection testing requires a newer gateway.`,latency:`{ms} ms`,status:{ok:`Connected`,auth:`Authentication failed`,rate_limit:`Rate limited`,billing:`Billing problem`,timeout:`Timed out`,format:`Invalid response`,unknown:`Connection failed`,no_model:`No models available`,partial:`Connected with warnings`}},readiness:{title:`AI setup`,heading:`Connect a verified AI model`,signedInNoModels:`You're signed in, but this account exposes no usable models. Choose another provider or account to continue.`,notConfigured:`Choose a provider and verify the model OpenClaw will use.`,noModels:`No models available`,modelRequired:`Model required`,chooseProvider:`Choose another provider`},logout:{action:`Log out`,actionFor:`Log out {account}`,confirm:`Remove the saved sign-in for {provider} from OpenClaw? You can add this account again later.`,loggingOut:`Logging out…`,done:`Logged out.`},add:{title:`Add provider`,subtitle:`Choose a known model provider and save its API key.`,action:`Add provider`,none:`All known providers are already configured.`,provider:`Provider`,selectProvider:`Select a provider`,save:`Save provider`,saved:`Provider {provider} added.`},defaults:{title:`Defaults for all agents`,subtitle:`Model and behavior defaults for all agents. Agent-specific settings override these defaults. View each agent's model in Agents → Overview.`,primary:`Model`,utility:`Utility Model`,utilityHelpLabel:`About the utility model`,utilityHelpPurpose:`Handles short background tasks such as generated titles, progress narration, and session summaries.`,utilityHelpAutomatic:`Automatic uses the primary model provider's recommended small model when available. Generated titles otherwise use the primary model.`,automatic:`Automatic (provider default)`,automaticUnavailable:`No recommended small model`,disabled:`Disabled`,fallback:`Fallback Model`,noFallback:`No fallback model`,selectModel:`Select a model`,noModels:`Configure a chat provider to select a primary, utility, or fallback model.`,discoveringMore:`Discovering more models…`,discoverFailed:`More models could not be discovered.`,retryDiscover:`Retry`,thinkingHelpLabel:`About thinking defaults`,thinkingHelp:`Sets the global default for new sessions when no session-specific thinking level is set. OpenClaw maps unsupported levels to the closest option supported by the selected model.`,thinkingDefaultHelp:`Uses the selected model's thinking policy instead of saving a global thinking override.`,fastModeHelpLabel:`About fast mode defaults`,fastModeHelp:`Sets the global default for new sessions. Auto starts in fast mode and returns to standard mode after the model's configured interval; On and Off keep that behavior fixed.`,fastModeDefaultHelp:`Uses the selected model's fast-mode policy. Unlike Auto, Default does not enable fast mode by itself.`},installedAgents:{title:`Installed agents`,description:`Coding apps on the Gateway computer. Each app manages its own account and permissions. Enabling an app does not sign you in.`,status:{installed:`Installed`,missing:`Not detected`,unverified:`Not verified`,signIn:`Sign in required`,discovering:`Discovering models…`,modelsAvailable:`Models available`},unverifiedHint:`Check this app's custom launch command on the Gateway computer, then check again.`,installHint:`Install and sign in to {name} on the Gateway computer, then check again.`,disabledHint:`Enable this app to include its models in the picker.`,signInHint:`Open {name} on the Gateway computer and check its sign-in, then check again.`,discoveryHint:`Open {name} on the Gateway computer and check its connection and sign-in, then check again.`,toggle:`Use {name}`,check:`Check again`,checking:`Checking…`,empty:`No supported coding apps are available.`,note:`Update installed agents from Control UI`},readOnly:{disconnected:`Connect to the gateway to change model settings.`,adminRequired:`Browsing only. Model changes require operator.admin access.`},notes:{defaultModel:`Update defaults from Control UI`}},updates:{device:{title:`This Mac`,version:`App version`,versionBuild:`{version} (build {build})`,automatic:`Check for updates automatically`,check:`Check for Updates…`,unavailable:`App updates unavailable`},channel:{stable:`Stable`,beta:`Beta`,dev:`Dev`,extendedStable:`Extended stable`},installKind:{package:`Package`,git:`Git checkout`,unknown:`Unknown`},page:{intro:`Manage the connected Gateway's release channel and update policy.`,buildTitle:`Current build`,gatewayVersion:`Gateway version`,controlUiCommit:`Control UI commit`,builtAt:`Built`,installedAt:`Installed`,installedAtUnknown:`Unknown`,lastCommitAt:`Last commit`,installKind:`Install type`,policyTitle:`Update policy`,channel:`Release channel`,channelDescription:`Choose which OpenClaw release track this Gateway follows.`,checkForUpdates:`Check for updates`,checkForUpdatesDescription:`Periodically check for new versions and show update notices.`,automaticUpdates:`Automatic updates`,automaticUpdatesDescription:`Schedule available updates automatically. Dev auto-updates apply to git checkouts.`,devPackageAutomaticHint:`Automatic dev updates require a source (git) install. This install is a package install — use stable or beta for automatic updates.`,extendedStableAutomaticHint:`Extended stable reports available releases but never installs them automatically.`,checksDisabledAutomaticHint:`Turn on Check for updates to resume automatic updates.`,statusTitle:`Update status`,scheduleStatus:`Status`,activePhase:`Updating · {phase}`,currentStep:`Current step`,runTarget:`Update target`,lastProgress:`Last progress`,scheduledUpdate:`Automatic update`,commits:`Commits`,available:`Update available {target}`,upToDate:`Up to date`,statusUnavailable:`Update status unavailable`,gitCommitAhead:`{count} commit ahead of tracked upstream`,gitCommitsAhead:`{count} commits ahead of tracked upstream`,gitDiverged:`Diverged · {ahead} ahead, {behind} behind`,gitFetchFailed:`Could not fetch the tracked upstream`,gitNoUpstream:`No tracked upstream is configured`,gitComparisonFailed:`Could not compare this checkout with its tracked upstream`,checking:`Checking for updates…`,checkRequired:`Check for updates successfully before starting an update.`,updating:`Updating…`,updateNow:`Update now`,updateNowDescription:`Install the available update and restart the Gateway.`,latestAttempt:`Latest update attempt`,attemptedAt:`Attempted`,beforeUpdate:`Before update`,afterAttempt:`After attempt`,attemptInstallKind:`Attempt install type`,attemptReason:`Reason code`,failedStep:`Failure details`,viewDetails:`View details`,recoveryActions:`Recovery`,diagnoseFailure:`Diagnose update`,checkStatus:`Check status`,retryUpdate:`Retry update`,reportFailure:`Report update failure`,reportOwnerRequired:`Reporting requires a connected, identified user with administrator access.`,reportResult:`Failure report`,reportSubmitting:`Submitting report…`,reportCreated:`GitHub issue created`,reportFallback:`Review and submit the prefilled issue in your browser.`,reportPending:`GitHub issue submission may have completed. Do not submit this report again.`,reportRetryable:`No GitHub issue submission was started. This report can be retried.`,reportDuplicate:`This update attempt was already reported.`,reportError:`The report could not be prepared or submitted.`,openIssue:`Open GitHub issue`,openPrefilledIssue:`Open prefilled issue`,savedReport:`Saved report`,troubleshoot:`Troubleshoot updates`,cliFallback:`CLI fallback`,showCliFallback:`Show terminal commands`}},configPage:{deviceSettings:{appOnly:`These settings are only available inside the OpenClaw app.`,loading:`Waiting for settings from the app…`,intro:`App behavior and capabilities on this Mac.`,introIos:`App behavior and capabilities on this device.`,permissionsIntro:`macOS access for notifications, capture, voice, and device context.`,permissionsIntroIos:`Device access for notifications, capture, voice, and personal data.`,app:`App`,nativeExperience:`Native experience (Experimental)`,nativeExperienceHint:`Use native Mac views for chat and navigation. When off, use the Web experience. Settings always open here.`,appearance:`Appearance`,appearanceModes:{system:`System`,light:`Light`,dark:`Dark`},notificationsEnabled:`Notifications`,notificationsEnabledHint:`Deliver notifications on this device.`,showDockIcon:`Show Dock icon`,iconStyle:`Dock icon`,iconStyleHint:`Original uses your Mac’s icon style. Other designs follow light/dark mode while OpenClaw runs.`,showDockIconHint:`Keep OpenClaw visible in the Dock. When off, windows still show the Dock icon while open.`,iconAnimations:`Icon animations`,iconAnimationsHint:`Enable idle blinks and wiggles on the menu bar icon.`,launchAtLogin:`Launch at login`,launchAtLoginUnavailable:`Launch at login requires a bundled app without an active app profile.`,keepGatewayRunning:`Keep OpenClaw running when the app is closed`,keepGatewayRunningHint:`Runs the Gateway as a background service so channels and automations keep working after you quit OpenClaw.`,keepGatewayRunningFailed:`Could not change Gateway hosting.`,quickChat:`Quick Chat enabled`,quickChatHint:`Show a floating composer for quick messages, summoned with a global shortcut.`,quickChatShortcut:`Quick Chat shortcut`,notSet:`Not set`,changeShortcut:`Change…`,capabilities:`Capabilities`,canvas:`Allow Canvas`,canvasHint:`Allow the agent to show and control the Canvas panel.`,camera:`Allow Camera`,cameraHint:`Allow the agent to capture a photo or short video via the built-in camera.`,keepAwake:`Keep awake`,keepAwakeHint:`Keep the screen awake while OpenClaw is active.`,keepAwakeComputerHint:`Prevent idle sleep while OpenClaw is running. Manual sleep and locking remain available.`,healthSummary:`Health summaries`,healthSummaryHint:`Allow the agent to request a health summary from this device.`,device:`Device`,panels:{diagnostics:`Diagnostics`,licenses:`Licenses`,about:`About`,watch:`Apple Watch`},openPanel:`Open…`,computerControl:`Allow Computer Control`,computerControlHint:`Starts enabled. After this Mac is paired and macOS access is granted, the paired Gateway can move the pointer, click, and type without per-action confirmation. High risk.`,computerControlProvider:`Computer Control provider`,desktopSharing:`Desktop sharing`,desktopSharingHint:`View and control this Mac from Systems. Enabled by default. Requires Screen Sharing in macOS System Settings → General → Sharing. Changes briefly reconnect this Mac; a new capability may need pairing approval.`,desktopSharingComputerHint:`View and control this computer from Systems. Enabled by default. Requires an authenticated local VNC server. Changes briefly reconnect this computer; a new capability may need pairing approval.`,desktopSharingStatus:`Desktop sharing status`,desktopSharingStates:{off:`Off`,starting:`Starting`,running:`Running`,error:`Unavailable`},unattendedDesktop:`Keep computer awake`,unattendedDesktopHint:`Keep this Mac awake between jobs while it is connected and hosting. Manual lock and logout are still respected; OpenClaw never unlocks the Mac.`,desktopAvailability:`Desktop availability`,desktopStates:{locked:`Locked`,unlocked:`Unlocked`,unknown:`Unknown`},peekaboo:`Peekaboo`,cua:`CUA`,cuaUnavailable:`CUA (driver not bundled)`,peekabooBridge:`Enable Peekaboo Bridge`,peekabooBridgeHint:`Allow signed tools to drive UI automation via Peekaboo Bridge. Requires Computer Control; otherwise run Peekaboo's own Mac app.`,browser:`Browser`,chromeExtension:`Chrome extension`,chromeExtensionDetected:`Installed`,chromeExtensionNotInstalled:`Not installed`,chromeExtensionUnknown:`Status unavailable`,chromeExtensionEnableHint:`The extension is installed but not enabled. Open Chrome and approve or enable OpenClaw.`,chromeExtensionStatusUnsupported:`Automatic installation checks require an updated Mac app. Open Chrome to check whether OpenClaw is installed and enabled.`,chromeExtensionStatusFailed:`Could not check Chrome installation automatically. You can still run setup or refresh status. Make sure the OpenClaw app and CLI are up to date.`,chromeExtensionSetup:`Set up Chrome on this device`,chromeExtensionHint:`Prepare the OpenClaw extension on this device, then approve it in Chrome. This does not install on a remote Gateway.`,chromeExtensionPreparing:`Working on this device…`,chromeExtensionRefresh:`Refresh setup status`,chromeExtensionVerify:`Verify connection`,chromeExtensionTarget:`Host: {hostname} · Profile: {profile} · Relay port: {port}`,chromeExtensionTabsHint:`A connected extension does not mean eligible tabs are available. Check tabs on this host and profile in the browser tools; an empty list is different from a disconnected extension.`,chromeExtensionFailed:`Setup could not finish. Check the OpenClaw CLI on this device with openclaw browser extension setup, then try again.`,chromeExtensionPhases:{inspection_required:`Setup required on this device.`,preparing:`Preparing Chrome on this device.`,needs_browser_action:`Chrome needs your attention on this device.`,waiting_for_connection:`Connection has not been verified on this device.`,ready:`Extension connected on this device.`,blocked:`Setup is blocked on this device.`},chromeExtensionNextActions:{none:``,install:`Choose Set up Chrome on this device to prepare the native host.`,open_chrome:`Installation requested. Open or restart Chrome on this device and approve OpenClaw.`,approve_extension:`Approve OpenClaw in Chrome on this device, then verify the connection.`,install_from_store:`Add OpenClaw from the Chrome Web Store on this device, then verify the connection.`,check_connection:`Choose Verify connection to check this host's Chrome relay.`,repair_native_host:`Check the local CLI installation, then run setup again.`,unsupported:`Automatic setup is unavailable on this host. Follow the extension documentation.`},browserImport:`Browser logins`,browserImportHint:`Copy cookies from a Chrome-family profile into an isolated managed profile.`,importBrowserLogins:`Import browser logins…`,cookieSync:`Cookie sync`,cookieSyncUnavailable:`Cookie sync requires remote mode with an external OpenClaw CLI.`,cookieSyncEnabled:`Sync cookies to the remote computer`,cookieSyncHint:`Continuously copy this Mac's logged-in cookies for the domains below into the remote OpenClaw browser profile. Off by default.`,domains:`Domains`,domainsHint:`Cookies are only synced for these hostnames; an empty list means nothing is synced.`,addDomain:`Add hostname`,removeDomain:`Remove {domain}`,targetProfile:`Target profile`,targetProfileHint:`Managed profile on the remote computer that receives the cookies.`,syncStatus:`Cookie sync status`,syncStates:{off:`Off`,idle:`Idle`,running:`Syncing`,error:`Error`},developer:`Developer`,debugTools:`Show Debug tools`,debugWindow:`Debug window`,openDebug:`Open Debug window…`,systemAccess:`System access`,grant:`Grant…`,openSystemSettings:`Open System Settings…`,openSettings:`Open Settings`,permissionStatuses:{granted:`Granted`,limited:`Limited`,denied:`Denied`,notDetermined:`Not determined`,notGranted:`Not granted`,unavailable:`Unavailable`},permissions:{notifications:{title:`Notifications`,hint:`Show desktop alerts for agent activity.`},accessibility:{title:`Accessibility`,hint:`Control UI elements when an action requires it.`},screenRecording:{title:`Screen Recording`,hint:`Capture the screen for context or screenshots.`},microphone:{title:`Microphone`,hint:`Allow Voice Wake, push-to-talk, Talk Mode, and Quick Chat dictation.`},camera:{title:`Camera`,hint:`Capture photos and video from the camera.`},speechRecognition:{title:`Speech Recognition`,hint:`Use Apple Speech; passive Voice Wake stays on-device.`},location:{title:`Location`,hint:`Share location when requested by the agent.`},contacts:{title:`Contacts`,hint:`Access contacts when requested by the agent.`},calendars:{title:`Calendars`,hint:`Access calendar events when requested by the agent.`},reminders:{title:`Reminders`,hint:`Access reminders when requested by the agent.`},photos:{title:`Photos`,hint:`Access photos you allow this app to use.`}},location:`Location`,locationAccess:`Location access`,locationHint:`Allow agents to use device location when a tool asks for it.`,locationModes:{off:`Off`,whileUsing:`While using`,always:`Always`},preciseLocation:`Precise location`,preciseLocationHint:`Always may require System Settings to approve background location.`,preciseLocationReadOnlyHint:`Manage precise location access in Settings.`,preciseLocationStatuses:{enabled:`Enabled`,disabled:`Disabled`},privacy:`Privacy`,activePresence:`System-wide presence detection`,activePresenceHint:`OpenClaw activity identifies this Mac without extra permissions. Enable this to also detect activity in other apps. Shares only idle duration, never keys, pointer positions, app names, or window titles. Requires Accessibility.`},deviceTalk:{title:`This Mac`,wakeEnabled:`Voice Wake`,unsupported:`Voice Wake is unavailable on this Mac. It requires macOS 26 or newer and on-device recognition for the selected language.`,unsupportedDevice:`Voice Wake is unavailable on this device.`,talkEnabled:`Talk mode`,talkButtonEnabled:`Show Talk button`,talkBackgroundEnabled:`Talk in the background`,speakerphoneEnabled:`Use speakerphone`,wakeTriggersTalkMode:`Wake triggers Talk Mode`,pushToTalkEnabled:`Hold Right Option to talk`,talkShiftToStopEnabled:`Shift to stop`,talkPhaseSoundsEnabled:`Phase sounds`,realtimeRelayEnabled:`Use realtime Gateway relay`,realtimeRelayHint:`Use the Gateway's configured realtime voice session on this Mac. Requires realtime, gateway-relay, and agent-consult in Talk settings.`,triggerChime:`Trigger chime`,sendChime:`Send chime`,microphone:`Microphone`,systemDefault:`System Default`,disconnectedMicrophone:`{id} (disconnected)`,primaryLanguage:`Primary language`,additionalLanguages:`Additional languages`,addLanguage:`Add language…`,removeLanguage:`Remove {name}`,microphoneTest:`Test microphone…`,triggerWords:`Trigger words`,triggerWordsHint:`One trigger per line, shared by every device connected to this Gateway. Up to 32 triggers and 64 characters each. Clear the list to restore the defaults.`,triggerWordsUnavailable:`Voice wake trigger editing is not enabled on this Gateway.`,triggerWordsError:`Could not save trigger words: {error}`,triggerWordsLoadError:`Could not load trigger words: {error}`,triggerWordsDisconnected:`Trigger words have not been saved. Your edits are retained. Reconnect to this Gateway, then retry.`,saved:`Saved`},themeImported:`Imported {name}.`,themeRemoved:`Custom theme removed.`},configView:{categories:{core:`Core`,ai:`Agent Defaults`,communication:`Communication`,security:`Privacy & Security`,automation:`Automation`,infrastructure:`Infrastructure`,appearance:`Appearance`,other:`Other`},sections:{env:`Environment`,auth:`Authentication`,update:`Updates`,meta:`Meta`,logging:`Logging`,diagnostics:`Diagnostics`,cli:`CLI`,secrets:`Secrets`,agents:`Agents`,models:`Models`,skills:`Skills`,tools:`Tools`,memory:`Memory`,session:`Session`,channels:`Channels`,messages:`Messages`,broadcast:`Broadcast`,notifications:`Notifications`,talk:`Talk`,tts:`Voice`,transcripts:`Meeting capture`,commands:`Commands`,hooks:`Hooks`,bindings:`Bindings`,cron:`Automations`,approvals:`Approvals`,security:`Security Policy`,plugins:`Plugins`,gateway:`Gateway`,browser:`Browser`,nodeHost:`Node Host`,discovery:`Discovery`,acp:`ACP`,mcp:`MCP`,theme:`Theme`,ui:`UI`,wizard:`Setup`},themes:{claw:{label:`Claw`,description:`Chroma family`},knot:{label:`Knot`,description:`Black & red`},dash:{label:`Dash`,description:`Chocolate blueprint`},absolutely:{label:`Absolutely`,description:`Clay on graphite`},tide:{label:`Tide`,description:`Slate & steel`},beacon:{label:`Beacon`,description:`Maximum contrast`},phosphor:{label:`Phosphor`,description:`Green on glass`},crt:{label:`CRT`,description:`Console mono`},manuscript:{label:`Manuscript`,description:`Ink on paper`},rose:{label:`Rosé`,description:`Plum & rose`},miami:{label:`Miami`,description:`Magenta & cyan`}},textSizes:{small:`Small`,default:`Default`,large:`Large`,xl:`XL`,xxl:`XXL`},notifications:{title:`Push notifications`,nativeTitle:`Notifications`,unavailableHint:`Browser unsupported.`,unavailable:`Unavailable`,checking:`Checking...`,granted:`Granted`,denied:`Denied`,notRequested:`Not requested`,unsupported:`Unsupported`,subscribed:`Subscribed`,notSubscribed:`Not subscribed`,blocked:`Blocked`,ready:`Ready`,browserSupport:`Browser support`,available:`Available`,notSupported:`Not supported`,permission:`Permission`,status:`Status`,unsubscribe:`Unsubscribe`,sendTest:`Send test`,sendingTest:`Sending test…`,testOutcome:`Test notification`,testQueued:`Test notification queued`,testFailed:`Test notification failed`,subscribing:`Subscribing...`,enable:`Enable notifications`,openSystemSettings:`Open System Settings`,blockedHint:`Allow notifications in this site's browser permissions.`,nativeBlockedHint:`Allow OpenClaw in macOS System Settings > Notifications.`,iosInstallRequired:`On iPhone or iPad, use Share > Add to Home Screen, then open OpenClaw.`,accountDefaults:`Account defaults`,installedApp:`This browser or app`,deliverDevice:`Deliver to this browser or app`,notificationLabel:`Notification label`,approvalRequested:`Approval requested`,agentFinished:`Agent finished`,agentQuestion:`Agent question`,humanMentioned:`Someone mentions me`,scheduledTaskFailed:`Scheduled task failed`,lockScreenDetail:`Lock-screen detail`,lockScreenDetailHint:`Private hides names; detailed content is sanitized.`,private:`Private`,namesOnly:`Names only`,detailed:`Detailed`,quietHours:`Quiet hours`,quietHoursWindow:`Quiet hours window`,quietHoursStart:`Quiet hours start`,quietHoursEnd:`Quiet hours end`,timeZone:`Time zone`,onlyAgents:`Only these agents`,inherit:`Use account default`,inheritDetail:`Use account detail level`,inheritQuietHours:`Use account quiet hours`,overrideAgents:`Override for this device`},appearance:{intro:`Theme, chat, and sidebar preferences for this Control UI client.`,theme:`Theme`,chooseTheme:`Choosing a different theme resets its fonts and accent colors.`,themeUnavailable:`{id} is unavailable. Using Claw until the theme becomes available again.`,typography:`Typography`,fonts:{ui:`Interface`,chat:`Chat prose`,terminal:`Terminal font`,terminalDefault:`JetBrains Mono + Nerd Font symbols`,terminalHint:`Bundled JetBrains Mono + Nerd Font symbols by default. To override, enter a monospace font installed on this computer. Missing fonts use the default; saved in this browser.`,terminalLigatures:`The terminal currently renders characters individually; programming ligatures are not supported.`,terminalInvalid:`Enter one font family name, without quotes, commas, or CSS declarations.`,terminalReset:`Use default`,themeDefault:`Theme default`,themeFace:`{theme} · {face}`,system:`System`,brandedPreviewCaption:`{brand} · A little clarity goes a long way`,previewProse:`Good typography makes room for the conversation. Choose a face that feels comfortable to read.`,previewCode:`const greeting = "Hello, world!";`},fontNotes:{"instrument-sans":`Contemporary and crisp`,geist:`Clean and precise`,"dm-sans":`Warm and versatile`,"ibm-plex-sans":`Engineered and humanist`,"space-grotesk":`Geometric with character`,"atkinson-hyperlegible":`Distinct shapes for easy reading`,fraunces:`Expressive reading serif`,lora:`Calm, literary serif`,"jetbrains-mono":`Clear, evenly spaced letters`,system:`No webfont`},accent:`Accent color`,accentHint:`Choose an accent color for buttons, highlights, and other controls.`,customAccent:`Custom color`,usingThemeAccent:`Using theme accent`,usingAccent:`Using {value}`,accents:{default:`Theme default`,claw:`Claw red`,coral:`Coral`,amber:`Amber`,mint:`Mint`,teal:`Teal`,blue:`Blue`,violet:`Violet`,pink:`Pink`,slate:`Slate`},importedTheme:`Imported theme`,import:`Import`,importedFrom:`Imported from tweakcn: {name}`,importHint:`Import a tweakcn theme into this browser-local slot`,importFromTweakcn:`Import from tweakcn`,tweakcnInstructions:`Open tweakcn.com, choose or create a theme, click Share, then paste the copied theme link here. Share links, editor URLs, registry URLs, theme IDs, and default theme names like amethyst-haze are accepted.`,browseTweakcn:`Browse tweakcn themes`,themeLink:`Theme link or ID`,replace:`Replace {name}`,importTheme:`Import theme`,clear:`Clear {name}`,loaded:`Loaded`,inlineHintBefore:`Click`,inlineHintAfter:`to add one browser-local tweakcn theme. In tweakcn, use Share and paste the copied link here.`,tabIcon:{title:`Browser tab icon`,source:`Source`,sourceLabel:`Browser tab icon source`,default:`Default`,agent:`Agent avatar`,shape:`Shape`,shapeLabel:`Agent avatar shape`,square:`Square`,rounded:`Rounded corners`,circle:`Circle`,lobsterdex:`Lobsterdex`,lobster:`Lobster`,empty:`No lobsters unlocked in this browser yet.`,localCollection:`Unlocked in this browser. Your collection is not synced.`,unavailable:`This lobster is not unlocked in this browser. Using Default until it is.`},textSize:`Text size`},chatPrefs:{title:`Chat`,messageWidth:`Message width`,messageWidthHint:`Optional CSS width for the centered transcript, such as 960px, 82%, or min(1280px, 82%).`,messageWidthInvalid:`Enter a CSS width such as 960px, 82%, min(1280px, 82%), or calc(100% - 2rem).`,showTaskProgress:`Show task progress cards`,showTaskProgressHint:`Show task progress in the chat composer. Hiding it does not stop the agent or clear saved progress. Dashboard widgets and session previews are unchanged.`,openLinksExternally:`Open links outside OpenClaw`,openLinksExternallyHint:`Use your browser instead of the OpenClaw built-in browser.`,openLinksExternallyStorage:`Saved in this browser only.`,collapseTaskProgress:`Collapse task progress by default on desktop`,collapseTaskProgressHint:`On desktop, start task progress collapsed. It can expand when the response finishes if you are at the end of the chat. A manual close keeps it collapsed for that session. On mobile, task progress always starts collapsed and only opens when you open it manually.`},sessionSources:{title:`Session sources`,hint:`Choose which coding apps show their existing conversations in the sidebar.`,scope:`Applies to everyone on this Gateway without restarting it.`,claude:`Show Claude Code sessions`,codex:`Show Codex sessions`,opencode:`Show OpenCode sessions`,pi:`Show Pi sessions`,sourceHint:`Discover conversations on this Gateway and eligible paired computers. Requires the {plugin} plugin to be enabled.`,empty:`No supported session source plugins are installed. Add one in Manage plugins.`,unavailable:`Session source settings are unavailable. Reconnect or reload Settings to try again.`,managePlugins:`Manage plugins`},sidebarPrefs:{title:`Sidebar`,hint:`Choose what appears while sessions are running.`,liveActivity:`Show live agent activity in sidebar`,liveActivityHint:`Show the latest assistant or tool activity beneath running sessions.`,deleteConfirm:`Confirm before deleting sessions`,deleteConfirmHint:`Applies to sidebar deletes. Stopping cloud workers and removing preserved worktrees always ask.`},sessionStorage:{title:`Session storage`,description:`Transcript counts and disk usage across this Gateway's agent databases.`,transcripts:`Transcripts`,transcriptCounts:`{hot} uncompressed · {cold} archived`,database:`Databases`,walSize:`Write-ahead logs: {size}`,archives:`Archive files`,embeddedArchives:`Compressed archives in database`,embeddedArchivesHint:`Included in the database size above.`,refreshAfterError:`Refresh to check the current maintenance state.`,byAgent:`Details by agent`,agentCounts:`{hot} uncompressed · {cold} archived · Database {database} · WAL {wal} · Archive files {archives} · Compressed in database {embedded}`,worker:`Background maintenance`,completed:`Last completed {time} · {count} transcripts archived`,notRun:`No completed maintenance run in this Gateway process.`,running:`Running`,runningProgress:`{archived} transcripts archived · {externalized} archives moved to files`,externalized:`{count} compressed archives moved from the database to files.`,idle:`Idle`,failed:`Needs attention`,adminRequired:`Administrator access is required to inspect session storage.`,disconnected:`Connect to the Gateway to inspect session storage.`,automatic:`Automatic archival`,enabled:`Archive older transcripts`,enabledHint:`Workers move inactive transcripts into compressed JSONL files. Running sessions stay in the database; archived history is restored before use.`,afterDays:`Archive after (days)`,afterDaysHint:`Days since the transcript last changed. Changes apply without a Gateway restart.`,backupHint:`OpenClaw backups capture archived history with the database. Direct database copies also need the archive files. Missing or damaged archives require recovery from a backup.`,advanced:`Advanced session settings`,runNow:`Run now`,runHint:`Run one background batch using the saved, applied policy.`,runStarted:`Background batch started. You can leave this page while it runs.`,runCompleted:`Batch completed. {count} transcripts archived.`},sessionObserver:{title:`Session observer`,hint:`Summarize long-running sessions with a small utility model.`,toggle:`Session observer`,toggleHint:`Generate live status digests for subscribed Control UI sessions.`,resolvedModel:`Resolved small model`,modelAuto:`auto ({model})`,modelConfigured:`configured ({model})`,modelDisabled:`disabled`,modelUnavailable:`unavailable (no small model)`,modelPicker:`Small model`,modelPickerHint:`Used for observer digests and other short utility tasks.`,modelCatalogUnavailable:`Explicit model catalog unavailable`,auto:`Auto (provider default)`,disabled:`Disabled`,toggleNote:`Update the Control UI session observer`,modelNote:`Update the default utility model`},connection:{title:`Connection`,gateway:`Gateway`,status:`Status`,assistant:`Assistant`}},memoryPage:{intro:`Choose how OpenClaw stores, searches, and maintains agent memory.`,tablistLabel:`Memory sections`,tabs:{overview:`Overview`,memories:`Memories`,dreams:`Dreams`,settings:`Settings`},overview:{hero:{awake:`Memory is awake`,waking:`Waking memory…`,hibernating:`Memory is hibernating`,needsAttention:`Memory needs attention`,noSearchRuntime:`Host memory search is unavailable`,noSearchRuntimeDescription:`{engine} does not provide a host memory search runtime. Other memory integrations may run independently.`,activeDescription:`{engine} · {mode}`,loadingDescription:`Checking this agent's memory engine and dream cycle.`,offDescription:`Choose a memory engine in Settings to wake it up.`,disabledDescription:`The selected memory engine is disabled. Re-enable it in Settings.`,gatewayOffline:`The gateway is offline, so memory status is unavailable.`,hybridSearch:`hybrid search`,keywordSearch:`keyword search (no embeddings)`,openSettings:`Open Settings`,retry:`Retry`,refresh:`Refresh status`},schedule:{title:`Sleep schedule`,lightDescription:`Sorts fresh short-term notes and stages promising candidates without changing long-term memory.`,remDescription:`Reflects on themes and recurring ideas across recent activity to strengthen ranking without changing long-term memory.`,deepDescription:`Scores staged candidates, promotes the keepers into long-term memory (MEMORY.md), and writes the dream diary.`,nextRun:`next {time}`,lastRun:`last {time}`,notScheduled:`Not scheduled`,learnMore:`How dreaming works`,openDocs:`Open dreaming guide`},activity:{title:`Activity`,promotedToday:`Promoted today`,promotedTotal:`Promoted total`,shortTermCount:`Pending short-term entries`,phaseHitCount:`Phase signals`,lightPhaseHitCount:`Light-phase hits`,remPhaseHitCount:`REM-phase hits`},health:{title:`Engine health`,provider:`Provider`,embeddings:`Embeddings`,runtime:`Embedding runtime`,healthy:`Ready`,unavailable:`Unavailable`,notChecked:`Not checked`,notCheckedDescription:`Embedding readiness has not been checked yet.`,checking:`Checking…`,test:`Test`,testing:`Testing…`},shortcuts:{title:`Explore memory`,memories:`Search memories`,diary:`Read the dream diary`,settings:`Configure memory`}},memories:{searchLabel:`Search memories`,searchPlaceholder:`Search this agent's memories`,searchButton:`Search`,idle:`Search for a person, project, decision, or anything else this agent remembers.`,searching:`Searching memories…`,results:`{count} results`,empty:`No memories matched “{query}”.`,error:`Memory search failed: {message}`,retry:`Retry`,gatewayUpdateRequired:`Update the gateway to search memories from the Control UI.`,hybridSearch:`hybrid search`,keywordSearch:`keyword search`,lineRange:`lines {start}–{end}`,score:`score {score}`,sourceMemory:`memory`,sourceSessions:`sessions`,fileLoading:`Loading the full memory file…`,fileError:`Could not load this memory file: {message}`,fileUnsupported:`This memory file cannot be shown as text.`},engine:{title:`Engine`,description:`Exactly one memory plugin owns the memory slot. Selecting an engine enables it and disables the others.`,rowTitle:`Memory engine`,openClawMemory:`OpenClaw Memory`,off:`Off`,unavailable:`Unavailable`,autoHint:`No engine is pinned in config, so the slot falls back to its default owner.`,explicitHint:`This engine is pinned in config under plugins.slots.memory.`,offHint:`Memory is switched off in config: plugins.slots.memory is set to none.`,catalogUnavailable:`Connect to the gateway to change the memory engine.`,changeFailed:`Could not change the memory engine`,disabledTitle:`This engine is disabled`,disabledHint:`The memory slot points at this plugin, but the plugin itself is disabled, so memory is not running.`,enable:`Enable`},addons:{title:`Add-ons`,description:`These plugins layer on top of the engine instead of competing for the slot, so any combination can run at once.`,activeMemory:{title:`Active memory`},memoryWiki:{title:`Memory wiki`},toggleAriaLabel:`Enable or disable {plugin}`,changeFailed:`Could not update {plugin}`,stateUnknown:`Unknown`,manage:`Enable or disable add-ons`,manageLink:`Open Plugins`},import:{title:`Import`,description:`Bring existing memory from other assistants into an agent workspace.`,link:`Open Memory Import`},search:{intro:`Embedding and retrieval defaults shared by every agent that has no memory override.`},dreaming:{intro:`Dreaming runs as one managed automation across every agent workspace, so these settings are global. They are owned by the {plugin} plugin.`,schedule:{title:`Schedule`,description:`When the full sweep runs and which model narrates it.`},frequency:{label:`Dreaming frequency`,help:`Cron cadence for the full dreaming sweep (light, REM, then deep). Leave empty for the plugin default.`,placeholder:`0 3 * * *`},timezone:{label:`Timezone`,help:`IANA timezone used to interpret the cron cadence.`,placeholder:`Europe/Vienna`,default:`Gateway local timezone`},model:{label:`Dreaming model`,help:`Provider/model override for dream diary narration. Requires subagent model overrides to be allowed.`,placeholder:`anthropic/claude-sonnet-4-6`,default:`Agent model`},verboseLogging:{label:`Verbose logging`,help:`Log each dreaming phase in detail. Useful when tuning thresholds.`},storage:{title:`Storage`,description:`Where promoted memories and dreaming reports are written.`,modeLabel:`Storage mode`,modeHelp:`Inline writes into the memory file; separate keeps a dedicated report file.`,modes:{inline:`Inline`,separate:`Separate`,both:`Both`},separateReportsLabel:`Separate reports`,separateReportsHelp:`Keep dreaming reports out of the main memory file.`},phases:{light:{title:`Light phase`,description:`Cheap recent-activity pass that stages replay candidates.`},deep:{title:`Deep phase`,description:`Scored promotion pass that graduates short-term entries into memory.`},rem:{title:`REM phase`,description:`Pattern pass that looks for recurring themes across the lookback window.`}},phaseFields:{enabled:`Enabled`,enabledHelp:`Run this phase during the sweep.`,lookbackDays:`Lookback days`,lookbackDaysHelp:`How far back this phase reads. Leave empty for the plugin default.`,limit:`Limit`,limitHelp:`Maximum entries this phase processes per run.`,dedupeSimilarity:`Dedupe similarity`,dedupeSimilarityHelp:`Similarity above which two candidates are treated as duplicates.`,minScore:`Minimum score`,minScoreHelp:`Promotion score an entry must reach.`,minRecallCount:`Minimum recalls`,minRecallCountHelp:`How often an entry must be recalled before it can be promoted.`,minUniqueQueries:`Minimum unique queries`,minUniqueQueriesHelp:`How many distinct queries must have surfaced the entry.`,recencyHalfLifeDays:`Recency half-life (days)`,recencyHalfLifeDaysHelp:`How quickly older recall signals lose weight.`,maxAgeDays:`Maximum age (days)`,maxAgeDaysHelp:`Ignore short-term entries older than this.`,maxPromotedSnippetTokens:`Max promoted snippet tokens`,maxPromotedSnippetTokensHelp:`Token budget for each promoted snippet. Provenance stays attached.`,minPatternStrength:`Minimum pattern strength`,minPatternStrengthHelp:`Strength a recurring pattern must reach to be reported.`},agentScope:{rowTitle:`Agent`},unsupported:{title:`Dreaming settings`,rowTitle:`Not available for this engine`,description:`The {plugin} plugin owns the memory slot and its config schema has no dreaming section, so these settings cannot be stored. Switch the engine above to edit them.`}}}},i=Object.assign(()=>{Object.assign(n.agentTools,r.agentTools),Object.assign(n.talkPage,r.talkPage),Object.assign(n.configForm.sections,r.configForm.sections),n.memoryPage=r.memoryPage,n.modelProviders=r.modelProviders,n.searchPage=r.searchPage,n.cloudWorkersPage=r.cloudWorkersPage,Object.assign(n.connection,r.connection),Object.assign(n.configPage,r.configPage),Object.assign(n.configView,r.configView),Object.assign(n.updates,r.updates)},{catalog:r})})))()}export{i as n,a as t};