Class: A2A::Server::AgentExecution::RequestContext
- Inherits:
-
Object
- Object
- A2A::Server::AgentExecution::RequestContext
- Defined in:
- lib/a2a/server/agent_execution/request_context.rb
Overview
Request context for agent execution
Contains all the information needed for an agent to process a request, including the message, task ID, context ID, and server call context.
Instance Attribute Summary collapse
-
#context_id ⇒ Object
readonly
Returns the value of attribute context_id.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#server_context ⇒ Object
readonly
Returns the value of attribute server_context.
-
#task_id ⇒ Object
readonly
Returns the value of attribute task_id.
Instance Method Summary collapse
-
#authenticated? ⇒ Boolean
Check if the request is authenticated.
-
#authentication(scheme) ⇒ Object?
Get authentication data for a specific scheme.
-
#continuing_task? ⇒ Boolean
Check if this is continuing an existing task.
-
#get_metadata(key) ⇒ Object?
Get metadata value.
-
#has_message? ⇒ Boolean
Check if this request has a message.
-
#initialize(message: nil, task_id: nil, context_id: nil, server_context: nil, metadata: {}) ⇒ RequestContext
constructor
Initialize a new request context.
-
#new_task? ⇒ Boolean
Check if this is a new task (no task_id provided).
-
#set_metadata(key, value) ⇒ Object
Set metadata value.
-
#to_h ⇒ Hash
Convert to hash representation.
-
#user ⇒ Object?
Get the user from the server context if available.
-
#with(**changes) ⇒ RequestContext
Create a copy of this context with modifications.
Constructor Details
#initialize(message: nil, task_id: nil, context_id: nil, server_context: nil, metadata: {}) ⇒ RequestContext
Initialize a new request context
23 24 25 26 27 28 29 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 23 def initialize(message: nil, task_id: nil, context_id: nil, server_context: nil, metadata: {}) = @task_id = task_id @context_id = context_id || &.context_id @server_context = server_context = .dup end |
Instance Attribute Details
#context_id ⇒ Object (readonly)
Returns the value of attribute context_id.
13 14 15 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 13 def context_id @context_id end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
13 14 15 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 13 def end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
13 14 15 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 13 def end |
#server_context ⇒ Object (readonly)
Returns the value of attribute server_context.
13 14 15 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 13 def server_context @server_context end |
#task_id ⇒ Object (readonly)
Returns the value of attribute task_id.
13 14 15 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 13 def task_id @task_id end |
Instance Method Details
#authenticated? ⇒ Boolean
Check if the request is authenticated
67 68 69 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 67 def authenticated? @server_context&.authenticated? || false end |
#authentication(scheme) ⇒ Object?
Get authentication data for a specific scheme
76 77 78 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 76 def authentication(scheme) @server_context&.get_authentication(scheme) end |
#continuing_task? ⇒ Boolean
Check if this is continuing an existing task
43 44 45 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 43 def continuing_task? !@task_id.nil? end |
#get_metadata(key) ⇒ Object?
Get metadata value
85 86 87 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 85 def (key) [key] || @server_context&.(key) end |
#has_message? ⇒ Boolean
Check if this request has a message
51 52 53 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 51 def !.nil? end |
#new_task? ⇒ Boolean
Check if this is a new task (no task_id provided)
35 36 37 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 35 def new_task? @task_id.nil? end |
#set_metadata(key, value) ⇒ Object
Set metadata value
94 95 96 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 94 def (key, value) [key] = value end |
#to_h ⇒ Hash
Convert to hash representation
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 102 def to_h { message: &.to_h, task_id: @task_id, context_id: @context_id, metadata: , authenticated: authenticated?, user: user&.to_s } end |
#user ⇒ Object?
Get the user from the server context if available
59 60 61 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 59 def user @server_context&.user end |
#with(**changes) ⇒ RequestContext
Create a copy of this context with modifications
118 119 120 121 122 123 124 125 126 |
# File 'lib/a2a/server/agent_execution/request_context.rb', line 118 def with(**changes) RequestContext.new( message: changes[:message] || , task_id: changes[:task_id] || @task_id, context_id: changes[:context_id] || @context_id, server_context: changes[:server_context] || @server_context, metadata: .merge(changes[:metadata] || {}) ) end |