export default {
  loading: 'Cargando…', loadError: 'Error al cargar', noData: 'Sin datos', reset: 'Restablecer',
  noResults: 'Sin resultados', copied: '¡Copiado!', errorPrefix: 'Error', modeLabel: 'Modo:',
  colTool: 'Herramienta', colCalls: 'Llamadas', colAvgScore: 'Puntuación prom.', colDate: 'Fecha',
  colTrend: 'Tendencia', colStatus: 'Estado', colType: 'Tipo', colValue: 'Valor',
  colField: 'Campo', colDescription: 'Descripción', colPattern: 'Patrón',
  colAgents: 'Agentes', colBestFor: 'Ideal para', colSuccessRate: 'Tasa de éxito',
  colSessionId: 'ID de sesión', colToolCalls: 'Llamadas de herramienta', colFailures: 'Fallos',
  colSummaryPatterns: 'Resumen / Patrones', colObs: 'Observaciones', colSkills: 'Habilidades',
  colHook: 'Hook', colCommand: 'Comando', colTrigger: 'Disparador', colEffect: 'Efecto',
  colPolishResult: 'Resultado Polish', colFailureType: 'Tipo de fallo registrado',
  colPatternDetection: 'Detección de patrones', colResource: 'Recurso', colPurpose: 'Propósito',
  colConstant: 'Constante', colThreshold: 'Umbral', colId: 'ID', colProject: 'Proyecto', colTags: 'Tags',
  colGoal: 'Objetivo', colMode: 'Modo', colStarted: 'Iniciado', colDuration: 'Duración',
  pageDashboard: 'Panel',
  pageDashboardDesc: 'Estado arquitectura 4-Ring · puntuaciones de evaluación · salud del sistema',
  ring0Desc: '6 hooks activos', ring1Desc: '3 comandos de usuario',
  ring2Desc: '19 disparados por contexto', ring3Desc: 'bucle observar → evolucionar',
  statSessions: 'Sesiones', statSessionsSub: 'este proyecto',
  statAvgScore: 'Puntuación prom.', statAvgScoreSub: 'compuesta (éxito 50% + calidad 30% + costo 20%)',
  statTrend: 'Tendencia', statTrendSub: 'sesión a sesión',
  statStagnation: 'Estancamiento', statStagnationSub: 'límite 3 · rollback automático al exceder',
  statTotalCalls: 'Total de llamadas', statTotalCallsSub: 'sesiones recientes combinadas',
  statFailures: 'Fallos', evalScoreTitle: 'Puntuación de evaluación',
  toolStatsTitle: 'Estadísticas de herramientas (Top 5)', recentActivityTitle: 'Actividad reciente',
  sessionLabel: 'Sesión', callsAvgScore: 'llamadas, puntuación prom.', failuresLabel: 'fallos',
  recentSessionNone: 'Sin sesiones recientes', failuresSub: 'sesiones recientes combinadas',
  pageAgents: 'Agentes internos',
  pageAgentsLive: 'Agentes en vivo',
  pageAgentsLiveDesc: 'Estado de agentes en tiempo real de la orquestación activa',
  liveAgentStatus: 'Ejecución del orquestador',
  noActiveOrchestration: 'Sin agentes activos',
  noActiveOrchestrationHint: 'Inicia un pipeline con /orbit para ver actividad de agentes aquí',
  runIdLabel: 'ID de ejecución',
  orchRunSub: 'ejecución de orquestación',
  doneLabel: 'completado',
  failedLabel: 'fallido',
  heartbeatLabel: 'heartbeat',
  completedAtLabel: 'completado',
  depGraphTitle: 'Grafo de dependencias',
  colAgentId: 'Agente',
  colDependsOn: 'Depende de',
  activeAgents: 'Active Agents', noActiveAgent: 'No active agents',
  activeLabel: 'Active', ofAgents: (n: number) => `of ${n} agents`,
  completedLabel: 'Completed', failedStatusLabel: 'Failed', agentIdLabel: 'ID:',
  lastTool: 'Última herramienta:', scoreLabel: 'Puntuación:',
  lowSuccessTools: 'Patrones /team — Herramientas con bajo éxito (< 85%)',
  allToolsOk: 'Todas las herramientas saludables (success_rate ≥ 85%)',
  statusCol: 'Estado', needsAttention: 'Requiere atención',
  sessionActivity: 'Resumen de actividad de agentes por sesión', noRecentSession: 'Sin sesiones recientes',
  teamPatternsTitle: 'Patrones de orquestación /team',
  patternPipelineDesc: 'Transferencias secuenciales, construir → probar → revisar',
  patternFanOutDesc: 'Tareas paralelas independientes, luego fusionar',
  patternExpertPoolDesc: 'Enrutamiento a especialista por tipo de tarea',
  patternProducerReviewerDesc: 'Uno construye, uno revisa, iterar',
  patternSupervisorDesc: 'Coordinador central distribuye a workers',
  pageCommands: 'Comandos',
  pageCommandsDesc3: '3 comandos principales — orbit, evolve, team — haz clic para copiar',
  cmdEvolveDesc: 'Inspeccionar o activar evolución de habilidades',
  cmdTeamDesc: 'Generar equipo de agentes específico del proyecto',
  cmdOrbitDesc: 'Pipeline autónomo spec→ship',
  pageSkills: 'Habilidades automáticas',
  pageSkillsDesc19: '19 habilidades (15 auto + 4 pipeline) + enrutador _dispatch · haz clic para copiar',
  skillSpecDesc: 'Definir requisitos y criterios de aceptación antes de codificar',
  skillGoDesc: 'Construir con plan automático + TDD, de spec a implementación',
  skillCheckDesc: 'Revisión paralela + auditoría de seguridad + verificación de tests',
  skillShipDesc: 'Crear PR, monitorear CI, corregir fallos automáticamente, fusionar',
  skillDispatchDesc: 'Enruta tareas automáticamente a la habilidad correcta',
  skillTddDesc: 'Ciclo de desarrollo test-first',
  skillDebugDesc: 'Análisis sistemático de causa raíz',
  skillSecureDesc: 'Lista de verificación de seguridad para auth/db/api',
  skillVerifyDesc: 'Construir + probar + lint antes de marcar como completado',
  skillSimplifyDesc: 'Activado en archivos > 200 líneas',
  skillPerfDesc: 'Análisis de rendimiento para DB/API',
  skillReviewDesc: 'Revisión de calidad y lógica del código',
  skillRefactorDesc: 'Mejora estructural segura',
  skillMigrateDesc: 'Seguridad de migración de base de datos y esquema',
  skillApiDesignDesc: 'Patrones de diseño de API REST/GraphQL',
  skillDocDesc: 'Generación de documentación',
  skillTestGenDesc: 'Generación automática de tests para código no cubierto',
  skillCiDesc: 'Configuración de pipeline CI/CD',
  skillDeployDesc: 'Lista de verificación de despliegue seguro',
  pageEvolve: 'Evaluación & Evolución',
  pageEvolveDesc: 'Observar → Analizar → Evolucionar → Gate → Recargar bucle de auto-mejora',
  loadingEvolution: 'Cargando datos de evolución…',
  statSessionsAnalyzed: 'Sesiones analizadas', statFailurePatterns: 'Patrones de fallo',
  statEvolvedSkills: 'Habilidades evolucionadas', statMaxSkillsCap: 'Límite máx de habilidades',
  evolvedSkillsTitle: 'Habilidades evolucionadas', evolutionHistoryTitle: 'Historial de evolución',
  trendImproving: '↑ mejorando', trendDeclining: '↓ declinando', trendStable: '→ estable',
  seedingThresholdsTitle: 'Umbrales de seeding de habilidades',
  seedTypeWeakTool: 'Herramienta débil', seedTypeWeakFileType: 'Tipo de archivo débil',
  seedTypeHighFreqError: 'Error de alta frecuencia', seedTypeStagnationRollback: 'Rollback por estancamiento',
  seedThreshWeakTool: 'success_rate < 0.6, mín 5 observaciones',
  seedThreshWeakExt: 'success_rate < 0.5, mín 3 observaciones',
  seedThreshHighFreq: '5+ ocurrencias',
  seedThreshStagnation: '3 sesiones sin 5% de mejora',
  noEvolvedSkills: 'Sin habilidades evolucionadas aún — se generarán automáticamente con las sesiones',
  filterCountFmt: (n: number, total: number) => `${n} / ${total} registros`,
  allTrend: 'Todas tendencias', patternSearch: 'Buscar patrón / resumen…',
  noHistoryFilter: 'Sin resultados', noHistoryEmpty: 'Sin historial de evolución aún',
  pageHooks: 'Hooks',
  pageHooksDesc: '6 hooks Claude Code para automatización autopiloto · binario Rust único',
  hookRegistryTitle: 'Registro de hooks',
  hookResumeEffect: 'Restaurar sesión + cargar habilidades evolucionadas',
  hookGuardEffect: 'Bloquear patrones shell peligrosos',
  hookObserveEffect: 'Registrar puntuaciones 3 ejes en obs JSONL',
  hookPolishEffect: 'Auto-formateo + verificación de tipos',
  hookSnapshotEffect: 'Guardar estado de sesión en sessions/',
  hookReflectEffect: 'Evolucionar habilidades + guardar métricas',
  hookFlowTitle: 'Flujo de hooks', guardRulesTitle: 'Extensión de reglas de guarda',
  guardRulesDesc: 'Agregar reglas de bloqueo/advertencia vía .harness/guard-rules.yaml en la raíz del proyecto.',
  polishFeedbackTitle: 'Retroalimentación Polish → Observe',
  polishFeedbackDesc: 'Los resultados del hook Polish se auto-registran en el pipeline observe.',
  polishFormatFail: 'Fallo de formateo', polishTypecheckFail: 'Fallo en verificación de tipos',
  polishFormatFeedDesc: 'Alimenta el detector repeated_same_error',
  polishTypecheckFeedDesc: 'Alimenta el detector fix_then_break',
  onSessionStart: 'Al iniciar sesión', onPreTool: 'Antes de cada llamada de herramienta',
  onPostTool: 'Después de llamada de herramienta (async)', onPostEdit: 'Después de editar archivo',
  onPreCompact: 'Antes de compactar contexto', onSessionEnd: 'Al terminar sesión',
  pageIntegrations: 'Integraciones',
  pageIntegrationsDesc: '6 integraciones de herramientas IA · configs en integrations/',
  loadingIntegrations: 'Cargando estado de integraciones…',
  statusInstalled: 'Instalado', statusNotInstalled: 'No instalado',
  sharedResourcesTitle: 'Recursos compartidos',
  rowCommands: 'Comandos', rowSkills: 'Habilidades', rowAgents: 'Agentes', rowHooks: 'Hooks',
  pageMemory: 'harness-mem', loadingGraph: 'Cargando grafo de conocimiento…',
  mcpToolsTitle: 'Herramientas MCP', smartRecallScoringTitle: 'Fórmula de puntuación Smart Recall',
  memRecallDesc: 'Recall contextual inteligente — pista + proyecto + vecinos del grafo',
  memAddDesc: 'Agregar nodo con importancia automática por tipo',
  memSearchDesc: 'Búsqueda de palabras clave FTS5, resultados por importancia',
  memQueryDesc: 'Consulta SQL para filtrado avanzado',
  memContextDesc: 'Recall inteligente con alcance de proyecto (sin pista)',
  memRelatedDesc: 'Recorrido de grafo BFS desde un ID de nodo',
  memNoData: 'Sin datos harness-mem',
  memWip: 'harness-mem está en estado WIP.\nEl grafo aparecerá una vez que se agreguen nodos vía el servidor MCP.',
  pageOrbitDesc: 'spec → go → check → ship → evolve — ejecución spec-a-PR con un comando',
  entryModeTitle: 'Modo de entrada', runningPipelines: 'Pipelines en ejecución',
  pipelineHistoryTitle: 'Historial de pipelines',
  pipelineStateSchemaTitle: 'Esquema de estado del pipeline',
  safetyMechanismsTitle: 'Mecanismos de seguridad',
  safetyGuardTitle: 'Guarda de concurrencia', safetyDeadlineTitle: 'Aplicación de deadline',
  safetyCrashTitle: 'Recuperación de crash', safetyWorktreeTitle: 'Seguridad worktree',
  noGoal: '(sin objetivo)', startedAt: 'Iniciado', deadlineAt: 'Deadline',
  expired: 'Expirado', minutesLeft: (n: number) => `${n}min restantes`,
  checkFails: 'Fallos de verificación',
  filterCountOrbit: (n: number, total: number) => `${n} / ${total}`,
  searchGoal: 'Buscar objetivo…', searchProject: 'Buscar proyecto…',
  allStatus: 'Todos los estados', noPipelines: 'No se encontraron pipelines',
  durationMin: (n: number) => `${n}min`,
  safetyGuard: 'Límite de pipeline concurrente único',
  safetyDeadline: 'Timeout rígido de 30 minutos',
  safetyCrash: 'Umbral stale de 45 minutos, recuperación desde phase_history',
  safetyWorktree: 'Build aislado, estado preservado en caso de pérdida de worktree',
  interactiveDesc: 'Describir problema, la habilidad spec se activa automáticamente, luego iniciar orbit.',
  councilDesc: 'Auto-spec paralelo 4-voces (Architect·Critic·Implementor·QA).',
  directDesc: 'Auto-spec y luego construir inmediatamente. Para requisitos claros.',
  pageSettings: 'Configuración',
  pageSettingsDesc: 'Pesos de evaluación epic-harness, ajuste de evolución e información del sistema',
  loadingMetrics: 'Cargando métricas…',
  evalWeightsTitle: 'Pesos de puntuación de evaluación', evolutionTuningTitle: 'Constantes de ajuste de evolución',
  systemInfoTitle: 'Información del sistema', labelSessionsAnalyzed: 'Sesiones analizadas',
  labelCurrentTrend: 'Tendencia actual', labelStagnationCount: 'Contador de estancamiento',
  labelVersion: 'Versión', dangerZoneTitle: 'Zona de peligro',
  resetEvolutionLabel: 'Restablecer evolución', resetEvolutionDesc: 'Elimina todas las habilidades evolucionadas',
  clearMetricsLabel: 'Limpiar métricas', clearMetricsDesc: 'Restablece el historial de puntuaciones',
  statBestScore: 'Mejor puntuación', labelLastErrorContext: 'Último contexto de error',
  sessionSnapshotsTitle: 'Instantáneas de sesión', colSummary: 'Resumen', colContextUsage: 'Contexto %',
  globalPatternsTitle: 'Patrones entre proyectos', colWeakTools: 'Herramientas débiles',
  statTotalNodes: 'Total nodos', statTotalEdges: 'Total aristas', statAvgImportance: 'Importancia media',
  memorySearchTitle: 'Nodos de memoria', memorySearchPlaceholder: 'Buscar nodos…',
  searchButton: 'Buscar', colTitle: 'Título', colImportance: 'Importancia',
  colUpdated: 'Actualizado', noSearchResults: 'Sin resultados', noNodes: 'Sin nodos de memoria',
  showingFirst50: (n: number) => `Mostrando primeros 50 de ${n}`,
  showMore: 'Mostrar más',
  agentInboxTitle: 'Bandeja de entrada',
  allProjects: 'Todos los proyectos',
  selectProject: 'Seleccionar proyecto',
} as const;
