Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
2fa0964
feat: Adding stand-alone support for RESTful API serving (#297)
pstephengoogle Jul 24, 2025
8bfa846
refactor: Refactor client code to support multi-transport interaction…
pstephengoogle Jul 24, 2025
f2c4085
Formatting/linting
holtskinner Jul 24, 2025
1fa0ec7
Update AgentCard path to `AGENT_CARD_WELL_KNOWN_PATH`
holtskinner Jul 24, 2025
98e9fe1
Lint errors
holtskinner Jul 24, 2025
d1d9e49
Lint - Construct AgentInterfaces for minimal_agent_card
holtskinner Jul 24, 2025
68ce59b
Update src/a2a/server/apps/rest/rest_app.py
pstephengoogle Jul 25, 2025
30bcaef
Merge branch 'main' into restful
holtskinner Jul 25, 2025
2a24b5f
Merge branch 'main' into restful
holtskinner Jul 25, 2025
33ba15e
Refactor to use `TransportProtocol` class from `types.py`
holtskinner Jul 25, 2025
11bb306
Fix lint errors in rest_handler
holtskinner Jul 25, 2025
ab7ab08
Fixed lint errors in rest_app
holtskinner Jul 25, 2025
78d03ef
Merge branch 'main' into restful
holtskinner Jul 25, 2025
c3f1bbb
chore: update lock file (#353)
kthota-g Jul 25, 2025
da44c94
chore: Update vscode PyTest launch.json to use workspace's venv inste…
aneeshgarg Jul 25, 2025
0c3d717
fix: Fix all the failing unit tests due to cyclic dependency, snake c…
aneeshgarg Jul 26, 2025
bcd7ee4
Merge branch 'main' into restful
aneeshgarg Jul 26, 2025
3e2c623
Merge branch 'main' into restful
holtskinner Jul 28, 2025
d46c44a
Fix lint error in rest/fastapi_app
holtskinner Jul 28, 2025
7009324
Fix lint errors in rest_client
holtskinner Jul 28, 2025
680f2d3
Fix lint errors in jsonrpc_client
holtskinner Jul 28, 2025
9a3da57
Fix lint errors in grpc_client
holtskinner Jul 28, 2025
9ee1d37
Fix lint errors in client.py
holtskinner Jul 28, 2025
8fbc1e1
Fix type warning for callable in client_factory
aneeshgarg Jul 28, 2025
addb1e2
Apply suggestions from code review
holtskinner Jul 28, 2025
434be28
fix gemini identified error in exception message
aneeshgarg Jul 28, 2025
39d8b13
Add protobuf libraries as default dependency since long term goal is …
aneeshgarg Jul 28, 2025
6bc2481
Rename test_client to test_jsonrpc_client since it tests jsonrpc cleint
aneeshgarg Jul 28, 2025
95dc15e
Fix some of the mypy errors
holtskinner Jul 28, 2025
d3e1027
Moves types around to avoid circular dependencies and make grpc modul…
aneeshgarg Jul 28, 2025
1a6bee9
Implement resubscribe across transport clients
mikeas1 Jul 28, 2025
22d5bbd
Fix some proto<->types conversion code
mikeas1 Jul 28, 2025
df3c0e7
fix broken test_proto_utils test
aneeshgarg Jul 29, 2025
f547260
Fix ruff linter errors
aneeshgarg Jul 29, 2025
4f2d121
Fix task_push_notification_config name generation when converting to …
aneeshgarg Jul 29, 2025
842e192
Create a wrapper exception for A2AError so that it can be raised in r…
aneeshgarg Jul 29, 2025
d2720a6
Fix snake case variables names and type error in test_gerpc_handler
aneeshgarg Jul 29, 2025
7d74660
Fix _generate_error_response argument type errors
aneeshgarg Jul 29, 2025
c48604d
Fix more mypy and gemini detected errors
aneeshgarg Jul 29, 2025
bbcfabf
AddJSONRpcError as A2AError since it is a superset of all JSONRpcErrors
aneeshgarg Jul 29, 2025
5c5b816
Revert "AddJSONRpcError as A2AError since it is a superset of all JSO…
aneeshgarg Jul 29, 2025
95de596
Spelling/formatting
holtskinner Jul 29, 2025
3cf61b4
Merge branch 'main' into restful
holtskinner Jul 29, 2025
0891716
Merge branch 'main' into restful
holtskinner Jul 29, 2025
39a430d
Merge branch 'main' into restful
mikeas1 Jul 30, 2025
6f592bb
Add unit tests for fastapi_app sendMessage api
aneeshgarg Jul 30, 2025
a063a8e
Centralize error handling and status code mapping for rest interface
aneeshgarg Jul 30, 2025
c2f4f2f
refactor: Refactor client into BaseClient + ClientTransport (#363)
mikeas1 Jul 30, 2025
210476b
Merge branch 'main' into restful
holtskinner Jul 30, 2025
a16e40f
Fix ruff lint error TC001
holtskinner Jul 30, 2025
447d1b0
Run formatting
holtskinner Jul 30, 2025
8adba29
Merge remote-tracking branch 'origin/main' into restful
aneeshgarg Jul 30, 2025
c73080d
Update test_jsonrpc_client.py
aneeshgarg Jul 30, 2025
bf21978
Fix set_task_push_notification_config integration test
aneeshgarg Jul 30, 2025
44ffd7f
Fix mypy errors from error_handlers.py
aneeshgarg Jul 30, 2025
7c2dfcf
Rename RESTApplication to RestAdapter since its purpose is to connect…
aneeshgarg Jul 30, 2025
087ddc1
Merge branch 'main' into restful
aneeshgarg Jul 30, 2025
3600f13
chore: Fix uv lock file
aneeshgarg Jul 30, 2025
8d252bb
Address mypy errors
mikeas1 Jul 30, 2025
8665809
Fix tests
mikeas1 Jul 30, 2025
2e0e526
Add type ignore to unrelated stuff to get a clean mypy
mikeas1 Jul 30, 2025
0e67148
Change pytest coverage to print to term
holtskinner Jul 30, 2025
068ee35
Formatting
holtskinner Jul 30, 2025
68e2df1
Refactor rest transport to reduce duplication, fix pyright errors
mikeas1 Jul 30, 2025
8a81b93
Add missing return type annotation
mikeas1 Jul 30, 2025
019ded4
Add tests for BaseClient and ClientTaskManager
mikeas1 Jul 30, 2025
1cfd28e
Formatting
mikeas1 Jul 30, 2025
b892a14
Increase visibility of handle_get_agent_card
mikeas1 Jul 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/actions/spelling/allow.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ pyi
pypistats
pyupgrade
pyversions
redef
respx
resub
RUF
Expand All @@ -74,5 +75,6 @@ sse
tagwords
taskupdate
testuuid
Tful
typeerror
vulnz
53 changes: 50 additions & 3 deletions src/a2a/client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,47 @@
CredentialService,
InMemoryContextCredentialStore,
)
from a2a.client.client import A2ACardResolver, A2AClient
from a2a.client.client import (
A2ACardResolver,
Client,
ClientConfig,
ClientEvent,
Consumer,
)
from a2a.client.client_factory import (
ClientFactory,
ClientProducer,
minimal_agent_card,
)
from a2a.client.errors import (
A2AClientError,
A2AClientHTTPError,
A2AClientJSONError,
A2AClientTimeoutError,
)
from a2a.client.grpc_client import (
GrpcClient,
GrpcTransportClient,
NewGrpcClient,
)
from a2a.client.helpers import create_text_message_object
from a2a.client.jsonrpc_client import (
JsonRpcClient,
JsonRpcTransportClient,
NewJsonRpcClient,
)
from a2a.client.middleware import ClientCallContext, ClientCallInterceptor
from a2a.client.rest_client import (
NewRestfulClient,
RestClient,
RestTransportClient,
)


# For backward compatability define this alias. This will be deprecated in
# a future release.
A2AClient = JsonRpcTransportClient
A2AGrpcClient = GrpcTransportClient

logger = logging.getLogger(__name__)

Expand All @@ -41,16 +72,32 @@ def __init__(self, *args, **kwargs):

__all__ = [
'A2ACardResolver',
'A2AClient',
'A2AClient', # for backward compatability
'A2AClientError',
'A2AClientHTTPError',
'A2AClientJSONError',
'A2AClientTimeoutError',
'A2AGrpcClient',
'A2AGrpcClient', # for backward compatability
'AuthInterceptor',
'Client',
'ClientCallContext',
'ClientCallInterceptor',
'ClientConfig',
'ClientEvent',
'ClientFactory',
'ClientProducer',
'Consumer',
'CredentialService',
'GrpcClient',
'GrpcTransportClient',
'InMemoryContextCredentialStore',
'JsonRpcClient',
'JsonRpcTransportClient',
'NewGrpcClient',
'NewJsonRpcClient',
'NewRestfulClient',
'RestClient',
'RestTransportClient',
'create_text_message_object',
'minimal_agent_card',
]
Loading
Loading