#!/usr/bin/env bash
# install.sh — make gnet available on your PATH.
set -euo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$HERE"

# Make scripts executable
chmod +x bin/gnet bin/gnet-ask bin/gnet-knowledge bin/gnet-observe bin/gnet-reset bin/gnet-voice lib/*.sh lib/state/*.sh lib/runtimes/*.sh

# Dep check (warn-only; gnet itself re-checks at runtime)
missing=()
for dep in claude tmux jq python3; do
  command -v "$dep" >/dev/null 2>&1 || missing+=("$dep")
done
if [ ${#missing[@]} -gt 0 ]; then
  printf '\033[33m[gnet] missing dependencies: %s\033[0m\n' "${missing[*]}" >&2
  printf '       install them before running gnet.\n' >&2
fi

TARGET_DIR="${GNET_INSTALL_DIR:-$HOME/.local/bin}"
mkdir -p "$TARGET_DIR"
ln -sfn "$HERE/bin/gnet"           "$TARGET_DIR/gnet"
ln -sfn "$HERE/bin/gnet-ask"       "$TARGET_DIR/gnet-ask"
ln -sfn "$HERE/bin/gnet-knowledge" "$TARGET_DIR/gnet-knowledge"
ln -sfn "$HERE/bin/gnet-observe"   "$TARGET_DIR/gnet-observe"
ln -sfn "$HERE/bin/gnet-reset"     "$TARGET_DIR/gnet-reset"
ln -sfn "$HERE/bin/gnet-voice"     "$TARGET_DIR/gnet-voice"

printf '\033[32m[gnet]\033[0m installed symlinks:\n'
printf '        %s -> %s\n' "$TARGET_DIR/gnet"           "$HERE/bin/gnet"
printf '        %s -> %s\n' "$TARGET_DIR/gnet-ask"       "$HERE/bin/gnet-ask"
printf '        %s -> %s\n' "$TARGET_DIR/gnet-knowledge" "$HERE/bin/gnet-knowledge"
printf '        %s -> %s\n' "$TARGET_DIR/gnet-observe"   "$HERE/bin/gnet-observe"
printf '        %s -> %s\n' "$TARGET_DIR/gnet-reset"     "$HERE/bin/gnet-reset"
printf '        %s -> %s\n' "$TARGET_DIR/gnet-voice"     "$HERE/bin/gnet-voice"

case ":$PATH:" in
  *":$TARGET_DIR:"*) : ;;
  *) printf '\033[33m[gnet]\033[0m note: %s is not on your PATH. Add this line to your shell rc:\n  export PATH="%s:$PATH"\n' "$TARGET_DIR" "$TARGET_DIR" ;;
esac

printf '\033[36m[gnet]\033[0m try it:  cd /path/to/some/project && gnet\n'
