{
    "bot": {
        "started": "🚀 Antigravity Remote Bot Started!\nChat ID: {chatId}\nType /help to see all available commands.",
        "polling": "Antigravity Bot is actively polling!",
        "restarted": "🔄 Bot restarted."
    },
    "auth": {
        "unauthorized": "❌ Unauthorized.",
        "unauthorized_attempt": "⚠️ <b>Unauthorized Access Attempt!</b>\n\n👤 <b>Person:</b> {name}\n🔖 <b>Username:</b> {username}\n🆔 <b>ID:</b> <code>{id}</code>\n💬 <b>{details}</b>",
        "anonymous": "Anonymous",
        "setup_welcome": "Welcome! Your Chat ID is: {chatId}\nPlease add it to the .env file as ALLOWED_CHAT_ID and restart the bot.",
        "action": "Action: {type}",
        "unknown": "Unknown",
        "message": "Message: \"{text}\"",
        "button": "Button: {data}"
    },
    "help": {
        "title": "🤖 <b>Available Commands:</b>",
        "messaging_title": "📝 <i>Messaging &amp; Interaction:</i>",
        "messaging_text": "- Just type text → Talk to the agent\n- 📎 Send image/file → Forward to agent\n- /stop → Stop running agent\n- /file → Open file explorer\n- /turbo → Toggle turbo planning mode\n- /panel → Bring back interactive control panel",
        "agent_title": "🎯 <i>Agent Modes &amp; Skills:</i>",
        "agent_text": "- /goal &lt;task&gt; → Autonomous goal (works until done)\n- /plan &lt;task&gt; → Generate implementation plan\n- /skills → Interactive skill browser with categories\n- /skill &lt;name&gt; [prompt] → Run a specific skill\n- /schedule_task &lt;task&gt; → Schedule a recurring task",
        "chat_title": "💬 <i>Chat &amp; Artifacts:</i>",
        "chat_text": "- /new → Open a new chat session\n- /agents → List &amp; switch recent chats\n- /artifacts → List generated artifacts\n- /gettask | /getplan | /getwalk → Get latest task, plan or walkthrough\n- /telegraph → Toggle Telegraph web artifact publishing\n- /cleartelegraph → Wipe published Telegraph pages\n- /model → Select AI model to use\n- /autoaccept → Toggle auto-accept\n- /help → Show this help guide",
        "ide_title": "🛠️ <i>System &amp; Workspace Controls:</i>",
        "ide_text": "- /start_ide | /start_ag → Start IDE / Standalone app\n- /close → Fully close the app\n- /closeall → Close all open file tabs\n- /app → Switch between IDE and Standalone\n- /workspace → Switch project workspace\n- /memory → Check or toggle Project Memory (AGENT.md)\n- /watcher → Toggle background Task Watcher\n- /window → Select active window\n- /fix_shortcuts → Fix desktop shortcuts\n- /lang → Switch bot language\n- /menu → Refresh Telegram menu commands\n- /cmd &lt;command&gt; → Run a terminal command\n- /restart → Restart the Telegram bot",
        "status_title": "👁️ <i>Status &amp; Info:</i>",
        "status_text": "- /latest → Get latest response\n- /screenshot → Take IDE screenshot\n- /status → View system &amp; process status\n- /quota → Check AI model quotas\n- /version → Show bot version\n- /update → Check for updates",
        "account_title": "📱 <b>Account Management:</b>",
        "account_text": "- /login → Sign in with Google (OAuth)\n- /accounts → List saved Google accounts\n- /switchacc &lt;N&gt; → Switch active account\n- /getinfo &lt;N&gt; → View account quota info\n- /delacc &lt;N&gt; → Delete a saved account"
    },
    "ide": {
        "already_running": "✅ Antigravity IDE is already running! No need to open another window.\n💡 Use /close to shut it down.",
        "starting": "🔄 Starting Antigravity IDE...",
        "start_failed": "❌ Failed to start IDE: {error}",
        "started": "✅ IDE started successfully!",
        "already_closed": "ℹ️ IDE is already closed. (Lock file cleaned)",
        "closing": "🔄 Closing IDE...",
        "closing_window": "🪟 Closing window...",
        "window_closed": "✅ Window closed successfully.",
        "window_close_failed": "❌ Failed to close window. Is there an open window?",
        "closed": "✅ IDE fully closed! (All processes and lock files cleaned)",
        "not_installed": "❌ Antigravity IDE not found. Please install it first.\nSee: https://antigravity.google/",
        "init_error": "❌ Initialization error: {error}",
        "already_running_short": "Antigravity IDE is already running (PID: {pid})"
    },
    "status": {
        "title": "📊 <b>System Status:</b>\n",
        "ide_running": "💻 <b>Antigravity IDE (Classic):</b> {status}\n",
        "ide_stopped": "🔴 IDE: Stopped",
        "cdp_active": "⚡ <b>CDP Automation:</b> 🟢 ACTIVE\n",
        "cdp_inactive": "⚡ <b>CDP Automation:</b> 🔴 INACTIVE (CDP connection failed)\n",
        "bot_running": "🟢 Bot: Running",
        "autoaccept_on": "✅ ON",
        "autoaccept_off": "❌ OFF",
        "standalone_running": "🤖 <b>Antigravity Standalone:</b> {status}\n",
        "running_status": "🟢 RUNNING",
        "stopped_status": "🔴 CLOSED",
        "telegram_bot": "🤖 <b>Telegram Bot:</b> 🟢 ACTIVE\n",
        "active_chat": "\n💬 <b>Active Chat Details:</b>\n",
        "project_area": "- Project Area: <code>{workspace}</code>\n",
        "agent_title": "- Agent Title: <code>{name}</code>\n",
        "selected_model": "- Selected Model: <code>{model}</code>\n",
        "agent_status": "- Agent Status: <b>{status}</b>\n",
        "agent_working": "🔄 Working (Busy)",
        "agent_idle": "💤 Idle",
        "report_title": "📊 <b>Antigravity Bot Status Report</b>\n\n",
        "preferred_app_status": "🎯 <b>Preferred App:</b> <code>{app}</code>\n\n"
    },
    "latest": {
        "title": "📝 Latest Response:\n\n",
        "no_new": "[No new messages]",
        "error": "❌ Error: {error}\n(Is Antigravity open?)",
        "last_agent_reply": "📋 Last Agent Reply:",
        "not_found_active": "⚠️ Active chat window not found. Please select a chat using the /agents command or send a new message."
    },
    "screenshot": {
        "taking": "📸 Taking IDE screenshot (via CDP)...",
        "error": "❌ Error: {error}\n(Is the IDE open?)"
    },
    "ask": {
        "empty": "Please type a question. Example: `/ask Hello`",
        "sent": "✅ Message Sent, waiting for response...",
        "done": "✅ Completed!",
        "done_empty": "✅ Completed but no new text was generated.",
        "timeout": "⚠️ Agent is still thinking or timed out. Use /latest to check.",
        "send_error": "❌ Send Error: {error}",
        "headless_error": "❌ Headless Error: {error}",
        "no_chat_input": "No chat input found in the IDE. Please make sure a chat session is open in Antigravity.",
        "reply_agent": "✍️ Reply to this Agent",
        "focus_toast": "Targeting: {title}",
        "focus_success": "✅ Locked onto agent <b>{title}</b>.\n✍️ Messages you type now will go directly to this agent.",
        "working": "⏳ The agent is currently working on this task..."
    },
    "stop": {
        "stopping": "🛑 Stopping agent...",
        "stopped": "✅ Agent stopped!",
        "already_stopped": "ℹ️ Agent is already stopped or stop button not found.",
        "error": "❌ Error: {error}"
    },
    "new_chat": {
        "opened": "✅ New chat opened!",
        "not_found": "❌ New chat button not found.",
        "error": "❌ Error: {error}"
    },
    "model": {
        "selecting": "🔄 Selecting model: {model}",
        "changed": "✅ Model changed: {model}",
        "not_found": "❌ Model not found or could not be selected.",
        "select_prompt": "🤖 Select a model:",
        "changing": "🔄 Changing model: {model}",
        "select_failed": "❌ Model could not be selected. Make sure the chat screen is open in the IDE.",
        "error": "Error!"
    },
    "workspace": {
        "switching": "🔄 Opening new workspace IDE window: {workspace}",
        "start_failed": "❌ Failed to start: {error}",
        "started": "✅ IDE started with new workspace: {workspace}",
        "trusted": "🔓 Workspace automatically marked as trusted.",
        "cdp_warning": "\n⚠️ CDP connection may not be ready yet. Wait a few seconds and try again.",
        "select_prompt": "Please select the workspace you want to switch to:",
        "read_error": "❌ Could not read projects directory.",
        "selected": "Workspace selected: {project}",
        "not_found_standalone": "❌ Project '{wsName}' could not be found or opened in Standalone App."
    },
    "file": {
        "empty_dir": "📂 This directory is empty.",
        "dir_read_error": "❌ Could not read directory: {error}",
        "not_found": "❌ File not found: {path}",
        "too_large": "❌ File too large ({size}MB). Telegram limit is 50MB.",
        "send_failed": "❌ Could not send file: {error}",
        "sending": "Sending: {filename}",
        "parent_dir": "⬆️ Parent Directory",
        "prev_page": "◀️ Previous",
        "next_page": "▶️ Next",
        "dir_info": "({count} items, page {page}/{totalPages})",
        "expired": "❌ Session expired, type /file to start again."
    },
    "menu": {
        "updated": "✅ Menu updated! You can see it from the ☰ menu at the bottom left.",
        "help_desc": "Show all available commands",
        "ask_desc": "Send a question to the agent",
        "latest_desc": "Get the latest response",
        "screenshot_desc": "Take an IDE screenshot",
        "status_desc": "System status (IDE, CDP, PM2)",
        "start_ide_desc": "Start IDE",
        "close_desc": "Close entire IDE",
        "close_window_desc": "Close current window",
        "new_desc": "Open new chat",
        "agents_desc": "List and switch recent chat threads",
        "artifacts_desc": "List artifacts of current thread",
        "model_desc": "Open model selection menu",
        "workspace_desc": "Switch project",
        "lang_desc": "Switch language",
        "cmd_desc": "Run a terminal command",
        "file_desc": "Browse and send files",
        "stop_desc": "Stop the agent",
        "autoaccept_desc": "Toggle auto-accept on/off",
        "quota_desc": "Shows Antigravity quota usage",
        "update_desc": "Check for updates",
        "version_desc": "Show current version",
        "menu_desc": "Update the command menu",
        "window_desc": "Select IDE window",
        "restart_desc": "Restart the bot",
        "app_desc": "Select active application",
        "fix_shortcuts_desc": "Fix desktop shortcuts",
        "login_desc": "Sign in with Google",
        "accounts_desc": "List saved Google accounts",
        "switchacc_desc": "Switch active Google account",
        "getinfo_desc": "View account quota info",
        "delacc_desc": "Delete a saved Google account",
        "btn_screenshot": "📸 Screen",
        "btn_artifacts": "📦 Artifacts",
        "btn_auto_on": "⚡ Auto",
        "btn_auto_off": "🔴 Auto",
        "btn_latest": "💬 Latest",
        "start_ag_desc": "Start Agent",
        "close_ide_desc": "Close IDE",
        "close_ag_desc": "Close Agent",
        "welcome": "👋 Welcome! Your panel is ready:",
        "btn_on": "Turn On",
        "btn_off": "Turn Off",
        "btn_status": "📊 Status",
        "goal_desc": "Set autonomous goal for agent",
        "plan_desc": "Generate implementation plan",
        "schedule_task_desc": "Schedule a task in IDE",
        "browser_desc": "Launch browser in IDE",
        "model_not_selected": "⚠️ No model selected",
        "gettask_desc": "Get the latest Task Checklist",
        "getplan_desc": "Get the latest Implementation Plan",
        "getwalk_desc": "Get the latest Walkthrough",
        "closeall_desc": "Close all open file tabs",
        "watcher_desc": "Toggle background Task Watcher",
        "telegraph_desc": "Toggle Telegraph artifact uploads",
        "cleartelegraph_desc": "Wipe published Telegraph pages"
    },
    "telegraph": {
        "enabled": "🌐 <b>Telegraph Publishing:</b> ENABLED\n\nArtifacts will be published to Telegraph/graph.org with unguessable URLs.",
        "disabled": "🔒 <b>Telegraph Publishing:</b> DISABLED\n\nArtifacts will remain private and be delivered directly inside Telegram chat.",
        "status": "🌐 <b>Telegraph Publishing Status:</b>\n\n• State: <b>{state}</b>\n• Security: 128-bit unguessable crypto slug URLs\n\n<i>Use /telegraph on to enable or /telegraph off to disable.</i>",
        "state_on": "🟢 ENABLED (Public graph.org)",
        "state_off": "🔒 DISABLED (Private direct chat)",
        "btn_turn_on": "🟢 Turn ON",
        "btn_turn_off": "🔴 Turn OFF",
        "btn_wipe": "Wipe Pages",
        "wiping": "🗑️ Wiping published Telegraph pages for privacy & security...",
        "wiped": "✅ Successfully wiped {count} Telegraph page(s). Artifact contents have been replaced with removal notices on graph.org."
    },
    "watcher": {
        "enabled": "👁️ <b>Task Watcher:</b> ENABLED\n\nBackground agent notifications are active.",
        "disabled": "⏸️ <b>Task Watcher:</b> DISABLED\n\nBackground agent notifications are paused.",
        "status": "👁️ <b>Task Watcher Status:</b>\n\n• State: <b>{state}</b>\n• Active Thread: <code>{thread}</code>\n• Monitored: {count} conversation(s)",
        "state_on": "🟢 ON",
        "state_off": "🔴 OFF"
    },
    "photo": {
        "downloaded": "✅ File downloaded and forwarding to agent...",
        "error": "❌ File Processing Error: {error}"
    },
    "lang": {
        "current": "🌐 Current language: {lang}",
        "changed": "✅ Language changed to: {lang}",
        "select_prompt": "🌐 Select language:"
    },
    "autoaccept": {
        "enabling": "🔄 Enabling auto-accept...",
        "enabled": "⚡ Auto-Accept ENABLED!\n\n🤖 Observer injected into {injected} targets.\nRun, Accept, Allow, and Continue buttons will be auto-clicked.",
        "enabled_none": "⚡ Auto-Accept ENABLED!\n\n⚠️ No targets found yet. Will auto-inject when the agent panel opens.",
        "disabling": "🔄 Disabling auto-accept...",
        "disabled": "✅ Auto-Accept DISABLED.\n\n📊 Total clicks this session: {clicks}.",
        "status_title": "📊 <b>Auto-Accept Status:</b>\n",
        "status_enabled": "⚡ Status: ENABLED",
        "status_disabled": "⏸️ Status: DISABLED",
        "status_active": "🤖 Observer: Active ({targets} targets)",
        "status_inactive": "📴 Observer: Inactive",
        "status_clicks": "🖱️ Total Clicks: {total} (session: {session})",
        "status_last_click": "⏱️ Last Click: {text} ({sec}s ago)",
        "status_blocked": "🛡️ Blocked Commands: {count}",
        "status_no_panel": "⚠️ Agent panel not detected. Please open a chat session.",
        "error": "❌ Error: {error}"
    },
    "quota": {
        "checking": "🔄 Checking quota status...",
        "not_found": "❌ <b>Account #{id} not found</b>\n\nUse /accounts to see your saved accounts.",
        "error": "❌ Error: {error}",
        "header": "📊 Account and Quota Status\n",
        "plan": "📋 Plan: {plan}",
        "prompt_credits": "📊 Prompt Credits: {available}{monthly}",
        "model_quota": "⏱️ Model Quota Status:",
        "remaining": " {pct}% remaining",
        "empty": " ⛔ EXHAUSTED",
        "remaining_pct": " {icon} {filled}{empty} {pct}% remaining",
        "reset_time": " ⏳ {hours}h {mins}m",
        "info_title": "✨ <b>Account Info</b>",
        "user": "👤 <b>{name}</b>",
        "email": "📧 <code>{email}</code>",
        "id": "🆔 Account  <b>#{id}</b>",
        "tier": "🎟️ Tier  —  <b>{tier}</b>",
        "credits": "💳 AI Credits  —  <b>{credits}</b>",
        "model_quota_title": "📊 <b>Model Quota</b>",
        "model_access_title": "📊 <b>Model Access</b>",
        "detailed_quota_title": "📊 <b>Detailed Quota</b>",
        "unlimited": "<code>∞ Unlimited</code>",
        "unlimited_desc": "  ↳ All models — no quota limits",
        "unlimited_model": "  ↳ {model}{star}",
        "reset_timestamp": "     ↻ {resetStr}",
        "no_data": "ℹ️  No quota data available yet.\n     Try again in a moment.",
        "fetching": "🔍 <b>Fetching quota…</b>",
        "fetch_failed": "❌ <b>Could not fetch quota</b>\n\n<code>{error}</code>",
        "no_accounts": "📭 <b>No accounts saved yet</b>\n\nUse /login to add one.",
        "token_status_active": "🟢 Active  —  <b>∞ Unlimited</b>  (auto-refreshes)",
        "token_status_unknown": "⚪ Unknown — use /login to refresh",
        "token_status_valid": "🟢 Valid  —  <b>{mins} min</b> remaining",
        "token_status_expiring": "🟡 Expiring soon  —  <b>{mins} min</b> left",
        "token_status_expired": "🔴 Expired  —  use /login to refresh",
        "reset_relative": "    <i>reset: {time}</i>",
        "usage": "ℹ️ <b>Usage</b>\n━━━━━━━━━━━━━━━━━━━━━━\n<code>/getinfo &lt;id&gt;</code>\n\nExample: <code>/getinfo 1</code>\nUse /accounts to see your account IDs."
    },
    "response_too_long": "⚠️ Response too long. Use /latest to see the full version.",
    "window": {
        "not_found": "No IDE windows found. Send /start_ide first.",
        "title": "<b>🔳 IDE Windows</b>\n",
        "current": "Current target: <i>{{current}}</i>",
        "auto": "Target: <i>auto (first available)</i>",
        "found": "Found {{count}} window(s). Tap to select:",
        "clear_btn": "🔄 Auto (clear preference)",
        "error": "Window list error: {{error}}",
        "cleared_toast": "Cleared — using auto-detect",
        "cleared_msg": "🔄 Window preference cleared. Bot will auto-detect the active IDE window.",
        "expired": "Window list expired. Send /window again.",
        "selected_msg": "✅ Now targeting: <b>{{title}}</b>\n\nAll commands will route to this window.",
        "selected_toast": "Selected Window: {title}"
    },
    "agents": {
        "list_title": "📂 <b>Recent Chat Threads:</b>\n\n",
        "switched": "✅ Switched to thread: <b>{name}</b>",
        "not_found": "❌ Thread could not be selected.",
        "invalid_number": "❌ Invalid thread number.",
        "no_recent": "ℹ️ No recent active threads found.",
        "error": "❌ Error: {error}",
        "switched_plain": "✅ Switched to thread: {name}",
        "window_not_found": "Agent window not found",
        "menu_title": "📂 <b>Select Chat / Agent</b>\n\n📍 <b>Active Chat:</b> <i>{activeChat}</i>\n📁 <b>Active Project:</b> <code>{activeProject}</code>\n\n<i>Select a recent chat or filter by project below:</i>",
        "project_view_title": "📁 <b>Project: {workspace}</b> ({count} chats)\n\n<i>Select a chat to switch:</i>",
        "all_projects_btn": "⬅️ All Projects",
        "refresh_btn": "🔄 Refresh",
        "close_btn": "❌ Close",
        "search_found_multi": "🔍 <b>Search results for \"{query}\":</b>\n\n<i>Select a chat below:</i>",
        "search_not_found": "❌ No chats found matching \"{query}\"."
    },
    "artifacts": {
        "list_title": "📎 <b>Artifacts for Current Thread:</b>\n\n",
        "no_active_thread": "⚠️ No active thread found. Please select a thread in the IDE first.",
        "no_artifacts": "ℹ️ No artifacts found for the current thread.",
        "invalid_number": "❌ Invalid artifact number.",
        "sending": "📤 Sending artifact: <b>{name}</b>...",
        "error": "❌ Error reading artifact: {error}"
    },
    "turbo": {
        "off": "🛑 Turbo Mode Disabled.\nReturned to normal assistant mode.",
        "on_msg": "⚡ <b>TURBO MODE ACTIVE</b> ⚡\n\n⚠️ <b>Attention:</b> In this mode, your requests will be processed sequentially by Claude and Gemini (Planning -> Coding -> Review). Because the models will edit and review each other's code, <b>more tokens will be consumed.</b>\n\nTo disable this mode, you can type <code>/turbo</code> again or click the button in the menu.",
        "on_toast": "🚀 Turbo Mode enabled!",
        "btn_on": "🚀 Turbo ✅",
        "btn_off": "🚀 Turbo",
        "p1_start": "🚀 <b>Turbo Mode Started:</b>\n\n⏳ <b>Phase 1:</b> Selecting model (Claude)...",
        "p1_planning": "🚀 <b>Turbo Mode Started:</b>\n\n⏳ <b>Phase 1:</b> Claude is preparing the plan...",
        "p1_error": "Claude timed out during the planning phase.",
        "p2_switching": "🚀 <b>Turbo Mode Active:</b>\n\n✅ <b>Phase 1:</b> Claude finished the plan.\n⏳ <b>Phase 2:</b> Switching model (Gemini)...",
        "p2_coding": "🚀 <b>Turbo Mode Active:</b>\n\n✅ <b>Phase 1:</b> Claude finished the plan.\n⏳ <b>Phase 2:</b> Gemini is writing code...",
        "p2_error": "Gemini timed out during the coding phase.",
        "p3_switching": "🚀 <b>Turbo Mode Active:</b>\n\n✅ <b>Phase 1:</b> Planning\n✅ <b>Phase 2:</b> Coding\n⏳ <b>Phase 3:</b> Switching model (Claude) - Reviewing...",
        "p3_reviewing": "🚀 <b>Turbo Mode Active:</b>\n\n✅ <b>Phase 1:</b> Planning\n✅ <b>Phase 2:</b> Coding\n⏳ <b>Phase 3:</b> Claude is reviewing the code...",
        "p3_error": "Claude timed out during the review phase.",
        "p4_switching": "🚀 <b>Turbo Mode Active:</b>\n\n✅ <b>Phase 1:</b> Planning\n✅ <b>Phase 2:</b> Coding\n⚠️ <b>Phase 3:</b> Issues found!\n⏳ <b>Phase 4:</b> Switching model (Gemini) - Fixing...",
        "p4_fixing": "🚀 <b>Turbo Mode Active:</b>\n\n✅ <b>Phase 1:</b> Planning\n✅ <b>Phase 2:</b> Coding\n⚠️ <b>Phase 3:</b> Issues found!\n⏳ <b>Phase 4:</b> Gemini is fixing the issues...",
        "p4_error": "Gemini timed out during the fixing phase.",
        "done_issues": "🚀 <b>Turbo Mode Completed:</b>\n\n✅ <b>Phase 1:</b> Planning (Claude)\n✅ <b>Phase 2:</b> Coding (Gemini)\n⚠️ <b>Phase 3:</b> Review (Claude)\n✅ <b>Phase 4:</b> Fixing (Gemini)\n\n✨ Results are coming...",
        "done_no_issues": "🚀 <b>Turbo Mode Completed:</b>\n\n✅ <b>Phase 1:</b> Planning (Claude)\n✅ <b>Phase 2:</b> Coding (Gemini)\n✅ <b>Phase 3:</b> Review - No Issues (Claude)\n\n✨ Results are coming...",
        "error_title": "❌ <b>Turbo Mode Error:</b>\n\n{error}",
        "p5_summarizing": "⏳ Phase 5: Preparing summary...",
        "done_summary": "✨ Turbo Mode Completed (Summary ready)",
        "p5_error": "Timed out during the summary phase.",
        "is_running": "⏳ Turbo Mode is running! Please wait for it to finish, or type /turbo to cancel.",
        "is_running_short": "⏳ Turbo Mode is running, please wait.",
        "p1_fallback": "🚀 <b>Turbo Mode Active:</b>\\n\\n⚠️ Claude limit reached.\\n⏳ <b>Phase 1:</b> Falling back to Gemini 3.5 Flash for planning...",
        "p3_fallback": "🚀 <b>Turbo Mode Active:</b>\\n\\n✅ <b>Phase 1:</b> Planning\\n✅ <b>Phase 2:</b> Coding\\n⚠️ Claude limit reached.\\n⏳ <b>Phase 3:</b> Falling back to Gemini 3.1 Pro for review..."
    },
    "restart": {
        "closing": "🔄 Restarting bot..."
    },
    "standalone": {
        "already_running": "🤖 Antigravity Standalone is already running!",
        "starting": "🚀 Starting Antigravity Standalone...",
        "started": "✅ Antigravity Standalone started successfully.",
        "not_installed": "❌ Start failed: Antigravity Standalone does not appear to be installed.",
        "start_failed": "❌ Start error: {error}",
        "already_closed": "ℹ️ Antigravity Standalone is already closed.",
        "closing": "🔌 Closing Antigravity Standalone...",
        "closed": "✅ Antigravity Standalone closed."
    },
    "close": {
        "select_prompt": "⚠️ Please specify which app to close:\n\n👉 Standalone: /close_ag\n👉 IDE (Classic): /close_ide"
    },
    "cmd": {
        "empty": "Please enter a command to run. Example: /cmd ls -la",
        "running": "⏳ Running command:\n`{cmdStr}`",
        "no_output": "✅ Command ran successfully (No output).",
        "output_title": "💻 Command Output:"
    },
    "app": {
        "select_prompt": "Please select the application you want to control. Both applications can run simultaneously and are controlled via independent ports:\n",
        "auto_starting": "🚀 {appName} appears to be closed. Auto-starting...",
        "started": "✅ {appName} started successfully.",
        "updated_preference": "App preference updated to '{app}'!",
        "selection_title": "🤖 <b>Antigravity App Selection</b>\n\n",
        "preferred_app": "Preferred App: <b>{appName}</b>\n",
        "active_port": "Active CDP Connection Port: <code>{port}</code>\n\n",
        "persistent_selection": "⚡ <i>Your selection is permanently saved to the .env file and applied instantly without restarting the bot.</i>",
        "updated_title": "✅ <b>App Preference Updated!</b>\n\n",
        "new_port": "New Connection Port: <code>{port}</code>\n\n",
        "redirect_info": "The bot will now redirect all your messages and commands to this app.",
        "control_panel": "🕹️ Control Panel ({app}):",
        "error_save": "Error: Could not save preference."
    },
    "shortcuts": {
        "scanning": "⏳ Scanning and updating desktop shortcuts, please wait...",
        "error": "❌ Error occurred while updating shortcuts:\n<code>{error}</code>",
        "not_found": "Not found on desktop or could not be changed",
        "success": "\n✨ <b>Success!</b> A total of <b>{count}</b> shortcuts updated. The bot will now be able to automatically connect when you launch applications from the desktop.",
        "start_error": "❌ Process could not be started: {error}",
        "updated_header": "Shortcuts updated:\n",
        "binary_not_found": "binary not found",
        "updated": "Shortcuts updated:\n",
        "unsupported_platform": "Shortcuts are only supported on macOS."
    },
    "update": {
        "checking": "🔍 Checking for updates...",
        "error": "❌ Update error: {error}",
        "success": "✅ Code updated and dependencies installed.\nBot is restarting now...",
        "bot_updated": "🚀 Antigravity Bot successfully updated!\n\n📢 Join @agts_updates for news & @agts_community to chat!",
        "up_to_date": "✅ You are up to date!\n\nv{version} ({commit})",
        "available": "🔄 <b>Update Available!</b>\n\n📢 Join @agts_updates for news & @agts_community to chat!\n\n",
        "new_version": "🚀 New version: <code>{remote}</code>",
        "click_to_download": "⬇️ Click to download: /update",
        "current_version": "Current: v{version} ({commit})\n",
        "new_version_info": "New: v{version} ({commit})\n",
        "changelog": "📝 <b>Changelog:</b> <i>{message}</i>\n\n",
        "update_note": "<i>💡 Note: Both Antigravity 2.0 (Standalone App) and Antigravity IDE are fully supported.</i>\n\n",
        "updating": "Updating...",
        "auto_updating": "🔄 <b>[Auto-Update]</b> Developer update detected (v{version} - {commit}).\nMerging changes and updating...",
        "auto_update_failed": "❌ <b>[Auto-Update]</b> Update failed: {error}"
    },
    "error": {
        "start_error": "❌ Start error: {error}",
        "general_error": "❌ Error: {error}",
        "modal_active": "❌ An interactive question panel is currently open. Please select one of the options or use /stop to cancel. (Images and free text are not valid for this question)"
    },
    "agent": {
        "swipe_to_reply": "<i>(Swipe message to the left to reply to this agent)</i>"
    },
    "interactive_modal": {
        "default_header": "Agent Pending Approval / Question:",
        "options_prompt": "_(You can select one of the buttons below or type your answer)_",
        "confirm_prompt": "_(Please use the 'confirm' button to approve or 'reject' to cancel)_",
        "btn_confirm": "Confirm",
        "btn_reject": "Reject",
        "answer_sent": "Your selection has been sent: {answer}"
    },
    "native_cmd": {
        "goal_empty": "🎯 Usage: /goal <description>\nDefine a long-running autonomous goal for the agent.",
        "goal_started": "🎯 Goal mode activated! The agent will work autonomously until the goal is achieved.",
        "plan_empty": "📋 Usage: /plan <description>\nAsk the agent to create an implementation plan.",
        "plan_started": "📋 Plan generation started!",
        "schedule_empty": "⏰ Usage: /schedule_task <description>\nSchedule a recurring or one-time task.",
        "schedule_started": "⏰ Task scheduled!",
        "browser_started": "🌐 Browser launched in IDE.",
        "error": "❌ Error: {error}"
    },
    "task_watcher": {
        "proactive_msg": "The agent sent a proactive notification:"
    },
    "schedule": {
        "not_configured": "⚠️ CronCrew is not configured yet.\\n\\nSetup: /schedule_setup <server_url> <license_key>\\nExample: /schedule_setup https://agp.emreturkmen.com CC-XXXX-XXXX-XXXX-XXXX",
        "setup_usage": "⚙️ Usage: /schedule_setup <server_url> <license_key>\\n\\nExample:\\n<code>/schedule_setup https://agp.emreturkmen.com CC-XXXX-XXXX-XXXX-XXXX</code>",
        "setup_success": "✅ CronCrew connected!\\n\\n🎫 Tier: <b>{tier}</b>\\n📡 Server: <code>{url}</code>\\n\\nUse /schedule_list to manage your schedules.",
        "setup_error": "❌ Connection error: {error}",
        "status_title": "📊 <b>CronCrew Status</b>\\n\\n",
        "status_tier": "🎫 Tier: <b>{tier}</b>\\n",
        "status_license": "📋 Status: <b>{status}</b>\\n",
        "status_usage": "📈 Today: {today} executions\\n",
        "status_schedules": "📅 Active Schedules: {count}\\n",
        "status_changes": "🔄 Device Changes: {used}/{max}\\n",
        "status_expires": "⏰ Expires: {date}\\n",
        "list_title": "📅 <b>Schedule List:</b>\\n\\n",
        "list_empty": "ℹ️ No schedules created yet.\\n\\nUse /schedule_add to create a new schedule.",
        "list_item": "{icon} <b>{name}</b>\\n   ⏰ <code>{cron}</code> → {workspace}\\n   📊 Ran {runCount}x | Last: {lastResult}\\n",
        "add_usage": "➕ Add a new schedule:\\n\\n<code>/schedule_add Name | cron_expression | workspace | prompt</code>\\n\\nExample:\\n<code>/schedule_add Daily Test | 0 9 * * * | antigravity-bot | Run all tests</code>",
        "add_success": "✅ Schedule created!\\n\\n📝 <b>{name}</b>\\n⏰ <code>{cron}</code>\\n📁 {workspace}\\n🤖 {model}",
        "add_error": "❌ Creation error: {error}",
        "delete_usage": "🗑️ Delete a schedule:\\n\\n<code>/schedule_del <schedule_id></code>",
        "delete_success": "✅ Schedule deleted.",
        "delete_error": "❌ Deletion error: {error}",
        "pause_success": "⏸️ Schedule paused: <b>{name}</b>",
        "resume_success": "▶️ Schedule resumed: <b>{name}</b>",
        "run_success": "🚀 Schedule executed!\\n\\n📁 Workspace: <b>{workspace}</b>\\n🤖 Model: {model}\\n📝 Prompt sent.",
        "run_error": "❌ Execution error: {error}",
        "error": "❌ Error: {error}",
        "btn_pause": "⏸️ Pause",
        "btn_resume": "▶️ Resume",
        "btn_delete": "🗑️ Delete",
        "btn_run": "▶️ Run Now",
        "btn_back": "◀️ Back to List",
        "menu_schedule_setup_desc": "Setup CronCrew connection",
        "menu_schedule_list_desc": "List scheduled tasks",
        "menu_schedule_add_desc": "Add a new scheduled task",
        "menu_schedule_status_desc": "Show CronCrew status"
    },
    "localImageFallback": "Image",
    "localImageSent": "sent to your phone",
    "login": {
        "notice_title": "⚠️ <b>Google Login Notice</b>",
        "notice_body": "Starting the login flow will temporarily suspend other bot commands.\nThe AI Agent will continue running in your IDE in the background.\n\nDo you want to proceed?",
        "btn_continue": "👉 Yes, Continue",
        "btn_cancel": "✖ Cancel",
        "starting": "🔄 <b>Starting secure login…</b>",
        "server_error": "❌ <b>Login server error</b>\n\n<code>{error}</code>",
        "timeout": "🚫 <b>Login timed out (10 minutes).</b> Use /login to try again.",
        "prompt_title": "🔐 <b>Sign in with Google</b>",
        "prompt_body": "Tap the button below to sign in with your\nGoogle account and connect it to this bot.\n\n📱 <b>On mobile?</b>\nIf your browser shows a connection error after\nsigning in, just copy the <b>full URL</b> from\nthe address bar and paste it here.\n\n⏱  Expires in <b>10 minutes</b>",
        "btn_signin": "🔒 Sign in with Google",
        "btn_cancel_login": "❌ Cancel Login",
        "cancelled": "🚫 <b>Login cancelled</b>\n\nSend /login whenever you're ready to try again.",
        "code_received": "⏳ <b>Code received!</b> Completing sign-in…",
        "success_title": "✅ <b>Signed in successfully!</b>",
        "success_body": "👤 <b>{name}</b>\n📧 <code>{email}</code>\n🆔 Account  <b>#{numericId}</b>  <i>({action})</i>\n\n<i>What's next?</i>\n• Switch  →  <code>/switchacc {numericId}</code>\n• Quota   →  <code>/getinfo {numericId}</code>\n• All accounts  →  <code>/accounts</code>",
        "failed": "❌ <b>Authentication failed</b>\n\n<code>{error}</code>",
        "no_active_session": "⚠️ <b>No active login session</b>\n\nStart a new one with /login first.",
        "no_active_session_short": "⚠️ No active login session found. Use /login to start.",
        "authenticating": "⏳ <b>Authenticating…</b>",
        "failed_attempts": "The Google login flow was cancelled after 3 failed attempts to paste a valid link/code.",
        "in_progress": "⚠️ <b>Google Login in progress</b>\n━━━━━━━━━━━━━━━━━━━━━━\nOther bot services are temporarily suspended.\nPlease complete the sign-in with Google or cancel the current login flow first using the Cancel button or typing /cancel.",
        "no_accounts": "📭 <b>No accounts saved yet</b>\n\nUse /login to add one.",
        "code_usage": "📋 <b>Paste your login code</b>\n━━━━━━━━━━━━━━━━━━━━━━\nAfter signing in with Google, if the redirect failed, copy the full URL from your browser (or just the <code>code=…</code> value) and send it here:\n\n<code>/logincode &lt;url or code&gt;</code>",
        "invalid_code": "⚠️ <b>Invalid Google URL or Code</b>\n━━━━━━━━━━━━━━━━━━━━━━\nCould not extract a valid Google authorization code from your message.\nPlease paste the full redirect URL or the authorization code.",
        "invalid_code_attempt": "\n<i>Attempt {count} of 3 before cancellation.</i>"
    },
    "switchacc": {
        "title": "🔄 <b>Switching to Account #{id}</b>",
        "email": "📧 {email}",
        "usage": "ℹ️ <b>Usage</b>\n━━━━━━━━━━━━━━━━━━━━━━\n<code>/switchacc &lt;id&gt;</code>\n\nExample: <code>/switchacc 1</code>\nUse /accounts to see your account IDs.",
        "not_found": "❌ <b>Account #{id} not found</b>\n\nUse /accounts to see your saved accounts.",
        "step_refreshing": "🔑 Refreshing token…",
        "step_refreshed": "✅ Token refreshed & saved",
        "step_valid": "✅ Token is valid",
        "step_stopping": "🔴 Stopping Antigravity ({app})…",
        "step_stopped": "✅ Antigravity ({app}) stopped",
        "step_still_closing": "⚠️ Antigravity ({app}) may still be closing…",
        "step_not_running": "ℹ️ Antigravity ({app}) was not running",
        "step_writing": "💉 Writing credentials…",
        "step_written": "✅ Credentials written → {app}",
        "step_written_keyring": "✅ Credentials → keychain (SQLite: {error})",
        "step_write_failed": "⚠️ Write failed: {error}",
        "step_starting": "🟢 Starting Antigravity ({app})…",
        "step_started": "✅ Antigravity ({app}) started",
        "step_start_failed": "⚠️ Could not start ({app}): {error}",
        "step_done": "✅ <b>Now on account #{id}</b>",
        "step_done_email": "📧 {email}",
        "error": "❌ <b>Error</b>\n\n<code>{error}</code>"
    },
    "accounts": {
        "title": "Saved Accounts",
        "btn_add": "Add Account",
        "btn_back": "Back to Accounts",
        "btn_confirm_delete": "Yes, delete",
        "btn_cancel": "Cancel",
        "delete_confirm_title": "Delete Account",
        "delete_confirm_body": "This removes the saved token from this bot.",
        "delete_confirm_note": "Antigravity itself will not be affected.",
        "btn_quota": "Quota",
        "btn_delete": "Delete"
    },
    "artifact_feedback": {
        "proceed": "✅ Proceed",
        "cancel": "❌ Cancel",
        "proceeded": "✅ Proceeded",
        "canceled": "❌ Canceled",
        "processing": "Processing...",
        "error": "Error: {message}"
    },
    "skills": {
        "menu_title": "🧠 <b>Agent Skills ({count})</b>\n\n📂 <i>Browse by category or search:</i>\n💡 <code>/skill &lt;name&gt; [prompt]</code>",
        "category_title": "{category}\n<b>{count} skills</b>\n\n<i>Tap a skill for details:</i>",
        "search_results": "🔍 <b>Results for \"{query}\" ({count})</b>",
        "not_found": "❌ No skill found: \"{name}\"",
        "no_skills": "ℹ️ No skills installed.",
        "running": "▶️ Running {name}...",
        "close_btn": "❌ Close",
        "back_btn": "⬅️ All Categories",
        "refresh_btn": "🔄 Refresh"
    }
}
