3174 lines
125 KiB
JSON
3174 lines
125 KiB
JSON
{
|
||
"metadata": {
|
||
"title": "AWOOOI - Zero-Touch Ops. Human-Centric Decisions.",
|
||
"description": "AI-Powered Intelligent Operations Platform"
|
||
},
|
||
"common": {
|
||
"loading": "Loading...",
|
||
"error": "An error occurred",
|
||
"success": "Success",
|
||
"cancel": "Cancel",
|
||
"confirm": "Confirm",
|
||
"close": "Close",
|
||
"closeEsc": "Close (ESC)",
|
||
"previous": "Previous (←)",
|
||
"next": "Next (→)",
|
||
"save": "Save",
|
||
"delete": "Delete",
|
||
"edit": "Edit",
|
||
"back": "Back",
|
||
"clear": "Clear",
|
||
"refresh": "Refresh",
|
||
"viewDetails": "View Details",
|
||
"later": "Later",
|
||
"keyboardShortcuts": "Keyboard Shortcuts",
|
||
"showShortcuts": "Show Shortcuts"
|
||
},
|
||
"brand": {
|
||
"name": "AWOOOI",
|
||
"slogan": "Zero-Touch Ops. Human-Centric Decisions.",
|
||
"sloganAlt": "零干預維運,以人為本的決策。",
|
||
"tagline": "AI-Powered Intelligent Operations Platform",
|
||
"aiTagline": "AI Sees. AI Acts. You Approve.",
|
||
"version": "v1.0.0",
|
||
"environment": "Production"
|
||
},
|
||
"nav": {
|
||
"home": "Home",
|
||
"dashboard": "Dashboard",
|
||
"approvals": "Approvals",
|
||
"errors": "Error Tracking",
|
||
"actions": "Action Log",
|
||
"knowledge": "Knowledge Base",
|
||
"settings": "Settings",
|
||
"alerts": "Alerts",
|
||
"monitoring": "Monitoring",
|
||
"apm": "APM",
|
||
"topology": "Topology",
|
||
"security": "Security",
|
||
"compliance": "Compliance",
|
||
"autoRepair": "Auto Repair",
|
||
"deployments": "Deployments",
|
||
"tickets": "Tickets",
|
||
"cost": "Cost",
|
||
"reports": "Reports",
|
||
"terminal": "Terminal",
|
||
"apps": "Apps",
|
||
"services": "Services",
|
||
"users": "Users",
|
||
"notifications": "Notifications",
|
||
"billing": "Billing",
|
||
"help": "Help",
|
||
"drift": "Drift Detection",
|
||
"neuralCommand": "Neural Command",
|
||
"commandCenter": "Command Center",
|
||
"observability": "Observability",
|
||
"automation": "Automation",
|
||
"operations": "Operations",
|
||
"securityCompliance": "Security & Compliance",
|
||
"classicAICenter": "Classic AI Center",
|
||
"governance": "AI Governance",
|
||
"awooop": "AwoooP"
|
||
},
|
||
"locale": {
|
||
"switch": "Switch Language",
|
||
"zhTW": "繁體中文",
|
||
"en": "EN"
|
||
},
|
||
"demo": {
|
||
"title": "AWOOOI Demo",
|
||
"subtitle": "Visual Acceptance Test",
|
||
"mockMode": "MOCK MODE",
|
||
"spikeControls": "CPU Spike Demo Controls",
|
||
"spikeActive": "SPIKE ACTIVE",
|
||
"triggerSpike": "Spike {host}",
|
||
"clearSpike": "Clear Spike",
|
||
"liveDashboard": "Live Dashboard (SSE)",
|
||
"approvalCards": "HITL Approval Cards (CPO-107)",
|
||
"statusShowcase": "StatusOrb Showcase",
|
||
"lowRiskDemo": "LOW RISK - 1 second hold",
|
||
"highRiskDemo": "HIGH RISK - 1 second hold",
|
||
"criticalDemo": "CRITICAL + DESTRUCTIVE - 2 second hold + red glow",
|
||
"hitlRealApi": "HITL Multi-Sig (Real API)",
|
||
"addCritical": "+ Critical",
|
||
"addMedium": "+ Medium",
|
||
"creating": "Creating..."
|
||
},
|
||
"host": {
|
||
"devops": {
|
||
"name": "DevOps Vault",
|
||
"shortName": "DevOps"
|
||
},
|
||
"security": {
|
||
"name": "Kali Security Center",
|
||
"shortName": "Kali"
|
||
},
|
||
"k3s": {
|
||
"name": "K3s Master Node",
|
||
"shortName": "K3s"
|
||
},
|
||
"aiWeb": {
|
||
"name": "AI+Web Center",
|
||
"shortName": "AI+Web"
|
||
}
|
||
},
|
||
"dashboard": {
|
||
"title": "AI Center",
|
||
"subtitle": "AI-Powered Unified Operations View",
|
||
"liveStats": "Live Stats",
|
||
"activeNodes": "Active Nodes",
|
||
"pendingAlerts": "Pending Alerts",
|
||
"pendingApprovals": "Pending Approvals",
|
||
"overallStatus": "Overall Status",
|
||
"waitingData": "Waiting for data...",
|
||
"cpu": "CPU",
|
||
"memory": "MEM",
|
||
"baseline": "Baseline",
|
||
"baselineFormat": "(Baseline: {value}%)",
|
||
"criticality": "Criticality",
|
||
"systemStatus": "System Status",
|
||
"eventStream": "Event Stream",
|
||
"aiAgent": "AI Agent",
|
||
"globalPulse": "Global Pulse",
|
||
"liveUpdates": "Live Updates",
|
||
"loadingMetrics": "Loading metrics...",
|
||
"metricsError": "Failed to load metrics",
|
||
"flow": {
|
||
"alert": "Alert",
|
||
"detection": "AI Detection",
|
||
"analysis": "AI Analysis",
|
||
"proposal": "Proposal",
|
||
"approval": "Awaiting Auth",
|
||
"execution": "Execution",
|
||
"resolved": "Resolved"
|
||
},
|
||
"activeIncidents": "Active Incidents",
|
||
"serviceHealth": "Service Health",
|
||
"todayIncidents": "Today Incidents",
|
||
"operations24h": "24h Operations",
|
||
"operationsTotal": "{total} total",
|
||
"autoRemediationRate": "Auto Remediation",
|
||
"mttrAvg": "MTTR Avg",
|
||
"stable": "Stable",
|
||
"normal": "Normal",
|
||
"openclawEngine": "OPENCLAW COGNITIVE ENGINE",
|
||
"infrastructure": "INFRASTRUCTURE",
|
||
"podHealth": "POD Health",
|
||
"allRunning": "All Running",
|
||
"servicesUp": "Services Up",
|
||
"monitoringTools": "Monitoring Tools",
|
||
"monitoringStatus": {
|
||
"up": "OK",
|
||
"down": "Down",
|
||
"unknown": "Unknown",
|
||
"firing": "firing",
|
||
"alert": "alerts"
|
||
},
|
||
"connectionError": "Connection failed",
|
||
"metaVersion": "Version",
|
||
"metaStats": "Stats",
|
||
"metaUpdatedAt": "Updated",
|
||
"tabs": {
|
||
"overview": "Overview",
|
||
"alerts": "Alerts & Approvals",
|
||
"stream": "Activity Stream",
|
||
"disposition": "Disposition Stats"
|
||
},
|
||
"alertEvents": "Alert Events",
|
||
"noActiveAlerts": "No active alerts",
|
||
"pendingApprovalsTitle": "Pending Approvals",
|
||
"noPendingApprovals": "No pending approvals",
|
||
"approve": "Approve",
|
||
"reject": "Reject",
|
||
"activityStream": "System Activity Stream",
|
||
"sseConnected": "SSE Connected",
|
||
"sseDisconnected": "Disconnected",
|
||
"waitingEvents": "Waiting for events...",
|
||
"statusLabel": "Status",
|
||
"hostsLabel": "Hosts",
|
||
"eventsCount": "{count} events",
|
||
"noDispositionData": "No disposition data available",
|
||
"totalDispositions": "Total Dispositions",
|
||
"autoRate": "Automation Rate",
|
||
"humanRate": "Human Intervention Rate",
|
||
"autoRepairLabel": "Auto Repair",
|
||
"humanApprovedLabel": "Human Approved",
|
||
"manualResolvedLabel": "Manual Resolved",
|
||
"coldStartLabel": "Cold Start",
|
||
"dispositionBreakdown": "Disposition Breakdown",
|
||
"hostView": "Hosts",
|
||
"topoView": "Topology",
|
||
"waitingHostData": "Waiting for host data...",
|
||
"dashboardConnecting": "Dashboard API connecting...",
|
||
"alertBadge": "{count} alerts",
|
||
"alertBadgeZero": "0 alerts",
|
||
"awaitingConfirm": "Awaiting Confirmation",
|
||
"viewAllAlerts": "View All Alerts",
|
||
"showingLatestIncidents": "Showing latest {shown} of {total}; open Alerts for the full list",
|
||
"relatedIncidents": "Related Incidents",
|
||
"noRelatedIncidents": "No related incidents",
|
||
"viewAllAuth": "View All Authorizations",
|
||
"viewAllReport": "View Full Report",
|
||
"aiModelStatus": "AI Model Status",
|
||
"aiModelRoles": {
|
||
"primary": "Primary",
|
||
"backup": "Backup",
|
||
"local": "Local",
|
||
"agent": "Agent",
|
||
"provider": "Provider"
|
||
},
|
||
"loading": "Loading...",
|
||
"trendUp": "↑{pct}%",
|
||
"searchPlaceholderShort": "Search...",
|
||
"cotTitle": "Reasoning Timeline",
|
||
"cotNoEvents": "Waiting for reasoning data...",
|
||
"cotReasoning": "Reasoning",
|
||
"cotConfidence": "Confidence",
|
||
"cotProvider": "Model",
|
||
"cotLatency": "Latency",
|
||
"cotTools": "Tool Calls",
|
||
"cotClickHint": "Click an event to view reasoning details",
|
||
"byAnomalyTitle": "Anomaly Type Distribution Top 5",
|
||
"byAnomalyAutoRate": "Auto {pct}%",
|
||
"mttrTitle": "MTTR Overview",
|
||
"mttrUnit": "min",
|
||
"mttrNoData": "No MTTR data yet",
|
||
"automationEvidence": {
|
||
"title": "AI Automation Evidence",
|
||
"claimReady": "Loop claim ready",
|
||
"claimBlocked": "Gaps remain",
|
||
"claimChecking": "Quality pending",
|
||
"loading": "Loading AI automation evidence...",
|
||
"empty": "No AI automation evidence is available yet.",
|
||
"missingApiBase": "NEXT_PUBLIC_API_URL is not set",
|
||
"loadFailed": "Load failed",
|
||
"error": "Evidence chain failed to load: {error}",
|
||
"sourcePersisted": "Source persisted",
|
||
"sourceDetail": "{missing} missing refs, latest {latest}",
|
||
"recurrence": "Recurrence",
|
||
"recurrenceDetail": "{duplicates} duplicate events, {workItems} work items",
|
||
"mcpInvestigation": "MCP investigation",
|
||
"mcpDetail": "{success} success / {failed} failed, latest {server}",
|
||
"autoRepair": "Auto repair",
|
||
"qualityDetail": "Average {score}, red {red}",
|
||
"qualityPending": "Quality summary is still calculating; other evidence is already shown",
|
||
"executionBackendDetail": "Execution evidence: operations {operations} (effective {effective} / audit {auditOnly}), auto-repair {autoRepair}; Ansible audit {ansibleRecords}, candidates {ansibleCandidates}, check-mode {checkMode}, apply {apply}, pending wiring {pending}; runtime {runtime}",
|
||
"ansibleRuntimeReady": "check-mode ready",
|
||
"ansibleRuntimeBlocked": "not ready: {blockers}",
|
||
"humanGap": "Human gap",
|
||
"humanGapDetail": "{gate} missing {count}",
|
||
"humanGapClear": "Quality summary has no top gap",
|
||
"modelRoute": "Model route",
|
||
"routeDetail": "{model}; current {selected}; {primary}={primaryStatus}; fallback {fallback}",
|
||
"routeReasonSeparator": "; ",
|
||
"routeReason": "Reason: {reason}",
|
||
"routeErrorDetail": "Route check failed: {error}",
|
||
"routeNoFallback": "none",
|
||
"routeHealth": {
|
||
"healthy": "healthy",
|
||
"slow": "slow",
|
||
"degraded": "degraded",
|
||
"offline": "offline",
|
||
"not_checked": "standby",
|
||
"unknown": "unknown"
|
||
},
|
||
"topGap": "Largest current gap: {gate}, {count} items."
|
||
}
|
||
},
|
||
"openclaw": {
|
||
"name": "OpenClaw",
|
||
"monitoring": "Monitoring",
|
||
"statusOk": "OK",
|
||
"statusWarning": "WARNING",
|
||
"messageOk": "All systems operational. No action required.",
|
||
"messageWarning": "{host} status abnormal. Recommend checking related services."
|
||
},
|
||
"ai": {
|
||
"title": "AI Decision Engine",
|
||
"intercepting": "[SYS] Intercepting anomaly signals...",
|
||
"analyzing": "OpenClaw analyzing blast radius...",
|
||
"calculating": "Calculating risk matrix & approval threshold...",
|
||
"generating": "Generating remediation script...",
|
||
"complete": "Analysis complete. Approval card created.",
|
||
"processingAlert": "Processing alert...",
|
||
"analysisComplete": "Analysis complete",
|
||
"patrolling": "Patrolling...",
|
||
"standby": "STANDBY",
|
||
"processFlow": "AI Decision Flow",
|
||
"processing": "Processing"
|
||
},
|
||
"agent": {
|
||
"title": "AI Agent",
|
||
"state": "State",
|
||
"idle": "Idle",
|
||
"standby": "Standby",
|
||
"patrolling": "Patrolling",
|
||
"intercepting": "Intercepting",
|
||
"analyzing": "Analyzing",
|
||
"generating": "Generating",
|
||
"complete": "Complete",
|
||
"executing": "Executing",
|
||
"waitingApproval": "Awaiting Approval",
|
||
"error": "Error",
|
||
"lastCheck": "Last check"
|
||
},
|
||
"metrics": {
|
||
"title": "Global Pulse",
|
||
"realtime": "Real-time",
|
||
"rps": "Requests/sec",
|
||
"errorRate": "Error Rate",
|
||
"p99Latency": "P99 Latency",
|
||
"aiSuccess": "AI Success"
|
||
},
|
||
"connection": {
|
||
"disconnected": "Disconnected",
|
||
"connecting": "Connecting...",
|
||
"subscribing": "Subscribing...",
|
||
"connected": "Live",
|
||
"streaming": "Streaming",
|
||
"reconnecting": "Reconnecting...",
|
||
"error": "Connection Error",
|
||
"mockMode": "MOCK"
|
||
},
|
||
"terminal": {
|
||
"title": "AWOOOI Terminal",
|
||
"version": "Version",
|
||
"waiting": "> Waiting for command...",
|
||
"initiate": "INITIATE SYNC",
|
||
"executing": ">_ EXECUTING...",
|
||
"events": "{count} events",
|
||
"stream": "STREAM: /agent/thinking",
|
||
"waitingForData": "Waiting for decision chain data...",
|
||
"steps": "Steps",
|
||
"streaming": "Streaming",
|
||
"paused": "Paused",
|
||
"blastRadius": "[ BLAST RADIUS ]",
|
||
"rootCauseChain": "[ ROOT CAUSE CHAIN ]",
|
||
"upstreamImpact": "[ UPSTREAM IMPACT ]",
|
||
"downstreamDependencies": "[ DOWNSTREAM DEPENDENCIES ]",
|
||
"dependsOn": "depends on",
|
||
"calls": "calls",
|
||
"finopsAnalysis": "[ FINOPS ANALYSIS ]",
|
||
"wastedPerMonth": "Wasted/mo",
|
||
"realizable": "Realizable",
|
||
"freed": "Freed",
|
||
"connecting": "Connecting...",
|
||
"connected": "Connected",
|
||
"streamComplete": "Stream complete",
|
||
"streamAborted": "Stream aborted",
|
||
"stop": "STOP",
|
||
"clear": "CLEAR"
|
||
},
|
||
"omniTerminal": {
|
||
"title": "OMNI-TERMINAL",
|
||
"fullTitle": "AWOOOI // OMNI-TERMINAL",
|
||
"shortcut": "⌘J",
|
||
"open": "Open Terminal",
|
||
"close": "Close Terminal",
|
||
"inputPlaceholder": "Enter command...",
|
||
"inputPlaceholderFull": "Enter command or ask AI... (e.g., /approval list)",
|
||
"sseLive": "SSE Live",
|
||
"offline": "Offline",
|
||
"system": "[SYS]",
|
||
"agent": "[AI]",
|
||
"user": "$",
|
||
"unknownComponent": "Unknown Component",
|
||
"executing": "Executing",
|
||
"completed": "Completed",
|
||
"failed": "Failed"
|
||
},
|
||
"nuclearKey": {
|
||
"authorize": "Authorize Execution",
|
||
"authorized": "Authorized",
|
||
"authorizing": "Authorizing...",
|
||
"holdToAuthorize": "Hold to authorize...",
|
||
"holdHintMobile": "Press and hold to authorize",
|
||
"holdHintDesktop": "Hold Y key or click and hold to authorize",
|
||
"keepHolding": "Keep holding to authorize...",
|
||
"highBlastRadius": "This action has a HIGH blast radius",
|
||
"executionAuthorized": "Execution Authorized & Completed",
|
||
"executionFailed": "Execution Failed",
|
||
"riskLevel": {
|
||
"low": "LOW",
|
||
"medium": "MEDIUM",
|
||
"high": "HIGH",
|
||
"critical": "CRITICAL"
|
||
}
|
||
},
|
||
"incident": {
|
||
"title": "Incident Management",
|
||
"activeIncidents": "Active Incidents",
|
||
"noActiveIncidents": "No active incidents",
|
||
"systemStable": "System Stable",
|
||
"activeAlerts": "active alerts",
|
||
"signals": "signals",
|
||
"proposals": "proposals",
|
||
"affectedServices": "Affected Services",
|
||
"emptyState": "No active incidents",
|
||
"emptyStateDescription": "All systems operational",
|
||
"status": {
|
||
"investigating": "Investigating",
|
||
"mitigating": "Mitigating",
|
||
"resolved": "Resolved",
|
||
"closed": "Closed"
|
||
},
|
||
"severity": {
|
||
"P0": "P0 (Critical)",
|
||
"P1": "P1 (High)",
|
||
"P2": "P2 (Warning)",
|
||
"P3": "P3 (Info)"
|
||
},
|
||
"generateProposal": "Generate Proposal",
|
||
"viewDetails": "View Details",
|
||
"card": {
|
||
"executing": "Executing...",
|
||
"approved": "[ APPROVED ]",
|
||
"rejected": "[ REJECTED ]",
|
||
"error": "Error",
|
||
"timeout": "Timeout",
|
||
"retry": "Retry",
|
||
"timeoutMessage": "Execution timeout, please check API logs",
|
||
"checkApiLogs": "Please check API logs",
|
||
"analyzing": "Brain analyzing...",
|
||
"waitingDecision": "Waiting for decision",
|
||
"authorizeExecution": "Authorize execution",
|
||
"rejectProposal": "Reject proposal",
|
||
"aiExecuting": ">_ AI Executing (Tier 1)",
|
||
"brainAnalyzing": ">_ Brain analyzing...",
|
||
"decisionReady": ">_ Decision ready (Tier {tier})",
|
||
"waitingCommander": ">_ Awaiting commander approval (Tier {tier})",
|
||
"suggestedAction": "> Suggested action:",
|
||
"authorize": "Authorize",
|
||
"reject": "Reject",
|
||
"anomaly": "anomaly",
|
||
"affectedServices": "Affected Services",
|
||
"signalCount": "Signals",
|
||
"statusLabel": "Status",
|
||
"aiProposal": "AI Proposal",
|
||
"aiProposalPreview": "AI Proposal: {action}",
|
||
"flowCurrentLabel": "Current stage",
|
||
"flowNextLabel": "Next step",
|
||
"flowSourceLabel": "Source",
|
||
"flowSourceTruthChain": "truth-chain / ADR-100",
|
||
"flowSourceHeuristic": "incident status heuristic",
|
||
"flowVerdictLabel": "Verdict",
|
||
"flowEvidenceMcp": "MCP {count}",
|
||
"flowEvidenceOps": "Ops {count}",
|
||
"flowEvidenceKm": "KM {count}",
|
||
"flowEvidenceRepair": "Repair {count}",
|
||
"flowMcpDetail": "MCP detail: Gateway success {success} / failed {failed} / blocked {blocked}; first-class {firstClass}; legacy {legacy}; tools {tools}",
|
||
"flowExecutionDetail": "Execution detail: Executor {executor}; Operation {operation} / {status}; Ansible {ansible}; PlayBook {playbook}",
|
||
"flowExecutionAnsibleConsidered": "considered ({records} records / {candidates} candidates)",
|
||
"flowExecutionAnsibleNotUsed": "not used: {reason}",
|
||
"flowExecutionAnsibleEmpty": "--",
|
||
"flowSourceRefsDetail": "Source detail: Inbound {inbound} / Outbound {outbound}; Alert {alert}; Sentry {sentry}; SigNoz {signoz}; linked {linked} / candidate {candidate} ({correlation}); latest {latest}",
|
||
"flowSourceCorrelationStatus": {
|
||
"linked": "Directly linked",
|
||
"candidateFound": "Candidate found",
|
||
"providerFreshNoMatch": "Provider fresh, no match",
|
||
"missing": "No match yet",
|
||
"noIncidentContext": "Missing incident context",
|
||
"fetchFailed": "Read failed"
|
||
},
|
||
"flowTruthChainCurrent": "{stage} / {status}",
|
||
"flowComplete": "Complete",
|
||
"flowStages": {
|
||
"alert": "Alert received",
|
||
"detection": "AI detection",
|
||
"analysis": "AI analysis",
|
||
"proposal": "Proposal generated",
|
||
"approval": "Waiting approval",
|
||
"execution": "Repair execution",
|
||
"resolved": "Complete"
|
||
},
|
||
"processingTimeline": "Processing Timeline",
|
||
"timelineLoading": "Loading processing timeline...",
|
||
"timelineEvents": "Event Details",
|
||
"timelineSource": "Source",
|
||
"timelineRoute": "MCP",
|
||
"timelineWrites": "Writes"
|
||
}
|
||
},
|
||
"status": {
|
||
"idle": "Idle",
|
||
"thinking": "Thinking",
|
||
"syncing": "Syncing",
|
||
"executing": "Executing",
|
||
"waitingApproval": "Waiting Approval",
|
||
"error": "Error",
|
||
"healthy": "Healthy",
|
||
"warning": "Warning",
|
||
"critical": "Critical",
|
||
"degraded": "Degraded",
|
||
"unhealthy": "Unhealthy"
|
||
},
|
||
"approval": {
|
||
"title": "Approval Request",
|
||
"card": "Approval Card",
|
||
"approve": "APPROVE",
|
||
"reject": "REJECT",
|
||
"holdToApprove": "HOLD TO APPROVE",
|
||
"holdToConfirm": "HOLD TO CONFIRM",
|
||
"holdToSign": "HOLD TO SIGN",
|
||
"confirming": "CONFIRMING...",
|
||
"signing": "SIGNING...",
|
||
"needMore": "NEED {count} MORE",
|
||
"confirmDestructive": "CONFIRM DESTRUCTIVE",
|
||
"approveDestructive": "APPROVE (DESTRUCTIVE)",
|
||
"pendingApprovals": "Pending Approvals",
|
||
"riskLevel": "Risk Level",
|
||
"signatures": "SIGNATURES",
|
||
"requiredSignatures": "Required Signatures",
|
||
"currentSignatures": "Current Signatures",
|
||
"requestedBy": "Requested by",
|
||
"expiresAt": "Expires At",
|
||
"holdHint": "Hold button for {seconds}s to {action}",
|
||
"actionApprove": "approve",
|
||
"actionConfirm": "confirm destructive action",
|
||
"actionSign": "sign",
|
||
"waitingSecondSig": "Waiting for second approver",
|
||
"signedBy": "Signed by {name}",
|
||
"signedAt": "at {time}",
|
||
"signSuccess": "Signed successfully",
|
||
"executionTriggered": "Execution triggered",
|
||
"rejectSuccess": "Rejected",
|
||
"rejectReason": "Rejection reason",
|
||
"enterReason": "Enter rejection reason...",
|
||
"signComment": "Sign comment (optional)",
|
||
"enterComment": "Enter comment...",
|
||
"noApprovals": "No pending approvals",
|
||
"fetchError": "Failed to fetch approvals",
|
||
"noPendingApprovals": "No pending approvals",
|
||
"selectApproval": "Select an approval to view details",
|
||
"backToList": "Back to list",
|
||
"previousApproval": "Previous",
|
||
"nextApproval": "Next",
|
||
"holdToApproveHint": "Hold button to approve or reject",
|
||
"swipeHint": "Swipe left for details, swipe right to go back",
|
||
"holdYToApprove": "Hold Y to approve (2s)",
|
||
"pressNToReject": "Press N to reject",
|
||
"justNow": "just now",
|
||
"minutesAgo": "{count}m ago",
|
||
"hoursAgo": "{count}h ago",
|
||
"daysAgo": "{count}d ago",
|
||
"batch": {
|
||
"title": "Batch Mode",
|
||
"bulkApprove": "Accept All",
|
||
"sequential": "Review One by One",
|
||
"criticalOnly": "CRITICAL Only",
|
||
"eligible": "eligible",
|
||
"items": "items",
|
||
"securityNote": "CRITICAL risk and DESTRUCTIVE data impact items require individual review."
|
||
}
|
||
},
|
||
"risk": {
|
||
"low": "LOW RISK",
|
||
"medium": "MEDIUM RISK",
|
||
"high": "HIGH RISK",
|
||
"critical": "CRITICAL"
|
||
},
|
||
"dryRun": {
|
||
"title": "Dry-Run",
|
||
"validation": "DRY-RUN VALIDATION",
|
||
"passed": "Passed",
|
||
"failed": "Failed",
|
||
"checks": "Checks",
|
||
"rbac": "RBAC Check",
|
||
"syntax": "Syntax Check",
|
||
"resource": "Resource Check",
|
||
"replicaCount": "Replica Count",
|
||
"backupAvailable": "Backup Available",
|
||
"clusterAdmin": "cluster-admin",
|
||
"dbAdmin": "db-admin",
|
||
"deploymentAdmin": "deployment-admin",
|
||
"noRecentBackup": "No recent backup!",
|
||
"ok": "OK"
|
||
},
|
||
"blastRadius": {
|
||
"title": "BLAST RADIUS",
|
||
"affectedPods": "AFFECTED PODS",
|
||
"estimatedDowntime": "EST. DOWNTIME",
|
||
"relatedServices": "RELATED SERVICES",
|
||
"dataImpact": "DATA IMPACT",
|
||
"none": "NONE",
|
||
"readOnly": "READ ONLY",
|
||
"write": "WRITE",
|
||
"destructive": "DESTRUCTIVE"
|
||
},
|
||
"graphRag": {
|
||
"title": "Topology Analysis",
|
||
"blastRadius": "Blast Radius",
|
||
"rootCause": "Root Cause",
|
||
"upstreamImpact": "Upstream Impact",
|
||
"downstreamChain": "Downstream Chain",
|
||
"dependsOn": "depends on",
|
||
"calls": "calls",
|
||
"affectedCount": "Affected Count",
|
||
"probableRootCauses": "Probable Root Causes"
|
||
},
|
||
"finops": {
|
||
"title": "Cost Analysis",
|
||
"totalWasted": "Monthly Waste",
|
||
"realizableSavings": "Realizable Savings",
|
||
"freedResources": "Freed Resources",
|
||
"annualProjection": "Annual Projection",
|
||
"topActions": "Top Actions",
|
||
"orphanedPvc": "Orphaned PVC",
|
||
"zombiePod": "Zombie Pod",
|
||
"overProvisioned": "Over-provisioned"
|
||
},
|
||
"trustEngine": {
|
||
"title": "Trust Engine",
|
||
"trustScore": "Trust Score",
|
||
"progressive": "Progressive Autonomy",
|
||
"approved": "Approved",
|
||
"rejected": "Rejected",
|
||
"neverDowngrade": "Never Downgrade"
|
||
},
|
||
"multiSig": {
|
||
"title": "Multi-Sig",
|
||
"signature": "Signature",
|
||
"signedBy": "Signed By",
|
||
"signedAt": "Signed At",
|
||
"voided": "Voided",
|
||
"toctouWarning": "State Changed Warning"
|
||
},
|
||
"privacy": {
|
||
"title": "Privacy Shield",
|
||
"redacted": "Redacted",
|
||
"piiDetected": "PII Detected"
|
||
},
|
||
"mockData": {
|
||
"deletePod": "Delete Pod: nginx-frontend-7d4b8c9f5-xk2m3",
|
||
"deletePodDesc": "Clean up unresponsive frontend Pod, ReplicaSet will auto-rebuild",
|
||
"dropTable": "DROP TABLE: user_sessions",
|
||
"dropTableDesc": "Clear all user sessions, will force logout all users",
|
||
"scaleDeployment": "Scale Deployment: api-backend",
|
||
"scaleDeploymentDesc": "Scale from 3 to 5 replicas for increased traffic",
|
||
"testActions": {
|
||
"lowAction": "Scale deployment api-backend to 5 replicas",
|
||
"lowDesc": "Increase backend replicas to handle traffic growth",
|
||
"mediumAction": "kubectl delete pod nginx-ingress-7d6f8c9b5-abc12",
|
||
"mediumDesc": "Clean up unresponsive frontend Pod, ReplicaSet will auto-rebuild",
|
||
"criticalAction": "DROP TABLE user_sessions",
|
||
"criticalDesc": "Clear all user sessions to force re-login. This will affect all online users."
|
||
}
|
||
},
|
||
"actionLog": {
|
||
"title": "Action Log",
|
||
"subtitle": "K8s Operation Execution Audit Trail",
|
||
"noLogs": "No execution records",
|
||
"loading": "Loading...",
|
||
"fetchError": "Failed to fetch audit logs",
|
||
"columns": {
|
||
"time": "Execution Time",
|
||
"operation": "Operation Type",
|
||
"target": "Target Resource",
|
||
"namespace": "Namespace",
|
||
"status": "Status",
|
||
"duration": "Duration",
|
||
"executor": "Executor"
|
||
},
|
||
"operations": {
|
||
"DELETE_POD": "Delete Pod",
|
||
"RESTART_DEPLOYMENT": "Restart Deployment",
|
||
"SCALE_DEPLOYMENT": "Scale Deployment"
|
||
},
|
||
"status": {
|
||
"success": "Success",
|
||
"failure": "Failure"
|
||
},
|
||
"stats": {
|
||
"title": "Statistics",
|
||
"total": "Total Executions",
|
||
"successRate": "Success Rate",
|
||
"avgDuration": "Avg Duration",
|
||
"last24h": "Last 24 Hours"
|
||
},
|
||
"dryRun": {
|
||
"passed": "Dry-Run Passed",
|
||
"failed": "Dry-Run Failed"
|
||
},
|
||
"pagination": {
|
||
"page": "Page {current} of {total}",
|
||
"prev": "Previous",
|
||
"next": "Next"
|
||
}
|
||
},
|
||
"placeholder": {
|
||
"underConstruction": "Under Construction",
|
||
"authorizations": "[ AUTHORIZATIONS MODULE UNDER CONSTRUCTION ]",
|
||
"knowledgeBase": "[ KNOWLEDGE BASE MODULE UNDER CONSTRUCTION ]",
|
||
"settings": "[ SETTINGS MODULE UNDER CONSTRUCTION ]"
|
||
},
|
||
"footer": {
|
||
"copyright": "© 2026 岑洋國際行銷有限公司",
|
||
"poweredBy": "Powered by leWOOOgo Engine"
|
||
},
|
||
"errorBoundary": {
|
||
"systemFailure": "[SYSTEM FAILURE]",
|
||
"criticalError": "Critical UI rendering error detected. Auto-healing attempts exhausted.",
|
||
"escalating": "Escalating to OpenClaw AIOps Agent...",
|
||
"forceRestart": "FORCE MANUAL RESTART",
|
||
"detectingAnomaly": "[ DETECTING ANOMALY ]",
|
||
"autoHealingAttempt": "Initiating Auto-Healing Protocol (Attempt {attempt}/3)"
|
||
},
|
||
"errors": {
|
||
"title": "Error Tracking",
|
||
"subtitle": "Sentry Error Tracking + OpenClaw AI Analysis",
|
||
"overview": "Error Overview",
|
||
"recentIssues": "Recent Issues",
|
||
"errorTrend": "Error Trend",
|
||
"noData": "No error data",
|
||
"noIssues": "No issues at the moment",
|
||
"noTrendData": "No trend data",
|
||
"unresolvedIssues": "Unresolved Issues",
|
||
"errors24h": "Errors (24h)",
|
||
"criticalErrors": "Critical Errors",
|
||
"totalIssues": "Total Issues",
|
||
"totalErrors": "Total Errors ({period})",
|
||
"projects": "Projects",
|
||
"aiAnalyze": "AI Analyze",
|
||
"aiAnalysis": "AI Analysis Result",
|
||
"analyzing": "Analyzing...",
|
||
"rootCause": "Root Cause",
|
||
"fixSummary": "Fix Recommendation",
|
||
"category": "Category",
|
||
"confidence": "Confidence",
|
||
"loading": "Loading...",
|
||
"refresh": "Refresh",
|
||
"sentryDashboard": "Sentry Dashboard",
|
||
"footerInfo": "Data from Sentry Self-Hosted | AI Analysis: OpenClaw | Auto-refresh: 60s",
|
||
"timeAgo": {
|
||
"minutes": "{count}m ago",
|
||
"hours": "{count}h ago",
|
||
"days": "{count}d ago"
|
||
},
|
||
"uxAudit": {
|
||
"title": "UX Audit",
|
||
"noData": "No Session Replay data",
|
||
"replaysWithErrors": "Replays with Errors",
|
||
"uiErrors": "UI Errors",
|
||
"rageClicks": "Rage Clicks",
|
||
"deadClicks": "Dead Clicks",
|
||
"recentReplays": "Recent Replays",
|
||
"recentUIErrors": "Recent UI Errors",
|
||
"replayWithErrors": "Replay with {count} errors",
|
||
"occurrences": "{count} occurrences",
|
||
"viewDashboard": "View Replay Dashboard",
|
||
"health": {
|
||
"good": "Good",
|
||
"moderate": "Moderate",
|
||
"poor": "Poor"
|
||
}
|
||
}
|
||
},
|
||
"alerts": {
|
||
"autoRefresh": "Auto-refresh every {seconds}s",
|
||
"incidentCount": "{count, plural, one {# incident} other {# incidents}}",
|
||
"pageSummary": "Showing {from}-{to} of {total}",
|
||
"statusChainWindow": "AI flow evidence: {loaded}/{shown} on this page connected to truth-chain",
|
||
"previousPage": "Previous",
|
||
"nextPage": "Next",
|
||
"pageIndicator": "Page {page} of {totalPages}",
|
||
"sourceCoverageTitle": "Source Dossier Coverage",
|
||
"sourceCoverageSubtitle": "DB persistence and Sentry / SigNoz references across the latest {limit} inbound source events",
|
||
"sourceCoverageError": "Source dossier coverage failed to load: {error}",
|
||
"sourceCoverageWithRefs": "With refs",
|
||
"sourceCoverageMissing": "Missing refs",
|
||
"sourceCoverageAlert": "Alert refs",
|
||
"sourceCoverageSentry": "Sentry refs",
|
||
"sourceCoverageSigNoz": "SigNoz refs",
|
||
"sourceCoverageRatio": "source refs coverage {ratio} / total {total}",
|
||
"sourceCoverageProvider": "{provider}: total {total}, missing {missing}, Sentry {sentry}, SigNoz {signoz}, latest {latest} ({age})",
|
||
"sourceCoverageProviderWindow": "{provider} window: total {total}, with refs {withRefs}, missing {missing}, latest {latest} ({age})",
|
||
"sourceCoverageFreshness": "{provider} latest {latest} ({age})",
|
||
"sourceCoverageFresh": "fresh",
|
||
"sourceCoverageStaleHours": "stale {hours}h",
|
||
"sourceCoverageStaleDays": "stale {days}d",
|
||
"sourceCoverageNoEvents": "no events"
|
||
},
|
||
"navSection": {
|
||
"aiCore": "AI Core",
|
||
"monitoring": "Monitoring & Security",
|
||
"ops": "Operations",
|
||
"knowledge": "Knowledge & Tools"
|
||
},
|
||
"sidebar": {
|
||
"expand": "Expand sidebar",
|
||
"collapse": "Collapse sidebar"
|
||
},
|
||
"settings": {
|
||
"title": "Settings",
|
||
"appearance": "Appearance",
|
||
"appearanceDesc": "Theme, fonts, density",
|
||
"appearanceSettings": "Appearance Settings",
|
||
"language": "Language",
|
||
"languageDesc": "Interface language",
|
||
"languageSettings": "Language Settings",
|
||
"notify": "Notifications",
|
||
"notifyDesc": "Telegram / browser notification preferences",
|
||
"notifySettings": "Notification Settings",
|
||
"system": "System Info",
|
||
"systemDesc": "Version & API endpoints",
|
||
"systemSettings": "System Info",
|
||
"compactMode": "Compact Mode",
|
||
"compactModeDesc": "Reduce spacing, show more content",
|
||
"designSystem": "Design System",
|
||
"designSystemValue": "Nothing.tech Pure White Industrial (fixed)",
|
||
"themeColor": "Theme Color",
|
||
"themeColorValue": "OpenClaw Blue + Orange Accent (fixed)",
|
||
"browserNotify": "Browser Push Notifications",
|
||
"browserNotifyDesc": "Show system notification on new Incident",
|
||
"p0Only": "P0 CRITICAL Only",
|
||
"p0OnlyDesc": "Filter low-severity alerts to reduce noise",
|
||
"telegramNotify": "Telegram Notifications",
|
||
"telegramNotifyDesc": "Pushed by OpenClaw Bot (requires backend config)",
|
||
"backendConfig": "Backend Config",
|
||
"frontendVersion": "Frontend Version",
|
||
"apiEndpoint": "API Endpoint",
|
||
"notConfigured": "(not configured)",
|
||
"phase": "Phase",
|
||
"save": "Save Settings",
|
||
"saved": "Saved",
|
||
"zhTW": "繁體中文",
|
||
"zhTWSub": "Traditional Chinese",
|
||
"en": "EN",
|
||
"enSub": "English (US)"
|
||
},
|
||
"autoRepair": {
|
||
"subtitle": "High-quality Playbook auto-execution · Risk ≤ MEDIUM · Success ≥ 95%",
|
||
"approvedPlaybooks": "Approved Playbooks",
|
||
"highQualityPlaybooks": "High-Quality Playbooks",
|
||
"highQualitySub": "Success ≥ 95% · Runs ≥ 10",
|
||
"totalExecutions": "Total Executions",
|
||
"overallSuccessRate": "Overall Success Rate",
|
||
"eligible": "✓ Auto-repair available",
|
||
"notEligible": "No high-quality Playbook yet",
|
||
"ready": "Auto-repair Ready",
|
||
"notReady": "Auto-repair Not Ready",
|
||
"readyDesc": "{count} high-quality Playbooks available",
|
||
"notReadyDesc": "Need at least 1 high-quality Playbook (success ≥ 95%, runs ≥ 10)",
|
||
"incidentEval": "Active Incident Evaluation (P1/P2)",
|
||
"canAutoRepair": "Can auto-repair",
|
||
"notEligibleShort": "Not eligible",
|
||
"riskLevel": "Risk Level",
|
||
"successRate": "Success Rate",
|
||
"execCount": "Executions",
|
||
"decisionReason": "Decision Reason",
|
||
"execSuccess": "Success ({ms}ms)",
|
||
"execFailed": "Failed: {error}",
|
||
"executing": "Executing...",
|
||
"execute": "Execute Repair",
|
||
"noEligible": "No incidents eligible for auto-repair",
|
||
"dispositionAuto": "Auto Repair",
|
||
"dispositionHuman": "Human Approved",
|
||
"dispositionManual": "Manual Resolved",
|
||
"dispositionCold": "Cold Start Trust"
|
||
},
|
||
"openclawPanel": {
|
||
"patrolling": "[AGENT] patrolling...",
|
||
"intercepting": "[SYS] Intercepting anomaly...",
|
||
"analyzing": "[SYS] Analyzing blast radius...",
|
||
"generating": "[SYS] Generating proposed action...",
|
||
"complete": "[SYS] Analysis complete"
|
||
},
|
||
"knowledgeBase": {
|
||
"title": "Knowledge Base",
|
||
"searchPlaceholder": "Search knowledge entries...",
|
||
"allCategories": "All",
|
||
"noResults": "No knowledge entries found",
|
||
"createEntry": "New Entry",
|
||
"viewCount": "views",
|
||
"relatedPlaybook": "Related Playbook",
|
||
"relatedIncident": "Related Incident",
|
||
"approve": "Approve",
|
||
"approving": "Approving...",
|
||
"archive": "Archive",
|
||
"archiving": "Archiving...",
|
||
"status": {
|
||
"draft": "Draft",
|
||
"review": "In Review",
|
||
"approved": "Approved",
|
||
"archived": "Archived",
|
||
"published": "Published"
|
||
},
|
||
"type": {
|
||
"incident_case": "Incident Case",
|
||
"runbook": "Runbook",
|
||
"best_practice": "Best Practice",
|
||
"postmortem": "Postmortem",
|
||
"auto_runbook": "Auto Runbook",
|
||
"anti_pattern": "Anti-Pattern"
|
||
},
|
||
"source": {
|
||
"ai_extracted": "AI Extracted",
|
||
"human": "Manual"
|
||
},
|
||
"category": {
|
||
"infrastructure": "Infrastructure",
|
||
"application": "Application",
|
||
"ai_system": "AI System",
|
||
"security": "Security / Compliance"
|
||
},
|
||
"filterByType": "Filter by type",
|
||
"filterByStatus": "Filter by status",
|
||
"entries": "entries",
|
||
"empty": "No knowledge entries yet",
|
||
"emptyDescription": "Entries will be auto-extracted from incidents, or you can create them manually",
|
||
"semanticSearchPlaceholder": "Enter semantic search query...",
|
||
"semanticOn": "Semantic",
|
||
"semanticOff": "Semantic",
|
||
"switchToSemantic": "Switch to semantic search (pgvector)",
|
||
"switchToKeyword": "Switch to keyword search",
|
||
"semanticSearchHint": "Enter a query to search with AI vector similarity"
|
||
},
|
||
"monitoring": {
|
||
"healthy": "Healthy",
|
||
"warning": "Warning",
|
||
"critical": "Critical",
|
||
"goldMetrics": "GOLD METRICS",
|
||
"hostStatus": "HOST STATUS (FOUR-HOST ARCHITECTURE)",
|
||
"serviceList": "SERVICE LIST",
|
||
"serviceName": "Service",
|
||
"status": "Status",
|
||
"latency": "Latency",
|
||
"uptime": "Uptime",
|
||
"lastCheck": "Last Check"
|
||
},
|
||
"services": {
|
||
"title": "Services",
|
||
"subtitle": "All services across hosts",
|
||
"name": "Service Name",
|
||
"host": "Host",
|
||
"status": "Status",
|
||
"cpu": "CPU%",
|
||
"ram": "RAM%",
|
||
"noServices": "No service data available",
|
||
"fetchError": "Failed to load services"
|
||
},
|
||
"topology": {
|
||
"title": "Topology",
|
||
"subtitle": "Service dependencies & health status",
|
||
"noHosts": "No host data available",
|
||
"fetchError": "Failed to load host data",
|
||
"services": "Services",
|
||
"cpu": "CPU",
|
||
"ram": "RAM",
|
||
"groupInfra": "Infrastructure",
|
||
"groupSecurity": "Security",
|
||
"groupK3s": "K3s Cluster",
|
||
"groupAiData": "AI/Data Center",
|
||
"allHealthy": "All Healthy",
|
||
"allReachable": "All Reachable",
|
||
"warning": "Warning",
|
||
"healthy": "Healthy",
|
||
"investigating": "Investigating",
|
||
"groupExternal": "External Services",
|
||
"hostDevops": "DevOps Vault",
|
||
"hostAiData": "AI+Web Hub",
|
||
"hostK3sMaster": "K3s Master",
|
||
"hostK3sWorker": "K3s Worker"
|
||
},
|
||
"notifications": {
|
||
"title": "Notifications",
|
||
"subtitle": "Notification channel settings",
|
||
"channel": "Channel",
|
||
"type": "Type",
|
||
"status": "Status",
|
||
"noChannels": "No notification channels",
|
||
"fetchError": "Failed to load notification channels"
|
||
},
|
||
"reports": {
|
||
"title": "Reports",
|
||
"subtitle": "Incident statistics summary",
|
||
"incidentSummary": "Incident Summary",
|
||
"resolutionStats": "Resolution Statistics",
|
||
"total": "Total",
|
||
"resolved": "Resolved",
|
||
"unresolved": "Unresolved",
|
||
"avgResolutionTime": "Avg Resolution Time",
|
||
"resolutionRate": "Resolution Rate",
|
||
"fetchError": "Failed to load report data",
|
||
"noData": "No statistics available",
|
||
"totalDispositions": "Total Dispositions",
|
||
"autoRate": "Automation Rate",
|
||
"humanRate": "Human Intervention Rate",
|
||
"autoRepair": "Auto Repair",
|
||
"humanApproved": "Human Approved",
|
||
"manualResolved": "Manual Resolved",
|
||
"coldStartTrust": "Cold Start Trust",
|
||
"dispositionBreakdown": "Disposition Breakdown",
|
||
"byAnomalyType": "By Anomaly Type",
|
||
"anomalyKey": "Anomaly Type"
|
||
},
|
||
"apm": {
|
||
"title": "APM",
|
||
"subtitle": "Application Performance Monitoring — Golden Signals",
|
||
"loading": "Loading...",
|
||
"metric": "Metric",
|
||
"value": "Value",
|
||
"status": "Status",
|
||
"openSignoz": "Open SigNoz",
|
||
"noData": "No APM data",
|
||
"noDataDescription": "APM integration pending, will display automatically after SignOz connects"
|
||
},
|
||
"apps": {
|
||
"title": "Applications",
|
||
"subtitle": "All host services status",
|
||
"loading": "Loading...",
|
||
"host": "Host",
|
||
"service": "Service",
|
||
"port": "Port",
|
||
"latency": "Latency",
|
||
"status": "Status",
|
||
"error": "Load failed",
|
||
"noApps": "No service data"
|
||
},
|
||
"billing": {
|
||
"title": "Usage",
|
||
"subtitle": "System operation usage statistics",
|
||
"loading": "Loading...",
|
||
"totalExecutions": "Total Executions",
|
||
"last24h": "Last 24h",
|
||
"successRate": "Success Rate",
|
||
"avgDuration": "Avg Duration",
|
||
"currentMonth": "This Month",
|
||
"totalUsage": "Total Usage",
|
||
"error": "Load failed",
|
||
"noData": "No usage data"
|
||
},
|
||
"compliance": {
|
||
"title": "Compliance",
|
||
"subtitle": "System governance & compliance status",
|
||
"loading": "Loading...",
|
||
"totalIncidents": "Total Incidents",
|
||
"resolvedRate": "Resolution Rate",
|
||
"approvedPlaybooks": "Playbooks",
|
||
"highQualityPlaybooks": "High-Quality Playbooks",
|
||
"executionSuccessRate": "Execution Success Rate",
|
||
"autoRepairEligible": "Auto-Repair Eligible",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"error": "Load failed",
|
||
"noData": "No compliance data"
|
||
},
|
||
"cost": {
|
||
"title": "Cost Analysis",
|
||
"subtitle": "AI execution efficiency stats",
|
||
"loading": "Loading...",
|
||
"totalProposals": "Total Proposals",
|
||
"executionRate": "Execution Rate",
|
||
"successRate": "Success Rate",
|
||
"avgEffectiveness": "Avg Effectiveness",
|
||
"error": "Load failed",
|
||
"noData": "No cost data"
|
||
},
|
||
"deployments": {
|
||
"title": "Deployments",
|
||
"subtitle": "K3s service deployment status",
|
||
"loading": "Loading...",
|
||
"service": "Service",
|
||
"port": "Port",
|
||
"latency": "Latency",
|
||
"status": "Status",
|
||
"host": "Host",
|
||
"error": "Load failed",
|
||
"noDeployments": "No deployment data",
|
||
"name": "Service Name",
|
||
"version": "Version",
|
||
"time": "Time",
|
||
"cicd": {
|
||
"title": "CI/CD Deployment Evidence",
|
||
"subtitle": "Deployment, test, and rollout-risk status from AwoooP audit data",
|
||
"visibleCount": "{count} items",
|
||
"loading": "Loading CI/CD evidence...",
|
||
"error": "Failed to load CI/CD evidence",
|
||
"empty": "No CI/CD evidence yet",
|
||
"emptyValue": "--",
|
||
"durationSeconds": "{seconds}s",
|
||
"durationNotRecorded": "Duration not recorded",
|
||
"openWorkflow": "Open workflow",
|
||
"status": {
|
||
"failed": "Failed",
|
||
"pending": "Needs attention",
|
||
"running": "Running",
|
||
"success": "Success"
|
||
},
|
||
"stage": {
|
||
"buildDeploy": "Build and deploy",
|
||
"codeReview": "Code review",
|
||
"postDeploy": "Post deploy",
|
||
"postDeployChecks": "Post deploy checks",
|
||
"rolloutRisk": "Rollout risk recovered",
|
||
"tests": "Tests"
|
||
}
|
||
}
|
||
},
|
||
"help": {
|
||
"title": "Help",
|
||
"subtitle": "System information",
|
||
"version": "Version Info",
|
||
"appVersion": "Application Version",
|
||
"platform": "Platform",
|
||
"docs": "Documentation",
|
||
"docsDescription": "Visit AWOOOI Docs for full documentation"
|
||
},
|
||
"security": {
|
||
"title": "Security",
|
||
"subtitle": "Errors & security event monitoring",
|
||
"loading": "Loading...",
|
||
"totalIssues": "Total Issues",
|
||
"criticalIssues": "Critical Issues",
|
||
"errorRate": "Error Rate",
|
||
"recentIssues": "Recent Issues",
|
||
"issue": "Issue",
|
||
"count": "Count",
|
||
"error": "Load failed",
|
||
"noData": "No security events"
|
||
},
|
||
"tickets": {
|
||
"title": "Tickets",
|
||
"subtitle": "Incident ticket tracking",
|
||
"loading": "Loading...",
|
||
"id": "Ticket ID",
|
||
"title_col": "Title",
|
||
"status": "Status",
|
||
"priority": "Priority",
|
||
"createdAt": "Created At",
|
||
"error": "Load failed",
|
||
"noTickets": "No tickets"
|
||
},
|
||
"users": {
|
||
"title": "Audit Log",
|
||
"subtitle": "K8s operation execution records",
|
||
"loading": "Loading...",
|
||
"totalExecutions": "Total Executions",
|
||
"successCount": "Success",
|
||
"failureCount": "Failures",
|
||
"successRate": "Success Rate",
|
||
"avgDuration": "Avg Duration",
|
||
"recentOps": "Recent Operations",
|
||
"operation": "Operation Type",
|
||
"namespace": "Namespace",
|
||
"result": "Result",
|
||
"time": "Time",
|
||
"error": "Load failed",
|
||
"noUsers": "No audit records",
|
||
"name": "Name",
|
||
"role": "Role",
|
||
"status": "Status"
|
||
},
|
||
"emptyState": {
|
||
"noData": "--",
|
||
"comingSoon": "Integration pending"
|
||
},
|
||
"drift": {
|
||
"title": "Config Drift Detection",
|
||
"subtitle": "GitOps Guardian — Detects drift between K8s actual state and Git YAML",
|
||
"scan": "Scan Now",
|
||
"scanning": "Scanning...",
|
||
"loading": "Loading...",
|
||
"noReports": "No drift reports yet",
|
||
"noReportsHint": "CronJob scans hourly automatically, or click \"Scan Now\" to trigger manually",
|
||
"noDrift": "No Drift",
|
||
"reportId": "Report ID",
|
||
"scannedAt": "Scanned At",
|
||
"namespace": "Namespace",
|
||
"triggeredBy": "Triggered By",
|
||
"highCount": "High",
|
||
"mediumCount": "Medium",
|
||
"infoCount": "Info",
|
||
"status": "Status",
|
||
"driftLevel": {
|
||
"high": "High",
|
||
"medium": "Medium",
|
||
"info": "Info"
|
||
},
|
||
"interpretation": "Nemotron Intent Analysis",
|
||
"noInterpretation": "No analysis needed (no drift)",
|
||
"rollback": "Rollback to Git",
|
||
"adopt": "Adopt Change",
|
||
"rollbackConfirm": "Rollback this resource to Git state?",
|
||
"adoptConfirm": "Adopt this change and update Git?",
|
||
"pending": "Pending",
|
||
"resolved": "Resolved",
|
||
"acknowledged": "Acknowledged",
|
||
"rolled_back": "Rolled back",
|
||
"adopted": "Adopted",
|
||
"ignored": "Ignored",
|
||
"fingerprintState": {
|
||
"title": "Same-fingerprint state chain",
|
||
"occurrences": "12h {count}x",
|
||
"report": "Report: {report}",
|
||
"state": "State: {state}",
|
||
"next": "Next: {step}",
|
||
"writes": "Writes: drift={drift}; incident={incident}; repair={repair}; ticket={ticket}",
|
||
"pr": "PR: {pr}; zeroDiff={zeroDiff}",
|
||
"p0Dedup": "P0 dedupe {hours}h",
|
||
"remediation": "Remediation: {status}; verification report: {report}",
|
||
"remediationKind": "Remediation kind: {kind}",
|
||
"remediationVerification": "Verification: {summary}",
|
||
"remediationNote": "Note: {note}"
|
||
}
|
||
},
|
||
"neuralCommand": {
|
||
"title": "Neural Command Center",
|
||
"subtitle": "SSH_COMMAND Chain of Command · OpenClaw 🦞 × NemoTron ⚡",
|
||
"lastRefresh": "Updated {time}",
|
||
"refresh": "Refresh",
|
||
"preFlightAudit": "Pre-Flight Audit",
|
||
"liveCommand": "Live Command",
|
||
"statsHistory": "Stats & History",
|
||
"nuclearApproval": "Nuclear Approval",
|
||
"preFlightTitle": "SSH_COMMAND Architecture Security Audit",
|
||
"preFlightSubtitle": "WHITELIST updated to production standard",
|
||
"progress": "Progress",
|
||
"riskLevel": "Risk Level",
|
||
"riskLow": "Low",
|
||
"auditStatus": "Audit Status",
|
||
"passed": "Passed",
|
||
"pending": "Pending",
|
||
"passBannerTitle": "Pre-Flight Passed — Architecture meets security standards",
|
||
"passBannerDesc": "8/8 checks passed · Shell Injection protection enabled · known_hosts mounted",
|
||
"statusFixed": "Fixed",
|
||
"statusPending": "Pending",
|
||
"featureToggles": "Feature Toggle Status",
|
||
"approvedPlaybooks": "Approved Playbooks",
|
||
"highQuality": "High Quality",
|
||
"totalExecutions": "Total Executions",
|
||
"successRate": "Success Rate",
|
||
"checkA1Label": "Key Check (known_hosts)",
|
||
"checkA1Desc": "K8s Secret mounted at /etc/repair-ssh/known_hosts",
|
||
"checkA2Label": "Whitelist (ConfigMap)",
|
||
"checkA2Desc": "Hardcoded Whitelist → K8s ConfigMap",
|
||
"checkA3Label": "Command Injection Filter",
|
||
"checkA3Desc": "Block ; | && $() · Max 512 chars",
|
||
"checkB1Label": "Audit Log",
|
||
"checkB1Desc": "Missing AuditLog → PostgreSQL write",
|
||
"checkB2Label": "Langfuse Trace",
|
||
"checkB2Desc": "SSH Trace Missing → Decision tracing added",
|
||
"checkC1Label": "Idempotency Lock (Redis)",
|
||
"checkC1Desc": "repair_lock prevents duplicate execution",
|
||
"checkC2Label": "Feedback Loop",
|
||
"checkC2Desc": "Success Rate Update → RAG confidence self-updates",
|
||
"checkC3Label": "Execution Path (.188)",
|
||
"checkC3Desc": "ansible:// forced to .188 control node",
|
||
"agentRoleOC": "Diagnosis & RAG Matching",
|
||
"agentRoleNemo": "Decision & Execution",
|
||
"todayMatches": "Today's Matches",
|
||
"ragConf": "RAG Conf",
|
||
"execSuccess": "Exec Success",
|
||
"avgDuration": "Avg Duration",
|
||
"pendingApproval": "Pending",
|
||
"alertRadar": "Alert Radar",
|
||
"chainTitle": "Neural Transmission Path",
|
||
"nodeDone": "Done",
|
||
"nodeActive": "Running",
|
||
"nodeWaiting": "Waiting",
|
||
"execStream": "Execution Stream",
|
||
"waitingApproval": "Awaiting commander approval",
|
||
"kpiSuccessRate": "Overall Success Rate",
|
||
"kpiTotalExec": "Total Executions",
|
||
"kpiPlaybooks": "Playbooks",
|
||
"kpiAvgDuration": "Avg Repair Time",
|
||
"kpiPendingAppr": "Pending Approvals",
|
||
"trendUp": "↑ {n}% this week",
|
||
"trendDown": "↓ {n}s this week",
|
||
"schemeBreakdown": "Execution Path Breakdown",
|
||
"playbookRanking": "Playbook Performance Ranking",
|
||
"thName": "Name",
|
||
"thType": "Type",
|
||
"thRate": "Success Rate",
|
||
"thCount": "Count",
|
||
"historyTimeline": "Repair History Timeline",
|
||
"ago": "ago",
|
||
"approvalTitle": "Host Layer Command — Commander Authorization Required",
|
||
"diagnosis": "Diagnosis",
|
||
"recommendation": "Recommendation",
|
||
"execPathDetails": "Execution Path Details",
|
||
"uriScheme": "URI Scheme",
|
||
"controlNode": "Control Node",
|
||
"targetHost": "Target Host",
|
||
"playbookPath": "Playbook",
|
||
"repairLock": "Idempotency Lock",
|
||
"riskMediumDesc": "Operation cannot be immediately reverted, but backup protection exists",
|
||
"confirmExec": "Hold 5s to Confirm Execution",
|
||
"rejectApproval": "Reject — Transfer to Manual",
|
||
"approvalGranted": "Authorization Granted",
|
||
"approvalGrantedDesc": "NemoTron is executing ansible-playbook...",
|
||
"approvalRejected": "Authorization Rejected",
|
||
"approvalRejectedDesc": "Transferred to manual handling",
|
||
"noHistory": "No repair history yet",
|
||
"noActiveAlerts": "No active alerts",
|
||
"noPlaybooks": "No playbook records yet",
|
||
"noApprovals": "No pending approvals",
|
||
"noApprovalsDesc": "All authorization requests have been processed",
|
||
"chainAlert": "Alert Triggered",
|
||
"chainRAG": "🦞 OpenClaw RAG Diagnosis",
|
||
"chainDecide": "⚡ NemoTron Decision",
|
||
"chainExec": "Executor Routing",
|
||
"chainIdleSub": "Waiting for new alerts...",
|
||
"backToList": "Back to List",
|
||
"approvalError": "Operation failed",
|
||
"processing": "Processing...",
|
||
"blastRadius": "Blast Radius",
|
||
"affectedPods": "Affected Pods",
|
||
"estimatedDowntime": "Est. Downtime",
|
||
"relatedServices": "Related Services",
|
||
"dataImpact": "Data Impact",
|
||
"dryRunChecks": "Dry-Run Checks",
|
||
"approvalQueueCount": "{count} pending approvals",
|
||
"dispositionBreakdown": "Disposition Breakdown",
|
||
"dispositionAuto": "Auto Repair",
|
||
"dispositionHuman": "Human Approved",
|
||
"dispositionManual": "Manual Resolved",
|
||
"dispositionCold": "Cold Start Trust",
|
||
"autoRateLabel": "Automation Rate"
|
||
},
|
||
"alertOpLogs": {
|
||
"title": "Alert Operation Logs",
|
||
"subtitle": "alert_operation_log · Full event stream",
|
||
"refresh": "Refresh",
|
||
"totalEvents24h": "24h Total Events",
|
||
"allEventTypes": "All Event Types",
|
||
"incidentIdFilter": "Filter by Incident ID...",
|
||
"totalCount": "{count} total",
|
||
"colTime": "Time",
|
||
"colEventType": "Event Type",
|
||
"colIncident": "Incident",
|
||
"colActor": "Actor",
|
||
"colDetail": "Detail",
|
||
"colResult": "Result",
|
||
"loading": "Loading...",
|
||
"noRecords": "No records",
|
||
"loadError": "Failed to load, please retry",
|
||
"pageInfo": "Page {page} / {total}",
|
||
"prevPage": "Previous",
|
||
"nextPage": "Next",
|
||
"eventAlertReceived": "Alert Received",
|
||
"eventTelegramSent": "TG Notified",
|
||
"eventUserAction": "User Action",
|
||
"eventAutoRepairTriggered": "Auto Repair",
|
||
"eventExecutionStarted": "Execution Started",
|
||
"eventExecutionCompleted": "Execution Completed",
|
||
"eventTelegramResultSent": "TG Result",
|
||
"eventResolved": "Resolved",
|
||
"eventSilenced": "Silenced",
|
||
"eventEscalated": "Escalated",
|
||
"eventGuardrailBlocked": "Guardrail Blocked",
|
||
"eventPreFlightPassed": "Pre-flight Passed",
|
||
"eventPreFlightFailed": "Pre-flight Failed",
|
||
"eventBackupTriggered": "Backup Triggered",
|
||
"eventBackupCompleted": "Backup Completed",
|
||
"eventBackupFailed": "Backup Failed",
|
||
"eventApprovalEscalated": "Approval Escalated",
|
||
"eventChangeApplied": "Change Applied"
|
||
},
|
||
"commandPalette": {
|
||
"placeholder": "Search commands, pages or events...",
|
||
"noResults": "No results found",
|
||
"hint": "↑↓ Navigate Enter Select Esc Close",
|
||
"groupNav": "Navigation",
|
||
"groupActions": "Quick Actions",
|
||
"groupRecent": "Recent Events",
|
||
"actionOpenTerminal": "Open Omni-Terminal",
|
||
"actionGoHome": "Go to Command Center",
|
||
"actionGoObservability": "Go to Observability",
|
||
"actionGoAutomation": "Go to Automation",
|
||
"actionGoOperations": "Go to Operations",
|
||
"actionGoSecurity": "Go to Security & Compliance",
|
||
"actionGoKnowledge": "Go to Knowledge Hall",
|
||
"actionGoSettings": "Go to Settings",
|
||
"actionGoTerminal": "Go to Terminal",
|
||
"actionGoApprovals": "Go to Authorizations"
|
||
},
|
||
"aiopsTimeline": {
|
||
"title": "AIOps Full Timeline",
|
||
"subtitle": "Alert → Investigation → Decision → Execution → Verification → Learning",
|
||
"mockBadge": "MOCK MODE",
|
||
"stages": {
|
||
"alert": "Alert Triggered",
|
||
"diagnose": "Investigation",
|
||
"decide": "AI Decision",
|
||
"execute": "Auto Execute",
|
||
"verify": "Verification",
|
||
"learn": "Learning Update"
|
||
},
|
||
"status": {
|
||
"success": "Success",
|
||
"running": "Running",
|
||
"failed": "Failed",
|
||
"skipped": "Skipped",
|
||
"pending": "Pending"
|
||
},
|
||
"filters": {
|
||
"incident_id": "Incident ID",
|
||
"incident_id_placeholder": "Search incident ID...",
|
||
"time_range": "Time Range",
|
||
"status_filter": "Status Filter",
|
||
"incident_count": "{count} incidents",
|
||
"timeRange": {
|
||
"1h": "1H",
|
||
"6h": "6H",
|
||
"24h": "24H",
|
||
"7d": "7D"
|
||
},
|
||
"statusFilter": {
|
||
"all": "All",
|
||
"success": "Success",
|
||
"failed": "Failed",
|
||
"running": "Running"
|
||
}
|
||
},
|
||
"incident": {
|
||
"started_at": "Started At",
|
||
"resolved_at": "Resolved At",
|
||
"duration": "Duration",
|
||
"in_progress": "In Progress",
|
||
"severity": "Severity",
|
||
"stages_summary": "{success} success / {total} stages",
|
||
"expand_all": "Expand All",
|
||
"collapse_all": "Collapse All"
|
||
},
|
||
"stage": {
|
||
"toggle_details": "Toggle {stage} details"
|
||
},
|
||
"evidence": {
|
||
"dimensions": "8D Dimensions",
|
||
"anomalyCount": "{count}/{total} anomaly dimensions",
|
||
"noData": "N/A"
|
||
},
|
||
"stageDetails": {
|
||
"alert": {
|
||
"name": "Alert Name",
|
||
"rule": "Rule",
|
||
"value": "Current Value",
|
||
"labels": "Labels"
|
||
},
|
||
"diagnose": {
|
||
"investigator": "Investigator",
|
||
"tools_used": "MCP Tools",
|
||
"hypothesis": "Root Cause Hypothesis",
|
||
"evidence": "8D Evidence"
|
||
},
|
||
"decide": {
|
||
"engine": "Decision Engine",
|
||
"fusion": "Fusion Method",
|
||
"confidence": "Confidence",
|
||
"confidenceThreshold": "Threshold {value}%",
|
||
"auto_execute": "Auto Execute",
|
||
"auto_yes": "Yes",
|
||
"auto_no": "No (requires approval)",
|
||
"playbook": "Playbook",
|
||
"decision": "Decision Command",
|
||
"reasoning": "Reasoning",
|
||
"alternates": "Alternate Decisions"
|
||
},
|
||
"execute": {
|
||
"command": "Command",
|
||
"target": "Target",
|
||
"executor": "Executor",
|
||
"duration": "Duration",
|
||
"stdout": "Output",
|
||
"exit_code": "Exit Code"
|
||
},
|
||
"verify": {
|
||
"verifier": "Verifier",
|
||
"outcome": "Outcome",
|
||
"checks": "Checks",
|
||
"trust_delta": "Trust Delta",
|
||
"notes": "Notes"
|
||
},
|
||
"learn": {
|
||
"playbook": "Playbook",
|
||
"trust_update": "Trust Update",
|
||
"km_entry": "Knowledge Base Entry",
|
||
"summary": "Learning Summary"
|
||
}
|
||
},
|
||
"loading": "Loading timeline data...",
|
||
"empty": {
|
||
"title": "No incidents found",
|
||
"subtitle": "No AIOps incidents match the current filters"
|
||
},
|
||
"error": {
|
||
"title": "Failed to load data",
|
||
"retry": "Retry"
|
||
}
|
||
},
|
||
"governance": {
|
||
"title": "AI Governance",
|
||
"complianceBadge": {
|
||
"label": "AI Governance",
|
||
"loading": "Loading...",
|
||
"score": "Overall Compliance",
|
||
"target": "Target ≥ 95%"
|
||
},
|
||
"tabs": {
|
||
"slo": "SLO Dashboard",
|
||
"events": "Governance Events",
|
||
"queue": "AI Queue"
|
||
},
|
||
"comingSoon": "This tab is coming soon",
|
||
"slo": {
|
||
"kpi": {
|
||
"autonomy_rate": "Autonomy Rate",
|
||
"decision_accuracy": "Decision Accuracy",
|
||
"confidence_calibration": "Confidence Calibration",
|
||
"km_growth_rate": "KM Growth Rate",
|
||
"mcp_call_diversity": "MCP Call Diversity",
|
||
"auto_execute_success_rate": "Auto Execute Success",
|
||
"human_override_rate": "Human Override Rate",
|
||
"verifier_false_neg_rate": "Verifier False Negative",
|
||
"current": "Current",
|
||
"target": "Target",
|
||
"sparkline": "7-day trend",
|
||
"loading": "Loading...",
|
||
"error": "Failed to load",
|
||
"noData": "No data",
|
||
"sampleCount": "Samples {count}",
|
||
"window": "Window {window}",
|
||
"state": {
|
||
"ok": "OK",
|
||
"warning": "Below target",
|
||
"violated": "Hard red line",
|
||
"skipped_low_volume": "Low sample wait",
|
||
"no_data": "No data",
|
||
"error": "Query failed",
|
||
"partial": "Partially evaluable"
|
||
},
|
||
"reason": {
|
||
"none": "None",
|
||
"denominator_below_minimum_events": "Denominator events too low",
|
||
"prometheus_nan_or_inf": "Prometheus has no valid denominator yet",
|
||
"prometheus_empty_result_metric_not_emitted": "Prometheus has not returned the metric yet",
|
||
"unknown": "Reason pending"
|
||
}
|
||
},
|
||
"chart": {
|
||
"title": "30-day Violation Timeline",
|
||
"xAxisLabel": "Date",
|
||
"yAxisLabel": "Count",
|
||
"loading": "Loading chart...",
|
||
"error": "Chart failed to load",
|
||
"empty": "No violations in the last 30 days",
|
||
"tooltip": "Violations"
|
||
},
|
||
"compliance": {
|
||
"title": "Overall Compliance",
|
||
"target": "Target ≥ 95%"
|
||
},
|
||
"coverage": {
|
||
"title": "Verification Coverage",
|
||
"subtitle": "Auto-repair executions and verifier writeback in the last {window}",
|
||
"totalAuto": "Auto repairs",
|
||
"verifiedAuto": "Verified",
|
||
"unverifiedAuto": "Unverified",
|
||
"coverageRate": "Coverage",
|
||
"successRate": "Success verification",
|
||
"lastVerified": "Last verified execution",
|
||
"reasonLabel": "Reason",
|
||
"failureBreakdown": "Non-success Verification Classes",
|
||
"recentFindings": "Recent Non-success Verification",
|
||
"remediationQueue": "Remediation Work Queue",
|
||
"queueSummary": "Total {total}; AI-ready {ready}; human {human}",
|
||
"dryRunButton": "Dry run",
|
||
"dryRunLoading": "Running",
|
||
"dryRunResult": "{mode}; preview {result}; tools {tools}",
|
||
"dryRunHistoryRecorded": "History recorded",
|
||
"dryRunHistorySummary": "History {count}x; last {time}; {route}",
|
||
"dryRunBlocked": "Dry run blocked",
|
||
"dryRunError": "Dry run failed",
|
||
"state": {
|
||
"ok": "OK",
|
||
"warning": "Needs tracking",
|
||
"violated": "Hard red line",
|
||
"skipped_low_volume": "Waiting for samples",
|
||
"no_data": "No data",
|
||
"error": "Query failed"
|
||
},
|
||
"reason": {
|
||
"none": "None",
|
||
"no_auto_repair_executions_24h": "No auto-repair executions in the last 24h",
|
||
"verification_backlog_present": "Some auto repairs are missing verification results",
|
||
"non_success_verification_present": "degraded / failed / timeout verification exists",
|
||
"postgresql_query_error": "PostgreSQL query failed"
|
||
},
|
||
"failureClass": {
|
||
"unsupported_action_scheme": "PlayBook action misses supported executor",
|
||
"verifier_missing_promql": "Verifier missing PromQL query",
|
||
"verifier_target_missing_pod": "Verifier missing pod target",
|
||
"auto_repair_execution_failed": "Auto repair execution failed",
|
||
"verification_failed": "Verification failed",
|
||
"verification_timeout": "Verification timed out",
|
||
"verification_degraded": "Verification degraded",
|
||
"unknown": "Pending classification"
|
||
},
|
||
"nextStep": {
|
||
"normalize_playbook_executor": "Fix PlayBook executor",
|
||
"add_verifier_query_template": "Add verifier query template",
|
||
"map_verifier_target": "Map verifier target",
|
||
"review_auto_repair_execution": "Inspect auto repair record",
|
||
"escalate_verification_failure": "Escalate verification failure",
|
||
"review_degraded_verification": "Review degraded evidence"
|
||
},
|
||
"remediationStatus": {
|
||
"ready_for_replay": "Ready for replay",
|
||
"ready_for_reverify": "Ready to reverify",
|
||
"needs_target_mapping": "Needs target mapping",
|
||
"needs_playbook_ticket": "Needs ticket",
|
||
"manual_review": "Manual review",
|
||
"unknown": "Pending classification"
|
||
},
|
||
"remediationAction": {
|
||
"replay_with_supported_executor": "Replay with supported executor",
|
||
"reverify_with_promql_template": "Reverify with PromQL template",
|
||
"map_target_and_reverify": "Map target and reverify",
|
||
"create_playbook_ticket": "Create PlayBook ticket",
|
||
"escalate_verification_failure": "Escalate verification failure",
|
||
"inspect_degraded_evidence": "Inspect degraded evidence"
|
||
}
|
||
}
|
||
},
|
||
"events": {
|
||
"filter": {
|
||
"eventType": "Event Type",
|
||
"dateRange": "Date Range",
|
||
"status": "Status",
|
||
"severity": "Severity",
|
||
"eventId": "Event ID",
|
||
"eventIdPlaceholder": "Paste governance_event_id",
|
||
"clearAll": "Clear All",
|
||
"allStatuses": "All Statuses",
|
||
"resolved": "Resolved",
|
||
"unresolved": "Unresolved",
|
||
"allSeverities": "All Severities",
|
||
"critical": "Critical",
|
||
"warning": "Warning",
|
||
"info": "Info",
|
||
"placeholder": "Select event types...",
|
||
"from": "From",
|
||
"to": "To"
|
||
},
|
||
"column": {
|
||
"eventType": "Event Type",
|
||
"triggeredAt": "Triggered At",
|
||
"status": "Status",
|
||
"impact": "Impact Summary",
|
||
"actions": "Actions"
|
||
},
|
||
"detail": {
|
||
"rawData": "Raw Data",
|
||
"remediation": "Remediation",
|
||
"dispatch": "Dispatch Log",
|
||
"noRemediation": "No remediation available",
|
||
"noDispatch": "No dispatch records"
|
||
},
|
||
"eventType": {
|
||
"slo_violation": "SLO Violation",
|
||
"governance_slo_data_gap": "SLO Data Gap",
|
||
"knowledge_degradation": "KM Needs Update",
|
||
"kb_stale": "Stale KM",
|
||
"execution_blast_radius": "Execution Blast Radius",
|
||
"conservative_mode": "Conservative Mode",
|
||
"replay_degraded": "Replay Degraded",
|
||
"self_demotion": "AI Self-demotion",
|
||
"slo_breach": "SLO Breach",
|
||
"accuracy_drop": "Accuracy Drop",
|
||
"km_stall": "KM Stall",
|
||
"mcp_failure": "MCP Failure",
|
||
"trust_degradation": "Trust Degradation",
|
||
"unknown": "Unknown"
|
||
},
|
||
"status": {
|
||
"resolved": "Resolved",
|
||
"unresolved": "Unresolved"
|
||
},
|
||
"severity": {
|
||
"critical": "Critical",
|
||
"warning": "Warning",
|
||
"info": "Info"
|
||
},
|
||
"emptyState": "No governance events",
|
||
"emptyStateHint": "System is operating normally",
|
||
"errorState": "Failed to load events",
|
||
"retry": "Retry",
|
||
"page": "Page",
|
||
"of": "of",
|
||
"prevPage": "Previous",
|
||
"nextPage": "Next",
|
||
"perPage": "20 per page ·",
|
||
"expand": "Expand details",
|
||
"collapse": "Collapse details"
|
||
},
|
||
"queue": {
|
||
"status": {
|
||
"connected": "Live updates",
|
||
"disconnected": "Offline mode",
|
||
"connecting": "Connecting..."
|
||
},
|
||
"column": {
|
||
"eventType": "Event Type",
|
||
"createdAt": "Created At",
|
||
"proposedAction": "Proposed Action",
|
||
"playbookTrust": "Playbook Trust",
|
||
"dispatchStatus": "Status"
|
||
},
|
||
"action": {
|
||
"approve": "Approve",
|
||
"reject": "Reject",
|
||
"approveTitle": "Approve this action",
|
||
"rejectTitle": "Reject this action"
|
||
},
|
||
"history": {
|
||
"title": "History",
|
||
"succeeded": "Succeeded",
|
||
"failed": "Failed",
|
||
"empty": "No history records"
|
||
},
|
||
"emptyState": {
|
||
"noTable": "Dispatch table not yet built",
|
||
"noTableHint": "Track D dispatch table is initializing",
|
||
"noPending": "No pending items",
|
||
"noPendingHint": "AI system is operating normally"
|
||
},
|
||
"sse": {
|
||
"label": "Live Updates",
|
||
"connected": "Connected",
|
||
"disconnected": "Disconnected"
|
||
},
|
||
"pendingSection": "Pending",
|
||
"loading": "Loading queue...",
|
||
"error": "Failed to load queue",
|
||
"retry": "Retry"
|
||
}
|
||
},
|
||
"awooop": {
|
||
"home": {
|
||
"eyebrow": "AI Automation Control Plane",
|
||
"title": "AwoooP Governance Overview",
|
||
"subtitle": "Unifies tenants, contracts, runs, approvals, and channel state into one operator surface so the AI flywheel and governance plane do not drift apart.",
|
||
"refresh": "Refresh",
|
||
"snapshotStatus": "Snapshot Status",
|
||
"lastUpdated": "Last Updated",
|
||
"migrationMode": "Migration Mode",
|
||
"migrationValue": "mirror / shadow",
|
||
"ready": "In Sync",
|
||
"loading": "Loading",
|
||
"degraded": "Degraded",
|
||
"sourceFlow": {
|
||
"title": "Source Flow and Work Progress",
|
||
"subtitle": "Reads recent Channel Event recurrence data so the overview shows source persistence, run linkage, work items, and source correlation state.",
|
||
"sourceEvents": "{count} source events",
|
||
"unavailable": "Unavailable",
|
||
"loadFailed": "Unable to load the source flow overview. Check the Work Chain or Run Monitor recurrence API.",
|
||
"empty": "No source event data is available yet.",
|
||
"metrics": {
|
||
"linkedRuns": "Run Linkage",
|
||
"linkedRunsDetail": "Unlinked events: {unlinked}",
|
||
"openWork": "Open Work",
|
||
"openWorkDetail": "No repair {gap} / manual gates {manual} / failed repairs {failed}",
|
||
"sourceDecision": "Source Decision",
|
||
"sourceDecisionNone": "No Review",
|
||
"sourceDecisionDetail": "Recorded reviews: {recorded}",
|
||
"latest": "Latest Event",
|
||
"latestDetail": "{groups} recurrence groups"
|
||
},
|
||
"progress": {
|
||
"linked": "Source to Run Coverage",
|
||
"linkedDetail": "Whether source events can be traced back to Run / Incident",
|
||
"work": "Work Item Cleanup",
|
||
"workDetail": "Whether recurrence groups still have open work",
|
||
"decision": "Source Match Decision",
|
||
"decisionDetail": "Whether source review / apply has a decision record"
|
||
},
|
||
"actions": {
|
||
"workItems": "Handle Work Items",
|
||
"workItemsDetail": "{count} open groups need handling or confirmation",
|
||
"runs": "Inspect Run Linkage",
|
||
"runsDetail": "Unlinked events: {unlinked}",
|
||
"approvals": "Check Human Gates",
|
||
"approvalsDetail": "{count} manual gates need human judgment",
|
||
"sourceReviews": "Review Source Matches",
|
||
"sourceReviewsDetail": "{count} source reviews need a decision"
|
||
}
|
||
},
|
||
"quality": {
|
||
"title": "Automation Quality",
|
||
"subtitle": "Whether recent alerts actually reached AI auto-repair, verification, and learning writeback in the last 24 hours.",
|
||
"claimReady": "Full Loop Claim Ready",
|
||
"claimBlocked": "Full Loop Claim Blocked",
|
||
"unavailable": "Unavailable",
|
||
"loadFailed": "Unable to load the automation quality summary. Check Operator permissions and the truth-chain API.",
|
||
"empty": "No alert quality data is available yet.",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"metrics": {
|
||
"evaluated": "Evaluated Alerts",
|
||
"evaluatedDetail": "Same quality gate applied",
|
||
"verified": "Verified Auto-Repairs",
|
||
"verifiedDetail": "Requires auto-repair plus verification",
|
||
"averageScore": "Average Score",
|
||
"averageScoreDetail": "0 to 100 process completeness",
|
||
"claim": "Production Claim",
|
||
"claimReadyDetail": "Every alert completed the verified loop",
|
||
"claimBlockedDetail": "Some alerts still lack execution, verification, or learning records"
|
||
},
|
||
"scoreBuckets": "Score Buckets",
|
||
"scoreBucketsDetail": "{total} evaluated alerts",
|
||
"green": "Green",
|
||
"yellow": "Yellow",
|
||
"red": "Red",
|
||
"verdictTitle": "Verdict Distribution",
|
||
"gateFailureTitle": "Top Gaps",
|
||
"scoreRange": "min {min} / max {max} / avg {avg}",
|
||
"verdicts": {
|
||
"autoRepairedVerified": "Auto-Repaired and Verified",
|
||
"executionUnverified": "Executed but Unverified",
|
||
"executionFailed": "Execution Failed",
|
||
"manualRequiredNoAction": "Manual Required: NO_ACTION",
|
||
"approvalRequired": "Waiting for Approval",
|
||
"observedNotExecuted": "Observed but Not Executed",
|
||
"receivedOnly": "Received Only"
|
||
},
|
||
"gates": {
|
||
"sourcePersisted": "Source Persisted",
|
||
"outboundRecorded": "Outbound Recorded",
|
||
"evidenceCollected": "Evidence Collected",
|
||
"mcpGatewayObserved": "MCP Gateway",
|
||
"approvalState": "Approval State",
|
||
"executionRecorded": "Execution Recorded",
|
||
"autoRepairRecorded": "Auto-Repair Recorded",
|
||
"verificationRecorded": "Verification Recorded",
|
||
"learningRecorded": "Learning Writeback",
|
||
"timelineRecorded": "Timeline Recorded",
|
||
"unknown": "Unknown Gate"
|
||
},
|
||
"gateStatuses": {
|
||
"failed": "Failed",
|
||
"missing": "Missing"
|
||
}
|
||
},
|
||
"metrics": {
|
||
"tenants": "Tenants",
|
||
"tenantsDetail": "{active} active, {shadow} in shadow",
|
||
"runs": "Operator Runs",
|
||
"runsDetail": "Run state is the single view into async work",
|
||
"approvals": "Pending Approvals",
|
||
"approvalsDetail": "Every high-risk action must stop at the human gate",
|
||
"contracts": "Contracts",
|
||
"contractsDetail": "Project / Agent / Policy contract publish state"
|
||
},
|
||
"disposition": {
|
||
"title": "Disposition Semantics",
|
||
"diagnosis": {
|
||
"title": "Read-only Diagnosis",
|
||
"signal": "AI collected evidence",
|
||
"owner": "Owner: AI summarizes, SRE judges",
|
||
"route": "Route: Run monitor / incident detail"
|
||
},
|
||
"approval": {
|
||
"title": "Human Gate",
|
||
"signal": "High-risk approval pending",
|
||
"owner": "Owner: SRE approve / reject",
|
||
"route": "Route: Approval queue"
|
||
},
|
||
"execute": {
|
||
"title": "Auto Execution",
|
||
"signal": "Low-risk closure path",
|
||
"owner": "Owner: MCP Gateway executes and audits",
|
||
"route": "Route: Run State / Audit"
|
||
},
|
||
"manual": {
|
||
"title": "Manual Escalation",
|
||
"signal": "AI cannot safely repair",
|
||
"owner": "Owner: war room takes over",
|
||
"route": "Route: AwoooI SRE war room"
|
||
}
|
||
},
|
||
"lanes": {
|
||
"title": "Flywheel Lanes",
|
||
"live": "Live",
|
||
"mirror": "Mirror",
|
||
"providerName": "Provider Order",
|
||
"providerDetail": "GCP-A Ollama -> GCP-B Ollama -> 111 Ollama -> OpenClaw/Nemo -> Gemini",
|
||
"mcpName": "MCP Gateway",
|
||
"mcpDetail": "MCP Gateway stays in mirror / wrap mode before audit and redaction are proven as the only execution gate",
|
||
"channelName": "Channel Hub",
|
||
"channelDetail": "Telegram / LINE / Slack enter Channel Event first, then message ownership moves gradually",
|
||
"approvalName": "Approval Plane",
|
||
"approvalDetail": "Run state and Approval plane share one approval meaning"
|
||
},
|
||
"next": {
|
||
"title": "Next Actions",
|
||
"item1": "Review run monitor and provider fallback",
|
||
"item2": "Handle pending high-risk approvals",
|
||
"item3": "Review contract lifecycle",
|
||
"item4": "Open the AwoooP work map"
|
||
}
|
||
},
|
||
"workItems": {
|
||
"title": "Work Chain",
|
||
"subtitle": "{count} control points synced from production truth-chain and governance data",
|
||
"refresh": "Refresh",
|
||
"lastUpdated": "Last updated {time}",
|
||
"tableLabel": "AwoooP work chain",
|
||
"open": "Open",
|
||
"summary": {
|
||
"live": "Completed",
|
||
"inProgress": "In Progress",
|
||
"watching": "Watching",
|
||
"blocked": "Blocked"
|
||
},
|
||
"status": {
|
||
"live": "Completed",
|
||
"in_progress": "In Progress",
|
||
"blocked": "Blocked",
|
||
"watching": "Watching"
|
||
},
|
||
"columns": {
|
||
"phase": "Phase",
|
||
"work": "Work Item",
|
||
"status": "Status",
|
||
"surface": "Frontend Surface",
|
||
"source": "Data Source",
|
||
"evidence": "Production Evidence",
|
||
"gate": "Completion Gate",
|
||
"link": "Link"
|
||
},
|
||
"surfaces": {
|
||
"runs": "Run Monitor / Run Detail",
|
||
"governance": "Governance Events / SLO",
|
||
"workItems": "Work Chain"
|
||
},
|
||
"items": {
|
||
"sourceDossier": {
|
||
"title": "Source event dossier and truth-chain mirror"
|
||
},
|
||
"autoRepair": {
|
||
"title": "Low-risk Alertmanager auto-repair loop"
|
||
},
|
||
"recurrenceWorkItems": {
|
||
"title": "Recurring alert work item / ticket entry"
|
||
},
|
||
"configDriftFsm": {
|
||
"title": "Config Drift fingerprint state machine"
|
||
},
|
||
"remediationQueue": {
|
||
"title": "Non-success verification remediation queue"
|
||
},
|
||
"telegramCallbacks": {
|
||
"title": "Telegram detail / history as DB truth-first"
|
||
},
|
||
"callbackOwnerReview": {
|
||
"title": "Callback missing KM owner-review work item"
|
||
},
|
||
"ciSecretHygiene": {
|
||
"title": "CI/CD secret log exposure hardening"
|
||
},
|
||
"governanceDispatch": {
|
||
"title": "Governance alert dispatch and dedupe"
|
||
},
|
||
"knowledgeHealthcheck": {
|
||
"title": "KM healthcheck dispatch state"
|
||
},
|
||
"frontendConsole": {
|
||
"title": "AwoooP Operator Console productization"
|
||
},
|
||
"mcpGateway": {
|
||
"title": "MCP Gateway usage evidence overview"
|
||
},
|
||
"timelineContract": {
|
||
"title": "Timeline / KM / PlayBook writeback consistency"
|
||
}
|
||
},
|
||
"gates": {
|
||
"sourceDossier": "Inbound alerts must show received / incident_linked / source refs",
|
||
"autoRepair": "Requires auto_repair, verification_result=success, and KM writeback",
|
||
"recurrenceWorkItems": "Completed-without-repair, failed repair, and manual gate groups must become trackable work items",
|
||
"configDriftFsm": "The same drift fingerprint must expose recurrence, PR, zero diff, handoff, and next step",
|
||
"remediationQueue": "Every degraded / failed / timeout row must map to replay, reverify, ticket, or manual review",
|
||
"telegramCallbacks": "Detail and history buttons cannot depend only on Redis TTL or stale snapshots",
|
||
"callbackOwnerReview": "Telegram detail/history callbacks without a KM owner-review link must become trackable work items",
|
||
"ciSecretHygiene": "Workflows must not mount secrets in step env / action inputs; historical logs still need rotation and retention governance",
|
||
"governanceDispatch": "Governance alerts must enter dispatch and expose skipped / pending / repaired",
|
||
"knowledgeHealthcheck": "knowledge_degradation must show Hermes / OpenClaw / ElephantAlpha ownership, current stage, and owner review point",
|
||
"frontendConsole": "Completed and in-progress work must be trackable from the frontend",
|
||
"mcpGateway": "MCP usage must show agent, tool, scope, and blocked reason",
|
||
"timelineContract": "Incident, Approval, Evidence, KM, and Timeline must not contradict each other"
|
||
},
|
||
"evidence": {
|
||
"channelEvents": "Recent Alertmanager channel events: {count}",
|
||
"autoRepair": "Verified auto-repairs: {verified}/{evaluated}",
|
||
"recurrenceWorkItems": "Recurring alert work: {open}; no repair: {gap}; failed repair: {failed}; manual gates: {manual}; source review: {source}",
|
||
"recurrenceLatest": "Latest: {alert} / {incident}",
|
||
"recurrenceReason": "Reason: {reason}",
|
||
"recurrenceSourceReviewRecorded": "Source reviews recorded: {count}",
|
||
"recurrenceSourceApplied": "Source matches applied: {count}",
|
||
"recurrenceEmpty": "No open recurring-alert work item in the recent window",
|
||
"driftFingerprint": "Config Drift: {state}; {count}x in 12h",
|
||
"driftFingerprintUnavailable": "Config Drift fingerprint state API has not responded",
|
||
"driftFingerprintId": "Fingerprint: {fingerprint}; Report: {report}",
|
||
"driftFingerprintPr": "PR: {pr}; zeroDiff={zeroDiff}",
|
||
"driftFingerprintNext": "Next: {step}",
|
||
"driftFingerprintRemediation": "Remediation: {kind} / {status}; verification report: {report}",
|
||
"driftFingerprintEmpty": "No Config Drift fingerprint state yet",
|
||
"remediationQueue": "Remediation work: {total}; AI-ready: {ready}; human: {human}",
|
||
"telegramCallbacks": "Telegram callback lookup and history summary are being repaired",
|
||
"telegramCallbacksLive": "Read-only callback toast 400 is nonfatal; detail / history replies now use DB truth-chain",
|
||
"callbackOwnerReview": "Callback owner-review gaps: {open} open; callback evidence: {total}",
|
||
"callbackOwnerReviewLatest": "Latest: {incident} / {action}",
|
||
"callbackOwnerReviewQueue": "Completion queue: ready {ready}; blocked {blocked}; completed {completed}; failed {failed}",
|
||
"callbackOwnerReviewNext": "Next: {next}",
|
||
"callbackOwnerReviewEmpty": "Recent callback evidence is matched or no data is available yet",
|
||
"ciSecretHygiene": "Repo-controlled step env / action input exposure is guarded; key rotation and log retention remain",
|
||
"governance": "Unresolved governance alerts: {unresolved}; pending dispatch: {queued}",
|
||
"governanceUnavailable": "Governance events API is not responding; pending dispatch: {queued}",
|
||
"governanceQueueMissing": "Governance dispatch table is not ready; unresolved governance alerts: {unresolved}",
|
||
"knowledgeHealthcheck": "KM healthcheck dispatches: {total}; current stage: {stage}",
|
||
"knowledgeOwner": "Lead: {lead}; human review: {human}",
|
||
"knowledgeNext": "Next action: {action}",
|
||
"knowledgeDrafts": "KM review drafts: {drafts}; duplicate drafts: {duplicates}",
|
||
"knowledgeStaleCandidates": "Stale KM priority queue: {total}; top {top} / {tier}",
|
||
"knowledgeCompletionQueue": "Completion queue: ready {ready}; blocked {blocked}; completed {completed}; failed {failed}",
|
||
"knowledgeCompletionLatest": "Latest completion: {entry} / {readiness}; next {next}",
|
||
"knowledgeEmpty": "No recent knowledge_degradation dispatch trail",
|
||
"frontendConsole": "This page now reads production APIs instead of a static list",
|
||
"mcpReady": "MCP Gateway gate is not currently a top gap",
|
||
"mcpMissing": "Quality summary still reports an MCP Gateway observation gap",
|
||
"remediationHistory": "Dry-run history: {count}x; latest {preview}",
|
||
"remediationHistoryEmpty": "No remediation dry-run history yet",
|
||
"remediationRoute": "MCP: {route}",
|
||
"remediationWrites": "Writes: incident={incident}; autoRepair={autoRepair}",
|
||
"timelineReady": "Timeline gate is not currently a top gap",
|
||
"timelineMissing": "Quality summary still reports a Timeline / audit gap"
|
||
},
|
||
"claim": {
|
||
"ready": "Full auto-repair claim: ready",
|
||
"notReady": "Full auto-repair claim: not ready",
|
||
"loading": "Full auto-repair claim: loading",
|
||
"unavailable": "Full auto-repair claim: data unavailable",
|
||
"reasonSomeUnverified": "Production truth-chain still has events below auto_repaired_verified; execution, verification, and KM / learning writeback remain.",
|
||
"reasonUnknown": "production_claim did not return a readable reason.",
|
||
"loadingDetail": "Reading the production quality summary before making a claim.",
|
||
"unavailableDetail": "The quality summary API did not respond in time; the UI will not pretend 0/0 is complete.",
|
||
"verified": "Verified {count}",
|
||
"evaluated": "Evaluated {count}",
|
||
"gateFailures": "Gaps {count}",
|
||
"verifiedUnknown": "Verified --",
|
||
"evaluatedUnknown": "Evaluated --",
|
||
"gateFailuresUnknown": "Gaps --"
|
||
},
|
||
"knowledgeGovernance": {
|
||
"title": "KM Healthcheck Dispatch",
|
||
"subtitle": "Tracks knowledge_degradation from detection, Hermes lookup, draft updates, owner review, and stale-ratio recheck",
|
||
"total": "Total {count}",
|
||
"active": "Active {count}",
|
||
"review": "Review {count}",
|
||
"drafts": "Drafts {count}",
|
||
"duplicates": "Duplicates {count}",
|
||
"unavailable": "The governance queue API has not responded, so KM healthcheck dispatch state cannot be claimed.",
|
||
"tablePending": "governance_remediation_dispatch is not ready, so no KM healthcheck dispatch rows are trackable yet.",
|
||
"empty": "No knowledge_degradation dispatch record is currently present; the next Telegram alert should produce a dispatch trail.",
|
||
"stage": "Stage: {stage}",
|
||
"next": "Next: {action}",
|
||
"lead": "Lead: {agent}",
|
||
"human": "Human review: {owner}",
|
||
"support": "Support: {agents}",
|
||
"worker": "Worker status: {status}",
|
||
"draft": "KM draft: {id}",
|
||
"duplicateWarning": "{count} duplicate drafts exist for the same event; the new worker dedupes by governance_event, and old rows need owner merge or archive.",
|
||
"draftsUnavailable": "The knowledge API has not responded, so KM drafts and duplicate counts cannot be confirmed yet.",
|
||
"draftsEmpty": "No Hermes KM healthcheck review draft is currently present.",
|
||
"draftSectionTitle": "KM draft dedupe view",
|
||
"draftGroup": "Drafts for this event: {count}; duplicates: {duplicates}",
|
||
"archiveProposal": "Archive candidates: {count} duplicate drafts",
|
||
"ownerAction": "Owner action: {action}",
|
||
"readOnlyPlan": "Writes on read: {writes}; archive blocked before review: {blocked}",
|
||
"staleCandidates": {
|
||
"title": "Stale KM Priority Queue",
|
||
"total": "Stale {count}",
|
||
"returned": "Shown {count}",
|
||
"threshold": "Threshold {days}d",
|
||
"unavailable": "The stale candidates API has not responded; only the aggregate count is visible.",
|
||
"empty": "No KM entries are currently past the stale threshold.",
|
||
"meta": "Stale {days}d; score {score}; views {views}",
|
||
"action": "Recommended: {action}",
|
||
"sources": "Sources: {sources}",
|
||
"refs": "Incident: {incident}; PlayBook: {playbook}; Approval: {approval}",
|
||
"noSources": "No Incident / Sentry / SigNoz / PlayBook link yet",
|
||
"openKnowledge": "Open KM",
|
||
"queueReview": "Queue review",
|
||
"queueingReview": "Queueing",
|
||
"queueFailed": "Could not queue owner review; refresh and confirm this KM is still stale.",
|
||
"queueResult": "Review status: {status}; Dispatch: {dispatch}; Event: {event}",
|
||
"ownerReviewState": "Owner review: {status}; stage: {stage}; Dispatch: {dispatch}",
|
||
"guardrail": "Guardrail: writes on read={writes}; manual review={review}",
|
||
"queueStatuses": {
|
||
"dry_run": "Dry-run",
|
||
"queued": "Queued for owner review",
|
||
"already_queued": "Already in owner review"
|
||
},
|
||
"ownerReviewInbox": {
|
||
"title": "Owner Review Inbox",
|
||
"subtitle": "Shows P0/P1 KM already waiting for owner review, with per-item dry-run and completion.",
|
||
"total": "Pending {count}",
|
||
"returned": "Shown {count}",
|
||
"unavailable": "The owner-review inbox API has not responded; use the candidate list for single-item actions.",
|
||
"empty": "No pending owner-review KM.",
|
||
"meta": "Stale {days}d; score {score}; views {views}",
|
||
"state": "Status: {status}; stage: {stage}",
|
||
"batch": "Batch: {batch}"
|
||
},
|
||
"burnDown": {
|
||
"title": "Stale ratio burn-down",
|
||
"subtitle": "Aligns owner review, completion audit, and recheck snapshots so the stale ratio movement is visible.",
|
||
"statuses": "Status: {status}",
|
||
"status": {
|
||
"above_threshold": "Above threshold",
|
||
"at_or_below_threshold": "At threshold",
|
||
"no_data": "No data"
|
||
},
|
||
"remaining": "{count} entries to threshold",
|
||
"unavailable": "The burn-down API has not responded; only per-item completion results are visible.",
|
||
"empty": "No owner-approved completion audit yet.",
|
||
"currentRatio": "Current stale ratio",
|
||
"currentCount": "Stale / total",
|
||
"ownerReviews": "Owner review",
|
||
"ownerReviewCounts": "pending {pending} / completed {completed}",
|
||
"latestDelta": "Latest delta",
|
||
"delta": "stale {stale} / ratio {ratio}",
|
||
"auditTotal": "Completion audit {count}",
|
||
"recheckTotal": "Recheck {count}",
|
||
"guardrail": "writes on read={writes}; manual review={review}",
|
||
"itemState": "stage: {stage}; outcome: {outcome}",
|
||
"itemRefs": "Source: {source}; Recheck: {recheck}"
|
||
},
|
||
"completionQueue": {
|
||
"title": "Completion queue",
|
||
"subtitle": "Splits owner review into ready, blocked, completed, and failed work so the next step is visible.",
|
||
"ready": "Ready {count}",
|
||
"blocked": "Blocked {count}",
|
||
"completed": "Completed {count}",
|
||
"failed": "Failed {count}",
|
||
"pending": "Pending dispatch {count}",
|
||
"guardrail": "writes on read={writes}; manual review={review}; batch writes={batch}",
|
||
"unavailable": "The completion queue API has not responded; use the owner-review inbox for single-item confirmation.",
|
||
"empty": "No owner-review completion work items.",
|
||
"state": "Split: {readiness}; stage: {stage}",
|
||
"next": "Next: {action}; outcome: {outcome}",
|
||
"required": "Required fields: {fields}",
|
||
"blockers": "Blockers: {blockers}",
|
||
"filters": {
|
||
"ready": "Ready",
|
||
"blocked": "Blocked",
|
||
"completed": "Completed",
|
||
"failed": "Failed",
|
||
"pending": "Pending",
|
||
"all": "All",
|
||
"priorityAll": "All priorities"
|
||
},
|
||
"batchPreview": {
|
||
"preview": "Batch preview",
|
||
"previewing": "Previewing",
|
||
"previewFailed": "Completion batch preview failed",
|
||
"summary": "Candidates {candidates}; single-item dry-run ready {previewable}; blocked {blocked}; writes KM={writesKm}; writes audit={writesAudit}; batch writes={batchWrites}",
|
||
"planFingerprint": "Preview fingerprint: {fingerprint}",
|
||
"next": "Next: {action}"
|
||
},
|
||
"readiness": {
|
||
"ready": "Ready to dry-run",
|
||
"blocked": "Needs manual unblock",
|
||
"completed": "Completed",
|
||
"failed": "Failed"
|
||
}
|
||
},
|
||
"batchActions": {
|
||
"title": "Batch P0 / P1 stale KM",
|
||
"subtitle": "Dry-run the latest P0 / P1 candidates first, then create owner-review dispatches in batch; KM is not written directly.",
|
||
"preview": "Dry-run batch",
|
||
"previewing": "Dry-running",
|
||
"confirm": "Queue batch",
|
||
"confirming": "Queueing",
|
||
"previewFailed": "Batch dry-run failed; refresh and verify that the stale candidates API is available.",
|
||
"confirmFailed": "Batch queue failed; the backend may have detected changed candidates or dispatch state.",
|
||
"missingPreviewFingerprint": "Missing batch dry-run plan fingerprint; run the dry-run again first.",
|
||
"summary": "Candidates {candidates}; will queue {queued}; already in review {already}; skipped {skipped}; writes KM: {writesKm}; writes audit: {writesAudit}",
|
||
"planFingerprint": "Batch plan fingerprint: {fingerprint}",
|
||
"result": "Batch dispatch: {batch}; Event: {event}; queued {queued}; already in review {already}; skipped {skipped}",
|
||
"statuses": {
|
||
"dry_run": "Batch dry-run complete",
|
||
"queued": "Batch queued for owner review",
|
||
"noop_already_queued": "All candidates already queued or handled",
|
||
"unknown": "Batch status pending"
|
||
},
|
||
"itemStatuses": {
|
||
"would_queue": "Will queue",
|
||
"queued": "Queued",
|
||
"already_queued": "Already in review",
|
||
"skipped": "Skipped",
|
||
"unknown": "Pending"
|
||
}
|
||
},
|
||
"completeActions": {
|
||
"preview": "Dry-run complete",
|
||
"previewing": "Previewing",
|
||
"confirm": "Confirm complete",
|
||
"confirming": "Writing",
|
||
"previewFailed": "Dry-run preview failed; refresh and verify that the owner-review dispatch is still active.",
|
||
"confirmFailed": "Completion failed; the backend may have detected changed KM or dispatch state.",
|
||
"missingDispatch": "Missing owner-review dispatch; queue review first.",
|
||
"missingPreviewFingerprint": "Missing dry-run plan fingerprint; run the preview again first.",
|
||
"previewResult": "Dry run: {outcome}; writes KM: {writesKm}; writes audit: {writesAudit}",
|
||
"planFingerprint": "Plan fingerprint: {fingerprint}",
|
||
"result": "Completed; audit dispatch: {audit}; recheck dispatch: {recheck}",
|
||
"snapshot": "Current stale {stale} / total {total}; ratio {ratio}; threshold {threshold}",
|
||
"statuses": {
|
||
"dry_run": "Dry run complete",
|
||
"completed": "Review completed",
|
||
"already_completed": "Already completed",
|
||
"unknown": "Status pending"
|
||
},
|
||
"outcomes": {
|
||
"refresh_with_evidence": "Refresh KM with evidence",
|
||
"archive": "Archive stale KM",
|
||
"supersede": "Supersede with new KM"
|
||
}
|
||
},
|
||
"actions": {
|
||
"refresh_with_evidence": "Refresh with Incident / Sentry / SigNoz / PlayBook evidence",
|
||
"owner_review": "Route to owner review",
|
||
"archive_or_supersede": "Archive or supersede"
|
||
},
|
||
"correlationSources": {
|
||
"incident": "Incident",
|
||
"approval": "Approval",
|
||
"playbook": "PlayBook",
|
||
"sentry": "Sentry",
|
||
"signoz": "SigNoz",
|
||
"unknown": "Unknown source"
|
||
},
|
||
"reasons": {
|
||
"linked_incident": "Linked Incident",
|
||
"linked_approval": "Linked Approval",
|
||
"linked_playbook": "Linked PlayBook",
|
||
"sentry_context": "Sentry context",
|
||
"signoz_context": "SigNoz context",
|
||
"anti_pattern_priority": "Anti-Pattern priority",
|
||
"auto_runbook_review_needed": "Auto-runbook review",
|
||
"ai_extracted_needs_owner_check": "AI extraction needs review",
|
||
"already_waiting_review": "Already waiting review",
|
||
"viewed_by_operator": "Viewed by operator",
|
||
"older_than_30_days": "Older than 30 days",
|
||
"stale_by_age": "Past stale threshold",
|
||
"unknown": "Unknown reason"
|
||
}
|
||
},
|
||
"openEventHistory": "Open Event History",
|
||
"ownerActions": {
|
||
"owner_review_canonical_then_archive_duplicates": "Review the canonical draft, then archive duplicates",
|
||
"review_canonical_and_archive_duplicate_drafts": "Review canonical and archive duplicate drafts",
|
||
"unknown": "Owner action pending"
|
||
},
|
||
"archiveHistory": {
|
||
"title": "Archive / recheck history",
|
||
"empty": "No owner archive or stale-ratio recheck dispatch yet; it will appear here after confirmation.",
|
||
"executors": {
|
||
"hermes_km_review_dedupe_owner_archive": "Hermes: owner-confirmed archive",
|
||
"hermes_km_stale_ratio_recheck": "Hermes: stale-ratio recheck",
|
||
"unknown": "Unknown executor"
|
||
},
|
||
"item": "{executor}: {status}; stage {stage}; archived {archived}",
|
||
"fingerprint": "Plan fingerprint: {fingerprint}",
|
||
"snapshot": "Recheck snapshot: stale {stale} / total {total}; ratio {ratio}; threshold {threshold}"
|
||
},
|
||
"archiveActions": {
|
||
"archive": "Archive duplicate drafts",
|
||
"preview": "Dry-run preview",
|
||
"previewing": "Previewing",
|
||
"confirm": "Confirm archive",
|
||
"confirming": "Archiving",
|
||
"archiving": "Archiving",
|
||
"failed": "Archive action failed; refresh and verify the latest dedupe plan.",
|
||
"previewFailed": "Dry-run preview failed; refresh and verify the latest dedupe plan.",
|
||
"confirmFailed": "Archive confirmation failed; the backend may have detected a changed dedupe plan.",
|
||
"missingPreviewFingerprint": "Missing dry-run plan fingerprint; run the preview again first.",
|
||
"requiresOwner": "Run the dry-run preview first, then owner-confirm the archive; the backend rechecks the latest plan.",
|
||
"previewResult": "Dry run would archive {count}; writes KM: {writesKm}; writes audit: {writesAudit}",
|
||
"previewNext": "Next: only after owner confirmation will duplicate KM be soft-archived and audit / stale-ratio recheck rows be written.",
|
||
"planFingerprint": "Plan fingerprint: {fingerprint}",
|
||
"result": "Archived {archived}; audit dispatch: {audit}",
|
||
"recheck": "Stale-ratio recheck: {status}; dispatch: {dispatch}",
|
||
"snapshot": "Current stale {stale} / total {total}; ratio {ratio}; threshold {threshold}",
|
||
"statuses": {
|
||
"dry_run": "Dry run complete",
|
||
"archived": "Archived",
|
||
"noop_already_archived": "Already archived",
|
||
"unknown": "Status pending"
|
||
},
|
||
"recheckStatuses": {
|
||
"dry_run": "Dry run only",
|
||
"completed": "Completed",
|
||
"already_active": "Already active",
|
||
"not_requested": "Not requested",
|
||
"unknown": "Status pending"
|
||
}
|
||
},
|
||
"statuses": {
|
||
"pending": "Pending",
|
||
"dispatched": "Dispatched",
|
||
"executing": "Executing",
|
||
"succeeded": "Completed",
|
||
"failed": "Failed",
|
||
"skipped": "Skipped",
|
||
"cancelled": "Cancelled",
|
||
"unknown": "Unknown"
|
||
},
|
||
"stages": {
|
||
"detected": "Detected",
|
||
"ai_analyzed": "AI analyzed",
|
||
"queued_kb_healthcheck": "Queued for KM healthcheck",
|
||
"draft_km_updates": "Drafting KM updates",
|
||
"batch_owner_review_previewed": "Batch owner review previewed",
|
||
"batch_owner_review_queued": "Batch queued for owner review",
|
||
"batch_noop_already_queued": "Batch does not need requeue",
|
||
"waiting_owner_review": "Waiting owner review",
|
||
"owner_updates_or_archives_km": "Owner updates or archives KM",
|
||
"km_writeback_after_approval": "KM writeback after approval",
|
||
"km_archive_after_approval": "KM archive after approval",
|
||
"km_supersede_after_approval": "KM supersede after approval",
|
||
"stale_ratio_recheck": "Stale-ratio recheck",
|
||
"owner_approved_duplicate_archive": "Owner approved duplicate archive",
|
||
"km_duplicate_archive_after_owner_approval": "Duplicate archive after owner review",
|
||
"km_governance_rechecked": "KM governance rechecked",
|
||
"km_governance_close_or_continue": "Close or continue governance",
|
||
"needs_manual_km_triage": "Manual KM triage needed",
|
||
"cancelled": "Cancelled",
|
||
"queued_for_review": "Queued for governance review",
|
||
"dispatched": "Dispatched",
|
||
"executing": "Executing",
|
||
"completed": "Completed",
|
||
"failed": "Failed",
|
||
"skipped": "Skipped",
|
||
"unknown": "Unknown stage"
|
||
}
|
||
},
|
||
"driftFingerprint": {
|
||
"title": "Config Drift Fingerprint State",
|
||
"subtitle": "Collapses hourly drift reports into one state chain with PR, zero diff, P0 dedupe, and human handoff evidence",
|
||
"unavailable": "The drift fingerprint state API has not responded, so recurrence, PR, and handoff state cannot be claimed.",
|
||
"occurrences": "12h {count}x",
|
||
"risk": "HIGH {high} / MEDIUM {medium} / INFO {info}",
|
||
"report": "Report: {report}; Namespace: {namespace}",
|
||
"summary": "Summary: {summary}",
|
||
"next": "Next: {step}",
|
||
"p0Dedup": "P0 dedupe: {enabled}; window {hours}h",
|
||
"writes": "Writes: drift={drift}; incident={incident}; repair={repair}; ticket={ticket}",
|
||
"fsmStates": {
|
||
"pending_human": "Waiting for human",
|
||
"pending_human_repeated": "Repeated human wait",
|
||
"pr_open_zero_diff": "PR open but zero diff",
|
||
"pr_open_waiting_review": "PR waiting review",
|
||
"pr_merged_unverified": "PR merged, unverified",
|
||
"handoff_recorded": "Handoff recorded",
|
||
"no_drift_verified": "No drift, verified",
|
||
"remediated_verified": "Remediated, verified",
|
||
"remediation_executed_unverified": "Remediated, unverified",
|
||
"remediation_verification_failed": "Remediation verification failed",
|
||
"adopted_unverified": "Adopted, unverified",
|
||
"rolled_back": "Rolled back",
|
||
"acknowledged": "Acknowledged",
|
||
"ignored": "Ignored",
|
||
"unknown": "Unknown"
|
||
},
|
||
"nextSteps": {
|
||
"close_zero_diff_pr_and_prepare_real_yaml_patch": "Close zero-diff PR and prepare a real YAML patch",
|
||
"review_pr_then_merge_or_reject": "Review PR, then merge or reject",
|
||
"verify_git_baseline_then_mark_adopted": "Verify Git baseline, then mark adopted",
|
||
"operator_review_handoff_and_execute_manual_plan": "Operator reviews handoff and executes manual plan",
|
||
"run_verification_scan_then_record_result": "Run verification scan, then record the result",
|
||
"open_manual_investigation_with_failed_verification": "Open manual investigation with the failed verification",
|
||
"verify_k8s_matches_git_baseline": "Verify K8s matches Git baseline",
|
||
"confirm_no_repeat_after_rollback": "Confirm no repeat after rollback",
|
||
"monitor_for_recurrence": "Monitor for recurrence",
|
||
"retry_pr_lookup_then_review_drift": "Retry PR lookup, then review drift",
|
||
"manual_investigation_or_ansible_check_mode": "Manual investigation or Ansible check-mode",
|
||
"unknown": "Unknown"
|
||
},
|
||
"pr": {
|
||
"title": "PR / Baseline",
|
||
"number": "PR: {number}",
|
||
"zeroDiff": "zeroDiff={zeroDiff}; files={files}; commits={commits}",
|
||
"status": "Status: {status}"
|
||
},
|
||
"handoff": {
|
||
"latest": "Latest handoff: {status}"
|
||
},
|
||
"remediation": {
|
||
"title": "Remediation / Verification",
|
||
"latest": "Latest remediation: {kind} / {status}",
|
||
"verification": "Verification report: {report}; {summary}",
|
||
"note": "Note: {note}"
|
||
},
|
||
"remediationKinds": {
|
||
"live_env_rollback": "Live env rollback",
|
||
"git_adopted": "Git adopted",
|
||
"git_rollback": "Git rollback",
|
||
"zero_diff_pr_cleanup": "Zero-diff PR cleanup",
|
||
"manual_noop": "Manual no-op",
|
||
"unknown": "Unknown"
|
||
},
|
||
"remediationStatuses": {
|
||
"executed_unverified": "Executed, unverified",
|
||
"verified_no_drift": "Verified no drift",
|
||
"verification_failed": "Verification failed",
|
||
"record_failed": "Record failed",
|
||
"lookup_failed": "Lookup failed",
|
||
"unknown": "No record yet"
|
||
},
|
||
"actions": {
|
||
"record": "Record handoff",
|
||
"recording": "Recording",
|
||
"openDrift": "Open Drift",
|
||
"failed": "The handoff API did not respond, so human handoff cannot be claimed.",
|
||
"recorded": "Handoff stored: {recorded}",
|
||
"handoffStatus": "Handoff status: {status}"
|
||
}
|
||
},
|
||
"recurrence": {
|
||
"title": "Recurring Alert Work Items",
|
||
"subtitle": "Turns run_completed_no_repair, failed repair, and manual gates into trackable work items",
|
||
"open": "Open {count}",
|
||
"automationGap": "No repair {count}",
|
||
"failed": "Failed {count}",
|
||
"sourceReview": "Source review {count}",
|
||
"sourceApplied": "Applied {count}",
|
||
"unavailable": "The recurrence API has not responded, so work item state cannot be claimed.",
|
||
"empty": "No open recurring-alert work items in the recent window.",
|
||
"occurrences": "{count}x",
|
||
"incident": "Incident: {incident}",
|
||
"matchedIncident": "Matched target: {incident}",
|
||
"stage": "Stage: {stage}",
|
||
"sourceEvent": "Source event: {event}",
|
||
"sourceRefs": "Source refs: {refs} (Sentry {sentry} / SignOz {signoz})",
|
||
"sourceFlow": {
|
||
"label": "Source flow: {status}",
|
||
"detail": "refs={refs}; Sentry={sentry}; SignOz={signoz}; event={event}",
|
||
"statuses": {
|
||
"applied": "Applied",
|
||
"reviewed": "Review recorded",
|
||
"review": "Awaiting match review",
|
||
"evidence": "Source evidence found",
|
||
"provider": "Provider received",
|
||
"waiting": "Waiting for source"
|
||
}
|
||
},
|
||
"workItem": "Work item: {id}",
|
||
"repair": "Repair status: {status}",
|
||
"reason": "Reason: {reason}",
|
||
"nextStep": "Next: {step}",
|
||
"sourceReviewDecision": "Source review: {decision} / {status}",
|
||
"sourceApplyStatus": "Source apply: {status} / {event}",
|
||
"openRun": "Open Run",
|
||
"openRuns": "Back to Runs",
|
||
"actions": {
|
||
"preview": "Preview",
|
||
"previewing": "Previewing",
|
||
"dryRun": "Dry-run",
|
||
"dryRunning": "Dry-running",
|
||
"handoff": "Handoff",
|
||
"handoffing": "Handing off",
|
||
"sourceAccept": "Record match",
|
||
"sourceAccepting": "Recording",
|
||
"sourceReject": "Reject source",
|
||
"sourceRejecting": "Rejecting",
|
||
"sourceApply": "Apply match",
|
||
"sourceApplying": "Applying",
|
||
"failed": "The safe preview / dry-run / handoff API did not respond, so the next step cannot be claimed.",
|
||
"allowed": "Safety gate passed",
|
||
"blocked": "Safety gate blocked",
|
||
"mode": "Mode: {mode}",
|
||
"previewResult": "Result: {result}",
|
||
"writes": "Writes: incident={incident}; autoRepair={autoRepair}; ticket={ticket}",
|
||
"sourceWrites": "Source event writeback: {source}",
|
||
"history": "Dry-run stored: {recorded}",
|
||
"sourceReviewResult": "Source review: {decision} / {status} / Incident {incident}",
|
||
"sourceApplyResult": "Source match apply: {status} / {event}",
|
||
"handoffStatus": "Handoff: {kind} / {status}",
|
||
"externalTicket": "External ticket created: {created}",
|
||
"ticket": "Ticket preview: {title}",
|
||
"modes": {
|
||
"auto": "Auto select",
|
||
"ticket": "Ticket preview",
|
||
"reverify": "Reverify",
|
||
"approval_review": "Approval review",
|
||
"observe": "Observe",
|
||
"unknown": "Unknown"
|
||
},
|
||
"handoffKinds": {
|
||
"ticket_proposal": "Ticket proposal",
|
||
"manual_review": "Manual review",
|
||
"unknown": "Unknown"
|
||
},
|
||
"handoffStatuses": {
|
||
"ready_to_record": "Ready to record",
|
||
"recorded": "Recorded",
|
||
"record_failed": "Record failed",
|
||
"blocked": "Blocked",
|
||
"unknown": "Unknown"
|
||
},
|
||
"previews": {
|
||
"ticket_preview_ready": "Ticket preview ready",
|
||
"reverify_preview_ready": "Reverify preview ready",
|
||
"approval_review_required": "Approval review required",
|
||
"observe_only": "Observe only",
|
||
"blocked": "Blocked",
|
||
"unknown": "Unknown"
|
||
},
|
||
"sourceDecisions": {
|
||
"accepted": "Match accepted",
|
||
"rejected": "Rejected",
|
||
"needs_more_evidence": "Needs more evidence",
|
||
"unknown": "Unknown"
|
||
},
|
||
"sourceRecordStatuses": {
|
||
"recorded": "Recorded",
|
||
"record_failed": "Record failed",
|
||
"blocked": "Blocked",
|
||
"accepted": "Match accepted",
|
||
"rejected": "Rejected",
|
||
"needs_more_evidence": "Needs more evidence",
|
||
"unknown": "Unknown"
|
||
},
|
||
"sourceApplyStatuses": {
|
||
"ready_to_apply": "Ready to apply",
|
||
"applied": "Applied",
|
||
"partial": "Partially recorded",
|
||
"record_failed": "Record failed",
|
||
"blocked": "Blocked",
|
||
"unknown": "Unknown"
|
||
}
|
||
},
|
||
"statuses": {
|
||
"auto_repair_verified": "Verified repair",
|
||
"auto_repair_succeeded_unverified": "Repair needs verification",
|
||
"auto_repair_failed": "Repair failed",
|
||
"auto_repair_recorded": "Repair recorded",
|
||
"manual_gate": "Manual gate needed",
|
||
"investigating": "Investigating",
|
||
"run_completed_no_repair": "Run completed without repair",
|
||
"source_correlation_review": "Source evidence needs matching",
|
||
"source_correlation_accepted": "Source match recorded",
|
||
"source_correlation_rejected": "Source match rejected",
|
||
"source_correlation_applied": "Source match applied",
|
||
"no_repair_record": "No repair record",
|
||
"unknown": "Unknown"
|
||
},
|
||
"reasons": {
|
||
"auto_repair_missing_verification": "Auto-repair lacks verification",
|
||
"auto_repair_failed": "Auto-repair failed",
|
||
"auto_repair_record_needs_review": "Repair record needs review",
|
||
"approval_required": "Approval required",
|
||
"run_still_investigating": "Run is still investigating",
|
||
"completed_run_without_auto_repair": "Run completed without an auto-repair record",
|
||
"provider_native_evidence_unlinked": "Provider-native source evidence is stored but not matched to an Incident",
|
||
"provider_native_evidence_accepted": "Provider source was matched by an operator",
|
||
"provider_native_evidence_rejected": "Provider source was rejected and not adopted as Incident evidence",
|
||
"provider_native_evidence_needs_more_evidence": "Provider source needs more evidence before matching",
|
||
"provider_native_evidence_link_applied": "Provider source link event was appended",
|
||
"incident_without_repair_record": "Incident has no repair record",
|
||
"none": "None",
|
||
"unknown": "Unknown"
|
||
},
|
||
"nextSteps": {
|
||
"run_post_verification": "Run post-execution verification",
|
||
"triage_failed_repair": "Triage failed repair",
|
||
"review_repair_record": "Review repair record",
|
||
"review_approval": "Review approval",
|
||
"wait_for_run_completion": "Wait for Run completion",
|
||
"create_repair_ticket": "Create repair ticket",
|
||
"review_provider_source_match": "Review source-to-Incident match",
|
||
"verify_source_match_in_status_chain": "Verify source match in the status chain",
|
||
"verify_source_link_in_status_chain": "Verify source link event in the status chain",
|
||
"monitor_for_new_provider_evidence": "Wait for new provider evidence",
|
||
"collect_more_source_evidence": "Collect more source evidence",
|
||
"triage_missing_repair_record": "Fill missing repair record",
|
||
"none": "None"
|
||
}
|
||
}
|
||
},
|
||
"listEvidence": {
|
||
"column": "AI Evidence",
|
||
"callbackColumn": "TG Callback",
|
||
"sourceFlow": {
|
||
"column": "Source Flow",
|
||
"notLinked": "incident not linked",
|
||
"detail": "providers={providers}; d/c/a={direct}/{candidate}/{applied}",
|
||
"statuses": {
|
||
"verified": "Verified",
|
||
"applied": "Applied",
|
||
"evidence": "Evidence found",
|
||
"provider": "Provider received",
|
||
"waiting": "Waiting",
|
||
"loading": "Loading"
|
||
}
|
||
},
|
||
"count": "{count} dry-runs",
|
||
"mcpCount": "{count} MCP investigations",
|
||
"route": "MCP: {route}",
|
||
"emptyShort": "No AI evidence linked",
|
||
"manualGate": "Next: human approval",
|
||
"filters": {
|
||
"label": "AI evidence filter",
|
||
"all": "All AI evidence",
|
||
"incidentLabel": "Incident ID filter",
|
||
"incidentPlaceholder": "Enter Incident ID"
|
||
},
|
||
"incident": {
|
||
"column": "Incident",
|
||
"empty": "Not linked",
|
||
"filterTitle": "Show only {incidentId}",
|
||
"more": "+{count} more"
|
||
},
|
||
"statuses": {
|
||
"noEvidence": "No dry-run yet",
|
||
"mcpObserved": "MCP investigated",
|
||
"readOnlyDryRun": "AI dry-run: read-only",
|
||
"writeObserved": "Write flag observed",
|
||
"blocked": "Dry-run blocked",
|
||
"observed": "Evidence linked"
|
||
},
|
||
"details": {
|
||
"noEvidence": "This row is not linked to ADR-100 remediation dry-run or MCP investigation evidence yet.",
|
||
"mcpObserved": "AI has gathered evidence through MCP / self-built MCP, but no remediation dry-run or execution has started.",
|
||
"readOnlyDryRun": "AI has run the remediation dry-run and the latest record did not write incident or auto-repair state.",
|
||
"writeObserved": "The latest remediation record contains write flags; verify the state-change source before approval.",
|
||
"blocked": "The remediation dry-run failed or was blocked by a gate; human review is required.",
|
||
"observed": "This row is linked to remediation history; open Run Timeline for the full evidence."
|
||
},
|
||
"summary": {
|
||
"mcpObserved": "MCP investigated",
|
||
"mcpObservedDetail": "List rows are linked to MCP / self-built MCP investigation evidence",
|
||
"readOnly": "Read-only dry-run",
|
||
"readOnlyDetail": "Latest evidence shows AI trialed the action without writing state",
|
||
"manualGate": "Human gate",
|
||
"manualGateDetail": "AI is stopped at the approval gate and needs approve / reject",
|
||
"writeObserved": "Write flags",
|
||
"writeObservedDetail": "Verify whether this is the expected auto-repair result",
|
||
"callbackObserved": "TG Callback",
|
||
"callbackObservedDetail": "Detail / history replies are tracked; failed {failed}",
|
||
"noEvidence": "Missing AI evidence",
|
||
"noEvidenceDetail": "The list row is not linked to ADR-100 dry-run or MCP evidence yet",
|
||
"approvalReadOnlyDetail": "Read-only remediation evidence is visible before approval",
|
||
"approvalNoEvidenceDetail": "Approval still lacks AI evidence; inspect Run Timeline"
|
||
}
|
||
},
|
||
"sourceDossierCoverage": {
|
||
"title": "Source Dossier Coverage",
|
||
"subtitle": "Inbound alert dossiers, dedupe, and Sentry / SignOz references",
|
||
"total": "{count} items",
|
||
"empty": "No recent source event dossiers.",
|
||
"error": "Source dossier coverage failed to load: {error}",
|
||
"metrics": {
|
||
"sources": "Source events",
|
||
"refs": "Reference index",
|
||
"missingRefs": "Missing refs",
|
||
"duplicates": "Duplicate events",
|
||
"sentry": "Sentry refs",
|
||
"signoz": "SignOz refs"
|
||
},
|
||
"details": {
|
||
"latest": "Latest {time}",
|
||
"withRefs": "{count} items with source refs",
|
||
"missingEnvelope": "{count} items missing source envelope",
|
||
"redacted": "{count} items redacted",
|
||
"alertRefs": "{count} alert refs",
|
||
"limit": "Latest {count} item window"
|
||
},
|
||
"provider": {
|
||
"latest": "Latest {time}",
|
||
"refs": "Refs {count}",
|
||
"missing": "Missing {count}",
|
||
"redacted": "Redacted {count}",
|
||
"duplicates": "Duplicates {count}"
|
||
}
|
||
},
|
||
"eventRecurrence": {
|
||
"title": "Recurring Alert Links",
|
||
"subtitle": "Grouped by fingerprint / target resource with the latest Run stage",
|
||
"total": "{count} groups",
|
||
"empty": "No recent recurring alert links.",
|
||
"error": "Recurring alert links failed to load: {error}",
|
||
"metrics": {
|
||
"groups": "Link groups",
|
||
"recurrent": "Recurring groups",
|
||
"duplicates": "Duplicate events",
|
||
"linkedRuns": "Linked Runs",
|
||
"autoRepair": "Auto repair",
|
||
"sourceReview": "Source review",
|
||
"openWorkItems": "Open work items"
|
||
},
|
||
"details": {
|
||
"sourceEvents": "{count} source events",
|
||
"latest": "Latest {time}",
|
||
"unlinked": "{count} items not linked to a Run",
|
||
"limit": "Latest {count} item window",
|
||
"verifiedRepair": "{count} verified repair groups",
|
||
"sourceReview": "{count} Sentry / SignOz source groups need matching review",
|
||
"manualGates": "{count} manual gates"
|
||
},
|
||
"states": {
|
||
"pending": "Pending",
|
||
"running": "Running",
|
||
"waiting_tool": "Waiting for tool",
|
||
"waiting_approval": "Waiting approval",
|
||
"completed": "Completed",
|
||
"failed": "Failed",
|
||
"cancelled": "Cancelled",
|
||
"timeout": "Timed out",
|
||
"unlinked": "Not linked"
|
||
},
|
||
"repairStatuses": {
|
||
"no_incident_link": "No Incident link",
|
||
"auto_repair_verified": "Verified repair",
|
||
"auto_repair_succeeded_unverified": "Repair needs verification",
|
||
"auto_repair_failed": "Repair failed",
|
||
"auto_repair_recorded": "Repair recorded",
|
||
"manual_gate": "Manual gate needed",
|
||
"investigating": "Investigating",
|
||
"run_completed_no_repair": "Run completed without repair",
|
||
"source_correlation_review": "Source evidence needs matching",
|
||
"no_repair_record": "No repair record"
|
||
},
|
||
"item": {
|
||
"latest": "Latest {time}",
|
||
"duplicates": "Duplicates {count}",
|
||
"refs": "Refs {count}",
|
||
"linkedRuns": "Runs {count}",
|
||
"stage": "Stage {stage}",
|
||
"incident": "Incident {incidentId}",
|
||
"repair": "Repair {status}",
|
||
"openRun": "Open Run",
|
||
"noRun": "No Run yet",
|
||
"openWorkItem": "Open work item",
|
||
"noWorkItem": "No open work item"
|
||
}
|
||
},
|
||
"callbackReply": {
|
||
"count": "{total} items; fallback {fallback}; failed {failed}",
|
||
"emptyShort": "No detail / history callback yet",
|
||
"latest": "{action} · {incidentId}",
|
||
"needsHuman": "Callback failure needs human review",
|
||
"filters": {
|
||
"label": "TG Callback filter",
|
||
"all": "All TG callbacks"
|
||
},
|
||
"statuses": {
|
||
"noCallback": "No callback",
|
||
"sent": "Delivered",
|
||
"fallbackSent": "Fallback delivered",
|
||
"rescueSent": "Rescue delivered",
|
||
"failed": "Delivery failed",
|
||
"observed": "Recorded"
|
||
},
|
||
"details": {
|
||
"noCallback": "This run has no detail / history callback reply evidence yet.",
|
||
"sent": "The Telegram callback reply was delivered with the original format.",
|
||
"fallbackSent": "The Telegram HTML reply failed, then plain-text fallback was delivered.",
|
||
"rescueSent": "The Telegram fallback also failed, then rescue plain text was delivered.",
|
||
"failed": "The Telegram callback reply ultimately failed to deliver and needs human review.",
|
||
"observed": "The Telegram callback reply was recorded with a non-standard status."
|
||
},
|
||
"events": {
|
||
"title": "TG Callback Evidence",
|
||
"subtitle": "Detail / history reply evidence from the AwoooP outbound mirror",
|
||
"total": "{count} items",
|
||
"empty": "No callback reply evidence yet.",
|
||
"error": "Callback evidence failed to load: {error}",
|
||
"action": "Action: {action}",
|
||
"incident": "Incident: {incidentId}",
|
||
"sendStatus": "Send status: {status}",
|
||
"providerMessage": "Message: {messageId}",
|
||
"previewEmpty": "No preview",
|
||
"openRun": "Open Run",
|
||
"kmCompletion": {
|
||
"title": "KM Owner Review",
|
||
"status": "Status: {status}",
|
||
"counts": "ready {ready} / blocked {blocked} / completed {completed} / failed {failed}",
|
||
"guardrail": "Guardrail: writes_on_read={writesOnRead}; batch_writes_allowed={batchWrite}; manual_review_required={manualReview}",
|
||
"related": "{entryId} · {readiness} · {nextAction}",
|
||
"noRelated": "This incident has no matching owner-review completion item yet.",
|
||
"fetchFailed": "KM owner-review summary failed to load: {reason}",
|
||
"openWorkItem": "Open work item",
|
||
"statuses": {
|
||
"matched_owner_review": "Matched owner review",
|
||
"no_related_owner_review": "No matched owner review",
|
||
"fetch_failed": "Fetch failed",
|
||
"no_incident": "Missing incident",
|
||
"observed": "Recorded"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"aiRouteStatus": {
|
||
"title": "AI Provider Routing",
|
||
"subtitle": "Current policy and health checks across GCP-A, GCP-B, 111, and Gemini handoff order",
|
||
"selected": "Primary: {provider}",
|
||
"selectedEmpty": "Primary: --",
|
||
"empty": "AI provider route status is not available yet.",
|
||
"error": "AI provider route failed to load: {error}",
|
||
"badges": {
|
||
"active": "Active",
|
||
"standby": "Standby"
|
||
},
|
||
"fields": {
|
||
"workload": "Workload",
|
||
"primary": "Current Primary",
|
||
"reason": "Route Reason",
|
||
"checkedAt": "Checked at {time}",
|
||
"model": "Model: {model}",
|
||
"modelEmpty": "Model: --",
|
||
"routeError": "Route check failed: {error}",
|
||
"health": "Health: {status}",
|
||
"latency": "Latency: {latency}",
|
||
"noUrl": "No HTTP URL"
|
||
},
|
||
"health": {
|
||
"healthy": "Healthy",
|
||
"slow": "Slow",
|
||
"degraded": "Degraded",
|
||
"offline": "Offline",
|
||
"not_checked": "Standby not checked",
|
||
"unknown": "Unknown"
|
||
},
|
||
"roles": {
|
||
"primary": "First priority",
|
||
"secondary": "Second priority",
|
||
"local_fallback": "111 local fallback",
|
||
"final_fallback": "Gemini final fallback",
|
||
"ollama": "Ollama node"
|
||
}
|
||
},
|
||
"incidentEvidence": {
|
||
"title": "Incident Evidence",
|
||
"subtitle": "Telegram, Run, Approval, and Work Item share the same remediation evidence",
|
||
"empty": "--",
|
||
"incidentLabel": "Incident",
|
||
"notLinked": "No Incident linked",
|
||
"filterTitle": "Show only {incidentId}",
|
||
"more": "+{count} more",
|
||
"dryRuns": "Dry-run",
|
||
"route": "MCP Route",
|
||
"writes": "Write flags",
|
||
"writeFlags": "incident={incident} / autoRepair={autoRepair}",
|
||
"runLink": "Run Timeline"
|
||
},
|
||
"statusChain": {
|
||
"title": "AwoooP Status Chain",
|
||
"subtitle": "Source {source}; Source ID {sourceId}",
|
||
"empty": "This item is not linked to readable truth-chain / ADR-100 history yet.",
|
||
"emptyValue": "--",
|
||
"blockers": "Blockers",
|
||
"writeFlags": "incident={incident} / autoRepair={autoRepair}",
|
||
"human": {
|
||
"yes": "Needs human",
|
||
"no": "No human gate"
|
||
},
|
||
"fields": {
|
||
"stage": "Stage",
|
||
"repair": "AI Repair",
|
||
"verification": "Verification",
|
||
"nextStep": "Next Step",
|
||
"writes": "Write Flags",
|
||
"verdict": "Verdict"
|
||
},
|
||
"evidence": {
|
||
"autoRepair": "Auto-repair",
|
||
"ops": "Ops",
|
||
"mcp": "MCP",
|
||
"km": "KM",
|
||
"adr100": "ADR-100 Route"
|
||
},
|
||
"source": {
|
||
"status": "Source Link",
|
||
"verification": "Status-chain Verification",
|
||
"directCandidate": "Direct / Candidate / Applied",
|
||
"directCandidateValue": "{direct} / {candidate} / {applied}",
|
||
"latestApplied": "Latest Applied Event",
|
||
"providers": "Provider",
|
||
"flow": {
|
||
"providerIngress": "Provider Ingress",
|
||
"sourceEvidence": "Source Evidence",
|
||
"appliedVerification": "Applied-link Verification",
|
||
"providerDetail": "provider events={providerEvents}; ready providers={readyProviders}",
|
||
"verificationDetail": "latest={latest}",
|
||
"status": {
|
||
"ready": "ready",
|
||
"waiting": "waiting",
|
||
"needsReview": "needs review",
|
||
"applied": "applied"
|
||
}
|
||
},
|
||
"statuses": {
|
||
"linked": "Directly linked",
|
||
"candidateFound": "Candidate found",
|
||
"providerFreshNoMatch": "Provider fresh, no match",
|
||
"missing": "No match yet",
|
||
"noIncidentContext": "Missing incident context",
|
||
"fetchFailed": "Read failed"
|
||
},
|
||
"verificationStatuses": {
|
||
"appliedLinkVerified": "Applied and verified",
|
||
"directRefVerified": "Direct ref verified",
|
||
"candidateOnly": "Candidate only",
|
||
"providerFreshNoMatch": "Provider fresh, no match",
|
||
"missing": "No match yet",
|
||
"noIncidentContext": "Missing incident context",
|
||
"fetchFailed": "Read failed"
|
||
}
|
||
}
|
||
},
|
||
"runDetail": {
|
||
"back": "Back to Run Monitor",
|
||
"title": "Run Disposition Timeline",
|
||
"refresh": "Refresh",
|
||
"empty": "--",
|
||
"durationSeconds": "{seconds}s",
|
||
"errors": {
|
||
"title": "Failed to load run details",
|
||
"loadFailed": "Load failed"
|
||
},
|
||
"stats": {
|
||
"state": "Current State",
|
||
"timeline": "Timeline",
|
||
"mcpSteps": "MCP / Steps",
|
||
"duration": "Duration"
|
||
},
|
||
"summary": {
|
||
"title": "Run Summary",
|
||
"project": "Project",
|
||
"agent": "Agent",
|
||
"traceId": "Trace ID",
|
||
"trigger": "Trigger",
|
||
"triggerRef": "Trigger Ref",
|
||
"cost": "Cost",
|
||
"attempts": "Attempts",
|
||
"created": "Created",
|
||
"completed": "Completed",
|
||
"error": "Error"
|
||
},
|
||
"timeline": {
|
||
"title": "Disposition Timeline",
|
||
"lastUpdated": "Last updated {time}",
|
||
"count": "{count} items",
|
||
"empty": "No timeline records yet."
|
||
},
|
||
"gateway": {
|
||
"title": "MCP Gateway",
|
||
"emptyState": "No records",
|
||
"agent": "Agent",
|
||
"tool": "Tool",
|
||
"scope": "Scope",
|
||
"blockers": "Blockers",
|
||
"legacy": {
|
||
"only": "Legacy MCP only",
|
||
"total": "Legacy MCP",
|
||
"success": "Legacy success",
|
||
"failed": "Legacy failed",
|
||
"topTool": "Legacy tool"
|
||
},
|
||
"metrics": {
|
||
"firstClass": "First-class",
|
||
"policy": "Policy enforced",
|
||
"approvalExecutor": "Approval executor",
|
||
"legacyBridge": "Legacy bridge"
|
||
}
|
||
},
|
||
"remediation": {
|
||
"title": "Remediation Dry-run Evidence",
|
||
"empty": "This run is not linked to ADR-100 remediation dry-run history yet.",
|
||
"latest": "Latest dry-run",
|
||
"route": "MCP Route",
|
||
"preview": "Mode {mode}; preview {preview}",
|
||
"writes": "Writes: incident={incident}; autoRepair={autoRepair}",
|
||
"status": {
|
||
"linked": "Linked to remediation history",
|
||
"empty": "No remediation history"
|
||
},
|
||
"metrics": {
|
||
"incidents": "Incident",
|
||
"dryRuns": "Dry-run",
|
||
"tools": "Tools",
|
||
"writes": "Write flags"
|
||
}
|
||
},
|
||
"dossier": {
|
||
"title": "Source Event Dossier",
|
||
"empty": "This run is not linked to replayable inbound source events yet.",
|
||
"content": "Redacted Content",
|
||
"sourceRefs": "Source References",
|
||
"duplicate": "Duplicate",
|
||
"firstSeen": "First seen",
|
||
"status": {
|
||
"visible": "Recorded in truth-chain",
|
||
"empty": "No source"
|
||
},
|
||
"metrics": {
|
||
"sources": "Sources",
|
||
"refs": "References",
|
||
"redacted": "Redacted",
|
||
"duplicates": "Duplicates"
|
||
},
|
||
"fields": {
|
||
"stage": "Stage",
|
||
"severity": "Risk",
|
||
"namespace": "Namespace",
|
||
"target": "Target",
|
||
"hash": "Hash"
|
||
},
|
||
"refs": {
|
||
"alertIds": "Alert",
|
||
"approvalIds": "Approval",
|
||
"eventIds": "Event",
|
||
"fingerprints": "Fingerprint",
|
||
"incidentIds": "Incident",
|
||
"sentryIssueIds": "Sentry",
|
||
"signozAlerts": "SignOz"
|
||
}
|
||
},
|
||
"action": {
|
||
"eyebrow": "Next Decision",
|
||
"approval": {
|
||
"title": "Waiting for human approval",
|
||
"detail": "AI is stopped at the human gate and has not resumed. Approve or reject from the approval page; every decision is written back to Run state and audit.",
|
||
"primary": "Open approval decision"
|
||
},
|
||
"manual": {
|
||
"title": "Manual handoff required",
|
||
"detail": "AI cannot safely close the loop, or execution has failed / timed out. Return to Run Monitor to compare same-project work and hand off to the SRE war room when needed.",
|
||
"primary": "Back to Run Monitor"
|
||
},
|
||
"completed": {
|
||
"title": "Completed, ready for audit review",
|
||
"detail": "The run has converged. Use the timeline to verify MCP calls, outbound messages, and cost records before writing back to KM / Playbook.",
|
||
"primary": "Back to Run Monitor"
|
||
},
|
||
"running": {
|
||
"title": "AI is processing",
|
||
"detail": "The run is still active and this page refreshes periodically. If it stays running for too long, check heartbeat, MCP latency, and worker state.",
|
||
"primary": "Back to Run Monitor"
|
||
},
|
||
"observe": {
|
||
"title": "Observing",
|
||
"detail": "The run has not reached a human gate or terminal state. Follow the timeline to verify inbound events, tool calls, and outbound messages.",
|
||
"primary": "Back to Run Monitor"
|
||
},
|
||
"evidence": {
|
||
"inbound": "Inbound",
|
||
"outbound": "Outbound",
|
||
"mcp": "MCP Calls",
|
||
"steps": "Steps"
|
||
}
|
||
},
|
||
"statuses": {
|
||
"blocked": "Blocked",
|
||
"cancelled": "Cancelled",
|
||
"completed": "Completed",
|
||
"error": "Error",
|
||
"failed": "Failed",
|
||
"pending": "Pending",
|
||
"received": "Received",
|
||
"running": "Running",
|
||
"sent": "Sent",
|
||
"callbackReplySent": "Callback sent",
|
||
"callbackReplyFallbackSent": "Callback fallback",
|
||
"callbackReplyRescueSent": "Callback rescue",
|
||
"callbackReplyFailed": "Callback failed",
|
||
"shadow": "Shadow",
|
||
"success": "Success",
|
||
"timeout": "Timed out",
|
||
"warning": "Warning",
|
||
"waitingApproval": "Waiting approval"
|
||
}
|
||
},
|
||
"approvalDecision": {
|
||
"back": "Back to Approval Queue",
|
||
"viewTimeline": "View Run Timeline",
|
||
"eyebrow": "Human Approval Gate",
|
||
"title": "Approval Decision",
|
||
"timeout": "Approval Deadline",
|
||
"empty": "--",
|
||
"errors": {
|
||
"title": "Failed to load run data",
|
||
"loadFailed": "Load failed",
|
||
"missingProject": "Missing project_id; cannot submit approval decision",
|
||
"actionFailed": "Action failed"
|
||
},
|
||
"success": {
|
||
"approve": "Run approved. Returning to Timeline",
|
||
"reject": "Run rejected. Returning to Timeline"
|
||
},
|
||
"notWaiting": {
|
||
"title": "This run is not waiting for human approval",
|
||
"detail": "Current state is {state}. This page will not show approve / reject; return to Run Timeline for the latest state."
|
||
},
|
||
"remediation": {
|
||
"title": "Remediation Dry-run Evidence",
|
||
"empty": "This run is not linked to remediation dry-run history yet; check the Run Timeline source dossier and MCP Gateway before approval.",
|
||
"latest": "Latest dry-run",
|
||
"preview": "Mode {mode}; preview {preview}",
|
||
"writes": "Writes: incident={incident}; autoRepair={autoRepair}",
|
||
"status": {
|
||
"linked": "Linked to remediation history",
|
||
"empty": "No remediation history"
|
||
},
|
||
"metrics": {
|
||
"incidents": "Incident",
|
||
"dryRuns": "Dry-run",
|
||
"tools": "Tools"
|
||
}
|
||
},
|
||
"details": {
|
||
"title": "Run Details",
|
||
"runId": "Run ID",
|
||
"project": "Project",
|
||
"agent": "Agent",
|
||
"state": "State",
|
||
"traceId": "Trace ID",
|
||
"trigger": "Trigger",
|
||
"triggerRef": "Trigger Ref",
|
||
"cost": "Cost",
|
||
"attempts": "Attempts",
|
||
"created": "Created",
|
||
"timeout": "Timeout",
|
||
"error": "Error",
|
||
"empty": "Run data was not found."
|
||
},
|
||
"actions": {
|
||
"approve": "Approve",
|
||
"reject": "Reject"
|
||
},
|
||
"dialog": {
|
||
"close": "Close",
|
||
"cancel": "Cancel",
|
||
"runId": "Run ID:",
|
||
"approve": {
|
||
"title": "Confirm Approval",
|
||
"body": "After approval, the run resumes from the human gate and continues through Runtime / MCP Gateway.",
|
||
"warning": "This decision is written to Run state, approval token, and audit trail.",
|
||
"confirm": "Confirm Approval"
|
||
},
|
||
"reject": {
|
||
"title": "Confirm Rejection",
|
||
"body": "After rejection, the run is cancelled and will not continue automatic execution.",
|
||
"reason": "Rejection reason",
|
||
"placeholder": "Enter rejection reason...",
|
||
"warning": "The reason is written to the audit trail for later review in Run Timeline.",
|
||
"confirm": "Confirm Rejection"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|