Auftragsbuch: 'orchestrator/hermes-desktop' angenommen (Ein-Klick-Gate)

This commit is contained in:
Auftragsbuch
2026-07-09 09:39:55 +02:00
8 changed files with 47 additions and 47 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# AGENTS.md — Mission Control 2.0 # AGENTS.md — Mission Control 2.0
Projekt-Geschmack für Coding-Agenten (Zed, Kilo Code, Claude Code lesen diese Datei). Projekt-Geschmack für Coding-Agenten (Kilo Code, Claude Code lesen diese Datei).
Kurz gehalten, nur die Wahrheiten, die man sonst schmerzhaft lernt. Details: `README.md`, `docs/`. Kurz gehalten, nur die Wahrheiten, die man sonst schmerzhaft lernt. Details: `README.md`, `docs/`.
## Was das ist ## Was das ist
+24 -24
View File
@@ -15,13 +15,13 @@ from config import LLAMA_SWAP_URL, MEM0_SERVICE_URL, PORT
DEFAULT_HOST = "192.168.178.151" DEFAULT_HOST = "192.168.178.151"
# IDEs bekommen die ECHTEN Box-Modelle direkt (kein Lane-Routing): Coder (bauen), Planer (denken), # IDEs/Agenten bekommen die ECHTEN Box-Modelle direkt (kein Lane-Routing): Coder (bauen), Planer (denken),
# Augen (Bilder, Vision). Der User wechselt im Modellwähler — spiegelt das reale Zed-Setup 1:1. # Augen (Bilder, Vision). Der User wechselt im Modellwähler — spiegelt das reale Hermes-Desktop-Setup 1:1.
PRIMARY_MODEL = "coder" PRIMARY_MODEL = "coder"
def _caps(tools: bool = True, images: bool = False) -> dict: def _caps(tools: bool = True, images: bool = False) -> dict:
"""Volle 7-Feld-Capabilities — Zed braucht sie KOMPLETT, sonst greift die Modellwahl nicht.""" """Volle 7-Feld-Capabilities — braucht sie für die Modellwahl."""
return {"tools": tools, "images": images, "parallel_tool_calls": False, return {"tools": tools, "images": images, "parallel_tool_calls": False,
"prompt_cache_key": False, "chat_completions": True, "prompt_cache_key": False, "chat_completions": True,
"interleaved_reasoning": False, "max_tokens_parameter": False} "interleaved_reasoning": False, "max_tokens_parameter": False}
@@ -55,21 +55,22 @@ def build_snippets(host: str = DEFAULT_HOST,
"openAiModelId": PRIMARY_MODEL, "openAiModelId": PRIMARY_MODEL,
}, indent=2) }, indent=2)
# Zed = Rust-nativ, ~16x leichter als VS Code, Agent Panel mit parallelen Agenten, # Hermes Desktop = Remote-IDE, die auf dem Gateway läuft.
# Windows stabil seit Okt 2025 — das Haupt-Tool für den User (Anti-Bloat + klickbar). # Anleitung: Browser aufweisen → Token aus Datei laden → loslegen.
zed = json.dumps({ hermes_desktop = (
"language_models": { f"# Hermes Desktop — Remote-IDE auf der Box\n"\
"openai_compatible": { f"#\n"\
"bosgame": { f"# 1. Browser öffnen: http://{host}:9001/hermes-ui\n"\
"api_url": gw, f"# (MC2-Proxy auf dem Gateway)\n"\
"available_models": IDE_MODELS, f"#\n"\
} f"# 2. Session-Token: auf der Box liegen in\n"\
} f"# ~/.hermes/desktop-gateway-token\n"\
}, f"# (den Dateiname kopieren, den TOKEN-WERT NICHT hardcoden!)\n"\
"agent": { f"#\n"\
"default_model": {"provider": "bosgame", "model": PRIMARY_MODEL} f"# 3. Token im Browser-Login einfügen — fertig.\n"\
} f"#\n"\
}, indent=2) f"# Modelle im Hermes Desktop: {PRIMARY_MODEL} (bauen), heavy (denken), vision (Bilder)."\
)
# Claude Code spricht das Anthropic-Format; der Gateway ist OpenAI-kompatibel und # Claude Code spricht das Anthropic-Format; der Gateway ist OpenAI-kompatibel und
# bietet KEIN /v1/messages (verifiziert). Daher braucht es einen kleinen Übersetzer # bietet KEIN /v1/messages (verifiziert). Daher braucht es einen kleinen Übersetzer
@@ -101,15 +102,14 @@ def build_snippets(host: str = DEFAULT_HOST,
"host": host, "host": host,
"gateway_url": gw, "gateway_url": gw,
"mc_url": mc_url, "mc_url": mc_url,
# Leitung 1 — das MODELL. Bewusst NUR 3 Tools (Verdikt 03.07.2026): Zed (Haupt-Tool: # Leitung 1 — das MODELL. Bewusst NUR 3 Tools (Verdikt 09.07.2026): Hermes Desktop
# Rust-nativ/leichtgewichtig, Agent Panel, parallele Agenten, Windows stabil seit 10/2025), # (Remote-IDE im Browser), Kilo Code (VS-Code-Fallback mit Orchestrator-Modus),
# Kilo Code (VS-Code-Fallback mit Orchestrator-Modus), Claude Code (starke Sessions). # Claude Code (starke Sessions).
# Cursor/Continue/Roo/OpenCode entfernt — Roo eingestellt, Rest cloud-first, Terminal # Cursor/Continue/Roo/OpenCode entfernt — Roo eingestellt, Rest cloud-first, Terminal
# oder von Kilo abgedeckt. Das Evolution-Radar (AUTONOMIE_PLAN E4) überwacht die Kategorie. # oder von Kilo abgedeckt. Das Evolution-Radar (AUTONOMIE_PLAN E4) überwacht die Kategorie.
"tools": { "tools": {
"zed": {"label": "Zed (empfohlen)", "lang": "json", "snippet": zed, "hermes_desktop": {"label": "Hermes Desktop (empfohlen)", "lang": "bash", "snippet": hermes_desktop,
"note": "Leichtgewicht-Editor (Rust, ~16x weniger RAM als VS Code). settings.json → " "note": "Remote-IDE im Browser — Gateway-URL + Token aus Datei laden. Drei Modelle: "
"language_models.openai_compatible; Agent Panel nutzt dann die Box. Drei Modelle: "
"Coder (bauen) · Planer (denken) · Augen (Bilder) — oben im Wähler umschalten."}, "Coder (bauen) · Planer (denken) · Augen (Bilder) — oben im Wähler umschalten."},
"kilo": {"label": "Kilo Code", "lang": "json", "snippet": kilo, "kilo": {"label": "Kilo Code", "lang": "json", "snippet": kilo,
"note": "VS Code/JetBrains (schwergewichtiger). OpenAI-Provider → Gateway. " "note": "VS Code/JetBrains (schwergewichtiger). OpenAI-Provider → Gateway. "
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -7,8 +7,8 @@
<link rel="manifest" href="/manifest.webmanifest" /> <link rel="manifest" href="/manifest.webmanifest" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>Mission Control 2.0</title> <title>Mission Control 2.0</title>
<script type="module" crossorigin src="/assets/index-ieP3mTAf.js"></script> <script type="module" crossorigin src="/assets/index-BHaK9XZl.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-B7apENt0.css"> <link rel="stylesheet" crossorigin href="/assets/index-C7eDy97i.css">
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
+3 -3
View File
@@ -9,7 +9,7 @@ import { cn } from "@/lib/utils"
// Dateiziel je Tool — nur Hinweis im Editor-Kopf, keine Logik. // Dateiziel je Tool — nur Hinweis im Editor-Kopf, keine Logik.
const FILE_NAMES: Record<string, string> = { const FILE_NAMES: Record<string, string> = {
zed: "Zed: settings.json", hermes_desktop: "Hermes Desktop: Browser-Login",
kilo: "Kilo: Einstellungen → API Provider", kilo: "Kilo: Einstellungen → API Provider",
claude_code: "env / Übersetzer", claude_code: "env / Übersetzer",
} }
@@ -75,7 +75,7 @@ function CodeWindow({
export function ConnectView() { export function ConnectView() {
const [host, setHost] = useState(localStorage.getItem("mc_host") || "192.168.178.151") const [host, setHost] = useState(localStorage.getItem("mc_host") || "192.168.178.151")
const [mcpPath, setMcpPath] = useState(localStorage.getItem("mc_mcp_path") || "") const [mcpPath, setMcpPath] = useState(localStorage.getItem("mc_mcp_path") || "")
const [active, setActive] = useState("zed") const [active, setActive] = useState("hermes_desktop")
const [copied, setCopied] = useState<"model" | "memory" | null>(null) const [copied, setCopied] = useState<"model" | "memory" | null>(null)
const params = new URLSearchParams({ host }) const params = new URLSearchParams({ host })
@@ -123,7 +123,7 @@ export function ConnectView() {
<div className="rounded-2xl border border-border/60 bg-background/40 p-4 text-center"> <div className="rounded-2xl border border-border/60 bg-background/40 p-4 text-center">
<Laptop className="h-7 w-7 mx-auto text-muted-foreground" /> <Laptop className="h-7 w-7 mx-auto text-muted-foreground" />
<div className="mt-2 text-sm font-semibold text-foreground">Dein lokaler Agent</div> <div className="mt-2 text-sm font-semibold text-foreground">Dein lokaler Agent</div>
<div className="text-[11px] text-muted-foreground">Cline · Cursor · Zed </div> <div className="text-[11px] text-muted-foreground">Hermes Desktop · Kilo Code · Claude Code </div>
</div> </div>
{/* Zwei Leitungen */} {/* Zwei Leitungen */}