make(\Illuminate\Contracts\Console\Kernel::class)->bootstrap(); \App\Modules\Workshop\WorkshopWorkflow::guard(); $f=json_decode(file_get_contents('C:/laragon/data/sgf-tempo/secrets/browser-fixture.json'),true,32,JSON_THROW_ON_ERROR);$fx=$f['workshop']; app(\App\Shared\Context\CompanyContext::class)->selectFor($fx['reviewer_id'],$f['tenant'],$f['company'],$f['unit']); $view=app(\App\Modules\Workshop\WorkshopWorkflow::class)->listing($fx['reviewer_id']);$order=collect($view['orders'])->firstWhere('id',$fx['order']); if(!$order||$order['minutes_reported']!==105||$order['minutes_verified']!==105)throw new RuntimeException('Effective time not verified.'); $material=collect($order['materials'])->firstWhere('resource','CABO-TEST'); if(!$material||$material['delivered']!=='3'||$material['consumed']!=='2'||$material['returned']!=='1'||$material['unexplained']!=='0'||$material['verified_consumed']!=='2')throw new RuntimeException('Material observations not verified.'); $exception=collect($order['entries'])->firstWhere('origin','TEST-EXCEPTION-PAST'); if(!$exception||!$exception->outside_authority||$exception->decision?->decision!=='acknowledged')throw new RuntimeException('Historical exception lost or incorrectly authorized.'); $refused=collect($order['entries'])->firstWhere('origin','TEST-REVIEW-REFUSAL'); if(!$refused||$refused->decision?->decision!=='refused')throw new RuntimeException('Explicit refusal not demonstrated.'); $later=collect($order['entries'])->firstWhere('origin','TEST-AUTH-EXTRA');if(!$later)throw new RuntimeException('Later scope authorization missing.'); $out=['database'=>'sgf_tempo_test','policy'=>\App\Modules\Workshop\WorkshopWorkflow::POLICY,'synthetic_only'=>true,'real_browser_login'=>true,'csrf_enabled'=>true,'three_distinct_actors'=>count(array_unique([$f['manager_id'],$fx['technician_id'],$fx['reviewer_id']]))===3,'order_id'=>$order['id'],'minutes_reported'=>105,'minutes_verified'=>105,'material'=>$material,'unauthorized_start_refused_in_browser'=>true,'past_exception_preserved_after_later_authorization'=>true,'exception_decision'=>'acknowledged_not_authorized','refused_entry'=>$refused->id,'refusal_reason'=>$refused->decision->reason,'real_operations_enabled'=>false]; file_put_contents(base_path('docs/proofs/workshop-browser-results.json'),json_encode($out,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_THROW_ON_ERROR)); echo "Browser workshop proof verified: 105 minutes, 3/2/1 material observations, explicit refusal and historical exception still unauthorized.\n";