#!/usr/bin/env zsh
set -euo pipefail

script_dir="${0:A:h}"
source "${script_dir}/lib/common.zsh"
source "${script_dir}/lib/json.zsh"

usage='Usage: list_gemini_models [--json]'
inferencer_parse_list_args "$usage" "$@" || exit $?
inferencer_require_command jq
inferencer_require_command curl

api_key="${GEMINI_API_KEY:-}"
url="${GEMINI_MODELS_URL:-https://generativelanguage.googleapis.com/v1beta/models}"
inferencer_require_api_key "$api_key" "GEMINI_API_KEY"

response="$(curl --silent --show-error --fail "${url}?key=${api_key}")"

if inferencer_response_has_error "$response"; then
  inferencer_print_error_response "$response"
  exit 1
fi

if [[ "$INFERENCER_JSON" == true ]]; then
  printf '%s\n' "$response" | jq .
else
  printf '%s\n' "$response" | inferencer_format_table
fi
