Skip to content

Conversation

@ishymko
Copy link
Member

@ishymko ishymko commented Nov 25, 2025

Description

As a next step after #169, define a transport agnostic client.

Changes

Main

  • Define Client built around core types, not JSON-RPC wrappers.
  • Define ClientFactory to dynamically select transport among available based on agent card and factory level preferences.

Misc

  • Rename A2ATransport to Transport (this type is not yet exported via index.ts).
  • Add AbortSignal to Transport and new client for cancellation.
  • Add basic E2E test for sendMessage and sendMessageStream using server SDK wired up with real expressjs app and invoked via newly created client.
  • Fix getTaskPushNotificationConfig types in transport.

TODOs

  • Client interceptors.
  • Extensions support.

Re #137, #142

Release-As: 0.3.6

@ishymko ishymko marked this pull request as ready for review November 25, 2025 15:38
@ishymko ishymko merged commit 94a9848 into main Nov 27, 2025
5 checks passed
@ishymko ishymko deleted the ishymko/client-multi-transport branch November 27, 2025 15:16
ishymko added a commit that referenced this pull request Nov 28, 2025
# Description

Propagate `RequestOptions` down to `Transport`.

Re #198, was missing in the original PR - wasn't release yet, so no
impact.
ishymko added a commit that referenced this pull request Dec 10, 2025
# Description

1. Update README.md, sample agents and sample CLI to use new APIs
introduced in #162 (extract middlewares from `A2AExpressApp`) and #198
(transport-agnostic client).
2. Mark `A2AExpressApp` and `A2AClient` as deprecated.
3. Ensure samples and TCK import via index files only to "test" that all
required types are exported.
4.  Consolidate all `@example` tags to use ` ```ts `.
ishymko added a commit that referenced this pull request Dec 10, 2025
🤖 I have created a release *beep* *boop*
---


## [0.3.6](v0.3.5...v0.3.6)
(2025-12-10)


### Features

* add support for extendedAgentCard on client side
([#234](#234))
([3073376](3073376))
* Add support for extension headers on client side
([#227](#227))
([8c57002](8c57002))
* implement client interceptors
([#223](#223))
([5694c22](5694c22))
* Implement extended card support on server side
([#197](#197))
([45014ac](45014ac))
* implement server http+json
([#142](#142))
([f20e662](f20e662))
* introduce AgentCardResolver
([#225](#225))
([ddaf7de](ddaf7de))
* introduce transport agnostic client
([#198](#198))
([94a9848](94a9848))
* server side support for extensions
([5ef7396](5ef7396))
* support authentication on server side
([#195](#195))
([9872d93](9872d93))


### Bug Fixes

* handle errors occurred in non-blocking sendMessage
([#187](#187))
([e55c0f4](e55c0f4))


### Miscellaneous Chores

* set version to 0.3.6
([#191](#191))
([3f8cea0](3f8cea0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: Ivan Shymko <ishymko@google.com>
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.

4 participants