import { AlertCircle } from 'lucide-react' import { useState } from 'react' import { type CSSProperties } from 'react' import { HackeryButton } from '../components/hackery-button' import { launchHermesDesktop } from '../store' /* * Success screen. HERMES AGENT wordmark stays as the visual anchor * (same Collapse Bold treatment as Welcome + the desktop chat intro), * with a status line below. * * Launching the desktop can fail (e.g. Stage-Desktop was skipped and * Hermes.exe doesn't exist). We catch the Tauri error and surface it * inline rather than silently doing nothing — the previous version * had `onClick={() => void launchHermesDesktop()}` which swallowed * the rejection and left the user staring at an unresponsive button. */ export default function Success() { const [error, setError] = useState(null) const [launching, setLaunching] = useState(false) async function handleLaunch() { setError(null) setLaunching(true) try { await launchHermesDesktop() // On success the installer exits — control never returns here. } catch (e) { const msg = e instanceof Error ? e.message : String(e) setError(msg) setLaunching(false) } } return (

Hermes is ready

You can launch from here, or any time from your terminal with{' '} hermes desktop.

void handleLaunch()} /> {error && (
Couldn’t launch the desktop app
{error}
)}
) }