<?php
declare(strict_types=1);
require __DIR__.'/gate.php';require __DIR__.'/catalog-amendment.php';
$p=nf_plan(__DIR__.'/probe-plan.json');$a=nf_amend_load(__DIR__.'/catalog-amendment-C.json',$p);
$file=$argv[1]??'';nf_check(hash_file('sha256',$file)==='580914984d3d85418c90fb2588f116210e5d90b856556d3eee5a42918772b8b6','Original stopped raw bytes unchanged');
$events=[];foreach(file($file,FILE_IGNORE_NEW_LINES)as $line)$events[]=json_decode($line,true,512,JSON_THROW_ON_ERROR);
$created=false;$meta=[];$baseline=[];$last=null;$createdSQL=null;
$metaSQL=array_map(static function($q)use($a){return nf_catalog_sql($q['sql'],'C',$a);},$p['lanes']['C']['five_float_group']['schema_fingerprint_queries']);
$naturalSQL=array_map(static function($q)use($a){return nf_catalog_sql($q['sql'],'C',$a);},$p['lanes']['C']['natural_protection']['queries']);
foreach($events as $e){
 if($e['event']==='DDL-success'){$created=true;$createdSQL=$e['data']['sql'];}
 if($e['event']==='read-success'){
  $sql=$e['data']['sql'];if($created&&isset($metaSQL[count($meta)])&&$sql===$metaSQL[count($meta)])$meta[]=$e['data']['rows'];
  elseif(!$created&&isset($naturalSQL[count($baseline)])&&$sql===$naturalSQL[count($baseline)])$baseline[]=$e['data']['rows'];
 }
 if($e['event']==='stopped')$last=$e['data'];
}
nf_check($createdSQL===$p['lanes']['C']['five_float_group']['statements']['create_ordinary']&&count($meta)===7&&count($baseline)===10,'Exact CREATE ledger/seven metadata/ten baseline queries');
nf_check($last['DDL']===1&&$last['DML_attempts']===0&&$last['completed_cases']===0&&$last['probe_queries']===18&&$last['natural_queries']===20&&!$last['unknown'],'Exact stopped zero-write continuation');
$out=['original_raw_sha256'=>hash_file('sha256',$file),'CREATE_sql_sha256'=>hash('sha256',$createdSQL),'metadata_sha256'=>hash('sha256',json_encode($meta,JSON_PRESERVE_ZERO_FRACTION)),'baseline_sha256'=>hash('sha256',json_encode($baseline,JSON_PRESERVE_ZERO_FRACTION)),'metadata'=>$meta,'natural_baseline'=>$baseline,'last'=>$last];
echo json_encode($out,JSON_UNESCAPED_UNICODE|JSON_PRESERVE_ZERO_FRACTION),"\n";
