From 49a8c8b148ba31eeacf264517aa75c8e3adc44fe Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Mon, 29 Dec 2025 10:35:46 +0100 Subject: [PATCH] refactor: Update ChatStore to leverage mcpStore for agentic flow --- tools/server/webui/src/lib/stores/chat.svelte.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/server/webui/src/lib/stores/chat.svelte.ts b/tools/server/webui/src/lib/stores/chat.svelte.ts index f00f418b4c..82210214af 100644 --- a/tools/server/webui/src/lib/stores/chat.svelte.ts +++ b/tools/server/webui/src/lib/stores/chat.svelte.ts @@ -1,6 +1,7 @@ import { DatabaseService, ChatService } from '$lib/services'; import { conversationsStore } from '$lib/stores/conversations.svelte'; import { config } from '$lib/stores/settings.svelte'; +import { mcpStore } from '$lib/stores/mcp.svelte'; import { contextSize, isRouterMode } from '$lib/stores/server.svelte'; import { selectedModelName, @@ -15,7 +16,7 @@ import { } from '$lib/utils'; import { SvelteMap } from 'svelte/reactivity'; import { DEFAULT_CONTEXT } from '$lib/constants/default-context'; -import { SYSTEM_MESSAGE_PLACEHOLDER } from '$lib/constants/ui'; +import { getAgenticConfig } from '$lib/config/agentic'; /** * chatStore - Active AI interaction and streaming state management @@ -692,6 +693,10 @@ class ChatStore { const abortController = this.getOrCreateAbortController(assistantMessage.convId); + // Get MCP client if agentic mode is enabled (store layer responsibility) + const agenticConfig = getAgenticConfig(config()); + const mcpClient = agenticConfig.enabled ? await mcpStore.ensureClient() : undefined; + await ChatService.sendMessage( allMessages, { @@ -810,7 +815,8 @@ class ChatStore { } }, assistantMessage.convId, - abortController.signal + abortController.signal, + mcpClient ?? undefined ); } @@ -1317,7 +1323,8 @@ class ChatStore { } }, msg.convId, - abortController.signal + abortController.signal, + undefined // No MCP for continue generation ); } catch (error) { if (!this.isAbortError(error)) console.error('Failed to continue message:', error);