Skip to content

feat: upgrade to a2a-sdk v1.0.0-alpha.0 with v0.3 compat layer#12

Merged
Tehsmash merged 3 commits intomainfrom
feat/upgrade-a2a-sdk-v1
Apr 8, 2026
Merged

feat: upgrade to a2a-sdk v1.0.0-alpha.0 with v0.3 compat layer#12
Tehsmash merged 3 commits intomainfrom
feat/upgrade-a2a-sdk-v1

Conversation

@Tehsmash
Copy link
Copy Markdown
Member

@Tehsmash Tehsmash commented Mar 30, 2026

Summary

  • Upgrades a2a-sdk from 0.3.20 to 1.0.0-alpha.0 (proto-based types, new service name lf.a2a.v1.A2AService)
  • Adds slima2a/compat/v3_0/ with SRPCCompatHandler and SRPCCompatTransport so servers/clients can continue speaking the v0.3 wire protocol (a2a.v1.A2AService) via a bridge to the v1.0 RequestHandler interface
  • Splits SlimRPC bindings into slima2a/types/v0/ (v0.3) and slima2a/types/v1/ (v1.0); both service names can coexist on the same SLIM server
  • Rewrites top-level slima2a/client_transport.py and slima2a/handler.py for v1.0 proto types directly (no Pydantic conversion)
  • Splits buf.gen.yaml into buf.gen.v0.yaml and buf.gen.v1.yaml
  • Updates examples to use v1.0 proto types; adds --a2a-version v0|v1|both flag to echo_agent server and --a2a-version v0|v1 to clients
  • Fixes sys.path in example scripts so uv run examples/... works without colliding with the examples package installed by slim-bindings
  • Adds sqlite extra to a2a-sdk dependency to satisfy SQLAlchemy requirement from a2a.compat.v0_3

BEGIN_COMMIT_OVERRIDE
feat!: upgrade to a2a-sdk v1.0.0-alpha.0 with v0.3 compat layer
END_COMMIT_OVERRIDE

Upgrades the SDK dependency from a2a-sdk==0.3.20 to
a2a-sdk[telemetry,sqlite]==1.0.0-alpha.0, and restructures the package
to support both protocol versions simultaneously.

Key changes:
- Add slima2a/compat/v3_0/ with SRPCCompatHandler and
  SRPCCompatTransport for backward-compatible v0.3 wire support
- Add slima2a/types/v0/ (moved from slima2a/types/) and
  slima2a/types/v1/ with separate SlimRPC bindings per protocol version
- Rewrite slima2a/client_transport.py and slima2a/handler.py for the
  v1.0 proto types (no Pydantic conversion needed)
- Split buf.gen.yaml into buf.gen.v0.yaml and buf.gen.v1.yaml
- Update examples to use v1.0 proto types and add --a2a-version flag
  (v0/v1/both) to echo_agent server; fix sys.path so scripts can be
  run directly with `uv run examples/...` without conflicting with the
  slim-bindings examples package

Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
@Tehsmash Tehsmash requested a review from a team as a code owner March 30, 2026 17:22
Pass the shared secret explicitly in all four example scripts to match
the value used in slim-a2a-go echo_agent examples, enabling cross-language
testing out of the box.

Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
- list(response.parts): RepeatedCompositeFieldContainer is not list[Part]
- fetch_agent_card return type: object -> AgentCard; add AgentCard import
- TaskState.completed -> TaskState.TASK_STATE_COMPLETED (proto enum name)

Signed-off-by: Sam Betts <1769706+Tehsmash@users.noreply.github.com>
Copy link
Copy Markdown
Member

@muscariello muscariello left a comment

Choose a reason for hiding this comment

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

LGTM

@Tehsmash Tehsmash merged commit 1645561 into main Apr 8, 2026
4 checks passed
@Tehsmash Tehsmash deleted the feat/upgrade-a2a-sdk-v1 branch April 8, 2026 14:05
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