@bluefly/openstandardagents 0.2.5-RC → 0.2.7

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 (238) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
  3. package/.github/workflows/dependabot-comment.yml +34 -0
  4. package/.github/workflows/pr-comment.yml +33 -0
  5. package/.husky/pre-commit +5 -0
  6. package/.kiro/config.json +21 -0
  7. package/.kiro/settings/mcp.json +61 -0
  8. package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
  9. package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
  10. package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
  11. package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
  12. package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
  13. package/.kiro/specs/website-brand-identity/tasks.md +981 -0
  14. package/CHANGELOG.md +23 -0
  15. package/README.md +12 -3
  16. package/bin/ossa-dev +42 -0
  17. package/bin/ossa-export +32 -0
  18. package/bin/ossa-generate +60 -0
  19. package/bin/ossa-health +40 -0
  20. package/bin/ossa-init +26 -0
  21. package/dist/repositories/schema.repository.d.ts.map +1 -1
  22. package/dist/repositories/schema.repository.js +15 -10
  23. package/dist/repositories/schema.repository.js.map +1 -1
  24. package/dist/services/github-sync/github-client.d.ts +14 -0
  25. package/dist/services/github-sync/github-client.d.ts.map +1 -0
  26. package/dist/services/github-sync/github-client.js +41 -0
  27. package/dist/services/github-sync/github-client.js.map +1 -0
  28. package/dist/services/github-sync/gitlab-client.d.ts +17 -0
  29. package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
  30. package/dist/services/github-sync/gitlab-client.js +42 -0
  31. package/dist/services/github-sync/gitlab-client.js.map +1 -0
  32. package/dist/services/github-sync/schemas.d.ts +46 -0
  33. package/dist/services/github-sync/schemas.d.ts.map +1 -0
  34. package/dist/services/github-sync/schemas.js +36 -0
  35. package/dist/services/github-sync/schemas.js.map +1 -0
  36. package/dist/services/github-sync/sync.service.d.ts +27 -0
  37. package/dist/services/github-sync/sync.service.d.ts.map +1 -0
  38. package/dist/services/github-sync/sync.service.js +99 -0
  39. package/dist/services/github-sync/sync.service.js.map +1 -0
  40. package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
  41. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
  42. package/dist/services/runtime/claude/capability-mapper.js +245 -0
  43. package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
  44. package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
  45. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/claude/claude-adapter.js +287 -0
  47. package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
  48. package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
  49. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
  50. package/dist/services/runtime/claude/manifest-parser.js +169 -0
  51. package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
  52. package/dist/services/runtime/claude/types.d.ts +115 -0
  53. package/dist/services/runtime/claude/types.d.ts.map +1 -0
  54. package/dist/services/runtime/claude/types.js +6 -0
  55. package/dist/services/runtime/claude/types.js.map +1 -0
  56. package/dist/services/validation.service.d.ts.map +1 -1
  57. package/dist/services/validation.service.js +12 -1
  58. package/dist/services/validation.service.js.map +1 -1
  59. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  60. package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
  61. package/dist/spec/v0.2.6/README.md +72 -0
  62. package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  63. package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  64. package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  65. package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  66. package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  67. package/dist/spec/v0.2.6-dev/README.md +75 -0
  68. package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  69. package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  70. package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6-dev/ossa-0.2.5.schema.json} +9 -9
  71. package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  72. package/{spec/v0.2.4/ossa-0.2.4-dev.schema.json → dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json} +9 -9
  73. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  74. package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
  75. package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  76. package/docs/brand-guide/01-brand-overview.md +37 -0
  77. package/docs/brand-guide/02-logo-usage.md +43 -0
  78. package/docs/brand-guide/03-color-palette.md +70 -0
  79. package/docs/brand-guide/04-typography.md +82 -0
  80. package/docs/brand-guide/05-voice-and-tone.md +108 -0
  81. package/docs/brand-guide/06-visual-elements.md +137 -0
  82. package/docs/brand-guide/07-application-examples.md +153 -0
  83. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
  84. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  85. package/docs/brand-guide/README.md +107 -0
  86. package/docs/comparison.md +315 -0
  87. package/docs/operations/automation-roadmap.md +245 -0
  88. package/docs/operations/github-sync-strategy.md +357 -0
  89. package/examples/anthropic/claude-assistant.ossa.json +5 -4
  90. package/examples/autogen/multi-agent.ossa.json +6 -4
  91. package/examples/crewai/research-team.ossa.json +14 -5
  92. package/examples/cursor/code-review-agent.ossa.json +21 -6
  93. package/examples/langchain/chain-agent.ossa.json +21 -5
  94. package/examples/langflow/workflow-agent.ossa.json +2 -3
  95. package/examples/langgraph/state-machine-agent.ossa.json +2 -3
  96. package/examples/llamaindex/rag-agent.ossa.json +2 -3
  97. package/examples/openai/multi-tool-agent.ossa.json +32 -9
  98. package/examples/openai/swarm-agent.ossa.json +18 -5
  99. package/examples/vercel/edge-agent.ossa.json +5 -4
  100. package/openapi/github-sync.yaml +115 -0
  101. package/package.json +25 -4
  102. package/scripts/README.md +103 -0
  103. package/scripts/auto-rebase-mrs.ts +106 -0
  104. package/scripts/batch-dependabot.sh +57 -0
  105. package/scripts/configure-gitlab-branch-protection.ts +95 -0
  106. package/scripts/create-issue-helper.ts +238 -0
  107. package/scripts/create-milestone-issue.ts +73 -0
  108. package/scripts/fix-schema-formats.js +82 -0
  109. package/scripts/generate-agents-catalog.ts +77 -0
  110. package/scripts/generate-api-docs.ts +218 -0
  111. package/scripts/generate-cli-docs.ts +410 -0
  112. package/scripts/generate-config-docs.ts +109 -0
  113. package/scripts/generate-errors-docs.ts +76 -0
  114. package/scripts/generate-examples-docs.ts +99 -0
  115. package/scripts/generate-schema-docs.ts +296 -0
  116. package/scripts/generate-types-docs.ts +48 -0
  117. package/scripts/lowercase-docs.ts +43 -0
  118. package/scripts/manage-milestone-mrs.ts +279 -0
  119. package/scripts/rebase-all-mrs.sh +75 -0
  120. package/scripts/sync-github-pr.sh +48 -0
  121. package/scripts/sync-version.js +40 -0
  122. package/scripts/sync-wiki.sh +50 -0
  123. package/scripts/validate-all.js +127 -0
  124. package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  125. package/spec/v0.2.6/CHANGELOG.md +401 -0
  126. package/spec/v0.2.6/README.md +72 -0
  127. package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  128. package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  129. package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  130. package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  131. package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  132. package/spec/v0.2.6-dev/README.md +75 -0
  133. package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  134. package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  135. package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  136. package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  137. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
  138. package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  139. package/spec/v0.2.7/core/agentgraph.md +324 -0
  140. package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  141. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
  142. package/website/app/about/page.tsx +53 -44
  143. package/website/app/ecosystem/page.tsx +146 -111
  144. package/website/app/globals.scss +256 -21
  145. package/website/app/page.tsx +394 -182
  146. package/website/app/page.tsx.bak +679 -0
  147. package/website/app/page.tsx.bak2 +649 -0
  148. package/website/app/schema/page.tsx +3 -3
  149. package/website/app/specification/page.tsx +1 -1
  150. package/website/components/layout/Header.tsx +27 -23
  151. package/website/components/ui/Badge.tsx +82 -0
  152. package/website/components/ui/Button.tsx +116 -0
  153. package/website/components/ui/Card.tsx +167 -0
  154. package/website/components/ui/Checkbox.tsx +141 -0
  155. package/website/components/ui/Input.tsx +169 -0
  156. package/website/components/ui/Radio.tsx +141 -0
  157. package/website/components/ui/Select.tsx +182 -0
  158. package/website/components/ui/Tag.tsx +158 -0
  159. package/website/components/ui/Textarea.tsx +195 -0
  160. package/website/components/ui/index.ts +11 -0
  161. package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
  162. package/website/content/docs/agents/catalog.md +28 -0
  163. package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  164. package/website/content/docs/api-reference/index.md +38 -0
  165. package/website/content/docs/api-reference/ossa-core-api.md +634 -0
  166. package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
  167. package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
  168. package/website/content/docs/cli-reference/index.md +111 -0
  169. package/website/content/docs/cli-reference/ossa-agents.md +70 -0
  170. package/website/content/docs/cli-reference/ossa-export.md +56 -0
  171. package/website/content/docs/cli-reference/ossa-generate.md +66 -0
  172. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
  173. package/website/content/docs/cli-reference/ossa-import.md +56 -0
  174. package/website/content/docs/cli-reference/ossa-init.md +57 -0
  175. package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
  176. package/website/content/docs/cli-reference/ossa-run.md +66 -0
  177. package/website/content/docs/cli-reference/ossa-schema.md +57 -0
  178. package/website/content/docs/cli-reference/ossa-setup.md +57 -0
  179. package/website/content/docs/cli-reference/ossa-validate.md +66 -0
  180. package/website/content/docs/configuration/index.md +97 -0
  181. package/website/content/docs/deployment/github-mirroring.md +924 -0
  182. package/website/content/docs/documentation.md +100 -0
  183. package/website/content/docs/ecosystem/framework-support.md +551 -9
  184. package/website/content/docs/errors/index.md +10 -0
  185. package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  186. package/website/content/docs/examples/catalog.md +300 -0
  187. package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
  188. package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
  189. package/website/content/docs/getting-started.md +1 -1
  190. package/website/content/docs/integrations/aiflow.md +2 -2
  191. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  192. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  193. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
  194. package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
  195. package/website/content/docs/openapi-extensions/index.md +1 -1
  196. package/website/content/docs/ossa-compliant-badge.md +1 -1
  197. package/website/content/docs/pre-release/index.md +5 -5
  198. package/website/content/docs/releases/v0.2.6.md +99 -0
  199. package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
  200. package/website/content/docs/schema-reference/agent-id.md +52 -0
  201. package/website/content/docs/schema-reference/agent-name.md +50 -0
  202. package/website/content/docs/schema-reference/agent-role.md +54 -0
  203. package/website/content/docs/schema-reference/agent-version.md +50 -0
  204. package/website/content/docs/schema-reference/index.md +26 -157
  205. package/website/content/docs/types-reference/index.md +105 -0
  206. package/website/content/docs/versioning.md +3 -3
  207. package/website/dev.sh +53 -0
  208. package/website/docker-compose.dev.yml +36 -0
  209. package/website/lib/version.ts +1 -1
  210. package/website/lib/versions.json +45 -20
  211. package/website/package.json +1 -1
  212. package/website/styles/_spacing.scss +453 -0
  213. package/website/styles/_tokens.scss +245 -0
  214. package/website/styles/_typography.scss +361 -0
  215. package/website/styles/_variables.scss +270 -19
  216. package/website/tailwind.config.ts +113 -79
  217. package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
  218. package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
  219. package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
  220. package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
  221. package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
  222. package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
  223. package/docs/issue-19-completion-summary.md +0 -648
  224. package/docs/issue-19-validation.md +0 -351
  225. package/website/content/docs/Examples.md +0 -71
  226. package/website/content/docs/OpenAPI-Extensions.md +0 -934
  227. package/website/content/docs/core-concepts/Project-Structure.md +0 -348
  228. package/website/content/docs/examples/Migration-Guides.md +0 -214
  229. package/website/content/docs/for-audiences/Architects.md +0 -224
  230. package/website/content/docs/for-audiences/Developers.md +0 -220
  231. package/website/content/docs/for-audiences/Enterprises.md +0 -256
  232. package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
  233. package/website/content/docs/getting-started/First-Agent.md +0 -196
  234. package/website/content/docs/getting-started/Hello-World.md +0 -184
  235. package/website/content/docs/migration-guides/00-INDEX.md +0 -76
  236. package/website/content/docs/migration-guides/README.md +0 -133
  237. /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
  238. /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
@@ -1,934 +0,0 @@
1
- ---
2
- title: "OpenAPI Extensions"
3
- ---
4
-
5
- # OSSA OpenAPI/Swagger Specification Extensions
6
-
7
- ## Overview
8
-
9
- OSSA (Open Standard for Scalable AI Agents) extends OpenAPI 3.1 specifications with AI agent-specific metadata, capabilities, and configuration. These extensions enable OpenAPI specs to describe not just REST APIs, but the full agent behavior including autonomy levels, LLM configuration, tool usage, and compliance requirements.
10
-
11
- **Key Benefits:**
12
- - **Agent Discovery**: OpenAPI specs become agent manifests that describe capabilities
13
- - **Type Safety**: Full TypeScript types and JSON Schema validation
14
- - **Tool Integration**: Declare MCP servers and tools directly in API specs
15
- - **Compliance**: Built-in support for governance, security, and observability
16
- - **Framework Agnostic**: Works with any agent runtime (LangChain, CrewAI, kAgent, etc.)
17
-
18
- ## Table of Contents
19
-
20
- 1. [Root-Level Extensions](#root-level-extensions)
21
- - [x-ossa-metadata](#x-ossa-metadata)
22
- - [x-ossa](#x-ossa)
23
- - [x-agent](#x-agent)
24
- 2. [Operation-Level Extensions](#operation-level-extensions)
25
- - [x-ossa-capability](#x-ossa-capability)
26
- - [x-ossa-autonomy](#x-ossa-autonomy)
27
- - [x-ossa-constraints](#x-ossa-constraints)
28
- - [x-ossa-tools](#x-ossa-tools)
29
- - [x-ossa-llm](#x-ossa-llm)
30
- 3. [Parameter Extensions](#parameter-extensions)
31
- - [x-ossa-agent-id](#x-ossa-agent-id)
32
- - [x-ossa-version](#x-ossa-version)
33
- 4. [Schema Extensions](#schema-extensions)
34
- - [x-ossa-capability-schema](#x-ossa-capability-schema)
35
- 5. [Complete Examples](#complete-examples)
36
- 6. [Integration with OSSA Manifests](#integration-with-ossa-manifests)
37
-
38
- ---
39
-
40
- ## Root-Level Extensions
41
-
42
- Extensions that can be added at the root level of an OpenAPI 3.1 specification.
43
-
44
- ### x-ossa-metadata
45
-
46
- Embeds comprehensive OSSA agent metadata in OpenAPI spec root. Provides governance, compliance, security, and observability metadata.
47
-
48
- **Location**: Root level of OpenAPI spec
49
-
50
- **Schema**:
51
-
52
- ```yaml
53
- x-ossa-metadata:
54
- version: string # OSSA specification version (e.g., "0.2.x", "1.0.0")
55
- compliance:
56
- level: string # "basic" | "standard" | "advanced" | "enterprise"
57
- frameworks: string[] # List of compliance frameworks
58
- governance:
59
- approved: boolean # Whether specification has been approved
60
- approvedBy: string # Entity that approved (optional)
61
- approvalDate: string # Date of approval in YYYY-MM-DD format (optional)
62
- security:
63
- classification: string # "public" | "internal" | "confidential" | "restricted"
64
- authentication: string # "required" | "optional" | "none"
65
- encryption: string # Encryption requirements (e.g., "tls1.3")
66
- observability:
67
- tracing: boolean # Enable distributed tracing
68
- metrics: boolean # Enable metrics collection
69
- logging: boolean # Enable structured logging
70
- ```
71
-
72
- **OpenAPI Example**:
73
-
74
- ```yaml
75
- openapi: 3.1.0
76
- info:
77
- title: Kubernetes Troubleshooter Agent API
78
- version: 1.0.0
79
-
80
- x-ossa-metadata:
81
- version: 0.2.x
82
- compliance:
83
- level: enterprise
84
- frameworks:
85
- - OSSA
86
- - OpenAPI 3.1
87
- - RFC7807
88
- governance:
89
- approved: true
90
- approvedBy: Platform Team
91
- approvalDate: 2024-01-15
92
- security:
93
- classification: internal
94
- authentication: required
95
- encryption: tls1.3
96
- observability:
97
- tracing: true
98
- metrics: true
99
- logging: true
100
-
101
- paths:
102
- # ... paths ...
103
- ```
104
-
105
- **JSON Example**:
106
-
107
- ```json
108
- {
109
- "openapi": "3.1.0",
110
- "info": {
111
- "title": "Kubernetes Troubleshooter Agent API",
112
- "version": "1.0.0"
113
- },
114
- "x-ossa-metadata": {
115
- "version": "0.2.2",
116
- "compliance": {
117
- "level": "enterprise",
118
- "frameworks": ["OSSA", "OpenAPI 3.1", "RFC7807"]
119
- },
120
- "governance": {
121
- "approved": true,
122
- "approvedBy": "Platform Team",
123
- "approvalDate": "2024-01-15"
124
- },
125
- "security": {
126
- "classification": "internal",
127
- "authentication": "required",
128
- "encryption": "tls1.3"
129
- },
130
- "observability": {
131
- "tracing": true,
132
- "metrics": true,
133
- "logging": true
134
- }
135
- }
136
- }
137
- ```
138
-
139
- ---
140
-
141
- ### x-ossa
142
-
143
- Core OSSA compliance information with agent identification and validation metadata.
144
-
145
- **Location**: Root level or `info` section of OpenAPI spec
146
-
147
- **Schema**:
148
-
149
- ```yaml
150
- x-ossa:
151
- version: string # OSSA specification version
152
- agent:
153
- id: string # Unique agent identifier (DNS-不为subdomain format)
154
- type: string # Agent type (see enum below)
155
- compliance:
156
- standards: string[] # Architectural standards
157
- validated: boolean # Whether agent has been validated
158
- validatedAt: string # ISO 8601 timestamp of validation
159
- ```
160
-
161
- **Agent Types**:
162
- - `orchestrator` - Coordinates multiple agents and workflows
163
- - `worker` - Performs specific tasks and operations
164
- - `specialist` - Specialized domain expertise
165
- - `critic` - Reviews and validates agent outputs
166
- - `judge` - Makes decisions and evaluates outcomes
167
- - `monitor` - Observes and reports on system state
168
- - `gateway` - Entry point for agent communication
169
- - `governor` - Enforces policies and compliance
170
- - `integrator` - Connects systems and protocols
171
- - `voice` - Handles audio/speech interactions
172
-
173
- **OpenAPI Example**:
174
-
175
- ```yaml
176
- openapi: 3.1.0
177
- info:
178
- title: My Agent API
179
- version: 1.0.0
180
-
181
- x-ossa:
182
- version: 0.2.x
183
- agent:
184
- id: k8s-troubleshooter
185
- type: worker
186
- compliance:
187
- standards:
188
- - openapi-first
189
- - dry
190
- - crud
191
- - solid
192
- - type-safe
193
- validated: true
194
- validatedAt: "2024-01-15T10:30:00Z"
195
-
196
- paths:
197
- # ... paths ...
198
- ```
199
-
200
- ---
201
-
202
- ### x-agent
203
-
204
- Agent-specific capabilities, tools, environment, and rules configuration.
205
-
206
- **Location**: Root level or `info` section of OpenAPI spec
207
-
208
- **Schema**:
209
-
210
- ```yaml
211
- x-agent:
212
- capabilities: string[] # List of agent capability names
213
- tools: string[] # List of tools/MCP servers available
214
- environment: object # Environment-specific configuration (key-value pairs)
215
- rules: string[] # List of rules or policies the agent follows
216
- ```
217
-
218
- **OpenAPI Example**:
219
-
220
- ```yaml
221
- openapi: 3.1.0
222
- info:
223
- title: Data Processing Agent API
224
- version: 1.0.0
225
-
226
- x-agent:
227
- capabilities:
228
- - data-transformation
229
- - csv-parsing
230
- - json-validation
231
- tools:
232
- - postgres-mcp
233
- - redis-mcp
234
- - file-system-mcp
235
- environment:
236
- processingTimeout: 300
237
- maxFileSize: "100MB"
238
- enableCaching: true
239
- rules:
240
- - no-external-api-calls
241
- - validate-all-inputs
242
- - encrypt-sensitive-data
243
-
244
- paths:
245
- # ... paths ...
246
- ```
247
-
248
- ---
249
-
250
- ## Operation-Level Extensions
251
-
252
- Extensions that can be added to individual OpenAPI operations (GET, POST, PUT, DELETE, etc.).
253
-
254
- ### x-ossa-capability
255
-
256
- Links an OpenAPI operation to an OSSA agent capability. Can be a simple string reference or a detailed capability object.
257
-
258
- **Location**: Operation object within path item
259
-
260
- **Schema**:
261
-
262
- ```yaml
263
- # Simple string reference
264
- x-ossa-capability: "capability-name"
265
-
266
- # Or detailed object
267
- x-ossa-capability:
268
- name: string # Capability name
269
- description: string # Capability description (optional)
270
- inputSchema: object # JSON Schema for capability input (optional)
271
- outputSchema: object # JSON Schema for capability output (optional)
272
- ```
273
-
274
- **OpenAPI Example**:
275
-
276
- ```yaml
277
- paths:
278
- /api/v1/process-data:
279
- post:
280
- summary: Process incoming data
281
- operationId: processData
282
- x-ossa-capability:
283
- name: data-transformation
284
- description: Transforms CSV data to JSON format
285
- inputSchema:
286
- type: object
287
- required: [csvData]
288
- properties:
289
- csvData:
290
- type: string
291
- description: CSV content to transform
292
- outputSchema:
293
- type: object
294
- properties:
295
- jsonData:
296
- type: array
297
- items:
298
- type: object
299
- requestBody:
300
- # ... request body ...
301
- responses:
302
- # ... responses ...
303
- ```
304
-
305
- **Note**: The `inputSchema` and `outputSchema` should match the OpenAPI `requestBody` and `responses` schemas respectively, providing additional capability-level metadata.
306
-
307
- ---
308
-
309
- ### x-ossa-autonomy
310
-
311
- Defines autonomy level and approval requirements for operation execution.
312
-
313
- **Location**: Operation object within path item
314
-
315
- **Schema**:
316
-
317
- ```yaml
318
- x-ossa-autonomy:
319
- level: string # "supervised" | "autonomous" | "semi-autonomous"
320
- approval_required: boolean # Whether human approval is required
321
- allowed_actions: string[] # List of allowed actions (optional)
322
- blocked_actions: string[] # List of blocked actions (optional)
323
- ```
324
-
325
- **Autonomy Levels**:
326
-
327
- | Level | Description |
328
- |-------|-------------|
329
- | `supervised` | Requires human approval before execution |
330
- | `semi-autonomous` | Can execute with automatic approval under certain conditions |
331
- | `autonomous` | Can execute without human intervention |
332
-
333
- **OpenAPI Example**:
334
-
335
- ```yaml
336
- paths:
337
- /api/v1/delete-resource:
338
- delete:
339
- summary: Delete a resource
340
- operationId: deleteResource
341
- x-ossa-autonomy:
342
- level: supervised
343
- approval_required: true
344
- allowed_actions:
345
- - read_resource
346
- - validate_deletion
347
- blocked_actions:
348
- - permanent_delete
349
- - cascade_delete
350
- parameters:
351
- # ... parameters ...
352
- responses:
353
- # ... responses ...
354
- ```
355
-
356
- ---
357
-
358
- ### x-ossa-constraints
359
-
360
- Defines cost, token, performance, and time constraints for operation execution.
361
-
362
- **Location**: Operation object within path item
363
-
364
- **Schema**:
365
-
366
- ```yaml
367
- x-ossa-constraints:
368
- cost:
369
- maxTokensPerDay: integer # Maximum tokens allowed per day
370
- maxTokensPerRequest: integer # Maximum tokens allowed per request
371
- maxCostPerDay: number # Maximum cost in USD per day
372
- currency: string # Currency code (default: "USD")
373
- performance:
374
- maxLatencySeconds: number # Maximum acceptable latency in seconds
375
- maxConcurrentRequests: integer # Maximum concurrent requests
376
- time:
377
- maxExecutionTime: integer # Maximum execution time in seconds
378
- ```
379
-
380
- **OpenAPI Example**:
381
-
382
- ```yaml
383
- paths:
384
- /api/v1/generate-report:
385
- post:
386
- summary: Generate comprehensive report
387
- operationId: generateReport
388
- x-ossa-constraints:
389
- cost:
390
- maxTokensPerDay: 50000
391
- maxTokensPerRequest: 4000
392
- maxCostPerDay: 10.0
393
- currency: USD
394
- performance:
395
- maxLatencySeconds: 30
396
- maxConcurrentRequests: 5
397
- time:
398
- maxExecutionTime: 300
399
- requestBody:
400
- # ... request body ...
401
- responses:
402
- # ... responses ...
403
- ```
404
-
405
- ---
406
-
407
- ### x-ossa-tools
408
-
409
- Specifies MCP servers or tools required for operation execution.
410
-
411
- **Location**: Operation object within path item
412
-
413
- **Schema**:
414
-
415
- ```yaml
416
- x-ossa-tools:
417
- - type: string # "mcp" | "http" | "custom"
418
- server: string # Tool server identifier or URL
419
- namespace: string # Namespace for the tool (optional, for MCP servers)
420
- capabilities: string[] # List of tool capabilities (optional)
421
- ```
422
-
423
- **OpenAPI Example**:
424
-
425
- ```yaml
426
- paths:
427
- /api/v1/diagnose-issue:
428
- post:
429
- summary: Diagnose Kubernetes issue
430
- operationId: diagnoseIssue
431
- x-ossa-tools:
432
- - type: mcp
433
- server: kubernetes-mcp
434
- namespace: default
435
- capabilities:
436
- - get_pods
437
- - get_logs
438
- - get_events
439
- - describe_resource
440
- - type: mcp
441
- server: buildkit-agent-protocol
442
- namespace: default
443
- capabilities:
444
- - search_documentation
445
- - analyze_logs
446
- requestBody:
447
- # ... request body ...
448
- responses:
449
- # ... responses ...
450
- ```
451
-
452
- ---
453
-
454
- ### x-ossa-llm
455
-
456
- Overrides LLM configuration for a specific operation. Useful when different operations require different models or settings.
457
-
458
- **Location**: Operation object within path item
459
-
460
- **Schema**:
461
-
462
- ```yaml
463
- x-ossa-llm:
464
- provider: string # "openai" | "anthropic" | "google" | "azure" | "custom"
465
- model: string # Model identifier (e.g., "gpt-4", "claude-3-opus")
466
- temperature: number # Sampling temperature (0-2, optional)
467
- maxTokens: integer # Maximum tokens in response (optional)
468
- ```
469
-
470
- **OpenAPI Example**:
471
-
472
- ```yaml
473
- paths:
474
- /api/v1/analyze-code:
475
- post:
476
- summary: Analyze code for issues
477
- operationId: analyzeCode
478
- x-ossa-llm:
479
- provider: openai
480
- model: gpt-4
481
- temperature: 0.2
482
- maxTokens: 4000
483
- requestBody:
484
- # ... request body ...
485
- responses:
486
- # ... responses ...
487
- ```
488
-
489
- **Note**: If `x-ossa-llm` is not specified at the operation level, the agent should use the default LLM configuration from the OSSA manifest or root-level configuration.
490
-
491
- ---
492
-
493
- ## Parameter Extensions
494
-
495
- Extensions for OpenAPI parameters (headers, query params, path params, cookies).
496
-
497
- ### x-ossa-agent-id
498
-
499
- Standard header parameter for agent identification in agent-to-agent communication.
500
-
501
- **Location**: Parameter definition in `components.parameters` or operation-level `parameters`
502
-
503
- **OpenAPI Example**:
504
-
505
- ```yaml
506
- components:
507
- parameters:
508
- X-Ossa-Agent-Id:
509
- name: X-OSSA-Agent-ID
510
- in: header
511
- description: Unique identifier of the agent making the request
512
- required: false
513
- schema:
514
- type: string
515
- pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
516
- example: "k8s-troubleshooter"
517
-
518
- paths:
519
- /api/v1/capabilities:
520
- get:
521
- summary: Get agent capabilities
522
- parameters:
523
- - $ref: '#/components/parameters/X-Ossa-Agent-Id'
524
- mathbb
525
- ```
526
-
527
- ---
528
-
529
- ### x-ossa-version
530
-
531
- Standard header parameter for OSSA specification version in requests.
532
-
533
- **Location**: Parameter definition in `components.parameters` or operation-level `parameters`
534
-
535
- **OpenAPI Example**:
536
-
537
- ```yaml
538
- components:
539
- parameters:
540
- X-Ossa-Version:
541
- name: X-OSSA-Version
542
- in: header
543
- description: OSSA specification version the agent supports
544
- required: false
545
- schema:
546
- type: string
547
- pattern: "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$"
548
- example: "0.2.2"
549
-
550
- paths:
551
- /api/v1/execute:
552
- post:
553
- summary: Execute agent capability
554
- parameters:
555
- - $ref: '#/components/parameters/X-Ossa-Version'
556
- ```
557
-
558
- ---
559
-
560
- ## Schema Extensions
561
-
562
- Extensions for OpenAPI schema definitions.
563
-
564
- ### x-ossa-capability-schema
565
-
566
- Extends schema definition with capability metadata, linking OpenAPI schemas to OSSA capabilities.
567
-
568
- **Location**: Schema definition in `components.schemas`
569
-
570
- **Schema**:
571
-
572
- ```yaml
573
- x-ossa-capability-schema:
574
- capabilityName: string # Name of the capability this schema represents
575
- input: boolean # Whether this is an input schema (default: false)
576
- output: boolean # Whether this is an output schema (default: false)
577
- validation:
578
- required: boolean # Whether validation is required (optional)
579
- strict: boolean # Whether to use strict validation (optional)
580
- ```
581
-
582
- **OpenAPI Example**:
583
-
584
- ```yaml
585
- components:
586
- schemas:
587
- DataProcessingInput:
588
- type: object
589
- required: [csvData]
590
- properties:
591
- csvData:
592
- type: string
593
- description: CSV content to process
594
- x-ossa-capability-schema:
595
- capabilityName: data-transformation
596
- input: true
597
- validation:
598
- required: true
599
- strict: true
600
-
601
- DataProcessingOutput:
602
- type: object
603
- properties:
604
- jsonData:
605
- type: array
606
- items:
607
- type: object
608
- x-ossa-capability-schema:
609
- capabilityName: data-transformation
610
- output: true
611
- ```
612
-
613
- ---
614
-
615
- ## Complete Examples
616
-
617
- ### Minimal Agent API
618
-
619
- A minimal example showing basic OSSA extensions:
620
-
621
- ```yaml
622
- openapi: 3.1.0
623
- info:
624
- title: Hello World Agent
625
- version: 1.0.0
626
- description: Minimal OSSA-compliant agent API
627
-
628
- x-ossa-metadata:
629
- version: 0.2.x
630
- compliance:
631
- level: basic
632
- frameworks: [OSSA, OpenAPI 3.1]
633
-
634
- x-ossa:
635
- version: 0.2.x
636
- agent:
637
- id: hello-world-agent
638
- type: worker
639
- compliance:
640
- standards: [openapi-first]
641
- validated: true
642
- validatedAt: "2024-01-15T10:00:00Z"
643
-
644
- paths:
645
- /greet:
646
- post:
647
- summary: Generate greeting
648
- operationId: greet
649
- x-ossa-capability: greeting
650
- x-ossa-autonomy:
651
- level: autonomous
652
- approval_required: false
653
- x-ossa-llm:
654
- provider: openai
655
- model: gpt-3.5-turbo
656
- temperature: 0.7
657
- requestBody:
658
- required: true
659
- content:
660
- application/json:
661
- schema:
662
- type: object
663
- required: [name]
664
- properties:
665
- name:
666
- type: string
667
- responses:
668
- '200':
669
- description: Greeting generated
670
- content:
671
- application/json:
672
- schema:
673
- type: object
674
- properties:
675
- message:
676
- type: string
677
- ```
678
-
679
- ### Full Worker Agent API
680
-
681
- A complete example showing all extensions:
682
-
683
- ```yaml
684
- openapi: 3.1.0
685
- info:
686
- title: Kubernetes Troubleshooter Agent API
687
- version: 1.0.0
688
- description: |
689
- Kubernetes cluster troubleshooting agent with diagnostic capabilities.
690
- Supports pod inspection, log analysis, and event correlation.
691
-
692
- x-ossa-metadata:
693
- version: 0.2.x
694
- compliance:
695
- level: enterprise
696
- frameworks:
697
- - OSSA
698
- - OpenAPI 3.1
699
- - RFC7807
700
- governance:
701
- approved: true
702
- approvedBy: Platform Team
703
- approvalDate: 2024-01-15
704
- security:
705
- classification: internal
706
- authentication: required
707
- encryption: tls1.3
708
- observability:
709
- tracing: true
710
- metrics: true
711
- logging: true
712
-
713
- x-ossa:
714
- version: 0.2.x
715
- agent:
716
- id: k8s-troubleshooter
717
- type: worker
718
- compliance:
719
- standards:
720
- - openapi-first
721
- - dry
722
- - crud
723
- - solid
724
- - type-safe
725
- validated: true
726
- validatedAt: "2024-01-15T10:30:00Z"
727
-
728
- x-agent:
729
- capabilities:
730
- - pod-diagnostics
731
- - log-analysis
732
- - event-correlation
733
- tools:
734
- - kubernetes-mcp
735
- - buildkit-agent-protocol
736
- environment:
737
- defaultNamespace: default
738
- logRetention: 7d
739
- rules:
740
- - read-only-operations
741
- - require-approval-for-writes
742
-
743
- components:
744
- parameters:
745
- X-Ossa-Agent-Id:
746
- name: X-OSSA-Agent-ID
747
- in: header
748
- description: Agent identifier
749
- schema:
750
- type: string
751
-
752
- paths:
753
- /api/v1/diagnose/pod:
754
- post:
755
- summary: Diagnose pod issues
756
- operationId: diagnosePod
757
- tags: [Diagnostics]
758
- x-ossa-capability:
759
- name: pod-diagnostics
760
- description: Diagnose Kubernetes pod failures and issues
761
- x-ossa-autonomy:
762
- level: supervised
763
- approval_required: true
764
- allowed_actions:
765
- - read_pods
766
- - read_logs
767
- - read_events
768
- blocked_actions:
769
- - delete_pods
770
- - modify_configs
771
- x-ossa-constraints:
772
- cost:
773
- maxTokensPerDay: 50000
774
- maxTokensPerRequest: 4000
775
- maxCostPerDay: 10.0
776
- currency: USD
777
- performance:
778
- maxLatencySeconds: 30
779
- maxConcurrentRequests: 5
780
- x-ossa-tools:
781
- - type: mcp
782
- server: kubernetes-mcp
783
- namespace: default
784
- capabilities:
785
- - get_pods
786
- - get_logs
787
- - get_events
788
- - describe_resource
789
- x-ossa-llm:
790
- provider: openai
791
- model: gpt-4
792
- temperature: 0.2
793
- maxTokens: 4000
794
- parameters:
795
- - $ref: '#/components/parameters/X-Ossa-Agent-Id'
796
- requestBody:
797
- required: true
798
- content:
799
- application/json:
800
- schema:
801
- type: object
802
- required: [podName, namespace]
803
- properties:
804
- podName:
805
- type: string
806
- namespace:
807
- type: string
808
- responses:
809
- '200':
810
- description: Diagnosis complete
811
- content:
812
- application/json:
813
- schema:
814
- type: object
815
- properties:
816
- status:
817
- type: string
818
- issues:
819
- type: array
820
- items:
821
- type: object
822
- recommendations:
823
- type: array
824
- items:
825
- type: string
826
- ```
827
-
828
- ---
829
-
830
- ## Integration with OSSA Manifests
831
-
832
- OSSA OpenAPI extensions complement OSSA agent manifests (`.ossa.yaml` files). They serve different but related purposes:
833
-
834
- ### OSSA Agent Manifest (`.ossa.yaml`)
835
- - **Purpose**: Declarative agent definition with full configuration
836
- - **Contains**: Role, LLM config, tools, autonomy, constraints, extensions
837
- - **Used For**: Agent deployment, runtime configuration, framework integration
838
-
839
- ### OpenAPI Specification with OSSA Extensions
840
- - **Purpose**: API interface definition with agent metadata
841
- - **Contains**: HTTP endpoints, request/response schemas, agent capabilities
842
- - **Used For**: API documentation, client generation, runtime API validation
843
-
844
- ### Bidirectional Mapping
845
-
846
- An agent can have both:
847
-
848
- 1. **OSSA Manifest** (`agent.ossa.yaml`) - Defines the agent's behavior
849
- 2. **OpenAPI Spec** (`agent.openapi.yaml`) - Defines the agent's HTTP interface
850
-
851
- The OpenAPI spec should reference capabilities and tools defined in the manifest:
852
-
853
- ```yaml
854
- # agent.ossa.yaml
855
- apiVersion: ossa/v0.2.x
856
- kind: Agent
857
- metadata:
858
- name: k8s-troubleshooter
859
- spec:
860
- capabilities:
861
- - pod-diagnostics
862
- tools:
863
- - type: mcp
864
- server: kubernetes-mcp
865
-
866
- ---
867
-
868
- # agent.openapi.yaml
869
- openapi: 3.1.0
870
- x-ossa:
871
- agent:
872
- id: k8s-troubleshooter # References manifest metadata.name
873
- paths:
874
- /api/v1/diagnose/pod:
875
- post:
876
- x-ossa-capability: pod-diagnostics # References manifest capability
877
- x-ossa-tools:
878
- - type: mcp
879
- server: kubernetes-mcp # References manifest tool
880
- ```
881
-
882
- ### Best Practices
883
-
884
- 1. **Keep in Sync**: Ensure OpenAPI extensions reference capabilities/tools from the manifest
885
- 2. **Single Source of Truth**: Use manifest for agent behavior, OpenAPI for API contract
886
- 3. **Version Together**: When updating agent capabilities, update both files
887
- 4. **Validate Both**: Use `ossa validate` for manifest and OpenAPI validation for spec
888
-
889
- ---
890
-
891
- ## Tools & Validation
892
-
893
- ### CLI Validation
894
-
895
- The OSSA CLI can validate OpenAPI specs with OSSA extensions:
896
-
897
- ```bash
898
- # Validate OpenAPI spec with OSSA extensions
899
- ossa validate --openapi agent.openapi.yaml
900
-
901
- # Validate both manifest and OpenAPI spec
902
- ossa validate agent.ossa.yaml agent.openapi.yaml
903
- ```
904
-
905
- ### IDE Support
906
-
907
- - **VS Code**: Install OpenAPI extension + OSSA extension (when available)
908
- - **IntelliJ**: OpenAPI plugin recognizes custom extensions
909
- - **Online Editors**: Swagger Editor and Stoplight Studio support custom extensions
910
-
911
- ### OpenAPI Tool Compatibility
912
-
913
- Most OpenAPI tools ignore unknown extensions (per OpenAPI spec), so OSSA extensions won't break existing tooling. However, OSSA-aware tools can:
914
-
915
- - Generate agent clients with capability awareness
916
- - Validate autonomy and constraint requirements
917
- - Document tool requirements and MCP server dependencies
918
- - Generate compliance reports from metadata
919
-
920
- ---
921
-
922
- ## References
923
-
924
- - [OSSA Specification v0.2.x](Specification/v0.2.x/OSSA-SPECIFICATION-v0.2.x.md)
925
- - [OSSA JSON Schema](Specification/v0.2.x/ossa-0.2.x.schema.json)
926
- - [OpenAPI 3.1 Specification](https://spec.openapis.org/oas/v3.1.0)
927
- - [OpenAPI Extensions Schema](../schemas/openapi-extensions.schema.json)
928
- - [OSSA Examples](../../examples/)
929
- - [GitHub Repository](https://github.com/blueflyio/openstandardagents)
930
-
931
- ---
932
-
933
- **OSSA OpenAPI Extensions: Making AI agents discoverable, interoperable, and enterprise-ready.**
934
-