@bluefly/openstandardagents 0.2.4

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 (371) hide show
  1. package/.env.example +41 -0
  2. package/.eslintrc.cjs +43 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +39 -0
  4. package/.github/dependabot.yml +58 -0
  5. package/.github/workflows/ci.yml +154 -0
  6. package/.github/workflows/codeql.yml +41 -0
  7. package/.github/workflows/dependabot-auto-merge.yml +28 -0
  8. package/.github/workflows/release.yml +103 -0
  9. package/.prettierignore +7 -0
  10. package/.prettierrc.json +10 -0
  11. package/.redocly.yaml +9 -0
  12. package/.releaserc.json +84 -0
  13. package/.releaserc.json.disabled +81 -0
  14. package/CHANGELOG.md +152 -0
  15. package/CONTRIBUTING.md +249 -0
  16. package/LICENSE +190 -0
  17. package/README.md +280 -0
  18. package/bin/ossa +8 -0
  19. package/bin/validate-ossa-0.2.2.ts +244 -0
  20. package/dist/di-container.d.ts +18 -0
  21. package/dist/di-container.d.ts.map +1 -0
  22. package/dist/di-container.js +43 -0
  23. package/dist/di-container.js.map +1 -0
  24. package/dist/index.d.ts +13 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +17 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/repositories/manifest.repository.d.ts +26 -0
  29. package/dist/repositories/manifest.repository.d.ts.map +1 -0
  30. package/dist/repositories/manifest.repository.js +90 -0
  31. package/dist/repositories/manifest.repository.js.map +1 -0
  32. package/dist/repositories/schema.repository.d.ts +30 -0
  33. package/dist/repositories/schema.repository.d.ts.map +1 -0
  34. package/dist/repositories/schema.repository.js +143 -0
  35. package/dist/repositories/schema.repository.js.map +1 -0
  36. package/dist/services/generation.service.d.ts +54 -0
  37. package/dist/services/generation.service.d.ts.map +1 -0
  38. package/dist/services/generation.service.js +298 -0
  39. package/dist/services/generation.service.js.map +1 -0
  40. package/dist/services/migration.service.d.ts +30 -0
  41. package/dist/services/migration.service.d.ts.map +1 -0
  42. package/dist/services/migration.service.js +231 -0
  43. package/dist/services/migration.service.js.map +1 -0
  44. package/dist/services/runtime/openai.adapter.d.ts +94 -0
  45. package/dist/services/runtime/openai.adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/openai.adapter.js +209 -0
  47. package/dist/services/runtime/openai.adapter.js.map +1 -0
  48. package/dist/services/validation.service.d.ts +45 -0
  49. package/dist/services/validation.service.d.ts.map +1 -0
  50. package/dist/services/validation.service.js +362 -0
  51. package/dist/services/validation.service.js.map +1 -0
  52. package/dist/services/validators/anthropic.validator.d.ts +9 -0
  53. package/dist/services/validators/anthropic.validator.d.ts.map +1 -0
  54. package/dist/services/validators/anthropic.validator.js +105 -0
  55. package/dist/services/validators/anthropic.validator.js.map +1 -0
  56. package/dist/services/validators/autogen.validator.d.ts +9 -0
  57. package/dist/services/validators/autogen.validator.d.ts.map +1 -0
  58. package/dist/services/validators/autogen.validator.js +111 -0
  59. package/dist/services/validators/autogen.validator.js.map +1 -0
  60. package/dist/services/validators/crewai.validator.d.ts +9 -0
  61. package/dist/services/validators/crewai.validator.d.ts.map +1 -0
  62. package/dist/services/validators/crewai.validator.js +117 -0
  63. package/dist/services/validators/crewai.validator.js.map +1 -0
  64. package/dist/services/validators/cursor.validator.d.ts +9 -0
  65. package/dist/services/validators/cursor.validator.d.ts.map +1 -0
  66. package/dist/services/validators/cursor.validator.js +88 -0
  67. package/dist/services/validators/cursor.validator.js.map +1 -0
  68. package/dist/services/validators/index.d.ts +15 -0
  69. package/dist/services/validators/index.d.ts.map +1 -0
  70. package/dist/services/validators/index.js +15 -0
  71. package/dist/services/validators/index.js.map +1 -0
  72. package/dist/services/validators/langchain.validator.d.ts +9 -0
  73. package/dist/services/validators/langchain.validator.d.ts.map +1 -0
  74. package/dist/services/validators/langchain.validator.js +103 -0
  75. package/dist/services/validators/langchain.validator.js.map +1 -0
  76. package/dist/services/validators/langflow.validator.d.ts +9 -0
  77. package/dist/services/validators/langflow.validator.d.ts.map +1 -0
  78. package/dist/services/validators/langflow.validator.js +92 -0
  79. package/dist/services/validators/langflow.validator.js.map +1 -0
  80. package/dist/services/validators/langgraph.validator.d.ts +9 -0
  81. package/dist/services/validators/langgraph.validator.d.ts.map +1 -0
  82. package/dist/services/validators/langgraph.validator.js +123 -0
  83. package/dist/services/validators/langgraph.validator.js.map +1 -0
  84. package/dist/services/validators/llamaindex.validator.d.ts +9 -0
  85. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -0
  86. package/dist/services/validators/llamaindex.validator.js +121 -0
  87. package/dist/services/validators/llamaindex.validator.js.map +1 -0
  88. package/dist/services/validators/openai.validator.d.ts +9 -0
  89. package/dist/services/validators/openai.validator.d.ts.map +1 -0
  90. package/dist/services/validators/openai.validator.js +126 -0
  91. package/dist/services/validators/openai.validator.js.map +1 -0
  92. package/dist/services/validators/vercel-ai.validator.d.ts +9 -0
  93. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -0
  94. package/dist/services/validators/vercel-ai.validator.js +99 -0
  95. package/dist/services/validators/vercel-ai.validator.js.map +1 -0
  96. package/dist/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
  97. package/dist/spec/v0.1.9/ecosystem-compliance.json +235 -0
  98. package/dist/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
  99. package/dist/spec/v0.1.9/ossa-v0.1.9.schema.json.backup +695 -0
  100. package/dist/spec/v0.1.9/reasoning-compliance.json +654 -0
  101. package/dist/spec/v0.2.2/kagent-enhancements.json +395 -0
  102. package/dist/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
  103. package/dist/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
  104. package/dist/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
  105. package/dist/spec/v0.2.3/CHANGELOG.md +176 -0
  106. package/dist/spec/v0.2.3/README.md +154 -0
  107. package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
  108. package/dist/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
  109. package/dist/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
  110. package/dist/spec/v0.2.4-dev/CHANGELOG.md +403 -0
  111. package/dist/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  112. package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +1696 -0
  113. package/dist/spec/v0.2.4-dev/ossa-0.2.4-dev.yaml +581 -0
  114. package/dist/spec/v0.2.5-dev/CHANGELOG.md +171 -0
  115. package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +362 -0
  116. package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +464 -0
  117. package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +440 -0
  118. package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +317 -0
  119. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +1732 -0
  120. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +409 -0
  121. package/dist/types/index.d.ts +178 -0
  122. package/dist/types/index.d.ts.map +1 -0
  123. package/dist/types/index.js +6 -0
  124. package/dist/types/index.js.map +1 -0
  125. package/dist/types/openapi-extensions.d.ts +164 -0
  126. package/dist/types/openapi-extensions.d.ts.map +1 -0
  127. package/dist/types/openapi-extensions.js +6 -0
  128. package/dist/types/openapi-extensions.js.map +1 -0
  129. package/docs/OSSA-COMPLIANT-BADGE.md +248 -0
  130. package/docs/README.md +31 -0
  131. package/docs/VERSIONING.md +284 -0
  132. package/docs/agent-openapi-spec.yml +942 -0
  133. package/docs/getting-started.md +87 -0
  134. package/docs/migration/general-agent-schema.yml +255 -0
  135. package/docs/migration/migration-manifest.json +64 -0
  136. package/docs/openapi-extensions.md +930 -0
  137. package/docs/schemas/openapi-extensions.schema.json +486 -0
  138. package/examples/adk-integration/code-review-workflow.yml +136 -0
  139. package/examples/adk-integration/customer-support.yml +263 -0
  140. package/examples/adk-integration/data-pipeline.yml +173 -0
  141. package/examples/advanced/patterns/compliance-context-production.json +53 -0
  142. package/examples/advanced/patterns/model-router.ts +274 -0
  143. package/examples/advanced/patterns/smart-model-routing.ts +248 -0
  144. package/examples/advanced/workflows/hybrid-model-strategy.yaml +232 -0
  145. package/examples/agent-manifests/critics/critic-agent.yaml +149 -0
  146. package/examples/agent-manifests/governors/governor-agent.yaml +128 -0
  147. package/examples/agent-manifests/integrators/integrator-agent.yaml +103 -0
  148. package/examples/agent-manifests/judges/judge-agent.yaml +153 -0
  149. package/examples/agent-manifests/monitors/monitor-agent.yaml +122 -0
  150. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +247 -0
  151. package/examples/agent-manifests/sample-compliant-agent.yaml +147 -0
  152. package/examples/agent-manifests/workers/worker-agent.yaml +82 -0
  153. package/examples/anthropic/claude-assistant.ossa.json +45 -0
  154. package/examples/architecture/model-configuration/ollama-integration.ts +110 -0
  155. package/examples/autogen/multi-agent.ossa.json +37 -0
  156. package/examples/bridge-configurations.yaml +346 -0
  157. package/examples/bridges/Dockerfile.production +87 -0
  158. package/examples/bridges/__pycache__/aiflow-bridge-enhanced.cpython-313.pyc +0 -0
  159. package/examples/bridges/__pycache__/aiflow-phoenix-tracing.cpython-313.pyc +0 -0
  160. package/examples/bridges/__pycache__/test_aiflow_integration.cpython-313.pyc +0 -0
  161. package/examples/bridges/aiflow-bridge-enhanced.py +462 -0
  162. package/examples/bridges/aiflow-bridge-example.yml +310 -0
  163. package/examples/bridges/aiflow-phoenix-tracing.py +310 -0
  164. package/examples/bridges/aiflow-registration-api.openapi.yml +439 -0
  165. package/examples/bridges/k8s/configmap.yaml +121 -0
  166. package/examples/bridges/k8s/deployment-simple.yaml +34 -0
  167. package/examples/bridges/k8s/deployment.yaml +275 -0
  168. package/examples/bridges/k8s/hpa.yaml +126 -0
  169. package/examples/bridges/k8s/ingress.yaml +155 -0
  170. package/examples/bridges/kagent-bridge-example.yml +94 -0
  171. package/examples/bridges/load-tests/Dockerfile +28 -0
  172. package/examples/bridges/load-tests/k6-load-test.js +302 -0
  173. package/examples/bridges/load-tests/requirements.txt +20 -0
  174. package/examples/bridges/loadtest/k6-scenarios.js +270 -0
  175. package/examples/bridges/phase4/SLO-SLA.yaml +249 -0
  176. package/examples/bridges/phase4/chaos-tests.yaml +226 -0
  177. package/examples/bridges/requirements.txt +24 -0
  178. package/examples/bridges/test_aiflow_integration.py +341 -0
  179. package/examples/common_npm/agent-router.ossa.yaml +182 -0
  180. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +60 -0
  181. package/examples/compliance-agent.yml +155 -0
  182. package/examples/crewai/research-team.ossa.json +36 -0
  183. package/examples/cursor/code-review-agent.ossa.json +47 -0
  184. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +609 -0
  185. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +68 -0
  186. package/examples/enterprise/agent.yml +452 -0
  187. package/examples/extensions/drupal-v1.yml +266 -0
  188. package/examples/extensions/kagent-v1.yml +167 -0
  189. package/examples/getting-started/hello-world-complete.ossa.yaml +266 -0
  190. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +376 -0
  191. package/examples/kagent/README.md +31 -0
  192. package/examples/kagent/compliance-validator.ossa.yaml +111 -0
  193. package/examples/kagent/cost-optimizer.ossa.yaml +93 -0
  194. package/examples/kagent/documentation-agent.ossa.yaml +91 -0
  195. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +269 -0
  196. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +106 -0
  197. package/examples/kagent/k8s-troubleshooter.ossa.yaml +257 -0
  198. package/examples/kagent/security-scanner.ossa.yaml +140 -0
  199. package/examples/langchain/chain-agent.ossa.json +42 -0
  200. package/examples/langflow/workflow-agent.ossa.json +39 -0
  201. package/examples/langgraph/state-machine-agent.ossa.json +59 -0
  202. package/examples/llamaindex/rag-agent.ossa.json +41 -0
  203. package/examples/migration-guides/from-langchain-to-ossa.yaml +309 -0
  204. package/examples/minimal/agent.yml +152 -0
  205. package/examples/minimal/openapi.yaml +95 -0
  206. package/examples/openai/swarm-agent.ossa.json +59 -0
  207. package/examples/openapi-extensions/README.md +87 -0
  208. package/examples/openapi-extensions/minimal-agent-api.openapi.yml +288 -0
  209. package/examples/openapi-extensions/orchestrator-agent-api.openapi.yml +633 -0
  210. package/examples/openapi-extensions/worker-agent-api.openapi.yml +533 -0
  211. package/examples/production/agent.yml +713 -0
  212. package/examples/production/document-analyzer-openai.yml +134 -0
  213. package/examples/quickstart/support-agent.ossa.yaml +59 -0
  214. package/examples/service-registry-usage.ts +423 -0
  215. package/examples/spec-examples/audit-agent.yml +147 -0
  216. package/examples/spec-examples/chat-agent.yml +189 -0
  217. package/examples/spec-examples/compliance-agent.yml +204 -0
  218. package/examples/spec-examples/data-processing-agent.yml +132 -0
  219. package/examples/spec-examples/development-agent.yml +138 -0
  220. package/examples/spec-examples/edge-agent.yml +101 -0
  221. package/examples/spec-examples/integration-agent.yml +129 -0
  222. package/examples/spec-examples/monitoring-agent.yml +130 -0
  223. package/examples/spec-examples/serverless-agent.yml +82 -0
  224. package/examples/spec-examples/workflow-agent.yml +223 -0
  225. package/examples/templates/ossa-compliance.yaml +56 -0
  226. package/examples/typescript/advanced/demo-registry.ts +168 -0
  227. package/examples/typescript/mcpb-agent-example.ts +358 -0
  228. package/examples/vercel/edge-agent.ossa.json +43 -0
  229. package/infrastructure/docker-compose.yml +33 -0
  230. package/junit.xml +1 -0
  231. package/openapi/drupal-agent-api.openapi.yaml +348 -0
  232. package/openapi/gitlab-orchestrator.openapi.yaml +330 -0
  233. package/openapi/helm-generator.openapi.yaml +389 -0
  234. package/openapi/ossa-core-api.openapi.yaml +1448 -0
  235. package/openapi/ossa-registry-api.openapi.yaml +980 -0
  236. package/openapi/ossa-registry.openapi.yaml +782 -0
  237. package/openapi/self-evolving-ecosystem.openapi.yaml +1530 -0
  238. package/openapi/unified-agent-gateway.openapi.yaml +833 -0
  239. package/ossa-website-swarm-tasks.json +105 -0
  240. package/package.json +132 -0
  241. package/release.config.js +64 -0
  242. package/spec/v0.1.9/agent-autonomous-extensions.json +234 -0
  243. package/spec/v0.1.9/ecosystem-compliance.json +235 -0
  244. package/spec/v0.1.9/ossa-v0.1.9.schema.json +695 -0
  245. package/spec/v0.1.9/ossa-v0.1.9.schema.json.backup +695 -0
  246. package/spec/v0.1.9/reasoning-compliance.json +654 -0
  247. package/spec/v0.2.2/kagent-enhancements.json +395 -0
  248. package/spec/v0.2.2/ossa-0.2.2.schema.json +906 -0
  249. package/spec/v0.2.2/ossa-0.2.2.yaml +448 -0
  250. package/spec/v0.2.2/ossa-reasoning-compliance-1.0.schema.json +424 -0
  251. package/spec/v0.2.3/CHANGELOG.md +176 -0
  252. package/spec/v0.2.3/README.md +154 -0
  253. package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +343 -0
  254. package/spec/v0.2.3/ossa-0.2.3.schema.json +1397 -0
  255. package/spec/v0.2.3/ossa-0.2.3.yaml +448 -0
  256. package/spec/v0.2.4-dev/CHANGELOG.md +403 -0
  257. package/spec/v0.2.4-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  258. package/spec/v0.2.4-dev/ossa-0.2.4-dev.schema.json +1696 -0
  259. package/spec/v0.2.4-dev/ossa-0.2.4-dev.yaml +581 -0
  260. package/spec/v0.2.5-dev/CHANGELOG.md +171 -0
  261. package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +362 -0
  262. package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +464 -0
  263. package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +440 -0
  264. package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +317 -0
  265. package/spec/v0.2.5-dev/ossa-0.2.5-dev.schema.json +1732 -0
  266. package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +409 -0
  267. package/test-results.xml +1 -0
  268. package/website/.lighthouserc.js +20 -0
  269. package/website/.prettierrc +10 -0
  270. package/website/Dockerfile +17 -0
  271. package/website/app/about/page.tsx +295 -0
  272. package/website/app/api/validate/route.ts +88 -0
  273. package/website/app/blog/[slug]/page.tsx +167 -0
  274. package/website/app/blog/page.tsx +162 -0
  275. package/website/app/docs/[[...slug]]/page.tsx +349 -0
  276. package/website/app/docs/core-concepts/project-structure/page.tsx +349 -0
  277. package/website/app/ecosystem/page.tsx +375 -0
  278. package/website/app/examples/page.tsx +123 -0
  279. package/website/app/globals.css +108 -0
  280. package/website/app/layout.tsx +106 -0
  281. package/website/app/page.tsx +409 -0
  282. package/website/app/playground/page.tsx +507 -0
  283. package/website/app/robots.ts +19 -0
  284. package/website/app/rss.xml/route.ts +74 -0
  285. package/website/app/schema/page.tsx +970 -0
  286. package/website/app/sitemap.ts +56 -0
  287. package/website/app/specification/page.tsx +211 -0
  288. package/website/components/InstallCommand.tsx +96 -0
  289. package/website/components/Logo.tsx +24 -0
  290. package/website/components/StructuredData.tsx +65 -0
  291. package/website/components/docs/DocsSearch.tsx +104 -0
  292. package/website/components/docs/DocsSidebar.tsx +118 -0
  293. package/website/components/docs/MarkdownContent.tsx +183 -0
  294. package/website/components/docs/VersionSelector.tsx +49 -0
  295. package/website/components/examples/ExamplesViewer.tsx +293 -0
  296. package/website/components/layout/Footer.tsx +111 -0
  297. package/website/components/layout/Header.tsx +170 -0
  298. package/website/components/schema/SchemaExplorer.tsx +213 -0
  299. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +285 -0
  300. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +209 -0
  301. package/website/content/blog/introducing-ossa-framework.md +328 -0
  302. package/website/content/blog/ossa-production-results.md +279 -0
  303. package/website/content/blog/welcome-to-ossa.md +43 -0
  304. package/website/content/blog/why-ai-agents-need-open-standard.md +98 -0
  305. package/website/content/docs/00-HOME.md +160 -0
  306. package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +107 -0
  307. package/website/content/docs/OpenAPI-Extensions.md +498 -0
  308. package/website/content/docs/architecture/execution-flow.md +335 -0
  309. package/website/content/docs/architecture/multi-agent-systems.md +737 -0
  310. package/website/content/docs/architecture/overview.md +121 -0
  311. package/website/content/docs/architecture/stack-integration.md +461 -0
  312. package/website/content/docs/changelog.md +246 -0
  313. package/website/content/docs/contributing.md +599 -0
  314. package/website/content/docs/core-concepts/project-structure.md +348 -0
  315. package/website/content/docs/ecosystem/framework-support.md +821 -0
  316. package/website/content/docs/ecosystem/overview.md +366 -0
  317. package/website/content/docs/examples/Migration-Guides.md +214 -0
  318. package/website/content/docs/examples.md +71 -0
  319. package/website/content/docs/for-audiences/Enterprises.md +256 -0
  320. package/website/content/docs/for-audiences/Students-Researchers.md +122 -0
  321. package/website/content/docs/for-audiences/architects.md +224 -0
  322. package/website/content/docs/for-audiences/developers.md +220 -0
  323. package/website/content/docs/getting-started/5-minute-overview.md +85 -0
  324. package/website/content/docs/getting-started/Hello-World.md +184 -0
  325. package/website/content/docs/getting-started/first-agent.md +196 -0
  326. package/website/content/docs/getting-started/installation.md +155 -0
  327. package/website/content/docs/getting-started/running-agents.md +107 -0
  328. package/website/content/docs/integrations/aiflow.md +104 -0
  329. package/website/content/docs/integrations/drupal.md +105 -0
  330. package/website/content/docs/migration-guides/00-index.md +76 -0
  331. package/website/content/docs/migration-guides/README.md +133 -0
  332. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +1750 -0
  333. package/website/content/docs/migration-guides/crewai-to-ossa.md +274 -0
  334. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +2017 -0
  335. package/website/content/docs/migration-guides/index.md +133 -0
  336. package/website/content/docs/migration-guides/langchain-to-ossa.md +1714 -0
  337. package/website/content/docs/migration-guides/langflow-to-ossa.md +2075 -0
  338. package/website/content/docs/migration-guides/openai-to-ossa.md +1202 -0
  339. package/website/content/docs/openapi-extensions/examples.md +550 -0
  340. package/website/content/docs/openapi-extensions/index.md +495 -0
  341. package/website/content/docs/openapi-extensions/operation-extensions.md +398 -0
  342. package/website/content/docs/openapi-extensions/root-extensions.md +364 -0
  343. package/website/content/docs/pre-release/index.md +175 -0
  344. package/website/content/docs/quick-reference.md +17 -0
  345. package/website/content/docs/schema-reference/agent-spec.md +406 -0
  346. package/website/content/docs/schema-reference/autonomy.md +568 -0
  347. package/website/content/docs/schema-reference/constraints.md +543 -0
  348. package/website/content/docs/schema-reference/index.md +176 -0
  349. package/website/content/docs/schema-reference/llm-config.md +445 -0
  350. package/website/content/docs/schema-reference/observability.md +654 -0
  351. package/website/content/docs/schema-reference/ossa-manifest.md +309 -0
  352. package/website/content/docs/schema-reference/taxonomy.md +509 -0
  353. package/website/content/docs/schema-reference/tools.md +628 -0
  354. package/website/content/docs/templates/blog-post.md +43 -0
  355. package/website/content/docs/use-cases/00-index.md +395 -0
  356. package/website/content/docs/use-cases/cicd-code-review.md +1236 -0
  357. package/website/content/docs/use-cases/customer-support.md +1234 -0
  358. package/website/content/docs/use-cases/enterprise-compliance.md +1208 -0
  359. package/website/content/docs/use-cases/research-multi-agent.md +1161 -0
  360. package/website/lib/version.ts +18 -0
  361. package/website/next.config.js +17 -0
  362. package/website/next.config.ts +16 -0
  363. package/website/nginx.conf +32 -0
  364. package/website/package-lock.json +9145 -0
  365. package/website/package.json +53 -0
  366. package/website/postcss.config.js +7 -0
  367. package/website/postcss.config.mjs +9 -0
  368. package/website/scripts/sync-version.js +44 -0
  369. package/website/scripts/sync-wiki.ts +261 -0
  370. package/website/tailwind.config.js +58 -0
  371. package/website/tailwind.config.ts +65 -0
@@ -0,0 +1,170 @@
1
+ 'use client';
2
+
3
+ import Link from 'next/link';
4
+ import { useState } from 'react';
5
+
6
+ export function Header() {
7
+ const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
8
+
9
+ return (
10
+ <header className="bg-white border-b border-gray-300 sticky top-0 z-50">
11
+ <nav className="container mx-auto max-w-6xl px-4">
12
+ <div className="flex items-center justify-between h-16">
13
+ <Link href="/" className="flex items-center space-x-3 group">
14
+ <img
15
+ src="/assets/brand/ossa-logo.svg"
16
+ alt="OSSA Logo"
17
+ className="h-10 w-10 transition-transform group-hover:scale-110"
18
+ />
19
+ <span className="text-2xl font-bold bg-gradient-to-r from-[#0066CC] to-[#00B8D4] bg-clip-text text-transparent">
20
+ OSSA
21
+ </span>
22
+ </Link>
23
+
24
+ {/* Desktop Navigation */}
25
+ <div className="hidden md:flex items-center space-x-6">
26
+ <Link href="/about" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
27
+ About
28
+ </Link>
29
+ <Link href="/specification" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
30
+ Specification
31
+ </Link>
32
+ <Link href="/docs" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
33
+ Documentation
34
+ </Link>
35
+ <Link href="/schema" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
36
+ Schema
37
+ </Link>
38
+ <Link href="/playground" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
39
+ Playground
40
+ </Link>
41
+ <Link href="/examples" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
42
+ Examples
43
+ </Link>
44
+ <Link href="/blog" className="text-gray-600 hover:text-[#0066CC] transition-colors font-medium">
45
+ Blog
46
+ </Link>
47
+ <a
48
+ href="https://github.com/blueflyio/openstandardagents"
49
+ target="_blank"
50
+ rel="noopener noreferrer"
51
+ className="text-gray-600 hover:text-[#0066CC] transition-colors flex items-center gap-1 font-medium"
52
+ title="View on GitHub"
53
+ >
54
+ <svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
55
+ <path fillRule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clipRule="evenodd" />
56
+ </svg>
57
+ GitHub
58
+ </a>
59
+ </div>
60
+
61
+ {/* Mobile Menu Button */}
62
+ <button
63
+ className="md:hidden p-2 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 rounded"
64
+ onClick={() => setMobileMenuOpen(!mobileMenuOpen)}
65
+ aria-label="Toggle menu"
66
+ aria-expanded={mobileMenuOpen}
67
+ aria-controls="mobile-menu"
68
+ >
69
+ <svg
70
+ className="w-6 h-6"
71
+ fill="none"
72
+ stroke="currentColor"
73
+ viewBox="0 0 24 24"
74
+ >
75
+ {mobileMenuOpen ? (
76
+ <path
77
+ strokeLinecap="round"
78
+ strokeLinejoin="round"
79
+ strokeWidth={2}
80
+ d="M6 18L18 6M6 6l12 12"
81
+ />
82
+ ) : (
83
+ <path
84
+ strokeLinecap="round"
85
+ strokeLinejoin="round"
86
+ strokeWidth={2}
87
+ d="M4 6h16M4 12h16M4 18h16"
88
+ />
89
+ )}
90
+ </svg>
91
+ </button>
92
+ </div>
93
+
94
+ {/* Mobile Navigation */}
95
+ {mobileMenuOpen && (
96
+ <div
97
+ id="mobile-menu"
98
+ className="md:hidden py-4 border-t border-gray-300"
99
+ role="navigation"
100
+ aria-label="Mobile navigation"
101
+ >
102
+ <Link
103
+ href="/about"
104
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
105
+ onClick={() => setMobileMenuOpen(false)}
106
+ >
107
+ About
108
+ </Link>
109
+ <Link
110
+ href="/specification"
111
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
112
+ onClick={() => setMobileMenuOpen(false)}
113
+ >
114
+ Specification
115
+ </Link>
116
+ <Link
117
+ href="/docs"
118
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
119
+ onClick={() => setMobileMenuOpen(false)}
120
+ >
121
+ Documentation
122
+ </Link>
123
+ <Link
124
+ href="/schema"
125
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
126
+ onClick={() => setMobileMenuOpen(false)}
127
+ >
128
+ Schema
129
+ </Link>
130
+ <Link
131
+ href="/playground"
132
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
133
+ onClick={() => setMobileMenuOpen(false)}
134
+ >
135
+ Playground
136
+ </Link>
137
+ <Link
138
+ href="/examples"
139
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
140
+ onClick={() => setMobileMenuOpen(false)}
141
+ >
142
+ Examples
143
+ </Link>
144
+ <Link
145
+ href="/blog"
146
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors font-medium"
147
+ onClick={() => setMobileMenuOpen(false)}
148
+ >
149
+ Blog
150
+ </Link>
151
+ <a
152
+ href="https://github.com/blueflyio/openstandardagents"
153
+ target="_blank"
154
+ rel="noopener noreferrer"
155
+ className="block py-2 text-gray-600 hover:text-[#0066CC] transition-colors flex items-center gap-2 font-medium"
156
+ onClick={() => setMobileMenuOpen(false)}
157
+ title="View on GitHub"
158
+ >
159
+ <svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
160
+ <path fillRule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clipRule="evenodd" />
161
+ </svg>
162
+ GitHub
163
+ </a>
164
+ </div>
165
+ )}
166
+ </nav>
167
+ </header>
168
+ );
169
+ }
170
+
@@ -0,0 +1,213 @@
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
4
+ import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
5
+ import { vscDarkPlus } from 'react-syntax-highlighter/dist/cjs/styles/prism';
6
+
7
+ interface SchemaExplorerProps {
8
+ schema: any;
9
+ }
10
+
11
+ interface PropertyInfo {
12
+ name: string;
13
+ type: string;
14
+ description?: string;
15
+ required?: boolean;
16
+ properties?: PropertyInfo[];
17
+ }
18
+
19
+ function extractProperties(schema: any, path = ''): PropertyInfo[] {
20
+ if (!schema || typeof schema !== 'object') {
21
+ return [];
22
+ }
23
+
24
+ const properties: PropertyInfo[] = [];
25
+
26
+ if (schema.properties) {
27
+ for (const [key, value] of Object.entries(schema.properties)) {
28
+ const prop = value as any;
29
+ const propInfo: PropertyInfo = {
30
+ name: key,
31
+ type: prop.type || 'object',
32
+ description: prop.description,
33
+ required: schema.required?.includes(key),
34
+ };
35
+
36
+ if (prop.properties || prop.items) {
37
+ propInfo.properties = extractProperties(
38
+ prop.properties || prop.items,
39
+ `${path}.${key}`
40
+ );
41
+ }
42
+
43
+ properties.push(propInfo);
44
+ }
45
+ }
46
+
47
+ return properties;
48
+ }
49
+
50
+ export function SchemaExplorer({ schema }: SchemaExplorerProps) {
51
+ const [selectedPath, setSelectedPath] = useState<string>('');
52
+ const [expandedPaths, setExpandedPaths] = useState<Set<string>>(
53
+ new Set([''])
54
+ );
55
+
56
+ const rootProperties = extractProperties(schema);
57
+
58
+ const togglePath = (path: string): void => {
59
+ setExpandedPaths((prev) => {
60
+ const next = new Set(prev);
61
+ if (next.has(path)) {
62
+ next.delete(path);
63
+ } else {
64
+ next.add(path);
65
+ }
66
+ return next;
67
+ });
68
+ };
69
+
70
+ const renderProperty = (
71
+ prop: PropertyInfo,
72
+ depth = 0,
73
+ currentPath = ''
74
+ ) => {
75
+ const fullPath = currentPath ? `${currentPath}.${prop.name}` : prop.name;
76
+ const isExpanded = expandedPaths.has(fullPath);
77
+ const hasChildren = prop.properties && prop.properties.length > 0;
78
+
79
+ return (
80
+ <div key={prop.name} className="ml-4">
81
+ <div
82
+ className={`flex items-start py-2 ${
83
+ selectedPath === fullPath ? 'bg-primary/10' : ''
84
+ }`}
85
+ >
86
+ {hasChildren && (
87
+ <button
88
+ onClick={() => togglePath(fullPath)}
89
+ className="mr-2 text-gray-500 hover:text-gray-700"
90
+ aria-label={isExpanded ? 'Collapse' : 'Expand'}
91
+ >
92
+ {isExpanded ? '−' : '+'}
93
+ </button>
94
+ )}
95
+ <div
96
+ className="flex-1 cursor-pointer"
97
+ onClick={() => setSelectedPath(fullPath)}
98
+ >
99
+ <div className="flex items-center gap-2">
100
+ <span className="font-semibold text-gray-900">{prop.name}</span>
101
+ <span className="text-sm text-gray-500">({prop.type})</span>
102
+ {prop.required && (
103
+ <span className="text-xs bg-error/20 text-error px-2 py-0.5 rounded">
104
+ required
105
+ </span>
106
+ )}
107
+ </div>
108
+ {prop.description && (
109
+ <p className="text-sm text-gray-600 mt-1">{prop.description}</p>
110
+ )}
111
+ </div>
112
+ </div>
113
+ {hasChildren && isExpanded && (
114
+ <div className="ml-6 border-l-2 border-gray-200">
115
+ {prop.properties?.map((child) =>
116
+ renderProperty(child, depth + 1, fullPath)
117
+ )}
118
+ </div>
119
+ )}
120
+ </div>
121
+ );
122
+ };
123
+
124
+ const getPropertyAtPath = (path: string): any => {
125
+ const parts = path.split('.').filter(Boolean);
126
+ let current: any = schema;
127
+
128
+ for (const part of parts) {
129
+ if (current?.properties?.[part]) {
130
+ current = current.properties[part];
131
+ } else {
132
+ return null;
133
+ }
134
+ }
135
+
136
+ return current;
137
+ };
138
+
139
+ const selectedProperty = selectedPath
140
+ ? getPropertyAtPath(selectedPath)
141
+ : schema;
142
+
143
+ return (
144
+ <div className="grid lg:grid-cols-2 gap-6">
145
+ {/* Property Tree */}
146
+ <div className="card">
147
+ <h2 className="text-xl font-semibold mb-4">Schema Structure</h2>
148
+ <div className="space-y-1 max-h-[600px] overflow-y-auto">
149
+ {rootProperties.map((prop) => renderProperty(prop))}
150
+ </div>
151
+ </div>
152
+
153
+ {/* Property Details */}
154
+ <div className="card">
155
+ <h2 className="text-xl font-semibold mb-4">
156
+ {selectedPath || 'Schema Overview'}
157
+ </h2>
158
+ {selectedProperty && (
159
+ <div className="space-y-4">
160
+ <div>
161
+ <h3 className="font-semibold mb-2">Type</h3>
162
+ <p className="text-gray-700">{selectedProperty.type || 'object'}</p>
163
+ </div>
164
+
165
+ {selectedProperty.description && (
166
+ <div>
167
+ <h3 className="font-semibold mb-2">Description</h3>
168
+ <p className="text-gray-700">{selectedProperty.description}</p>
169
+ </div>
170
+ )}
171
+
172
+ {selectedProperty.enum && (
173
+ <div>
174
+ <h3 className="font-semibold mb-2">Allowed Values</h3>
175
+ <ul className="list-disc list-inside text-gray-700">
176
+ {selectedProperty.enum.map((value: any, index: number) => (
177
+ <li key={index}>{String(value)}</li>
178
+ ))}
179
+ </ul>
180
+ </div>
181
+ )}
182
+
183
+ {selectedProperty.default !== undefined && (
184
+ <div>
185
+ <h3 className="font-semibold mb-2">Default Value</h3>
186
+ <p className="text-gray-700">
187
+ {JSON.stringify(selectedProperty.default)}
188
+ </p>
189
+ </div>
190
+ )}
191
+
192
+ <div>
193
+ <h3 className="font-semibold mb-2">JSON Schema</h3>
194
+ <div className="border border-gray-300 rounded-lg overflow-hidden">
195
+ <SyntaxHighlighter
196
+ language="json"
197
+ style={vscDarkPlus}
198
+ customStyle={{
199
+ margin: 0,
200
+ fontSize: '12px',
201
+ }}
202
+ >
203
+ {JSON.stringify(selectedProperty, null, 2)}
204
+ </SyntaxHighlighter>
205
+ </div>
206
+ </div>
207
+ </div>
208
+ )}
209
+ </div>
210
+ </div>
211
+ );
212
+ }
213
+
@@ -0,0 +1,285 @@
1
+ ---
2
+ title: "OpenAPI AI Agents Standard (OSSA) - Foundation"
3
+ date: "2025-11-19"
4
+ author: "Thomas Scola"
5
+ category: "Research"
6
+ tags: ["OSSA", "AI Agents", "Standards"]
7
+ excerpt: "The proliferation of specialized AI agents in enterprise environments necessitates standardized orchestration mechanisms to coordinate their activities effectively. This paper presents the OpenAPI AI..."
8
+ ---
9
+
10
+ # OpenAPI AI Agents Standard (OSSA) \- Foundation
11
+
12
+ ## Intelligent Agent Orchestration: A Standards-Based Framework for Multi-Agent AI Systems
13
+
14
+ **Thomas Scola**
15
+ *Bluefly.io*
16
+ Portland, Maine, USA
17
+ [thomas@bluefly.io](mailto:thomas@bluefly.io)
18
+
19
+ ###
20
+
21
+ ### Abstract
22
+
23
+ The proliferation of specialized AI agents in enterprise environments necessitates standardized orchestration mechanisms to coordinate their activities effectively. This paper presents the OpenAPI AI Agents Standard (OSSA), a comprehensive framework for intelligent agent orchestration that addresses fundamental challenges in multi-agent system coordination. We propose a three-tier progressive compliance model (Core, Governed, Advanced) that enables organizations to adopt agent orchestration incrementally while maintaining interoperability across diverse AI frameworks including MCP, LangChain, CrewAI, and AutoGen. The framework introduces capability-based agent routing, dynamic task decomposition, and standardized handoff protocols. Experimental evaluation across 50 specialized agents executing 1,000 multi-agent workflows demonstrates 34% reduction in orchestration overhead, 26% improvement in coordination efficiency, and 21% increase in task completion rates compared to proprietary solutions. The proposed standard provides vendor-neutral protocols that enable seamless integration while supporting enterprise governance requirements including ISO 42001 and NIST AI RMF compliance.
24
+
25
+ ### 1\. Introduction
26
+
27
+ The evolution of artificial intelligence from monolithic models to specialized agent-based systems represents a fundamental architectural shift in computational systems. Organizations increasingly deploy multiple specialized AI agents to handle complex workflows, creating critical challenges in coordination, resource allocation, and context management. Current approaches suffer from vendor lock-in, incompatible protocols, and inefficient orchestration mechanisms that limit scalability and increase operational costs.
28
+
29
+ The OpenAPI AI Agents Standard (OSSA) addresses these challenges through a vendor-neutral, framework-agnostic approach to agent orchestration. Unlike proprietary solutions that create isolated ecosystems, OSSA establishes open protocols enabling interoperability across diverse AI frameworks while supporting enterprise governance requirements.
30
+
31
+ This research makes four primary contributions:
32
+
33
+ 1. A formal specification for progressive compliance in agent orchestration systems
34
+ 2. Capability-based routing algorithms for optimal agent selection
35
+ 3. Standardized handoff protocols minimizing context loss
36
+ 4. Integration bridges for existing AI frameworks
37
+
38
+ ### 2\. Background and Related Work
39
+
40
+ #### 2.1 Current Agent Frameworks
41
+
42
+ Existing agent frameworks demonstrate various limitations:
43
+
44
+ **LangChain** provides extensive tool integration but lacks standardized orchestration protocols. Agent coordination requires custom implementations, leading to fragmented solutions across deployments.
45
+
46
+ **CrewAI** supports multi-agent workflows but operates within a single framework paradigm, limiting interoperability with external systems.
47
+
48
+ **AutoGen** (Microsoft) enables conversational agent patterns but provides limited support for complex orchestration scenarios requiring dynamic agent selection.
49
+
50
+ **Model Context Protocol (MCP)** by Anthropic standardizes tool interfaces but does not address multi-agent coordination or resource optimization.
51
+
52
+ #### 2.2 Orchestration Challenges
53
+
54
+ Multi-agent systems face several orchestration challenges:
55
+
56
+ - **Protocol Incompatibility**: Agents from different frameworks cannot communicate effectively
57
+ - **Static Workflows**: Inability to adapt to changing task requirements dynamically
58
+ - **Context Fragmentation**: Loss of contextual information during agent handoffs
59
+ - **Resource Inefficiency**: Suboptimal agent selection and resource allocation
60
+
61
+ ### 3\. The OSSA Framework
62
+
63
+ #### 3.1 Architecture Overview
64
+
65
+ The OpenAPI AI Agents Standard defines a three-tier progressive compliance model:
66
+
67
+ ```
68
+ apiVersion: oaas/standard
69
+ kind: Agent
70
+ metadata:
71
+ name: code-analyzer
72
+ tier: governed
73
+ domain: software-development
74
+ spec:
75
+ capabilities:
76
+ - code-analysis
77
+ - security-scanning
78
+ - performance-profiling
79
+ orchestration:
80
+ can-lead: true
81
+ can-delegate: true
82
+ specialization-level: expert
83
+ compliance:
84
+ iso42001: compliant
85
+ nist-ai-rmf: compliant
86
+ ```
87
+
88
+ **Core Tier** provides basic agent discovery and invocation:
89
+
90
+ - Agent registration and discovery
91
+ - Basic capability declaration
92
+ - Simple request-response patterns
93
+
94
+ **Governed Tier** adds enterprise controls:
95
+
96
+ - Audit logging and compliance tracking
97
+ - Resource constraints and budgets
98
+ - Quality gates and validation
99
+
100
+ **Advanced Tier** enables sophisticated orchestration:
101
+
102
+ - Dynamic workflow generation
103
+ - Multi-agent coordination
104
+ - Adaptive resource allocation
105
+
106
+ #### 3.2 Capability-Based Routing
107
+
108
+ The framework implements intelligent agent selection through capability matching:
109
+
110
+ ```py
111
+ class CapabilityRouter:
112
+ def select_optimal_agent(self, task, available_agents):
113
+ # Calculate capability scores
114
+ scores = []
115
+ for agent in available_agents:
116
+ capability_match = self.calculate_capability_match(
117
+ task.required_capabilities,
118
+ agent.capabilities
119
+ )
120
+
121
+ specialization_score = self.evaluate_specialization(
122
+ task.domain,
123
+ agent.specialization_areas
124
+ )
125
+
126
+ availability_score = self.check_availability(
127
+ agent.current_load,
128
+ agent.max_capacity
129
+ )
130
+
131
+ composite_score = (
132
+ capability_match * 0.4 +
133
+ specialization_score * 0.4 +
134
+ availability_score * 0.2
135
+ )
136
+
137
+ scores.append((agent, composite_score))
138
+
139
+ # Return agent with highest score
140
+ return max(scores, key=lambda x: x[1])[0]
141
+ ```
142
+
143
+ #### 3.3 Standardized Handoff Protocol
144
+
145
+ OSSA defines efficient handoff mechanisms minimizing context loss:
146
+
147
+ ```py
148
+ class HandoffProtocol:
149
+ def prepare_handoff(self, source_agent, target_agent, context):
150
+ handoff_packet = {
151
+ 'task_id': context.task_id,
152
+ 'source': source_agent.id,
153
+ 'target': target_agent.id,
154
+ 'context': {
155
+ 'state': context.current_state,
156
+ 'history': context.get_relevant_history(),
157
+ 'constraints': context.constraints
158
+ },
159
+ 'metadata': {
160
+ 'timestamp': datetime.now(),
161
+ 'protocol_version': 'standard'
162
+ }
163
+ }
164
+
165
+ # Validate handoff compatibility
166
+ if not self.validate_compatibility(source_agent, target_agent):
167
+ raise HandoffException("Incompatible agent protocols")
168
+
169
+ return self.compress_handoff(handoff_packet)
170
+ ```
171
+
172
+ ### 4\. Implementation
173
+
174
+ #### 4.1 Framework Integration
175
+
176
+ OSSA provides integration bridges for existing frameworks:
177
+
178
+ ```py
179
+ # LangChain Integration
180
+ class LangChainBridge(OSSABridge):
181
+ def wrap_agent(self, langchain_agent):
182
+ return OSSAAgent(
183
+ native_agent=langchain_agent,
184
+ capabilities=self.extract_capabilities(langchain_agent),
185
+ adapter=self.create_langchain_adapter()
186
+ )
187
+
188
+ # CrewAI Integration
189
+ class CrewAIBridge(OSSABridge):
190
+ def wrap_crew(self, crew):
191
+ agents = []
192
+ for crew_agent in crew.agents:
193
+ agents.append(self.wrap_agent(crew_agent))
194
+ return OSSAWorkflow(agents=agents)
195
+ ```
196
+
197
+ #### 4.2 Dynamic Task Decomposition
198
+
199
+ The framework enables intelligent task breakdown:
200
+
201
+ ```py
202
+ class TaskDecomposer:
203
+ def decompose_task(self, task, available_agents):
204
+ # Analyze task complexity
205
+ complexity_analysis = self.analyze_complexity(task)
206
+
207
+ # Identify subtasks
208
+ subtasks = self.identify_subtasks(task, complexity_analysis)
209
+
210
+ # Map subtasks to agents
211
+ task_assignments = []
212
+ for subtask in subtasks:
213
+ optimal_agent = self.capability_router.select_optimal_agent(
214
+ subtask,
215
+ available_agents
216
+ )
217
+ task_assignments.append({
218
+ 'subtask': subtask,
219
+ 'agent': optimal_agent,
220
+ 'priority': subtask.priority,
221
+ 'dependencies': subtask.dependencies
222
+ })
223
+
224
+ # Generate execution plan
225
+ return self.generate_execution_plan(task_assignments)
226
+ ```
227
+
228
+ ### 5\. Evaluation
229
+
230
+ #### 5.1 Experimental Setup
231
+
232
+ We evaluated OSSA across three dimensions:
233
+
234
+ - **Orchestration Efficiency**: Overhead and coordination metrics
235
+ - **Task Performance**: Completion rates and quality scores
236
+ - **Interoperability**: Cross-framework communication success
237
+
238
+ **Test Environment:**
239
+
240
+ - 50 specialized agents across 5 frameworks
241
+ - 1,000 multi-agent workflows
242
+ - Tasks: Code generation, testing, documentation, analysis
243
+ - Baselines: Native framework orchestration, custom integrations
244
+
245
+ #### 5.2 Results
246
+
247
+ | Metric | Baseline | OSSA | Improvement |
248
+ | :---- | :---- | :---- | :---- |
249
+ | Orchestration Overhead | 450ms | 297ms | 34% reduction |
250
+ | Coordination Efficiency | 0.72 | 0.91 | 26% improvement |
251
+ | Task Completion Rate | 78% | 94% | 21% increase |
252
+ | Context Preservation | 65% | 89% | 37% improvement |
253
+ | Cross-Framework Success | 45% | 92% | 104% improvement |
254
+
255
+ #### 5.3 Case Study: Multi-Framework Development Pipeline
256
+
257
+ **Scenario**: Coordinate agents from LangChain (planning), CrewAI (implementation), and AutoGen (testing) for feature development.
258
+
259
+ **Baseline Approach**: Custom integration scripts, manual handoffs
260
+
261
+ - Time: 45 minutes
262
+ - Success Rate: 65%
263
+ - Manual Interventions: 8
264
+
265
+ **OSSA Approach**: Standardized orchestration
266
+
267
+ - Time: 28 minutes (38% faster)
268
+ - Success Rate: 92%
269
+ - Manual Interventions: 1
270
+
271
+ ### 6\. Discussion
272
+
273
+ The evaluation demonstrates OSSA's effectiveness in addressing key orchestration challenges. The 34% reduction in overhead validates the efficiency of standardized protocols, while 104% improvement in cross-framework communication confirms the value of vendor-neutral standards.
274
+
275
+ Key findings:
276
+
277
+ 1. **Progressive Compliance Enables Adoption**: Organizations can start with Core tier and advance gradually
278
+ 2. **Capability Routing Improves Selection**: 26% better agent utilization through intelligent matching
279
+ 3. **Standardized Handoffs Preserve Context**: 37% improvement in context retention
280
+
281
+ Limitations include initial integration overhead and the need for framework-specific adapters. Future work will address automatic adapter generation and machine learning-based optimization.
282
+
283
+ ### 7\. Conclusion
284
+
285
+ The OpenAPI AI Agents Standard provides a comprehensive framework for multi-agent orchestration, addressing critical challenges in coordination, interoperability, and resource optimization. Through progressive compliance tiers, capability-based routing, and standardized protocols, OSSA enables efficient orchestration while maintaining vendor neutrality. Experimental validation demonstrates significant improvements in orchestration efficiency, task performance, and cross-framework compatibility, establishing OSSA as a practical foundation for enterprise multi-agent systems.