a2a 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.agent-docs/ROADMAP.md +423 -0
- data/.agent-docs/index.md +124 -0
- data/.agent-docs/llms.txt +318 -0
- data/.agent-docs/specification/json.json +2575 -0
- data/.agent-docs/specification.md +1924 -0
- data/.agent-docs/topics/a2a-and-mcp.md +132 -0
- data/.agent-docs/topics/agent-discovery.md +96 -0
- data/.agent-docs/topics/enterprise-ready.md +139 -0
- data/.agent-docs/topics/extensions.md +260 -0
- data/.agent-docs/topics/key-concepts.md +99 -0
- data/.agent-docs/topics/life-of-a-task.md +255 -0
- data/.agent-docs/topics/streaming-and-async.md +111 -0
- data/.agent-docs/topics/what-is-a2a.md +218 -0
- data/.agent-docs/tutorials/index.md +31 -0
- data/.agent-docs/tutorials/python/1-introduction.md +32 -0
- data/.agent-docs/tutorials/python/2-setup.md +55 -0
- data/.agent-docs/tutorials/python/3-agent-skills-and-card.md +48 -0
- data/.agent-docs/tutorials/python/4-agent-executor.md +57 -0
- data/.agent-docs/tutorials/python/5-start-server.md +55 -0
- data/.agent-docs/tutorials/python/6-interact-with-server.md +95 -0
- data/.agent-docs/tutorials/python/7-streaming-and-multiturn.md +97 -0
- data/.agent-docs/tutorials/python/8-next-steps.md +40 -0
- data/.agent-docs/types.ts +1544 -0
- data/.agent-docs/types_mapping.md +196 -0
- data/.claude/commands/gemfile/update.md +52 -0
- data/.claude/settings.local.json +23 -0
- data/.tool-versions +1 -1
- data/CHANGELOG.md +68 -1
- data/CLAUDE.md +98 -0
- data/README.md +20 -14
- data/Rakefile +1 -3
- data/WARP.md +115 -0
- data/lib/a2a/extensions/json_deserialization.rb +1 -3
- data/lib/a2a/types/agent_capabilities.rb +3 -0
- data/lib/a2a/types/agent_card.rb +49 -17
- data/lib/a2a/types/agent_card_signature.rb +17 -0
- data/lib/a2a/types/agent_extension.rb +19 -0
- data/lib/a2a/types/agent_interface.rb +13 -0
- data/lib/a2a/types/agent_provider.rb +2 -2
- data/lib/a2a/types/agent_skill.rb +11 -4
- data/lib/a2a/types/api_key_security_scheme.rb +15 -0
- data/lib/a2a/types/artifact.rb +10 -15
- data/lib/a2a/types/authenticated_extended_card_not_configured_error.rb +43 -0
- data/lib/a2a/types/authorization_code_oauth_flow.rb +22 -0
- data/lib/a2a/types/cancel_task_request.rb +5 -2
- data/lib/a2a/types/cancel_task_response.rb +3 -3
- data/lib/a2a/types/client_credentials_oauth_flow.rb +16 -0
- data/lib/a2a/types/content_type_not_supported_error.rb +42 -0
- data/lib/a2a/types/data_part.rb +5 -8
- data/lib/a2a/types/delete_task_push_notification_config_params.rb +9 -0
- data/lib/a2a/types/delete_task_push_notification_config_request.rb +18 -0
- data/lib/a2a/types/delete_task_push_notification_config_response.rb +13 -0
- data/lib/a2a/types/error.rb +19 -0
- data/lib/a2a/types/error_codes.rb +6 -0
- data/lib/a2a/types/file_base.rb +12 -0
- data/lib/a2a/types/file_part.rb +7 -9
- data/lib/a2a/types/file_with_bytes.rb +9 -0
- data/lib/a2a/types/file_with_uri.rb +9 -0
- data/lib/a2a/types/get_authenticated_extended_card_request.rb +15 -0
- data/lib/a2a/types/get_authenticated_extended_card_response.rb +13 -0
- data/lib/a2a/types/get_task_push_notification_config_params.rb +9 -0
- data/lib/a2a/types/get_task_push_notification_config_request.rb +21 -0
- data/lib/a2a/types/get_task_push_notification_request.rb +5 -2
- data/lib/a2a/types/get_task_push_notification_response.rb +4 -4
- data/lib/a2a/types/get_task_request.rb +5 -2
- data/lib/a2a/types/get_task_response.rb +3 -3
- data/lib/a2a/types/http_auth_security_scheme.rb +18 -0
- data/lib/a2a/types/implicit_oauth_flow.rb +16 -0
- data/lib/a2a/types/invalid_agent_response_error.rb +41 -0
- data/lib/a2a/types/list_task_push_notification_config_params.rb +8 -0
- data/lib/a2a/types/list_task_push_notification_config_request.rb +18 -0
- data/lib/a2a/types/list_task_push_notification_config_response.rb +13 -0
- data/lib/a2a/types/message.rb +24 -4
- data/lib/a2a/types/message_send_configuration.rb +20 -0
- data/lib/a2a/types/message_send_params.rb +16 -0
- data/lib/a2a/types/mutual_tls_security_scheme.rb +9 -0
- data/lib/a2a/types/oauth2_security_scheme.rb +16 -0
- data/lib/a2a/types/oauth_flows.rb +20 -0
- data/lib/a2a/types/openid_connect_security_scheme.rb +12 -0
- data/lib/a2a/types/part.rb +2 -1
- data/lib/a2a/types/part_base.rb +9 -0
- data/lib/a2a/types/password_oauth_flow.rb +16 -0
- data/lib/a2a/types/push_notification_authentication_info.rb +12 -0
- data/lib/a2a/types/push_notification_config.rb +11 -6
- data/lib/a2a/types/push_notification_not_supported_error.rb +37 -10
- data/lib/a2a/types/request.rb +15 -0
- data/lib/a2a/types/security_scheme.rb +11 -0
- data/lib/a2a/types/security_scheme_base.rb +9 -0
- data/lib/a2a/types/send_message_request.rb +18 -0
- data/lib/a2a/types/send_message_response.rb +13 -0
- data/lib/a2a/types/send_streaming_message_request.rb +18 -0
- data/lib/a2a/types/send_streaming_message_response.rb +15 -0
- data/lib/a2a/types/set_task_push_notification_config_request.rb +18 -0
- data/lib/a2a/types/set_task_push_notification_request.rb +5 -2
- data/lib/a2a/types/set_task_push_notification_response.rb +4 -4
- data/lib/a2a/types/task.rb +15 -11
- data/lib/a2a/types/task_artifact_update_event.rb +18 -7
- data/lib/a2a/types/task_not_cancelable_error.rb +37 -10
- data/lib/a2a/types/task_not_found_error.rb +37 -10
- data/lib/a2a/types/task_resubscription_request.rb +5 -2
- data/lib/a2a/types/task_state.rb +2 -1
- data/lib/a2a/types/task_status_update_event.rb +13 -6
- data/lib/a2a/types/text_part.rb +5 -8
- data/lib/a2a/types/transport_protocol.rb +6 -0
- data/lib/a2a/types/unsupported_operation_error.rb +37 -10
- data/lib/a2a/types.rb +13 -0
- data/lib/a2a/version.rb +1 -1
- data/lib/a2a.rb +15 -5
- metadata +101 -19
- data/lib/a2a/types/agent_authentication.rb +0 -13
- data/lib/a2a/types/authentication_info.rb +0 -9
- data/lib/a2a/types/file_content.rb +0 -18
- data/lib/a2a/types/internal_error.rb +0 -15
- data/lib/a2a/types/invalid_params_error.rb +0 -15
- data/lib/a2a/types/invalid_request_error.rb +0 -15
- data/lib/a2a/types/json_parse_error.rb +0 -15
- data/lib/a2a/types/jsonrpc_error.rb +0 -15
- data/lib/a2a/types/jsonrpc_message.rb +0 -12
- data/lib/a2a/types/jsonrpc_request.rb +0 -15
- data/lib/a2a/types/jsonrpc_response.rb +0 -12
- data/lib/a2a/types/method_not_found_error.rb +0 -15
- data/lib/a2a/types/send_task_request.rb +0 -15
- data/lib/a2a/types/send_task_response.rb +0 -13
- data/lib/a2a/types/send_task_streaming_request.rb +0 -15
- data/lib/a2a/types/send_task_streaming_response.rb +0 -15
- data/lib/a2a/types/task_send_params.rb +0 -26
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Error for invalid parameters
|
5
|
-
class InvalidParamsError < JSONRPCError
|
6
|
-
# @return [Integer] Error code (-32602)
|
7
|
-
attribute :code, Types::Integer.constant(ErrorCodes::INVALID_PARAMS)
|
8
|
-
|
9
|
-
# @return [String] Error message
|
10
|
-
attribute :message, Types::String.constant('Invalid parameters')
|
11
|
-
|
12
|
-
# @return [Object, nil] Additional error data
|
13
|
-
attribute? :data, Types::Nominal::Any.optional
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Error for invalid request structure
|
5
|
-
class InvalidRequestError < JSONRPCError
|
6
|
-
# @return [Integer] Error code (-32600)
|
7
|
-
attribute :code, Types::Integer.constant(ErrorCodes::INVALID_REQUEST)
|
8
|
-
|
9
|
-
# @return [String] Error message
|
10
|
-
attribute :message, Types::String.constant('Request payload validation error')
|
11
|
-
|
12
|
-
# @return [Object, nil] Additional error data
|
13
|
-
attribute? :data, Types::Nominal::Any.optional
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Error for invalid JSON payload
|
5
|
-
class JSONParseError < JSONRPCError
|
6
|
-
# @return [Integer] Error code (-32700)
|
7
|
-
attribute :code, Types::Integer.constant(ErrorCodes::PARSE_ERROR)
|
8
|
-
|
9
|
-
# @return [String] Error message
|
10
|
-
attribute :message, Types::String.constant('Invalid JSON payload')
|
11
|
-
|
12
|
-
# @return [Object, nil] Additional error data
|
13
|
-
attribute? :data, Types::Nominal::Any.optional
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Represents a JSON-RPC error object.
|
5
|
-
class JSONRPCError < ProtocolStruct
|
6
|
-
# @return [Integer] A number indicating the error type that occurred.
|
7
|
-
attribute :code, Types::Integer.constant(ErrorCodes::PARSE_ERROR)
|
8
|
-
|
9
|
-
# @return [String] A string providing a short description of the error.
|
10
|
-
attribute :message, Types::String.constant('Invalid JSON payload')
|
11
|
-
|
12
|
-
# @return [Object, nil] Optional additional data about the error.
|
13
|
-
attribute? :data, Types::Nominal::Any.optional
|
14
|
-
end
|
15
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Represents a base message for JSON-RPC communication.
|
5
|
-
class JSONRPCMessage < ProtocolStruct
|
6
|
-
# @return [String] Specifies the JSON-RPC version. Must be "2.0".
|
7
|
-
attribute? :jsonrpc, Types::String.constant('2.0')
|
8
|
-
|
9
|
-
# @return [Integer, String, nil] Request identifier. Responses must have the same ID as the request they relate to.
|
10
|
-
attribute? :id, (Types::Integer | Types::String).optional
|
11
|
-
end
|
12
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Represents a JSON-RPC request object.
|
5
|
-
class JSONRPCRequest < JSONRPCMessage
|
6
|
-
# @return [String] The name of the method to be invoked.
|
7
|
-
attribute :method, Types::String
|
8
|
-
|
9
|
-
# @return [Hash, nil] Parameters for the method. Can be a structured object, an array, or null/omitted.
|
10
|
-
attribute? :params, Types::Hash.optional
|
11
|
-
|
12
|
-
# @return [String] The name of the method to be invoked.
|
13
|
-
def method = attributes[:method]
|
14
|
-
end
|
15
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Represents a JSON-RPC response object.
|
5
|
-
class JSONRPCResponse < JSONRPCMessage
|
6
|
-
# @return [Object, nil] The result of the method invocation. Required on success.
|
7
|
-
attribute? :result, Types::Nominal::Any.optional
|
8
|
-
|
9
|
-
# @return [JSONRPCError, nil] An error object if an error occurred during the request. Required on failure.
|
10
|
-
attribute? :error, Types::Constructor(JSONRPCError).optional
|
11
|
-
end
|
12
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Error for method not found
|
5
|
-
class MethodNotFoundError < JSONRPCError
|
6
|
-
# @return [Integer] Error code (-32601)
|
7
|
-
attribute :code, Types::Integer.constant(ErrorCodes::METHOD_NOT_FOUND)
|
8
|
-
|
9
|
-
# @return [String] Error message
|
10
|
-
attribute :message, Types::String.constant('Method not found')
|
11
|
-
|
12
|
-
# @return [nil] No additional data
|
13
|
-
attribute? :data, Types::Nil.constant(nil)
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Request to send a message/initiate a task.
|
5
|
-
class SendTaskRequest < JSONRPCRequest
|
6
|
-
# @return [String] Method name for sending a task message.
|
7
|
-
attribute :method, Types::String.constant('tasks/send')
|
8
|
-
|
9
|
-
# @return [TaskSendParams] Parameters for the send task method.
|
10
|
-
attribute :params, Types::Constructor(TaskSendParams)
|
11
|
-
|
12
|
-
# @return [String] The name of the method to be invoked.
|
13
|
-
def method = attributes[:method]
|
14
|
-
end
|
15
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Response to a `tasks/send` request.
|
5
|
-
# Contains the Task object or an error.
|
6
|
-
class SendTaskResponse < JSONRPCResponse
|
7
|
-
# @return [Task, nil] The resulting task if successful.
|
8
|
-
attribute? :result, Types::Constructor(Task).optional
|
9
|
-
|
10
|
-
# @return [JSONRPCError, nil] Error information if the request failed.
|
11
|
-
attribute? :error, Types::Constructor(JSONRPCError).optional
|
12
|
-
end
|
13
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Request to send a message/initiate a task and subscribe to streaming updates.
|
5
|
-
class SendTaskStreamingRequest < JSONRPCRequest
|
6
|
-
# @return [String] Method name for sending a task message and subscribing to updates.
|
7
|
-
attribute :method, Types::String.constant('tasks/sendSubscribe')
|
8
|
-
|
9
|
-
# @return [TaskSendParams] Parameters for the streaming task send method.
|
10
|
-
attribute :params, Types::Constructor(TaskSendParams)
|
11
|
-
|
12
|
-
# @return [String] Method name for sending a task message and subscribing to updates.
|
13
|
-
def method = attributes[:method]
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Response to a streaming task operation, either through `tasks/sendSubscribe` or a subscription.
|
5
|
-
# Contains a TaskStatusUpdateEvent, TaskArtifactUpdateEvent, or an error.
|
6
|
-
class SendTaskStreamingResponse < JSONRPCResponse
|
7
|
-
# @return [TaskStatusUpdateEvent, TaskArtifactUpdateEvent, nil] Event data if successful.
|
8
|
-
attribute? :result do
|
9
|
-
Types.Constructor(TaskStatusUpdateEvent) | Types.Constructor(TaskArtifactUpdateEvent)
|
10
|
-
end.optional
|
11
|
-
|
12
|
-
# @return [JSONRPCError, nil] Error information if the request failed.
|
13
|
-
attribute? :error, Types::Constructor(JSONRPCError).optional
|
14
|
-
end
|
15
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module A2A
|
4
|
-
# Parameters for the `tasks/send` method.
|
5
|
-
class TaskSendParams < ProtocolStruct
|
6
|
-
# @return [String] Unique identifier for the task being initiated or continued.
|
7
|
-
attribute :id, Types::String
|
8
|
-
|
9
|
-
# @return [String, nil] Optional identifier for the session this task belongs to. If not provided, a new
|
10
|
-
# session might be implicitly created depending on the agent.
|
11
|
-
attribute? :session_id, Types::String.optional
|
12
|
-
|
13
|
-
# @return [Message] The message content to send to the agent for processing.
|
14
|
-
attribute :message, Types::Constructor(Message)
|
15
|
-
|
16
|
-
# @return [PushNotificationConfig, nil] Optional pushNotification information for receiving notifications about
|
17
|
-
# this task. Requires agent capability.
|
18
|
-
attribute? :push_notification, Types::Constructor(PushNotificationConfig).optional
|
19
|
-
|
20
|
-
# @return [Integer, nil] Optional parameter to specify how much message history to include in the response.
|
21
|
-
attribute? :history_length, Types::Integer.optional
|
22
|
-
|
23
|
-
# @return [Hash, nil] Optional metadata associated with sending this message.
|
24
|
-
attribute? :metadata, Types::Hash.optional
|
25
|
-
end
|
26
|
-
end
|