diff --git a/tools/ui/src/lib/components/app/backends/DialogBackendForm.svelte b/tools/ui/src/lib/components/app/backends/DialogBackendForm.svelte
index 8b428bc3b8..3e1a3279c7 100644
--- a/tools/ui/src/lib/components/app/backends/DialogBackendForm.svelte
+++ b/tools/ui/src/lib/components/app/backends/DialogBackendForm.svelte
@@ -145,6 +145,9 @@
Recommended providers
+
+
{#each BACKEND_PRESETS as preset (preset.id)}
= {
};
/**
- * Ready-made endpoints offered when adding a backend. `custom` intentionally
- * carries no URL so the user starts from an empty form.
+ * Ready-made endpoints offered when adding a backend.
+ *
+ * TODO: pair a llama.cpp server by scanning its QR code (WebRTC transport, so a
+ * hosted PWA can reach a server on the user's network), see
+ * ggml-org/llama.cpp#24577.
*/
export const BACKEND_PRESETS: readonly BackendPreset[] = [
{
diff --git a/tools/ui/src/lib/types/backend.d.ts b/tools/ui/src/lib/types/backend.d.ts
index 728d75a242..019fce3610 100644
--- a/tools/ui/src/lib/types/backend.d.ts
+++ b/tools/ui/src/lib/types/backend.d.ts
@@ -45,7 +45,12 @@ export interface BackendCapabilities {
tools: boolean;
}
-/** One configured API endpoint. */
+/**
+ * One configured API endpoint.
+ *
+ * TODO: a backend paired by QR code is reached over WebRTC instead of plain
+ * HTTP, so it needs a transport discriminator and its peer description here.
+ */
export interface Backend {
/** Bearer token / API key used for this backend. */
apiKey?: string;