#!/usr/bin/env bash set -e # Omni/Agent/monitor-worker.sh # Monitors the worker agent's activity by filtering the debug log. # Usage: ./Omni/Agent/monitor-worker.sh [worker-directory-name] WORKER_NAME="${1:-omni-worker-1}" REPO_ROOT="$(git rev-parse --show-toplevel)" WORKER_PATH="$REPO_ROOT/../$WORKER_NAME" LOG_FILE="$WORKER_PATH/_/llm/amp.log" if [ ! -f "$LOG_FILE" ]; then echo "Waiting for log file at $LOG_FILE..." while [ ! -f "$LOG_FILE" ]; do sleep 1; done fi echo "Monitoring Worker Agent in '$WORKER_PATH'..." echo "Press Ctrl+C to stop." echo "------------------------------------------------" # Tail the log and use jq to parse/filter relevant events # We handle JSON parse errors gracefully (in case of partial writes) tail -f "$LOG_FILE" | grep --line-buffered "^{" | jq -R -r ' try ( fromjson | if .message == "executing 1 tools in 1 batch(es)" then "🤖 THOUGHT: Planning tool execution (" + (.batches[0][0] // "unknown") + ")" elif .message == "Tool Bash - checking permissions" then empty elif .message == "Tool Bash permitted - action: allow" then "🔧 TOOL: Bash command executed" elif .toolName != null and .message == "Processing tool completion for ledger" then "✅ TOOL: " + .toolName + " completed" elif .message == "ide-fs" and .method == "readFile" then "📂 READ: " + .path elif .message == "System prompt build complete (no changes)" then "🧠 THINKING..." elif .message == "System prompt build complete (first build)" then "🚀 STARTING new task context" elif .level == "error" then "❌ ERROR: " + .message else empty end ) catch empty '