@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,341 @@
1
+ """
2
+ Integration Tests for AIFlow Bridge with BuildKit & Phoenix
3
+
4
+ Tests:
5
+ 1. Agent registration with BuildKit
6
+ 2. Phoenix tracing initialization
7
+ 3. API endpoint functionality
8
+ 4. Heartbeat mechanism
9
+ 5. Metrics collection
10
+ 6. Error handling
11
+
12
+ Usage:
13
+ pytest test_aiflow_integration.py -v
14
+ """
15
+
16
+ import pytest
17
+ import asyncio
18
+ import os
19
+ from typing import AsyncGenerator
20
+ from unittest.mock import AsyncMock, MagicMock, patch
21
+
22
+ import httpx
23
+ from fastapi.testclient import TestClient
24
+
25
+
26
+ # Set test environment variables
27
+ os.environ['AIFLOW_API_KEY'] = 'test-key'
28
+ os.environ['PHOENIX_ENDPOINT'] = 'http://localhost:4318'
29
+ os.environ['PHOENIX_PROJECT'] = 'test-project'
30
+ os.environ['BUILDKIT_REGISTRY_URL'] = 'http://localhost:3000/api/v1'
31
+ os.environ['AGENT_ID'] = 'test-agent'
32
+
33
+
34
+ @pytest.fixture
35
+ def mock_http_client():
36
+ """Mock httpx client for BuildKit communication"""
37
+ client = AsyncMock(spec=httpx.AsyncClient)
38
+
39
+ # Mock registration response
40
+ registration_response = MagicMock()
41
+ registration_response.json.return_value = {
42
+ "agent_id": "test-agent",
43
+ "instance_id": "test-instance-123",
44
+ "registered_at": "2025-10-21T00:00:00Z",
45
+ "health_check_interval": 30,
46
+ "phoenix_trace_url": "http://phoenix/test-project"
47
+ }
48
+ registration_response.raise_for_status = MagicMock()
49
+ client.post.return_value = registration_response
50
+
51
+ # Mock heartbeat response
52
+ heartbeat_response = MagicMock()
53
+ heartbeat_response.json.return_value = {
54
+ "acknowledged": True,
55
+ "registry_status": "active"
56
+ }
57
+ heartbeat_response.raise_for_status = MagicMock()
58
+ client.post.return_value = heartbeat_response
59
+
60
+ # Mock deregistration response
61
+ deregister_response = MagicMock()
62
+ deregister_response.raise_for_status = MagicMock()
63
+ client.delete.return_value = deregister_response
64
+
65
+ return client
66
+
67
+
68
+ @pytest.fixture
69
+ def test_client():
70
+ """Create FastAPI test client"""
71
+ # Mock Phoenix tracing to avoid OpenTelemetry setup in tests
72
+ with patch('aiflow_phoenix_tracing.init_phoenix_tracing'):
73
+ from aiflow_bridge_enhanced import app
74
+ return TestClient(app)
75
+
76
+
77
+ class TestBuildKitRegistration:
78
+ """Test BuildKit registration functionality"""
79
+
80
+ @pytest.mark.asyncio
81
+ async def test_register_with_buildkit(self, mock_http_client):
82
+ """Test successful registration with BuildKit"""
83
+ with patch('aiflow_bridge_enhanced.http_client', mock_http_client):
84
+ from aiflow_bridge_enhanced import register_with_buildkit
85
+
86
+ result = await register_with_buildkit()
87
+
88
+ # Verify registration was called
89
+ assert mock_http_client.post.called
90
+ call_args = mock_http_client.post.call_args
91
+
92
+ # Verify registration URL
93
+ assert '/agents/register' in call_args[0][0]
94
+
95
+ # Verify registration data
96
+ registration_data = call_args[1]['json']
97
+ assert registration_data['agent_id'] == 'test-agent'
98
+ assert 'ossa_manifest' in registration_data
99
+ assert 'capabilities' in registration_data
100
+
101
+ # Verify response
102
+ assert result['instance_id'] == 'test-instance-123'
103
+
104
+ @pytest.mark.asyncio
105
+ async def test_send_heartbeat(self, mock_http_client):
106
+ """Test heartbeat sending"""
107
+ with patch('aiflow_bridge_enhanced.http_client', mock_http_client):
108
+ from aiflow_bridge_enhanced import send_heartbeat
109
+
110
+ await send_heartbeat()
111
+
112
+ # Verify heartbeat was sent
113
+ assert mock_http_client.post.called
114
+ call_args = mock_http_client.post.call_args
115
+
116
+ # Verify heartbeat URL
117
+ assert '/heartbeat' in call_args[0][0]
118
+
119
+ # Verify heartbeat data
120
+ heartbeat_data = call_args[1]['json']
121
+ assert 'status' in heartbeat_data
122
+ assert 'metrics' in heartbeat_data
123
+
124
+ @pytest.mark.asyncio
125
+ async def test_deregister_from_buildkit(self, mock_http_client):
126
+ """Test deregistration from BuildKit"""
127
+ with patch('aiflow_bridge_enhanced.http_client', mock_http_client):
128
+ from aiflow_bridge_enhanced import deregister_from_buildkit
129
+
130
+ await deregister_from_buildkit()
131
+
132
+ # Verify deregistration was called
133
+ assert mock_http_client.delete.called
134
+ call_args = mock_http_client.delete.call_args
135
+
136
+ # Verify deregistration URL
137
+ assert '/agents/test-agent' in call_args[0][0]
138
+
139
+
140
+ class TestAPIEndpoints:
141
+ """Test API endpoint functionality"""
142
+
143
+ def test_health_endpoint(self, test_client):
144
+ """Test health check endpoint"""
145
+ response = test_client.get("/health")
146
+
147
+ assert response.status_code == 200
148
+ data = response.json()
149
+
150
+ assert data['status'] == 'healthy'
151
+ assert 'character' in data
152
+ assert 'platforms' in data
153
+ assert data['buildkit_registered'] is True
154
+ assert data['phoenix_tracing'] is True
155
+
156
+ def test_generate_post_success(self, test_client):
157
+ """Test successful post generation"""
158
+ request_data = {
159
+ "platform": "twitter",
160
+ "time_of_day": "morning"
161
+ }
162
+
163
+ response = test_client.post(
164
+ "/generate_post",
165
+ json=request_data,
166
+ headers={"X-API-Key": "test-key"}
167
+ )
168
+
169
+ assert response.status_code == 200
170
+ data = response.json()
171
+
172
+ assert 'content' in data
173
+ assert data['platform'] == 'twitter'
174
+ assert isinstance(data['media_urls'], list)
175
+
176
+ def test_generate_post_invalid_auth(self, test_client):
177
+ """Test post generation with invalid API key"""
178
+ request_data = {
179
+ "platform": "twitter",
180
+ "time_of_day": "morning"
181
+ }
182
+
183
+ response = test_client.post(
184
+ "/generate_post",
185
+ json=request_data,
186
+ headers={"X-API-Key": "invalid-key"}
187
+ )
188
+
189
+ assert response.status_code == 401
190
+
191
+ def test_generate_response_success(self, test_client):
192
+ """Test successful response generation"""
193
+ request_data = {
194
+ "message": {
195
+ "id": "msg-123",
196
+ "author": "user123",
197
+ "content": "What do you think about AI?",
198
+ "platform": "twitter"
199
+ }
200
+ }
201
+
202
+ response = test_client.post(
203
+ "/generate_response",
204
+ json=request_data,
205
+ headers={"X-API-Key": "test-key"}
206
+ )
207
+
208
+ assert response.status_code == 200
209
+ data = response.json()
210
+
211
+ assert 'content' in data
212
+ assert 'should_respond' in data
213
+ assert data['should_respond'] is True
214
+
215
+ def test_metrics_endpoint(self, test_client):
216
+ """Test Prometheus metrics endpoint"""
217
+ response = test_client.get("/metrics")
218
+
219
+ assert response.status_code == 200
220
+ assert 'aiflow_posts_generated_total' in response.text
221
+ assert 'aiflow_api_requests_total' in response.text
222
+
223
+ def test_character_endpoint(self, test_client):
224
+ """Test character configuration endpoint"""
225
+ response = test_client.get(
226
+ "/character",
227
+ headers={"X-API-Key": "test-key"}
228
+ )
229
+
230
+ assert response.status_code == 200
231
+ data = response.json()
232
+
233
+ assert 'name' in data
234
+ assert 'traits' in data
235
+ assert 'moods' in data
236
+
237
+
238
+ class TestPhoenixTracing:
239
+ """Test Phoenix tracing integration"""
240
+
241
+ @patch('aiflow_phoenix_tracing.trace.set_tracer_provider')
242
+ @patch('aiflow_phoenix_tracing.FastAPIInstrumentation')
243
+ def test_phoenix_initialization(self, mock_fastapi_instr, mock_set_provider):
244
+ """Test Phoenix tracing initialization"""
245
+ from aiflow_phoenix_tracing import init_phoenix_tracing
246
+
247
+ init_phoenix_tracing(
248
+ service_name='test-agent',
249
+ phoenix_endpoint='http://localhost:4318',
250
+ phoenix_project='test-project'
251
+ )
252
+
253
+ # Verify tracer provider was set
254
+ assert mock_set_provider.called
255
+
256
+ # Verify FastAPI instrumentation was applied
257
+ assert mock_fastapi_instr.called
258
+
259
+ def test_trace_decorator(self):
260
+ """Test trace_agent_task decorator"""
261
+ from aiflow_phoenix_tracing import trace_agent_task, get_tracer
262
+
263
+ # Mock tracer
264
+ with patch('aiflow_phoenix_tracing._tracer') as mock_tracer:
265
+ mock_span = MagicMock()
266
+ mock_tracer.start_as_current_span.return_value.__enter__.return_value = mock_span
267
+
268
+ @trace_agent_task('test_task')
269
+ async def test_function():
270
+ return "success"
271
+
272
+ # Run the decorated function
273
+ result = asyncio.run(test_function())
274
+
275
+ # Verify tracing was applied
276
+ assert result == "success"
277
+ assert mock_tracer.start_as_current_span.called
278
+
279
+
280
+ class TestMetrics:
281
+ """Test metrics collection"""
282
+
283
+ def test_post_generation_metrics(self, test_client):
284
+ """Test that post generation increments metrics"""
285
+ # Generate a post
286
+ test_client.post(
287
+ "/generate_post",
288
+ json={"platform": "twitter", "time_of_day": "morning"},
289
+ headers={"X-API-Key": "test-key"}
290
+ )
291
+
292
+ # Check metrics
293
+ response = test_client.get("/metrics")
294
+ metrics_text = response.text
295
+
296
+ # Verify post generation metric exists
297
+ assert 'aiflow_posts_generated_total{platform="twitter",time_of_day="morning"}' in metrics_text
298
+
299
+ def test_health_check_metrics(self, test_client):
300
+ """Test that health checks increment metrics"""
301
+ # Call health endpoint
302
+ test_client.get("/health")
303
+
304
+ # Check metrics
305
+ response = test_client.get("/metrics")
306
+ metrics_text = response.text
307
+
308
+ # Verify health check metric exists
309
+ assert 'aiflow_health_checks_total' in metrics_text
310
+
311
+
312
+ class TestErrorHandling:
313
+ """Test error handling"""
314
+
315
+ def test_invalid_request_body(self, test_client):
316
+ """Test handling of invalid request body"""
317
+ response = test_client.post(
318
+ "/generate_post",
319
+ json={"invalid": "data"},
320
+ headers={"X-API-Key": "test-key"}
321
+ )
322
+
323
+ assert response.status_code == 422 # Validation error
324
+
325
+ @pytest.mark.asyncio
326
+ async def test_registration_failure(self, mock_http_client):
327
+ """Test handling of registration failures"""
328
+ # Configure mock to raise exception
329
+ mock_http_client.post.side_effect = httpx.HTTPError("Connection failed")
330
+
331
+ with patch('aiflow_bridge_enhanced.http_client', mock_http_client):
332
+ from aiflow_bridge_enhanced import register_with_buildkit
333
+
334
+ with pytest.raises(httpx.HTTPError):
335
+ await register_with_buildkit()
336
+
337
+
338
+ # Run tests
339
+ if __name__ == '__main__':
340
+ pytest.main([__file__, '-v', '--tb=short'])
341
+
@@ -0,0 +1,182 @@
1
+ ossaVersion: "1.0"
2
+
3
+ agent:
4
+ id: agent-router
5
+ name: "Agent Router"
6
+ version: "1.0.0"
7
+ role: "integration"
8
+
9
+ description: |
10
+ Multi-provider LLM gateway with circuit breaker, intelligent routing, and failover.
11
+
12
+ Features:
13
+ - Multi-provider support (OpenAI, Anthropic, Google, etc.)
14
+ - Intelligent routing based on model capabilities
15
+ - Circuit breaker pattern for fault tolerance
16
+ - Request/response caching
17
+ - Cost optimization
18
+ - Load balancing
19
+
20
+ runtime:
21
+ type: "docker"
22
+ image: "llm-platform/agent-router:1.0.0"
23
+
24
+ resources:
25
+ cpu: "500m"
26
+ memory: "1Gi"
27
+
28
+ health_check:
29
+ type: "http"
30
+ endpoint: "/health"
31
+ port: 4000
32
+
33
+ capabilities:
34
+ - name: llm_completion
35
+ description: "Generate LLM completion with intelligent provider routing"
36
+ input_schema:
37
+ type: object
38
+ required: [prompt]
39
+ properties:
40
+ prompt:
41
+ type: string
42
+ description: "Input prompt for LLM"
43
+ model:
44
+ type: string
45
+ description: "Preferred model (optional, router will auto-select)"
46
+ examples: ["gpt-4", "claude-3-opus", "gemini-pro"]
47
+ temperature:
48
+ type: number
49
+ minimum: 0
50
+ maximum: 2
51
+ default: 0.7
52
+ max_tokens:
53
+ type: integer
54
+ minimum: 1
55
+ maximum: 100000
56
+ default: 2000
57
+ provider:
58
+ type: string
59
+ enum: ["openai", "anthropic", "google", "auto"]
60
+ default: "auto"
61
+ output_schema:
62
+ type: object
63
+ required: [response, provider, model, usage]
64
+ properties:
65
+ response:
66
+ type: string
67
+ provider:
68
+ type: string
69
+ model:
70
+ type: string
71
+ usage:
72
+ type: object
73
+ properties:
74
+ prompt_tokens:
75
+ type: integer
76
+ completion_tokens:
77
+ type: integer
78
+ total_tokens:
79
+ type: integer
80
+ cost_usd:
81
+ type: number
82
+ timeout_seconds: 30
83
+ retry_policy:
84
+ max_attempts: 3
85
+ backoff: "exponential"
86
+
87
+ - name: embedding_generation
88
+ description: "Generate text embeddings for vector storage"
89
+ input_schema:
90
+ type: object
91
+ required: [text]
92
+ properties:
93
+ text:
94
+ type: string
95
+ model:
96
+ type: string
97
+ default: "text-embedding-ada-002"
98
+ output_schema:
99
+ type: object
100
+ required: [embedding, dimensions]
101
+ properties:
102
+ embedding:
103
+ type: array
104
+ items:
105
+ type: number
106
+ dimensions:
107
+ type: integer
108
+ model:
109
+ type: string
110
+
111
+ - name: health_check
112
+ description: "Check health of all LLM providers"
113
+ input_schema:
114
+ type: object
115
+ properties: {}
116
+ output_schema:
117
+ type: object
118
+ required: [healthy, providers]
119
+ properties:
120
+ healthy:
121
+ type: boolean
122
+ providers:
123
+ type: array
124
+ items:
125
+ type: object
126
+ properties:
127
+ name:
128
+ type: string
129
+ status:
130
+ type: string
131
+ enum: ["healthy", "degraded", "down"]
132
+ latency_ms:
133
+ type: number
134
+
135
+ llm:
136
+ provider: "auto"
137
+ fallback_providers: ["openai", "anthropic", "google"]
138
+ model: "gpt-4"
139
+ temperature: 0.7
140
+ maxTokens: 2000
141
+
142
+ protocols:
143
+ - type: "http"
144
+ version: "1.1"
145
+ endpoint: "http://agent-router:4000/v1/chat/completions"
146
+
147
+ - type: "sse"
148
+ version: "1.0"
149
+ endpoint: "http://agent-router:4000/v1/stream"
150
+
151
+ compliance:
152
+ frameworks: ["SOC2"]
153
+ dataClassification: "confidential"
154
+
155
+ extensions:
156
+ common_npm:
157
+ package: "@llm/agent-router"
158
+ port: 4000
159
+ version: "1.0.0"
160
+
161
+ dependencies:
162
+ - "@llm/agent-protocol"
163
+ - "@llm/agent-tracer"
164
+
165
+ providers:
166
+ - openai
167
+ - anthropic
168
+ - google
169
+ - azure
170
+
171
+ circuit_breaker:
172
+ enabled: true
173
+ failure_threshold: 5
174
+ timeout_seconds: 60
175
+ half_open_requests: 3
176
+
177
+ monitoring:
178
+ metrics: true
179
+ tracing: true
180
+ opentelemetry:
181
+ endpoint: "http://agent-tracer:4318"
182
+ service_name: "agent-router"
@@ -0,0 +1,60 @@
1
+ apiVersion: ossa/v1
2
+ kind: Agent
3
+ metadata:
4
+ name: agent-router
5
+ version: 1.0.0
6
+ description: |
7
+ Multi-provider LLM gateway with circuit breaker, intelligent routing, and failover.
8
+
9
+ Features:
10
+ - Multi-provider support (OpenAI, Anthropic, Google, etc.)
11
+ - Intelligent routing based on model capabilities
12
+ - Circuit breaker pattern for fault tolerance
13
+ - Request/response caching
14
+ - Cost optimization
15
+ - Load balancing
16
+ labels: {}
17
+ annotations:
18
+ ossa.io/migration: v1.0 to v0.2.2
19
+ ossa.io/migrated-date: 2025-10-31
20
+ spec:
21
+ role: integration
22
+ taxonomy:
23
+ domain: integration
24
+ subdomain: general
25
+ capability: routing
26
+ llm:
27
+ provider: openai
28
+ model: gpt-4
29
+ temperature: 0.7
30
+ maxTokens: 2000
31
+ tools:
32
+ - type: mcp
33
+ name: llm_completion
34
+ server: agent-router
35
+ - type: mcp
36
+ name: embedding_generation
37
+ server: agent-router
38
+ - type: mcp
39
+ name: health_check
40
+ server: agent-router
41
+ extensions:
42
+ buildkit:
43
+ deployment:
44
+ replicas:
45
+ min: 1
46
+ max: 4
47
+ container:
48
+ image: llm-platform/agent-router:1.0.0
49
+ runtime: docker
50
+ resources: &a1
51
+ cpu: 500m
52
+ memory: 1Gi
53
+ runtime:
54
+ type: docker
55
+ image: llm-platform/agent-router:1.0.0
56
+ resources: *a1
57
+ health_check:
58
+ type: http
59
+ endpoint: /health
60
+ port: 4000