Prepare receipt-bound audit E2 third attempt
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a02991-be07-7bb3-8b6d-e9701b5621de
This commit is contained in:
parent
0525e632d7
commit
96d6781036
12 changed files with 440 additions and 27 deletions
|
|
@ -14,7 +14,7 @@ from .engagement import AuthorizationError, Engagement
|
|||
from .fixtures import FixtureService, probe_suite
|
||||
from .model import RunReport, utc_now
|
||||
from .plane import KillSwitch, admit, default_broker, retired_ids
|
||||
from .platform_custody import broker_from_receipt
|
||||
from .platform_custody import broker_from_receipt, finalize_run_report
|
||||
from .reporting import queue_risk_nexus, risk_nexus_message
|
||||
from .targets import load_catalog, load_registration
|
||||
|
||||
|
|
@ -100,6 +100,12 @@ def main(argv: list[str] | None = None) -> None:
|
|||
"--broker-receipt",
|
||||
help="WP-0025 broker-readiness receipt; required for railiance.custody-projection-receipt",
|
||||
)
|
||||
finalize = commands.add_parser("finalize-report")
|
||||
finalize.add_argument("report")
|
||||
finalize.add_argument("--contract", required=True)
|
||||
finalize.add_argument("--receipt", required=True)
|
||||
finalize.add_argument("--cleanup-receipt", required=True)
|
||||
finalize.add_argument("--output", required=True)
|
||||
commands.add_parser("kill-switch")
|
||||
deliver = commands.add_parser("deliver")
|
||||
deliver.add_argument("report")
|
||||
|
|
@ -171,6 +177,27 @@ def main(argv: list[str] | None = None) -> None:
|
|||
raise SystemExit(1)
|
||||
print("clear")
|
||||
return
|
||||
if args.command == "finalize-report":
|
||||
try:
|
||||
report = json.loads(Path(args.report).read_text(encoding="utf-8"))
|
||||
contract = json.loads(Path(args.contract).read_text(encoding="utf-8"))
|
||||
projection = json.loads(Path(args.receipt).read_text(encoding="utf-8"))
|
||||
cleanup = json.loads(Path(args.cleanup_receipt).read_text(encoding="utf-8"))
|
||||
finalized = finalize_run_report(
|
||||
report, projection=projection, cleanup=cleanup, contract=contract
|
||||
)
|
||||
RunReport(**finalized)
|
||||
output = Path(args.output)
|
||||
output.parent.mkdir(parents=True, exist_ok=True)
|
||||
output.write_text(
|
||||
json.dumps(finalized, indent=2, sort_keys=True) + "\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
except (AuthorizationError, OSError, ValueError, json.JSONDecodeError, TypeError) as error:
|
||||
print(f"not authorized: {error}", file=sys.stderr)
|
||||
raise SystemExit(2) from None
|
||||
print(f"finalized: {output}")
|
||||
return
|
||||
if args.command == "deliver":
|
||||
try:
|
||||
report = RunReport(**json.loads(Path(args.report).read_text(encoding="utf-8")))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue