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

REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
CACHE_ROOT="${REPO_ROOT}/.cache/biomcp-specs"
XDG_CACHE_ROOT="${CACHE_ROOT}/xdg-cache"
XDG_CONFIG_ROOT="${CACHE_ROOT}/config"
 mkdir -p "$CACHE_ROOT" "$XDG_CACHE_ROOT" "$XDG_CONFIG_ROOT"

export BIOMCP_CACHE_DIR="$CACHE_ROOT"
export XDG_CACHE_HOME="$XDG_CACHE_ROOT"
export XDG_CONFIG_HOME="$XDG_CONFIG_ROOT"
export RUST_LOG="${RUST_LOG:-error}"

unset NCBI_API_KEY
unset S2_API_KEY
unset OPENFDA_API_KEY
unset NCI_API_KEY
unset ONCOKB_TOKEN
unset DISGENET_API_KEY
unset ALPHAGENOME_API_KEY
unset UMLS_API_KEY

if [[ "${BIOMCP_SPEC_CACHE_HIT:-}" == "1" && -z "${BIOMCP_CACHE_MODE:-}" ]]; then
  export BIOMCP_CACHE_MODE=infinite
fi

if [[ -n "${BIOMCP_BIN:-}" ]]; then
  exec "${BIOMCP_BIN}" "$@"
fi

FALLBACK_BIN="$(command -v biomcp || true)"
if [[ -n "$FALLBACK_BIN" ]]; then
  printf 'error: BIOMCP_BIN is unset; rejected PATH biomcp candidate: %s; set BIOMCP_BIN to select a binary\n' "$FALLBACK_BIN" >&2
else
  printf 'error: BIOMCP_BIN is unset; no repo-selected biomcp binary is available; set BIOMCP_BIN to select a binary\n' >&2
fi
exit 1
