{
  "name": "panorama-sandbox",
  "description": "Prototype: hosted Claude Code dev environments on Cloudflare Sandboxes",
  "routes": {
    "POST /sessions": "create or attach to a session (body: sessionId, repo?, branch?). If a snapshot exists for this id, restores from it instead of cloning.",
    "GET /sessions/:id": "check session status + latest snapshot",
    "DELETE /sessions/:id": "destroy container (soft); state recoverable for 24h. Pass ?purge=true to also delete all R2 backups for this session.",
    "POST /sessions/:id/task": "run a headless Claude Code task (body: task, cwd?)",
    "POST /sessions/:id/exec": "run an arbitrary shell command (body: command, cwd?, env?, timeoutMs?)",
    "POST /sessions/:id/snapshot": "explicit snapshot of /workspace (body: name?, ttlSeconds?)",
    "GET /sessions/:id/snapshots": "list snapshots taken for this session (most recent first)",
    "POST /sessions/:id/restore": "restore /workspace from a snapshot (body: id? — omit to restore latest)"
  }
}