This commit is contained in:
@@ -1 +1,7 @@
|
||||
<?php ignore_user_abort(true);set_time_limit(0);exec("sudo pkill -9 -f paperclipai");sleep(3);exec("sudo nohup bash -c \"cd /opt/paperclip-weval && PATH=/usr/local/bin:/usr/bin:/bin ANTHROPIC_BASE_URL=https://weval-consulting.com/api/wevia-openai.php ANTHROPIC_API_KEY=wevia-sovereign DATABASE_URL=postgres://paperclip:PaperclipWeval2026@127.0.0.1:5432/paperclip PORT=3100 npx paperclipai run >> /var/log/paperclip.log 2>&1\" &");sleep(18);echo trim(shell_exec("curl -s -o /dev/null -w %{http_code} http://127.0.0.1:3100/ 2>/dev/null"));
|
||||
<?php
|
||||
// Paperclip launcher — fire-and-forget (no wait)
|
||||
header("Content-Type: application/json");
|
||||
ignore_user_abort(true); set_time_limit(30);
|
||||
@exec("sudo pkill -9 -f paperclipai 2>/dev/null");
|
||||
@exec('sudo nohup bash -c "cd /opt/paperclip-weval && PATH=/usr/local/bin:/usr/bin:/bin ANTHROPIC_BASE_URL=https://weval-consulting.com/api/wevia-openai.php ANTHROPIC_API_KEY=wevia-sovereign DATABASE_URL=postgres://paperclip:PaperclipWeval2026@127.0.0.1:5432/paperclip PORT=3100 npx paperclipai run >> /var/log/paperclip.log 2>&1 &" >/dev/null 2>&1');
|
||||
echo json_encode(["ok"=>true,"action"=>"paperclip_launched_async","check_url"=>"http://127.0.0.1:3100/","note"=>"use /api/paperclip-status.php to check ready state after 20s"]);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"ts": "2026-04-16T23:00:02+00:00",
|
||||
"ts": "2026-04-16T23:04:56+00:00",
|
||||
"hostname": "blade",
|
||||
"cpu": "?",
|
||||
"ram": "?",
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
header("Content-Type:text/plain");
|
||||
$t = $_GET["t"] ?? "ETHICA_API_2026_SECURE";
|
||||
if ($t !== "ETHICA_API_2026_SECURE") { die("NO"); }
|
||||
// Ethica MA scraper launcher — async via nohup (no wait)
|
||||
header("Content-Type:application/json");
|
||||
$t = $_GET["t"] ?? "";
|
||||
if ($t !== "ETHICA_API_2026_SECURE") { http_response_code(403); die(json_encode(["error"=>"NO"])); }
|
||||
$b = (int)($_GET["batch"] ?? 50);
|
||||
echo shell_exec("python3 /opt/weval-l99/ethica-enrich-ma.py $b 2>&1");
|
||||
$logfile = "/var/log/weval/ethica-ma-boost-" . date("Ymd-His") . ".log";
|
||||
@exec("nohup python3 /opt/weval-l99/ethica-enrich-ma.py $b > $logfile 2>&1 &");
|
||||
echo json_encode(["ok"=>true,"action"=>"scraper_launched_async","batch"=>$b,"log"=>$logfile]);
|
||||
|
||||
117
api/fixall.php
117
api/fixall.php
@@ -1,117 +0,0 @@
|
||||
<?php
|
||||
ignore_user_abort(true);
|
||||
set_time_limit(300);
|
||||
header('Content-Type: application/json');
|
||||
$r = [];
|
||||
|
||||
// ═══ FIX 1: L99 CRON LINE 433 ═══
|
||||
$l99 = file_get_contents("/opt/weval-l99/l99-master.py");
|
||||
// Fix the broken line: "crontab -l 2>/dev/null; sudo crontab -l 2>/dev/null | grep..."
|
||||
// Replace with: "sudo crontab -l 2>/dev/null | grep -v '^#' | grep -v '^$' | wc -l"
|
||||
$l99 = str_replace(
|
||||
'crontab -l 2>/dev/null; sudo crontab -l 2>/dev/null',
|
||||
'sudo crontab -l 2>/dev/null',
|
||||
$l99
|
||||
);
|
||||
file_put_contents("/opt/weval-l99/l99-master.py", $l99);
|
||||
$r['l99_cron'] = 'fixed line 433';
|
||||
|
||||
// ═══ FIX 2: ARSENAL PROXY — serve from S204 instead of S95 ═══
|
||||
// warmup-manager exists as PHP at /var/www/weval/arsenal/warmup-manager.php
|
||||
// Create an HTML redirect/proxy
|
||||
$warmup_html = file_get_contents("/var/www/weval/arsenal/warmup-manager.php");
|
||||
if ($warmup_html) {
|
||||
file_put_contents("/var/www/html/warmup-manager.html", $warmup_html);
|
||||
$r['arsenal'] = 'warmup-manager.html created from PHP source';
|
||||
} else {
|
||||
// Create simple placeholder
|
||||
$html = '<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8"><title>Warmup Manager</title></head><body style="background:#0a0e1a;color:#e2e8f0;font-family:monospace;padding:40px"><h1>🔥 Warmup Manager</h1><p>Service intégré dans WEVADS Arsenal.</p><p><a href="/wevads-ia/" style="color:#6d28d9">→ Accéder à WEVADS IA</a></p></body></html>';
|
||||
file_put_contents("/var/www/html/warmup-manager.html", $html);
|
||||
$r['arsenal'] = 'placeholder created';
|
||||
}
|
||||
|
||||
// ═══ FIX 3: LOKI — restart with --network host ═══
|
||||
$loki_status = trim(shell_exec("docker ps --filter name=loki --format '{{.Status}}' 2>/dev/null"));
|
||||
if (!$loki_status) {
|
||||
// Try to start Loki with --network host
|
||||
shell_exec("sudo docker rm -f loki 2>/dev/null");
|
||||
shell_exec("sudo docker run -d --name loki --network host --restart unless-stopped -v /opt/loki-data:/loki grafana/loki:latest -config.file=/etc/loki/local-config.yaml 2>&1");
|
||||
sleep(5);
|
||||
$loki_status = trim(shell_exec("docker ps --filter name=loki --format '{{.Status}}' 2>/dev/null"));
|
||||
$r['loki'] = $loki_status ?: 'failed to start';
|
||||
} else {
|
||||
$r['loki'] = "already running: $loki_status";
|
||||
}
|
||||
|
||||
// ═══ FIX 4: PAPERCLIP — restart + add keepalive cron ═══
|
||||
shell_exec("sudo pkill -9 -f paperclipai 2>/dev/null");
|
||||
sleep(2);
|
||||
shell_exec("sudo bash -c 'cd /opt/paperclip-weval && nohup env ANTHROPIC_BASE_URL=https://weval-consulting.com/api/wevia-anthropic.php ANTHROPIC_API_KEY=wevia-sovereign-key DATABASE_URL=postgres://paperclip:PaperclipWeval2026@127.0.0.1:5432/paperclip PORT=3100 npx paperclipai run >> /var/log/paperclip.log 2>&1 &'");
|
||||
sleep(8);
|
||||
$pc_http = (int)trim(shell_exec("curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:3100/ 2>/dev/null"));
|
||||
$r['paperclip'] = "HTTP $pc_http";
|
||||
|
||||
// Add keepalive cron (check every 5 min, restart if down)
|
||||
$keepalive = '*/5 * * * * curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3100/ 2>/dev/null | grep -q 200 || (cd /opt/paperclip-weval && sudo pkill -f paperclipai; sleep 2; nohup env ANTHROPIC_BASE_URL=https://weval-consulting.com/api/wevia-anthropic.php ANTHROPIC_API_KEY=wevia-sovereign-key DATABASE_URL=postgres://paperclip:PaperclipWeval2026@127.0.0.1:5432/paperclip PORT=3100 npx paperclipai run >> /var/log/paperclip.log 2>&1 &)';
|
||||
$existing_cron = shell_exec("crontab -l 2>/dev/null");
|
||||
if (strpos($existing_cron, 'paperclipai') === false) {
|
||||
shell_exec("(crontab -l 2>/dev/null; echo '$keepalive') | crontab -");
|
||||
$r['paperclip_cron'] = 'keepalive added';
|
||||
} else {
|
||||
$r['paperclip_cron'] = 'already exists';
|
||||
}
|
||||
|
||||
// ═══ FIX 5: L99 CSS LEAK — inject hide rule ═══
|
||||
// The CSS "Day/Night Theme Toggle" is injected by React runtime
|
||||
// Add CSS rule in the page to hide any raw CSS text rendered as body content
|
||||
// Since we can't modify the React bundle, inject a fix via weval-faq-fix.js
|
||||
$faq = file_get_contents("/var/www/html/weval-faq-fix.js");
|
||||
if (strpos($faq, 'hideCSSLeak') === false) {
|
||||
$css_fix = '
|
||||
/* Fix CSS leak in L99/Brain pages */
|
||||
(function hideCSSLeak(){
|
||||
var b=document.body;
|
||||
if(!b)return;
|
||||
var nodes=b.childNodes;
|
||||
for(var i=0;i<nodes.length;i++){
|
||||
var n=nodes[i];
|
||||
if(n.nodeType===3 && n.textContent && n.textContent.indexOf("data-theme")>-1){
|
||||
n.textContent="";
|
||||
}
|
||||
}
|
||||
// Also hide any text node containing CSS code
|
||||
setTimeout(function(){
|
||||
var all=document.querySelectorAll("body > *");
|
||||
for(var j=0;j<all.length;j++){
|
||||
var el=all[j];
|
||||
if(el.tagName!=="STYLE" && el.tagName!=="SCRIPT" && el.textContent &&
|
||||
el.textContent.indexOf("weval-theme-btn")>-1 && el.textContent.indexOf("{")>-1) {
|
||||
el.style.display="none";
|
||||
}
|
||||
}
|
||||
},500);
|
||||
})();
|
||||
';
|
||||
file_put_contents("/var/www/html/weval-faq-fix.js", $faq . $css_fix);
|
||||
$r['css_leak'] = 'hide fix injected in faq-fix.js';
|
||||
} else {
|
||||
$r['css_leak'] = 'already fixed';
|
||||
}
|
||||
|
||||
// ═══ FIX 6: OPCACHE RESET ═══
|
||||
opcache_reset();
|
||||
$r['opcache'] = 'reset';
|
||||
|
||||
// ═══ VERIFY ═══
|
||||
sleep(2);
|
||||
$checks = [
|
||||
'paperclip' => (int)trim(shell_exec("curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:3100/ 2>/dev/null")),
|
||||
'wedroid' => (int)trim(shell_exec("curl -s -o /dev/null -w '%{http_code}' 'https://weval-consulting.com/api/wedroid-brain-api.php?k=DROID2026&action=status' 2>/dev/null")),
|
||||
'warmup' => (int)trim(shell_exec("curl -s -o /dev/null -w '%{http_code}' 'https://weval-consulting.com/warmup-manager.html' 2>/dev/null")),
|
||||
'loki' => (int)trim(shell_exec("docker ps --filter name=loki --format '{{.Status}}' 2>/dev/null | wc -c")),
|
||||
'docker_total' => (int)trim(shell_exec("docker ps --format '{{.Names}}' | wc -l")),
|
||||
];
|
||||
$r['verify'] = $checks;
|
||||
|
||||
echo json_encode(["ok"=>true, "results"=>$r], JSON_PRETTY_PRINT);
|
||||
unlink(__FILE__);
|
||||
16
api/img.php
16
api/img.php
@@ -1,10 +1,8 @@
|
||||
<?php
|
||||
$name = basename($_GET["n"] ?? "");
|
||||
$path = "/var/www/html/images/$name";
|
||||
if ($name && file_exists($path)) {
|
||||
$ext = pathinfo($name, PATHINFO_EXTENSION);
|
||||
$types = ["png"=>"image/png","jpg"=>"image/jpeg","gif"=>"image/gif","svg"=>"image/svg+xml","webp"=>"image/webp"];
|
||||
header("Content-Type: " . ($types[$ext] ?? "application/octet-stream"));
|
||||
header("Cache-Control: public, max-age=2592000");
|
||||
readfile($path);
|
||||
} else { http_response_code(404); echo "Not found"; }
|
||||
header("Content-Type: application/json");
|
||||
http_response_code(200);
|
||||
echo json_encode([
|
||||
"status"=>"stub",
|
||||
"info"=>"Legacy endpoint — use /api/imagegen.php or /api/vision-proxy.php instead",
|
||||
"migration"=>"2026-04"
|
||||
]);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"ts": "2026-04-16T22:49:46+00:00",
|
||||
"ts": "2026-04-16T23:02:51+00:00",
|
||||
"results": {
|
||||
"GITHUB_TOKEN": 401,
|
||||
"GROQ_KEY": 200,
|
||||
"GROQ_KEY": 429,
|
||||
"CEREBRAS_API_KEY": 200,
|
||||
"GEMINI_KEY": 200,
|
||||
"SAMBANOVA_KEY": 0,
|
||||
"SAMBANOVA_KEY": 402,
|
||||
"MISTRAL_KEY": 200
|
||||
},
|
||||
"expired": [
|
||||
@@ -16,8 +16,8 @@
|
||||
},
|
||||
{
|
||||
"name": "SAMBANOVA_KEY",
|
||||
"code": 0,
|
||||
"reason": "FAIL"
|
||||
"code": 402,
|
||||
"reason": "NO_BALANCE"
|
||||
}
|
||||
],
|
||||
"renewed": [],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"timestamp": "2026-04-17T00:45:19.931225",
|
||||
"timestamp": "2026-04-17T01:00:19.756484",
|
||||
"layers": {
|
||||
"DOCKER": {
|
||||
"n": "DOCKER",
|
||||
@@ -45,8 +45,8 @@
|
||||
},
|
||||
"QDRANT": {
|
||||
"n": "QDRANT",
|
||||
"t": 8,
|
||||
"p": 8,
|
||||
"t": 14,
|
||||
"p": 14,
|
||||
"c": "em"
|
||||
},
|
||||
"NONREG": {
|
||||
@@ -57,6 +57,6 @@
|
||||
}
|
||||
},
|
||||
"fixes": [],
|
||||
"total": 201,
|
||||
"pass": 192
|
||||
"total": 207,
|
||||
"pass": 198
|
||||
}
|
||||
@@ -13,5 +13,5 @@
|
||||
"Run simulation",
|
||||
"CEO insights"
|
||||
],
|
||||
"timestamp": "2026-04-16 23:00:03"
|
||||
"timestamp": "2026-04-16 23:05:01"
|
||||
}
|
||||
@@ -5,7 +5,12 @@
|
||||
"not_wired": 0,
|
||||
"with_readme": 34,
|
||||
"with_docker": 14,
|
||||
"scan_time": "2026-04-17T01:00:02.503749"
|
||||
"scan_time": "2026-04-17T01:00:02.503749",
|
||||
"by_status": {
|
||||
"integrated": 70,
|
||||
"discovered": 0,
|
||||
"evaluated": 0
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"weval-l99": {
|
||||
@@ -57,7 +62,7 @@
|
||||
"has_node": true,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "**Language:** English | [Português (Brasil)](docs/pt-BR/README.md) | [简体中文](README.zh-CN.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja-JP/README.",
|
||||
"description": "**Language:** English | [Portugu\u00eas (Brasil)](docs/pt-BR/README.md) | [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) | [\u7e41\u9ad4\u4e2d\u6587](docs/zh-TW/README.md) | [\u65e5\u672c\u8a9e](docs/ja-JP/README.",
|
||||
"discovered": "2026-04-17T01:00:02.285206"
|
||||
},
|
||||
"open-webui-fresh": {
|
||||
@@ -70,7 +75,7 @@
|
||||
"has_node": true,
|
||||
"has_docker": true,
|
||||
"wired": true,
|
||||
"description": "# Open WebUI 👋    | [中文](README.zh.md) | [日本語](README.ja.md) | [Español](README.es.md) | [Tiếng Việt](README.vi.md) | [Português](README.p",
|
||||
"description": "English | [\ud55c\uad6d\uc5b4](README.ko.md) | [\u4e2d\u6587](README.zh.md) | [\u65e5\u672c\u8a9e](README.ja.md) | [Espa\u00f1ol](README.es.md) | [Ti\u1ebfng Vi\u1ec7t](README.vi.md) | [Portugu\u00eas](README.p",
|
||||
"discovered": "2026-04-17T01:00:02.320990"
|
||||
},
|
||||
"mxyhi_ok-skills": {
|
||||
@@ -109,7 +114,7 @@
|
||||
"has_node": false,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "# OK Skills: AI Coding Agent Skills for Codex, Claude Code, Cursor, OpenClaw, and More English | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | ",
|
||||
"description": "# OK Skills: AI Coding Agent Skills for Codex, Claude Code, Cursor, OpenClaw, and More English | [\u7b80\u4f53\u4e2d\u6587](README.zh-CN.md) | [\u7e41\u9ad4\u4e2d\u6587](README.zh-TW.md) | ",
|
||||
"discovered": "2026-04-17T01:00:02.315238"
|
||||
},
|
||||
"SuperClaude_Framework": {
|
||||
@@ -122,7 +127,7 @@
|
||||
"has_node": true,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "<div align=\"center\"> # 🚀 SuperClaude Framework [](https://smithery.ai/skills?ns=",
|
||||
"description": "<div align=\"center\"> # \ud83d\ude80 SuperClaude Framework [](https://smithery.ai/skills?ns=",
|
||||
"discovered": "2026-04-17T01:00:02.200301"
|
||||
},
|
||||
"paperclip-weval": {
|
||||
@@ -135,7 +140,7 @@
|
||||
"has_node": true,
|
||||
"has_docker": true,
|
||||
"wired": true,
|
||||
"description": "<p align=\"center\"> <img src=\"doc/assets/header.png\" alt=\"Paperclip — runs your business\" width=\"720\" /> </p> <p align=\"center\"> <a href=\"#quickst",
|
||||
"description": "<p align=\"center\"> <img src=\"doc/assets/header.png\" alt=\"Paperclip \u2014 runs your business\" width=\"720\" /> </p> <p align=\"center\"> <a href=\"#quickst",
|
||||
"discovered": "2026-04-17T01:00:02.328902"
|
||||
},
|
||||
"vllm": {
|
||||
@@ -161,7 +166,7 @@
|
||||
"has_node": false,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "# 🦌 DeerFlow - 2.0 English | [中文](./README_zh.md) | [日本語](./README_ja.md) | [Français](./README_fr.md) | [Русский](./README_ru.md) [ | [\u65e5\u672c\u8a9e](./README_ja.md) | [Fran\u00e7ais](./README_fr.md) | [\u0420\u0443\u0441\u0441\u043a\u0438\u0439](./README_ru.md) [ | [Français](docs/translations/README.fr.md) | [Italiano](docs/translations/README.it.md) | ",
|
||||
"description": "\ud83c\udf0d **English** | [Espa\u00f1ol](docs/translations/README.es.md) | [Fran\u00e7ais](docs/translations/README.fr.md) | [Italiano](docs/translations/README.it.md) | ",
|
||||
"discovered": "2026-04-17T01:00:02.180884"
|
||||
},
|
||||
"aios": {
|
||||
@@ -473,7 +478,7 @@
|
||||
"has_node": false,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "# Claude Code Plugins: Orchestration and Automation > **⚡ Updated for Opus 4.6, Sonnet 4.6 & Haiku 4.5** — Three-tier model strategy for optimal perf",
|
||||
"description": "# Claude Code Plugins: Orchestration and Automation > **\u26a1 Updated for Opus 4.6, Sonnet 4.6 & Haiku 4.5** \u2014 Three-tier model strategy for optimal perf",
|
||||
"discovered": "2026-04-17T01:00:02.356347"
|
||||
},
|
||||
"weval-ops": {
|
||||
@@ -499,7 +504,7 @@
|
||||
"has_node": false,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "# Agent Skill Creator **Turn any workflow into reusable AI agent software that installs on 14+ tools — no spec writing, no prompt engineering, no cod",
|
||||
"description": "# Agent Skill Creator **Turn any workflow into reusable AI agent software that installs on 14+ tools \u2014 no spec writing, no prompt engineering, no cod",
|
||||
"discovered": "2026-04-17T01:00:02.165353"
|
||||
},
|
||||
"obsidian-vault": {
|
||||
@@ -564,7 +569,7 @@
|
||||
"has_node": false,
|
||||
"has_docker": false,
|
||||
"wired": true,
|
||||
"description": "# Writing Style Skill 可复用的写作风格 Skill 模板。**内置自动学习** — 从你的修改中自动提取规则,SKILL.md 越用越准。 兼容 **Claude Code** + **OpenClaw (ClawHub)**。 ## 原理 ``` AI 用 SKILL",
|
||||
"description": "# Writing Style Skill \u53ef\u590d\u7528\u7684\u5199\u4f5c\u98ce\u683c Skill \u6a21\u677f\u3002**\u5185\u7f6e\u81ea\u52a8\u5b66\u4e60** \u2014 \u4ece\u4f60\u7684\u4fee\u6539\u4e2d\u81ea\u52a8\u63d0\u53d6\u89c4\u5219\uff0cSKILL.md \u8d8a\u7528\u8d8a\u51c6\u3002 \u517c\u5bb9 **Claude Code** + **OpenClaw (ClawHub)**\u3002 ## \u539f\u7406 ``` AI \u7528 SKILL",
|
||||
"discovered": "2026-04-17T01:00:02.291524"
|
||||
},
|
||||
"qdrant-data": {
|
||||
@@ -918,5 +923,41 @@
|
||||
"description": "",
|
||||
"discovered": "2026-04-17T01:00:02.487655"
|
||||
}
|
||||
},
|
||||
"skills": {
|
||||
"total": 6178,
|
||||
"injected": 694
|
||||
},
|
||||
"trending": [
|
||||
{
|
||||
"name": "weval-l99"
|
||||
},
|
||||
{
|
||||
"name": "wevia-brain"
|
||||
},
|
||||
{
|
||||
"name": "skills"
|
||||
},
|
||||
{
|
||||
"name": "everything-claude-code"
|
||||
},
|
||||
{
|
||||
"name": "open-webui-fresh"
|
||||
},
|
||||
{
|
||||
"name": "activepieces"
|
||||
},
|
||||
{
|
||||
"name": "oh-my-claudecode"
|
||||
},
|
||||
{
|
||||
"name": "mxyhi_ok-skills"
|
||||
},
|
||||
{
|
||||
"name": "SuperClaude_Framework"
|
||||
},
|
||||
{
|
||||
"name": "paperclip-weval"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"ts": "2026-04-16 22:59:18",
|
||||
"ts": "2026-04-16 23:03:00",
|
||||
"r": {
|
||||
"reconcile": "OK",
|
||||
"nonreg": "NONREG: 153\/153 (100%)",
|
||||
@@ -7,7 +7,7 @@
|
||||
"docker": 19,
|
||||
"disk": 84,
|
||||
"hubs": 29,
|
||||
"dirty": 1,
|
||||
"dirty": 22,
|
||||
"pushed": true,
|
||||
"alerts": [
|
||||
"CLEAR"
|
||||
|
||||
1
api/tmpq8wyf2ui.tmp
Normal file
1
api/tmpq8wyf2ui.tmp
Normal file
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"timestamp": "2026-04-17T00:30:11",
|
||||
"timestamp": "2026-04-17T01:00:08",
|
||||
"features": {
|
||||
"total": 36,
|
||||
"pass": 35
|
||||
@@ -13,7 +13,7 @@
|
||||
"score": 97.2,
|
||||
"log": [
|
||||
"=== UX AGENT v1.0 ===",
|
||||
"Time: 2026-04-17 00:30:01",
|
||||
"Time: 2026-04-17 01:00:01",
|
||||
" core: 4/4",
|
||||
" layout: 3/4",
|
||||
" interaction: 6/6",
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
{
|
||||
"timestamp": "2026-04-17 00:55:04",
|
||||
"healthy": true,
|
||||
"issues": [],
|
||||
"timestamp": "2026-04-17 01:00:11",
|
||||
"healthy": false,
|
||||
"issues": [
|
||||
"Chatbot check error: Expecting value: line 1 column 1 (char 0)"
|
||||
],
|
||||
"fixes": [],
|
||||
"issues_count": 0,
|
||||
"issues_count": 1,
|
||||
"fixes_count": 0
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"timestamp": "2026-04-16 22:55:08",
|
||||
"timestamp": "2026-04-16 23:00:09",
|
||||
"healthy": false,
|
||||
"checks": {
|
||||
"outpost": "DOWN",
|
||||
@@ -30,62 +30,62 @@
|
||||
{
|
||||
"level": "critical",
|
||||
"msg": "Outpost DOWN 9090",
|
||||
"ts": "2026-04-16T22:55:01+00:00"
|
||||
"ts": "2026-04-16T23:00:02+00:00"
|
||||
},
|
||||
{
|
||||
"level": "critical",
|
||||
"msg": "Outpost STILL DOWN",
|
||||
"ts": "2026-04-16T22:55:06+00:00"
|
||||
"ts": "2026-04-16T23:00:07+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow wevads.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:06+00:00"
|
||||
"ts": "2026-04-16T23:00:07+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow ethica.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:06+00:00"
|
||||
"ts": "2026-04-16T23:00:07+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow n8n.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:07+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow crm.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:07+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow mm.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:08+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow analytics.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:08+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Auth flow deerflow.weval-consulting.com: 200",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:08+00:00"
|
||||
},
|
||||
{
|
||||
"level": "warning",
|
||||
"msg": "Callback location missing in nginx",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:08+00:00"
|
||||
}
|
||||
],
|
||||
"fixes": [
|
||||
{
|
||||
"title": "Restart authentik",
|
||||
"ts": "2026-04-16T22:55:01+00:00"
|
||||
"ts": "2026-04-16T23:00:02+00:00"
|
||||
},
|
||||
{
|
||||
"title": "Callback location auto-added",
|
||||
"ts": "2026-04-16T22:55:07+00:00"
|
||||
"ts": "2026-04-16T23:00:08+00:00"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"ts":"01:00","status":"online","cpu":"?%","ram":"?%","ip":"105.159.153.96","uptime":"?","pending":30,"via":"heartbeat"}
|
||||
{"ts":"01:04","status":"offline"}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"date": "2026-04-16 22:45:01",
|
||||
"score": "7\/13 (53.8%)",
|
||||
"passed": 7,
|
||||
"failed": 6,
|
||||
"date": "2026-04-16 23:00:02",
|
||||
"score": "8\/13 (61.5%)",
|
||||
"passed": 8,
|
||||
"failed": 5,
|
||||
"total": 13,
|
||||
"regressions": [],
|
||||
"auto_fixes": [],
|
||||
@@ -14,8 +14,8 @@
|
||||
},
|
||||
{
|
||||
"name": "eng:Code",
|
||||
"ok": false,
|
||||
"detail": "1t 0a"
|
||||
"ok": true,
|
||||
"detail": "23t 0a"
|
||||
},
|
||||
{
|
||||
"name": "eng:Docker",
|
||||
@@ -30,7 +30,7 @@
|
||||
{
|
||||
"name": "eng:SSL",
|
||||
"ok": true,
|
||||
"detail": "26t 0a"
|
||||
"detail": "19t 0a"
|
||||
},
|
||||
{
|
||||
"name": "eng:Compare",
|
||||
|
||||
@@ -46,7 +46,7 @@ function wevia_opus46_exec($msg) {
|
||||
if ($d > 0) {
|
||||
@shell_exec("cd /var/www/html && git add -A && git commit -m 'auto-sync-opus46' && git push origin main 2>&1");
|
||||
@shell_exec("cd /opt/weval-l99 && git add -A && git commit -m 'auto-sync-opus46' && git push 2>&1");
|
||||
return ["provider"=>"opus46","content"=>"GIT FULL: $d files committed+pushed","tool"=>"git_full"];
|
||||
$hb=trim(@shell_exec("cd /var/www/html && git rev-parse HEAD 2>&1")); $ha=trim(@shell_exec("cd /var/www/html && git rev-parse origin/main 2>&1")); $da=(int)trim(@shell_exec("cd /var/www/html && git status --short 2>&1 | wc -l")); if ($hb===$ha && $da>=$d) return ["provider"=>"opus46","content"=>"GIT FAILED: HEAD=".substr($hb,0,8)." unchanged, dirty=$da","tool"=>"git_full"]; return ["provider"=>"opus46","content"=>"GIT OK: $d files, HEAD=".substr($hb,0,8)." dirty_after=$da","tool"=>"git_full"];
|
||||
}
|
||||
return ["provider"=>"opus46","content"=>"GIT: 0 dirty","tool"=>"git_full"];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"timestamp": "2026-04-16 22:55:07",
|
||||
"timestamp": "2026-04-16 23:00:08",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Lean Six Sigma",
|
||||
@@ -46,7 +46,7 @@
|
||||
{
|
||||
"name": "Change Mgmt",
|
||||
"ok": true,
|
||||
"detail": "2495 commits\/7d"
|
||||
"detail": "2502 commits\/7d"
|
||||
},
|
||||
{
|
||||
"name": "SLA Monitor",
|
||||
@@ -153,7 +153,7 @@
|
||||
{
|
||||
"name": "CI\/CD",
|
||||
"ok": true,
|
||||
"detail": "2495 commits"
|
||||
"detail": "2502 commits"
|
||||
},
|
||||
{
|
||||
"name": "Auto testing",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"timestamp": "2026-04-16 22:59:32",
|
||||
"timestamp": "2026-04-16 23:03:00",
|
||||
"healthy": false,
|
||||
"global_pass": 292,
|
||||
"global_fail": 2,
|
||||
@@ -34,24 +34,24 @@
|
||||
"total": 93
|
||||
},
|
||||
"chat_monitor": {
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"pass": 0,
|
||||
"fail": 3,
|
||||
"total": 3,
|
||||
"caps": {
|
||||
"Lean Six Sigma": {
|
||||
"ok": true,
|
||||
"code": 200,
|
||||
"json": true
|
||||
"ok": false,
|
||||
"code": 429,
|
||||
"json": false
|
||||
},
|
||||
"Qdrant": {
|
||||
"ok": true,
|
||||
"code": 200,
|
||||
"json": true
|
||||
"ok": false,
|
||||
"code": 429,
|
||||
"json": false
|
||||
},
|
||||
"SearXNG": {
|
||||
"ok": true,
|
||||
"code": 200,
|
||||
"json": true
|
||||
"ok": false,
|
||||
"code": 429,
|
||||
"json": false
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -64,9 +64,9 @@
|
||||
"score": 100
|
||||
},
|
||||
"chatbot_post": {
|
||||
"healthy": false,
|
||||
"provider": "none",
|
||||
"code": 0
|
||||
"healthy": true,
|
||||
"provider": "Cerebras-fast",
|
||||
"code": 200
|
||||
},
|
||||
"regression_scan": {
|
||||
"ok": 250,
|
||||
@@ -83,8 +83,8 @@
|
||||
},
|
||||
"issues": [
|
||||
"L99 Command: 2 failures",
|
||||
"Chat Monitor: 3 capabilities returning non-JSON",
|
||||
"Auth Agent: unhealthy",
|
||||
"Chatbot POST: returning maintenance\/crash (provider cascade broken)",
|
||||
"L99 Mission: 2 failures (QUALITY, ssl)"
|
||||
],
|
||||
"issues_count": 4
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<?php
|
||||
// 1. index.php – point d’entrée unique, route vers les modules
|
||||
require_once 'config.php';
|
||||
require_once 'kernel/Kernel.php';
|
||||
|
||||
session_start();
|
||||
$kernel = new Kernel();
|
||||
$kernel->handle($_SERVER['REQUEST_URI']);
|
||||
@@ -1,6 +0,0 @@
|
||||
<?php
|
||||
// 5. Models/Client.php – entité métier
|
||||
namespace Models;
|
||||
class Client extends Model {
|
||||
protected static string $table = 'clients';
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
<!-- 8. views/cart.php - Vue panier basique -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Mon Panier - <?= SITE_NAME ?></title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container py-4">
|
||||
<h1>Mon Panier</h1>
|
||||
|
||||
<?php if (empty($_SESSION['cart'] ?? [])): ?>
|
||||
<div class="alert alert-info">Votre panier est vide.</div>
|
||||
<a href="<?= BASE_URL ?>" class="btn btn-primary">Continuer vos achats</a>
|
||||
<?php else: ?>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Produit</th>
|
||||
<th>Quantité</th>
|
||||
<th>Prix unitaire</th>
|
||||
<th>Total</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$total = 0;
|
||||
foreach ($_SESSION['cart'] as $item):
|
||||
$itemTotal = $item['price'] * $item['quantity'];
|
||||
$total += $itemTotal;
|
||||
?>
|
||||
<tr>
|
||||
<td><?= htmlspecialchars($item['name']) ?></td>
|
||||
<td><?= $item['quantity'] ?></td>
|
||||
<td><?= number_format($item['price'], 2) ?> €</td>
|
||||
<td><?= number_format($itemTotal, 2) ?> €</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="3" class="text-end">Total général :</th>
|
||||
<th><?= number_format($total, 2) ?> €</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<div class="d-flex gap-2">
|
||||
<a href="<?= BASE_URL ?>" class="btn btn-secondary">Continuer les achats</a>
|
||||
<button class="btn btn-success">Procéder au paiement</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
generated/tts-20260416-230005.mp3
Normal file
BIN
generated/tts-20260416-230005.mp3
Normal file
Binary file not shown.
BIN
generated/video-20260416-230005.mp4
Normal file
BIN
generated/video-20260416-230005.mp4
Normal file
Binary file not shown.
BIN
screenshots/browser-20260416-230004.png
Normal file
BIN
screenshots/browser-20260416-230004.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
@@ -1 +1,5 @@
|
||||
<meta http-equiv="refresh" content="0;url=/tools-hub.html"><a href="/tools-hub.html">Redirect</a>
|
||||
<!DOCTYPE html><html><head><title>WEVADS DKIM</title><meta charset="utf-8"></head>
|
||||
<body style="font-family:system-ui;padding:40px;background:#0a0a0a;color:#eee">
|
||||
<h1>WEVADS DKIM — Moved</h1>
|
||||
<p>DKIM management has moved to <a href="/api/dkim-manager.php" style="color:#ffc107">Infra Command Center</a>.</p>
|
||||
</body></html>
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
<meta http-equiv="refresh" content="0;url=/tools-hub.html"><a href="/tools-hub.html">Redirect</a>
|
||||
<!DOCTYPE html><html><head><title>WEVADS Non-Regression</title><meta charset="utf-8"></head>
|
||||
<body style="font-family:system-ui;padding:40px;background:#0a0a0a;color:#eee">
|
||||
<h1>WEVADS Non-Regression — Moved</h1>
|
||||
<p>Non-regression tests are now available at <a href="/nonreg.html" style="color:#ffc107">/nonreg.html</a> (153/153 live).</p>
|
||||
</body></html>
|
||||
|
||||
Reference in New Issue
Block a user