+
+
+
+
+{/if}
diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverInfo.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverInfo.svelte
index 6548f103a5..970ababfdf 100644
--- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverInfo.svelte
+++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverInfo.svelte
@@ -15,6 +15,11 @@
let contextLength = $derived(model.gguf?.context_length);
+ // Reasoning support from the chat template, matching the details view.
+ let supportsThinking = $derived(
+ Boolean(model.gguf?.chat_template && /think|reasoning/i.test(model.gguf.chat_template))
+ );
+
// Modalities derived from HF metadata: vision from an mmproj sidecar or a
// multimodal pipeline tag, audio/video from their pipeline tags.
let modalities = $derived.by(() => {
@@ -54,7 +59,15 @@
-
+
diff --git a/tools/ui/src/lib/components/app/models/discover/TerminalCommands.svelte b/tools/ui/src/lib/components/app/models/discover/TerminalCommands.svelte
new file mode 100644
index 0000000000..d58bbc0c0a
--- /dev/null
+++ b/tools/ui/src/lib/components/app/models/discover/TerminalCommands.svelte
@@ -0,0 +1,87 @@
+
+
+
+ {#each boxes as box (box.title)}
+
+
+
+ {box.title}
+
+
+
+ {#each box.commands as cmd, i (cmd)}
+
+ {cmd}
+
+
+ {/each}
+
+
+ {/each}
+
diff --git a/tools/ui/src/lib/components/app/models/discover/index.ts b/tools/ui/src/lib/components/app/models/discover/index.ts
index 2419192ddd..181db3a729 100644
--- a/tools/ui/src/lib/components/app/models/discover/index.ts
+++ b/tools/ui/src/lib/components/app/models/discover/index.ts
@@ -46,6 +46,44 @@ export { default as ModelsDiscoverInfo } from './ModelsDiscoverInfo.svelte';
*/
export { default as ModelsDiscoverDetails } from './ModelsDiscoverDetails.svelte';
+/**
+ * **ModelsDiscoverDetailsHeader** - Detail view header
+ *
+ * Shows the model avatar (base org + quant org corner badge), name, base model
+ * info, stats, metadata chips and capability badges.
+ */
+export { default as ModelsDiscoverDetailsHeader } from './ModelsDiscoverDetailsHeader.svelte';
+
+/**
+ * **ModelsDiscoverDetailsName** - Model name block
+ *
+ * Shows the quant model name with a copy button, and the base model name with a
+ * smaller external-link icon on the line below.
+ */
+export { default as ModelsDiscoverDetailsName } from './ModelsDiscoverDetailsName.svelte';
+
+/**
+ * **ModelsDiscoverDetailsDownloadOptions** - GGUF download options
+ *
+ * Groups GGUF files by bit depth and renders per-file download buttons with
+ * progress, owned by the download confirmation dialog.
+ */
+export { default as ModelsDiscoverDetailsDownloadOptions } from './ModelsDiscoverDetailsDownloadOptions.svelte';
+
+/**
+ * **ModelsDiscoverDetailsReadme** - Detail view README
+ *
+ * Renders the model card README as markdown.
+ */
+export { default as ModelsDiscoverDetailsReadme } from './ModelsDiscoverDetailsReadme.svelte';
+
+/**
+ * **TerminalCommands** - Terminal command block
+ *
+ * Shows the `llama serve` / `llama cli` commands for a model with copy buttons.
+ */
+export { default as TerminalCommands } from './TerminalCommands.svelte';
+
/**
* **DialogModelDownload** - Download confirmation / progress dialog
*