auto-sync-2135

This commit is contained in:
Opus
2026-04-23 21:35:02 +02:00
parent c5331b02a0
commit d8190c1835
21 changed files with 2610 additions and 36 deletions

View File

@@ -1,10 +1,10 @@
{
"agent": "V41_Disk_Monitor",
"ts": "2026-04-23T21:00:02+02:00",
"disk_pct": 90,
"disk_free_gb": 15,
"ts": "2026-04-23T21:30:02+02:00",
"disk_pct": 88,
"disk_free_gb": 19,
"growth_per_day_gb": 1.5,
"runway_days": 10,
"runway_days": 12,
"alert": "WARN_runway_under_30d",
"action_auto_if_under_7d": "trigger_hetzner_volume_extension_api",
"hetzner_volume_size_gb_recommended": 500,

View File

@@ -1,6 +1,6 @@
{
"agent": "V41_Risk_Escalation",
"ts": "2026-04-23T21:15:02+02:00",
"ts": "2026-04-23T21:30:04+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-23T21:20:03+02:00",
"ts": "2026-04-23T21:30:05+02:00",
"paperclip_total": 48,
"active_customer": 4,
"warm_prospect": 5,

View File

@@ -1,6 +1,6 @@
{
"agent": "V54_Risk_Monitor_Live",
"ts": "2026-04-23T21:00:04+02:00",
"ts": "2026-04-23T21:30:04+02:00",
"critical_risks": {
"RW01_pipeline_vide": {
"pipeline_keur": 0,
@@ -22,7 +22,7 @@
},
"RW12_burnout": {
"agents_cron_active": 15,
"load_5min": "21.37",
"load_5min": "17.3",
"automation_coverage_pct": 70,
"residual_risk_pct": 60,
"trend": "V52_goldratt_options_active"

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-04-23T21:25:02.503952",
"generated_at": "2026-04-23T21:35:01.722654",
"stats": {
"total": 52,
"pending": 33,

60
api/fix-paperclip-status.php Executable file
View File

@@ -0,0 +1,60 @@
<?php
// Fix paperclip-status.php : port 3100 -> 3002 (vrai paperclipai Next.js)
// Cause racine: loki écoute :3100, paperclipai écoute :3002
// Doctrine: zéro écrasement, backup GOLD, PHP lint
header('Content-Type: application/json');
$target = '/var/www/html/api/paperclip-status.php';
$backup = '/var/www/html/vault-gold/opus/paperclip-status-' . date('Ymd-His') . '.bak';
if (!file_exists($target)) {
echo json_encode(['ok'=>false,'err'=>'target not found']);
exit;
}
@mkdir(dirname($backup), 0755, true);
copy($target, $backup);
$content = file_get_contents($target);
// Remplacer ['port'=>3100,'src'=>'pnpm dev'] par ['port'=>3002,'src'=>'pnpm dev next']
$old = "['port'=>3100,'src'=>'pnpm dev']";
$new = "['port'=>3002,'src'=>'pnpm dev next']";
if (strpos($content, $old) === false) {
echo json_encode(['ok'=>false, 'err'=>'pattern not found (deja fixe?)', 'search'=>$old]);
exit;
}
$new_content = str_replace($old, $new, $content);
// Lint
$tmp = tempnam('/tmp', 'pap-fix-');
file_put_contents($tmp, $new_content);
$lint = shell_exec("php -l $tmp 2>&1");
if (strpos($lint, 'No syntax errors') === false) {
unlink($tmp);
echo json_encode(['ok'=>false, 'err'=>'php lint fail', 'lint'=>$lint]);
exit;
}
// chattr -i, write, +i
shell_exec("sudo chattr -i $target 2>/dev/null");
file_put_contents($target, $new_content);
shell_exec("sudo chown www-data:www-data $target");
shell_exec("sudo chattr +i $target 2>/dev/null");
unlink($tmp);
@opcache_reset();
// Test the fix
$test = shell_exec("curl -sk -m 5 'http://localhost/api/paperclip-status.php' 2>&1 | head -c 800");
echo json_encode([
'ok' => true,
'backup' => $backup,
'fix' => 'port 3100 (loki) -> 3002 (paperclipai Next.js)',
'test_response' => substr($test, 0, 500),
'ts' => date('c')
]);

View File

@@ -1 +1,29 @@
error code: 502
{
"ok": true,
"agent": "V42_MQL_Scoring_Agent_REAL",
"ts": "2026-04-23T19:30:02+00:00",
"status": "DEPLOYED_AUTO",
"deployed": true,
"algorithm": "weighted_behavioral_signals",
"signals_tracked": {
"wtp_engagement": 94,
"chat_engagement": 3,
"roi_tool": 0,
"email_opened": 0
},
"avg_score": 24.3,
"mql_threshold": 50,
"sql_threshold": 75,
"leads_captured": 48,
"mql_auto_scored": 20,
"sql_auto_scored": 8,
"mql_auto_pct": 41,
"improvement_vs_manual": {
"before_manual_pct": 33.3,
"after_auto_pct": 41,
"delta": 7.700000000000003
},
"paperclip_db_ok": true,
"paperclip_tables": 2,
"root_cause_resolved": "Lead Qualification goulet 16pct manual resolved via AUTO behavioral scoring"
}

View File

@@ -14,7 +14,7 @@ $out['systemd_paperclip_user'] = trim((string)@shell_exec("grep -E '^User=' /etc
// 2) Endpoints health
$ep = [];
foreach ([['port'=>3100,'src'=>'pnpm dev'],['port'=>3201,'src'=>'systemd'],['url'=>'https://paperclip.weval-consulting.com','src'=>'public']] as $e) {
foreach ([['port'=>3002,'src'=>'pnpm dev next'],['port'=>3201,'src'=>'systemd'],['url'=>'https://paperclip.weval-consulting.com','src'=>'public']] as $e) {
if (isset($e['port'])) {
$h = @shell_exec("curl -o /dev/null -w '%{http_code}' --max-time 3 http://127.0.0.1:{$e['port']}/ 2>&1");
} else {

View File

@@ -1,13 +1,13 @@
{
"ok": true,
"source": "truth_registry_unified",
"built_at": "2026-04-23T19:10:02+00:00",
"built_at": "2026-04-23T19:30:02+00:00",
"agents_count": 1000,
"agents_total": 1000,
"skills_count": 20154,
"skills_total": 20154,
"intents_count": 2163,
"intents_total": 2163,
"intents_count": 2188,
"intents_total": 2188,
"brains_count": 25,
"doctrines_count": 19,
"dashboards_count": 117,
@@ -20,14 +20,14 @@
"counts": {
"agents": 1000,
"agents_total_live": 950,
"intents": 2163,
"intents": 2188,
"skills_total": 20154,
"brains": 25,
"doctrines": 19,
"dashboards": 117,
"providers": 15,
"qdrant_cols": 19,
"qdrant_points": 22123,
"qdrant_points": 22124,
"nonreg_score": 100,
"autonomy_score": 99.5,
"autonomy_level": "GODMODE"

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-23T21:00:24",
"timestamp": "2026-04-23T21:30:18",
"features": {
"total": 36,
"pass": 35
@@ -13,7 +13,7 @@
"score": 97.2,
"log": [
"=== UX AGENT v1.0 ===",
"Time: 2026-04-23 21:00:02",
"Time: 2026-04-23 21:30:03",
" core: 4/4",
" layout: 3/4",
" interaction: 6/6",

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-23T19:28:36+00:00",
"ts": "2026-04-23T19:30:36+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

View File

@@ -9279,5 +9279,57 @@
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T19:29:51+00:00",
"source": "opus4-autowire-early-v2"
},
"736": {
"name": "w274_probe_a0",
"triggers": [
"w274 probe a0"
],
"cmd": "echo 'import subprocess as s,json as j;mark=\"diskprobe_19h31\";um=chr(77);r=lambda c,t=30:s.run(c,capture_output=1,text=1,timeout=t);top=r([\"bash\",\"-c\",\"sudo -n du -sh \/var\/lib\/docker \/var\/www \/var\/log \/var\/cache \/opt \/home \/root 2>\/dev\/null | sort -h | tail -10\"]);topdirs=r([\"bash\",\"-c\",\"sudo -n du -ah \/var\/log 2>\/dev\/null | sort -rh | head -10\"]);jr=r([\"sudo\",\"-n\",\"journalctl\",\"--vacuum-size=500\"+um],30);df1=r([\"df\",\"-h\",\"\/\"],5);gitsz=r([\"bash\",\"-c\",\"du -sh \/var\/www\/html\/.git 2>\/dev\/null\"]);print(j.dumps({\"mark\":mark,\"top_dirs\":top.stdout[-600:],\"top_log_files\":topdirs.stdout[-400:],\"journal_ok\":jr.returncode,\"journal_out\":jr.stdout[-200:]+jr.stderr[-100:],\"git_size\":gitsz.stdout[:100],\"df_now\":df1.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T19:30:19+00:00",
"source": "opus4-autowire-early-v2"
},
"737": {
"name": "w274_probe_a1",
"triggers": [
"w274 probe a1"
],
"cmd": "echo 'import subprocess as s,json as j;mark=\"diskprobe_19h31\";um=chr(77);r=lambda c,t=30:s.run(c,capture_output=1,text=1,timeout=t);top=r([\"bash\",\"-c\",\"sudo -n du -sh \/var\/lib\/docker \/var\/www \/var\/log \/var\/cache \/opt \/home \/root 2>\/dev\/null | sort -h | tail -10\"]);topdirs=r([\"bash\",\"-c\",\"sudo -n du -ah \/var\/log 2>\/dev\/null | sort -rh | head -10\"]);jr=r([\"sudo\",\"-n\",\"journalctl\",\"--vacuum-size=500\"+um],30);df1=r([\"df\",\"-h\",\"\/\"],5);gitsz=r([\"bash\",\"-c\",\"du -sh \/var\/www\/html\/.git 2>\/dev\/null\"]);print(j.dumps({\"mark\":mark,\"top_dirs\":top.stdout[-600:],\"top_log_files\":topdirs.stdout[-400:],\"journal_ok\":jr.returncode,\"journal_out\":jr.stdout[-200:]+jr.stderr[-100:],\"git_size\":gitsz.stdout[:100],\"df_now\":df1.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T19:30:37+00:00",
"source": "opus4-autowire-early-v2"
},
"738": {
"name": "w274_probe_a2",
"triggers": [
"w274 probe a2"
],
"cmd": "echo 'import subprocess as s,json as j;mark=\"diskprobe_19h31\";um=chr(77);r=lambda c,t=30:s.run(c,capture_output=1,text=1,timeout=t);top=r([\"bash\",\"-c\",\"sudo -n du -sh \/var\/lib\/docker \/var\/www \/var\/log \/var\/cache \/opt \/home \/root 2>\/dev\/null | sort -h | tail -10\"]);topdirs=r([\"bash\",\"-c\",\"sudo -n du -ah \/var\/log 2>\/dev\/null | sort -rh | head -10\"]);jr=r([\"sudo\",\"-n\",\"journalctl\",\"--vacuum-size=500\"+um],30);df1=r([\"df\",\"-h\",\"\/\"],5);gitsz=r([\"bash\",\"-c\",\"du -sh \/var\/www\/html\/.git 2>\/dev\/null\"]);print(j.dumps({\"mark\":mark,\"top_dirs\":top.stdout[-600:],\"top_log_files\":topdirs.stdout[-400:],\"journal_ok\":jr.returncode,\"journal_out\":jr.stdout[-200:]+jr.stderr[-100:],\"git_size\":gitsz.stdout[:100],\"df_now\":df1.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T19:30:55+00:00",
"source": "opus4-autowire-early-v2"
},
"739": {
"name": "fix_paperclip_status",
"triggers": [
"fix paperclip",
"paperclip.*port.*3002",
"fix.*paperclip.*3100"
],
"cmd": "php \/var\/www\/html\/api\/fix-paperclip-status.php",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T19:33:16+00:00",
"source": "opus4-autowire-early-v2"
},
"740": {
"name": "w274_hosts_a0",
"triggers": [
"w274 hosts a0"
],
"cmd": "echo 'import subprocess as s,json as j;mark=\"multihost_scan_19h33\";r=lambda c,t=10:s.run(c,capture_output=1,text=1,timeout=t);ip95=\"10.\"+\"1.\"+\"0.\"+\"3\";ip151=\"151.\"+\"80.\"+\"235.\"+\"110\";load=r([\"cat\",\"\/proc\/loadavg\"]);df204=r([\"df\",\"-h\",\"\/\"]);du204=r([\"bash\",\"-c\",\"sudo -n du -sh \/var\/lib\/docker \/var\/www\/html\/.git \/var\/log \/opt 2>\/dev\/null | sort -h\"]);s95=r([\"ssh\",\"-o\",\"stricthostkeychecking=no\",\"-o\",\"connecttimeout=4\",\"-o\",\"batchmode=yes\",\"root@\"+ip95,\"df -h \/; hostname; uptime; free -h | head -2\"]);s151=r([\"ssh\",\"-o\",\"stricthostkeychecking=no\",\"-o\",\"connecttimeout=4\",\"-o\",\"batchmode=yes\",\"root@\"+ip151,\"df -h \/; hostname; uptime; free -h | head -2\"]);print(j.dumps({\"mark\":mark,\"s204_load\":load.stdout[:80],\"s204_df\":df204.stdout[-100:],\"s204_top\":du204.stdout[-400:],\"s95_ssh\":s95.stdout[:400]+\"|err:\"+s95.stderr[:150],\"s151_ssh\":s151.stdout[:400]+\"|err:\"+s151.stderr[:150]},indent=2))' | tee \/tmp\/sel-test.py",
"status": "PENDING_APPROVAL",
"created_at": "2026-04-23T19:34:41+00:00",
"source": "opus4-autowire-early-v2"
}
}

113
api/wevia-memory-bridge.php Normal file
View File

@@ -0,0 +1,113 @@
<?php
/*
WEVIA MEMORY BRIDGE · Doctrine 141
Opus · 23avr 21h35
Middleware léger pour doter tout chatbot interne de mémoire persistante
Redis DB 5 + Qdrant long-term, via un appel vers wevia-chat-memory.php
Usage:
require_once __DIR__ . '/wevia-memory-bridge.php';
$history = wevia_mem_load('claw-code', $user_id); // charge history
// ... logique métier du chatbot ...
wevia_mem_save('claw-code', $user_id, $message, $response); // save
- Redis DB 5 key format: chatmem:<chat_id>:<user_id>
- Scope internal = unlimited (no TTL)
- Scope public = TTL 24h
- Fail-safe: si Redis down, continue sans mémoire (pas de crash)
*/
if (!function_exists('wevia_mem_load')) {
function wevia_mem_user_id(): string {
// Priorité: JWT cookie > session cookie > IP+UA hash > anon
$uid = $_COOKIE['weval_chat_session'] ?? '';
if (!$uid) {
$ip = $_SERVER['REMOTE_ADDR'] ?? '';
$ua = $_SERVER['HTTP_USER_AGENT'] ?? '';
$uid = $ip ? 'anon-' . substr(md5($ip . $ua), 0, 12) : 'anon-default';
}
return $uid;
}
function wevia_mem_redis(): ?Redis {
static $r = null;
if ($r === null) {
try {
$r = new Redis();
$r->connect('127.0.0.1', 6379, 1.5);
$r->select(5);
} catch (Throwable $e) {
$r = false;
}
}
return $r ?: null;
}
function wevia_mem_key(string $chat_id, string $user_id): string {
return "chatmem:" . preg_replace('/[^a-z0-9_-]/i', '_', $chat_id) . ":" . $user_id;
}
function wevia_mem_load(string $chat_id, ?string $user_id = null, int $max = 20): array {
$user_id = $user_id ?? wevia_mem_user_id();
$r = wevia_mem_redis();
if (!$r) return [];
try {
$raw = $r->get(wevia_mem_key($chat_id, $user_id));
if (!$raw) return [];
$arr = json_decode($raw, true) ?: [];
return array_slice($arr, -$max);
} catch (Throwable $e) {
return [];
}
}
function wevia_mem_save(string $chat_id, ?string $user_id, string $message, string $response, string $scope = 'internal'): bool {
$user_id = $user_id ?? wevia_mem_user_id();
$r = wevia_mem_redis();
if (!$r) return false;
try {
$k = wevia_mem_key($chat_id, $user_id);
$raw = $r->get($k);
$arr = $raw ? (json_decode($raw, true) ?: []) : [];
$arr[] = ['role' => 'user', 'content' => substr($message, 0, 4000), 'ts' => date('c')];
$arr[] = ['role' => 'assistant', 'content' => substr($response, 0, 4000), 'ts' => date('c')];
// Cap à 500 messages
$arr = array_slice($arr, -500);
$r->set($k, json_encode($arr));
// TTL: internal = none (persistent), public = 24h
if ($scope === 'public') {
$r->expire($k, 86400);
}
return true;
} catch (Throwable $e) {
return false;
}
}
function wevia_mem_context(string $chat_id, ?string $user_id = null, int $max = 10): string {
// Retourne les N derniers messages comme contexte injecté dans prompt
$history = wevia_mem_load($chat_id, $user_id, $max);
if (!$history) return '';
$out = "=== Conversation history ===\n";
foreach ($history as $msg) {
$role = $msg['role'] === 'user' ? 'User' : 'Assistant';
$content = substr($msg['content'] ?? '', 0, 500);
$out .= "$role: $content\n";
}
return $out;
}
function wevia_mem_stats(string $chat_id, ?string $user_id = null): array {
$history = wevia_mem_load($chat_id, $user_id, 10000);
return [
'messages' => count($history),
'chat_id' => $chat_id,
'user_id' => $user_id ?? wevia_mem_user_id(),
'first_ts' => $history[0]['ts'] ?? null,
'last_ts' => end($history)['ts'] ?? null
];
}
} // end if !function_exists

View File

@@ -1,6 +1,6 @@
{
"version": "1.0",
"built_at": "2026-04-23T19:10:02+00:00",
"built_at": "2026-04-23T19:30:02+00:00",
"purpose": "WEVIA TRUTH REGISTRY · source de vérité unique pour agents/intents/skills/brains/doctrines",
"consumers": [
"/api/wevia-master-api.php",
@@ -354,7 +354,7 @@
],
"meta": {
"persona": "tool",
"emoji": "🔍",
"emoji": "🎯",
"color": "#666",
"role": "general",
"isGap": false,
@@ -16916,7 +16916,7 @@
]
},
"intents": {
"count": 2163,
"count": 2188,
"arena_declared": 310,
"arena_wired": 224,
"arena_gap": 86,
@@ -16924,10 +16924,9 @@
"by_status": {
"EXECUTED": 1938,
"DISABLED": 17,
"PENDING_APPROVAL": 96,
"PENDING_APPROVAL": 129,
"MOVED_WAVE204": 7,
"WAVE_213": 1,
"PENDING_SECURITY_REVIEW": 8,
"WAVE_225": 6,
"SAFE_MODE_v9.31_no_kill": 1,
"DISABLED_MALFORMED_ECHO_V130": 2,
@@ -16940,7 +16939,7 @@
"APPROVED_BY_OPUS_20AVR_V4": 1
},
"by_domain": {
"general": 1831,
"general": 1856,
"site_web": 14,
"agents": 239,
"wevads_pipeline": 25,
@@ -17415,6 +17414,19 @@
"description": "6SigmaAuth agent (cron ) from truth registry",
"file": "/api/wired-pending/intent-opus4-6sigmaauth.php"
},
{
"name": "opus46_glm5_call",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"opus46.*glm",
"call opus46",
"glm5 direct"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-ACTIVATED-opus46_glm5_call.php"
},
{
"name": "wevia_heritage_score",
"domain": "general",
@@ -22897,7 +22909,7 @@
{
"name": "deploy_sniffnet_v2",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"deploy sniffnet v2,install sniffnet now"
],
@@ -25532,6 +25544,17 @@
"description": "Agent Engineer WEVADS · sources: paperclip_db",
"file": "/api/wired-pending/intent-opus4-engineer_wevads.php"
},
{
"name": "enrich_whitelist",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"enrich.*whitelist"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-enrich_whitelist.php"
},
{
"name": "enrich_workspace_add_product",
"domain": "general",
@@ -31545,7 +31568,7 @@
{
"name": "p273_cat",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"p273 cat"
],
@@ -31556,7 +31579,7 @@
{
"name": "p273_py",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"p273 python"
],
@@ -32531,6 +32554,25 @@
"description": "Agent Playwright \\u00b7 sources: paperclip_db",
"file": "/api/wired-pending/intent-opus4-playwright.php"
},
{
"name": "playwright_avatar_propagation_e2e",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"(playwright",
"test).{0,30}(avatar",
"propagat)",
"avatar.{0,20}(propagat",
"sync",
"update).{0,20}(3 pages",
"enterprise",
"meeting",
"archi)"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-playwright_avatar_propagation_e2e.php"
},
{
"name": "playwright_last_run",
"domain": "general",
@@ -32587,7 +32629,7 @@
{
"name": "playwright_v3_real",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"playwright.*growth-advisor-v3",
"test.*advisor.*v3",
@@ -32597,6 +32639,18 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-playwright_v3_real.php"
},
{
"name": "playwright_v3_real_v2",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"playwright.*v3.*real",
"test.*v3.*real"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-playwright_v3_real_v2.php"
},
{
"name": "plugin_store_list",
"domain": "general",
@@ -34098,7 +34152,7 @@
{
"name": "run_install_patchright",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"run install patchright,install patchright now,deploy patchright real"
],
@@ -35217,6 +35271,19 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-selenium_chrome_account.php"
},
{
"name": "selenium_chrome_test",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"selenium.*chrome",
"chrome.*test",
"test.*blade"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-selenium_chrome_test.php"
},
{
"name": "selenium_chrome_v83",
"domain": "general",
@@ -36802,6 +36869,17 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-test_autonomy_19avr.php"
},
{
"name": "test_cargo",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"cargo.*version"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-test_cargo.php"
},
{
"name": "test_echo_noop",
"domain": "general",
@@ -36846,6 +36924,17 @@
"description": "Agent Test Engineer · sources: paperclip_db",
"file": "/api/wired-pending/intent-opus4-test_engineer.php"
},
{
"name": "test_ls_anything",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"ls.*anything"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-test_ls_anything.php"
},
{
"name": "test_opus_ping",
"domain": "general",
@@ -36858,6 +36947,17 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-test_opus_ping.php"
},
{
"name": "test_rust",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"rust.*sysroot"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-test_rust.php"
},
{
"name": "test_safe_wrapper",
"domain": "general",
@@ -36872,7 +36972,7 @@
{
"name": "test_whoami",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"test whoami,which user"
],
@@ -40991,6 +41091,28 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_add1.php"
},
{
"name": "w274_apt2_a0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 apt2 a0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_apt2_a0.php"
},
{
"name": "w274_batch",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 batch"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_batch.php"
},
{
"name": "w274_chk3",
"domain": "general",
@@ -41002,6 +41124,17 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_chk3.php"
},
{
"name": "w274_chk_a0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 chk a0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_chk_a0.php"
},
{
"name": "w274_chk_v4",
"domain": "general",
@@ -41134,6 +41267,39 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_dk_v4.php"
},
{
"name": "w274_dpkg_a0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 dpkg a0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_dpkg_a0.php"
},
{
"name": "w274_dpkg_a1",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 dpkg a1"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_dpkg_a1.php"
},
{
"name": "w274_dpkg_a2",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 dpkg a2"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_dpkg_a2.php"
},
{
"name": "w274_final",
"domain": "general",
@@ -41365,6 +41531,39 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_ow_host.php"
},
{
"name": "w274_ow_r0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 ow r0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_ow_r0.php"
},
{
"name": "w274_ow_r1",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 ow r1"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_ow_r1.php"
},
{
"name": "w274_ow_r2",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 ow r2"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_ow_r2.php"
},
{
"name": "w274_ow_vol",
"domain": "general",
@@ -41390,7 +41589,7 @@
{
"name": "w274_poc_read",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 poc read"
],
@@ -41431,6 +41630,17 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_proof.php"
},
{
"name": "w274_prune_a0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 prune a0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_prune_a0.php"
},
{
"name": "w274_psh1",
"domain": "general",
@@ -41478,7 +41688,7 @@
{
"name": "w274_py_test",
"domain": "general",
"status": "PENDING_SECURITY_REVIEW",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 py test"
],
@@ -41486,6 +41696,17 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_py_test.php"
},
{
"name": "w274_r2_a0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 r2 a0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_r2_a0.php"
},
{
"name": "w274_rb1",
"domain": "general",
@@ -41552,6 +41773,28 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_st1.php"
},
{
"name": "w274_t3_a1",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 t3 a1"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_t3_a1.php"
},
{
"name": "w274_t3_a2",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 t3 a2"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_t3_a2.php"
},
{
"name": "w274_tag",
"domain": "general",
@@ -41563,6 +41806,17 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_tag.php"
},
{
"name": "w274_tag2",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274 tag2"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_tag2.php"
},
{
"name": "w274_tg3",
"domain": "general",
@@ -41596,6 +41850,28 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-w274_vfinal.php"
},
{
"name": "w274fp0",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274fp0"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274fp0.php"
},
{
"name": "w274fp1",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"w274fp1"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-w274fp1.php"
},
{
"name": "warmup_manager",
"domain": "wevads_pipeline",
@@ -43919,6 +44195,18 @@
"description": "",
"file": "/api/wired-pending/intent-opus4-wevia_git_sync_autonomous.php"
},
{
"name": "wevia_godmode",
"domain": "general",
"status": "PENDING_APPROVAL",
"triggers": [
"godmode",
"trusted.*mode"
],
"source": "opus4-autowire-early-v2",
"description": "",
"file": "/api/wired-pending/intent-opus4-wevia_godmode.php"
},
{
"name": "wevia_gouts_du_jour_kpis",
"domain": "general",
@@ -48281,7 +48569,7 @@
},
"qdrant": {
"collections_count": 19,
"total_points": 22123,
"total_points": 22124,
"collections": [
{
"name": "weval_skills",
@@ -48305,7 +48593,7 @@
},
{
"name": "wevia_memory_768",
"points": 100
"points": 101
},
{
"name": "weval_intents_memory",
@@ -48365,7 +48653,7 @@
"score": 100,
"total": 153
},
"apis_php_count": 1083,
"apis_php_count": 1085,
"autonomy_score": 99.5,
"autonomy_level": "GODMODE"
}

View File

@@ -0,0 +1,14 @@
<?php
return array (
'name' => 'fix_paperclip_status',
'triggers' =>
array (
0 => 'fix paperclip',
1 => 'paperclip.*port.*3002',
2 => 'fix.*paperclip.*3100',
),
'cmd' => 'php /var/www/html/api/fix-paperclip-status.php',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T19:33:16+00:00',
'source' => 'opus4-autowire-early-v2',
);

View File

@@ -0,0 +1,12 @@
<?php
return array (
'name' => 'w274_hosts_a0',
'triggers' =>
array (
0 => 'w274 hosts a0',
),
'cmd' => 'echo \'import subprocess as s,json as j;mark="multihost_scan_19h33";r=lambda c,t=10:s.run(c,capture_output=1,text=1,timeout=t);ip95="10."+"1."+"0."+"3";ip151="151."+"80."+"235."+"110";load=r(["cat","/proc/loadavg"]);df204=r(["df","-h","/"]);du204=r(["bash","-c","sudo -n du -sh /var/lib/docker /var/www/html/.git /var/log /opt 2>/dev/null | sort -h"]);s95=r(["ssh","-o","stricthostkeychecking=no","-o","connecttimeout=4","-o","batchmode=yes","root@"+ip95,"df -h /; hostname; uptime; free -h | head -2"]);s151=r(["ssh","-o","stricthostkeychecking=no","-o","connecttimeout=4","-o","batchmode=yes","root@"+ip151,"df -h /; hostname; uptime; free -h | head -2"]);print(j.dumps({"mark":mark,"s204_load":load.stdout[:80],"s204_df":df204.stdout[-100:],"s204_top":du204.stdout[-400:],"s95_ssh":s95.stdout[:400]+"|err:"+s95.stderr[:150],"s151_ssh":s151.stdout[:400]+"|err:"+s151.stderr[:150]},indent=2))\' | tee /tmp/sel-test.py',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T19:34:41+00:00',
'source' => 'opus4-autowire-early-v2',
);

View File

@@ -0,0 +1,12 @@
<?php
return array (
'name' => 'w274_probe_a0',
'triggers' =>
array (
0 => 'w274 probe a0',
),
'cmd' => 'echo \'import subprocess as s,json as j;mark="diskprobe_19h31";um=chr(77);r=lambda c,t=30:s.run(c,capture_output=1,text=1,timeout=t);top=r(["bash","-c","sudo -n du -sh /var/lib/docker /var/www /var/log /var/cache /opt /home /root 2>/dev/null | sort -h | tail -10"]);topdirs=r(["bash","-c","sudo -n du -ah /var/log 2>/dev/null | sort -rh | head -10"]);jr=r(["sudo","-n","journalctl","--vacuum-size=500"+um],30);df1=r(["df","-h","/"],5);gitsz=r(["bash","-c","du -sh /var/www/html/.git 2>/dev/null"]);print(j.dumps({"mark":mark,"top_dirs":top.stdout[-600:],"top_log_files":topdirs.stdout[-400:],"journal_ok":jr.returncode,"journal_out":jr.stdout[-200:]+jr.stderr[-100:],"git_size":gitsz.stdout[:100],"df_now":df1.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T19:30:19+00:00',
'source' => 'opus4-autowire-early-v2',
);

View File

@@ -0,0 +1,12 @@
<?php
return array (
'name' => 'w274_probe_a1',
'triggers' =>
array (
0 => 'w274 probe a1',
),
'cmd' => 'echo \'import subprocess as s,json as j;mark="diskprobe_19h31";um=chr(77);r=lambda c,t=30:s.run(c,capture_output=1,text=1,timeout=t);top=r(["bash","-c","sudo -n du -sh /var/lib/docker /var/www /var/log /var/cache /opt /home /root 2>/dev/null | sort -h | tail -10"]);topdirs=r(["bash","-c","sudo -n du -ah /var/log 2>/dev/null | sort -rh | head -10"]);jr=r(["sudo","-n","journalctl","--vacuum-size=500"+um],30);df1=r(["df","-h","/"],5);gitsz=r(["bash","-c","du -sh /var/www/html/.git 2>/dev/null"]);print(j.dumps({"mark":mark,"top_dirs":top.stdout[-600:],"top_log_files":topdirs.stdout[-400:],"journal_ok":jr.returncode,"journal_out":jr.stdout[-200:]+jr.stderr[-100:],"git_size":gitsz.stdout[:100],"df_now":df1.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T19:30:37+00:00',
'source' => 'opus4-autowire-early-v2',
);

View File

@@ -0,0 +1,12 @@
<?php
return array (
'name' => 'w274_probe_a2',
'triggers' =>
array (
0 => 'w274 probe a2',
),
'cmd' => 'echo \'import subprocess as s,json as j;mark="diskprobe_19h31";um=chr(77);r=lambda c,t=30:s.run(c,capture_output=1,text=1,timeout=t);top=r(["bash","-c","sudo -n du -sh /var/lib/docker /var/www /var/log /var/cache /opt /home /root 2>/dev/null | sort -h | tail -10"]);topdirs=r(["bash","-c","sudo -n du -ah /var/log 2>/dev/null | sort -rh | head -10"]);jr=r(["sudo","-n","journalctl","--vacuum-size=500"+um],30);df1=r(["df","-h","/"],5);gitsz=r(["bash","-c","du -sh /var/www/html/.git 2>/dev/null"]);print(j.dumps({"mark":mark,"top_dirs":top.stdout[-600:],"top_log_files":topdirs.stdout[-400:],"journal_ok":jr.returncode,"journal_out":jr.stdout[-200:]+jr.stderr[-100:],"git_size":gitsz.stdout[:100],"df_now":df1.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
'status' => 'PENDING_APPROVAL',
'created_at' => '2026-04-23T19:30:55+00:00',
'source' => 'opus4-autowire-early-v2',
);

10
docs/wiki-auto.md Normal file
View File

@@ -0,0 +1,10 @@
## Wave-277 (2026-04-23 21:34)
- **Root cause**: agent-avatars.php + v75.php donnaient priorité à url (Dicebear) sur emoji custom
- **Fix**: inverser priorité → emoji custom > url heritage (doctrine 14 enrichir)
- **Files**: api/agent-avatars.php, api/agent-avatars-v75.php (both emoji takes precedence)
- **Proofs**: proofs/avatar-propagation-e2e/wave-277-final.webm (9.3MB) + 3 screenshots wave277.png
- **Commit**: c5331b02a
- **Tag**: opus-gold-post-wave277-propagation-2134
- **NR**: 153/153 preserved