<?php
declare(strict_types=1);
$specs=json_decode('{"B":[{"path":"/tmp/cdx-nf5-B-20261011.fO8UPV","journal":"private-execute-B.jsonl","sha":"60d92424f7935aefeaa69cb9b2e23187d4f9a6c37d0c3d8e8e7545c20d3d5c9a","files":["probe-plan.json","gate.php","gate.check.php","runner.php","scope-diagnostic.php","private-execute-B.jsonl"]},{"path":"/tmp/cdx-nf5-B-20261011.RR8Mcl","journal":"private-execute-B.jsonl","sha":"4b12bf80307f4a74fbd015080f69206c35c7f29055c329103263faf6c78cd216","files":["probe-plan.json","gate.php","gate.check.php","runner.php","private-execute-B.jsonl","cleanup-runtime.php"]}],"C":[{"path":"/tmp/cdx-nf5-C-20261011.d3MlCh","journal":"private-execute-C.jsonl","sha":"e1b6dea76ee6656a51650b699b994062c91d0b7fec02b0fcba765f4790400740","files":["probe-plan.json","gate.php","gate.check.php","runner.php","scope-diagnostic.php","private-execute-C.jsonl"]},{"path":"/tmp/cdx-nf5-C-20261011.KeZhjh","journal":"private-execute-C.jsonl","sha":"97b988ac3f753f8cbda366936d9b163c14957109b26eec29d1c06f8e1cd36724","files":["probe-plan.json","gate.php","gate.check.php","runner.php","launch-C.php","private-execute-C.jsonl"]},{"path":"/tmp/cdx-nf5-C-20261011.RVfA8M","journal":"private-execute-C.jsonl","sha":"580914984d3d85418c90fb2588f116210e5d90b856556d3eee5a42918772b8b6","files":["probe-plan.json","gate.php","gate.check.php","runner.php","launch-C.php","catalog-amendment.php","catalog-amendment.check.php","catalog-amendment-C.json","extract-resume-ledger.php","private-execute-C.jsonl"]},{"path":"/tmp/cdx-nf5-C-20261011.xrttnV","journal":"private-resume-C.jsonl","sha":"0cf489264234b72a8230524a27482d620c1ffdb3de4984776feaed8f227da0e0","files":["probe-plan.json","gate.php","gate.check.php","catalog-amendment.php","catalog-amendment-C.json","resume-plan-C.json","resume.php","resume.check.php","runner-v2-executed.php","runner-resume-C.php","launch-resume-C.php","index-representation-overlay-C.json","private-resume-C.jsonl","cleanup-runtime.php"]}]}',true);
$lane=$argv[1]??'';
if(!isset($specs[$lane]))exit(80);
$receipts=[];
foreach($specs[$lane]as $entry){
 $dir=$entry['path'];if(!is_dir($dir)||is_link($dir)||(fileperms($dir)&0077)!==0)throw new RuntimeException('Exact owned private directory gate');
 $actual=array_values(array_diff(scandir($dir),['.','..']));sort($actual);$wanted=$entry['files'];sort($wanted);
 if($actual!==$wanted)throw new RuntimeException('Unexpected runtime file set: '.$dir);
 if(hash_file('sha256',$dir.'/probe-plan.json')!=='68124d2e3fdafa943e70c8c4a4f0b4e0c4dfb67098bb67df8615d7d1da41fc94'||hash_file('sha256',$dir.'/'.$entry['journal'])!==$entry['sha'])throw new RuntimeException('Immutable archived plan/journal ownership mismatch');
 foreach($wanted as $name)if(is_link($dir.'/'.$name)||!is_file($dir.'/'.$name))throw new RuntimeException('Regular own files only');
 foreach($wanted as $name)if(!unlink($dir.'/'.$name))throw new RuntimeException('Exact file cleanup failed');
 if(!rmdir($dir)||file_exists($dir))throw new RuntimeException('Empty owned directory cleanup failed');
 $receipts[]=['path'=>$dir,'archived_journal_sha256'=>$entry['sha'],'removed_file_count'=>count($wanted),'directory_exists_after'=>false];
}
echo json_encode(['lane'=>$lane,'status'=>'OWN_RUNTIME_REMOVED','DB_operations'=>0,'receipts'=>$receipts],JSON_PRETTY_PRINT),"\n";
