#!/usr/bin/env bash
# File: bin/serena
# Purpose: POSIX wrapper to launch Serena CLI via uvx for Codex diagnostics.
# Context: Ensures parity with Codex MCP configuration when running from UNIX-like shells.

set -euo pipefail

resolve_uvx() {
    if [[ -n "${UVX_BIN:-}" ]]; then
        printf '%s\n' "$UVX_BIN"
        return 0
    fi

    if command -v uvx >/dev/null 2>&1; then
        command -v uvx
        return 0
    fi

    local default_path="$HOME/AppData/Local/Programs/Python/Python313/Scripts/uvx.exe"
    if [[ -x "$default_path" ]]; then
        printf '%s\n' "$default_path"
        return 0
    fi

    printf 'serena: uvx executable not found. Set UVX_BIN or install uvx.\n' >&2
    return 1
}

UVX_PATH="$(resolve_uvx)"

exec "$UVX_PATH" --from git+https://github.com/oraios/serena serena "$@"
