Documentation Index
Fetch the complete documentation index at: https://kawax.biz/llms.txt
Use this file to discover all available pages before exploring further.
SessionEvent
Copilot からのメッセージはすべてRevolution\Copilot\Types\SessionEvent クラスです。
このクラスは最もよく使うため、Laravel らしい便利機能が追加されています。
content()
AI からの最も重要な応答メッセージを取得します。
__toString() による暗黙の型変換でもメッセージ内容を返します。
Event type の判定
isAssistantMessage(), isUserMessage(), isIdle(), isAssistantMessageDelta() が使えます。
よく使う Event type があれば、さらにヘルパーが追加される場合があります。
is() で任意の EventType を判定できます。
type() は SessionEventType enum の文字列値を返します。
failed() / successful()
イベントタイプが SESSION_ERROR の時は failed() が true になります。
successful() はその逆です。
Laravel の命名に合わせるため、isError() から改名されています。
throw()
Laravel の HTTP API や Process API と同じように、エラーは保持され、throw() で例外を送出できます。
エラーがない場合は何もしないため、次のように書けます。
SESSION_ERROR の場合は Revolution\Copilot\Exceptions\SessionErrorException を送出します。
タイムアウト時は Revolution\Copilot\Exceptions\SessionTimeoutException を送出します。
JSON-RPC のエラーでは Revolution\Copilot\Exceptions\JsonRpcException を送出します。
Conditionable
when() と unless() が使えます。
Dumpable
dump() と dd() が使えます。
Tappable
tap() が使えます。
InteractsWithData
この機能は SessionEvent の$data プロパティにのみ適用されます。
all(), has(), only(), collect() などの使い慣れたヘルパーを使えます。
詳しくは InteractsWithData を参照してください。
SessionEvent の $data は EventType ごとに構造が異なるため、イベントごとの値アクセスに便利です。
content() も内部的に InteractsWithData を使っています。
toArray() / toJson()
SessionEvent 全体を配列または JSON に変換できます。
collect() メソッドはありません。
$data には InteractsWithData の collect() があるためです。
イベント全体をコレクション操作したい場合は Laravel の collect() ヘルパーを使います。
broadcast() / broadcastNow()
Laravel AI SDK の StreamEvent と同じインターフェースでブロードキャストできます。
AI SDK ではストリーミング時に使いますが、SessionEvent では任意の EventType で使えます。
broadcastNow() はキューを経由せずに即時ブロードキャストします。
最新情報は GitHub リポジトリ を参照してください。