#!/usr/bin/env bash
# Morgen-Digest: Sammelt die zurückgehaltenen nächtlichen Meldungen (00:00 - 06:59)
# und lässt Lucy (LLM) eine Telegram-Zusammenfassung daraus bauen.
set -uo pipefail

NIGHT_QUEUE="$HOME/.hermes/night-queue.txt"
if [ ! -f "$NIGHT_QUEUE" ]; then
  # Keine nächtlichen Meldungen
  exit 0
fi

# Wenn die Datei existiert, aber leer ist, löschen und beenden.
if [ ! -s "$NIGHT_QUEUE" ]; then
  rm -f "$NIGHT_QUEUE"
  exit 0
fi

EVIDENCE="$(cat "$NIGHT_QUEUE")"

PROMPT="Du bist Lucy, die KI-Assistenz der Mission-Control-Box. 
Hier sind die Systemmeldungen der vergangenen Nacht. 
Der Commander möchte ordentlich Futter und Details zum Frühstück! Fasse die Meldungen zu einem gehaltvollen Morgen-Digest zusammen.
Beachte dabei:
- Nenne konkrete Fakten, Namen und Versionen.
- Welche Modelle wurden z.B. vom Radar entdeckt oder evaluiert? Was waren die Ergebnisse?
- Welche Updates liefen genau und was haben sie Neues gebracht? Was muss sich der Commander noch anschauen?
- Strukturiere die Nachricht übersichtlich (z.B. mit kleinen Emojis oder Bulletpoints), aber bleibe in deiner Rolle als Lucy.

Nächtliche Meldungen:
$EVIDENCE"

# LLM aufrufen (llama-swap / gpt-oss-120b)
ENDPOINT="${CHEF_ENDPOINT:-http://127.0.0.1:8080/v1/chat/completions}"
MODEL="${CHEF_MODEL:-gpt-oss-120b}"

REQ="$(jq -n --arg m "$MODEL" --arg sys "Du bist Lucy." --arg usr "$PROMPT" --argjson mt 1200 \
  '{model:$m, messages:[{role:"system",content:$sys},{role:"user",content:$usr}],
    max_tokens:$mt, temperature:0.4}')"

DIGEST="$(curl -s -m 180 "$ENDPOINT" -H 'Content-Type: application/json' --data-binary "$REQ" \
  | python3 -c '
import json, sys
try:
    d = json.load(sys.stdin)
    msg = d["choices"][0]["message"]
    print((msg.get("content") or msg.get("reasoning_content") or "").strip())
except Exception:
    pass'
)"

if [ -n "$DIGEST" ]; then
  # Sende den Digest via hermes send (Telegram)
  bash -lc 'hermes send --to telegram --subject "[🌅 Morgen-Digest]" -- "$1"' _ "$DIGEST"
  if [ $? -eq 0 ]; then
    # Erfolgreich gesendet, Queue leeren
    rm -f "$NIGHT_QUEUE"
  else
    echo "Fehler beim Senden des Morgen-Digests an Telegram. Queue bleibt erhalten." >&2
  fi
else
  echo "Leerer Digest vom LLM. Queue bleibt erhalten." >&2
fi
