Skip to main content

SessionEvent

Alle berichten van Copilot zijn instanties van de klasse Revolution\Copilot\Types\SessionEvent. Omdat deze klasse het meest wordt gebruikt, zijn er handige Laravel-achtige functies aan toegevoegd.

content()

Haalt het belangrijkste antwoordbericht van de AI op.
Ook de impliciete typeconversie via __toString() retourneert de inhoud van het bericht.

Het eventtype bepalen

Je kunt isAssistantMessage(), isUserMessage(), isIdle() en isAssistantMessageDelta() gebruiken. Voor veelgebruikte eventtypes kunnen er nog meer helpers worden toegevoegd. Met is() kun je op elk willekeurig EventType controleren.
type() retourneert de stringwaarde van de SessionEventType-enum.

failed() / successful()

Wanneer het eventtype SESSION_ERROR is, geeft failed() true terug. successful() is het omgekeerde daarvan. Om aan te sluiten bij de Laravel-naamgeving is deze hernoemd van isError().

throw()

Net als bij de HTTP API en Process API van Laravel worden fouten bewaard en kun je met throw() een exception gooien. Als er geen fout is, gebeurt er niets, dus je kunt dit zo schrijven:
Bij het eventtype SESSION_ERROR wordt een Revolution\Copilot\Exceptions\SessionErrorException gegooid. Bij een timeout wordt een Revolution\Copilot\Exceptions\SessionTimeoutException gegooid. Bij JSON-RPC-fouten wordt een Revolution\Copilot\Exceptions\JsonRpcException gegooid.

Conditionable

Je kunt when() en unless() gebruiken.

Dumpable

Je kunt dump() en dd() gebruiken.

Tappable

Je kunt tap() gebruiken.

InteractsWithData

Deze functionaliteit geldt alleen voor de property $data van SessionEvent. Je kunt vertrouwde helpers gebruiken zoals all(), has(), only() en collect(). Zie InteractsWithData voor details. Omdat de structuur van $data van SessionEvent per EventType verschilt, is dit handig om per event waarden op te vragen. content() gebruikt intern ook InteractsWithData.

toArray() / toJson()

Je kunt de hele SessionEvent omzetten naar een array of JSON.
Er is geen collect()-methode voor het hele event. $data heeft namelijk al de collect() van InteractsWithData. Wil je het hele event als collectie bewerken, gebruik dan de collect()-helper van Laravel.

broadcast() / broadcastNow()

Je kunt broadcasten met dezelfde interface als het StreamEvent van de Laravel AI SDK. In de AI SDK gebruik je dit bij streaming, maar bij SessionEvent kan het bij elk EventType.
broadcastNow() broadcast direct, zonder via een queue te gaan.
Voorbeeld bij streaming:
Raadpleeg de GitHub-repository voor de meest actuele informatie.
Laatst gewijzigd op 6 september 2026