// The per-user session token for the write endpoints (#128). A reviewer gets it by logging in // (LoginBar.tsx); the backend gates anything that spends the Anthropic key, burns CPU, or mutates // reviewer state, and attributes every confirmation to the token's account. Reads stay open, so the // app renders fine before anyone signs in. // // localStorage rather than sessionStorage: a reload shouldn't drop a reviewer out of their worklist. // The corpus is public de-identified TCGA data. const TOKEN_KEY = "endopath.apiToken"; export function getToken(): string { return localStorage.getItem(TOKEN_KEY) ?? ""; } export function setToken(token: string): void { localStorage.setItem(TOKEN_KEY, token); } export function clearToken(): void { localStorage.removeItem(TOKEN_KEY); }