github / github/copilot-sdk

Feature: Strongly type Python events

Abierto
#1,016 0 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Java
Estrellas
10.5k
Forks
1.5k
Merge medio
1 d 11 h
PR fusionados (30 d)
127

Descripción

Hi,

I was trying to build against the SDK in Python, and I got confused about which events carried what payloads. The Data class is a union of all possible data fields:

https://github.com/github/copilot-sdk/blob/f7fd7577109d64e261456b16c49baa56258eae4e/python/copilot/generated/session_events.py#L1773

SessionEvent largely a pair of enum and Data with a long docstring:

https://github.com/github/copilot-sdk/blob/f7fd7577109d64e261456b16c49baa56258eae4e/python/copilot/generated/session_events.py#L3229

Other bindings in dotnet, for example, strongly type the events, so you know what events carry what payloads:

https://github.com/github/copilot-sdk/blob/f7fd7577109d64e261456b16c49baa56258eae4e/dotnet/src/Generated/SessionEvents.cs#L134

I think stronger type hinting on the Python side would help make the SDK easier to consume by catching classes of bugs at IDE/Pyright/agent coding time. It has precedent on the Claude Agent SDK, which does adopt this pattern for its message type:

https://github.com/anthropics/claude-agent-sdk-python/blob/13f65c81e2bec2a5d1f1e1efdd45aa061c4ec43f/src/claude_agent_sdk/types.py#L1071

It's a breaking change to people using type hints, but I suspect we could do it in such a way that the only breaks would be people genuinely looking in the wrong place for payloads (i.e. silent bugs).

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.