export default {
  loading: 'Chargement…', loadError: 'Erreur de chargement', noData: 'Aucune donnée', reset: 'Réinitialiser',
  noResults: 'Aucun résultat', copied: 'Copié !', errorPrefix: 'Erreur', modeLabel: 'Mode :',
  colTool: 'Outil', colCalls: 'Appels', colAvgScore: 'Score moy.', colDate: 'Date',
  colTrend: 'Tendance', colStatus: 'Statut', colType: 'Type', colValue: 'Valeur',
  colField: 'Champ', colDescription: 'Description', colPattern: 'Modèle',
  colAgents: 'Agents', colBestFor: 'Idéal pour', colSuccessRate: 'Taux de succès',
  colSessionId: 'ID de session', colToolCalls: 'Appels d\'outils', colFailures: 'Échecs',
  colSummaryPatterns: 'Résumé / Modèles', colObs: 'Observations', colSkills: 'Compétences',
  colHook: 'Hook', colCommand: 'Commande', colTrigger: 'Déclencheur', colEffect: 'Effet',
  colPolishResult: 'Résultat Polish', colFailureType: 'Type d\'échec enregistré',
  colPatternDetection: 'Détection de modèles', colResource: 'Ressource', colPurpose: 'Objectif',
  colConstant: 'Constante', colThreshold: 'Seuil', colId: 'ID', colProject: 'Projet',
  colGoal: 'Objectif', colMode: 'Mode', colStarted: 'Démarré', colDuration: 'Durée',
  pageDashboard: 'Tableau de bord',
  pageDashboardDesc: 'Statut architecture 4-Ring · scores d\'évaluation · santé système',
  ring0Desc: '6 hooks actifs', ring1Desc: '10 commandes utilisateur',
  ring2Desc: '15 déclenchés par contexte', ring3Desc: 'boucle observer → évoluer',
  statSessions: 'Sessions', statSessionsSub: 'ce projet',
  statAvgScore: 'Score moy.', statAvgScoreSub: 'composite (succès 50% + qualité 30% + coût 20%)',
  statTrend: 'Tendance', statTrendSub: 'session après session',
  statStagnation: 'Stagnation', statStagnationSub: 'limite 3 · rollback auto si dépassé',
  statTotalCalls: 'Appels totaux', statTotalCallsSub: 'sessions récentes combinées',
  statFailures: 'Échecs', evalScoreTitle: 'Score d\'évaluation',
  toolStatsTitle: 'Stats outils (Top 5)', recentActivityTitle: 'Activité récente',
  sessionLabel: 'Session', callsAvgScore: 'appels, score moy.', failuresLabel: 'échecs',
  recentSessionNone: 'Aucune session récente', failuresSub: 'sessions récentes combinées',
  pageAgents: 'Agents internes',
  pageAgentsDesc: '4 agents intégrés pour /go et /check · extensible via /team',
  activeAgents: 'Agents actifs', noActiveAgent: 'Aucun agent actif',
  lastTool: 'Dernier outil :', scoreLabel: 'Score :',
  lowSuccessTools: 'Modèles /team — Outils à faible succès (< 85%)',
  allToolsOk: 'Tous les outils sains (success_rate ≥ 85%)',
  statusCol: 'Statut', needsAttention: 'Attention requise',
  sessionActivity: 'Résumé d\'activité des agents par session', noRecentSession: 'Aucune session récente',
  teamPatternsTitle: 'Modèles d\'orchestration /team',
  patternPipelineDesc: 'Transferts séquentiels, construire → tester → réviser',
  patternFanOutDesc: 'Tâches parallèles indépendantes, puis fusion',
  patternExpertPoolDesc: 'Routage vers le spécialiste par type de tâche',
  patternProducerReviewerDesc: 'Un construit, un révise, itérer',
  patternSupervisorDesc: 'Coordinateur central distribue aux workers',
  agentBuilderDesc: 'Implémente une tâche unique avec TDD. Écrit le test d\'abord, puis le code, puis vérifie.',
  agentReviewerDesc: 'Révise le code pour la qualité, l\'exactitude, le style et la couverture de test.',
  agentAuditorDesc: 'Audite le code pour les vulnérabilités de sécurité et les problèmes de performance.',
  agentPlannerDesc: 'Décompose un objectif en tâches ordonnées et parallélisables avec dépendances.',
  pageCommands: 'Commandes',
  pageCommandsDesc: '10 commandes slash — cliquer sur une carte pour copier',
  cmdDiscoverDesc: 'Explorer et définir le problème avant de spécifier une solution',
  cmdSpecDesc: 'Définir les exigences avant de coder',
  cmdGoDesc: 'Construire avec auto-plan + TDD',
  cmdCheckDesc: 'Révision + audit de sécurité + tests',
  cmdShipDesc: 'Créer PR, vérifier CI, fusionner',
  cmdEvolveDesc: 'Inspecter ou déclencher l\'évolution des compétences',
  cmdTeamDesc: 'Générer une équipe d\'agents spécifique au projet',
  cmdOrbitDesc: 'Pipeline autonome spec→ship',
  cmdGitCcDesc: 'Commit conventionnel avec sélection automatique du type',
  cmdGitDesc: 'Opérations git multi-repo (sync/bump/tags)',
  pageSkills: 'Compétences auto',
  pageSkillsDesc: '15 compétences déclenchées par contexte + routeur _dispatch',
  skillDispatchDesc: 'Achemine automatiquement les tâches vers la bonne compétence',
  skillTddDesc: 'Cycle de développement test-first',
  skillDebugDesc: 'Analyse systématique des causes profondes',
  skillSecureDesc: 'Liste de vérification sécurité pour auth/db/api',
  skillVerifyDesc: 'Construire + tester + linter avant de marquer comme terminé',
  skillSimplifyDesc: 'Déclenché sur les fichiers > 200 lignes',
  skillPerfDesc: 'Analyse de performance pour DB/API',
  skillReviewDesc: 'Révision qualité et logique du code',
  skillRefactorDesc: 'Amélioration structurelle sûre',
  skillMigrateDesc: 'Sécurité des migrations base de données et schéma',
  skillApiDesignDesc: 'Modèles de conception API REST/GraphQL',
  skillDocDesc: 'Génération de documentation',
  skillTestGenDesc: 'Génération automatique de tests pour code non couvert',
  skillCiDesc: 'Configuration pipeline CI/CD',
  skillDeployDesc: 'Liste de vérification déploiement sûr',
  pageEvolve: 'Évaluation & Évolution',
  pageEvolveDesc: 'Observer → Analyser → Évoluer → Gate → Recharger boucle d\'auto-amélioration',
  loadingEvolution: 'Chargement des données d\'évolution…',
  statSessionsAnalyzed: 'Sessions analysées', statFailurePatterns: 'Modèles d\'échec',
  statEvolvedSkills: 'Compétences évoluées', statMaxSkillsCap: 'Limite max compétences',
  evolvedSkillsTitle: 'Compétences évoluées', evolutionHistoryTitle: 'Historique d\'évolution',
  trendImproving: '↑ en amélioration', trendDeclining: '↓ en baisse', trendStable: '→ stable',
  seedingThresholdsTitle: 'Seuils de seeding des compétences',
  seedTypeWeakTool: 'Outil faible', seedTypeWeakFileType: 'Type de fichier faible',
  seedTypeHighFreqError: 'Erreur haute fréquence', seedTypeStagnationRollback: 'Rollback stagnation',
  seedThreshWeakTool: 'success_rate < 0.6, min 5 observations',
  seedThreshWeakExt: 'success_rate < 0.5, min 3 observations',
  seedThreshHighFreq: '5+ occurrences',
  seedThreshStagnation: '3 sessions sans 5% d\'amélioration',
  noEvolvedSkills: 'Aucune compétence évoluée — générées automatiquement au fil des sessions',
  filterCountFmt: (n: number, total: number) => `${n} / ${total} entrées`,
  allTrend: 'Toutes tendances', patternSearch: 'Rechercher modèle / résumé…',
  noHistoryFilter: 'Aucun résultat', noHistoryEmpty: 'Aucun historique d\'évolution',
  pageHooks: 'Hooks',
  pageHooksDesc: '6 hooks Claude Code pour automatisation autopilote · binaire Rust unique',
  hookRegistryTitle: 'Registre des hooks',
  hookResumeEffect: 'Restaurer session + charger compétences évoluées',
  hookGuardEffect: 'Bloquer les modèles shell dangereux',
  hookObserveEffect: 'Enregistrer scores 3-axes dans obs JSONL',
  hookPolishEffect: 'Auto-formatage + vérification de type',
  hookSnapshotEffect: 'Sauvegarder état session dans sessions/',
  hookReflectEffect: 'Faire évoluer compétences + sauvegarder métriques',
  hookFlowTitle: 'Flux des hooks', guardRulesTitle: 'Extension règles de garde',
  guardRulesDesc: 'Ajouter des règles block/warn via .harness/guard-rules.yaml à la racine du projet.',
  polishFeedbackTitle: 'Retour Polish → Observe',
  polishFeedbackDesc: 'Les résultats du hook Polish sont auto-enregistrés dans le pipeline observe.',
  polishFormatFail: 'Échec formatage', polishTypecheckFail: 'Échec vérification type',
  polishFormatFeedDesc: 'Alimente le détecteur repeated_same_error',
  polishTypecheckFeedDesc: 'Alimente le détecteur fix_then_break',
  onSessionStart: 'Au démarrage session', onPreTool: 'Avant chaque appel outil',
  onPostTool: 'Après appel outil (async)', onPostEdit: 'Après édition fichier',
  onPreCompact: 'Avant compactage contexte', onSessionEnd: 'À la fin session',
  pageIntegrations: 'Intégrations',
  pageIntegrationsDesc: '6 intégrations d\'outils IA · configs dans integrations/',
  loadingIntegrations: 'Chargement statut intégrations…',
  statusInstalled: 'Installé', statusNotInstalled: 'Non installé',
  sharedResourcesTitle: 'Ressources partagées',
  rowCommands: 'Commandes', rowSkills: 'Compétences', rowAgents: 'Agents', rowHooks: 'Hooks',
  pageMemory: 'harness-mem', loadingGraph: 'Chargement du graphe de connaissances…',
  mcpToolsTitle: 'Outils MCP', smartRecallScoringTitle: 'Formule de score Smart Recall',
  memRecallDesc: 'Rappel contextuel intelligent — indice + projet + voisins graphe',
  memAddDesc: 'Ajouter nœud avec importance auto par type',
  memSearchDesc: 'Recherche mot-clé FTS5, résultats par importance',
  memQueryDesc: 'Requête SQL pour filtrage avancé',
  memContextDesc: 'Rappel intelligent limité au projet (sans indice)',
  memRelatedDesc: 'Parcours graphe BFS depuis un ID de nœud',
  memNoData: 'Aucune donnée harness-mem',
  memWip: 'harness-mem est en cours de développement.\nLe graphe apparaîtra une fois les nœuds ajoutés via le serveur MCP.',
  pageOrbitDesc: 'spec → go → check → ship → evolve — exécution spec-à-PR en une commande',
  entryModeTitle: 'Mode d\'entrée', runningPipelines: 'Pipelines en cours',
  pipelineHistoryTitle: 'Historique des pipelines',
  pipelineStateSchemaTitle: 'Schéma d\'état du pipeline',
  safetyMechanismsTitle: 'Mécanismes de sécurité',
  safetyGuardTitle: 'Garde concurrence', safetyDeadlineTitle: 'Respect deadline',
  safetyCrashTitle: 'Récupération crash', safetyWorktreeTitle: 'Sécurité worktree',
  noGoal: '(aucun objectif)', startedAt: 'Démarré', deadlineAt: 'Deadline',
  expired: 'Expiré', minutesLeft: (n: number) => `${n} min restantes`,
  checkFails: 'Échecs vérification',
  filterCountOrbit: (n: number, total: number) => `${n} / ${total}`,
  searchGoal: 'Rechercher objectif…', searchProject: 'Rechercher projet…',
  allStatus: 'Tous statuts', noPipelines: 'Aucun pipeline trouvé',
  durationMin: (n: number) => `${n} min`,
  safetyGuard: 'Limite pipeline concurrent unique',
  safetyDeadline: 'Timeout dur de 30 minutes',
  safetyCrash: 'Seuil stale 45 minutes, récupération via phase_history',
  safetyWorktree: 'Build isolé, état préservé en cas de perte worktree',
  interactiveDesc: 'Exécuter /discover → /spec manuellement, puis déclencher orbit.',
  councilDesc: 'Auto-spec parallèle 4-voix (Architect·Critic·Implementor·QA).',
  directDesc: 'Auto-spec puis construction immédiate. Pour exigences claires.',
  pageSettings: 'Paramètres',
  pageSettingsDesc: 'Poids d\'évaluation epic-harness, réglage évolution et infos système',
  loadingMetrics: 'Chargement des métriques…',
  evalWeightsTitle: 'Poids scores évaluation', evolutionTuningTitle: 'Constantes réglage évolution',
  systemInfoTitle: 'Informations système', labelSessionsAnalyzed: 'Sessions analysées',
  labelCurrentTrend: 'Tendance actuelle', labelStagnationCount: 'Compteur stagnation',
  labelVersion: 'Version', dangerZoneTitle: 'Zone dangereuse',
  resetEvolutionLabel: 'Réinitialiser évolution', resetEvolutionDesc: 'Supprime toutes les compétences évoluées',
  clearMetricsLabel: 'Effacer métriques', clearMetricsDesc: 'Réinitialise l\'historique des scores',
} as const;
