feat: Desktop-Gateway als dritte Leitung im Verbinden-Tab
- Backend: check_health() prüft jetzt auch Desktop-Gateway (GET /api/status :9119) - Frontend: ConnectHealth-Typ erweitert, dritte Status-Zeile mit emerald-Theme - Frontend-Build: neu gebaut mit Vite (Hash-Dateinamen aktualisiert)
This commit is contained in:
@@ -69,7 +69,7 @@ def build_snippets(host: str = DEFAULT_HOST,
|
||||
f"#\n"\
|
||||
f"# 3. Token im Browser-Login einfügen — fertig.\n"\
|
||||
f"#\n"\
|
||||
f"# Modelle im Hermes Desktop: {PRIMARY_MODEL} (bauen), heavy (denken), vision (Bilder)."\
|
||||
f"# Modelle im Hermes Desktop: {PRIMARY_MODEL} (bauen), heavy (denken), vision (Bilder)."
|
||||
)
|
||||
|
||||
# Claude Code spricht das Anthropic-Format; der Gateway ist OpenAI-kompatibel und
|
||||
@@ -124,8 +124,9 @@ def build_snippets(host: str = DEFAULT_HOST,
|
||||
|
||||
|
||||
def check_health() -> dict:
|
||||
"""Live-Erreichbarkeit der beiden Leitungen, aus Sicht der Box:
|
||||
Leitung 1 = Gateway/Engine (llama-swap), Leitung 2 = Gedächtnis-Sidecar (Mem0)."""
|
||||
"""Live-Erreichbarkeit der drei Leitungen, aus Sicht der Box:
|
||||
Leitung 1 = Gateway/Engine (llama-swap), Leitung 2 = Gedächtnis-Sidecar (Mem0),
|
||||
Leitung 3 = Desktop-Gateway (Hermes-Builtin-UI)."""
|
||||
gateway = {"ok": False, "detail": "nicht erreichbar"}
|
||||
try:
|
||||
with httpx.Client(timeout=3.0) as c:
|
||||
@@ -147,4 +148,13 @@ def check_health() -> dict:
|
||||
except Exception: # noqa: BLE001
|
||||
pass
|
||||
|
||||
return {"gateway": gateway, "memory": memory}
|
||||
desktop_gateway = {"ok": False, "detail": "nicht erreichbar"}
|
||||
try:
|
||||
with httpx.Client(timeout=3.0) as c:
|
||||
r = c.get("http://127.0.0.1:9119/api/status")
|
||||
desktop_gateway = ({"ok": True, "detail": "bereit"} if r.status_code == 200
|
||||
else {"ok": False, "detail": f"HTTP {r.status_code}"})
|
||||
except Exception: # noqa: BLE001
|
||||
pass
|
||||
|
||||
return {"gateway": gateway, "memory": memory, "desktop_gateway": desktop_gateway}
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+130
-130
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+2
-2
@@ -7,8 +7,8 @@
|
||||
<link rel="manifest" href="/manifest.webmanifest" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<title>Mission Control 2.0</title>
|
||||
<script type="module" crossorigin src="/assets/index-BHaK9XZl.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-C7eDy97i.css">
|
||||
<script type="module" crossorigin src="/assets/index-ByMZe5CM.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-DndftNG6.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
@@ -338,6 +338,7 @@ export interface ConnectLine {
|
||||
export interface ConnectHealth {
|
||||
gateway: ConnectLine
|
||||
memory: ConnectLine
|
||||
desktop_gateway: ConnectLine
|
||||
}
|
||||
|
||||
export interface Memory {
|
||||
|
||||
@@ -111,8 +111,8 @@ export function ConnectView() {
|
||||
Verbindung & Integration
|
||||
</h1>
|
||||
<p className="text-sm text-muted-foreground">
|
||||
Binde deinen lokalen Agenten an die Box an — über <span className="text-foreground">zwei getrennte Leitungen</span>:
|
||||
das Modell (Gateway) und das geteilte Gedächtnis (MCP).
|
||||
Binde deinen lokalen Agenten an die Box an — über <span className="text-foreground">drei getrennte Leitungen</span>:
|
||||
das Modell (Gateway), das geteilte Gedächtnis (MCP) und das Desktop-Gateway.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -158,11 +158,27 @@ export function ConnectView() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* Leitung 3 — Desktop-Gateway */}
|
||||
<div className="flex items-center gap-3">
|
||||
<ArrowRight className="h-4 w-4 text-muted-foreground shrink-0" />
|
||||
<div className="flex-1 rounded-xl border border-emerald-500/25 bg-emerald-500/5 px-3.5 py-2.5">
|
||||
<div className="flex items-center justify-between gap-2">
|
||||
<div className="flex items-center gap-2 text-xs font-semibold text-emerald-300">
|
||||
<Laptop className="h-3.5 w-3.5" /> Leitung 3 — Desktop-Gateway
|
||||
</div>
|
||||
<StatusBadge line={health?.desktop_gateway} loading={healthLoading} />
|
||||
</div>
|
||||
<div className="mt-1 text-[11px] font-mono text-emerald-300/80">
|
||||
Desktop-Gateway · :9119 · API-Status
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p className="mt-3.5 text-[11px] text-muted-foreground leading-relaxed">
|
||||
Der Gateway liefert <span className="text-foreground">nur das LLM</span>. Das geteilte Gedächtnis läuft über einen
|
||||
<span className="text-foreground"> eigenen MCP-Server</span> — beide werden unabhängig eingerichtet.
|
||||
<span className="text-foreground"> eigenen MCP-Server</span> und das Desktop-Gateway bietet die Agenten-Schnittstelle —
|
||||
alle drei Leitungen werden unabhängig eingerichtet.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user