From 2f54ef459431badff6011ef2bb185cf26ed82a62 Mon Sep 17 00:00:00 2001 From: Opus Date: Fri, 24 Apr 2026 17:11:29 +0200 Subject: [PATCH] phase58 doctrine 200 WEVIA Gemini Auto-Apply handler v1 - CSS generation E2E partial Handler deploye: - /var/www/html/api/wevia-gemini-ux-apply.sh (5.4KB) - Pipeline 4 etapes: Playwright shot -> Gemini generate CSS patch -> parser JSON -> optional apply - Modes: review_only (default, safe) + apply (backup GOLD + injection) - Safety: safe_to_apply flag Gemini required + DOCTRINE-200 marker idempotent Test E2E leadforge: - before.png 58KB Playwright OK - gemini-raw.json 1.2KB Gemini REPOND avec CSS patch premium - Preview extrait: --wtp-color-primary #FF5C6E --wtp-color-secondary #00C896 --wtp-color-background #1A1A2E --wtp-gradient-hero linear-gradient(135deg...) - Gemini detecte couleurs existantes Voir-tarifs Creer-compte et propose tokens coherents Gaps identifies a traiter phase suivante: - maxOutputTokens 6000 insuffisant (Gemini tronque a 237 tokens CSS = totalTokenCount 6528) - Parser Python heredoc inline echoue silencieusement parse.log vide - Besoin: Gemini Flash 2.5 max 8192 ou decouper en multi-call CSS chunks - Besoin: parser separe dans fichier .py dedie pas inline bash heredoc Ce qui MARCHE: - E2E complet Playwright + Gemini vision analysis - Gemini genere du VRAI CSS premium avec design tokens coherents - Architecture modes review_only/apply + GOLD backup pattern Phase prochaine: refiner parser + increase tokens + validate full CSS generation Puis WEVIA pourra appliquer auto UX Gemini premium via chat NL. Cumul: - 56 tags Opus - 39 doctrines (146-200) - NR 153/153 invariant 58 phases Pattern approuve reusable via intent refactor phase 59. --- api/wevia-gemini-ux-apply.sh | 137 ++++++++++++++++++ .../before.png | Bin 0 -> 58079 bytes .../gemini-raw.json | 34 +++++ 3 files changed, 171 insertions(+) create mode 100755 api/wevia-gemini-ux-apply.sh create mode 100644 proofs/wevia-gemini-ux-apply-20260424-170834/before.png create mode 100644 proofs/wevia-gemini-ux-apply-20260424-170834/gemini-raw.json diff --git a/api/wevia-gemini-ux-apply.sh b/api/wevia-gemini-ux-apply.sh new file mode 100755 index 000000000..5a63174ed --- /dev/null +++ b/api/wevia-gemini-ux-apply.sh @@ -0,0 +1,137 @@ +#!/bin/bash +# Doctrine 200: WEVIA Gemini UX Auto-Apply premium patch +# Pipeline: screenshot -> Gemini review -> Gemini generate premium HTML/CSS patch -> backup GOLD -> inject -> verify no regression +set -u +PAGE="${1:-weval-technology-platform}" +PAGE="${PAGE%.html}" +MODE="${2:-review_only}" # review_only | apply + +TARGET="" +if [ -f "/var/www/html/${PAGE}.html" ]; then + TARGET="/var/www/html/${PAGE}.html" +elif [ -f "/var/www/html/products/${PAGE}.html" ]; then + TARGET="/var/www/html/products/${PAGE}.html" +else + echo "{\"ok\":false,\"err\":\"page_not_found\",\"page\":\"$PAGE\"}" + exit 1 +fi + +KG=$(grep "^GEMINI_KEY=" /etc/weval/secrets.env 2>/dev/null | cut -d= -f2- | tr -d '"' | head -c 80) +[ -z "$KG" ] && { echo '{"ok":false,"err":"no_gemini_key"}'; exit 1; } + +TS=$(date +%Y%m%d-%H%M%S) +OUT="/var/www/html/proofs/wevia-gemini-ux-apply-$TS" +mkdir -p "$OUT" + +# 1) Screenshot +URL="https://weval-consulting.com/${TARGET#/var/www/html/}" +timeout 45 bash -c "cd /var/www/html/api && node wgux-shot.js \"$URL\" \"$OUT/before.png\"" > /tmp/wguxA-shot.log 2>&1 +[ ! -f "$OUT/before.png" ] && { echo "{\"ok\":false,\"err\":\"playwright_fail\"}"; exit 1; } + +# 2) Gemini: generate a standalone premium UX patch (CSS+HTML snippet injectable) +base64 -w0 < "$OUT/before.png" > "$OUT/before.b64" +python3 > "$OUT/payload.json" << PYEOF +import json +with open('$OUT/before.b64') as f: b64=f.read().strip()[:400000] +prompt = '''Tu es agent UX premium WEVAL Technology Platform. +Analyse cette page web (screenshot). +Genere un PATCH HTML+CSS premium INJECTABLE avant pour ameliorer drastiquement UX de cette page SANS la reecrire. +Le patch doit ajouter: +- CSS avec design tokens premium (--wtp-gradient, --wtp-card-premium, --wtp-kpi, etc.) +- Classes .wtp-hero-premium, .wtp-kpi-card, .wtp-status-badge, .wtp-action-btn +- Sparkline SVG inline CSS +- Status LED animations (live/degraded/offline) +- Hover states premium avec transform/shadow +- Responsive mobile media query +- ZERO chauvauchement top-right bot-right +- Ne touche aux selecteurs existants QUE pour les ameliorer, pas les casser + +JSON strict sans markdown, sans backticks: +{ + "css_patch": "", + "critique": "resume court", + "score_before": N, + "score_after_estimated": N, + "safe_to_apply": true|false +}''' +print(json.dumps({'contents':[{'parts':[{'text':prompt},{'inline_data':{'mime_type':'image/png','data':b64}}]}],'generationConfig':{'temperature':0.3,'maxOutputTokens':6000}})) +PYEOF + +curl -sk -m 120 -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$KG" \ + -H "Content-Type: application/json" -d @"$OUT/payload.json" > "$OUT/gemini-raw.json" 2>&1 + +# 3) Parse +python3 << PYEOF > "$OUT/parse.log" 2>&1 +import json, re, os +with open('$OUT/gemini-raw.json') as f: resp = json.load(f) +try: + text = resp['candidates'][0]['content']['parts'][0]['text'] + text = re.sub(r'```[a-z]*', '', text).strip() + m = re.search(r'\{.*\}', text, re.DOTALL) + if m: + try: + parsed = json.loads(m.group(0)) + out = {'ok':True,'plan':parsed,'finishReason':resp['candidates'][0].get('finishReason')} + except Exception as e: + out = {'ok':False,'raw':text[:5000],'parse_err':str(e)[:100],'finishReason':resp['candidates'][0].get('finishReason')} + else: + out = {'ok':False,'raw':text[:5000],'finishReason':resp['candidates'][0].get('finishReason')} + with open('$OUT/plan.json','w') as f: json.dump(out,f,ensure_ascii=False,indent=2) + print('OK') +except Exception as e: + print('ERR', str(e)) +PYEOF + +# 4) If MODE=apply AND plan.ok==true AND safe_to_apply==true -> apply +PATCH_APPLIED="false" +if [ "$MODE" = "apply" ]; then + CSS_PATCH=$(python3 -c " +import json +try: + with open('$OUT/plan.json') as f: d=json.load(f) + if d.get('ok') and d.get('plan',{}).get('safe_to_apply') and d.get('plan',{}).get('css_patch'): + print(d['plan']['css_patch']) + else: + print('') +except: print('') +" 2>/dev/null) + + if [ -n "$CSS_PATCH" ]; then + # Backup GOLD + BACKUP="/var/www/html/vault-gold/opus/${PAGE}.html.doctrine200-gemini-apply-$TS.bak" + mkdir -p /var/www/html/vault-gold/opus + sudo cp "$TARGET" "$BACKUP" + + # Insert before — unlock/patch/relock + sudo chattr -i "$TARGET" 2>/dev/null + # Use Python for safe replace + python3 << PYAPPLY +import sys +target = '$TARGET' +patch_file = '$OUT/plan.json' +import json +with open(patch_file) as f: d = json.load(f) +css = d['plan']['css_patch'] +marker_start = "" +marker_end = "" +full_patch = f"\n{marker_start}\n{css}\n{marker_end}\n" +with open(target) as f: html = f.read() +if 'DOCTRINE-200-GEMINI-UX-APPLY' in html: + print("ALREADY") +elif '' in html: + html = html.replace('', full_patch + '', 1) + with open(target, 'w') as f: f.write(html) + print("APPLIED") +else: + print("NO_HEAD") +PYAPPLY + sudo chattr +i "$TARGET" 2>/dev/null + PATCH_APPLIED="true" + echo "$BACKUP" > "$OUT/backup-path.txt" + fi +fi + +rm -f "$OUT/before.b64" "$OUT/payload.json" + +PROOF_URL="https://weval-consulting.com/proofs/wevia-gemini-ux-apply-$TS" +echo "{\"ok\":true,\"page\":\"$PAGE\",\"mode\":\"$MODE\",\"applied\":\"$PATCH_APPLIED\",\"proofs\":\"$PROOF_URL\",\"plan\":\"$PROOF_URL/plan.json\",\"shot\":\"$PROOF_URL/before.png\"}" diff --git a/proofs/wevia-gemini-ux-apply-20260424-170834/before.png b/proofs/wevia-gemini-ux-apply-20260424-170834/before.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe52a1decba780597a21b5e060b20c4d4fc1949 GIT binary patch literal 58079 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 II;Vst0JapB;s5{u literal 0 HcmV?d00001 diff --git a/proofs/wevia-gemini-ux-apply-20260424-170834/gemini-raw.json b/proofs/wevia-gemini-ux-apply-20260424-170834/gemini-raw.json new file mode 100644 index 000000000..399bda8d0 --- /dev/null +++ b/proofs/wevia-gemini-ux-apply-20260424-170834/gemini-raw.json @@ -0,0 +1,34 @@ +{ + "candidates": [ + { + "content": { + "parts": [ + { + "text": "{\n \"css_patch\": \"\u003cstyle id=\\\"wtp-doctrine200-premium-inject\\\"\u003e\\n:root {\\n --wtp-color-primary: #FF5C6E; /* Red from 'Voir les tarifs' and 'vérifiés' */\\n --wtp-color-secondary: #00C896; /* Green from 'Créer mon compte gratuit' and 'Self-service' */\\n --wtp-color-background: #1A1A2E; /* Dark background */\\n --wtp-color-text-light: #E0E0E0; /* Light grey text */\\n --wtp-color-text-muted: #A0A0B0; /* Muted text for descriptions */\\n --wtp-color-border: #444455;\\n --wtp-color-card-bg: #222233;\\n\\n --wtp-gradient-hero: linear-gradient(135deg, #1A1A" + } + ], + "role": "model" + }, + "finishReason": "MAX_TOKENS", + "index": 0 + } + ], + "usageMetadata": { + "promptTokenCount": 532, + "candidatesTokenCount": 237, + "totalTokenCount": 6528, + "promptTokensDetails": [ + { + "modality": "TEXT", + "tokenCount": 274 + }, + { + "modality": "IMAGE", + "tokenCount": 258 + } + ], + "thoughtsTokenCount": 5759 + }, + "modelVersion": "gemini-2.5-flash", + "responseId": "d4fracmfNc2hvdIP97j3-AM" +}