Skip to main content

.EVENTS

Zentrales Event-System des Bots (RAGAI.EVENTS): Registrieren, Auslösen und Entfernen von Hooks.

Hintergrund

Event-Namen folgen der Konvention RAGAI.<MODUL>.<Aktion> (z. B. RAGAI.MSG.prompt, RAGAI.KEYVAL.storeKeyValEntry). Jedes RAGAI-Modul triggert bei praktisch jeder Aktion ein eigenes Event - das macht RAGAI.EVENTS zum zentralen Beobachtungspunkt für alles, was im Bot passiert, unabhängig vom auslösenden Modul. Der Hook-Name "*" (Wildcard) lauscht auf alle Events, nicht nur ein bestimmtes - wird u. a. intern vom Debug-Manager genutzt, um jedes RAGAI-Event ins Debug-Log zu spiegeln. on/off/trigger sind kurze Aliase für listenTo/removeEventHook/triggerEventHook.

Methoden

.listenTo(hook, fn, id?)

Registriert einen Listener für ein Event und gibt dessen ID zurück (zum späteren Entfernen).

ParameterTypBeschreibung
hookstring
fnEventHookType
idstring

Rückgabewert: string

._datafromEvent(eventName, eventData, field)

Liest ein benanntes Feld aus rohen Event-Nutzdaten aus - normalisiert die je nach Event-Typ unterschiedliche Datenstruktur.

ParameterTypBeschreibung
eventNamestring
eventDataany
fieldstring

Rückgabewert: any

.on(hook, fn?, id?)

Kurzalias für listenTo(). Registriert einen Listener für ein Event.

ParameterTypBeschreibung
hookstring | z.input<typeof eventsOnSchema>
fnEventHookType
idstring

Objekt-Form (validiert über eventsOnSchema):

FeldTypPflichtBeschreibung
hookstringName des abzuhörenden Events.
fnanyDie bei Event-Auslösung aufzurufende Funktion.
idstringOptionale eindeutige ID des Listeners (zum späteren Entfernen).

Rückgabewert: string

.off(id)

Kurzalias für removeEventHook(). Entfernt einen registrierten Listener anhand seiner ID.

ParameterTypBeschreibung
idstring | z.input<typeof eventsOffSchema>

Objekt-Form (validiert über eventsOffSchema):

FeldTypPflichtBeschreibung
idstringID des zu entfernenden Listeners.

Rückgabewert: void

.removeEventHook(id)

Entfernt einen registrierten Listener anhand seiner ID.

ParameterTypBeschreibung
idstring

Rückgabewert: void

.addEventHook(id, fn, hook?)

Registriert einen Listener direkt (ohne Zod-Validierung), Standard-Hook ist die Wildcard "*" (alle Events).

ParameterTypBeschreibung
idstring
fnEventHookType
hookstring

Rückgabewert: void

.addEventHookAddUserMessage(id, fn)

Registriert einen Listener speziell für das interne io_in_addUserMessage-Event.

ParameterTypBeschreibung
idstring
fnEventHookType

Rückgabewert: void

.triggerEventHook(hook, params)

Löst alle registrierten Listener aus, deren Hook exakt passt oder (bei Wildcard-Hooks) als Präfix matcht.

ParameterTypBeschreibung
hookstring
paramsunknown

Rückgabewert: void

.inActiveHook(seconds)

Liefert einen Hook, der auslöst, sobald der Nutzer die angegebene Anzahl Sekunden inaktiv war.

ParameterTypBeschreibung
secondsnumber | z.input<typeof eventsInActiveHookSchema>

Objekt-Form (validiert über eventsInActiveHookSchema):

FeldTypPflichtBeschreibung
secondsnumberAnzahl der Sekunden ohne Aktivität, nach denen der Inaktivitäts-Hook ausgelöst wird.

Rückgabewert: InactiveAction

.trigger(name, params?)

Kurzalias für triggerEventHook(). Löst ein benanntes Event manuell aus.

ParameterTypBeschreibung
namestring | z.input<typeof eventsTriggerSchema>
paramsany

Objekt-Form (validiert über eventsTriggerSchema):

FeldTypPflichtBeschreibung
namestringName des auszulösenden Events.
paramsanyParameter, die an die Event-Listener übergeben werden.

Rückgabewert: void

._trigger_RAGAI_EVENT(instance, eventParams?, additionalEventInfo?)

Interner Helfer: leitet aus dem Aufruf-Stack den auslösenden RAGAI-Modulnamen ab und triggert das passende RAGAI.<MODUL>.<METHODE>-Event.

ParameterTypBeschreibung
instanceunknown | string
eventParamsany
additionalEventInfostring

Rückgabewert: string

.manage(action, eventId)

Deaktiviert, aktiviert oder entfernt ein registriertes Event anhand seiner ID.

ParameterTypBeschreibung
action'disable' | 'enable' | 'remove'
eventIdstring

Rückgabewert: Promise<void>