From bec47280c5f4aafa5ed64419c4f92e480e1b4325 Mon Sep 17 00:00:00 2001 From: Ivan Shymko Date: Wed, 11 Mar 2026 12:14:35 +0000 Subject: [PATCH] chore: incorporate latest proto changes https://github.com/a2aproject/A2A/pull/1507 --- buf.gen.yaml | 2 +- src/a2a/client/base_client.py | 3 +- src/a2a/compat/v0_3/conversions.py | 10 +- .../default_request_handler.py | 4 +- src/a2a/types/a2a_pb2.py | 216 +++++++++--------- src/a2a/types/a2a_pb2.pyi | 8 +- tests/client/test_base_client.py | 7 +- tests/compat/v0_3/test_conversions.py | 11 +- tests/compat/v0_3/test_grpc_handler.py | 6 +- .../test_default_push_notification_support.py | 4 +- tests/integration/test_end_to_end.py | 4 +- .../test_default_request_handler.py | 6 +- 12 files changed, 134 insertions(+), 147 deletions(-) diff --git a/buf.gen.yaml b/buf.gen.yaml index 50eb35a35..85106a5ee 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -2,7 +2,7 @@ version: v2 inputs: - git_repo: https://github.com/a2aproject/A2A.git - ref: aca981cee3e7a3f22a4df8fb8a5302406f7a1cf5 + ref: main subdir: specification managed: enabled: true diff --git a/src/a2a/client/base_client.py b/src/a2a/client/base_client.py index 063b695a2..cc17b0349 100644 --- a/src/a2a/client/base_client.py +++ b/src/a2a/client/base_client.py @@ -94,8 +94,7 @@ async def send_message( yield client_event def _apply_client_config(self, request: SendMessageRequest) -> None: - if not request.configuration.blocking and self._config.polling: - request.configuration.blocking = not self._config.polling + request.configuration.return_immediately |= self._config.polling if ( not request.configuration.HasField('task_push_notification_config') and self._config.push_notification_configs diff --git a/src/a2a/compat/v0_3/conversions.py b/src/a2a/compat/v0_3/conversions.py index 5f392bfbe..8007ae824 100644 --- a/src/a2a/compat/v0_3/conversions.py +++ b/src/a2a/compat/v0_3/conversions.py @@ -304,9 +304,7 @@ def to_core_send_message_configuration( ) -> pb2_v10.SendMessageConfiguration: """Convert send message configuration to v1.0 core type.""" core_config = pb2_v10.SendMessageConfiguration() - core_config.blocking = ( - True # Default to True as per A2A spec for SendMessage - ) + # Result will be blocking by default (return_immediately=False) if compat_config.accepted_output_modes: core_config.accepted_output_modes.extend( compat_config.accepted_output_modes @@ -320,7 +318,7 @@ def to_core_send_message_configuration( if compat_config.history_length is not None: core_config.history_length = compat_config.history_length if compat_config.blocking is not None: - core_config.blocking = compat_config.blocking + core_config.return_immediately = not compat_config.blocking return core_config @@ -340,7 +338,7 @@ def to_compat_send_message_configuration( history_length=core_config.history_length if core_config.HasField('history_length') else None, - blocking=core_config.blocking, + blocking=not core_config.return_immediately, ) @@ -1039,8 +1037,6 @@ def to_core_send_message_request( core_req.configuration.CopyFrom( to_core_send_message_configuration(compat_req.params.configuration) ) - else: - core_req.configuration.blocking = True # Default for A2A if compat_req.params.metadata: ParseDict(compat_req.params.metadata, core_req.metadata) return core_req diff --git a/src/a2a/server/request_handlers/default_request_handler.py b/src/a2a/server/request_handlers/default_request_handler.py index 54c1616a8..4d7d9994c 100644 --- a/src/a2a/server/request_handlers/default_request_handler.py +++ b/src/a2a/server/request_handlers/default_request_handler.py @@ -340,9 +340,7 @@ async def on_message_send( consumer = EventConsumer(queue) producer_task.add_done_callback(consumer.agent_task_callback) - blocking = True # Default to blocking behavior - if params.configuration and params.configuration.blocking is False: - blocking = False + blocking = not params.configuration.return_immediately interrupted_or_non_blocking = False try: diff --git a/src/a2a/types/a2a_pb2.py b/src/a2a/types/a2a_pb2.py index 63a6bcc3b..a47abe4a3 100644 --- a/src/a2a/types/a2a_pb2.py +++ b/src/a2a/types/a2a_pb2.py @@ -30,7 +30,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ta2a.proto\x12\tlf.a2a.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x93\x02\n\x18SendMessageConfiguration\x12\x32\n\x15\x61\x63\x63\x65pted_output_modes\x18\x01 \x03(\tR\x13\x61\x63\x63\x65ptedOutputModes\x12h\n\x1dtask_push_notification_config\x18\x02 \x01(\x0b\x32%.lf.a2a.v1.TaskPushNotificationConfigR\x1ataskPushNotificationConfig\x12*\n\x0ehistory_length\x18\x03 \x01(\x05H\x00R\rhistoryLength\x88\x01\x01\x12\x1a\n\x08\x62locking\x18\x04 \x01(\x08R\x08\x62lockingB\x11\n\x0f_history_length\"\x84\x02\n\x04Task\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x1d\n\ncontext_id\x18\x02 \x01(\tR\tcontextId\x12\x32\n\x06status\x18\x03 \x01(\x0b\x32\x15.lf.a2a.v1.TaskStatusB\x03\xe0\x41\x02R\x06status\x12\x31\n\tartifacts\x18\x04 \x03(\x0b\x32\x13.lf.a2a.v1.ArtifactR\tartifacts\x12,\n\x07history\x18\x05 \x03(\x0b\x32\x12.lf.a2a.v1.MessageR\x07history\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"\xa5\x01\n\nTaskStatus\x12/\n\x05state\x18\x01 \x01(\x0e\x32\x14.lf.a2a.v1.TaskStateB\x03\xe0\x41\x02R\x05state\x12,\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageR\x07message\x12\x38\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\"\xed\x01\n\x04Part\x12\x14\n\x04text\x18\x01 \x01(\tH\x00R\x04text\x12\x12\n\x03raw\x18\x02 \x01(\x0cH\x00R\x03raw\x12\x12\n\x03url\x18\x03 \x01(\tH\x00R\x03url\x12,\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00R\x04\x64\x61ta\x12\x33\n\x08metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12\x1a\n\x08\x66ilename\x18\x06 \x01(\tR\x08\x66ilename\x12\x1d\n\nmedia_type\x18\x07 \x01(\tR\tmediaTypeB\t\n\x07\x63ontent\"\xbe\x02\n\x07Message\x12\"\n\nmessage_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tmessageId\x12\x1d\n\ncontext_id\x18\x02 \x01(\tR\tcontextId\x12\x17\n\x07task_id\x18\x03 \x01(\tR\x06taskId\x12(\n\x04role\x18\x04 \x01(\x0e\x32\x0f.lf.a2a.v1.RoleB\x03\xe0\x41\x02R\x04role\x12*\n\x05parts\x18\x05 \x03(\x0b\x32\x0f.lf.a2a.v1.PartB\x03\xe0\x41\x02R\x05parts\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12\x1e\n\nextensions\x18\x07 \x03(\tR\nextensions\x12,\n\x12reference_task_ids\x18\x08 \x03(\tR\x10referenceTaskIds\"\xe7\x01\n\x08\x41rtifact\x12$\n\x0b\x61rtifact_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nartifactId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12*\n\x05parts\x18\x04 \x03(\x0b\x32\x0f.lf.a2a.v1.PartB\x03\xe0\x41\x02R\x05parts\x12\x33\n\x08metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12\x1e\n\nextensions\x18\x06 \x03(\tR\nextensions\"\xc2\x01\n\x15TaskStatusUpdateEvent\x12\x1c\n\x07task_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\"\n\ncontext_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tcontextId\x12\x32\n\x06status\x18\x03 \x01(\x0b\x32\x15.lf.a2a.v1.TaskStatusB\x03\xe0\x41\x02R\x06status\x12\x33\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"\xfd\x01\n\x17TaskArtifactUpdateEvent\x12\x1c\n\x07task_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\"\n\ncontext_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tcontextId\x12\x34\n\x08\x61rtifact\x18\x03 \x01(\x0b\x32\x13.lf.a2a.v1.ArtifactB\x03\xe0\x41\x02R\x08\x61rtifact\x12\x16\n\x06\x61ppend\x18\x04 \x01(\x08R\x06\x61ppend\x12\x1d\n\nlast_chunk\x18\x05 \x01(\x08R\tlastChunk\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"S\n\x12\x41uthenticationInfo\x12\x1b\n\x06scheme\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06scheme\x12 \n\x0b\x63redentials\x18\x02 \x01(\tR\x0b\x63redentials\"\x9f\x01\n\x0e\x41gentInterface\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12.\n\x10protocol_binding\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0fprotocolBinding\x12\x16\n\x06tenant\x18\x03 \x01(\tR\x06tenant\x12.\n\x10protocol_version\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0fprotocolVersion\"\x98\x07\n\tAgentCard\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12Q\n\x14supported_interfaces\x18\x03 \x03(\x0b\x32\x19.lf.a2a.v1.AgentInterfaceB\x03\xe0\x41\x02R\x13supportedInterfaces\x12\x34\n\x08provider\x18\x04 \x01(\x0b\x32\x18.lf.a2a.v1.AgentProviderR\x08provider\x12\x1d\n\x07version\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x07version\x12\x30\n\x11\x64ocumentation_url\x18\x06 \x01(\tH\x00R\x10\x64ocumentationUrl\x88\x01\x01\x12\x45\n\x0c\x63\x61pabilities\x18\x07 \x01(\x0b\x32\x1c.lf.a2a.v1.AgentCapabilitiesB\x03\xe0\x41\x02R\x0c\x63\x61pabilities\x12T\n\x10security_schemes\x18\x08 \x03(\x0b\x32).lf.a2a.v1.AgentCard.SecuritySchemesEntryR\x0fsecuritySchemes\x12S\n\x15security_requirements\x18\t \x03(\x0b\x32\x1e.lf.a2a.v1.SecurityRequirementR\x14securityRequirements\x12\x33\n\x13\x64\x65\x66\x61ult_input_modes\x18\n \x03(\tB\x03\xe0\x41\x02R\x11\x64\x65\x66\x61ultInputModes\x12\x35\n\x14\x64\x65\x66\x61ult_output_modes\x18\x0b \x03(\tB\x03\xe0\x41\x02R\x12\x64\x65\x66\x61ultOutputModes\x12\x32\n\x06skills\x18\x0c \x03(\x0b\x32\x15.lf.a2a.v1.AgentSkillB\x03\xe0\x41\x02R\x06skills\x12=\n\nsignatures\x18\r \x03(\x0b\x32\x1d.lf.a2a.v1.AgentCardSignatureR\nsignatures\x12\x1e\n\x08icon_url\x18\x0e \x01(\tH\x01R\x07iconUrl\x88\x01\x01\x1a]\n\x14SecuritySchemesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.lf.a2a.v1.SecuritySchemeR\x05value:\x02\x38\x01\x42\x14\n\x12_documentation_urlB\x0b\n\t_icon_url\"O\n\rAgentProvider\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\'\n\x0corganization\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0corganization\"\x97\x02\n\x11\x41gentCapabilities\x12!\n\tstreaming\x18\x01 \x01(\x08H\x00R\tstreaming\x88\x01\x01\x12\x32\n\x12push_notifications\x18\x02 \x01(\x08H\x01R\x11pushNotifications\x88\x01\x01\x12\x39\n\nextensions\x18\x03 \x03(\x0b\x32\x19.lf.a2a.v1.AgentExtensionR\nextensions\x12\x33\n\x13\x65xtended_agent_card\x18\x04 \x01(\x08H\x02R\x11\x65xtendedAgentCard\x88\x01\x01\x42\x0c\n\n_streamingB\x15\n\x13_push_notificationsB\x16\n\x14_extended_agent_card\"\x91\x01\n\x0e\x41gentExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1a\n\x08required\x18\x03 \x01(\x08R\x08required\x12/\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x06params\"\xaf\x02\n\nAgentSkill\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x04 \x03(\tB\x03\xe0\x41\x02R\x04tags\x12\x1a\n\x08\x65xamples\x18\x05 \x03(\tR\x08\x65xamples\x12\x1f\n\x0binput_modes\x18\x06 \x03(\tR\ninputModes\x12!\n\x0coutput_modes\x18\x07 \x03(\tR\x0boutputModes\x12S\n\x15security_requirements\x18\x08 \x03(\x0b\x32\x1e.lf.a2a.v1.SecurityRequirementR\x14securityRequirements\"\x8b\x01\n\x12\x41gentCardSignature\x12!\n\tprotected\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tprotected\x12!\n\tsignature\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tsignature\x12/\n\x06header\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x06header\"\xd1\x01\n\x1aTaskPushNotificationConfig\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x0e\n\x02id\x18\x02 \x01(\tR\x02id\x12\x17\n\x07task_id\x18\x03 \x01(\tR\x06taskId\x12\x15\n\x03url\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12\x45\n\x0e\x61uthentication\x18\x06 \x01(\x0b\x32\x1d.lf.a2a.v1.AuthenticationInfoR\x0e\x61uthentication\" \n\nStringList\x12\x12\n\x04list\x18\x01 \x03(\tR\x04list\"\xaf\x01\n\x13SecurityRequirement\x12\x45\n\x07schemes\x18\x01 \x03(\x0b\x32+.lf.a2a.v1.SecurityRequirement.SchemesEntryR\x07schemes\x1aQ\n\x0cSchemesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x15.lf.a2a.v1.StringListR\x05value:\x02\x38\x01\"\xf5\x03\n\x0eSecurityScheme\x12X\n\x17\x61pi_key_security_scheme\x18\x01 \x01(\x0b\x32\x1f.lf.a2a.v1.APIKeySecuritySchemeH\x00R\x14\x61piKeySecurityScheme\x12^\n\x19http_auth_security_scheme\x18\x02 \x01(\x0b\x32!.lf.a2a.v1.HTTPAuthSecuritySchemeH\x00R\x16httpAuthSecurityScheme\x12W\n\x16oauth2_security_scheme\x18\x03 \x01(\x0b\x32\x1f.lf.a2a.v1.OAuth2SecuritySchemeH\x00R\x14oauth2SecurityScheme\x12n\n\x1fopen_id_connect_security_scheme\x18\x04 \x01(\x0b\x32&.lf.a2a.v1.OpenIdConnectSecuritySchemeH\x00R\x1bopenIdConnectSecurityScheme\x12V\n\x14mtls_security_scheme\x18\x05 \x01(\x0b\x32\".lf.a2a.v1.MutualTlsSecuritySchemeH\x00R\x12mtlsSecuritySchemeB\x08\n\x06scheme\"r\n\x14\x41PIKeySecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08location\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\"|\n\x16HTTPAuthSecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\x06scheme\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06scheme\x12#\n\rbearer_format\x18\x03 \x01(\tR\x0c\x62\x65\x61rerFormat\"\x9a\x01\n\x14OAuth2SecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x30\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x15.lf.a2a.v1.OAuthFlowsB\x03\xe0\x41\x02R\x05\x66lows\x12.\n\x13oauth2_metadata_url\x18\x03 \x01(\tR\x11oauth2MetadataUrl\"s\n\x1bOpenIdConnectSecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x32\n\x13open_id_connect_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x10openIdConnectUrl\";\n\x17MutualTlsSecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\"\x87\x03\n\nOAuthFlows\x12V\n\x12\x61uthorization_code\x18\x01 \x01(\x0b\x32%.lf.a2a.v1.AuthorizationCodeOAuthFlowH\x00R\x11\x61uthorizationCode\x12V\n\x12\x63lient_credentials\x18\x02 \x01(\x0b\x32%.lf.a2a.v1.ClientCredentialsOAuthFlowH\x00R\x11\x63lientCredentials\x12>\n\x08implicit\x18\x03 \x01(\x0b\x32\x1c.lf.a2a.v1.ImplicitOAuthFlowB\x02\x18\x01H\x00R\x08implicit\x12>\n\x08password\x18\x04 \x01(\x0b\x32\x1c.lf.a2a.v1.PasswordOAuthFlowB\x02\x18\x01H\x00R\x08password\x12\x41\n\x0b\x64\x65vice_code\x18\x05 \x01(\x0b\x32\x1e.lf.a2a.v1.DeviceCodeOAuthFlowH\x00R\ndeviceCodeB\x06\n\x04\x66low\"\xc1\x02\n\x1a\x41uthorizationCodeOAuthFlow\x12\x30\n\x11\x61uthorization_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x61uthorizationUrl\x12 \n\ttoken_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x03 \x01(\tR\nrefreshUrl\x12N\n\x06scopes\x18\x04 \x03(\x0b\x32\x31.lf.a2a.v1.AuthorizationCodeOAuthFlow.ScopesEntryB\x03\xe0\x41\x02R\x06scopes\x12#\n\rpkce_required\x18\x05 \x01(\x08R\x0cpkceRequired\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xea\x01\n\x1a\x43lientCredentialsOAuthFlow\x12 \n\ttoken_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x02 \x01(\tR\nrefreshUrl\x12N\n\x06scopes\x18\x03 \x03(\x0b\x32\x31.lf.a2a.v1.ClientCredentialsOAuthFlow.ScopesEntryB\x03\xe0\x41\x02R\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xde\x01\n\x11ImplicitOAuthFlow\x12+\n\x11\x61uthorization_url\x18\x01 \x01(\tR\x10\x61uthorizationUrl\x12\x1f\n\x0brefresh_url\x18\x02 \x01(\tR\nrefreshUrl\x12@\n\x06scopes\x18\x03 \x03(\x0b\x32(.lf.a2a.v1.ImplicitOAuthFlow.ScopesEntryR\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xce\x01\n\x11PasswordOAuthFlow\x12\x1b\n\ttoken_url\x18\x01 \x01(\tR\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x02 \x01(\tR\nrefreshUrl\x12@\n\x06scopes\x18\x03 \x03(\x0b\x32(.lf.a2a.v1.PasswordOAuthFlow.ScopesEntryR\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x9b\x02\n\x13\x44\x65viceCodeOAuthFlow\x12=\n\x18\x64\x65vice_authorization_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x16\x64\x65viceAuthorizationUrl\x12 \n\ttoken_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x03 \x01(\tR\nrefreshUrl\x12G\n\x06scopes\x18\x04 \x03(\x0b\x32*.lf.a2a.v1.DeviceCodeOAuthFlow.ScopesEntryB\x03\xe0\x41\x02R\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xdf\x01\n\x12SendMessageRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x31\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageB\x03\xe0\x41\x02R\x07message\x12I\n\rconfiguration\x18\x03 \x01(\x0b\x32#.lf.a2a.v1.SendMessageConfigurationR\rconfiguration\x12\x33\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"|\n\x0eGetTaskRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x13\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x02id\x12*\n\x0ehistory_length\x18\x03 \x01(\x05H\x00R\rhistoryLength\x88\x01\x01\x42\x11\n\x0f_history_length\"\x9f\x03\n\x10ListTasksRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x1d\n\ncontext_id\x18\x02 \x01(\tR\tcontextId\x12,\n\x06status\x18\x03 \x01(\x0e\x32\x14.lf.a2a.v1.TaskStateR\x06status\x12 \n\tpage_size\x18\x04 \x01(\x05H\x00R\x08pageSize\x88\x01\x01\x12\x1d\n\npage_token\x18\x05 \x01(\tR\tpageToken\x12*\n\x0ehistory_length\x18\x06 \x01(\x05H\x01R\rhistoryLength\x88\x01\x01\x12P\n\x16status_timestamp_after\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x14statusTimestampAfter\x12\x30\n\x11include_artifacts\x18\x08 \x01(\x08H\x02R\x10includeArtifacts\x88\x01\x01\x42\x0c\n\n_page_sizeB\x11\n\x0f_history_lengthB\x14\n\x12_include_artifacts\"\xb2\x01\n\x11ListTasksResponse\x12*\n\x05tasks\x18\x01 \x03(\x0b\x32\x0f.lf.a2a.v1.TaskB\x03\xe0\x41\x02R\x05tasks\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\x12 \n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x08pageSize\x12\"\n\ntotal_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02R\ttotalSize\"u\n\x11\x43\x61ncelTaskRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x13\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x33\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"q\n$GetTaskPushNotificationConfigRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x1c\n\x07task_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\x13\n\x02id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x02id\"t\n\'DeleteTaskPushNotificationConfigRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x1c\n\x07task_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\x13\n\x02id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x02id\"E\n\x16SubscribeToTaskRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x13\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x02id\"\x9a\x01\n&ListTaskPushNotificationConfigsRequest\x12\x16\n\x06tenant\x18\x04 \x01(\tR\x06tenant\x12\x1c\n\x07task_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\x1b\n\tpage_size\x18\x02 \x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x03 \x01(\tR\tpageToken\"5\n\x1bGetExtendedAgentCardRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\"w\n\x13SendMessageResponse\x12%\n\x04task\x18\x01 \x01(\x0b\x32\x0f.lf.a2a.v1.TaskH\x00R\x04task\x12.\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageH\x00R\x07messageB\t\n\x07payload\"\x8a\x02\n\x0eStreamResponse\x12%\n\x04task\x18\x01 \x01(\x0b\x32\x0f.lf.a2a.v1.TaskH\x00R\x04task\x12.\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageH\x00R\x07message\x12G\n\rstatus_update\x18\x03 \x01(\x0b\x32 .lf.a2a.v1.TaskStatusUpdateEventH\x00R\x0cstatusUpdate\x12M\n\x0f\x61rtifact_update\x18\x04 \x01(\x0b\x32\".lf.a2a.v1.TaskArtifactUpdateEventH\x00R\x0e\x61rtifactUpdateB\t\n\x07payload\"\x92\x01\n\'ListTaskPushNotificationConfigsResponse\x12?\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32%.lf.a2a.v1.TaskPushNotificationConfigR\x07\x63onfigs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*\xf9\x01\n\tTaskState\x12\x1a\n\x16TASK_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14TASK_STATE_SUBMITTED\x10\x01\x12\x16\n\x12TASK_STATE_WORKING\x10\x02\x12\x18\n\x14TASK_STATE_COMPLETED\x10\x03\x12\x15\n\x11TASK_STATE_FAILED\x10\x04\x12\x17\n\x13TASK_STATE_CANCELED\x10\x05\x12\x1d\n\x19TASK_STATE_INPUT_REQUIRED\x10\x06\x12\x17\n\x13TASK_STATE_REJECTED\x10\x07\x12\x1c\n\x18TASK_STATE_AUTH_REQUIRED\x10\x08*;\n\x04Role\x12\x14\n\x10ROLE_UNSPECIFIED\x10\x00\x12\r\n\tROLE_USER\x10\x01\x12\x0e\n\nROLE_AGENT\x10\x02\x32\x97\x0f\n\nA2AService\x12\x83\x01\n\x0bSendMessage\x12\x1d.lf.a2a.v1.SendMessageRequest\x1a\x1e.lf.a2a.v1.SendMessageResponse\"5\x82\xd3\xe4\x93\x02/\"\r/message:send:\x01*Z\x1b\"\x16/{tenant}/message:send:\x01*\x12\x8d\x01\n\x14SendStreamingMessage\x12\x1d.lf.a2a.v1.SendMessageRequest\x1a\x19.lf.a2a.v1.StreamResponse\"9\x82\xd3\xe4\x93\x02\x33\"\x0f/message:stream:\x01*Z\x1d\"\x18/{tenant}/message:stream:\x01*0\x01\x12k\n\x07GetTask\x12\x19.lf.a2a.v1.GetTaskRequest\x1a\x0f.lf.a2a.v1.Task\"4\xda\x41\x02id\x82\xd3\xe4\x93\x02)\x12\r/tasks/{id=*}Z\x18\x12\x16/{tenant}/tasks/{id=*}\x12i\n\tListTasks\x12\x1b.lf.a2a.v1.ListTasksRequest\x1a\x1c.lf.a2a.v1.ListTasksResponse\"!\x82\xd3\xe4\x93\x02\x1b\x12\x06/tasksZ\x11\x12\x0f/{tenant}/tasks\x12\x80\x01\n\nCancelTask\x12\x1c.lf.a2a.v1.CancelTaskRequest\x1a\x0f.lf.a2a.v1.Task\"C\x82\xd3\xe4\x93\x02=\"\x14/tasks/{id=*}:cancel:\x01*Z\"\"\x1d/{tenant}/tasks/{id=*}:cancel:\x01*\x12\x96\x01\n\x0fSubscribeToTask\x12!.lf.a2a.v1.SubscribeToTaskRequest\x1a\x19.lf.a2a.v1.StreamResponse\"C\x82\xd3\xe4\x93\x02=\x12\x17/tasks/{id=*}:subscribeZ\"\x12 /{tenant}/tasks/{id=*}:subscribe0\x01\x12\xf3\x01\n CreateTaskPushNotificationConfig\x12%.lf.a2a.v1.TaskPushNotificationConfig\x1a%.lf.a2a.v1.TaskPushNotificationConfig\"\x80\x01\xda\x41\x0etask_id,config\x82\xd3\xe4\x93\x02i\"*/tasks/{task_id=*}/pushNotificationConfigs:\x01*Z8\"3/{tenant}/tasks/{task_id=*}/pushNotificationConfigs:\x01*\x12\xfe\x01\n\x1dGetTaskPushNotificationConfig\x12/.lf.a2a.v1.GetTaskPushNotificationConfigRequest\x1a%.lf.a2a.v1.TaskPushNotificationConfig\"\x84\x01\xda\x41\ntask_id,id\x82\xd3\xe4\x93\x02q\x12\x31/tasks/{task_id=*}/pushNotificationConfigs/{id=*}Z<\x12:/{tenant}/tasks/{task_id=*}/pushNotificationConfigs/{id=*}\x12\xfd\x01\n\x1fListTaskPushNotificationConfigs\x12\x31.lf.a2a.v1.ListTaskPushNotificationConfigsRequest\x1a\x32.lf.a2a.v1.ListTaskPushNotificationConfigsResponse\"s\xda\x41\x07task_id\x82\xd3\xe4\x93\x02\x63\x12*/tasks/{task_id=*}/pushNotificationConfigsZ5\x12\x33/{tenant}/tasks/{task_id=*}/pushNotificationConfigs\x12\x8f\x01\n\x14GetExtendedAgentCard\x12&.lf.a2a.v1.GetExtendedAgentCardRequest\x1a\x14.lf.a2a.v1.AgentCard\"9\x82\xd3\xe4\x93\x02\x33\x12\x12/extendedAgentCardZ\x1d\x12\x1b/{tenant}/extendedAgentCard\x12\xf5\x01\n DeleteTaskPushNotificationConfig\x12\x32.lf.a2a.v1.DeleteTaskPushNotificationConfigRequest\x1a\x16.google.protobuf.Empty\"\x84\x01\xda\x41\ntask_id,id\x82\xd3\xe4\x93\x02q*1/tasks/{task_id=*}/pushNotificationConfigs/{id=*}Z<*:/{tenant}/tasks/{task_id=*}/pushNotificationConfigs/{id=*}B|\n\rcom.lf.a2a.v1B\x08\x41\x32\x61ProtoP\x01Z\x1bgoogle.golang.org/lf/a2a/v1\xa2\x02\x03LAX\xaa\x02\tLf.A2a.V1\xca\x02\tLf\\A2a\\V1\xe2\x02\x15Lf\\A2a\\V1\\GPBMetadata\xea\x02\x0bLf::A2a::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ta2a.proto\x12\tlf.a2a.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa6\x02\n\x18SendMessageConfiguration\x12\x32\n\x15\x61\x63\x63\x65pted_output_modes\x18\x01 \x03(\tR\x13\x61\x63\x63\x65ptedOutputModes\x12h\n\x1dtask_push_notification_config\x18\x02 \x01(\x0b\x32%.lf.a2a.v1.TaskPushNotificationConfigR\x1ataskPushNotificationConfig\x12*\n\x0ehistory_length\x18\x03 \x01(\x05H\x00R\rhistoryLength\x88\x01\x01\x12-\n\x12return_immediately\x18\x04 \x01(\x08R\x11returnImmediatelyB\x11\n\x0f_history_length\"\x84\x02\n\x04Task\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x1d\n\ncontext_id\x18\x02 \x01(\tR\tcontextId\x12\x32\n\x06status\x18\x03 \x01(\x0b\x32\x15.lf.a2a.v1.TaskStatusB\x03\xe0\x41\x02R\x06status\x12\x31\n\tartifacts\x18\x04 \x03(\x0b\x32\x13.lf.a2a.v1.ArtifactR\tartifacts\x12,\n\x07history\x18\x05 \x03(\x0b\x32\x12.lf.a2a.v1.MessageR\x07history\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"\xa5\x01\n\nTaskStatus\x12/\n\x05state\x18\x01 \x01(\x0e\x32\x14.lf.a2a.v1.TaskStateB\x03\xe0\x41\x02R\x05state\x12,\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageR\x07message\x12\x38\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\"\xed\x01\n\x04Part\x12\x14\n\x04text\x18\x01 \x01(\tH\x00R\x04text\x12\x12\n\x03raw\x18\x02 \x01(\x0cH\x00R\x03raw\x12\x12\n\x03url\x18\x03 \x01(\tH\x00R\x03url\x12,\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00R\x04\x64\x61ta\x12\x33\n\x08metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12\x1a\n\x08\x66ilename\x18\x06 \x01(\tR\x08\x66ilename\x12\x1d\n\nmedia_type\x18\x07 \x01(\tR\tmediaTypeB\t\n\x07\x63ontent\"\xbe\x02\n\x07Message\x12\"\n\nmessage_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tmessageId\x12\x1d\n\ncontext_id\x18\x02 \x01(\tR\tcontextId\x12\x17\n\x07task_id\x18\x03 \x01(\tR\x06taskId\x12(\n\x04role\x18\x04 \x01(\x0e\x32\x0f.lf.a2a.v1.RoleB\x03\xe0\x41\x02R\x04role\x12*\n\x05parts\x18\x05 \x03(\x0b\x32\x0f.lf.a2a.v1.PartB\x03\xe0\x41\x02R\x05parts\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12\x1e\n\nextensions\x18\x07 \x03(\tR\nextensions\x12,\n\x12reference_task_ids\x18\x08 \x03(\tR\x10referenceTaskIds\"\xe7\x01\n\x08\x41rtifact\x12$\n\x0b\x61rtifact_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nartifactId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12*\n\x05parts\x18\x04 \x03(\x0b\x32\x0f.lf.a2a.v1.PartB\x03\xe0\x41\x02R\x05parts\x12\x33\n\x08metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\x12\x1e\n\nextensions\x18\x06 \x03(\tR\nextensions\"\xc2\x01\n\x15TaskStatusUpdateEvent\x12\x1c\n\x07task_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\"\n\ncontext_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tcontextId\x12\x32\n\x06status\x18\x03 \x01(\x0b\x32\x15.lf.a2a.v1.TaskStatusB\x03\xe0\x41\x02R\x06status\x12\x33\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"\xfd\x01\n\x17TaskArtifactUpdateEvent\x12\x1c\n\x07task_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\"\n\ncontext_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tcontextId\x12\x34\n\x08\x61rtifact\x18\x03 \x01(\x0b\x32\x13.lf.a2a.v1.ArtifactB\x03\xe0\x41\x02R\x08\x61rtifact\x12\x16\n\x06\x61ppend\x18\x04 \x01(\x08R\x06\x61ppend\x12\x1d\n\nlast_chunk\x18\x05 \x01(\x08R\tlastChunk\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"S\n\x12\x41uthenticationInfo\x12\x1b\n\x06scheme\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06scheme\x12 \n\x0b\x63redentials\x18\x02 \x01(\tR\x0b\x63redentials\"\x9f\x01\n\x0e\x41gentInterface\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12.\n\x10protocol_binding\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0fprotocolBinding\x12\x16\n\x06tenant\x18\x03 \x01(\tR\x06tenant\x12.\n\x10protocol_version\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0fprotocolVersion\"\x98\x07\n\tAgentCard\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12Q\n\x14supported_interfaces\x18\x03 \x03(\x0b\x32\x19.lf.a2a.v1.AgentInterfaceB\x03\xe0\x41\x02R\x13supportedInterfaces\x12\x34\n\x08provider\x18\x04 \x01(\x0b\x32\x18.lf.a2a.v1.AgentProviderR\x08provider\x12\x1d\n\x07version\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x07version\x12\x30\n\x11\x64ocumentation_url\x18\x06 \x01(\tH\x00R\x10\x64ocumentationUrl\x88\x01\x01\x12\x45\n\x0c\x63\x61pabilities\x18\x07 \x01(\x0b\x32\x1c.lf.a2a.v1.AgentCapabilitiesB\x03\xe0\x41\x02R\x0c\x63\x61pabilities\x12T\n\x10security_schemes\x18\x08 \x03(\x0b\x32).lf.a2a.v1.AgentCard.SecuritySchemesEntryR\x0fsecuritySchemes\x12S\n\x15security_requirements\x18\t \x03(\x0b\x32\x1e.lf.a2a.v1.SecurityRequirementR\x14securityRequirements\x12\x33\n\x13\x64\x65\x66\x61ult_input_modes\x18\n \x03(\tB\x03\xe0\x41\x02R\x11\x64\x65\x66\x61ultInputModes\x12\x35\n\x14\x64\x65\x66\x61ult_output_modes\x18\x0b \x03(\tB\x03\xe0\x41\x02R\x12\x64\x65\x66\x61ultOutputModes\x12\x32\n\x06skills\x18\x0c \x03(\x0b\x32\x15.lf.a2a.v1.AgentSkillB\x03\xe0\x41\x02R\x06skills\x12=\n\nsignatures\x18\r \x03(\x0b\x32\x1d.lf.a2a.v1.AgentCardSignatureR\nsignatures\x12\x1e\n\x08icon_url\x18\x0e \x01(\tH\x01R\x07iconUrl\x88\x01\x01\x1a]\n\x14SecuritySchemesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.lf.a2a.v1.SecuritySchemeR\x05value:\x02\x38\x01\x42\x14\n\x12_documentation_urlB\x0b\n\t_icon_url\"O\n\rAgentProvider\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\'\n\x0corganization\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0corganization\"\x97\x02\n\x11\x41gentCapabilities\x12!\n\tstreaming\x18\x01 \x01(\x08H\x00R\tstreaming\x88\x01\x01\x12\x32\n\x12push_notifications\x18\x02 \x01(\x08H\x01R\x11pushNotifications\x88\x01\x01\x12\x39\n\nextensions\x18\x03 \x03(\x0b\x32\x19.lf.a2a.v1.AgentExtensionR\nextensions\x12\x33\n\x13\x65xtended_agent_card\x18\x04 \x01(\x08H\x02R\x11\x65xtendedAgentCard\x88\x01\x01\x42\x0c\n\n_streamingB\x15\n\x13_push_notificationsB\x16\n\x14_extended_agent_card\"\x91\x01\n\x0e\x41gentExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1a\n\x08required\x18\x03 \x01(\x08R\x08required\x12/\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x06params\"\xaf\x02\n\nAgentSkill\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x04 \x03(\tB\x03\xe0\x41\x02R\x04tags\x12\x1a\n\x08\x65xamples\x18\x05 \x03(\tR\x08\x65xamples\x12\x1f\n\x0binput_modes\x18\x06 \x03(\tR\ninputModes\x12!\n\x0coutput_modes\x18\x07 \x03(\tR\x0boutputModes\x12S\n\x15security_requirements\x18\x08 \x03(\x0b\x32\x1e.lf.a2a.v1.SecurityRequirementR\x14securityRequirements\"\x8b\x01\n\x12\x41gentCardSignature\x12!\n\tprotected\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tprotected\x12!\n\tsignature\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tsignature\x12/\n\x06header\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x06header\"\xd1\x01\n\x1aTaskPushNotificationConfig\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x0e\n\x02id\x18\x02 \x01(\tR\x02id\x12\x17\n\x07task_id\x18\x03 \x01(\tR\x06taskId\x12\x15\n\x03url\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12\x45\n\x0e\x61uthentication\x18\x06 \x01(\x0b\x32\x1d.lf.a2a.v1.AuthenticationInfoR\x0e\x61uthentication\" \n\nStringList\x12\x12\n\x04list\x18\x01 \x03(\tR\x04list\"\xaf\x01\n\x13SecurityRequirement\x12\x45\n\x07schemes\x18\x01 \x03(\x0b\x32+.lf.a2a.v1.SecurityRequirement.SchemesEntryR\x07schemes\x1aQ\n\x0cSchemesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x15.lf.a2a.v1.StringListR\x05value:\x02\x38\x01\"\xf5\x03\n\x0eSecurityScheme\x12X\n\x17\x61pi_key_security_scheme\x18\x01 \x01(\x0b\x32\x1f.lf.a2a.v1.APIKeySecuritySchemeH\x00R\x14\x61piKeySecurityScheme\x12^\n\x19http_auth_security_scheme\x18\x02 \x01(\x0b\x32!.lf.a2a.v1.HTTPAuthSecuritySchemeH\x00R\x16httpAuthSecurityScheme\x12W\n\x16oauth2_security_scheme\x18\x03 \x01(\x0b\x32\x1f.lf.a2a.v1.OAuth2SecuritySchemeH\x00R\x14oauth2SecurityScheme\x12n\n\x1fopen_id_connect_security_scheme\x18\x04 \x01(\x0b\x32&.lf.a2a.v1.OpenIdConnectSecuritySchemeH\x00R\x1bopenIdConnectSecurityScheme\x12V\n\x14mtls_security_scheme\x18\x05 \x01(\x0b\x32\".lf.a2a.v1.MutualTlsSecuritySchemeH\x00R\x12mtlsSecuritySchemeB\x08\n\x06scheme\"r\n\x14\x41PIKeySecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08location\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\"|\n\x16HTTPAuthSecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\x06scheme\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06scheme\x12#\n\rbearer_format\x18\x03 \x01(\tR\x0c\x62\x65\x61rerFormat\"\x9a\x01\n\x14OAuth2SecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x30\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x15.lf.a2a.v1.OAuthFlowsB\x03\xe0\x41\x02R\x05\x66lows\x12.\n\x13oauth2_metadata_url\x18\x03 \x01(\tR\x11oauth2MetadataUrl\"s\n\x1bOpenIdConnectSecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x32\n\x13open_id_connect_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x10openIdConnectUrl\";\n\x17MutualTlsSecurityScheme\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\"\x87\x03\n\nOAuthFlows\x12V\n\x12\x61uthorization_code\x18\x01 \x01(\x0b\x32%.lf.a2a.v1.AuthorizationCodeOAuthFlowH\x00R\x11\x61uthorizationCode\x12V\n\x12\x63lient_credentials\x18\x02 \x01(\x0b\x32%.lf.a2a.v1.ClientCredentialsOAuthFlowH\x00R\x11\x63lientCredentials\x12>\n\x08implicit\x18\x03 \x01(\x0b\x32\x1c.lf.a2a.v1.ImplicitOAuthFlowB\x02\x18\x01H\x00R\x08implicit\x12>\n\x08password\x18\x04 \x01(\x0b\x32\x1c.lf.a2a.v1.PasswordOAuthFlowB\x02\x18\x01H\x00R\x08password\x12\x41\n\x0b\x64\x65vice_code\x18\x05 \x01(\x0b\x32\x1e.lf.a2a.v1.DeviceCodeOAuthFlowH\x00R\ndeviceCodeB\x06\n\x04\x66low\"\xc1\x02\n\x1a\x41uthorizationCodeOAuthFlow\x12\x30\n\x11\x61uthorization_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x61uthorizationUrl\x12 \n\ttoken_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x03 \x01(\tR\nrefreshUrl\x12N\n\x06scopes\x18\x04 \x03(\x0b\x32\x31.lf.a2a.v1.AuthorizationCodeOAuthFlow.ScopesEntryB\x03\xe0\x41\x02R\x06scopes\x12#\n\rpkce_required\x18\x05 \x01(\x08R\x0cpkceRequired\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xea\x01\n\x1a\x43lientCredentialsOAuthFlow\x12 \n\ttoken_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x02 \x01(\tR\nrefreshUrl\x12N\n\x06scopes\x18\x03 \x03(\x0b\x32\x31.lf.a2a.v1.ClientCredentialsOAuthFlow.ScopesEntryB\x03\xe0\x41\x02R\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xde\x01\n\x11ImplicitOAuthFlow\x12+\n\x11\x61uthorization_url\x18\x01 \x01(\tR\x10\x61uthorizationUrl\x12\x1f\n\x0brefresh_url\x18\x02 \x01(\tR\nrefreshUrl\x12@\n\x06scopes\x18\x03 \x03(\x0b\x32(.lf.a2a.v1.ImplicitOAuthFlow.ScopesEntryR\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xce\x01\n\x11PasswordOAuthFlow\x12\x1b\n\ttoken_url\x18\x01 \x01(\tR\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x02 \x01(\tR\nrefreshUrl\x12@\n\x06scopes\x18\x03 \x03(\x0b\x32(.lf.a2a.v1.PasswordOAuthFlow.ScopesEntryR\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x9b\x02\n\x13\x44\x65viceCodeOAuthFlow\x12=\n\x18\x64\x65vice_authorization_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x16\x64\x65viceAuthorizationUrl\x12 \n\ttoken_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08tokenUrl\x12\x1f\n\x0brefresh_url\x18\x03 \x01(\tR\nrefreshUrl\x12G\n\x06scopes\x18\x04 \x03(\x0b\x32*.lf.a2a.v1.DeviceCodeOAuthFlow.ScopesEntryB\x03\xe0\x41\x02R\x06scopes\x1a\x39\n\x0bScopesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xdf\x01\n\x12SendMessageRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x31\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageB\x03\xe0\x41\x02R\x07message\x12I\n\rconfiguration\x18\x03 \x01(\x0b\x32#.lf.a2a.v1.SendMessageConfigurationR\rconfiguration\x12\x33\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"|\n\x0eGetTaskRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x13\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x02id\x12*\n\x0ehistory_length\x18\x03 \x01(\x05H\x00R\rhistoryLength\x88\x01\x01\x42\x11\n\x0f_history_length\"\x9f\x03\n\x10ListTasksRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x1d\n\ncontext_id\x18\x02 \x01(\tR\tcontextId\x12,\n\x06status\x18\x03 \x01(\x0e\x32\x14.lf.a2a.v1.TaskStateR\x06status\x12 \n\tpage_size\x18\x04 \x01(\x05H\x00R\x08pageSize\x88\x01\x01\x12\x1d\n\npage_token\x18\x05 \x01(\tR\tpageToken\x12*\n\x0ehistory_length\x18\x06 \x01(\x05H\x01R\rhistoryLength\x88\x01\x01\x12P\n\x16status_timestamp_after\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x14statusTimestampAfter\x12\x30\n\x11include_artifacts\x18\x08 \x01(\x08H\x02R\x10includeArtifacts\x88\x01\x01\x42\x0c\n\n_page_sizeB\x11\n\x0f_history_lengthB\x14\n\x12_include_artifacts\"\xb2\x01\n\x11ListTasksResponse\x12*\n\x05tasks\x18\x01 \x03(\x0b\x32\x0f.lf.a2a.v1.TaskB\x03\xe0\x41\x02R\x05tasks\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\x12 \n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x08pageSize\x12\"\n\ntotal_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02R\ttotalSize\"u\n\x11\x43\x61ncelTaskRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x13\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x33\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"q\n$GetTaskPushNotificationConfigRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x1c\n\x07task_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\x13\n\x02id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x02id\"t\n\'DeleteTaskPushNotificationConfigRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x1c\n\x07task_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\x13\n\x02id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x02id\"E\n\x16SubscribeToTaskRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\x12\x13\n\x02id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x02id\"\x9a\x01\n&ListTaskPushNotificationConfigsRequest\x12\x16\n\x06tenant\x18\x04 \x01(\tR\x06tenant\x12\x1c\n\x07task_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06taskId\x12\x1b\n\tpage_size\x18\x02 \x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x03 \x01(\tR\tpageToken\"5\n\x1bGetExtendedAgentCardRequest\x12\x16\n\x06tenant\x18\x01 \x01(\tR\x06tenant\"w\n\x13SendMessageResponse\x12%\n\x04task\x18\x01 \x01(\x0b\x32\x0f.lf.a2a.v1.TaskH\x00R\x04task\x12.\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageH\x00R\x07messageB\t\n\x07payload\"\x8a\x02\n\x0eStreamResponse\x12%\n\x04task\x18\x01 \x01(\x0b\x32\x0f.lf.a2a.v1.TaskH\x00R\x04task\x12.\n\x07message\x18\x02 \x01(\x0b\x32\x12.lf.a2a.v1.MessageH\x00R\x07message\x12G\n\rstatus_update\x18\x03 \x01(\x0b\x32 .lf.a2a.v1.TaskStatusUpdateEventH\x00R\x0cstatusUpdate\x12M\n\x0f\x61rtifact_update\x18\x04 \x01(\x0b\x32\".lf.a2a.v1.TaskArtifactUpdateEventH\x00R\x0e\x61rtifactUpdateB\t\n\x07payload\"\x92\x01\n\'ListTaskPushNotificationConfigsResponse\x12?\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32%.lf.a2a.v1.TaskPushNotificationConfigR\x07\x63onfigs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*\xf9\x01\n\tTaskState\x12\x1a\n\x16TASK_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14TASK_STATE_SUBMITTED\x10\x01\x12\x16\n\x12TASK_STATE_WORKING\x10\x02\x12\x18\n\x14TASK_STATE_COMPLETED\x10\x03\x12\x15\n\x11TASK_STATE_FAILED\x10\x04\x12\x17\n\x13TASK_STATE_CANCELED\x10\x05\x12\x1d\n\x19TASK_STATE_INPUT_REQUIRED\x10\x06\x12\x17\n\x13TASK_STATE_REJECTED\x10\x07\x12\x1c\n\x18TASK_STATE_AUTH_REQUIRED\x10\x08*;\n\x04Role\x12\x14\n\x10ROLE_UNSPECIFIED\x10\x00\x12\r\n\tROLE_USER\x10\x01\x12\x0e\n\nROLE_AGENT\x10\x02\x32\x97\x0f\n\nA2AService\x12\x83\x01\n\x0bSendMessage\x12\x1d.lf.a2a.v1.SendMessageRequest\x1a\x1e.lf.a2a.v1.SendMessageResponse\"5\x82\xd3\xe4\x93\x02/\"\r/message:send:\x01*Z\x1b\"\x16/{tenant}/message:send:\x01*\x12\x8d\x01\n\x14SendStreamingMessage\x12\x1d.lf.a2a.v1.SendMessageRequest\x1a\x19.lf.a2a.v1.StreamResponse\"9\x82\xd3\xe4\x93\x02\x33\"\x0f/message:stream:\x01*Z\x1d\"\x18/{tenant}/message:stream:\x01*0\x01\x12k\n\x07GetTask\x12\x19.lf.a2a.v1.GetTaskRequest\x1a\x0f.lf.a2a.v1.Task\"4\xda\x41\x02id\x82\xd3\xe4\x93\x02)\x12\r/tasks/{id=*}Z\x18\x12\x16/{tenant}/tasks/{id=*}\x12i\n\tListTasks\x12\x1b.lf.a2a.v1.ListTasksRequest\x1a\x1c.lf.a2a.v1.ListTasksResponse\"!\x82\xd3\xe4\x93\x02\x1b\x12\x06/tasksZ\x11\x12\x0f/{tenant}/tasks\x12\x80\x01\n\nCancelTask\x12\x1c.lf.a2a.v1.CancelTaskRequest\x1a\x0f.lf.a2a.v1.Task\"C\x82\xd3\xe4\x93\x02=\"\x14/tasks/{id=*}:cancel:\x01*Z\"\"\x1d/{tenant}/tasks/{id=*}:cancel:\x01*\x12\x96\x01\n\x0fSubscribeToTask\x12!.lf.a2a.v1.SubscribeToTaskRequest\x1a\x19.lf.a2a.v1.StreamResponse\"C\x82\xd3\xe4\x93\x02=\x12\x17/tasks/{id=*}:subscribeZ\"\x12 /{tenant}/tasks/{id=*}:subscribe0\x01\x12\xf3\x01\n CreateTaskPushNotificationConfig\x12%.lf.a2a.v1.TaskPushNotificationConfig\x1a%.lf.a2a.v1.TaskPushNotificationConfig\"\x80\x01\xda\x41\x0etask_id,config\x82\xd3\xe4\x93\x02i\"*/tasks/{task_id=*}/pushNotificationConfigs:\x01*Z8\"3/{tenant}/tasks/{task_id=*}/pushNotificationConfigs:\x01*\x12\xfe\x01\n\x1dGetTaskPushNotificationConfig\x12/.lf.a2a.v1.GetTaskPushNotificationConfigRequest\x1a%.lf.a2a.v1.TaskPushNotificationConfig\"\x84\x01\xda\x41\ntask_id,id\x82\xd3\xe4\x93\x02q\x12\x31/tasks/{task_id=*}/pushNotificationConfigs/{id=*}Z<\x12:/{tenant}/tasks/{task_id=*}/pushNotificationConfigs/{id=*}\x12\xfd\x01\n\x1fListTaskPushNotificationConfigs\x12\x31.lf.a2a.v1.ListTaskPushNotificationConfigsRequest\x1a\x32.lf.a2a.v1.ListTaskPushNotificationConfigsResponse\"s\xda\x41\x07task_id\x82\xd3\xe4\x93\x02\x63\x12*/tasks/{task_id=*}/pushNotificationConfigsZ5\x12\x33/{tenant}/tasks/{task_id=*}/pushNotificationConfigs\x12\x8f\x01\n\x14GetExtendedAgentCard\x12&.lf.a2a.v1.GetExtendedAgentCardRequest\x1a\x14.lf.a2a.v1.AgentCard\"9\x82\xd3\xe4\x93\x02\x33\x12\x12/extendedAgentCardZ\x1d\x12\x1b/{tenant}/extendedAgentCard\x12\xf5\x01\n DeleteTaskPushNotificationConfig\x12\x32.lf.a2a.v1.DeleteTaskPushNotificationConfigRequest\x1a\x16.google.protobuf.Empty\"\x84\x01\xda\x41\ntask_id,id\x82\xd3\xe4\x93\x02q*1/tasks/{task_id=*}/pushNotificationConfigs/{id=*}Z<*:/{tenant}/tasks/{task_id=*}/pushNotificationConfigs/{id=*}B|\n\rcom.lf.a2a.v1B\x08\x41\x32\x61ProtoP\x01Z\x1bgoogle.golang.org/lf/a2a/v1\xa2\x02\x03LAX\xaa\x02\tLf.A2a.V1\xca\x02\tLf\\A2a\\V1\xe2\x02\x15Lf\\A2a\\V1\\GPBMetadata\xea\x02\x0bLf::A2a::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -200,112 +200,112 @@ _globals['_A2ASERVICE'].methods_by_name['GetExtendedAgentCard']._serialized_options = b'\202\323\344\223\0023\022\022/extendedAgentCardZ\035\022\033/{tenant}/extendedAgentCard' _globals['_A2ASERVICE'].methods_by_name['DeleteTaskPushNotificationConfig']._loaded_options = None _globals['_A2ASERVICE'].methods_by_name['DeleteTaskPushNotificationConfig']._serialized_options = b'\332A\ntask_id,id\202\323\344\223\002q*1/tasks/{task_id=*}/pushNotificationConfigs/{id=*}Z<*:/{tenant}/tasks/{task_id=*}/pushNotificationConfigs/{id=*}' - _globals['_TASKSTATE']._serialized_start=9596 - _globals['_TASKSTATE']._serialized_end=9845 - _globals['_ROLE']._serialized_start=9847 - _globals['_ROLE']._serialized_end=9906 + _globals['_TASKSTATE']._serialized_start=9615 + _globals['_TASKSTATE']._serialized_end=9864 + _globals['_ROLE']._serialized_start=9866 + _globals['_ROLE']._serialized_end=9925 _globals['_SENDMESSAGECONFIGURATION']._serialized_start=205 - _globals['_SENDMESSAGECONFIGURATION']._serialized_end=480 - _globals['_TASK']._serialized_start=483 - _globals['_TASK']._serialized_end=743 - _globals['_TASKSTATUS']._serialized_start=746 - _globals['_TASKSTATUS']._serialized_end=911 - _globals['_PART']._serialized_start=914 - _globals['_PART']._serialized_end=1151 - _globals['_MESSAGE']._serialized_start=1154 - _globals['_MESSAGE']._serialized_end=1472 - _globals['_ARTIFACT']._serialized_start=1475 - _globals['_ARTIFACT']._serialized_end=1706 - _globals['_TASKSTATUSUPDATEEVENT']._serialized_start=1709 - _globals['_TASKSTATUSUPDATEEVENT']._serialized_end=1903 - _globals['_TASKARTIFACTUPDATEEVENT']._serialized_start=1906 - _globals['_TASKARTIFACTUPDATEEVENT']._serialized_end=2159 - _globals['_AUTHENTICATIONINFO']._serialized_start=2161 - _globals['_AUTHENTICATIONINFO']._serialized_end=2244 - _globals['_AGENTINTERFACE']._serialized_start=2247 - _globals['_AGENTINTERFACE']._serialized_end=2406 - _globals['_AGENTCARD']._serialized_start=2409 - _globals['_AGENTCARD']._serialized_end=3329 - _globals['_AGENTCARD_SECURITYSCHEMESENTRY']._serialized_start=3201 - _globals['_AGENTCARD_SECURITYSCHEMESENTRY']._serialized_end=3294 - _globals['_AGENTPROVIDER']._serialized_start=3331 - _globals['_AGENTPROVIDER']._serialized_end=3410 - _globals['_AGENTCAPABILITIES']._serialized_start=3413 - _globals['_AGENTCAPABILITIES']._serialized_end=3692 - _globals['_AGENTEXTENSION']._serialized_start=3695 - _globals['_AGENTEXTENSION']._serialized_end=3840 - _globals['_AGENTSKILL']._serialized_start=3843 - _globals['_AGENTSKILL']._serialized_end=4146 - _globals['_AGENTCARDSIGNATURE']._serialized_start=4149 - _globals['_AGENTCARDSIGNATURE']._serialized_end=4288 - _globals['_TASKPUSHNOTIFICATIONCONFIG']._serialized_start=4291 - _globals['_TASKPUSHNOTIFICATIONCONFIG']._serialized_end=4500 - _globals['_STRINGLIST']._serialized_start=4502 - _globals['_STRINGLIST']._serialized_end=4534 - _globals['_SECURITYREQUIREMENT']._serialized_start=4537 - _globals['_SECURITYREQUIREMENT']._serialized_end=4712 - _globals['_SECURITYREQUIREMENT_SCHEMESENTRY']._serialized_start=4631 - _globals['_SECURITYREQUIREMENT_SCHEMESENTRY']._serialized_end=4712 - _globals['_SECURITYSCHEME']._serialized_start=4715 - _globals['_SECURITYSCHEME']._serialized_end=5216 - _globals['_APIKEYSECURITYSCHEME']._serialized_start=5218 - _globals['_APIKEYSECURITYSCHEME']._serialized_end=5332 - _globals['_HTTPAUTHSECURITYSCHEME']._serialized_start=5334 - _globals['_HTTPAUTHSECURITYSCHEME']._serialized_end=5458 - _globals['_OAUTH2SECURITYSCHEME']._serialized_start=5461 - _globals['_OAUTH2SECURITYSCHEME']._serialized_end=5615 - _globals['_OPENIDCONNECTSECURITYSCHEME']._serialized_start=5617 - _globals['_OPENIDCONNECTSECURITYSCHEME']._serialized_end=5732 - _globals['_MUTUALTLSSECURITYSCHEME']._serialized_start=5734 - _globals['_MUTUALTLSSECURITYSCHEME']._serialized_end=5793 - _globals['_OAUTHFLOWS']._serialized_start=5796 - _globals['_OAUTHFLOWS']._serialized_end=6187 - _globals['_AUTHORIZATIONCODEOAUTHFLOW']._serialized_start=6190 - _globals['_AUTHORIZATIONCODEOAUTHFLOW']._serialized_end=6511 - _globals['_AUTHORIZATIONCODEOAUTHFLOW_SCOPESENTRY']._serialized_start=6454 - _globals['_AUTHORIZATIONCODEOAUTHFLOW_SCOPESENTRY']._serialized_end=6511 - _globals['_CLIENTCREDENTIALSOAUTHFLOW']._serialized_start=6514 - _globals['_CLIENTCREDENTIALSOAUTHFLOW']._serialized_end=6748 - _globals['_CLIENTCREDENTIALSOAUTHFLOW_SCOPESENTRY']._serialized_start=6454 - _globals['_CLIENTCREDENTIALSOAUTHFLOW_SCOPESENTRY']._serialized_end=6511 - _globals['_IMPLICITOAUTHFLOW']._serialized_start=6751 - _globals['_IMPLICITOAUTHFLOW']._serialized_end=6973 - _globals['_IMPLICITOAUTHFLOW_SCOPESENTRY']._serialized_start=6454 - _globals['_IMPLICITOAUTHFLOW_SCOPESENTRY']._serialized_end=6511 - _globals['_PASSWORDOAUTHFLOW']._serialized_start=6976 - _globals['_PASSWORDOAUTHFLOW']._serialized_end=7182 - _globals['_PASSWORDOAUTHFLOW_SCOPESENTRY']._serialized_start=6454 - _globals['_PASSWORDOAUTHFLOW_SCOPESENTRY']._serialized_end=6511 - _globals['_DEVICECODEOAUTHFLOW']._serialized_start=7185 - _globals['_DEVICECODEOAUTHFLOW']._serialized_end=7468 - _globals['_DEVICECODEOAUTHFLOW_SCOPESENTRY']._serialized_start=6454 - _globals['_DEVICECODEOAUTHFLOW_SCOPESENTRY']._serialized_end=6511 - _globals['_SENDMESSAGEREQUEST']._serialized_start=7471 - _globals['_SENDMESSAGEREQUEST']._serialized_end=7694 - _globals['_GETTASKREQUEST']._serialized_start=7696 - _globals['_GETTASKREQUEST']._serialized_end=7820 - _globals['_LISTTASKSREQUEST']._serialized_start=7823 - _globals['_LISTTASKSREQUEST']._serialized_end=8238 - _globals['_LISTTASKSRESPONSE']._serialized_start=8241 - _globals['_LISTTASKSRESPONSE']._serialized_end=8419 - _globals['_CANCELTASKREQUEST']._serialized_start=8421 - _globals['_CANCELTASKREQUEST']._serialized_end=8538 - _globals['_GETTASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_start=8540 - _globals['_GETTASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_end=8653 - _globals['_DELETETASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_start=8655 - _globals['_DELETETASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_end=8771 - _globals['_SUBSCRIBETOTASKREQUEST']._serialized_start=8773 - _globals['_SUBSCRIBETOTASKREQUEST']._serialized_end=8842 - _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSREQUEST']._serialized_start=8845 - _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSREQUEST']._serialized_end=8999 - _globals['_GETEXTENDEDAGENTCARDREQUEST']._serialized_start=9001 - _globals['_GETEXTENDEDAGENTCARDREQUEST']._serialized_end=9054 - _globals['_SENDMESSAGERESPONSE']._serialized_start=9056 - _globals['_SENDMESSAGERESPONSE']._serialized_end=9175 - _globals['_STREAMRESPONSE']._serialized_start=9178 - _globals['_STREAMRESPONSE']._serialized_end=9444 - _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSRESPONSE']._serialized_start=9447 - _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSRESPONSE']._serialized_end=9593 - _globals['_A2ASERVICE']._serialized_start=9909 - _globals['_A2ASERVICE']._serialized_end=11852 + _globals['_SENDMESSAGECONFIGURATION']._serialized_end=499 + _globals['_TASK']._serialized_start=502 + _globals['_TASK']._serialized_end=762 + _globals['_TASKSTATUS']._serialized_start=765 + _globals['_TASKSTATUS']._serialized_end=930 + _globals['_PART']._serialized_start=933 + _globals['_PART']._serialized_end=1170 + _globals['_MESSAGE']._serialized_start=1173 + _globals['_MESSAGE']._serialized_end=1491 + _globals['_ARTIFACT']._serialized_start=1494 + _globals['_ARTIFACT']._serialized_end=1725 + _globals['_TASKSTATUSUPDATEEVENT']._serialized_start=1728 + _globals['_TASKSTATUSUPDATEEVENT']._serialized_end=1922 + _globals['_TASKARTIFACTUPDATEEVENT']._serialized_start=1925 + _globals['_TASKARTIFACTUPDATEEVENT']._serialized_end=2178 + _globals['_AUTHENTICATIONINFO']._serialized_start=2180 + _globals['_AUTHENTICATIONINFO']._serialized_end=2263 + _globals['_AGENTINTERFACE']._serialized_start=2266 + _globals['_AGENTINTERFACE']._serialized_end=2425 + _globals['_AGENTCARD']._serialized_start=2428 + _globals['_AGENTCARD']._serialized_end=3348 + _globals['_AGENTCARD_SECURITYSCHEMESENTRY']._serialized_start=3220 + _globals['_AGENTCARD_SECURITYSCHEMESENTRY']._serialized_end=3313 + _globals['_AGENTPROVIDER']._serialized_start=3350 + _globals['_AGENTPROVIDER']._serialized_end=3429 + _globals['_AGENTCAPABILITIES']._serialized_start=3432 + _globals['_AGENTCAPABILITIES']._serialized_end=3711 + _globals['_AGENTEXTENSION']._serialized_start=3714 + _globals['_AGENTEXTENSION']._serialized_end=3859 + _globals['_AGENTSKILL']._serialized_start=3862 + _globals['_AGENTSKILL']._serialized_end=4165 + _globals['_AGENTCARDSIGNATURE']._serialized_start=4168 + _globals['_AGENTCARDSIGNATURE']._serialized_end=4307 + _globals['_TASKPUSHNOTIFICATIONCONFIG']._serialized_start=4310 + _globals['_TASKPUSHNOTIFICATIONCONFIG']._serialized_end=4519 + _globals['_STRINGLIST']._serialized_start=4521 + _globals['_STRINGLIST']._serialized_end=4553 + _globals['_SECURITYREQUIREMENT']._serialized_start=4556 + _globals['_SECURITYREQUIREMENT']._serialized_end=4731 + _globals['_SECURITYREQUIREMENT_SCHEMESENTRY']._serialized_start=4650 + _globals['_SECURITYREQUIREMENT_SCHEMESENTRY']._serialized_end=4731 + _globals['_SECURITYSCHEME']._serialized_start=4734 + _globals['_SECURITYSCHEME']._serialized_end=5235 + _globals['_APIKEYSECURITYSCHEME']._serialized_start=5237 + _globals['_APIKEYSECURITYSCHEME']._serialized_end=5351 + _globals['_HTTPAUTHSECURITYSCHEME']._serialized_start=5353 + _globals['_HTTPAUTHSECURITYSCHEME']._serialized_end=5477 + _globals['_OAUTH2SECURITYSCHEME']._serialized_start=5480 + _globals['_OAUTH2SECURITYSCHEME']._serialized_end=5634 + _globals['_OPENIDCONNECTSECURITYSCHEME']._serialized_start=5636 + _globals['_OPENIDCONNECTSECURITYSCHEME']._serialized_end=5751 + _globals['_MUTUALTLSSECURITYSCHEME']._serialized_start=5753 + _globals['_MUTUALTLSSECURITYSCHEME']._serialized_end=5812 + _globals['_OAUTHFLOWS']._serialized_start=5815 + _globals['_OAUTHFLOWS']._serialized_end=6206 + _globals['_AUTHORIZATIONCODEOAUTHFLOW']._serialized_start=6209 + _globals['_AUTHORIZATIONCODEOAUTHFLOW']._serialized_end=6530 + _globals['_AUTHORIZATIONCODEOAUTHFLOW_SCOPESENTRY']._serialized_start=6473 + _globals['_AUTHORIZATIONCODEOAUTHFLOW_SCOPESENTRY']._serialized_end=6530 + _globals['_CLIENTCREDENTIALSOAUTHFLOW']._serialized_start=6533 + _globals['_CLIENTCREDENTIALSOAUTHFLOW']._serialized_end=6767 + _globals['_CLIENTCREDENTIALSOAUTHFLOW_SCOPESENTRY']._serialized_start=6473 + _globals['_CLIENTCREDENTIALSOAUTHFLOW_SCOPESENTRY']._serialized_end=6530 + _globals['_IMPLICITOAUTHFLOW']._serialized_start=6770 + _globals['_IMPLICITOAUTHFLOW']._serialized_end=6992 + _globals['_IMPLICITOAUTHFLOW_SCOPESENTRY']._serialized_start=6473 + _globals['_IMPLICITOAUTHFLOW_SCOPESENTRY']._serialized_end=6530 + _globals['_PASSWORDOAUTHFLOW']._serialized_start=6995 + _globals['_PASSWORDOAUTHFLOW']._serialized_end=7201 + _globals['_PASSWORDOAUTHFLOW_SCOPESENTRY']._serialized_start=6473 + _globals['_PASSWORDOAUTHFLOW_SCOPESENTRY']._serialized_end=6530 + _globals['_DEVICECODEOAUTHFLOW']._serialized_start=7204 + _globals['_DEVICECODEOAUTHFLOW']._serialized_end=7487 + _globals['_DEVICECODEOAUTHFLOW_SCOPESENTRY']._serialized_start=6473 + _globals['_DEVICECODEOAUTHFLOW_SCOPESENTRY']._serialized_end=6530 + _globals['_SENDMESSAGEREQUEST']._serialized_start=7490 + _globals['_SENDMESSAGEREQUEST']._serialized_end=7713 + _globals['_GETTASKREQUEST']._serialized_start=7715 + _globals['_GETTASKREQUEST']._serialized_end=7839 + _globals['_LISTTASKSREQUEST']._serialized_start=7842 + _globals['_LISTTASKSREQUEST']._serialized_end=8257 + _globals['_LISTTASKSRESPONSE']._serialized_start=8260 + _globals['_LISTTASKSRESPONSE']._serialized_end=8438 + _globals['_CANCELTASKREQUEST']._serialized_start=8440 + _globals['_CANCELTASKREQUEST']._serialized_end=8557 + _globals['_GETTASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_start=8559 + _globals['_GETTASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_end=8672 + _globals['_DELETETASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_start=8674 + _globals['_DELETETASKPUSHNOTIFICATIONCONFIGREQUEST']._serialized_end=8790 + _globals['_SUBSCRIBETOTASKREQUEST']._serialized_start=8792 + _globals['_SUBSCRIBETOTASKREQUEST']._serialized_end=8861 + _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSREQUEST']._serialized_start=8864 + _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSREQUEST']._serialized_end=9018 + _globals['_GETEXTENDEDAGENTCARDREQUEST']._serialized_start=9020 + _globals['_GETEXTENDEDAGENTCARDREQUEST']._serialized_end=9073 + _globals['_SENDMESSAGERESPONSE']._serialized_start=9075 + _globals['_SENDMESSAGERESPONSE']._serialized_end=9194 + _globals['_STREAMRESPONSE']._serialized_start=9197 + _globals['_STREAMRESPONSE']._serialized_end=9463 + _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSRESPONSE']._serialized_start=9466 + _globals['_LISTTASKPUSHNOTIFICATIONCONFIGSRESPONSE']._serialized_end=9612 + _globals['_A2ASERVICE']._serialized_start=9928 + _globals['_A2ASERVICE']._serialized_end=11871 # @@protoc_insertion_point(module_scope) diff --git a/src/a2a/types/a2a_pb2.pyi b/src/a2a/types/a2a_pb2.pyi index ac0f20ca3..7da2f649e 100644 --- a/src/a2a/types/a2a_pb2.pyi +++ b/src/a2a/types/a2a_pb2.pyi @@ -46,16 +46,16 @@ ROLE_USER: Role ROLE_AGENT: Role class SendMessageConfiguration(_message.Message): - __slots__ = ("accepted_output_modes", "task_push_notification_config", "history_length", "blocking") + __slots__ = ("accepted_output_modes", "task_push_notification_config", "history_length", "return_immediately") ACCEPTED_OUTPUT_MODES_FIELD_NUMBER: _ClassVar[int] TASK_PUSH_NOTIFICATION_CONFIG_FIELD_NUMBER: _ClassVar[int] HISTORY_LENGTH_FIELD_NUMBER: _ClassVar[int] - BLOCKING_FIELD_NUMBER: _ClassVar[int] + RETURN_IMMEDIATELY_FIELD_NUMBER: _ClassVar[int] accepted_output_modes: _containers.RepeatedScalarFieldContainer[str] task_push_notification_config: TaskPushNotificationConfig history_length: int - blocking: bool - def __init__(self, accepted_output_modes: _Optional[_Iterable[str]] = ..., task_push_notification_config: _Optional[_Union[TaskPushNotificationConfig, _Mapping]] = ..., history_length: _Optional[int] = ..., blocking: _Optional[bool] = ...) -> None: ... + return_immediately: bool + def __init__(self, accepted_output_modes: _Optional[_Iterable[str]] = ..., task_push_notification_config: _Optional[_Union[TaskPushNotificationConfig, _Mapping]] = ..., history_length: _Optional[int] = ..., return_immediately: _Optional[bool] = ...) -> None: ... class Task(_message.Message): __slots__ = ("id", "context_id", "status", "artifacts", "history", "metadata") diff --git a/tests/client/test_base_client.py b/tests/client/test_base_client.py index 98bc33061..a278eb7fe 100644 --- a/tests/client/test_base_client.py +++ b/tests/client/test_base_client.py @@ -235,7 +235,7 @@ async def test_send_message_callsite_config_overrides_non_streaming( cfg = SendMessageConfiguration( history_length=2, - blocking=False, + return_immediately=True, accepted_output_modes=['application/json'], ) request = SendMessageRequest(message=sample_message, configuration=cfg) @@ -249,7 +249,7 @@ async def test_send_message_callsite_config_overrides_non_streaming( params = mock_transport.send_message.call_args[0][0] assert params.configuration.history_length == 2 - assert params.configuration.blocking is False + assert params.configuration.return_immediately is True assert params.configuration.accepted_output_modes == [ 'application/json' ] @@ -278,7 +278,6 @@ async def create_stream(*args, **kwargs): cfg = SendMessageConfiguration( history_length=0, - blocking=True, accepted_output_modes=['text/plain'], ) request = SendMessageRequest(message=sample_message, configuration=cfg) @@ -292,5 +291,5 @@ async def create_stream(*args, **kwargs): params = mock_transport.send_message_streaming.call_args[0][0] assert params.configuration.history_length == 0 - assert params.configuration.blocking is True + assert params.configuration.return_immediately is False assert params.configuration.accepted_output_modes == ['text/plain'] diff --git a/tests/compat/v0_3/test_conversions.py b/tests/compat/v0_3/test_conversions.py index c3b92df40..e5715aa2f 100644 --- a/tests/compat/v0_3/test_conversions.py +++ b/tests/compat/v0_3/test_conversions.py @@ -427,7 +427,6 @@ def test_send_message_configuration_conversion(): v10_expected = pb2_v10.SendMessageConfiguration( accepted_output_modes=['text/plain', 'application/json'], history_length=10, - blocking=True, task_push_notification_config=pb2_v10.TaskPushNotificationConfig( url='http://test', authentication=pb2_v10.AuthenticationInfo(scheme='Basic'), @@ -443,7 +442,7 @@ def test_send_message_configuration_conversion(): def test_send_message_configuration_conversion_minimal(): v03_config = types_v03.MessageSendConfiguration() - v10_expected = pb2_v10.SendMessageConfiguration(blocking=True) + v10_expected = pb2_v10.SendMessageConfiguration() v10_config = to_core_send_message_configuration(v03_config) assert v10_config == v10_expected @@ -1306,9 +1305,7 @@ def test_send_message_request_conversion(): role=pb2_v10.Role.ROLE_USER, parts=[pb2_v10.Part(text='Hi')], ), - configuration=pb2_v10.SendMessageConfiguration( - history_length=5, blocking=True - ), + configuration=pb2_v10.SendMessageConfiguration(history_length=5), ) ParseDict({'k': 'v'}, v10_expected.metadata) @@ -1767,8 +1764,8 @@ def test_to_core_send_message_request_no_configuration(): ), ) core_req = to_core_send_message_request(v03_req) - # Default is True if configuration is absent - assert core_req.configuration.blocking is True + # Blocking by default (return_immediately=False) + assert core_req.configuration.return_immediately is False assert not core_req.HasField('message') diff --git a/tests/compat/v0_3/test_grpc_handler.py b/tests/compat/v0_3/test_grpc_handler.py index 28c554a74..b46cbe61c 100644 --- a/tests/compat/v0_3/test_grpc_handler.py +++ b/tests/compat/v0_3/test_grpc_handler.py @@ -68,7 +68,7 @@ async def test_send_message_success_task( message_id='msg-1', role=a2a_pb2.Role.ROLE_USER ), configuration=a2a_pb2.SendMessageConfiguration( - history_length=0, blocking=False + history_length=0, return_immediately=True ), ) mock_request_handler.on_message_send.assert_called_once_with( @@ -105,7 +105,7 @@ async def test_send_message_success_message( message_id='msg-1', role=a2a_pb2.Role.ROLE_USER ), configuration=a2a_pb2.SendMessageConfiguration( - history_length=0, blocking=False + history_length=0, return_immediately=True ), ) mock_request_handler.on_message_send.assert_called_once_with( @@ -158,7 +158,7 @@ async def mock_stream(*args, **kwargs): message_id='msg-1', role=a2a_pb2.Role.ROLE_USER ), configuration=a2a_pb2.SendMessageConfiguration( - history_length=0, blocking=False + history_length=0, return_immediately=True ), ) mock_request_handler.on_message_send_stream.assert_called_once_with( diff --git a/tests/e2e/push_notifications/test_default_push_notification_support.py b/tests/e2e/push_notifications/test_default_push_notification_support.py index 80ec09e77..f7a3da457 100644 --- a/tests/e2e/push_notifications/test_default_push_notification_support.py +++ b/tests/e2e/push_notifications/test_default_push_notification_support.py @@ -184,7 +184,7 @@ async def test_notification_triggering_after_config_change_e2e( parts=[Part(text='How are you?')], role=Role.ROLE_USER, ), - configuration=SendMessageConfiguration(blocking=True), + configuration=SendMessageConfiguration(), ) ) ] @@ -225,7 +225,7 @@ async def test_notification_triggering_after_config_change_e2e( parts=[Part(text='Good')], role=Role.ROLE_USER, ), - configuration=SendMessageConfiguration(blocking=True), + configuration=SendMessageConfiguration(), ) ) ] diff --git a/tests/integration/test_end_to_end.py b/tests/integration/test_end_to_end.py index 218a614a1..ddf9edbf3 100644 --- a/tests/integration/test_end_to_end.py +++ b/tests/integration/test_end_to_end.py @@ -274,7 +274,7 @@ async def test_end_to_end_send_message_blocking(transport_setups): message_id='msg-e2e-blocking', parts=[Part(text='Run dummy agent!')], ) - configuration = SendMessageConfiguration(blocking=True) + configuration = SendMessageConfiguration() events = [ event @@ -312,7 +312,7 @@ async def test_end_to_end_send_message_non_blocking(transport_setups): message_id='msg-e2e-non-blocking', parts=[Part(text='Run dummy agent!')], ) - configuration = SendMessageConfiguration(blocking=False) + configuration = SendMessageConfiguration(return_immediately=True) events = [ event diff --git a/tests/server/request_handlers/test_default_request_handler.py b/tests/server/request_handlers/test_default_request_handler.py index 987ac96b5..d60b2b518 100644 --- a/tests/server/request_handlers/test_default_request_handler.py +++ b/tests/server/request_handlers/test_default_request_handler.py @@ -623,7 +623,7 @@ async def test_on_message_send_with_push_notification_in_non_blocking_request(): message_config = SendMessageConfiguration( task_push_notification_config=push_config, accepted_output_modes=['text/plain'], - blocking=False, # Non-blocking request + return_immediately=True, ) params = SendMessageRequest( message=Message( @@ -932,7 +932,7 @@ async def test_on_message_send_non_blocking(): parts=[Part(text='Hi')], ), configuration=SendMessageConfiguration( - blocking=False, accepted_output_modes=['text/plain'] + return_immediately=True, accepted_output_modes=['text/plain'] ), ) @@ -978,7 +978,6 @@ async def test_on_message_send_limit_history(): parts=[Part(text='Hi')], ), configuration=SendMessageConfiguration( - blocking=True, accepted_output_modes=['text/plain'], history_length=1, ), @@ -1016,7 +1015,6 @@ async def test_on_get_task_limit_history(): parts=[Part(text='Hi')], ), configuration=SendMessageConfiguration( - blocking=True, accepted_output_modes=['text/plain'], ), )