V173 Opus wevia PDF upsell enrichi 2nd time offer - Yacine deux circuits PDF simple LIVE pandoc + enrichi Chart.js visuels proposer 2nd time client - audit existing ambre-tool-pdf-premium LIVE Chart.js Chromium + ambre-claude-stream SSE uses simple pandoc markdown - fix V173 after PDF simple SSE done handler afficher banner upsell gradient cyan purple Souhaitez-vous version enrichie button Oui enrichir clickable POST ambre-tool-pdf-premium topic extracted success banner vert lien Telecharger PDF enrichi failure banner jaune message erreur - GOLD vault v173-pdf-upsell chattr discipline - NR 153 sur 153 preserved - doctrines 14 additif 16 zero regression 60 UX premium - convergence wave-263 mermaid wave-265 factory pill - wiki v173-pdf-upsell-enrichi
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
Opus
2026-04-22 11:38:49 +02:00
parent 9a60d63c7d
commit 969731b074
8 changed files with 456 additions and 2 deletions

View File

@@ -0,0 +1,65 @@
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: true, args: ['--no-sandbox'] });
const ctx = await browser.newContext({ ignoreHTTPSErrors: true, viewport: {width: 1440, height: 1400} });
const page = await ctx.newPage();
// Capture console + errors
page.on('console', msg => console.log('BROWSER:', msg.text().substring(0, 120)));
page.on('pageerror', err => console.log('PAGE ERROR:', err.message));
await page.goto('https://weval-consulting.com/wevia.html?cb=' + Date.now(), { waitUntil: 'networkidle' });
await page.waitForTimeout(3000);
// Check input exists
const inputExists = await page.evaluate(() => {
const i = document.getElementById('msgInput');
return { exists: !!i, tagName: i?.tagName, placeholder: i?.placeholder };
});
console.log('Input:', JSON.stringify(inputExists));
// Fill + dispatch via JS directly
await page.evaluate(() => {
const i = document.getElementById('msgInput');
if (i) {
i.value = 'Genere un PDF professionnel sur: SAP S4HANA ROI';
i.focus();
// Try sendMessage() or the form submit
const sb = document.getElementById('sendBtn');
if (sb && !sb.disabled) sb.click();
}
});
console.log('Fill + click done');
// Wait patiently 70s checking state each 3s
for (let i=0; i<25; i++) {
await page.waitForTimeout(3000);
const state = await page.evaluate(() => ({
phase_count: document.querySelectorAll('.ambre-phase').length,
messages_count: document.querySelectorAll('#messages > *').length,
has_banner: !!document.querySelector('.v173-upsell'),
busy: document.getElementById('sendBtn')?.disabled,
}));
console.log(`t+${i*3+3}s:`, JSON.stringify(state));
if (state.has_banner) { console.log('BANNER VISIBLE!'); break; }
}
// Final screenshot with scroll
await page.evaluate(() => {
const msgs = document.getElementById('messages');
if (msgs) msgs.scrollTop = msgs.scrollHeight;
const b = document.querySelector('.v173-upsell');
if (b) b.scrollIntoView({block: 'center'});
});
await page.waitForTimeout(1500);
await page.screenshot({ path: '/tmp/v173c-final.png', fullPage: true });
console.log('Screenshot saved');
const finalInfo = await page.evaluate(() => ({
bannerHTML: document.querySelector('.v173-upsell')?.outerHTML?.substring(0, 500),
phaseCount: document.querySelectorAll('.ambre-phase').length,
}));
console.log('FINAL:', JSON.stringify(finalInfo));
await browser.close();
})();

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-04-22T11:30:02.247807",
"generated_at": "2026-04-22T11:35:01.754092",
"stats": {
"total": 50,
"pending": 32,

View File

@@ -0,0 +1,286 @@
{
"ts": "2026-04-22T09:35:01+00:00",
"server": "s204",
"s204": {
"load": 1.12,
"uptime": "2026-04-14 11:51:24",
"ram_total_mb": 31335,
"ram_used_mb": 13392,
"ram_free_mb": 17942,
"disk_total": "150G",
"disk_used": "123G",
"disk_free": "22G",
"disk_pct": "86%",
"fpm_workers": 140,
"docker_containers": 19,
"cpu_cores": 8
},
"s95": {
"load": 0.34,
"disk_pct": "83%",
"status": "UP",
"ram_total_mb": 15610,
"ram_free_mb": 12071
},
"pmta": [
{
"name": "SER6",
"ip": "110.239.84.121",
"status": "DOWN"
},
{
"name": "SER7",
"ip": "110.239.65.64",
"status": "DOWN"
},
{
"name": "SER8",
"ip": "182.160.55.107",
"status": "DOWN"
},
{
"name": "SER9",
"ip": "110.239.86.68",
"status": "DOWN"
}
],
"assets": {
"html_pages": 328,
"php_apis": 1073,
"wiki_entries": 2296,
"vault_doctrines": 123,
"vault_sessions": 104,
"vault_decisions": 12
},
"tools": {
"total": 649,
"registry_version": "?"
},
"sovereign": {
"status": "UP",
"providers": [
"Cerebras-fast",
"Cerebras-think",
"Groq",
"Cloudflare-AI",
"Gemini",
"SambaNova",
"NVIDIA-NIM",
"Mistral",
"Groq-OSS",
"HF-Space",
"HF-Router",
"OpenRouter",
"GitHub-Models"
],
"active": 13,
"total": 13,
"primary": "Cerebras-fast",
"cost": "0€"
},
"ethica": {
"total_hcps": 166742,
"with_email": 110712,
"with_phone": 159846,
"gap_email": 56030,
"pct_email": 66.4,
"pct_phone": 95.9,
"by_country": [
{
"country": "DZ",
"hcps": 127343,
"with_email": 78593,
"with_tel": 124087,
"pct_email": 61.7,
"pct_tel": 97.4
},
{
"country": "MA",
"hcps": 19724,
"with_email": 15083,
"with_tel": 18739,
"pct_email": 76.5,
"pct_tel": 95
},
{
"country": "TN",
"hcps": 17796,
"with_email": 15157,
"with_tel": 17020,
"pct_email": 85.2,
"pct_tel": 95.6
},
{
"country": "INTL",
"hcps": 1879,
"with_email": 1879,
"with_tel": 0,
"pct_email": 100,
"pct_tel": 0
}
]
},
"docker": [
{
"name": "weval-docuseal",
"status": "Up 9 seconds",
"ports": ""
},
{
"name": "loki",
"status": "Up 5 days",
"ports": ""
},
{
"name": "listmonk",
"status": "Up 6 days",
"ports": ""
},
{
"name": "plausible-plausible-1",
"status": "Up 4 days",
"ports": ""
},
{
"name": "plausible-plausible-db-1",
"status": "Up 4 days",
"ports": ""
},
{
"name": "plausible-plausible-events-db-1",
"status": "Up 4 days",
"ports": ""
},
{
"name": "n8n-docker-n8n-1",
"status": "Up 6 days",
"ports": ""
},
{
"name": "mattermost-docker-mm-db-1",
"status": "Up 6 days",
"ports": ""
},
{
"name": "mattermost-docker-mattermost-1",
"status": "Up 6 days (healthy)",
"ports": ""
},
{
"name": "twenty",
"status": "Up 5 days",
"ports": ""
},
{
"name": "twenty-redis",
"status": "Up 6 days",
"ports": ""
},
{
"name": "langfuse",
"status": "Up 6 days",
"ports": ""
},
{
"name": "redis-weval",
"status": "Up 7 days",
"ports": ""
},
{
"name": "gitea",
"status": "Up 7 days",
"ports": ""
},
{
"name": "node-exporter",
"status": "Up 7 days",
"ports": ""
},
{
"name": "prometheus",
"status": "Up 7 days",
"ports": ""
},
{
"name": "searxng",
"status": "Up 7 days",
"ports": ""
},
{
"name": "uptime-kuma",
"status": "Up 2 days (healthy)",
"ports": ""
},
{
"name": "vaultwarden",
"status": "Up 7 days (healthy)",
"ports": ""
},
{
"name": "qdrant",
"status": "Up 7 days",
"ports": ""
}
],
"crons": {
"active": 35
},
"git": {
"head": "9a60d63c7 auto-sync-1135",
"dirty": 1,
"status": "DIRTY"
},
"nonreg": {
"total": 153,
"passed": 153,
"score": "100%"
},
"services": [
{
"name": "DeerFlow",
"port": 3002,
"status": "UP"
},
{
"name": "DeerFlow API",
"port": 8001,
"status": "UP"
},
{
"name": "Qdrant",
"port": 6333,
"status": "UP"
},
{
"name": "Ollama",
"port": 11434,
"status": "UP"
},
{
"name": "Redis",
"port": 6379,
"status": "UP"
},
{
"name": "Sovereign",
"port": 4000,
"status": "UP"
},
{
"name": "SearXNG",
"port": 8080,
"status": "UP"
}
],
"whisper": {
"binary": "COMPILED",
"model": "142MB"
},
"grand_total": 4489,
"health": {
"score": 5,
"max": 6,
"pct": 83
},
"elapsed_ms": 10882
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-22T09:34:29+00:00",
"ts": "2026-04-22T09:38:29+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

View File

@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Amélioration de la ROI et des bénéfices avec SAP S4HANA en 2026</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<style>
@page { margin: 0; size: A4; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Helvetica Neue', Arial, sans-serif; color: #1a1a2e; line-height: 1.6; }
.cover { height: 297mm; background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #3b82f6 100%); color: #fff; padding: 80px 70px; display: flex; flex-direction: column; justify-content: space-between; page-break-after: always; }
.cover .brand { font-size: 14px; letter-spacing: 4px; text-transform: uppercase; opacity: 0.9; }
.cover h1 { font-size: 56px; line-height: 1.1; font-weight: 800; margin: 40px 0 20px; }
.cover .subt { font-size: 22px; font-weight: 300; opacity: 0.92; max-width: 80%; }
.cover .meta { font-size: 13px; opacity: 0.85; border-top: 1px solid rgba(255,255,255,0.3); padding-top: 24px; }
.page { padding: 40px 55px 55px; min-height: 297mm; page-break-after: always; }
.exec-summary { background: linear-gradient(135deg,#f0f4ff,#fdf4ff); padding: 28px 32px; border-left: 5px solid #6366f1; border-radius: 10px; margin-bottom: 36px; font-size: 15px; color: #334155; font-style: italic; }
.kpis { display: flex; gap: 16px; margin: 32px 0; }
.kpi { flex: 1; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 24px 20px; text-align: center; box-shadow: 0 2px 8px rgba(99,102,241,0.08); }
.kpi-value { font-size: 36px; font-weight: 800; color: #6366f1; margin-bottom: 6px; }
.kpi-label { font-size: 13px; color: #64748b; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; }
.kpi-trend { font-size: 12px; color: #10b981; font-weight: 600; }
.chart-wrap { background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 28px; margin: 32px 0; }
.chart-wrap h3 { font-size: 15px; color: #6b7280; margin-bottom: 16px; text-transform: uppercase; letter-spacing: 1px; }
canvas { max-height: 320px; }
.sec { margin-bottom: 32px; break-inside: avoid; }
.sec h2 { font-size: 22px; color: #4338ca; margin-bottom: 14px; font-weight: 700; border-bottom: 2px solid #e0e7ff; padding-bottom: 8px; }
.sec p { font-size: 14.5px; color: #334155; margin-bottom: 12px; }
.sec ul { margin-left: 24px; }
.sec li { font-size: 14px; color: #475569; margin-bottom: 6px; padding-left: 4px; }
.conclusion { background: linear-gradient(135deg, #6366f1, #3b82f6); color: #fff; padding: 36px 40px; border-radius: 16px; margin-top: 40px; }
.conclusion h2 { font-size: 22px; margin-bottom: 14px; }
.conclusion p { font-size: 15.5px; line-height: 1.65; }
.footer { position: fixed; bottom: 16mm; left: 55px; right: 55px; font-size: 10px; color: #94a3b8; display: flex; justify-content: space-between; border-top: 1px solid #e2e8f0; padding-top: 10px; }
</style>
</head>
<body>
<!-- Cover page -->
<div class="cover">
<div>
<div class="brand">WEVAL Consulting · Rapport Premium</div>
<h1>Amélioration de la ROI et des bénéfices avec SAP S4HANA en 2026</h1>
<div class="subt">Analyse des avantages et des résultats obtenus grâce à l&#039;implémentation de SAP S4HANA</div>
</div>
<div class="meta">Généré le 22 April 2026 · WEVIA Enterprise Intelligence</div>
</div>
<!-- Content -->
<div class="page">
<div class="exec-summary">L&#039;implémentation de SAP S4HANA a permis à notre entreprise d&#039;améliorer significativement sa ROI et ses bénéfices en 2026. Nous avons constaté une augmentation de 25% de la productivité, une réduction de 30% des coûts opérationnels et une amélioration de 20% de la qualité des services.</div>
<div class="kpis"><div class='kpi'><div class='kpi-value'>42%</div><div class='kpi-label'>ROI</div><div class='kpi-trend'>+8pts</div></div><div class='kpi'><div class='kpi-value'>12M</div><div class='kpi-label'>Bénéfices</div><div class='kpi-trend'>+12%</div></div><div class='kpi'><div class='kpi-value'>95%</div><div class='kpi-label'>Productivité</div><div class='kpi-trend'>+5%</div></div></div>
<div class="chart-wrap">
<h3>Visualisation des données</h3>
<canvas id="mainChart"></canvas>
</div>
<section class='sec'><h2>1. Amélioration de la productivité</h2><p>L&#039;implémentation de SAP S4HANA a permis de rationaliser les processus de production et de réduire les temps de traitement. Nous avons également mis en place des outils de gestion de projet pour améliorer la planification et la coordination des activités.</p><ul><li>Réduction des temps de traitement de 30%</li><li>Amélioration de la planification et de la coordination des activités</li><li>Augmentation de la productivité de 25%</li></ul></section><section class='sec'><h2>2. Réduction des coûts opérationnels</h2><p>L&#039;implémentation de SAP S4HANA a permis de réduire les coûts opérationnels en optimisant les processus de gestion des stocks et des commandes. Nous avons également mis en place des outils de gestion des coûts pour améliorer la visibilité et la maîtrise des dépenses.</p><ul><li>Réduction des coûts de stockage de 25%</li><li>Réduction des coûts de logistique de 15%</li><li>Réduction des coûts de gestion des dépenses de 10%</li></ul></section><section class='sec'><h2>3. Amélioration de la qualité des services</h2><p>L&#039;implémentation de SAP S4HANA a permis d&#039;améliorer la qualité des services en mettant en place des outils de gestion de la qualité et des processus de suivi des performances. Nous avons également mis en place des programmes de formation pour améliorer les compétences des employés.</p><ul><li>Amélioration de la satisfaction client de 20%</li><li>Réduction des retours et des réclamations de 15%</li><li>Amélioration de la qualité des services de 18%</li></ul></section>
<div class="conclusion">
<h2>Conclusion & recommandations</h2>
<p>L&#039;implémentation de SAP S4HANA a permis à notre entreprise de réaliser des bénéfices significatifs en 2026. Nous recommandons à d&#039;autres entreprises de considérer l&#039;implémentation de SAP S4HANA pour améliorer leur ROI et leurs bénéfices.</p>
</div>
</div>
<div class="footer">
<span>WEVAL Consulting · weval-consulting.com</span>
<span>Confidentiel · Usage interne</span>
</div>
<script>
window.addEventListener("load", function(){
try {
var cd = {"type":"bar","title":"Évolution de la ROI et des bénéfices","labels":["2025","2026"],"values":[35,42]};
if (!cd) return;
var ctx = document.getElementById("mainChart").getContext("2d");
new Chart(ctx, {
type: cd.type || "bar",
data: {
labels: cd.labels || [],
datasets: [{
label: cd.title || "Données",
data: cd.values || [],
backgroundColor: ["#6366f1","#8b5cf6","#3b82f6","#06b6d4","#10b981","#f59e0b","#ef4444","#ec4899"],
borderColor: "#4338ca",
borderWidth: 2,
borderRadius: 6,
}]
},
options: {
responsive: true,
maintainAspectRatio: true,
plugins: { legend: { display: false }, title: { display: true, text: cd.title, color: "#334155", font:{size:14}}},
scales: { y: { beginAtZero: true, grid:{color:"#f1f5f9"}}, x: {grid:{display:false}}},
}
});
window._wevia_chart_ready = true;
} catch(e) { console.error("chart fail", e); }
});
</script>
</body>
</html>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
proofs/v173/v173c-final.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB