#!/usr/bin/env python3 """CLI for large-scale policy simulation and fuzzing.""" from __future__ import annotations import argparse import json from prod.clean_arch.sim.fuzzer import FuzzConfig, fuzz_stack def main() -> int: parser = argparse.ArgumentParser(description="Run clean-arch policy simulation/fuzzing.") parser.add_argument("--transactions", type=int, default=1_000_000) parser.add_argument("--seed", type=int, default=42) parser.add_argument("--bad-input-rate", type=float, default=0.01) parser.add_argument("--network-drop-rate", type=float, default=0.001) parser.add_argument("--network-duplicate-rate", type=float, default=0.001) parser.add_argument("--price-sigma", type=float, default=0.015) parser.add_argument("--capture-limit", type=int, default=2_000) parser.add_argument("--runtime-namespace", type=str, default="pink") parser.add_argument("--anomaly-sensor-key", type=str, default="") parser.add_argument("--mirror-legacy-sensor-key", action="store_true") parser.add_argument("--aggressive", action="store_true", help="Enable aggressive chaos/anomaly injection") parser.add_argument("--json", action="store_true", help="Emit JSON summary") args = parser.parse_args() report = fuzz_stack( FuzzConfig( transactions=args.transactions, seed=args.seed, bad_input_rate=args.bad_input_rate, network_drop_rate=args.network_drop_rate, network_duplicate_rate=args.network_duplicate_rate, price_sigma=args.price_sigma, capture_limit=args.capture_limit, aggressive=args.aggressive, runtime_namespace=args.runtime_namespace, anomaly_sensor_key=(args.anomaly_sensor_key.strip() or None), mirror_legacy_sensor_key=args.mirror_legacy_sensor_key, ) ) payload = { "transactions": report.transactions, "capital_final": report.capital_final, "equity_final": report.equity_final, "open_notional_final": report.open_notional_final, "policy_events": report.policy_events, "trade_events": report.trade_events, "account_events": report.account_events, "logs_emitted": report.logs_emitted, "network_dropped": report.network_dropped, "network_duplicated": report.network_duplicated, "anomaly_counts": report.anomaly_counts, "anomaly_origin_counts": report.anomaly_origin_counts, "injected_anomaly_counts": report.injected_anomaly_counts, "emergent_anomaly_counts": report.emergent_anomaly_counts, "anomaly_sensor_payload": report.anomaly_sensor_payload, "anomaly_samples": report.anomaly_samples, "sample_policy_events": report.sample_policy_events, } if args.json: print(json.dumps(payload, indent=2, sort_keys=True)) else: print("Clean-arch policy simulation complete") for k, v in payload.items(): if k != "sample_policy_events": print(f"{k}: {v}") return 0 if __name__ == "__main__": raise SystemExit(main())