Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
19c883a
webui: introduce OpenAI-compatible model selector in JSON payload
ServeurpersoCom Oct 13, 2025
d110650
webui: restore OpenAI-Compatible model source of truth and unify meta…
ServeurpersoCom Oct 13, 2025
ccdf169
webui: address review feedback from allozaur
ServeurpersoCom Oct 20, 2025
84eab3e
webui: move model selector into ChatForm (idea by @allozaur)
ServeurpersoCom Oct 20, 2025
7bbc6be
webui: make model selector more subtle and integrated into ChatForm
ServeurpersoCom Oct 20, 2025
0fa592a
webui: replaced the Flowbite selector with a native Svelte dropdown
ServeurpersoCom Oct 20, 2025
f06d663
webui: add developer setting to toggle the chat model selector
ServeurpersoCom Oct 20, 2025
7ebe1cf
webui: address review feedback from allozaur
ServeurpersoCom Oct 21, 2025
2e79d92
webui: toggle displayed model source for legacy vs OpenAI-Compat modes
ServeurpersoCom Oct 21, 2025
2a7c4c0
Update tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFo…
ServeurpersoCom Oct 21, 2025
f59cac2
Update tools/server/webui/src/lib/constants/localstorage-keys.ts
ServeurpersoCom Oct 21, 2025
938e68c
Update tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFo…
ServeurpersoCom Oct 21, 2025
da3c653
Update tools/server/webui/src/lib/components/app/chat/ChatMessages/Ch…
ServeurpersoCom Oct 21, 2025
0ad7601
Update tools/server/webui/src/lib/services/chat.ts
ServeurpersoCom Oct 21, 2025
3a7ab7f
Update tools/server/webui/src/lib/services/chat.ts
ServeurpersoCom Oct 21, 2025
309f96e
webui: refactor model selector and persistence helpers
ServeurpersoCom Oct 21, 2025
2d5bcad
webui: document normalizeModelName usage with inline examples
ServeurpersoCom Oct 21, 2025
fd7866a
Update tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFo…
ServeurpersoCom Oct 21, 2025
8e54dd8
Update tools/server/webui/src/lib/stores/models.svelte.ts
ServeurpersoCom Oct 21, 2025
ab922d9
Update tools/server/webui/src/lib/stores/models.svelte.ts
ServeurpersoCom Oct 21, 2025
2173554
webui: extract ModelOption type into dedicated models.d.ts
ServeurpersoCom Oct 21, 2025
e0dc324
webui: refine ChatMessageAssistant displayedModel source logic
ServeurpersoCom Oct 21, 2025
cef7776
webui: stabilize dropdown, simplify model extraction, and init assist…
ServeurpersoCom Oct 22, 2025
d13a292
chore: update webui static build
ServeurpersoCom Oct 22, 2025
d90cb36
Update tools/server/webui/src/lib/components/app/chat/ChatMessages/Ch…
ServeurpersoCom Oct 22, 2025
0cf3135
chore: npm format, update webui static build
ServeurpersoCom Oct 22, 2025
0a907ef
webui: align sidebar trigger position, remove z-index glitch
ServeurpersoCom Oct 22, 2025
114cd56
chore: update webui build output
ServeurpersoCom Oct 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified tools/server/public/index.html.gz
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import { Button } from '$lib/components/ui/button';
import ChatFormActionFileAttachments from './ChatFormActionFileAttachments.svelte';
import ChatFormActionRecord from './ChatFormActionRecord.svelte';
import ChatFormModelSelector from './ChatFormModelSelector.svelte';
import { config } from '$lib/stores/settings.svelte';
import type { FileTypeCategory } from '$lib/enums/files';
interface Props {
Expand All @@ -26,32 +28,36 @@
onMicClick,
onStop
}: Props = $props();
let currentConfig = $derived(config());
</script>

<div class="flex items-center justify-between gap-1 {className}">
<ChatFormActionFileAttachments {disabled} {onFileUpload} />
<div class="flex w-full items-center gap-2 {className}">
<ChatFormActionFileAttachments class="mr-auto" {disabled} {onFileUpload} />

{#if currentConfig.modelSelectorEnabled}
<ChatFormModelSelector class="shrink-0" />
{/if}

<div class="flex gap-2">
{#if isLoading}
<Button
type="button"
onclick={onStop}
class="h-8 w-8 bg-transparent p-0 hover:bg-destructive/20"
>
<span class="sr-only">Stop</span>
<Square class="h-8 w-8 fill-destructive stroke-destructive" />
</Button>
{:else}
<ChatFormActionRecord {disabled} {isLoading} {isRecording} {onMicClick} />
{#if isLoading}
<Button
type="button"
onclick={onStop}
class="h-8 w-8 bg-transparent p-0 hover:bg-destructive/20"
>
<span class="sr-only">Stop</span>
<Square class="h-8 w-8 fill-destructive stroke-destructive" />
</Button>
{:else}
<ChatFormActionRecord {disabled} {isLoading} {isRecording} {onMicClick} />

<Button
type="submit"
disabled={!canSend || disabled || isLoading}
class="h-8 w-8 rounded-full p-0"
>
<span class="sr-only">Send</span>
<ArrowUp class="h-12 w-12" />
</Button>
{/if}
</div>
<Button
type="submit"
disabled={!canSend || disabled || isLoading}
class="h-8 w-8 rounded-full p-0"
>
<span class="sr-only">Send</span>
<ArrowUp class="h-12 w-12" />
</Button>
{/if}
</div>
Loading