#!/usr/bin/env bash
# gpu-status — show current vast.ai instance state + tunnel + opencode endpoint.
set -uo pipefail
STATE_FILE=/var/lib/specker/vast-current.json
OPENCODE_CONFIG=/home/opencode/.config/opencode/opencode.json
PATH="/root/.local/bin:$PATH"

echo "=== state file ==="
if [[ -f $STATE_FILE ]]; then
  jq . "$STATE_FILE"
else
  echo "(no active instance)"
fi
echo
echo "=== reverse tunnel (127.0.0.1:11440) ==="
ss -tlnp 2>/dev/null | grep "127.0.0.1:11440 " || echo "(not listening)"
echo
echo "=== opencode current model + endpoint ==="
jq -r '.model, (.provider | to_entries[0].value.options.baseURL)' "$OPENCODE_CONFIG" 2>/dev/null
echo
if [[ -f $STATE_FILE ]]; then
  INSTANCE_ID=$(jq -r '.instance_id' "$STATE_FILE")
  echo "=== vast.ai instance status ==="
  vastai show instance "$INSTANCE_ID" --raw 2>/dev/null \
    | jq '{actual_status, intended_status, cur_state, gpu_name, ssh_host, ssh_port, dph_total, disk_usage}' 2>/dev/null \
    || echo "(vastai show failed)"
fi
