@bluefly/openstandardagents 0.4.9 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.version.json +3 -3
- package/CHANGELOG.md +8 -8
- package/README.md +68 -58
- package/bin/postinstall +0 -0
- package/dist/.version.json +3 -3
- package/dist/adapters/claude-code/adapter.js +2 -2
- package/dist/adapters/docker/generators.js +19 -19
- package/dist/adapters/drupal/generator.js +76 -76
- package/dist/adapters/openai-agents/adapter.js +2 -2
- package/dist/cli/schema-driven/schema-loader.js +5 -5
- package/dist/mcp-server/__tests__/mcp-server.spec.js +20 -11
- package/dist/mcp-server/index.js +0 -0
- package/dist/package.json +24 -11
- package/dist/services/export/langchain/langchain-exporter.js +2 -2
- package/dist/services/export/langchain/memory-generator.js +2 -2
- package/dist/services/export/testing/test-generator.js +1 -1
- package/dist/services/taxonomy-service.d.ts +3 -3
- package/dist/skills/test-skill/package.json +1 -1
- package/dist/spec/extensions/role-manifest.md +188 -0
- package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/agent.schema.json +2 -1
- package/dist/spec/v0.5/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/role.schema.json +268 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/role.d.ts +126 -0
- package/dist/types/role.js +38 -0
- package/dist/validation/validator.js +1 -1
- package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
- package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/agents/security-audit-agent.ossa.yaml +234 -0
- package/examples/agentscope/react-assistant/agent.ossa.yaml +36 -32
- package/examples/drupal/content-moderator.ossa.yaml +2 -2
- package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
- package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
- package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
- package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
- package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
- package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
- package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
- package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
- package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
- package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
- package/examples/getting-started/README.md +3 -3
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
- package/examples/hierarchical-agent.ossa.yaml +10 -53
- package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
- package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
- package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
- package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
- package/examples/pipeline-agent.ossa.yaml +3 -3
- package/examples/platform-specific/claude-code-subagent.yaml +1 -1
- package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
- package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
- package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
- package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/reference-implementations/python-client/examples/basic_usage.py +0 -0
- package/examples/reference-implementations/python-client/examples/publish_agent.py +0 -0
- package/examples/roles/drupal-developer.role.yaml +37 -0
- package/examples/roles/platform-operator.role.yaml +28 -0
- package/examples/roles/security-auditor.role.yaml +27 -0
- package/examples/swarm-agent.ossa.yaml +13 -51
- package/examples/team-agent.ossa.yaml +12 -61
- package/examples/team-lead-teammate.ossa.yaml +12 -17
- package/openapi/agent-communication.yaml +260 -212
- package/openapi/agent-crud.yaml +217 -187
- package/openapi/agent-discovery.yaml +119 -81
- package/openapi/agent-identity.yaml +219 -187
- package/openapi/agent-taxonomy.yaml +95 -38
- package/openapi/agents-md-service.yaml +103 -30
- package/openapi/cli/openapi.yaml +147 -40
- package/openapi/core/ossa-core-api.openapi.yaml +327 -271
- package/openapi/core/ossa-registry-api.openapi.yaml +298 -235
- package/openapi/core/ossa-registry.openapi.yaml +299 -159
- package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
- package/openapi/daemon-api.openapi.yaml +323 -181
- package/openapi/dev-cli/openapi.yaml +137 -113
- package/openapi/github-sync.yaml +62 -19
- package/openapi/marketplace-plugin.openapi.yaml +539 -466
- package/openapi/ossa-api.openapi.yaml +354 -213
- package/openapi/ossa-cli-enhancements.openapi.yaml +108 -89
- package/openapi/ossa-cli.yaml +260 -184
- package/openapi/protocols/sse-streams.yaml +66 -74
- package/openapi/protocols/websocket-events.yaml +61 -54
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
- package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
- package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
- package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
- package/openapi/release-automation.openapi.yaml +47 -13
- package/openapi/schemas/common/agent.yaml +30 -29
- package/openapi/schemas/common/errors.yaml +13 -3
- package/openapi/schemas/common/metadata.yaml +22 -7
- package/openapi/schemas/common/pagination.yaml +18 -6
- package/openapi/schemas/common/security.yaml +13 -5
- package/openapi/schemas/index.yaml +49 -42
- package/openapi/uadp-asyncapi.yaml +4 -2
- package/openapi/uadp-openapi.yaml +243 -165
- package/openapi/version-management.openapi.yaml +142 -135
- package/package.json +114 -103
- package/spec/extensions/role-manifest.md +188 -0
- package/spec/v0.4/extensions/mcp/README.md +1 -1
- package/spec/v0.5/agent.schema.json +2 -1
- package/spec/v0.5/extensions/mcp/README.md +1 -1
- package/spec/v0.5/role.schema.json +268 -0
|
@@ -21,14 +21,12 @@ info:
|
|
|
21
21
|
2. **Task Completion**: Worker → Orchestrator (TaskCompleted)
|
|
22
22
|
3. **Query/Response**: Agent A ↔ Agent B (QueryRequest/QueryResponse)
|
|
23
23
|
4. **Broadcast**: Publisher → Channel → Subscribers
|
|
24
|
-
|
|
25
24
|
contact:
|
|
26
25
|
name: Bluefly.io LLM Platform Team
|
|
27
26
|
url: https://github.com/blueflyio/openstandardagents
|
|
28
27
|
license:
|
|
29
28
|
name: MIT
|
|
30
29
|
url: https://opensource.org/licenses/MIT
|
|
31
|
-
|
|
32
30
|
servers:
|
|
33
31
|
- url: https://a2a.llm.bluefly.io/v1
|
|
34
32
|
description: Production A2A server
|
|
@@ -36,14 +34,11 @@ servers:
|
|
|
36
34
|
description: Development A2A server
|
|
37
35
|
- url: http://localhost:3100
|
|
38
36
|
description: Local development
|
|
39
|
-
|
|
40
37
|
security:
|
|
41
38
|
- ApiKeyAuth: []
|
|
42
39
|
- BearerAuth: []
|
|
43
40
|
- AgentMTLS: []
|
|
44
|
-
|
|
45
41
|
paths:
|
|
46
|
-
# Direct Messaging
|
|
47
42
|
/messages:
|
|
48
43
|
post:
|
|
49
44
|
summary: Send message to agent
|
|
@@ -53,14 +48,15 @@ paths:
|
|
|
53
48
|
|
|
54
49
|
For async delivery, use webhookUrl in the request. The response will be
|
|
55
50
|
delivered to the webhook endpoint when available.
|
|
56
|
-
tags:
|
|
51
|
+
tags:
|
|
52
|
+
- Messaging
|
|
57
53
|
operationId: sendMessage
|
|
58
54
|
requestBody:
|
|
59
55
|
required: true
|
|
60
56
|
content:
|
|
61
57
|
application/json:
|
|
62
58
|
schema:
|
|
63
|
-
$ref:
|
|
59
|
+
$ref: "#/components/schemas/SendMessageRequest"
|
|
64
60
|
examples:
|
|
65
61
|
taskAssignment:
|
|
66
62
|
summary: Assign task to worker
|
|
@@ -82,37 +78,41 @@ paths:
|
|
|
82
78
|
from: uadp://worker-002
|
|
83
79
|
type: QueryRequest
|
|
84
80
|
payload:
|
|
85
|
-
query:
|
|
81
|
+
query: Extract entities from text
|
|
86
82
|
context:
|
|
87
|
-
text:
|
|
83
|
+
text: Apple Inc. is headquartered in Cupertino, California.
|
|
88
84
|
timeout: 30000
|
|
89
85
|
responses:
|
|
90
|
-
|
|
86
|
+
"202":
|
|
91
87
|
description: Message accepted for delivery
|
|
92
88
|
content:
|
|
93
89
|
application/json:
|
|
94
90
|
schema:
|
|
95
|
-
$ref:
|
|
96
|
-
|
|
97
|
-
$ref:
|
|
98
|
-
|
|
99
|
-
$ref:
|
|
100
|
-
|
|
91
|
+
$ref: "#/components/schemas/MessageResponse"
|
|
92
|
+
"400":
|
|
93
|
+
$ref: "#/components/responses/ValidationError"
|
|
94
|
+
"401":
|
|
95
|
+
$ref: "#/components/responses/Unauthorized"
|
|
96
|
+
"404":
|
|
101
97
|
description: Target agent not found
|
|
102
98
|
content:
|
|
103
99
|
application/problem+json:
|
|
104
100
|
schema:
|
|
105
|
-
$ref:
|
|
106
|
-
|
|
107
|
-
$ref:
|
|
108
|
-
|
|
101
|
+
$ref: "#/components/schemas/Problem"
|
|
102
|
+
"500":
|
|
103
|
+
$ref: "#/components/responses/InternalServerError"
|
|
104
|
+
x-ossa-capability: send-message
|
|
105
|
+
x-ossa-autonomy:
|
|
106
|
+
level: supervised
|
|
107
|
+
approval_required: true
|
|
109
108
|
/messages/{messageId}:
|
|
110
109
|
get:
|
|
111
110
|
summary: Get message status
|
|
112
111
|
description: |
|
|
113
112
|
Retrieve the delivery status and metadata for a previously sent message.
|
|
114
113
|
Includes delivery timestamps, acknowledgment status, and any errors.
|
|
115
|
-
tags:
|
|
114
|
+
tags:
|
|
115
|
+
- Messaging
|
|
116
116
|
operationId: getMessageStatus
|
|
117
117
|
parameters:
|
|
118
118
|
- name: messageId
|
|
@@ -123,24 +123,25 @@ paths:
|
|
|
123
123
|
type: string
|
|
124
124
|
format: uuid
|
|
125
125
|
responses:
|
|
126
|
-
|
|
126
|
+
"200":
|
|
127
127
|
description: Message status
|
|
128
128
|
content:
|
|
129
129
|
application/json:
|
|
130
130
|
schema:
|
|
131
|
-
$ref:
|
|
132
|
-
|
|
133
|
-
$ref:
|
|
134
|
-
|
|
135
|
-
$ref:
|
|
136
|
-
|
|
131
|
+
$ref: "#/components/schemas/Message"
|
|
132
|
+
"404":
|
|
133
|
+
$ref: "#/components/responses/NotFound"
|
|
134
|
+
"500":
|
|
135
|
+
$ref: "#/components/responses/InternalServerError"
|
|
136
|
+
x-ossa-capability: get-message-status
|
|
137
137
|
/messages/{messageId}/acknowledge:
|
|
138
138
|
post:
|
|
139
139
|
summary: Acknowledge message receipt
|
|
140
140
|
description: |
|
|
141
141
|
Acknowledge successful processing of a received message. Required for
|
|
142
142
|
at-least-once delivery guarantee. Unacknowledged messages may be redelivered.
|
|
143
|
-
tags:
|
|
143
|
+
tags:
|
|
144
|
+
- Messaging
|
|
144
145
|
operationId: acknowledgeMessage
|
|
145
146
|
parameters:
|
|
146
147
|
- name: messageId
|
|
@@ -157,25 +158,30 @@ paths:
|
|
|
157
158
|
properties:
|
|
158
159
|
result:
|
|
159
160
|
type: string
|
|
160
|
-
enum:
|
|
161
|
+
enum:
|
|
162
|
+
- success
|
|
163
|
+
- failure
|
|
161
164
|
default: success
|
|
162
165
|
error:
|
|
163
166
|
type: string
|
|
164
167
|
description: Error message if result is failure
|
|
165
168
|
responses:
|
|
166
|
-
|
|
169
|
+
"204":
|
|
167
170
|
description: Message acknowledged
|
|
168
|
-
|
|
169
|
-
$ref:
|
|
170
|
-
|
|
171
|
-
$ref:
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
"404":
|
|
172
|
+
$ref: "#/components/responses/NotFound"
|
|
173
|
+
"500":
|
|
174
|
+
$ref: "#/components/responses/InternalServerError"
|
|
175
|
+
x-ossa-capability: acknowledge-message
|
|
176
|
+
x-ossa-autonomy:
|
|
177
|
+
level: supervised
|
|
178
|
+
approval_required: true
|
|
174
179
|
/channels:
|
|
175
180
|
get:
|
|
176
181
|
summary: List available channels
|
|
177
182
|
description: List all communication channels the authenticated agent has access to
|
|
178
|
-
tags:
|
|
183
|
+
tags:
|
|
184
|
+
- Channels
|
|
179
185
|
operationId: listChannels
|
|
180
186
|
parameters:
|
|
181
187
|
- name: filter
|
|
@@ -183,31 +189,32 @@ paths:
|
|
|
183
189
|
description: Filter channels by type or topic
|
|
184
190
|
schema:
|
|
185
191
|
type: string
|
|
186
|
-
- $ref:
|
|
187
|
-
- $ref:
|
|
192
|
+
- $ref: "#/components/parameters/Limit"
|
|
193
|
+
- $ref: "#/components/parameters/Offset"
|
|
188
194
|
responses:
|
|
189
|
-
|
|
195
|
+
"200":
|
|
190
196
|
description: List of channels
|
|
191
197
|
content:
|
|
192
198
|
application/json:
|
|
193
199
|
schema:
|
|
194
|
-
$ref:
|
|
195
|
-
|
|
196
|
-
$ref:
|
|
197
|
-
|
|
200
|
+
$ref: "#/components/schemas/ChannelsList"
|
|
201
|
+
"500":
|
|
202
|
+
$ref: "#/components/responses/InternalServerError"
|
|
203
|
+
x-ossa-capability: list-channels
|
|
198
204
|
post:
|
|
199
205
|
summary: Create communication channel
|
|
200
206
|
description: |
|
|
201
207
|
Create a new pub/sub channel for message broadcasting. Channels enable
|
|
202
208
|
many-to-many communication between agents.
|
|
203
|
-
tags:
|
|
209
|
+
tags:
|
|
210
|
+
- Channels
|
|
204
211
|
operationId: createChannel
|
|
205
212
|
requestBody:
|
|
206
213
|
required: true
|
|
207
214
|
content:
|
|
208
215
|
application/json:
|
|
209
216
|
schema:
|
|
210
|
-
$ref:
|
|
217
|
+
$ref: "#/components/schemas/CreateChannelRequest"
|
|
211
218
|
examples:
|
|
212
219
|
taskUpdates:
|
|
213
220
|
summary: Task updates channel
|
|
@@ -227,74 +234,83 @@ paths:
|
|
|
227
234
|
retentionPolicy:
|
|
228
235
|
retentionDays: 30
|
|
229
236
|
responses:
|
|
230
|
-
|
|
237
|
+
"201":
|
|
231
238
|
description: Channel created
|
|
232
239
|
content:
|
|
233
240
|
application/json:
|
|
234
241
|
schema:
|
|
235
|
-
$ref:
|
|
236
|
-
|
|
237
|
-
$ref:
|
|
238
|
-
|
|
242
|
+
$ref: "#/components/schemas/Channel"
|
|
243
|
+
"400":
|
|
244
|
+
$ref: "#/components/responses/ValidationError"
|
|
245
|
+
"409":
|
|
239
246
|
description: Channel already exists
|
|
240
247
|
content:
|
|
241
248
|
application/problem+json:
|
|
242
249
|
schema:
|
|
243
|
-
$ref:
|
|
244
|
-
|
|
245
|
-
$ref:
|
|
246
|
-
|
|
250
|
+
$ref: "#/components/schemas/Problem"
|
|
251
|
+
"500":
|
|
252
|
+
$ref: "#/components/responses/InternalServerError"
|
|
253
|
+
x-ossa-capability: create-channel
|
|
254
|
+
x-ossa-autonomy:
|
|
255
|
+
level: supervised
|
|
256
|
+
approval_required: true
|
|
247
257
|
/channels/{channelId}:
|
|
248
258
|
get:
|
|
249
259
|
summary: Get channel details
|
|
250
260
|
description: Retrieve channel metadata, subscriber count, and configuration
|
|
251
|
-
tags:
|
|
261
|
+
tags:
|
|
262
|
+
- Channels
|
|
252
263
|
operationId: getChannel
|
|
253
264
|
parameters:
|
|
254
|
-
- $ref:
|
|
265
|
+
- $ref: "#/components/parameters/ChannelId"
|
|
255
266
|
responses:
|
|
256
|
-
|
|
267
|
+
"200":
|
|
257
268
|
description: Channel details
|
|
258
269
|
content:
|
|
259
270
|
application/json:
|
|
260
271
|
schema:
|
|
261
|
-
$ref:
|
|
262
|
-
|
|
263
|
-
$ref:
|
|
264
|
-
|
|
272
|
+
$ref: "#/components/schemas/Channel"
|
|
273
|
+
"404":
|
|
274
|
+
$ref: "#/components/responses/NotFound"
|
|
275
|
+
x-ossa-capability: get-channel
|
|
265
276
|
delete:
|
|
266
277
|
summary: Delete channel
|
|
267
278
|
description: |
|
|
268
279
|
Delete a communication channel. All subscriptions will be removed.
|
|
269
280
|
Messages in the channel will be deleted according to retention policy.
|
|
270
|
-
tags:
|
|
281
|
+
tags:
|
|
282
|
+
- Channels
|
|
271
283
|
operationId: deleteChannel
|
|
272
284
|
parameters:
|
|
273
|
-
- $ref:
|
|
285
|
+
- $ref: "#/components/parameters/ChannelId"
|
|
274
286
|
responses:
|
|
275
|
-
|
|
287
|
+
"204":
|
|
276
288
|
description: Channel deleted
|
|
277
|
-
|
|
278
|
-
$ref:
|
|
279
|
-
|
|
280
|
-
$ref:
|
|
281
|
-
|
|
289
|
+
"404":
|
|
290
|
+
$ref: "#/components/responses/NotFound"
|
|
291
|
+
"500":
|
|
292
|
+
$ref: "#/components/responses/InternalServerError"
|
|
293
|
+
x-ossa-capability: delete-channel
|
|
294
|
+
x-ossa-autonomy:
|
|
295
|
+
level: supervised
|
|
296
|
+
approval_required: true
|
|
282
297
|
/channels/{channelId}/subscribe:
|
|
283
298
|
post:
|
|
284
299
|
summary: Subscribe to channel
|
|
285
300
|
description: |
|
|
286
301
|
Subscribe to a channel to receive published messages. Supports both
|
|
287
302
|
push (webhook) and pull (polling) delivery modes.
|
|
288
|
-
tags:
|
|
303
|
+
tags:
|
|
304
|
+
- Channels
|
|
289
305
|
operationId: subscribeToChannel
|
|
290
306
|
parameters:
|
|
291
|
-
- $ref:
|
|
307
|
+
- $ref: "#/components/parameters/ChannelId"
|
|
292
308
|
requestBody:
|
|
293
309
|
required: true
|
|
294
310
|
content:
|
|
295
311
|
application/json:
|
|
296
312
|
schema:
|
|
297
|
-
$ref:
|
|
313
|
+
$ref: "#/components/schemas/SubscribeRequest"
|
|
298
314
|
examples:
|
|
299
315
|
webhookSubscription:
|
|
300
316
|
summary: Webhook-based subscription
|
|
@@ -303,73 +319,85 @@ paths:
|
|
|
303
319
|
deliveryMode: push
|
|
304
320
|
webhookUrl: https://worker-003.example.com/channels/task-updates
|
|
305
321
|
filter:
|
|
306
|
-
messageTypes:
|
|
322
|
+
messageTypes:
|
|
323
|
+
- TaskAssigned
|
|
324
|
+
- TaskCompleted
|
|
307
325
|
pollingSubscription:
|
|
308
326
|
summary: Polling-based subscription
|
|
309
327
|
value:
|
|
310
328
|
agentId: uadp://monitor-001
|
|
311
329
|
deliveryMode: pull
|
|
312
330
|
filter:
|
|
313
|
-
messageTypes:
|
|
331
|
+
messageTypes:
|
|
332
|
+
- TaskCompleted
|
|
314
333
|
responses:
|
|
315
|
-
|
|
334
|
+
"201":
|
|
316
335
|
description: Subscription created
|
|
317
336
|
content:
|
|
318
337
|
application/json:
|
|
319
338
|
schema:
|
|
320
|
-
$ref:
|
|
321
|
-
|
|
322
|
-
$ref:
|
|
323
|
-
|
|
339
|
+
$ref: "#/components/schemas/Subscription"
|
|
340
|
+
"400":
|
|
341
|
+
$ref: "#/components/responses/ValidationError"
|
|
342
|
+
"404":
|
|
324
343
|
description: Channel not found
|
|
325
344
|
content:
|
|
326
345
|
application/problem+json:
|
|
327
346
|
schema:
|
|
328
|
-
$ref:
|
|
329
|
-
|
|
330
|
-
$ref:
|
|
331
|
-
|
|
347
|
+
$ref: "#/components/schemas/Problem"
|
|
348
|
+
"500":
|
|
349
|
+
$ref: "#/components/responses/InternalServerError"
|
|
350
|
+
x-ossa-capability: subscribe-to-channel
|
|
351
|
+
x-ossa-autonomy:
|
|
352
|
+
level: supervised
|
|
353
|
+
approval_required: true
|
|
332
354
|
/channels/{channelId}/unsubscribe:
|
|
333
355
|
post:
|
|
334
356
|
summary: Unsubscribe from channel
|
|
335
357
|
description: Remove subscription from a channel
|
|
336
|
-
tags:
|
|
358
|
+
tags:
|
|
359
|
+
- Channels
|
|
337
360
|
operationId: unsubscribeFromChannel
|
|
338
361
|
parameters:
|
|
339
|
-
- $ref:
|
|
362
|
+
- $ref: "#/components/parameters/ChannelId"
|
|
340
363
|
requestBody:
|
|
341
364
|
required: true
|
|
342
365
|
content:
|
|
343
366
|
application/json:
|
|
344
367
|
schema:
|
|
345
368
|
type: object
|
|
346
|
-
required:
|
|
369
|
+
required:
|
|
370
|
+
- subscriptionId
|
|
347
371
|
properties:
|
|
348
372
|
subscriptionId:
|
|
349
373
|
type: string
|
|
350
374
|
format: uuid
|
|
351
375
|
responses:
|
|
352
|
-
|
|
376
|
+
"204":
|
|
353
377
|
description: Unsubscribed successfully
|
|
354
|
-
|
|
355
|
-
$ref:
|
|
356
|
-
|
|
378
|
+
"404":
|
|
379
|
+
$ref: "#/components/responses/NotFound"
|
|
380
|
+
x-ossa-capability: unsubscribe-from-channel
|
|
381
|
+
x-ossa-autonomy:
|
|
382
|
+
level: supervised
|
|
383
|
+
approval_required: true
|
|
357
384
|
/channels/{channelId}/publish:
|
|
358
385
|
post:
|
|
359
386
|
summary: Publish message to channel
|
|
360
387
|
description: |
|
|
361
388
|
Broadcast a message to all channel subscribers. Message will be delivered
|
|
362
389
|
according to each subscriber's delivery mode (push/pull).
|
|
363
|
-
tags:
|
|
390
|
+
tags:
|
|
391
|
+
- Channels
|
|
364
392
|
operationId: publishToChannel
|
|
365
393
|
parameters:
|
|
366
|
-
- $ref:
|
|
394
|
+
- $ref: "#/components/parameters/ChannelId"
|
|
367
395
|
requestBody:
|
|
368
396
|
required: true
|
|
369
397
|
content:
|
|
370
398
|
application/json:
|
|
371
399
|
schema:
|
|
372
|
-
$ref:
|
|
400
|
+
$ref: "#/components/schemas/PublishMessageRequest"
|
|
373
401
|
examples:
|
|
374
402
|
taskCompleted:
|
|
375
403
|
summary: Broadcast task completion
|
|
@@ -379,8 +407,11 @@ paths:
|
|
|
379
407
|
taskId: task-123
|
|
380
408
|
status: completed
|
|
381
409
|
result:
|
|
382
|
-
entities:
|
|
383
|
-
|
|
410
|
+
entities:
|
|
411
|
+
- Apple Inc.
|
|
412
|
+
- Cupertino
|
|
413
|
+
- California
|
|
414
|
+
completedAt: 2025-12-18T14:30:00Z
|
|
384
415
|
agentStarted:
|
|
385
416
|
summary: Agent lifecycle event
|
|
386
417
|
value:
|
|
@@ -388,36 +419,42 @@ paths:
|
|
|
388
419
|
payload:
|
|
389
420
|
agentId: uadp://worker-005
|
|
390
421
|
version: 1.2.0
|
|
391
|
-
capabilities:
|
|
392
|
-
|
|
422
|
+
capabilities:
|
|
423
|
+
- text_analysis
|
|
424
|
+
- entity_extraction
|
|
425
|
+
startedAt: 2025-12-18T14:25:00Z
|
|
393
426
|
responses:
|
|
394
|
-
|
|
427
|
+
"202":
|
|
395
428
|
description: Message published
|
|
396
429
|
content:
|
|
397
430
|
application/json:
|
|
398
431
|
schema:
|
|
399
|
-
$ref:
|
|
400
|
-
|
|
401
|
-
$ref:
|
|
402
|
-
|
|
432
|
+
$ref: "#/components/schemas/PublishResponse"
|
|
433
|
+
"400":
|
|
434
|
+
$ref: "#/components/responses/ValidationError"
|
|
435
|
+
"404":
|
|
403
436
|
description: Channel not found
|
|
404
437
|
content:
|
|
405
438
|
application/problem+json:
|
|
406
439
|
schema:
|
|
407
|
-
$ref:
|
|
408
|
-
|
|
409
|
-
$ref:
|
|
410
|
-
|
|
440
|
+
$ref: "#/components/schemas/Problem"
|
|
441
|
+
"500":
|
|
442
|
+
$ref: "#/components/responses/InternalServerError"
|
|
443
|
+
x-ossa-capability: publish-to-channel
|
|
444
|
+
x-ossa-autonomy:
|
|
445
|
+
level: supervised
|
|
446
|
+
approval_required: true
|
|
411
447
|
/channels/{channelId}/messages:
|
|
412
448
|
get:
|
|
413
449
|
summary: Pull messages from channel
|
|
414
450
|
description: |
|
|
415
451
|
Poll for messages from a channel (pull-based delivery). Only available
|
|
416
452
|
for subscriptions with deliveryMode: pull.
|
|
417
|
-
tags:
|
|
453
|
+
tags:
|
|
454
|
+
- Channels
|
|
418
455
|
operationId: pullChannelMessages
|
|
419
456
|
parameters:
|
|
420
|
-
- $ref:
|
|
457
|
+
- $ref: "#/components/parameters/ChannelId"
|
|
421
458
|
- name: subscriptionId
|
|
422
459
|
in: query
|
|
423
460
|
required: true
|
|
@@ -437,10 +474,12 @@ paths:
|
|
|
437
474
|
description: Acknowledgment mode
|
|
438
475
|
schema:
|
|
439
476
|
type: string
|
|
440
|
-
enum:
|
|
477
|
+
enum:
|
|
478
|
+
- auto
|
|
479
|
+
- manual
|
|
441
480
|
default: manual
|
|
442
481
|
responses:
|
|
443
|
-
|
|
482
|
+
"200":
|
|
444
483
|
description: Messages retrieved
|
|
445
484
|
content:
|
|
446
485
|
application/json:
|
|
@@ -450,20 +489,20 @@ paths:
|
|
|
450
489
|
messages:
|
|
451
490
|
type: array
|
|
452
491
|
items:
|
|
453
|
-
$ref:
|
|
492
|
+
$ref: "#/components/schemas/Message"
|
|
454
493
|
hasMore:
|
|
455
494
|
type: boolean
|
|
456
|
-
|
|
457
|
-
$ref:
|
|
458
|
-
|
|
459
|
-
# Streaming (Server-Sent Events)
|
|
495
|
+
"404":
|
|
496
|
+
$ref: "#/components/responses/NotFound"
|
|
497
|
+
x-ossa-capability: pull-channel-messages
|
|
460
498
|
/stream:
|
|
461
499
|
get:
|
|
462
500
|
summary: Stream messages via SSE
|
|
463
501
|
description: |
|
|
464
502
|
Open a Server-Sent Events stream to receive real-time messages.
|
|
465
503
|
Client maintains persistent connection for streaming updates.
|
|
466
|
-
tags:
|
|
504
|
+
tags:
|
|
505
|
+
- Streaming
|
|
467
506
|
operationId: streamMessages
|
|
468
507
|
parameters:
|
|
469
508
|
- name: agentId
|
|
@@ -477,9 +516,9 @@ paths:
|
|
|
477
516
|
description: Filter messages by type (comma-separated)
|
|
478
517
|
schema:
|
|
479
518
|
type: string
|
|
480
|
-
example:
|
|
519
|
+
example: TaskAssigned,TaskCompleted
|
|
481
520
|
responses:
|
|
482
|
-
|
|
521
|
+
"200":
|
|
483
522
|
description: SSE stream
|
|
484
523
|
content:
|
|
485
524
|
text/event-stream:
|
|
@@ -501,26 +540,26 @@ paths:
|
|
|
501
540
|
event: TaskCompleted
|
|
502
541
|
id: msg-124
|
|
503
542
|
data: {"taskId":"task-456","status":"completed","result":{"summary":"Document analyzed"}}
|
|
504
|
-
|
|
505
|
-
$ref:
|
|
506
|
-
|
|
507
|
-
# Webhooks (for async callbacks)
|
|
543
|
+
"401":
|
|
544
|
+
$ref: "#/components/responses/Unauthorized"
|
|
545
|
+
x-ossa-capability: stream-messages
|
|
508
546
|
/webhooks:
|
|
509
547
|
post:
|
|
510
548
|
summary: Register webhook endpoint
|
|
511
549
|
description: |
|
|
512
550
|
Register a webhook endpoint to receive async message delivery.
|
|
513
551
|
The A2A platform will POST messages to the registered URL.
|
|
514
|
-
tags:
|
|
552
|
+
tags:
|
|
553
|
+
- Webhooks
|
|
515
554
|
operationId: registerWebhook
|
|
516
555
|
requestBody:
|
|
517
556
|
required: true
|
|
518
557
|
content:
|
|
519
558
|
application/json:
|
|
520
559
|
schema:
|
|
521
|
-
$ref:
|
|
560
|
+
$ref: "#/components/schemas/WebhookRegistration"
|
|
522
561
|
responses:
|
|
523
|
-
|
|
562
|
+
"201":
|
|
524
563
|
description: Webhook registered
|
|
525
564
|
content:
|
|
526
565
|
application/json:
|
|
@@ -536,14 +575,18 @@ paths:
|
|
|
536
575
|
secret:
|
|
537
576
|
type: string
|
|
538
577
|
description: HMAC secret for verifying webhook authenticity
|
|
539
|
-
|
|
540
|
-
$ref:
|
|
541
|
-
|
|
578
|
+
"400":
|
|
579
|
+
$ref: "#/components/responses/ValidationError"
|
|
580
|
+
x-ossa-capability: register-webhook
|
|
581
|
+
x-ossa-autonomy:
|
|
582
|
+
level: supervised
|
|
583
|
+
approval_required: true
|
|
542
584
|
/webhooks/{webhookId}:
|
|
543
585
|
delete:
|
|
544
586
|
summary: Unregister webhook
|
|
545
587
|
description: Remove a webhook endpoint registration
|
|
546
|
-
tags:
|
|
588
|
+
tags:
|
|
589
|
+
- Webhooks
|
|
547
590
|
operationId: unregisterWebhook
|
|
548
591
|
parameters:
|
|
549
592
|
- name: webhookId
|
|
@@ -553,24 +596,28 @@ paths:
|
|
|
553
596
|
type: string
|
|
554
597
|
format: uuid
|
|
555
598
|
responses:
|
|
556
|
-
|
|
599
|
+
"204":
|
|
557
600
|
description: Webhook unregistered
|
|
558
|
-
|
|
559
|
-
$ref:
|
|
560
|
-
|
|
561
|
-
|
|
601
|
+
"404":
|
|
602
|
+
$ref: "#/components/responses/NotFound"
|
|
603
|
+
x-ossa-capability: unregister-webhook
|
|
604
|
+
x-ossa-autonomy:
|
|
605
|
+
level: supervised
|
|
606
|
+
approval_required: true
|
|
562
607
|
/health:
|
|
563
608
|
get:
|
|
564
609
|
summary: Health check
|
|
565
|
-
tags:
|
|
610
|
+
tags:
|
|
611
|
+
- Health
|
|
566
612
|
operationId: healthCheck
|
|
567
613
|
security: []
|
|
568
614
|
responses:
|
|
569
|
-
|
|
570
|
-
$ref:
|
|
571
|
-
|
|
572
|
-
$ref:
|
|
573
|
-
|
|
615
|
+
"200":
|
|
616
|
+
$ref: "#/components/responses/HealthCheck"
|
|
617
|
+
"503":
|
|
618
|
+
$ref: "#/components/responses/ServiceUnavailable"
|
|
619
|
+
x-ossa-capability: health-check
|
|
620
|
+
description: Health check
|
|
574
621
|
components:
|
|
575
622
|
securitySchemes:
|
|
576
623
|
ApiKeyAuth:
|
|
@@ -586,7 +633,6 @@ components:
|
|
|
586
633
|
AgentMTLS:
|
|
587
634
|
type: mutualTLS
|
|
588
635
|
description: Mutual TLS authentication for agent-to-agent trust
|
|
589
|
-
|
|
590
636
|
parameters:
|
|
591
637
|
ChannelId:
|
|
592
638
|
name: channelId
|
|
@@ -613,9 +659,7 @@ components:
|
|
|
613
659
|
type: integer
|
|
614
660
|
minimum: 0
|
|
615
661
|
default: 0
|
|
616
|
-
|
|
617
662
|
schemas:
|
|
618
|
-
# Message Schemas
|
|
619
663
|
SendMessageRequest:
|
|
620
664
|
type: object
|
|
621
665
|
required:
|
|
@@ -628,16 +672,16 @@ components:
|
|
|
628
672
|
type: string
|
|
629
673
|
format: uri
|
|
630
674
|
description: Target agent URI (e.g., uadp://worker-001)
|
|
631
|
-
pattern:
|
|
675
|
+
pattern: ^uadp://[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
632
676
|
from:
|
|
633
677
|
type: string
|
|
634
678
|
format: uri
|
|
635
679
|
description: Source agent URI
|
|
636
|
-
pattern:
|
|
680
|
+
pattern: ^uadp://[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
637
681
|
type:
|
|
638
|
-
$ref:
|
|
682
|
+
$ref: "#/components/schemas/MessageType"
|
|
639
683
|
payload:
|
|
640
|
-
$ref:
|
|
684
|
+
$ref: "#/components/schemas/MessagePayload"
|
|
641
685
|
correlationId:
|
|
642
686
|
type: string
|
|
643
687
|
description: Correlation ID for request/reply pattern
|
|
@@ -649,13 +693,16 @@ components:
|
|
|
649
693
|
default: 30000
|
|
650
694
|
priority:
|
|
651
695
|
type: string
|
|
652
|
-
enum:
|
|
696
|
+
enum:
|
|
697
|
+
- low
|
|
698
|
+
- normal
|
|
699
|
+
- high
|
|
700
|
+
- critical
|
|
653
701
|
default: normal
|
|
654
702
|
webhookUrl:
|
|
655
703
|
type: string
|
|
656
704
|
format: uri
|
|
657
705
|
description: URL for async response delivery
|
|
658
|
-
|
|
659
706
|
MessageType:
|
|
660
707
|
type: string
|
|
661
708
|
enum:
|
|
@@ -679,13 +726,11 @@ components:
|
|
|
679
726
|
- AgentStopped: Agent lifecycle event (stopped)
|
|
680
727
|
- AgentError: Agent error notification
|
|
681
728
|
- Custom: Custom application-specific message type
|
|
682
|
-
|
|
683
729
|
MessagePayload:
|
|
684
730
|
type: object
|
|
685
731
|
description: |
|
|
686
732
|
Message payload structure varies by message type. See schemas for each type.
|
|
687
733
|
additionalProperties: true
|
|
688
|
-
|
|
689
734
|
Message:
|
|
690
735
|
type: object
|
|
691
736
|
required:
|
|
@@ -710,19 +755,27 @@ components:
|
|
|
710
755
|
format: uri
|
|
711
756
|
description: Source agent URI
|
|
712
757
|
type:
|
|
713
|
-
$ref:
|
|
758
|
+
$ref: "#/components/schemas/MessageType"
|
|
714
759
|
payload:
|
|
715
|
-
$ref:
|
|
760
|
+
$ref: "#/components/schemas/MessagePayload"
|
|
716
761
|
correlationId:
|
|
717
762
|
type: string
|
|
718
763
|
description: Correlation ID for request/reply pattern
|
|
719
764
|
status:
|
|
720
765
|
type: string
|
|
721
|
-
enum:
|
|
766
|
+
enum:
|
|
767
|
+
- pending
|
|
768
|
+
- delivered
|
|
769
|
+
- acknowledged
|
|
770
|
+
- failed
|
|
722
771
|
description: Message delivery status
|
|
723
772
|
priority:
|
|
724
773
|
type: string
|
|
725
|
-
enum:
|
|
774
|
+
enum:
|
|
775
|
+
- low
|
|
776
|
+
- normal
|
|
777
|
+
- high
|
|
778
|
+
- critical
|
|
726
779
|
createdAt:
|
|
727
780
|
type: string
|
|
728
781
|
format: date-time
|
|
@@ -738,7 +791,6 @@ components:
|
|
|
738
791
|
error:
|
|
739
792
|
type: string
|
|
740
793
|
description: Error message if status is failed
|
|
741
|
-
|
|
742
794
|
MessageResponse:
|
|
743
795
|
type: object
|
|
744
796
|
required:
|
|
@@ -751,14 +803,14 @@ components:
|
|
|
751
803
|
description: Unique message identifier
|
|
752
804
|
status:
|
|
753
805
|
type: string
|
|
754
|
-
enum:
|
|
806
|
+
enum:
|
|
807
|
+
- accepted
|
|
808
|
+
- queued
|
|
755
809
|
description: Initial message status
|
|
756
810
|
estimatedDelivery:
|
|
757
811
|
type: string
|
|
758
812
|
format: date-time
|
|
759
813
|
description: Estimated delivery time
|
|
760
|
-
|
|
761
|
-
# Channel Schemas
|
|
762
814
|
CreateChannelRequest:
|
|
763
815
|
type: object
|
|
764
816
|
required:
|
|
@@ -767,7 +819,7 @@ components:
|
|
|
767
819
|
properties:
|
|
768
820
|
name:
|
|
769
821
|
type: string
|
|
770
|
-
pattern:
|
|
822
|
+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
771
823
|
description: Channel name (lowercase, hyphen-separated)
|
|
772
824
|
topic:
|
|
773
825
|
type: string
|
|
@@ -775,10 +827,9 @@ components:
|
|
|
775
827
|
description:
|
|
776
828
|
type: string
|
|
777
829
|
retentionPolicy:
|
|
778
|
-
$ref:
|
|
830
|
+
$ref: "#/components/schemas/RetentionPolicy"
|
|
779
831
|
accessControl:
|
|
780
|
-
$ref:
|
|
781
|
-
|
|
832
|
+
$ref: "#/components/schemas/AccessControl"
|
|
782
833
|
Channel:
|
|
783
834
|
type: object
|
|
784
835
|
required:
|
|
@@ -803,30 +854,28 @@ components:
|
|
|
803
854
|
type: integer
|
|
804
855
|
minimum: 0
|
|
805
856
|
retentionPolicy:
|
|
806
|
-
$ref:
|
|
857
|
+
$ref: "#/components/schemas/RetentionPolicy"
|
|
807
858
|
accessControl:
|
|
808
|
-
$ref:
|
|
859
|
+
$ref: "#/components/schemas/AccessControl"
|
|
809
860
|
createdAt:
|
|
810
861
|
type: string
|
|
811
862
|
format: date-time
|
|
812
863
|
updatedAt:
|
|
813
864
|
type: string
|
|
814
865
|
format: date-time
|
|
815
|
-
|
|
816
866
|
ChannelsList:
|
|
817
867
|
type: object
|
|
818
868
|
properties:
|
|
819
869
|
channels:
|
|
820
870
|
type: array
|
|
821
871
|
items:
|
|
822
|
-
$ref:
|
|
872
|
+
$ref: "#/components/schemas/Channel"
|
|
823
873
|
total:
|
|
824
874
|
type: integer
|
|
825
875
|
limit:
|
|
826
876
|
type: integer
|
|
827
877
|
offset:
|
|
828
878
|
type: integer
|
|
829
|
-
|
|
830
879
|
RetentionPolicy:
|
|
831
880
|
type: object
|
|
832
881
|
properties:
|
|
@@ -841,7 +890,6 @@ components:
|
|
|
841
890
|
minimum: 100
|
|
842
891
|
default: 10000
|
|
843
892
|
description: Maximum number of messages to retain
|
|
844
|
-
|
|
845
893
|
AccessControl:
|
|
846
894
|
type: object
|
|
847
895
|
properties:
|
|
@@ -854,8 +902,6 @@ components:
|
|
|
854
902
|
items:
|
|
855
903
|
type: string
|
|
856
904
|
description: List of agent URIs allowed to access channel
|
|
857
|
-
|
|
858
|
-
# Subscription Schemas
|
|
859
905
|
SubscribeRequest:
|
|
860
906
|
type: object
|
|
861
907
|
required:
|
|
@@ -865,31 +911,31 @@ components:
|
|
|
865
911
|
agentId:
|
|
866
912
|
type: string
|
|
867
913
|
format: uri
|
|
868
|
-
pattern:
|
|
914
|
+
pattern: ^uadp://[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
869
915
|
description: Subscribing agent URI
|
|
870
916
|
deliveryMode:
|
|
871
917
|
type: string
|
|
872
|
-
enum:
|
|
918
|
+
enum:
|
|
919
|
+
- push
|
|
920
|
+
- pull
|
|
873
921
|
description: Message delivery mode (push=webhook, pull=polling)
|
|
874
922
|
webhookUrl:
|
|
875
923
|
type: string
|
|
876
924
|
format: uri
|
|
877
925
|
description: Webhook URL (required if deliveryMode=push)
|
|
878
926
|
filter:
|
|
879
|
-
$ref:
|
|
880
|
-
|
|
927
|
+
$ref: "#/components/schemas/SubscriptionFilter"
|
|
881
928
|
SubscriptionFilter:
|
|
882
929
|
type: object
|
|
883
930
|
properties:
|
|
884
931
|
messageTypes:
|
|
885
932
|
type: array
|
|
886
933
|
items:
|
|
887
|
-
$ref:
|
|
934
|
+
$ref: "#/components/schemas/MessageType"
|
|
888
935
|
description: Filter by message types
|
|
889
936
|
agentFilter:
|
|
890
937
|
type: string
|
|
891
938
|
description: Filter by source agent pattern (supports wildcards)
|
|
892
|
-
|
|
893
939
|
Subscription:
|
|
894
940
|
type: object
|
|
895
941
|
required:
|
|
@@ -910,23 +956,26 @@ components:
|
|
|
910
956
|
format: uri
|
|
911
957
|
deliveryMode:
|
|
912
958
|
type: string
|
|
913
|
-
enum:
|
|
959
|
+
enum:
|
|
960
|
+
- push
|
|
961
|
+
- pull
|
|
914
962
|
webhookUrl:
|
|
915
963
|
type: string
|
|
916
964
|
format: uri
|
|
917
965
|
filter:
|
|
918
|
-
$ref:
|
|
966
|
+
$ref: "#/components/schemas/SubscriptionFilter"
|
|
919
967
|
status:
|
|
920
968
|
type: string
|
|
921
|
-
enum:
|
|
969
|
+
enum:
|
|
970
|
+
- active
|
|
971
|
+
- paused
|
|
972
|
+
- failed
|
|
922
973
|
createdAt:
|
|
923
974
|
type: string
|
|
924
975
|
format: date-time
|
|
925
976
|
lastDeliveryAt:
|
|
926
977
|
type: string
|
|
927
978
|
format: date-time
|
|
928
|
-
|
|
929
|
-
# Publish Schemas
|
|
930
979
|
PublishMessageRequest:
|
|
931
980
|
type: object
|
|
932
981
|
required:
|
|
@@ -934,15 +983,14 @@ components:
|
|
|
934
983
|
- payload
|
|
935
984
|
properties:
|
|
936
985
|
type:
|
|
937
|
-
$ref:
|
|
986
|
+
$ref: "#/components/schemas/MessageType"
|
|
938
987
|
payload:
|
|
939
|
-
$ref:
|
|
988
|
+
$ref: "#/components/schemas/MessagePayload"
|
|
940
989
|
attributes:
|
|
941
990
|
type: object
|
|
942
991
|
additionalProperties:
|
|
943
992
|
type: string
|
|
944
993
|
description: Custom message attributes
|
|
945
|
-
|
|
946
994
|
PublishResponse:
|
|
947
995
|
type: object
|
|
948
996
|
properties:
|
|
@@ -955,8 +1003,6 @@ components:
|
|
|
955
1003
|
subscriberCount:
|
|
956
1004
|
type: integer
|
|
957
1005
|
description: Number of subscribers message was delivered to
|
|
958
|
-
|
|
959
|
-
# Webhook Schemas
|
|
960
1006
|
WebhookRegistration:
|
|
961
1007
|
type: object
|
|
962
1008
|
required:
|
|
@@ -970,22 +1016,23 @@ components:
|
|
|
970
1016
|
agentId:
|
|
971
1017
|
type: string
|
|
972
1018
|
format: uri
|
|
973
|
-
pattern:
|
|
1019
|
+
pattern: ^uadp://[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
974
1020
|
description:
|
|
975
1021
|
type: string
|
|
976
1022
|
events:
|
|
977
1023
|
type: array
|
|
978
1024
|
items:
|
|
979
|
-
$ref:
|
|
1025
|
+
$ref: "#/components/schemas/MessageType"
|
|
980
1026
|
description: Event types to deliver to this webhook
|
|
981
|
-
|
|
982
|
-
# Health Schema
|
|
983
1027
|
HealthStatus:
|
|
984
1028
|
type: object
|
|
985
1029
|
properties:
|
|
986
1030
|
status:
|
|
987
1031
|
type: string
|
|
988
|
-
enum:
|
|
1032
|
+
enum:
|
|
1033
|
+
- healthy
|
|
1034
|
+
- degraded
|
|
1035
|
+
- unhealthy
|
|
989
1036
|
version:
|
|
990
1037
|
type: string
|
|
991
1038
|
uptime:
|
|
@@ -1000,57 +1047,50 @@ components:
|
|
|
1000
1047
|
properties:
|
|
1001
1048
|
status:
|
|
1002
1049
|
type: string
|
|
1003
|
-
enum:
|
|
1050
|
+
enum:
|
|
1051
|
+
- pass
|
|
1052
|
+
- fail
|
|
1004
1053
|
message:
|
|
1005
1054
|
type: string
|
|
1006
|
-
|
|
1007
|
-
# Error Schema (RFC7807)
|
|
1008
1055
|
Problem:
|
|
1009
|
-
$ref:
|
|
1010
|
-
|
|
1056
|
+
$ref: ./schemas/common/errors.yaml#/components/schemas/Problem
|
|
1011
1057
|
responses:
|
|
1012
1058
|
HealthCheck:
|
|
1013
1059
|
description: Service health status
|
|
1014
1060
|
content:
|
|
1015
1061
|
application/json:
|
|
1016
1062
|
schema:
|
|
1017
|
-
$ref:
|
|
1018
|
-
|
|
1063
|
+
$ref: "#/components/schemas/HealthStatus"
|
|
1019
1064
|
ValidationError:
|
|
1020
1065
|
description: Validation error
|
|
1021
1066
|
content:
|
|
1022
1067
|
application/problem+json:
|
|
1023
1068
|
schema:
|
|
1024
|
-
$ref:
|
|
1025
|
-
|
|
1069
|
+
$ref: "#/components/schemas/Problem"
|
|
1026
1070
|
Unauthorized:
|
|
1027
1071
|
description: Unauthorized
|
|
1028
1072
|
content:
|
|
1029
1073
|
application/problem+json:
|
|
1030
1074
|
schema:
|
|
1031
|
-
$ref:
|
|
1032
|
-
|
|
1075
|
+
$ref: "#/components/schemas/Problem"
|
|
1033
1076
|
NotFound:
|
|
1034
1077
|
description: Resource not found
|
|
1035
1078
|
content:
|
|
1036
1079
|
application/problem+json:
|
|
1037
1080
|
schema:
|
|
1038
|
-
$ref:
|
|
1039
|
-
|
|
1081
|
+
$ref: "#/components/schemas/Problem"
|
|
1040
1082
|
ServiceUnavailable:
|
|
1041
1083
|
description: Service unavailable
|
|
1042
1084
|
content:
|
|
1043
1085
|
application/problem+json:
|
|
1044
1086
|
schema:
|
|
1045
|
-
$ref:
|
|
1046
|
-
|
|
1087
|
+
$ref: "#/components/schemas/Problem"
|
|
1047
1088
|
InternalServerError:
|
|
1048
1089
|
description: Internal server error
|
|
1049
1090
|
content:
|
|
1050
1091
|
application/problem+json:
|
|
1051
1092
|
schema:
|
|
1052
|
-
$ref:
|
|
1053
|
-
|
|
1093
|
+
$ref: "#/components/schemas/Problem"
|
|
1054
1094
|
tags:
|
|
1055
1095
|
- name: Messaging
|
|
1056
1096
|
description: Direct agent-to-agent messaging
|
|
@@ -1062,7 +1102,6 @@ tags:
|
|
|
1062
1102
|
description: Webhook registration and management
|
|
1063
1103
|
- name: Health
|
|
1064
1104
|
description: Service health and status
|
|
1065
|
-
|
|
1066
1105
|
x-ossa-metadata:
|
|
1067
1106
|
version: 0.3.3
|
|
1068
1107
|
compliance:
|
|
@@ -1070,3 +1109,12 @@ x-ossa-metadata:
|
|
|
1070
1109
|
frameworks:
|
|
1071
1110
|
- OSSA v0.3.3
|
|
1072
1111
|
- OpenAPI 3.1
|
|
1112
|
+
observability:
|
|
1113
|
+
tracing: true
|
|
1114
|
+
metrics: true
|
|
1115
|
+
logging: true
|
|
1116
|
+
x-ossa:
|
|
1117
|
+
version: 0.5.0
|
|
1118
|
+
agent:
|
|
1119
|
+
id: agent-communication-api
|
|
1120
|
+
type: integrator
|