AUTO-BACKUP 20260423-2150
This commit is contained in:
@@ -172,7 +172,7 @@
|
||||
},
|
||||
"Analyst 2": {
|
||||
"persona": "tool",
|
||||
"emoji": "🎯",
|
||||
"emoji": "🔎",
|
||||
"color": "#666",
|
||||
"role": "con",
|
||||
"isGap": false,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"agent": "V41_Risk_Escalation",
|
||||
"ts": "2026-04-23T21:30:04+02:00",
|
||||
"ts": "2026-04-23T21:45:04+02:00",
|
||||
"dg_alerts_active": 7,
|
||||
"wevia_life_stats_preview": "{
|
||||
"ok": true,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-04-23T21:40:02.315599",
|
||||
"generated_at": "2026-04-23T21:50:02.152860",
|
||||
"stats": {
|
||||
"total": 52,
|
||||
"pending": 33,
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
{
|
||||
"ok": true,
|
||||
"agent": "V42_MQL_Scoring_Agent_REAL",
|
||||
"ts": "2026-04-23T19:40:02+00:00",
|
||||
"ts": "2026-04-23T19:50:02+00:00",
|
||||
"status": "DEPLOYED_AUTO",
|
||||
"deployed": true,
|
||||
"algorithm": "weighted_behavioral_signals",
|
||||
"signals_tracked": {
|
||||
"wtp_engagement": 72,
|
||||
"wtp_engagement": 100,
|
||||
"chat_engagement": 0,
|
||||
"roi_tool": 0,
|
||||
"email_opened": 0
|
||||
},
|
||||
"avg_score": 18,
|
||||
"avg_score": 25,
|
||||
"mql_threshold": 50,
|
||||
"sql_threshold": 75,
|
||||
"leads_captured": 48,
|
||||
"mql_auto_scored": 19,
|
||||
"mql_auto_scored": 20,
|
||||
"sql_auto_scored": 8,
|
||||
"mql_auto_pct": 40,
|
||||
"mql_auto_pct": 41,
|
||||
"improvement_vs_manual": {
|
||||
"before_manual_pct": 33.3,
|
||||
"after_auto_pct": 40,
|
||||
"delta": 6.700000000000003
|
||||
"after_auto_pct": 41,
|
||||
"delta": 7.700000000000003
|
||||
},
|
||||
"paperclip_db_ok": true,
|
||||
"paperclip_tables": 2,
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"ok": true,
|
||||
"source": "truth_registry_unified",
|
||||
"built_at": "2026-04-23T19:40:01+00:00",
|
||||
"built_at": "2026-04-23T19:50:01+00:00",
|
||||
"agents_count": 1000,
|
||||
"agents_total": 1000,
|
||||
"skills_count": 20154,
|
||||
"skills_total": 20154,
|
||||
"intents_count": 2199,
|
||||
"intents_total": 2199,
|
||||
"intents_count": 2224,
|
||||
"intents_total": 2224,
|
||||
"brains_count": 25,
|
||||
"doctrines_count": 19,
|
||||
"dashboards_count": 117,
|
||||
@@ -20,7 +20,7 @@
|
||||
"counts": {
|
||||
"agents": 1000,
|
||||
"agents_total_live": 950,
|
||||
"intents": 2199,
|
||||
"intents": 2224,
|
||||
"skills_total": 20154,
|
||||
"brains": 25,
|
||||
"doctrines": 19,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"ok": true,
|
||||
"version": "V83-business-kpi",
|
||||
"ts": "2026-04-23T19:43:50+00:00",
|
||||
"ts": "2026-04-23T19:48:39+00:00",
|
||||
"summary": {
|
||||
"total_categories": 8,
|
||||
"total_kpis": 64,
|
||||
|
||||
@@ -9462,5 +9462,284 @@
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:44:55+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"754": {
|
||||
"name": "w274_arch_p3",
|
||||
"triggers": [
|
||||
"w274 arch p3"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arch_gold_19h48\";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r([\"bash\",\"-c\",\"sudo -n ls -dt \/opt\/wevads\/vault\/gold-auto-20260423* \/opt\/wevads\/vault\/gold-auto-20260424* 2>\/dev\/null | head -3\"]);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1\"],180);tarsz=r([\"bash\",\"-c\",\"sudo -n ls -lh \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz 2>&1\"]);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"newer\":newer.stdout[:300],\"df_before\":df1.stdout[-100:],\"tar_out\":tar.stdout[-200:]+tar.stderr[-100:],\"archive_size\":tarsz.stdout[:200],\"rm_result\":rm.stdout[:100],\"df_after\":df2.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:45:15+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"755": {
|
||||
"name": "w274_a0",
|
||||
"triggers": [
|
||||
"w274 a0"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h49\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:45:27+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"756": {
|
||||
"name": "w274_arch_p4",
|
||||
"triggers": [
|
||||
"w274 arch p4"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arch_gold_19h48\";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r([\"bash\",\"-c\",\"sudo -n ls -dt \/opt\/wevads\/vault\/gold-auto-20260423* \/opt\/wevads\/vault\/gold-auto-20260424* 2>\/dev\/null | head -3\"]);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1\"],180);tarsz=r([\"bash\",\"-c\",\"sudo -n ls -lh \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz 2>&1\"]);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"newer\":newer.stdout[:300],\"df_before\":df1.stdout[-100:],\"tar_out\":tar.stdout[-200:]+tar.stderr[-100:],\"archive_size\":tarsz.stdout[:200],\"rm_result\":rm.stdout[:100],\"df_after\":df2.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:45:38+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"757": {
|
||||
"name": "w274_a1",
|
||||
"triggers": [
|
||||
"w274 a1"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h49\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:45:46+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"758": {
|
||||
"name": "w274_arch_p5",
|
||||
"triggers": [
|
||||
"w274 arch p5"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arch_gold_19h48\";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r([\"bash\",\"-c\",\"sudo -n ls -dt \/opt\/wevads\/vault\/gold-auto-20260423* \/opt\/wevads\/vault\/gold-auto-20260424* 2>\/dev\/null | head -3\"]);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1\"],180);tarsz=r([\"bash\",\"-c\",\"sudo -n ls -lh \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz 2>&1\"]);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"newer\":newer.stdout[:300],\"df_before\":df1.stdout[-100:],\"tar_out\":tar.stdout[-200:]+tar.stderr[-100:],\"archive_size\":tarsz.stdout[:200],\"rm_result\":rm.stdout[:100],\"df_after\":df2.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:46:00+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"759": {
|
||||
"name": "w274_a2",
|
||||
"triggers": [
|
||||
"w274 a2"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h49\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:46:04+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"760": {
|
||||
"name": "w274_a3",
|
||||
"triggers": [
|
||||
"w274 a3"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h49\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-22avr.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:46:22+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"761": {
|
||||
"name": "w274_arch_p6",
|
||||
"triggers": [
|
||||
"w274 arch p6"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arch_gold_19h48\";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r([\"bash\",\"-c\",\"sudo -n ls -dt \/opt\/wevads\/vault\/gold-auto-20260423* \/opt\/wevads\/vault\/gold-auto-20260424* 2>\/dev\/null | head -3\"]);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1\"],180);tarsz=r([\"bash\",\"-c\",\"sudo -n ls -lh \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz 2>&1\"]);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"newer\":newer.stdout[:300],\"df_before\":df1.stdout[-100:],\"tar_out\":tar.stdout[-200:]+tar.stderr[-100:],\"archive_size\":tarsz.stdout[:200],\"rm_result\":rm.stdout[:100],\"df_after\":df2.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:46:24+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"762": {
|
||||
"name": "w274g0",
|
||||
"triggers": [
|
||||
"w274 g0"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:46:41+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"763": {
|
||||
"name": "w274_arch_p7",
|
||||
"triggers": [
|
||||
"w274 arch p7"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arch_gold_19h48\";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r([\"bash\",\"-c\",\"sudo -n ls -dt \/opt\/wevads\/vault\/gold-auto-20260423* \/opt\/wevads\/vault\/gold-auto-20260424* 2>\/dev\/null | head -3\"]);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1\"],180);tarsz=r([\"bash\",\"-c\",\"sudo -n ls -lh \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz 2>&1\"]);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"newer\":newer.stdout[:300],\"df_before\":df1.stdout[-100:],\"tar_out\":tar.stdout[-200:]+tar.stderr[-100:],\"archive_size\":tarsz.stdout[:200],\"rm_result\":rm.stdout[:100],\"df_after\":df2.stdout[-100:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:46:48+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"764": {
|
||||
"name": "w274g1",
|
||||
"triggers": [
|
||||
"w274 g1"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:00+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"765": {
|
||||
"name": "w274g2",
|
||||
"triggers": [
|
||||
"w274 g2"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:19+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"766": {
|
||||
"name": "opus_avatar_e2e_smart",
|
||||
"triggers": [
|
||||
"(smart",
|
||||
"e2e",
|
||||
"test).{0,30}avatar.{0,40}(propagat",
|
||||
"3 pages",
|
||||
"enterprise",
|
||||
"meeting",
|
||||
"archi)",
|
||||
"avatar.{0,30}(smart",
|
||||
"visual).{0,30}detect"
|
||||
],
|
||||
"cmd": "bash -c 'cd \/opt\/weval-nonreg && timeout 200 node \/opt\/weval-nonreg\/test-smart.js 2>&1 | tail -50'",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:32+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"767": {
|
||||
"name": "opus_cf_purge_all",
|
||||
"triggers": [
|
||||
"cloudflare.{0,30}purge",
|
||||
"cf.{0,20}(cache",
|
||||
"purge",
|
||||
"clear)",
|
||||
"purge.{0,30}cloudflare"
|
||||
],
|
||||
"cmd": "curl -sk -x post https:\/\/api.cloudflare.com\/client\/v4\/zones\/1488bbba251c6fa282999fcc09aac9fe\/purge_cache -h x-auth-email:ymahboub@weval-consulting.com -h x-auth-key:9eb8d1041e7faeae68d5017376871ba170291 -h content-type:application\/json --data '{\"purge_everything\":true}' --max-time 10",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:32+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"768": {
|
||||
"name": "opus_disk_prune_safe",
|
||||
"triggers": [
|
||||
"(disk",
|
||||
"storage",
|
||||
"space).{0,20}(prune",
|
||||
"clean",
|
||||
"free",
|
||||
"saturat)",
|
||||
"vault.{0,20}dedupe",
|
||||
"(gold",
|
||||
"backup).{0,20}(old",
|
||||
"rotate",
|
||||
"archive)"
|
||||
],
|
||||
"cmd": "bash -c 'df -h \/; docker system prune -f 2>&1 | tail -2; find \/tmp -type f -atime +7 ! -path \/tmp\/nuclei* -delete 2>\/dev\/null; echo pruned; df -h \/'",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:32+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"769": {
|
||||
"name": "opus_git_push_ssh_fallback",
|
||||
"triggers": [
|
||||
"git.{0,20}(push",
|
||||
"commit",
|
||||
"sync).{0,30}(fail",
|
||||
"lock",
|
||||
"credent)",
|
||||
"credential.{0,20}(lock",
|
||||
"error)",
|
||||
"push.{0,20}fail"
|
||||
],
|
||||
"cmd": "bash -c 'cd \/var\/www\/html && sudo -u www-data git push origin main 2>&1 | tail -5; sudo -u www-data git push origin --tags 2>&1 | tail -3'",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:32+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"770": {
|
||||
"name": "w274g3",
|
||||
"triggers": [
|
||||
"w274 g3"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:38+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"771": {
|
||||
"name": "w274g0",
|
||||
"triggers": [
|
||||
"w274 g0"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:45+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"772": {
|
||||
"name": "w274g4",
|
||||
"triggers": [
|
||||
"w274 g4"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:47:58+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"773": {
|
||||
"name": "w274g1",
|
||||
"triggers": [
|
||||
"w274 g1"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:48:04+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"774": {
|
||||
"name": "w274g2",
|
||||
"triggers": [
|
||||
"w274 g2"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:48:23+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"775": {
|
||||
"name": "w274g3",
|
||||
"triggers": [
|
||||
"w274 g3"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:48:43+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"776": {
|
||||
"name": "w274g0",
|
||||
"triggers": [
|
||||
"w274 g0"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:48:54+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"777": {
|
||||
"name": "w274g1",
|
||||
"triggers": [
|
||||
"w274 g1"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:49:13+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
},
|
||||
"778": {
|
||||
"name": "w274g2",
|
||||
"triggers": [
|
||||
"w274 g2"
|
||||
],
|
||||
"cmd": "echo 'import subprocess as s,json as j;mark=\"arc_19h47\";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r([\"df\",\"-h\",\"\/\"],5);tar=r([\"bash\",\"-c\",\"sudo -n tar czf \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz -c \/opt\/wevads\/vault gold-auto-20260422-112650 2>&1 | tail -3\"],180);rm=r([\"bash\",\"-c\",\"[ -s \/opt\/wevads\/vault\/archived_gold_purge\/g22.tar.gz ] && sudo -n rm -rf \/opt\/wevads\/vault\/gold-auto-20260422-112650 && echo ok || echo noop\"]);df2=r([\"df\",\"-h\",\"\/\"],5);print(j.dumps({\"mark\":mark,\"df1\":df1.stdout[-70:],\"tar\":tar.stdout[-150:],\"rm\":rm.stdout[:80],\"df2\":df2.stdout[-70:]},indent=2))' | tee \/tmp\/sel-test.py",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"created_at": "2026-04-23T19:49:32+00:00",
|
||||
"source": "opus4-autowire-early-v2"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"built_at": "2026-04-23T19:40:01+00:00",
|
||||
"built_at": "2026-04-23T19:50:01+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": 2199,
|
||||
"count": 2224,
|
||||
"arena_declared": 310,
|
||||
"arena_wired": 224,
|
||||
"arena_gap": 86,
|
||||
@@ -16924,7 +16924,7 @@
|
||||
"by_status": {
|
||||
"EXECUTED": 1938,
|
||||
"DISABLED": 17,
|
||||
"PENDING_APPROVAL": 140,
|
||||
"PENDING_APPROVAL": 165,
|
||||
"MOVED_WAVE204": 7,
|
||||
"WAVE_213": 1,
|
||||
"WAVE_225": 6,
|
||||
@@ -16939,7 +16939,7 @@
|
||||
"APPROVED_BY_OPUS_20AVR_V4": 1
|
||||
},
|
||||
"by_domain": {
|
||||
"general": 1867,
|
||||
"general": 1892,
|
||||
"site_web": 14,
|
||||
"agents": 239,
|
||||
"wevads_pipeline": 25,
|
||||
@@ -30819,6 +30819,79 @@
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-opus4_internal_test.php"
|
||||
},
|
||||
{
|
||||
"name": "opus_avatar_e2e_smart",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"(smart",
|
||||
"e2e",
|
||||
"test).{0,30}avatar.{0,40}(propagat",
|
||||
"3 pages",
|
||||
"enterprise",
|
||||
"meeting",
|
||||
"archi)",
|
||||
"avatar.{0,30}(smart",
|
||||
"visual).{0,30}detect"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-opus_avatar_e2e_smart.php"
|
||||
},
|
||||
{
|
||||
"name": "opus_cf_purge_all",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"cloudflare.{0,30}purge",
|
||||
"cf.{0,20}(cache",
|
||||
"purge",
|
||||
"clear)",
|
||||
"purge.{0,30}cloudflare"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-opus_cf_purge_all.php"
|
||||
},
|
||||
{
|
||||
"name": "opus_disk_prune_safe",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"(disk",
|
||||
"storage",
|
||||
"space).{0,20}(prune",
|
||||
"clean",
|
||||
"free",
|
||||
"saturat)",
|
||||
"vault.{0,20}dedupe",
|
||||
"(gold",
|
||||
"backup).{0,20}(old",
|
||||
"rotate",
|
||||
"archive)"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-opus_disk_prune_safe.php"
|
||||
},
|
||||
{
|
||||
"name": "opus_git_push_ssh_fallback",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"git.{0,20}(push",
|
||||
"commit",
|
||||
"sync).{0,30}(fail",
|
||||
"lock",
|
||||
"credent)",
|
||||
"credential.{0,20}(lock",
|
||||
"error)",
|
||||
"push.{0,20}fail"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-opus_git_push_ssh_fallback.php"
|
||||
},
|
||||
{
|
||||
"name": "opus_multi25",
|
||||
"domain": "general",
|
||||
@@ -32626,6 +32699,18 @@
|
||||
"description": "Playwright E2E REAL login yacine+WTP access with video capture",
|
||||
"file": "/api/wired-pending/intent-opus4-playwright_login_wtp.php"
|
||||
},
|
||||
{
|
||||
"name": "playwright_pages_test",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"playwright.*pages.*test",
|
||||
"test.*all-ia-hub.*wtp"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-playwright_pages_test.php"
|
||||
},
|
||||
{
|
||||
"name": "playwright_results",
|
||||
"domain": "general",
|
||||
@@ -41093,6 +41178,50 @@
|
||||
"description": "Vulnerability scanner",
|
||||
"file": "/api/wired-pending/intent-opus4-vuln_scanner.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_a0",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 a0"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_a0.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_a1",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 a1"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_a1.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_a2",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 a2"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_a2.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_a3",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 a3"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_a3.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_add1",
|
||||
"domain": "general",
|
||||
@@ -41115,6 +41244,127 @@
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_apt2_a0.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_a0",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch a0"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_a0.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_a1",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch a1"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_a1.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_a2",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch a2"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_a2.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p0",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p0"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p0.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p1",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p1"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p1.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p2",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p2"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p2.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p3",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p3"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p3.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p4",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p4"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p4.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p5",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p5"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p5.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p6",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p6"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p6.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_arch_p7",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 arch p7"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274_arch_p7.php"
|
||||
},
|
||||
{
|
||||
"name": "w274_batch",
|
||||
"domain": "general",
|
||||
@@ -41995,6 +42245,61 @@
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274fp1.php"
|
||||
},
|
||||
{
|
||||
"name": "w274g0",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 g0"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274g0.php"
|
||||
},
|
||||
{
|
||||
"name": "w274g1",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 g1"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274g1.php"
|
||||
},
|
||||
{
|
||||
"name": "w274g2",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 g2"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274g2.php"
|
||||
},
|
||||
{
|
||||
"name": "w274g3",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 g3"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274g3.php"
|
||||
},
|
||||
{
|
||||
"name": "w274g4",
|
||||
"domain": "general",
|
||||
"status": "PENDING_APPROVAL",
|
||||
"triggers": [
|
||||
"w274 g4"
|
||||
],
|
||||
"source": "opus4-autowire-early-v2",
|
||||
"description": "",
|
||||
"file": "/api/wired-pending/intent-opus4-w274g4.php"
|
||||
},
|
||||
{
|
||||
"name": "warmup_manager",
|
||||
"domain": "wevads_pipeline",
|
||||
@@ -48776,7 +49081,7 @@
|
||||
"score": 100,
|
||||
"total": 153
|
||||
},
|
||||
"apis_php_count": 1087,
|
||||
"apis_php_count": 1088,
|
||||
"autonomy_score": 99.5,
|
||||
"autonomy_level": "GODMODE"
|
||||
}
|
||||
20
api/wired-pending/intent-opus4-opus_avatar_e2e_smart.php
Normal file
20
api/wired-pending/intent-opus4-opus_avatar_e2e_smart.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'opus_avatar_e2e_smart',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => '(smart',
|
||||
1 => 'e2e',
|
||||
2 => 'test).{0,30}avatar.{0,40}(propagat',
|
||||
3 => '3 pages',
|
||||
4 => 'enterprise',
|
||||
5 => 'meeting',
|
||||
6 => 'archi)',
|
||||
7 => 'avatar.{0,30}(smart',
|
||||
8 => 'visual).{0,30}detect',
|
||||
),
|
||||
'cmd' => 'bash -c \'cd /opt/weval-nonreg && timeout 200 node /opt/weval-nonreg/test-smart.js 2>&1 | tail -50\'',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:47:32+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
16
api/wired-pending/intent-opus4-opus_cf_purge_all.php
Normal file
16
api/wired-pending/intent-opus4-opus_cf_purge_all.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'opus_cf_purge_all',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'cloudflare.{0,30}purge',
|
||||
1 => 'cf.{0,20}(cache',
|
||||
2 => 'purge',
|
||||
3 => 'clear)',
|
||||
4 => 'purge.{0,30}cloudflare',
|
||||
),
|
||||
'cmd' => 'curl -sk -x post https://api.cloudflare.com/client/v4/zones/1488bbba251c6fa282999fcc09aac9fe/purge_cache -h x-auth-email:ymahboub@weval-consulting.com -h x-auth-key:9eb8d1041e7faeae68d5017376871ba170291 -h content-type:application/json --data \'{"purge_everything":true}\' --max-time 10',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:47:32+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
22
api/wired-pending/intent-opus4-opus_disk_prune_safe.php
Normal file
22
api/wired-pending/intent-opus4-opus_disk_prune_safe.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'opus_disk_prune_safe',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => '(disk',
|
||||
1 => 'storage',
|
||||
2 => 'space).{0,20}(prune',
|
||||
3 => 'clean',
|
||||
4 => 'free',
|
||||
5 => 'saturat)',
|
||||
6 => 'vault.{0,20}dedupe',
|
||||
7 => '(gold',
|
||||
8 => 'backup).{0,20}(old',
|
||||
9 => 'rotate',
|
||||
10 => 'archive)',
|
||||
),
|
||||
'cmd' => 'bash -c \'df -h /; docker system prune -f 2>&1 | tail -2; find /tmp -type f -atime +7 ! -path /tmp/nuclei* -delete 2>/dev/null; echo pruned; df -h /\'',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:47:32+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'opus_git_push_ssh_fallback',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'git.{0,20}(push',
|
||||
1 => 'commit',
|
||||
2 => 'sync).{0,30}(fail',
|
||||
3 => 'lock',
|
||||
4 => 'credent)',
|
||||
5 => 'credential.{0,20}(lock',
|
||||
6 => 'error)',
|
||||
7 => 'push.{0,20}fail',
|
||||
),
|
||||
'cmd' => 'bash -c \'cd /var/www/html && sudo -u www-data git push origin main 2>&1 | tail -5; sudo -u www-data git push origin --tags 2>&1 | tail -3\'',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:47:32+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_a0.php
Normal file
12
api/wired-pending/intent-opus4-w274_a0.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_a0',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 a0',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h49";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:45:27+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_a1.php
Normal file
12
api/wired-pending/intent-opus4-w274_a1.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_a1',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 a1',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h49";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:45:46+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_a2.php
Normal file
12
api/wired-pending/intent-opus4-w274_a2.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_a2',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 a2',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h49";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:46:04+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_a3.php
Normal file
12
api/wired-pending/intent-opus4-w274_a3.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_a3',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 a3',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h49";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-22avr.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:46:22+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_arch_p3.php
Normal file
12
api/wired-pending/intent-opus4-w274_arch_p3.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_arch_p3',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 arch p3',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arch_gold_19h48";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r(["bash","-c","sudo -n ls -dt /opt/wevads/vault/gold-auto-20260423* /opt/wevads/vault/gold-auto-20260424* 2>/dev/null | head -3"]);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1"],180);tarsz=r(["bash","-c","sudo -n ls -lh /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz 2>&1"]);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"newer":newer.stdout[:300],"df_before":df1.stdout[-100:],"tar_out":tar.stdout[-200:]+tar.stderr[-100:],"archive_size":tarsz.stdout[:200],"rm_result":rm.stdout[:100],"df_after":df2.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:45:15+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_arch_p4.php
Normal file
12
api/wired-pending/intent-opus4-w274_arch_p4.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_arch_p4',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 arch p4',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arch_gold_19h48";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r(["bash","-c","sudo -n ls -dt /opt/wevads/vault/gold-auto-20260423* /opt/wevads/vault/gold-auto-20260424* 2>/dev/null | head -3"]);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1"],180);tarsz=r(["bash","-c","sudo -n ls -lh /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz 2>&1"]);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"newer":newer.stdout[:300],"df_before":df1.stdout[-100:],"tar_out":tar.stdout[-200:]+tar.stderr[-100:],"archive_size":tarsz.stdout[:200],"rm_result":rm.stdout[:100],"df_after":df2.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:45:38+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_arch_p5.php
Normal file
12
api/wired-pending/intent-opus4-w274_arch_p5.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_arch_p5',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 arch p5',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arch_gold_19h48";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r(["bash","-c","sudo -n ls -dt /opt/wevads/vault/gold-auto-20260423* /opt/wevads/vault/gold-auto-20260424* 2>/dev/null | head -3"]);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1"],180);tarsz=r(["bash","-c","sudo -n ls -lh /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz 2>&1"]);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"newer":newer.stdout[:300],"df_before":df1.stdout[-100:],"tar_out":tar.stdout[-200:]+tar.stderr[-100:],"archive_size":tarsz.stdout[:200],"rm_result":rm.stdout[:100],"df_after":df2.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:46:00+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_arch_p6.php
Normal file
12
api/wired-pending/intent-opus4-w274_arch_p6.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_arch_p6',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 arch p6',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arch_gold_19h48";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r(["bash","-c","sudo -n ls -dt /opt/wevads/vault/gold-auto-20260423* /opt/wevads/vault/gold-auto-20260424* 2>/dev/null | head -3"]);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1"],180);tarsz=r(["bash","-c","sudo -n ls -lh /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz 2>&1"]);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"newer":newer.stdout[:300],"df_before":df1.stdout[-100:],"tar_out":tar.stdout[-200:]+tar.stderr[-100:],"archive_size":tarsz.stdout[:200],"rm_result":rm.stdout[:100],"df_after":df2.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:46:24+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274_arch_p7.php
Normal file
12
api/wired-pending/intent-opus4-w274_arch_p7.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274_arch_p7',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 arch p7',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arch_gold_19h48";r=lambda c,t=60:s.run(c,capture_output=1,text=1,timeout=t);newer=r(["bash","-c","sudo -n ls -dt /opt/wevads/vault/gold-auto-20260423* /opt/wevads/vault/gold-auto-20260424* 2>/dev/null | head -3"]);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1"],180);tarsz=r(["bash","-c","sudo -n ls -lh /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz 2>&1"]);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/gold-auto-20260422-112650.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo deleted_original || echo abort_no_archive"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"newer":newer.stdout[:300],"df_before":df1.stdout[-100:],"tar_out":tar.stdout[-200:]+tar.stderr[-100:],"archive_size":tarsz.stdout[:200],"rm_result":rm.stdout[:100],"df_after":df2.stdout[-100:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:46:48+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274g0.php
Normal file
12
api/wired-pending/intent-opus4-w274g0.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274g0',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 g0',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h47";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:48:54+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274g1.php
Normal file
12
api/wired-pending/intent-opus4-w274g1.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274g1',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 g1',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h47";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:49:13+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274g2.php
Normal file
12
api/wired-pending/intent-opus4-w274g2.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274g2',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 g2',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h47";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:49:32+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274g3.php
Normal file
12
api/wired-pending/intent-opus4-w274g3.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274g3',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 g3',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h47";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:48:43+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
12
api/wired-pending/intent-opus4-w274g4.php
Normal file
12
api/wired-pending/intent-opus4-w274g4.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
return array (
|
||||
'name' => 'w274g4',
|
||||
'triggers' =>
|
||||
array (
|
||||
0 => 'w274 g4',
|
||||
),
|
||||
'cmd' => 'echo \'import subprocess as s,json as j;mark="arc_19h47";r=lambda c,t=120:s.run(c,capture_output=1,text=1,timeout=t);df1=r(["df","-h","/"],5);tar=r(["bash","-c","sudo -n tar czf /opt/wevads/vault/archived_gold_purge/g22.tar.gz -c /opt/wevads/vault gold-auto-20260422-112650 2>&1 | tail -3"],180);rm=r(["bash","-c","[ -s /opt/wevads/vault/archived_gold_purge/g22.tar.gz ] && sudo -n rm -rf /opt/wevads/vault/gold-auto-20260422-112650 && echo ok || echo noop"]);df2=r(["df","-h","/"],5);print(j.dumps({"mark":mark,"df1":df1.stdout[-70:],"tar":tar.stdout[-150:],"rm":rm.stdout[:80],"df2":df2.stdout[-70:]},indent=2))\' | tee /tmp/sel-test.py',
|
||||
'status' => 'PENDING_APPROVAL',
|
||||
'created_at' => '2026-04-23T19:47:58+00:00',
|
||||
'source' => 'opus4-autowire-early-v2',
|
||||
);
|
||||
@@ -3,255 +3,524 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>WEVIA Cloudbot Social - Network des IA Weval</title>
|
||||
<title>WEVIA Cloudbot Social v2 - Live Network</title>
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root{
|
||||
--bg:#0a0e1a;--card:#141a2b;--card-h:#1a2137;--bd:rgba(120,140,200,.12);
|
||||
--ac:#7c5cff;--a2:#4fd1c7;--wn:#f59e0b;--er:#ef4444;--ok:#10b981;
|
||||
--fg:#e2e8f0;--dm:#64748b;--mg:#94a3b8;
|
||||
--grad:linear-gradient(135deg,#7c5cff 0%,#4fd1c7 100%);
|
||||
--shadow:0 4px 24px rgba(124,92,255,.08);
|
||||
--bg:#070a15;--bg2:#0d1220;--card:#121829;--card-h:#1a2138;--bd:rgba(130,150,210,.1);--bd2:rgba(130,150,210,.18);
|
||||
--ac:#8b5cf6;--a2:#06d6ba;--wn:#fbbf24;--er:#ef4444;--ok:#10b981;--inf:#3b82f6;--pk:#ec4899;
|
||||
--fg:#f1f5f9;--dm:#64748b;--mg:#94a3b8;--hg:#cbd5e1;
|
||||
--grad:linear-gradient(135deg,#8b5cf6 0%,#06d6ba 100%);
|
||||
--grad2:linear-gradient(135deg,#ec4899 0%,#8b5cf6 50%,#06d6ba 100%);
|
||||
--gradInfo:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);
|
||||
--shadow-sm:0 2px 8px rgba(139,92,246,.08);
|
||||
--shadow-md:0 8px 32px rgba(139,92,246,.12);
|
||||
--shadow-lg:0 20px 60px rgba(139,92,246,.2);
|
||||
--glow:0 0 40px rgba(139,92,246,.4);
|
||||
}
|
||||
*{box-sizing:border-box;margin:0;padding:0}
|
||||
body{background:var(--bg);color:var(--fg);font:13px/1.5 -apple-system,Segoe UI,Inter,sans-serif;min-height:100vh}
|
||||
header{background:linear-gradient(180deg,rgba(124,92,255,.08),transparent);padding:24px 32px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;backdrop-filter:blur(20px);background-color:rgba(10,14,26,.85)}
|
||||
h1{font-size:22px;font-weight:800;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.5px}
|
||||
.sub{font-size:11px;color:var(--dm);margin-top:2px}
|
||||
.links{display:flex;gap:8px}
|
||||
.btn{padding:8px 14px;border-radius:8px;background:var(--card);border:1px solid var(--bd);color:var(--fg);font-size:11px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .15s}
|
||||
.btn:hover{background:var(--card-h);border-color:var(--ac);transform:translateY(-1px)}
|
||||
.btn-primary{background:var(--grad);border:none;color:#fff}
|
||||
main{max-width:1400px;margin:0 auto;padding:24px;display:grid;grid-template-columns:280px 1fr 340px;gap:20px}
|
||||
@media(max-width:1200px){main{grid-template-columns:240px 1fr;padding:16px}}
|
||||
@media(max-width:768px){main{grid-template-columns:1fr;padding:12px}.sidebar,.activity{display:none}}
|
||||
.sidebar{position:sticky;top:100px;height:calc(100vh - 130px);overflow-y:auto}
|
||||
.cat{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px;margin-bottom:12px}
|
||||
.cat h3{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--dm);margin-bottom:10px;font-weight:700}
|
||||
html,body{background:var(--bg);color:var(--fg);font-family:'Inter',-apple-system,Segoe UI,sans-serif;min-height:100vh;overflow-x:hidden}
|
||||
|
||||
/* Animated bg */
|
||||
body::before{content:"";position:fixed;inset:0;background:
|
||||
radial-gradient(ellipse at 20% 0%,rgba(139,92,246,.15),transparent 50%),
|
||||
radial-gradient(ellipse at 80% 100%,rgba(6,214,186,.08),transparent 50%),
|
||||
radial-gradient(ellipse at 50% 50%,rgba(236,72,153,.05),transparent 60%);
|
||||
z-index:-1;pointer-events:none;animation:bgMove 20s ease-in-out infinite alternate}
|
||||
@keyframes bgMove{0%{transform:scale(1)}100%{transform:scale(1.1) rotate(1deg)}}
|
||||
|
||||
header{padding:20px 32px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:100;backdrop-filter:blur(24px) saturate(180%);background:rgba(7,10,21,.75);flex-wrap:wrap}
|
||||
.brand{display:flex;align-items:center;gap:14px}
|
||||
.logo{width:44px;height:44px;border-radius:12px;background:var(--grad2);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:var(--shadow-md);position:relative;overflow:hidden}
|
||||
.logo::after{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);animation:shimmer 3s infinite}
|
||||
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
|
||||
h1{font-size:24px;font-weight:900;background:var(--grad2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.6px;line-height:1}
|
||||
.sub{font-size:11px;color:var(--mg);margin-top:4px;display:flex;align-items:center;gap:10px}
|
||||
.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);animation:pulse 2s infinite;box-shadow:0 0 8px var(--ok)}
|
||||
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}
|
||||
|
||||
.nav{display:flex;gap:6px;flex-wrap:wrap}
|
||||
.btn{padding:9px 14px;border-radius:10px;background:var(--card);border:1px solid var(--bd2);color:var(--fg);font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
|
||||
.btn:hover{background:var(--card-h);border-color:var(--ac);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
|
||||
.btn-primary{background:var(--grad);border:none;color:#fff;font-weight:700}
|
||||
.btn-primary:hover{box-shadow:var(--glow)}
|
||||
|
||||
/* Hero stats */
|
||||
.hero{max-width:1500px;margin:24px auto 0;padding:0 24px}
|
||||
.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px}
|
||||
.stat-card{background:var(--card);border:1px solid var(--bd2);border-radius:16px;padding:18px;position:relative;overflow:hidden;transition:all .3s}
|
||||
.stat-card:hover{transform:translateY(-3px);border-color:var(--ac);box-shadow:var(--shadow-md)}
|
||||
.stat-card::before{content:"";position:absolute;top:-50%;right:-30%;width:200px;height:200px;border-radius:50%;opacity:.08;filter:blur(40px)}
|
||||
.stat-card.c1::before{background:var(--ac)}
|
||||
.stat-card.c2::before{background:var(--a2)}
|
||||
.stat-card.c3::before{background:var(--wn)}
|
||||
.stat-card.c4::before{background:var(--pk)}
|
||||
.stat-card.c5::before{background:var(--inf)}
|
||||
.stat-card.c6::before{background:var(--ok)}
|
||||
.stat-val{font-size:32px;font-weight:900;line-height:1;letter-spacing:-1px}
|
||||
.stat-val.g1{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.stat-val.g2{background:linear-gradient(135deg,#06d6ba,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.stat-val.g3{background:linear-gradient(135deg,#fbbf24,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.stat-val.g4{background:linear-gradient(135deg,#ec4899,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.stat-val.g5{background:linear-gradient(135deg,#3b82f6,#06d6ba);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.stat-val.g6{background:linear-gradient(135deg,#10b981,#06d6ba);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.stat-lbl{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--mg);margin-top:8px;font-weight:700}
|
||||
.stat-extra{font-size:11px;color:var(--hg);margin-top:6px;display:flex;align-items:center;gap:5px}
|
||||
.stat-icon{width:30px;height:30px;border-radius:8px;background:rgba(139,92,246,.15);display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:12px}
|
||||
.up{color:var(--ok)} .dn{color:var(--er)}
|
||||
|
||||
/* Main grid */
|
||||
main{max-width:1500px;margin:0 auto;padding:0 24px 40px;display:grid;grid-template-columns:260px 1fr 320px;gap:20px}
|
||||
@media(max-width:1200px){main{grid-template-columns:220px 1fr;padding:0 16px 24px}.activity{display:none}}
|
||||
@media(max-width:768px){main{grid-template-columns:1fr;padding:0 12px 24px}.sidebar{display:none}}
|
||||
|
||||
/* Sidebar cats */
|
||||
.sidebar{position:sticky;top:110px;height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:thin}
|
||||
.sidebar::-webkit-scrollbar{width:4px}
|
||||
.sidebar::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:2px}
|
||||
.panel{background:var(--card);border:1px solid var(--bd2);border-radius:14px;padding:16px;margin-bottom:14px;backdrop-filter:blur(10px)}
|
||||
.panel-h{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:var(--mg);margin-bottom:14px;font-weight:800;display:flex;align-items:center;gap:8px}
|
||||
.cat-list{display:flex;flex-direction:column;gap:4px}
|
||||
.cat-item{padding:6px 10px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:12px;transition:all .1s}
|
||||
.cat-item:hover{background:var(--card-h);color:var(--ac)}
|
||||
.cat-item.active{background:rgba(124,92,255,.15);color:var(--ac);font-weight:600}
|
||||
.cat-count{background:var(--bd);padding:2px 7px;border-radius:10px;font-size:10px;color:var(--mg)}
|
||||
.cat-item{padding:9px 12px;border-radius:9px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;transition:all .15s;border:1px solid transparent}
|
||||
.cat-item:hover{background:var(--card-h);border-color:var(--bd2)}
|
||||
.cat-item.active{background:rgba(139,92,246,.12);color:var(--ac);border-color:rgba(139,92,246,.3)}
|
||||
.cat-count{background:rgba(130,150,210,.08);padding:2px 8px;border-radius:10px;font-size:10px;color:var(--hg);font-weight:700;font-family:'JetBrains Mono',monospace}
|
||||
.cat-item.active .cat-count{background:var(--ac);color:#fff}
|
||||
|
||||
/* Feed */
|
||||
.feed{min-height:calc(100vh - 130px)}
|
||||
.filter-bar{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:12px;margin-bottom:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
|
||||
.search{flex:1;background:var(--bg);border:1px solid var(--bd);padding:8px 12px;border-radius:8px;color:var(--fg);font-size:12px;min-width:200px}
|
||||
.search:focus{outline:none;border-color:var(--ac)}
|
||||
.filter-chip{padding:5px 10px;border-radius:6px;background:var(--bg);border:1px solid var(--bd);font-size:10px;cursor:pointer;color:var(--mg)}
|
||||
.filter-chip:hover{color:var(--fg)}
|
||||
.filter-chip.on{background:var(--ac);color:#fff;border-color:var(--ac)}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
|
||||
.agent-card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
|
||||
.agent-card::before{content:"";position:absolute;inset:0;background:var(--grad);opacity:0;transition:opacity .2s;z-index:0}
|
||||
.agent-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--ac)}
|
||||
.agent-card:hover::before{opacity:.04}
|
||||
.filter-bar{background:var(--card);border:1px solid var(--bd2);border-radius:14px;padding:14px;margin-bottom:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:var(--shadow-sm)}
|
||||
.search-wrap{flex:1;position:relative;min-width:240px}
|
||||
.search-wrap::before{content:"🔍";position:absolute;left:14px;top:50%;transform:translateY(-50%);opacity:.5}
|
||||
.search{width:100%;background:var(--bg2);border:1px solid var(--bd2);padding:10px 14px 10px 40px;border-radius:10px;color:var(--fg);font-size:13px;font-family:inherit;transition:all .2s}
|
||||
.search:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px rgba(139,92,246,.15)}
|
||||
.chip{padding:6px 12px;border-radius:8px;background:var(--bg2);border:1px solid var(--bd2);font-size:11px;cursor:pointer;color:var(--mg);font-weight:600;transition:all .15s;display:inline-flex;align-items:center;gap:5px}
|
||||
.chip:hover{color:var(--fg);border-color:var(--ac)}
|
||||
.chip.on{background:var(--grad);color:#fff;border-color:transparent}
|
||||
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
|
||||
.agent-card{background:var(--card);border:1px solid var(--bd2);border-radius:14px;padding:18px;cursor:pointer;transition:all .25s;position:relative;overflow:hidden}
|
||||
.agent-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--cat-color,var(--ac));opacity:.6;transition:opacity .2s}
|
||||
.agent-card::after{content:"";position:absolute;top:-30%;right:-30%;width:180px;height:180px;border-radius:50%;background:var(--cat-color,var(--ac));opacity:0;filter:blur(50px);transition:opacity .4s}
|
||||
.agent-card:hover{transform:translateY(-4px);border-color:var(--cat-color,var(--ac));box-shadow:var(--shadow-md)}
|
||||
.agent-card:hover::before{opacity:1}
|
||||
.agent-card:hover::after{opacity:.15}
|
||||
.agent-card>*{position:relative;z-index:1}
|
||||
.agent-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
|
||||
.agent-avatar{width:42px;height:42px;border-radius:10px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;flex-shrink:0}
|
||||
.agent-name{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:2px}
|
||||
.agent-cat{font-size:10px;color:var(--dm);text-transform:uppercase;letter-spacing:.5px}
|
||||
.agent-desc{font-size:12px;color:var(--mg);line-height:1.5;margin-bottom:12px;min-height:36px}
|
||||
.agent-status{display:flex;align-items:center;gap:8px;font-size:10px}
|
||||
.status-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);animation:pulse 2s infinite}
|
||||
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
|
||||
.agent-status.idle .status-dot{background:var(--dm);animation:none}
|
||||
.agent-actions{display:flex;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--bd)}
|
||||
.act-btn{flex:1;padding:6px 8px;background:var(--bg);border:1px solid var(--bd);border-radius:6px;font-size:10px;color:var(--mg);cursor:pointer;transition:all .1s;text-align:center}
|
||||
.act-btn:hover{background:var(--card-h);color:var(--ac);border-color:var(--ac)}
|
||||
.activity{position:sticky;top:100px;height:calc(100vh - 130px);overflow-y:auto}
|
||||
.act-panel{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px;margin-bottom:12px}
|
||||
.act-panel h3{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--dm);margin-bottom:12px;font-weight:700}
|
||||
.act-item{padding:10px;background:var(--bg);border-radius:8px;margin-bottom:8px;font-size:11px;border-left:3px solid var(--ac)}
|
||||
.act-time{color:var(--dm);font-size:10px}
|
||||
.kpi-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
|
||||
.kpi{background:var(--bg);padding:10px;border-radius:8px;text-align:center}
|
||||
.kpi-val{font-size:18px;font-weight:800;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
|
||||
.kpi-lbl{font-size:9px;color:var(--dm);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
|
||||
|
||||
/* Chat overlay modal */
|
||||
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1000;align-items:center;justify-content:center;padding:20px}
|
||||
.modal.on{display:flex}
|
||||
.modal-box{width:900px;max-width:100%;height:640px;max-height:90vh;background:var(--card);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}
|
||||
.modal-head{padding:14px 20px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:12px;background:rgba(124,92,255,.05)}
|
||||
.modal-title{flex:1;font-weight:700}
|
||||
.modal-close{background:none;border:none;color:var(--fg);font-size:22px;cursor:pointer;padding:0 6px;opacity:.6}
|
||||
.modal-close:hover{opacity:1}
|
||||
.chat-area{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}
|
||||
.msg{max-width:80%;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.55;word-wrap:break-word}
|
||||
.msg.u{background:var(--grad);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
|
||||
.msg.a{background:var(--bg);border:1px solid var(--bd);align-self:flex-start;border-bottom-left-radius:4px}
|
||||
.msg.sys{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);color:var(--wn);align-self:center;font-size:11px;max-width:95%;text-align:center}
|
||||
.msg-meta{font-size:10px;color:var(--dm);margin-top:4px}
|
||||
.chat-input-bar{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--bd);background:var(--bg)}
|
||||
.chat-input{flex:1;background:var(--card);border:1px solid var(--bd);padding:10px 14px;border-radius:10px;color:var(--fg);font-size:13px}
|
||||
.chat-input:focus{outline:none;border-color:var(--ac)}
|
||||
.send-btn{padding:10px 18px;background:var(--grad);border:none;border-radius:10px;color:#fff;font-size:12px;font-weight:700;cursor:pointer}
|
||||
.agent-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
|
||||
.agent-avatar{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;box-shadow:var(--shadow-sm);position:relative;background:var(--cat-color,var(--ac))}
|
||||
.agent-avatar::after{content:"";position:absolute;inset:0;border-radius:12px;border:2px solid rgba(255,255,255,.1)}
|
||||
.agent-name{font-size:15px;font-weight:800;color:var(--fg);margin-bottom:3px;letter-spacing:-.3px}
|
||||
.agent-cat-lbl{font-size:10px;color:var(--mg);text-transform:uppercase;letter-spacing:.8px;font-weight:700;display:flex;align-items:center;gap:5px}
|
||||
.agent-desc{font-size:12px;color:var(--hg);line-height:1.6;margin:8px 0 14px;min-height:38px}
|
||||
|
||||
.agent-metrics{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
|
||||
.metric-tag{font-size:9.5px;padding:3px 7px;background:var(--bg2);border-radius:5px;color:var(--mg);font-weight:600;font-family:'JetBrains Mono',monospace;border:1px solid var(--bd)}
|
||||
|
||||
.agent-status{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ok)}
|
||||
.agent-status.idle{color:var(--dm)}
|
||||
.agent-status .status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 2s infinite;box-shadow:0 0 8px currentColor}
|
||||
.agent-status.idle .status-dot{animation:none}
|
||||
|
||||
.agent-actions{display:flex;gap:6px;margin-top:14px;padding-top:14px;border-top:1px solid var(--bd)}
|
||||
.act-btn{flex:1;padding:8px 10px;background:var(--bg2);border:1px solid var(--bd2);border-radius:8px;font-size:11px;color:var(--mg);cursor:pointer;transition:all .15s;text-align:center;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:5px}
|
||||
.act-btn:hover{background:var(--card-h);color:var(--ac);border-color:var(--ac);transform:scale(1.02)}
|
||||
.act-btn.primary{background:var(--grad);color:#fff;border-color:transparent}
|
||||
.act-btn.primary:hover{box-shadow:var(--glow)}
|
||||
|
||||
/* Activity right */
|
||||
.activity{position:sticky;top:110px;height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:thin}
|
||||
.activity::-webkit-scrollbar{width:4px}
|
||||
.activity::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:2px}
|
||||
|
||||
.live-feed{max-height:360px;overflow-y:auto}
|
||||
.live-item{padding:10px 12px;background:var(--bg2);border-radius:10px;margin-bottom:8px;border-left:3px solid var(--ac);font-size:11px;transition:all .2s;position:relative}
|
||||
.live-item:hover{background:var(--card-h);transform:translateX(2px)}
|
||||
.live-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px}
|
||||
.live-item-msg{color:var(--fg);font-weight:500;line-height:1.45}
|
||||
.live-item-meta{font-size:9px;color:var(--dm);margin-top:6px;display:flex;align-items:center;gap:6px}
|
||||
|
||||
.infra-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}
|
||||
.infra-item{background:var(--bg2);padding:8px 10px;border-radius:8px;font-size:11px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
|
||||
.infra-item.ok{border-left:3px solid var(--ok)}
|
||||
.infra-item.down{border-left:3px solid var(--er)}
|
||||
.svc-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block}
|
||||
.svc-dot.down{background:var(--er)}
|
||||
|
||||
/* Modal chat - premium glass */
|
||||
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:1000;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(10px)}
|
||||
.modal.on{display:flex;animation:modalIn .3s ease}
|
||||
@keyframes modalIn{from{opacity:0}to{opacity:1}}
|
||||
.modal-box{width:900px;max-width:100%;height:680px;max-height:92vh;background:var(--card);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg),0 0 60px rgba(139,92,246,.3);border:1px solid var(--bd2);animation:modalSlide .35s ease}
|
||||
@keyframes modalSlide{from{transform:translateY(20px) scale(.98)}to{transform:translateY(0) scale(1)}}
|
||||
.modal-head{padding:16px 22px;border-bottom:1px solid var(--bd2);display:flex;align-items:center;gap:14px;background:linear-gradient(180deg,rgba(139,92,246,.08),transparent)}
|
||||
.modal-title{flex:1}
|
||||
.modal-title-name{font-size:16px;font-weight:800;letter-spacing:-.3px}
|
||||
.modal-title-sub{font-size:11px;color:var(--mg);margin-top:2px;display:flex;align-items:center;gap:6px}
|
||||
.modal-close{background:var(--bg2);border:1px solid var(--bd2);color:var(--fg);font-size:18px;cursor:pointer;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:all .15s}
|
||||
.modal-close:hover{background:var(--er);color:#fff;border-color:var(--er)}
|
||||
|
||||
.chat-area{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
|
||||
.chat-area::-webkit-scrollbar{width:6px}
|
||||
.chat-area::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:3px}
|
||||
.msg{max-width:82%;padding:12px 16px;border-radius:16px;font-size:13px;line-height:1.6;word-wrap:break-word;animation:msgIn .3s ease}
|
||||
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
|
||||
.msg.u{background:var(--grad);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;box-shadow:var(--shadow-sm)}
|
||||
.msg.a{background:var(--bg2);border:1px solid var(--bd2);align-self:flex-start;border-bottom-left-radius:4px}
|
||||
.msg.sys{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.25);color:var(--wn);align-self:center;font-size:11px;max-width:95%;text-align:center;padding:8px 14px}
|
||||
.msg-meta{font-size:10px;color:var(--dm);margin-top:6px;display:flex;align-items:center;gap:6px}
|
||||
|
||||
.typing{display:none;align-self:flex-start;padding:12px 16px;background:var(--bg2);border-radius:16px;border:1px solid var(--bd2)}
|
||||
.typing.on{display:block}
|
||||
.typing span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ac);margin:0 2px;animation:typingDot 1.4s infinite}
|
||||
.typing span:nth-child(2){animation-delay:.2s} .typing span:nth-child(3){animation-delay:.4s}
|
||||
@keyframes typingDot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}
|
||||
|
||||
.chat-input-bar{display:flex;gap:8px;padding:16px 22px;border-top:1px solid var(--bd2);background:rgba(7,10,21,.6)}
|
||||
.chat-input{flex:1;background:var(--bg2);border:1px solid var(--bd2);padding:12px 16px;border-radius:12px;color:var(--fg);font-size:13px;font-family:inherit}
|
||||
.chat-input:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px rgba(139,92,246,.15)}
|
||||
.send-btn{padding:12px 22px;background:var(--grad);border:none;border-radius:12px;color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}
|
||||
.send-btn:disabled{opacity:.5;cursor:wait}
|
||||
.send-btn:not(:disabled):hover{box-shadow:var(--glow);transform:translateY(-1px)}
|
||||
|
||||
/* Dialog IA-to-IA */
|
||||
.dialog-box{padding:10px 14px;background:rgba(124,92,255,.06);border-left:3px solid var(--ac);border-radius:8px;margin-bottom:10px;font-size:11px;color:var(--mg)}
|
||||
.dialog-head{font-weight:700;color:var(--ac);margin-bottom:4px}
|
||||
.loading-sk{background:linear-gradient(90deg,var(--card) 0%,var(--card-h) 50%,var(--card) 100%);background-size:200% 100%;animation:skeleton 1.5s infinite;border-radius:14px;height:180px}
|
||||
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}
|
||||
|
||||
.loading{text-align:center;padding:60px;color:var(--dm)}
|
||||
.empty{text-align:center;padding:40px;color:var(--dm);font-size:12px}
|
||||
.heart{color:var(--er);animation:heart 1.5s infinite}
|
||||
@keyframes heart{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
|
||||
|
||||
/* Badge categories */
|
||||
.cat-emoji{font-size:14px;line-height:1}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div>
|
||||
<h1>☁️ WEVIA Cloudbot Social</h1>
|
||||
<div class="sub">Réseau social interne IA - <span id="kpi-agents">726</span> agents actifs · Messagerie multi-agents · Apprentissage mutuel</div>
|
||||
</div>
|
||||
<div class="links">
|
||||
<a class="btn" href="/all-ia-hub.html">All IA Hub</a>
|
||||
<a class="btn" href="/wevia-meeting-rooms.html">Meeting Rooms</a>
|
||||
<a class="btn" href="/wevia-master.html">WEVIA Master</a>
|
||||
<a class="btn" href="/wevia-orchestrator.html">Orchestrator</a>
|
||||
<a class="btn btn-primary" href="/weval-technology-platform.html">WTP Entry</a>
|
||||
<div class="brand">
|
||||
<div class="logo">☁️</div>
|
||||
<div>
|
||||
<h1>WEVIA Cloudbot Social</h1>
|
||||
<div class="sub">
|
||||
<span class="pulse-dot"></span>
|
||||
<span id="hdr-status">Réseau vivant</span>
|
||||
·
|
||||
<span id="hdr-agents">726 agents</span>
|
||||
·
|
||||
<span id="hdr-score">-</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="nav">
|
||||
<a class="btn" href="/all-ia-hub.html">🌐 All IA Hub</a>
|
||||
<a class="btn" href="/wevia-meeting-rooms.html">🏛️ Meeting</a>
|
||||
<a class="btn" href="/wevia-master.html">🧠 Master</a>
|
||||
<a class="btn" href="/wevia-orchestrator.html">🎛️ Orchestrator</a>
|
||||
<a class="btn btn-primary" href="/weval-technology-platform.html">⚡ WTP</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section class="hero">
|
||||
<div class="hero-stats">
|
||||
<div class="stat-card c1">
|
||||
<div class="stat-icon">🤖</div>
|
||||
<div class="stat-val g1" id="s-agents">726</div>
|
||||
<div class="stat-lbl">Agents Network</div>
|
||||
<div class="stat-extra"><span class="up">▲</span> 8 catégories actives</div>
|
||||
</div>
|
||||
<div class="stat-card c2">
|
||||
<div class="stat-icon">🎯</div>
|
||||
<div class="stat-val g2" id="s-intents">2215</div>
|
||||
<div class="stat-lbl">Intents wired</div>
|
||||
<div class="stat-extra"><span class="up">▲</span> <span id="s-score">-</span> Health</div>
|
||||
</div>
|
||||
<div class="stat-card c3">
|
||||
<div class="stat-icon">⚡</div>
|
||||
<div class="stat-val g3" id="s-skills">694</div>
|
||||
<div class="stat-lbl">Skills disponibles</div>
|
||||
<div class="stat-extra">Registry <span id="s-catalog">-</span></div>
|
||||
</div>
|
||||
<div class="stat-card c4">
|
||||
<div class="stat-icon">🧠</div>
|
||||
<div class="stat-val g4" id="s-cognitive">635</div>
|
||||
<div class="stat-lbl">Cognitive fn Opus46</div>
|
||||
<div class="stat-extra">Qdrant <span id="s-qdrant">-</span> vecteurs</div>
|
||||
</div>
|
||||
<div class="stat-card c5">
|
||||
<div class="stat-icon">💬</div>
|
||||
<div class="stat-val g5" id="s-conv">0</div>
|
||||
<div class="stat-lbl">Conversations session</div>
|
||||
<div class="stat-extra"><span id="s-active">0</span> agents interrogés</div>
|
||||
</div>
|
||||
<div class="stat-card c6">
|
||||
<div class="stat-icon">🛡️</div>
|
||||
<div class="stat-val g6" id="s-nr">153/153</div>
|
||||
<div class="stat-lbl">NonReg invariant</div>
|
||||
<div class="stat-extra"><span class="up">▲</span> L99 <span id="s-l99">-</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<main>
|
||||
<aside class="sidebar">
|
||||
<div class="cat">
|
||||
<h3>📂 Catégories</h3>
|
||||
<div class="panel">
|
||||
<div class="panel-h">📂 Catégories</div>
|
||||
<div class="cat-list" id="cat-list">
|
||||
<div class="cat-item active" data-cat="all">Tous <span class="cat-count" id="c-all">-</span></div>
|
||||
<div class="cat-item active" data-cat="all">🌐 Tous <span class="cat-count">-</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cat">
|
||||
<h3>⚡ Actions rapides</h3>
|
||||
<div class="panel">
|
||||
<div class="panel-h">⚡ Actions rapides</div>
|
||||
<div class="cat-list">
|
||||
<div class="cat-item" onclick="startMultiAgent()">🎯 Question à N agents</div>
|
||||
<div class="cat-item" onclick="startMultiAgent()">🎯 Broadcast N agents</div>
|
||||
<div class="cat-item" onclick="askFavorites()">⭐ Ask my favorites</div>
|
||||
<div class="cat-item" onclick="location.href='/wevia-meeting-rooms.html'">🏛️ Meeting Room</div>
|
||||
<div class="cat-item" onclick="startCollab()">🤝 Collab 2 agents</div>
|
||||
<div class="cat-item" onclick="location.href='/wevia-orchestrator.html'">🎛️ Orchestrator</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="panel-h">🔥 Top agents</div>
|
||||
<div id="top-agents" class="cat-list">
|
||||
<div class="empty" style="padding:20px 0;font-size:11px">Chargement...</div>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<section class="feed">
|
||||
<div class="filter-bar">
|
||||
<input type="text" class="search" placeholder="🔍 Chercher un agent (WEVIA, Ethica, Blade, Cortex...)" id="q" oninput="renderAgents()">
|
||||
<div class="filter-chip on" data-st="all" onclick="filterStatus(this)">Tous</div>
|
||||
<div class="filter-chip" data-st="live" onclick="filterStatus(this)">🟢 LIVE</div>
|
||||
<div class="filter-chip" data-st="ready" onclick="filterStatus(this)">✓ Ready</div>
|
||||
<div class="search-wrap">
|
||||
<input type="text" class="search" placeholder="Chercher agent (WEVIA, Ethica, Blade, Cortex, DeerFlow...)" id="q" oninput="renderAgents()">
|
||||
</div>
|
||||
<div class="chip on" data-st="all" onclick="filterStatus(this)">Tous</div>
|
||||
<div class="chip" data-st="live" onclick="filterStatus(this)">🟢 LIVE</div>
|
||||
<div class="chip" data-st="ready" onclick="filterStatus(this)">✓ Ready</div>
|
||||
<div class="chip" onclick="sortBy('name')" id="sort-name">↕️ Nom</div>
|
||||
<div class="chip" onclick="sortBy('cat')" id="sort-cat">📂 Cat</div>
|
||||
</div>
|
||||
<div class="grid" id="grid">
|
||||
<div class="loading">⚡ Chargement du réseau social IA...</div>
|
||||
<div class="loading-sk"></div>
|
||||
<div class="loading-sk"></div>
|
||||
<div class="loading-sk"></div>
|
||||
<div class="loading-sk"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<aside class="activity">
|
||||
<div class="act-panel">
|
||||
<h3>📊 KPI Network</h3>
|
||||
<div class="kpi-row">
|
||||
<div class="kpi"><div class="kpi-val" id="k-total">-</div><div class="kpi-lbl">Agents</div></div>
|
||||
<div class="kpi"><div class="kpi-val" id="k-live">-</div><div class="kpi-lbl">Live</div></div>
|
||||
<div class="kpi"><div class="kpi-val" id="k-cats">-</div><div class="kpi-lbl">Catégories</div></div>
|
||||
<div class="kpi"><div class="kpi-val" id="k-conv">0</div><div class="kpi-lbl">Conversations</div></div>
|
||||
<div class="panel">
|
||||
<div class="panel-h">🔔 Feed LIVE (router)</div>
|
||||
<div class="live-feed" id="live-feed">
|
||||
<div class="empty" style="font-size:11px">Chargement...</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="act-panel">
|
||||
<h3>🔔 Activité récente</h3>
|
||||
<div id="activity-feed">
|
||||
<div class="empty">Commencez une conversation pour voir l'activité</div>
|
||||
<div class="panel">
|
||||
<div class="panel-h">🖥️ Infra live</div>
|
||||
<div class="infra-list" id="infra-list">
|
||||
<div class="empty" style="font-size:11px;grid-column:1/-1">Scan...</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="panel-h">🎓 Training</div>
|
||||
<div id="training-info" style="font-size:11px;line-height:1.7;color:var(--hg)">
|
||||
<div class="empty" style="font-size:11px">Loading...</div>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</main>
|
||||
|
||||
<!-- Modal chat -->
|
||||
<!-- Modal chat premium -->
|
||||
<div class="modal" id="chat-modal">
|
||||
<div class="modal-box">
|
||||
<div class="modal-head">
|
||||
<div class="agent-avatar" id="m-avatar" style="width:32px;height:32px;font-size:14px">?</div>
|
||||
<div class="modal-title" id="m-title">Agent</div>
|
||||
<div class="agent-avatar" id="m-avatar" style="width:44px;height:44px;font-size:20px">?</div>
|
||||
<div class="modal-title">
|
||||
<div class="modal-title-name" id="m-name">Agent</div>
|
||||
<div class="modal-title-sub"><span class="pulse-dot"></span> <span id="m-api">Routing...</span></div>
|
||||
</div>
|
||||
<button class="modal-close" onclick="closeModal()">✕</button>
|
||||
</div>
|
||||
<div class="chat-area" id="m-chat"></div>
|
||||
<div class="typing" id="m-typing"><span></span><span></span><span></span></div>
|
||||
<div class="chat-input-bar">
|
||||
<input class="chat-input" id="m-input" placeholder="Posez votre question..." onkeypress="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();sendMsg()}">
|
||||
<button class="send-btn" id="m-send" onclick="sendMsg()">Send</button>
|
||||
<input class="chat-input" id="m-input" placeholder="Pose une question..." onkeypress="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();sendMsg()}">
|
||||
<button class="send-btn" id="m-send" onclick="sendMsg()">Envoyer ➤</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var AGENTS=[], FILTERED=[], CURRENT_AGENT=null, STATUS_FILTER="all", CURRENT_CAT="all", CONV_COUNT=0;
|
||||
var UNIVERSAL_API="/api/weval-ia-fast.php"; // la plupart des agents utilisent ça
|
||||
// ========== STATE ==========
|
||||
var AGENTS=[], FILTERED=[], CURRENT_AGENT=null, STATUS_FILTER="all", CURRENT_CAT="all", SORT="default";
|
||||
var CONV_COUNT=0, ACTIVE_AGENTS=new Set();
|
||||
var UNIVERSAL_API="/api/weval-ia-fast.php";
|
||||
|
||||
// Mapping IA -> endpoint spécifique (override universal)
|
||||
var AGENT_APIS={
|
||||
"wevia":"/api/weval-ia-fast.php",
|
||||
"wevia master":"/api/wevia-master-api.php",
|
||||
"weval mind":"/api/hamid-api-proxy.php",
|
||||
"weval manager":"/api/weval-manager.php",
|
||||
"ethica":"/api/ethica-brain.php",
|
||||
"bladerazor":"/api/blade-brain.php",
|
||||
"manager":"/api/weval-manager.php",
|
||||
"blade":"/api/blade-brain.php",
|
||||
"wevcode":"/api/wevcode-superclaude.php",
|
||||
"chat proxy":"/api/chat-proxy.php",
|
||||
"wedroid":"/api/wedroid-brain-api.php",
|
||||
"consensus":"/api/chat-proxy.php",
|
||||
"wedroid":"/api/wedroid-brain-api.php"
|
||||
"claude":"/api/chat-proxy.php"
|
||||
};
|
||||
|
||||
// Icons et couleurs par categorie (visuel vivant)
|
||||
var CAT_META={
|
||||
"core":{icon:"⚡",color:"#8b5cf6",label:"Core"},
|
||||
"claudecode":{icon:"🔮",color:"#06d6ba",label:"Claude Code"},
|
||||
"deerflow":{icon:"🦌",color:"#10b981",label:"DeerFlow"},
|
||||
"hermes":{icon:"⚕️",color:"#fbbf24",label:"Hermes"},
|
||||
"superclaude":{icon:"🧠",color:"#ec4899",label:"Superclaude"},
|
||||
"skills":{icon:"🎯",color:"#06b6d4",label:"Skills"},
|
||||
"business":{icon:"💼",color:"#3b82f6",label:"Business"},
|
||||
"big4":{icon:"🏆",color:"#ef4444",label:"Big 4"}
|
||||
};
|
||||
|
||||
function catMeta(cat){return CAT_META[cat]||{icon:"🤖",color:"#64748b",label:cat||"misc"}}
|
||||
|
||||
function getAgentAPI(agent){
|
||||
var n=(agent.name||"").toLowerCase();
|
||||
for(var k in AGENT_APIS){ if(n.includes(k))return AGENT_APIS[k]; }
|
||||
for(var k in AGENT_APIS){ if(n.indexOf(k)>=0)return AGENT_APIS[k]; }
|
||||
return UNIVERSAL_API;
|
||||
}
|
||||
|
||||
function iconFor(cat){
|
||||
var m={"core":"⚡","claudecode":"🔮","deerflow":"🦌","hermes":"⚕️","superclaude":"🧠","skills":"🎯","business":"💼","big4":"🏆"};
|
||||
return m[cat]||"🤖";
|
||||
}
|
||||
function catColor(cat){
|
||||
var m={"core":"#7c5cff","claudecode":"#4fd1c7","deerflow":"#10b981","hermes":"#f59e0b","superclaude":"#ec4899","skills":"#06b6d4","business":"#3b82f6","big4":"#ef4444"};
|
||||
return m[cat]||"#64748b";
|
||||
}
|
||||
|
||||
// ========== LOADERS ==========
|
||||
async function loadAgents(){
|
||||
try{
|
||||
var r=await fetch("/api/agents-catalog-api.php");
|
||||
var d=await r.json();
|
||||
AGENTS=d.agents||[];
|
||||
document.getElementById("c-all").textContent=AGENTS.length;
|
||||
document.getElementById("kpi-agents").textContent=AGENTS.length;
|
||||
document.getElementById("k-total").textContent=AGENTS.length;
|
||||
document.getElementById("k-cats").textContent=Object.keys(d.categories||{}).length;
|
||||
document.getElementById("k-live").textContent=AGENTS.filter(function(a){return a.status==="ready"||a.status==="live"}).length;
|
||||
document.getElementById("s-agents").textContent=AGENTS.length.toLocaleString();
|
||||
document.getElementById("hdr-agents").textContent=AGENTS.length.toLocaleString()+" agents";
|
||||
document.getElementById("s-catalog").textContent=AGENTS.length;
|
||||
renderCats(d.categories||{});
|
||||
renderAgents();
|
||||
renderTopAgents();
|
||||
}catch(e){
|
||||
document.getElementById("grid").innerHTML='<div class="empty">⚠️ Erreur chargement: '+e.message+'</div>';
|
||||
document.getElementById("grid").innerHTML='<div class="empty">⚠️ '+e.message+'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
async function loadHealth(){
|
||||
try{
|
||||
var r=await fetch("/api/ecosystem-health.php");
|
||||
var d=await r.json();
|
||||
if(d.score){document.getElementById("s-score").textContent=d.score;document.getElementById("hdr-score").textContent="Health "+d.score;}
|
||||
if(d.l99){document.getElementById("s-l99").textContent=d.l99.pass+"/"+d.l99.total;}
|
||||
if(d.ecosystem){
|
||||
if(d.ecosystem.skills)document.getElementById("s-skills").textContent=d.ecosystem.skills.toLocaleString();
|
||||
}
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
async function loadTraining(){
|
||||
try{
|
||||
var r=await fetch("/api/training-status.php");
|
||||
var d=await r.json();
|
||||
if(d.cognitive&&d.cognitive.fn)document.getElementById("s-cognitive").textContent=d.cognitive.fn;
|
||||
if(d.intents&&d.intents.wired)document.getElementById("s-intents").textContent=d.intents.wired.toLocaleString();
|
||||
if(d.qdrant&&d.qdrant.vectors!==undefined)document.getElementById("s-qdrant").textContent=d.qdrant.vectors;
|
||||
// Panel training droit
|
||||
var info=document.getElementById("training-info");
|
||||
info.innerHTML='';
|
||||
var addRow=function(icon,label,val){ info.innerHTML+='<div style="display:flex;justify-content:space-between;padding:4px 0"><span style="color:var(--mg)">'+icon+' '+label+'</span><strong style="color:var(--fg)">'+val+'</strong></div>'; };
|
||||
if(d.hf_model)addRow("🤗","HF Model",'<span style="font-family:monospace;font-size:10px">'+d.hf_model+'</span>');
|
||||
if(d.wiki&&d.wiki.entries)addRow("📚","Wiki",d.wiki.entries+" entries");
|
||||
if(d.vault&&d.vault.files)addRow("🔐","Vault",d.vault.files+" files");
|
||||
if(d.vault&&d.vault.gold)addRow("🥇","GOLD",d.vault.gold+" backups");
|
||||
if(d.qdrant)addRow("🧬","Qdrant",(d.qdrant.vectors||0)+" vectors");
|
||||
if(d.cron_training){
|
||||
var crons=Object.keys(d.cron_training).map(function(k){return k+":"+d.cron_training[k]}).join(", ");
|
||||
addRow("⏰","Crons",'<span style="color:var(--ok);font-size:10px">active x'+Object.keys(d.cron_training).length+'</span>');
|
||||
}
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
async function loadInfra(){
|
||||
try{
|
||||
var r=await fetch("/api/infra-monitor-api.php");
|
||||
var d=await r.json();
|
||||
var list=document.getElementById("infra-list");
|
||||
list.innerHTML='';
|
||||
var servers=d.servers||{};
|
||||
// Juste S204 services (les plus importants)
|
||||
var s204=servers.s204||{};
|
||||
var svcs=(s204.services||[]).slice(0,8);
|
||||
svcs.forEach(function(s){
|
||||
var cls=s.status==="active"?"ok":"down";
|
||||
var dot=s.status==="active"?"":"down";
|
||||
list.innerHTML+='<div class="infra-item '+cls+'"><span><span class="svc-dot '+dot+'"></span> '+s.name.substring(0,10)+'</span><span style="font-size:10px;color:var(--mg);font-family:monospace">'+(s.port||"")+'</span></div>';
|
||||
});
|
||||
}catch(e){ document.getElementById("infra-list").innerHTML='<div class="empty" style="grid-column:1/-1;font-size:11px">⚠️ offline</div>'; }
|
||||
}
|
||||
|
||||
async function loadLiveFeed(){
|
||||
try{
|
||||
var r=await fetch("/api/router-activity.php?k=WEVADS2026&limit=10");
|
||||
var d=await r.json();
|
||||
var feed=document.getElementById("live-feed");
|
||||
var matches=d.matches||[];
|
||||
if(!matches.length){ feed.innerHTML='<div class="empty" style="font-size:11px">Pas d activité récente</div>'; return; }
|
||||
feed.innerHTML=matches.slice(0,8).map(function(m){
|
||||
var ago=timeAgo(m.ts);
|
||||
var msg=(m.msg||"").substring(0,80);
|
||||
return '<div class="live-item">'+
|
||||
'<div class="live-item-head">'+
|
||||
'<div class="live-item-msg">💭 '+escapeHtml(msg)+'</div>'+
|
||||
'</div>'+
|
||||
'<div class="live-item-meta">⏱ '+ago+' · <span style="font-family:monospace;opacity:.6">router</span></div>'+
|
||||
'</div>';
|
||||
}).join("");
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
// ========== RENDER ==========
|
||||
function renderCats(cats){
|
||||
var el=document.getElementById("cat-list");
|
||||
el.innerHTML='<div class="cat-item active" data-cat="all" onclick="selectCat(\'all\',this)">🌐 Tous <span class="cat-count">'+AGENTS.length+'</span></div>';
|
||||
Object.keys(cats).sort().forEach(function(c){
|
||||
var ic=iconFor(c);
|
||||
el.innerHTML+='<div class="cat-item" data-cat="'+c+'" onclick="selectCat(\''+c+'\',this)">'+ic+' '+c+' <span class="cat-count">'+cats[c]+'</span></div>';
|
||||
el.innerHTML='<div class="cat-item active" data-cat="all" onclick="selectCat(\'all\',this)"><span><span class="cat-emoji">🌐</span> Tous</span><span class="cat-count">'+AGENTS.length+'</span></div>';
|
||||
Object.keys(cats).sort(function(a,b){return cats[b]-cats[a]}).forEach(function(c){
|
||||
var m=catMeta(c);
|
||||
el.innerHTML+='<div class="cat-item" data-cat="'+c+'" onclick="selectCat(\''+c+'\',this)" style="--cat-color:'+m.color+'"><span><span class="cat-emoji">'+m.icon+'</span> '+m.label+'</span><span class="cat-count">'+cats[c]+'</span></div>';
|
||||
});
|
||||
}
|
||||
|
||||
function renderTopAgents(){
|
||||
var el=document.getElementById("top-agents");
|
||||
var top=AGENTS.slice(0,7);
|
||||
el.innerHTML=top.map(function(a,i){
|
||||
var m=catMeta(a.cat);
|
||||
return '<div class="cat-item" onclick="openChat('+AGENTS.indexOf(a)+')" style="--cat-color:'+m.color+'">'+
|
||||
'<span><span class="cat-emoji">'+(a.icon||m.icon)+'</span> '+(a.name||"?").substring(0,18)+'</span>'+
|
||||
'<span class="cat-count" style="background:'+m.color+'22;color:'+m.color+'">'+m.label.substring(0,4)+'</span>'+
|
||||
'</div>';
|
||||
}).join("");
|
||||
}
|
||||
|
||||
function selectCat(c,el){
|
||||
CURRENT_CAT=c;
|
||||
document.querySelectorAll(".cat-item").forEach(function(x){x.classList.remove("active")});
|
||||
document.querySelectorAll(".cat-item[data-cat]").forEach(function(x){x.classList.remove("active")});
|
||||
el.classList.add("active");
|
||||
renderAgents();
|
||||
}
|
||||
|
||||
function filterStatus(el){
|
||||
STATUS_FILTER=el.dataset.st;
|
||||
document.querySelectorAll(".filter-chip").forEach(function(x){x.classList.remove("on")});
|
||||
document.querySelectorAll(".filter-bar .chip[data-st]").forEach(function(x){x.classList.remove("on")});
|
||||
el.classList.add("on");
|
||||
renderAgents();
|
||||
}
|
||||
|
||||
function sortBy(key){
|
||||
SORT=key; renderAgents();
|
||||
}
|
||||
|
||||
function renderAgents(){
|
||||
var q=(document.getElementById("q").value||"").toLowerCase();
|
||||
var q=(document.getElementById("q").value||"").toLowerCase().trim();
|
||||
FILTERED=AGENTS.filter(function(a){
|
||||
if(CURRENT_CAT!=="all"&&a.cat!==CURRENT_CAT)return false;
|
||||
if(STATUS_FILTER==="live"&&a.status!=="live"&&a.status!=="ready")return false;
|
||||
@@ -259,41 +528,59 @@ function renderAgents(){
|
||||
if(q&&!(a.name||"").toLowerCase().includes(q)&&!(a.desc||"").toLowerCase().includes(q))return false;
|
||||
return true;
|
||||
});
|
||||
if(SORT==="name")FILTERED.sort(function(a,b){return(a.name||"").localeCompare(b.name||"")});
|
||||
if(SORT==="cat")FILTERED.sort(function(a,b){return(a.cat||"").localeCompare(b.cat||"")});
|
||||
|
||||
var g=document.getElementById("grid");
|
||||
if(!FILTERED.length){ g.innerHTML='<div class="empty">Aucun agent correspondant</div>'; return; }
|
||||
g.innerHTML=FILTERED.slice(0,60).map(function(a){
|
||||
if(!FILTERED.length){ g.innerHTML='<div class="empty" style="grid-column:1/-1">Aucun agent. Essaye "WEVIA" ou "Ethica"</div>'; return; }
|
||||
var limit=60;
|
||||
g.innerHTML=FILTERED.slice(0,limit).map(function(a){
|
||||
var init=(a.name||"?").charAt(0).toUpperCase();
|
||||
var col=catColor(a.cat);
|
||||
var m=catMeta(a.cat);
|
||||
var statusCls=(a.status==="ready"||a.status==="live")?"":"idle";
|
||||
return '<div class="agent-card" data-idx="'+AGENTS.indexOf(a)+'">'+
|
||||
var iconUsed=a.icon&&a.icon.length>=2?a.icon:init;
|
||||
var idx=AGENTS.indexOf(a);
|
||||
// Extract metriques de la desc si elle contient numbers
|
||||
var metrics=[];
|
||||
var desc=a.desc||"";
|
||||
var nums=desc.match(/\d[\d,\/.]*/g)||[];
|
||||
nums.slice(0,3).forEach(function(n){metrics.push(n)});
|
||||
return '<div class="agent-card" style="--cat-color:'+m.color+'" onclick="openChat('+idx+')">'+
|
||||
'<div class="agent-head">'+
|
||||
'<div class="agent-avatar" style="background:linear-gradient(135deg,'+col+','+col+'aa)">'+init+'</div>'+
|
||||
'<div class="agent-avatar" style="background:linear-gradient(135deg,'+m.color+','+m.color+'cc)">'+iconUsed+'</div>'+
|
||||
'<div style="flex:1;min-width:0">'+
|
||||
'<div class="agent-name">'+a.name+'</div>'+
|
||||
'<div class="agent-cat">'+iconFor(a.cat)+' '+(a.cat||"?")+'</div>'+
|
||||
'<div class="agent-name">'+escapeHtml(a.name||"?")+'</div>'+
|
||||
'<div class="agent-cat-lbl"><span class="cat-emoji">'+m.icon+'</span> '+m.label+'</div>'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'<div class="agent-desc">'+(a.desc||"Agent WEVAL")+'</div>'+
|
||||
'<div class="agent-desc">'+escapeHtml(desc||"Agent WEVAL")+'</div>'+
|
||||
(metrics.length?'<div class="agent-metrics">'+metrics.map(function(x){return '<span class="metric-tag">'+x+'</span>'}).join("")+'</div>':'')+
|
||||
'<div class="agent-status '+statusCls+'"><span class="status-dot"></span> '+(a.status||"ready").toUpperCase()+'</div>'+
|
||||
'<div class="agent-actions">'+
|
||||
'<div class="act-btn" onclick="openChat('+AGENTS.indexOf(a)+')">💬 Chat</div>'+
|
||||
'<div class="act-btn" onclick="askToAll(\''+(a.name||"").replace(/\x27/g,"").substring(0,30)+'\')">📢 Broadcast</div>'+
|
||||
'<div class="agent-actions" onclick="event.stopPropagation()">'+
|
||||
'<button class="act-btn primary" onclick="openChat('+idx+')">💬 Chat</button>'+
|
||||
'<button class="act-btn" onclick="askToAll(\''+escapeAttr(a.name)+'\')">📢 Broadcast</button>'+
|
||||
'</div>'+
|
||||
'</div>';
|
||||
}).join("");
|
||||
if(FILTERED.length>60){ g.innerHTML+='<div class="empty" style="grid-column:1/-1">... et '+(FILTERED.length-60)+' agents supplémentaires (filtrez pour affiner)</div>'; }
|
||||
if(FILTERED.length>limit){ g.innerHTML+='<div class="empty" style="grid-column:1/-1;padding:20px">Affichage '+limit+'/'+FILTERED.length+' — affinez la recherche pour voir plus</div>'; }
|
||||
}
|
||||
|
||||
// ========== CHAT ==========
|
||||
function openChat(idx){
|
||||
CURRENT_AGENT=AGENTS[idx];
|
||||
if(!CURRENT_AGENT)return;
|
||||
document.getElementById("m-title").textContent=CURRENT_AGENT.name;
|
||||
document.getElementById("m-avatar").textContent=(CURRENT_AGENT.name||"?").charAt(0).toUpperCase();
|
||||
document.getElementById("m-avatar").style.background="linear-gradient(135deg,"+catColor(CURRENT_AGENT.cat)+","+catColor(CURRENT_AGENT.cat)+"aa)";
|
||||
var m=catMeta(CURRENT_AGENT.cat);
|
||||
ACTIVE_AGENTS.add(CURRENT_AGENT.name);
|
||||
document.getElementById("s-active").textContent=ACTIVE_AGENTS.size;
|
||||
document.getElementById("m-name").textContent=CURRENT_AGENT.name;
|
||||
var av=document.getElementById("m-avatar");
|
||||
av.textContent=(CURRENT_AGENT.icon&&CURRENT_AGENT.icon.length>=2)?CURRENT_AGENT.icon:(CURRENT_AGENT.name||"?").charAt(0).toUpperCase();
|
||||
av.style.background="linear-gradient(135deg,"+m.color+","+m.color+"cc)";
|
||||
var api=getAgentAPI(CURRENT_AGENT);
|
||||
document.getElementById("m-chat").innerHTML='<div class="msg sys">💬 Connecté à <strong>'+CURRENT_AGENT.name+'</strong> · API: '+api+'</div>';
|
||||
document.getElementById("m-api").textContent=m.label+" · "+api;
|
||||
document.getElementById("m-chat").innerHTML='<div class="msg sys">🎉 Connecté à <strong>'+escapeHtml(CURRENT_AGENT.name)+'</strong><br><span style="font-size:10px;opacity:.7">'+escapeHtml(CURRENT_AGENT.desc||"")+'</span></div>';
|
||||
document.getElementById("chat-modal").classList.add("on");
|
||||
document.getElementById("m-input").focus();
|
||||
setTimeout(function(){document.getElementById("m-input").focus()},100);
|
||||
}
|
||||
function closeModal(){ document.getElementById("chat-modal").classList.remove("on"); }
|
||||
|
||||
@@ -305,72 +592,103 @@ async function sendMsg(){
|
||||
chat.innerHTML+='<div class="msg u">'+escapeHtml(msg)+'</div>';
|
||||
inp.value="";
|
||||
document.getElementById("m-send").disabled=true;
|
||||
document.getElementById("m-typing").classList.add("on");
|
||||
chat.scrollTop=chat.scrollHeight;
|
||||
addActivity("💬 "+CURRENT_AGENT.name+" · "+msg.substring(0,50));
|
||||
|
||||
var api=getAgentAPI(CURRENT_AGENT);
|
||||
var t0=Date.now();
|
||||
try{
|
||||
var r=await fetch(api,{
|
||||
method:"POST",
|
||||
headers:{"Content-Type":"application/json"},
|
||||
body:JSON.stringify({message:msg,msg:msg,q:msg,provider:"cerebras",session_id:"cbsocial_"+Date.now()})
|
||||
body:JSON.stringify({message:msg,msg:msg,q:msg,provider:"cerebras",session_id:"cbsocial_"+Date.now(),caps:{kb:true,infra:true}})
|
||||
});
|
||||
var txt=await r.text();
|
||||
var data;
|
||||
try{ data=JSON.parse(txt); }catch(e){ data={response:txt.substring(0,500),error:"non-JSON"}; }
|
||||
var reply=data.response||data.content||data.output||data.message||data.error||"(réponse vide)";
|
||||
try{ data=JSON.parse(txt); }catch(e){ data={response:txt.substring(0,600),error:"non-JSON"}; }
|
||||
var reply=data.response||data.content||data.output||data.message||data.error||data.reply||"(réponse vide)";
|
||||
if(typeof reply!=="string")reply=JSON.stringify(reply).substring(0,800);
|
||||
var prov=data.provider||data.model||"unknown";
|
||||
chat.innerHTML+='<div class="msg a">'+escapeHtml(reply)+'<div class="msg-meta">via '+escapeHtml(prov)+'</div></div>';
|
||||
var ms=Date.now()-t0;
|
||||
document.getElementById("m-typing").classList.remove("on");
|
||||
chat.innerHTML+='<div class="msg a">'+escapeHtml(reply)+'<div class="msg-meta">⚡ '+escapeHtml(prov)+' · ⏱ '+ms+'ms</div></div>';
|
||||
CONV_COUNT++;
|
||||
document.getElementById("k-conv").textContent=CONV_COUNT;
|
||||
document.getElementById("s-conv").textContent=CONV_COUNT;
|
||||
}catch(e){
|
||||
chat.innerHTML+='<div class="msg sys">⚠️ '+e.message+'</div>';
|
||||
document.getElementById("m-typing").classList.remove("on");
|
||||
chat.innerHTML+='<div class="msg sys">⚠️ '+escapeHtml(e.message)+'</div>';
|
||||
}
|
||||
document.getElementById("m-send").disabled=false;
|
||||
chat.scrollTop=chat.scrollHeight;
|
||||
}
|
||||
|
||||
function escapeHtml(s){ var d=document.createElement("div"); d.textContent=s||""; return d.innerHTML.replace(/\n/g,"<br>"); }
|
||||
|
||||
function addActivity(text){
|
||||
var feed=document.getElementById("activity-feed");
|
||||
if(feed.querySelector(".empty"))feed.innerHTML="";
|
||||
var t=new Date().toLocaleTimeString();
|
||||
feed.innerHTML='<div class="act-item">'+escapeHtml(text)+'<div class="act-time">'+t+'</div></div>'+feed.innerHTML;
|
||||
}
|
||||
|
||||
// ========== ACTIONS ==========
|
||||
function startMultiAgent(){
|
||||
var q=prompt("Question à poser à tous les agents Core + Claudecode (max 10 agents) :");
|
||||
var q=prompt("❓ Question à broadcast (à 10 agents core+claudecode) :");
|
||||
if(!q)return;
|
||||
var sel=AGENTS.filter(function(a){return ["core","claudecode"].indexOf(a.cat)>=0}).slice(0,10);
|
||||
addActivity("📢 Broadcast à "+sel.length+" agents : "+q.substring(0,40));
|
||||
alert("🎯 Multi-agent broadcast lancé à "+sel.length+" agents. Ouvrez chaque chat pour voir les réponses.");
|
||||
sel.forEach(function(a,i){ setTimeout(function(){ openChat(AGENTS.indexOf(a)); document.getElementById("m-input").value=q; sendMsg(); setTimeout(closeModal,2000); }, i*3000); });
|
||||
sel.forEach(function(a,i){ setTimeout(function(){ openChat(AGENTS.indexOf(a)); document.getElementById("m-input").value=q; sendMsg(); setTimeout(closeModal,2500); }, i*3500); });
|
||||
}
|
||||
|
||||
function askFavorites(){
|
||||
var favs=["WEVIA Master","Ethica","Bladerazor","DeerFlow","Manager"];
|
||||
var q=prompt("Question à poser à tes IA favorites (WEVIA Master, Ethica, Blade, DeerFlow, Manager) :");
|
||||
if(!q)return;
|
||||
var sel=[];
|
||||
favs.forEach(function(n){ var a=AGENTS.find(function(x){return(x.name||"").toLowerCase().includes(n.toLowerCase())}); if(a)sel.push(a); });
|
||||
sel.forEach(function(a,i){ setTimeout(function(){ openChat(AGENTS.indexOf(a)); document.getElementById("m-input").value=q; sendMsg(); setTimeout(closeModal,2500); }, i*3500); });
|
||||
}
|
||||
|
||||
function askToAll(agentName){
|
||||
var q=prompt("Poser une question à "+agentName+" (sera broadcast aussi aux autres similaires) :");
|
||||
var q=prompt("Question destinée à "+agentName+" (démarrage d un broadcast) :");
|
||||
if(!q)return;
|
||||
addActivity("📢 Broadcast originé par "+agentName+" : "+q.substring(0,40));
|
||||
alert("Broadcast envoyé (démo). Réel routing multi-agents via /wevia-meeting-rooms.html");
|
||||
var a=AGENTS.find(function(x){return x.name===agentName});
|
||||
if(a){ openChat(AGENTS.indexOf(a)); setTimeout(function(){ document.getElementById("m-input").value=q; sendMsg(); }, 300); }
|
||||
}
|
||||
|
||||
function startCollab(){
|
||||
var n1=prompt("Nom agent 1 (ex: WEVIA Master) :"); if(!n1)return;
|
||||
var n2=prompt("Nom agent 2 (ex: Ethica) :"); if(!n2)return;
|
||||
var topic=prompt("Sujet de collaboration :"); if(!topic)return;
|
||||
var a1=AGENTS.find(function(a){return a.name.toLowerCase().includes(n1.toLowerCase())});
|
||||
var a2=AGENTS.find(function(a){return a.name.toLowerCase().includes(n2.toLowerCase())});
|
||||
if(!a1||!a2){ alert("Agent(s) non trouvé(s). Utilisez les noms exacts."); return; }
|
||||
addActivity("🤝 Collab "+a1.name+" ↔ "+a2.name+" sur : "+topic.substring(0,40));
|
||||
alert("Collab initiée. Pour vrai multi-agent interactif, visitez /wevia-meeting-rooms.html");
|
||||
var n1=prompt("Agent 1 (ex: WEVIA Master) :"); if(!n1)return;
|
||||
var n2=prompt("Agent 2 (ex: Ethica) :"); if(!n2)return;
|
||||
var topic=prompt("Sujet collab :"); if(!topic)return;
|
||||
var a1=AGENTS.find(function(a){return(a.name||"").toLowerCase().includes(n1.toLowerCase())});
|
||||
if(!a1){ alert("Agent "+n1+" non trouvé."); return; }
|
||||
openChat(AGENTS.indexOf(a1));
|
||||
document.getElementById("m-input").value="Analyse avec "+a2.name+" le sujet : "+topic;
|
||||
setTimeout(function(){
|
||||
document.getElementById("m-input").value="Analyse avec "+n2+" ce sujet : "+topic;
|
||||
sendMsg();
|
||||
},400);
|
||||
}
|
||||
|
||||
// Init
|
||||
// ========== UTILS ==========
|
||||
function escapeHtml(s){ var d=document.createElement("div"); d.textContent=(s==null?"":String(s)); return d.innerHTML.replace(/\n/g,"<br>"); }
|
||||
function escapeAttr(s){ return String(s||"").replace(/'/g,"").replace(/"/g,"").substring(0,40); }
|
||||
function timeAgo(ts){
|
||||
try{
|
||||
var t=new Date(ts);
|
||||
var s=Math.floor((Date.now()-t)/1000);
|
||||
if(s<60)return s+"s";
|
||||
if(s<3600)return Math.floor(s/60)+"min";
|
||||
if(s<86400)return Math.floor(s/3600)+"h";
|
||||
return Math.floor(s/86400)+"j";
|
||||
}catch(e){return ts||""}
|
||||
}
|
||||
|
||||
// ========== INIT + LIVE REFRESH ==========
|
||||
loadAgents();
|
||||
loadHealth();
|
||||
loadTraining();
|
||||
loadInfra();
|
||||
loadLiveFeed();
|
||||
|
||||
// Rafraichissement toutes les 30s (feed live + infra)
|
||||
setInterval(function(){ loadLiveFeed(); loadInfra(); }, 30000);
|
||||
setInterval(function(){ loadHealth(); loadTraining(); }, 90000);
|
||||
|
||||
// Focus sur recherche avec /
|
||||
document.addEventListener("keydown",function(e){
|
||||
if(e.key==="/"&&document.activeElement.tagName!=="INPUT"){ e.preventDefault(); document.getElementById("q").focus(); }
|
||||
if(e.key==="Escape"&&document.getElementById("chat-modal").classList.contains("on")){ closeModal(); }
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user