/**
 * i18n message catalog.
 *
 * Structure: `messages[key][locale]` → translated string.
 * Use `{0}`, `{1}`, … as positional placeholders — the `t()` helper
 * substitutes them at call-site.
 */
export const DEFAULT_LOCALE = "en";
export const SUPPORTED_LOCALES = ["en", "zh"];
const m = (catalog) => catalog;
export const messages = m({
    // ── Interrupt handler (processing notifications) ──────────────────
    "interrupt.compacting": {
        en: "I'm compressing my context right now — please wait a moment, I'll get back to you shortly.",
        zh: "我正在压缩上下文，请稍等，我很快就会回复你。",
    },
    "interrupt.learning": {
        en: "I'm learning and updating my skills right now — please wait a moment, I'll get back to you shortly.",
        zh: "我正在学习和更新技能，请稍等，我很快就会回复你。",
    },
    "interrupt.working": {
        en: "Got your message — working on it now.",
        zh: "收到你的消息了，正在处理中。",
    },
    // ── Command: /stop ────────────────────────────────────────────────
    "cmd.stop.sent": {
        en: "Stop signal sent. The agent will finish its current step and stop.",
        zh: "已发送停止指令。助理将完成当前步骤后停止。",
    },
    "cmd.stop.not_working": {
        en: "The agent is not currently working.",
        zh: "助理目前没有在工作。",
    },
    // ── Command: /sleep ───────────────────────────────────────────────
    "cmd.sleep.changed": {
        en: "Sleep interval changed from {0}m to {1}m.",
        zh: "休眠间隔已从 {0} 分钟改为 {1} 分钟。",
    },
    // ── Command: /rdp ─────────────────────────────────────────────────
    "cmd.rdp.unavailable": {
        en: "\u{1F6AB} Remote desktop is unavailable: tunnel URL not set. Make sure the tunnel is running.",
        zh: "\u{1F6AB} 远程桌面不可用：隧道 URL 未设置，请确保隧道正在运行。",
    },
    "cmd.rdp.link": {
        en: "\u{1F5A5}\uFE0F Remote desktop link (expires in {0} min):\n{1}\n\nExpires: {2}",
        zh: "\u{1F5A5}\uFE0F 远程桌面链接（{0} 分钟后过期）：\n{1}\n\n过期时间：{2}",
    },
    // ── Command: /realtime ────────────────────────────────────────────
    "cmd.realtime.unavailable": {
        en: "\u{1F6AB} Realtime voice is unavailable: tunnel URL not set yet. Try /tunnel restart, then /realtime again.",
        zh: "\u{1F6AB} 实时语音不可用：隧道 URL 暂未就绪。请先 /tunnel restart 后再 /realtime。",
    },
    // ── Command: /console ─────────────────────────────────────────────
    "cmd.console.unavailable": {
        en: "Console URL is not available yet (tunnel may still be starting).",
        zh: "控制台 URL 暂不可用（隧道可能还在启动中）。",
    },
    // ── Command: /restart ─────────────────────────────────────────────
    "cmd.restart.confirm": {
        en: "Restarting agent in 5 seconds...",
        zh: "助理将在 5 秒后重启…",
    },
    // ── Command: /tunnel ──────────────────────────────────────────────
    "cmd.tunnel.not_configured": {
        en: "Tunnel is not configured.",
        zh: "隧道未配置。",
    },
    "cmd.tunnel.restarting": {
        en: "Restarting tunnel...",
        zh: "正在重启隧道…",
    },
    // ── Command: /backup ──────────────────────────────────────────────
    "cmd.backup.starting": {
        en: "Starting backup... This may take a few minutes.",
        zh: "正在开始备份…这可能需要几分钟。",
    },
    "cmd.backup.complete": {
        en: "Backup complete!\n{0}",
        zh: "备份完成！\n{0}",
    },
    "cmd.backup.failed": {
        en: "Backup failed: {0}",
        zh: "备份失败：{0}",
    },
    // ── Command: /silent ──────────────────────────────────────────────
    "cmd.silent.on": {
        en: "Silent compaction mode is now on. Compaction notifications will be suppressed.",
        zh: "静默压缩模式已开启，压缩通知将被隐藏。",
    },
    "cmd.silent.off": {
        en: "Silent compaction mode is now off. You'll see notifications when context is compacted.",
        zh: "静默压缩模式已关闭，上下文压缩时你将收到通知。",
    },
    // ── Command: /weixin ──────────────────────────────────────────────
    "cmd.weixin.starting": {
        en: "Starting WeChat QR login...",
        zh: "正在启动微信二维码登录…",
    },
    "cmd.weixin.failed": {
        en: "WeChat login failed: {0}",
        zh: "微信登录失败：{0}",
    },
    "cmd.weixin.scan_qr": {
        en: "Save this QR code image, then open WeChat and scan it to log in.\nWaiting for scan (up to 8 minutes)...",
        zh: "请保存此二维码图片，然后打开微信扫码登录。\n等待扫码中（最多 8 分钟）…",
    },
    "cmd.weixin.success": {
        en: "{0}\nAccount: {1}\nAgent will restart shortly and be back soon.",
        zh: "{0}\n账号：{1}\n代理即将重启，稍后恢复。",
    },
    "cmd.weixin.error": {
        en: "WeChat login error: {0}",
        zh: "微信登录错误：{0}",
    },
    // ── Command: /upgrade-beta ────────────────────────────────────────
    "cmd.upgrade_beta.checking": {
        en: "Checking for beta updates...",
        zh: "正在检查 beta 更新…",
    },
    "cmd.upgrade_beta.failed": {
        en: "Beta upgrade failed: {0}",
        zh: "Beta 升级失败：{0}",
    },
    // ── Command: /upgrade-dev ─────────────────────────────────────────
    "cmd.upgrade_dev.checking": {
        en: "Checking for dev updates (tag: {0})...",
        zh: "正在检查 dev 更新（tag: {0}）…",
    },
    "cmd.upgrade_dev.failed": {
        en: "Dev upgrade failed: {0}",
        zh: "Dev 升级失败：{0}",
    },
    // ── Command: /subscribe ───────────────────────────────────────────
    "cmd.subscribe.unavailable": {
        en: "Subscription info is not available (billing service unreachable or not configured).",
        zh: "订阅信息不可用（计费服务不可达或未配置）。",
    },
    "cmd.subscribe.title": {
        en: "\u{1f4cb} Subscription Status",
        zh: "\u{1f4cb} 订阅状态",
    },
    "cmd.subscribe.free_trial": {
        en: "Status: Free Trial",
        zh: "状态：免费试用",
    },
    "cmd.subscribe.no_subscription": {
        en: "No active subscription. Browse plans and subscribe:",
        zh: "暂无订阅。浏览套餐并订阅：",
    },
    "cmd.subscribe.status_active": {
        en: "Active \u2705",
        zh: "已激活 \u2705",
    },
    "cmd.subscribe.status_past_due": {
        en: "Past Due \u26a0\ufe0f",
        zh: "已逾期 \u26a0\ufe0f",
    },
    "cmd.subscribe.status_pending": {
        en: "Pending",
        zh: "待处理",
    },
    "cmd.subscribe.manage_link": {
        en: "\u{1f517} Manage your subscription:",
        zh: "\u{1f517} 管理你的订阅：",
    },
    // ── Command: /refresh ─────────────────────────────────────────────
    "cmd.refresh.busy": {
        en: "The agent is busy — stopping it now and will refresh once it halts.",
        zh: "助理当前繁忙，正在停止并将在停止后刷新上下文。",
    },
    "cmd.refresh.stop_timeout": {
        en: "Timed out waiting for the agent to stop. Please try /refresh again.",
        zh: "等待助理停止超时，请再次尝试 /refresh。",
    },
    "cmd.refresh.no_session": {
        en: "No active session to refresh. The agent will start fresh on the next wake cycle.",
        zh: "没有活跃会话可刷新。代理将在下次唤醒周期重新开始。",
    },
    "cmd.refresh.refreshing": {
        en: "Refreshing context... This may take a moment.",
        zh: "正在刷新上下文…请稍候。",
    },
    "cmd.refresh.done": {
        en: "Context refreshed.",
        zh: "上下文已刷新。",
    },
    "auto_refresh.notice": {
        en: "Heads up: my context was getting too large to compact, so I automatically refreshed it (summarized the recent conversation and started a fresh session). I'll keep working from that summary.",
        zh: "提醒一下：我的上下文太大、压缩一直超时，所以我自动做了一次刷新（把最近的对话总结后开了一个新会话）。我会基于这份摘要继续工作。",
    },
    // ── Command: /tasks ───────────────────────────────────────────────
    "cmd.tasks.no_tasks": {
        en: "\u{1f4cb} No active tasks.",
        zh: "\u{1f4cb} 没有进行中的任务。",
    },
    "cmd.tasks.title": {
        en: "\u{1f4cb} Tasks",
        zh: "\u{1f4cb} 任务",
    },
    "cmd.tasks.status_working": {
        en: "\u{1f535} Status: Working ({0}m {1}s)",
        zh: "\u{1f535} 状态：工作中（{0}分{1}秒）",
    },
    "cmd.tasks.status_idle": {
        en: "\u26aa Status: Idle",
        zh: "\u26aa 状态：空闲",
    },
    "cmd.tasks.task_label": {
        en: "\u{1f4dd} Task: \"{0}\"",
        zh: "\u{1f4dd} 任务：\"{0}\"",
    },
    "cmd.tasks.session_label": {
        en: "\u{1f504} Session: {0}",
        zh: "\u{1f504} 会话：{0}",
    },
    "cmd.tasks.todo_list": {
        en: "Todo List:",
        zh: "待办列表：",
    },
    "cmd.tasks.recent_steps": {
        en: "Recent Steps (last 5):",
        zh: "最近步骤（最近 5 条）：",
    },
    "cmd.tasks.queue": {
        en: "Queue: {0} pending message{1}",
        zh: "队列：{0} 条待处理消息",
    },
    // ── Shared ON/OFF labels ───────────────────────────────────────────
    "common.on": {
        en: "ON",
        zh: "开启",
    },
    "common.off": {
        en: "OFF",
        zh: "关闭",
    },
    // ── Command: /android-use ─────────────────────────────────────────
    "cmd.android_use.toggle": {
        en: "{0} Android use tools turned {1}. Restarting to apply...",
        zh: "{0} Android 使用工具已{1}。正在重启以生效…",
    },
    // ── Command: /chat-monitor ────────────────────────────────────────
    "cmd.chat_monitor.no_db": {
        en: "{0} Chat monitor stays OFF because no local chat databases were found (checked WeChat and Feishu). Install and open a supported chat app first, then try again.",
        zh: "{0} 聊天监控保持关闭，因为未找到本地聊天数据库（已检查微信和飞书）。请先安装并打开支持的聊天应用，然后重试。",
    },
    "cmd.chat_monitor.toggle": {
        en: "{0} Chat monitor turned {1}.",
        zh: "{0} 聊天监控已{1}。",
    },
    "cmd.chat_monitor.error": {
        en: "{0} Chat monitor config set to {1}, but pm2 action failed: {2}",
        zh: "{0} 聊天监控配置已设为{1}，但 pm2 操作失败：{2}",
    },
    // ── Command: /screenshot ──────────────────────────────────────────
    "cmd.screenshot.failed": {
        en: "Screenshot failed: {0}",
        zh: "截图失败：{0}",
    },
    // ── Subscription gate ─────────────────────────────────────────────
    "subscription.expired": {
        en: "Your subscription has expired. Please select a plan to continue using the agent. The agent is paused and will resume automatically once your subscription is active.",
        zh: "你的订阅已过期，请选择一个套餐以继续使用代理。代理已暂停，订阅激活后将自动恢复。",
    },
    "subscription.renewed": {
        en: "Subscription renewed! Resuming normal operation.",
        zh: "订阅已续费！恢复正常运行。",
    },
    // ── Telegram billing UI ───────────────────────────────────────────
    "billing.no_plans": {
        en: "No subscription plans available.",
        zh: "暂无可用的订阅套餐。",
    },
    "billing.select_plan": {
        en: "Select a plan:",
        zh: "选择一个套餐：",
    },
    "billing.subscribe_to": {
        en: "\u{1f4b3} Subscribe to {0}",
        zh: "\u{1f4b3} 订阅 {0}",
    },
    "billing.complete_subscription": {
        en: "Tap the button below to complete your subscription:",
        zh: "点击下方按钮完成订阅：",
    },
    "billing.subscribe_now": {
        en: "\u{1f4b3} Subscribe Now",
        zh: "\u{1f4b3} 立即订阅",
    },
    "billing.no_bundles": {
        en: "No bundle amounts available.",
        zh: "暂无可用的充值金额。",
    },
    "billing.bundle_topup": {
        en: "\u{1f4e6} Bundle Top-Up\n\nSelect an amount to add to your account:",
        zh: "\u{1f4e6} 充值包\n\n选择充值金额：",
    },
    // ── Command: /settings ──────────────────────────────────────────────
    "cmd.set.menu": {
        en: "\u2699\ufe0f Settings — choose what to change:",
        zh: "\u2699\ufe0f 设置 — 选择要修改的项目：",
    },
    "cmd.set.language_label": {
        en: "\u{1f310} Language",
        zh: "\u{1f310} 语言",
    },
    "cmd.set.timezone_label": {
        en: "\u{1f552} Timezone",
        zh: "\u{1f552} 时区",
    },
    "cmd.set.choose_language": {
        en: "\u{1f310} Select your preferred language:",
        zh: "\u{1f310} 选择你的首选语言：",
    },
    "cmd.set.choose_timezone": {
        en: "\u{1f552} Select your timezone:",
        zh: "\u{1f552} 选择你的时区：",
    },
    "cmd.set.language_changed": {
        en: "\u2705 Language changed to {0}.",
        zh: "\u2705 语言已切换为{0}。",
    },
    "cmd.set.timezone_changed": {
        en: "\u2705 Timezone changed to {0}.",
        zh: "\u2705 时区已切换为 {0}。",
    },
    "cmd.set.timezone_failed": {
        en: "\u26a0\ufe0f Timezone saved to config ({0}), but failed to update system timezone: {1}\nPlease set it manually or contact your service provider.",
        zh: "\u26a0\ufe0f 时区已保存到配置（{0}），但系统时区修改失败：{1}\n请手动设置或联系服务商。",
    },
    // ── Onboarding: language + timezone selection ────────────────────
    "onboarding.choose_language": {
        en: "Before we get started, please select your preferred language:",
        zh: "在开始之前，请选择你的首选语言：",
    },
    "onboarding.choose_timezone": {
        en: "Great! Now select your timezone:",
        zh: "好的！现在选择你的时区：",
    },
    "onboarding.setup_complete": {
        en: "\u2705 Preferences saved! Language: {0}, Timezone: {1}",
        zh: "\u2705 偏好设置已保存！语言：{0}，时区：{1}",
    },
    // ── LLM retry notification (wake-cycle-runner) ────────────────────
    "llm.retry_exhausted": {
        en: "LLM is not responding — timed out {0} times in a row ({1}). Please be patient, attempting recovery...",
        zh: "LLM 无响应——已连续超时 {0} 次（{1}）。请耐心等待，正在尝试恢复…",
    },
    // ── Provider fallback notifications ──────────────────────────────
    "llm.providers_exhausted": {
        en: "All LLM providers are unavailable. Sleeping 15 minutes before resetting and retrying.",
        zh: "所有 LLM 提供商均不可用。将休眠 15 分钟后重置并重试。",
    },
});
//# sourceMappingURL=messages.js.map