#!/usr/bin/env python3 """Environments API (agent sandboxes): list → create (empty) → get → list files → delete. STATUS: LIVE_VERIFIED 2026-09-18 (tmp-live/gemini-tools/env*.json): GET /v1beta/environments → 200 {} (empty); POST /v1beta/environments {} → 200 {id}; GET /v1beta/environments/{id} → 200 {id, status, storage, created, updated}; GET …/files/ (root listing) → 404 on a fresh environment; DELETE → 200 {}. The discovery-doc spelling GET /v1beta/environments:list also answered 200. Run: .venv/bin/python examples/gemini/interactions/environments.py """ import json, sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[3])) from scripts.live import gemini_request st, r, _ = gemini_request("GET", "/v1beta/environments", note="environments.py list") print("list:", st, json.dumps(r)[:200]) st, r, _ = gemini_request("POST", "/v1beta/environments", {}, note="environments.py create") eid = r["id"]; print("create:", st, r) st, g, _ = gemini_request("GET", f"/v1beta/environments/{eid}", note="environments.py get") print("get:", st, json.dumps(g)) st, f, _ = gemini_request("GET", f"/v1beta/environments/{eid}/files/", note="environments.py files root") print("files:", st, json.dumps(f)[:200] if not isinstance(f, bytes) else f[:200]) st, d, _ = gemini_request("DELETE", f"/v1beta/environments/{eid}", note="environments.py delete") print("delete:", st, d)