@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.
Files changed (125) hide show
  1. package/.version.json +3 -3
  2. package/CHANGELOG.md +8 -8
  3. package/README.md +68 -58
  4. package/bin/postinstall +0 -0
  5. package/dist/.version.json +3 -3
  6. package/dist/adapters/claude-code/adapter.js +2 -2
  7. package/dist/adapters/docker/generators.js +19 -19
  8. package/dist/adapters/drupal/generator.js +76 -76
  9. package/dist/adapters/openai-agents/adapter.js +2 -2
  10. package/dist/cli/schema-driven/schema-loader.js +5 -5
  11. package/dist/mcp-server/__tests__/mcp-server.spec.js +20 -11
  12. package/dist/mcp-server/index.js +0 -0
  13. package/dist/package.json +24 -11
  14. package/dist/services/export/langchain/langchain-exporter.js +2 -2
  15. package/dist/services/export/langchain/memory-generator.js +2 -2
  16. package/dist/services/export/testing/test-generator.js +1 -1
  17. package/dist/services/taxonomy-service.d.ts +3 -3
  18. package/dist/skills/test-skill/package.json +1 -1
  19. package/dist/spec/extensions/role-manifest.md +188 -0
  20. package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
  21. package/dist/spec/v0.5/agent.schema.json +2 -1
  22. package/dist/spec/v0.5/extensions/mcp/README.md +1 -1
  23. package/dist/spec/v0.5/role.schema.json +268 -0
  24. package/dist/types/index.d.ts +2 -0
  25. package/dist/types/index.js +2 -0
  26. package/dist/types/role.d.ts +126 -0
  27. package/dist/types/role.js +38 -0
  28. package/dist/validation/validator.js +1 -1
  29. package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
  30. package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
  31. package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
  32. package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
  33. package/examples/agents/security-audit-agent.ossa.yaml +234 -0
  34. package/examples/agentscope/react-assistant/agent.ossa.yaml +36 -32
  35. package/examples/drupal/content-moderator.ossa.yaml +2 -2
  36. package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
  37. package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
  38. package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
  39. package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
  40. package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
  41. package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
  42. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  43. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  44. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
  45. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  46. package/examples/getting-started/README.md +3 -3
  47. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  48. package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
  49. package/examples/hierarchical-agent.ossa.yaml +10 -53
  50. package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
  51. package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
  52. package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
  53. package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
  54. package/examples/pipeline-agent.ossa.yaml +3 -3
  55. package/examples/platform-specific/claude-code-subagent.yaml +1 -1
  56. package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
  57. package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
  58. package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
  59. package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
  60. package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
  61. package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
  62. package/examples/reference-implementations/python-client/examples/basic_usage.py +0 -0
  63. package/examples/reference-implementations/python-client/examples/publish_agent.py +0 -0
  64. package/examples/roles/drupal-developer.role.yaml +37 -0
  65. package/examples/roles/platform-operator.role.yaml +28 -0
  66. package/examples/roles/security-auditor.role.yaml +27 -0
  67. package/examples/swarm-agent.ossa.yaml +13 -51
  68. package/examples/team-agent.ossa.yaml +12 -61
  69. package/examples/team-lead-teammate.ossa.yaml +12 -17
  70. package/openapi/agent-communication.yaml +260 -212
  71. package/openapi/agent-crud.yaml +217 -187
  72. package/openapi/agent-discovery.yaml +119 -81
  73. package/openapi/agent-identity.yaml +219 -187
  74. package/openapi/agent-taxonomy.yaml +95 -38
  75. package/openapi/agents-md-service.yaml +103 -30
  76. package/openapi/cli/openapi.yaml +147 -40
  77. package/openapi/core/ossa-core-api.openapi.yaml +327 -271
  78. package/openapi/core/ossa-registry-api.openapi.yaml +298 -235
  79. package/openapi/core/ossa-registry.openapi.yaml +299 -159
  80. package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
  81. package/openapi/daemon-api.openapi.yaml +323 -181
  82. package/openapi/dev-cli/openapi.yaml +137 -113
  83. package/openapi/github-sync.yaml +62 -19
  84. package/openapi/marketplace-plugin.openapi.yaml +539 -466
  85. package/openapi/ossa-api.openapi.yaml +354 -213
  86. package/openapi/ossa-cli-enhancements.openapi.yaml +108 -89
  87. package/openapi/ossa-cli.yaml +260 -184
  88. package/openapi/protocols/sse-streams.yaml +66 -74
  89. package/openapi/protocols/websocket-events.yaml +61 -54
  90. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
  91. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
  92. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
  93. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
  94. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
  95. package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
  96. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
  97. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
  98. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
  99. package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
  100. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
  101. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
  102. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
  103. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
  104. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
  105. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
  106. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
  107. package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
  108. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
  109. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
  110. package/openapi/release-automation.openapi.yaml +47 -13
  111. package/openapi/schemas/common/agent.yaml +30 -29
  112. package/openapi/schemas/common/errors.yaml +13 -3
  113. package/openapi/schemas/common/metadata.yaml +22 -7
  114. package/openapi/schemas/common/pagination.yaml +18 -6
  115. package/openapi/schemas/common/security.yaml +13 -5
  116. package/openapi/schemas/index.yaml +49 -42
  117. package/openapi/uadp-asyncapi.yaml +4 -2
  118. package/openapi/uadp-openapi.yaml +243 -165
  119. package/openapi/version-management.openapi.yaml +142 -135
  120. package/package.json +114 -103
  121. package/spec/extensions/role-manifest.md +188 -0
  122. package/spec/v0.4/extensions/mcp/README.md +1 -1
  123. package/spec/v0.5/agent.schema.json +2 -1
  124. package/spec/v0.5/extensions/mcp/README.md +1 -1
  125. package/spec/v0.5/role.schema.json +268 -0
@@ -1,7 +1,8 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OSSA CLI API
4
- version: {{VERSION}}
4
+ version:
5
+ "{ VERSION }": null
5
6
  description: |
6
7
  API specification for OSSA (Open Standard for Software Agents) CLI operations.
7
8
 
@@ -10,17 +11,14 @@ info:
10
11
  - Runtime validation with express-openapi-validator
11
12
  - API-First development (spec drives implementation)
12
13
  - Zero type drift between spec and implementation
13
-
14
14
  contact:
15
15
  name: BlueFly.io
16
16
  url: https://bluefly.io
17
17
  license:
18
18
  name: MIT
19
-
20
19
  servers:
21
20
  - url: http://localhost:3000/api/v1
22
21
  description: Local CLI API server
23
-
24
22
  tags:
25
23
  - name: agents
26
24
  description: Agent CRUD operations
@@ -34,10 +32,8 @@ tags:
34
32
  description: Agent template management
35
33
  - name: catalog
36
34
  description: Agent discovery and sharing
37
-
38
35
  components:
39
36
  schemas:
40
- # Core OSSA Agent Schema
41
37
  OssaAgent:
42
38
  type: object
43
39
  required:
@@ -48,17 +44,21 @@ components:
48
44
  properties:
49
45
  apiVersion:
50
46
  type: string
51
- enum: ['ossa/v0.3.6', 'ossa/v{{VERSION}}']
52
- example: 'ossa/v{{VERSION}}'
47
+ enum:
48
+ - ossa/v0.3.6
49
+ - ossa/v{{VERSION}}
50
+ example: ossa/v{{VERSION}}
53
51
  kind:
54
52
  type: string
55
- enum: ['Agent', 'Workflow', 'Task']
56
- example: 'Agent'
53
+ enum:
54
+ - Agent
55
+ - Workflow
56
+ - Task
57
+ example: Agent
57
58
  metadata:
58
- $ref: '#/components/schemas/AgentMetadata'
59
+ $ref: "#/components/schemas/AgentMetadata"
59
60
  spec:
60
- $ref: '#/components/schemas/AgentSpec'
61
-
61
+ $ref: "#/components/schemas/AgentSpec"
62
62
  AgentMetadata:
63
63
  type: object
64
64
  required:
@@ -67,36 +67,37 @@ components:
67
67
  properties:
68
68
  name:
69
69
  type: string
70
- pattern: '^[a-z0-9-]+$'
70
+ pattern: ^[a-z0-9-]+$
71
71
  minLength: 3
72
72
  maxLength: 50
73
- example: 'supercali-fragilisticagent'
73
+ example: supercali-fragilisticagent
74
74
  version:
75
75
  type: string
76
- pattern: '^\d+\.\d+\.\d+$'
77
- example: '1.0.0'
76
+ pattern: ^\d+\.\d+\.\d+$
77
+ example: 1.0.0
78
78
  description:
79
79
  type: string
80
80
  maxLength: 500
81
- example: 'AI agent for data processing'
81
+ example: AI agent for data processing
82
82
  author:
83
83
  type: string
84
- example: 'jane@example.com'
84
+ example: jane@example.com
85
85
  license:
86
86
  type: string
87
- example: 'MIT'
87
+ example: MIT
88
88
  tags:
89
89
  type: array
90
90
  items:
91
91
  type: string
92
- example: ['worker', 'data-processing']
92
+ example:
93
+ - worker
94
+ - data-processing
93
95
  created:
94
96
  type: string
95
97
  format: date-time
96
98
  updated:
97
99
  type: string
98
100
  format: date-time
99
-
100
101
  AgentSpec:
101
102
  type: object
102
103
  required:
@@ -107,23 +108,25 @@ components:
107
108
  description: System prompt / agent role description
108
109
  minLength: 10
109
110
  maxLength: 5000
110
- example: 'You are a data processing agent that transforms CSV files'
111
+ example: You are a data processing agent that transforms CSV files
111
112
  llm:
112
- $ref: '#/components/schemas/LLMConfig'
113
+ $ref: "#/components/schemas/LLMConfig"
113
114
  tools:
114
115
  type: array
115
116
  items:
116
- $ref: '#/components/schemas/Tool'
117
+ $ref: "#/components/schemas/Tool"
117
118
  capabilities:
118
119
  type: array
119
120
  items:
120
121
  type: string
121
- example: ['data-processing', 'file-handling', 'api-calls']
122
+ example:
123
+ - data-processing
124
+ - file-handling
125
+ - api-calls
122
126
  workflow:
123
- $ref: '#/components/schemas/Workflow'
127
+ $ref: "#/components/schemas/Workflow"
124
128
  autonomy:
125
- $ref: '#/components/schemas/AutonomyConfig'
126
-
129
+ $ref: "#/components/schemas/AutonomyConfig"
127
130
  LLMConfig:
128
131
  type: object
129
132
  required:
@@ -132,11 +135,16 @@ components:
132
135
  properties:
133
136
  provider:
134
137
  type: string
135
- enum: ['openai', 'anthropic', 'cohere', 'huggingface', 'local']
136
- example: 'anthropic'
138
+ enum:
139
+ - openai
140
+ - anthropic
141
+ - cohere
142
+ - huggingface
143
+ - local
144
+ example: anthropic
137
145
  model:
138
146
  type: string
139
- example: 'claude-sonnet-4-20250514'
147
+ example: claude-sonnet-4-20250514
140
148
  temperature:
141
149
  type: number
142
150
  minimum: 0
@@ -147,7 +155,6 @@ components:
147
155
  minimum: 1
148
156
  maximum: 100000
149
157
  default: 4096
150
-
151
158
  Tool:
152
159
  type: object
153
160
  required:
@@ -156,31 +163,32 @@ components:
156
163
  properties:
157
164
  name:
158
165
  type: string
159
- pattern: '^[a-z_][a-z0-9_]*$'
160
- example: 'process_data'
166
+ pattern: ^[a-z_][a-z0-9_]*$
167
+ example: process_data
161
168
  description:
162
169
  type: string
163
170
  maxLength: 500
164
- example: 'Process and transform data'
171
+ example: Process and transform data
165
172
  type:
166
173
  type: string
167
- enum: ['function', 'api', 'mcp']
168
- default: 'function'
174
+ enum:
175
+ - function
176
+ - api
177
+ - mcp
178
+ default: function
169
179
  inputSchema:
170
180
  type: object
171
181
  description: JSON Schema for tool input
172
182
  server:
173
183
  type: string
174
184
  description: MCP server name (if type=mcp)
175
-
176
185
  Workflow:
177
186
  type: object
178
187
  properties:
179
188
  steps:
180
189
  type: array
181
190
  items:
182
- $ref: '#/components/schemas/WorkflowStep'
183
-
191
+ $ref: "#/components/schemas/WorkflowStep"
184
192
  WorkflowStep:
185
193
  type: object
186
194
  required:
@@ -189,26 +197,26 @@ components:
189
197
  properties:
190
198
  agent:
191
199
  type: string
192
- example: 'researcher'
200
+ example: researcher
193
201
  task:
194
202
  type: string
195
- example: 'research'
203
+ example: research
196
204
  description:
197
205
  type: string
198
- example: 'Research the topic'
199
-
206
+ example: Research the topic
200
207
  AutonomyConfig:
201
208
  type: object
202
209
  properties:
203
210
  level:
204
211
  type: string
205
- enum: ['fully_autonomous', 'supervised', 'human_in_loop']
206
- default: 'supervised'
212
+ enum:
213
+ - fully_autonomous
214
+ - supervised
215
+ - human_in_loop
216
+ default: supervised
207
217
  requiresApproval:
208
218
  type: boolean
209
219
  default: false
210
-
211
- # Template Schema
212
220
  AgentTemplate:
213
221
  type: object
214
222
  required:
@@ -219,34 +227,42 @@ components:
219
227
  properties:
220
228
  id:
221
229
  type: string
222
- pattern: '^[a-z0-9-]+$'
223
- example: 'worker-data-processor'
230
+ pattern: ^[a-z0-9-]+$
231
+ example: worker-data-processor
224
232
  name:
225
233
  type: string
226
- example: 'Data Processor Worker'
234
+ example: Data Processor Worker
227
235
  description:
228
236
  type: string
229
- example: 'Worker agent specialized in data processing tasks'
237
+ example: Worker agent specialized in data processing tasks
230
238
  category:
231
239
  type: string
232
- enum: ['worker', 'coordinator', 'specialist', 'reviewer', 'executor']
233
- example: 'worker'
240
+ enum:
241
+ - worker
242
+ - coordinator
243
+ - specialist
244
+ - reviewer
245
+ - executor
246
+ example: worker
234
247
  icon:
235
248
  type: string
236
- example: '🔧'
249
+ example: 🔧
237
250
  defaults:
238
- $ref: '#/components/schemas/TemplateDefaults'
251
+ $ref: "#/components/schemas/TemplateDefaults"
239
252
  useCases:
240
253
  type: array
241
254
  items:
242
255
  type: string
243
- example: ['Process CSV files', 'Transform JSON data']
256
+ example:
257
+ - Process CSV files
258
+ - Transform JSON data
244
259
  examples:
245
260
  type: array
246
261
  items:
247
262
  type: string
248
- example: ['data-ingestion-worker', 'etl-processor']
249
-
263
+ example:
264
+ - data-ingestion-worker
265
+ - etl-processor
250
266
  TemplateDefaults:
251
267
  type: object
252
268
  properties:
@@ -263,30 +279,32 @@ components:
263
279
  items:
264
280
  type: string
265
281
  llm:
266
- $ref: '#/components/schemas/LLMConfig'
267
-
268
- # Export Operations
282
+ $ref: "#/components/schemas/LLMConfig"
269
283
  ExportRequest:
270
284
  type: object
271
285
  required:
272
286
  - manifest
273
287
  properties:
274
288
  manifest:
275
- $ref: '#/components/schemas/OssaAgent'
289
+ $ref: "#/components/schemas/OssaAgent"
276
290
  platform:
277
291
  type: string
278
- enum: ['langchain', 'mcp', 'crewai', 'drupal', 'gitlab-duo']
279
- example: 'mcp'
292
+ enum:
293
+ - langchain
294
+ - mcp
295
+ - crewai
296
+ - drupal
297
+ - gitlab-duo
298
+ example: mcp
280
299
  outputDir:
281
300
  type: string
282
- example: './exports'
301
+ example: ./exports
283
302
  dryRun:
284
303
  type: boolean
285
304
  default: false
286
305
  validate:
287
306
  type: boolean
288
307
  default: true
289
-
290
308
  ExportResult:
291
309
  type: object
292
310
  required:
@@ -296,13 +314,13 @@ components:
296
314
  properties:
297
315
  platform:
298
316
  type: string
299
- example: 'mcp'
317
+ example: mcp
300
318
  success:
301
319
  type: boolean
302
320
  files:
303
321
  type: array
304
322
  items:
305
- $ref: '#/components/schemas/ExportFile'
323
+ $ref: "#/components/schemas/ExportFile"
306
324
  error:
307
325
  type: string
308
326
  metadata:
@@ -317,7 +335,6 @@ components:
317
335
  type: array
318
336
  items:
319
337
  type: string
320
-
321
338
  ExportFile:
322
339
  type: object
323
340
  required:
@@ -327,31 +344,38 @@ components:
327
344
  properties:
328
345
  path:
329
346
  type: string
330
- example: 'mcp/server.ts'
347
+ example: mcp/server.ts
331
348
  content:
332
349
  type: string
333
350
  type:
334
351
  type: string
335
- enum: ['code', 'config', 'documentation', 'test', 'other']
352
+ enum:
353
+ - code
354
+ - config
355
+ - documentation
356
+ - test
357
+ - other
336
358
  language:
337
359
  type: string
338
- example: 'typescript'
339
-
360
+ example: typescript
340
361
  BatchExportRequest:
341
362
  type: object
342
363
  required:
343
364
  - manifest
344
365
  properties:
345
366
  manifest:
346
- $ref: '#/components/schemas/OssaAgent'
367
+ $ref: "#/components/schemas/OssaAgent"
347
368
  platforms:
348
369
  type: array
349
370
  items:
350
371
  type: string
351
- example: ['langchain', 'mcp', 'crewai']
372
+ example:
373
+ - langchain
374
+ - mcp
375
+ - crewai
352
376
  outputDir:
353
377
  type: string
354
- default: './exports'
378
+ default: ./exports
355
379
  parallel:
356
380
  type: boolean
357
381
  default: false
@@ -361,7 +385,6 @@ components:
361
385
  dryRun:
362
386
  type: boolean
363
387
  default: false
364
-
365
388
  BatchExportResult:
366
389
  type: object
367
390
  required:
@@ -374,7 +397,7 @@ components:
374
397
  results:
375
398
  type: array
376
399
  items:
377
- $ref: '#/components/schemas/ExportResult'
400
+ $ref: "#/components/schemas/ExportResult"
378
401
  summary:
379
402
  type: object
380
403
  required:
@@ -391,8 +414,6 @@ components:
391
414
  type: integer
392
415
  duration:
393
416
  type: integer
394
-
395
- # Agent List Response
396
417
  AgentList:
397
418
  type: object
398
419
  required:
@@ -402,14 +423,13 @@ components:
402
423
  agents:
403
424
  type: array
404
425
  items:
405
- $ref: '#/components/schemas/AgentSummary'
426
+ $ref: "#/components/schemas/AgentSummary"
406
427
  total:
407
428
  type: integer
408
429
  page:
409
430
  type: integer
410
431
  pageSize:
411
432
  type: integer
412
-
413
433
  AgentSummary:
414
434
  type: object
415
435
  required:
@@ -435,8 +455,6 @@ components:
435
455
  updated:
436
456
  type: string
437
457
  format: date-time
438
-
439
- # Error Response
440
458
  Error:
441
459
  type: object
442
460
  required:
@@ -445,17 +463,15 @@ components:
445
463
  properties:
446
464
  error:
447
465
  type: string
448
- example: 'VALIDATION_ERROR'
466
+ example: VALIDATION_ERROR
449
467
  message:
450
468
  type: string
451
- example: 'Agent name must be lowercase alphanumeric with hyphens'
469
+ example: Agent name must be lowercase alphanumeric with hyphens
452
470
  details:
453
471
  type: object
454
472
  path:
455
473
  type: string
456
- example: 'metadata.name'
457
-
458
- # AGENTS.md (agents.md standard) - OSSA owns; BuildKit consumes via this API
474
+ example: metadata.name
459
475
  AgentsMdContent:
460
476
  type: object
461
477
  description: AGENTS.md content or generate options (agents.md standard https://agents.md)
@@ -464,16 +480,15 @@ components:
464
480
  type: string
465
481
  description: Raw AGENTS.md markdown (when providing custom content)
466
482
  options:
467
- $ref: '#/components/schemas/AgentsMdOptions'
483
+ $ref: "#/components/schemas/AgentsMdOptions"
468
484
  description: Options when generating from manifest (omit content to generate)
469
-
470
485
  AgentsMdOptions:
471
486
  type: object
472
487
  description: Options for generating AGENTS.md from OSSA manifest
473
488
  properties:
474
489
  outputPath:
475
490
  type: string
476
- default: 'AGENTS.md'
491
+ default: AGENTS.md
477
492
  description: Output path relative to agent directory
478
493
  sections:
479
494
  type: object
@@ -519,10 +534,11 @@ components:
519
534
  default: true
520
535
  custom:
521
536
  type: string
522
-
523
537
  AgentsMdResponse:
524
538
  type: object
525
- required: [content, path]
539
+ required:
540
+ - content
541
+ - path
526
542
  properties:
527
543
  content:
528
544
  type: string
@@ -530,11 +546,12 @@ components:
530
546
  path:
531
547
  type: string
532
548
  description: Resolved path where file is or would be written
533
-
534
549
  DiscoveredAgentsMd:
535
550
  type: object
536
551
  description: One discovered AGENTS.md entry (for discovery and maintenance)
537
- required: [agentsMdPath, baseDir]
552
+ required:
553
+ - agentsMdPath
554
+ - baseDir
538
555
  properties:
539
556
  agentsMdPath:
540
557
  type: string
@@ -558,24 +575,27 @@ components:
558
575
  baseDir:
559
576
  type: string
560
577
  description: Workspace base directory
561
-
562
578
  AgentsMdDiscoverResponse:
563
579
  type: object
564
- required: [discovered]
580
+ required:
581
+ - discovered
565
582
  properties:
566
583
  discovered:
567
584
  type: array
568
585
  items:
569
- $ref: '#/components/schemas/DiscoveredAgentsMd'
570
-
586
+ $ref: "#/components/schemas/DiscoveredAgentsMd"
571
587
  AgentsMdMaintainResponse:
572
588
  type: object
573
- required: [discovered, updated, skipped, failed]
589
+ required:
590
+ - discovered
591
+ - updated
592
+ - skipped
593
+ - failed
574
594
  properties:
575
595
  discovered:
576
596
  type: array
577
597
  items:
578
- $ref: '#/components/schemas/DiscoveredAgentsMd'
598
+ $ref: "#/components/schemas/DiscoveredAgentsMd"
579
599
  updated:
580
600
  type: array
581
601
  items:
@@ -594,13 +614,12 @@ components:
594
614
  type: string
595
615
  error:
596
616
  type: string
597
-
598
617
  paths:
599
- # Agent CRUD Operations
600
618
  /agents:
601
619
  get:
602
620
  operationId: listAgents
603
- tags: [agents]
621
+ tags:
622
+ - agents
604
623
  summary: List all agents
605
624
  description: Get list of all agents in workspace with filtering and pagination
606
625
  parameters:
@@ -627,16 +646,17 @@ paths:
627
646
  type: integer
628
647
  default: 20
629
648
  responses:
630
- '200':
649
+ "200":
631
650
  description: List of agents
632
651
  content:
633
652
  application/json:
634
653
  schema:
635
- $ref: '#/components/schemas/AgentList'
636
-
654
+ $ref: "#/components/schemas/AgentList"
655
+ x-ossa-capability: cli-list-agents
637
656
  post:
638
657
  operationId: createAgent
639
- tags: [agents]
658
+ tags:
659
+ - agents
640
660
  summary: Create new agent
641
661
  description: Create agent from manifest (used by wizard)
642
662
  requestBody:
@@ -644,25 +664,29 @@ paths:
644
664
  content:
645
665
  application/json:
646
666
  schema:
647
- $ref: '#/components/schemas/OssaAgent'
667
+ $ref: "#/components/schemas/OssaAgent"
648
668
  responses:
649
- '201':
669
+ "201":
650
670
  description: Agent created
651
671
  content:
652
672
  application/json:
653
673
  schema:
654
- $ref: '#/components/schemas/OssaAgent'
655
- '400':
674
+ $ref: "#/components/schemas/OssaAgent"
675
+ "400":
656
676
  description: Validation error
657
677
  content:
658
678
  application/json:
659
679
  schema:
660
- $ref: '#/components/schemas/Error'
661
-
680
+ $ref: "#/components/schemas/Error"
681
+ x-ossa-capability: cli-create-agent
682
+ x-ossa-autonomy:
683
+ level: supervised
684
+ approval_required: true
662
685
  /agents/{name}:
663
686
  get:
664
687
  operationId: getAgent
665
- tags: [agents]
688
+ tags:
689
+ - agents
666
690
  summary: Get agent by name
667
691
  parameters:
668
692
  - name: name
@@ -671,22 +695,24 @@ paths:
671
695
  schema:
672
696
  type: string
673
697
  responses:
674
- '200':
698
+ "200":
675
699
  description: Agent details
676
700
  content:
677
701
  application/json:
678
702
  schema:
679
- $ref: '#/components/schemas/OssaAgent'
680
- '404':
703
+ $ref: "#/components/schemas/OssaAgent"
704
+ "404":
681
705
  description: Agent not found
682
706
  content:
683
707
  application/json:
684
708
  schema:
685
- $ref: '#/components/schemas/Error'
686
-
709
+ $ref: "#/components/schemas/Error"
710
+ x-ossa-capability: cli-get-agent
711
+ description: Get agent by name
687
712
  put:
688
713
  operationId: updateAgent
689
- tags: [agents]
714
+ tags:
715
+ - agents
690
716
  summary: Update agent
691
717
  parameters:
692
718
  - name: name
@@ -699,18 +725,23 @@ paths:
699
725
  content:
700
726
  application/json:
701
727
  schema:
702
- $ref: '#/components/schemas/OssaAgent'
728
+ $ref: "#/components/schemas/OssaAgent"
703
729
  responses:
704
- '200':
730
+ "200":
705
731
  description: Agent updated
706
732
  content:
707
733
  application/json:
708
734
  schema:
709
- $ref: '#/components/schemas/OssaAgent'
710
-
735
+ $ref: "#/components/schemas/OssaAgent"
736
+ x-ossa-capability: cli-update-agent
737
+ x-ossa-autonomy:
738
+ level: supervised
739
+ approval_required: true
740
+ description: Update agent
711
741
  delete:
712
742
  operationId: deleteAgent
713
- tags: [agents]
743
+ tags:
744
+ - agents
714
745
  summary: Delete agent
715
746
  parameters:
716
747
  - name: name
@@ -719,16 +750,20 @@ paths:
719
750
  schema:
720
751
  type: string
721
752
  responses:
722
- '204':
753
+ "204":
723
754
  description: Agent deleted
724
- '404':
755
+ "404":
725
756
  description: Agent not found
726
-
727
- # AGENTS.md (agents.md) - same logic as ossa agents-md CLI; BuildKit consumes via API
757
+ x-ossa-capability: cli-delete-agent
758
+ x-ossa-autonomy:
759
+ level: supervised
760
+ approval_required: true
761
+ description: Delete agent
728
762
  /agents/{name}/agents-md:
729
763
  get:
730
764
  operationId: getAgentsMd
731
- tags: [agents-md]
765
+ tags:
766
+ - agents-md
732
767
  summary: Get AGENTS.md for an agent
733
768
  description: Return AGENTS.md content (from disk or generate from manifest). Same logic as ossa agents-md generate.
734
769
  parameters:
@@ -745,22 +780,23 @@ paths:
745
780
  default: false
746
781
  description: If true, generate from manifest when file missing
747
782
  responses:
748
- '200':
783
+ "200":
749
784
  description: AGENTS.md content
750
785
  content:
751
786
  application/json:
752
787
  schema:
753
- $ref: '#/components/schemas/AgentsMdResponse'
754
- '404':
788
+ $ref: "#/components/schemas/AgentsMdResponse"
789
+ "404":
755
790
  description: Agent or AGENTS.md not found
756
791
  content:
757
792
  application/json:
758
793
  schema:
759
- $ref: '#/components/schemas/Error'
760
-
794
+ $ref: "#/components/schemas/Error"
795
+ x-ossa-capability: cli-get-agents-md
761
796
  put:
762
797
  operationId: putAgentsMd
763
- tags: [agents-md]
798
+ tags:
799
+ - agents-md
764
800
  summary: Create or update AGENTS.md for an agent
765
801
  description: Write AGENTS.md (raw content or generate from manifest with options). Same logic as ossa agents-md generate.
766
802
  parameters:
@@ -773,30 +809,34 @@ paths:
773
809
  content:
774
810
  application/json:
775
811
  schema:
776
- $ref: '#/components/schemas/AgentsMdContent'
812
+ $ref: "#/components/schemas/AgentsMdContent"
777
813
  responses:
778
- '200':
814
+ "200":
779
815
  description: AGENTS.md written
780
816
  content:
781
817
  application/json:
782
818
  schema:
783
- $ref: '#/components/schemas/AgentsMdResponse'
784
- '400':
819
+ $ref: "#/components/schemas/AgentsMdResponse"
820
+ "400":
785
821
  description: Validation error
786
822
  content:
787
823
  application/json:
788
824
  schema:
789
- $ref: '#/components/schemas/Error'
790
- '404':
825
+ $ref: "#/components/schemas/Error"
826
+ "404":
791
827
  description: Agent not found
792
828
  content:
793
829
  application/json:
794
830
  schema:
795
- $ref: '#/components/schemas/Error'
796
-
831
+ $ref: "#/components/schemas/Error"
832
+ x-ossa-capability: cli-put-agents-md
833
+ x-ossa-autonomy:
834
+ level: supervised
835
+ approval_required: true
797
836
  delete:
798
837
  operationId: deleteAgentsMd
799
- tags: [agents-md]
838
+ tags:
839
+ - agents-md
800
840
  summary: Remove AGENTS.md for an agent
801
841
  parameters:
802
842
  - name: name
@@ -805,20 +845,24 @@ paths:
805
845
  schema:
806
846
  type: string
807
847
  responses:
808
- '204':
848
+ "204":
809
849
  description: AGENTS.md deleted
810
- '404':
850
+ "404":
811
851
  description: Agent or AGENTS.md not found
812
852
  content:
813
853
  application/json:
814
854
  schema:
815
- $ref: '#/components/schemas/Error'
816
-
817
- # AGENTS.md discovery and maintenance (update/maintain after creation)
855
+ $ref: "#/components/schemas/Error"
856
+ x-ossa-capability: cli-delete-agents-md
857
+ x-ossa-autonomy:
858
+ level: supervised
859
+ approval_required: true
860
+ description: Remove AGENTS.md for an agent
818
861
  /agents-md/discover:
819
862
  get:
820
863
  operationId: discoverAgentsMd
821
- tags: [agents-md]
864
+ tags:
865
+ - agents-md
822
866
  summary: Discover all AGENTS.md in workspace
823
867
  description: Find all AGENTS.md files and their manifests (.agents/*/ and root) for update and maintenance.
824
868
  parameters:
@@ -829,17 +873,18 @@ paths:
829
873
  default: .
830
874
  description: Workspace directory to scan
831
875
  responses:
832
- '200':
876
+ "200":
833
877
  description: List of discovered AGENTS.md entries
834
878
  content:
835
879
  application/json:
836
880
  schema:
837
- $ref: '#/components/schemas/AgentsMdDiscoverResponse'
838
-
881
+ $ref: "#/components/schemas/AgentsMdDiscoverResponse"
882
+ x-ossa-capability: cli-discover-agents-md
839
883
  /agents-md/maintain:
840
884
  post:
841
885
  operationId: maintainAgentsMd
842
- tags: [agents-md]
886
+ tags:
887
+ - agents-md
843
888
  summary: Maintain AGENTS.md files in workspace
844
889
  description: Discover then validate/regenerate to update and maintain AGENTS.md after creation.
845
890
  parameters:
@@ -862,59 +907,72 @@ paths:
862
907
  type: boolean
863
908
  default: false
864
909
  responses:
865
- '200':
910
+ "200":
866
911
  description: Maintain result
867
912
  content:
868
913
  application/json:
869
914
  schema:
870
- $ref: '#/components/schemas/AgentsMdMaintainResponse'
871
-
872
- # Export Operations
915
+ $ref: "#/components/schemas/AgentsMdMaintainResponse"
916
+ x-ossa-capability: cli-maintain-agents-md
917
+ x-ossa-autonomy:
918
+ level: supervised
919
+ approval_required: true
873
920
  /export:
874
921
  post:
875
922
  operationId: exportAgent
876
- tags: [export]
923
+ tags:
924
+ - export
877
925
  summary: Export agent to platform
878
926
  requestBody:
879
927
  required: true
880
928
  content:
881
929
  application/json:
882
930
  schema:
883
- $ref: '#/components/schemas/ExportRequest'
931
+ $ref: "#/components/schemas/ExportRequest"
884
932
  responses:
885
- '200':
933
+ "200":
886
934
  description: Export successful
887
935
  content:
888
936
  application/json:
889
937
  schema:
890
- $ref: '#/components/schemas/ExportResult'
891
-
938
+ $ref: "#/components/schemas/ExportResult"
939
+ x-ossa-capability: cli-export-agent
940
+ x-ossa-autonomy:
941
+ level: supervised
942
+ approval_required: true
943
+ description: Export agent to platform
892
944
  /export/batch:
893
945
  post:
894
946
  operationId: batchExport
895
- tags: [export]
947
+ tags:
948
+ - export
896
949
  summary: Batch export to multiple platforms
897
950
  requestBody:
898
951
  required: true
899
952
  content:
900
953
  application/json:
901
954
  schema:
902
- $ref: '#/components/schemas/BatchExportRequest'
955
+ $ref: "#/components/schemas/BatchExportRequest"
903
956
  responses:
904
- '200':
957
+ "200":
905
958
  description: Batch export completed
906
959
  content:
907
960
  application/json:
908
961
  schema:
909
- $ref: '#/components/schemas/BatchExportResult'
910
-
962
+ $ref: "#/components/schemas/BatchExportResult"
963
+ x-ossa-capability: cli-batch-export
964
+ x-ossa-autonomy:
965
+ level: supervised
966
+ approval_required: true
967
+ description: Batch export to multiple platforms
911
968
  /export/platforms:
912
969
  get:
913
970
  operationId: listPlatforms
914
- tags: [export]
971
+ tags:
972
+ - export
915
973
  summary: List available export platforms
916
974
  responses:
917
- '200':
975
+ "200":
918
976
  description: List of platforms
919
977
  content:
920
978
  application/json:
@@ -933,12 +991,13 @@ paths:
933
991
  type: array
934
992
  items:
935
993
  type: string
936
-
937
- # Template Operations
994
+ x-ossa-capability: cli-list-platforms
995
+ description: List available export platforms
938
996
  /templates:
939
997
  get:
940
998
  operationId: listTemplates
941
- tags: [templates]
999
+ tags:
1000
+ - templates
942
1001
  summary: List all agent templates
943
1002
  parameters:
944
1003
  - name: category
@@ -946,19 +1005,21 @@ paths:
946
1005
  schema:
947
1006
  type: string
948
1007
  responses:
949
- '200':
1008
+ "200":
950
1009
  description: List of templates
951
1010
  content:
952
1011
  application/json:
953
1012
  schema:
954
1013
  type: array
955
1014
  items:
956
- $ref: '#/components/schemas/AgentTemplate'
957
-
1015
+ $ref: "#/components/schemas/AgentTemplate"
1016
+ x-ossa-capability: cli-list-templates
1017
+ description: List all agent templates
958
1018
  /templates/{id}:
959
1019
  get:
960
1020
  operationId: getTemplate
961
- tags: [templates]
1021
+ tags:
1022
+ - templates
962
1023
  summary: Get template by ID
963
1024
  parameters:
964
1025
  - name: id
@@ -967,9 +1028,24 @@ paths:
967
1028
  schema:
968
1029
  type: string
969
1030
  responses:
970
- '200':
1031
+ "200":
971
1032
  description: Template details
972
1033
  content:
973
1034
  application/json:
974
1035
  schema:
975
- $ref: '#/components/schemas/AgentTemplate'
1036
+ $ref: "#/components/schemas/AgentTemplate"
1037
+ x-ossa-capability: cli-get-template
1038
+ description: Get template by ID
1039
+ x-ossa-metadata:
1040
+ version: 0.5.0
1041
+ compliance:
1042
+ level: standard
1043
+ observability:
1044
+ tracing: true
1045
+ metrics: true
1046
+ logging: true
1047
+ x-ossa:
1048
+ version: 0.5.0
1049
+ agent:
1050
+ id: ossa-cli-api
1051
+ type: gateway