auto-sync-1705

This commit is contained in:
opus
2026-04-22 17:05:02 +02:00
parent 23db1b508d
commit a4a595e66b
12 changed files with 130 additions and 17 deletions

View File

@@ -1,4 +1,5 @@
<?php
// V179 wevia-brand · user-visible strings use WEVIA Vision only
/**
* ambre-early-doc-gen.php · v4 · 5 capabilities réelles
* 1. File gen pdf/docx/pptx via pandoc
@@ -114,7 +115,7 @@ if (preg_match("/g[e\xc3\xa9\xc3\xa8\xc3\xaa]n[e\xc3\xa9\xc3\xa8\xc3\xaa]re?\s+(
header("Content-Type: application/json; charset=utf-8");
echo json_encode([
"response" => "\xf0\x9f\x8e\xa8 **$__topic**\n\n\xf0\x9f\x94\x97 T\xc3\xa9l\xc3\xa9charger: $__url\n\xf0\x9f\x93\xa6 Taille: {$__size_kb}KB \xc2\xb7 \xe2\x9a\x99\xef\xb8\x8f {$__elapsed}ms \xc2\xb7 engine: $__provider ($__quality)",
"response" => "\xf0\x9f\x8e\xa8 **$__topic**\n\n\xf0\x9f\x94\x97 T\xc3\xa9l\xc3\xa9charger: $__url\n\xf0\x9f\x93\xa6 Taille: {$__size_kb}KB \xc2\xb7 \xe2\x9a\x99\xef\xb8\x8f {$__elapsed}ms \xc2\xb7 engine: $__provider",
"executed" => true,
"provider" => "ambre-doc-gen-v5",
"intent" => "image_real_cascade",
@@ -129,7 +130,7 @@ if (preg_match("/g[e\xc3\xa9\xc3\xa8\xc3\xaa]n[e\xc3\xa9\xc3\xa8\xc3\xaa]re?\s+(
// Return an informative error to widget rather than fake SVG
header("Content-Type: application/json; charset=utf-8");
echo json_encode([
"response" => "\xe2\x9a\xa0\xef\xb8\x8f G\xc3\xa9n\xc3\xa9ration d\"image temporairement indisponible pour: $__topic. Tous les providers (Gemini 3 Pro, Qwen-Image, Pollinations) ont \xc3\xa9chou\xc3\xa9. R\xc3\xa9essayez dans quelques instants.",
"response" => "\xe2\x9a\xa0\xef\xb8\x8f G\xc3\xa9n\xc3\xa9ration d\"image temporairement indisponible pour: $__topic. WEVIA Vision temporairement indisponible. Les providers internes ont \xc3\xa9chou\xc3\xa9. R\xc3\xa9essayez dans quelques instants.",
"executed" => true,
"provider" => "ambre-doc-gen-v5",
"intent" => "image_cascade_failed",

View File

@@ -0,0 +1,55 @@
const { chromium } = require('playwright');
const fs = require('fs');
(async () => {
const browser = await chromium.launch({ headless: true, args: ['--no-sandbox'] });
const ctx = await browser.newContext({
ignoreHTTPSErrors: true,
viewport: {width: 1440, height: 900},
recordVideo: { dir: '/tmp/v179-video/', size: {width: 1440, height: 900} }
});
const page = await ctx.newPage();
await page.goto('https://weval-consulting.com/wevia.html?cb=' + Date.now(), { waitUntil: 'networkidle' });
await page.waitForTimeout(2500);
const input = await page.locator('#msgInput').first();
await input.click({force: true});
await input.fill('Genere une image decrivant: logo WEVIA premium');
await input.press('Enter');
console.log('SENT');
for (let i=0; i<20; i++) {
await page.waitForTimeout(2500);
const state = await page.evaluate(() => {
const bodyText = document.body.innerText;
return {
phases: document.querySelectorAll('.ambre-phase').length,
hasLink: !!document.querySelector('a[href*="/generated/"]'),
hasImg: !!document.querySelector('img[src*="/generated/"]'),
mentionsGemini: /Gemini/i.test(bodyText),
mentionsQwen: /Qwen/i.test(bodyText),
mentionsPollinations: /Pollinations/i.test(bodyText),
mentionsWEVIAVision: /WEVIA Vision/i.test(bodyText),
busy: !!document.getElementById('sendBtn')?.disabled,
};
});
console.log(`t+${(i+1)*2.5}s:`, JSON.stringify(state));
if (!state.busy && state.phases >= 4 && state.hasLink) break;
}
await page.evaluate(() => {
const link = document.querySelector('a[href*="/generated/"]');
if (link) link.scrollIntoView({block: 'center'});
});
await page.waitForTimeout(2000);
await page.screenshot({ path: '/tmp/v179-final.png', fullPage: true });
await ctx.close();
await browser.close();
const videos = fs.readdirSync('/tmp/v179-video/');
if (videos.length > 0) {
fs.renameSync('/tmp/v179-video/' + videos[0], '/tmp/v179-wevia-brand.webm');
console.log('Video saved:', (fs.statSync('/tmp/v179-wevia-brand.webm').size/1024/1024).toFixed(1), 'MB');
}
})();

View File

@@ -1,4 +1,5 @@
<?php
// V179 wevia-brand · all providers masked as WEVIA Vision · internal_engine kept for debug
/**
* V176 · ambre-tool-image.php · Upgraded with quality cascade
* Yacine: "IMAGE POURRI MET A LOUVER QWEN IMAGE POUR AMELOIRER"
@@ -70,7 +71,7 @@ if ($GEMINI_KEY) {
if (isset($p["inlineData"]["data"])) {
$mime = $p["inlineData"]["mimeType"] ?? "image/jpeg";
$ext = strpos($mime, "png") !== false ? "png" : "jpg";
$filename = "wevia-img-gemini-{$slug}-{$ts}-{$rand}.{$ext}";
$filename = "wevia-img-vision-{$slug}-{$ts}-{$rand}.{$ext}";
$path = "$dir/$filename";
$img = base64_decode($p["inlineData"]["data"]);
if ($img && strlen($img) > 5000) {
@@ -81,9 +82,10 @@ if ($GEMINI_KEY) {
"url" => "https://weval-consulting.com/generated/$filename",
"size_kb" => round(strlen($img)/1024, 1),
"elapsed_ms" => round((microtime(true)-$t0)*1000),
"provider" => "Gemini 3 Pro Image Preview",
"provider" => "WEVIA Vision (premium)",
"quality" => "premium",
"engine" => "gemini-3-pro",
"engine" => "wevia-vision-v1",
"internal_engine" => "gemini-3-pro",
];
}
break;
@@ -125,7 +127,7 @@ if (!$result && $ALIBABA_KEY) {
if ($img_url) {
$img = @file_get_contents($img_url);
if ($img && strlen($img) > 5000) {
$filename = "wevia-img-qwen-{$slug}-{$ts}-{$rand}.png";
$filename = "wevia-img-vision-{$slug}-{$ts}-{$rand}.png";
$path = "$dir/$filename";
file_put_contents($path, $img);
$result = [
@@ -134,9 +136,10 @@ if (!$result && $ALIBABA_KEY) {
"url" => "https://weval-consulting.com/generated/$filename",
"size_kb" => round(strlen($img)/1024, 1),
"elapsed_ms" => round((microtime(true)-$t0)*1000),
"provider" => "Qwen-Image (Alibaba DashScope)",
"provider" => "WEVIA Vision (premium)",
"quality" => "premium",
"engine" => "qwen-image",
"engine" => "wevia-vision-v1",
"internal_engine" => "qwen-image",
];
}
}
@@ -156,7 +159,7 @@ if (!$result) {
$ctx2 = stream_context_create(["http"=>["timeout"=>30,"header"=>"User-Agent: WEVIA/2.0\r\n"]]);
$img = @file_get_contents($flux_url, false, $ctx2);
if ($img && strlen($img) > 5000) {
$filename = "wevia-img-flux-{$slug}-{$ts}-{$rand}.jpg";
$filename = "wevia-img-vision-{$slug}-{$ts}-{$rand}.jpg";
$path = "$dir/$filename";
file_put_contents($path, $img);
$result = [
@@ -165,9 +168,10 @@ if (!$result) {
"url" => "https://weval-consulting.com/generated/$filename",
"size_kb" => round(strlen($img)/1024, 1),
"elapsed_ms" => round((microtime(true)-$t0)*1000),
"provider" => "Pollinations flux (fallback)",
"provider" => "WEVIA Vision (standard)",
"quality" => "standard",
"engine" => "pollinations-flux",
"engine" => "wevia-vision-v1",
"internal_engine" => "pollinations-flux",
];
}
}
@@ -180,7 +184,7 @@ if (!$result) {
$ctx3 = stream_context_create(["http"=>["timeout"=>30,"header"=>"User-Agent: WEVIA/2.0\r\n"]]);
$img = @file_get_contents($sana_url, false, $ctx3);
if ($img && strlen($img) > 5000) {
$filename = "wevia-img-sana-{$slug}-{$ts}-{$rand}.jpg";
$filename = "wevia-img-vision-{$slug}-{$ts}-{$rand}.jpg";
$path = "$dir/$filename";
file_put_contents($path, $img);
$result = [
@@ -189,9 +193,10 @@ if (!$result) {
"url" => "https://weval-consulting.com/generated/$filename",
"size_kb" => round(strlen($img)/1024, 1),
"elapsed_ms" => round((microtime(true)-$t0)*1000),
"provider" => "WEVIA Image Engine (sana)",
"provider" => "WEVIA Vision (basic)",
"quality" => "basic",
"engine" => "pollinations-sana",
"engine" => "wevia-vision-v1",
"internal_engine" => "pollinations-sana",
];
}
}

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-22T16:30:17",
"timestamp": "2026-04-22T17:00:13",
"features": {
"total": 36,
"pass": 35
@@ -13,7 +13,7 @@
"score": 97.2,
"log": [
"=== UX AGENT v1.0 ===",
"Time: 2026-04-22 16:30:02",
"Time: 2026-04-22 17:00:01",
" core: 4/4",
" layout: 3/4",
" interaction: 6/6",

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-22T14:59:52+00:00",
"ts": "2026-04-22T15:04:44+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

52
proof-wave268.html Normal file
View File

@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>PROOF intents_pool</title>
<style>body{font-family:monospace;background:#0b0d15;color:#10b981;padding:30px;font-size:14px}
.box{background:#1e293b;padding:20px;border:2px solid #10b981;border-radius:10px;margin:10px 0}
.key{color:#06b6d4;font-weight:700}
.val{color:#fff}
h1{color:#f59e0b}
button{background:#10b981;color:#000;border:0;padding:12px 24px;font-size:16px;font-weight:700;border-radius:8px;cursor:pointer}
</style></head>
<body>
<h1>🏆 WAVE-268 PROOF TEST LIVE</h1>
<p>Clique sur le bouton pour tester les 5 commandes directement dans cette page (pas de cache, pas d intermediaire).</p>
<button onclick="runTests()">▶️ LANCER LES 5 TESTS LIVE</button>
<div id="results"></div>
<script>
async function runTests() {
const cmds = ["intents_pool", "quelle heure", "multiagent parallele: nonreg + l99 + git", "orchestrate en parallele: ping + nonreg", "cable un intent pour donner date quand on dit date_now. Commande: date"];
const res = document.getElementById("results");
res.innerHTML = "<div class=box>🔄 Running 5 tests via /api/wevia-autonomous.php...</div>";
for (const cmd of cmds) {
const t0 = Date.now();
try {
const r = await fetch("/api/wevia-autonomous.php", {
method: "POST",
headers: {"Content-Type":"application/json"},
body: JSON.stringify({message: cmd, session: "proof-" + Date.now()})
});
const txt = await r.text();
let answer = "";
let engine = "";
for (const line of txt.split("
")) {
if (line.startsWith("data: ")) {
try {
const j = JSON.parse(line.substring(6));
if (j.type === "answer" && j.text) { answer = j.text; engine = j.engine || ""; break; }
} catch(e){}
}
}
const elapsed = Date.now() - t0;
const isFake = answer.toLowerCase().includes("intent shell reel") || answer.includes("Soutien technique");
const status = isFake ? "❌ FAKE/FAIL" : "✅ REAL";
res.innerHTML += `<div class="box"><span class="key">CMD:</span> <span class="val">${cmd}</span><br><span class="key">Status:</span> ${status}<br><span class="key">Engine:</span> ${engine}<br><span class="key">Time:</span> ${elapsed}ms<br><span class="key">Response:</span><br><pre style="color:#fff;white-space:pre-wrap">${answer.substring(0,600).replace(/</g,"&lt;")}</pre></div>`;
} catch(e) {
res.innerHTML += `<div class=box style="border-color:#ef4444">❌ ERR: ${e.message}</div>`;
}
}
res.innerHTML += "<div class=box>✅ Tests terminés · " + new Date().toLocaleString("fr-FR") + "</div>";
}
</script>
</body></html>

BIN
proofs/v179/v179-final.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.