auto-sync-2335
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
opus
2026-04-20 23:35:02 +02:00
parent d1fd7b0652
commit 54b8bd4c3d
11 changed files with 2021 additions and 38 deletions

View File

@@ -1,6 +1,6 @@
{
"agent": "V41_Disk_Monitor",
"ts": "2026-04-20T23:00:01+02:00",
"ts": "2026-04-20T23:30:01+02:00",
"disk_pct": 79,
"disk_free_gb": 32,
"growth_per_day_gb": 1.5,

View File

@@ -1,6 +1,6 @@
{
"agent": "V41_Risk_Escalation",
"ts": "2026-04-20T23:15:03+02:00",
"ts": "2026-04-20T23: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-20T23:20:02+02:00",
"ts": "2026-04-20T23:30:03+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-20T23:00:02+02:00",
"ts": "2026-04-20T23:30:02+02:00",
"critical_risks": {
"RW01_pipeline_vide": {
"pipeline_keur": 0,
@@ -22,7 +22,7 @@
},
"RW12_burnout": {
"agents_cron_active": 15,
"load_5min": "3.69",
"load_5min": "3.47",
"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,8 +1,8 @@
{
"status": "ALIVE",
"ts": "2026-04-20T23:15:01.849687",
"last_heartbeat": "2026-04-20T23:15:01.849687",
"last_heartbeat_ts_epoch": 1776719701,
"ts": "2026-04-20T23:30:01.693376",
"last_heartbeat": "2026-04-20T23:30:01.693376",
"last_heartbeat_ts_epoch": 1776720601,
"tasks_today": 232,
"tasks_week": 574,
"agent_id": "blade-ops",

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"agent": "V42_MQL_Scoring_Agent_REAL",
"ts": "2026-04-20T21:20:01+00:00",
"ts": "2026-04-20T21:30:01+00:00",
"status": "DEPLOYED_AUTO",
"deployed": true,
"algorithm": "weighted_behavioral_signals",

View File

@@ -0,0 +1,14 @@
{
"tests": [
{
"test": "tree_loaded",
"status": "FAIL",
"modules": 0
}
],
"summary": {
"pass": 0,
"fail": 1,
"total": 1
}
}

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-04-20T23:00:04",
"timestamp": "2026-04-20T23:30:03",
"features": {
"total": 36,
"pass": 35
@@ -13,7 +13,7 @@
"score": 97.2,
"log": [
"=== UX AGENT v1.0 ===",
"Time: 2026-04-20 23:00:01",
"Time: 2026-04-20 23:30: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-20T21:29:34+00:00",
"ts": "2026-04-20T21:33:06+00:00",
"summary": {
"total_categories": 7,
"total_kpis": 56,

View File

@@ -99,50 +99,63 @@ if (isset($_mam) && $_mam) {
}
// === V103-NATURAL-MULTI-AGENT-ROUTER END ===
// === OPUS5-STUB-DISPATCHER-v1 (17avr) ===
// === OPUS5-STUB-DISPATCHER-v2 (20avr) greedy-fixed by Opus ===
// Route messages to opus4-wired stubs BEFORE fast-path/dynamic-resolver capture.
// This unlocks WEVIA autonomy: user types a stub trigger, the cmd executes immediately.
// v2 FIX: pre-score by trigger length DESC so longest/most-specific trigger wins.
// Doctrine #6 strike-rule: root cause was greedy first-match without specificity scoring.
if (isset($_mam) && $_mam) {
$__sd_msg = mb_strtolower(trim($_mam));
$__sd_stubs = @glob('/var/www/html/api/wired-pending/intent-opus4-*.php') ?: [];
$__sd_scored = [];
foreach ($__sd_stubs as $__sd_s) {
ob_start(); $__sd_info = @include $__sd_s; @ob_end_clean();
if (!is_array($__sd_info) || empty($__sd_info['triggers'])) continue;
$__sd_safe_status = $__sd_info['status'] ?? '';
if (!in_array($__sd_safe_status, ['EXECUTED', 'PENDING_APPROVAL'])) continue;
$__sd_best_len = 0; $__sd_best_trg = null;
foreach ($__sd_info['triggers'] as $__sd_trg) {
$__sd_trg = trim($__sd_trg);
$__sd_trg = trim((string)$__sd_trg);
if ($__sd_trg === '') continue;
$__sd_trg_lc = mb_strtolower($__sd_trg);
// ROOT-CAUSE-FIX 19avr v96: word boundary for short triggers (doctrine #13)
if (mb_strlen($__sd_trg_lc) <= 4) {
$__sd_match = (bool) preg_match('/\b' . preg_quote($__sd_trg_lc, '/') . '\b/ui', $__sd_msg);
$__sd_match = (bool) preg_match('/\\b' . preg_quote($__sd_trg_lc, '/') . '\\b/ui', $__sd_msg);
} else {
$__sd_match = (stripos($__sd_msg, $__sd_trg_lc) !== false);
}
if ($__sd_match) {
$__sd_cmd = $__sd_info['cmd'] ?? '';
$__sd_safe = false;
foreach (['/var/www/html/', 'echo ', 'curl ', 'php8.4 ', 'grep ', 'psql ', 'cat /var/log/'] as $__sd_p) {
if (stripos($__sd_cmd, $__sd_p) === 0 || stripos($__sd_cmd, " $__sd_p") !== false) { $__sd_safe = true; break; }
}
if (!$__sd_safe) continue;
$__sd_out = @shell_exec('timeout 15 ' . $__sd_cmd . ' 2>&1');
// ROOT-CAUSE-FIX-19avr: skip if output empty (doctrine #13, let cascade handle)
if (trim((string)$__sd_out) === '') continue;
header('Content-Type: application/json');
echo json_encode([
'response' => "Intent '{$__sd_info['name']}' executed (trigger: $__sd_trg)\n" . trim((string)$__sd_out),
'executed' => true,
'provider' => 'opus5-stub-dispatcher',
'intent' => $__sd_info['name'],
'trigger_matched' => $__sd_trg,
'output' => trim((string)$__sd_out)
]);
@file_put_contents('/tmp/opus5-dispatcher.log', date('c') . " MATCH intent={$__sd_info['name']} trg=$__sd_trg\n", FILE_APPEND);
exit;
if ($__sd_match && mb_strlen($__sd_trg_lc) > $__sd_best_len) {
$__sd_best_len = mb_strlen($__sd_trg_lc);
$__sd_best_trg = $__sd_trg;
}
}
if ($__sd_best_trg !== null) {
$__sd_scored[] = ['stub'=>$__sd_s, 'info'=>$__sd_info, 'len'=>$__sd_best_len, 'trg'=>$__sd_best_trg];
}
}
// Sort DESC by trigger length - most specific wins
usort($__sd_scored, function($a, $b) { return $b['len'] - $a['len']; });
foreach ($__sd_scored as $__sd_w) {
$__sd_info = $__sd_w['info'];
$__sd_trg = $__sd_w['trg'];
$__sd_cmd = $__sd_info['cmd'] ?? '';
$__sd_safe = false;
foreach (['/var/www/html/', 'echo ', 'curl ', 'php8.4 ', 'grep ', 'psql ', 'cat /var/log/'] as $__sd_p) {
if (stripos($__sd_cmd, $__sd_p) === 0 || stripos($__sd_cmd, " $__sd_p") !== false) { $__sd_safe = true; break; }
}
if (!$__sd_safe) continue;
$__sd_out = @shell_exec('timeout 15 ' . $__sd_cmd . ' 2>&1');
if (trim((string)$__sd_out) === '') continue;
header('Content-Type: application/json');
echo json_encode([
'response' => "Intent '{$__sd_info['name']}' executed (trigger: $__sd_trg)\n" . trim((string)$__sd_out),
'executed' => true,
'provider' => 'opus5-stub-dispatcher-v2',
'intent' => $__sd_info['name'],
'trigger_matched' => $__sd_trg,
'trigger_score_len' => $__sd_w['len'],
'output' => trim((string)$__sd_out)
]);
@file_put_contents('/tmp/opus5-dispatcher.log', date('c') . " v2_MATCH intent={$__sd_info['name']} trg=$__sd_trg len={$__sd_w['len']}\n", FILE_APPEND);
exit;
}
}
// === OPUS5-STUB-DISPATCHER-v1 END ===