import { TONE_SURFACE } from "~/ui/tones"; import { useDemoTimeline } from "~/hooks/use-demo-timeline"; import { ProgressTrack } from "~/ui/ProgressTrack"; import { StatusDot } from "~/ui/StatusDot"; import { cn } from "~/utils/cn"; import { DemoWindow } from "../DemoWindow"; const STEPS = 4; const INTERVAL_MS = 1300; const ANALYZING_AT = 1; const SCORED_AT = 2; const REVEALED_AT = 3; const CONFLICT = [ { text: "<<<<<<< main", tone: "text-kumo-subtle" }, { text: "const TIMEOUT_MS = 30_000;", tone: "text-kumo-danger" }, { text: "=======", tone: "text-kumo-subtle" }, { text: "const TIMEOUT_MS = Number(env.TIMEOUT ?? 15_000);", tone: "text-kumo-success" }, { text: ">>>>>>> feat/configurable-timeout", tone: "text-kumo-subtle" }, ] as const; const CANDIDATES = [ { label: "Keep env override, default 30s", percent: 94 }, { label: "Keep main", percent: 4 }, ] as const; export function AiDemo({ className }: { className?: string }) { const step = useDemoTimeline(STEPS, INTERVAL_MS); const resolved = step >= STEPS; return (
{CONFLICT.map((line) => (

{line.text}

))}

= SCORED_AT ? "success" : step >= ANALYZING_AT ? "in_progress" : "queued"} /> {step >= SCORED_AT ? "Candidates scored" : "Analyzing conflicts"}

{resolved ? "Clears the 0.8 confidence bar · committed as a merge, CI running" : "Waiting for a confident answer"}

); }