fix(jobs): Persona zurueck - Emojis, Quellen-Links, Commander-Anrede, Stimme in Telegram
Mein erster Prompt verbot Emojis und Deko und ueberstimmte damit SOUL.md. Formatierung kommt aus der Persona, nicht aus dem Job. Dazu news-melden.sh: Text via notify.sh, Stimme via voice-service :8650 (Lucys echte deutsche Stimme, nicht Hermes' englisches edge-TTS) und hermes send MEDIA:. SOUL.md-Verweise auf die abgeschalteten Werkzeuge kanban/delegation behoben. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
9cf04c427e
commit
fa69edc1aa
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
# news-melden.sh — schickt den fertigen Nachrichtenbericht als TEXT und als
|
||||
# SPRACHE an den Commander (21.08.2026).
|
||||
#
|
||||
# Warum ein Skript statt zwei Anweisungen im Prompt: der Agent soll genau EINEN
|
||||
# Befehl aufrufen. Alles danach ist deterministisch — Zustellung darf nicht davon
|
||||
# abhaengen, ob ein Modell die Reihenfolge einhaelt.
|
||||
#
|
||||
# Erwartet zwei Dateien, die der Agent vorher geschrieben hat:
|
||||
# $1 Textfassung (mit Emojis, Links, Formatierung — geht nach Telegram)
|
||||
# $2 Sprechfassung (kurz, ohne Links/Emojis — wird vorgelesen)
|
||||
#
|
||||
# Stimme: MC2s voice-service auf :8650 — das ist Lucys ECHTE Stimme (Piper/
|
||||
# Chatterbox, deutsch). Hermes' eingebautes TTS steht auf `edge` mit
|
||||
# `en-US-AriaNeural` und waere englisch — deshalb hier bewusst nicht benutzt.
|
||||
set -uo pipefail
|
||||
|
||||
TEXTDATEI="${1:-/tmp/news-text.md}"
|
||||
SPRECHDATEI="${2:-/tmp/news-sprich.txt}"
|
||||
NOTIFY="${NOTIFY:-$HOME/mission-control-v2/deploy/notify.sh}"
|
||||
VOICE="${VOICE_URL:-http://127.0.0.1:8650}"
|
||||
HERMES="${HERMES_BIN:-$HOME/.local/bin/hermes}"
|
||||
TON="/tmp/news-stimme.wav"
|
||||
|
||||
if [ ! -s "$TEXTDATEI" ]; then
|
||||
bash "$NOTIFY" -s "[News]" "Der Nachrichtenbericht ist leer geblieben ($TEXTDATEI). Da lief etwas schief."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------ Text ----
|
||||
# notify.sh erreicht Telegram UND Lucys Briefkasten in einem Aufruf.
|
||||
bash "$NOTIFY" -s "" "$(cat "$TEXTDATEI")"
|
||||
TEXT_OK=$?
|
||||
|
||||
# ---------------------------------------------------------------- Stimme ----
|
||||
# Ab hier ist alles Kuer: klappt die Stimme nicht, ist der Text trotzdem raus.
|
||||
if [ ! -s "$SPRECHDATEI" ]; then
|
||||
echo "[news-melden] keine Sprechfassung — nur Text verschickt" >&2
|
||||
exit $TEXT_OK
|
||||
fi
|
||||
|
||||
CODE=$(curl -s -m 180 -X POST "$VOICE/tts" \
|
||||
-H 'Content-Type: application/json' \
|
||||
--data "$(python3 -c 'import json,sys; print(json.dumps({"text": open(sys.argv[1], encoding="utf-8").read()[:1500]}))' "$SPRECHDATEI")" \
|
||||
-o "$TON" -w '%{http_code}' 2>/dev/null)
|
||||
|
||||
if [ "$CODE" != "200" ] || [ ! -s "$TON" ]; then
|
||||
echo "[news-melden] TTS antwortete mit '$CODE' — Text ist raus, Stimme nicht" >&2
|
||||
exit $TEXT_OK
|
||||
fi
|
||||
|
||||
"$HERMES" send --to telegram "MEDIA:$TON" >/dev/null 2>&1 \
|
||||
|| echo "[news-melden] Sprachdatei liess sich nicht senden — Text ist raus" >&2
|
||||
|
||||
exit $TEXT_OK
|
||||
Reference in New Issue
Block a user