auto-sync via WEVIA git_sync_all intent 2026-04-23T23:08:20+02:00
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
Opus
2026-04-23 23:08:20 +02:00
parent 66a5f48a11
commit d3bea0dc15
9 changed files with 294 additions and 114 deletions

View File

@@ -0,0 +1,45 @@
{
"timestamp": "2026-04-23T21:05:00+00:00",
"phase": 9,
"author": "opus",
"priority": "HIGH",
"alerts": [
{
"id": "providers_cascade_down",
"severity": "HIGH",
"details": {
"groq": "organization_restricted — provider banned, cascade fallback needed",
"sambanova": "PAYMENT_METHOD_REQUIRED — billing units=0, recharge needed",
"impact": "Cerebras + Mistral restent ok, mais cascade fragilisee"
},
"action_yacine": "escalade Groq support / recharge SambaNova"
},
{
"id": "disk_usage_critical",
"severity": "HIGH",
"details": {
"used": "139G / 150G = 97%",
"free": "5.3G",
"top_contributors": {
"/opt/gitea": "16G",
"/opt/wevads": "6.1G",
"/opt/fmgapp": "5.0G",
"/opt/weval-l99": "4.5G",
"/var/lib/docker": "22G (8.37GB images)",
"/tmp": "1.7G"
},
"auto_prune_effect": "opus_disk_prune_safe libere ~100M seulement",
"growth_session": "+15G en 20min"
},
"action_yacine": "arbitrage repos gitea + cleanup /opt/wevads logs + prune docker images inutilisees"
},
{
"id": "chatbots_core_not_migrable",
"severity": "MEDIUM",
"details": {
"excluded": ["wevia-stream-api", "wevia-anthropic", "wevia-autonomous", "fast", "weval-ia-fast", "social-signals-hub"],
"rationale": "Doctrine 148 exclusions - CORE ou complexes ou risque cascade"
}
}
]
}

View File

@@ -1,88 +1,88 @@
{
"Agile Maturity Assessor": "https://api.dicebear.com/9.x/adventurer/svg?seed=AgileMaturity",
"ArchScan": "https://api.dicebear.com/9.x/adventurer/svg?seed=ArchScan",
"Attribution Modeler": "https://api.dicebear.com/9.x/adventurer/svg?seed=Attribution",
"Attrition Predictor": "https://api.dicebear.com/9.x/adventurer/svg?seed=Attrition",
"Audit Trail Watcher": "https://api.dicebear.com/9.x/adventurer/svg?seed=AuditTrail",
"AutoFix": "https://api.dicebear.com/9.x/adventurer/svg?seed=AutoFix",
"Blade": "https://api.dicebear.com/9.x/adventurer/svg?seed=Blade",
"Budget Variance Watchdog": "https://api.dicebear.com/9.x/adventurer/svg?seed=BudgetWatch",
"CAC Optimizer": "https://api.dicebear.com/9.x/adventurer/svg?seed=CAC",
"CAPA Closer": "https://api.dicebear.com/9.x/adventurer/svg?seed=CAPA",
"CPQ AI": "https://api.dicebear.com/9.x/adventurer/svg?seed=CPQ",
"Carbon Tracker": "https://api.dicebear.com/9.x/adventurer/svg?seed=Carbon",
"Cash Flow Predictor AI": "https://api.dicebear.com/9.x/adventurer/svg?seed=CashFlow",
"Cerebras": "https://api.dicebear.com/9.x/adventurer/svg?seed=Cerebras",
"Churn Predictor": "https://api.dicebear.com/9.x/adventurer/svg?seed=Churn",
"Collection AI Agent": "https://api.dicebear.com/9.x/adventurer/svg?seed=Collection",
"Compliance Checker": "https://api.dicebear.com/9.x/adventurer/svg?seed=Compliance",
"Consensus": "https://api.dicebear.com/9.x/adventurer/svg?seed=Consensus",
"Content Generator": "https://api.dicebear.com/9.x/adventurer/svg?seed=Content",
"Contract Compliance": "https://api.dicebear.com/9.x/adventurer/svg?seed=Contract",
"Contract Watcher": "https://api.dicebear.com/9.x/adventurer/svg?seed=ContractWatch",
"CrowdSec": "https://api.dicebear.com/9.x/adventurer/svg?seed=CrowdSec",
"DORA Metrics Agent": "https://api.dicebear.com/9.x/adventurer/svg?seed=DORA",
"DeerFlow": "https://api.dicebear.com/9.x/adventurer/svg?seed=DeerFlow",
"Definition of Done Auditor": "https://api.dicebear.com/9.x/adventurer/svg?seed=DoD",
"Demand Forecast Pro": "https://api.dicebear.com/9.x/adventurer/svg?seed=Demand",
"Dependency Mapper": "https://api.dicebear.com/9.x/adventurer/svg?seed=Dependency",
"DevOps": "https://api.dicebear.com/9.x/adventurer/svg?seed=DevOps",
"Director": "https://api.dicebear.com/9.x/adventurer/svg?seed=joy",
"Dispatcher": "https://api.dicebear.com/9.x/adventurer/svg?seed=Dispatcher",
"Docker": "https://api.dicebear.com/9.x/adventurer/svg?seed=Docker",
"Dunning Router": "https://api.dicebear.com/9.x/adventurer/svg?seed=Dunning",
"Duplicate Payment Detector": "https://api.dicebear.com/9.x/adventurer/svg?seed=DupPayment",
"Ethica": "https://api.dicebear.com/9.x/adventurer/svg?seed=Ethica",
"FX Hedger": "https://api.dicebear.com/9.x/adventurer/svg?seed=FXHedger",
"Fail2Ban": "https://api.dicebear.com/9.x/adventurer/svg?seed=Fail2Ban",
"Fast Close Orchestrator": "https://api.dicebear.com/9.x/adventurer/svg?seed=FastClose",
"Fiability": "https://api.dicebear.com/9.x/adventurer/svg?seed=Fiability",
"Forecast AI": "https://api.dicebear.com/9.x/adventurer/svg?seed=Forecast",
"Fraud Detection Agent": "https://api.dicebear.com/9.x/adventurer/svg?seed=FraudDetectionAgent",
"GDPR Auditor": "https://api.dicebear.com/9.x/adventurer/svg?seed=GDPR",
"Groq": "https://api.dicebear.com/9.x/adventurer/svg?seed=Groq",
"Incident Watcher": "https://api.dicebear.com/9.x/adventurer/svg?seed=Incident",
"Invoice Auto-Match": "https://api.dicebear.com/9.x/adventurer/svg?seed=InvoiceMatch",
"Kanban Flow Optimizer": "https://api.dicebear.com/9.x/adventurer/svg?seed=Kanban",
"L99 Pilot": "https://api.dicebear.com/9.x/adventurer/svg?seed=L99Pilot",
"Lead Qualifier": "https://api.dicebear.com/9.x/adventurer/svg?seed=LeadQual",
"MFA Enforcer": "https://api.dicebear.com/9.x/adventurer/svg?seed=MFAEnforcer",
"Master Router": "https://api.dicebear.com/9.x/adventurer/svg?seed=MasterRouter",
"MiroFish": "https://api.dicebear.com/9.x/adventurer/svg?seed=MiroFish",
"Monitor": "https://api.dicebear.com/9.x/adventurer/svg?seed=Monitor",
"NPS Analyzer": "https://api.dicebear.com/9.x/adventurer/svg?seed=NPS",
"NonReg": "https://api.dicebear.com/9.x/adventurer/svg?seed=NonReg",
"OEE Live": "https://api.dicebear.com/9.x/adventurer/svg?seed=OEELive",
"OKR Alignment Tracker": "https://api.dicebear.com/9.x/adventurer/svg?seed=OKR",
"OTD Optimizer": "https://api.dicebear.com/9.x/adventurer/svg?seed=OTD",
"Ollama": "https://api.dicebear.com/9.x/adventurer/svg?seed=Ollama",
"Onboarding Bot": "https://api.dicebear.com/9.x/adventurer/svg?seed=OnboardingBot",
"PMTA": "https://api.dicebear.com/9.x/adventurer/svg?seed=PMTA",
"Paperclip": "https://api.dicebear.com/9.x/adventurer/svg?seed=Paperclip",
"Patent Scanner": "https://api.dicebear.com/9.x/adventurer/svg?seed=Patent",
"Payroll Accuracy AI": "https://api.dicebear.com/9.x/adventurer/svg?seed=Payroll",
"Pipeline Scorer": "https://api.dicebear.com/9.x/adventurer/svg?seed=PipelineScore",
"PoC Tracker": "https://api.dicebear.com/9.x/adventurer/svg?seed=PoC",
"Predictive Maintenance": "https://api.dicebear.com/9.x/adventurer/svg?seed=PredictiveMaintenance",
"Product Owner Assistant": "https://api.dicebear.com/9.x/adventurer/svg?seed=PO",
"Quality AI Vision": "https://api.dicebear.com/9.x/adventurer/svg?seed=QualityAIVision",
"Registry": "https://api.dicebear.com/9.x/adventurer/svg?seed=Registry",
"Retrospective Analyzer": "https://api.dicebear.com/9.x/adventurer/svg?seed=Retro",
"SAFe RTE Agent": "https://api.dicebear.com/9.x/adventurer/svg?seed=RTE",
"SambaNova": "https://api.dicebear.com/9.x/adventurer/svg?seed=SambaNova",
"Scraper": "https://api.dicebear.com/9.x/adventurer/svg?seed=Scraper",
"Scrum Master Copilot": "https://api.dicebear.com/9.x/adventurer/svg?seed=ScrumMaster",
"Security": "https://api.dicebear.com/9.x/adventurer/svg?seed=Security",
"Sentinel": "https://api.dicebear.com/9.x/adventurer/svg?seed=Sentinel",
"Skills Matcher": "https://api.dicebear.com/9.x/adventurer/svg?seed=Skills",
"Stockout Prevention": "https://api.dicebear.com/9.x/adventurer/svg?seed=Stockout",
"Story Point Estimator AI": "https://api.dicebear.com/9.x/adventurer/svg?seed=StoryPoint",
"Supplier Risk Monitor": "https://api.dicebear.com/9.x/adventurer/svg?seed=Supplier",
"Sustainability Reporter": "https://api.dicebear.com/9.x/adventurer/svg?seed=Sustain",
"Takt Time Monitor": "https://api.dicebear.com/9.x/adventurer/svg?seed=TaktTimeMonitor",
"Talent Scout": "https://api.dicebear.com/9.x/adventurer/svg?seed=Talent",
"Tax Validator": "https://api.dicebear.com/9.x/adventurer/svg?seed=TaxValid",
"Velocity Tracker AI": "https://api.dicebear.com/9.x/adventurer/svg?seed=Velocity",
"WEVCODE": "https://api.dicebear.com/9.x/adventurer/svg?seed=WEVCODE",
"WEVIA Master": "https://api.dicebear.com/9.x/adventurer/svg?seed=nova"
"Agile Maturity Assessor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=AgileMaturity",
"ArchScan": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=ArchScan",
"Attribution Modeler": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Attribution",
"Attrition Predictor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Attrition",
"Audit Trail Watcher": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=AuditTrail",
"AutoFix": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=AutoFix",
"Blade": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Blade",
"Budget Variance Watchdog": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=BudgetWatch",
"CAC Optimizer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=CAC",
"CAPA Closer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=CAPA",
"CPQ AI": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=CPQ",
"Carbon Tracker": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Carbon",
"Cash Flow Predictor AI": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=CashFlow",
"Cerebras": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Cerebras",
"Churn Predictor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Churn",
"Collection AI Agent": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Collection",
"Compliance Checker": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Compliance",
"Consensus": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Consensus",
"Content Generator": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Content",
"Contract Compliance": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Contract",
"Contract Watcher": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=ContractWatch",
"CrowdSec": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=CrowdSec",
"DORA Metrics Agent": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=DORA",
"DeerFlow": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=DeerFlow",
"Definition of Done Auditor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=DoD",
"Demand Forecast Pro": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Demand",
"Dependency Mapper": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Dependency",
"DevOps": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=DevOps",
"Director": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=joy",
"Dispatcher": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Dispatcher",
"Docker": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Docker",
"Dunning Router": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Dunning",
"Duplicate Payment Detector": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=DupPayment",
"Ethica": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Ethica",
"FX Hedger": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=FXHedger",
"Fail2Ban": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Fail2Ban",
"Fast Close Orchestrator": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=FastClose",
"Fiability": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Fiability",
"Forecast AI": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Forecast",
"Fraud Detection Agent": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=FraudDetectionAgent",
"GDPR Auditor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=GDPR",
"Groq": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Groq",
"Incident Watcher": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Incident",
"Invoice Auto-Match": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=InvoiceMatch",
"Kanban Flow Optimizer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Kanban",
"L99 Pilot": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=L99Pilot",
"Lead Qualifier": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=LeadQual",
"MFA Enforcer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=MFAEnforcer",
"Master Router": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=MasterRouter",
"MiroFish": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=MiroFish",
"Monitor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Monitor",
"NPS Analyzer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=NPS",
"NonReg": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=NonReg",
"OEE Live": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=OEELive",
"OKR Alignment Tracker": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=OKR",
"OTD Optimizer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=OTD",
"Ollama": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Ollama",
"Onboarding Bot": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=OnboardingBot",
"PMTA": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=PMTA",
"Paperclip": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Paperclip",
"Patent Scanner": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Patent",
"Payroll Accuracy AI": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Payroll",
"Pipeline Scorer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=PipelineScore",
"PoC Tracker": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=PoC",
"Predictive Maintenance": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=PredictiveMaintenance",
"Product Owner Assistant": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=PO",
"Quality AI Vision": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=QualityAIVision",
"Registry": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Registry",
"Retrospective Analyzer": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Retro",
"SAFe RTE Agent": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=RTE",
"SambaNova": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=SambaNova",
"Scraper": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Scraper",
"Scrum Master Copilot": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=ScrumMaster",
"Security": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Security",
"Sentinel": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Sentinel",
"Skills Matcher": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Skills",
"Stockout Prevention": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Stockout",
"Story Point Estimator AI": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=StoryPoint",
"Supplier Risk Monitor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Supplier",
"Sustainability Reporter": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Sustain",
"Takt Time Monitor": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=TaktTimeMonitor",
"Talent Scout": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Talent",
"Tax Validator": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=TaxValid",
"Velocity Tracker AI": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=Velocity",
"WEVCODE": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=WEVCODE",
"WEVIA Master": "https:\/\/api.dicebear.com\/9.x\/adventurer\/svg?seed=nova"
}

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-23T21:03:41+00:00",
"ts": "2026-04-23T21:06:37+00:00",
"summary": {
"total_categories": 8,
"total_kpis": 64,

View File

@@ -1,25 +1,90 @@
<?php
// WEVIA autowire trigger endpoint - doctrine 147 (autonomy v1)
// Appele par intent-opus4-*-autowire : execute scripts pre-approuves de /opt/wevia-brain/scripts
// SECURITY: whitelist stricte des scripts executables
// WEVIA autowire trigger endpoint - doctrine 147 + 148 (presets)
// Whitelist + generic preset dispatcher
header('Content-Type: application/json');
$whitelist = [
'wire-mr-paperclip' => '/opt/wevia-brain/scripts/wire-mr-paperclip.sh',
'wire-wtp-live-ops' => '/opt/wevia-brain/scripts/wire-wtp-live-ops.sh',
'wevia-playwright-test' => '/opt/wevia-brain/scripts/wevia-playwright-test.sh',
// ajouter ici les futurs scripts approuves
'wire-mr-paperclip' => '/opt/wevia-brain/scripts/wire-mr-paperclip.sh',
'wire-wtp-live-ops' => '/opt/wevia-brain/scripts/wire-wtp-live-ops.sh',
'wevia-playwright-test' => '/opt/wevia-brain/scripts/wevia-playwright-test.sh',
];
// Presets dir (doctrine 148)
$presets_dir = '/opt/wevia-brain/presets';
$preset_runner = '/opt/wevia-brain/scripts/apply-preset.sh';
$action = $_GET['action'] ?? $_POST['action'] ?? '';
$action = preg_replace('/[^a-z0-9\-]/i','',$action);
// LIST available (for introspection)
if ($action === 'list') {
$presets_available = [];
if (is_dir($presets_dir)) {
foreach (glob("$presets_dir/*.json") as $p) {
$presets_available[] = basename($p, '.json');
}
}
echo json_encode([
'ok' => true,
'whitelist_actions' => array_keys($whitelist),
'presets_available' => $presets_available,
'presets_dir' => $presets_dir,
], JSON_PRETTY_PRINT);
exit;
}
// APPLY PRESET (doctrine 148)
if ($action === 'apply-preset') {
$preset = $_GET['preset'] ?? $_POST['preset'] ?? '';
$preset = preg_replace('/[^a-z0-9\-]/i','',$preset);
if (!$preset) {
echo json_encode(['ok' => false, 'err' => 'preset_required']);
exit;
}
$preset_file = "$presets_dir/$preset.json";
if (!is_file($preset_file)) {
$available = array_map(fn($p) => basename($p, '.json'), glob("$presets_dir/*.json"));
echo json_encode(['ok' => false, 'err' => 'preset_not_found', 'preset' => $preset, 'available' => $available]);
exit;
}
$log_id = bin2hex(random_bytes(6));
$start = microtime(true);
$cmd = "timeout 30 sudo bash $preset_runner " . escapeshellarg($preset) . " 2>&1";
$output = @shell_exec($cmd);
$duration_ms = round((microtime(true) - $start) * 1000);
$parsed = json_decode(trim((string)$output), true);
// Parfois output contient des lignes debug puis JSON final
if (!is_array($parsed)) {
$lines = explode("
", trim((string)$output));
foreach (array_reverse($lines) as $l) {
$p = json_decode(trim($l), true);
if (is_array($p)) { $parsed = $p; break; }
}
}
@file_put_contents('/tmp/wevia-autowire-trigger.log',
date('c') . " apply-preset=$preset log_id=$log_id duration={$duration_ms}ms ok=" . ($parsed['ok'] ?? '?') . "
", FILE_APPEND);
echo json_encode([
'ok' => true,
'action' => 'apply-preset',
'preset' => $preset,
'log_id' => $log_id,
'duration_ms' => $duration_ms,
'raw_output' => trim((string)$output),
'result' => $parsed,
], JSON_UNESCAPED_SLASHES);
exit;
}
// Classic whitelist action
if (!$action || !isset($whitelist[$action])) {
echo json_encode([
'ok' => false,
'err' => 'unknown_action',
'available' => array_keys($whitelist),
'hint' => 'GET ?action=wire-mr-paperclip'
'available_actions' => array_keys($whitelist),
'presets_endpoint' => '?action=list',
'hint' => 'GET ?action=<action> OR ?action=apply-preset&preset=<preset>'
]);
exit;
}
@@ -32,30 +97,26 @@ if (!is_file($script) || !is_executable($script)) {
$log_id = bin2hex(random_bytes(6));
$start = microtime(true);
// Execute with 30s timeout
$output = @shell_exec("timeout 150 sudo bash $script 2>&1");
$duration_ms = round((microtime(true) - $start) * 1000);
// Tenter parse JSON du script output
$parsed = json_decode(trim((string)$output), true);
$response = [
if (!is_array($parsed)) {
$lines = explode("
", trim((string)$output));
foreach (array_reverse($lines) as $l) {
$p = json_decode(trim($l), true);
if (is_array($p)) { $parsed = $p; break; }
}
}
@file_put_contents('/tmp/wevia-autowire-trigger.log',
date('c') . " action=$action log_id=$log_id duration={$duration_ms}ms ok=" . ($parsed['ok'] ?? '?') . "
", FILE_APPEND);
echo json_encode([
'ok' => true,
'action' => $action,
'script' => $script,
'log_id' => $log_id,
'duration_ms' => $duration_ms,
'raw_output' => trim((string)$output),
];
if (is_array($parsed)) {
$response['result'] = $parsed;
}
// Log
@file_put_contents('/tmp/wevia-autowire-trigger.log',
date('c') . " action=$action log_id=$log_id duration={$duration_ms}ms ok=" . ($parsed['ok'] ?? '?') . "
",
FILE_APPEND);
echo json_encode($response, JSON_UNESCAPED_SLASHES);
'result' => $parsed,
], JSON_UNESCAPED_SLASHES);

View File

@@ -0,0 +1,21 @@
<?php
// OPUS 4.7 - 2026-04-23 - apply-preset intent (doctrine 148)
// Permet a WEVIA de declencher un preset wire-html configure
// Exemple : message "apply preset live-ops-in-all-ia-hub"
return array(
'name' => 'apply_preset',
'triggers' => array(
0 => 'apply preset live-ops-in-all-ia-hub',
1 => 'wire live-ops all-ia-hub',
2 => 'apply preset live-ops-in-wevia-master',
3 => 'wire live-ops wevia master',
4 => 'list presets',
5 => 'list wevia presets',
6 => 'presets disponibles',
),
'cmd' => 'curl -sk "https://weval-consulting.com/api/wevia-autowire-trigger.php?action=list"',
'status' => 'EXECUTED',
'source' => 'opus-doctrine-148',
'priority_tier' => '00',
'description' => 'Liste les presets wire-html disponibles. Pour apply: utiliser directement endpoint avec &preset=<n>.',
);

View File

@@ -0,0 +1,19 @@
<?php
return array (
'name' => 'chatbot_memory_scan_all',
'triggers' =>
array (
0 => 'scan memoire tous chatbots doctrine 146',
1 => 'verifie memoire tous les chatbots',
2 => 'test memoire tous chatbots doctrine',
3 => 'audit memoire chatbot doctrine 146',
4 => 'doctrine 146 scan all chatbots',
5 => 'valider memoire tous chatbots',
6 => 'health memoire chatbots all',
),
'cmd' => '/var/www/html/api/wevia-chatbot-mem-smart.sh',
'status' => 'EXECUTED',
'created_at' => '2026-04-23T21:05:00+00:00',
'source' => 'opus-phase9-chatbot_memory_scan_all',
'doctrine' => '146-147-148',
);

View File

@@ -0,0 +1,15 @@
<?php
return array(
'name' => 'wire_liveops_allhub',
'triggers' => array(
0 => 'wire liveops allhub',
1 => 'ajoute live ops all ia hub',
2 => 'cable live ops all-ia-hub',
3 => 'live ops dans all hub',
),
'cmd' => 'curl -sk "https://weval-consulting.com/api/wevia-autowire-trigger.php?action=apply-preset&preset=live-ops-in-all-ia-hub"',
'status' => 'EXECUTED',
'source' => 'opus-doctrine-148',
'priority_tier' => '00',
'description' => 'Applique preset live-ops-in-all-ia-hub.',
);

View File

@@ -0,0 +1,15 @@
<?php
return array(
'name' => 'wire_liveops_master',
'triggers' => array(
0 => 'wire liveops master',
1 => 'ajoute live ops wevia master',
2 => 'cable live ops master',
3 => 'live ops dans wevia master',
),
'cmd' => 'curl -sk "https://weval-consulting.com/api/wevia-autowire-trigger.php?action=apply-preset&preset=live-ops-in-wevia-master"',
'status' => 'EXECUTED',
'source' => 'opus-doctrine-148',
'priority_tier' => '00',
'description' => 'Applique preset live-ops-in-wevia-master.',
);

View File

@@ -896,4 +896,8 @@ const _origAddA = typeof addMsg === 'function' ? addMsg : null;
<!-- /WAVE 265 Factory pill cross-page -->
</body>
<!-- WEVIA-LIVE-OPS-LINK-WM-v1 -->
<a href="/weval-live-ops.html" style="position:fixed;bottom:16px;right:16px;padding:10px 16px;background:linear-gradient(135deg,#e94560,#c03350);color:#fff;border-radius:8px;font-weight:700;font-size:13px;text-decoration:none;z-index:9999;box-shadow:0 4px 12px rgba(233,69,96,0.4)">Live Ops</a>
<!-- /WEVIA-LIVE-OPS-LINK-WM-v1 -->
</html>