/* Token gate: shown until an API token is supplied. Holds no data. Management actions * (spawn, approve, edit repos/servers) need the admin token; read-only views need the * plain auth token. The token lives only in localStorage on this device. */ "use client"; import { useState } from "react"; export function TokenGate({ error, onSubmit }: { error?: string; onSubmit: (token: string) => void }) { const [value, setValue] = useState(""); const submit = (e: React.FormEvent) => { e.preventDefault(); const t = value.trim(); if (t) onSubmit(t); }; return (
Claude Monitor

Paste your API token to continue. Management actions require the admin token; read-only views work with the plain auth token.

setValue(e.target.value)} autoFocus /> {error && (

{error}

)}
); }