<?php
require __DIR__.'/common.php';
$side=$argv[1]??'';pp_need(in_array($side,['B','C'],true),'Known side');putenv('PP_SIDE='.$side);
pp_need(pp_base()==='/tmp/cdx-prepay-code-scan-chain-20261011'&&is_file(pp_private().'/cleanup.json'),'Exact complete stopped-path runtime');$manifest=[];
foreach(['private','tools','private-input/'.$side]as $dir){$it=new RecursiveIteratorIterator(new RecursiveDirectoryIterator(pp_base().'/'.$dir,FilesystemIterator::SKIP_DOTS));foreach($it as $f){pp_need(!$f->isLink(),'No evidence links');if($f->isFile()){$name=substr($f->getPathname(),strlen(pp_base())+1);$manifest[$name]=['bytes'=>$f->getSize(),'sha256'=>hash_file('sha256',$f->getPathname())];}}}
foreach(['machine-plan.json','store-pins.json','ai-pins.json']as $name)$manifest[$name]=['bytes'=>filesize(pp_base().'/'.$name),'sha256'=>hash_file('sha256',pp_base().'/'.$name)];ksort($manifest);pp_save('runtime-manifest.json',['side'=>$side,'files'=>$manifest,'source_package_sha256'=>'39a4bb1fa2f6548fe26e30dc454ebfa5b6dab765fbbccaa50b5df61b987294b5','source_files_not_duplicated_in_evidence_archive'=>7128,'physical_result'=>'FAILED_HARNESS_NO_PREPAY_OR_MEAL_CREATED_ONLY_OWN_DEVICE']);
$archive='/tmp/cdx-prepay-code-scan-chain-'.$side.'-evidence-20261011.tar';pp_need(!file_exists($archive),'Never overwrite sealed archive');$tar=new PharData($archive);foreach($manifest as $name=>$entry)$tar->addFile(pp_base().'/'.$name,$name);$tar->addFile(pp_private().'/runtime-manifest.json','private/runtime-manifest.json');chmod($archive,0600);echo pp_json(['status'=>'ORIGINAL_FAILURE_RUNTIME_SEALED','side'=>$side,'files'=>count($manifest)+1,'archive_bytes'=>filesize($archive),'archive_sha256'=>hash_file('sha256',$archive),'events_sha256'=>hash_file('sha256',pp_private().'/events.jsonl'),'readonly'=>pp_saved('budget.json'),'device_ID'=>pp_saved('equipment.json')['id'],'prepare_INSERT'=>1,'HTTP_attempt'=>1,'code_business_DML'=>0,'scan_HTTP'=>0])."\n";
