#!/usr/bin/env bash

set -euo pipefail

script_path="${BASH_SOURCE[0]:-$0}"
case "${OSTYPE:-}" in
  # Windows hosts may pass a backslash path; dirname only splits on slashes.
  msys* | cygwin* | win32*) script_path="${script_path//\\//}" ;;
esac
script_dir="$(cd "$(dirname "${script_path}")" && pwd)"
plugin_root="$(cd "${script_dir}/.." && pwd)"
bootstrap_path="${plugin_root}/adapters/bootstrap.md"

if [ ! -f "$bootstrap_path" ]; then
  printf 'NoBrainer hook: missing adapters/bootstrap.md\n' >&2
  exit 1
fi

escape_for_json() {
  local value="$1"
  value="${value//\\/\\\\}"
  value="${value//\"/\\\"}"
  value="${value//$'\n'/\\n}"
  value="${value//$'\r'/\\r}"
  value="${value//$'\t'/\\t}"
  printf '%s' "$value"
}

session_context="$(escape_for_json "$(<"$bootstrap_path")")"

if [ -n "${CURSOR_PLUGIN_ROOT:-}" ]; then
  printf '{"additional_context":"%s"}\n' "$session_context"
elif [ -n "${CLAUDE_PLUGIN_ROOT:-}" ]; then
  printf '{"hookSpecificOutput":{"hookEventName":"SessionStart","additionalContext":"%s"}}\n' "$session_context"
else
  printf 'NoBrainer hook: unsupported SessionStart host\n' >&2
  exit 1
fi
