#!/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