# pi-config shell helpers
# source from ~/.bashrc or compatible shell rc

export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.npm-global/bin:$PATH"
export PI_CODING_AGENT_DIR=/home/sebas/pi-config
export PLAYWRIGHT_BROWSERS_PATH="$HOME/playwright-browsers"
export PERSONAL_AGENT_SHARED_MEMORY_DB_PATH=~/agents-database/data/shared-agent-memory.sqlite3
export COLORTERM=truecolor
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"

piresume() {
    local pi_bin session_root before after latest filename id
    pi_bin="$(type -P pi)" || return 127
    session_root="${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}/sessions"
    before="$(find "$session_root" -name '*.jsonl' -printf '%T@ %p\n' 2>/dev/null | sort -n | tail -n 1 | cut -d' ' -f2-)"

    "$pi_bin" "$@"
    local rc=$?

    case "$-" in
        *i*) ;;
        *) return $rc ;;
    esac

    after="$(find "$session_root" -name '*.jsonl' -printf '%T@ %p\n' 2>/dev/null | sort -n | tail -n 1 | cut -d' ' -f2-)"
    latest="$after"
    [ -n "$latest" ] || return $rc
    [ "$latest" = "$before" ] && return $rc

    filename="${latest##*/}"
    id="${filename#*_}"
    id="${id%.jsonl}"
    printf '\n\033[32mVolvé a esta conversación con: pi --session %s\033[0m\n' "$id"
    return $rc
}

pitmux() {
    local tmux_bin pi_bin session_name
    tmux_bin="$(type -P tmux)" || return 127
    pi_bin="$(type -P pi)" || return 127
    session_name="${1:-pi-$(date +%Y%m%d-%H%M%S)}"
    shift 2>/dev/null || true
    env TERM=tmux-256color COLORTERM=truecolor TERM_PROGRAM= tmux new-session -A -s "$session_name" "$pi_bin" "$@"
}

# Ghostty may advertise TERM=xterm-ghostty, which is often missing on remote hosts.
if [ -n "$SSH_CONNECTION" ] && [ -z "$TMUX" ]; then
    case "$TERM" in
        xterm-ghostty)
            export TERM=xterm-256color
            ;;
    esac
fi
