From 55c202e841e76cd69679206cd0ecb4a65b039ea4 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 13 Aug 2026 21:48:01 -0600 Subject: [PATCH] refac --- src/lib/components/chat/Chat.svelte | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 2c08b4a1b4..9fb1bd148e 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -83,7 +83,12 @@ } from '$lib/apis/chats'; import { generateOpenAIChatCompletion } from '$lib/apis/openai'; import { processUrl, processWebSearch } from '$lib/apis/retrieval'; - import { getAndUpdateUserLocation, getUserInfoById, getUserSettings } from '$lib/apis/users'; + import { + getAndUpdateUserLocation, + getUserInfoById, + getUserSettings, + updateUserSettings + } from '$lib/apis/users'; import { generateQueries, chatAction, @@ -415,13 +420,28 @@ let loadedChatIdProp = ''; let currentDraftKey = ''; - $: toolApprovalMode = params?.tool_approval_mode === 'ask' ? 'ask' : 'full'; + $: toolApprovalMode = + (params?.tool_approval_mode ?? $settings?.params?.tool_approval_mode) === 'ask' + ? 'ask' + : 'full'; - const handleToolApprovalModeChange = (mode) => { + const handleToolApprovalModeChange = async (mode) => { + const tool_approval_mode = mode === 'ask' ? 'ask' : 'full'; params = { ...params, - tool_approval_mode: mode === 'ask' ? 'ask' : 'full' + tool_approval_mode }; + + settings.set({ + ...$settings, + params: { + ...($settings?.params ?? {}), + tool_approval_mode + } + }); + await updateUserSettings(localStorage.token, { ui: $settings }).catch((err) => { + console.error('[tool permissions settings]', err); + }); }; const parseToolArguments = (args) => {