#!/usr/bin/env bash

set -euo pipefail

version="${AGENTTEAM_MANAGED_OPENCODE_VERSION:-}"
if [[ -z "${version}" ]]; then
  command -v curl >/dev/null 2>&1 || {
    echo "curl is required to resolve the latest OpenCode release" >&2
    exit 1
  }
  latest_release="$(curl -fsSL -o /dev/null -w '%{url_effective}' "${MANAGED_OPENCODE_LATEST_RELEASE_URL:-https://github.com/anomalyco/opencode/releases/latest}")"
  case "${latest_release}" in
    */releases/tag/v*) version="${latest_release##*/v}" ;;
    *)
      echo "Unable to resolve the latest OpenCode version from ${latest_release}" >&2
      exit 1
      ;;
  esac
fi

if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z.-]+)?$ ]]; then
  echo "Invalid OpenCode release version: ${version}" >&2
  exit 1
fi

printf '%s\n' "${version}"
