#!/usr/bin/env bash
# /src/mia-code/miaco/bin/miaco — resolver shim
#
# Temporary workaround so .github-hooks/milestone_issue_handler's hardcoded
# fallback (which assumes miaco lives here) actually finds a real binary.
# Real fix: smarter discovery in the hook itself — see HF1 in
# /a/src/Miadi-18/.pde/2604160616--534a894e-5ba5-4552-9c57-eb209f4d2120/pde-534a894e-5ba5-4552-9c57-eb209f4d2120.md
#
# Discovery order:
#   1. $MIADI_MIACO_BIN (operator override)
#   2. newest /home/*/.nvm/versions/node/*/bin/miaco
#   3. /usr/local/bin/miaco, /opt/miaco/bin/miaco
# Falls through to an explicit error if none found.

set -euo pipefail

find_miaco() {
    if [ -n "${MIADI_MIACO_BIN:-}" ] && [ -x "$MIADI_MIACO_BIN" ]; then
        printf '%s\n' "$MIADI_MIACO_BIN"
        return 0
    fi

    local candidate
    # nvm globals — newest Node version first
    while IFS= read -r candidate; do
        [ -x "$candidate" ] && printf '%s\n' "$candidate" && return 0
    done < <(ls -1t /home/*/.nvm/versions/node/*/bin/miaco 2>/dev/null)

    for candidate in /usr/local/bin/miaco /opt/miaco/bin/miaco; do
        [ -x "$candidate" ] && printf '%s\n' "$candidate" && return 0
    done

    return 1
}

TARGET=$(find_miaco) || {
    echo "miaco-shim: no real miaco binary found on this host" >&2
    echo "miaco-shim: set MIADI_MIACO_BIN=/path/to/miaco, or install via nvm" >&2
    exit 127
}

exec "$TARGET" "$@"
