1.0.1 (2026-07-28)
- compat/v0_3: call context builder for compatibility layer (#604) (771836c), closes #600
- normalize legacy cards in createFromAgentCard (#602) (9807a66), closes #601
- signature: canonicalize the same payload when signing and verifying (#606) (7415e0e)
1.0.0 (2026-07-22)
@a2a-js/sdk is now generally available. This release promotes the v1.0 line to stable, implementing the full A2A Protocol Specification v1.0 across all three transports (JSON-RPC, HTTP+JSON/REST, gRPC), with opt-in v0.3 backward compatibility for staged migrations.
Upgrading from 0.3.x? See the v0.3 → v1.0 migration guide.
Interoperating with peers still on v0.3? See the end-user v0.3 compatibility guide.
Changes below cover what landed since v1.0.0-beta.0 — for the complete v0.3 → v1.0 delta, see the 1.0.0-beta.0 and 1.0.0-alpha.0 entries below.
- unify A2AError hierarchy with transport specific subclasses (#587)
- server: replace individual properties with SendMessageRequest in RequestContext (#581)
- add state bag and ServerCallContextBuilder to ServerCallContext (#364) (477e394)
- export SSE wire-format helpers from public entry point (#548) (8bc21f5), closes #547
- server: expose SendMessageRequest metadata to AgentExecutor via RequestContext (#564) (a92f54e)
- server: replace individual properties with SendMessageRequest in RequestContext (#581) (7cd30de)
- unify A2AError hierarchy with transport specific subclasses (#587) (4806f8f)
- client: bound SSE event size to prevent client-side memory exhaustion (#582) (e6e8ce9)
- client: cancel the SSE stream on teardown to avoid leaking connections (#580) (83269a5)
- grpc: preserve null values in protobuf Struct (#578) (f447e4e), closes #576
- resolve sdk compatibility bugs (#568) (b57f026)
- server: await _handleProcessingError so blocking drains surface errors (#579) (5833652)
- support GET for resubscribe route (#569) (8dd43d1)
1.0.0-beta.0 (2026-07-01)
The v0.3 backward-compatibility layer is now complete, marking this release as the first one bringing v1.0 and v0.3 support together.
Backward compatibility with v0.3 was implemented across all three transports (JSON-RPC, REST, gRPC), agent-card resolution, and push notifications — closing #452.
A v1.0 server can transparently accept v0.3 clients (and a v1.0 client can talk to v0.3 servers) by opting in with legacyCompat: { enabled: true } on the relevant transport.
See the v0.3 → v1.0 migration guide and the end-user v0.3 compatibility guide.
- add compat-v1 client and server samples to demonstrate A2A v0.3 backward compatibility (#520) (fce0b3f)
- add opt-in legacy v0.3 compatibility to JSON-RPC handler and improve extension header support (#501) (f707350)
- add v0.3 compatibility layer for client and server agent-card handling (#504) (75685f2)
- add v0.3 gRPC compat layer (#505) (314d9e3)
- default to v0.3 if version not provided (#511) (ad7f772)
- defined compat-specific consts and mappings (#478) (db0c595)
- implement legacy v0.3 JSON-RPC transport handler (#493) (d191d91)
- implement legacy v0.3 REST support with compatible transport handler and middleware routing (#495) (da9a968)
- implement v0.3 ITK cross-SDK validation workflows (#513) (c9385f3)
- implement v0.3 JSON-RPC client transport (#499) (46aa5d6)
- implement v0.3 protocol compatibility for RestTransportFactory (#503) (b172482)
- implement versioned push notification serializers with legacy v0.3 compatibility support (#507) (0261be8)
- normalize extension headers based on negotiated protocol version (#510) (74a51ee)
- replace automatic v0.3 agent card synthesis with explicit per-interface advertisement (#560) (60ad3b2)
- compat: wrap primitive Part.data values instead of throwing (#537) (7647db5)
- server/rest: handle undefined historyLength to return full task history (#527) (fa9ebce), closes #535
- server: handle AUTH_REQUIRED lifecycle per spec (#523) (68826c2)
- server: make cancelTask idempotent on the canceled state (#545) (1d17a78)
- server: make push notification config id optional with server-side UUID (#543) (83af8c3)
- server: merge Task history in ResultManager instead of overwriting (#524) (4e1d4f7), closes #532
- server: preserve activated extensions in response header (#544) (26184b4)
- server: propagate return to SSE generators to prevent listener leaks (#526) (a690734), closes #534
- server: synthesize correct error Task id in blocking and streaming paths (#525) (a3dd703), closes #533
- server: yield Task snapshot on resubscribe when bus is inactive (#542) (cd8f8fc)
See the v0.3 -> v1.0-alpha.0 migration guide.
Note: Enabling backward compatibility with v0.3 is tracked in #452.
- Drop support for node 18 (#368)
- Make ServerCallContext parameter mandatory across all places (#405)
- Remove JSON-RPC client (#353)
- Remove transport-specific exports (#404)
- Update codebase to use A2A 1.0.0 data model (#375)
- Remove A2AExpressApp (#363)
- Add A2A Version Header (#422) (b5f3db7)
- Add cache-headers logic to the agent card handler (#435) (955b52b)
- Add resource scoping (#450) (c527086)
- Add support for custom authentication scheme and credentials in auth-headers (#430) (5a4389b)
- AgentCardSignature support (#448) (4a41a8c)
- Enforce events ordering (#437) (157cf48)
- Enriched Error Model (#427) (c130778)
- Implement listTasks method (#383) (7d4c472)
- Send current task as the first event after subscribing to it (#418) (4bfcf5f)
- Support multi-tenancy (#419) (1877877)
0.3.13 (2026-03-16)
0.3.12 (2026-03-10)
0.3.11 (2026-03-10)
- support proto-based AgentCard in AgentCardResolver (#344) (e71221c)
- throw on JSON-RPC response id mismatch (#318) (5ea1c94)
0.3.10 (2026-01-27)
- do not use ReadableStream async iterator in SSE stream parsing (#311) (5359fa8)
- preserve typed error as cause in SSE errors (#315) (d39544e)
0.3.9 (2026-01-21)
0.3.8 (2026-01-15)
- use ProtoJSON for REST transport (#292)
- use case-insensitive transport protocol name comparison in ClientFactory (5246067)
- add typesVersions to support legacy module resolution (#288) (6499e29)
- use ProtoJSON for REST transport (#292) (d2efc4c)
0.3.7 (2025-12-17)
- add rest client (#258) (96be3a1)
- remove EventEmitter dependency to support Edge Runtime (#219) (6c76fef), closes #218
- export transport agnostic errors from client (#272) (23cd42e)
- pass ServerCallContext to getAuthenticatedExtendedAgentCard for REST (#274) (89b141b), closes #137
0.3.6 (2025-12-10)
- add support for extendedAgentCard on client side (#234) (3073376)
- Add support for extension headers on client side (#227) (8c57002)
- implement client interceptors (#223) (5694c22)
- Implement extended card support on server side (#197) (45014ac)
- implement server http+json (#142) (f20e662)
- introduce AgentCardResolver (#225) (ddaf7de)
- introduce transport agnostic client (#198) (94a9848)
- server side support for extensions (5ef7396)
- support authentication on server side (#195) (9872d93)
0.3.5 (2025-11-05)
- cancel/task now returns the expected 'cancelled' task status (#158) (3eec0bd)
- correct the default value in the agentCardPath comment (#130) (3279c7b)
- enable follow up task issue on non blocking request (#160) (352dc05)
- ensure push notifications order (#141) (22360e6)
- ensure user messages are added to existing tasks (#138) (00fb916)
- validate JSON-RPC params (#155) (5b39f4d)
- validate JSON-RPC request id according to the spec (#152) (9558c36)
0.3.4 (2025-09-04)
- add list and delete task push notification config rpc method and custom rpc methods for extensions (#119) (26c4e7d)
- Added push notifications support (#108) (45a211a)
0.3.3 (2025-08-27)
- Update A2AClient constructor to initialize with full agentCardUrl (#121)
0.3.2 (2025-08-17)
- Added generic client hooks for HTTP based authentication, and improved agent.json resolution (#33) (a9826ac)
0.3.1 (2025-08-06)
0.3.0 (2025-08-05)
- upgrade to a2a 0.3.0 spec version (#87)
- make Express dependency optional
0.2.5 (2025-07-30)
- add support for custom agent card url. resolves #68 (#79) (dc92d32)
- Export ExecutionEventQueue in server (#61) (530c0b9)
- Export type AgentExecutionEvent (#66) (f4c81f4)
- correct the example code (#64) (126eee4)
- setting context id in _createRequestContext (#49) (1abc8a1)
0.2.4 (2025-07-14)
0.2.3 (2025-07-14)
- separate entrypoints for client, server & common
- add CommonJS support alongside ESM (#27) (1b3e516)
- Allow adding middlewares in server (#51) (b4fc323)
- separate entrypoints for client, server & common (e8dd025)
0.2.2 (2025-06-20)
- add action to publish to npm (e4ab96e)
- add sample agent (#19) (1f21a0a)
- add test coverage (#20) (7bde9cd)
- generate types from spec & use unknown in types (#17) (748f928)
- reject sendMessage for tasks in terminal states (#29) (9f86195)
- Supply taskId & contextId in requestContext (#22) (79db7f4)
- support non-blocking message send (#28) (6984dbb)
- use string union instead of enums (#24) (bcc1f7e)