@bluefly/openstandardagents 0.2.7 → 0.2.9

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 (327) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.github/AGENTS.md +245 -0
  4. package/.github/agents/github-issue-triage.ossa.yaml +99 -0
  5. package/.github/agents/github-pr-triage.ossa.yaml +137 -0
  6. package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
  7. package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
  8. package/.version.json +2 -2
  9. package/.wiki-config.json +24 -0
  10. package/CHANGELOG.md +44 -18
  11. package/CODEOWNERS +75 -0
  12. package/CONTRIBUTING.md +103 -4
  13. package/README.md +178 -243
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/repositories/schema.repository.d.ts +6 -1
  19. package/dist/repositories/schema.repository.d.ts.map +1 -1
  20. package/dist/repositories/schema.repository.js +49 -27
  21. package/dist/repositories/schema.repository.js.map +1 -1
  22. package/dist/services/migration.service.d.ts +4 -3
  23. package/dist/services/migration.service.d.ts.map +1 -1
  24. package/dist/services/migration.service.js +11 -10
  25. package/dist/services/migration.service.js.map +1 -1
  26. package/dist/services/release-automation/release.service.js +1 -1
  27. package/dist/services/release-automation/release.service.js.map +1 -1
  28. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  29. package/dist/services/release-automation/webhook.service.js +3 -3
  30. package/dist/services/release-automation/webhook.service.js.map +1 -1
  31. package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
  32. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  33. package/dist/services/runtime/claude/claude-adapter.js +2 -2
  34. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  35. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  36. package/dist/spec/v0.2.8/README.md +72 -0
  37. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  38. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  39. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  40. package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  41. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  42. package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
  43. package/dist/spec/v0.2.9/agent.md +1946 -0
  44. package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
  45. package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
  46. package/dist/spec/v0.2.9/capability-schema.md +576 -0
  47. package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
  48. package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
  49. package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  50. package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  51. package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
  52. package/dist/spec/v0.2.9/security-model.md +1245 -0
  53. package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
  54. package/dist/spec/v0.2.9/types.ts +522 -0
  55. package/dist/types/index.d.ts +3 -2
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/policy.d.ts +377 -0
  58. package/dist/types/policy.d.ts.map +1 -0
  59. package/dist/types/policy.js +84 -0
  60. package/dist/types/policy.js.map +1 -0
  61. package/dist/utils/index.d.ts +6 -0
  62. package/dist/utils/index.d.ts.map +1 -0
  63. package/dist/utils/index.js +6 -0
  64. package/dist/utils/index.js.map +1 -0
  65. package/dist/utils/version.d.ts +68 -0
  66. package/dist/utils/version.d.ts.map +1 -0
  67. package/dist/utils/version.js +156 -0
  68. package/dist/utils/version.js.map +1 -0
  69. package/docs/specs/policy-dsl.md +925 -0
  70. package/eslint-report.json +1 -0
  71. package/examples/adk-integration/code-review-workflow.yml +1 -1
  72. package/examples/adk-integration/customer-support.yml +1 -1
  73. package/examples/adk-integration/data-pipeline.yml +1 -1
  74. package/examples/advanced/reasoning-agent.yaml +136 -0
  75. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  76. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  77. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  78. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  79. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  80. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  81. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  82. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  83. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  84. package/examples/agents-md/code-agent.ossa.json +100 -0
  85. package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
  86. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  87. package/examples/autogen/multi-agent.ossa.json +1 -1
  88. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  89. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  90. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  91. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  92. package/examples/crewai/research-team.ossa.json +1 -1
  93. package/examples/cursor/code-review-agent.ossa.json +1 -1
  94. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  95. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  96. package/examples/extensions/agents-md-v1.yml +175 -0
  97. package/examples/extensions/drupal-v1.yml +1 -1
  98. package/examples/extensions/kagent-v1.yml +1 -1
  99. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  100. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  101. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  102. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  103. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  104. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  105. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  106. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  107. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  108. package/examples/langchain/chain-agent.ossa.json +1 -1
  109. package/examples/langflow/workflow-agent.ossa.json +1 -1
  110. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  111. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  112. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  113. package/examples/multi-agent/README.md +74 -0
  114. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  115. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  116. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  117. package/examples/openai/basic-agent.ossa.yaml +1 -1
  118. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  119. package/examples/openai/swarm-agent.ossa.json +1 -1
  120. package/examples/production/document-analyzer-openai.yml +1 -1
  121. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  122. package/examples/spec-examples/audit-agent.yml +1 -1
  123. package/examples/spec-examples/chat-agent.yml +1 -1
  124. package/examples/spec-examples/compliance-agent.yml +1 -1
  125. package/examples/spec-examples/monitoring-agent.yml +1 -1
  126. package/examples/spec-examples/workflow-agent.yml +1 -1
  127. package/examples/templates/ossa-compliance.yaml +1 -1
  128. package/examples/vercel/edge-agent.ossa.json +1 -1
  129. package/gl-code-quality-report.json +62 -0
  130. package/llms-ctx-full.txt +39 -0
  131. package/llms-ctx.txt +39 -0
  132. package/llms.txt +47 -0
  133. package/package.json +6 -3
  134. package/scripts/README.md +25 -0
  135. package/scripts/compliance-audit.ts +796 -0
  136. package/scripts/eslint-to-codequality.cjs +34 -0
  137. package/scripts/generate-agents-catalog.ts +2 -1
  138. package/scripts/generate-api-docs.ts +2 -1
  139. package/scripts/generate-examples-docs.ts +2 -1
  140. package/scripts/generate-llms-ctx.sh +17 -0
  141. package/scripts/generate-schema-docs.ts +31 -10
  142. package/scripts/sync-version.js +4 -12
  143. package/scripts/validate-schema.ts +2 -1
  144. package/spec/v0.2.8/CHANGELOG.md +401 -0
  145. package/spec/v0.2.8/README.md +72 -0
  146. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  147. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  148. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  149. package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  150. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  151. package/spec/v0.2.9/a2a-protocol.md +1337 -0
  152. package/spec/v0.2.9/agent.md +1946 -0
  153. package/spec/v0.2.9/capabilities/index.yaml +25 -0
  154. package/spec/v0.2.9/capabilities/memory.yaml +251 -0
  155. package/spec/v0.2.9/capability-schema.md +576 -0
  156. package/spec/v0.2.9/compliance-profiles.md +533 -0
  157. package/spec/v0.2.9/conformance-testing.md +1527 -0
  158. package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  159. package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  160. package/spec/v0.2.9/runtime-semantics.md +464 -0
  161. package/spec/v0.2.9/security-model.md +1245 -0
  162. package/spec/v0.2.9/semantic-conventions.md +347 -0
  163. package/spec/v0.2.9/types.ts +522 -0
  164. package/test-results/junit.xml +337 -0
  165. package/.github/workflows/pr-comment.yml +0 -33
  166. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  167. package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
  168. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  169. package/scripts/lib/exec.ts +0 -37
  170. package/scripts/lib/file-ops.ts +0 -58
  171. package/scripts/lib/version.ts +0 -83
  172. package/website/.lighthouserc.ts +0 -24
  173. package/website/.prettierrc +0 -10
  174. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  175. package/website/Dockerfile +0 -30
  176. package/website/app/about/page.tsx +0 -304
  177. package/website/app/blog/[slug]/page.tsx +0 -208
  178. package/website/app/blog/page.tsx +0 -249
  179. package/website/app/design-guide/page.tsx +0 -511
  180. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  181. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  182. package/website/app/ecosystem/page.tsx +0 -410
  183. package/website/app/examples/page.tsx +0 -133
  184. package/website/app/globals.scss +0 -370
  185. package/website/app/layout.tsx +0 -106
  186. package/website/app/license/page.tsx +0 -183
  187. package/website/app/not-found.tsx +0 -18
  188. package/website/app/page.tsx +0 -686
  189. package/website/app/page.tsx.bak +0 -679
  190. package/website/app/page.tsx.bak2 +0 -649
  191. package/website/app/playground/page.tsx +0 -487
  192. package/website/app/robots.ts +0 -19
  193. package/website/app/rss.xml/route.ts +0 -74
  194. package/website/app/schema/page.tsx +0 -1001
  195. package/website/app/sitemap.ts +0 -56
  196. package/website/app/specification/page.tsx +0 -287
  197. package/website/components/InstallCommand.tsx +0 -96
  198. package/website/components/Logo.tsx +0 -97
  199. package/website/components/StructuredData.tsx +0 -65
  200. package/website/components/docs/DocsSearch.tsx +0 -104
  201. package/website/components/docs/DocsSidebar.tsx +0 -155
  202. package/website/components/docs/MarkdownContent.tsx +0 -401
  203. package/website/components/docs/VersionSelector.tsx +0 -105
  204. package/website/components/examples/ExamplesViewer.tsx +0 -293
  205. package/website/components/layout/Footer.tsx +0 -116
  206. package/website/components/layout/Header.tsx +0 -172
  207. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  208. package/website/components/schema/SchemaExplorer.tsx +0 -213
  209. package/website/components/ui/Badge.tsx +0 -82
  210. package/website/components/ui/Button.tsx +0 -116
  211. package/website/components/ui/Card.tsx +0 -167
  212. package/website/components/ui/Checkbox.tsx +0 -141
  213. package/website/components/ui/Input.tsx +0 -169
  214. package/website/components/ui/Radio.tsx +0 -141
  215. package/website/components/ui/Select.tsx +0 -182
  216. package/website/components/ui/Tag.tsx +0 -158
  217. package/website/components/ui/Textarea.tsx +0 -195
  218. package/website/components/ui/index.ts +0 -11
  219. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  220. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  221. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  222. package/website/content/blog/introducing-ossa-framework.md +0 -328
  223. package/website/content/blog/ossa-production-results.md +0 -279
  224. package/website/content/blog/welcome-to-ossa.md +0 -43
  225. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  226. package/website/content/docs/00-home.md +0 -153
  227. package/website/content/docs/adapters/openai-adapter.md +0 -693
  228. package/website/content/docs/agents/catalog.md +0 -28
  229. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  230. package/website/content/docs/api-reference/index.md +0 -38
  231. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  232. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  233. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  234. package/website/content/docs/architecture/execution-flow.md +0 -335
  235. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  236. package/website/content/docs/architecture/overview.md +0 -121
  237. package/website/content/docs/architecture/stack-integration.md +0 -461
  238. package/website/content/docs/changelog.md +0 -246
  239. package/website/content/docs/cli-reference/index.md +0 -111
  240. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  241. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  242. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  243. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  244. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  245. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  246. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  247. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  248. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  249. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  250. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  251. package/website/content/docs/configuration/index.md +0 -97
  252. package/website/content/docs/contributing.md +0 -599
  253. package/website/content/docs/deployment/github-mirroring.md +0 -924
  254. package/website/content/docs/documentation.md +0 -100
  255. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  256. package/website/content/docs/ecosystem/overview.md +0 -366
  257. package/website/content/docs/errors/index.md +0 -10
  258. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  259. package/website/content/docs/examples/catalog.md +0 -300
  260. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  261. package/website/content/docs/getting-started/index.md +0 -92
  262. package/website/content/docs/getting-started/installation.md +0 -155
  263. package/website/content/docs/getting-started/running-agents.md +0 -309
  264. package/website/content/docs/getting-started.md +0 -91
  265. package/website/content/docs/integrations/aiflow.md +0 -104
  266. package/website/content/docs/integrations/drupal.md +0 -105
  267. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  268. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  269. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  270. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  271. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  272. package/website/content/docs/migration-guides/index.md +0 -133
  273. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  274. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  275. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  276. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  277. package/website/content/docs/openapi-extensions/examples.md +0 -550
  278. package/website/content/docs/openapi-extensions/index.md +0 -551
  279. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  280. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  281. package/website/content/docs/ossa-compliant-badge.md +0 -251
  282. package/website/content/docs/pre-release/index.md +0 -175
  283. package/website/content/docs/quick-reference.md +0 -17
  284. package/website/content/docs/readme.md +0 -35
  285. package/website/content/docs/releases/v0.2.6.md +0 -99
  286. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  287. package/website/content/docs/schema-reference/agent-id.md +0 -52
  288. package/website/content/docs/schema-reference/agent-name.md +0 -50
  289. package/website/content/docs/schema-reference/agent-role.md +0 -54
  290. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  291. package/website/content/docs/schema-reference/agent-version.md +0 -50
  292. package/website/content/docs/schema-reference/autonomy.md +0 -568
  293. package/website/content/docs/schema-reference/constraints.md +0 -543
  294. package/website/content/docs/schema-reference/index.md +0 -45
  295. package/website/content/docs/schema-reference/llm-config.md +0 -445
  296. package/website/content/docs/schema-reference/observability.md +0 -654
  297. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  298. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  299. package/website/content/docs/schema-reference/tools.md +0 -628
  300. package/website/content/docs/templates/blog-post.md +0 -43
  301. package/website/content/docs/types-reference/index.md +0 -105
  302. package/website/content/docs/use-cases/00-index.md +0 -395
  303. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  304. package/website/content/docs/use-cases/customer-support.md +0 -1234
  305. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  306. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  307. package/website/content/docs/versioning.md +0 -288
  308. package/website/dev.sh +0 -53
  309. package/website/docker-compose.dev.yml +0 -36
  310. package/website/lib/version.ts +0 -35
  311. package/website/lib/versions.json +0 -103
  312. package/website/next.config.ts +0 -18
  313. package/website/nginx.conf +0 -32
  314. package/website/package-lock.json +0 -9679
  315. package/website/package.json +0 -59
  316. package/website/postcss.config.mjs +0 -9
  317. package/website/scripts/fetch-versions.js +0 -166
  318. package/website/scripts/generate-examples-index.js +0 -163
  319. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  320. package/website/scripts/sync-version.js +0 -72
  321. package/website/scripts/sync-wiki.ts +0 -322
  322. package/website/scripts/upload-wiki.ts +0 -199
  323. package/website/styles/_spacing.scss +0 -453
  324. package/website/styles/_tokens.scss +0 -245
  325. package/website/styles/_typography.scss +0 -361
  326. package/website/styles/_variables.scss +0 -287
  327. package/website/tailwind.config.ts +0 -170
@@ -0,0 +1,576 @@
1
+ # OSSA Capability Schema Specification v0.2.9
2
+
3
+ This specification defines the capability abstraction layer for OSSA agents, enabling interoperability across different tool implementations and transport mechanisms.
4
+
5
+ ## 1. Overview
6
+
7
+ Capabilities are the fundamental unit of functionality in OSSA. They provide an abstract interface between agents and concrete tool implementations, enabling:
8
+
9
+ - **Portability**: Same capability, different implementations
10
+ - **Discovery**: Agents can advertise and discover capabilities
11
+ - **Versioning**: Semantic versioning for capability contracts
12
+ - **Negotiation**: Agents can negotiate capability versions
13
+
14
+ ## 2. Capability URI Scheme
15
+
16
+ ### 2.1 Format
17
+
18
+ ```
19
+ ossa:<domain>/<capability>@<version>
20
+ ```
21
+
22
+ ### 2.2 Components
23
+
24
+ | Component | Description | Pattern |
25
+ |-----------|-------------|---------|
26
+ | `ossa:` | URI scheme prefix | Fixed |
27
+ | `domain` | Functional domain | `[a-z][a-z0-9-]*` |
28
+ | `capability` | Capability name | `[a-z][a-z0-9_]*` |
29
+ | `version` | Semver version | `MAJOR.MINOR` |
30
+
31
+ ### 2.3 Examples
32
+
33
+ ```yaml
34
+ # Standard OSSA capabilities
35
+ - ossa:security/scan_vulnerabilities@1.0
36
+ - ossa:security/apply_patches@1.0
37
+ - ossa:code/lint@2.0
38
+ - ossa:code/test@1.0
39
+ - ossa:content/publish@1.0
40
+ - ossa:a2a/send@1.0
41
+
42
+ # External capabilities (MCP tools)
43
+ - mcp:filesystem/read_file@1.0
44
+ - mcp:gitlab/create_issue@1.0
45
+ ```
46
+
47
+ ## 3. Capability Definition Schema
48
+
49
+ ### 3.1 Full Schema
50
+
51
+ ```yaml
52
+ capability:
53
+ # Identity
54
+ uri: "ossa:security/scan_vulnerabilities@1.0"
55
+ name: "scan_vulnerabilities"
56
+ domain: "security"
57
+ version: "1.0.0"
58
+
59
+ # Documentation
60
+ description: "Scan codebase for security vulnerabilities"
61
+ documentation_url: "https://ossa.dev/capabilities/security/scan_vulnerabilities"
62
+
63
+ # Stability
64
+ stability: "stable" # experimental | beta | stable | deprecated
65
+ deprecated_by: null # URI of replacement capability if deprecated
66
+ sunset_date: null # ISO8601 date when capability will be removed
67
+
68
+ # Contract
69
+ input:
70
+ type: object
71
+ required:
72
+ - target
73
+ properties:
74
+ target:
75
+ type: string
76
+ description: "Path or URL to scan"
77
+ severity_threshold:
78
+ type: string
79
+ enum: [low, medium, high, critical]
80
+ default: medium
81
+ scanners:
82
+ type: array
83
+ items:
84
+ type: string
85
+ enum: [sast, dast, sca, secrets, container]
86
+ default: [sast, sca, secrets]
87
+
88
+ output:
89
+ type: object
90
+ properties:
91
+ vulnerabilities:
92
+ type: array
93
+ items:
94
+ $ref: "#/definitions/Vulnerability"
95
+ summary:
96
+ type: object
97
+ properties:
98
+ total: { type: integer }
99
+ critical: { type: integer }
100
+ high: { type: integer }
101
+ medium: { type: integer }
102
+ low: { type: integer }
103
+ scan_duration_ms:
104
+ type: integer
105
+
106
+ # Error definitions
107
+ errors:
108
+ - code: "SCAN_FAILED"
109
+ description: "Scanner failed to execute"
110
+ retryable: true
111
+ - code: "TARGET_NOT_FOUND"
112
+ description: "Scan target does not exist"
113
+ retryable: false
114
+ - code: "SCANNER_UNAVAILABLE"
115
+ description: "Requested scanner is not available"
116
+ retryable: true
117
+ - code: "TIMEOUT"
118
+ description: "Scan exceeded time limit"
119
+ retryable: true
120
+
121
+ # Bindings to concrete implementations
122
+ bindings:
123
+ mcp:
124
+ server: "security-scanner"
125
+ tool: "scan"
126
+ mapping:
127
+ target: "path"
128
+ severity_threshold: "min_severity"
129
+ cli:
130
+ command: "trivy fs {target} --severity {severity_threshold}"
131
+ parser: "json"
132
+ http:
133
+ method: POST
134
+ url: "https://api.scanner.example/v1/scan"
135
+ headers:
136
+ Content-Type: "application/json"
137
+ body_template: |
138
+ {
139
+ "target": "{target}",
140
+ "severity": "{severity_threshold}"
141
+ }
142
+ ```
143
+
144
+ ### 3.2 TypeScript Interface
145
+
146
+ ```typescript
147
+ interface CapabilityDefinition {
148
+ // Identity
149
+ uri: CapabilityURI;
150
+ name: string;
151
+ domain: CapabilityDomain;
152
+ version: SemanticVersion;
153
+
154
+ // Documentation
155
+ description: string;
156
+ documentation_url?: string;
157
+
158
+ // Stability
159
+ stability: 'experimental' | 'beta' | 'stable' | 'deprecated';
160
+ deprecated_by?: CapabilityURI;
161
+ sunset_date?: string; // ISO8601
162
+
163
+ // Contract
164
+ input: JSONSchema;
165
+ output: JSONSchema;
166
+ errors: ErrorDefinition[];
167
+
168
+ // Bindings
169
+ bindings: {
170
+ mcp?: MCPBinding;
171
+ cli?: CLIBinding;
172
+ http?: HTTPBinding;
173
+ grpc?: GRPCBinding;
174
+ delegation?: DelegationBinding;
175
+ };
176
+ }
177
+
178
+ interface ErrorDefinition {
179
+ code: string;
180
+ description: string;
181
+ retryable: boolean;
182
+ }
183
+
184
+ interface MCPBinding {
185
+ server: string;
186
+ tool: string;
187
+ mapping?: Record<string, string>;
188
+ }
189
+
190
+ interface CLIBinding {
191
+ command: string;
192
+ parser: 'json' | 'text' | 'yaml';
193
+ env?: Record<string, string>;
194
+ }
195
+
196
+ interface HTTPBinding {
197
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE';
198
+ url: string;
199
+ headers?: Record<string, string>;
200
+ body_template?: string;
201
+ }
202
+ ```
203
+
204
+ ## 4. Standard Capability Domains
205
+
206
+ ### 4.1 Security Domain (`ossa:security/*`)
207
+
208
+ | Capability | Version | Description |
209
+ |------------|---------|-------------|
210
+ | `scan_vulnerabilities` | 1.0 | Scan for security vulnerabilities |
211
+ | `apply_patches` | 1.0 | Apply security patches |
212
+ | `generate_sbom` | 1.0 | Generate Software Bill of Materials |
213
+ | `block_merge` | 1.0 | Block merge requests for security issues |
214
+ | `rotate_secrets` | 1.0 | Rotate secrets and credentials |
215
+ | `audit_access` | 1.0 | Audit access logs |
216
+
217
+ ### 4.2 Content Domain (`ossa:content/*`)
218
+
219
+ | Capability | Version | Description |
220
+ |------------|---------|-------------|
221
+ | `publish` | 1.0 | Publish content to destination |
222
+ | `draft` | 1.0 | Create draft content |
223
+ | `review` | 1.0 | Review content for quality |
224
+ | `translate` | 1.0 | Translate content to target language |
225
+ | `summarize` | 1.0 | Summarize content |
226
+ | `extract` | 1.0 | Extract structured data from content |
227
+
228
+ ### 4.3 Code Domain (`ossa:code/*`)
229
+
230
+ | Capability | Version | Description |
231
+ |------------|---------|-------------|
232
+ | `lint` | 1.0 | Run linting checks |
233
+ | `format` | 1.0 | Format code |
234
+ | `test` | 1.0 | Run test suite |
235
+ | `build` | 1.0 | Build project |
236
+ | `deploy` | 1.0 | Deploy to environment |
237
+ | `refactor` | 1.0 | Refactor code |
238
+ | `generate` | 1.0 | Generate code |
239
+
240
+ ### 4.4 A2A Domain (`ossa:a2a/*`)
241
+
242
+ | Capability | Version | Description |
243
+ |------------|---------|-------------|
244
+ | `send` | 1.0 | Send message to agent |
245
+ | `broadcast` | 1.0 | Broadcast to agent group |
246
+ | `discover` | 1.0 | Discover available agents |
247
+ | `negotiate` | 1.0 | Negotiate capability versions |
248
+ | `delegate` | 1.0 | Delegate task to another agent |
249
+ | `escalate` | 1.0 | Escalate to human or supervisor |
250
+
251
+ ### 4.5 State Domain (`ossa:state/*`)
252
+
253
+ | Capability | Version | Description |
254
+ |------------|---------|-------------|
255
+ | `read` | 1.0 | Read state value |
256
+ | `write` | 1.0 | Write state value |
257
+ | `checkpoint` | 1.0 | Create state checkpoint |
258
+ | `rollback` | 1.0 | Rollback to checkpoint |
259
+ | `list` | 1.0 | List state keys |
260
+ | `delete` | 1.0 | Delete state value |
261
+
262
+ ### 4.6 Observability Domain (`ossa:observability/*`)
263
+
264
+ | Capability | Version | Description |
265
+ |------------|---------|-------------|
266
+ | `trace` | 1.0 | Create trace span |
267
+ | `metric` | 1.0 | Record metric |
268
+ | `log` | 1.0 | Write log entry |
269
+ | `alert` | 1.0 | Send alert |
270
+ | `dashboard` | 1.0 | Update dashboard |
271
+
272
+ ## 5. Capability Registry
273
+
274
+ ### 5.1 Registry Format
275
+
276
+ ```yaml
277
+ registry:
278
+ version: "1.0"
279
+ updated_at: "2025-01-15T00:00:00Z"
280
+
281
+ domains:
282
+ - name: security
283
+ description: "Security scanning and remediation"
284
+ maintainer: "security@ossa.dev"
285
+
286
+ - name: code
287
+ description: "Code quality and deployment"
288
+ maintainer: "code@ossa.dev"
289
+
290
+ capabilities:
291
+ - uri: "ossa:security/scan_vulnerabilities@1.0"
292
+ stability: stable
293
+ added_in: "0.2.0"
294
+
295
+ - uri: "ossa:security/scan_vulnerabilities@0.9"
296
+ stability: deprecated
297
+ deprecated_by: "ossa:security/scan_vulnerabilities@1.0"
298
+ sunset_date: "2025-06-01"
299
+
300
+ - uri: "ossa:code/lint@2.0"
301
+ stability: stable
302
+ added_in: "0.2.5"
303
+ breaking_changes:
304
+ - "Changed output format from flat to nested"
305
+ ```
306
+
307
+ ### 5.2 Registry API
308
+
309
+ ```yaml
310
+ # GET /registry/capabilities
311
+ # Returns all registered capabilities
312
+
313
+ # GET /registry/capabilities/{domain}
314
+ # Returns capabilities in a domain
315
+
316
+ # GET /registry/capabilities/{domain}/{name}
317
+ # Returns specific capability (all versions)
318
+
319
+ # GET /registry/capabilities/{domain}/{name}@{version}
320
+ # Returns specific capability version
321
+ ```
322
+
323
+ ## 6. Versioning Rules
324
+
325
+ ### 6.1 Semantic Versioning
326
+
327
+ Capabilities follow semantic versioning:
328
+
329
+ - **MAJOR**: Breaking changes to input/output schema
330
+ - **MINOR**: New optional fields, additive changes
331
+ - **PATCH**: Documentation, bug fixes (not in URI)
332
+
333
+ ### 6.2 Breaking Changes
334
+
335
+ The following are considered breaking changes (require MAJOR bump):
336
+
337
+ - Removing required input field
338
+ - Adding new required input field
339
+ - Changing type of existing field
340
+ - Removing output field
341
+ - Changing error codes
342
+
343
+ ### 6.3 Non-Breaking Changes
344
+
345
+ The following are non-breaking (MINOR bump):
346
+
347
+ - Adding optional input field with default
348
+ - Adding output field
349
+ - Adding new error code
350
+ - Changing description
351
+ - Adding new binding type
352
+
353
+ ## 7. Version Negotiation
354
+
355
+ ### 7.1 Negotiation Protocol
356
+
357
+ ```yaml
358
+ # Agent A requests capability from Agent B
359
+ request:
360
+ type: "capability_request"
361
+ capability: "ossa:security/scan_vulnerabilities"
362
+ preferred_versions: ["1.0", "0.9"]
363
+ minimum_version: "0.9"
364
+
365
+ # Agent B responds with available version
366
+ response:
367
+ type: "capability_response"
368
+ capability: "ossa:security/scan_vulnerabilities@1.0"
369
+ status: "available"
370
+
371
+ # Or if not available
372
+ response:
373
+ type: "capability_response"
374
+ capability: "ossa:security/scan_vulnerabilities"
375
+ status: "unavailable"
376
+ reason: "No compatible version available"
377
+ available_versions: ["2.0"]
378
+ ```
379
+
380
+ ### 7.2 Compatibility Rules
381
+
382
+ ```typescript
383
+ function isCompatible(
384
+ requested: CapabilityURI,
385
+ available: CapabilityURI
386
+ ): boolean {
387
+ // Same domain and name required
388
+ if (requested.domain !== available.domain) return false;
389
+ if (requested.name !== available.name) return false;
390
+
391
+ // Major version must match
392
+ if (requested.major !== available.major) return false;
393
+
394
+ // Available minor must be >= requested
395
+ return available.minor >= requested.minor;
396
+ }
397
+ ```
398
+
399
+ ## 8. Deprecation Policy
400
+
401
+ ### 8.1 Deprecation Timeline
402
+
403
+ 1. **Announcement**: Capability marked as `deprecated`
404
+ 2. **Grace Period**: 2 minor versions or 6 months (whichever is longer)
405
+ 3. **Sunset**: Capability removed from registry
406
+
407
+ ### 8.2 Deprecation Notice
408
+
409
+ ```yaml
410
+ capability:
411
+ uri: "ossa:security/scan@0.9"
412
+ stability: deprecated
413
+ deprecated_by: "ossa:security/scan_vulnerabilities@1.0"
414
+ sunset_date: "2025-06-01"
415
+ migration_guide: |
416
+ The `scan` capability has been renamed to `scan_vulnerabilities`.
417
+
418
+ Changes:
419
+ - Input field `path` renamed to `target`
420
+ - Output now includes `scan_duration_ms`
421
+
422
+ Migration:
423
+ 1. Update capability URI in manifest
424
+ 2. Update input field names
425
+ 3. Handle new output field
426
+ ```
427
+
428
+ ## 9. MCP Tool Bindings
429
+
430
+ ### 9.1 Binding Specification
431
+
432
+ ```yaml
433
+ bindings:
434
+ mcp:
435
+ # MCP server name
436
+ server: "security-scanner"
437
+
438
+ # Tool name within server
439
+ tool: "scan"
440
+
441
+ # Input mapping (OSSA field -> MCP field)
442
+ mapping:
443
+ target: "path"
444
+ severity_threshold: "min_severity"
445
+ scanners: "scanner_types"
446
+
447
+ # Output mapping (MCP field -> OSSA field)
448
+ output_mapping:
449
+ findings: "vulnerabilities"
450
+ elapsed: "scan_duration_ms"
451
+
452
+ # Error mapping (MCP error -> OSSA error)
453
+ error_mapping:
454
+ "NOT_FOUND": "TARGET_NOT_FOUND"
455
+ "TIMEOUT": "TIMEOUT"
456
+ ```
457
+
458
+ ### 9.2 Runtime Resolution
459
+
460
+ ```typescript
461
+ async function invokeCapability(
462
+ capability: CapabilityURI,
463
+ input: Record<string, unknown>,
464
+ bindings: CapabilityBindings
465
+ ): Promise<CapabilityResult> {
466
+ // Try bindings in order of preference
467
+ const bindingOrder = ['mcp', 'http', 'grpc', 'cli'];
468
+
469
+ for (const bindingType of bindingOrder) {
470
+ const binding = bindings[bindingType];
471
+ if (!binding) continue;
472
+
473
+ try {
474
+ return await executeBinding(bindingType, binding, input);
475
+ } catch (error) {
476
+ // Log and try next binding
477
+ console.warn(`Binding ${bindingType} failed:`, error);
478
+ }
479
+ }
480
+
481
+ throw new Error(`No available binding for ${capability}`);
482
+ }
483
+ ```
484
+
485
+ ## 10. Agent Manifest Integration
486
+
487
+ ### 10.1 Declaring Capabilities
488
+
489
+ ```yaml
490
+ apiVersion: ossa/v0.2.9
491
+ kind: Agent
492
+ metadata:
493
+ name: security-scanner
494
+ version: 1.0.0
495
+
496
+ spec:
497
+ type: worker
498
+
499
+ capabilities:
500
+ # Using standard capabilities
501
+ - ossa:security/scan_vulnerabilities@1.0
502
+ - ossa:security/generate_sbom@1.0
503
+
504
+ # Using MCP tools directly
505
+ - mcp:filesystem/read_file@1.0
506
+ - mcp:gitlab/create_issue@1.0
507
+
508
+ # Capability bindings for this agent
509
+ capability_bindings:
510
+ "ossa:security/scan_vulnerabilities@1.0":
511
+ mcp:
512
+ server: "trivy"
513
+ tool: "scan"
514
+ ```
515
+
516
+ ### 10.2 Requiring Capabilities
517
+
518
+ ```yaml
519
+ spec:
520
+ # Capabilities this agent requires from others
521
+ required_capabilities:
522
+ - uri: "ossa:a2a/delegate@1.0"
523
+ reason: "Delegation to specialized workers"
524
+ - uri: "ossa:state/checkpoint@1.0"
525
+ reason: "State persistence for recovery"
526
+ ```
527
+
528
+ ## 11. CLI Commands
529
+
530
+ ```bash
531
+ # List available capabilities
532
+ ossa capability list
533
+ ossa capability list --domain security
534
+
535
+ # Show capability details
536
+ ossa capability show ossa:security/scan_vulnerabilities@1.0
537
+
538
+ # Validate capability definition
539
+ ossa capability validate ./my-capability.yaml
540
+
541
+ # Register custom capability
542
+ ossa capability register ./my-capability.yaml
543
+
544
+ # Check capability compatibility
545
+ ossa capability compat ossa:security/scan@0.9 ossa:security/scan_vulnerabilities@1.0
546
+ ```
547
+
548
+ ## 12. Compliance Requirements
549
+
550
+ ### 12.1 MUST Requirements
551
+
552
+ 1. All capabilities MUST have a valid URI
553
+ 2. All capabilities MUST define input and output schemas
554
+ 3. All capabilities MUST define at least one binding
555
+ 4. Breaking changes MUST increment MAJOR version
556
+
557
+ ### 12.2 SHOULD Requirements
558
+
559
+ 1. Capabilities SHOULD include documentation_url
560
+ 2. Capabilities SHOULD define error codes
561
+ 3. Deprecated capabilities SHOULD specify migration_guide
562
+ 4. Bindings SHOULD include field mappings
563
+
564
+ ### 12.3 MAY Requirements
565
+
566
+ 1. Capabilities MAY define multiple bindings
567
+ 2. Capabilities MAY include examples
568
+ 3. Registries MAY implement caching
569
+
570
+ ## 13. References
571
+
572
+ - [OSSA Agent Manifest Specification](./agent.md)
573
+ - [A2A Protocol Specification](./a2a-protocol.md)
574
+ - [MCP Specification](https://spec.modelcontextprotocol.io/)
575
+ - [JSON Schema](https://json-schema.org/)
576
+ - [Semantic Versioning](https://semver.org/)