@@ -1228,8 +1228,9 @@ def _handle_broadcast_event(self, event: SessionEvent) -> None:
12281228 Implements the protocol v3 broadcast model where tool calls and permission requests
12291229 are broadcast as session events to all clients.
12301230 """
1231- if event .type == SessionEventType .EXTERNAL_TOOL_REQUESTED :
1232- data = cast (ExternalToolRequestedData , event .data )
1231+ data = event .data
1232+
1233+ if isinstance (data , ExternalToolRequestedData ):
12331234 request_id = data .request_id
12341235 tool_name = data .tool_name
12351236 if not request_id or not tool_name :
@@ -1249,8 +1250,7 @@ def _handle_broadcast_event(self, event: SessionEvent) -> None:
12491250 )
12501251 )
12511252
1252- elif event .type == SessionEventType .PERMISSION_REQUESTED :
1253- data = cast (PermissionRequestedData , event .data )
1253+ elif isinstance (data , PermissionRequestedData ):
12541254 request_id = data .request_id
12551255 permission_request = data .permission_request
12561256 if not request_id or not permission_request :
@@ -1269,8 +1269,7 @@ def _handle_broadcast_event(self, event: SessionEvent) -> None:
12691269 self ._execute_permission_and_respond (request_id , permission_request , perm_handler )
12701270 )
12711271
1272- elif event .type == SessionEventType .COMMAND_EXECUTE :
1273- data = cast (CommandExecuteData , event .data )
1272+ elif isinstance (data , CommandExecuteData ):
12741273 request_id = data .request_id
12751274 command_name = data .command_name
12761275 command = data .command
@@ -1283,8 +1282,7 @@ def _handle_broadcast_event(self, event: SessionEvent) -> None:
12831282 )
12841283 )
12851284
1286- elif event .type == SessionEventType .ELICITATION_REQUESTED :
1287- data = cast (ElicitationRequestedData , event .data )
1285+ elif isinstance (data , ElicitationRequestedData ):
12881286 with self ._elicitation_handler_lock :
12891287 handler = self ._elicitation_handler
12901288 if not handler :
@@ -1306,8 +1304,7 @@ def _handle_broadcast_event(self, event: SessionEvent) -> None:
13061304 context ["url" ] = data .url
13071305 asyncio .ensure_future (self ._handle_elicitation_request (context , request_id ))
13081306
1309- elif event .type == SessionEventType .CAPABILITIES_CHANGED :
1310- data = cast (CapabilitiesChangedData , event .data )
1307+ elif isinstance (data , CapabilitiesChangedData ):
13111308 cap : SessionCapabilities = {}
13121309 if data .ui is not None :
13131310 ui_cap : SessionUiCapabilities = {}
0 commit comments