Control server (API HTTP locale)
Celui qui héberge le moteur (l’app ou le daemon) publie une API HTTP locale dans
.microlab/.runtime/control.json :
{ "pid": 123, "port": 49777, "token": "…", "mode": "daemon", "version": "0.1.0", "startedAt": "…" }L’API vit à http://127.0.0.1:<port> et chaque requête porte
Authorization: Bearer <token>. Le port est éphémère et le token change à chaque
démarrage du moteur : il faut relire control.json à chaque connexion.
| Route | Méthode | Description |
|---|---|---|
/ping | GET | Identité : { ok, mode, pid, version, activeScenario }. |
/ops | GET | Métadonnées du registre d’opérations. |
/invoke | POST | { "name": "<opération>", "args": [...] } → { ok, result } (ou erreur). |
/events | GET | SSE avec les événements du moteur : logs, status, docker, mock, metrics. |
/mcp | POST | Le serveur MCP en Streamable HTTP (voir MCP). |
/shutdown | POST | Arrêt ordonné ; seul le daemon l’honore (l’app répond 409). |
microlab n’est rien de plus qu’un client de cette API. N’importe quel outil local (un
autre script, un agent) peut l’utiliser directement : GET /ops pour découvrir la surface
et POST /invoke pour exécuter n’importe quelle opération, y compris celles qui n’ont pas
de commande propre.