From 91f16464bb7f0465502201d322ad6517cacdf3ff Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 14 Nov 2026 01:22:54 +0900 Subject: [PATCH] refac --- .../chat/MessageInput/TerminalMenu.svelte | 38 ++++++++------ .../layout/Sidebar/Folders/FolderModal.svelte | 52 ++++++++++++++----- 2 files changed, 63 insertions(+), 27 deletions(-) diff --git a/src/lib/components/chat/MessageInput/TerminalMenu.svelte b/src/lib/components/chat/MessageInput/TerminalMenu.svelte index f65eebc1cd..644bf27420 100644 --- a/src/lib/components/chat/MessageInput/TerminalMenu.svelte +++ b/src/lib/components/chat/MessageInput/TerminalMenu.svelte @@ -57,6 +57,10 @@ export let disabled = false; export let chatId: string | null = null; export let terminalContext: TerminalContext | null = null; + /** Also offers the working directory of the selected terminal. */ + export let showDirectory = true; + /** Replaces the icon button that opens the menu; receives the selected ID and its label. */ + export let trigger: import('svelte').Snippet<[string | null, string]> | undefined = undefined; // Connections the user may create terminals on; a terminal on one of them is theirs to manage. let writable: { id: string; name: string }[] = []; @@ -355,21 +359,25 @@ {:else} - - - + {#if $selectedTerminalId && selectedLabel} + {selectedLabel} + {/if} + + + {/if}
(null); + $: folderTerminal.set(data.terminal_id || null); + const folderTerminalSelection = { + subscribe: folderTerminal.subscribe, + set: (id: string | null) => { + if ((id ?? '') === data.terminal_id) return; + data.terminal_id = id ?? ''; + data.working_directory = ''; + data.model_ids = data.model_ids.filter((modelId) => !modelId.startsWith('agent:')); + } + }; + $: modelTerminalId = data.terminal_id; $: modelDirectory = data.working_directory; $: loadTerminalModels(show, modelTerminalId, modelDirectory); @@ -346,17 +361,30 @@ buttonClassName="w-full py-1 text-xs font-normal text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100 transition" >
- { - data.working_directory = ''; - data.model_ids = data.model_ids.filter((id) => !id.startsWith('agent:')); - }} - /> +
+ +
+ + {#snippet trigger(selected: string | null, label: string)} + + {/snippet} + +
+
{#if data.terminal_id}