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', colTags: 'Tags',
  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: '3 commandes utilisateur',
  ring2Desc: '19 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',
  pageAgentsLive: 'Agents en direct',
  pageAgentsLiveDesc: 'Statut des agents en temps réel depuis l\'orchestration active',
  liveAgentStatus: 'Exécution orchestrateur',
  noActiveOrchestration: 'Aucun agent actif',
  noActiveOrchestrationHint: 'Démarrez un pipeline avec /orbit pour voir l\'activité des agents',
  runIdLabel: 'ID d\'exécution',
  orchRunSub: 'exécution d\'orchestration',
  doneLabel: 'terminé',
  failedLabel: 'échoué',
  heartbeatLabel: 'heartbeat',
  completedAtLabel: 'terminé',
  depGraphTitle: 'Graphe de dépendances',
  colAgentId: 'Agent',
  colDependsOn: 'Dépend de',
  activeAgents: 'Active Agents', noActiveAgent: 'No active agents',
  activeLabel: 'Active', ofAgents: (n: number) => `of ${n} agents`,
  completedLabel: 'Completed', failedStatusLabel: 'Failed', agentIdLabel: 'ID:',
  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',
  pageCommands: 'Commandes',
  pageCommandsDesc3: '3 commandes principales — orbit, evolve, team — cliquez pour copier',
  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',
  pageSkills: 'Compétences auto',
  pageSkillsDesc19: '19 compétences (15 auto + 4 pipeline) + routeur _dispatch · cliquez pour copier',
  skillSpecDesc: 'Définir les exigences et critères d\'acceptation avant de coder',
  skillGoDesc: 'Construire avec plan auto + TDD, de spec à implémentation',
  skillCheckDesc: 'Revue parallèle + audit sécurité + vérification des tests',
  skillShipDesc: 'Créer PR, surveiller CI, corriger les échecs, fusionner',
  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: 'Décrire le problème, la compétence spec se déclenche automatiquement, puis lancer 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',
  statBestScore: 'Meilleur score', labelLastErrorContext: 'Dernier contexte d\'erreur',
  sessionSnapshotsTitle: 'Instantanés de session', colSummary: 'Résumé', colContextUsage: 'Contexte %',
  globalPatternsTitle: 'Motifs inter-projets', colWeakTools: 'Outils faibles',
  statTotalNodes: 'Total nœuds', statTotalEdges: 'Total arêtes', statAvgImportance: 'Importance moy.',
  memorySearchTitle: 'Nœuds mémoire', memorySearchPlaceholder: 'Rechercher des nœuds…',
  searchButton: 'Rechercher', colTitle: 'Titre', colImportance: 'Importance',
  colUpdated: 'Mis à jour', noSearchResults: 'Aucun résultat', noNodes: 'Aucun nœud mémoire',
  showingFirst50: (n: number) => `Affiche les 50 premiers sur ${n}`,
  showMore: 'Afficher plus',
  agentInboxTitle: 'Boîte de réception',
  allProjects: 'Tous les projets',
  selectProject: 'Sélectionner un projet',
} as const;
