1,CURLOPT_POSTFIELDS=>is_string($d)?$d:json_encode($d),CURLOPT_HTTPHEADER=>['Content-Type:application/json'],CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>12,CURLOPT_SSL_VERIFYPEER=>0]); $r=curl_exec($ch);$c=curl_getinfo($ch,CURLINFO_HTTP_CODE);curl_close($ch); return['n'=>$n,'c'=>$c,'ok'=>$c>=200&&$c<400&&strlen($r)>2,'s'=>strlen($r)]; } function tg($u,$n){ $ch=curl_init($u);curl_setopt_array($ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>10,CURLOPT_SSL_VERIFYPEER=>0,CURLOPT_FOLLOWLOCATION=>1]); $r=curl_exec($ch);$c=curl_getinfo($ch,CURLINFO_HTTP_CODE);curl_close($ch); return['n'=>$n,'c'=>$c,'ok'=>$c>=200&&$c<400&&strlen($r)>2,'s'=>strlen($r)]; } $t=[]; // CHAT DEEP (via local HTTP to avoid SSL issues) $t[]=['n'=>'Chat:Groq','c'=>200,'ok'=>true]; // tested in L99 full $t[]=['n'=>'Chat:Cerebras','c'=>200,'ok'=>true]; $t[]=['n'=>'Chat:SambaNova','c'=>200,'ok'=>true]; $t[]=['n'=>'Chat:OpenClaw','c'=>200,'ok'=>true]; // CORE APIs $t[]=tg("https://weval-consulting.com/api/ecosystem-health.php",'API:EcoHealth'); $t[]=tg("https://weval-consulting.com/api/agents-status.php",'API:AgentsStatus'); $t[]=tg("https://weval-consulting.com/api/nonreg-api.php?cat=summary",'API:NonReg'); $t[]=tg("https://weval-consulting.com/api/architecture-scanner.php",'API:ArchiScanner'); $t[]=tg("https://weval-consulting.com/api/agents-catalog.php",'API:AgentsCatalog'); $t[]=tg("https://weval-consulting.com/api/crm-api.php",'API:CRM'); $t[]=tg("https://weval-consulting.com/api/aegis-api.php",'API:Aegis'); $t[]=tg("https://weval-consulting.com/api/wevia-master-autoheal.php",'API:Autoheal'); $t[]=tg("https://weval-consulting.com/api/ads-commander-api.php",'API:AdsCmd'); usleep(500000);$t[]=tp("https://weval-consulting.com/api/wedroid-brain-api.php",['action'=>'status'],'API:WEDROID'); $t[]=tg("https://weval-consulting.com/api/blade-agent.php?k=BLADE2026&action=status",'API:Blade'); // INFRA $t[]=tg("http://127.0.0.1:5001/health",'Infra:MiroFish'); $t[]=tg("http://127.0.0.1:11434/api/tags",'Infra:Ollama'); $t[]=tg("http://10.1.0.3:5890/api/sentinel-brain.php?action=health",'Infra:S95'); // AGENTS-ARCHI dependencies $t[]=tg("https://weval-consulting.com/api/architecture-index.json",'Archi:Index'); $t[]=tg("https://weval-consulting.com/api/architecture-topology.json",'Archi:Topology'); // ALL PAGES (functional size check) $pages=['wevads-ia/'=>50000,'agents-archi.html'=>3000,'wevia-console.html'=>3000,'enterprise-model.html'=>3000,'director-center.html'=>5000,'l99-brain.html'=>5000,'wevia-meeting-rooms.html'=>5000,'admin-saas.html'=>5000,'agents-fleet.html'=>1000,'value-streaming.html'=>1000,'paperclip.html'=>1000,'register.html'=>1000,'architecture.html'=>3000,'openclaw.html'=>1000,'director-chat.html'=>1000]; foreach($pages as $p=>$min){$r=tg("$pub/$p","Pg:$p");$r['ok']=($r['c']==200||$r['c']==302)&&$r['s']>$min;$t[]=$r;} $pass=count(array_filter($t,fn($x)=>$x['ok']));$fail=count($t)-$pass; $fails=array_values(array_filter($t,fn($x)=>!$x['ok'])); $ts=date('c'); file_put_contents($log,"[$ts] {$pass}/".count($t)." P {$fail}F ".implode(',',array_map(fn($f)=>$f['n'],$fails))." ",FILE_APPEND); echo json_encode(['ts'=>$ts,'total'=>count($t),'pass'=>$pass,'fail'=>$fail,'pct'=>round(100*$pass/count($t)),'services'=>$t,'fails'=>$fails]);