| const defaults = { | |
| mode: 'auto', // 'auto' | 'external' | 'local' | 'custom' | |
| provider: 'deepseek', // for external: 'deepseek' | 'openrouter' | 'huggingface' | |
| apiKey: '', | |
| endpoint: 'http://localhost:11434', | |
| model: 'qwen3:8b', | |
| }; | |
| let _prefs = { ...defaults }; | |
| export function getPrefs() { | |
| return { ..._prefs }; | |
| } | |
| export function setPrefs(updates) { | |
| const allowed = ['mode', 'provider', 'apiKey', 'endpoint', 'model']; | |
| for (const key of allowed) { | |
| if (key in updates && updates[key] != null) { | |
| _prefs[key] = String(updates[key]); | |
| } | |
| } | |
| if (!['auto', 'external', 'local', 'custom'].includes(_prefs.mode)) _prefs.mode = 'auto'; | |
| if (!['deepseek', 'openrouter', 'huggingface'].includes(_prefs.provider)) _prefs.provider = 'deepseek'; | |
| return { ..._prefs }; | |
| } | |