#!/usr/bin/env python3 """Install tested CodeLabX PWA and browser text-to-speech bundle.""" from __future__ import annotations import base64,hashlib,lzma,subprocess,sys from pathlib import Path BRANCH="feature/learning-intelligence-v1" HEAD="c31eb94dae3639542ff428f5faab99f89c6042e5" PATCH_SHA="d02d6f96b0ad8453309a5ee05355e0bf02dfd8e6d0a8112c13e0be0f2871d642" PAYLOAD=""" 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 """ def fail(msg): raise SystemExit(f"ERROR: {msg}") def git(root,*args): return subprocess.run(["git",*args],cwd=root,check=True,text=True,capture_output=True).stdout.strip() def main(): root=Path.cwd() if not (root/"manage.py").is_file() or not (root/".git").exists(): fail("run from the CodeLabX repository root") branch=git(root,"branch","--show-current"); head=git(root,"rev-parse","HEAD") if branch!=BRANCH: fail(f"expected branch {BRANCH!r}; found {branch!r}") if head!=HEAD: fail(f"expected verified baseline {HEAD[:8]}; found {head[:8]}") if git(root,"status","--porcelain","--untracked-files=normal"): fail("working tree is not clean") try: patch=lzma.decompress(base64.b64decode(PAYLOAD)) except Exception as exc: fail(f"embedded patch could not be decoded: {exc}") if hashlib.sha256(patch).hexdigest()!=PATCH_SHA: fail("embedded patch checksum failed") for args,label in [(["git","apply","--check","--whitespace=error-all","-"],"preflight"),(["git","apply","--whitespace=error-all","-"],"application")]: result=subprocess.run(args,cwd=root,input=patch,stdout=subprocess.PIPE,stderr=subprocess.PIPE) if result.returncode: fail(f"patch {label} failed: "+result.stderr.decode(errors="replace").strip()) print("PWA and text-to-speech bundle installed.") print("Adds install manifest/icons, a privacy-safe offline shell, install prompt, and bounded browser speech controls.") print("Private pages are not cached offline, and text/audio is not uploaded for speech.") return 0 if __name__=="__main__": sys.exit(main())