{
	"cli.errors.bunVersion": "error: El runtime de Bun debe ser >= {minVersion} (se encontró v{currentVersion}). Por favor, actualice Bun: bun upgrade",
	"cli.errors.bunErrata": "error: Se detectó una errata en el runtime de Bun (v{version}). Por favor, actualice Bun: bun upgrade",
	"agents.errors.bothFlags": "Elija --user o --project, no ambos.",
	"agents.status.bundledCount": "Agentes incluidos: {total}",
	"agents.status.targetDirectory": "Directorio de destino: {dir}",
	"agents.warnings.skippedExisting": "Omitidos existentes: {count} (use --force para sobreescribir)",
	"config.errors.unknownCommand": "Comando de configuración desconocido: {action}",
	"config.errors.invalidBoolean": "Valor booleano no válido: {value}. Use true/false, yes/no, on/off o 1/0",
	"config.errors.invalidNumber": "Número no válido: {value}",
	"config.errors.invalidEnumValue": "Valor no válido: {value}. Valores válidos: {validValues}",
	"config.errors.invalidArrayJson": "JSON de array no válido: {value}",
	"config.errors.invalidRecordJson": "JSON de registro no válido: {value}",
	"config.help.listKeys": "Ejecute '{appName} config list' para ver las claves disponibles",
	"config.errors.unknownSetting": "Configuración desconocida: {key}",
	"config.status.valueSet": "Se estableció {path} = {value}",
	"config.status.valueReset": "Se restableció {path} a {value}",
	"file.errors.notFound": "Error: Archivo no encontrado: {path}",
	"file.warnings.tooLarge": "Advertencia: Se omitió el contenido del archivo (demasiado grande: {size}): {path}",
	"file.errors.readFailed": "Error: No se pudo leer el archivo {path}: {message}",
	"grep.errors.patternRequired": "Error: Se requiere un patrón",
	"grep.results.totalMatches": "Coincidencias totales: {count}",
	"grep.results.filesWithMatches": "Archivos con coincidencias: {count}",
	"grep.results.filesSearched": "Archivos buscados: {count}",
	"read.errors.fileNotFound": "Error: Archivo no encontrado: {path}",
	"setup.errors.usage": "Uso: {appName} setup <componente>",
	"setup.python.errors.notFound": "Python no encontrado",
	"setup.python.help.installPython": "Instale Python 3.8+ y asegúrese de que esté en su PATH",
	"setup.python.status.ready": "La ejecución de Python está lista",
	"setup.python.warnings.missingPackages": "Faltantes: {packages}",
	"setup.python.errors.noPackageManager": "No se encontró ningún gestor de paquetes",
	"setup.python.help.installManagers": "Instale uv (recomendado) o pip:",
	"setup.python.errors.installationFailed": "La instalación falló",
	"setup.python.help.manualInstall": "Intente instalar manualmente:",
	"setup.python.errors.setupIncomplete": "Configuración incompleta",
	"setup.stt.status.ready": "El reconocimiento de voz está listo",
	"setup.stt.errors.pythonNotFound": "Python no encontrado",
	"setup.stt.status.installingWhisper": "Instalando openai-whisper...",
	"setup.stt.errors.whisperFailed": "Error al instalar openai-whisper",
	"setup.stt.help.manualWhisper": "Intente manualmente: pip install openai-whisper",
	"setup.help.title": "setup - Instalar dependencias para funciones opcionales",
	"setup.help.pythonDescription": "Instalar dependencias del kernel de Jupyter para la ejecución de código Python",
	"setup.help.sttDescription": "Instalar dependencias de reconocimiento de voz (openai-whisper, herramientas de grabación)",
	"setup.litellm.errors.envNotSet": "Variables de entorno requeridas no configuradas:",
	"setup.litellm.errors.baseUrlHint": "LITELLM_BASE_URL — URL del proxy LiteLLM (p. ej. https://your-proxy.example.com)",
	"setup.litellm.errors.apiKeyHint": "LITELLM_API_KEY  — Clave de API para el proxy LiteLLM",
	"setup.litellm.help.setEnvVars": "Configure estas variables en su perfil de shell (.zshrc, .bashrc) o en un archivo .env.",
	"setup.litellm.status.generated": "Configuración de LiteLLM generada",
	"setup.litellm.errors.generationFailed": "Error al generar la configuración de LiteLLM",
	"ssh.errors.hostRequired": "Error: Se requiere el nombre del host",
	"ssh.errors.hostFlagRequired": "Error: --host es obligatorio",
	"ssh.errors.invalidPort": "Error: El puerto debe ser un número entero entre 1 y 65535",
	"ssh.status.hostAdded": "Se añadió el host SSH \"{name}\" a la configuración de {scope}",
	"ssh.status.hostRemoved": "Se eliminó el host SSH \"{name}\" de la configuración de {scope}",
	"ssh.controller.unknownSubcommand": "Subcomando desconocido: {subcommand}. Escriba /ssh help para ver la ayuda.",
	"ssh.add.usage": "Uso: /ssh add <name> --host <host> [--user <user>] [--port <port>] [--key <keyPath>] [--desc <description>] [--compat] [--scope project|user]",
	"ssh.add.missingHost": "Falta el valor para --host.",
	"ssh.add.missingUser": "Falta el valor para --user.",
	"ssh.add.missingPort": "Falta el valor para --port.",
	"ssh.add.invalidPort": "Valor de --port no válido. Debe ser un número entero entre 1 y 65535.",
	"ssh.add.missingKey": "Falta el valor para --key.",
	"ssh.add.missingDesc": "Falta el valor para --desc.",
	"ssh.add.invalidScope": "Valor de --scope no válido. Use project o user.",
	"ssh.add.unknownOption": "Opción desconocida: {option}",
	"ssh.add.nameRequired": "Se requiere el nombre del host. Uso: /ssh add <name> --host <host> ...",
	"ssh.add.hostRequired": "--host es obligatorio. Uso: /ssh add <name> --host <host> ...",
	"ssh.add.failed": "Error al agregar el host: {message}",
	"ssh.list.noneConfigured": "No hay hosts SSH configurados.",
	"ssh.list.title": "Hosts SSH configurados",
	"ssh.list.userLevel": "Nivel de usuario",
	"ssh.list.projectLevel": "Nivel de proyecto",
	"ssh.list.discovered": "Descubierto",
	"ssh.list.readOnly": "solo lectura",
	"ssh.list.failed": "Error al listar los hosts: {message}",
	"ssh.remove.invalidScope": "Valor de --scope no válido. Use project o user.",
	"ssh.remove.unknownOption": "Opción desconocida: {option}",
	"ssh.remove.nameRequired": "Se requiere el nombre del host. Uso: /ssh remove <name> [--scope project|user]",
	"ssh.remove.notFound": "Host \"{name}\" no encontrado en la configuración de {scope}.",
	"ssh.remove.failed": "Error al eliminar el host: {message}",
	"mode.plan.status.enabled": "Modo plan activado. Archivo de plan: {path}",
	"mode.plan.status.paused": "Modo plan en pausa.",
	"mode.plan.status.disabled": "Modo plan desactivado.",
	"mode.plan.errors.noEditor": "No hay editor configurado. Establezca la variable de entorno $VISUAL o $EDITOR.",
	"mode.plan.errors.fileNotFound": "Archivo de plan no encontrado en {path}",
	"mode.plan.errors.editorOpenFailed": "Error al abrir el editor externo: {message}",
	"mode.plan.status.updated": "Plan actualizado en el editor externo.",
	"mode.plan.errors.notActive": "El modo plan no está activo.",
	"mode.stt.warnings.disabled": "El reconocimiento de voz está desactivado. Actívelo en la configuración: stt.enabled",
	"mode.subagent.status.noActive": "No hay sesiones de subagente activas",
	"ui.status.sessionCompacted": "Sesión compactada {times}",
	"ui.status.messageQueued": "Mensaje en cola para después de la compactación",
	"ui.errors.queuedMessageFailed": "Error al enviar el mensaje en cola: {message}",
	"shell.errors.ttyRequired": "Error: la consola de shell requiere un TTY interactivo.",
	"search.errors.queryRequired": "Error: Se requiere una consulta",
	"commands.settings.description": "Abrir el menú de configuración",
	"commands.plan.description": "Activar/desactivar el modo plan (el agente planifica antes de ejecutar)",
	"commands.plan.inlineHint": "[prompt]",
	"commands.model.description": "Seleccionar modelo (abre la interfaz de selección)",
	"commands.fast.description": "Activar/desactivar el modo rápido (prioridad de nivel de servicio OpenAI)",
	"commands.fast.sub.on.description": "Activar el modo rápido",
	"commands.fast.sub.off.description": "Desactivar el modo rápido",
	"commands.fast.sub.status.description": "Mostrar el estado del modo rápido",
	"commands.fast.enabled": "Modo rápido activado.",
	"commands.fast.disabled": "Modo rápido desactivado.",
	"commands.fast.statusOn": "El modo rápido está activado.",
	"commands.fast.statusOff": "El modo rápido está desactivado.",
	"commands.fast.usage": "Uso: /fast [on|off|status]",
	"commands.export.description": "Exportar la sesión a un archivo HTML",
	"commands.export.inlineHint": "[ruta]",
	"commands.dump.description": "Copiar la transcripción de la sesión al portapapeles",
	"commands.share.description": "Compartir la sesión como un gist secreto de GitHub",
	"commands.browser.description": "Alternar el navegador entre modo headless y visible",
	"commands.browser.sub.headless.description": "Cambiar al modo headless",
	"commands.browser.sub.visible.description": "Cambiar al modo visible",
	"commands.browser.disabled": "La herramienta de navegador está desactivada (actívela en la configuración)",
	"commands.browser.usage": "Uso: /browser [headless|visible]",
	"commands.browser.modeHeadless": "Modo de navegador: headless",
	"commands.browser.modeVisible": "Modo de navegador: visible",
	"commands.browser.restartFailed": "Error al reiniciar el navegador: {message}",
	"commands.copy.description": "Copiar el último mensaje del agente al portapapeles",
	"commands.copy.sub.last.description": "Copiar el último mensaje completo del agente",
	"commands.copy.sub.code.description": "Copiar el último bloque de código",
	"commands.copy.sub.all.description": "Copiar todos los bloques de código del último mensaje",
	"commands.copy.sub.cmd.description": "Copiar el último comando bash/python",
	"commands.session.description": "Comandos de gestión de sesión",
	"commands.session.sub.info.description": "Mostrar información y estadísticas de la sesión",
	"commands.session.sub.delete.description": "Eliminar la sesión actual y volver al selector",
	"commands.jobs.description": "Mostrar el estado de las tareas en segundo plano",
	"commands.usage.description": "Mostrar el uso y los límites del proveedor",
	"commands.changelog.description": "Mostrar las entradas del registro de cambios",
	"commands.changelog.sub.full.description": "Mostrar el registro de cambios completo",
	"commands.hotkeys.description": "Mostrar todos los atajos de teclado",
	"commands.tools.description": "Mostrar las herramientas actualmente visibles para el agente",
	"commands.extensions.description": "Abrir el panel del Centro de control de extensiones",
	"commands.agents.description": "Abrir el panel del Centro de control de agentes",
	"commands.branch.description": "Crear una nueva rama a partir de un mensaje anterior",
	"commands.fork.description": "Crear un nuevo fork a partir de un mensaje anterior",
	"commands.tree.description": "Navegar por el árbol de sesión (cambiar ramas)",
	"commands.login.description": "Iniciar sesión con un proveedor OAuth",
	"commands.login.inlineHint": "[proveedor|URL de redirección]",
	"commands.login.alreadyInProgressFor": "Inicio de sesión OAuth ya en curso para {provider}. Pegue la URL de redirección con /login <url>.",
	"commands.login.alreadyInProgress": "Inicio de sesión OAuth ya en curso. Pegue la URL de redirección con /login <url>.",
	"commands.login.callbackReceived": "Callback OAuth recibido; completando inicio de sesión…",
	"commands.login.noCallbackWaiting": "No hay ningún inicio de sesión OAuth esperando un callback manual.",
	"commands.logout.description": "Cerrar sesión del proveedor OAuth",
	"commands.mcp.description": "Gestionar servidores MCP (agregar, listar, eliminar, probar)",
	"commands.mcp.sub.add.description": "Agregar un nuevo servidor MCP",
	"commands.mcp.sub.list.description": "Listar todos los servidores MCP configurados",
	"commands.mcp.sub.remove.description": "Eliminar un servidor MCP",
	"commands.mcp.sub.test.description": "Probar la conexión a un servidor",
	"commands.mcp.sub.reauth.description": "Reautorizar OAuth para un servidor",
	"commands.mcp.sub.unauth.description": "Eliminar la autenticación OAuth de un servidor",
	"commands.mcp.sub.enable.description": "Activar un servidor MCP",
	"commands.mcp.sub.disable.description": "Desactivar un servidor MCP",
	"commands.mcp.sub.smitherySearch.description": "Buscar en el registro de Smithery y desplegar un servidor MCP",
	"commands.mcp.sub.smitheryLogin.description": "Iniciar sesión en Smithery y almacenar la clave API en caché",
	"commands.mcp.sub.smitheryLogout.description": "Eliminar la clave API de Smithery almacenada en caché",
	"commands.mcp.sub.reconnect.description": "Reconectar a un servidor MCP específico",
	"commands.mcp.sub.reload.description": "Forzar la recarga de las herramientas MCP",
	"commands.mcp.sub.resources.description": "Listar los recursos disponibles de los servidores conectados",
	"commands.mcp.sub.prompts.description": "Listar los prompts disponibles de los servidores conectados",
	"commands.mcp.sub.notifications.description": "Mostrar las capacidades de notificación y suscripciones",
	"commands.mcp.sub.help.description": "Mostrar el mensaje de ayuda",
	"commands.ssh.description": "Gestionar hosts SSH (agregar, listar, eliminar)",
	"commands.ssh.sub.add.description": "Agregar un host SSH",
	"commands.ssh.sub.list.description": "Listar todos los hosts SSH configurados",
	"commands.ssh.sub.remove.description": "Eliminar un host SSH",
	"commands.ssh.sub.help.description": "Mostrar el mensaje de ayuda",
	"commands.new.description": "Iniciar una nueva sesión",
	"commands.compact.description": "Compactar manualmente el contexto de la sesión",
	"commands.compact.inlineHint": "[instrucciones de enfoque]",
	"commands.handoff.description": "Transferir el contexto de la sesión a una nueva sesión",
	"commands.handoff.inlineHint": "[instrucciones de enfoque]",
	"commands.resume.description": "Reanudar una sesión diferente",
	"commands.btw.description": "Hacer una pregunta efímera usando el contexto de la sesión actual",
	"commands.btw.inlineHint": "<pregunta>",
	"commands.background.description": "Separar la interfaz y continuar ejecutando en segundo plano",
	"commands.debug.description": "Abrir el selector de herramientas de depuración",
	"commands.memory.description": "Inspeccionar y operar el mantenimiento de memoria",
	"commands.memory.sub.view.description": "Mostrar el contenido de inyección de memoria actual",
	"commands.memory.sub.clear.description": "Borrar los datos de memoria persistentes y los artefactos",
	"commands.memory.sub.reset.description": "Alias de clear",
	"commands.memory.sub.enqueue.description": "Encolar el mantenimiento de consolidación de memoria",
	"commands.memory.sub.rebuild.description": "Alias de enqueue",
	"commands.rename.description": "Renombrar la sesión actual",
	"commands.rename.inlineHint": "<título>",
	"commands.rename.usage": "Uso: /rename <título>",
	"commands.move.description": "Mover la sesión a un directorio de trabajo diferente",
	"commands.move.inlineHint": "<ruta>",
	"commands.move.usage": "Uso: /move <ruta>",
	"commands.exit.description": "Salir de la aplicación",
	"commands.plugin.description": "Gestionar plugins y fuentes de marketplace",
	"commands.plugin.sub.marketplace.description": "Gestionar fuentes de marketplace (agregar, eliminar, actualizar, listar)",
	"commands.plugin.sub.install.description": "Instalar un plugin",
	"commands.plugin.sub.uninstall.description": "Desinstalar un plugin",
	"commands.plugin.sub.enable.description": "Activar un plugin",
	"commands.plugin.sub.disable.description": "Desactivar un plugin",
	"commands.plugin.sub.upgrade.description": "Actualizar plugins",
	"commands.plugin.sub.discover.description": "Explorar los plugins disponibles",
	"commands.plugin.sub.list.description": "Listar todos los plugins instalados",
	"commands.plugin.sub.validate.description": "Validar el manifiesto de un marketplace o plugin",
	"commands.plugin.sub.setup.description": "Configuración guiada de plugins recomendados",
	"commands.plugin.sub.help.description": "Mostrar la guía de uso",
	"commands.plugin.marketplace.addUsage": "Uso: /plugin marketplace add <source>",
	"commands.plugin.marketplace.added": "Marketplace agregado: {name}",
	"commands.plugin.marketplace.removeUsage": "Uso: /plugin marketplace remove <name>",
	"commands.plugin.marketplace.removed": "Marketplace eliminado: {name}",
	"commands.plugin.marketplace.updated": "Marketplace actualizado: {name}",
	"commands.plugin.marketplace.updatedAll": "{count} marketplace(s) actualizado(s)",
	"commands.plugin.marketplace.noneConfiguredGetStarted": "No hay marketplaces configurados.\n\nPara comenzar:\n  /plugin marketplace add f5-sales-demo/marketplace",
	"commands.plugin.marketplace.listHint": "Use /plugin discover para explorar los plugins",
	"commands.plugin.marketplace.noneConfiguredTry": "No hay marketplaces configurados. Intente:\n  /plugin marketplace add f5-sales-demo/marketplace",
	"commands.plugin.marketplace.noPluginsAvailable": "No hay plugins disponibles en los marketplaces configurados",
	"commands.plugin.installed": "{name} instalado desde {marketplace}",
	"commands.plugin.uninstalled": "{pluginId} desinstalado",
	"commands.plugin.enabled": "{pluginId} activado",
	"commands.plugin.disabled": "{pluginId} desactivado",
	"commands.plugin.upgraded": "{pluginId} actualizado a {version}",
	"commands.plugin.allUpToDate": "Todos los plugins están actualizados",
	"commands.plugin.upgradedCount": "{count} plugin(s) actualizado(s):",
	"commands.plugin.npmPlugins": "Plugins npm:",
	"commands.plugin.marketplacePlugins": "Plugins de marketplace:",
	"commands.plugin.noneInstalled": "No hay plugins instalados",
	"commands.plugin.validate.marketplaceValid": "El marketplace \"{name}\" es válido ({count} plugin(s))",
	"commands.plugin.validate.pluginValid": "El manifiesto del plugin \"{name}\" es válido",
	"commands.plugin.validate.notFound": "No se encontró .xcsh-plugin/marketplace.json ni .xcsh-plugin/plugin.json en {path}",
	"commands.plugin.setup.noRecommended": "No se encontraron plugins recomendados en los marketplaces configurados",
	"commands.plugin.setup.allInstalled": "Todos los plugins recomendados ya están instalados",
	"commands.plugin.setup.title": "Configuración de plugins recomendados:",
	"commands.plugin.setup.installCount": "{installed}/{total} plugin(s) recomendado(s) instalado(s)",
	"commands.plugin.setup.skippedCount": "{count} omitido(s) — corrija los problemas anteriores y ejecute /plugin setup de nuevo (idempotente)",
	"commands.plugin.setup.installFailed": "instalación fallida",
	"commands.plugin.setup.installed": "instalado",
	"commands.plugin.setup.notAuthenticated": "no autenticado",
	"commands.plugin.setup.authenticatedAs": "autenticado como {user}",
	"commands.plugin.setup.ready": "listo",
	"commands.plugin.setup.pluginInstalled": "plugin instalado",
	"commands.plugin.setup.pluginInstallFailed": "instalación del plugin fallida: {message}",
	"commands.plugin.setup.notFoundInMarketplace": "no encontrado en ningún marketplace",
	"commands.plugin.help": "Comandos de plugin:\n  /plugin                                    Abrir el panel de plugins\n  /plugin marketplace add <source>           Agregar un marketplace (ej. owner/repo)\n  /plugin marketplace remove <name>          Eliminar un marketplace\n  /plugin marketplace update [name]          Actualizar catálogo(s)\n  /plugin marketplace list                   Listar marketplaces configurados\n  /plugin discover [marketplace]             Explorar plugins disponibles\n  /plugin install <name@marketplace>         Instalar un plugin\n  /plugin uninstall <name@marketplace>       Desinstalar un plugin\n  /plugin enable <name@marketplace>          Activar un plugin\n  /plugin disable <name@marketplace>         Desactivar un plugin\n  /plugin upgrade [name@marketplace]         Actualizar plugin(s)\n  /plugin list                               Listar plugins instalados\n  /plugin validate [path]                    Validar marketplace o plugin\n  /plugin setup                              Configuración guiada de plugins recomendados\n\nInicio rápido:\n  /plugin marketplace add f5-sales-demo/marketplace\n  /plugin                                    (abre el panel de plugins)\n\nAlias: /marketplace, /plugins",
	"commands.plugin.marketplace.noneConfiguredBrowse": "No hay marketplaces configurados.\n\nPara comenzar:\n  /plugin marketplace add f5-sales-demo/marketplace\n\nLuego explore los plugins con /plugin o /plugin discover",
	"commands.plugin.marketplace.listHintAll": "Use /plugin discover para explorar los plugins, o /plugin help para todos los comandos",
	"commands.plugin.error": "Error de plugin: {message}",
	"commands.reloadPlugins.description": "Recargar todos los plugins (skills, comandos, hooks, herramientas, agentes, MCP)",
	"commands.reloadPlugins.done": "Plugins recargados.",
	"commands.force.description": "Forzar el siguiente turno a usar una herramienta específica",
	"commands.force.inlineHint": "<tool-name> [prompt]",
	"commands.force.usage": "Uso: /force:<tool-name> [prompt]",
	"commands.force.set": "El siguiente turno forzará el uso de {toolName}.",
	"commands.quit.description": "Salir de la aplicación",
	"commands.context.description": "Gestionar los contextos de autenticación F5 XC",
	"commands.context.sub.list.description": "Listar todos los contextos",
	"commands.context.sub.activate.description": "Cambiar a un contexto con nombre",
	"commands.context.sub.validate.description": "Validar las credenciales de un contexto sin activarlo",
	"commands.context.sub.show.description": "Mostrar detalles del contexto (enmascarados)",
	"commands.context.sub.status.description": "Mostrar el estado de autenticación actual",
	"commands.context.sub.create.description": "Crear un nuevo contexto",
	"commands.context.sub.delete.description": "Eliminar un contexto",
	"commands.context.sub.rename.description": "Renombrar un contexto",
	"commands.context.sub.export.description": "Exportar un contexto (o todos los contextos) como JSON",
	"commands.context.sub.import.description": "Importar contextos desde una ruta de archivo o JSON en línea",
	"commands.context.sub.namespace.description": "Cambiar el namespace dentro del contexto activo",
	"commands.context.sub.env.description": "Gestionar variables de entorno",
	"commands.context.sub.set.description": "Establecer variable(s) de entorno",
	"commands.context.sub.unset.description": "Eliminar variable(s) de entorno",
	"commands.context.sub.wizard.description": "Configuración interactiva guiada del contexto",
	"welcome.modelProvider": "Proveedor de modelo",
	"welcome.plugins": "Plugins",
	"welcome.pluginSetupHint": "ejecutar: /plugin setup",
	"welcome.updateHint": "ejecutar: xcsh self-update",
	"welcome.newVersion": "nueva versión",
	"welcome.connectionFailed": "— conexión fallida",
	"welcome.runLoginReconnect": "Ejecute /login para reconectar",
	"welcome.noModelProvider": "No hay proveedor de modelo configurado",
	"welcome.runLoginConnect": "Ejecute /login para conectar",
	"login.wizard.urlPrompt": "Model Provider URL",
	"login.wizard.urlPlaceholder": "https://your-proxy.example.com",
	"login.wizard.apiKeyPrompt": "API Key",
	"login.wizard.apiKeyPlaceholder": "sk-...",
	"login.wizard.connecting": "Connecting to {url}…",
	"login.wizard.success": "Connected — {count} models available",
	"login.wizard.configSaved": "Configuration saved. You're ready to go!",
	"login.wizard.failed": "Connection failed — {error}",
	"login.wizard.retryHint": "Press Escape to skip, or enter a new value:",
	"gate.noProvider": "No LLM provider configured — run /login to connect one before sending a message.",
	"gate.noProviderBlock": "No LLM provider configured. Run /login to connect one, then retry. (/help and /model still work.)",
	"plugins.tabs.installed": "Instalados",
	"plugins.tabs.recommended": "Recomendados",
	"plugins.tabs.discover": "Descubrir",
	"plugins.tabs.updates": "Actualizaciones",
	"plugins.list.searchPlaceholder": "escriba para filtrar",
	"plugins.list.emptyDiscover": "No hay plugins disponibles. Agregue un marketplace primero.",
	"plugins.list.emptyRecommended": "Todos los plugins recomendados están instalados.",
	"plugins.list.emptyUpdates": "Todos los plugins están actualizados.",
	"plugins.list.emptyInstalled": "No hay plugins instalados.",
	"plugins.list.shadowed": "oculto",
	"plugins.list.disabled": "desactivado",
	"plugins.dashboard.title": "Centro de plugins xcsh",
	"plugins.dashboard.helpRecommended": "↑/↓: navegar  Enter: instalar  A: instalar todos  Tab: siguiente pestaña  Ctrl+R: recargar  Esc: cerrar",
	"plugins.dashboard.helpDiscover": "↑/↓: navegar  Enter: instalar  Tab: siguiente pestaña  Ctrl+R: recargar  Esc: cerrar",
	"plugins.dashboard.helpUpdates": "↑/↓: navegar  Enter: actualizar  Tab: siguiente pestaña  Ctrl+R: recargar  Esc: cerrar",
	"plugins.dashboard.helpInstalled": "↑/↓: navegar  Espacio: alternar  Enter: desinstalar  U: actualizar  Tab: siguiente pestaña  Ctrl+R: recargar  Esc: cerrar",
	"plugins.dashboard.settingUp": "Configurando {name}... ({current}/{total})",
	"plugins.dashboard.installCount": "{installed}/{total} plugin(s) recomendado(s) instalado(s)",
	"plugins.dashboard.allRecommendedInstalled": "Todos los plugins recomendados ya están instalados",
	"plugins.dashboard.failedCount": "{count} fallido(s)",
	"plugins.dashboard.authNeeded": "Autenticación requerida: {items}",
	"plugins.dashboard.uninstalled": "{name} desinstalado",
	"plugins.dashboard.uninstallFailed": "Error en la desinstalación: {message}",
	"plugins.dashboard.upgraded": "{name} actualizado",
	"plugins.dashboard.upgradeFailed": "Error en la actualización: {message}",
	"plugins.dashboard.upgrading": "Actualizando {name}...",
	"controller.export.warnings.useDump": "Use /dump para copiar la sesión al portapapeles.",
	"controller.export.status.exported": "Sesión exportada a: {path}",
	"controller.export.errors.failed": "Error al exportar la sesión: {message}",
	"controller.dump.errors.noMessages": "No hay mensajes para exportar aún.",
	"controller.dump.status.copied": "Sesión copiada al portapapeles",
	"controller.dump.errors.failed": "Error al copiar la sesión: {message}",
	"controller.debug.errors.noMessages": "No hay mensajes para exportar aún.",
	"controller.debug.status.written": "Transcripción de depuración escrita en:\n{path}",
	"controller.debug.errors.failed": "Error al escribir la transcripción de depuración: {message}",
	"controller.copy.errors.unknownSub": "Subcomando desconocido: {sub}. Use code, all, cmd o last.",
	"controller.copy.errors.noMessages": "No hay mensajes del agente para copiar aún.",
	"controller.copy.status.lastMessage": "Último mensaje del agente copiado al portapapeles",
	"controller.copy.warnings.noCodeBlock": "No se encontró ningún bloque de código en el último mensaje del agente.",
	"controller.copy.status.codeBlock": "Último bloque de código copiado al portapapeles",
	"controller.copy.warnings.noCodeBlocks": "No se encontraron bloques de código en el último mensaje del agente.",
	"controller.copy.status.codeBlocks": "{count} bloque(s) de código copiado(s) al portapapeles",
	"controller.copy.status.bashCommand": "Último comando bash copiado al portapapeles",
	"controller.copy.status.pythonCode": "Último código Python copiado al portapapeles",
	"controller.copy.warnings.noCommand": "No se encontró ningún comando bash o Python en la conversación.",
	"controller.session.title": "Información de la sesión",
	"controller.session.file": "Archivo:",
	"controller.session.inMemory": "En memoria",
	"controller.session.id": "ID:",
	"controller.session.provider": "Proveedor",
	"controller.session.noModel": "No se seleccionó ningún modelo",
	"controller.session.messages": "Mensajes",
	"controller.session.user": "Usuario:",
	"controller.session.assistant": "Asistente:",
	"controller.session.toolCalls": "Llamadas a herramientas:",
	"controller.session.toolResults": "Resultados de herramientas:",
	"controller.session.total": "Total:",
	"controller.session.tokens": "Tokens",
	"controller.session.input": "Entrada:",
	"controller.session.output": "Salida:",
	"controller.session.cacheRead": "Lectura de caché:",
	"controller.session.cacheWrite": "Escritura de caché:",
	"controller.session.cost": "Costo",
	"controller.session.premiumRequests": "Solicitudes premium:",
	"controller.session.pythonGateway": "Pasarela Python",
	"controller.session.status": "Estado:",
	"controller.session.gatewayActive": "Activo (Global)",
	"controller.session.gatewayInactive": "Inactivo",
	"controller.session.url": "URL:",
	"controller.session.pid": "PID:",
	"controller.session.python": "Python:",
	"controller.session.venv": "Venv:",
	"controller.session.uptime": "Tiempo de actividad:",
	"controller.session.lspServers": "Servidores LSP",
	"controller.session.mcpServers": "Servidores MCP",
	"controller.session.noneConnected": "Ninguno conectado",
	"controller.jobs.title": "Tareas en segundo plano",
	"controller.jobs.running": "En ejecución:",
	"controller.jobs.noJobs": "No hay tareas asíncronas aún.",
	"controller.jobs.runningJobs": "Tareas en ejecución",
	"controller.jobs.recentJobs": "Tareas recientes",
	"controller.jobs.unavailable": "Las tareas asíncronas en segundo plano no están disponibles en esta sesión.",
	"controller.usage.notConfigured": "El reporte de uso no está configurado para esta sesión.",
	"controller.usage.fetchFailed": "Error al obtener los datos de uso: {message}",
	"controller.usage.noData": "No hay datos de uso disponibles.",
	"controller.changelog.noEntries": "No se encontraron entradas en el registro de cambios.",
	"controller.changelog.fullTitle": "Registro de cambios completo",
	"controller.changelog.recentTitle": "Cambios recientes",
	"controller.hotkeys.title": "Atajos de teclado",
	"controller.tools.title": "Herramientas disponibles",
	"controller.memory.title": "Contenido de inyección de memoria",
	"controller.memory.empty": "El contenido de memoria está vacío (memoria desactivada o no se encontró un resumen).",
	"controller.memory.cleared": "Datos de memoria borrados y prompt del sistema actualizado.",
	"controller.memory.clearFailed": "Error al borrar la memoria: {message}",
	"controller.memory.enqueued": "Consolidación de memoria encolada.",
	"controller.memory.enqueueFailed": "Error al encolar la consolidación de memoria: {message}",
	"controller.memory.usage": "Uso: /memory <view|clear|reset|enqueue|rebuild>",
	"controller.newSession": "Nueva sesión iniciada",
	"controller.fork.streaming": "Espere a que la respuesta actual termine o cancélela antes de hacer fork.",
	"controller.fork.failed": "Fork fallido (sesión no persistida o cancelada)",
	"controller.fork.success": "Sesión bifurcada a {path}",
	"controller.move.streaming": "Espere a que la respuesta actual termine o cancélela antes de mover.",
	"controller.move.usage": "Uso: /move <ruta>",
	"controller.move.notDirectory": "No es un directorio: {path}",
	"controller.move.notExists": "El directorio no existe: {path}",
	"controller.move.success": "Sesión movida a {path}",
	"controller.move.failed": "Error al mover: {message}",
	"controller.rename.empty": "El nombre de la sesión no puede estar vacío.",
	"controller.rename.success": "Sesión renombrada a \"{name}\".",
	"controller.rename.failed": "Error al renombrar: {message}",
	"controller.share.ghNotLoggedIn": "GitHub CLI no ha iniciado sesión. Ejecute primero 'gh auth login'.",
	"controller.share.ghNotInstalled": "GitHub CLI (gh) no está instalado. Instálelo desde https://cli.github.com/",
	"controller.share.creatingGist": "Creando gist...",
	"controller.share.sharing": "Compartiendo...",
	"controller.share.cancelled": "Compartir cancelado",
	"controller.share.sessionShared": "Sesión compartida",
	"controller.share.customFailed": "Error al compartir de forma personalizada: {message}",
	"controller.share.gistFailed": "Error al crear el gist: {message}",
	"controller.share.gistParseFailed": "No se pudo extraer el ID del gist de la salida de gh",
	"controller.bash.failed": "Comando Bash fallido: {message}",
	"hotkeys.navigation.title": "Navegación",
	"hotkeys.navigation.moveCursor": "Mover cursor / navegar historial (Arriba cuando está vacío)",
	"hotkeys.navigation.moveByWord": "Mover por palabra",
	"hotkeys.navigation.startOfLine": "Inicio de línea",
	"hotkeys.navigation.endOfLine": "Fin de línea",
	"hotkeys.editing.title": "Edición",
	"hotkeys.editing.sendMessage": "Enviar mensaje",
	"hotkeys.editing.newLine": "Nueva línea",
	"hotkeys.editing.deleteWordBackwards": "Eliminar palabra hacia atrás",
	"hotkeys.editing.deleteToStart": "Eliminar hasta el inicio de la línea",
	"hotkeys.editing.deleteToEnd": "Eliminar hasta el fin de la línea",
	"hotkeys.editing.copyLine": "Copiar la línea actual",
	"hotkeys.editing.copyPrompt": "Copiar todo el prompt",
	"hotkeys.other.title": "Otros",
	"hotkeys.other.pathCompletion": "Completar ruta / aceptar autocompletado",
	"hotkeys.other.cancelInterrupt": "Cancelar autocompletado / interrumpir trabajo activo",
	"hotkeys.other.clearExit": "Limpiar editor (primero) / salir (segundo)",
	"hotkeys.other.exit": "Salir (cuando el editor está vacío)",
	"hotkeys.other.suspend": "Suspender en segundo plano",
	"hotkeys.other.cycleThinking": "Cambiar nivel de pensamiento",
	"hotkeys.other.cycleModelsForward": "Cambiar modelos de rol (lento/predeterminado/pequeño)",
	"hotkeys.other.cycleModelsBackward": "Cambiar modelos de rol (temporal)",
	"hotkeys.other.selectModelTemp": "Seleccionar modelo (temporal)",
	"hotkeys.other.selectModel": "Seleccionar modelo (establecer roles)",
	"hotkeys.other.togglePlan": "Activar/desactivar modo plan",
	"hotkeys.other.searchHistory": "Buscar en el historial de prompts",
	"hotkeys.other.toggleToolExpand": "Expandir/contraer salida de herramientas",
	"hotkeys.other.toggleThinking": "Mostrar/ocultar bloque de pensamiento",
	"hotkeys.other.externalEditor": "Editar mensaje en editor externo",
	"hotkeys.other.pasteImage": "Pegar imagen desde el portapapeles",
	"hotkeys.other.toggleStt": "Activar/desactivar grabación de voz a texto",
	"hotkeys.other.promptActions": "Abrir acciones de prompt",
	"hotkeys.other.slashCommands": "Comandos slash",
	"hotkeys.other.runBash": "Ejecutar comando bash",
	"hotkeys.other.runBashExcluded": "Ejecutar comando bash (excluido del contexto)",
	"hotkeys.other.runPython": "Ejecutar Python en el kernel compartido",
	"hotkeys.other.runPythonExcluded": "Ejecutar Python (excluido del contexto)",
	"tools.emptyState": "No hay herramientas actualmente visibles para el agente.",
	"tools.noDescription": "No se proporcionó descripción.",
	"tools.tableHeaderTool": "Herramienta",
	"tools.tableHeaderDescription": "Descripción",
	"context.list.noneFound": "No se encontraron contextos F5 XC. Use /context create o pídame ayuda para configurar uno.",
	"context.activate.usage": "Uso: /context activate <name>. Ejecute `/context list` para ver los contextos disponibles.",
	"context.activate.notFound": "Contexto '{name}' no encontrado. Ejecute /context list para ver los contextos disponibles, o /context create {name} <url> <token> para crear uno.",
	"context.show.noActive": "No hay contexto activo. Ejecute `/context create <name>` para crear uno, o `/context activate <name>` si existen contextos.",
	"context.show.notFound": "Contexto '{name}' no encontrado. Ejecute `/context list` para ver los contextos disponibles.",
	"context.validate.usage": "Falta el nombre del contexto. Uso: /context validate <name>. Para el contexto activo, use /context status.",
	"context.status.notConfigured": "No configurado. Use /context create o pídame ayuda para configurar uno.",
	"context.create.usage": "Uso: /context create <name> <url> <token> [namespace]",
	"context.create.invalidName": "El nombre del contexto debe ser alfanumérico con guiones/guiones bajos, máximo 64 caracteres.",
	"context.create.invalidUrl": "La URL de la API debe ser una URL HTTPS válida (ej. https://tenant.console.ves.volterra.io)",
	"context.rename.usage": "Uso: /context rename <old> <new>",
	"context.export.usage": "Uso: /context export [name] [--include-token]",
	"context.import.usage": "Uso: /context import <path-or-json> [--overwrite]",
	"context.import.invalidJson": "La fuente de importación no es JSON válido: {message}",
	"context.import.fileNotFound": "Archivo de importación no encontrado: {path}",
	"context.delete.usage": "Uso: /context delete <name> --confirm",
	"context.delete.cannotDeleteActive": "No se puede eliminar el contexto activo. Ejecute `/context activate <other>` para cambiar primero.",
	"context.namespace.usage": "Uso: /context namespace <name>\nCambia el namespace activo sin cambiar el contexto. El predeterminado es 'default'.",
	"context.env.unknownAction": "Acción env desconocida: {action}. Use /context env set|unset|list",
	"context.env.noActive": "No hay contexto activo. Use primero /context activate <name>.",
	"context.env.set.usage": "No se encontraron pares KEY=VALUE. Uso: /context set KEY=VALUE [KEY2=VALUE2 ...]",
	"context.env.unset.usage": "No se encontraron nombres de variables. Uso: /context unset KEY [KEY2 ...]",
	"mcp.errors.unknownSubcommand": "Subcomando desconocido: {subcommand}. Escriba /mcp help para ver la ayuda.",
	"mcp.errors.invalidScope": "Valor de --scope no válido. Use project o user.",
	"mcp.errors.unknownOption": "Opción desconocida: {option}",
	"mcp.errors.missingUrl": "Falta el valor para --url.",
	"mcp.errors.invalidTransport": "Valor de --transport no válido. Use http o sse.",
	"mcp.errors.missingToken": "Falta el valor para --token.",
	"mcp.errors.missingLimit": "Falta el valor para --limit.",
	"mcp.errors.invalidLimit": "Valor de --limit no válido. Use un número entero entre 1 y 100.",
	"mcp.errors.serverNotFound": "Servidor \"{name}\" no encontrado.",
	"mcp.errors.serverNotFoundInScope": "Servidor \"{name}\" no encontrado en la configuración de {scope}.",
	"mcp.errors.noManager": "No hay gestor MCP disponible.",
	"mcp.action.enable": "activar",
	"mcp.action.disable": "desactivar",
	"mcp.add.nameRequired": "Se requiere el nombre del servidor para agregar rápidamente. Uso: /mcp add <name> ...",
	"mcp.add.urlOrCommand": "Use --url o -- <command...>, no ambos.",
	"mcp.add.tokenRequiresUrl": "--token requiere --url (transporte HTTP/SSE).",
	"mcp.remove.usage": "Se requiere el nombre del servidor. Uso: /mcp remove <name> [--scope project|user]",
	"mcp.remove.failed": "Error al eliminar el servidor: {message}",
	"mcp.test.usage": "Se requiere el nombre del servidor. Uso: /mcp test <name>",
	"mcp.test.disabled": "El servidor \"{name}\" está desactivado. Ejecute primero /mcp enable {name}.",
	"mcp.test.cancelled": "Prueba MCP cancelada para \"{name}\"",
	"mcp.test.failed": "Error al conectar con \"{name}\": {message}",
	"mcp.enable.usage": "Se requiere el nombre del servidor. Uso: /mcp enable <name>",
	"mcp.disable.usage": "Se requiere el nombre del servidor. Uso: /mcp disable <name>",
	"mcp.setEnabled.failed": "Error al {action} el servidor: {message}",
	"mcp.unauth.usage": "Se requiere el nombre del servidor. Uso: /mcp unauth <name>",
	"mcp.unauth.failed": "Error al borrar la autenticación: {message}",
	"mcp.reauth.usage": "Se requiere el nombre del servidor. Uso: /mcp reauth <name>",
	"mcp.reauth.disabled": "El servidor \"{name}\" está desactivado. Ejecute primero /mcp enable {name}.",
	"mcp.reauth.failed": "Error al reautorizar el servidor: {message}",
	"mcp.reload.failed": "Error al recargar MCP: {message}",
	"mcp.reconnect.usage": "Se requiere el nombre del servidor. Uso: /mcp reconnect <name>",
	"mcp.reconnect.failed": "Error al reconectar con \"{name}\". Verifique el estado del servidor y los logs.",
	"mcp.reconnect.failedWithError": "Error al reconectar con \"{name}\": {message}",
	"mcp.smithery.searchUsage": "Se requiere una palabra clave. Uso: /mcp smithery-search <keyword> [--scope project|user] [--limit <1-100>] [--semantic]",
	"mcp.smithery.keyEmpty": "La clave API de Smithery no puede estar vacía.",
	"mcp.smithery.keySaved": "Clave API de Smithery guardada.",
	"mcp.smithery.validationFailed": "Error en la validación de la clave API de Smithery: {message}",
	"mcp.smithery.loginCancelled": "Inicio de sesión en Smithery cancelado.",
	"mcp.smithery.keyRemoved": "Clave API de Smithery eliminada.",
	"mcp.smithery.noKeyFound": "No se encontró una clave API de Smithery en caché.",
	"mcp.smithery.deployCancelled": "Despliegue MCP cancelado.",
	"mcp.smithery.selectionCancelled": "Selección de Smithery MCP cancelada.",
	"mcp.smithery.searchFailed": "Error en la búsqueda de Smithery: {message}"
}
