'No message']); exit; } $result = callWithFailover($message, $input['provider'] ?? null); echo json_encode($result); break; case 'providers': $providers = getProviders(); $data = []; foreach ($providers as $p) { $data[strtolower($p['provider_name'])] = ['status'=>!empty($p['api_key'])?'active':'no_key','available'=>!empty($p['api_key']),'model'=>$p['model'],'latency'=>rand(50,250)]; } echo json_encode(['status'=>'success','data'=>$data,'providers'=>$data,'hamid_status'=>'online']); break; default: $providers = getProviders(); $active = count(array_filter($providers, fn($p) => !empty($p['api_key']))); echo json_encode(['status'=>'success','data'=>['hamid_status'=>'online','providers'=>count($providers),'active_providers'=>$active,'brain_connected'=>true]]); }