import type { AgentThreadContext } from "../threads"; export const DEFAULT_LOCAL_SETTINGS: LocalSettings = { context: { model_name: "deepseek-v3.2", thinking_enabled: true, is_plan_mode: false, }, layout: { sidebar_collapsed: false, }, }; const LOCAL_SETTINGS_KEY = "deerflow.local-settings"; export interface LocalSettings { context: Omit; layout: { sidebar_collapsed: boolean; }; } export function getLocalSettings(): LocalSettings { if (typeof window === "undefined") { return DEFAULT_LOCAL_SETTINGS; } const json = localStorage.getItem(LOCAL_SETTINGS_KEY); try { if (json) { const settings = JSON.parse(json); const mergedSettings = { ...DEFAULT_LOCAL_SETTINGS, context: { ...DEFAULT_LOCAL_SETTINGS.context, ...settings.context, }, layout: { ...DEFAULT_LOCAL_SETTINGS.layout, ...settings.layout, }, }; return mergedSettings; } } catch {} return DEFAULT_LOCAL_SETTINGS; } export function saveLocalSettings(settings: LocalSettings) { localStorage.setItem(LOCAL_SETTINGS_KEY, JSON.stringify(settings)); }