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

# agent-bar-open-terminal <command...>
#
# Goal: open a floating-ish terminal for agent-bar actions (menu/refresh).
#
# Omarchy/Hyprland users usually want a floating window; generic Waybar users
# still get a working terminal launch.
#
# Usage:
#   agent-bar-open-terminal agent-bar menu
#   agent-bar-open-terminal agent-bar refresh claude

if [ "$#" -lt 1 ]; then
  echo "Usage: agent-bar-open-terminal <command...>" >&2
  exit 2
fi

cmd="$*"

# 1) Omarchy/uwsm path (best UX on Omarchy)
if command -v uwsm-app >/dev/null 2>&1 && command -v xdg-terminal-exec >/dev/null 2>&1; then
  exec setsid uwsm-app -- xdg-terminal-exec \
    --app-id=org.omarchy.terminal \
    --title="Agent Bar" \
    -e bash -lc "$cmd"
fi

# 2) Generic fallbacks (works on most distros)
if command -v xdg-terminal-exec >/dev/null 2>&1; then
  exec setsid xdg-terminal-exec --title="Agent Bar" -e bash -lc "$cmd"
fi

if command -v alacritty >/dev/null 2>&1; then
  exec setsid alacritty --title "Agent Bar" -e bash -lc "$cmd"
fi

if command -v kitty >/dev/null 2>&1; then
  exec setsid kitty --title "Agent Bar" bash -lc "$cmd"
fi

if command -v foot >/dev/null 2>&1; then
  exec setsid foot -T "Agent Bar" bash -lc "$cmd"
fi

if command -v wezterm >/dev/null 2>&1; then
  exec setsid wezterm start --always-new-process --class "AgentBar" bash -lc "$cmd"
fi

echo "No supported terminal launcher found (xdg-terminal-exec/alacritty/kitty/foot/wezterm)." >&2
exit 1
