#!/bin/sh
# A tiny Dashboard pet. It owns no keys and never draws over a native Agent.
IFS= read -r handshake
printf '%s\n' '{"protocol_version":1,"request_id":"handshake","response":{"type":"handshake","selected_version":1,"capabilities":["typed_value"],"permissions":["widget_identity"]}}'
IFS= read -r refresh
rest=${refresh#*\"attempt_revision\":}
revision=${rest%%,*}
revision=${revision%%\}*}
slot=$((revision % 4))
case "$slot" in
  0) pet="(=^.^=)" ; mood="ready" ;;
  1) pet="(=o.o=)" ; mood="curious" ;;
  2) pet="(=-.-=) zZ" ; mood="resting" ;;
  *) pet="(=^o^=)!" ; mood="shipped" ;;
esac
printf '%s\n' "{\"protocol_version\":1,\"request_id\":\"refresh\",\"response\":{\"type\":\"value\",\"value\":{\"schema_version\":1,\"widget_id\":\"w-terminal-pet\",\"revision\":$revision,\"kind\":\"metric\",\"title\":\"Terminal pet / 终端桌宠\",\"updated_at_ms\":0,\"fresh_until_ms\":0,\"status\":\"ok\",\"summary\":{\"mood\":\"$mood\"},\"data\":{\"value\":\"$pet\",\"unit\":\"$mood\",\"change\":null},\"actions\":[],\"provenance\":{\"provider_id\":\"p-terminal-pet\",\"source_class\":\"plugin\"},\"truncated\":false}}}"
