a2aproject / a2aproject/a2a-js

[Bug]: Some optional properties are required

Abierto
#660 4 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
TypeScript
Estrellas
613
Forks
169
Merge medio
1 d 6 h
PR fusionados (30 d)
21

Descripción

### What happened?

The `filename` property of the `Part` interface is clearly documented as optional, yet it's a required property, which doesn't even accept `undefined`. Within the same interface, there's also `metadata`, which is again documented as optional, but it's in fact a required property (although in this case at least it does accept undefined). In fact, according to [the spec for Part,](https://a2a-protocol.org/v1.0.1/specification/#416-part) **ALL** properties should be optional.

There are many other similar cases, for example in the `Message` interface, where `contextId`, `taskId` and `metadata` are all documented as optional, yet required in code.

I'm aware the code is generated from the `a2a.proto` from the spec repo, but that's also the case for the Python SDK, for example, which doesn't have this issue.

On top of that, I don't understand the need to use `Part.content` as a wrapper over the actual content of the part. Why not use `Part.text` / `raw` / etc, as is done in the Python library?

EDIT:
There are also examples of the opposite kind of problem, having properties which should always be required as possibly undefined, like in the case of `TaskArtifactUpdateEvent.artifact`

### Relevant log output

```shell

```

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

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.