diff --git a/src/js/sw/surfaces/admin/settings.js b/src/js/sw/surfaces/admin/settings.js index 0e6dcb8..ddf907f 100644 --- a/src/js/sw/surfaces/admin/settings.js +++ b/src/js/sw/surfaces/admin/settings.js @@ -6,7 +6,6 @@ const { useState, useEffect, useCallback } = hooks; export default function SettingsSection() { const [cfg, setCfg] = useState({}); - const [models, setModels] = useState([]); const [surfaces, setSurfaces] = useState([]); const [vault, setVault] = useState(null); const [loading, setLoading] = useState(true); @@ -14,9 +13,8 @@ export default function SettingsSection() { const load = useCallback(async () => { try { - const [s, m, v, surfList] = await Promise.all([ + const [s, v, surfList] = await Promise.all([ sw.api.admin.settings.get(), - sw.api.admin.models.list().catch(() => []), sw.api.admin.vault.status().catch(() => null), sw.api.admin.surfaces.list().catch(() => []), ]); @@ -28,11 +26,6 @@ export default function SettingsSection() { default_surface: cfg_.default_surface?.id || '', allow_registration: pol.allow_registration === 'true', registration_default_state: cfg_.registration_default_state || 'pending', - system_prompt: cfg_.system_prompt || '', - default_model: pol.default_model || '', - allow_user_byok: pol.allow_user_byok === 'true', - allow_user_personas: pol.allow_user_personas === 'true', - allow_kb_direct_access: pol.allow_kb_direct_access === 'true' || pol.kb_direct_access === 'true', banner_enabled: !!cfg_.banner?.enabled, banner_text: cfg_.banner?.text || '', banner_bg: cfg_.banner?.bg || '#007a33', @@ -43,17 +36,7 @@ export default function SettingsSection() { message_variant: cfg_.message?.variant || 'info', footer_enabled: !!cfg_.footer?.enabled, footer_text: cfg_.footer?.text || '', - search_provider: cfg_.search_provider || 'duckduckgo', - search_endpoint: cfg_.search_endpoint || '', - search_api_key: cfg_.search_api_key || '', - search_max_results: cfg_.search_max_results || 5, - compaction_enabled: !!cfg_.auto_compaction_enabled, - compaction_threshold: cfg_.compaction_threshold || 70, - compaction_cooldown: cfg_.compaction_cooldown || 30, - memory_extraction_enabled: !!cfg_.memory_extraction_enabled, - memory_auto_approve: !!cfg_.memory_auto_approve, }); - setModels(m || []); setVault(v); } catch (e) { sw.toast(e.message, 'error'); } finally { setLoading(false); } @@ -69,16 +52,9 @@ export default function SettingsSection() { // Default surface await sw.api.admin.settings.update('default_surface', { value: cfg.default_surface ? { id: cfg.default_surface } : null }); - // Policies + // Registration await sw.api.admin.settings.update('allow_registration', { value: String(cfg.allow_registration) }); await sw.api.admin.settings.update('registration_default_state', { value: cfg.registration_default_state }); - await sw.api.admin.settings.update('allow_user_byok', { value: String(cfg.allow_user_byok) }); - await sw.api.admin.settings.update('allow_user_personas', { value: String(cfg.allow_user_personas) }); - await sw.api.admin.settings.update('allow_kb_direct_access', { value: String(cfg.allow_kb_direct_access) }); - - // System prompt & default model - await sw.api.admin.settings.update('system_prompt', { value: cfg.system_prompt }); - if (cfg.default_model) await sw.api.admin.settings.update('default_model', { value: cfg.default_model }); // Banner await sw.api.admin.settings.update('banner', { value: { @@ -102,23 +78,6 @@ export default function SettingsSection() { text: cfg.footer_text, }}); - // Search - await sw.api.admin.settings.update('search_provider', { value: cfg.search_provider }); - if (cfg.search_provider === 'searxng') { - await sw.api.admin.settings.update('search_endpoint', { value: cfg.search_endpoint }); - await sw.api.admin.settings.update('search_api_key', { value: cfg.search_api_key }); - } - await sw.api.admin.settings.update('search_max_results', { value: cfg.search_max_results }); - - // Compaction - await sw.api.admin.settings.update('auto_compaction_enabled', { value: String(cfg.compaction_enabled) }); - await sw.api.admin.settings.update('compaction_threshold', { value: cfg.compaction_threshold }); - await sw.api.admin.settings.update('compaction_cooldown', { value: cfg.compaction_cooldown }); - - // Memory - await sw.api.admin.settings.update('memory_extraction_enabled', { value: String(cfg.memory_extraction_enabled) }); - await sw.api.admin.settings.update('memory_auto_approve', { value: String(cfg.memory_auto_approve) }); - sw.toast('Settings saved', 'success'); } catch (e) { sw.toast(e.message, 'error'); } finally { setSaving(false); } @@ -155,23 +114,6 @@ export default function SettingsSection() { -

System Prompt

- -
- -

Default Model

- -
- -

Policies

- - - -
-

Environment Banner

${cfg.banner_enabled && html` @@ -217,36 +159,6 @@ export default function SettingsSection() { `}
-

Web Search

-
- -
- ${cfg.search_provider === 'searxng' && html` -
set('search_endpoint', e.target.value)} placeholder="https://searxng.example.com" />
-
set('search_api_key', e.target.value)} placeholder="Optional" />
- `} -
set('search_max_results', parseInt(e.target.value) || 5)} />
-
- -

Auto-Compaction

- - ${cfg.compaction_enabled && html` -
-
set('compaction_threshold', parseInt(e.target.value))} />
-
set('compaction_cooldown', parseInt(e.target.value))} />
-
- `} -
- -

Memory Extraction

- - ${cfg.memory_extraction_enabled && html` - - `} -
-

Encryption Vault

${vault ? html`
Key set: ${vault.encryption_key_set ? 'Yes' : 'No'} \u2022 User vaults: ${vault.user_vaults_count ?? '?'}
`