This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"generated_at": "2026-04-19T19:45:01.642938",
|
||||
"generated_at": "2026-04-19T19:50:01.225679",
|
||||
"stats": {
|
||||
"total": 473,
|
||||
"pending": 907,
|
||||
"total": 474,
|
||||
"pending": 909,
|
||||
"kaouther_surfaced": 29,
|
||||
"chrome_surfaced": 10,
|
||||
"notif_only_done": 0,
|
||||
"autofix_archived": 0,
|
||||
"cerebras_archived": 0,
|
||||
"older_3d_archived": 0,
|
||||
"unknown": 434,
|
||||
"unknown": 435,
|
||||
"errors": 0
|
||||
},
|
||||
"actions": [
|
||||
|
||||
11
api/blade-tasks/task_20260419175001_a30b7d.json
Normal file
11
api/blade-tasks/task_20260419175001_a30b7d.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "task_20260419175001_a30b7d",
|
||||
"name": "Blade self-heal 19:50",
|
||||
"type": "powershell",
|
||||
"command": "\n# Blade self-heal\nWrite-Host \"Self-heal triggered $(Get-Date)\"\n$agentProc = Get-Process powershell | Where-Object { $_.CommandLine -match 'sentinel-agent' }\nif (!$agentProc) {\n Write-Host \"Agent not running, starting...\"\n Start-Process powershell -ArgumentList \"-ExecutionPolicy\",\"Bypass\",\"-File\",\"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" -WindowStyle Hidden\n}\n# Clear stale tasks > 3 days locally\n$cutoff = (Get-Date).AddDays(-3)\nGet-ChildItem \"C:\\ProgramData\\WEVAL\\tasks\\*.json\" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff } | Move-Item -Destination \"C:\\ProgramData\\WEVAL\\tasks\\archived\\\" -Force -ErrorAction SilentlyContinue\nWrite-Host \"Self-heal complete\"\n",
|
||||
"cmd": "\n# Blade self-heal\nWrite-Host \"Self-heal triggered $(Get-Date)\"\n$agentProc = Get-Process powershell | Where-Object { $_.CommandLine -match 'sentinel-agent' }\nif (!$agentProc) {\n Write-Host \"Agent not running, starting...\"\n Start-Process powershell -ArgumentList \"-ExecutionPolicy\",\"Bypass\",\"-File\",\"C:\\ProgramData\\WEVAL\\sentinel-agent.ps1\" -WindowStyle Hidden\n}\n# Clear stale tasks > 3 days locally\n$cutoff = (Get-Date).AddDays(-3)\nGet-ChildItem \"C:\\ProgramData\\WEVAL\\tasks\\*.json\" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff } | Move-Item -Destination \"C:\\ProgramData\\WEVAL\\tasks\\archived\\\" -Force -ErrorAction SilentlyContinue\nWrite-Host \"Self-heal complete\"\n",
|
||||
"priority": "high",
|
||||
"status": "pending",
|
||||
"created": "2026-04-19T17:50:01+00:00",
|
||||
"created_by": "blade-control-ui"
|
||||
}
|
||||
@@ -1,27 +1,27 @@
|
||||
{
|
||||
"ok": true,
|
||||
"agent": "V42_MQL_Scoring_Agent_REAL",
|
||||
"ts": "2026-04-19T17:46:08+00:00",
|
||||
"ts": "2026-04-19T17:50:01+00:00",
|
||||
"status": "DEPLOYED_AUTO",
|
||||
"deployed": true,
|
||||
"algorithm": "weighted_behavioral_signals",
|
||||
"signals_tracked": {
|
||||
"wtp_engagement": 100,
|
||||
"chat_engagement": 0,
|
||||
"chat_engagement": 24,
|
||||
"roi_tool": 0,
|
||||
"email_opened": 0
|
||||
},
|
||||
"avg_score": 25,
|
||||
"avg_score": 31,
|
||||
"mql_threshold": 50,
|
||||
"sql_threshold": 75,
|
||||
"leads_captured": 48,
|
||||
"mql_auto_scored": 20,
|
||||
"mql_auto_scored": 21,
|
||||
"sql_auto_scored": 8,
|
||||
"mql_auto_pct": 41,
|
||||
"mql_auto_pct": 43,
|
||||
"improvement_vs_manual": {
|
||||
"before_manual_pct": 33.3,
|
||||
"after_auto_pct": 41,
|
||||
"delta": 7.700000000000003
|
||||
"after_auto_pct": 43,
|
||||
"delta": 9.700000000000003
|
||||
},
|
||||
"paperclip_db_ok": false,
|
||||
"paperclip_tables": 0,
|
||||
|
||||
@@ -542,5 +542,69 @@ function renderServices(){
|
||||
|
||||
load();
|
||||
</script>
|
||||
<!-- V67 ERP AGENTS REGISTRY BADGE ENRICHMENT (injected by Opus 19avr) -->
|
||||
<style>
|
||||
.v67-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.3);vertical-align:middle}
|
||||
.v67-savings{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;background:rgba(251,191,36,.12);color:#fbbf24;border:1px solid rgba(251,191,36,.25);vertical-align:middle}
|
||||
.v67-kpi{position:fixed;bottom:16px;right:16px;background:rgba(15,23,42,.92);border:1px solid rgba(148,163,184,.25);padding:10px 14px;border-radius:10px;font-size:.78rem;color:#e2e8f0;backdrop-filter:blur(8px);z-index:999;max-width:280px}
|
||||
.v67-kpi b{color:#22c55e}
|
||||
.v67-kpi .s{color:#fbbf24;font-weight:700}
|
||||
</style>
|
||||
<script>
|
||||
(function(){
|
||||
var tries=0,max=30;
|
||||
function norm(s){return (s||'').toLowerCase().replace(/[^a-z0-9]/g,'');}
|
||||
function enrich(){
|
||||
tries++;
|
||||
if(tries>max) return;
|
||||
fetch('/api/wevia-v67-erp-agents-registry.php?t='+Date.now())
|
||||
.then(r=>r.json())
|
||||
.then(function(d){
|
||||
if(!d||!d.agents)return;
|
||||
var byName={};
|
||||
d.agents.forEach(function(a){byName[norm(a.name)]=a;});
|
||||
// Find all agent-name elements rendered by V65 (delayed by JS)
|
||||
var items=document.querySelectorAll('.gap-item, .erp-gap, [class*="agent"], strong, .gap-row');
|
||||
var hits=0;
|
||||
items.forEach(function(el){
|
||||
var t=(el.textContent||'').trim();
|
||||
var k=norm(t);
|
||||
// Try direct match or contains
|
||||
var match=byName[k];
|
||||
if(!match){
|
||||
for(var key in byName){
|
||||
if(k.length>8 && (k.indexOf(key)>=0 || key.indexOf(k)>=0)){match=byName[key];break;}
|
||||
}
|
||||
}
|
||||
if(match && !el.querySelector('.v67-badge')){
|
||||
var b=document.createElement('span');
|
||||
b.className='v67-badge';
|
||||
b.textContent='✅ Registered';
|
||||
b.title='Agent V67 registry • dept: '+match.department;
|
||||
var s=document.createElement('span');
|
||||
s.className='v67-savings';
|
||||
s.textContent='💰 '+Math.round((match.savings_eur_year||0)/1000)+'k€/an';
|
||||
el.appendChild(b);el.appendChild(s);
|
||||
hits++;
|
||||
}
|
||||
});
|
||||
if(hits===0 && tries<max){setTimeout(enrich,800);return;}
|
||||
// Global KPI card
|
||||
if(!document.getElementById('v67-kpi')){
|
||||
var k=document.createElement('div');
|
||||
k.id='v67-kpi';k.className='v67-kpi';
|
||||
k.innerHTML='<div><b>V67 Registry</b> — '+d.erp_agents+' ERP agents / '+d.total_agents+' total</div>'+
|
||||
'<div>Savings potentiel : <span class="s">'+(d.savings_eur_year_total/1000000).toFixed(2)+' M€/an</span></div>'+
|
||||
'<div style="opacity:.7;font-size:.7rem;margin-top:4px">Paperclip source-of-truth • API V67</div>';
|
||||
document.body.appendChild(k);
|
||||
}
|
||||
}).catch(function(e){if(tries<max)setTimeout(enrich,1000);});
|
||||
}
|
||||
// Start after initial V65 render
|
||||
if(document.readyState==='complete') setTimeout(enrich,1500);
|
||||
else window.addEventListener('load',function(){setTimeout(enrich,1500);});
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -144,25 +144,30 @@ header .pitch {
|
||||
.spinner { width: 42px; height: 42px; border: 3px solid var(--bg-3); border-top-color: var(--accent); border-radius: 50%; margin: 0 auto 18px; animation: spin 1s linear infinite; }
|
||||
@keyframes spin { to { transform: rotate(360deg); } }
|
||||
|
||||
/* === OPUS RESPONSIVE FIX 19avr — append-only, doctrine #14 === */
|
||||
/* === OPUS RESPONSIVE FIX v2 19avr — append-only, doctrine #14 === */
|
||||
@media(max-width: 480px) {
|
||||
.container { padding: 16px 12px 40px; }
|
||||
header h1 { font-size: 22px; }
|
||||
header .sub { font-size: 12.5px; }
|
||||
html, body { overflow-x: hidden; max-width: 100vw; }
|
||||
.container { padding: 16px 12px 40px; max-width: 100vw; }
|
||||
header, header > * { width: 100%; max-width: 100%; }
|
||||
header h1 { font-size: 22px; word-break: break-word; }
|
||||
header .sub { font-size: 12.5px; word-break: break-word; max-width: 100%; }
|
||||
.pitch, header .pitch { word-break: break-word; overflow-wrap: anywhere; font-size: 12px; }
|
||||
.kpi-strip { grid-template-columns: 1fr; gap: 10px; }
|
||||
.erp-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
|
||||
.pp-grid { grid-template-columns: 1fr; gap: 12px; }
|
||||
.filter-bar { gap: 4px; }
|
||||
.dogfood { padding: 16px; }
|
||||
.filter-bar { gap: 4px; flex-wrap: wrap; }
|
||||
.dogfood { padding: 16px; grid-template-columns: 1fr; }
|
||||
.dogfood .icon { font-size: 36px; }
|
||||
.dogfood .stat-v { font-size: 20px; }
|
||||
.actions { flex-wrap: wrap; }
|
||||
.actions { flex-wrap: wrap; width: 100%; }
|
||||
.actions .btn { font-size: 11.5px; padding: 6px 10px; }
|
||||
.pp-card, .erp-card { max-width: 100%; word-break: break-word; }
|
||||
pre, code { word-break: break-all; white-space: pre-wrap; }
|
||||
}
|
||||
@media(max-width: 360px) {
|
||||
.erp-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
/* === OPUS RESPONSIVE FIX END === */
|
||||
/* === OPUS RESPONSIVE FIX v2 END === */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Reference in New Issue
Block a user