Skip to main content

.BEFORE_SEND

Verarbeitet Nachrichten, bevor sie an den Bot gesendet werden (RAGAI.BEFORE_SEND).

Hintergrund

Registrierte Hooks laufen in Registrierungsreihenfolge über jede per RAGAI.MSG.prompt()/userMessage() gesendete Nachricht. Ein Hook kann den Text verändern (String zurückgeben), das Senden komplett unterdrücken (null zurückgeben) oder asynchron arbeiten (Promise zurückgeben). Ruft ein Hook selbst wieder RAGAI.MSG.prompt()/userMessage() auf, würde das normalerweise einen neuen Sendevorgang - und damit erneut alle Hooks - auslösen (Endlosschleife). Verschachtelte Aufrufe werden daher per isRunning-Flag erkannt und unverändert (ohne erneute Hook-Verarbeitung) durchgereicht, inklusive einer Warnung in der Browser-Konsole.

Methoden

.add(fn)

Registriert eine neue Nachrichten-Verarbeitungsfunktion.

ParameterTypBeschreibung
fnMsgHookFn

Rückgabewert: void

.run(message)

Führt alle registrierten Funktionen aus und gibt das modifizierte Ergebnis zurück. Rückgabe null bedeutet: Verarbeitung abbrechen.

Schützt vor Endlosrekursion: Löst ein Hook selbst wieder einen Sendevorgang aus (z.B. RAGAI.MSG.prompt() / .userMessage()), würde run() erneut aufgerufen werden, während der äußere Durchlauf noch läuft. In diesem Fall wird die Nachricht unverändert durchgereicht, statt die Hooks erneut (und potenziell endlos) auszuführen.

ParameterTypBeschreibung
messagestring

Rückgabewert: Promise<string | null>

.clear()

Entfernt alle registrierten Funktionen.

Rückgabewert: void

.list()

Gibt die aktuell registrierten Funktionen zurück (z.B. zu Debug-Zwecken).

Rückgabewert: MsgHookFn[]