include llama.cpp since there were some edits

This commit is contained in:
zefie committed 2026-11-01 16:32:35 -05:00
1 parent db7f28d087
commit 8c66990853
3918 files changed
+1640170 -1

No files matched your search

@@ -0,0 +1,16 @@
<script lang="ts">
import { perfState } from './agentic-perf-state.svelte';
import ChatMessageAgenticContent from '$lib/components/app/chat/ChatMessages/ChatMessageAgenticContent.svelte';
import * as Tooltip from '$lib/components/ui/tooltip';
</script>
<Tooltip.Provider>
{#if perfState.message}
<ChatMessageAgenticContent
isLastAssistantMessage
isStreaming={perfState.isStreaming}
message={perfState.message}
toolMessages={perfState.toolMessages}
/>
{/if}
</Tooltip.Provider>
@@ -0,0 +1,27 @@
<script lang="ts">
import ChatFormInputRich from '$lib/components/app/chat/ChatForm/ChatFormInput/ChatFormInputRich.svelte';
import { untrack } from 'svelte';
interface Props {
value?: string;
}
let { value: initial = '' }: Props = $props();
let value = $state(untrack(() => initial));
let inputRef: ChatFormInputRich | undefined = $state(undefined);
export function getValue() {
return value;
}
export function getCaretOffset() {
return inputRef?.getCaretOffset();
}
export function setCaretOffset(offset: number) {
inputRef?.setCaretOffset(offset);
}
</script>
<ChatFormInputRich bind:this={inputRef} bind:value />
@@ -0,0 +1,51 @@
<script lang="ts">
import {
useChatFormPickers,
type UseChatFormPickersReturn
} from '$lib/hooks/use-chat-form-pickers.svelte';
let value = $state('');
let caretOffset = $state(0);
const calls: string[] = [];
const pickers = useChatFormPickers({
focusInput: () => {},
getCaretOffset: () => caretOffset,
getCwd: () => null,
getPickersRef: () => undefined,
getServerHome: () => null,
getShowModelSelector: () => true,
getValue: () => value,
hasCwdTools: () => true,
hasPrompts: () => true,
openModelSelector: () => {
calls.push('openModelSelector');
},
setCaretOffset: (o) => {
caretOffset = o;
},
setValue: (v) => {
value = v;
calls.push(`setValue:${v}`);
}
});
// Simulate the user typing: update the buffer and run the input flow.
export function type(text: string) {
value = text;
caretOffset = text.length;
pickers.handleInput();
}
export function getValue() {
return value;
}
export function getCalls() {
return calls;
}
export function getPickers(): UseChatFormPickersReturn {
return pickers;
}
</script>
@@ -0,0 +1,12 @@
<script lang="ts">
import ChatForm from '$lib/components/app/chat/ChatForm/ChatForm.svelte';
import * as Tooltip from '$lib/components/ui/tooltip';
let { onSubmit }: { onSubmit?: () => void } = $props();
let value = $state('');
</script>
<Tooltip.Provider>
<ChatForm bind:value {onSubmit} />
</Tooltip.Provider>
@@ -0,0 +1,12 @@
<script lang="ts">
// Mounts the real ChatMessages list against the real conversations store, so
// the harness exercises `displayMessages` (which rebuilds every message's
// toolMessages array) rather than a single message subtree.
import ChatMessages from '$lib/components/app/chat/ChatMessages/ChatMessages.svelte';
import * as Tooltip from '$lib/components/ui/tooltip';
import { conversationsStore } from '$lib/stores/conversations/index.svelte';
</script>
<Tooltip.Provider>
<ChatMessages messages={conversationsStore.activeMessages} />
</Tooltip.Provider>
@@ -0,0 +1,21 @@
<script lang="ts">
import CollapsibleContentBlock from '$lib/components/app/content/CollapsibleContentBlock.svelte';
import CollapsibleTerminalBlock from '$lib/components/app/content/CollapsibleTerminalBlock.svelte';
interface Props {
variant: 'content' | 'terminal';
open: boolean;
}
let { open, variant }: Props = $props();
</script>
{#if variant === 'content'}
<CollapsibleContentBlock {open} title="Block">
<span>collapsible-body-marker</span>
</CollapsibleContentBlock>
{:else}
<CollapsibleTerminalBlock {open} title="Block">
<span>collapsible-body-marker</span>
</CollapsibleTerminalBlock>
{/if}
@@ -0,0 +1,12 @@
<script lang="ts">
import DialogMcpServers from '$lib/components/app/dialogs/DialogMcpServers.svelte';
import DialogSettingsChat from '$lib/components/app/dialogs/DialogSettingsChat.svelte';
let { panel }: { panel: 'mcp' | 'settings' } = $props();
</script>
{#if panel === 'settings'}
<DialogSettingsChat open />
{:else}
<DialogMcpServers open />
{/if}
@@ -0,0 +1,37 @@
<script lang="ts">
import McpServerForm from '$lib/components/app/mcp/McpServerForm.svelte';
import { untrack } from 'svelte';
interface Props {
headers?: string;
}
let { headers = '' }: Props = $props();
let headersState = $state(untrack(() => headers));
let lastCapturedHeaders = $state(untrack(() => headers));
$effect(() => {
if (headers !== lastCapturedHeaders) {
headersState = headers;
lastCapturedHeaders = headers;
}
});
</script>
<!--
Drives McpServerForm with a controlled `headers` string and exposes the
latest captured value through `data-captured-headers` so the client test
can read it back without a custom binding API.
-->
<McpServerForm
headers={headersState}
id="mcp-server-form-test"
onHeadersChange={(value) => {
headersState = value;
}}
onUrlChange={() => {}}
url="https://example.test/mcp"
/>
<div data-captured-headers={headersState} data-testid="captured-headers" hidden></div>
@@ -0,0 +1,24 @@
<script lang="ts">
import ModelsManagerModelRow from '$lib/components/app/models/ModelsManager/ModelsManagerModelRow.svelte';
import * as Tooltip from '$lib/components/ui/tooltip';
import type { ModelOption } from '$lib/types/models';
interface Props {
option: ModelOption;
selected?: boolean;
onSelect: (option: ModelOption) => void;
}
let { onSelect, option, selected = false }: Props = $props();
</script>
<!-- The row actions mount a tooltip, which needs the provider +layout.svelte supplies. -->
<Tooltip.Provider>
<ModelsManagerModelRow
isFavorite={() => false}
onDelete={() => {}}
{onSelect}
{option}
{selected}
/>
</Tooltip.Provider>
@@ -0,0 +1,9 @@
<script lang="ts">
import ModelsManager from '$lib/components/app/models/ModelsManager/ModelsManager.svelte';
import * as Tooltip from '$lib/components/ui/tooltip';
</script>
<!-- The rows mount tooltips, which need the provider +layout.svelte supplies. -->
<Tooltip.Provider>
<ModelsManager />
</Tooltip.Provider>
@@ -0,0 +1,36 @@
<script lang="ts">
import { useModelsSelector } from '$lib/hooks/use-models-selector.svelte';
interface Props {
currentModel?: () => string | null;
}
let { currentModel = () => null }: Props = $props();
// the caller seeds modelsStore.models before mounting, so the hook's own
// fetch() short-circuits on an already populated list; the hook keeps the getter
// and calls it later, so reading the prop here is intended
// svelte-ignore state_referenced_locally
const selector = useModelsSelector({ currentModel, onOpenChange: () => {} });
/** Every model id the selector lists, in the order the sections render them. */
export function listedIds(): string[] {
return [
...selector.favoriteItems.map((item) => item.option.id),
...selector.loadedItems.map((item) => item.option.id),
...selector.groupedFilteredOptions.available.flatMap((group) =>
group.items.map((item) => item.option.id)
)
];
}
export function shownModelId(): string | undefined {
return selector.getDisplayOption()?.id;
}
export function isEmpty(): boolean {
return selector.isEmpty;
}
</script>
<span data-testid="selector-hook"></span>
@@ -0,0 +1,43 @@
<script lang="ts">
import { ChatFormPickerList, ChatFormPickerListItem } from '$lib/components/app/chat';
interface Item {
id: string;
label: string;
}
const items: Item[] = Array.from({ length: 20 }, (_, i) => ({
id: String(i),
label: `item ${i}`
}));
let open = $state(false);
let scrollTrigger = $state(0);
let selectedIndex = $state(0);
export function openPicker() {
open = true;
}
</script>
<div style="height: 5000px;">conversation</div>
{#if open}
<div data-testid="picker-host">
<ChatFormPickerList
isLoading={false}
itemKey={(it) => it.id}
{items}
{scrollTrigger}
searchQuery=""
{selectedIndex}
showSearchInput={false}
>
{#snippet item(it, index, isSelected)}
<ChatFormPickerListItem dataIndex={index} {isSelected} onclick={() => {}}>
{it.label}
</ChatFormPickerListItem>
{/snippet}
</ChatFormPickerList>
</div>
{/if}
@@ -0,0 +1,12 @@
<script lang="ts">
import Page from '../../../src/routes/(chat)/+page.svelte';
import * as Tooltip from '$lib/components/ui/tooltip';
</script>
<!--
Test wrapper that provides necessary context providers for component testing.
This mirrors the providers from +layout.svelte.
-->
<Tooltip.Provider>
<Page />
</Tooltip.Provider>
@@ -0,0 +1,17 @@
// Shared reactive fixture state for the Tier 1 perf harness.
//
// The wrapper component reads this module directly rather than taking props,
// so the driver can mutate it without depending on how the test renderer
// forwards props.
import type { DatabaseMessage } from '$lib/types';
export const perfState = $state<{
message: DatabaseMessage | null;
toolMessages: DatabaseMessage[];
isStreaming: boolean;
}>({
isStreaming: true,
message: null,
toolMessages: []
});