Files
mission-control-v2/frontend/dist/assets/ConnectView-DzOsZPw7.js
T
Hitonabi bc60f9254b Verbinden-Tab: eine Geschichte statt Lanes-vs-Modelle-Widerspruch
- Hero 'Leitung 1' zeigte 'Lanes chat / coding', alle Snippets nutzen aber die
  ECHTEN Modelle (Verdikt 09.07.: IDE-Welt = coder/heavy/vision, kein Lane-Routing)
  -> Zeile zeigt jetzt die Modelle; Fusstext erklaert die Lanes als Zusatz
- Kilo-Note entwirrt: 'Ask/Debug -> Lane chat' als virtuelles Modell benannt
- Anleitung Par.10 (IDE-Tools) auf dieselbe Story (coder/heavy/vision statt chat/coding)
- connect.py: stale '_gw'-Kommentar (MC2 serviert /v1 selbst) auf UMBAU-v3-Stand;
  check_health nutzt HERMES_BUILTIN_UI_UPSTREAM statt hartem 127.0.0.1:9119

Live geprueft vor dem Fix: Lanes chat/coding/auto funktionieren (200), stehen aber
nicht in /v1/models; /v1/messages weiterhin 404 (Claude-Code-Hinweis korrekt);
hermes-ui 200 + Token-Datei existiert (Anleitung stimmt).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:32:12 +02:00

17 lines
13 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{c as v,r as c,I as D,J as I,j as e,K as h,x as B,B as H,D as z,M as E,e as M,L as T,N as F,C as K}from"./index-D94Dzyvg.js";import{F as O}from"./folder-open-DzbxkBSk.js";import{C as R}from"./circle-x-C6D3ABCj.js";import{C as V}from"./copy-Dy-OlKte.js";/**
* @license lucide-react v0.460.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const W=v("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/**
* @license lucide-react v0.460.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const f=v("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
* @license lucide-react v0.460.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const b=v("Laptop",[["path",{d:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",key:"tarvll"}]]),L={hermes_desktop:"Hermes Desktop: Browser-Login",kilo:"Kilo: Einstellungen → API Provider",claude_code:"env / Übersetzer"};function j({line:r,loading:o}){return o||!r?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(T,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):r.ok?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-emerald-400",children:[e.jsx(F,{className:"h-3 w-3"})," ",r.detail]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-red-400",children:[e.jsx(R,{className:"h-3 w-3"})," ",r.detail]})}function N({tool:r,fileName:o,accent:n,copied:x,onCopy:d}){return e.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[e.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80"})]}),e.jsx("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:e.jsx("span",{children:o})}),e.jsxs("button",{onClick:d,className:"flex h-7 px-2.5 items-center gap-1.5 rounded-lg border border-border/40 bg-background/30 text-[10px] font-semibold text-muted-foreground hover:text-foreground hover:bg-background/60 transition-all cursor-pointer",children:[x?e.jsx(K,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(V,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:x?"Kopiert":"Kopieren"})]})]}),e.jsx("pre",{className:M("p-5 overflow-x-auto text-xs font-mono whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",n==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:r.snippet})})]})}function q(){const[r,o]=c.useState(localStorage.getItem("mc_host")||"192.168.178.151"),[n,x]=c.useState(localStorage.getItem("mc_mcp_path")||""),[d,P]=c.useState("kilo"),[y,_]=c.useState(!1),[p,w]=c.useState(null),k=new URLSearchParams({host:r});n&&k.set("mcp_path",n);const{data:t,error:C}=D(k.toString()),{data:a,isLoading:g}=I(),S=C?String(C):"";function G(s){o(s),s&&localStorage.setItem("mc_host",s)}function A(s){x(s),localStorage.setItem("mc_mcp_path",s)}const l=t==null?void 0:t.tools.hermes_desktop,i=t==null?void 0:t.tools[d];async function u(s,m){m&&(await navigator.clipboard.writeText(m),w(s),setTimeout(()=>w(null),1500))}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Verbindung & Integration"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("span",{className:"text-foreground",children:"Hermes Desktop"})," ist die Tür zur Box — einmal verbinden, fertig. Für Spezialfälle gibt es darunter die rohen Leitungen (Gateway /v1 + Gedächtnis-MCP) für sonstige Tools."]})]}),e.jsxs("div",{className:"p-5 mc-card",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-[170px_1fr] items-center",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-background/40 p-4 text-center",children:[e.jsx(b,{className:"h-7 w-7 mx-auto text-muted-foreground"}),e.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:"Dein lokaler Agent"}),e.jsx("div",{className:"text-[11px] text-muted-foreground",children:"Hermes Desktop · Kilo Code · Claude Code …"})]}),e.jsxs("div",{className:"flex flex-col gap-2.5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(h,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-primary/25 bg-primary/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-primary",children:[e.jsx(B,{className:"h-3.5 w-3.5"})," Leitung 1 — Modell"]}),e.jsx(j,{line:a==null?void 0:a.gateway,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-primary/80",children:"Gateway · :9001/v1 · Modelle coder / heavy / vision"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(h,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-violet-500/25 bg-violet-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-violet-300",children:[e.jsx(H,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(j,{line:a==null?void 0:a.memory,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-violet-300/80",children:"MCP · mcp_memory.py · separat"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(h,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-emerald-500/25 bg-emerald-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-emerald-300",children:[e.jsx(b,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(j,{line:a==null?void 0:a.desktop_gateway,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-emerald-300/80",children:"Desktop-Gateway · :9119 · API-Status"})]})]})]})]}),e.jsxs("p",{className:"mt-3.5 text-[11px] text-muted-foreground leading-relaxed",children:["Der Gateway liefert ",e.jsx("span",{className:"text-foreground",children:"nur das LLM"}),". Das geteilte Gedächtnis läuft über einen",e.jsx("span",{className:"text-foreground",children:" eigenen MCP-Server"})," und das Desktop-Gateway bietet die Agenten-Schnittstelle — alle drei Leitungen werden unabhängig eingerichtet. IDEs wählen die ",e.jsx("span",{className:"text-foreground",children:"echten Modelle"})," ","(coder · heavy · vision); daneben gibt es die virtuellen Lanes ",e.jsx("span",{className:"text-foreground",children:"chat"})," und"," ",e.jsx("span",{className:"text-foreground",children:"coding"}),", die je Anfrage selbst das passende Modell wählen (Alltags-Chat, simple Tools)."]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2 p-5 mc-card",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(W,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse"]}),e.jsx("input",{value:r,onChange:s=>G(s.target.value),"aria-label":"Box LAN IP-Adresse",spellCheck:!1,placeholder:"z.B. 192.168.178.151",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(O,{className:"h-3.5 w-3.5 text-violet-400"})," Lokaler MCP-Scriptpfad",e.jsx("span",{className:"text-violet-400/70 normal-case font-semibold tracking-normal",children:"(nur Leitung 2)"})]}),e.jsx("input",{value:n,onChange:s=>A(s.target.value),"aria-label":"Lokaler MCP-Scriptpfad",spellCheck:!1,placeholder:"z.B. F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-violet-500/50 text-foreground"})]})]}),S&&e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Generieren der Snippets: ",S]}),t&&e.jsxs("div",{className:"space-y-5",children:[l&&e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-emerald-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx(b,{className:"h-4 w-4 text-emerald-400"}),"Hermes Desktop anbinden",e.jsx("span",{className:"text-[10px] font-medium text-emerald-400/90 normal-case",children:"der Hauptweg"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Die Desktop-App dockt remote an die Box an — volle Agent-Oberfläche, Projekte, Review, Gedächtnis inklusive."})]}),l.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-emerald-500/5 border border-emerald-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(f,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(N,{tool:l,fileName:L.hermes_desktop,accent:"teal",copied:p==="desktop",onCopy:()=>u("desktop",l.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>_(s=>!s),className:"flex w-full items-center gap-2 p-4 text-sm font-space font-bold text-foreground cursor-pointer hover:text-primary transition-colors",children:[y?e.jsx(z,{className:"h-4 w-4"}):e.jsx(E,{className:"h-4 w-4"}),"Sonstige Tools (roher /v1-Zugang + Gedächtnis-MCP)",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"Kilo Code · Claude Code · Eigenbau"})]}),y&&e.jsxs("div",{className:"grid gap-5 lg:grid-cols-2 p-4 pt-0",children:[e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-primary/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-primary/15 text-primary text-[11px]",children:"1"}),"Modell anbinden"]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Wähle dein Tool — das Snippet zeigt auf den Gateway."})]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries(t.tools).filter(([s])=>s!=="hermes_desktop").map(([s,m])=>e.jsx("button",{onClick:()=>P(s),className:M("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",d===s?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"border border-border/50 text-muted-foreground hover:text-foreground"),children:m.label},s))}),i&&e.jsxs(e.Fragment,{children:[i.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-primary/5 border border-primary/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(f,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:i.note})]}),e.jsx(N,{tool:i,fileName:L[d]||"config.json",accent:"teal",copied:p==="model",onCopy:()=>u("model",i.snippet)})]})]}),e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-violet-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-violet-500/15 text-violet-300 text-[11px]",children:"2"}),"Gedächtnis anbinden",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"optional"})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:["Ein MCP-Block — gilt zusätzlich für ",e.jsx("em",{children:"jedes"})," Tool aus Schritt 1."]})]}),e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-violet-500/5 border border-violet-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(f,{className:"h-4 w-4 text-violet-400 shrink-0 mt-0.5"}),e.jsx("span",{children:t.memory.note})]}),e.jsx(N,{tool:t.memory,fileName:"mcp.json",accent:"violet",copied:p==="memory",onCopy:()=>u("memory",t.memory.snippet)})]})]})]})]})]})}export{q as ConnectView};