forked from HAL9000/cleveragents-core
25605b1ba4
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