Control server (API HTTP local)
Quem aloja o motor (a app ou o daemon) publica uma API HTTP local em
.microlab/.runtime/control.json:
{ "pid": 123, "port": 49777, "token": "…", "mode": "daemon", "version": "0.1.0", "startedAt": "…" }A API vive em http://127.0.0.1:<port> e cada pedido leva
Authorization: Bearer <token>. A porta é efémera e o token muda a cada arranque do motor:
é preciso reler control.json a cada ligação.
| Rota | Método | Descrição |
|---|---|---|
/ping | GET | Identidade: { ok, mode, pid, version, activeScenario }. |
/ops | GET | Metadados do registo de operações. |
/invoke | POST | { "name": "<operação>", "args": [...] } → { ok, result } (ou erro). |
/events | GET | SSE com eventos do motor: logs, status, docker, mock, metrics. |
/mcp | POST | O servidor MCP por Streamable HTTP (ver MCP). |
/shutdown | POST | Encerramento ordenado; só o daemon o honra (a app responde 409). |
O microlab não é mais do que um cliente desta API. Qualquer ferramenta local (outro
script, um agente) pode usá-la diretamente: GET /ops para descobrir a superfície e
POST /invoke para executar qualquer operação, incluindo as que não têm comando próprio.