diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 46932e30dc..a222783be5 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -1014,7 +1014,7 @@ } tools.set(await getTools(localStorage.token)); - } + }; initialize(); return () => { @@ -1031,7 +1031,7 @@ dropzoneElement.removeEventListener('drop', onDrop); dropzoneElement.removeEventListener('dragleave', onDragLeave); } - } + }; }); @@ -1809,7 +1809,9 @@ {#if (!history?.currentId || history.messages[history.currentId]?.done == true) && ($_user?.role === 'admin' || ($_user?.permissions?.chat?.stt ?? true))} - + {#if ($terminalServers ?? []).length > 0 || ($settings?.terminalServers ?? []).some((s) => s.url)} + + {/if} diff --git a/src/lib/components/chat/MessageInput/TerminalMenu.svelte b/src/lib/components/chat/MessageInput/TerminalMenu.svelte index aebdb758de..bfe4814231 100644 --- a/src/lib/components/chat/MessageInput/TerminalMenu.svelte +++ b/src/lib/components/chat/MessageInput/TerminalMenu.svelte @@ -84,119 +84,56 @@ $: selectedDirectTerminal = directTerminals.find((t) => t.url === $selectedTerminalId); $: selectedLabel = - selectedSystemTerminal?.name ?? - selectedDirectTerminal?.name ?? - selectedDirectTerminal?.url?.replace(/^https?:\/\//, '') ?? - null; + selectedSystemTerminal?.name || + selectedSystemTerminal?.id || + selectedDirectTerminal?.name || + selectedDirectTerminal?.url?.replace(/^https?:\/\//, '') || + $i18n.t('Terminal'); - - - - - {#if $selectedTerminalId && selectedLabel} - {selectedLabel} - {/if} - - + + + + + - - - - {#if directTerminals.length > 0 && ($user?.role === 'admin' || ($user?.permissions?.features?.direct_tool_servers ?? true))} - - {selectedLabel} - {$i18n.t('Direct')} - - - { - show = false; - showSettings.set(true); - }} - > - - - - - - - - {#each directTerminals as terminal} - selectDirect(terminal)} - > - - - {terminal.name || terminal.url.replace(/^https?:\/\//, '')} - - {#if $selectedTerminalId === terminal.url} - - - - - - {/if} - - {/each} - - {#if directTerminals.length > 0 && systemTerminals.length > 0} - {/if} - {/if} + + - - {#if systemTerminals.length > 0} - - - {$i18n.t('System')} - - {#if $user?.role === 'admin'} + + + + {#if directTerminals.length > 0 && ($user?.role === 'admin' || ($user?.permissions?.features?.direct_tool_servers ?? true))} + + + {$i18n.t('Direct')} + { show = false; - goto('/admin/settings/integrations'); + showSettings.set(true); }} > - {/if} - + - {#each systemTerminals as terminal} - selectSystem(terminal)} - > - - - {terminal.name || $i18n.t('Terminal')} - - {#if $selectedTerminalId === terminal.id} - - selectDirect(terminal)} + > + + + {terminal.name || terminal.url.replace(/^https?:\/\//, '')} - - + {#if $selectedTerminalId === terminal.url} + + + + + + {/if} + + {/each} + + {#if directTerminals.length > 0 && systemTerminals.length > 0} + + {/if} + {/if} + + + {#if systemTerminals.length > 0} + + + {$i18n.t('System')} + + {#if $user?.role === 'admin'} + + { + show = false; + goto('/admin/settings/integrations'); + }} + > + + + + + {/if} - - {/each} - {/if} - - - + + + {#each systemTerminals as terminal} + selectSystem(terminal)} + > + + + {terminal.name || $i18n.t('Terminal')} + + {#if $selectedTerminalId === terminal.id} + + + + + + {/if} + + {/each} + {/if} + + + +