Files
blackroad-dashboards/agent-detail.sh
Alexa Louise 0a4ededb2a Initial commit: 28 terminal dashboards + enhanced UX
- 11 Specialized dashboards (Master Control, Cosmic Lottery, Pi Fleet, etc)
- 11 Infrastructure dashboards (Network Topology, Docker Fleet, Security, etc)
- 6 Classic dashboards
- Enhanced launcher with arrow key navigation
- Theme system (7 themes: default, neon, retro, ocean, forest, sunset, monochrome)
- Favorites and recents tracking
- Search/filter functionality

🌌 Generated with Claude Code
2025-12-26 20:22:06 -06:00

415 lines
23 KiB
Bash
Executable File

#!/bin/bash
# BlackRoad OS - Agent Detail Viewer
# Individual agent inspection with live logs, resources, and configuration
# Color definitions (RGB values matching web UI)
BG_DEEP="\033[48;2;10;10;18m"
BG_SURFACE="\033[48;2;18;18;31m"
BG_ELEVATED="\033[48;2;26;26;46m"
# Accent colors
ORANGE="\033[38;2;247;147;26m" # #f7931a (Bitcoin orange)
PINK="\033[38;2;233;30;140m" # #e91e8c
PURPLE="\033[38;2;153;69;255m" # #9945ff (Solana purple)
BLUE="\033[38;2;20;241;149m" # #14f195
CYAN="\033[38;2;0;212;255m" # #00d4ff
# Text colors
TEXT_PRIMARY="\033[38;2;255;255;255m"
TEXT_SECONDARY="\033[38;2;153;153;153m"
TEXT_MUTED="\033[38;2;77;77;77m"
# Special
RESET="\033[0m"
BOLD="\033[1m"
DIM="\033[2m"
# Agent details (can be passed as arguments)
AGENT_NAME="${1:-Lucidia Prime}"
AGENT_HOST="${2:-192.168.4.38}"
AGENT_STATUS="${3:-online}"
AGENT_MODEL="${4:-sonnet-4.5}"
ACTIVE_TAB="${5:-overview}"
# Get status color
get_status_color() {
case $AGENT_STATUS in
online) echo "$BLUE" ;;
offline) echo "$TEXT_MUTED" ;;
error) echo "$PINK" ;;
busy) echo "$ORANGE" ;;
*) echo "$PURPLE" ;;
esac
}
# Draw horizontal line
draw_line() {
local width=$1
local char="${2:-}"
printf "%${width}s" | tr ' ' "$char"
}
# Render dashboard
render_dashboard() {
# Clear screen and set background
clear
echo -ne ""
clear
# Header
echo ""
echo -e "${BOLD}${ORANGE}╔════════════════════════════════════════════════════════════════════════╗${RESET}"
echo -e "${BOLD}${ORANGE}${RESET} ${TEXT_MUTED}Dashboards / Agents /${RESET} ${BOLD}${ORANGE}${AGENT_NAME}${RESET} ${BOLD}${ORANGE}${RESET}"
echo -e "${BOLD}${ORANGE}╚════════════════════════════════════════════════════════════════════════╝${RESET}"
echo ""
# Agent header card
local status_color=$(get_status_color)
local status_upper=$(echo "$AGENT_STATUS" | tr '[:lower:]' '[:upper:]')
echo -e " ${RESET}"
echo -e " ${BOLD}${ORANGE}┌────┐${RESET} ${RESET}"
echo -e " ${BOLD}${ORANGE}│ LP │${RESET} ${BOLD}${TEXT_PRIMARY}${AGENT_NAME}${RESET} ${RESET}"
echo -e " ${BOLD}${ORANGE}└────┘${RESET} ${status_color}${status_upper}${RESET} ${TEXT_MUTED}${RESET} ${TEXT_SECONDARY}${AGENT_HOST}${RESET} ${TEXT_MUTED}${RESET} ${TEXT_SECONDARY}${AGENT_MODEL}${RESET} ${RESET}"
echo -e " ${RESET}"
echo -e " ${TEXT_SECONDARY}Managed:${RESET} ${BOLD}${ORANGE}47${RESET} ${TEXT_SECONDARY}Events/min:${RESET} ${BOLD}${CYAN}1.2K${RESET} ${TEXT_SECONDARY}Latency:${RESET} ${BOLD}${BLUE}42ms${RESET} ${TEXT_SECONDARY}Uptime:${RESET} ${BOLD}${PURPLE}5d 14h${RESET} ${RESET}"
echo -e " ${RESET}"
echo ""
# Tab navigation
echo -ne " "
if [ "$ACTIVE_TAB" == "overview" ]; then
echo -ne "${BOLD}${ORANGE} Overview ${RESET} "
else
echo -ne "${TEXT_MUTED} Overview ${RESET} "
fi
if [ "$ACTIVE_TAB" == "logs" ]; then
echo -ne "${BOLD}${ORANGE} Logs ${RESET} "
else
echo -ne "${TEXT_MUTED} Logs ${RESET} "
fi
if [ "$ACTIVE_TAB" == "memory" ]; then
echo -ne "${BOLD}${ORANGE} Memory ${RESET} "
else
echo -ne "${TEXT_MUTED} Memory ${RESET} "
fi
if [ "$ACTIVE_TAB" == "connections" ]; then
echo -ne "${BOLD}${ORANGE} Connections ${RESET} "
else
echo -ne "${TEXT_MUTED} Connections ${RESET} "
fi
if [ "$ACTIVE_TAB" == "config" ]; then
echo -ne "${BOLD}${ORANGE} Config ${RESET} "
else
echo -ne "${TEXT_MUTED} Config ${RESET} "
fi
if [ "$ACTIVE_TAB" == "events" ]; then
echo -ne "${BOLD}${ORANGE} Events ${RESET}"
else
echo -ne "${TEXT_MUTED} Events ${RESET}"
fi
echo ""
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
# Render active tab
case $ACTIVE_TAB in
overview) render_overview ;;
logs) render_logs ;;
memory) render_memory ;;
connections) render_connections ;;
config) render_config ;;
events) render_events ;;
*) render_overview ;;
esac
# Footer
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_MUTED}Controls: ${TEXT_SECONDARY}[1-6]${TEXT_MUTED} Tab ${TEXT_SECONDARY}[r]${TEXT_MUTED} Refresh ${TEXT_SECONDARY}[s]${TEXT_MUTED} SSH ${TEXT_SECONDARY}[q]${TEXT_MUTED} Back${RESET}"
echo ""
}
# Overview tab
render_overview() {
local timestamp=$(date "+%H:%M:%S")
echo -e "${TEXT_MUTED}LIVE TERMINAL${RESET} ${TEXT_MUTED}(last 10 lines)${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Agent initialized successfully"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Connected to Event Bus"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${ORANGE}[SPAWN]${RESET} Spawned worker agent: Oracle-7x2b"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Memory vault synchronized"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}[EVENT]${RESET} Received orchestration command"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Processing task queue (3 items)"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${CYAN}[API]${RESET} Anthropic API call: 247ms"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${ORANGE}[SPAWN]${RESET} Worker completed: Oracle-7x2b"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Task completed successfully"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}[EVENT]${RESET} Broadcasting completion event"
echo ""
echo -e "${TEXT_MUTED}RESOURCE USAGE${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}CPU${RESET} ${BLUE}34%${RESET}"
echo -ne " "
echo -ne "${BLUE}██████████${RESET}"
echo -e " ${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Memory${RESET} ${PURPLE}67%${RESET}"
echo -ne " "
echo -ne "${PURPLE}████████████████████${RESET}"
echo -e " ${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Network${RESET} ${CYAN}23%${RESET}"
echo -ne " "
echo -ne "${CYAN}██████${RESET}"
echo -e " ${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Disk I/O${RESET} ${ORANGE}12%${RESET}"
echo -ne " "
echo -ne "${ORANGE}███${RESET}"
echo -e " ${RESET}"
echo ""
echo -e "${TEXT_MUTED}MEMORY VAULT${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${ORANGE}${RESET} ${TEXT_PRIMARY}Episodic Memory${RESET} ${TEXT_SECONDARY}847 entries${RESET} ${TEXT_MUTED}12.4 MB${RESET}"
echo -e " ${PURPLE}${RESET} ${TEXT_PRIMARY}Semantic Memory${RESET} ${TEXT_SECONDARY}1,203 vectors${RESET} ${TEXT_MUTED}8.7 MB${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Procedural Memory${RESET} ${TEXT_SECONDARY}34 workflows${RESET} ${TEXT_MUTED}2.1 MB${RESET}"
echo -e " ${CYAN}${RESET} ${TEXT_PRIMARY}Cache${RESET} ${TEXT_SECONDARY}512 items${RESET} ${TEXT_MUTED}4.8 MB${RESET}"
echo ""
echo -e "${TEXT_MUTED}ACTIVE CONNECTIONS${RESET} ${BLUE} 4 online ${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Event Bus${RESET} ${TEXT_SECONDARY}ws://event-bus.blackroad.io${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Memory Vault${RESET} ${TEXT_SECONDARY}https://memory.blackroad.io${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Cloudflare Workers${RESET} ${TEXT_SECONDARY}3 active workers${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Anthropic API${RESET} ${TEXT_SECONDARY}api.anthropic.com${RESET}"
echo ""
echo -e "${TEXT_MUTED}CAPABILITIES${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${ORANGE} orchestration ${RESET} ${PURPLE} spawn-agents ${RESET} ${BLUE} event-routing ${RESET} ${CYAN} memory-mgmt ${RESET}"
echo -e " ${PINK} api-gateway ${RESET} ${ORANGE} load-balancing ${RESET} ${PURPLE} state-sync ${RESET}"
echo ""
}
# Logs tab
render_logs() {
local timestamp=$(date "+%H:%M:%S")
echo -e "${TEXT_MUTED}REAL-TIME LOGS${RESET} ${TEXT_MUTED}(streaming)${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} System health check passed"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}[EVENT]${RESET} Event received: agent.spawn.request"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${ORANGE}[SPAWN]${RESET} Creating new agent: Oracle-8k3p"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${CYAN}[API]${RESET} Anthropic API: POST /v1/messages (201)"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Memory vault: Stored 12 new entries"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}[EVENT]${RESET} Broadcasting to 47 child agents"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Worker Oracle-8k3p initialized successfully"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${ORANGE}[SPAWN]${RESET} Agent Oracle-8k3p ready for tasks"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${CYAN}[API]${RESET} Cloudflare Workers: Deployed to 3 regions"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Queue processed: 8 tasks completed"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}[EVENT]${RESET} Task completion broadcasted"
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}[INFO]${RESET} Waiting for next event..."
echo ""
echo -e " ${TEXT_SECONDARY}$ _${RESET}"
echo ""
echo -e " ${TEXT_MUTED}Filters: ${TEXT_SECONDARY} ALL ${RESET} ${TEXT_MUTED}INFO SPAWN EVENT API${RESET}"
echo ""
}
# Memory tab
render_memory() {
echo -e "${TEXT_MUTED}MEMORY DISTRIBUTION${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Episodic${RESET} ${ORANGE}44%${RESET} ${TEXT_MUTED}847 entries${RESET} ${TEXT_MUTED}12.4 MB${RESET}"
echo -ne " "
echo -ne "${ORANGE}██████████████${RESET}"
echo -e " ${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Semantic${RESET} ${PURPLE}31%${RESET} ${TEXT_MUTED}1,203 vectors${RESET} ${TEXT_MUTED}8.7 MB${RESET}"
echo -ne " "
echo -ne "${PURPLE}█████████${RESET}"
echo -e " ${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Procedural${RESET} ${BLUE}7%${RESET} ${TEXT_MUTED}34 workflows${RESET} ${TEXT_MUTED}2.1 MB${RESET}"
echo -ne " "
echo -ne "${BLUE}██${RESET}"
echo -e " ${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Cache${RESET} ${CYAN}18%${RESET} ${TEXT_MUTED}512 items${RESET} ${TEXT_MUTED}4.8 MB${RESET}"
echo -ne " "
echo -ne "${CYAN}█████${RESET}"
echo -e " ${RESET}"
echo ""
echo -e "${TEXT_MUTED}RECENT MEMORIES${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_MUTED}2m ago${RESET} ${ORANGE}${RESET} ${TEXT_PRIMARY}Spawned Oracle-8k3p for task processing${RESET}"
echo -e " ${TEXT_MUTED}5m ago${RESET} ${PURPLE}${RESET} ${TEXT_PRIMARY}Received orchestration command from Event Bus${RESET}"
echo -e " ${TEXT_MUTED}12m ago${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Completed deployment workflow for 3 workers${RESET}"
echo -e " ${TEXT_MUTED}18m ago${RESET} ${CYAN}${RESET} ${TEXT_PRIMARY}Synchronized memory vault with cloud${RESET}"
echo -e " ${TEXT_MUTED}25m ago${RESET} ${ORANGE}${RESET} ${TEXT_PRIMARY}System health check passed all tests${RESET}"
echo ""
echo -e "${TEXT_MUTED}PERFORMANCE METRICS${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Retrieval Speed:${RESET} ${BOLD}${BLUE}12ms${RESET} avg"
echo -e " ${TEXT_SECONDARY}Write Latency:${RESET} ${BOLD}${PURPLE}8ms${RESET} avg"
echo -e " ${TEXT_SECONDARY}Cache Hit Rate:${RESET} ${BOLD}${ORANGE}87%${RESET}"
echo -e " ${TEXT_SECONDARY}Total Size:${RESET} ${BOLD}${CYAN}28.0 MB${RESET}"
echo ""
}
# Connections tab
render_connections() {
echo -e "${TEXT_MUTED}ACTIVE CONNECTIONS${RESET} ${BLUE} 4 online ${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${BOLD}${TEXT_PRIMARY}Event Bus${RESET}"
echo -e " ${TEXT_SECONDARY}ws://event-bus.blackroad.io${RESET}"
echo -e " ${TEXT_MUTED}Latency: 12ms • Messages: 1.2K/min • Uptime: 5d 14h${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${BOLD}${TEXT_PRIMARY}Memory Vault${RESET}"
echo -e " ${TEXT_SECONDARY}https://memory.blackroad.io${RESET}"
echo -e " ${TEXT_MUTED}Latency: 8ms • Sync: Every 30s • Size: 28.0 MB${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${BOLD}${TEXT_PRIMARY}Cloudflare Workers${RESET}"
echo -e " ${TEXT_SECONDARY}3 active workers across global edge${RESET}"
echo -e " ${TEXT_MUTED}Regions: US-West, EU, Asia • Total requests: 847K${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${BOLD}${TEXT_PRIMARY}Anthropic API${RESET}"
echo -e " ${TEXT_SECONDARY}api.anthropic.com${RESET}"
echo -e " ${TEXT_MUTED}Latency: 247ms • Model: ${AGENT_MODEL} • Tokens: 2.4M${RESET}"
echo ""
echo -e "${TEXT_MUTED}CHILD AGENTS${RESET} ${ORANGE} 47 managed ${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Oracle-7x2b${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Sentinel-9k1c${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Metrics-3p8d${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Crystal-4m7n${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Navigator-2x5k${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Oracle-8k3p${RESET}"
echo -e " ${TEXT_MUTED}+ 41 more agents...${RESET}"
echo ""
}
# Config tab
render_config() {
echo -e "${TEXT_MUTED}MODEL SETTINGS${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Model:${RESET} ${BOLD}${ORANGE}${AGENT_MODEL}${RESET}"
echo -e " ${TEXT_SECONDARY}Max Tokens:${RESET} ${TEXT_PRIMARY}4096${RESET}"
echo -e " ${TEXT_SECONDARY}Temperature:${RESET} ${TEXT_PRIMARY}0.7${RESET}"
echo -e " ${TEXT_SECONDARY}Top P:${RESET} ${TEXT_PRIMARY}0.9${RESET}"
echo ""
echo -e "${TEXT_MUTED}RESOURCE LIMITS${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Max Child Agents:${RESET} ${TEXT_PRIMARY}100${RESET}"
echo -e " ${TEXT_SECONDARY}Memory per Agent:${RESET} ${TEXT_PRIMARY}256 MB${RESET}"
echo -e " ${TEXT_SECONDARY}Max Queue Size:${RESET} ${TEXT_PRIMARY}1000${RESET}"
echo -e " ${TEXT_SECONDARY}Timeout:${RESET} ${TEXT_PRIMARY}30s${RESET}"
echo ""
echo -e "${TEXT_MUTED}FEATURE FLAGS${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Event Bus${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}PS-SHA∞${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Z-Framework${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Auto-scaling${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}Memory Vault${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}API Gateway${RESET}"
echo -e " ${BLUE}${RESET} ${TEXT_PRIMARY}Load Balancing${RESET} ${BLUE}${RESET} ${TEXT_PRIMARY}State Sync${RESET} ${TEXT_MUTED}${RESET} ${TEXT_MUTED}Debug Mode${RESET}"
echo ""
echo -e "${TEXT_MUTED}ENVIRONMENT${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_SECONDARY}Deployment:${RESET} ${BOLD}${PURPLE}Hybrid${RESET}"
echo -e " ${TEXT_SECONDARY}Host:${RESET} ${TEXT_PRIMARY}${AGENT_HOST}${RESET}"
echo -e " ${TEXT_SECONDARY}Platform:${RESET} ${TEXT_PRIMARY}Raspberry Pi 4 (ARM64)${RESET}"
echo ""
}
# Events tab
render_events() {
local timestamp=$(date "+%H:%M:%S")
echo -e "${TEXT_MUTED}EVENT STREAM${RESET} ${TEXT_MUTED}(last 50 events)${RESET}"
echo -e "${PINK}─────────────────────────────────────────────────────────────────────────${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}agent.spawn.complete${RESET}"
echo -e " ${TEXT_MUTED} {agent_id: \"Oracle-8k3p\", status: \"ready\"}${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${CYAN}api.request.success${RESET}"
echo -e " ${TEXT_MUTED} {endpoint: \"/v1/messages\", latency: 247}${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${ORANGE}memory.vault.sync${RESET}"
echo -e " ${TEXT_MUTED} {entries: 12, size: \"124KB\"}${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${BLUE}event.broadcast${RESET}"
echo -e " ${TEXT_MUTED} {type: \"task.complete\", recipients: 47}${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${PURPLE}agent.spawn.request${RESET}"
echo -e " ${TEXT_MUTED} {parent: \"Lucidia Prime\", task_type: \"inference\"}${RESET}"
echo ""
echo -e " ${TEXT_MUTED}[$timestamp]${RESET} ${CYAN}health.check.passed${RESET}"
echo -e " ${TEXT_MUTED} {cpu: 34%, memory: 67%, status: \"ok\"}${RESET}"
echo ""
echo -e " ${TEXT_MUTED}Event rate: ${RESET}${BOLD}${CYAN}1.2K${RESET}${TEXT_MUTED} events/min • Filters: ${TEXT_SECONDARY} ALL ${RESET}${RESET}"
echo ""
}
# Interactive mode
interactive_mode() {
while true; do
render_dashboard
# Read single character input
read -rsn1 input
case $input in
1) ACTIVE_TAB="overview" ;;
2) ACTIVE_TAB="logs" ;;
3) ACTIVE_TAB="memory" ;;
4) ACTIVE_TAB="connections" ;;
5) ACTIVE_TAB="config" ;;
6) ACTIVE_TAB="events" ;;
r|R) continue ;;
s|S)
echo -e "\n ${BLUE}Connecting to ${AGENT_HOST}...${RESET}"
sleep 1
# Would actually SSH here: ssh user@${AGENT_HOST}
;;
q|Q)
clear
echo ""
echo -e " ${BLUE}Returning to dashboard...${RESET}"
echo ""
sleep 1
exit 0
;;
esac
done
}
# Handle arguments
if [ "$6" == "--watch" ] || [ "$1" == "--watch" ]; then
interactive_mode
else
render_dashboard
fi