Skip to content

Commit 72a9a8d

Browse files
stephentoubCopilot
andcommitted
Use isinstance for broadcast events
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent a890505 commit 72a9a8d

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

python/copilot/session.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)