#!/usr/bin/env python3 """Run one typed xMESH decision through the standalone Singularity runtime.""" from __future__ import annotations import argparse, json, sys from pathlib import Path import torch PACKAGE=Path(__file__).resolve().parents[1] sys.path.insert(0,str(PACKAGE)) from sgl_systemone import load_artifact, systemone from xmesh_policy import apply_policy p=argparse.ArgumentParser(); p.add_argument('--request',type=Path,required=True); p.add_argument('--device',choices=('mps','cpu','cuda'),default='mps'); args=p.parse_args() payload=json.loads(args.request.read_text()) if set(payload)!={'state','questions'}: raise SystemExit("request must contain exactly 'state' and 'questions'") dtype=torch.float16 if args.device in {'mps','cuda'} else torch.float32 model,processor,temperature=load_artifact(str(PACKAGE),device=args.device,dtype=dtype) response=systemone(model,processor,{'model':'Singularity-xMESH-0.8B',**payload},temperature=temperature,max_length=2048) raw={} for name,value in response['answers'].items(): if value['type']=='noul': raw[name]={'answer':float(value['noul'])>=0.5,'confidence':None} elif value['type']=='choice': raw[name]={'answer':value['choice'],'confidence':value.get('confidence')} else: raw[name]={'answer':value['score'],'confidence':value.get('confidence')} answers,overrides=apply_policy(payload['state'],payload['questions'],raw) print(json.dumps({'model':'Singularity xMESH 0.8B','answers':answers,'policy_overrides':overrides,'usage':response['usage']},indent=2))