Module: A2A

Defined in:
lib/a2a.rb,
lib/a2a/part.rb,
lib/a2a/role.rb,
lib/a2a/task.rb,
lib/a2a/client.rb,
lib/a2a/message.rb,
lib/a2a/version.rb,
lib/a2a/artifact.rb,
lib/a2a/discovery.rb,
lib/a2a/operation.rb,
lib/a2a/part/data.rb,
lib/a2a/part/file.rb,
lib/a2a/part/text.rb,
lib/a2a/streaming.rb,
lib/a2a/agent_card.rb,
lib/a2a/oauth_flow.rb,
lib/a2a/task/state.rb,
lib/a2a/versioning.rb,
lib/a2a/agent_skill.rb,
lib/a2a/task/status.rb,
lib/a2a/agent_provider.rb,
lib/a2a/agent_extension.rb,
lib/a2a/agent_interface.rb,
lib/a2a/security_scheme.rb,
lib/a2a/json_rpc_envelope.rb,
lib/a2a/protocol/json_rpc.rb,
lib/a2a/push_notification.rb,
lib/a2a/agent_capabilities.rb,
lib/a2a/agent_card/builder.rb,
lib/a2a/operation/get_task.rb,
lib/a2a/protocol/http_json.rb,
lib/a2a/streaming/response.rb,
lib/a2a/agent_card/verifier.rb,
lib/a2a/agent_card/signature.rb,
lib/a2a/operation/executable.rb,
lib/a2a/operation/list_tasks.rb,
lib/a2a/security_requirement.rb,
lib/a2a/streaming/sse_parser.rb,
lib/a2a/streaming/sse_writer.rb,
lib/a2a/operation/cancel_task.rb,
lib/a2a/oauth_flow/device_code.rb,
lib/a2a/operation/send_message.rb,
lib/a2a/security_scheme/oauth2.rb,
lib/a2a/streaming/subscription.rb,
lib/a2a/security_scheme/api_key.rb,
lib/a2a/push_notification/config.rb,
lib/a2a/security_scheme/http_auth.rb,
lib/a2a/push_notification/receiver.rb,
lib/a2a/security_scheme/mutual_tls.rb,
lib/a2a/operation/subscribe_to_task.rb,
lib/a2a/protocol/json_rpc/transport.rb,
lib/a2a/protocol/http_json/transport.rb,
lib/a2a/push_notification/dispatcher.rb,
lib/a2a/oauth_flow/authorization_code.rb,
lib/a2a/oauth_flow/client_credentials.rb,
lib/a2a/streaming/status_update_event.rb,
lib/a2a/operation/send_message_request.rb,
lib/a2a/security_scheme/open_id_connect.rb,
lib/a2a/streaming/artifact_update_event.rb,
lib/a2a/operation/send_streaming_message.rb,
lib/a2a/operation/get_extended_agent_card.rb,
lib/a2a/operation/send_message/configuration.rb,
lib/a2a/push_notification/authentication_info.rb,
lib/a2a/operation/get_task_push_notification_config.rb,
lib/a2a/operation/list_task_push_notification_configs.rb,
lib/a2a/operation/create_task_push_notification_config.rb,
lib/a2a/operation/delete_task_push_notification_config.rb

Defined Under Namespace

Modules: Discovery, JSONRPCEnvelope, OAuthFlow, Operation, Protocol, PushNotification, Role, SecurityScheme, Streaming, Versioning Classes: AgentCapabilities, AgentCard, AgentExtension, AgentInterface, AgentProvider, AgentSkill, Artifact, AuthenticationError, AuthorizationError, Client, ContentTypeNotSupportedError, Error, ExtendedAgentCardNotConfiguredError, ExtensionSupportRequiredError, InternalError, InvalidAgentResponseError, InvalidParamsError, InvalidRequestError, JSONParseError, Message, MethodNotFoundError, Part, PushNotificationNotSupportedError, SecurityRequirement, Task, TaskNotCancelableError, TaskNotFoundError, TransportError, UnsupportedOperationError, ValidationError, VersionNotSupportedError

Constant Summary collapse

CODE_MAP =
{
  -32700 => JSONParseError,
  -32600 => InvalidRequestError,
  -32601 => MethodNotFoundError,
  -32602 => InvalidParamsError,
  -32603 => InternalError,
  -32001 => TaskNotFoundError,
  -32002 => TaskNotCancelableError,
  -32003 => PushNotificationNotSupportedError,
  -32004 => UnsupportedOperationError,
  -32005 => ContentTypeNotSupportedError,
  -32006 => InvalidAgentResponseError,
  -32007 => ExtendedAgentCardNotConfiguredError,
  -32008 => ExtensionSupportRequiredError,
  -32009 => VersionNotSupportedError
}.freeze
VERSION =
"0.2.3"
SPEC_VERSION =
"1.0"

Class Method Summary collapse

Class Method Details

.from_json_rpc_error(hash) ⇒ Object



83
84
85
86
87
88
89
# File 'lib/a2a.rb', line 83

def self.from_json_rpc_error(hash)
  (CODE_MAP[hash["code"]] || Error).new(
    hash["message"] || "unknown A2A error",
    code: hash["code"],
    details: hash["data"]
  )
end