Files
glpi-neuroforge-mega/scripts/quality-replay.py
jbergner a6bc71fb3a
Some checks failed
release-tag / Resolve release metadata (push) Successful in 30s
release-tag / Build knowledge (push) Failing after 4m51s
release-tag / Build control (push) Failing after 5m0s
release-tag / Build agent (push) Failing after 5m0s
release-tag / Build agent-data-init (push) Failing after 5m5s
release-tag / Build neuroforge-worker (push) Failing after 5m7s
release-tag / Build neuroforge (push) Failing after 5m9s
Init
2026-08-26 18:34:41 +02:00

27 lines
1.1 KiB
Python

#!/usr/bin/env python3
"""Run the read-only retrieval/learning replay benchmark against a live Agent."""
import argparse, base64, json, pathlib, sys, urllib.request, urllib.error
p=argparse.ArgumentParser()
p.add_argument('cases', help='JSON file: {"cases":[...]}')
p.add_argument('--url', default='http://127.0.0.1:8080')
p.add_argument('--user', default='')
p.add_argument('--password', default='')
p.add_argument('--output', default='')
a=p.parse_args()
payload=pathlib.Path(a.cases).read_bytes()
req=urllib.request.Request(a.url.rstrip('/')+'/api/quality/replay', data=payload, method='POST', headers={'Content-Type':'application/json'})
if a.user or a.password:
token=base64.b64encode(f'{a.user}:{a.password}'.encode()).decode()
req.add_header('Authorization','Basic '+token)
try:
with urllib.request.urlopen(req, timeout=300) as r:
out=r.read()
except urllib.error.HTTPError as e:
sys.stderr.write(e.read().decode(errors='replace')+'\n')
raise SystemExit(2)
if a.output:
pathlib.Path(a.output).write_bytes(out+b'\n')
obj=json.loads(out)
print(json.dumps(obj.get('summary',{}), indent=2, ensure_ascii=False))