"""Python 3.9+. Start hzb-demo-server.mjs first. Local static fixture only."""
import json
import uuid
import urllib.request
import urllib.error

payload = {
    "capability": "hzb-solidity",
    "goal": "Prepare a human-review checklist for an authorized contract",
    "context": {"network": "local-demo", "source": "contract Example { address public owner; }"},
    "permissions": {"actions": ["read", "analyze"], "external_writes": False},
}
request = urllib.request.Request(
    "http://127.0.0.1:8787/v1/tasks",
    data=json.dumps(payload).encode("utf-8"),
    headers={"Authorization": "Bearer local-demo-key", "Content-Type": "application/json", "Idempotency-Key": str(uuid.uuid4())},
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=10) as response:
        result = json.load(response)
        if result.get("demo") is not True or result.get("execution_performed") is not False:
            raise ValueError("Unexpected example response")
        print(json.dumps(result, indent=2, ensure_ascii=False))
except urllib.error.HTTPError as error:
    print(error.code, error.read().decode("utf-8"))
    raise SystemExit(1)
