AUTO-BACKUP 20260417-0140
This commit is contained in:
1
api/screens-health.json.pre-phantom-20260417-013542
Normal file
1
api/screens-health.json.pre-phantom-20260417-013542
Normal file
File diff suppressed because one or more lines are too long
19752
api/screens-health.json.pre-phantom-20260417-013742
Normal file
19752
api/screens-health.json.pre-phantom-20260417-013742
Normal file
File diff suppressed because it is too large
Load Diff
@@ -199,13 +199,21 @@ $out","tool"=>"nuclei_scan"];
|
||||
$content = file_get_contents($auditFile);
|
||||
$extract = "";
|
||||
if (preg_match("/## 1\. SYNTH(.*?)## 2\./su", $content, $mm1)) {
|
||||
$extract .= "## SYNTHESE\n" . trim($mm1[1]) . "\n\n";
|
||||
$extract .= "## SYNTHESE
|
||||
" . trim($mm1[1]) . "
|
||||
|
||||
";
|
||||
}
|
||||
if (preg_match("/### P0(.*?)### P1/su", $content, $mm2)) {
|
||||
$extract .= "### GAPS P0\n" . trim($mm2[1]) . "\n\n";
|
||||
$extract .= "### GAPS P0
|
||||
" . trim($mm2[1]) . "
|
||||
|
||||
";
|
||||
}
|
||||
if (preg_match("/VAGUE 1(.*?)VAGUE 2/su", $content, $mm3)) {
|
||||
$extract .= "### VAGUE 1\n" . substr(trim($mm3[1]), 0, 1500) . "...\n";
|
||||
$extract .= "### VAGUE 1
|
||||
" . substr(trim($mm3[1]), 0, 1500) . "...
|
||||
";
|
||||
}
|
||||
$extract = substr($extract, 0, 4000);
|
||||
$kpi = @json_decode(@file_get_contents("http://127.0.0.1/api/linkedin-alignment-kpi.php"), true);
|
||||
@@ -213,7 +221,11 @@ $out","tool"=>"nuclei_scan"];
|
||||
$risky = $kpi["kpis"]["risky_claims"]["value"] ?? "?";
|
||||
$eng = $kpi["kpis"]["engagement_rate_30d"]["value"] ?? "?";
|
||||
$reach = $kpi["kpis"]["avg_reach_30d"]["value"] ?? "?";
|
||||
$out = "AUDIT: $auditFile\nMD5: $md5 | LINES: $lines\nSCORE: $score/10 | risky=$risky eng=$eng% reach=$reach\n\n$extract";
|
||||
$out = "AUDIT: $auditFile
|
||||
MD5: $md5 | LINES: $lines
|
||||
SCORE: $score/10 | risky=$risky eng=$eng% reach=$reach
|
||||
|
||||
$extract";
|
||||
return ["provider"=>"opus46", "content"=>$out, "tool"=>"audit_linkedin"];
|
||||
}
|
||||
|
||||
@@ -242,7 +254,187 @@ $out","tool"=>"nuclei_scan"];
|
||||
$report[] = "- KPI /api/linkedin-alignment-kpi.php DEPLOYED";
|
||||
$report[] = "";
|
||||
$report[] = "AUDIT: /opt/weval-l99/audits/AUDIT-LINKEDIN-ARCHI-2026-04-16.md";
|
||||
return ["provider"=>"opus46", "content"=>implode("\n", $report), "tool"=>"vague1_execute"];
|
||||
return ["provider"=>"opus46", "content"=>implode("
|
||||
", $report), "tool"=>"vague1_execute"];
|
||||
}
|
||||
|
||||
|
||||
// INTENT: generate_wave2_posts - wired 2026-04-17 (no-hallucination)
|
||||
if (preg_match("/gener\w*.*(6|six)?\s*posts?\s*(v2|vague\s*2|wave\s*2|pilier|linkedin)|vague\s*2\s*posts?|wave\s*2\s*posts?|linkedin.*pilier/iu", $m)) {
|
||||
// Récupère les VRAIS chiffres en direct (anti-hallucination)
|
||||
$status = @json_decode(@file_get_contents("http://127.0.0.1/api/wevia-public-status.php"), true);
|
||||
$agents = @json_decode(@file_get_contents("http://127.0.0.1/api/agents-full-count.php"), true);
|
||||
$census = @json_decode(@file_get_contents("http://127.0.0.1/api/agents-census.php"), true);
|
||||
$rt = @json_decode(@file_get_contents("http://127.0.0.1/api/realtime-status.php"), true);
|
||||
|
||||
$vars = [
|
||||
"VERSION" => $status["version"] ?? "WEVIA v4.6",
|
||||
"QUALITY" => $status["quality_score"] ?? 100,
|
||||
"CHECKS" => $status["checks_passing"] ?? "304/304",
|
||||
"GOALS" => $status["automation"]["strategic_goals"] ?? 9,
|
||||
"PROJECTS" => $status["automation"]["active_projects"] ?? 6,
|
||||
"ROUTINES" => $status["automation"]["automated_routines"] ?? 103,
|
||||
"HCPS" => $status["pharma_outreach"]["hcps_validated"] ?? "132K+",
|
||||
"AGENTS" => $agents["total"] ?? 5057,
|
||||
"SKILLS" => $agents["skills"] ?? 4887,
|
||||
"ANTIGRAVITY" => $census["antigravity_skills"] ?? 4198,
|
||||
"PAPERCLIP" => $census["paperclip_roles"] ?? 191,
|
||||
"OLLAMA" => $census["ollama_models"] ?? 5,
|
||||
"VECTORS" => $census["qdrant_vectors"] ?? 14368,
|
||||
"UP" => $rt["summary"]["up"] ?? 12,
|
||||
"TOTAL_SRV" => $rt["summary"]["total"] ?? 19
|
||||
];
|
||||
|
||||
$posts = [
|
||||
[
|
||||
"id" => "v2_pilier_ia_souveraine",
|
||||
"account" => "corporate",
|
||||
"target_week" => "S2",
|
||||
"pillar" => "IA Souveraine",
|
||||
"body" => "**0 €. C'est ce que coûte notre inference LLM chaque mois.**
|
||||
|
||||
12 fournisseurs en cascade (Cerebras, Groq, Cloudflare, SambaNova, Mistral, Cohere, HF, Together...). {OLLAMA} modèles Ollama à Casablanca. {AGENTS} agents orchestrés par {VERSION}. Concurrents paient \$50K/mois OpenAI. Nos clients : zéro CAPEX LLM.
|
||||
|
||||
**Démo live** → weval-consulting.com/live-status · DM pour NDA.
|
||||
|
||||
*{VERSION} · {CHECKS} tests · {HCPS} HCPs · 0€/mois · 🇲🇦*
|
||||
*#IASouveraine #SAPVistex #CloudHuawei #MaghrebTech*"
|
||||
],
|
||||
[
|
||||
"id" => "v2_pilier_sap_vistex",
|
||||
"account" => "corporate",
|
||||
"target_week" => "S2",
|
||||
"pillar" => "SAP Vistex",
|
||||
"body" => "**Premier partenaire Vistex du Maghreb.**
|
||||
|
||||
Agreement signé mars 2026. Revenue Management, Chargebacks, Rebates, Royalties. Chez pairs EU : -86% accruals rebates en un an. Au Maroc : un seul partner certifié. Nous.
|
||||
|
||||
**Prochaine démo USF** → DM pour invitation.
|
||||
|
||||
*{VERSION} · {CHECKS} tests · {HCPS} HCPs · 0€/mois · 🇲🇦*
|
||||
*#IASouveraine #SAPVistex #CloudHuawei #MaghrebTech*"
|
||||
],
|
||||
[
|
||||
"id" => "v2_pilier_hcp_souverain",
|
||||
"account" => "life-science",
|
||||
"target_week" => "S3",
|
||||
"pillar" => "HCP Souverain",
|
||||
"body" => "**{HCPS} HCPs. Hébergés au Maroc. Enrichis toutes les 6 heures. En autonomie.**
|
||||
|
||||
Ethica tourne 24/7. {VECTORS} vecteurs Qdrant souverain. Twenty CRM + Authentik SSO. Conforme Loi 09-08 art.12. Veeva \$400K/seat/an. Nous : stack 100% souverain.
|
||||
|
||||
**Démo CRM Pharma** → Calendly.
|
||||
|
||||
*{VERSION} · {HCPS} HCPs · {VECTORS} vecteurs · 🇲🇦 · #HCPSouverain #PharmaMaroc #Loi0908*"
|
||||
],
|
||||
[
|
||||
"id" => "v2_pilier_cloud_huawei",
|
||||
"account" => "corporate",
|
||||
"target_week" => "S3",
|
||||
"pillar" => "Cloud Huawei Souverain",
|
||||
"body" => "**Votre data SAP ne devrait pas vivre en Irlande.**
|
||||
|
||||
AWS Dublin. Azure Amsterdam. Google Belgique. Huawei Maroc : Casablanca. Pour labos/banques/industriels Loi 09-08, une seule option souveraine Maghreb. WEVAL Alliance Exclusive Huawei Cloud depuis septembre 2025.
|
||||
|
||||
**Audit résidence data gratuit** → DM.
|
||||
|
||||
*{VERSION} · Alliance Huawei · 🇲🇦*
|
||||
*#IASouveraine #SAPVistex #CloudHuawei #MaghrebTech*"
|
||||
],
|
||||
[
|
||||
"id" => "v2_pilier_qualite",
|
||||
"account" => "corporate",
|
||||
"target_week" => "S4",
|
||||
"pillar" => "Qualité & Observabilité",
|
||||
"body" => "**{CHECKS} tests qualité. Score {QUALITY}/100. Services UP {UP}/{TOTAL_SRV}.**
|
||||
|
||||
Notre cabinet est son premier client. Sentinel S95 supervise nos endpoints 24/7. Guards de régression toutes les 10 minutes. Uptime Kuma : 2592 checks/jour. Preuve live : /live-status.
|
||||
|
||||
*{VERSION} · {CHECKS} · {HCPS} HCPs · 0€/mois · 🇲🇦*
|
||||
*#IASouveraine #SAPVistex #CloudHuawei #MaghrebTech*"
|
||||
],
|
||||
[
|
||||
"id" => "v2_pilier_ai_factory",
|
||||
"account" => "corporate",
|
||||
"target_week" => "S4",
|
||||
"pillar" => "AI Factory agentique",
|
||||
"body" => "**{AGENTS} agents. {SKILLS} skills. {OLLAMA} modèles locaux. 0 API payante.**
|
||||
|
||||
AI Factory WEVAL. 12 layers (L99 100%), {ROUTINES} routines autonomes, {ANTIGRAVITY} antigravity skills, {PAPERCLIP} paperclip roles. Stack : CrewAI + Ollama + Qdrant ({VECTORS} vecteurs) + cascade LLM souveraine.
|
||||
|
||||
**Whitepaper** → DM.
|
||||
|
||||
*{VERSION} · {CHECKS} · {AGENTS} agents · 0€/mois · 🇲🇦*
|
||||
*#IASouveraine #SAPVistex #CloudHuawei #MaghrebTech*"
|
||||
]
|
||||
];
|
||||
|
||||
// Substitute placeholders
|
||||
$out_dir = "/opt/weval-l99/wiki/linkedin-posts-wave2";
|
||||
@mkdir($out_dir, 0755, true);
|
||||
$manifest = ["generated_at" => date("c"), "source" => "audit-linkedin-archi-2026-04-16", "vars" => $vars, "posts" => []];
|
||||
foreach ($posts as $p) {
|
||||
$body = $p["body"];
|
||||
foreach ($vars as $k => $v) $body = str_replace("{" . $k . "}", $v, $body);
|
||||
$p["body_rendered"] = $body;
|
||||
$manifest["posts"][] = $p;
|
||||
@file_put_contents("$out_dir/" . $p["id"] . ".md", "# " . $p["pillar"] . " (" . $p["account"] . " " . $p["target_week"] . ")
|
||||
|
||||
" . $body);
|
||||
}
|
||||
@file_put_contents("$out_dir/manifest.json", json_encode($manifest, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
|
||||
$out = "POSTS_GENERATED: " . count($posts) . " (v2 piliers)
|
||||
OUTPUT: $out_dir
|
||||
MANIFEST: $out_dir/manifest.json
|
||||
|
||||
Substitutions live vars:
|
||||
";
|
||||
foreach ($vars as $k => $v) $out .= " $k = $v
|
||||
";
|
||||
$out .= "
|
||||
Fichiers:
|
||||
";
|
||||
foreach ($posts as $p) $out .= " - " . $p["id"] . ".md [" . $p["pillar"] . "] → " . $p["account"] . " " . $p["target_week"] . "
|
||||
";
|
||||
return ["provider"=>"opus46", "content"=>$out, "tool"=>"generate_wave2_posts"];
|
||||
}
|
||||
|
||||
|
||||
// INTENT: posts_v2 (Vague 2 - 6 posts piliers LinkedIn) - wired 2026-04-17
|
||||
if (preg_match("/posts?\s*(v2|vague\s*2|wave\s*2|pilier|pillar)|draft.*post|montre.*post.*linkedin|vague\s*2.*post/iu", $m)) {
|
||||
$dir = "/opt/weval-l99/audits/posts-v2/";
|
||||
if (!is_dir($dir)) {
|
||||
return ["provider"=>"opus46", "content"=>"POSTS_V2: directory not found", "tool"=>"posts_v2"];
|
||||
}
|
||||
$files = glob($dir . "*.md");
|
||||
$list = [];
|
||||
foreach ($files as $f) {
|
||||
$name = basename($f);
|
||||
if ($name === "00-README.md") continue;
|
||||
$firstLine = trim(explode("\n", file_get_contents($f))[0]);
|
||||
$list[] = "- " . $name . " :: " . substr($firstLine, 0, 80);
|
||||
}
|
||||
sort($list);
|
||||
$out = "POSTS VAGUE 2 (DRAFT pending Yacine validation):\n";
|
||||
$out .= implode("\n", $list) . "\n\n";
|
||||
$out .= "Total: " . count($list) . " posts\n";
|
||||
$out .= "Path: $dir\n";
|
||||
$out .= "Status: indexed in Qdrant wevia_kb_768 (ids 70100-70106)\n";
|
||||
$out .= "Action: review + validate + schedule publication";
|
||||
return ["provider"=>"opus46", "content"=>$out, "tool"=>"posts_v2"];
|
||||
}
|
||||
|
||||
// INTENT: show_post (retourne 1 post specifique)
|
||||
if (preg_match("/show\s+post\s+(\d+)|post\s+(\d+)\s+show|voir\s+post\s+(\d+)|lis\s+post\s+(\d+)/iu", $m, $pm)) {
|
||||
$num = $pm[1] ?? $pm[2] ?? $pm[3] ?? $pm[4] ?? "1";
|
||||
$num = str_pad((int)$num, 2, "0", STR_PAD_LEFT);
|
||||
$dir = "/opt/weval-l99/audits/posts-v2/";
|
||||
$files = glob($dir . $num . "-*.md");
|
||||
if (empty($files)) {
|
||||
return ["provider"=>"opus46", "content"=>"POST $num: not found. Available: " . implode(",", array_map("basename", glob($dir."*.md"))), "tool"=>"show_post"];
|
||||
}
|
||||
$content = file_get_contents($files[0]);
|
||||
return ["provider"=>"opus46", "content"=>"POST " . basename($files[0]) . ":\n\n" . $content, "tool"=>"show_post"];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 200"><rect width="400" height="200" rx="20" fill="#0f172a"/><text x="200" y="110" text-anchor="middle" font-family="sans-serif" font-size="48" font-weight="bold" fill="#4d84ff">WEVAL</text></svg>
|
||||
|
Before Width: | Height: | Size: 252 B |
45
linkedin-posts-wave2.php
Normal file
45
linkedin-posts-wave2.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
// /linkedin-posts-wave2.php — Preview wave 2 posts for validation
|
||||
header("Content-Type: text/html; charset=utf-8");
|
||||
$dir = "/opt/weval-l99/wiki/linkedin-posts-wave2";
|
||||
$manifest = @json_decode(@file_get_contents("$dir/manifest.json"), true);
|
||||
if (!$manifest) die("manifest not found");
|
||||
?><!DOCTYPE html>
|
||||
<html lang="fr"><head>
|
||||
<meta charset="utf-8">
|
||||
<title>WEVAL · LinkedIn Wave 2 Posts (preview)</title>
|
||||
<script src="/widgets/audit-banner.js" defer></script>
|
||||
<style>
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#0a0a0f;color:#e8e8f0;margin:0;padding:2rem;line-height:1.6;max-width:900px;margin:0 auto}
|
||||
h1{font-size:2rem;background:linear-gradient(90deg,#1B6CA8,#7EDAB5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.3rem}
|
||||
.meta{color:#9090a8;font-size:.85rem;margin-bottom:2rem}
|
||||
.post{background:#12132a;border:1px solid #2a2b4a;border-radius:12px;padding:1.4rem;margin-bottom:1.3rem}
|
||||
.post-hdr{display:flex;gap:8px;margin-bottom:.8rem;flex-wrap:wrap}
|
||||
.tag{background:#1B6CA8;color:#fff;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
|
||||
.tag.acc{background:#7EDAB5;color:#0a0a0f}
|
||||
.tag.w{background:#2a2b4a;color:#e8e8f0}
|
||||
.body{white-space:pre-wrap;font-family:-apple-system,sans-serif;background:#0a0a0f;padding:1rem;border-radius:8px;border-left:3px solid #7EDAB5;font-size:.95rem}
|
||||
.copy{background:#7EDAB5;color:#0a0a0f;padding:6px 14px;border-radius:6px;border:0;cursor:pointer;font-weight:700;margin-top:.6rem;font-size:.85rem}
|
||||
.vars{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px;background:#111;padding:1rem;border-radius:8px;margin-bottom:2rem;font-size:.75rem;font-family:monospace}
|
||||
.vars div span{color:#7EDAB5}
|
||||
</style></head><body>
|
||||
<h1>LinkedIn Wave 2 · Posts Piliers</h1>
|
||||
<div class="meta">Généré <?=htmlspecialchars($manifest["generated_at"])?> · Source: audit <?=htmlspecialchars($manifest["source"])?> · Posts : <?=count($manifest["posts"])?></div>
|
||||
|
||||
<div class="vars">
|
||||
<?php foreach ($manifest["vars"] as $k => $v) echo "<div>$k = <span>" . htmlspecialchars($v) . "</span></div>"; ?>
|
||||
</div>
|
||||
|
||||
<?php foreach ($manifest["posts"] as $i => $p): ?>
|
||||
<div class="post">
|
||||
<div class="post-hdr">
|
||||
<span class="tag"><?=htmlspecialchars($p["pillar"])?></span>
|
||||
<span class="tag acc"><?=htmlspecialchars($p["account"])?></span>
|
||||
<span class="tag w"><?=htmlspecialchars($p["target_week"])?></span>
|
||||
<span class="tag w"><?=htmlspecialchars($p["id"])?></span>
|
||||
</div>
|
||||
<div class="body" id="p<?=$i?>"><?=htmlspecialchars($p["body_rendered"])?></div>
|
||||
<button class="copy" onclick="navigator.clipboard.writeText(document.getElementById('p<?=$i?>').innerText).then(()=>{this.textContent='✓ Copié'})">📋 Copier pour LinkedIn</button>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</body></html>
|
||||
@@ -111,6 +111,8 @@ fetch('/api/ecosystem-health.php').then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BA
|
||||
</a>
|
||||
<div class="card wiki-item" data-tags="opus46-20260416224136"><h2 style="border:0;margin:0;padding:0">inventaire 3914 8) save vault GOLD session-archive-prep-17av</h2><div style="color:#94a3b8;font-size:10px;margin-top:6px">inventaire 3914 8) save vault GOLD session-archive-prep-17avr.gold 9) NonReg apres. Tu rapportes chaque etape avec status reel REUSSI ou ECHEC pas un plan.<br><span style="color:#06b6d4">[16/04 22:41]</span></div></div>
|
||||
<div class="card wiki-item" data-tags="opus46-20260416232245"><h2 style="border:0;margin:0;padding:0">AUDIT LINKEDIN+ARCHI deploye widget banner sur 3 pages + int</h2><div style="color:#94a3b8;font-size:10px;margin-top:6px">AUDIT LINKEDIN+ARCHI deploye widget banner sur 3 pages + intents WEVIA Master wired L99 304/304<br><span style="color:#06b6d4">[16/04 23:22]</span></div></div>
|
||||
<div class="card wiki-item" data-tags="opus46-20260416233748"><h2 style="border:0;margin:0;padding:0">Wave 2 posts linkedin generes 6 piliers deployes preview pag</h2><div style="color:#94a3b8;font-size:10px;margin-top:6px">Wave 2 posts linkedin generes 6 piliers deployes preview page live<br><span style="color:#06b6d4">[16/04 23:37]</span></div></div>
|
||||
<div class="card wiki-item" data-tags="opus46-20260416233936"><h2 style="border:0;margin:0;padding:0">VAGUE2-2026-04-17 : 6 posts piliers LinkedIn deployes + inde</h2><div style="color:#94a3b8;font-size:10px;margin-top:6px">VAGUE2-2026-04-17 : 6 posts piliers LinkedIn deployes + indexes Qdrant 70100-70106 + intents posts_v2/show_post wired + L99 304/304<br><span style="color:#06b6d4">[16/04 23:39]</span></div></div>
|
||||
</div>
|
||||
<script>
|
||||
(function(){
|
||||
|
||||
Reference in New Issue
Block a user