@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
|
@@ -28,7 +28,6 @@ info:
|
|
|
28
28
|
license:
|
|
29
29
|
name: Apache 2.0
|
|
30
30
|
url: https://www.apache.org/licenses/LICENSE-2.0.html
|
|
31
|
-
|
|
32
31
|
servers:
|
|
33
32
|
- url: https://registry.openstandardagents.org/api/v1
|
|
34
33
|
description: Production Registry
|
|
@@ -36,7 +35,6 @@ servers:
|
|
|
36
35
|
description: Staging Registry
|
|
37
36
|
- url: http://localhost:3100/api/v1
|
|
38
37
|
description: Local Development
|
|
39
|
-
|
|
40
38
|
tags:
|
|
41
39
|
- name: registry
|
|
42
40
|
description: Agent registration and lifecycle
|
|
@@ -44,7 +42,6 @@ tags:
|
|
|
44
42
|
description: Agent discovery and search
|
|
45
43
|
- name: health
|
|
46
44
|
description: Registry health and status
|
|
47
|
-
|
|
48
45
|
paths:
|
|
49
46
|
/registry/register:
|
|
50
47
|
post:
|
|
@@ -53,7 +50,8 @@ paths:
|
|
|
53
50
|
Register a new agent or update an existing agent's metadata in the registry.
|
|
54
51
|
Agents self-register on startup and update their status periodically.
|
|
55
52
|
operationId: registerAgent
|
|
56
|
-
tags:
|
|
53
|
+
tags:
|
|
54
|
+
- registry
|
|
57
55
|
security:
|
|
58
56
|
- bearerAuth: []
|
|
59
57
|
requestBody:
|
|
@@ -61,7 +59,7 @@ paths:
|
|
|
61
59
|
content:
|
|
62
60
|
application/json:
|
|
63
61
|
schema:
|
|
64
|
-
$ref:
|
|
62
|
+
$ref: "#/components/schemas/RegistrationRequest"
|
|
65
63
|
examples:
|
|
66
64
|
securityAgent:
|
|
67
65
|
summary: Security scanning agent
|
|
@@ -97,7 +95,7 @@ paths:
|
|
|
97
95
|
status: active
|
|
98
96
|
healthEndpoint: https://agents.example.com/security-scanner/health
|
|
99
97
|
responses:
|
|
100
|
-
|
|
98
|
+
"201":
|
|
101
99
|
description: Agent successfully registered
|
|
102
100
|
content:
|
|
103
101
|
application/json:
|
|
@@ -113,7 +111,9 @@ paths:
|
|
|
113
111
|
description: Unique agent identifier
|
|
114
112
|
status:
|
|
115
113
|
type: string
|
|
116
|
-
enum:
|
|
114
|
+
enum:
|
|
115
|
+
- registered
|
|
116
|
+
- updated
|
|
117
117
|
registeredAt:
|
|
118
118
|
type: string
|
|
119
119
|
format: date-time
|
|
@@ -121,19 +121,22 @@ paths:
|
|
|
121
121
|
type: string
|
|
122
122
|
format: date-time
|
|
123
123
|
description: Registration expiry (requires renewal)
|
|
124
|
-
|
|
125
|
-
$ref:
|
|
126
|
-
|
|
127
|
-
$ref:
|
|
128
|
-
|
|
124
|
+
"400":
|
|
125
|
+
$ref: "#/components/responses/BadRequest"
|
|
126
|
+
"401":
|
|
127
|
+
$ref: "#/components/responses/Unauthorized"
|
|
128
|
+
"409":
|
|
129
129
|
description: Agent ID conflict
|
|
130
130
|
content:
|
|
131
131
|
application/json:
|
|
132
132
|
schema:
|
|
133
|
-
$ref:
|
|
134
|
-
|
|
135
|
-
$ref:
|
|
136
|
-
|
|
133
|
+
$ref: "#/components/schemas/Error"
|
|
134
|
+
"500":
|
|
135
|
+
$ref: "#/components/responses/InternalError"
|
|
136
|
+
x-ossa-capability: register-agent
|
|
137
|
+
x-ossa-autonomy:
|
|
138
|
+
level: supervised
|
|
139
|
+
approval_required: true
|
|
137
140
|
/registry/unregister/{agentId}:
|
|
138
141
|
delete:
|
|
139
142
|
summary: Unregister agent from registry
|
|
@@ -141,7 +144,8 @@ paths:
|
|
|
141
144
|
Remove an agent from the registry. Agents should unregister on graceful shutdown.
|
|
142
145
|
The registry will also automatically expire agents that fail health checks.
|
|
143
146
|
operationId: unregisterAgent
|
|
144
|
-
tags:
|
|
147
|
+
tags:
|
|
148
|
+
- registry
|
|
145
149
|
security:
|
|
146
150
|
- bearerAuth: []
|
|
147
151
|
parameters:
|
|
@@ -150,18 +154,21 @@ paths:
|
|
|
150
154
|
required: true
|
|
151
155
|
schema:
|
|
152
156
|
type: string
|
|
153
|
-
pattern:
|
|
157
|
+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
154
158
|
description: Unique agent identifier
|
|
155
159
|
responses:
|
|
156
|
-
|
|
160
|
+
"204":
|
|
157
161
|
description: Agent successfully unregistered
|
|
158
|
-
|
|
159
|
-
$ref:
|
|
160
|
-
|
|
161
|
-
$ref:
|
|
162
|
-
|
|
163
|
-
$ref:
|
|
164
|
-
|
|
162
|
+
"401":
|
|
163
|
+
$ref: "#/components/responses/Unauthorized"
|
|
164
|
+
"404":
|
|
165
|
+
$ref: "#/components/responses/NotFound"
|
|
166
|
+
"500":
|
|
167
|
+
$ref: "#/components/responses/InternalError"
|
|
168
|
+
x-ossa-capability: unregister-agent
|
|
169
|
+
x-ossa-autonomy:
|
|
170
|
+
level: supervised
|
|
171
|
+
approval_required: true
|
|
165
172
|
/registry/discover:
|
|
166
173
|
get:
|
|
167
174
|
summary: Discover agents by criteria
|
|
@@ -176,20 +183,21 @@ paths:
|
|
|
176
183
|
- Capabilities: `?capabilities=vulnerability-detection,dependency-audit`
|
|
177
184
|
- Combined: All parameters can be combined for precise matching
|
|
178
185
|
operationId: discoverAgents
|
|
179
|
-
tags:
|
|
186
|
+
tags:
|
|
187
|
+
- discovery
|
|
180
188
|
parameters:
|
|
181
189
|
- name: domain
|
|
182
190
|
in: query
|
|
183
191
|
schema:
|
|
184
192
|
type: string
|
|
185
|
-
pattern:
|
|
193
|
+
pattern: ^domain::[a-z0-9-]+$
|
|
186
194
|
description: Primary functional domain (e.g., domain::security)
|
|
187
195
|
example: domain::security
|
|
188
196
|
- name: subdomain
|
|
189
197
|
in: query
|
|
190
198
|
schema:
|
|
191
199
|
type: string
|
|
192
|
-
pattern:
|
|
200
|
+
pattern: ^subdomain::[a-z0-9-]+$
|
|
193
201
|
description: Specialized area within domain (e.g., subdomain::scanning)
|
|
194
202
|
example: subdomain::scanning
|
|
195
203
|
- name: concerns
|
|
@@ -198,7 +206,7 @@ paths:
|
|
|
198
206
|
type: array
|
|
199
207
|
items:
|
|
200
208
|
type: string
|
|
201
|
-
pattern:
|
|
209
|
+
pattern: ^concern::[a-z0-9-]+$
|
|
202
210
|
style: form
|
|
203
211
|
explode: false
|
|
204
212
|
description: Cross-cutting concerns (comma-separated)
|
|
@@ -209,7 +217,7 @@ paths:
|
|
|
209
217
|
type: array
|
|
210
218
|
items:
|
|
211
219
|
type: string
|
|
212
|
-
pattern:
|
|
220
|
+
pattern: ^[a-z][a-z0-9_-]*$
|
|
213
221
|
style: form
|
|
214
222
|
explode: false
|
|
215
223
|
description: Required capabilities (comma-separated)
|
|
@@ -218,7 +226,11 @@ paths:
|
|
|
218
226
|
in: query
|
|
219
227
|
schema:
|
|
220
228
|
type: string
|
|
221
|
-
enum:
|
|
229
|
+
enum:
|
|
230
|
+
- active
|
|
231
|
+
- inactive
|
|
232
|
+
- degraded
|
|
233
|
+
- maintenance
|
|
222
234
|
description: Filter by agent status
|
|
223
235
|
- name: limit
|
|
224
236
|
in: query
|
|
@@ -236,12 +248,12 @@ paths:
|
|
|
236
248
|
default: 0
|
|
237
249
|
description: Pagination offset
|
|
238
250
|
responses:
|
|
239
|
-
|
|
251
|
+
"200":
|
|
240
252
|
description: Matching agents found
|
|
241
253
|
content:
|
|
242
254
|
application/json:
|
|
243
255
|
schema:
|
|
244
|
-
$ref:
|
|
256
|
+
$ref: "#/components/schemas/DiscoveryResult"
|
|
245
257
|
examples:
|
|
246
258
|
securityAgents:
|
|
247
259
|
summary: Security domain agents
|
|
@@ -264,8 +276,8 @@ paths:
|
|
|
264
276
|
- dependency-audit
|
|
265
277
|
status: active
|
|
266
278
|
endpoint: https://agents.example.com/security-scanner
|
|
267
|
-
lastSeen:
|
|
268
|
-
registeredAt:
|
|
279
|
+
lastSeen: 2025-12-18T14:00:00Z
|
|
280
|
+
registeredAt: 2025-12-18T10:00:00Z
|
|
269
281
|
- agentId: compliance-auditor-01
|
|
270
282
|
name: compliance-auditor
|
|
271
283
|
version: 1.0.0
|
|
@@ -281,13 +293,13 @@ paths:
|
|
|
281
293
|
- report-generation
|
|
282
294
|
status: active
|
|
283
295
|
endpoint: https://agents.example.com/compliance-auditor
|
|
284
|
-
lastSeen:
|
|
285
|
-
registeredAt:
|
|
286
|
-
|
|
287
|
-
$ref:
|
|
288
|
-
|
|
289
|
-
$ref:
|
|
290
|
-
|
|
296
|
+
lastSeen: 2025-12-18T13:55:00Z
|
|
297
|
+
registeredAt: 2025-12-18T10:00:00Z
|
|
298
|
+
"400":
|
|
299
|
+
$ref: "#/components/responses/BadRequest"
|
|
300
|
+
"500":
|
|
301
|
+
$ref: "#/components/responses/InternalError"
|
|
302
|
+
x-ossa-capability: discover-agents
|
|
291
303
|
/registry/health:
|
|
292
304
|
get:
|
|
293
305
|
summary: Registry health check
|
|
@@ -295,9 +307,10 @@ paths:
|
|
|
295
307
|
Get the health status of the registry service.
|
|
296
308
|
Returns current registry statistics and operational status.
|
|
297
309
|
operationId: getRegistryHealth
|
|
298
|
-
tags:
|
|
310
|
+
tags:
|
|
311
|
+
- health
|
|
299
312
|
responses:
|
|
300
|
-
|
|
313
|
+
"200":
|
|
301
314
|
description: Registry is healthy
|
|
302
315
|
content:
|
|
303
316
|
application/json:
|
|
@@ -310,7 +323,10 @@ paths:
|
|
|
310
323
|
properties:
|
|
311
324
|
status:
|
|
312
325
|
type: string
|
|
313
|
-
enum:
|
|
326
|
+
enum:
|
|
327
|
+
- healthy
|
|
328
|
+
- degraded
|
|
329
|
+
- unhealthy
|
|
314
330
|
timestamp:
|
|
315
331
|
type: string
|
|
316
332
|
format: date-time
|
|
@@ -337,7 +353,7 @@ paths:
|
|
|
337
353
|
type: integer
|
|
338
354
|
example:
|
|
339
355
|
status: healthy
|
|
340
|
-
timestamp:
|
|
356
|
+
timestamp: 2025-12-18T14:00:00Z
|
|
341
357
|
version: 1.0.0
|
|
342
358
|
uptime: 86400
|
|
343
359
|
statistics:
|
|
@@ -347,7 +363,7 @@ paths:
|
|
|
347
363
|
degradedAgents: 2
|
|
348
364
|
totalDomains: 8
|
|
349
365
|
totalCapabilities: 125
|
|
350
|
-
|
|
366
|
+
"503":
|
|
351
367
|
description: Registry is unavailable
|
|
352
368
|
content:
|
|
353
369
|
application/json:
|
|
@@ -356,13 +372,14 @@ paths:
|
|
|
356
372
|
properties:
|
|
357
373
|
status:
|
|
358
374
|
type: string
|
|
359
|
-
enum:
|
|
375
|
+
enum:
|
|
376
|
+
- unhealthy
|
|
360
377
|
message:
|
|
361
378
|
type: string
|
|
362
379
|
timestamp:
|
|
363
380
|
type: string
|
|
364
381
|
format: date-time
|
|
365
|
-
|
|
382
|
+
x-ossa-capability: get-registry-health
|
|
366
383
|
components:
|
|
367
384
|
securitySchemes:
|
|
368
385
|
bearerAuth:
|
|
@@ -370,7 +387,6 @@ components:
|
|
|
370
387
|
scheme: bearer
|
|
371
388
|
bearerFormat: JWT
|
|
372
389
|
description: JWT token for agent authentication
|
|
373
|
-
|
|
374
390
|
schemas:
|
|
375
391
|
RegistrationRequest:
|
|
376
392
|
type: object
|
|
@@ -384,19 +400,19 @@ components:
|
|
|
384
400
|
properties:
|
|
385
401
|
agentId:
|
|
386
402
|
type: string
|
|
387
|
-
pattern:
|
|
403
|
+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
388
404
|
maxLength: 253
|
|
389
405
|
description: Unique agent identifier (DNS-1123 subdomain format)
|
|
390
406
|
example: security-scanner-01
|
|
391
407
|
name:
|
|
392
408
|
type: string
|
|
393
|
-
pattern:
|
|
409
|
+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
|
|
394
410
|
maxLength: 253
|
|
395
411
|
description: Agent name (from manifest.metadata.name)
|
|
396
412
|
example: security-scanner
|
|
397
413
|
version:
|
|
398
414
|
type: string
|
|
399
|
-
pattern:
|
|
415
|
+
pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
|
|
400
416
|
description: Semantic version (semver 2.0.0)
|
|
401
417
|
example: 1.0.0
|
|
402
418
|
manifest:
|
|
@@ -409,13 +425,18 @@ components:
|
|
|
409
425
|
properties:
|
|
410
426
|
apiVersion:
|
|
411
427
|
type: string
|
|
412
|
-
pattern:
|
|
428
|
+
pattern: ^ossa/v0\.3\.3$
|
|
413
429
|
kind:
|
|
414
430
|
type: string
|
|
415
|
-
enum:
|
|
431
|
+
enum:
|
|
432
|
+
- Agent
|
|
433
|
+
- Task
|
|
434
|
+
- Workflow
|
|
416
435
|
metadata:
|
|
417
436
|
type: object
|
|
418
|
-
required:
|
|
437
|
+
required:
|
|
438
|
+
- name
|
|
439
|
+
- version
|
|
419
440
|
properties:
|
|
420
441
|
name:
|
|
421
442
|
type: string
|
|
@@ -436,7 +457,7 @@ components:
|
|
|
436
457
|
type: array
|
|
437
458
|
items:
|
|
438
459
|
type: string
|
|
439
|
-
pattern:
|
|
460
|
+
pattern: ^domain::[a-z0-9-]+$
|
|
440
461
|
description: Primary functional domains
|
|
441
462
|
example:
|
|
442
463
|
- domain::security
|
|
@@ -444,7 +465,7 @@ components:
|
|
|
444
465
|
type: array
|
|
445
466
|
items:
|
|
446
467
|
type: string
|
|
447
|
-
pattern:
|
|
468
|
+
pattern: ^subdomain::[a-z0-9-]+$
|
|
448
469
|
description: Specialized subdomains
|
|
449
470
|
example:
|
|
450
471
|
- subdomain::scanning
|
|
@@ -453,7 +474,7 @@ components:
|
|
|
453
474
|
type: array
|
|
454
475
|
items:
|
|
455
476
|
type: string
|
|
456
|
-
pattern:
|
|
477
|
+
pattern: ^concern::[a-z0-9-]+$
|
|
457
478
|
description: Cross-cutting concerns
|
|
458
479
|
example:
|
|
459
480
|
- concern::quality
|
|
@@ -462,14 +483,18 @@ components:
|
|
|
462
483
|
type: array
|
|
463
484
|
items:
|
|
464
485
|
type: string
|
|
465
|
-
pattern:
|
|
486
|
+
pattern: ^[a-z][a-z0-9_-]*$
|
|
466
487
|
description: Capabilities provided by agent
|
|
467
488
|
example:
|
|
468
489
|
- vulnerability-detection
|
|
469
490
|
- dependency-audit
|
|
470
491
|
status:
|
|
471
492
|
type: string
|
|
472
|
-
enum:
|
|
493
|
+
enum:
|
|
494
|
+
- active
|
|
495
|
+
- inactive
|
|
496
|
+
- degraded
|
|
497
|
+
- maintenance
|
|
473
498
|
description: Current agent status
|
|
474
499
|
healthEndpoint:
|
|
475
500
|
type: string
|
|
@@ -480,7 +505,6 @@ components:
|
|
|
480
505
|
type: object
|
|
481
506
|
additionalProperties: true
|
|
482
507
|
description: Additional agent metadata
|
|
483
|
-
|
|
484
508
|
AgentMetadata:
|
|
485
509
|
type: object
|
|
486
510
|
required:
|
|
@@ -523,7 +547,11 @@ components:
|
|
|
523
547
|
description: Agent capabilities
|
|
524
548
|
status:
|
|
525
549
|
type: string
|
|
526
|
-
enum:
|
|
550
|
+
enum:
|
|
551
|
+
- active
|
|
552
|
+
- inactive
|
|
553
|
+
- degraded
|
|
554
|
+
- maintenance
|
|
527
555
|
endpoint:
|
|
528
556
|
type: string
|
|
529
557
|
format: uri
|
|
@@ -548,33 +576,36 @@ components:
|
|
|
548
576
|
type: object
|
|
549
577
|
additionalProperties: true
|
|
550
578
|
description: Additional metadata
|
|
551
|
-
|
|
552
579
|
DiscoveryQuery:
|
|
553
580
|
type: object
|
|
554
581
|
properties:
|
|
555
582
|
domain:
|
|
556
583
|
type: string
|
|
557
|
-
pattern:
|
|
584
|
+
pattern: ^domain::[a-z0-9-]+$
|
|
558
585
|
description: Primary functional domain filter
|
|
559
586
|
subdomain:
|
|
560
587
|
type: string
|
|
561
|
-
pattern:
|
|
588
|
+
pattern: ^subdomain::[a-z0-9-]+$
|
|
562
589
|
description: Subdomain filter
|
|
563
590
|
concerns:
|
|
564
591
|
type: array
|
|
565
592
|
items:
|
|
566
593
|
type: string
|
|
567
|
-
pattern:
|
|
594
|
+
pattern: ^concern::[a-z0-9-]+$
|
|
568
595
|
description: Concerns filter (match any)
|
|
569
596
|
capabilities:
|
|
570
597
|
type: array
|
|
571
598
|
items:
|
|
572
599
|
type: string
|
|
573
|
-
pattern:
|
|
600
|
+
pattern: ^[a-z][a-z0-9_-]*$
|
|
574
601
|
description: Capabilities filter (match all)
|
|
575
602
|
status:
|
|
576
603
|
type: string
|
|
577
|
-
enum:
|
|
604
|
+
enum:
|
|
605
|
+
- active
|
|
606
|
+
- inactive
|
|
607
|
+
- degraded
|
|
608
|
+
- maintenance
|
|
578
609
|
limit:
|
|
579
610
|
type: integer
|
|
580
611
|
minimum: 1
|
|
@@ -584,7 +615,6 @@ components:
|
|
|
584
615
|
type: integer
|
|
585
616
|
minimum: 0
|
|
586
617
|
default: 0
|
|
587
|
-
|
|
588
618
|
DiscoveryResult:
|
|
589
619
|
type: object
|
|
590
620
|
required:
|
|
@@ -605,8 +635,7 @@ components:
|
|
|
605
635
|
agents:
|
|
606
636
|
type: array
|
|
607
637
|
items:
|
|
608
|
-
$ref:
|
|
609
|
-
|
|
638
|
+
$ref: "#/components/schemas/AgentMetadata"
|
|
610
639
|
Error:
|
|
611
640
|
type: object
|
|
612
641
|
required:
|
|
@@ -627,14 +656,13 @@ components:
|
|
|
627
656
|
type: string
|
|
628
657
|
format: uuid
|
|
629
658
|
description: Request trace ID for debugging
|
|
630
|
-
|
|
631
659
|
responses:
|
|
632
660
|
BadRequest:
|
|
633
661
|
description: Bad request - invalid input
|
|
634
662
|
content:
|
|
635
663
|
application/json:
|
|
636
664
|
schema:
|
|
637
|
-
$ref:
|
|
665
|
+
$ref: "#/components/schemas/Error"
|
|
638
666
|
example:
|
|
639
667
|
error: bad_request
|
|
640
668
|
message: Invalid discovery query parameters
|
|
@@ -642,36 +670,46 @@ components:
|
|
|
642
670
|
field: domain
|
|
643
671
|
issue: Must match pattern 'domain::[a-z0-9-]+'
|
|
644
672
|
trace_id: 550e8400-e29b-41d4-a716-446655440000
|
|
645
|
-
|
|
646
673
|
Unauthorized:
|
|
647
674
|
description: Unauthorized - missing or invalid authentication
|
|
648
675
|
content:
|
|
649
676
|
application/json:
|
|
650
677
|
schema:
|
|
651
|
-
$ref:
|
|
678
|
+
$ref: "#/components/schemas/Error"
|
|
652
679
|
example:
|
|
653
680
|
error: unauthorized
|
|
654
681
|
message: Missing or invalid authentication token
|
|
655
682
|
trace_id: 550e8400-e29b-41d4-a716-446655440000
|
|
656
|
-
|
|
657
683
|
NotFound:
|
|
658
684
|
description: Resource not found
|
|
659
685
|
content:
|
|
660
686
|
application/json:
|
|
661
687
|
schema:
|
|
662
|
-
$ref:
|
|
688
|
+
$ref: "#/components/schemas/Error"
|
|
663
689
|
example:
|
|
664
690
|
error: not_found
|
|
665
691
|
message: Agent not found
|
|
666
692
|
trace_id: 550e8400-e29b-41d4-a716-446655440000
|
|
667
|
-
|
|
668
693
|
InternalError:
|
|
669
694
|
description: Internal server error
|
|
670
695
|
content:
|
|
671
696
|
application/json:
|
|
672
697
|
schema:
|
|
673
|
-
$ref:
|
|
698
|
+
$ref: "#/components/schemas/Error"
|
|
674
699
|
example:
|
|
675
700
|
error: internal_error
|
|
676
701
|
message: An unexpected error occurred
|
|
677
702
|
trace_id: 550e8400-e29b-41d4-a716-446655440000
|
|
703
|
+
x-ossa-metadata:
|
|
704
|
+
version: 0.3.3
|
|
705
|
+
compliance:
|
|
706
|
+
level: standard
|
|
707
|
+
observability:
|
|
708
|
+
tracing: true
|
|
709
|
+
metrics: true
|
|
710
|
+
logging: true
|
|
711
|
+
x-ossa:
|
|
712
|
+
version: 0.5.0
|
|
713
|
+
agent:
|
|
714
|
+
id: agent-discovery-api
|
|
715
|
+
type: gateway
|