Control server (API HTTP locale)
Chi ospita il motore (l’app o il daemon) pubblica un’API HTTP locale in
.microlab/.runtime/control.json:
{ "pid": 123, "port": 49777, "token": "…", "mode": "daemon", "version": "0.1.0", "startedAt": "…" }L’API vive su http://127.0.0.1:<port> e ogni richiesta porta
Authorization: Bearer <token>. La porta è effimera e il token cambia a ogni avvio del
motore: bisogna rileggere control.json a ogni connessione.
| Rotta | Metodo | Descrizione |
|---|---|---|
/ping | GET | Identità: { ok, mode, pid, version, activeScenario }. |
/ops | GET | Metadati del registro di operazioni. |
/invoke | POST | { "name": "<operazione>", "args": [...] } → { ok, result } (o errore). |
/events | GET | SSE con eventi del motore: logs, status, docker, mock, metrics. |
/mcp | POST | Il server MCP via Streamable HTTP (vedi MCP). |
/shutdown | POST | Spegnimento ordinato; solo il daemon lo onora (l’app risponde 409). |
microlab non è altro che un client di questa API. Qualsiasi strumento locale (un altro
script, un agente) può usarla direttamente: GET /ops per scoprire la superficie e
POST /invoke per eseguire qualsiasi operazione, incluse quelle che non hanno un comando
proprio.