NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
neograph::a2a::AgentCard Struct Reference

Subset of AgentCard required to interact (spec §5.5). More...

#include <types.h>

Public Attributes

bool extended_card = false
 The authenticated extended card is not implemented by A2AServer: the server always declares it unsupported, whatever these fields say.
 
json extensions
 capabilities.extensions (both versions): an array of AgentExtension objects {uri, description, required, params}.
 
std::string protocol_version
 The 0.3 card's protocolVersion; A2AServer always serves "0.3.0" in the 0.3 card and 1.0 interfaces in the 1.0 card.
 
bool push_notifications = false
 Push notifications are not implemented by A2AServer: the server always declares them unsupported, whatever this field says.
 
json raw
 Full original document as received. Preserves fields we don't yet model.
 
json security_requirements
 1.0 securityRequirements: an array of {"schemes": {"<name>": {"list": [<scope>...]}}}.
 
json security_schemes
 1.0 securitySchemes: an object mapping a scheme name to a 1.0 SecurityScheme in ProtoJSON form, e.g.
 
std::vector< std::string > skill_names
 Parsed skill ids.
 
std::vector< AgentSkill > skills
 Full skill objects (parsed, or set by a server).
 
bool streaming = true
 A2AServer supports streaming (SendStreamingMessage, SubscribeToTask) unless this is false; then those methods answer UnsupportedOperationError (-32004).
 
std::vector< AgentInterface > supported_interfaces
 1.0 supportedInterfaces in card order (preferred first).
 
std::string url
 Public endpoint of the JSON-RPC binding.
 

Detailed Description

Subset of AgentCard required to interact (spec §5.5).

We deserialise only fields the client actually consumes; unknown fields are kept verbatim in raw for forward-compat.

A2AServer serves one card per protocol version (see to_json(json&, const AgentCard&, WireDialect)): a GET with A2A-Version: 1.0 receives the pure 1.0 card; a GET without the header (spec §3.6.2: 0.3) receives the 0.3 card, which also lists the 1.0 interface in supportedInterfaces.

Definition at line 222 of file types.h.

Member Data Documentation

◆ extensions

json neograph::a2a::AgentCard::extensions

capabilities.extensions (both versions): an array of AgentExtension objects {uri, description, required, params}.

Null when none. A server that accepts NeoGraph collaboration envelopes adds COLLABORATION_EXTENSION_URI (collaboration.h).

Definition at line 276 of file types.h.

◆ security_requirements

json neograph::a2a::AgentCard::security_requirements

1.0 securityRequirements: an array of {"schemes": {"<name>": {"list": [<scope>...]}}}.

Null when none.

Definition at line 271 of file types.h.

◆ security_schemes

json neograph::a2a::AgentCard::security_schemes

1.0 securitySchemes: an object mapping a scheme name to a 1.0 SecurityScheme in ProtoJSON form, e.g.

{"bearer": {"httpAuthSecurityScheme": {"scheme": "Bearer"}}}. The 0.3 card carries the equivalent 0.3 form. Null when none.

Definition at line 268 of file types.h.

◆ skill_names

std::vector<std::string> neograph::a2a::AgentCard::skill_names

Parsed skill ids.

A card built in code may list only ids here; the serialised skill then uses the id as its name and only tag.

Definition at line 259 of file types.h.

◆ skills

std::vector<AgentSkill> neograph::a2a::AgentCard::skills

Full skill objects (parsed, or set by a server).

Take precedence over skill_names when serialising.

Definition at line 262 of file types.h.

◆ supported_interfaces

std::vector<AgentInterface> neograph::a2a::AgentCard::supported_interfaces

1.0 supportedInterfaces in card order (preferred first).

For 0.3 cards, the primary url/preferredTransport is first and any additionalInterfaces follow, all with the card's protocolVersion.

Definition at line 255 of file types.h.

◆ url

std::string neograph::a2a::AgentCard::url

Public endpoint of the JSON-RPC binding.

Empty on a server card: the server then advertises the address the client used (the request's Host, http scheme), or its bound address; set it behind a TLS-terminating proxy (or see A2AServer::set_trust_forwarded_headers). The 0.3 JSON of a card with no url takes the first interface of the preferred transport, else leaves the member out.

Definition at line 231 of file types.h.


The documentation for this struct was generated from the following file: