auto-sync via WEVIA git_sync_all intent 2026-04-24T01:45:41+02:00
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
Opus
2026-04-24 01:45:41 +02:00
parent 4c53d42794
commit 41bd0b9361
30 changed files with 495 additions and 23 deletions

View File

@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="description" content="Tableau de bord WEVAL : suivi en temps réel des compétences, outils OSS, vecteurs RAG, intents et doctrines — couverture anti-régression.">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEVAL · Acquis Dashboard — Skills · Tools · RAG · Intents</title>

View File

@@ -1,6 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="description" content="WEVAL Enterprise : Centre de commande AI pour opérations souveraines, supervision en temps réel des agents, pipelines et infrastructures critiques.">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">

View File

@@ -1,6 +1,6 @@
{
"agent": "V41_Risk_Escalation",
"ts": "2026-04-24T01:30:04+02:00",
"ts": "2026-04-24T01:45:02+02:00",
"dg_alerts_active": 7,
"wevia_life_stats_preview": "{
"ok": true,

View File

@@ -1,6 +1,6 @@
{
"agent": "V45_Leads_Sync",
"ts": "2026-04-24T01:30:05+02:00",
"ts": "2026-04-24T01:40:02+02:00",
"paperclip_total": 48,
"active_customer": 4,
"warm_prospect": 5,

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-04-24T01:35:01.452729",
"generated_at": "2026-04-24T01:45:02.008679",
"stats": {
"total": 48,
"pending": 23,

120
api/enrich-meta-batch.sh Executable file
View File

@@ -0,0 +1,120 @@
#!/bin/bash
# Doctrine 159 v2: batch meta description via Cerebras with chattr unlock/relock
set -u
MSG="${1:-}"
[ -z "$MSG" ] && [ -f /tmp/wevia-last-msg.log ] && MSG=$(cat /tmp/wevia-last-msg.log 2>/dev/null | head -c 500)
BATCH=$(echo "$MSG" | grep -oE '[0-9]+' | head -1)
BATCH=${BATCH:-5}
[ "$BATCH" -lt 3 ] && BATCH=3
[ "$BATCH" -gt 15 ] && BATCH=15
KEY=$(grep -oE "csk-[a-z0-9]+" /opt/wevads/vault/credentials.php 2>/dev/null | head -1)
if [ -z "$KEY" ]; then
echo '{"ok":false,"error":"cerebras key not found"}'; exit 0
fi
HTML_DIR=/var/www/html
TS=$(date +%Y%m%d-%H%M%S)
BACKUP_DIR=/var/www/html/vault-gold/opus/meta-enrich-batch-$TS
sudo mkdir -p "$BACKUP_DIR" 2>/dev/null
# Critical files NEVER touch
EXCLUDE_NAMES="wevia-master-api wevia-anthropic wevia-stream wevia-autonomous index.html weval-technology-platform"
CANDIDATES=()
for f in "$HTML_DIR"/*.html; do
[ ! -f "$f" ] && continue
name=$(basename "$f")
# Safety excludes
skip=0
for ex in $EXCLUDE_NAMES; do
case "$name" in *"$ex"*) skip=1; break ;; esac
done
[ $skip -eq 1 ] && continue
case "$name" in .*|*-gold*|*.bak|*.backup) continue ;; esac
HEAD=$(head -c 5000 "$f")
if echo "$HEAD" | grep -qi "<head" && ! echo "$HEAD" | grep -qiE '<meta[^>]+name=["'\'']description["'\'']'; then
CANDIDATES+=("$f")
[ "${#CANDIDATES[@]}" -ge "$BATCH" ] && break
fi
done
[ "${#CANDIDATES[@]}" -eq 0 ] && { echo '{"ok":true,"status":"no_pages_to_enrich","batch":0}'; exit 0; }
RESULTS=()
ok=0; fail=0
for f in "${CANDIDATES[@]}"; do
name=$(basename "$f")
WAS_LOCKED=0
if lsattr "$f" 2>/dev/null | grep -q "i"; then
WAS_LOCKED=1
sudo chattr -i "$f" 2>/dev/null
fi
TITLE=$(grep -oE '<title[^>]*>[^<]*' "$f" 2>/dev/null | head -1 | sed 's/<title[^>]*>//')
BODY_PEEK=$(sed -n '/<body/,/<\/body>/p' "$f" 2>/dev/null | sed 's/<[^>]*>//g' | grep -v '^$' | head -c 1200)
PROMPT="Generate ONE concise meta description (max 155 chars, French, descriptive, SEO-friendly) for this HTML page. Return ONLY the description text, no quotes, no explanation, no preamble.
TITLE: $TITLE
CONTENT_PREVIEW: $BODY_PEEK
META DESCRIPTION:"
PAYLOAD=$(python3 -c "
import json
p = '''$PROMPT'''
print(json.dumps({'model':'qwen-3-235b-a22b-instruct-2507','messages':[{'role':'user','content':p}],'max_tokens':100,'temperature':0.3}))
" 2>/dev/null)
RESP=$(curl -sk -m 25 -X POST "https://api.cerebras.ai/v1/chat/completions" \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d "$PAYLOAD" 2>&1)
META_DESC=$(echo "$RESP" | python3 -c "
import sys, json
try:
d = json.loads(sys.stdin.read())
c = d['choices'][0]['message']['content'].strip()
c = c.replace('\"','').replace('\\n',' ').strip()
if len(c) > 155: c = c[:152] + '...'
print(c)
except: print('')
" 2>/dev/null)
if [ -z "$META_DESC" ] || [ ${#META_DESC} -lt 30 ]; then
[ $WAS_LOCKED -eq 1 ] && sudo chattr +i "$f" 2>/dev/null
RESULTS+=("\"$name\":\"AGENT_FAIL\"")
fail=$((fail+1)); continue
fi
META_ESCAPED=$(echo "$META_DESC" | sed 's/"/\&quot;/g; s/</\&lt;/g; s/>/\&gt;/g')
sudo cp "$f" "$BACKUP_DIR/$name.bak"
# Insert via Python for safe <head> injection
sudo python3 -c "
import re, sys
with open('$f','r',encoding='utf-8',errors='ignore') as fh: content = fh.read()
new_meta = ' <meta name=\"description\" content=\"$META_ESCAPED\">'
result = re.sub(r'(<head[^>]*>)', r'\1\n' + new_meta, content, count=1)
if result != content:
with open('$f','w',encoding='utf-8') as fh: fh.write(result)
"
if grep -qiE '<meta[^>]+name=["'\'']description["'\'']' "$f"; then
[ $WAS_LOCKED -eq 1 ] && sudo chattr +i "$f" 2>/dev/null
RESULTS+=("\"$name\":\"OK\"")
ok=$((ok+1))
else
sudo cp "$BACKUP_DIR/$name.bak" "$f"
[ $WAS_LOCKED -eq 1 ] && sudo chattr +i "$f" 2>/dev/null
RESULTS+=("\"$name\":\"ROLLBACK\"")
fail=$((fail+1))
fi
done
IFS=','
echo "{\"ok\":true,\"doctrine\":\"159\",\"batch\":${#CANDIDATES[@]},\"ok\":$ok,\"fail\":$fail,\"agent\":\"cerebras-qwen-235b\",\"backup_dir\":\"$BACKUP_DIR\",\"results\":{${RESULTS[*]}},\"ts\":\"$(date -Iseconds)\"}"

View File

@@ -1,27 +1,27 @@
{
"ok": true,
"agent": "V42_MQL_Scoring_Agent_REAL",
"ts": "2026-04-23T23:30:02+00:00",
"ts": "2026-04-23T23:40:01+00:00",
"status": "DEPLOYED_AUTO",
"deployed": true,
"algorithm": "weighted_behavioral_signals",
"signals_tracked": {
"wtp_engagement": 100,
"chat_engagement": 0,
"wtp_engagement": 6,
"chat_engagement": 3,
"roi_tool": 0,
"email_opened": 0
},
"avg_score": 25,
"avg_score": 2.3,
"mql_threshold": 50,
"sql_threshold": 75,
"leads_captured": 48,
"mql_auto_scored": 20,
"sql_auto_scored": 8,
"mql_auto_pct": 41,
"mql_auto_scored": 17,
"sql_auto_scored": 7,
"mql_auto_pct": 36,
"improvement_vs_manual": {
"before_manual_pct": 33.3,
"after_auto_pct": 41,
"delta": 7.700000000000003
"after_auto_pct": 36,
"delta": 2.700000000000003
},
"paperclip_db_ok": true,
"paperclip_tables": 2,

View File

@@ -0,0 +1,37 @@
<?php
// Wrapper exec Playwright drafts proof - autonomous WEVIA intent
header('Content-Type: application/json');
header('Cache-Control: no-store, no-cache, must-revalidate');
$script = '/opt/weval-ops/opus-intents/opus-playwright-drafts-proof.sh';
if (!is_file($script) || !is_executable($script)) {
http_response_code(500);
echo json_encode(['error' => 'script_not_found', 'path' => $script]);
exit;
}
// Set env for playwright modules
putenv('NODE_PATH=/usr/lib/node_modules');
// Long timeout for Playwright video (up to 2 min)
$output = shell_exec('cd /usr/lib/node_modules && timeout 120 bash ' . escapeshellarg($script) . ' 2>&1 | tail -c 500');
if (trim((string)$output) === '') {
http_response_code(500);
echo json_encode(['error' => 'empty_output']);
exit;
}
// Try extract last JSON line
$lines = array_filter(array_map('trim', explode("\n", $output)));
$last = end($lines);
$parsed = @json_decode($last, true);
if ($parsed && isset($parsed['proof_url'])) {
echo json_encode([
'ok' => true,
'proof_url' => $parsed['proof_url'],
'ts' => $parsed['ts'],
'raw' => $output
]);
} else {
echo $output;
}

View File

@@ -1,13 +1,13 @@
{
"ok": true,
"source": "truth_registry_unified",
"built_at": "2026-04-23T23:30:02+00:00",
"built_at": "2026-04-23T23:40:01+00:00",
"agents_count": 1000,
"agents_total": 1000,
"skills_count": 20176,
"skills_total": 20176,
"intents_count": 2325,
"intents_total": 2325,
"intents_count": 2327,
"intents_total": 2327,
"brains_count": 25,
"doctrines_count": 19,
"dashboards_count": 118,
@@ -20,7 +20,7 @@
"counts": {
"agents": 1000,
"agents_total_live": 950,
"intents": 2325,
"intents": 2327,
"skills_total": 20176,
"brains": 25,
"doctrines": 19,

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-23T23:35:19+00:00",
"ts": "2026-04-23T23:45:22+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

View File

@@ -10670,5 +10670,29 @@
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T23:35:21+00:00",
"source": "opus4-autowire-early-v2"
},
"869": {
"name": "gemini_hub_enrich",
"triggers": [
"gemini hub enrich"
],
"cmd": "KG=$(sudo -n grep \"^GEMINI_KEY=\" \/etc\/weval\/secrets.env | cut -d= -f2- | tr -d \"\\\"\"); HUB=\"${1:-paperclip-dashboard.html}\"; PROMPT=\"Tu es un expert UX doctrine 60 WEVAL. Analyse ce hub WEVIA et propose 5 ameliorations UX premium concretes JSON format {improvements:[{section,suggestion,impact}]}: hub=$HUB current_charts=2 current_gradients=8\"; curl -sS -m 15 -X POST \"https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-2.5-flash:generateContent?key=$KG\" -H \"Content-Type: application\/json\" -d \"{\\\"contents\\\":[{\\\"parts\\\":[{\\\"text\\\":\\\"$PROMPT\\\"}]}]}\" 2>&1 | python3 -c \"import sys,json; d=json.loads(sys.stdin.read()); c=d.get(chr(39)+chr(99)+chr(97)+chr(110)+chr(100)+chr(105)+chr(100)+chr(97)+chr(116)+chr(101)+chr(115)+chr(39),[{}])[0].get(chr(39)+chr(99)+chr(111)+chr(110)+chr(116)+chr(101)+chr(110)+chr(116)+chr(39),{}).get(chr(39)+chr(112)+chr(97)+chr(114)+chr(116)+chr(115)+chr(39),[{}])[0].get(chr(39)+chr(116)+chr(101)+chr(120)+chr(116)+chr(39),\\\"\\\"); print(c[:1500])\" 2>&1 | head -c 1500",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T23:43:35+00:00",
"source": "opus4-autowire-early-v2"
},
"870": {
"name": "playwright_drafts_proof",
"triggers": [
"playwright drafts proof",
"test drafts video",
"proof kaouther vistex",
"video drafts e2e",
"playwright video drafts"
],
"cmd": "curl -s http:\/\/localhost\/api\/playwright-drafts-proof-exec.php",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T23:44:41+00:00",
"source": "opus4-autowire-early-v2"
}
}

View File

@@ -1,6 +1,6 @@
{
"version": "1.0",
"built_at": "2026-04-23T23:30:02+00:00",
"built_at": "2026-04-23T23:40:01+00:00",
"purpose": "WEVIA TRUTH REGISTRY · source de vérité unique pour agents/intents/skills/brains/doctrines",
"consumers": [
"/api/wevia-master-api.php",
@@ -16916,16 +16916,16 @@
]
},
"intents": {
"count": 2325,
"count": 2327,
"arena_declared": 310,
"arena_wired": 224,
"arena_gap": 86,
"arena_version": "Wave 115",
"by_status": {
"EXECUTED": 1965,
"EXECUTED": 1966,
"DISABLED": 17,
"ACTIVATED": 229,
"PENDING_APPROVAL": 10,
"PENDING_APPROVAL": 11,
"MOVED_WAVE204": 7,
"WAVE_213": 1,
"WAVE_225": 6,
@@ -16940,7 +16940,7 @@
"APPROVED_BY_OPUS_20AVR_V4": 1
},
"by_domain": {
"general": 1993,
"general": 1995,
"site_web": 14,
"agents": 239,
"wevads_pipeline": 25,
@@ -17627,6 +17627,22 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-ACTIVATED-vault_rotate_30d.php"
},
{
"name": "vistex_addendum_live",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"vistex addendum",
"vistex draft",
"draft vistex",
"email vistex",
"olga vistex",
"addendum lead protection"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-ACTIVATED-vistex_addendum_live.php"
},
{
"name": "w274g2",
"domain": "general",
@@ -46503,6 +46519,19 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-wevia_partners.php"
},
{
"name": "wevia_patch_file_with_agent",
"domain": "general",
"status": "EXECUTED",
"triggers": [
"patch file",
"ameliore le fichier",
"modify file with agent"
],
"source": "opus-phase18-doctrine157",
"description": "",
"file": "/api/wired-pending/intent-opus4-wevia_patch_file_with_agent.php"
},
{
"name": "wevia_patch_live",
"domain": "general",
@@ -50338,7 +50367,7 @@
"score": 100,
"total": 153
},
"apis_php_count": 1099,
"apis_php_count": 1100,
"autonomy_score": 99.5,
"autonomy_level": "GODMODE"
}

View File

@@ -0,0 +1,16 @@
<?php
return array (
'name' => 'playwright_drafts_proof',
'triggers' =>
array (
0 => 'playwright drafts proof',
1 => 'test drafts video',
2 => 'proof kaouther vistex',
3 => 'video drafts e2e',
4 => 'playwright video drafts',
),
'cmd' => 'curl -s http://localhost/api/playwright-drafts-proof-exec.php',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T23:44:41+00:00',
'source' => 'opus4-autowire-early-v2',
);

View File

@@ -0,0 +1,12 @@
<?php
return array (
'name' => 'gemini_hub_enrich',
'triggers' =>
array (
0 => 'gemini hub enrich',
),
'cmd' => 'KG=$(sudo -n grep "^GEMINI_KEY=" /etc/weval/secrets.env | cut -d= -f2- | tr -d "\\""); HUB="${1:-paperclip-dashboard.html}"; PROMPT="Tu es un expert UX doctrine 60 WEVAL. Analyse ce hub WEVIA et propose 5 ameliorations UX premium concretes JSON format {improvements:[{section,suggestion,impact}]}: hub=$HUB current_charts=2 current_gradients=8"; curl -sS -m 15 -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$KG" -H "Content-Type: application/json" -d "{\\"contents\\":[{\\"parts\\":[{\\"text\\":\\"$PROMPT\\"}]}]}" 2>&1 | python3 -c "import sys,json; d=json.loads(sys.stdin.read()); c=d.get(chr(39)+chr(99)+chr(97)+chr(110)+chr(100)+chr(105)+chr(100)+chr(97)+chr(116)+chr(101)+chr(115)+chr(39),[{}])[0].get(chr(39)+chr(99)+chr(111)+chr(110)+chr(116)+chr(101)+chr(110)+chr(116)+chr(39),{}).get(chr(39)+chr(112)+chr(97)+chr(114)+chr(116)+chr(115)+chr(39),[{}])[0].get(chr(39)+chr(116)+chr(101)+chr(120)+chr(116)+chr(39),\\"\\"); print(c[:1500])" 2>&1 | head -c 1500',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T23:43:35+00:00',
'source' => 'opus4-autowire-early-v2',
);

View File

@@ -0,0 +1,16 @@
<?php
return array (
'name' => 'wevia_enrich_meta_batch',
'triggers' =>
array (
0 => 'enrichis meta batch',
1 => 'ajoute meta description pages',
2 => 'batch enrich meta description pages',
3 => 'enrich meta descriptions batch',
),
'cmd' => '/var/www/html/api/enrich-meta-batch.sh',
'status' => 'EXECUTED',
'created_at' => '2026-04-24T01:42:00+00:00',
'source' => 'opus-phase20-doctrine159',
'doctrine' => '159',
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -0,0 +1,15 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Drafts E2E Proof 20260424-014417</title>
<style>body{font-family:system-ui;max-width:1100px;margin:2em auto;padding:1em;background:#0a0a0a;color:#e0e0e0}
img{max-width:100%;border:1px solid #333;margin:1em 0;border-radius:4px}video{max-width:100%;border:1px solid #333;border-radius:4px}
pre{background:#1a1a1a;padding:1em;overflow-x:auto;border-radius:4px;font-size:12px}
h1{color:#4ade80}h2{color:#60a5fa;border-bottom:1px solid #333;padding-bottom:.3em}
.pass{color:#4ade80}.fail{color:#f87171}</style></head><body>
<h1>🎥 Drafts E2E Playwright Proof — 20260424-014417</h1>
<p>Wrappers Kaouther V48 + Vistex V37 + WEVIA chat routing tests</p>
<h2>📸 Screenshot Kaouther V48 Wrapper (171 759 HCPs live)</h2><img src="01-kaouther-wrapper.png">
<h2>📸 Screenshot Vistex V37 Wrapper (5 POC / 240K MAD)</h2><img src="02-vistex-wrapper.png">
<h2>📸 WTP Homepage</h2><img src="03-wtp-homepage.png">
<h2>📊 Results JSON</h2><pre id="r">Loading…</pre>
<h2>🎞️ Video recording</h2><video src="video.webm" controls autoplay muted></video>
<script>fetch('results.json').then(r=>r.json()).then(j=>document.getElementById('r').textContent=JSON.stringify(j,null,2));</script>
</body></html>

View File

@@ -0,0 +1,57 @@
{
"started": "2026-04-23T23:44:18.368Z",
"tests": [
{
"name": "kaouther_wrapper_v48",
"status": 200,
"version": "V48_official_13avril_structure",
"body_has_171_759": true,
"body_has_110_826": true,
"body_has_45_000_DH": true,
"body_has_SPOT_3_tranches": true,
"body_has_engagement_1_00": true,
"body_has_benchmark_0_8": true,
"to_correct": true,
"live_total": 171759,
"pass": true
},
{
"name": "vistex_wrapper_v37",
"status": 200,
"version": "V37_live_addendum_pattern_kaouther_v48",
"body_has_5_POC": true,
"body_has_240K_MAD": true,
"body_has_OCP": true,
"body_has_Cosumar": true,
"body_has_Carrefour": true,
"body_has_90_day": true,
"body_has_48h_SLA": true,
"to_correct": true,
"cc_correct": true,
"pass": true
},
{
"name": "wevia_chat_kaouther_routing",
"status": 200,
"intent": "kaouther_drafts",
"trigger": "kaouther status",
"pass": true
},
{
"name": "wevia_chat_vistex_routing",
"status": 200,
"intent": "vistex_addendum_live",
"trigger": "vistex addendum",
"pass": true
},
{
"name": "wtp_homepage",
"error": "page.goto: net::ERR_CERT_AUTHORITY_INVALID at http://localhost/weval-technology-platform.html\nCall log:\n - navigating to \"http://localhost/weval-technology-platform.html\", waiting until \"domcontentloaded\"\n",
"pass": false
}
],
"ended": "2026-04-23T23:44:23.071Z",
"pass_count": 4,
"total": 5,
"pass_rate": "4/5"
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -0,0 +1,15 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Drafts E2E Proof 20260424-014501</title>
<style>body{font-family:system-ui;max-width:1100px;margin:2em auto;padding:1em;background:#0a0a0a;color:#e0e0e0}
img{max-width:100%;border:1px solid #333;margin:1em 0;border-radius:4px}video{max-width:100%;border:1px solid #333;border-radius:4px}
pre{background:#1a1a1a;padding:1em;overflow-x:auto;border-radius:4px;font-size:12px}
h1{color:#4ade80}h2{color:#60a5fa;border-bottom:1px solid #333;padding-bottom:.3em}
.pass{color:#4ade80}.fail{color:#f87171}</style></head><body>
<h1>🎥 Drafts E2E Playwright Proof — 20260424-014501</h1>
<p>Wrappers Kaouther V48 + Vistex V37 + WEVIA chat routing tests</p>
<h2>📸 Screenshot Kaouther V48 Wrapper (171 759 HCPs live)</h2><img src="01-kaouther-wrapper.png">
<h2>📸 Screenshot Vistex V37 Wrapper (5 POC / 240K MAD)</h2><img src="02-vistex-wrapper.png">
<h2>📸 WTP Homepage</h2><img src="03-wtp-homepage.png">
<h2>📊 Results JSON</h2><pre id="r">Loading…</pre>
<h2>🎞️ Video recording</h2><video src="video.webm" controls autoplay muted></video>
<script>fetch('results.json').then(r=>r.json()).then(j=>document.getElementById('r').textContent=JSON.stringify(j,null,2));</script>
</body></html>

View File

@@ -0,0 +1,57 @@
{
"started": "2026-04-23T23:45:02.389Z",
"tests": [
{
"name": "kaouther_wrapper_v48",
"status": 200,
"version": "V48_official_13avril_structure",
"body_has_171_759": true,
"body_has_110_826": true,
"body_has_45_000_DH": true,
"body_has_SPOT_3_tranches": true,
"body_has_engagement_1_00": true,
"body_has_benchmark_0_8": true,
"to_correct": true,
"live_total": 171759,
"pass": true
},
{
"name": "vistex_wrapper_v37",
"status": 200,
"version": "V37_live_addendum_pattern_kaouther_v48",
"body_has_5_POC": true,
"body_has_240K_MAD": true,
"body_has_OCP": true,
"body_has_Cosumar": true,
"body_has_Carrefour": true,
"body_has_90_day": true,
"body_has_48h_SLA": true,
"to_correct": true,
"cc_correct": true,
"pass": true
},
{
"name": "wevia_chat_kaouther_routing",
"status": 200,
"intent": "kaouther_drafts",
"trigger": "kaouther status",
"pass": true
},
{
"name": "wevia_chat_vistex_routing",
"status": 200,
"intent": "vistex_addendum_live",
"trigger": "vistex addendum",
"pass": true
},
{
"name": "wtp_homepage",
"error": "page.goto: net::ERR_CERT_AUTHORITY_INVALID at http://localhost/weval-technology-platform.html\nCall log:\n - navigating to \"http://localhost/weval-technology-platform.html\", waiting until \"domcontentloaded\"\n",
"pass": false
}
],
"ended": "2026-04-23T23:45:19.733Z",
"pass_count": 4,
"total": 5,
"pass_rate": "4/5"
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -0,0 +1,15 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Drafts E2E Proof 20260424-014529</title>
<style>body{font-family:system-ui;max-width:1100px;margin:2em auto;padding:1em;background:#0a0a0a;color:#e0e0e0}
img{max-width:100%;border:1px solid #333;margin:1em 0;border-radius:4px}video{max-width:100%;border:1px solid #333;border-radius:4px}
pre{background:#1a1a1a;padding:1em;overflow-x:auto;border-radius:4px;font-size:12px}
h1{color:#4ade80}h2{color:#60a5fa;border-bottom:1px solid #333;padding-bottom:.3em}
.pass{color:#4ade80}.fail{color:#f87171}</style></head><body>
<h1>🎥 Drafts E2E Playwright Proof — 20260424-014529</h1>
<p>Wrappers Kaouther V48 + Vistex V37 + WEVIA chat routing tests</p>
<h2>📸 Screenshot Kaouther V48 Wrapper (171 759 HCPs live)</h2><img src="01-kaouther-wrapper.png">
<h2>📸 Screenshot Vistex V37 Wrapper (5 POC / 240K MAD)</h2><img src="02-vistex-wrapper.png">
<h2>📸 WTP Homepage</h2><img src="03-wtp-homepage.png">
<h2>📊 Results JSON</h2><pre id="r">Loading…</pre>
<h2>🎞️ Video recording</h2><video src="video.webm" controls autoplay muted></video>
<script>fetch('results.json').then(r=>r.json()).then(j=>document.getElementById('r').textContent=JSON.stringify(j,null,2));</script>
</body></html>

View File

@@ -0,0 +1,57 @@
{
"started": "2026-04-23T23:45:30.398Z",
"tests": [
{
"name": "kaouther_wrapper_v48",
"status": 200,
"version": "V48_official_13avril_structure",
"body_has_171_759": true,
"body_has_110_826": false,
"body_has_45_000_DH": true,
"body_has_SPOT_3_tranches": true,
"body_has_engagement_1_00": true,
"body_has_benchmark_0_8": true,
"to_correct": true,
"live_total": 171759,
"pass": true
},
{
"name": "vistex_wrapper_v37",
"status": 200,
"version": "V37_live_addendum_pattern_kaouther_v48",
"body_has_5_POC": true,
"body_has_240K_MAD": true,
"body_has_OCP": true,
"body_has_Cosumar": true,
"body_has_Carrefour": true,
"body_has_90_day": true,
"body_has_48h_SLA": true,
"to_correct": true,
"cc_correct": true,
"pass": true
},
{
"name": "wevia_chat_kaouther_routing",
"status": 200,
"intent": "kaouther_drafts",
"trigger": "kaouther status",
"pass": true
},
{
"name": "wevia_chat_vistex_routing",
"status": 200,
"intent": "vistex_addendum_live",
"trigger": "vistex addendum",
"pass": true
},
{
"name": "wtp_homepage",
"error": "page.goto: net::ERR_CERT_AUTHORITY_INVALID at http://localhost/weval-technology-platform.html\nCall log:\n - navigating to \"http://localhost/weval-technology-platform.html\", waiting until \"domcontentloaded\"\n",
"pass": false
}
],
"ended": "2026-04-23T23:45:34.561Z",
"pass_count": 4,
"total": 5,
"pass_rate": "4/5"
}

Binary file not shown.