#!/bin/bash
set -euo pipefail

RUNTIME_CHANNEL="managed_oci_v1"
RUNTIME_VERSION="2026.04.29.2"
RUNTIME_PROVIDER="oci_linux_adapter"
RUNTIME_MANIFEST_HASH="035b27209cc2b31740d3085c458951fc3d81da95df1f1bafd2af0e1775f3b205"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROVIDER_SCRIPT="$SCRIPT_DIR/providers/oci-linux.sh"
COMMAND="${1:-ensure}"

if [[ ! -f "$PROVIDER_SCRIPT" ]]; then
  echo "missing runtime provider adapter at $PROVIDER_SCRIPT" >&2
  exit 1
fi

# shellcheck source=/dev/null
source "$PROVIDER_SCRIPT"

case "$COMMAND" in
  ensure)
    ensure_ryvion_managed_runtime "$RUNTIME_CHANNEL" "$RUNTIME_VERSION" "$RUNTIME_PROVIDER" "$RUNTIME_MANIFEST_HASH"
    ;;
  install)
    install_ryvion_managed_runtime "$RUNTIME_CHANNEL" "$RUNTIME_VERSION" "$RUNTIME_PROVIDER"
    ;;
  status)
    if test_ryvion_managed_runtime_ready; then
      echo "ready"
      exit 0
    fi
    echo "not_ready"
    exit 1
    ;;
  status-json)
    emit_ryvion_managed_runtime_status_json "$RUNTIME_CHANNEL" "$RUNTIME_VERSION" "$RUNTIME_PROVIDER" "$RUNTIME_MANIFEST_HASH"
    ;;
  oci)
    shift || true
    invoke_ryvion_managed_runtime_oci "$RUNTIME_CHANNEL" "$RUNTIME_VERSION" "$RUNTIME_PROVIDER" "$RUNTIME_MANIFEST_HASH" "$@"
    ;;
  *)
    echo "unknown runtime wrapper command: $COMMAND" >&2
    exit 1
    ;;
esac
