"""Interpret a retained provider result after independent call verification.

This reader does not verify receipts or change the original response file.
"""
import argparse
import json
from pathlib import Path

p = argparse.ArgumentParser(description=__doc__)
p.add_argument('response', type=Path)
a = p.parse_args()
response = json.loads(a.response.read_bytes())
output = response.get('output') or {}
terminal = response.get('terminal_state') or {}
if (response.get('verdict') != 'allow' or terminal.get('state') != 'completed'
        or output.get('kind') != 'value'):
    raise SystemExit('No completed value: retain the original call for recovery.')

provider = output['value']
# The wire representation contains bytes, not Unicode code points.
body = json.loads(bytes(provider['body']))
print(json.dumps({'http_status': provider['status'], 'provider_result': body},
                 ensure_ascii=False, indent=2))
