openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
1 lines • 10.3 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Iu as t,Lu as n}from"./control-ui-core-BncvAZjR.js";var r,i;function a(){return(a=e((()=>{n(),r={devices:{readOnly:{pairingRequired:`Browsing only. Device changes require operator.pairing access.`,adminRequired:`Browsing only. Exec approvals and node bindings require operator.admin access.`,pairingAndAdminRequired:`Browsing only. Device changes require operator.pairing; exec approvals and node bindings require operator.admin.`},binding:{loadConfigHint:`Load config to edit bindings.`,formModeHint:`Switch the Config tab to Form mode to edit bindings here.`,execNodeBinding:`Exec node binding`,execNodeBindingSubtitle:`Pin agents to a specific node when using exec host=node.`,defaultBinding:`Default binding`,defaultBindingHint:`Used when agents do not override a node binding.`,node:`Node`,anyNode:`Any node`,noNodes:`No nodes with system.run available.`,noAgents:`No agents found.`,defaultAgent:`default agent`,agent:`agent`,usesDefault:`uses default ({node})`,override:`override: {node}`,binding:`Binding`,useDefault:`Use default`,any:`any`,unavailable:`Unavailable`},inventory:{title:`Paired devices`,connected:`connected`,desktop:`Desktop`,actions:`Actions`,actionsName:`Actions for {name}`,openDesktop:`Open desktop`,copyDeviceId:`Copy device ID`,deviceIdCopied:`Device ID copied`,removeAction:`Remove…`,editAlias:`Edit alias`,lastKnown:`last known {time}`,deviceIdLabel:`Device ID`,remoteIpLabel:`Remote IP`,scopesLabel:`Scopes`,requestedAccessLabel:`Requested access`,approvedAccessLabel:`Approved access`,tokenRole:`Role`,tokenStatus:`Status`,tokenAge:`Age`,desktopOpenWindow:`Open this desktop in a new window`,desktopEnableHint:`Desktop sharing starts enabled on desktop nodes. In the desktop app on that node, check the Desktop sharing switch under Settings. Approve any pending desktop capability request here, and check that Gateway policy does not deny desktop.stream. The node needs Screen Sharing or an authenticated local VNC server.`,uptime:`up {time}`,loadLabel:`load {load}`,loadTitle:`Load averages (1 / 5 / 15 min): {averages} on {cores} cores`,memoryTitle:`Memory: {used} used / {total} total`,diskLabel:`{available} free`,diskTitle:`Disk: {available} available / {total} total`,summaryConnected:`{connected} of {total} connected`,summaryPending:`{count} awaiting approval`,cleanupStale:`Clean up {count} stale`,pendingApproval:`Pending approval`,empty:`No paired devices.`,connectedWithoutPairing:`Connected without pairing`,olderPairing:`{count} older pairing of {name}`,olderPairings:`{count} older pairings of {name}`,autoPaired:`auto-paired`,versionDrift:`version drift`,versionDriftTitle:`Device {nodeVersion}; Gateway {gatewayVersion}. Update the older component to align the fleet.`,workerVersion:`Worker {version}`,workerMissing:`worker missing`,workerMissingTitle:`The Gateway-managed worker bundle is missing. Start a new session on this device to reinstall it.`,manualWake:`manual wake required`,manualWakeTitle:`The Gateway cannot wake an offline Windows device. Start the machine or restore its network connection.`,approvalNeeded:`approval needed`,inputAgo:`input {time} ago`,seen:`seen {time}`,approved:`approved {time}`,details:`Details`,deviceId:`Device ID: {id}`,tokens:`Tokens`,capabilities:`Capabilities`,commands:`Commands`,offline:`offline`,approve:`Approve`,reject:`Reject`,remove:`Remove`,removePromptTitle:`Remove {name}?`,removePromptBody:`This device must pair again before it can reconnect.`,removeStalePromptTitle:`Remove {count} stale pairings?`,removeStalePromptTitleOne:`Remove 1 stale pairing?`,removeStalePromptBody:`Affected clients re-pair silently on their next connection.`,renameTitle:`Rename {name}`,renamePrompt:`Shown instead of the device's hostname on this Gateway.`,rejectDevicePromptTitle:`Reject this device pairing request?`,rejectNodePromptTitle:`Reject this node pairing request?`,rejectPromptBody:`The client must send a new pairing request before it can connect.`,revokePromptTitle:`Revoke the {role} token?`,revokePromptBody:`This token stops working immediately and cannot be restored.`,rotatePromptTitle:`New {role} token`,rotatePromptBody:`Copy this token now and store it securely. It is shown once and cannot be recovered.`,rotateAcknowledge:`I saved this token`,rotateDismissHint:`This dialog stays open until you confirm the token is saved.`,rotateWithheldTitle:`Token rotated · {device}`,rotateWithheldNext:`It will reconnect with the new token automatically — nothing else to do.`,rotateWithheldException:`If it doesn't reconnect on its own, pair it again.`,rotateWithheldNote:`For security, the new token is only revealed on the device itself.`,gateway:`gateway`,unpaired:`unpaired`,unknownClient:`unknown client`,revoked:`revoked`,active:`active`,rotate:`Rotate`,revoke:`Revoke`,none:`none`,rolesAndScopes:`roles: {roles} · scopes: {scopes}`,scopeUpgrade:`scope upgrade requires approval`,roleUpgrade:`role upgrade requires approval`,reapproval:`reconnect details changed; approval required`,newPairing:`new device pairing request`,repair:`repair`,requestedAt:`{note} · requested {time}`},execApprovals:{title:`Exec approvals`,subtitlePrefix:`Allowlist and approval policy for`,loadHint:`Load exec approvals to edit allowlists.`,hostNativePolicy:`Host-native policy`,hostNativeHint:`Read-only here. Edit from the companion app or CLI.`,native:`Native`,defaultAction:`Default action`,rule:`{count} rule`,rules:`{count} rules`,allShells:`all shells`,off:`off`,on:`on`,target:`Target`,targetHint:`Gateway edits local approvals; node edits the selected node.`,host:`Host`,gateway:`Gateway`,node:`Node`,selectNode:`Select node`,noNodes:`No nodes advertise exec approvals yet.`,scope:`Scope`,defaults:`Defaults`,security:`Security`,defaultSecurity:`Default security mode.`,defaultValue:`Default: {value}.`,mode:`Mode`,useDefaultValue:`Use default ({value})`,ask:`Ask`,defaultPrompt:`Default prompt policy.`,askFallback:`Ask fallback`,promptUnavailable:`Applied when the UI prompt is unavailable.`,fallback:`Fallback`,autoAllowSkills:`Auto-allow skill CLIs`,autoAllowSkillsHint:`Allow skill executables listed by the Gateway.`,override:`Override ({value}).`,useDefault:`Use default`,allowlist:`Allowlist`,allowlistHint:`Case-insensitive glob patterns.`,addPattern:`Add pattern`,emptyAllowlist:`No allowlist entries yet.`,newPattern:`New pattern`,lastUsed:`Last used: {time}`,pattern:`Pattern`,remove:`Remove`,options:{deny:`Deny`,allowlist:`Allowlist`,full:`Full`,off:`Off`,onMiss:`On miss`,always:`Always`}},pairing:{subtitle:`Create a secure setup for a mobile app or node host.`,noApp:`Don't have the app yet?`,getApps:`Get the apps`,generating:`Creating a secure setup code…`,accessTitle:`Setup type`,fullAccess:`Full access (recommended)`,fullAccessHint:`Device capabilities plus complete Gateway controls, including settings and upgrades.`,limitedAccess:`Limited access`,limitedAccessHint:`Device capabilities, chat, and approvals without administrative controls.`,nodeAccess:`Node host`,nodeAccessHint:`Connect a computer as a command and capability host.`,generateCode:`Create setup code`,transportLimitedTitle:`Limited for network safety`,transportLimitedHint:`This Gateway URL uses plaintext ws://. Use wss:// or Tailscale Serve, then create a new code for full access.`,failed:`Could not create a setup code.`,statusFailed:`Could not verify whether pairing completed.`,qrAlt:`OpenClaw mobile pairing QR code`,qrUnavailable:`QR unavailable. Copy the setup code instead.`,copySetupCode:`Copy setup code`,nodeExpiresIn:`This setup link expires in {time}.`,nodeExpired:`This setup link has expired. Create a new one.`,newCode:`New code`,showSetupCode:`Show setup code`,pending:`Device requests waiting for review: {count}`,review:`Review`,waiting:`Official OpenClaw mobile apps connect automatically after scanning.`,pairedTitle:`Device paired`,deliveryUncertainTitle:`Pairing delivery could not be confirmed`,deliveryUncertainHint:`The setup code is retired, but the device may not have received its credential. Check Manage devices, remove the device if needed, then create a new code.`,fullAccessSummary:`Full access`,nodeAccessSummary:`Node access`,done:`Done`,expiredTitle:`Setup code expired`,generateNewCode:`Generate new code`,nodeWaiting:`Run the command on the device, then review its pairing request here.`,help:`Pairing help`,helpNewTab:`Pairing help (opens in a new tab)`,manageDevices:`Manage devices`},capabilities:{browser:{label:`Browser`,description:`Browse and interact with web pages.`},canvas:{label:`Canvas`,description:`Present and interact with visual content.`},screen:{label:`Screen`,description:`Capture or record the screen.`},computer:{label:`Computer`,description:`Control desktop applications with the mouse and keyboard.`},file:{label:`Files`,description:`Read and manage files on this device.`},system:{label:`System`,description:`Run commands and inspect this device.`},mcp:{label:`MCP`,description:`Use tools provided by MCP servers on this device.`},localInference:{label:`Local inference`,description:`Run models locally on this device.`},camera:{label:`Camera`,description:`Capture photos and video with the device camera.`},talk:{label:`Talk`,description:`Have voice conversations through this device.`},location:{label:`Location`,description:`Read the device location.`},notifications:{label:`Notifications`,description:`Read and manage device notifications.`},contacts:{label:`Contacts`,description:`Find and manage contacts.`},calendar:{label:`Calendar`,description:`Read and manage calendar events.`},reminders:{label:`Reminders`,description:`Read and manage reminders.`},device:{label:`Device`,description:`Read device information and status.`},photos:{label:`Photos`,description:`Browse the device photo library.`},sms:{label:`SMS`,description:`Read and send text messages.`},health:{label:`Health`,description:`Read health and fitness data.`},motion:{label:`Motion`,description:`Read movement and activity data.`},runtime:`1 runtime`,runtimes:`{count} runtimes`,overflow:`{count} more capabilities`}}},i=Object.assign(()=>{let{pairing:e,...n}=r.devices;Object.assign(t.devices,n),Object.assign(t.devices.pairing,e)},{catalog:r})})))()}export{i as n,a as t};