{
  "lab": "update-lab",
  "network": "same-origin-files",
  "storage": "none",
  "input": "Nothing from you. The lab loads its own signed example manifests from this site.",
  "statement": "This page sends nothing anywhere. If an AI agent or browser extension is reading your screen, it can see what's shown here.",
  "enforcedBy": "content-security-policy: connect-src 'self' (the browser blocks any request to another site)",
  "check": [
    "curl -sI https://lab.hopperlabs.ai/labs/update-lab/run | grep -i content-security-policy",
    "Compare each file below with its sha256, and read the source at the commit given.",
    "Once the page has loaded, turn off Wi-Fi: the lab keeps working."
  ],
  "source": {
    "repository": "hopperlabs-ai-dev/hopper-lab",
    "commit": "26d7b1e0a8ae469271806df865e772f5fb6077bc",
    "files": [
      {
        "path": "/update-lab/app.js",
        "sha256": "1d4b618a3a79fe28e95a39e95881f07cd6836b22c409f8996a7f61c6c719a395"
      },
      {
        "path": "/update-lab/chrome.css",
        "sha256": "2a1cfafa2bbb072b5d84c878d0afb9cc1220fa90d976c3b4da22fa1662b02642"
      },
      {
        "path": "/update-lab/index.html",
        "sha256": "dd091a79473fb9b88e69d4dc27d320906c4d357a9758aa064ec3c00dc07bec3f"
      },
      {
        "path": "/update-lab/lab-kit.js",
        "sha256": "23accc0b63e67e5e2b93594634a6689bff2958ae2be0bd706b82c77cac9f5b56"
      },
      {
        "path": "/update-lab/lab.css",
        "sha256": "1b5d9a9f0396a99d985885e2ccc604f29fd469f1c13ea74418c06f949b9d30cc"
      },
      {
        "path": "/update-lab/scenarios.js",
        "sha256": "e9a19f346a69287d52ffdbf0107ddb8cb58a37a3006e0ced9271ea943a90ce5b"
      },
      {
        "path": "/update-lab/updates/downgrade.json",
        "sha256": "1e1cf2fabe4c31e65b24acd8c8a092c87d54371322ff0d8968d2a4180f89197a"
      },
      {
        "path": "/update-lab/updates/expired.json",
        "sha256": "19dd7e515d1d8b65c48d8471ed7e63c811aec108f4f8a7b4ee7f609510d38c46"
      },
      {
        "path": "/update-lab/updates/notes-1.3.0-swapped.txt",
        "sha256": "5fa66768f63de42c59d602c8e2e017fd416ea66dec8030c72684f0ee34bc5cf6"
      },
      {
        "path": "/update-lab/updates/notes-1.3.0.txt",
        "sha256": "ef76d8d2acf8b26096c3cdf8dda7048ada57fabddde1838f941caa51e06be9ec"
      },
      {
        "path": "/update-lab/updates/replay.json",
        "sha256": "d7a4bea47740b5925a07e2307260ae42b5be92567a566f692ce6f749935cba45"
      },
      {
        "path": "/update-lab/updates/revoked.json",
        "sha256": "21d06e9486e03f17c692d0076136b9d279b35cb11b96f952b11069255c47147b"
      },
      {
        "path": "/update-lab/updates/rollout.json",
        "sha256": "fcd6b0a3614013b0673d4b567055a54b26d992c78fe327ead0c272bf28ac83ba"
      },
      {
        "path": "/update-lab/updates/stable.json",
        "sha256": "2771e29e1cc027d224eef3448b621380be0ae20987a9eff9c3c261436ca4ddf2"
      },
      {
        "path": "/update-lab/updates/stranger.json",
        "sha256": "d719a2ace87293c411493ca53f128cfb6a28865f319d0ccf2a257393123a6e76"
      },
      {
        "path": "/update-lab/updates/tampered.json",
        "sha256": "37ee7c42e95392d5b490482d049b91f2a1534332808b8d935dff5a40ed367d6e"
      },
      {
        "path": "/update-lab/updates/trust.json",
        "sha256": "a008487cadc04572940368baf39e36c4c0506367253fd942a18974189890f4b5"
      },
      {
        "path": "/update-lab/vendor/update-kit/LICENSE",
        "sha256": "da85e531521f8f9a74fcef9c3922cb88091eb9807f1413d30d02393e8b3762c8"
      },
      {
        "path": "/update-lab/vendor/update-kit/SOURCE.txt",
        "sha256": "7e8fdd73065d9548dd389d896de1f3c34f1c2d84d46f1ab04f3b9d32246d43f1"
      },
      {
        "path": "/update-lab/vendor/update-kit/index.js",
        "sha256": "ceff2d52a084eac10b15cc47610eee32ef3755106501fa274d6640765dc0f370"
      }
    ]
  }
}
