#!/bin/bash
# Print a prompt file from $OLLIE_PROMPTS_PATH to stdout for agentSpawn hook injection.
# Usage: prime <name>  (resolves <name> or <name>.md under OLLIE_PROMPTS_PATH)
# OLLIE_PROMPTS_PATH is colon-separated (like PATH). Each directory is searched
# in order for <name> and <name>.md.
# Performs environment variable substitution on the file contents.
set -euo pipefail

PROMPTS_PATH="${OLLIE_PROMPTS_PATH:-${HOME}/.config/ollie/prompts}"

if [ $# -ne 1 ]; then
    echo "usage: prime <name>" >&2
    exit 1
fi

NAME="$1"

IFS=: read -ra DIRS <<< "$PROMPTS_PATH"
for dir in "${DIRS[@]}"; do
    [ -z "$dir" ] && continue
    for path in "$dir/$NAME" "$dir/$NAME.md"; do
        if [ -f "$path" ]; then
            export PRIME_DATE="$(date +%Y-%m-%d)"
            export PRIME_PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')"
            export PRIME_IS_GIT_REPO="$([ -e .git ] && echo true || echo false)"
            envsubst '${OLLIE_PROMPTS_PATH} ${OLLIE_SESSION_ID} ${PWD} ${PRIME_DATE} ${PRIME_PLATFORM} ${PRIME_IS_GIT_REPO}' < "$path"
            exit 0
        fi
    done
done

echo "prime: prompt not found: $NAME" >&2
exit 1
