Module: A2A::Discovery

Defined in:
lib/a2a/discovery.rb

Defined Under Namespace

Classes: Transport

Constant Summary collapse

WELL_KNOWN_PATH =
"/.well-known/agent-card.json"

Class Method Summary collapse

Class Method Details

.fetch(base_url, transport: Transport.new) ⇒ Object

§8.2, §14.3 — fetches the public AgentCard from /.well-known/a2a. No authentication required.



13
14
15
16
# File 'lib/a2a/discovery.rb', line 13

def self.fetch(base_url, transport: Transport.new)
  url = "#{base_url.chomp('/')}#{WELL_KNOWN_PATH}"
  AgentCard.from_h(transport.get(url))
end

.fetch_extended(base_url, headers: {}, extensions: [], transport: Transport.new) ⇒ Object

§8.6.2 — fetches the public card, then calls GetExtendedAgentCard. The public card must declare capabilities.extendedAgentCard: true.



20
21
22
23
24
# File 'lib/a2a/discovery.rb', line 20

def self.fetch_extended(base_url, headers: {}, extensions: [], transport: Transport.new)
  card = fetch(base_url, transport: transport)
  Client.from_agent_card(card, headers: headers, extensions: extensions)
        .get_extended_agent_card
end