Skip to content

Comments

feat: Add extension methods for simplyfying A2AClient usage#152

Merged
Blackhex merged 2 commits intoa2aproject:mainfrom
Blackhex:feat/132-a2a-client-extensions
Aug 20, 2025
Merged

feat: Add extension methods for simplyfying A2AClient usage#152
Blackhex merged 2 commits intoa2aproject:mainfrom
Blackhex:feat/132-a2a-client-extensions

Conversation

@Blackhex
Copy link
Collaborator

Adds utility extension methods to A2AClient abstracting usage of "transport" DTOs.

Implements #132.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @Blackhex, 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 introduces a set of utility extension methods for the A2AClient class. The primary goal is to simplify the client's API by abstracting the underlying 'transport' Data Transfer Objects (DTOs). This change allows developers to interact with the A2AClient methods using more direct and intuitive parameter lists, reducing boilerplate code and improving usability. The new methods cover common operations like sending messages, canceling tasks, and managing push notifications, making the A2AClient more convenient for various use-cases.

Highlights

  • New Extension Methods for A2AClient: Introduces a new static class A2AClientExtensions which provides a more convenient and simplified API for interacting with the A2AClient by abstracting the direct usage of 'transport' DTOs.
  • Simplified SendMessageAsync: An overload for SendMessageAsync is added, allowing direct passing of Message, MessageSendConfiguration, and metadata without the need to explicitly construct a MessageSendParams object.
  • Simplified CancelTaskAsync: An overload for CancelTaskAsync is added, enabling task cancellation by directly providing the taskId and optional metadata instead of requiring a TaskIdParams object.
  • Simplified SetPushNotificationAsync: An overload for SetPushNotificationAsync is introduced, streamlining the configuration of push notifications by directly accepting taskId, url, and other notification parameters.
  • Simplified GetPushNotificationAsync: An overload for GetPushNotificationAsync is added, allowing retrieval of push notification configurations by directly providing the taskId and optional pushNotificationConfigId.
  • Simplified SendMessageStreamingAsync: An overload for SendMessageStreamingAsync is introduced, simplifying the process of sending streaming messages by directly accepting Message, MessageSendConfiguration, and metadata.
Using Gemini Code Assist

The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a set of useful extension methods for A2AClient, which simplifies its usage by abstracting away the transport DTOs. The implementation is clean and follows a good pattern. My feedback focuses on improving robustness by adding argument validation, which is a common practice in the existing codebase and will improve the developer experience.

@Blackhex Blackhex force-pushed the feat/132-a2a-client-extensions branch from d5ddbf8 to ca8e11e Compare August 15, 2025 08:11
@Blackhex Blackhex marked this pull request as ready for review August 15, 2025 08:15
@Blackhex Blackhex force-pushed the feat/132-a2a-client-extensions branch from ca8e11e to d9efa43 Compare August 15, 2025 08:52
@Blackhex Blackhex force-pushed the feat/132-a2a-client-extensions branch from d9efa43 to 969898d Compare August 15, 2025 10:23
@Blackhex Blackhex self-assigned this Aug 15, 2025
@Blackhex Blackhex enabled auto-merge August 18, 2025 18:45
@Blackhex Blackhex added this pull request to the merge queue Aug 20, 2025
auto-merge was automatically disabled August 20, 2025 08:47

Pull Request is not mergeable

Merged via the queue into a2aproject:main with commit 5bee984 Aug 20, 2025
@Blackhex Blackhex deleted the feat/132-a2a-client-extensions branch August 20, 2025 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants