import type { AuthResult } from '../auth.js'; export interface AuthContext { gateway: string; session: AuthResult; cookie: string; } /** * Load and validate the user's auth session. * Exits with an error message if not signed in or session expired. */ export async function withAuth(gateway: string): Promise { const { loadSession, validateSession } = await import('../auth.js'); const session = loadSession(gateway); if (!session) { console.error('Not signed in. Run `mosaic login` first.'); process.exit(1); } const valid = await validateSession(gateway, session.cookie); if (!valid) { console.error('Session expired. Run `mosaic login` again.'); process.exit(1); } return { gateway, session, cookie: session.cookie }; }