Control server (lokale HTTP-API)
Wer die Engine hostet (die App oder der Daemon), veröffentlicht eine lokale HTTP-API in
.microlab/.runtime/control.json:
{ "pid": 123, "port": 49777, "token": "…", "mode": "daemon", "version": "0.1.0", "startedAt": "…" }Die API lebt unter http://127.0.0.1:<port> und jede Anfrage trägt
Authorization: Bearer <token>. Der Port ist flüchtig und das Token ändert sich bei jedem
Start der Engine: Man muss control.json bei jeder Verbindung neu lesen.
| Route | Methode | Beschreibung |
|---|---|---|
/ping | GET | Identität: { ok, mode, pid, version, activeScenario }. |
/ops | GET | Metadaten des Operationsregisters. |
/invoke | POST | { "name": "<Operation>", "args": [...] } → { ok, result } (oder Fehler). |
/events | GET | SSE mit Engine-Ereignissen: logs, status, docker, mock, metrics. |
/mcp | POST | Der MCP-Server über Streamable HTTP (siehe MCP). |
/shutdown | POST | Geordnetes Herunterfahren; nur der Daemon honoriert es (die App antwortet 409). |
microlab ist nichts weiter als ein Client dieser API. Jedes lokale Werkzeug (ein anderes
Skript, ein Agent) kann sie direkt nutzen: GET /ops, um die Oberfläche zu entdecken, und
POST /invoke, um jede Operation auszuführen, einschließlich derer ohne eigenen Befehl.