import { mkdir, readFile, writeFile } from 'node:fs/promises'; import { dirname, join } from 'node:path'; import { homedir } from 'node:os'; export const DEFAULT_STATE_PATH = join(homedir(), '.config', 'sin', 'sin-github-issues', 'onboarding-state.json'); export type OnboardingState = { ownerEmail?: string; notes?: string; defaultRepo?: string; browserProfileEmail?: string; browserProfileDirectory?: string; updatedAt?: string; }; export async function readState(): Promise { try { return JSON.parse(await readFile(DEFAULT_STATE_PATH, 'utf8')) as OnboardingState; } catch { return null; } } export async function writeState(state: OnboardingState) { await mkdir(dirname(DEFAULT_STATE_PATH), { recursive: true }); await writeFile(DEFAULT_STATE_PATH, `${JSON.stringify(state, null, 2)}\n`, 'utf8'); return state; } export function clean(value: string | undefined) { const normalized = String(value || '').trim(); return normalized || undefined; }