Skip to content

Commit bbe550d

Browse files
committed
feat: improve integration/a2a module
Signed-off-by: András Jáky <ajaky@cisco.com>
1 parent 29c1c5c commit bbe550d

6 files changed

Lines changed: 167 additions & 45 deletions

File tree

schema/dictionary.json

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@
44
"name": "dictionary",
55
"attributes": {
66
"a2a_capabilities": {
7-
"caption": "Capabilities",
8-
"description": "List of capabilities supported by the agent for A2A communication.",
9-
"type": "string_t",
10-
"is_array": true,
11-
"enum": {
12-
"push_notifications": {
13-
"caption": "Push Notifications",
14-
"description": "Indicates whether the agent supports push notifications for A2A communication."
15-
},
16-
"streaming": {
17-
"caption": "Streaming",
18-
"description": "Indicates whether the agent supports streaming for A2A communication."
19-
},
20-
"state_transition_history": {
21-
"caption": "State Transition History",
22-
"description": "Indicates whether the agent supports state transition history for A2A communication."
23-
}
24-
}
7+
"caption": "A2A Capabilities",
8+
"description": "Defines optional capabilities supported by an A2A agent.",
9+
"type": "a2a_capabilities"
10+
},
11+
"a2a_capability_push_notifications": {
12+
"caption": "Push Notifications Capability",
13+
"description": "Indicates if the agent supports sending push notifications for asynchronous task updates.",
14+
"type": "boolean_t"
15+
},
16+
"a2a_capability_state_transition_history": {
17+
"caption": "State Transition History Capability",
18+
"description": "Indicates if the agent provides a history of state transitions for a task.",
19+
"type": "boolean_t"
20+
},
21+
"a2a_capability_streaming": {
22+
"caption": "Streaming Capability",
23+
"description": "Indicates if the agent supports streaming responses.",
24+
"type": "boolean_t"
2525
},
2626
"a2a_card_data": {
2727
"caption": "A2A Agent Card Data",
@@ -70,11 +70,32 @@
7070
}
7171
}
7272
},
73+
"a2a_protocol_binding": {
74+
"caption": "Protocol Binding",
75+
"description": "The protocol binding used by an A2A interface (e.g., 'http+json', 'grpc').",
76+
"type": "string_t"
77+
},
7378
"a2a_protocol_version": {
7479
"caption": "Protocol Version",
7580
"description": "Version of the A2A protocol used by the agent.",
7681
"type": "string_t"
7782
},
83+
"a2a_provider": {
84+
"caption": "Provider Information",
85+
"description": "Information about the A2A agent provider including organization, URL, and extensions.",
86+
"type": "a2a_provider"
87+
},
88+
"a2a_provider_extensions": {
89+
"caption": "Provider Extensions",
90+
"description": "List of provider extensions for A2A protocol capability discovery.",
91+
"type": "a2a_provider_extension",
92+
"is_array": true
93+
},
94+
"a2a_provider_organization": {
95+
"caption": "Provider Organization",
96+
"description": "Name of the A2A provider organization.",
97+
"type": "string_t"
98+
},
7899
"a2a_security_schemes": {
79100
"caption": "Supported Security Schemes",
80101
"description": "Supported security schemes for A2A communication.",
@@ -107,25 +128,16 @@
107128
}
108129
}
109130
},
110-
"a2a_supported_transports": {
111-
"caption": "Supported Transports",
112-
"description": "Supported transport protocols for A2A communication.",
113-
"type": "string_t",
114-
"is_array": true,
115-
"enum": {
116-
"jsonrpc": {
117-
"caption": "JSONRPC",
118-
"description": "JSON-RPC transport protocol for A2A communication."
119-
},
120-
"grpc": {
121-
"caption": "GRPC",
122-
"description": "gRPC transport protocol for A2A communication."
123-
},
124-
"http": {
125-
"caption": "HTTP+JS",
126-
"description": "HTTP transport protocol for A2A communication."
127-
}
128-
}
131+
"a2a_supported_interfaces": {
132+
"caption": "Supported Interfaces",
133+
"description": "List of supported interfaces for A2A communication with URLs and protocol bindings.",
134+
"type": "a2a_supported_interface",
135+
"is_array": true
136+
},
137+
"a2a_supports_authenticated_extended_card": {
138+
"caption": "Supports Authenticated Extended Card",
139+
"description": "Indicates whether the A2A agent supports authenticated extended card retrieval.",
140+
"type": "boolean_t"
129141
},
130142
"acp_agent": {
131143
"caption": "Agent Connect Protocol Specs",
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"caption": "A2A Capabilities",
3+
"description": "Defines optional capabilities supported by an A2A agent.",
4+
"extends": "object",
5+
"name": "a2a_capabilities",
6+
"attributes": {
7+
"streaming": {
8+
"reference": "a2a_capability_streaming",
9+
"caption": "Streaming",
10+
"description": "Indicates if the agent supports streaming responses.",
11+
"requirement": "optional"
12+
},
13+
"push_notifications": {
14+
"reference": "a2a_capability_push_notifications",
15+
"caption": "Push Notifications",
16+
"description": "Indicates if the agent supports sending push notifications for asynchronous task updates.",
17+
"requirement": "optional"
18+
},
19+
"extensions": {
20+
"reference": "a2a_provider_extensions",
21+
"caption": "Extensions",
22+
"description": "List of protocol extensions supported by the agent.",
23+
"requirement": "optional"
24+
},
25+
"state_transition_history": {
26+
"reference": "a2a_capability_state_transition_history",
27+
"caption": "State Transition History",
28+
"description": "Indicates if the agent provides a history of state transitions for a task.",
29+
"requirement": "optional"
30+
}
31+
}
32+
}

schema/objects/a2a_data.json

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
"requirement": "required",
1818
"references": [
1919
{
20-
"description": "A2A Card Data Schema",
21-
"url": "https://github.com/google-a2a/A2A/blob/main/docs/specification.md#55-agentcard-object-structure"
20+
"description": "A2A AgentCard Proto Message",
21+
"url": "https://github.com/google-a2a/A2A/blob/main/specification/grpc/a2a.proto"
2222
}
2323
]
2424
},
@@ -28,12 +28,6 @@
2828
"description": "List of capabilities supported by the agent for A2A communication.",
2929
"requirement": "optional"
3030
},
31-
"transports": {
32-
"reference": "a2a_supported_transports",
33-
"caption": "Supported Transports",
34-
"description": "Supported transport protocols for A2A communication.",
35-
"requirement": "optional"
36-
},
3731
"input_modes": {
3832
"reference": "a2a_input_modes",
3933
"caption": "Supported Input Modes",
@@ -51,6 +45,24 @@
5145
"caption": "Supported Security Schemes",
5246
"description": "Supported security schemes for A2A communication.",
5347
"requirement": "optional"
48+
},
49+
"supported_interfaces": {
50+
"reference": "a2a_supported_interfaces",
51+
"caption": "Supported Interfaces",
52+
"description": "List of supported interfaces with URLs and protocol bindings for routing and protocol negotiation.",
53+
"requirement": "optional"
54+
},
55+
"provider": {
56+
"reference": "a2a_provider",
57+
"caption": "Provider Information",
58+
"description": "Information about the provider including organization and protocol extensions.",
59+
"requirement": "optional"
60+
},
61+
"supports_authenticated_extended_card": {
62+
"reference": "a2a_supports_authenticated_extended_card",
63+
"caption": "Supports Authenticated Extended Card",
64+
"description": "Indicates whether the agent supports authenticated extended card retrieval.",
65+
"requirement": "optional"
5466
}
5567
}
5668
}

schema/objects/a2a_provider.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"caption": "A2A Provider",
3+
"description": "Information about the A2A agent provider.",
4+
"extends": "object",
5+
"name": "a2a_provider",
6+
"attributes": {
7+
"organization": {
8+
"reference": "a2a_provider_organization",
9+
"caption": "Organization",
10+
"description": "Name of the provider organization.",
11+
"requirement": "optional"
12+
},
13+
"extensions": {
14+
"reference": "a2a_provider_extensions",
15+
"caption": "Extensions",
16+
"description": "List of provider extensions for protocol capability discovery.",
17+
"requirement": "optional"
18+
}
19+
}
20+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"caption": "A2A Provider Extension",
3+
"description": "Describes a provider extension for A2A protocol capability discovery.",
4+
"extends": "object",
5+
"name": "a2a_provider_extension",
6+
"attributes": {
7+
"uri": {
8+
"reference": "uri",
9+
"caption": "Extension URI",
10+
"description": "URI identifier for the extension.",
11+
"requirement": "required"
12+
},
13+
"description": {
14+
"reference": "description",
15+
"caption": "Description",
16+
"description": "Description of the extension.",
17+
"requirement": "optional"
18+
},
19+
"required": {
20+
"reference": "required",
21+
"caption": "Required",
22+
"description": "Indicates whether this extension is required.",
23+
"requirement": "optional"
24+
}
25+
}
26+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"caption": "A2A Supported Interface",
3+
"description": "Describes a supported interface for A2A communication.",
4+
"extends": "object",
5+
"name": "a2a_supported_interface",
6+
"attributes": {
7+
"url": {
8+
"reference": "url",
9+
"caption": "Interface URL",
10+
"description": "URL of the interface endpoint.",
11+
"requirement": "required"
12+
},
13+
"protocol_binding": {
14+
"reference": "a2a_protocol_binding",
15+
"caption": "Protocol Binding",
16+
"description": "The protocol binding used by this interface (e.g., 'http+json', 'grpc').",
17+
"requirement": "optional"
18+
}
19+
}
20+
}

0 commit comments

Comments
 (0)