feat(api)!: Update codebase to use only Proto based types#337
feat(api)!: Update codebase to use only Proto based types#337bartek-gralewicz merged 44 commits intoepic/1.0_breaking_changesfrom
Conversation
…s file. Focused the solution on proto generated types information.
…me unit tests still failing.
Summary of ChangesHello @bartek-gralewicz, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request completes a fundamental shift in the project's type management by fully adopting Protocol Buffers (Proto) as the canonical type system. This strategic move eliminates the previous JSON-schema-derived types, leading to a more unified and consistent type experience across the SDK, mirroring efforts in other language implementations. The changes span across the entire codebase, from core client and server logic to sample agents and utility functions, ensuring all components interact seamlessly with the new Proto-based data models. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Code Review
This pull request is a significant and impressive refactoring to unify the codebase on Protobuf-based types, removing the old JSON types. The changes are extensive, touching many files across the client and server implementations, but they are consistent and well-executed. The introduction of json_rpc_types.ts and the updates to the from_proto and to_proto converters are central to this effort and appear correct. The sample applications and tests have also been diligently updated to reflect these new types, which is great to see.
I have a couple of minor suggestions to improve code quality and consistency, but overall, this is a solid piece of work that moves the project in the right direction for type safety and cross-SDK compatibility.
…eir relevant locations. Resolved type issues after updating imports.
Co-authored-by: Ivan Shymko <ishymko@google.com>
… into bgralewicz/proto_types
…pes and toJSON/fromJSON methods.
… methods remain for now as removing them would introduce other necessary changes.
… methods remain for now as removing them would introduce other necessary changes.
Updated the codebase to only use Proto based types and remove the old JSON types.ts completely. This change unifies the usage of types with other SDKs and is part of the 1.0.0 scope. Equivalent PR on the Python SDK: a2aproject/a2a-python#572. This is a breaking change and therefore it is going to be merged into an epic `v1.0` branch instead of `main`. Later 1.0 release will introduce this in the `main` branch. --------- Co-authored-by: Bartek Gralewicz <bgralewicz@google.com> Co-authored-by: Ivan Shymko <ishymko@google.com>
Description
Updated the codebase to only use Proto based types and remove the old JSON types.ts completely.
This change unifies the usage of types with other SDKs and is part of the 1.0.0 scope. Equivalent PR on the Python SDK: a2aproject/a2a-python#572.
Important
This is a breaking change and therefore it is going to be merged into an epic
v1.0branch instead ofmain. Later 1.0 release will introduce this in themainbranch.