Module: A2A::JSONRPCEnvelope
- Defined in:
- lib/a2a/json_rpc_envelope.rb
Class Method Summary collapse
-
.error(id:, error:) ⇒ Object
Builds an error response envelope from an A2A::Error or any StandardError.
-
.parse_request(hash) ⇒ Object
Parses the JSON-RPC id and method from a raw request hash.
-
.success(id:, result:) ⇒ Object
Builds a success response envelope.
Class Method Details
.error(id:, error:) ⇒ Object
Builds an error response envelope from an A2A::Error or any StandardError. If the error carries a numeric code it is used directly; otherwise falls back to -32603 (InternalError).
13 14 15 16 17 18 19 20 |
# File 'lib/a2a/json_rpc_envelope.rb', line 13 def self.error(id:, error:) code = error.respond_to?(:code) && error.code ? error.code : -32603 { "jsonrpc" => "2.0", "id" => id, "error" => { "code" => code, "message" => error. } } end |
.parse_request(hash) ⇒ Object
Parses the JSON-RPC id and method from a raw request hash.
23 24 25 26 27 28 29 30 |
# File 'lib/a2a/json_rpc_envelope.rb', line 23 def self.parse_request(hash) id = hash["id"] method = hash["method"] params = hash["params"] || {} raise InvalidRequestError, "missing method" unless method [id, method, params] end |
.success(id:, result:) ⇒ Object
Builds a success response envelope.
6 7 8 |
# File 'lib/a2a/json_rpc_envelope.rb', line 6 def self.success(id:, result:) { "jsonrpc" => "2.0", "id" => id, "result" => result } end |