import { useEffect, useMemo, useState } from 'react' import { Card } from '@/libs/frontend-ui-primitives' import { explorerFeaturePages } from '@/data/explorerOperations' import { getMissionControlRelays, getMissionControlRelayLabel, missionControlApi, type MissionControlBridgeStatusResponse, } from '@/services/api/missionControl' import { plannerApi, type InternalExecutionPlanResponse, type PlannerCapabilitiesResponse } from '@/services/api/planner' import { routesApi, type RouteMatrixResponse } from '@/services/api/routes' import OperationsPageShell, { MetricCard, StatusBadge, formatNumber, relativeAge, truncateMiddle, } from './OperationsPageShell' interface OperatorOperationsPageProps { initialBridgeStatus?: MissionControlBridgeStatusResponse | null initialRouteMatrix?: RouteMatrixResponse | null initialPlannerCapabilities?: PlannerCapabilitiesResponse | null initialInternalPlan?: InternalExecutionPlanResponse | null } function relayTone(status?: string): 'normal' | 'warning' | 'danger' { const normalized = String(status || 'unknown').toLowerCase() if (['degraded', 'stale', 'stopped', 'down'].includes(normalized)) return 'danger' if (['paused', 'starting', 'unknown'].includes(normalized)) return 'warning' return 'normal' } export default function OperatorOperationsPage({ initialBridgeStatus = null, initialRouteMatrix = null, initialPlannerCapabilities = null, initialInternalPlan = null, }: OperatorOperationsPageProps) { const [bridgeStatus, setBridgeStatus] = useState(initialBridgeStatus) const [routeMatrix, setRouteMatrix] = useState(initialRouteMatrix) const [plannerCapabilities, setPlannerCapabilities] = useState(initialPlannerCapabilities) const [internalPlan, setInternalPlan] = useState(initialInternalPlan) const [loadingError, setLoadingError] = useState(null) const page = explorerFeaturePages.operator useEffect(() => { let cancelled = false const load = async () => { const [bridgeResult, routesResult, capabilitiesResult, planResult] = await Promise.allSettled([ missionControlApi.getBridgeStatus(), routesApi.getRouteMatrix(), plannerApi.getCapabilities(), plannerApi.getInternalExecutionPlan(), ]) if (cancelled) return if (bridgeResult.status === 'fulfilled') setBridgeStatus(bridgeResult.value) if (routesResult.status === 'fulfilled') setRouteMatrix(routesResult.value) if (capabilitiesResult.status === 'fulfilled') setPlannerCapabilities(capabilitiesResult.value) if (planResult.status === 'fulfilled') setInternalPlan(planResult.value) const failedCount = [bridgeResult, routesResult, capabilitiesResult, planResult].filter( (result) => result.status === 'rejected' ).length if (failedCount === 4) { setLoadingError('Operator telemetry is temporarily unavailable from the public explorer APIs.') } } load().catch((error) => { if (!cancelled) { setLoadingError(error instanceof Error ? error.message : 'Operator telemetry is temporarily unavailable from the public explorer APIs.') } }) return () => { cancelled = true } }, []) const relays = useMemo(() => getMissionControlRelays(bridgeStatus), [bridgeStatus]) const relayEntries = useMemo(() => Object.entries(relays || {}), [relays]) const totalQueue = useMemo( () => relayEntries.reduce((sum, [, relay]) => { const queueSize = relay.url_probe?.body?.queue?.size ?? relay.file_snapshot?.queue?.size ?? 0 return sum + queueSize }, 0), [relayEntries] ) const providers = plannerCapabilities?.providers || [] const liveProviders = providers.filter((provider) => provider.live) return ( {loadingError ? (

{loadingError}

) : null}
{relayEntries.map(([key, relay]) => { const snapshot = relay.url_probe?.body || relay.file_snapshot const status = snapshot?.status || 'unknown' return (
{getMissionControlRelayLabel(key)}
{snapshot?.destination?.chain_name || 'Unknown destination'} · queue {formatNumber(snapshot?.queue?.size ?? 0)}
Last source poll {relativeAge(snapshot?.last_source_poll?.at)} · processed {formatNumber(snapshot?.queue?.processed ?? 0)}
) })} {relayEntries.length === 0 ? (

No relay lane data available.

) : null}
Internal execution plan
Contract {truncateMiddle(internalPlan?.execution?.contractAddress)} · {formatNumber(internalPlan?.plannerResponse?.steps?.length)} planner steps
Live providers
{liveProviders.map((provider) => ( {provider.provider} ))} {liveProviders.length === 0 ? ( No live providers reported. ) : null}
) }