Files

35 lines
1.0 KiB
Python
Raw Permalink Normal View History

"""Fan-out lab events to supervisor agents Mo & Bart."""
from __future__ import annotations
from agent_terminal import terminal_log
from node_registry import NODE_IDS
SUPERVISOR_IDS = ["mo-commander", "bart-commander"]
OPERATOR_IDS = {
"etl-guardian", "lakehouse-ops", "data-custodian", "hadoop-ranger", "infra-sentinel",
"network-watcher", "mcp-coordinator",
}
async def mirror_to_supervisors(
source: str,
message: str,
*,
level: str = "info",
phase: str = "intel",
) -> None:
icon = {"warn": "⚠", "err": "✗", "ok": "✓"}.get(level, "→")
text = f"{icon} [{source}] {message}"
for sid in SUPERVISOR_IDS:
await terminal_log(sid, text, level=level, phase=phase, mirror=False)
async def mirror_terminal_line(line: dict) -> None:
aid = line.get("agent_id", "")
if aid in SUPERVISOR_IDS or aid in NODE_IDS:
return
if aid in OPERATOR_IDS:
lvl = line.get("level", "info")
await mirror_to_supervisors(aid, line.get("text", "")[:240], level=lvl, phase="trace")