Files
skills/scripts/watch-check.sh
T

26 lines
1.0 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Usage: watch-check.sh
# Shows whether the agents-council watch hook is stuck: running hook
# processes, holders of the kept queue history, and the age of the stored
# resource stage. Exit 1 when the stored stage is older than STALE_SECONDS.
set -euo pipefail
# council.py ROOT: every agent must agree on this directory
STATE="${AGENTS_COUNCIL_ROOT:-/tmp/agents-council}/watch.json"
KEPT="${HOME}/.local/state/agents-council/queue-history.jsonl"
STALE_SECONDS=600
printf 'watch hooks running: %s\n' "$(pgrep -fc 'watch.py watch' || true)"
if command -v lsof &>/dev/null; then
printf 'holders of %s:\n' "${KEPT}"
lsof "${KEPT}" 2>/dev/null || printf ' none\n'
else
printf 'lsof not installed; holders of %s unknown\n' "${KEPT}"
fi
python3 -c '
import json, sys, time
state = json.load(open(sys.argv[1]))
stage, free, age = state["stage"], state["free"], round(time.time() - state["checked"])
print(f"stored stage {stage}, {free:.1f} GB free, {age} s old")
sys.exit(1 if age > int(sys.argv[2]) else 0)
' "${STATE}" "${STALE_SECONDS}"