from pathlib import Path
import runpy,json
P=Path(__file__).parent/'frozen481-post-ready-native-outcomes-command.py';ns=runpy.run_path(str(P))
u='11111111-1111-4111-8111-111111111111';base={'review':{'memo_id':'review-'+u,'intake_state':'ready','stale':False},'dispositions':[{'disposition':{'id':'disp-'+u,'memo_id':'review-'+u,'memo_version':1,'verb':'accept','actor':{'kind':'person','sub':'uid=platform-root,ou=people,dc=netkingdom,dc=local'},'at':'2026-10-11T10:00:00Z','approval_id':u,'note':'SYNTHETIC_PRIVATE_SENTINEL','reasons':['SYNTHETIC_PRIVATE_SENTINEL']},'submission_state':'confirmed','approved_at':'2026-10-11T10:00:01Z'}]}
results=[]
for kind in ['actual_native_no_memo_id','comment_null','prepared','in_flight','system_actor']:
 d=json.loads(json.dumps(base))
 if kind!='actual_native_no_memo_id':d['memo_id']=ns['MEMO_ID']
 if kind=='comment_null':d['dispositions'][0]['submission_state']=None;d['dispositions'][0]['disposition'].update(verb='comment',approval_id=None)
 if kind in ['prepared','in_flight']:d['dispositions'][0]['submission_state']=kind
 if kind=='system_actor':d['dispositions'][0]['disposition']['actor']['kind']='system'
 try:ns['safe_outcome_metadata'](d)
 except ValueError:accepted=False
 else:accepted=True
 results.append({'native_contract_case':kind,'metadata_accepted':accepted})
assert all(not x['metadata_accepted'] for x in results)
print(json.dumps({'synthetic_source_only':True,'native_request':False,'real_credentials':False,'current481_rejects_actual_native_shapes':results},indent=2))
