mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-28 16:24:47 +08:00
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import type { AgentThreadContext } from "../threads";
|
|
|
|
export const DEFAULT_LOCAL_SETTINGS: LocalSettings = {
|
|
notification: {
|
|
enabled: true,
|
|
},
|
|
context: {
|
|
model_name: undefined,
|
|
mode: undefined,
|
|
},
|
|
layout: {
|
|
sidebar_collapsed: false,
|
|
},
|
|
};
|
|
|
|
const LOCAL_SETTINGS_KEY = "deerflow.local-settings";
|
|
|
|
export interface LocalSettings {
|
|
notification: {
|
|
enabled: boolean;
|
|
};
|
|
context: Omit<
|
|
AgentThreadContext,
|
|
"thread_id" | "is_plan_mode" | "thinking_enabled"
|
|
> & {
|
|
mode: "flash" | "thinking" | "pro" | undefined;
|
|
};
|
|
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,
|
|
},
|
|
notification: {
|
|
...DEFAULT_LOCAL_SETTINGS.notification,
|
|
...settings.notification,
|
|
},
|
|
};
|
|
return mergedSettings;
|
|
}
|
|
} catch {}
|
|
return DEFAULT_LOCAL_SETTINGS;
|
|
}
|
|
|
|
export function saveLocalSettings(settings: LocalSettings) {
|
|
localStorage.setItem(LOCAL_SETTINGS_KEY, JSON.stringify(settings));
|
|
}
|