export default {
  loading: 'Loading…', loadError: 'Load error', noData: 'No data', reset: 'Reset',
  noResults: 'No results', copied: 'Copied!', errorPrefix: 'Error', modeLabel: 'Mode:',
  colTool: 'Tool', colCalls: 'Calls', colAvgScore: 'Avg Score', colDate: 'Date',
  colTrend: 'Trend', colStatus: 'Status', colType: 'Type', colValue: 'Value',
  colField: 'Field', colDescription: 'Description', colPattern: 'Pattern',
  colAgents: 'Agents', colBestFor: 'Best For', colSuccessRate: 'Success Rate',
  colSessionId: 'Session ID', colToolCalls: 'Tool Calls', colFailures: 'Failures',
  colSummaryPatterns: 'Summary / Patterns', colObs: 'Obs', colSkills: 'Skills',
  colHook: 'Hook', colCommand: 'Command', colTrigger: 'Trigger', colEffect: 'Effect',
  colPolishResult: 'Polish result', colFailureType: 'Failure type recorded',
  colPatternDetection: 'Pattern detection', colResource: 'Resource', colPurpose: 'Purpose',
  colConstant: 'Constant', colThreshold: 'Threshold', colId: 'ID', colProject: 'Project', colTags: 'Tags',
  colGoal: 'Goal', colMode: 'Mode', colStarted: 'Started', colDuration: 'Duration',
  pageDashboard: 'Dashboard',
  pageDashboardDesc: '4-Ring architecture status · eval scores · system health',
  ring0Desc: '6 hooks active', ring1Desc: '3 pipeline skills',
  ring2Desc: '19 context-triggered', ring3Desc: 'observe → evolve loop',
  statSessions: 'Sessions', statSessionsSub: 'this project',
  statAvgScore: 'Avg Score', statAvgScoreSub: 'composite (success 50% + quality 30% + cost 20%)',
  statTrend: 'Trend', statTrendSub: 'session-over-session',
  statStagnation: 'Stagnation', statStagnationSub: 'limit 3 · auto-rollback on exceed',
  statTotalCalls: 'Total Calls', statTotalCallsSub: 'recent sessions combined',
  statFailures: 'Failures', evalScoreTitle: 'Eval Score',
  toolStatsTitle: 'Tool Stats (Top 5)', recentActivityTitle: 'Recent Activity',
  sessionLabel: 'Session', callsAvgScore: 'calls, avg score', failuresLabel: 'failures',
  recentSessionNone: 'No recent sessions', failuresSub: 'combined from recent sessions',
  // R1: Dimension labels
  dimToolSuccess: 'Tool Success', dimOutputQuality: 'Output Quality', dimExecCost: 'Exec Cost',
  // R2: Failure categories
  failureCategoriesTitle: 'Failure Categories',
  // R3: Skill attribution
  skillAttributionTitle: 'Skill Attribution',
  colSkillName: 'Skill', colSessionsActive: 'Sessions', colScoreWith: 'With', colScoreWithout: 'Without', colDelta: 'Delta',
  // R4: Agent events
  agentEventLog: 'Event Log', colEventType: 'Event', colTimestamp: 'Time', noEvents: 'No events',
  pageAgents: 'Internal Agents',
  pageAgentsLive: 'Live Agents',
  pageAgentsLiveDesc: 'Real-time agent spawn status from active coding tool orchestration',
  liveAgentStatus: 'Orchestrator Run',
  noActiveOrchestration: 'No active agents',
  noActiveOrchestrationHint: 'Start a pipeline with /orbit to see live agent activity here',
  runIdLabel: 'Run ID',
  orchRunSub: 'orchestration run',
  doneLabel: 'completed',
  failedLabel: 'failed',
  heartbeatLabel: 'heartbeat',
  completedAtLabel: 'completed',
  depGraphTitle: 'Dependency Graph',
  colAgentId: 'Agent',
  colDependsOn: 'Depends On',
  activeAgents: 'Active Agents', noActiveAgent: 'No active agents',
  activeLabel: 'Active', ofAgents: (n: number) => `of ${n} agents`,
  completedLabel: 'Completed', failedStatusLabel: 'Failed', agentIdLabel: 'ID:',
  lastTool: 'last tool:', scoreLabel: 'score:',
  lowSuccessTools: '/team Patterns — Low Success Tools (success_rate < 85%)',
  allToolsOk: 'All tools healthy (success_rate ≥ 85%)',
  statusCol: 'Status', needsAttention: 'Needs attention',
  sessionActivity: 'Session Activity Summary', noRecentSession: 'No recent sessions',
  teamPatternsTitle: '/team Orchestration Patterns',
  patternPipelineDesc: 'Sequential handoffs, build → test → review',
  patternFanOutDesc: 'Parallel independent tasks, then merge',
  patternExpertPoolDesc: 'Route to specialist per task type',
  patternProducerReviewerDesc: 'One builds, one reviews, iterate',
  patternSupervisorDesc: 'Central coordinator dispatches to workers',
  pageCommands: 'Pipeline',
  pageCommandsDesc3: '3 pipeline skills — orbit, evolve, team — click any card to copy',
  cmdEvolveDesc: 'Inspect or trigger skill evolution',
  cmdTeamDesc: 'Generate project-specific agent team',
  cmdOrbitDesc: 'Autonomous spec→ship pipeline',
  pageSkills: 'Auto Skills',
  pageSkillsDesc19: '19 skills (15 auto + 4 pipeline) + _dispatch core router · click any card to copy',
  skillSpecDesc: 'Define requirements and acceptance criteria before coding',
  skillGoDesc: 'Build with auto-plan + TDD, execute spec to implementation',
  skillCheckDesc: 'Parallel review + security audit + test verification',
  skillShipDesc: 'Create PR, watch CI, auto-fix failures, merge',
  skillDispatchDesc: 'Auto-routes tasks to the right skill based on context',
  skillTddDesc: 'Test-first development cycle',
  skillDebugDesc: 'Systematic root cause analysis',
  skillSecureDesc: 'Security checklist for auth/db/api code',
  skillVerifyDesc: 'Build + test + lint before marking done',
  skillSimplifyDesc: 'Triggered on files > 200 lines',
  skillPerfDesc: 'Performance analysis for DB/API code',
  skillReviewDesc: 'Code quality and logic review',
  skillRefactorDesc: 'Safe structural improvement',
  skillMigrateDesc: 'Database and schema migration safety',
  skillApiDesignDesc: 'REST/GraphQL API design patterns',
  skillDocDesc: 'Documentation generation',
  skillTestGenDesc: 'Auto test generation for uncovered code',
  skillCiDesc: 'CI/CD pipeline configuration',
  skillDeployDesc: 'Safe deployment checklist',
  pageEvolve: 'Eval & Evolve',
  pageEvolveDesc: 'Observe → Analyze → Evolve → Gate → Reload self-improvement loop',
  loadingEvolution: 'Loading evolution data…',
  statSessionsAnalyzed: 'Sessions Analyzed', statFailurePatterns: 'Failure Patterns',
  statEvolvedSkills: 'Evolved Skills', statMaxSkillsCap: 'Max Skills Cap',
  evolvedSkillsTitle: 'Evolved Skills', evolutionHistoryTitle: 'Evolution History',
  trendImproving: '↑ improving', trendDeclining: '↓ declining', trendStable: '→ stable',
  seedingThresholdsTitle: 'Skill Seeding Thresholds',
  seedTypeWeakTool: 'Weak tool', seedTypeWeakFileType: 'Weak file type',
  seedTypeHighFreqError: 'High-freq error', seedTypeStagnationRollback: 'Stagnation rollback',
  seedThreshWeakTool: 'success_rate < 0.6, min 5 observations',
  seedThreshWeakExt: 'success_rate < 0.5, min 3 observations',
  seedThreshHighFreq: '5+ occurrences',
  seedThreshStagnation: '3 sessions without 5% improvement',
  noEvolvedSkills: 'No evolved skills yet — they will be generated automatically as sessions accumulate',
  filterCountFmt: (n: number, total: number) => `${n} / ${total} records`,
  allTrend: 'All Trends', patternSearch: 'Search Pattern / Summary…',
  noHistoryFilter: 'No results', noHistoryEmpty: 'No evolution history yet',
  pageHooks: 'Hooks',
  pageHooksDesc: '6 Claude Code hooks providing autopilot automation · Rust single binary',
  hookRegistryTitle: 'Hook Registry',
  hookResumeEffect: 'Restore session + load evolved skills',
  hookGuardEffect: 'Block dangerous shell patterns',
  hookObserveEffect: 'Record 3-axis scores to obs JSONL',
  hookPolishEffect: 'Auto-format + typecheck',
  hookSnapshotEffect: 'Save session state to sessions/',
  hookReflectEffect: 'Evolve skills + save metrics',
  hookFlowTitle: 'Hook Flow', guardRulesTitle: 'Guard Rules Extension',
  guardRulesDesc: 'Add custom block/warn rules via .harness/guard-rules.yaml in your project root.',
  polishFeedbackTitle: 'Polish → Observe Feedback',
  polishFeedbackDesc: 'Polish hook results auto-record into the observe pipeline.',
  polishFormatFail: 'Format failure', polishTypecheckFail: 'Typecheck failure',
  polishFormatFeedDesc: 'Feeds repeated_same_error detector',
  polishTypecheckFeedDesc: 'Feeds fix_then_break detector',
  onSessionStart: 'On session start', onPreTool: 'Before every tool call',
  onPostTool: 'After tool call (async)', onPostEdit: 'After file edit',
  onPreCompact: 'Before context compact', onSessionEnd: 'On session end',
  pageIntegrations: 'Integrations',
  pageIntegrationsDesc: '6 AI coding tool integrations · configs in integrations/',
  loadingIntegrations: 'Loading integration status…',
  statusInstalled: 'Installed', statusNotInstalled: 'Not installed',
  sharedResourcesTitle: 'Shared Resources',
  rowCommands: 'Commands', rowSkills: 'Skills', rowAgents: 'Agents', rowHooks: 'Hooks',
  pageMemory: 'harness-mem', loadingGraph: 'Loading knowledge graph…',
  mcpToolsTitle: 'MCP Tools', smartRecallScoringTitle: 'Smart Recall Scoring',
  memRecallDesc: 'Smart contextual recall — hint + project + graph neighbors',
  memAddDesc: 'Add node with auto-importance by type',
  memSearchDesc: 'FTS5 keyword search, results ranked by importance',
  memQueryDesc: 'SQL-level query for advanced filtering',
  memContextDesc: 'Project-scoped smart recall (no hint)',
  memRelatedDesc: 'BFS graph traversal from a node ID',
  memNoData: 'No harness-mem data',
  memWip: 'harness-mem is currently WIP.\nThe graph will appear once nodes are added via the MCP server (harness-mem).',
  pageOrbitDesc: 'spec → go → check → ship → evolve — single-command spec-to-PR execution',
  entryModeTitle: 'Entry Mode', runningPipelines: 'Running Pipelines',
  pipelineHistoryTitle: 'Pipeline History',
  pipelineStateSchemaTitle: 'Pipeline State Schema',
  safetyMechanismsTitle: 'Safety Mechanisms',
  safetyGuardTitle: 'Concurrent orbit guard', safetyDeadlineTitle: 'Deadline enforcement',
  safetyCrashTitle: 'Crash recovery', safetyWorktreeTitle: 'Worktree safety',
  noGoal: '(no goal)', startedAt: 'Started', deadlineAt: 'Deadline',
  expired: 'Expired', minutesLeft: (n: number) => `${n}m left`,
  checkFails: 'Check fails',
  filterCountOrbit: (n: number, total: number) => `${n} / ${total}`,
  searchGoal: 'Search goal…', searchProject: 'Search project…',
  allStatus: 'All statuses', noPipelines: 'No pipelines found',
  durationMin: (n: number) => `${n}m`,
  safetyGuard: 'Single concurrent pipeline limit',
  safetyDeadline: '30-minute hard timeout',
  safetyCrash: '45-minute stale threshold, recovery from phase_history',
  safetyWorktree: 'Isolated build, state preserved on worktree loss',
  interactiveDesc: 'describe problem → spec skill auto-triggers. Use when requirements are unclear.',
  councilDesc: '4-voice parallel auto-spec (Architect·Critic·Implementor·QA). For complex requirements.',
  directDesc: 'Auto-spec then build immediately. Use when requirements are clear.',
  pageSettings: 'Settings',
  pageSettingsDesc: 'epic-harness eval weights, evolution tuning, and system info',
  loadingMetrics: 'Loading metrics…',
  evalWeightsTitle: 'Eval Score Weights', evolutionTuningTitle: 'Evolution Tuning Constants',
  systemInfoTitle: 'System Info', labelSessionsAnalyzed: 'Sessions analyzed',
  labelCurrentTrend: 'Current trend', labelStagnationCount: 'Stagnation count',
  labelVersion: 'Version', dangerZoneTitle: 'Danger Zone',
  resetEvolutionLabel: 'Reset Evolution', resetEvolutionDesc: 'Removes all evolved skills',
  clearMetricsLabel: 'Clear Metrics', clearMetricsDesc: 'Resets score history',
  // R2-R8 new keys
  statBestScore: 'Best Score',
  labelLastErrorContext: 'Last Error Context',
  sessionSnapshotsTitle: 'Session Snapshots',
  colSummary: 'Summary', colContextUsage: 'Context %',
  globalPatternsTitle: 'Cross-Project Patterns',
  colWeakTools: 'Weak Tools',
  statTotalNodes: 'Total Nodes', statTotalEdges: 'Total Edges', statAvgImportance: 'Avg Importance',
  memorySearchTitle: 'Memory Nodes', memorySearchPlaceholder: 'Search nodes…',
  searchButton: 'Search', colTitle: 'Title', colImportance: 'Importance',
  colUpdated: 'Updated', noSearchResults: 'No results found', noNodes: 'No memory nodes',
  showingFirst50: (n: number) => `Showing first 50 of ${n}`,
  showMore: 'Show more',
  agentInboxTitle: 'Inbox',
  allProjects: 'All Projects',
  selectProject: 'Select project',
} as const;
