Class: A2A::Server::AgentExecution::RequestContextBuilder
- Inherits:
-
Object
- Object
- A2A::Server::AgentExecution::RequestContextBuilder
- Defined in:
- lib/a2a/server/agent_execution/request_context.rb
Overview
Builder for creating request contexts from various inputs
Provides a convenient way to build RequestContext objects from different types of input (JSON-RPC requests, HTTP requests, etc.)
Class Method Summary collapse
-
.from_message_send(params, server_context = nil) ⇒ RequestContext
Build a request context from a message send request.
-
.from_streaming_message(params, server_context = nil) ⇒ RequestContext
Build a request context from a streaming message request.
-
.from_task_operation(params, server_context = nil, operation: "get") ⇒ RequestContext
Build a request context from a task operation request.
-
.from_task_resubscription(params, server_context = nil) ⇒ RequestContext
Build a request context from a task resubscription request.
Class Method Details
.from_message_send(params, server_context = nil) ⇒ RequestContext
Build a request context from a message send request
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 142 def self.(params, server_context = nil) = params["message"] || params[:message] task_id = params["taskId"] || params[:task_id] context_id = params["contextId"] || params[:context_id] = if .is_a?(A2A::Types::Message) elsif .is_a?(Hash) A2A::Types::Message.from_h() else nil end # Extract context_id from message if not provided in params context_id ||= &.context_id RequestContext.new( message: , task_id: task_id, context_id: context_id, server_context: server_context, metadata: { request_type: "message_send", params: params } ) end |
.from_streaming_message(params, server_context = nil) ⇒ RequestContext
Build a request context from a streaming message request
198 199 200 201 202 203 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 198 def self.(params, server_context = nil) context = (params, server_context) context.(:streaming, true) context.(:request_type, "message_stream") context end |
.from_task_operation(params, server_context = nil, operation: "get") ⇒ RequestContext
Build a request context from a task operation request
177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 177 def self.from_task_operation(params, server_context = nil, operation: "get") task_id = params["id"] || params[:id] || params["taskId"] || params[:task_id] context_id = params["contextId"] || params[:context_id] RequestContext.new( task_id: task_id, context_id: context_id, server_context: server_context, metadata: { request_type: "task_#{operation}", params: params } ) end |
.from_task_resubscription(params, server_context = nil) ⇒ RequestContext
Build a request context from a task resubscription request
211 212 213 214 215 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 211 def self.from_task_resubscription(params, server_context = nil) context = from_task_operation(params, server_context, operation: "resubscribe") context.(:streaming, true) context end |