{
    "bot": {
        "started": "🚀 ¡Bot remoto de Antigravity iniciado!\nChat ID: {chatId}\nEscribe /help para ver los comandos disponibles.",
        "polling": "¡El Bot de Antigravity está escuchando activamente!",
        "restarted": "🔄 Bot reiniciado."
    },
    "auth": {
        "unauthorized": "❌ No autorizado.",
        "unauthorized_attempt": "⚠️ <b>¡Intento de acceso no autorizado!</b>\n\n👤 <b>Persona:</b> {name}\n🔖 <b>Usuario:</b> {username}\n🆔 <b>ID:</b> <code>{id}</code>\n💬 <b>{details}</b>",
        "anonymous": "Anónimo",
        "setup_welcome": "¡Bienvenido! Tu Chat ID es: {chatId}\nPor favor agrégalo al archivo .env como ALLOWED_CHAT_ID y reinicia el bot.",
        "action": "Acción: {type}",
        "unknown": "Desconocido",
        "message": "Mensaje: \"{text}\"",
        "button": "Botón: {data}"
    },
    "help": {
        "title": "🤖 <b>Comandos disponibles:</b>",
        "messaging_title": "📝 <i>Mensajes e Interacción:</i>",
        "messaging_text": "- Escribe texto → Habla con el agente\n- 📎 Enviar imagen/archivo → Reenviar al agente\n- /stop → Detener el agente en ejecución\n- /file → Abrir explorador de archivos\n- /turbo → Alternar modo de planificación turbo\n- /panel → Mostrar panel de control interactivo",
        "agent_title": "🎯 <i>Modos del Agente y Habilidades (Skills):</i>",
        "agent_text": "- /goal &lt;tarea&gt; → Objetivo autónomo (trabaja hasta terminar)\n- /plan &lt;tarea&gt; → Generar plan de implementación\n- /skills → Explorador interactivo de habilidades por categoría\n- /skill &lt;nombre&gt; [prompt] → Ejecutar una habilidad específica\n- /schedule_task &lt;tarea&gt; → Programar tarea recurrente",
        "chat_title": "💬 <i>Chat y Artefactos:</i>",
        "chat_text": "- /new → Abrir un nuevo chat\n- /agents → Listar y cambiar chats recientes\n- /artifacts → Listar artefactos generados\n- /gettask | /getplan | /getwalk → Obtener lista de tareas, plan o guía más reciente\n- /telegraph → Alternar publicación web en Telegraph\n- /cleartelegraph → Borrar páginas publicadas en Telegraph\n- /model → Seleccionar modelo de IA\n- /autoaccept → Alternar auto-aceptar\n- /help → Mostrar esta guía de ayuda",
        "ide_title": "🛠️ <i>Controles del Sistema y Workspace:</i>",
        "ide_text": "- /start_ide | /start_ag → Iniciar IDE / App Standalone\n- /close → Cerrar la aplicación por completo\n- /closeall → Cerrar todas las pestañas de archivos abiertas\n- /app → Alternar entre IDE y Standalone\n- /workspace → Cambiar espacio de trabajo\n- /memory → Comprobar o alternar memoria del proyecto (AGENT.md)\n- /watcher → Alternar monitor de tareas en segundo plano\n- /window → Seleccionar ventana activa\n- /fix_shortcuts → Reparar accesos directos\n- /lang → Cambiar idioma\n- /menu → Actualizar menú de comandos\n- /cmd &lt;comando&gt; → Ejecutar comando de terminal\n- /restart → Reiniciar el bot de Telegram",
        "status_title": "👁️ <i>Estado e Información:</i>",
        "status_text": "- /latest → Obtener la última respuesta\n- /screenshot → Tomar captura de pantalla del IDE\n- /status → Ver estado del sistema y procesos\n- /quota → Consultar cuotas de IA\n- /version → Ver versión del bot\n- /update → Buscar actualizaciones",
        "account_title": "📱 <b>Gestión de Cuentas:</b>",
        "account_text": "- /login → Iniciar sesión con Google (OAuth)\n- /accounts → Listar cuentas de Google guardadas\n- /switchacc &lt;N&gt; → Cambiar cuenta activa\n- /getinfo &lt;N&gt; → Ver información y cuota de la cuenta\n- /delacc &lt;N&gt; → Eliminar una cuenta guardada"
    },
    "ide": {
        "already_running": "✅ ¡Antigravity IDE ya está en ejecución! No necesitas abrir otra ventana.\n💡 Usa /close para cerrarlo.",
        "starting": "🔄 Iniciando Antigravity IDE...",
        "start_failed": "❌ Error al iniciar IDE: {error}",
        "started": "✅ ¡IDE iniciado correctamente!",
        "already_closed": "ℹ️ IDE ya está cerrado. (Archivo de bloqueo limpiado)",
        "closing": "🔄 Cerrando IDE...",
        "closing_window": "🪟 Cerrando ventana...",
        "window_closed": "✅ Ventana cerrada correctamente.",
        "window_close_failed": "❌ Error al cerrar la ventana. ¿Hay alguna ventana abierta?",
        "closed": "✅ ¡IDE cerrado por completo! (Procesos y archivos de bloqueo limpiados)",
        "not_installed": "❌ No se encontró Antigravity IDE. Por favor instálalo primero.\nVer: https://antigravity.google/",
        "init_error": "❌ Error de inicialización: {error}",
        "already_running_short": "El IDE de Antigravity ya se está ejecutando (PID: {pid})"
    },
    "status": {
        "title": "📊 <b>Estado del Sistema:</b>\n",
        "ide_running": "💻 <b>Antigravity IDE (Clásico):</b> {status}\n",
        "ide_stopped": "🔴 IDE: Detenido",
        "cdp_active": "⚡ <b>Automatización CDP:</b> 🟢 ACTIVO\n",
        "cdp_inactive": "⚡ <b>Automatización CDP:</b> 🔴 INACTIVO (Conexión CDP fallida)\n",
        "bot_running": "🟢 Bot: En ejecución",
        "autoaccept_on": "✅ ENCENDIDO",
        "autoaccept_off": "❌ APAGADO",
        "standalone_running": "🤖 <b>Antigravity Standalone:</b> {status}\n",
        "running_status": "🟢 EN EJECUCIÓN",
        "stopped_status": "🔴 CERRADO",
        "telegram_bot": "🤖 <b>Bot de Telegram:</b> 🟢 ACTIVO\n",
        "active_chat": "\n💬 <b>Detalles del chat activo:</b>\n",
        "project_area": "- Área del Proyecto: <code>{workspace}</code>\n",
        "agent_title": "- Título del Agente: <code>{name}</code>\n",
        "selected_model": "- Modelo seleccionado: <code>{model}</code>\n",
        "agent_status": "- Estado del Agente: <b>{status}</b>\n",
        "agent_working": "🔄 Trabajando (Ocupado)",
        "agent_idle": "💤 Inactivo",
        "report_title": "📊 <b>Reporte de Estado del Bot Antigravity</b>\n\n",
        "preferred_app_status": "🎯 <b>App Preferida:</b> <code>{app}</code>\n\n"
    },
    "latest": {
        "title": "📝 Última Respuesta:\n\n",
        "no_new": "[No hay mensajes nuevos]",
        "error": "❌ Error: {error}\n(¿Está abierto Antigravity?)",
        "last_agent_reply": "📋 Última Respuesta del Agente:",
        "not_found_active": "⚠️ No se encontró la ventana de chat activa. Por favor, selecciona un chat usando el comando /agents o envía un nuevo mensaje."
    },
    "screenshot": {
        "taking": "📸 Tomando captura de la IDE (vía CDP)...",
        "error": "❌ Error: {error}\n(¿Está abierta la IDE?)"
    },
    "ask": {
        "empty": "Por favor escribe una pregunta. Ejemplo: `/ask Hola`",
        "sent": "✅ Mensaje enviado, esperando respuesta...",
        "done": "✅ ¡Completado!",
        "done_empty": "✅ Completado, pero no se generó texto nuevo.",
        "timeout": "⚠️ El agente sigue pensando o se agotó el tiempo. Usa /latest para revisar.",
        "send_error": "❌ Error al enviar: {error}",
        "headless_error": "❌ Error en modo sin interfaz: {error}",
        "no_chat_input": "No se encontró el cuadro de texto en la IDE. Asegúrate de tener una sesión de chat abierta.",
        "reply_agent": "✍️ Responder a este agente",
        "focus_toast": "Apuntando a: {title}",
        "focus_success": "✅ Enfocado en el agente <b>{title}</b>.\n✍️ Los mensajes que escribas ahora irán directamente a este agente.",
        "working": "⏳ El agente está trabajando en esta tarea..."
    },
    "stop": {
        "stopping": "🛑 Deteniendo al agente...",
        "stopped": "✅ ¡Agente detenido!",
        "already_stopped": "ℹ️ El agente ya está detenido o no se encontró el botón de parar.",
        "error": "❌ Error: {error}"
    },
    "new_chat": {
        "opened": "✅ ¡Nuevo chat abierto!",
        "not_found": "❌ Botón de nuevo chat no encontrado.",
        "error": "❌ Error: {error}"
    },
    "model": {
        "selecting": "🔄 Seleccionando modelo: {model}",
        "changed": "✅ Modelo cambiado: {model}",
        "not_found": "❌ Modelo no encontrado o no pudo ser seleccionado.",
        "select_prompt": "🤖 Selecciona un modelo:",
        "changing": "🔄 Cambiando modelo: {model}",
        "select_failed": "❌ No se pudo seleccionar el modelo. Asegúrate de que el chat esté abierto en la IDE.",
        "error": "¡Error!"
    },
    "workspace": {
        "switching": "🔄 Abriendo ventana de IDE con nuevo entorno: {workspace}",
        "start_failed": "❌ Error al iniciar: {error}",
        "started": "✅ ¡IDE iniciado con nuevo entorno de trabajo: {workspace}!",
        "trusted": "🔓 Entorno marcado como confiable automáticamente.",
        "cdp_warning": "\n⚠️ La conexión CDP puede que no esté lista. Espera unos segundos e inténtalo de nuevo.",
        "select_prompt": "Por favor selecciona el entorno de trabajo al que quieres cambiar:",
        "read_error": "❌ No se pudo leer el directorio de proyectos.",
        "selected": "Entorno seleccionado: {project}",
        "not_found_standalone": "❌ El proyecto '{wsName}' no se encontró o no se pudo abrir en la aplicación Standalone."
    },
    "file": {
        "empty_dir": "📂 Este directorio está vacío.",
        "dir_read_error": "❌ No se pudo leer el directorio: {error}",
        "not_found": "❌ Archivo no encontrado: {path}",
        "too_large": "❌ Archivo demasiado grande ({size}MB). El límite de Telegram es de 50MB.",
        "send_failed": "❌ No se pudo enviar el archivo: {error}",
        "sending": "Enviando: {filename}",
        "parent_dir": "⬆️ Directorio Padre",
        "prev_page": "◀️ Anterior",
        "next_page": "▶️ Siguiente",
        "dir_info": "({count} elementos, pág {page}/{totalPages})",
        "expired": "❌ La sesión ha expirado, escribe /file para empezar de nuevo."
    },
    "menu": {
        "updated": "✅ ¡Menú actualizado! Puedes verlo desde el botón ☰ abajo a la izquierda.",
        "help_desc": "Muestra todos los comandos disponibles",
        "ask_desc": "Enviar una pregunta al agente",
        "latest_desc": "Obtener la última respuesta",
        "screenshot_desc": "Tomar captura de la IDE",
        "status_desc": "Estado del sistema (IDE, CDP, PM2)",
        "start_ide_desc": "Iniciar IDE",
        "close_desc": "Cerrar la IDE completa",
        "close_window_desc": "Cerrar la ventana actual",
        "new_desc": "Abrir nuevo chat",
        "agents_desc": "Lista de chats recientes",
        "artifacts_desc": "Lista de artefactos del chat",
        "model_desc": "Abrir menú de modelos",
        "workspace_desc": "Cambiar de proyecto",
        "lang_desc": "Cambiar idioma",
        "cmd_desc": "Ejecutar comando terminal",
        "file_desc": "Explorar y enviar archivos",
        "stop_desc": "Detener el agente",
        "autoaccept_desc": "Alternar auto-aceptar",
        "quota_desc": "Muestra la cuota de Antigravity",
        "update_desc": "Buscar actualizaciones",
        "version_desc": "Mostrar versión actual",
        "menu_desc": "Actualizar el menú de comandos",
        "window_desc": "Seleccionar ventana IDE",
        "restart_desc": "Reiniciar el bot",
        "app_desc": "Seleccionar aplicación activa",
        "fix_shortcuts_desc": "Reparar accesos directos",
        "login_desc": "Iniciar sesión con Google",
        "accounts_desc": "Listar cuentas de Google guardadas",
        "switchacc_desc": "Cambiar cuenta activa de Google",
        "getinfo_desc": "Ver información de cuota de cuenta",
        "delacc_desc": "Eliminar una cuenta de Google guardada",
        "btn_screenshot": "📸 Captura",
        "btn_artifacts": "📦 Artefactos",
        "btn_auto_on": "⚡ Auto",
        "btn_auto_off": "🔴 Auto",
        "btn_latest": "💬 Último",
        "start_ag_desc": "Iniciar Agente",
        "close_ide_desc": "Cerrar IDE",
        "close_ag_desc": "Cerrar Agente",
        "welcome": "👋 ¡Bienvenido! Tu panel está listo:",
        "btn_on": "Encender",
        "btn_off": "Apagar",
        "btn_status": "📊 Estado",
        "goal_desc": "Establecer objetivo autónomo para el agente",
        "plan_desc": "Generar plan de implementación",
        "schedule_task_desc": "Programar tarea en el IDE",
        "browser_desc": "Abrir navegador en el IDE",
        "model_not_selected": "⚠️ Ningún modelo seleccionado",
        "gettask_desc": "Obtener la última lista de tareas",
        "getplan_desc": "Obtener el último plan de implementación",
        "getwalk_desc": "Obtener el último recorrido (Walkthrough)",
        "closeall_desc": "Cerrar todas las pestañas de archivos",
        "watcher_desc": "Alternar observador de tareas en segundo plano",
        "telegraph_desc": "Alternar subidas a Telegraph",
        "cleartelegraph_desc": "Borrar páginas publicadas en Telegraph"
    },
    "telegraph": {
        "enabled": "🌐 <b>Publicación en Telegraph:</b> HABILITADA\n\nLos artefactos se publicarán en Telegraph/graph.org con URLs indescifrables.",
        "disabled": "🔒 <b>Publicación en Telegraph:</b> DESHABILITADA\n\nLos artefactos permanecerán privados y se enviarán directamente en el chat de Telegram.",
        "status": "🌐 <b>Estado de Telegraph:</b>\n\n• Estado: <b>{state}</b>\n• Seguridad: URLs con slug criptográfico indescifrable de 128 bits\n\n<i>Usa /telegraph on para activar o /telegraph off para desactivar.</i>",
        "state_on": "🟢 HABILITADA (Público graph.org)",
        "state_off": "🔒 DESHABILITADA (Chat privado directo)",
        "btn_turn_on": "🟢 Activar",
        "btn_turn_off": "🔴 Desactivar",
        "btn_wipe": "Borrar páginas",
        "wiping": "🗑️ Borrando páginas publicadas en Telegraph por privacidad y seguridad...",
        "wiped": "✅ Se borraron exitosamente {count} página(s) de Telegraph. Los contenidos se reemplazaron con avisos de eliminación en graph.org."
    },
    "watcher": {
        "enabled": "👁️ <b>Task Watcher:</b> ACTIVADO\n\nLas notificaciones del agente en segundo plano están activas.",
        "disabled": "⏸️ <b>Task Watcher:</b> DESACTIVADO\n\nLas notificaciones del agente en segundo plano están en pausa.",
        "status": "👁️ <b>Estado de Task Watcher:</b>\n\n• Estado: <b>{state}</b>\n• Hilo activo: <code>{thread}</code>\n• Monitoreadas: {count} conversación(es)",
        "state_on": "🟢 ACTIVADO",
        "state_off": "🔴 DESACTIVADO"
    },
    "photo": {
        "downloaded": "✅ Archivo descargado y enviando al agente...",
        "error": "❌ Error al procesar archivo: {error}"
    },
    "lang": {
        "current": "🌐 Idioma actual: {lang}",
        "changed": "✅ Idioma cambiado a: {lang}",
        "select_prompt": "🌐 Selecciona un idioma:"
    },
    "autoaccept": {
        "enabling": "🔄 Activando auto-aceptar...",
        "enabled": "⚡ ¡Auto-Aceptar ACTIVADO!\n\n🤖 Observador inyectado en {injected} objetivos.\nLos botones de Run, Accept, Allow y Continue se clickearán automáticamente.",
        "enabled_none": "⚡ ¡Auto-Aceptar ACTIVADO!\n\n⚠️ No se encontraron objetivos. Se inyectará automáticamente cuando se abra el panel del agente.",
        "disabling": "🔄 Desactivando auto-aceptar...",
        "disabled": "✅ Auto-Aceptar DESACTIVADO.\n\n📊 Total de clics en esta sesión: {clicks}.",
        "status_title": "📊 <b>Estado de Auto-Aceptar:</b>\n",
        "status_enabled": "⚡ Estado: ACTIVADO",
        "status_disabled": "⏸️ Estado: DESACTIVADO",
        "status_active": "🤖 Observador: Activo ({targets} objetivos)",
        "status_inactive": "📴 Observador: Inactivo",
        "status_clicks": "🖱️ Total de clics: {total} (sesión: {session})",
        "status_last_click": "⏱️ Último clic: {text} (hace {sec}s)",
        "status_blocked": "🛡️ Comandos bloqueados: {count}",
        "status_no_panel": "⚠️ No se detectó el panel del agente. Por favor abre una sesión de chat.",
        "error": "❌ Error: {error}"
    },
    "quota": {
        "checking": "🔄 Verificando el estado de la cuota...",
        "not_found": "❌ <b>Cuenta #{id} no encontrada</b>\n\nUse /accounts para ver sus cuentas guardadas.",
        "error": "❌ Error: {error}",
        "header": "📊 Estado de la cuenta y cuota\n",
        "plan": "📋 Plan: {plan}",
        "prompt_credits": "📊 Créditos de Prompt: {available}{monthly}",
        "model_quota": "⏱️ Estado de cuota de modelos:",
        "remaining": " {pct}% restante",
        "empty": " ⛔ AGOTADO",
        "reset_time": " ⏳ {hours}h {mins}m",
        "remaining_pct": " {icon} {filled}{empty} {pct}% restante",
        "info_title": "✨ <b>Información de Cuenta</b>",
        "user": "👤 <b>{name}</b>",
        "email": "📧 <code>{email}</code>",
        "id": "🆔 Cuenta  <b>#{id}</b>",
        "tier": "🎟️ Nivel  —  <b>{tier}</b>",
        "credits": "💳 Créditos de IA  —  <b>{credits}</b>",
        "model_quota_title": "📊 <b>Cuota de Modelos</b>",
        "model_access_title": "📊 <b>Acceso a Modelos</b>",
        "detailed_quota_title": "📊 <b>Cuota Detallada</b>",
        "unlimited": "<code>∞ Ilimitado</code>",
        "unlimited_desc": "  ↳ Todos los modelos — sin límites de cuota",
        "unlimited_model": "  ↳ {model}{star}",
        "reset_timestamp": "     ↻ {resetStr}",
        "no_data": "ℹ️ No hay datos de cuota disponibles aún.\n     Inténtelo de nuevo en un momento.",
        "fetching": "🔍 <b>Obteniendo cuota…</b>",
        "fetch_failed": "❌ <b>No se pudo obtener la cuota</b>\n\n<code>{error}</code>",
        "no_accounts": "📭 <b>No hay cuentas guardadas aún</b>\n\nUse /login para agregar una.",
        "token_status_active": "🟢 Activo  —  <b>∞ Ilimitado</b>  (auto-actualizable)",
        "token_status_unknown": "⚪ Desconocido — use /login para actualizar",
        "token_status_valid": "🟢 Válido  —  quedan <b>{mins} min</b>",
        "token_status_expiring": "🟡 Expira pronto  —  quedan <b>{mins} min</b>",
        "token_status_expired": "🔴 Expirado  —  use /login para actualizar",
        "reset_relative": "    <i>restablecer: {time}</i>",
        "usage": "ℹ️ <b>Uso</b>\n━━━━━━━━━━━━━━━━━━━━━━\n<code>/getinfo &lt;id&gt;</code>\n\nEjemplo: <code>/getinfo 1</code>\nUse /accounts para ver sus ID de cuenta."
    },
    "response_too_long": "⚠️ Respuesta muy larga. Usa /latest para ver la versión completa.",
    "window": {
        "not_found": "No se encontraron ventanas de IDE. Envía /start_ide primero.",
        "title": "<b>🔳 Ventanas de IDE</b>\n",
        "current": "Objetivo actual: <i>{{current}}</i>",
        "auto": "Objetivo: <i>auto (la primera disponible)</i>",
        "found": "Se encontraron {{count}} ventana(s). Toca para seleccionar:",
        "clear_btn": "🔄 Auto (limpiar preferencia)",
        "error": "Error al listar ventanas: {{error}}",
        "cleared_toast": "Limpiado — usando auto-detección",
        "cleared_msg": "🔄 Preferencia de ventana eliminada. El bot detectará automáticamente la ventana IDE activa.",
        "expired": "La lista de ventanas ha expirado. Envía /window de nuevo.",
        "selected_msg": "✅ Apuntando a: <b>{{title}}</b>\n\nTodos los comandos se dirigirán a esta ventana.",
        "selected_toast": "Ventana seleccionada: {title}"
    },
    "agents": {
        "list_title": "📂 <b>Chats recientes:</b>\n\n",
        "switched": "✅ Cambiado al hilo: <b>{name}</b>",
        "not_found": "❌ No se pudo seleccionar el hilo de chat.",
        "invalid_number": "❌ Número de chat inválido.",
        "no_recent": "ℹ️ No se encontraron hilos activos recientemente.",
        "error": "❌ Error: {error}",
        "switched_plain": "✅ Cambiado al hilo: {name}",
        "window_not_found": "Ventana de agente no encontrada",
        "menu_title": "📂 <b>Seleccionar Chat / Agente</b>\n\n📍 <b>Chat activo:</b> <i>{activeChat}</i>\n📁 <b>Proyecto activo:</b> <code>{activeProject}</code>\n\n<i>Seleccione un chat reciente o filtre por proyecto:</i>",
        "project_view_title": "📁 <b>Proyecto: {workspace}</b> ({count} chats)\n\n<i>Seleccione un chat para cambiar:</i>",
        "all_projects_btn": "⬅️ Todos los proyectos",
        "refresh_btn": "🔄 Actualizar",
        "close_btn": "❌ Cerrar",
        "search_found_multi": "🔍 <b>Resultados de búsqueda para \"{query}\":</b>\n\n<i>Seleccione un chat:</i>",
        "search_not_found": "❌ No se encontraron chats para \"{query}\"."
    },
    "artifacts": {
        "list_title": "📎 <b>Artefactos del chat actual:</b>\n\n",
        "no_active_thread": "⚠️ No se encontró ningún hilo activo. Por favor selecciona uno en la IDE primero.",
        "no_artifacts": "ℹ️ No se encontraron artefactos para el chat actual.",
        "invalid_number": "❌ Número de artefacto inválido.",
        "sending": "📤 Enviando artefacto: <b>{name}</b>...",
        "error": "❌ Error al leer el artefacto: {error}"
    },
    "turbo": {
        "off": "🛑 Modo Turbo Desactivado.\nHas vuelto al modo asistente normal.",
        "on_msg": "⚡ <b>MODO TURBO ACTIVO</b> ⚡\n\n⚠️ <b>Atención:</b> En este modo, tus solicitudes serán procesadas de forma secuencial por Claude y Gemini (Planificación -> Código -> Revisión). Debido a que los modelos revisarán el código de cada uno, <b>se consumirán más tokens.</b>\n\nPara desactivar este modo, puedes escribir <code>/turbo</code> de nuevo o hacer clic en el botón del menú.",
        "on_toast": "🚀 ¡Modo Turbo activado!",
        "btn_on": "🚀 Turbo ✅",
        "btn_off": "🚀 Turbo",
        "p1_start": "🚀 <b>Modo Turbo Iniciado:</b>\n\n⏳ <b>Fase 1:</b> Seleccionando modelo (Claude)...",
        "p1_planning": "🚀 <b>Modo Turbo Iniciado:</b>\n\n⏳ <b>Fase 1:</b> Claude está preparando el plan...",
        "p1_error": "Tiempo de espera de Claude agotado durante la fase de planificación.",
        "p2_switching": "🚀 <b>Modo Turbo Activo:</b>\n\n✅ <b>Fase 1:</b> Claude terminó el plan.\n⏳ <b>Fase 2:</b> Cambiando modelo (Gemini)...",
        "p2_coding": "🚀 <b>Modo Turbo Activo:</b>\n\n✅ <b>Fase 1:</b> Claude terminó el plan.\n⏳ <b>Fase 2:</b> Gemini está escribiendo el código...",
        "p2_error": "Tiempo de espera de Gemini agotado durante la fase de codificación.",
        "p3_switching": "🚀 <b>Modo Turbo Activo:</b>\n\n✅ <b>Fase 1:</b> Planificación\n✅ <b>Fase 2:</b> Codificación\n⏳ <b>Fase 3:</b> Cambiando modelo (Claude) - Revisando...",
        "p3_reviewing": "🚀 <b>Modo Turbo Activo:</b>\n\n✅ <b>Fase 1:</b> Planificación\n✅ <b>Fase 2:</b> Codificación\n⏳ <b>Fase 3:</b> Claude está revisando el código...",
        "p3_error": "Tiempo de espera de Claude agotado durante la fase de revisión.",
        "p4_switching": "🚀 <b>Modo Turbo Activo:</b>\n\n✅ <b>Fase 1:</b> Planificación\n✅ <b>Fase 2:</b> Codificación\n⚠️ <b>Fase 3:</b> ¡Problemas encontrados!\n⏳ <b>Fase 4:</b> Cambiando modelo (Gemini) - Arreglando...",
        "p4_fixing": "🚀 <b>Modo Turbo Activo:</b>\n\n✅ <b>Fase 1:</b> Planificación\n✅ <b>Fase 2:</b> Codificación\n⚠️ <b>Fase 3:</b> ¡Problemas encontrados!\n⏳ <b>Fase 4:</b> Gemini está arreglando los problemas...",
        "p4_error": "Tiempo de espera de Gemini agotado durante la fase de arreglo.",
        "done_issues": "🚀 <b>Modo Turbo Completado:</b>\n\n✅ <b>Fase 1:</b> Planificación (Claude)\n✅ <b>Fase 2:</b> Codificación (Gemini)\n⚠️ <b>Fase 3:</b> Revisión (Claude)\n✅ <b>Fase 4:</b> Arreglando (Gemini)\n\n✨ Resultados en camino...",
        "done_no_issues": "🚀 <b>Modo Turbo Completado:</b>\n\n✅ <b>Fase 1:</b> Planificación (Claude)\n✅ <b>Fase 2:</b> Codificación (Gemini)\n✅ <b>Fase 3:</b> Revisión - Sin Problemas (Claude)\n\n✨ Resultados en camino...",
        "error_title": "❌ <b>Error del Modo Turbo:</b>\n\n{error}",
        "p5_summarizing": "⏳ Fase 5: Preparando resumen...",
        "done_summary": "✨ Modo Turbo Completado (Resumen listo)",
        "p5_error": "Tiempo de espera agotado durante la fase de resumen.",
        "is_running": "⏳ ¡El Modo Turbo está en ejecución! Espera a que termine o escribe /turbo para cancelar.",
        "is_running_short": "⏳ Modo Turbo en ejecución, espere.",
        "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": "🔄 Reiniciando el bot..."
    },
    "standalone": {
        "already_running": "🤖 ¡Antigravity Standalone ya está en ejecución!",
        "starting": "🚀 Iniciando Antigravity Standalone...",
        "started": "✅ Antigravity Standalone iniciado correctamente.",
        "not_installed": "❌ Error al iniciar: Al parecer Antigravity Standalone no está instalado.",
        "start_failed": "❌ Error al iniciar: {error}",
        "already_closed": "ℹ️ Antigravity Standalone ya está cerrado.",
        "closing": "🔌 Cerrando Antigravity Standalone...",
        "closed": "✅ Antigravity Standalone cerrado."
    },
    "close": {
        "select_prompt": "⚠️ Por favor especifica qué app quieres cerrar:\n\n👉 Standalone: /close_ag\n👉 IDE (Clásico): /close_ide"
    },
    "cmd": {
        "empty": "Por favor ingresa un comando. Ejemplo: /cmd ls -la",
        "running": "⏳ Ejecutando comando:\n`{cmdStr}`",
        "no_output": "✅ Comando ejecutado con éxito (Sin salida).",
        "output_title": "💻 Salida del comando:"
    },
    "app": {
        "select_prompt": "Por favor selecciona la aplicación que quieres controlar. Ambas aplicaciones pueden ejecutarse al mismo tiempo y se controlan por puertos separados:\n",
        "auto_starting": "🚀 {appName} parece estar cerrada. Autoiniciando...",
        "started": "✅ {appName} iniciada correctamente.",
        "updated_preference": "¡Preferencia de aplicación actualizada a '{app}'!",
        "selection_title": "🤖 <b>Selección de App Antigravity</b>\n\n",
        "preferred_app": "App Preferida: <b>{appName}</b>\n",
        "active_port": "Puerto de Conexión CDP Activo: <code>{port}</code>\n\n",
        "persistent_selection": "⚡ <i>Tu selección se ha guardado permanentemente en el archivo .env y se aplica al instante sin reiniciar el bot.</i>",
        "updated_title": "✅ <b>¡Preferencia de App Actualizada!</b>\n\n",
        "new_port": "Nuevo Puerto de Conexión: <code>{port}</code>\n\n",
        "redirect_info": "El bot ahora redirigirá todos tus mensajes y comandos a esta aplicación.",
        "control_panel": "🕹️ Panel de Control ({app}):",
        "error_save": "Error: No se pudo guardar la preferencia."
    },
    "shortcuts": {
        "scanning": "⏳ Escaneando y actualizando accesos directos del escritorio...",
        "error": "❌ Ocurrió un error al actualizar los accesos directos:\n<code>{error}</code>",
        "not_found": "No se encontraron en el escritorio o no se pudieron modificar.",
        "success": "\n✨ <b>¡Éxito!</b> Un total de <b>{count}</b> accesos directos fueron actualizados. El bot ahora podrá conectarse automáticamente al abrir las apps desde el escritorio.",
        "start_error": "❌ El proceso no pudo iniciarse: {error}",
        "updated_header": "Accesos directos actualizados:\n",
        "binary_not_found": "binario no encontrado",
        "updated": "Accesos directos actualizados:\n",
        "unsupported_platform": "Los atajos solo son compatibles con macOS."
    },
    "update": {
        "checking": "🔍 Buscando actualizaciones...",
        "error": "❌ Error de actualización: {error}",
        "success": "✅ Código actualizado y dependencias instaladas.\nEl bot se está reiniciando ahora...",
        "bot_updated": "🚀 ¡Bot de Antigravity actualizado con éxito!\n\n📢 ¡Únete a @agts_updates para noticias y @agts_community para chatear!",
        "up_to_date": "✅ ¡Estás al día!\n\nv{version} ({commit})",
        "available": "🔄 <b>¡Actualización disponible!</b>\n\n📢 ¡Únete a @agts_updates para noticias y @agts_community para chatear!\n\n",
        "new_version": "🚀 Nueva versión: <code>{remote}</code>",
        "click_to_download": "⬇️ Haz clic para descargar: /update",
        "current_version": "Actual: v{version} ({commit})\n",
        "new_version_info": "Nueva: v{version} ({commit})\n",
        "changelog": "📝 <b>Changelog:</b> <i>{message}</i>\n\n",
        "update_note": "<i>💡 Nota: Tanto Antigravity 2.0 (Standalone) como Antigravity IDE son totalmente compatibles.</i>\n\n",
        "updating": "Actualizando...",
        "auto_updating": "🔄 <b>[Actualización automática]</b> Actualización del desarrollador detectada (v{version} - {commit}).\nFusionando cambios y actualizando...",
        "auto_update_failed": "❌ <b>[Actualización automática]</b> Error al actualizar: {error}"
    },
    "error": {
        "start_error": "❌ Error al iniciar: {error}",
        "general_error": "❌ Error: {error}",
        "modal_active": "❌ Hay un panel de preguntas interactivo abierto. Por favor, selecciona una de las opciones o usa /stop para cancelar."
    },
    "agent": {
        "swipe_to_reply": "<i>(Desliza este mensaje a la izquierda para responder al agente)</i>"
    },
    "interactive_modal": {
        "default_header": "El Agente Espera Aprobación / Pregunta:",
        "options_prompt": "_(Puedes seleccionar uno de los botones abajo o escribir tu respuesta)_",
        "confirm_prompt": "_(Por favor usa el botón 'Confirmar' para aprobar o 'Rechazar' para cancelar)_",
        "btn_confirm": "Confirmar",
        "btn_reject": "Rechazar",
        "answer_sent": "Su selección ha sido enviada: {answer}"
    },
    "native_cmd": {
        "goal_empty": "🎯 Uso: /goal <descripción>\nEstablecer un objetivo autónomo a largo plazo para el agente.",
        "goal_started": "🎯 ¡Modo objetivo activado! El agente trabajará de forma autónoma hasta alcanzar el objetivo.",
        "plan_empty": "📋 Uso: /plan <descripción>\nPedir al agente que cree un plan de implementación.",
        "plan_started": "📋 ¡Generación de plan iniciada!",
        "schedule_empty": "⏰ Uso: /schedule_task <descripción>\nProgramar una tarea recurrente o única.",
        "schedule_started": "⏰ ¡Tarea programada!",
        "browser_started": "🌐 Navegador abierto en el IDE.",
        "error": "❌ Error: {error}"
    },
    "task_watcher": {
        "proactive_msg": "El agente envió una notificación proactiva:"
    },
    "schedule": {
        "not_configured": "⚠️ CronCrew aún no está configurado.\\n\\nConfiguración: /schedule_setup <url_servidor> <clave_licencia>\\nEjemplo: /schedule_setup https://agp.emreturkmen.com CC-XXXX-XXXX-XXXX-XXXX",
        "setup_usage": "⚙️ Uso: /schedule_setup <url_servidor> <clave_licencia>\\n\\nEjemplo:\\n<code>/schedule_setup https://agp.emreturkmen.com CC-XXXX-XXXX-XXXX-XXXX</code>",
        "setup_success": "✅ ¡CronCrew conectado!\\n\\n🎫 Nivel: <b>{tier}</b>\\n📡 Servidor: <code>{url}</code>\\n\\nUsa /schedule_list para gestionar tus horarios.",
        "setup_error": "❌ Error de conexión: {error}",
        "status_title": "📊 <b>Estado de CronCrew</b>\\n\\n",
        "status_tier": "🎫 Nivel: <b>{tier}</b>\\n",
        "status_license": "📋 Estado: <b>{status}</b>\\n",
        "status_usage": "📈 Hoy: {today} ejecuciones\\n",
        "status_schedules": "📅 Horarios activos: {count}\\n",
        "status_changes": "🔄 Cambios de dispositivo: {used}/{max}\\n",
        "status_expires": "⏰ Caduca: {date}\\n",
        "list_title": "📅 <b>Lista de horarios:</b>\\n\\n",
        "list_empty": "ℹ️ Aún no hay horarios creados.\\n\\nUsa /schedule_add para crear un nuevo horario.",
        "list_item": "{icon} <b>{name}</b>\\n   ⏰ <code>{cron}</code> → {workspace}\\n   📊 Ejecutado: {runCount}x | Último: {lastResult}\\n",
        "add_usage": "➕ Agregar un nuevo horario:\\n\\n<code>/schedule_add Nombre | expresion_cron | espacio_de_trabajo | prompt</code>\\n\\nEjemplo:\\n<code>/schedule_add Prueba diaria | 0 9 * * * | antigravity-bot | Ejecutar todas las pruebas</code>",
        "add_success": "✅ ¡Horario creado!\\n\\n📝 <b>{name}</b>\\n⏰ <code>{cron}</code>\\n📁 {workspace}\\n🤖 {model}",
        "add_error": "❌ Error de creación: {error}",
        "delete_usage": "🗑️ Eliminar un horario:\\n\\n<code>/schedule_del <id_horario></code>",
        "delete_success": "✅ Horario eliminado.",
        "delete_error": "❌ Error de eliminación: {error}",
        "pause_success": "⏸️ Horario pausado: <b>{name}</b>",
        "resume_success": "▶️ Horario reanudado: <b>{name}</b>",
        "run_success": "🚀 ¡Horario ejecutado!\\n\\n📁 Espacio de trabajo: <b>{workspace}</b>\\n🤖 Modelo: {model}\\n📝 Prompt enviado.",
        "run_error": "❌ Error de ejecución: {error}",
        "error": "❌ Error: {error}",
        "btn_pause": "⏸️ Pausar",
        "btn_resume": "▶️ Reanudar",
        "btn_delete": "🗑️ Eliminar",
        "btn_run": "▶️ Ejecutar ahora",
        "btn_back": "◀️ Volver a la lista",
        "menu_schedule_setup_desc": "Configurar conexión CronCrew",
        "menu_schedule_list_desc": "Listar tareas programadas",
        "menu_schedule_add_desc": "Agregar nueva tarea programada",
        "menu_schedule_status_desc": "Mostrar el estado de CronCrew"
    },
    "localImageFallback": "Imagen",
    "localImageSent": "enviada a tu teléfono",
    "login": {
        "notice_title": "⚠️ <b>Aviso de inicio de sesión de Google</b>",
        "notice_body": "Iniciar el flujo de inicio de sesión suspenderá temporalmente otros comandos del bot.\nEl agente de IA continuará ejecutándose en su IDE en segundo plano.\n\n¿Desea proceder?",
        "btn_continue": "👉 Sí, Continuar",
        "btn_cancel": "✖ Cancelar",
        "starting": "🔄 <b>Iniciando inicio de sesión seguro…</b>",
        "server_error": "❌ <b>Error del servidor de inicio de sesión</b>\n\n<code>{error}</code>",
        "timeout": "🚫 <b>Inicio de sesión agotado (10 minutos).</b> Use /login para intentar de nuevo.",
        "prompt_title": "🔐 <b>Iniciar sesión con Google</b>",
        "prompt_body": "Toque el botón de abajo para iniciar sesión con su\ncuenta de Google y conectarla a este bot.\n\n📱 <b>¿En el móvil?</b>\nSi su navegador muestra un error de conexión después de\niniciar sesión, simplemente copie la <b>URL completa</b> de\nla barra de direcciones y péguela aquí.\n\n⏱  Expira en <b>10 minutos</b>",
        "btn_signin": "🔒 Iniciar sesión con Google",
        "btn_cancel_login": "❌ Cancelar inicio de sesión",
        "cancelled": "🚫 <b>Inicio de sesión cancelado</b>\n\nEnvíe /login cuando esté listo para intentar de nuevo.",
        "code_received": "⏳ <b>¡Código recibido!</b> Completando inicio de sesión…",
        "success_title": "✅ <b>¡Inicio de sesión exitoso!</b>",
        "success_body": "👤 <b>{name}</b>\n📧 <code>{email}</code>\n🆔 Cuenta  <b>#{numericId}</b>  <i>({action})</i>\n\n<i>¿Qué sigue?</i>\n• Cambiar  →  <code>/switchacc {numericId}</code>\n• Cuota    →  <code>/getinfo {numericId}</code>\n• Todas las cuentas  →  <code>/accounts</code>",
        "failed": "❌ <b>Autenticación fallida</b>\n\n<code>{error}</code>",
        "no_active_session": "⚠️ <b>No hay sesión de inicio activa</b>\n\nInicie una nueva con /login primero.",
        "no_active_session_short": "⚠️ No se encontró sesión de inicio activa. Use /login para iniciar.",
        "authenticating": "⏳ <b>Autenticando…</b>",
        "failed_attempts": "El flujo de inicio de sesión de Google fue cancelado tras 3 intentos fallidos de pegar un enlace/código válido.",
        "in_progress": "⚠️ <b>Inicio de sesión de Google en curso</b>\n━━━━━━━━━━━━━━━━━━━━━━\nOtros servicios de bot están suspendidos temporalmente.\nPor favor, complete el inicio de sesión con Google o cancele el flujo actual primero usando el botón Cancelar o escribiendo /cancel.",
        "no_accounts": "📭 <b>No hay cuentas guardadas aún</b>\n\nUse /login para agregar una.",
        "code_usage": "📋 <b>Pegue su código de inicio de sesión</b>\n━━━━━━━━━━━━━━━━━━━━━━\nTras iniciar sesión en Google, si la redirección falló, copie la URL completa de su navegador (o solo el valor de <code>code=…</code>) y envíela aquí:\n\n<code>/logincode &lt;url o código&gt;</code>",
        "invalid_code": "⚠️ <b>URL o código de Google no válido</b>\n━━━━━━━━━━━━━━━━━━━━━━\nNo se pudo extraer un código de autorización válido de Google de tu mensaje.\nPor favor, pega la URL de redirección completa o el código de autorización.",
        "invalid_code_attempt": "\n<i>Intento {count} de 3 antes de la cancelación.</i>"
    },
    "switchacc": {
        "title": "🔄 <b>Cambiando a la Cuenta #{id}</b>",
        "email": "📧 {email}",
        "usage": "ℹ️ <b>Uso</b>\n━━━━━━━━━━━━━━━━━━━━━━\n<code>/switchacc &lt;id&gt;</code>\n\nEjemplo: <code>/switchacc 1</code>\nUse /accounts para ver sus ID de cuenta.",
        "not_found": "❌ <b>Cuenta #{id} no encontrada</b>\n\nUse /accounts para ver sus cuentas guardadas.",
        "step_refreshing": "🔑 Actualizando token…",
        "step_refreshed": "✅ Token actualizado y guardado",
        "step_valid": "✅ El token es válido",
        "step_stopping": "🔴 Deteniendo Antigravity ({app})…",
        "step_stopped": "✅ Antigravity ({app}) detenido",
        "step_still_closing": "⚠️ Antigravity ({app}) aún podría estar cerrándose…",
        "step_not_running": "ℹ️ Antigravity ({app}) no se estaba ejecutando",
        "step_writing": "💉 Escribiendo credenciales…",
        "step_written": "✅ Credenciales escritas → {app}",
        "step_written_keyring": "✅ Credenciales → llavero (SQLite: {error})",
        "step_write_failed": "⚠️ Error al escribir: {error}",
        "step_starting": "🟢 Iniciando Antigravity ({app})…",
        "step_started": "✅ Antigravity ({app}) iniciado",
        "step_start_failed": "⚠️ No se pudo iniciar ({app}): {error}",
        "step_done": "✅ <b>Ahora en la cuenta #{id}</b>",
        "step_done_email": "📧 {email}",
        "error": "❌ <b>Error</b>\n\n<code>{error}</code>"
    },
    "accounts": {
        "title": "Cuentas Guardadas",
        "btn_add": "Agregar Cuenta",
        "btn_back": "Volver a Cuentas",
        "btn_confirm_delete": "Sí, eliminar",
        "btn_cancel": "Cancelar",
        "delete_confirm_title": "Eliminar Cuenta",
        "delete_confirm_body": "Esto elimina el token guardado de este bot.",
        "delete_confirm_note": "Antigravity en sí no se verá afectado.",
        "btn_quota": "Cuota",
        "btn_delete": "Eliminar"
    },
    "artifact_feedback": {
        "proceed": "✅ Continuar",
        "cancel": "❌ Cancelar",
        "proceeded": "✅ Continuado",
        "canceled": "❌ Cancelado",
        "processing": "Procesando...",
        "error": "Error: {message}"
    },
    "skills": {
        "menu_title": "🧠 <b>Habilidades del Agente ({count})</b>\n\n📂 <i>Explorar por categoría o buscar:</i>\n💡 <code>/skill &lt;nombre&gt; [prompt]</code>",
        "category_title": "{category}\n<b>{count} habilidades</b>\n\n<i>Toca una habilidad para ver detalles:</i>",
        "search_results": "🔍 <b>Resultados para \"{query}\" ({count})</b>",
        "not_found": "❌ Habilidad no encontrada: \"{name}\"",
        "no_skills": "ℹ️ No hay habilidades instaladas.",
        "running": "▶️ Ejecutando {name}...",
        "close_btn": "❌ Cerrar",
        "back_btn": "⬅️ Todas las Categorías",
        "refresh_btn": "🔄 Actualizar"
    }
}
