{ "code": { "1000": "Connection failed. Check the network or host address.", "1001": "Connection timed out. Check the network or try again later.", "1002": "Authentication failed. Check the username and password.", "1003": "Host unreachable. Check network settings.", "1004": "Connection closed", "1100": "Failed to create terminal", "1101": "Command execution failed", "1102": "Port forward setup failed", "1200": "SFTP connection failed", "1201": "File not found", "1202": "Permission denied for this file or directory", "1203": "File transfer failed", "1204": "Could not read directory contents", "1300": "Session not found", "1301": "Failed to save session", "1302": "Failed to load session", "1400": "Invalid host address format", "1401": "Port must be between 1 and 65535", "1402": "Invalid credential format", "9000": "An unknown error occurred", "9001": "Internal communication error", "9002": "File system error", "9003": "Network error" }, "action": { "retry": "Retry", "reconnect": "Reconnect", "ignore": "Ignore", "exit": "Exit", "none": "None" }, "connection": { "failed": "Connection failed. Check the network or host address.", "timeout": "Connection timed out. Check the network or try again later.", "authFailed": "Authentication failed. Check the username and password.", "hostUnreachable": "Host unreachable. Check network settings.", "closed": "Connection closed", "dnsFailed": "Could not resolve host", "refused": "Connection refused", "disconnected": "Disconnected", "keepaliveFailed": "SSH keep-alive failed repeatedly; connection closed", "idleKicked": "Remote shell logged out due to idle timeout (TMOUT)", "unexpectedDropped": "Disconnected (network drop or remote close)", "shellExited": "Remote shell exited (exit, Ctrl+D, or server policy)", "shellReadFailed": "Failed to read from the remote shell" }, "auth": { "failed": "Authentication failed. Check the username and password.", "invalidCredentials": "Invalid credential format", "keyLoadFailed": "Failed to load private key", "passphraseRequired": "Private key requires a passphrase", "passphraseWrong": "Incorrect private key passphrase" }, "shell": { "createFailed": "Failed to create terminal", "execFailed": "Command execution failed", "localCreateFailed": "Failed to create local shell", "remoteCreateFailed": "Failed to create remote shell" }, "proxy": { "connectFailed": "Proxy connection failed", "authFailed": "Proxy authentication failed", "tunnelFailed": "Failed to establish proxy tunnel", "unsupported": "Unsupported proxy type", "jumpFailed": "Jump host connection failed", "hostRequired": "Proxy host is required", "hostNoSpaces": "Proxy host cannot contain spaces", "portRequired": "Proxy port must be greater than 0", "portTooHigh": "Proxy port cannot exceed 65535" }, "forward": { "failed": "Port forward setup failed", "bindFailed": "Failed to bind port", "alreadyInUse": "Local port is already in use. Stop the running forward (or the other process on that port), then start again.", "remoteDenied": "Remote port forward refused by the server (AllowTcpForwarding / PermitListen, port in use, or bind limits). OpsXShell listens on remote 127.0.0.1 only.", "remoteDeniedPrivileged": "Remote refused a privileged listen port (<1024). Use a port ≥1024, or root on the server, and check AllowTcpForwarding / PermitListen.", "invalidTargetHost": "Target cannot be 0.0.0.0 — use 127.0.0.1 or a reachable internal IP" }, "sftp": { "connectFailed": "SFTP connection failed", "fileNotFound": "File not found", "permissionDenied": "Permission denied for this file or directory", "transferFailed": "File transfer failed", "listFailed": "Could not read directory contents", "readFailed": "Read failed", "writeFailed": "Save failed", "renameFailed": "Rename failed", "chmodFailed": "Failed to update permissions", "apiUnavailable": "SFTP API unavailable", "channelFailed": "Could not open SFTP channel (server limit or busy session). Reconnect and try again", "sessionGone": "SFTP session ended; reconnect to continue", "busy": "A file transfer is in progress. Try again when it finishes.", "editTooLarge": "File is too large for the text editor (max ~2MB). Download it and open locally.", "editBinary": "This file looks binary and cannot be opened in the text editor", "editNotUtf8": "Remote file is not valid UTF-8 text", "transferCancelled": "Transfer cancelled", "diskFull": "Not enough disk space on the remote or local side" }, "session": { "notFound": "Session not found", "saveFailed": "Failed to save session", "loadFailed": "Failed to load session", "readConfigFailed": "Could not read session config", "exportWriteFailed": "Failed to write export file", "exportFailed": "Session export failed", "importReadFailed": "Failed to read file", "importFailed": "Session import failed", "importEmpty": "No importable sessions found" }, "validation": { "invalidHost": "Invalid host address format", "invalidPort": "Port must be between 1 and 65535", "invalidCredentials": "Invalid credential format", "hostRequired": "Enter a host address", "usernameRequired": "Enter a username", "targetRequired": "Enter a host, e.g. root@192.168.1.10 or opsbase.cn:5555", "serialPathRequired": "Enter a serial device path", "taskRequired": "Enter a task or follow-up" }, "filesystem": { "error": "File system error", "readFailed": "Failed to read file", "writeFailed": "Failed to write file" }, "clipboard": { "readFailed": "Failed to read clipboard", "writeFailed": "Failed to write clipboard", "copyPathFailed": "Failed to copy path", "unsupportedRead": "Reading the clipboard is not supported in this environment", "unsupportedWrite": "Writing to the clipboard is not supported in this environment" }, "ipc": { "error": "Internal communication error", "nativeApiUnavailable": "Native API unavailable" }, "network": { "error": "Network error" }, "pool": { "limitReached": "Connection limit reached ({{max}}). Close some connections first." }, "desktop": { "connectFailed": "Connection failed", "fileTooLarge": "Single file limit is 50MB", "nativeOnly": "Remote connections are only available in the OpsXShell Tauri desktop app", "rdpNativeOnly": "RDP is only available in the OpsXShell Tauri desktop app", "vncNativeOnly": "VNC is only available in the OpsXShell Tauri desktop app" }, "serial": { "openFailed": "Failed to open serial port", "writeFailed": "Serial write failed", "nativeOnly": "Serial ports are only available in the Tauri desktop app" }, "ai": { "noProvider": "Configure an AI provider in Settings → AI first", "noApiKey": "No API key saved for \"{{provider}}\"", "modelEmpty": "Model returned no content", "protocolFailed": "Model failed the tool protocol twice; stopped", "noConclusion": "Model returned no usable conclusion", "multipleCommands": "Model returned multiple commands; execution refused", "invalidCommand": "Model did not return a single one-line command; execution refused", "repeatLoop": "Repeated command loop detected; stopped: {{command}}", "criticalBlocked": "Command hit a destructive hard block; no override: {{command}}", "execFailed": "Remote execution failed: {{error}}", "maxSteps": "Reached {{max}}-step limit; narrow the scope and retry", "sshRequired": "A connected remote SSH session is required", "maxStepsIncomplete": "Incomplete (max_steps): hit the {{max}}-step budget. Narrow scope or follow up to resume." }, "zmodem": { "readFailed": "Read failed: {{name}}", "writeFailed": "Write failed: {{name}}" }, "native": { "taskJoin": "A background task failed. Retry the operation.", "invalidBase64": "File data is not valid Base64.", "knownHostsPath": "Could not locate ~/.ssh/known_hosts.", "invalidHostKeyDecision": "Invalid host key decision." }, "unknown": { "error": "An unknown error occurred" } }