@bluefly/openstandardagents 0.2.4 → 0.2.5-RC

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 (355) hide show
  1. package/.cursorrules +84 -0
  2. package/.devfile.yaml +87 -0
  3. package/.env.example +25 -3
  4. package/.github/workflows/release.yml +1 -1
  5. package/.kiro/specs/agent-buildkit-templates/design.md +495 -0
  6. package/.kiro/specs/agent-buildkit-templates/requirements.md +165 -0
  7. package/.kiro/specs/kiro-ide-supercharger/README.md +202 -0
  8. package/.kiro/specs/kiro-ide-supercharger/design.md +1005 -0
  9. package/.kiro/specs/kiro-ide-supercharger/requirements.md +141 -0
  10. package/.kiro/specs/kiro-ide-supercharger/tasks.md +507 -0
  11. package/.kiro/specs/website-design-audit/design.md +679 -0
  12. package/.kiro/specs/website-design-audit/requirements.md +199 -0
  13. package/.releaserc.json +5 -4
  14. package/.version.json +6 -0
  15. package/CHANGELOG.md +140 -96
  16. package/CONTRIBUTING.md +23 -5
  17. package/README.md +121 -43
  18. package/bin/ossa +24 -3
  19. package/bin/ossa-validate-all +55 -0
  20. package/bin/ossa-version +23 -0
  21. package/bin/validate-ossa-0.2.4.ts +244 -0
  22. package/bin/validate-ossa-0.2.5-RC.ts +244 -0
  23. package/bin/validate-ossa.ts +273 -0
  24. package/dist/di-container.d.ts +1 -1
  25. package/dist/di-container.d.ts.map +1 -1
  26. package/dist/di-container.js.map +1 -1
  27. package/dist/repositories/schema.repository.d.ts +17 -2
  28. package/dist/repositories/schema.repository.d.ts.map +1 -1
  29. package/dist/repositories/schema.repository.js +96 -18
  30. package/dist/repositories/schema.repository.js.map +1 -1
  31. package/dist/services/generation.service.d.ts +7 -5
  32. package/dist/services/generation.service.d.ts.map +1 -1
  33. package/dist/services/generation.service.js +92 -44
  34. package/dist/services/generation.service.js.map +1 -1
  35. package/dist/services/gitlab-agent.service.d.ts +94 -0
  36. package/dist/services/gitlab-agent.service.d.ts.map +1 -0
  37. package/dist/services/gitlab-agent.service.js +162 -0
  38. package/dist/services/gitlab-agent.service.js.map +1 -0
  39. package/dist/services/migration.service.d.ts +3 -3
  40. package/dist/services/migration.service.d.ts.map +1 -1
  41. package/dist/services/migration.service.js +108 -61
  42. package/dist/services/migration.service.js.map +1 -1
  43. package/dist/services/release-automation/base-crud.service.d.ts +93 -0
  44. package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
  45. package/dist/services/release-automation/base-crud.service.js +68 -0
  46. package/dist/services/release-automation/base-crud.service.js.map +1 -0
  47. package/dist/services/release-automation/index.d.ts +12 -0
  48. package/dist/services/release-automation/index.d.ts.map +1 -0
  49. package/dist/services/release-automation/index.js +12 -0
  50. package/dist/services/release-automation/index.js.map +1 -0
  51. package/dist/services/release-automation/merge-request.service.d.ts +119 -0
  52. package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
  53. package/dist/services/release-automation/merge-request.service.js +212 -0
  54. package/dist/services/release-automation/merge-request.service.js.map +1 -0
  55. package/dist/services/release-automation/milestone.service.d.ts +104 -0
  56. package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
  57. package/dist/services/release-automation/milestone.service.js +207 -0
  58. package/dist/services/release-automation/milestone.service.js.map +1 -0
  59. package/dist/services/release-automation/release.service.d.ts +118 -0
  60. package/dist/services/release-automation/release.service.d.ts.map +1 -0
  61. package/dist/services/release-automation/release.service.js +207 -0
  62. package/dist/services/release-automation/release.service.js.map +1 -0
  63. package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
  64. package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
  65. package/dist/services/release-automation/schemas/release.schema.js +269 -0
  66. package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
  67. package/dist/services/release-automation/tag.service.d.ts +99 -0
  68. package/dist/services/release-automation/tag.service.d.ts.map +1 -0
  69. package/dist/services/release-automation/tag.service.js +180 -0
  70. package/dist/services/release-automation/tag.service.js.map +1 -0
  71. package/dist/services/release-automation/webhook.service.d.ts +37 -0
  72. package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
  73. package/dist/services/release-automation/webhook.service.js +173 -0
  74. package/dist/services/release-automation/webhook.service.js.map +1 -0
  75. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  76. package/dist/services/runtime/openai.adapter.js.map +1 -1
  77. package/dist/services/validation.service.d.ts.map +1 -1
  78. package/dist/services/validation.service.js +24 -11
  79. package/dist/services/validation.service.js.map +1 -1
  80. package/dist/services/validators/anthropic.validator.d.ts +2 -2
  81. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  82. package/dist/services/validators/anthropic.validator.js +14 -9
  83. package/dist/services/validators/anthropic.validator.js.map +1 -1
  84. package/dist/services/validators/autogen.validator.d.ts +2 -2
  85. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  86. package/dist/services/validators/autogen.validator.js +18 -15
  87. package/dist/services/validators/autogen.validator.js.map +1 -1
  88. package/dist/services/validators/crewai.validator.d.ts +2 -2
  89. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  90. package/dist/services/validators/crewai.validator.js +18 -17
  91. package/dist/services/validators/crewai.validator.js.map +1 -1
  92. package/dist/services/validators/cursor.validator.d.ts +2 -2
  93. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  94. package/dist/services/validators/cursor.validator.js +15 -11
  95. package/dist/services/validators/cursor.validator.js.map +1 -1
  96. package/dist/services/validators/langchain.validator.d.ts +2 -2
  97. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  98. package/dist/services/validators/langchain.validator.js +14 -11
  99. package/dist/services/validators/langchain.validator.js.map +1 -1
  100. package/dist/services/validators/langflow.validator.d.ts +2 -2
  101. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  102. package/dist/services/validators/langflow.validator.js +14 -9
  103. package/dist/services/validators/langflow.validator.js.map +1 -1
  104. package/dist/services/validators/langgraph.validator.d.ts +2 -2
  105. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  106. package/dist/services/validators/langgraph.validator.js +23 -18
  107. package/dist/services/validators/langgraph.validator.js.map +1 -1
  108. package/dist/services/validators/llamaindex.validator.d.ts +2 -2
  109. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  110. package/dist/services/validators/llamaindex.validator.js +19 -16
  111. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  112. package/dist/services/validators/openai.validator.d.ts +2 -2
  113. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  114. package/dist/services/validators/openai.validator.js +20 -16
  115. package/dist/services/validators/openai.validator.js.map +1 -1
  116. package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
  117. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  118. package/dist/services/validators/vercel-ai.validator.js +16 -15
  119. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  120. package/dist/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
  121. package/dist/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
  122. package/dist/spec/v0.2.3/CHANGELOG.md +7 -7
  123. package/dist/spec/v0.2.3/README.md +9 -9
  124. package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
  125. package/{spec/v0.2.4-dev → dist/spec/v0.2.4}/CHANGELOG.md +8 -8
  126. package/dist/spec/{v0.2.4-dev → v0.2.4}/migrations/v0.2.3-to-v0.2.4.md +10 -10
  127. package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
  128. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
  129. package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
  130. package/dist/spec/v0.2.5/README.md +72 -0
  131. package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  132. package/dist/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
  133. package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  134. package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  135. package/dist/spec/v0.2.5-RC/README.md +72 -0
  136. package/{spec/v0.2.4-dev → dist/spec/v0.2.5-RC}/migrations/v0.2.3-to-v0.2.4.md +10 -10
  137. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  138. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  139. package/dist/types/index.d.ts +6 -1
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/docs/issue-19-completion-summary.md +648 -0
  142. package/docs/issue-19-validation.md +351 -0
  143. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  144. package/examples/autogen/multi-agent.ossa.json +1 -1
  145. package/examples/bridges/Dockerfile.production +1 -1
  146. package/examples/crewai/research-team.ossa.json +1 -1
  147. package/examples/cursor/code-review-agent.ossa.json +1 -1
  148. package/examples/enterprise/agent.yml +1 -1
  149. package/examples/getting-started/hello-world-complete.ossa.yaml +2 -2
  150. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  151. package/examples/langchain/chain-agent.ossa.json +1 -1
  152. package/examples/langflow/workflow-agent.ossa.json +1 -1
  153. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  154. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  155. package/examples/openai/basic-agent.ossa.yaml +61 -0
  156. package/examples/openai/multi-tool-agent.ossa.json +165 -0
  157. package/examples/openai/swarm-agent.ossa.json +1 -1
  158. package/examples/openapi-extensions/README.md +1 -1
  159. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  160. package/examples/vercel/edge-agent.ossa.json +1 -1
  161. package/infrastructure/gitlab-agent/rbac.yaml +126 -0
  162. package/infrastructure/gitlab-agent/values.yaml +150 -0
  163. package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
  164. package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
  165. package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
  166. package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
  167. package/infrastructure/k8s/monitoring/README.md +73 -0
  168. package/infrastructure/k8s/monitoring/deploy.sh +38 -0
  169. package/openapi/CHANGELOG.md +21 -0
  170. package/openapi/README.md +46 -0
  171. package/openapi/{ossa-core-api.openapi.yaml → core/ossa-core-api.openapi.yaml} +59 -4
  172. package/openapi/{ossa-registry.openapi.yaml → core/ossa-registry.openapi.yaml} +75 -2
  173. package/openapi/{unified-agent-gateway.openapi.yaml → core/unified-agent-gateway.openapi.yaml} +3 -3
  174. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
  175. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
  176. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
  177. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
  178. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
  179. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
  180. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
  181. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
  182. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
  183. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
  184. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
  185. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
  186. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
  187. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
  188. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
  189. package/openapi/{self-evolving-ecosystem.openapi.yaml → reference-implementations/self-evolving-ecosystem.openapi.yaml} +2 -2
  190. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
  191. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
  192. package/package.json +31 -21
  193. package/release.config.js +20 -5
  194. package/scripts/bump-version.ts +57 -0
  195. package/scripts/enhanced-version-manager.ts +257 -0
  196. package/scripts/gen-types.ts +51 -0
  197. package/scripts/gen-zod.ts +51 -0
  198. package/scripts/lib/exec.ts +37 -0
  199. package/scripts/lib/file-ops.ts +58 -0
  200. package/scripts/lib/version.ts +83 -0
  201. package/scripts/process-doc-templates.ts +37 -0
  202. package/scripts/schemas/package.schema.ts +75 -0
  203. package/scripts/setup-branch-protection.sh +33 -0
  204. package/scripts/sync-version.ts +39 -0
  205. package/scripts/sync-versions.ts +488 -0
  206. package/scripts/validate-schema.ts +49 -0
  207. package/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
  208. package/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
  209. package/spec/v0.2.3/CHANGELOG.md +7 -7
  210. package/spec/v0.2.3/README.md +9 -9
  211. package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
  212. package/{dist/spec/v0.2.4-dev → spec/v0.2.4}/CHANGELOG.md +8 -8
  213. package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
  214. package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.yaml +1 -1
  215. package/spec/v0.2.4/ossa-0.2.4.schema.json +1819 -0
  216. package/spec/v0.2.5/CHANGELOG.md +401 -0
  217. package/spec/v0.2.5/README.md +72 -0
  218. package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  219. package/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.5/ossa-0.2.5.schema.json} +323 -359
  220. package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  221. package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  222. package/spec/v0.2.5-RC/README.md +72 -0
  223. package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
  224. package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  225. package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  226. package/website/{.lighthouserc.js → .lighthouserc.ts} +5 -1
  227. package/website/Dockerfile +18 -5
  228. package/website/app/about/page.tsx +7 -7
  229. package/website/app/blog/[slug]/page.tsx +61 -20
  230. package/website/app/blog/page.tsx +120 -33
  231. package/website/app/design-guide/page.tsx +511 -0
  232. package/website/app/docs/[[...slug]]/page.tsx +641 -143
  233. package/website/app/examples/page.tsx +51 -41
  234. package/website/app/{globals.css → globals.scss} +50 -23
  235. package/website/app/layout.tsx +2 -2
  236. package/website/app/license/page.tsx +183 -0
  237. package/website/app/not-found.tsx +18 -0
  238. package/website/app/page.tsx +144 -79
  239. package/website/app/playground/page.tsx +25 -45
  240. package/website/app/schema/page.tsx +423 -392
  241. package/website/app/specification/page.tsx +245 -169
  242. package/website/components/Logo.tsx +75 -2
  243. package/website/components/docs/DocsSidebar.tsx +40 -3
  244. package/website/components/docs/MarkdownContent.tsx +265 -47
  245. package/website/components/docs/VersionSelector.tsx +64 -8
  246. package/website/components/examples/ExamplesViewer.tsx +2 -2
  247. package/website/components/layout/Footer.tsx +6 -1
  248. package/website/components/layout/Header.tsx +31 -33
  249. package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
  250. package/website/components/schema/SchemaExplorer.tsx +4 -4
  251. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +276 -276
  252. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +3 -14
  253. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
  254. package/website/content/blog/introducing-ossa-framework.md +1 -1
  255. package/website/content/blog/ossa-production-results.md +5 -5
  256. package/website/content/blog/welcome-to-ossa.md +2 -2
  257. package/website/content/blog/why-ai-agents-need-open-standard.md +5 -5
  258. package/website/content/docs/00-HOME.md +18 -25
  259. package/website/content/docs/AIFlow-Framework-Integration-with-OSSA.md +8 -8
  260. package/website/content/docs/OpenAPI-Extensions.md +576 -140
  261. package/website/content/docs/adapters/openai-adapter.md +693 -0
  262. package/website/content/docs/architecture/execution-flow.md +3 -3
  263. package/website/content/docs/architecture/multi-agent-systems.md +4 -4
  264. package/website/content/docs/architecture/overview.md +4 -4
  265. package/website/content/docs/architecture/stack-integration.md +4 -4
  266. package/website/content/docs/changelog.md +4 -4
  267. package/website/content/docs/contributing.md +2 -2
  268. package/website/content/docs/ecosystem/framework-support.md +0 -2
  269. package/website/content/docs/examples/AIFlow-Framework-Integration-with-OSSA.md +107 -0
  270. package/website/content/docs/examples/Migration-Guides.md +2 -2
  271. package/website/content/docs/for-audiences/{architects.md → Architects.md} +1 -1
  272. package/website/content/docs/for-audiences/{developers.md → Developers.md} +3 -3
  273. package/website/content/docs/for-audiences/Enterprises.md +2 -2
  274. package/website/content/docs/for-audiences/Students-Researchers.md +1 -1
  275. package/website/content/docs/getting-started/{5-minute-overview.md → 5-Minute-Overview.md} +2 -2
  276. package/website/content/docs/getting-started/{first-agent.md → First-Agent.md} +1 -1
  277. package/website/content/docs/getting-started/Hello-World.md +3 -3
  278. package/website/content/docs/getting-started/{installation.md → Installation.md} +7 -7
  279. package/website/content/docs/getting-started/index.md +92 -0
  280. package/website/content/docs/getting-started/running-agents.md +215 -13
  281. package/{docs → website/content/docs}/getting-started.md +10 -6
  282. package/website/content/docs/integrations/aiflow.md +2 -2
  283. package/website/content/docs/integrations/drupal.md +2 -2
  284. package/website/content/docs/migration-guides/README.md +1 -1
  285. package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
  286. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  287. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  288. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +11 -11
  289. package/{docs/migration → website/content/docs/migration-guides}/general-agent-schema.yml +1 -9
  290. package/website/content/docs/migration-guides/index.md +1 -1
  291. package/website/content/docs/migration-guides/langchain-to-ossa.md +17 -17
  292. package/website/content/docs/migration-guides/langflow-to-ossa.md +3 -3
  293. package/website/content/docs/migration-guides/openai-to-ossa.md +10 -10
  294. package/website/content/docs/openapi-extensions/examples.md +9 -9
  295. package/website/content/docs/openapi-extensions/index.md +59 -3
  296. package/website/content/docs/openapi-extensions/operation-extensions.md +61 -2
  297. package/website/content/docs/openapi-extensions/root-extensions.md +49 -3
  298. package/{docs/OSSA-COMPLIANT-BADGE.md → website/content/docs/ossa-compliant-badge.md} +18 -15
  299. package/website/content/docs/pre-release/index.md +10 -10
  300. package/website/content/docs/readme.md +35 -0
  301. package/website/content/docs/schema-reference/agent-spec.md +2 -2
  302. package/website/content/docs/schema-reference/autonomy.md +5 -5
  303. package/website/content/docs/schema-reference/constraints.md +5 -5
  304. package/website/content/docs/schema-reference/llm-config.md +1 -1
  305. package/website/content/docs/schema-reference/observability.md +5 -5
  306. package/website/content/docs/schema-reference/ossa-manifest.md +6 -6
  307. package/website/content/docs/schema-reference/taxonomy.md +3 -3
  308. package/website/content/docs/use-cases/00-index.md +1 -1
  309. package/{docs/VERSIONING.md → website/content/docs/versioning.md} +9 -5
  310. package/website/lib/version.ts +18 -1
  311. package/website/lib/versions.json +78 -0
  312. package/website/next.config.ts +3 -1
  313. package/website/package-lock.json +552 -18
  314. package/website/package.json +11 -5
  315. package/website/postcss.config.mjs +1 -1
  316. package/website/scripts/fetch-versions.js +166 -0
  317. package/website/scripts/generate-examples-index.js +163 -0
  318. package/website/scripts/merge-docs-to-wiki.ts +207 -0
  319. package/website/scripts/sync-version.js +28 -0
  320. package/website/scripts/sync-wiki.ts +64 -3
  321. package/website/scripts/upload-wiki.ts +199 -0
  322. package/website/styles/_variables.scss +36 -0
  323. package/website/tailwind.config.ts +93 -22
  324. package/.releaserc.json.disabled +0 -81
  325. package/dist/spec/v0.2.5-dev/CHANGELOG.md +0 -171
  326. package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
  327. package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
  328. package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
  329. package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  330. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  331. package/docs/README.md +0 -31
  332. package/docs/agent-openapi-spec.yml +0 -942
  333. package/docs/openapi-extensions.md +0 -930
  334. package/docs/schemas/openapi-extensions.schema.json +0 -486
  335. package/openapi/gitlab-orchestrator.openapi.yaml +0 -330
  336. package/ossa-website-swarm-tasks.json +0 -105
  337. package/spec/v0.2.5-dev/CHANGELOG.md +0 -171
  338. package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
  339. package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
  340. package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
  341. package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  342. package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  343. package/website/app/api/validate/route.ts +0 -88
  344. package/website/next.config.js +0 -17
  345. package/website/postcss.config.js +0 -7
  346. package/website/tailwind.config.js +0 -58
  347. /package/dist/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
  348. /package/openapi/{ossa-registry-api.openapi.yaml → core/ossa-registry-api.openapi.yaml} +0 -0
  349. /package/openapi/{drupal-agent-api.openapi.yaml → reference-implementations/drupal-agent-api.openapi.yaml} +0 -0
  350. /package/openapi/{helm-generator.openapi.yaml → reference-implementations/helm-generator.openapi.yaml} +0 -0
  351. /package/spec/{v0.2.4-dev → v0.2.4}/ossa-0.2.4-dev.schema.json +0 -0
  352. /package/website/content/docs/{examples.md → Examples.md} +0 -0
  353. /package/website/content/docs/core-concepts/{project-structure.md → Project-Structure.md} +0 -0
  354. /package/website/content/docs/migration-guides/{00-index.md → 00-INDEX.md} +0 -0
  355. /package/{docs/migration → website/content/docs/migration-guides}/migration-manifest.json +0 -0
@@ -8,9 +8,15 @@
8
8
 
9
9
  import fs from 'fs';
10
10
  import path from 'path';
11
+ import os from 'os';
11
12
 
12
- const GITLAB_HOST = process.env.GITLAB_HOST || 'gitlab.bluefly.io';
13
- const PROJECT_PATH = 'llm/openstandardagents';
13
+ // Load .env.local first to get project path
14
+ loadEnvLocal();
15
+
16
+ // Get GITLAB_HOST from env or CI variables, with fallback
17
+ const GITLAB_HOST = process.env.GITLAB_HOST || process.env.CI_SERVER_HOST || 'gitlab.com';
18
+ // Get project path from env (GITLAB_PROJECT_PATH) or fallback to default
19
+ const PROJECT_PATH = process.env.GITLAB_PROJECT_PATH || 'blueflyio/openstandardagents';
14
20
  const DOCS_DIR = path.join(process.cwd(), 'content/docs');
15
21
  const BLOG_DIR = path.join(process.cwd(), 'content/blog');
16
22
 
@@ -21,11 +27,66 @@ interface WikiPage {
21
27
  format: string;
22
28
  }
23
29
 
30
+ function loadEnvLocal(): void {
31
+ // Check multiple common locations for .env.local
32
+ const envPaths: string[] = [];
33
+
34
+ // If ENV_FILE is set, use that first
35
+ if (process.env.ENV_FILE) {
36
+ envPaths.push(process.env.ENV_FILE);
37
+ }
38
+
39
+ // Current directory and parent directories (walk up to 5 levels)
40
+ let currentDir = process.cwd();
41
+ for (let i = 0; i < 5; i++) {
42
+ envPaths.push(path.join(currentDir, '.env.local'));
43
+ const parentDir = path.dirname(currentDir);
44
+ if (parentDir === currentDir) break; // Reached filesystem root
45
+ currentDir = parentDir;
46
+ }
47
+
48
+ // User home directory
49
+ envPaths.push(path.join(os.homedir(), '.env.local'));
50
+
51
+ for (const envLocalPath of envPaths) {
52
+ if (fs.existsSync(envLocalPath)) {
53
+ try {
54
+ const envContent = fs.readFileSync(envLocalPath, 'utf-8');
55
+ envContent.split('\n').forEach(line => {
56
+ const trimmed = line.trim();
57
+ if (trimmed && !trimmed.startsWith('#')) {
58
+ const [key, ...valueParts] = trimmed.split('=');
59
+ if (key && valueParts.length > 0) {
60
+ const value = valueParts.join('=').replace(/^["']|["']$/g, '').trim();
61
+ if (!process.env[key] && value) {
62
+ process.env[key] = value;
63
+ }
64
+ }
65
+ }
66
+ });
67
+ // Load from first found file only
68
+ return;
69
+ } catch (error) {
70
+ // Continue to next location if this one fails
71
+ continue;
72
+ }
73
+ }
74
+ }
75
+ }
76
+
24
77
  async function getGitLabToken(): Promise<string | null> {
25
- // Try environment variable first
78
+ // .env.local already loaded at top level
79
+
80
+ // Try environment variables (check multiple possible names)
26
81
  if (process.env.GITLAB_TOKEN) {
27
82
  return process.env.GITLAB_TOKEN;
28
83
  }
84
+ if (process.env.GITLAB_PUSH_TOKEN) {
85
+ return process.env.GITLAB_PUSH_TOKEN;
86
+ }
87
+ if (process.env.CI_JOB_TOKEN) {
88
+ return process.env.CI_JOB_TOKEN;
89
+ }
29
90
 
30
91
  // Try reading from ~/.tokens/gitlab
31
92
  const tokenPath = path.join(process.env.HOME || '', '.tokens', 'gitlab');
@@ -0,0 +1,199 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Upload Wiki Export to GitLab
4
+ *
5
+ * Uploads prepared wiki files from .wiki-export to GitLab wiki via API
6
+ */
7
+
8
+ import fs from 'fs';
9
+ import path from 'path';
10
+ import os from 'os';
11
+
12
+ // Load .env.local first to get project path
13
+ loadEnvLocal();
14
+
15
+ const GITLAB_HOST = process.env.GITLAB_HOST || process.env.CI_SERVER_HOST || 'gitlab.com';
16
+ // Get project path from env (GITLAB_PROJECT_PATH) or fallback to default
17
+ const PROJECT_PATH = process.env.GITLAB_PROJECT_PATH || 'blueflyio/openstandardagents';
18
+ const EXPORT_DIR = path.join(process.cwd(), '.wiki-export');
19
+
20
+ function loadEnvLocal(): void {
21
+ // Check multiple common locations for .env.local
22
+ const envPaths: string[] = [];
23
+
24
+ // If ENV_FILE is set, use that first
25
+ if (process.env.ENV_FILE) {
26
+ envPaths.push(process.env.ENV_FILE);
27
+ }
28
+
29
+ // Current directory and parent directories (walk up to 5 levels)
30
+ let currentDir = process.cwd();
31
+ for (let i = 0; i < 5; i++) {
32
+ envPaths.push(path.join(currentDir, '.env.local'));
33
+ const parentDir = path.dirname(currentDir);
34
+ if (parentDir === currentDir) break; // Reached filesystem root
35
+ currentDir = parentDir;
36
+ }
37
+
38
+ // User home directory
39
+ envPaths.push(path.join(os.homedir(), '.env.local'));
40
+
41
+ for (const envLocalPath of envPaths) {
42
+ if (fs.existsSync(envLocalPath)) {
43
+ try {
44
+ const envContent = fs.readFileSync(envLocalPath, 'utf-8');
45
+ envContent.split('\n').forEach(line => {
46
+ const trimmed = line.trim();
47
+ if (trimmed && !trimmed.startsWith('#')) {
48
+ const [key, ...valueParts] = trimmed.split('=');
49
+ if (key && valueParts.length > 0) {
50
+ const value = valueParts.join('=').replace(/^["']|["']$/g, '').trim();
51
+ if (!process.env[key] && value) {
52
+ process.env[key] = value;
53
+ }
54
+ }
55
+ }
56
+ });
57
+ // Load from first found file only
58
+ return;
59
+ } catch (error) {
60
+ // Continue to next location if this one fails
61
+ continue;
62
+ }
63
+ }
64
+ }
65
+ }
66
+
67
+ async function getGitLabToken(): Promise<string | null> {
68
+ // .env.local already loaded at top level
69
+
70
+ // Try environment variables (check multiple possible names)
71
+ if (process.env.GITLAB_TOKEN) {
72
+ return process.env.GITLAB_TOKEN;
73
+ }
74
+ if (process.env.GITLAB_PUSH_TOKEN) {
75
+ return process.env.GITLAB_PUSH_TOKEN;
76
+ }
77
+ if (process.env.CI_JOB_TOKEN) {
78
+ return process.env.CI_JOB_TOKEN;
79
+ }
80
+
81
+ const tokenPath = path.join(process.env.HOME || '', '.tokens', 'gitlab');
82
+ if (fs.existsSync(tokenPath)) {
83
+ return fs.readFileSync(tokenPath, 'utf-8').trim();
84
+ }
85
+
86
+ return null;
87
+ }
88
+
89
+ async function uploadWikiPage(slug: string, content: string): Promise<boolean> {
90
+ const token = await getGitLabToken();
91
+ if (!token) {
92
+ console.error('❌ No GitLab token found');
93
+ console.error(' Set GITLAB_TOKEN env var or create ~/.tokens/gitlab');
94
+ return false;
95
+ }
96
+
97
+ const encodedPath = encodeURIComponent(PROJECT_PATH);
98
+ const url = `https://${GITLAB_HOST}/api/v4/projects/${encodedPath}/wikis`;
99
+
100
+ try {
101
+ const response = await fetch(url, {
102
+ method: 'POST',
103
+ headers: {
104
+ 'PRIVATE-TOKEN': token,
105
+ 'Content-Type': 'application/json',
106
+ },
107
+ body: JSON.stringify({
108
+ title: slug,
109
+ content: content,
110
+ format: 'markdown',
111
+ }),
112
+ });
113
+
114
+ if (response.ok) {
115
+ return true;
116
+ } else if (response.status === 409 || response.status === 400) {
117
+ // Page already exists, try to update it
118
+ const updateUrl = `${url}/${encodeURIComponent(slug)}`;
119
+ const updateResponse = await fetch(updateUrl, {
120
+ method: 'PUT',
121
+ headers: {
122
+ 'PRIVATE-TOKEN': token,
123
+ 'Content-Type': 'application/json',
124
+ },
125
+ body: JSON.stringify({
126
+ content: content,
127
+ format: 'markdown',
128
+ }),
129
+ });
130
+ if (updateResponse.ok) {
131
+ return true;
132
+ } else {
133
+ const errorText = await updateResponse.text();
134
+ console.error(` Update error: ${updateResponse.status} ${updateResponse.statusText}`);
135
+ console.error(` ${errorText.substring(0, 200)}`);
136
+ return false;
137
+ }
138
+ } else {
139
+ const errorText = await response.text();
140
+ console.error(` API error: ${response.status} ${response.statusText}`);
141
+ console.error(` ${errorText.substring(0, 200)}`);
142
+ return false;
143
+ }
144
+ } catch (error: any) {
145
+ console.error(` Network error: ${error.message}`);
146
+ return false;
147
+ }
148
+ }
149
+
150
+ async function uploadWikiFiles(): Promise<void> {
151
+ console.log('🔄 Uploading wiki files to GitLab...\n');
152
+
153
+ if (!fs.existsSync(EXPORT_DIR)) {
154
+ console.error('❌ .wiki-export directory not found');
155
+ console.error(' Run: npm run merge-docs-to-wiki first');
156
+ return;
157
+ }
158
+
159
+ const manifestPath = path.join(EXPORT_DIR, 'MANIFEST.json');
160
+ if (!fs.existsSync(manifestPath)) {
161
+ console.error('❌ MANIFEST.json not found');
162
+ return;
163
+ }
164
+
165
+ const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
166
+ console.log(`📚 Found ${manifest.length} files to upload\n`);
167
+
168
+ let successCount = 0;
169
+ let failCount = 0;
170
+
171
+ for (const item of manifest) {
172
+ const filePath = path.join(EXPORT_DIR, `${item.slug}.md`);
173
+ if (!fs.existsSync(filePath)) {
174
+ console.log(`⚠️ ${item.slug} - file not found, skipping`);
175
+ failCount++;
176
+ continue;
177
+ }
178
+
179
+ const content = fs.readFileSync(filePath, 'utf-8');
180
+ console.log(`📤 Uploading ${item.slug}...`);
181
+
182
+ const success = await uploadWikiPage(item.slug, content);
183
+ if (success) {
184
+ console.log(`✅ ${item.slug} - uploaded successfully`);
185
+ successCount++;
186
+ } else {
187
+ console.log(`❌ ${item.slug} - upload failed`);
188
+ failCount++;
189
+ }
190
+ }
191
+
192
+ console.log(`\n✨ Upload complete: ${successCount} succeeded, ${failCount} failed`);
193
+ }
194
+
195
+ uploadWikiFiles().catch((error) => {
196
+ console.error('❌ Upload failed:', error.message);
197
+ process.exit(1);
198
+ });
199
+
@@ -0,0 +1,36 @@
1
+ // OSSA Design System - Centralized Color Variables
2
+ // Update colors here to change them site-wide
3
+
4
+ // Brand Colors
5
+ $ossa-primary: #4A3ECD; // Main blue-purple - OSSA hub/standard
6
+ $ossa-secondary: #1CB9ED; // Cyan-blue - Agent nodes
7
+ $ossa-accent: #9060EA; // Purple accent
8
+
9
+ // Semantic Colors - Muted for better visual harmony
10
+ $ossa-success: #10b981; // Muted green
11
+ $ossa-warning: #f59e0b; // Muted amber
12
+ $ossa-error: #ef4444; // Muted red
13
+ $ossa-info: #06b6d4; // Muted cyan
14
+
15
+ // Neutral Colors
16
+ $ossa-dark: #212529;
17
+ $ossa-gray-900: #343a40;
18
+ $ossa-gray-700: #495057;
19
+ $ossa-gray-500: #6c757d;
20
+ $ossa-gray-300: #dee2e6;
21
+ $ossa-gray-100: #f8f9fa;
22
+ $ossa-white: #ffffff;
23
+
24
+ // Gradients - Lightest blue to darkest purple, blue spans more
25
+ // Order: secondary (lightest blue #1CB9ED) -> primary (blue-purple #4A3ECD) -> accent (darkest purple #9060EA)
26
+ $gradient-brand: linear-gradient(135deg, $ossa-secondary 0%, $ossa-secondary 40%, $ossa-primary 70%, $ossa-accent 100%);
27
+ $gradient-hero: linear-gradient(135deg, $ossa-secondary 0%, $ossa-secondary 35%, $ossa-primary 65%, $ossa-accent 100%);
28
+ $gradient-button: linear-gradient(135deg, $ossa-secondary 0%, $ossa-secondary 45%, $ossa-primary 75%, $ossa-accent 100%);
29
+
30
+ // Code Colors
31
+ $code-bg: #1e1e1e;
32
+ $code-text: #d4d4d4;
33
+ $code-keyword: #569cd6;
34
+ $code-string: #ce9178;
35
+ $code-comment: #6a9955;
36
+
@@ -10,30 +10,101 @@ const config: Config = {
10
10
  extend: {
11
11
  colors: {
12
12
  primary: {
13
- 50: '#f0f9ff',
14
- 100: '#e0f2fe',
15
- 200: '#bae6fd',
16
- 300: '#7dd3fc',
17
- 400: '#38bdf8',
18
- 500: '#0ea5e9',
19
- 600: '#0284c7',
20
- 700: '#0369a1',
21
- 800: '#075985',
22
- 900: '#0c4a6e',
23
- 950: '#082f49',
13
+ DEFAULT: 'var(--ossa-primary)', // From SCSS variables - #4A3ECD
14
+ 50: '#f5f4fd',
15
+ 100: '#e8e5fa',
16
+ 200: '#d4cff5',
17
+ 300: '#b5abee',
18
+ 400: '#8f7ee4',
19
+ 500: 'var(--ossa-primary)', // #4A3ECD - from SCSS
20
+ 600: '#3d2fb8',
21
+ 700: '#322598',
22
+ 800: '#2a1f7a',
23
+ 900: '#241f65',
24
+ 950: '#15113a',
25
+ },
26
+ secondary: {
27
+ DEFAULT: 'var(--ossa-secondary)', // From SCSS variables - #1CB9ED
28
+ 50: '#ecfbff',
29
+ 100: '#d1f5fe',
30
+ 200: '#a8e9fd',
31
+ 300: '#6fd8fa',
32
+ 400: '#2ec0f5',
33
+ 500: 'var(--ossa-secondary)', // #1CB9ED - from SCSS
34
+ 600: '#0a9dd1',
35
+ 700: '#087da9',
36
+ 800: '#0c6688',
37
+ 900: '#105570',
38
+ 950: '#08374a',
24
39
  },
25
40
  accent: {
26
- 50: '#faf5ff',
27
- 100: '#f3e8ff',
28
- 200: '#e9d5ff',
29
- 300: '#d8b4fe',
30
- 400: '#c084fc',
31
- 500: '#a855f7',
32
- 600: '#9333ea',
33
- 700: '#7e22ce',
34
- 800: '#6b21a8',
35
- 900: '#581c87',
36
- 950: '#3b0764',
41
+ DEFAULT: 'var(--ossa-accent)', // From SCSS variables - #9060EA
42
+ 50: '#f7f4fe',
43
+ 100: '#ede9fd',
44
+ 200: '#ddd4fb',
45
+ 300: '#c5b3f8',
46
+ 400: '#a887f3',
47
+ 500: 'var(--ossa-accent)', // #9060EA - from SCSS
48
+ 600: '#7c3aed',
49
+ 700: '#6b28d9',
50
+ 800: '#5923b8',
51
+ 900: '#4b1f97',
52
+ 950: '#2d0f5c',
53
+ },
54
+ // Semantic colors - centralized and muted
55
+ // These reference CSS variables which come from SCSS variables in styles/_variables.scss
56
+ // Update colors in ONE place: styles/_variables.scss
57
+ success: {
58
+ DEFAULT: 'var(--ossa-success)',
59
+ 50: '#ecfdf5',
60
+ 100: '#d1fae5',
61
+ 200: '#a7f3d0',
62
+ 300: '#6ee7b7',
63
+ 400: '#34d399',
64
+ 500: 'var(--ossa-success)', // #10b981 - from SCSS
65
+ 600: '#059669',
66
+ 700: '#047857',
67
+ 800: '#065f46',
68
+ 900: '#064e3b',
69
+ },
70
+ warning: {
71
+ DEFAULT: 'var(--ossa-warning)',
72
+ 50: '#fffbeb',
73
+ 100: '#fef3c7',
74
+ 200: '#fde68a',
75
+ 300: '#fcd34d',
76
+ 400: '#fbbf24',
77
+ 500: 'var(--ossa-warning)', // #f59e0b - from SCSS
78
+ 600: '#d97706',
79
+ 700: '#b45309',
80
+ 800: '#92400e',
81
+ 900: '#78350f',
82
+ },
83
+ error: {
84
+ DEFAULT: 'var(--ossa-error)',
85
+ 50: '#fef2f2',
86
+ 100: '#fee2e2',
87
+ 200: '#fecaca',
88
+ 300: '#fca5a5',
89
+ 400: '#f87171',
90
+ 500: 'var(--ossa-error)', // #ef4444 - from SCSS
91
+ 600: '#dc2626',
92
+ 700: '#b91c1c',
93
+ 800: '#991b1b',
94
+ 900: '#7f1d1d',
95
+ },
96
+ info: {
97
+ DEFAULT: 'var(--ossa-info)',
98
+ 50: '#ecfeff',
99
+ 100: '#cffafe',
100
+ 200: '#a5f3fc',
101
+ 300: '#67e8f9',
102
+ 400: '#22d3ee',
103
+ 500: 'var(--ossa-info)', // #06b6d4 - from SCSS
104
+ 600: '#0891b2',
105
+ 700: '#0e7490',
106
+ 800: '#155e75',
107
+ 900: '#164e63',
37
108
  },
38
109
  },
39
110
  fontFamily: {
@@ -1,81 +0,0 @@
1
- {
2
- "branches": [
3
- "main",
4
- {
5
- "name": "development",
6
- "prerelease": "dev",
7
- "channel": "development"
8
- }
9
- ],
10
- "repositoryUrl": "https://gitlab.bluefly.io/llm/openapi-ai-agents-standard.git",
11
- "plugins": [
12
- [
13
- "@semantic-release/commit-analyzer",
14
- {
15
- "preset": "angular",
16
- "releaseRules": [
17
- { "type": "docs", "scope": "README", "release": "patch" },
18
- { "type": "refactor", "scope": "core-*", "release": "minor" },
19
- { "type": "refactor", "release": "patch" },
20
- { "type": "chore", "scope": "deps", "release": "patch" }
21
- ],
22
- "parserOpts": {
23
- "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
24
- }
25
- }
26
- ],
27
- [
28
- "@semantic-release/release-notes-generator",
29
- {
30
- "preset": "angular",
31
- "parserOpts": {
32
- "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
33
- },
34
- "writerOpts": {
35
- "commitsSort": ["subject", "scope"]
36
- }
37
- }
38
- ],
39
- [
40
- "@semantic-release/changelog",
41
- {
42
- "changelogFile": "CHANGELOG.md",
43
- "changelogTitle": "# Changelog\n\nAll notable changes to OSSA (Open Standard for Scalable Agents) will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)."
44
- }
45
- ],
46
- [
47
- "@semantic-release/npm",
48
- {
49
- "npmPublish": false,
50
- "tarballDir": "dist"
51
- }
52
- ],
53
- [
54
- "@semantic-release/gitlab",
55
- {
56
- "gitlabUrl": "https://gitlab.bluefly.io",
57
- "assets": [
58
- {
59
- "path": "dist/*.tgz",
60
- "label": "OSSA npm package (${nextRelease.gitTag})"
61
- },
62
- {
63
- "path": "spec/v${nextRelease.version.split('.')[0]}.${nextRelease.version.split('.')[1]}.${nextRelease.version.split('.')[2]}/ossa-${nextRelease.version.split('.')[0]}.${nextRelease.version.split('.')[1]}.${nextRelease.version.split('.')[2]}.schema.json",
64
- "label": "OSSA ${nextRelease.version} JSON Schema"
65
- }
66
- ]
67
- }
68
- ],
69
- [
70
- "@semantic-release/git",
71
- {
72
- "assets": [
73
- "package.json",
74
- "package-lock.json",
75
- "CHANGELOG.md"
76
- ],
77
- "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
78
- }
79
- ]
80
- ]
81
- }
@@ -1,171 +0,0 @@
1
- # Changelog - OSSA v0.2.5-dev
2
-
3
- All notable changes to the OSSA specification are documented in this file.
4
-
5
- ## [0.2.5-dev] - 2024-11-18
6
-
7
- ### Status: DEVELOPMENT/UNSTABLE
8
-
9
- This is a development version. The API may change without notice.
10
-
11
- ### Added
12
-
13
- #### New Resource Type: AgentGraph
14
- - Introduced `AgentGraph` kind for multi-agent composition
15
- - Support for defining complex agent workflows and orchestration patterns
16
- - Shared state management across agent graphs
17
-
18
- #### AgentGraphSpec Properties
19
- - `agents`: Array of agent references with role assignments
20
- - `edges`: Graph connections with conditions and priorities
21
- - `process`: Execution pattern (sequential, parallel, hierarchical, conditional, loop)
22
- - `entry_point`: Starting agent for graph execution
23
- - `exit_points`: Agents that can terminate execution
24
- - `state`: Shared state configuration with persistence options
25
-
26
- #### Execution Patterns
27
- - **sequential**: Agents execute one after another
28
- - **parallel**: Agents execute simultaneously
29
- - **hierarchical**: Manager delegates to workers (CrewAI style)
30
- - **conditional**: Branching based on conditions
31
- - **loop**: Iterative execution until termination
32
-
33
- #### New Framework Extensions
34
- - `google_adk`: Google Agent Development Kit integration
35
- - Support for SequentialAgent, ParallelAgent, LoopAgent
36
- - Gemini model configuration
37
- - Session service options
38
- - `microsoft_af`: Microsoft AutoGen 0.4+ / Magentic-One
39
- - Team types: round_robin, selector, swarm, magentic_one
40
- - Agent types: assistant, orchestrator, web_surfer, coder
41
- - Termination conditions
42
- - `metagpt`: MetaGPT software development teams
43
- - Role types: product_manager, architect, engineer, qa_engineer
44
- - SOP (Standard Operating Procedure) configuration
45
- - Action definitions
46
-
47
- #### Enhanced Existing Extensions
48
- - `crewai`: Added `crew` property for Process configuration
49
- - Process type (sequential/hierarchical)
50
- - Manager LLM configuration
51
- - Verbose mode
52
-
53
- ### Changed
54
-
55
- #### Schema Updates
56
- - `kind` enum now includes: `Agent`, `AgentGraph`
57
- - `spec` uses `oneOf` to support AgentSpec or AgentGraphSpec
58
- - `apiVersion` pattern updated to support v0.2.5-dev
59
-
60
- #### API Version Pattern
61
- ```regex
62
- ^ossa/v(0\.2\.[2-5]|1)(\.[0-9]+)?(-[a-zA-Z0-9]+)?$
63
- ```
64
-
65
- ### Framework Mapping Examples
66
-
67
- #### CrewAI Crews
68
- ```yaml
69
- apiVersion: ossa/v0.2.5-dev
70
- kind: AgentGraph
71
- metadata:
72
- name: research-crew
73
- spec:
74
- process: hierarchical
75
- agents:
76
- - ref: researcher
77
- role: worker
78
- - ref: writer
79
- role: worker
80
- extensions:
81
- crewai:
82
- enabled: true
83
- crew:
84
- process: hierarchical
85
- manager_llm: gpt-4
86
- ```
87
-
88
- #### Google ADK Sequential
89
- ```yaml
90
- apiVersion: ossa/v0.2.5-dev
91
- kind: AgentGraph
92
- metadata:
93
- name: processing-pipeline
94
- spec:
95
- process: sequential
96
- agents:
97
- - ref: intake
98
- - ref: process
99
- - ref: output
100
- extensions:
101
- google_adk:
102
- enabled: true
103
- agent_type: sequential_agent
104
- ```
105
-
106
- #### Microsoft AutoGen Team
107
- ```yaml
108
- apiVersion: ossa/v0.2.5-dev
109
- kind: AgentGraph
110
- metadata:
111
- name: dev-team
112
- spec:
113
- process: conditional
114
- agents:
115
- - ref: orchestrator
116
- - ref: coder
117
- - ref: web-surfer
118
- extensions:
119
- microsoft_af:
120
- enabled: true
121
- framework: magentic_one
122
- team_type: magentic_one
123
- ```
124
-
125
- #### MetaGPT SOP
126
- ```yaml
127
- apiVersion: ossa/v0.2.5-dev
128
- kind: AgentGraph
129
- metadata:
130
- name: software-team
131
- spec:
132
- process: hierarchical
133
- agents:
134
- - ref: product-manager
135
- - ref: architect
136
- - ref: engineer
137
- extensions:
138
- metagpt:
139
- enabled: true
140
- sop:
141
- name: software_development
142
- phases:
143
- - requirements
144
- - design
145
- - implementation
146
- - testing
147
- ```
148
-
149
- ### Migration Notes
150
-
151
- See `migrations/v0.2.4-to-v0.2.5.md` for detailed migration guidance.
152
-
153
- #### Quick Migration
154
- 1. Update `apiVersion` to `ossa/v0.2.5-dev`
155
- 2. Existing Agent manifests remain unchanged
156
- 3. New AgentGraph manifests use `kind: AgentGraph`
157
-
158
- ### Known Limitations
159
- - Graph validation is not fully implemented
160
- - Some framework mappings may require manual configuration
161
- - State persistence options are runtime-dependent
162
-
163
- ### Roadmap
164
- - v0.2.5: Stabilize AgentGraph API based on feedback
165
- - v0.2.6: Add resource dependencies and imports
166
- - v0.3.0: Multi-file manifest support
167
- - v1.0.0: Stable release
168
-
169
- ### Feedback
170
- Report issues and feedback at:
171
- https://gitlab.bluefly.io/llm/ossa/-/issues