#!/usr/bin/env bash # Hook script: read projects//data/issues/*.pending (spooler tickets) and output JSON with additional_context for sessionStart. # Run from project root (Cursor). Repo root = parent of ia_dev when script lives in ia_dev/.cursor/hooks. # Output: {"additional_context": "Mails en attente (data/issues):\n"} or {"additional_context": ""} if none. set -euo pipefail # Consume stdin (hook input JSON) cat > /dev/null SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" IA_DEV="${ROOT}/ia_dev" PROJECT_SLUG="" [ -f "${ROOT}/ai_project_id" ] && PROJECT_SLUG="$(cat "${ROOT}/ai_project_id" | sed 's/[[:space:]]//g')" [ -z "$PROJECT_SLUG" ] && [ -f "${ROOT}/.ia_project" ] && PROJECT_SLUG="$(cat "${ROOT}/.ia_project" | sed 's/[[:space:]]//g')" if [ -n "$PROJECT_SLUG" ] && [ -d "${IA_DEV}/projects/${PROJECT_SLUG}" ]; then SPOOL="${IA_DEV}/projects/${PROJECT_SLUG}/data/issues" else SPOOL="${ROOT}/data/issues" fi if [ ! -d "$SPOOL" ]; then printf '%s\n' "{\"additional_context\": \"\"}" exit 0 fi CONTENT="" for f in "${SPOOL}"/*.pending; do [ -f "$f" ] && CONTENT="${CONTENT}--- ${f##*/} ---"$'\n'"$(cat "$f")"$'\n' done if [ -n "$CONTENT" ]; then if command -v jq >/dev/null 2>&1; then printf '%s' "$CONTENT" | jq -R -s '{additional_context: ("Mails en attente (data/issues):\n" + .)}' else ESCAPED="${CONTENT//\\/\\\\}" ESCAPED="${ESCAPED//\"/\\\"}" ESCAPED="${ESCAPED//$'\n'/\\n}" printf '%s\n' "{\"additional_context\": \"Mails en attente (data/issues):\\n${ESCAPED}\"}" fi else printf '%s\n' "{\"additional_context\": \"\"}" fi