Module: A2A::Client::ApiMethods

Included in:
HttpClient
Defined in:
lib/a2a/client/api_methods.rb

Overview

API methods for A2A HTTP client

Instance Method Summary collapse

Instance Method Details

#cancel_task(task_id, context: nil) ⇒ Task

Cancel a task

Parameters:

  • The task ID to cancel

  • (defaults to: nil)

    Optional context information

Returns:

  • The updated task



50
51
52
53
54
55
56
57
# File 'lib/a2a/client/api_methods.rb', line 50

def cancel_task(task_id, context: nil)
  request = build_json_rpc_request("tasks/cancel", { id: task_id })
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  ensure_task(response["result"])
end

#delete_task_callback(task_id, push_notification_config_id, context: nil) ⇒ Boolean

Delete a task callback (deprecated - use delete_task_push_notification_config)

Parameters:

  • The task ID

  • The config ID

  • (defaults to: nil)

    Optional context information

Returns:

  • Success status



168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/a2a/client/api_methods.rb', line 168

def delete_task_callback(task_id, push_notification_config_id, context: nil)
  params = {
    taskId: task_id,
    pushNotificationConfigId: push_notification_config_id
  }

  request = build_json_rpc_request("tasks/pushNotificationConfig/delete", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#delete_task_push_notification_config(task_id, config_id, context: nil) ⇒ Boolean

Delete a push notification config for a task

Parameters:

  • The task ID

  • The config ID

  • (defaults to: nil)

    Optional context information

Returns:

  • Success status



248
249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/a2a/client/api_methods.rb', line 248

def delete_task_push_notification_config(task_id, config_id, context: nil)
  params = {
    taskId: task_id,
    pushNotificationConfigId: config_id
  }

  request = build_json_rpc_request("tasks/pushNotificationConfig/delete", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#get_card(context: nil, authenticated: false) ⇒ AgentCard

Get the agent card

Parameters:

  • (defaults to: nil)

    Optional context information

  • (defaults to: false)

    Whether to get authenticated extended card

Returns:

  • The agent card



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/a2a/client/api_methods.rb', line 65

def get_card(context: nil, authenticated: false)
  if authenticated
    request = build_json_rpc_request("agent/getAuthenticatedExtendedCard", {})
    response = execute_with_middleware(request, context || {}) do |req, _ctx|
      send_json_rpc_request(req)
    end
    ensure_agent_card(response["result"])
  else
    # Use HTTP GET for basic agent card
    response = execute_with_middleware({}, context || {}) do |_req, _ctx|
      @connection.get("/agent-card") do |request|
        request.headers.merge!(@config.all_headers)
      end
    end

    raise A2A::Errors::HTTPError, "HTTP #{response.status}: #{response.body}" unless response.success?

    ensure_agent_card(JSON.parse(response.body))

  end
end

#get_task(task_id, context: nil, history_length: nil) ⇒ Task

Get a task by ID

Parameters:

  • The task ID

  • (defaults to: nil)

    Optional context information

  • (defaults to: nil)

    Maximum number of history messages to include

Returns:

  • The task



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/a2a/client/api_methods.rb', line 32

def get_task(task_id, context: nil, history_length: nil)
  params = { id: task_id }
  params[:historyLength] = history_length if history_length

  request = build_json_rpc_request("tasks/get", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  ensure_task(response["result"])
end

#get_task_callback(task_id, push_notification_config_id, context: nil) ⇒ Hash

Get a task callback (deprecated - use get_task_push_notification_config)

Parameters:

  • The task ID

  • The config ID

  • (defaults to: nil)

    Optional context information

Returns:

  • The configuration



130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/a2a/client/api_methods.rb', line 130

def get_task_callback(task_id, push_notification_config_id, context: nil)
  params = {
    taskId: task_id,
    pushNotificationConfigId: push_notification_config_id
  }

  request = build_json_rpc_request("tasks/pushNotificationConfig/get", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#get_task_push_notification_config(task_id, config_id, context: nil) ⇒ Hash

Get a push notification config for a task

Parameters:

  • The task ID

  • The config ID

  • (defaults to: nil)

    Optional context information

Returns:

  • The configuration



210
211
212
213
214
215
216
217
218
219
220
221
222
# File 'lib/a2a/client/api_methods.rb', line 210

def get_task_push_notification_config(task_id, config_id, context: nil)
  params = {
    taskId: task_id,
    pushNotificationConfigId: config_id
  }

  request = build_json_rpc_request("tasks/pushNotificationConfig/get", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#list_task_callbacks(task_id, context: nil) ⇒ Array

List task callbacks (deprecated - use list_task_push_notification_configs)

Parameters:

  • The task ID

  • (defaults to: nil)

    Optional context information

Returns:

  • List of configurations



150
151
152
153
154
155
156
157
158
159
# File 'lib/a2a/client/api_methods.rb', line 150

def list_task_callbacks(task_id, context: nil)
  params = { taskId: task_id }

  request = build_json_rpc_request("tasks/pushNotificationConfig/list", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#list_task_push_notification_configs(task_id, context: nil) ⇒ Array

List push notification configs for a task

Parameters:

  • The task ID

  • (defaults to: nil)

    Optional context information

Returns:

  • List of configurations



230
231
232
233
234
235
236
237
238
239
# File 'lib/a2a/client/api_methods.rb', line 230

def list_task_push_notification_configs(task_id, context: nil)
  params = { taskId: task_id }

  request = build_json_rpc_request("tasks/pushNotificationConfig/list", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#resubscribe(task_id, context: nil) ⇒ Task

Resubscribe to a task

Parameters:

  • The task ID to resubscribe to

  • (defaults to: nil)

    Optional context information

Returns:

  • The task



93
94
95
96
97
98
99
100
# File 'lib/a2a/client/api_methods.rb', line 93

def resubscribe(task_id, context: nil)
  request = build_json_rpc_request("tasks/resubscribe", { id: task_id })
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  ensure_task(response["result"])
end

#send_message(message, context: nil) ⇒ Enumerator, Message

Send a message to the agent

Parameters:

  • The message to send

  • (defaults to: nil)

    Optional context information

Returns:

  • Stream of responses or single response



15
16
17
18
19
20
21
22
23
# File 'lib/a2a/client/api_methods.rb', line 15

def send_message(message, context: nil)
  message = ensure_message(message)

  if @config.streaming?
    send_streaming_message(message, context)
  else
    send_sync_message(message, context)
  end
end

#set_task_callback(task_id, push_notification_config, context: nil) ⇒ Hash

Set a task callback (deprecated - use set_task_push_notification_config)

Parameters:

  • The task ID

  • The push notification configuration

  • (defaults to: nil)

    Optional context information

Returns:

  • The response



109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/a2a/client/api_methods.rb', line 109

def set_task_callback(task_id, push_notification_config, context: nil)
  params = {
    taskId: task_id,
    pushNotificationConfig: push_notification_config
  }

  request = build_json_rpc_request("tasks/pushNotificationConfig/set", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end

#set_task_push_notification_config(task_id, config, context: nil) ⇒ Hash

Set a push notification config for a task

Parameters:

  • The task ID

  • The push notification configuration

  • (defaults to: nil)

    Optional context information

Returns:

  • The response



189
190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/a2a/client/api_methods.rb', line 189

def set_task_push_notification_config(task_id, config, context: nil)
  params = {
    taskId: task_id,
    pushNotificationConfig: config
  }

  request = build_json_rpc_request("tasks/pushNotificationConfig/set", params)
  response = execute_with_middleware(request, context || {}) do |req, _ctx|
    send_json_rpc_request(req)
  end

  response["result"]
end