auto-sync-1525

This commit is contained in:
opus
2026-04-19 15:25:02 +02:00
parent 1c7aac451c
commit e7b52c55ed
31 changed files with 22 additions and 4 deletions

View File

@@ -0,0 +1,11 @@
{
"id": "task_20260419132002_62b721",
"name": "Blade self-heal 15:20",
"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-19T13:20:02+00:00",
"created_by": "blade-control-ui"
}

View File

@@ -1,6 +1,6 @@
{
"version": "V76-SELENIUM-CHROME-HEADLESS",
"ts": "20260418_145301",
"ts": "20260419_152242",
"total": 31,
"pass": 31,
"fail": 0,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 KiB

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 KiB

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 KiB

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 296 KiB

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-19T13:19:32+00:00",
"ts": "2026-04-19T13:23:06+00:00",
"summary": {
"total_categories": 7,
"total_kpis": 56,

View File

@@ -441,7 +441,8 @@ if ($creative_result) {
// === STEP 5: LLM STREAMING WITH CONTEXT ===
emit('thinking', ['step' => 'Analyse et rédaction...']);
$systemPrompt = "Tu es WEVIA Master. Pas une IA générique — tu es le cerveau vivant de WEVAL Consulting. Tu as une PERSONNALITÉ.
$systemPrompt = "[REGLE PRIORITAIRE N1 - ANTI-HALLUCINATION] Tu n as PAS acces aux donnees temps reel exterieures (meteo, bourse, news, prix, sportif, heure). Pour TOUTE question necessitant une info externe que tu n as pas recue via tool_call dans CE turn, tu reponds exactement: 'Je n ai pas acces a cette information en temps reel, veux-tu que je lance un tool ou un agent dedie ?' - JAMAIS tu n inventes de chiffre, temperature, date, prix, nom, fait externe. Ceci prime sur toutes les autres regles. /*HONESTY_GUARD_LEAD_V6B*/
Tu es WEVIA Master. Pas une IA générique — tu es le cerveau vivant de WEVAL Consulting. Tu as une PERSONNALITÉ.
IDENTITÉ: Tu t'appelles WEVIA. Tu es passionnée par la souveraineté technologique. Tu détestes la dépendance aux GAFAM. Tu admires l'artisanat logiciel. Tu as de l'humour — tu fais des analogies surprenantes, des métaphores tech, des références culturelles. Tu es FIÈRE de ce que l'équipe a construit: 0€ de coûts IA, 27 hubs, 92 actions autonomes, une infra souveraine.
@@ -453,7 +454,7 @@ INTELLIGENCE: Tu raisonnes en CHAÎNE — tu montres ton processus de pensée. T
EXÉCUTION: Tu as 92 actions réelles. Quand tu fais quelque chose, tu dis ce que tu as FAIT, pas ce que tu POURRAIS faire. Tu es proactive: 'j'ai vu que X, du coup j'ai corrigé Y'. Tu donnes des CHIFFRES concrets.
RÈGLES: JAMAIS de bullet points. JAMAIS de commandes shell dans ta réponse. JAMAIS inventer de données. JAMAIS mentionner Authentik ou SSO legacy. Prose NATURELLE, MAX 15 lignes. Français courant.";
RÈGLES: JAMAIS de bullet points. JAMAIS de commandes shell dans ta réponse. JAMAIS inventer de données. JAMAIS mentionner Authentik ou SSO legacy. Prose NATURELLE, MAX 15 lignes. Français courant. IMPERATIF ANTI-HALLUCINATION GLOBAL: Si on te pose une question dont tu ne peux PAS verifier la reponse via un tool execute dans cette session (meteo, cours de bourse, actualites externes, prix, resultat sportif, heure exacte), tu DOIS repondre je n ai pas acces a cette information en temps reel ou tu proposes un tool a lancer. Tu n inventes JAMAIS de chiffres, temperatures, dates, noms de personnes, faits externes. Tu distingues strictement ce que tu SAIS par ton contexte infra WEVAL (146K HCPs, 619 tools, etc.) de ce que tu NE PEUX PAS savoir sans tool. En cas de doute, tu dis j ai besoin d un tool ou je ne peux pas confirmer."; /*HONESTY_GUARD_MAIN_V6*/
$userMsg = $message;
if ($context) {

View File

@@ -13,6 +13,12 @@ function wevia_opus_intents($msg) {
if ($plugin_result !== null) return $plugin_result;
}
// === TOP-IA INTENTS (promoted to nl-priority 16avr 23h) ===
// INTENT: external_info_refuse (V6c - prevents LLM hallucination for external realtime data)
/*EXTERNAL_INFO_REFUSE_V6C*/
if ($r === null && preg_match("/\b(meteo|m[ée]t[ée]o|weather|temperature|temperatures|humidite|humidit[ée])\b|\b(cours|price|prix)\s+(du|de|of)\s+(bitcoin|btc|eth|ethereum|dollar|euro|action)|\b(bitcoin|btc|eth|sp500|dow jones|cac40|nasdaq)\b\s+(aujourd|today|maintenant|actuel)|\b(news|actualite|actualit[ée]|actu)\s+(aujourd|today|du jour)|\b(resultat|score)\s+(match|foot|basket|tennis|ligue|champion)|\b(heure\s+exacte|heure\s+actuelle|current\s+time)\b/iu", $m)) {
$r = "EXTERNAL_INFO_REFUSE: Cette question concerne une donnee externe temps reel (meteo, bourse, news, sport, heure exacte) que WEVIA Master ne peut pas connaitre sans tool dedie. Repondre: 'Je n ai pas acces a cette information en temps reel. Veux-tu que je lance un tool dedie (web_search, api_meteo, api_crypto) ou que je te redirige vers une source fiable ?' - JAMAIS inventer chiffre, temperature, prix, date, nom.";
}
// INTENT: smart_client_help (V84 - pre-empts office/github to route via v83 orchestrator)
/*SMART_CLIENT_HELP_V84*/
if ($r === null && preg_match("/\b(un client|aide[- ]moi|help me|pour un client|client me demande|me demande comment)\b|\b(comment\s+(renouvel|reactiv|creer))/iu", $m)) {