From acd5b07fb490ab64fe2f2c5987dcef8222f9353b Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 28 Mar 2025 12:40:56 -0700 Subject: [PATCH] enh: tool servers info modal --- src/lib/components/chat/MessageInput.svelte | 13 ++- .../components/chat/ToolServersModal.svelte | 84 +++++++++++++++++++ src/lib/components/common/Collapsible.svelte | 15 +++- 3 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 src/lib/components/chat/ToolServersModal.svelte diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index cb69fbb6f..2170310a8 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -46,6 +46,7 @@ import Photo from '../icons/Photo.svelte'; import CommandLine from '../icons/CommandLine.svelte'; import { KokoroWorker } from '$lib/workers/KokoroWorker'; + import ToolServersModal from './ToolServersModal.svelte'; const i18n = getContext('i18n'); @@ -84,6 +85,8 @@ webSearchEnabled }); + let showToolServers = false; + let loaded = false; let recording = false; @@ -345,6 +348,8 @@ + + {#if loaded}
@@ -1238,9 +1243,13 @@ COUNT: toolServers.length })} > -
{ + showToolServers = !showToolServers; + }} > {toolServers.length} -
+ {/if} diff --git a/src/lib/components/chat/ToolServersModal.svelte b/src/lib/components/chat/ToolServersModal.svelte new file mode 100644 index 000000000..2124d161c --- /dev/null +++ b/src/lib/components/chat/ToolServersModal.svelte @@ -0,0 +1,84 @@ + + + +
+
+
{$i18n.t('Available Tool Servers')}
+ +
+ +
+
+ Open WebUI can use tools provided by any OpenAPI server.
Learn more about OpenAPI tool servers. +
+
+ {#each $toolServers as toolServer} + +
+
+ {toolServer?.openapi?.info?.title} - v{toolServer?.openapi?.info?.version} +
+ +
+ {toolServer?.openapi?.info?.description} +
+ +
+ {toolServer?.url} +
+
+ +
+ {#each toolServer?.specs ?? [] as tool_spec} +
+
+ {tool_spec?.name} +
+ +
+ {tool_spec?.description} +
+
+ {/each} +
+
+ {/each} +
+
+
+
diff --git a/src/lib/components/common/Collapsible.svelte b/src/lib/components/common/Collapsible.svelte index f8be96afc..84d6728fe 100644 --- a/src/lib/components/common/Collapsible.svelte +++ b/src/lib/components/common/Collapsible.svelte @@ -47,6 +47,7 @@ export let title = null; export let attributes = null; + export let chevron = false; export let grow = false; export let disabled = false; @@ -141,7 +142,19 @@ }} >
- +
+ + + {#if chevron} +
+ {#if open} + + {:else} + + {/if} +
+ {/if} +
{#if grow} {#if open && !hide}