+
+
+
Current status
+
{snapshot.status === "ready" ? "Local API ready" : snapshot.config.connection_mode === "remote" ? "Remote API mode" : "Local API setup"}
+
+
+
Endpoint
+
{mode === "remote" ? (serverUrl.trim() || "Not configured") : `http://${addr.trim() || snapshot.config.addr}`}
+
+
+
Saved model
+
{savedLocalModel ? pathName(savedLocalModel) : "No model saved"}
+
+
+
+
+ Connection mode
+
+
+
+
+
+
+ {mode === "remote" ? (
+
+ ) : (
+ <>
+
+
+
Managed endpoint
+
http://{addr.trim() || snapshot.config.addr}
+
+
+
Binary discovery
+
{snapshot.binary_path || "Binary not found yet"}
+
+
+
+
+
+
+
Models folder
+
{modelsDir || "Choose a folder or add individual files"}
+
+
+
+
+
+
+
+
+
+
+
+ {extraModels.length > 0 && (
+
+ {extraModels.map((model) => (
+
+ ))}
+
+ )}
+
+
+
+
+
+
+
+
GPU layers
+
+ {gpuInfo ? `${gpuInfo.name} · recommended ${gpuInfo.recommended_layers}` : gpuError || "GPU detection unavailable"}
+
+
+ {gpuInfo && (
+
+ )}
+
+
+ setGpuLayers(Math.max(0, Math.min(maxLayers, parseInt(event.target.value, 10) || 0)))}
+ type="number"
+ />
+
+
+ {CTX_PRESETS.map((preset) => (
+
+ ))}
+
+
+
+
+ >
+ )}
+
+ {(localError || snapshot.last_error) && (
+
+ {localError || snapshot.last_error?.message}
+
+ )}
+
+ {!snapshot.process_running && mode === "local" && startReason && (
+
+ )}
+
+
+