Salta ai contenuti

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.

RottaMetodoDescrizione
/pingGETIdentità: { ok, mode, pid, version, activeScenario }.
/opsGETMetadati del registro di operazioni.
/invokePOST{ "name": "<operazione>", "args": [...] }{ ok, result } (o errore).
/eventsGETSSE con eventi del motore: logs, status, docker, mock, metrics.
/mcpPOSTIl server MCP via Streamable HTTP (vedi MCP).
/shutdownPOSTSpegnimento 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.