mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2026-09-01 18:47:36 +02:00
f42e29fdf1
* wip: server_tools * feat: Integrate with `/tools` endpoint * feat: Builtin + MCP + JSON Schema Tools WIP * refactor * displayName -> display_name * snake_case everywhere * rm redundant field * feat: Improvements * chore: update webui build output * refactor: Updates after server updates * chore: update webui build output * change arg to --tools all * feat: UI improvements * chore: update webui build output * add readme mention * llama-gen-docs * chore: update webui build output * chore: update webui build output * chore: update webui build output * feat: Reorganize settings sections * feat: Separate dialogs for MCP Servers Settings and Import/Export * feat: WIP * feat: WIP * feat: WIP * feat: WIP * feat: WIP * feat: WIP * WIP on allozaur/20677-webui-server-tools * feat: UI improvements * chore: Update package lock * chore: Run `npm audit fix` * feat: UI WIP * feat: UI * refactor: Desktop Icon Strip DRY * feat: Cleaner rendering and transition for ChatScreen * feat: UI improvements * feat: UI improvement * feat: Remove MCP Server "enable" switch from Tools submenu * chore: Run `npm audit fix` * feat: WIP * feat: Logic improvements * refactor: Cleanup * refactor: DRY * test: Fix Chat Sidebar UI Tests * chore: Update package lock * refactor: Cleanup * feat: Chat Message Action Card with Continue and Permission flow implementations * feat: Add agentic steering messages, draft messages and improve chat UX * fix: Search results UI * test: Fix unit test * feat: UI/UX improvements * refactor: Simplify `useToolsPanel` access in components * feat: Implement Processing Info Context API * feat: Implement 'Go back to chat' functionality for settings * feat: Enhance MCP Server management in Chat Form Attachments * style: Minor UI and branding adjustments * chore: Update webui static build output * chore: Formatting, linting & type checks * feat: Draft messages logic * feat: UI improvements * feat: Steering Messages improvements * refactor: Cleanup * refactor: Cleanup * feat: Improve UI * refactor: Settings navigation hook * refactor: DRY code * refactor: DRY ChatMessageUser UI components * refactor: Desktop Icon Strip DRY * refactor: Tools & permissions * fix: Navigation condition * refactor: Cleanup * refactor: Cleanup * refactor: Cleanup * fix: preserve reasoning_content in agentic flow --------- Co-authored-by: Xuan Son Nguyen <son@huggingface.co>
74 lines
2.3 KiB
Svelte
74 lines
2.3 KiB
Svelte
<script lang="ts">
|
|
import { ModelsService } from '$lib/services/models.service';
|
|
import { config } from '$lib/stores/settings.svelte';
|
|
import { TruncatedText } from '$lib/components/app';
|
|
|
|
interface Props {
|
|
modelId: string;
|
|
hideOrgName?: boolean;
|
|
showRaw?: boolean;
|
|
hideQuantization?: boolean;
|
|
aliases?: string[];
|
|
tags?: string[];
|
|
class?: string;
|
|
}
|
|
|
|
let {
|
|
modelId,
|
|
hideOrgName = false,
|
|
showRaw = undefined,
|
|
hideQuantization = false,
|
|
aliases,
|
|
tags,
|
|
class: className = '',
|
|
...rest
|
|
}: Props = $props();
|
|
|
|
const badgeClass =
|
|
'inline-flex w-fit shrink-0 items-center justify-center whitespace-nowrap rounded-md border border-border/50 px-1 py-0 text-[10px] font-mono bg-foreground/15 dark:bg-foreground/10 text-foreground [a&]:hover:bg-foreground/25';
|
|
const tagBadgeClass =
|
|
'inline-flex w-fit shrink-0 items-center justify-center whitespace-nowrap rounded-md border border-border/50 px-1 py-0 text-[10px] font-mono text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground';
|
|
|
|
let parsed = $derived(ModelsService.parseModelId(modelId));
|
|
let resolvedShowRaw = $derived(showRaw ?? (config().showRawModelNames as boolean) ?? false);
|
|
let displayName = $derived(
|
|
aliases && aliases.length > 0 ? aliases[0] : (parsed.modelName ?? modelId)
|
|
);
|
|
let remainingAliases = $derived(aliases && aliases.length > 1 ? aliases.slice(1) : []);
|
|
let allTags = $derived([...(parsed.tags ?? []), ...(tags ?? [])]);
|
|
</script>
|
|
|
|
{#if resolvedShowRaw}
|
|
<TruncatedText class="font-medium {className}" showTooltip={false} text={modelId} {...rest} />
|
|
{:else}
|
|
<span class="flex min-w-0 flex-wrap items-center gap-1 {className}" {...rest}>
|
|
<span class="min-w-0 truncate font-medium">
|
|
{#if !hideOrgName && parsed.orgName && !(aliases && aliases.length > 0)}{parsed.orgName}/{/if}{displayName}
|
|
</span>
|
|
|
|
{#if parsed.params}
|
|
<span class={badgeClass}>
|
|
{parsed.params}{parsed.activatedParams ? `-${parsed.activatedParams}` : ''}
|
|
</span>
|
|
{/if}
|
|
|
|
{#if parsed.quantization && !hideQuantization}
|
|
<span class={badgeClass}>
|
|
{parsed.quantization}
|
|
</span>
|
|
{/if}
|
|
|
|
{#if remainingAliases.length > 0}
|
|
{#each remainingAliases as alias (alias)}
|
|
<span class={badgeClass}>{alias}</span>
|
|
{/each}
|
|
{/if}
|
|
|
|
{#if allTags.length > 0}
|
|
{#each allTags as tag (tag)}
|
|
<span class={tagBadgeClass}>{tag}</span>
|
|
{/each}
|
|
{/if}
|
|
</span>
|
|
{/if}
|