0, 'active_customer' => 0, 'lead' => 0, 'by_industry' => [], 'by_country' => [], 'avg_mql' => 0, 'top_leads' => []]; try { $pg = @pg_connect('host=10.1.0.3 port=5432 dbname=paperclip user=admin password=admin123 connect_timeout=3'); if ($pg) { $r = @pg_query($pg, 'SELECT company, contact_name, email, industry, country, status, mql_score, sql_qualified, notes FROM weval_leads ORDER BY mql_score DESC'); if ($r) { while ($row = pg_fetch_assoc($r)) { $leads_agg['total']++; $st = $row['status'] ?: 'unknown'; if (!isset($leads_agg[$st])) $leads_agg[$st] = 0; $leads_agg[$st]++; $ind = $row['industry'] ?: 'Other'; $leads_agg['by_industry'][$ind] = ($leads_agg['by_industry'][$ind] ?? 0) + 1; $co = $row['country'] ?: 'XX'; $leads_agg['by_country'][$co] = ($leads_agg['by_country'][$co] ?? 0) + 1; $leads_agg['avg_mql'] += (int)$row['mql_score']; if (count($leads_agg['top_leads']) < 10) { $leads_agg['top_leads'][] = [ 'company' => $row['company'], 'contact' => $row['contact_name'], 'industry' => $ind, 'country' => $co, 'status' => $st, 'mql' => (int)$row['mql_score'], 'sql_qualified' => $row['sql_qualified']==='t', 'notes' => $row['notes'], ]; } } if ($leads_agg['total']>0) $leads_agg['avg_mql'] = round($leads_agg['avg_mql']/$leads_agg['total'],1); pg_close($pg); } } } catch (Throwable $e) { $leads_agg['error'] = $e->getMessage(); } // === 2) Dark Scout intel history === $scout = ['total_scans' => 0, 'recent' => [], 'presets' => [], 'top_categories' => []]; $scout_path = __DIR__ . '/dark-scout-intel-log.json'; if (is_file($scout_path)) { $raw = @json_decode(file_get_contents($scout_path), true); if (is_array($raw)) { $scout['total_scans'] = count($raw); $scout['recent'] = array_slice(array_reverse($raw), 0, 5); $cats_total = []; foreach ($raw as $s) { $p = $s['preset'] ?? 'misc'; $scout['presets'][$p] = ($scout['presets'][$p] ?? 0) + 1; foreach (($s['categories'] ?? []) as $c => $n) { $cats_total[$c] = ($cats_total[$c] ?? 0) + $n; } } arsort($cats_total); $scout['top_categories'] = array_slice($cats_total, 0, 6, true); } } // === 3) WePredict forecast === $predict = ['load_next_hour' => null, 'alert' => null, 'cache_hit_pct' => null, 'patterns' => null, 'recommended_actions' => []]; $ch = curl_init('http://127.0.0.1/api/dsh-predict-api.php'); curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER=>true, CURLOPT_TIMEOUT=>5]); $pred_raw = curl_exec($ch); curl_close($ch); if ($pred_raw) { $pd = json_decode($pred_raw, true); if ($pd && isset($pd['load'])) { $predict['load_next_hour'] = $pd['load']['predicted_next_hour'] ?? null; $predict['alert'] = $pd['load']['alert'] ?? false; $predict['cache_hit_pct'] = $pd['cache']['hit_rate_pct'] ?? null; $predict['patterns'] = $pd['cache']['patterns_count'] ?? null; $predict['recommended_actions'] = $pd['load']['recommended_actions'] ?? []; } } // === 4) Sovereign IA catalog (enriched with live flags) === $sovereign = [ ['id'=>'wepredict','name'=>'WePredict','url'=>'/wepredict.html','category'=>'prediction','capability'=>'16 cockpits · 64 predictions','maturity'=>85,'live_state'=>"load={$predict['load_next_hour']}, alert=".($predict['alert']?'yes':'no'),'use_for_conversion'=>'Deal close probability, churn warning'], ['id'=>'dark_scout','name'=>'Dark Scout V83','url'=>'/v83-dark-scout-enriched.html','category'=>'intel','capability'=>'Dark web + clearnet monitoring','maturity'=>78,'live_state'=>"{$scout['total_scans']} scans history, ".count($scout['presets'])." presets",'use_for_conversion'=>'Competitor pricing, intent signals'], ['id'=>'wevia_master','name'=>'WEVIA Master','url'=>'/wevia-master.html','category'=>'orchestrator','capability'=>'269 tools Resolver · 20 exec intents','maturity'=>90,'live_state'=>'live SSE ready','use_for_conversion'=>'Multi-agent prospect replies'], ['id'=>'arena','name'=>'WEVAL Arena','url'=>'/weval-arena.html','category'=>'command-center','capability'=>'409 options · 715 agents','maturity'=>80,'live_state'=>'live multi-model','use_for_conversion'=>'Best LLM per use case'], ['id'=>'ethica_b2b','name'=>'Ethica B2B HCP','url'=>'https://consent.wevup.app','category'=>'data','capability'=>'157K HCPs · 87% email coverage','maturity'=>82,'live_state'=>'consent pilot ready','use_for_conversion'=>'Pharma prospecting MENA/EU/US'], ['id'=>'wevads_brain','name'=>'WEVADS Brain','url'=>'/brain-tower.html','category'=>'email-engine','capability'=>'9 winners · triple MTA','maturity'=>95,'live_state'=>'PMTA+Kumo+Postfix up','use_for_conversion'=>'Cold outreach 95%+ delivery'], ['id'=>'blade_ai','name'=>'Blade AI','url'=>'/blade-ai.html','category'=>'ai-agent','capability'=>'Web agent · 232 tasks','maturity'=>75,'live_state'=>'heartbeat ok','use_for_conversion'=>'Auto-fill proposals, demo prep'], ['id'=>'paperclip','name'=>'Paperclip PM','url'=>'/paperclip.html','category'=>'project-mgmt','capability'=>'weval_leads · 48 rows live','maturity'=>65,'live_state'=>"{$leads_agg['total']} leads, avg MQL {$leads_agg['avg_mql']}",'use_for_conversion'=>'Deal progression tracking'], ['id'=>'oss_stack','name'=>'OSS Sovereign Stack','url'=>'/api/oss-manifest.php','category'=>'toolchain','capability'=>'10 OSS · 1748 MB','maturity'=>85,'live_state'=>'pandasai+Ollama+WeasyPrint+DocuSeal','use_for_conversion'=>'Proposals + data analysis + automation'], ]; // === 5) Opportunities with live deal progression enrichment === $opps_raw = [ ['id'=>'vistex-cosumar','lead_slug'=>'vistex','name'=>'Vistex SAP · Cosumar close','effort'=>3,'impact'=>9,'revenue_mad'=>450000,'status'=>'in_progress','time_days'=>14,'needs'=>['Lead addendum 0.8 DH counter','Portal demo'],'wevia_tools'=>['wevia_master','paperclip']], ['id'=>'ethica-ma-contract','lead_slug'=>'ethica','name'=>'Ethica Morocco · Kaouther signing','effort'=>2,'impact'=>8,'revenue_mad'=>200000,'status'=>'in_progress','time_days'=>7,'needs'=>['Pilot consent ecm.py approval','Senders Arsenal'],'wevia_tools'=>['ethica_b2b','wevads_brain','wevia_master']], ['id'=>'carrefour-retail','name'=>'Carrefour Morocco · CDC response','effort'=>5,'impact'=>8,'revenue_mad'=>350000,'status'=>'idea','time_days'=>21,'needs'=>['CDC spec','WeasyPrint proposal','Demo'],'wevia_tools'=>['oss_stack','wevia_master']], ['id'=>'api-hcp-package','name'=>'API HCP Maghreb · productize','effort'=>4,'impact'=>7,'revenue_mad'=>600000,'status'=>'in_progress','time_days'=>28,'needs'=>['Pricing tiers','Swagger docs','Stripe'],'wevia_tools'=>['ethica_b2b','arena']], ['id'=>'weval-saas-freemium','name'=>'WEVAL SaaS Freemium launch','effort'=>6,'impact'=>9,'revenue_mad'=>800000,'status'=>'plan','time_days'=>45,'needs'=>['Landing','Stripe','Onboarding','Free+Pro tier'],'wevia_tools'=>['wevia_master','blade_ai','oss_stack']], ['id'=>'pharma-cloud-productize','name'=>'WEVAL Pharma Cloud productize','effort'=>5,'impact'=>8,'revenue_mad'=>500000,'status'=>'plan','time_days'=>30,'needs'=>['Package Ethica+WEVADS+Analytics','White-label','Partners'],'wevia_tools'=>['ethica_b2b','wevads_brain','wepredict']], ['id'=>'linkedin-outbound','name'=>'LinkedIn outbound sequence','effort'=>1,'impact'=>5,'revenue_mad'=>80000,'status'=>'idea','time_days'=>3,'needs'=>['Selenium Blade','9 winners copy','Reply capture'],'wevia_tools'=>['blade_ai','wevads_brain']], ['id'=>'stripe-consulting-pack','name'=>'Stripe Consulting Maghreb','effort'=>2,'impact'=>6,'revenue_mad'=>150000,'status'=>'idea','time_days'=>10,'needs'=>['Landing+calendly','Case studies','Stripe partner'],'wevia_tools'=>['wevia_master']], ['id'=>'seo-module-hub','name'=>'SEO Module Hub commercialization','effort'=>2,'impact'=>4,'revenue_mad'=>100000,'status'=>'plan','time_days'=>14,'needs'=>['Clients list','Pricing'],'wevia_tools'=>['paperclip']], ['id'=>'huawei-refund','lead_slug'=>'huawei','name'=>'Huawei Cloud refund (billing)','effort'=>3,'impact'=>3,'revenue_mad'=>50000,'status'=>'in_progress','time_days'=>21,'needs'=>['Distributor switch','Docs'],'wevia_tools'=>['wevia_master']], ]; // Enrich opps with live paperclip lead data foreach ($opps_raw as &$o) { if (!empty($o['lead_slug'])) { foreach ($leads_agg['top_leads'] as $l) { if (stripos(strtolower($l['company']), $o['lead_slug']) !== false) { $o['live_lead'] = ['mql'=>$l['mql'], 'sql_qualified'=>$l['sql_qualified'], 'status'=>$l['status'], 'notes'=>$l['notes'], 'contact'=>$l['contact'], 'email'=>$l['company']]; break; } } } } unset($o); // === 6) Eisenhower matrix === $qw = $bb = $fi = $tk = []; foreach ($opps_raw as $o) { if ($o['effort']<=3 && $o['impact']>=7) $qw[] = $o; elseif ($o['effort']>=4 && $o['impact']>=7) $bb[] = $o; elseif ($o['effort']<=3 && $o['impact']<7) $fi[] = $o; else $tk[] = $o; } // === 7) Competitors enriched with Dark Scout intel === $competitors = [ ['category'=>'SAP Consulting Maghreb','competitors'=>['Vistex','Valoris','Capgemini MA'],'weval_edge'=>'SAP Ecosystem Partner · AI-augmented · sovereign 0€','threat'=>'medium','scout_preset'=>'sap_maroc'], ['category'=>'Pharma HCP Data MENA','competitors'=>['IQVIA','Veeva','Doctolib Pro'],'weval_edge'=>'157K HCPs · consent-first · 87% email','threat'=>'low','scout_preset'=>'pharma_intel'], ['category'=>'E-signatures MENA','competitors'=>['DocuSign','Yousign','HelloSign'],'weval_edge'=>'DocuSeal self-hosted · 0€ · data sovereignty MENA','threat'=>'high','scout_preset'=>null], ['category'=>'Email deliverability','competitors'=>['Mailgun','Sendgrid','Mailjet'],'weval_edge'=>'PMTA+Kumo+Postfix triple · 95%+ · own IPs','threat'=>'medium','scout_preset'=>null], ['category'=>'AI orchestration SMB','competitors'=>['Make.com','Zapier','n8n cloud'],'weval_edge'=>'WEVIA Master · 17 providers cascade · 0€ inference','threat'=>'low','scout_preset'=>'ai_consulting'], ]; foreach ($competitors as &$c) { if (!empty($c['scout_preset']) && isset($scout['presets'][$c['scout_preset']])) { $c['scout_scans'] = $scout['presets'][$c['scout_preset']]; } } unset($c); // === 8) Capacity plan from WePredict === $capacity = [ 'load_next_hour' => $predict['load_next_hour'], 'alert' => $predict['alert'], 'cache_health' => $predict['cache_hit_pct'] === 100 ? 'excellent' : ($predict['cache_hit_pct'] >= 80 ? 'good' : 'needs attention'), 'plan_recommendation' => $predict['alert'] ? 'SCALE UP: consider restart php-fpm or add workers' : 'OK: capacity normal, can absorb more deals', 'patterns_learned' => $predict['patterns'], ]; // === 9) LLM-powered recommendations (Cerebras/Groq/Mistral cascade) === $llm_reco = null; if (($_GET['llm'] ?? '') === '1') { $secrets = load_secrets(); $top_opps_names = array_slice(array_map(function($o){return $o['name'].' ('.$o['effort'].'e/'.$o['impact'].'i)';}, $opps_raw), 0, 8); $leads_summary = "$leads_agg[total] leads, avg MQL {$leads_agg['avg_mql']}, " . implode(', ', array_map(function($k,$v){return "$k=$v";}, array_keys($leads_agg['by_country']), $leads_agg['by_country'])); $prompt = "You are WEVAL growth advisor. Given:\n- Opportunities: ".implode("; ", $top_opps_names)."\n- Leads: $leads_summary\n- Dark Scout: {$scout['total_scans']} intel scans\n- WePredict: load {$predict['load_next_hour']}, cache {$predict['cache_hit_pct']}%\n\nSuggest 3 TOP conversion actions this week with concrete steps. JSON format: {actions:[{rank:N, title:str, steps:[str,str,str], timeline:str, revenue_est_mad:N}]}"; $payload = json_encode(['model'=>'llama-3.3-70b','messages'=>[['role'=>'user','content'=>$prompt]],'max_tokens'=>1500,'temperature'=>0.3]); $providers = [ ['url'=>'https://api.cerebras.ai/v1/chat/completions','key'=>$secrets['CEREBRAS_API_KEY']??'','name'=>'Cerebras'], ['url'=>'https://api.groq.com/openai/v1/chat/completions','key'=>$secrets['GROQ_KEY']??'','name'=>'Groq','model_override'=>'llama-3.3-70b-versatile'], ['url'=>'https://api.mistral.ai/v1/chat/completions','key'=>$secrets['MISTRAL_KEY']??'','name'=>'Mistral','model_override'=>'mistral-small-latest'], ]; foreach ($providers as $prov) { if (empty($prov['key'])) continue; $p = $payload; if (isset($prov['model_override'])) $p = preg_replace('/"model":"[^"]+"/', '"model":"'.$prov['model_override'].'"', $payload, 1); $ch = curl_init($prov['url']); curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER=>true, CURLOPT_POST=>true, CURLOPT_TIMEOUT=>25, CURLOPT_HTTPHEADER=>['Content-Type: application/json','Authorization: Bearer '.$prov['key']], CURLOPT_POSTFIELDS=>$p]); $r = curl_exec($ch); $c = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($c === 200) { $d = json_decode($r, true); $text = $d['choices'][0]['message']['content'] ?? ''; if ($text) { $llm_reco = ['provider' => $prov['name'], 'raw' => $text]; break; } } } } // === 10) Output === echo json_encode([ 'ts' => date('c'), 'wave' => 229, 'version' => 'deep-conversion-advisor-v2-live', 'live_leads' => $leads_agg, 'live_scout' => $scout, 'live_predict' => $predict, 'capacity_plan' => $capacity, 'sovereign_ia' => $sovereign, 'sovereign_ia_count' => count($sovereign), 'opportunities' => $opps_raw, 'matrix' => ['quick_wins'=>$qw, 'big_bets'=>$bb, 'fill_ins'=>$fi, 'thankless'=>$tk], 'matrix_revenue' => [ 'quick_wins_mad' => array_sum(array_map(function($o){return $o['revenue_mad'];}, $qw)), 'big_bets_mad' => array_sum(array_map(function($o){return $o['revenue_mad'];}, $bb)), ], 'competitors' => $competitors, 'recommendations' => [ ['rank'=>1,'action'=>'Close Vistex Cosumar (7j)','why'=>"450K MAD · lead MQL 95 · SQL qualified · status active_customer",'deps'=>'Lead addendum 0.8 DH counter'], ['rank'=>2,'action'=>'Sign Ethica Morocco pilot (7j)','why'=>"200K MAD · lead MQL 100 · TN market showcase",'deps'=>'ecm.py consent approval'], ['rank'=>3,'action'=>'Launch LinkedIn outbound (3j)','why'=>"Low effort · 48 leads to activate · Blade+WEVADS",'deps'=>'Selenium sequencer + 9 winners'], ['rank'=>4,'action'=>'Productize API HCP Maghreb (28j)','why'=>"600K MAD annual recurring · Stripe ready",'deps'=>'Pricing tiers + Swagger public'], ['rank'=>5,'action'=>'Launch WEVAL SaaS Freemium (45j)','why'=>"800K MAD big bet · full stack showcase",'deps'=>'Landing + billing + onboarding'], ], 'llm_reco' => $llm_reco, ], JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);