Activate agent mesh with honest live status and working animations.

Souls now aggregate aliased events (e.g. halal_engine), KPIs reflect 6h activity, active agents animate, and morning scheduler/scripts target cockpit :8610.
This commit is contained in:
Aissa
2026-08-01 17:59:32 +00:00
parent 5e43b6b246
commit 22a17ed048
8 changed files with 291 additions and 37 deletions
+93
View File
@@ -208,3 +208,96 @@
white-space: pre-wrap;
}
.badge-sm { font-size: 0.62rem; padding: 0.12rem 0.4rem; }
/* Live working animations */
.agent-soul-card {
transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
border: 1px solid rgba(148,163,184,0.12);
border-radius: 14px;
background: rgba(12, 18, 28, 0.85);
}
.agent-soul-card.is-working {
border-color: rgba(56, 189, 248, 0.55);
box-shadow: 0 0 0 1px rgba(56,189,248,0.2), 0 12px 28px rgba(0, 180, 255, 0.12);
animation: agent-card-pulse 2.2s ease-in-out infinite;
}
.agent-soul-card.is-busy {
border-color: rgba(251, 191, 36, 0.65);
box-shadow: 0 0 0 1px rgba(251,191,36,0.25), 0 12px 28px rgba(251, 191, 36, 0.12);
animation: agent-card-pulse-busy 1.4s ease-in-out infinite;
}
.agent-soul-card.is-working .agent-char-wrap,
.agent-soul-card.is-busy .agent-char-wrap {
animation: agent-avatar-bob 1.1s ease-in-out infinite;
}
.agent-soul-card.is-working .agent-char-wrap::after,
.agent-soul-card.is-busy .agent-char-wrap::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(circle at 70% 20%, rgba(56,189,248,0.35), transparent 55%);
animation: agent-glow-sweep 2.4s ease-in-out infinite;
}
.agent-soul-card.is-busy .agent-char-wrap::after {
background: radial-gradient(circle at 70% 20%, rgba(251,191,36,0.4), transparent 55%);
}
.agent-activity-eq {
display: inline-flex;
align-items: flex-end;
gap: 2px;
height: 12px;
margin-left: 0.35rem;
vertical-align: middle;
}
.agent-activity-eq span {
width: 3px;
border-radius: 2px;
background: #38bdf8;
animation: agent-eq 0.9s ease-in-out infinite;
}
.agent-soul-card.is-busy .agent-activity-eq span { background: #fbbf24; }
.agent-activity-eq span:nth-child(1) { height: 4px; animation-delay: 0s; }
.agent-activity-eq span:nth-child(2) { height: 8px; animation-delay: 0.12s; }
.agent-activity-eq span:nth-child(3) { height: 6px; animation-delay: 0.24s; }
.agent-activity-eq span:nth-child(4) { height: 10px; animation-delay: 0.08s; }
.agent-status-pill.active {
border-color: rgba(34,197,94,0.45);
color: #86efac;
background: rgba(34,197,94,0.1);
}
.agent-status-pill.busy {
border-color: rgba(245,158,11,0.5);
color: #fcd34d;
background: rgba(245,158,11,0.12);
animation: agent-pill-blink 1.2s ease-in-out infinite;
}
.agent-status-pill.idle .dot { background: #64748b; }
.agent-status-pill.offline .dot { background: #475569; opacity: 0.7; }
.agent-status-pill.offline { color: #64748b; }
@keyframes agent-card-pulse {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-2px); }
}
@keyframes agent-card-pulse-busy {
0%, 100% { transform: translateY(0) scale(1); }
50% { transform: translateY(-3px) scale(1.01); }
}
@keyframes agent-avatar-bob {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-3px); }
}
@keyframes agent-glow-sweep {
0%, 100% { opacity: 0.35; }
50% { opacity: 0.85; }
}
@keyframes agent-eq {
0%, 100% { transform: scaleY(0.55); opacity: 0.7; }
50% { transform: scaleY(1.25); opacity: 1; }
}
@keyframes agent-pill-blink {
0%, 100% { box-shadow: 0 0 0 0 rgba(251,191,36,0); }
50% { box-shadow: 0 0 12px rgba(251,191,36,0.25); }
}