/** Canonical English message table, aggregated from per-cluster slices. Keys are dot-namespaced * by area (lang/cmd/status/...). Values may contain ${param} placeholders resolved by i18n.t(). * Icons (core/icons.ts) are kept in code, NOT in these strings — only human-readable text here. */ export declare const en: { 'init.clipboard.prompt': "\nPress \"c\" to copy manifest to clipboard (any other key to skip)..."; 'init.clipboard.copied': "Manifest copied to clipboard!"; 'init.clipboard.failed': "Could not copy. If running in a terminal, ensure OSC 52 is enabled."; 'init.clipboard.manual': "The manifest text is shown above — please copy it manually."; 'init.backend.alreadyInstalled': "${label} is already installed."; 'init.backend.installing': "Installing ${label}..."; 'init.backend.installed': "${label} installed successfully."; 'init.backend.installFailed': "Failed to install ${label}."; 'init.backend.installFailedHint': "Installation failed. Install manually: ${command}"; 'init.backend.loginHint.claude': "Run `claude login` to authenticate."; 'init.backend.loginHint.pi': "Configure your provider in PI settings."; 'init.backend.label.claude': "Claude Code"; 'init.backend.label.pi': "PI"; 'init.service.launchdWritten': "launchd plist written to ${path}"; 'init.service.launchdStartHint': "To start now: launchctl load ${path}"; 'init.service.systemdUserWritten': "systemd unit written to ${path}"; 'init.service.systemdUserEnableHint': "To enable: sudo systemctl --user enable --now cortex"; 'init.service.systemdInstalled': "systemd unit installed to ${path}"; 'init.service.systemdEnableHint': "To enable: sudo systemctl enable --now cortex"; 'init.service.systemInstallFailed': "Failed to install system service: ${message}"; 'init.service.noSudo': "No sudo access. Service file saved locally."; 'init.service.manualInstallHint': "To install manually:\n sudo cp ${localPath} ${systemPath}\n sudo systemctl daemon-reload\n sudo systemctl enable --now cortex"; 'init.service.unsupported': "Service registration is not supported on ${platform}. Start Cortex manually with `cortex daemon`."; 'init.cancel': "Init cancelled."; 'init.slack.manifestTitle': "Slack App Manifest — copy and paste when creating the app"; 'init.slack.guide': string; 'init.slack.guideTitle': "Slack App Setup Guide"; 'init.slack.prefillFound': "Found existing Slack configuration. Press Enter to skip, or type anything to re-enter."; 'init.slack.skipPrompt': "Skip Slack configuration? (Enter = skip, any key + Enter = re-enter)"; 'init.slack.skipPlaceholder': "Press Enter to skip"; 'init.slack.signingSecretPrompt': "Step 1/3: SLACK_SIGNING_SECRET (from Basic Information):"; 'init.slack.signingSecretRequired': "Signing secret is required."; 'init.slack.appTokenPrompt': "Step 2/3: SLACK_APP_TOKEN (App-Level Token, starts with xapp-):"; 'init.slack.appTokenRequired': "App token is required."; 'init.slack.appTokenPrefix': "Token should start with xapp-"; 'init.slack.botTokenPrompt': "Step 3/3: SLACK_BOT_TOKEN (Bot User OAuth Token, starts with xoxb-):"; 'init.slack.botTokenRequired': "Bot token is required."; 'init.slack.botTokenPrefix': "Token should start with xoxb-"; 'init.feishu.guide': string; 'init.feishu.guideTitle': "Feishu App Setup Guide"; 'init.feishu.appIdPrompt': "FEISHU_APP_ID:"; 'init.feishu.appIdRequired': "App ID is required."; 'init.feishu.appSecretPrompt': "FEISHU_APP_SECRET:"; 'init.feishu.appSecretRequired': "App secret is required."; 'init.feishu.domainPrompt': "FEISHU_DOMAIN (optional, \"feishu\" or \"lark\"):"; 'init.feishu.domainPlaceholder': "feishu (leave blank to use default)"; 'init.feishu.authModePrompt': "Identity for MCP document operations:"; 'init.feishu.authModeBotLabel': "bot"; 'init.feishu.authModeBotHint': "documents owned by the app"; 'init.feishu.authModeUserLabel': "user (Recommended)"; 'init.feishu.authModeUserHint': "documents owned by your Feishu account"; 'init.feishu.loginStarting': "Starting Feishu user login (OAuth device flow)..."; 'init.feishu.loginComplete': "Feishu user login complete."; 'init.feishu.loginIncomplete': "Feishu user login did not complete. Retry later with `cortex feishu login`."; 'init.intro': "Cortex Setup"; 'init.backend.noteBody': "Both Claude Code and PI support API key access to any model."; 'init.backend.noteTitle': "Backend info"; 'init.backend.prompt': "Which backends would you like to use?"; 'init.backend.claudeLabel': "Claude Code"; 'init.backend.claudeHint': "recommended, for Claude subscription"; 'init.backend.piLabel': "PI"; 'init.backend.piHint': "for other subscription"; 'init.platform.prompt': "Which interaction platform(s) would you like to use? (space to toggle, enter to confirm, leave empty to skip)"; 'init.platform.slackLabel': "Slack"; 'init.platform.slackHint': "recommended"; 'init.platform.feishuLabel': "Feishu (飞书)"; 'init.machine.prompt': "Machine name for this device:"; 'init.machine.required': "Machine name is required."; 'init.machine.gpuDetected': "Detected ${count} NVIDIA GPU(s)"; 'init.machine.gpuNone': "No NVIDIA GPU detected (gpuCount=0)"; 'init.gateway.note': string; 'init.gateway.noteTitle': "Gateway & aistatus"; 'init.gateway.enablePrompt': "Enable token usage reporting to aistatus?"; 'init.gateway.namePrompt': "Name:"; 'init.gateway.namePlaceholder': "your name"; 'init.gateway.orgPrompt': "Organization:"; 'init.gateway.orgPlaceholder': "your organization"; 'init.gateway.emailPrompt': "Email (identity only, not displayed):"; 'init.gateway.emailPlaceholder': "you@example.com"; 'init.serviceRegister.prompt': "Register Cortex as a system service (auto-start on boot)?"; 'init.gatewaySetup.overwritePrompt': "Existing `plan` or `execute` profile detected. Overwrite with a new selection?"; 'init.gatewaySetup.planPrompt': "Pick model for the `plan` profile (used by executor agents — planner, doc-writer, coder, etc.):"; 'init.gatewaySetup.executePrompt': "Pick model for the `execute` profile (used by reviewer agents — reviewer, doc-reviewer, coder-reviewer, etc.):"; 'init.gatewaySetup.planFallbackPrompt': "Pick fallback models for `plan` (in order, space to toggle, enter to confirm, leave empty for no fallback):"; 'init.gatewaySetup.executeFallbackPrompt': "Pick fallback models for `execute` (in order, space to toggle, enter to confirm, leave empty for no fallback):"; 'init.gatewaySetup.extraProfilesPrompt': "Pick additional models to register as standalone profiles (profile name = model name, space to toggle, enter to confirm, leave empty to skip):"; 'init.gatewaySetup.noBackends': "No backends discovered. Make sure you have logged into Claude Code and/or PI first."; 'init.gatewaySetup.rerunHint': "You can re-run detection later with: cortex setup-gateway"; 'init.gatewaySetup.discovered': "Discovered ${count} endpoint modes:\n${summary}"; 'init.gatewaySetup.gatewayWritten': "Gateway config written to ${path}"; 'init.gatewaySetup.preservedModes': "Preserved ${count} existing gateway mode(s) that discovery did not report: ${list}"; 'init.gatewaySetup.preservedModesHint': "If these should have been auto-detected, check `pi /login` / `pi --list-models` and re-run."; 'init.gatewaySetup.profilesWritten': "Profiles written to ${path}"; 'init.gatewaySetup.generatedProfiles': "Generated profiles: ${names} (default: ${default})"; 'init.gatewaySetup.profileIssues': "${count} profile(s) reference a gateway mode that is not configured:\n${lines}"; 'init.gatewaySetup.profileIssuesHint': "These would fail at runtime with \"Unknown mode\". Add the mode to gateway.yaml or fix the profile."; 'init.gatewayProfile.note': string; 'init.gatewayProfile.noteTitle': "Gateway & Profile Setup"; 'init.gatewayProfile.readyPrompt': "Have you logged in and are ready to auto-detect?"; 'init.gatewayProfile.loginNow': "Please log in now. Once done, come back and select \"Yes\".\n${loginHints}"; 'init.gatewayProfile.actionPrompt': "What would you like to do?"; 'init.gatewayProfile.retryLabel': "I've logged in, retry detection"; 'init.gatewayProfile.skipLabel': "Skip for now (run `cortex setup-gateway` later)"; 'init.gatewayProfile.skipped': "Skipped. Run `cortex setup-gateway` later to auto-configure."; 'init.outro': "Cortex initialized at ${dataDir}. Run `cortex start` to launch."; 'init.git.required': "Git is required but was not found on your system."; 'init.git.initFailed': "git init failed: ${message}"; 'init.git.autoInstalling': "Attempting automatic git installation..."; 'init.git.installed': "Git installed successfully."; 'init.git.notOnPath': "Git was installed but is not on PATH. You may need to restart your shell."; 'init.git.autoInstallFailed': "Automatic installation failed."; 'init.git.manualHint': "Please install git manually: ${hint}"; 'init.config.title': "Cortex configuration:"; 'init.config.statusTitle': "Status:"; 'init.config.initialized': "initialized"; 'init.config.notInitialized': "not initialized"; 'init.config.found': "found"; 'init.config.missing': "missing"; 'startup.started': "Cortex agent v${version} started on ${machine}."; 'startup.restarted': "Cortex agent v${version} restarted on ${machine}."; 'startup.reason': " Reason: ${reason}."; 'interaction.askExpired': "This AskUserQuestion prompt has expired. Please ask again if you still need it."; 'interaction.askInactive': "This AskUserQuestion prompt is no longer active."; 'interaction.selectOrType': "Please select an option or type a custom answer."; 'interaction.questionsProgress': "Questions (${answered}/${total} answered)"; 'interaction.planApproved': "Plan approved — Cortex will proceed."; 'interaction.planApprovedRich': "*Plan approved* — Cortex will proceed."; 'interaction.planFeedbackSent': "Plan feedback sent — Cortex will revise.\n> ${feedback}"; 'interaction.noSpecificFeedback': "No specific feedback"; 'interaction.cancelledPreserved': "Cancelled. Session preserved — next message will resume."; 'interaction.sessionActive': "Session `${sessionName}` active — send your message below.${profileNote}"; 'interaction.sessionProfileNote': " (profile: ${profileName})"; 'interaction.newConversation': "--- new conversation --- (profile: ${profileName})"; 'update.installing': "Installing @cortex-agent/server@${version}... daemon will restart shortly."; 'update.skipped': "Skipped version ${version}."; 'update.cancelled': "Update cancelled. Will check again at next interval."; 'update.releaseNotesTitle': "Cortex Server v${version} Release Notes"; 'update.releaseNotesEmpty': "(No release notes available)"; 'update.releaseNotesTruncated': "\n\n_[Truncated — view full notes on GitHub]_"; 'update.releaseNotesBody': "**${name}**\n\n${body}\n\n[View full release notes](${url})"; 'update.releaseNotesFetchFailed': "Failed to fetch release notes for v${version}. View on GitHub: ${url}"; 'update.available': "Cortex Server v${version} is available. Update now?"; 'update.availableSection': "Cortex Server v${version} is available."; 'update.superseded': "Superseded by a newer update prompt."; 'update.timedOut': "Update prompt timed out."; 'update.button.update': "Update"; 'update.button.releaseNote': "Release Note"; 'update.button.skip': "Skip this version"; 'update.button.cancel': "Cancel"; 'modal.answer': "Answer (${answered}/${total})"; 'modal.selectOneOrMore': "Select one or more"; 'modal.selectOne': "Select one"; 'modal.typeAnswerLabel': "Or type your answer"; 'modal.customAnswerPlaceholder': "Custom answer (overrides selection above)"; 'modal.yourAnswerLabel': "Your answer"; 'modal.yourAnswerPlaceholder': "Type your answer"; 'modal.questionsTitle': "Questions"; 'modal.submit': "Submit"; 'modal.cancel': "Cancel"; 'modal.planReady': "*Plan ready for review.* Approve to proceed or provide feedback."; 'modal.approve': "Approve"; 'modal.provideFeedback': "Provide Feedback"; 'modal.planFeedbackTitle': "Plan Feedback"; 'modal.feedbackLabel': "Your feedback (Cortex will revise the plan)"; 'modal.feedbackPlaceholder': "What should be changed?"; 'subtask.fromTask': "Subtask #${taskId}"; 'subtask.fromUnknown': "a subtask"; 'subtask.escalateHeader': "[Subtask question — escalated to you] ${from} hit something unclear/contradictory while executing and has no manager above it, so it is checking with you:"; 'subtask.questionLabel': "Question: ${question}"; 'subtask.escalateReply': "Just reply in this channel — your next message will be returned to that subtask as the answer."; 'subtask.replyDelivered': "Your reply has been delivered to the subtask that asked."; 'schedule.help.title': "*Schedule commands:*"; 'schedule.help.addInterval': "`!schedule add interval [--profile ] ` — repeat every duration (e.g. `30m`, `2h`, `1d`)"; 'schedule.help.addDaily': "`!schedule add daily [--profile ] ` — run every day at a fixed time (24-hour)"; 'schedule.help.addWeekly': "`!schedule add weekly [--profile ] ` — run every week (day: mon,tue,wed,thu,fri,sat,sun)"; 'schedule.help.addOnce': "`!schedule add once [--profile ] ` — run once after a delay"; 'schedule.help.list': "`!schedule list` — show all scheduled tasks"; 'schedule.help.pause': "`!schedule pause ` — pause a recurring task"; 'schedule.help.resume': "`!schedule resume ` — resume a paused recurring task"; 'schedule.help.remove': "`!schedule remove ` — remove a task by id"; 'schedule.help.availableProfiles': "Available profiles: ${profileNames}"; 'schedule.list.empty': "No scheduled tasks."; 'schedule.list.header': "*Scheduled tasks (${count}):*\n${lines}"; 'schedule.remove.usage': "Usage: `!schedule remove `"; 'schedule.remove.ok': "Removed task `${id}`."; 'schedule.taskNotFound': "Task not found: `${id}`"; 'schedule.pause.usage': "Usage: `!schedule pause `"; 'schedule.pause.ok': "Paused task `${id}`."; 'schedule.resume.usage': "Usage: `!schedule resume `"; 'schedule.resume.ok': "Resumed task `${id}`.${nextAt}"; 'schedule.resume.nextRun': " Next run: ${time}."; 'schedule.invalidDuration': "Invalid duration: `${duration}`. Use e.g. `30s`, `5m`, `2h`, `1d`"; 'schedule.invalidTime': "Invalid time: `${time}`. Use 24-hour HH:MM, e.g. `${example}`"; 'schedule.invalidDay': "Invalid day: `${day}`. Use: mon, tue, wed, thu, fri, sat, sun"; 'schedule.add.intervalUsage': "Usage: `!schedule add interval [--profile ] `"; 'schedule.add.dailyUsage': "Usage: `!schedule add daily [--profile ] `"; 'schedule.add.weeklyUsage': "Usage: `!schedule add weekly [--profile ] `"; 'schedule.add.onceUsage': "Usage: `!schedule add once [--profile ] `"; 'schedule.add.scheduledInterval': "Scheduled every *${duration}*: \"${message}\""; 'schedule.add.scheduledDaily': "Scheduled daily at *${time}*: \"${message}\""; 'schedule.add.scheduledWeekly': "Scheduled weekly *${day} ${time}*: \"${message}\""; 'schedule.add.scheduledOnce': "Scheduled once in *${duration}*: \"${message}\""; 'schedule.add.unknownType': "Unknown type: `${type}`. Use `interval`, `daily`, `weekly`, or `once`"; 'schedule.profileUsage': "Usage: ${usage}"; 'cmd.cancel.nothingRunning': "Nothing running to cancel."; 'cmd.cancel.cancelledN': "Cancelled ${n} execution(s)."; 'cmd.cancel.cancelledShort': "Cancelled (${id})"; 'cmd.cancel.threadCancelled': "Thread `${id}` cancelled."; 'cmd.cancel.threadNotFound': "No running thread `${id}` found to cancel."; 'cmd.cancel.dispatchUnavailable': "Dispatched-task cancellation is not available in this process."; 'cmd.cancel.cancelledSessionPreserved': "Cancelled. Session preserved — next message will resume."; 'cmd.cancel.runningTasks': "Running tasks (${n}):"; 'cmd.cancel.cancelButton': "Cancel ${id}"; 'cmd.mode.switched': "Switched to *${mode}* mode"; 'cmd.mode.apiLabel': "API"; 'cmd.mode.planLabel': "Plan"; 'cmd.backend.switched': "Backend: *${backend}*"; 'cmd.backend.claudeLabel': "Claude Code"; 'cmd.backend.codexLabel': "Codex"; 'cmd.model.current': "Current Claude model: *${model}*"; 'cmd.model.usage': "Usage: `!model `"; 'cmd.model.set': "Claude model set to *${model}*"; 'cmd.profile.channelSet': "Channel profile set to *${name}*"; 'cmd.profile.channelHeader': "Channel profile: *${effective}* (global: ${global})"; 'cmd.profile.activeHeader': "Active profile: *${effective}*"; 'cmd.profile.markerDefault': "default"; 'cmd.profile.markerGlobal': "global"; 'cmd.profile.markerChannel': "channel"; 'cmd.profile.cleared': "Channel profile cleared, using global: *${name}*"; 'cmd.profile.globalUsage': "Usage: `!profile global `"; 'cmd.profile.globalSet': "Global profile set to *${name}*"; 'cmd.skills.none': "No skills found."; 'cmd.skills.header': "*Available skills*"; 'cmd.skills.localGroup': ".claude/skills"; 'cmd.agent.defaultSet': "Default agent set to *${name}* (${detail})"; 'cmd.agent.disabled': "Default agent disabled."; 'cmd.agent.disableButton': "Disable"; 'cmd.agent.current': "Default agent: *${name}* (${detail})"; 'cmd.agent.none': "No default agent set.\nAvailable: ${agents}"; 'cmd.agent.unknown': "Unknown agent: `${name}`\nAvailable: ${available}"; 'cmd.channel.noProjects': "No projects found."; 'cmd.channel.projectsHeader': "*Projects*\n${list}"; 'cmd.channel.registeredNotification': "Registered for `${project}` task notifications."; 'cmd.channel.unknownProject': "Unknown project: `${project}`\nAvailable: ${available}"; 'cmd.channel.channelRegistered': "This channel is now registered for project `${project}` task notifications."; 'cmd.channel.registeredList': "Registered: ${list}"; 'cmd.channel.notRegisteredAny': "This channel is not registered to any project."; 'cmd.channel.availableList': "Available: ${list}"; 'cmd.channel.unregisterUsage': "Usage: `!unregister `"; 'cmd.channel.notRegistered': "This channel is not registered for project `${project}`."; 'cmd.channel.unregistered': "Unregistered this channel from project `${project}`."; 'cmd.channel.modalTitle': "Add Project Directory"; 'cmd.channel.modalSubmit': "Save"; 'cmd.channel.modalProjectLabel': "Project name"; 'cmd.channel.modalProjectPlaceholder': "e.g. example-project-dataset"; 'cmd.channel.modalMachineLabel': "Machine"; 'cmd.channel.modalPathLabel': "Directory path"; 'cmd.channel.modalPathPlaceholder': "e.g. /home/user/project"; 'cmd.channel.dirSet': "`${project}` on `${machine}` → `${dir}`"; 'cmd.channel.projectDirUsage': "Usage: `!project-dir ` or `!project-dir --remove`"; 'cmd.channel.unknownMachine': "Unknown machine: `${machine}`\nValid: ${valid}"; 'cmd.channel.dirRemoved': "Removed `${project}` directory on `${machine}`."; 'cmd.channel.dirShow': "`${project}` on `${machine}` → `${dir}`"; 'cmd.channel.dirNone': "No directory registered for `${project}` on `${machine}`."; 'cmd.channel.projectDirsHeader': "*Project Directories*\n${list}"; 'cmd.channel.noProjectDirs': "No project directories registered."; 'cmd.channel.addButton': "Add"; 'cmd.nvtop.unknownMachineGpu': "Unknown machine: `${machine}`\nGPU machines: ${valid}"; 'cmd.nvtop.noGpu': "`${machine}` has no GPU."; 'cmd.nvtop.deviceOffline': "Device `${machine}` is not online."; 'cmd.nvtop.smiHeader': "*nvidia-smi* on `${machine}`\n```\n${output}\n```"; 'cmd.nvtop.noOutput': "(no output)"; 'cmd.nvtop.smiFailed': "nvidia-smi failed on `${machine}`: ${error}"; 'cmd.nvtop.noActive': "No active nvtop monitor in this channel."; 'cmd.nvtop.stopped': "nvtop stopped on `${machine}`."; 'cmd.nvtop.alreadyRunning': "nvtop already running. Use `!nvtop stop` first."; 'cmd.nvtop.notSupported': "nvtop monitoring is not supported on `${machine}` yet."; 'cmd.nvtop.failed': "nvtop failed on `${machine}`: ${error}"; 'cmd.sendfile.fileNotFound': "File not found: `${path}`"; 'cmd.sendfile.notAFile': "Not a file: `${path}`"; 'cmd.sendfile.sent': "Sent `${name}` (${size} KB) from ${machine}"; 'cmd.sendfile.fetchFailed': "Failed to fetch from ${machine}: ${error}"; 'cmd.sendfile.usage': "Usage: `!sendFile `\nPath can be absolute, relative to Cortex root, or start with `~`"; 'cmd.sendfile.unknownMachine': "Unknown machine: `${machine}`. Known: ${known}"; 'cmd.session.newConversation': "--- new conversation --- (profile: ${profile})"; 'cmd.session.notFound': "Session `${name}` not found."; 'cmd.session.switched': "Switched to session `${name}`${profileNote}"; 'cmd.session.notFoundList': "Session `${name}` not found. Run `!resume` to list sessions."; 'cmd.session.profileNote': " (profile: ${profile})"; 'cmd.session.noSessions': "No sessions recorded yet."; 'cmd.session.recentHeader': "*Recent sessions*"; 'cmd.session.activeTag': " *(active)*"; 'cmd.task.header': "*Tasks for `${project}`* (${shown}/${total})${filterLabel}"; 'cmd.task.filterLabel': " — ${filter}"; 'cmd.task.statusCompleted': "completed"; 'cmd.task.statusBlocked': "blocked: ${by}"; 'cmd.task.statusInProgress': "in-progress: ${by}"; 'cmd.task.statusPaused': "paused"; 'cmd.task.statusApprovalNeeded': "approval-needed"; 'cmd.task.statusActionable': "actionable"; 'cmd.task.statusOpen': "open"; 'cmd.task.statusLine': " Status: ${status} · Priority: ${priority}"; 'cmd.task.tagsLine': " Tags: ${tags}"; 'cmd.task.whyLine': " Why: ${why}"; 'cmd.task.doneWhenLine': " Done when: ${doneWhen}"; 'cmd.task.dependsLine': " Depends on: ${depends}"; 'cmd.task.noneFound': "No ${filter} tasks found."; 'cmd.task.filterAll': "All"; 'cmd.task.filterActionable': "Actionable"; 'cmd.task.filterInProgress': "In Progress"; 'cmd.task.filterBlocked': "Blocked"; 'cmd.task.usage': "Usage: `!tasks `"; 'cmd.task.projectNotFound': "Project not found: `${project}`"; 'cmd.task.noTasks': "No tasks found for `${project}`."; 'cmd.dispatch.usage': "Usage: `!dispatch [--profile ]`"; 'cmd.dispatch.threadNotFound': "Thread not found: `${threadId}`"; 'cmd.dispatch.notDispatchThread': "Thread `${threadId}` is not a dispatch thread."; 'cmd.dispatch.terminalWarning': "Dispatch `${threadId}` is `${status}`. Profile override will only apply if the thread is continued via `!thread add`."; 'cmd.dispatch.currentOverride': "Dispatch `${threadId}`: current `profileOverride` = `${current}`"; 'cmd.dispatch.unknownProfile': "Unknown profile: `${profile}`. Use `!profile` to see available profiles."; 'cmd.dispatch.overrideSet': "Dispatch `${threadId}`: `profileOverride` set to `${profile}`. Next step will use this profile."; 'cmd.tail.noActive': "No active tail in this channel."; 'cmd.tail.stopped': "Tail stopped."; 'cmd.tail.preview': "*Tailing daemon.log* (last ${n} lines, refresh every 3s)\n```\n${content}\n```\nUse `!tail stop` to stop."; 'cmd.tail.cannotRead': "Cannot read daemon.log: ${error}"; 'cmd.tail.alreadyTailing': "Already tailing. Use `!tail stop` to stop first."; 'cmd.status.unavailable': "Execution status reporting is not available in this process."; 'cmd.status.refreshButton': "Refresh"; 'cmd.help.catSession': "Session"; 'cmd.help.catConfig': "Config"; 'cmd.help.catMonitoring': "Monitoring"; 'cmd.help.catTasks': "Tasks"; 'cmd.help.catDevices': "Devices"; 'cmd.help.catThreads': "Threads"; 'cmd.help.session.new': "`!new` — start a new conversation; runs pre-close hook (`!newq` to skip)"; 'cmd.help.session.cancel': "`!cancel [taskId]` — stop current task, or a dispatched task by id"; 'cmd.help.session.resume': "`!resume [cortex-XXXX]` — list recent sessions, or switch to one"; 'cmd.help.config.mode': "`!mode` — toggle API / Plan mode"; 'cmd.help.config.backend': "`!backend` — toggle Claude Code / Codex backend"; 'cmd.help.config.model': "`!model [name]` — show or set Claude model"; 'cmd.help.config.profile': "`!profile [name]` — show active profile or switch to one"; 'cmd.help.config.skills': "`!skills` — list available skills"; 'cmd.help.monitoring.cost': "`!cost [project]` — show cost summary (global or per-project)"; 'cmd.help.monitoring.status': "`!status` — show running execution summary"; 'cmd.help.monitoring.budget': "`!budget $X/d $Y/m` — set daily/monthly budget"; 'cmd.help.monitoring.schedule': "`!schedule` — list, add, pause, resume, or remove scheduled tasks"; 'cmd.help.tasks.tasks': "`!tasks ` — list all tasks with details for a project"; 'cmd.help.tasks.projects': "`!projects` — list projects and their registered channels"; 'cmd.help.tasks.register': "`!register ` — register this channel for project task notifications"; 'cmd.help.tasks.unregister': "`!unregister ` — unregister this channel from a project"; 'cmd.help.tasks.projectDir': "`!project-dir` — manage project code directories per machine"; 'cmd.help.devices.devices': "`!devices` — show online/offline status of all cortex-client devices"; 'cmd.help.devices.nvidiaSmi': "`!nvidia-smi [machine]` — show GPU status (default: local)"; 'cmd.help.devices.nvtop': "`!nvtop [machine|stop]` — live GPU monitor with sparkline view"; 'cmd.help.devices.tail': "`!tail [stop]` — live-tail daemon.log"; 'cmd.help.devices.sendfile': "`!sendFile ` — send a file to Slack"; 'cmd.help.threads.thread': "`!thread` — manage threads: status, start, add agent, cancel, list agents/templates"; 'cmd.help.threads.agent': "`!agent [name|off]` — show, set, or disable default agent"; 'cmd.help.heading': "*Commands*"; 'cmd.help.headingCategory': "*Commands — ${label}*"; 'cmd.help.selfLine': "`!help` — this message"; 'cmd.help.showAll': "Show All"; 'cmd.schedule.none': "No scheduled tasks."; 'cmd.schedule.header': "*Scheduled tasks (${n}):*"; 'cmd.schedule.removeButton': "Remove ${id}"; 'cmd.schedule.resumeButton': "Resume ${id}"; 'cmd.schedule.pauseButton': "Pause ${id}"; 'cmd.schedule.now': "now"; 'cmd.schedule.paused': "paused"; 'cmd.schedule.nextLabel': "next"; 'cmd.device.header': "*Devices*"; 'cmd.device.online': "`${name}` ${platform} connected ${connAgo} heartbeat ${hbAgo}"; 'cmd.device.offline': "`${name}` offline"; 'cmd.device.none': "No devices registered or online."; 'cmd.device.refreshButton': "Refresh"; 'cmd.orient.notImplemented': "`!orient` command not yet implemented."; 'cmd.thread.noActive': "No active thread in this channel."; 'cmd.thread.activeHeader': "*Active Thread* `${id}` (${mode})"; 'cmd.thread.statusLine': "Status: ${status} | Active agent: ${agent}"; 'cmd.thread.stepsLine': "Steps: ${steps} | Cost: $${cost}"; 'cmd.thread.agentsLine': "Agents: ${agents}"; 'cmd.thread.abortLine': "Abort reason: ${reason}"; 'cmd.thread.adHoc': "ad-hoc"; 'cmd.thread.noTemplates': "No thread templates configured."; 'cmd.thread.templatesHeader': "*Available Thread Templates*"; 'cmd.thread.templateLine': "`${name}` — ${description} [agents: ${agents}]"; 'cmd.thread.agentsTitle': "*Available Agents*"; 'cmd.thread.agentLine': "`${name}` (${profile}) — ${description}"; 'cmd.thread.noAgents': "No agents configured."; 'cmd.thread.activeThreadHeader': "*Active Thread* `${id}`"; 'cmd.thread.noSession': "no session"; 'cmd.thread.slotLine': "*${slotId}* (${profile}) — ${status} | ${session}"; 'cmd.thread.cancelledSessionPreserved': "Cancelled. Session preserved — next message will resume."; 'cmd.thread.nothingRunning': "Nothing running to cancel."; 'cmd.thread.noThreadsChannel': "No threads found for this channel."; 'cmd.thread.recentHeader': "*Recent Threads*"; 'cmd.thread.recentLine': "`${id}` ${mode} — ${status} | ${steps} steps | $${cost}"; 'cmd.thread.noRunning': "No running threads."; 'cmd.thread.runningHeader': "*Running Threads*"; 'cmd.thread.runningLine': "`${id}` — ${channel} | ${mode} | ${steps} step(s) | $${cost}"; 'cmd.thread.usageHeader': "*Thread Commands*"; 'cmd.thread.usageStatus': "`!thread` — show active thread status"; 'cmd.thread.usageAgents': "`!thread agents` — list available agents"; 'cmd.thread.usageTemplates': "`!thread templates` — list available templates"; 'cmd.thread.usageAdHoc': "`!thread ` — start ad-hoc thread with one agent"; 'cmd.thread.usageTemplate': "`!thread