["timeout"=>3]])); $od = @json_decode($ol, true); $out["ollama_models"] = is_array($od) ? array_map(function($m){return $m["name"];}, $od["models"] ?? []) : []; // Paperclip health/API $pc = @file_get_contents("http://127.0.0.1:3201/", false, stream_context_create(["http"=>["timeout"=>3,"ignore_errors"=>true]])); $out["paperclip_first"] = substr($pc ?? "", 0, 200); // DeerFlow api probe $df = @file_get_contents("http://127.0.0.1:3002/api/health", false, stream_context_create(["http"=>["timeout"=>3,"ignore_errors"=>true]])); $out["deerflow_health"] = substr($df ?? "", 0, 150); // Cascade providers health (all 13) $ch = @file_get_contents("http://127.0.0.1:4000/health", false, stream_context_create(["http"=>["timeout"=>3]])); $cd = @json_decode($ch, true); $out["cascade_providers"] = is_array($cd) ? ($cd["providers"] ?? $cd) : $ch; // L99 (S95 arsenal) probe $l99 = @file_get_contents("http://127.0.0.1:5890/api/l99-health.php", false, stream_context_create(["http"=>["timeout"=>3,"ignore_errors"=>true]])); $out["l99_health"] = substr($l99 ?? "", 0, 150); echo json_encode($out, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);