set -euo pipefail
AGENT="${AGENT_NAME:-mock-agent}"
START_TIME=$(date +%s)
trap 'echo "[$AGENT] Received SIGTERM — shutting down."; exit 0' TERM
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " claudemock — $AGENT"
echo " PID: $$"
echo " Started: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "Type /help for commands, /exit to quit."
echo ""
while true; do
printf "[%s] > " "$AGENT"
if ! read -r -t 5 line 2>/dev/null; then
continue
fi
[[ -z "$line" ]] && continue
case "$line" in
/exit)
echo "[$AGENT] Exiting."
exit 0
;;
/status)
NOW=$(date +%s)
UPTIME=$(( NOW - START_TIME ))
echo "[$AGENT] Agent: $AGENT"
echo "[$AGENT] PID: $$"
echo "[$AGENT] Uptime: ${UPTIME}s"
echo "[$AGENT] Role: ${AGENT_ROLE:-unset}"
echo "[$AGENT] Channel: ${SYNAPT_CHANNELS:-unset}"
;;
/help)
echo "[$AGENT] Available commands:"
echo " /status — show agent name, PID, uptime"
echo " /help — show this help"
echo " /exit — clean shutdown"
echo " (anything else is echoed back)"
;;
*)
echo "[$AGENT] echo: $line"
;;
esac
done