Auftragsbuch: 'orchestrator/hermes-desktop' angenommen (Ein-Klick-Gate)
This commit is contained in:
@@ -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
@@ -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. "
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+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="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>
|
||||||
|
|||||||
@@ -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 */}
|
||||||
|
|||||||
Reference in New Issue
Block a user