Control server (API HTTP local)
Quien aloja el motor (la app o el daemon) publica una API HTTP local en
.microlab/.runtime/control.json:
{ "pid": 123, "port": 49777, "token": "…", "mode": "daemon", "version": "0.1.0", "startedAt": "…" }La API vive en http://127.0.0.1:<port> y toda petición lleva
Authorization: Bearer <token>. El puerto es efímero y el token cambia en cada
arranque del motor: hay que releer control.json en cada conexión.
| Ruta | Método | Descripción |
|---|---|---|
/ping | GET | Identidad: { ok, mode, pid, version, activeScenario }. |
/ops | GET | Metadatos del registro de operaciones. |
/invoke | POST | { "name": "<operación>", "args": [...] } → { ok, result } (o error). |
/events | GET | SSE con eventos del motor: logs, status, docker, mock, metrics. |
/mcp | POST | El servidor MCP por Streamable HTTP (ver MCP). |
/shutdown | POST | Apagado ordenado; solo lo honra el daemon (la app responde 409). |
microlab no es más que un cliente de esta API. Cualquier herramienta local (otro
script, un agente) puede usarla directamente: GET /ops para descubrir la superficie y
POST /invoke para ejecutar cualquier operación, incluidas las que no tienen comando
propio.