Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
15 lines
1 KiB
Python
15 lines
1 KiB
Python
"""Only structural count/hash receipts can leave the private execution phase."""
|
|
def counts(value):
|
|
if (set(value) != {'schema_version', 'lifecycle', 'outbox', 'submissions', 'integrity',
|
|
'read_only_pre_open', 'store_constructed'}
|
|
or value['schema_version'] != 5 or value['integrity'] != 'ok'
|
|
or value['read_only_pre_open'] is not True or value['store_constructed'] is not False
|
|
or set(value['lifecycle']) != {'records', 'events', 'pending'}
|
|
or not set(value['outbox']) <= {'pending', 'delivered', 'blocked'}
|
|
or not set(value['submissions']) <= {'prepared', 'in_flight', 'confirmed', 'unresolved'}):
|
|
raise ValueError('count-only receipt shape/state refused; values withheld')
|
|
for group in ('lifecycle', 'outbox', 'submissions'):
|
|
if any(type(number) is not int or number < 0 or number > 10**12
|
|
for number in value[group].values()):
|
|
raise ValueError('count-only receipt values refused')
|
|
return value
|