"""Tiny stdlib JSON HTTP client (no third-party deps). Handles the Spark Control self-signed cert (verify=False) and plain-HTTP Qdrant. """ import json import ssl import urllib.error import urllib.request def _ctx(verify: bool): if verify: return None ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE return ctx def request(method: str, url: str, body=None, verify: bool = True, timeout: int = 180): data = json.dumps(body).encode("utf-8") if body is not None else None req = urllib.request.Request(url, data=data, method=method, headers={"Content-Type": "application/json"}) ctx = _ctx(verify) if url.lower().startswith("https") else None try: with urllib.request.urlopen(req, timeout=timeout, context=ctx) as resp: raw = resp.read() return resp.status, (json.loads(raw) if raw else {}) except urllib.error.HTTPError as exc: raw = exc.read() try: payload = json.loads(raw) if raw else {} except Exception: payload = {"raw": raw.decode("utf-8", "replace")} return exc.code, payload