import { readFileSync, writeFileSync, mkdirSync } from 'fs'; import { dirname, resolve } from 'path'; export interface Preferences { modelTier?: string; } export function loadPreferences(dataDir: string): Preferences { const filePath = resolve(dataDir, 'preferences.json'); try { const raw = readFileSync(filePath, 'utf-8'); return JSON.parse(raw) as Preferences; } catch { return {}; } } export function savePreference(dataDir: string, key: string, value: unknown): void { const filePath = resolve(dataDir, 'preferences.json'); let prefs: Record = {}; try { prefs = JSON.parse(readFileSync(filePath, 'utf-8')); } catch { // start fresh } prefs[key] = value; mkdirSync(dirname(filePath), { recursive: true }); writeFileSync(filePath, JSON.stringify(prefs, null, 2) + '\n'); }