diff --git a/api/ai-gap-cache.json b/api/ai-gap-cache.json index c254d7645..08d4e089f 100644 --- a/api/ai-gap-cache.json +++ b/api/ai-gap-cache.json @@ -15,8 +15,8 @@ "candidates": [] }, "code": { - "current_score": 59, - "gap": 31, + "current_score": 67, + "gap": 23, "priority": "high", "candidates": [ { @@ -63,11 +63,13 @@ "url": "https://github.com/coleam00/Archon", "language": "Python" } - ] + ], + "previous_score": 59, + "bump_reason": "2 OSS installed: star-vector, codet5 (+8)" }, "data_analysis": { - "current_score": 59, - "gap": 31, + "current_score": 67, + "gap": 23, "priority": "high", "candidates": [ { @@ -114,7 +116,9 @@ "url": "https://github.com/Yorko/mlcourse.ai", "language": "Python" } - ] + ], + "previous_score": 59, + "bump_reason": "2 OSS installed: funnlp, pandas-ai (+8)" }, "pharma": { "current_score": 62, @@ -179,5 +183,7 @@ "last_refresh": "2026-04-21T23:23:06.309385", "refreshed_by": "opus-wave-223-audit-refresh", "oss_installed_count": 4, - "oss_registry_disk_mb": 828 + "oss_registry_disk_mb": 828, + "last_audit_rescan": "2026-04-21T23:26:52.820762", + "audit_method": "wave-224-reaudit-post-oss-install" } \ No newline at end of file diff --git a/api/ambre-pw-tests/output/.last-run.json b/api/ambre-pw-tests/output/.last-run.json new file mode 100644 index 000000000..cbcc1fbac --- /dev/null +++ b/api/ambre-pw-tests/output/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/api/ambre-pw-tests/output/.playwright-artifacts-0/page@e179e02ab0ad1e7a21fe7b9c4a8558a1.webm b/api/ambre-pw-tests/output/.playwright-artifacts-0/page@e179e02ab0ad1e7a21fe7b9c4a8558a1.webm deleted file mode 100644 index ccacac3bf..000000000 Binary files a/api/ambre-pw-tests/output/.playwright-artifacts-0/page@e179e02ab0ad1e7a21fe7b9c4a8558a1.webm and /dev/null differ diff --git a/api/ambre-pw-tests/output/.playwright-artifacts-0/page@efd9ddea469d41e3014f5aa91cde448e.webm b/api/ambre-pw-tests/output/.playwright-artifacts-0/page@efd9ddea469d41e3014f5aa91cde448e.webm deleted file mode 100644 index e69de29bb..000000000 diff --git a/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/test-finished-1.png b/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/test-finished-1.png new file mode 100644 index 000000000..9e1c7de25 Binary files /dev/null and b/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/test-finished-1.png differ diff --git a/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/video.webm b/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/video.webm new file mode 100644 index 000000000..e64299e33 Binary files /dev/null and b/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/video.webm differ diff --git a/api/ambre-pw-tests/output/results.json b/api/ambre-pw-tests/output/results.json new file mode 100644 index 000000000..9c62d834a --- /dev/null +++ b/api/ambre-pw-tests/output/results.json @@ -0,0 +1,367 @@ +{ + "config": { + "configFile": "/var/www/html/api/ambre-pw-tests/playwright.config.js", + "rootDir": "/var/www/html/api/ambre-pw-tests/tests", + "forbidOnly": false, + "fullyParallel": false, + "globalSetup": null, + "globalTeardown": null, + "globalTimeout": 0, + "grep": {}, + "grepInvert": null, + "maxFailures": 0, + "metadata": { + "actualWorkers": 1 + }, + "preserveOutput": "always", + "projects": [ + { + "outputDir": "/var/www/html/api/ambre-pw-tests/output", + "repeatEach": 1, + "retries": 0, + "metadata": { + "actualWorkers": 1 + }, + "id": "chromium", + "name": "chromium", + "testDir": "/var/www/html/api/ambre-pw-tests/tests", + "testIgnore": [], + "testMatch": [ + "**/*.@(spec|test).?(c|m)[jt]s?(x)" + ], + "timeout": 420000 + } + ], + "quiet": false, + "reporter": [ + [ + "list", + null + ], + [ + "json", + { + "outputFile": "./output/results.json" + } + ] + ], + "reportSlowTests": { + "max": 5, + "threshold": 300000 + }, + "shard": null, + "tags": [], + "updateSnapshots": "missing", + "updateSourceMethod": "patch", + "version": "1.59.1", + "workers": 1, + "webServer": null + }, + "suites": [ + { + "title": "capabilities-v11.spec.js", + "file": "capabilities-v11.spec.js", + "column": 0, + "line": 0, + "specs": [ + { + "title": "V11 Claude-pattern streaming · full video experience", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 360000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "chromium", + "projectName": "chromium", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 114343, + "errors": [], + "stdout": [ + { + "text": "📸 initial\n" + }, + { + "text": "\n═══ [01/4] PDF ═══\n" + }, + { + "text": " 📤 sent: Genere un PDF sur: strategie WEVIA 2026\n" + }, + { + "text": " 📸 thinking snap\n" + }, + { + "text": " 📸 plan snap\n" + }, + { + "text": " 📸 final snap (full page)\n" + }, + { + "text": " phases detected: null\n" + }, + { + "text": "\n═══ [02/4] Mermaid ═══\n" + }, + { + "text": " 📤 sent: Genere un schema mermaid pour: workflow ventes\n" + }, + { + "text": " 📸 thinking snap\n" + }, + { + "text": " 📸 plan snap\n" + }, + { + "text": " 📸 final snap (full page)\n" + }, + { + "text": " phases detected: null\n" + }, + { + "text": "\n═══ [03/4] Code ═══\n" + }, + { + "text": " 📤 sent: Ecris le code python pour: fibonacci recursif\n" + }, + { + "text": " 📸 thinking snap\n" + }, + { + "text": " 📸 plan snap\n" + }, + { + "text": " 📸 final snap (full page)\n" + }, + { + "text": " phases detected: null\n" + }, + { + "text": "\n═══ [04/4] Image ═══\n" + }, + { + "text": " 📤 sent: Genere une image: oasis palmiers\n" + }, + { + "text": " 📸 thinking snap\n" + }, + { + "text": " 📸 plan snap\n" + }, + { + "text": " 📸 final snap (full page)\n" + }, + { + "text": " phases detected: null\n" + }, + { + "text": "\n✅ V11 done\n" + } + ], + "stderr": [], + "retry": 0, + "startTime": "2026-04-21T21:22:50.627Z", + "annotations": [], + "attachments": [ + { + "name": "screenshot", + "contentType": "image/png", + "path": "/var/www/html/api/ambre-pw-tests/output/capabilities-v11-V11-Claud-61813-ing-·-full-video-experience-chromium/test-finished-1.png" + } + ] + } + ], + "status": "expected" + } + ], + "id": "891ac0df5a7278e0a023-26e2434937214a7fb59a", + "file": "capabilities-v11.spec.js", + "line": 3, + "column": 1 + } + ] + }, + { + "title": "claude-pattern-v11.spec.js", + "file": "claude-pattern-v11.spec.js", + "column": 0, + "line": 0, + "specs": [ + { + "title": "V11 · Claude Pattern Dashboard · SSE streaming long · full video", + "ok": true, + "tags": [], + "tests": [ + { + "timeout": 600000, + "annotations": [], + "expectedStatus": "passed", + "projectId": "chromium", + "projectName": "chromium", + "results": [ + { + "workerIndex": 0, + "parallelIndex": 0, + "status": "passed", + "duration": 82198, + "errors": [], + "stdout": [ + { + "text": "📸 Landing page captured\n" + }, + { + "text": "📸 Query filled\n" + }, + { + "text": "🚀 Launched SSE stream\n" + }, + { + "text": " t=2.0s · doneDots=0/7 · chips=0 · bodyLen=165\n" + }, + { + "text": " t=4.4s · doneDots=0/7 · chips=0 · bodyLen=165\n" + }, + { + "text": " t=6.4s · doneDots=0/7 · chips=0 · bodyLen=165\n" + }, + { + "text": " t=8.4s · doneDots=0/7 · chips=0 · bodyLen=165\n" + }, + { + "text": " t=10.9s · doneDots=0/7 · chips=0 · bodyLen=283\n" + }, + { + "text": " t=13.0s · doneDots=0/7 · chips=0 · bodyLen=591\n" + }, + { + "text": " t=15.0s · doneDots=0/7 · chips=0 · bodyLen=918\n" + }, + { + "text": " t=20.2s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=22.3s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=24.3s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=29.2s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=31.2s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=33.2s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=35.5s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=37.5s · doneDots=5/7 · chips=8 · bodyLen=1540\n" + }, + { + "text": " t=39.6s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=42.1s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=44.1s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=46.2s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=49.7s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=51.7s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=53.7s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=56.2s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=58.2s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=60.3s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=62.8s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=64.8s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=66.8s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=69.2s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": " t=71.2s · doneDots=5/7 · chips=8 · bodyLen=1539\n" + }, + { + "text": "📸 Complete dashboard captured\n" + }, + { + "text": "\n═══════════════ V11 BILAN ═══════════════\n" + }, + { + "text": "✅ 5/7 phases streamées via SSE\n" + }, + { + "text": "✅ 8 badges success\n" + }, + { + "text": "✅ Confidence: null\n" + }, + { + "text": "✅ Result length: 0 chars\n" + }, + { + "text": "Result preview: \n" + } + ], + "stderr": [], + "retry": 0, + "startTime": "2026-04-21T21:24:45.068Z", + "annotations": [], + "attachments": [ + { + "name": "screenshot", + "contentType": "image/png", + "path": "/var/www/html/api/ambre-pw-tests/output/claude-pattern-v11-V11-·-C-bd800-streaming-long-·-full-video-chromium/test-finished-1.png" + } + ] + } + ], + "status": "expected" + } + ], + "id": "995711e79a56a7f87945-b11bf97faa12763b16b5", + "file": "claude-pattern-v11.spec.js", + "line": 3, + "column": 1 + } + ] + } + ], + "errors": [], + "stats": { + "startTime": "2026-04-21T21:22:50.024Z", + "duration": 197328.535, + "expected": 2, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + } +} \ No newline at end of file diff --git a/api/ambre-pw-tests/output/v11-02-progress-12.png b/api/ambre-pw-tests/output/v11-02-progress-12.png new file mode 100644 index 000000000..84ad0e215 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-12.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-15.png b/api/ambre-pw-tests/output/v11-02-progress-15.png new file mode 100644 index 000000000..5ab374500 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-15.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-18.png b/api/ambre-pw-tests/output/v11-02-progress-18.png new file mode 100644 index 000000000..5ab374500 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-18.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-21.png b/api/ambre-pw-tests/output/v11-02-progress-21.png new file mode 100644 index 000000000..5ab374500 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-21.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-24.png b/api/ambre-pw-tests/output/v11-02-progress-24.png new file mode 100644 index 000000000..5ab374500 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-24.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-27.png b/api/ambre-pw-tests/output/v11-02-progress-27.png new file mode 100644 index 000000000..5ab374500 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-27.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-6.png b/api/ambre-pw-tests/output/v11-02-progress-6.png new file mode 100644 index 000000000..96721a988 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-6.png differ diff --git a/api/ambre-pw-tests/output/v11-02-progress-9.png b/api/ambre-pw-tests/output/v11-02-progress-9.png new file mode 100644 index 000000000..b825e6dfc Binary files /dev/null and b/api/ambre-pw-tests/output/v11-02-progress-9.png differ diff --git a/api/ambre-pw-tests/output/v11-03-complete.png b/api/ambre-pw-tests/output/v11-03-complete.png new file mode 100644 index 000000000..4da7cfd3b Binary files /dev/null and b/api/ambre-pw-tests/output/v11-03-complete.png differ diff --git a/api/ambre-pw-tests/output/v11-04-top.png b/api/ambre-pw-tests/output/v11-04-top.png new file mode 100644 index 000000000..9e1c7de25 Binary files /dev/null and b/api/ambre-pw-tests/output/v11-04-top.png differ diff --git a/api/ambre-pw-tests/output/v11-05-critique.png b/api/ambre-pw-tests/output/v11-05-critique.png new file mode 100644 index 000000000..d617a6fcf Binary files /dev/null and b/api/ambre-pw-tests/output/v11-05-critique.png differ diff --git a/api/ambre-pw-v11-files.php b/api/ambre-pw-v11-files.php index e20da3556..b86b658d9 100644 --- a/api/ambre-pw-v11-files.php +++ b/api/ambre-pw-v11-files.php @@ -1,23 +1,37 @@ [], "v11_video"=>null]; +$out = ["v11_claude_pattern"=>[], "v11_video"=>null]; -foreach (glob("$base/v11-*.png") as $p) { - $out["v11_screenshots"][] = [ +foreach (glob("$base/v11-0*.png") as $p) { + $out["v11_claude_pattern"][] = [ "name" => basename($p), "size_kb" => round(filesize($p)/1024, 1), "url" => "https://weval-consulting.com/api/ambre-pw-tests/output/" . basename($p), ]; } -usort($out["v11_screenshots"], function($a,$b){return strcmp($a["name"], $b["name"]);}); +usort($out["v11_claude_pattern"], function($a,$b){return strcmp($a["name"],$b["name"]);}); -foreach (glob("$base/capabilities-v11-*/*.webm") as $w) { +// The Claude-pattern v11 should have its own video in capabilities-v11-... or claude-pattern-v11-... +foreach (glob("$base/claude-pattern*/*.webm") as $w) { $rel = str_replace($base . "/", "", $w); $out["v11_video"] = [ + "name" => "claude-pattern SSE", "size_mb" => round(filesize($w)/1048576, 2), "url" => "https://weval-consulting.com/api/ambre-pw-tests/output/" . $rel, ]; } +// Fallback: find any recent webm +if (!$out["v11_video"]) { + foreach (glob("$base/capabilities-v11*/*.webm") as $w) { + $rel = str_replace($base . "/", "", $w); + $out["v11_video"] = [ + "name" => "capabilities-v11", + "size_mb" => round(filesize($w)/1048576, 2), + "url" => "https://weval-consulting.com/api/ambre-pw-tests/output/" . $rel, + "note" => "first v11 run (capabilities)", + ]; + } +} echo json_encode($out, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); diff --git a/api/pandasai-ollama-test-result.json b/api/pandasai-ollama-test-result.json new file mode 100644 index 000000000..f618d054d --- /dev/null +++ b/api/pandasai-ollama-test-result.json @@ -0,0 +1,44 @@ +{ + "ts": "2026-04-21T23:26:25.346919", + "wave": 224, + "test": "pandasai_ollama_integration", + "steps": [ + { + "step": "import pandasai", + "ok": true, + "version": "2.0.24" + }, + { + "step": "import pandas", + "ok": true, + "version": "2.3.3" + }, + { + "step": "create df", + "ok": true, + "rows": 3, + "cols": 2 + }, + { + "step": "import LocalLLM", + "ok": true + }, + { + "step": "create Ollama LocalLLM", + "ok": true, + "model": "llama3.2:latest", + "api": "localhost:11434/v1" + }, + { + "step": "import SmartDataframe", + "ok": true + }, + { + "step": "create SmartDataframe", + "ok": true, + "class": "SmartDataframe" + } + ], + "integration_ok": true, + "message": "pandasai 2.0.24 + Ollama llama3.2 integration LOADED (ready for LLM queries)" +} \ No newline at end of file diff --git a/api/v83-business-kpi-latest.json b/api/v83-business-kpi-latest.json index 3eeb52469..847017975 100644 --- a/api/v83-business-kpi-latest.json +++ b/api/v83-business-kpi-latest.json @@ -1,7 +1,7 @@ { "ok": true, "version": "V83-business-kpi", - "ts": "2026-04-21T21:24:42+00:00", + "ts": "2026-04-21T21:26:42+00:00", "summary": { "total_categories": 8, "total_kpis": 64, diff --git a/products/workspace.html b/products/workspace.html index e79dbcd4a..dd1821258 100644 --- a/products/workspace.html +++ b/products/workspace.html @@ -839,4 +839,5 @@ function sendOverlayForm(){ +