import { startTransition, useEffect, useMemo, useState } from 'react' import { ApiError, fetchHealth, fetchTasks, getApiInfo } from './api/client' import { ApiOpsTab } from './components/ApiOpsTab' import { BaselineArenaTab } from './components/BaselineArenaTab' import { ProtocolTab } from './components/ProtocolTab' import { QueryWorkbenchTab } from './components/QueryWorkbenchTab' import { SqlLandingPage } from './components/SqlLandingPage' import { TaskAtlasTab } from './components/TaskAtlasTab' import type { HealthStatus, TaskInfo } from './types' type Tab = 'lab' | 'atlas' | 'baseline' | 'protocol' | 'ops' const TAB_LABELS: Record = { lab: 'QUERY LAB', atlas: 'TASK ATLAS', baseline: 'BASELINE ARENA', protocol: 'AGENT PROTOCOL', ops: 'API OPS', } const TAB_ICONS: Record = { lab: '⌘', atlas: '◫', baseline: '▣', protocol: '⟟', ops: '◌', } export default function App() { const [showLanding, setShowLanding] = useState(true) const [tab, setTab] = useState('lab') const [tasks, setTasks] = useState([]) const [selectedTask, setSelectedTask] = useState('task_1') const [tasksError, setTasksError] = useState(null) const [health, setHealth] = useState('loading') const [healthPayload, setHealthPayload] = useState('Loading…') const apiInfo = getApiInfo() useEffect(() => { void fetchHealth() .then((payload) => { setHealth(payload.status === 'ok' ? 'ok' : 'error') setHealthPayload(JSON.stringify(payload)) }) .catch((error: unknown) => { setHealth('error') setHealthPayload(error instanceof Error ? error.message : String(error)) }) }, []) useEffect(() => { void fetchTasks() .then((nextTasks) => { setTasks(nextTasks) setTasksError(null) if (nextTasks.length > 0) { startTransition(() => { setSelectedTask((current) => nextTasks.some((task) => task.id === current) ? current : nextTasks[0].id, ) }) } }) .catch((error: unknown) => { if (error instanceof ApiError) { setTasksError(`${error.message} (url: ${error.url})`) return } setTasksError(String(error)) }) }, []) const selectedTaskInfo = useMemo( () => tasks.find((task) => task.id === selectedTask), [selectedTask, tasks], ) const tabClass = (value: Tab) => `px-5 py-2.5 text-sm font-medium rounded-lg transition-colors whitespace-nowrap ${ tab === value ? 'bg-zinc-800 text-white' : 'text-zinc-500 hover:text-zinc-300 hover:bg-zinc-900/50' }` if (showLanding) { return setShowLanding(false)} /> } return (

SQL REPAIR COMMAND

OpenEnv Query Recovery Console

{health === 'ok' ? 'SPACE HEALTHY' : health === 'loading' ? 'CHECKING HEALTH' : 'HEALTH WARNING'}
GitHub ↗ API Docs ↗
{(Object.keys(TAB_LABELS) as Tab[]).map((value) => ( ))}
{tasksError && (
Could not connect to backend: {tasksError}
API mode: {apiInfo.mode} | base: {apiInfo.base} | VITE_API_URL: {apiInfo.env}
)} {!tasksError && tasks.length === 0 && (
Connecting to the SQL task grid…
)} {tasks.length > 0 && ( <>

Loaded Mission

{selectedTaskInfo?.name ?? selectedTask}

Live health payload: {healthPayload}
{tab === 'lab' && ( )} {tab === 'atlas' && ( { startTransition(() => { setSelectedTask(taskId) setTab('lab') }) }} selectedTask={selectedTask} tasks={tasks} /> )} {tab === 'baseline' && } {tab === 'protocol' && } {tab === 'ops' && ( )} )}
) }