Files
freemo 25605b1ba4 feat(a2a): implement A2A HTTP transport for server mode
Implement the client-side A2A HTTP transport for server mode, enabling
JSON-RPC 2.0 communication over HTTP with SSE streaming support.

New components:
- A2aTransport Protocol (transport_protocol.py): Abstract interface that
  all transport implementations (HTTP, stdio) must satisfy, with methods
  for connect/disconnect lifecycle, send, and send_streaming.
- A2aRemoteTransport (http_transport.py): Client-side HTTP transport using
  httpx that sends JSON-RPC 2.0 requests to a remote A2A server. Supports
  SSE streaming for message/stream (TaskStatusUpdateEvent and
  TaskArtifactUpdateEvent), authentication via bearer token/API key/custom
  headers (AuthConfig), TLS verification, and context manager usage.
- TransportSelector (transport_selector.py): Picks the appropriate transport
  based on ServerConnectionConfig — returns A2aRemoteTransport when
  server.url is configured, raises A2aNotAvailableError for local/stdio
  mode (pending stdio transport implementation).
- SSE event parser for consuming Server-Sent Events streams.
- httpx added as a project dependency.

Tests:
- 26 Behave BDD scenarios covering protocol definition, auth config,
  transport construction, connection lifecycle, request serialization,
  response parsing, SSE parsing, TransportSelector, and contract tests.
- 9 Robot Framework integration tests with helper script verifying
  end-to-end transport behavior.

ISSUES CLOSED: #692
2026-03-12 02:09:20 +00:00
..