{
  "runtime": "setup:agent-team",
  "endpoints": {
    "GET /info": "runtime information",
    "GET /health": "liveness health check",
    "GET /ready": "readiness — cached PreflightService report (200 ready / 503 not ready)",
    "POST /deploy": "validate + stage + activate an artifact JSON body (no execute)",
    "POST /execute": "re-run the staged payload on the warm sandbox",
    "POST /rollback": "rollback a release { releaseId } — swaps the active pointer; in-flight work keeps its pin",
    "GET /releases": "release history: active flag + pinned in-flight work per release",
    "POST /tasks": "submit async task { input, idempotencyKey?, repo?, export? }",
    "GET /tasks/:id": "task status + bounded buffered output",
    "GET /tasks/:id/events": "SSE stream of task events",
    "DELETE /tasks/:id": "cancel task (kill on the ExecutionHandle)",
    "POST /tasks/:id/verdict": "resume a waiting_human task { verdict, note? }",
    "POST /sessions": "create a durable session { owner? }",
    "GET /sessions": "list sessions (?owner= filter)",
    "GET /sessions/:id": "session record + status",
    "POST /sessions/:id/send": "queue a turn { input|message } — Accept: text/event-stream streams the turn",
    "GET /sessions/:id/events": "SSE session stream (?cursor= replays the journal)",
    "DELETE /sessions/:id": "destroy the session",
    "POST /webhooks/:provider": "trigger surface — verified event -> task"
  }
}