mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-07-08 12:10:25 +00:00
94875285e4
* feat: ui: Add predefined recommended MCP servers to settings * feat: ui: Add MCP server recommendation dialog with custom server support * feat: Auto-focus input fields on mount and dynamic addition * feat: Add header validation to MCP server add and edit forms * feat: Persist recommended MCP server opt-in selections * test: Cover MCP configuration with tests * chore: Format & cleanup * feat: Centralize MCP server overrides to settings config and improve recommendation UI * fix: Capture index before mutation to prevent focus drift * refactor: Extract MCP_CARD_VISIBLE_TOOL_LIMIT to shared constants * refactor: Support arbitrary authorization header schemes * refactor: Consolidate MCP recommendations dismissal into existing storage key * fix: Use case-insensitive comparison for MCP server ID prefix check * refactor: Centralize MCP server visibility logic and extract recommendations hook * refactor: Cleanup
38 lines
942 B
Svelte
38 lines
942 B
Svelte
<script lang="ts">
|
|
import { untrack } from 'svelte';
|
|
import McpServerForm from '$lib/components/app/mcp/McpServerForm.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
|
|
url="https://example.test/mcp"
|
|
headers={headersState}
|
|
onUrlChange={() => {}}
|
|
onHeadersChange={(value) => {
|
|
headersState = value;
|
|
}}
|
|
id="mcp-server-form-test"
|
|
/>
|
|
|
|
<div data-testid="captured-headers" data-captured-headers={headersState} hidden></div>
|