@bluefly/openstandardagents 0.2.4 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/.cursorrules +84 -0
  2. package/.devfile.yaml +87 -0
  3. package/.env.example +25 -3
  4. package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
  6. package/.github/workflows/dependabot-comment.yml +34 -0
  7. package/.github/workflows/pr-comment.yml +33 -0
  8. package/.github/workflows/release.yml +1 -1
  9. package/.husky/pre-commit +5 -0
  10. package/.kiro/config.json +21 -0
  11. package/.kiro/settings/mcp.json +61 -0
  12. package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
  13. package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
  14. package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
  15. package/.kiro/specs/website-brand-identity/design.md +1060 -0
  16. package/.kiro/specs/website-brand-identity/requirements.md +287 -0
  17. package/.kiro/specs/website-brand-identity/tasks.md +981 -0
  18. package/.releaserc.json +5 -4
  19. package/.version.json +6 -0
  20. package/CHANGELOG.md +163 -96
  21. package/CONTRIBUTING.md +23 -5
  22. package/README.md +130 -43
  23. package/bin/ossa +24 -3
  24. package/bin/ossa-dev +42 -0
  25. package/bin/ossa-export +32 -0
  26. package/bin/ossa-generate +60 -0
  27. package/bin/ossa-health +40 -0
  28. package/bin/ossa-init +26 -0
  29. package/bin/ossa-validate-all +55 -0
  30. package/bin/ossa-version +23 -0
  31. package/bin/validate-ossa-0.2.4.ts +244 -0
  32. package/bin/validate-ossa-0.2.5-RC.ts +244 -0
  33. package/bin/validate-ossa.ts +273 -0
  34. package/dist/di-container.d.ts +1 -1
  35. package/dist/di-container.d.ts.map +1 -1
  36. package/dist/di-container.js.map +1 -1
  37. package/dist/repositories/schema.repository.d.ts +17 -2
  38. package/dist/repositories/schema.repository.d.ts.map +1 -1
  39. package/dist/repositories/schema.repository.js +102 -19
  40. package/dist/repositories/schema.repository.js.map +1 -1
  41. package/dist/services/generation.service.d.ts +7 -5
  42. package/dist/services/generation.service.d.ts.map +1 -1
  43. package/dist/services/generation.service.js +92 -44
  44. package/dist/services/generation.service.js.map +1 -1
  45. package/dist/services/github-sync/github-client.d.ts +14 -0
  46. package/dist/services/github-sync/github-client.d.ts.map +1 -0
  47. package/dist/services/github-sync/github-client.js +41 -0
  48. package/dist/services/github-sync/github-client.js.map +1 -0
  49. package/dist/services/github-sync/gitlab-client.d.ts +17 -0
  50. package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
  51. package/dist/services/github-sync/gitlab-client.js +42 -0
  52. package/dist/services/github-sync/gitlab-client.js.map +1 -0
  53. package/dist/services/github-sync/schemas.d.ts +46 -0
  54. package/dist/services/github-sync/schemas.d.ts.map +1 -0
  55. package/dist/services/github-sync/schemas.js +36 -0
  56. package/dist/services/github-sync/schemas.js.map +1 -0
  57. package/dist/services/github-sync/sync.service.d.ts +27 -0
  58. package/dist/services/github-sync/sync.service.d.ts.map +1 -0
  59. package/dist/services/github-sync/sync.service.js +99 -0
  60. package/dist/services/github-sync/sync.service.js.map +1 -0
  61. package/dist/services/gitlab-agent.service.d.ts +94 -0
  62. package/dist/services/gitlab-agent.service.d.ts.map +1 -0
  63. package/dist/services/gitlab-agent.service.js +162 -0
  64. package/dist/services/gitlab-agent.service.js.map +1 -0
  65. package/dist/services/migration.service.d.ts +3 -3
  66. package/dist/services/migration.service.d.ts.map +1 -1
  67. package/dist/services/migration.service.js +108 -61
  68. package/dist/services/migration.service.js.map +1 -1
  69. package/dist/services/release-automation/base-crud.service.d.ts +93 -0
  70. package/dist/services/release-automation/base-crud.service.d.ts.map +1 -0
  71. package/dist/services/release-automation/base-crud.service.js +68 -0
  72. package/dist/services/release-automation/base-crud.service.js.map +1 -0
  73. package/dist/services/release-automation/index.d.ts +12 -0
  74. package/dist/services/release-automation/index.d.ts.map +1 -0
  75. package/dist/services/release-automation/index.js +12 -0
  76. package/dist/services/release-automation/index.js.map +1 -0
  77. package/dist/services/release-automation/merge-request.service.d.ts +119 -0
  78. package/dist/services/release-automation/merge-request.service.d.ts.map +1 -0
  79. package/dist/services/release-automation/merge-request.service.js +212 -0
  80. package/dist/services/release-automation/merge-request.service.js.map +1 -0
  81. package/dist/services/release-automation/milestone.service.d.ts +104 -0
  82. package/dist/services/release-automation/milestone.service.d.ts.map +1 -0
  83. package/dist/services/release-automation/milestone.service.js +207 -0
  84. package/dist/services/release-automation/milestone.service.js.map +1 -0
  85. package/dist/services/release-automation/release.service.d.ts +118 -0
  86. package/dist/services/release-automation/release.service.d.ts.map +1 -0
  87. package/dist/services/release-automation/release.service.js +207 -0
  88. package/dist/services/release-automation/release.service.js.map +1 -0
  89. package/dist/services/release-automation/schemas/release.schema.d.ts +299 -0
  90. package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -0
  91. package/dist/services/release-automation/schemas/release.schema.js +269 -0
  92. package/dist/services/release-automation/schemas/release.schema.js.map +1 -0
  93. package/dist/services/release-automation/tag.service.d.ts +99 -0
  94. package/dist/services/release-automation/tag.service.d.ts.map +1 -0
  95. package/dist/services/release-automation/tag.service.js +180 -0
  96. package/dist/services/release-automation/tag.service.js.map +1 -0
  97. package/dist/services/release-automation/webhook.service.d.ts +37 -0
  98. package/dist/services/release-automation/webhook.service.d.ts.map +1 -0
  99. package/dist/services/release-automation/webhook.service.js +173 -0
  100. package/dist/services/release-automation/webhook.service.js.map +1 -0
  101. package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
  102. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
  103. package/dist/services/runtime/claude/capability-mapper.js +245 -0
  104. package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
  105. package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
  106. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
  107. package/dist/services/runtime/claude/claude-adapter.js +287 -0
  108. package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
  109. package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
  110. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
  111. package/dist/services/runtime/claude/manifest-parser.js +169 -0
  112. package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
  113. package/dist/services/runtime/claude/types.d.ts +115 -0
  114. package/dist/services/runtime/claude/types.d.ts.map +1 -0
  115. package/dist/services/runtime/claude/types.js +6 -0
  116. package/dist/services/runtime/claude/types.js.map +1 -0
  117. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  118. package/dist/services/runtime/openai.adapter.js.map +1 -1
  119. package/dist/services/validation.service.d.ts.map +1 -1
  120. package/dist/services/validation.service.js +35 -11
  121. package/dist/services/validation.service.js.map +1 -1
  122. package/dist/services/validators/anthropic.validator.d.ts +2 -2
  123. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  124. package/dist/services/validators/anthropic.validator.js +14 -9
  125. package/dist/services/validators/anthropic.validator.js.map +1 -1
  126. package/dist/services/validators/autogen.validator.d.ts +2 -2
  127. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  128. package/dist/services/validators/autogen.validator.js +18 -15
  129. package/dist/services/validators/autogen.validator.js.map +1 -1
  130. package/dist/services/validators/crewai.validator.d.ts +2 -2
  131. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  132. package/dist/services/validators/crewai.validator.js +18 -17
  133. package/dist/services/validators/crewai.validator.js.map +1 -1
  134. package/dist/services/validators/cursor.validator.d.ts +2 -2
  135. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  136. package/dist/services/validators/cursor.validator.js +15 -11
  137. package/dist/services/validators/cursor.validator.js.map +1 -1
  138. package/dist/services/validators/langchain.validator.d.ts +2 -2
  139. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  140. package/dist/services/validators/langchain.validator.js +14 -11
  141. package/dist/services/validators/langchain.validator.js.map +1 -1
  142. package/dist/services/validators/langflow.validator.d.ts +2 -2
  143. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  144. package/dist/services/validators/langflow.validator.js +14 -9
  145. package/dist/services/validators/langflow.validator.js.map +1 -1
  146. package/dist/services/validators/langgraph.validator.d.ts +2 -2
  147. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  148. package/dist/services/validators/langgraph.validator.js +23 -18
  149. package/dist/services/validators/langgraph.validator.js.map +1 -1
  150. package/dist/services/validators/llamaindex.validator.d.ts +2 -2
  151. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  152. package/dist/services/validators/llamaindex.validator.js +19 -16
  153. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  154. package/dist/services/validators/openai.validator.d.ts +2 -2
  155. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  156. package/dist/services/validators/openai.validator.js +20 -16
  157. package/dist/services/validators/openai.validator.js.map +1 -1
  158. package/dist/services/validators/vercel-ai.validator.d.ts +2 -2
  159. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  160. package/dist/services/validators/vercel-ai.validator.js +16 -15
  161. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  162. package/dist/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
  163. package/dist/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
  164. package/dist/spec/v0.2.3/CHANGELOG.md +7 -7
  165. package/dist/spec/v0.2.3/README.md +9 -9
  166. package/dist/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
  167. package/{spec/v0.2.4-dev → dist/spec/v0.2.4}/CHANGELOG.md +8 -8
  168. package/dist/spec/{v0.2.4-dev → v0.2.4}/migrations/v0.2.3-to-v0.2.4.md +10 -10
  169. package/dist/spec/{v0.2.4-dev/ossa-0.2.4-dev.yaml → v0.2.4/ossa-0.2.4.yaml} +1 -1
  170. package/dist/spec/v0.2.5/CHANGELOG.md +401 -0
  171. package/dist/spec/v0.2.5/README.md +72 -0
  172. package/dist/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  173. package/dist/spec/v0.2.5/ossa-0.2.5.schema.json +1696 -0
  174. package/dist/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  175. package/dist/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  176. package/dist/spec/v0.2.5-RC/README.md +72 -0
  177. package/{spec/v0.2.4-dev → dist/spec/v0.2.5-RC}/migrations/v0.2.3-to-v0.2.4.md +10 -10
  178. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  179. package/dist/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  180. package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
  181. package/dist/spec/v0.2.6/README.md +72 -0
  182. package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  183. package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  184. package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  185. package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  186. package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  187. package/dist/spec/v0.2.6-dev/README.md +75 -0
  188. package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  189. package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  190. package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  191. package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  192. package/dist/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.6-dev/ossa-0.2.6-dev.schema.json} +323 -359
  193. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  194. package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
  195. package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  196. package/dist/types/index.d.ts +6 -1
  197. package/dist/types/index.d.ts.map +1 -1
  198. package/docs/brand-guide/01-brand-overview.md +37 -0
  199. package/docs/brand-guide/02-logo-usage.md +43 -0
  200. package/docs/brand-guide/03-color-palette.md +70 -0
  201. package/docs/brand-guide/04-typography.md +82 -0
  202. package/docs/brand-guide/05-voice-and-tone.md +108 -0
  203. package/docs/brand-guide/06-visual-elements.md +137 -0
  204. package/docs/brand-guide/07-application-examples.md +153 -0
  205. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
  206. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  207. package/docs/brand-guide/README.md +107 -0
  208. package/docs/comparison.md +315 -0
  209. package/docs/operations/automation-roadmap.md +245 -0
  210. package/docs/operations/github-sync-strategy.md +357 -0
  211. package/examples/anthropic/claude-assistant.ossa.json +5 -4
  212. package/examples/autogen/multi-agent.ossa.json +6 -4
  213. package/examples/bridges/Dockerfile.production +1 -1
  214. package/examples/crewai/research-team.ossa.json +14 -5
  215. package/examples/cursor/code-review-agent.ossa.json +21 -6
  216. package/examples/enterprise/agent.yml +1 -1
  217. package/examples/getting-started/hello-world-complete.ossa.yaml +2 -2
  218. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  219. package/examples/langchain/chain-agent.ossa.json +21 -5
  220. package/examples/langflow/workflow-agent.ossa.json +2 -3
  221. package/examples/langgraph/state-machine-agent.ossa.json +2 -3
  222. package/examples/llamaindex/rag-agent.ossa.json +2 -3
  223. package/examples/openai/basic-agent.ossa.yaml +61 -0
  224. package/examples/openai/multi-tool-agent.ossa.json +188 -0
  225. package/examples/openai/swarm-agent.ossa.json +18 -5
  226. package/examples/openapi-extensions/README.md +1 -1
  227. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  228. package/examples/vercel/edge-agent.ossa.json +5 -4
  229. package/infrastructure/gitlab-agent/rbac.yaml +126 -0
  230. package/infrastructure/gitlab-agent/values.yaml +150 -0
  231. package/infrastructure/k8s/monitoring/00-namespace.yaml +7 -0
  232. package/infrastructure/k8s/monitoring/01-prometheus.yaml +142 -0
  233. package/infrastructure/k8s/monitoring/02-grafana.yaml +63 -0
  234. package/infrastructure/k8s/monitoring/03-lightweight.yaml +121 -0
  235. package/infrastructure/k8s/monitoring/README.md +73 -0
  236. package/infrastructure/k8s/monitoring/deploy.sh +38 -0
  237. package/openapi/CHANGELOG.md +21 -0
  238. package/openapi/README.md +46 -0
  239. package/openapi/{ossa-core-api.openapi.yaml → core/ossa-core-api.openapi.yaml} +59 -4
  240. package/openapi/{ossa-registry.openapi.yaml → core/ossa-registry.openapi.yaml} +75 -2
  241. package/openapi/{unified-agent-gateway.openapi.yaml → core/unified-agent-gateway.openapi.yaml} +3 -3
  242. package/openapi/github-sync.yaml +115 -0
  243. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +136 -0
  244. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +192 -0
  245. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +149 -0
  246. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +151 -0
  247. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +217 -0
  248. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +149 -0
  249. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +151 -0
  250. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +193 -0
  251. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +165 -0
  252. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +148 -0
  253. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +167 -0
  254. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +171 -0
  255. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +171 -0
  256. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +242 -0
  257. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +187 -0
  258. package/openapi/{self-evolving-ecosystem.openapi.yaml → reference-implementations/self-evolving-ecosystem.openapi.yaml} +2 -2
  259. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +208 -0
  260. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +193 -0
  261. package/package.json +53 -22
  262. package/release.config.js +20 -5
  263. package/scripts/README.md +103 -0
  264. package/scripts/auto-rebase-mrs.ts +106 -0
  265. package/scripts/batch-dependabot.sh +57 -0
  266. package/scripts/bump-version.ts +57 -0
  267. package/scripts/configure-gitlab-branch-protection.ts +95 -0
  268. package/scripts/create-issue-helper.ts +238 -0
  269. package/scripts/create-milestone-issue.ts +73 -0
  270. package/scripts/enhanced-version-manager.ts +257 -0
  271. package/scripts/fix-schema-formats.js +82 -0
  272. package/scripts/gen-types.ts +51 -0
  273. package/scripts/gen-zod.ts +51 -0
  274. package/scripts/generate-agents-catalog.ts +77 -0
  275. package/scripts/generate-api-docs.ts +218 -0
  276. package/scripts/generate-cli-docs.ts +410 -0
  277. package/scripts/generate-config-docs.ts +109 -0
  278. package/scripts/generate-errors-docs.ts +76 -0
  279. package/scripts/generate-examples-docs.ts +99 -0
  280. package/scripts/generate-schema-docs.ts +296 -0
  281. package/scripts/generate-types-docs.ts +48 -0
  282. package/scripts/lib/exec.ts +37 -0
  283. package/scripts/lib/file-ops.ts +58 -0
  284. package/scripts/lib/version.ts +83 -0
  285. package/scripts/lowercase-docs.ts +43 -0
  286. package/scripts/manage-milestone-mrs.ts +279 -0
  287. package/scripts/process-doc-templates.ts +37 -0
  288. package/scripts/rebase-all-mrs.sh +75 -0
  289. package/scripts/schemas/package.schema.ts +75 -0
  290. package/scripts/setup-branch-protection.sh +33 -0
  291. package/scripts/sync-github-pr.sh +48 -0
  292. package/scripts/sync-version.js +40 -0
  293. package/scripts/sync-version.ts +39 -0
  294. package/scripts/sync-versions.ts +488 -0
  295. package/scripts/sync-wiki.sh +50 -0
  296. package/scripts/validate-all.js +127 -0
  297. package/scripts/validate-schema.ts +49 -0
  298. package/spec/v0.2.0/ossa-0.2.0.schema.json +0 -0
  299. package/spec/v0.2.1/ossa-0.2.1.schema.json +555 -0
  300. package/spec/v0.2.3/CHANGELOG.md +7 -7
  301. package/spec/v0.2.3/README.md +9 -9
  302. package/spec/v0.2.3/migrations/v0.2.2-to-v0.2.3.md +18 -18
  303. package/{dist/spec/v0.2.4-dev → spec/v0.2.4}/CHANGELOG.md +8 -8
  304. package/spec/v0.2.4/migrations/v0.2.3-to-v0.2.4.md +599 -0
  305. package/spec/{v0.2.4-dev/ossa-0.2.4-dev.yaml → v0.2.4/ossa-0.2.4.yaml} +1 -1
  306. package/spec/v0.2.5/CHANGELOG.md +401 -0
  307. package/spec/v0.2.5/README.md +72 -0
  308. package/spec/v0.2.5/migrations/v0.2.3-to-v0.2.4.md +599 -0
  309. package/spec/v0.2.5/ossa-0.2.5.schema.json +1696 -0
  310. package/spec/v0.2.5/ossa-0.2.5.yaml +581 -0
  311. package/spec/v0.2.5-RC/CHANGELOG.md +401 -0
  312. package/spec/v0.2.5-RC/README.md +72 -0
  313. package/spec/v0.2.5-RC/migrations/v0.2.3-to-v0.2.4.md +599 -0
  314. package/spec/v0.2.5-RC/ossa-0.2.5-RC.schema.json +1696 -0
  315. package/spec/v0.2.5-RC/ossa-0.2.5-RC.yaml +581 -0
  316. package/spec/v0.2.6/CHANGELOG.md +401 -0
  317. package/spec/v0.2.6/README.md +72 -0
  318. package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  319. package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  320. package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  321. package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  322. package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  323. package/spec/v0.2.6-dev/README.md +75 -0
  324. package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  325. package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  326. package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  327. package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  328. package/spec/{v0.2.5-dev/ossa-0.2.5-dev.schema.json → v0.2.6-dev/ossa-0.2.6-dev.schema.json} +323 -359
  329. package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  330. package/spec/v0.2.7/core/agentgraph.md +324 -0
  331. package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  332. package/website/{.lighthouserc.js → .lighthouserc.ts} +5 -1
  333. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
  334. package/website/Dockerfile +18 -5
  335. package/website/app/about/page.tsx +60 -51
  336. package/website/app/blog/[slug]/page.tsx +61 -20
  337. package/website/app/blog/page.tsx +120 -33
  338. package/website/app/design-guide/page.tsx +511 -0
  339. package/website/app/docs/[[...slug]]/page.tsx +641 -143
  340. package/website/app/ecosystem/page.tsx +146 -111
  341. package/website/app/examples/page.tsx +51 -41
  342. package/website/app/globals.scss +370 -0
  343. package/website/app/layout.tsx +2 -2
  344. package/website/app/license/page.tsx +183 -0
  345. package/website/app/not-found.tsx +18 -0
  346. package/website/app/page.tsx +513 -236
  347. package/website/app/page.tsx.bak +679 -0
  348. package/website/app/page.tsx.bak2 +649 -0
  349. package/website/app/playground/page.tsx +25 -45
  350. package/website/app/schema/page.tsx +423 -392
  351. package/website/app/specification/page.tsx +245 -169
  352. package/website/components/Logo.tsx +75 -2
  353. package/website/components/docs/DocsSidebar.tsx +40 -3
  354. package/website/components/docs/MarkdownContent.tsx +265 -47
  355. package/website/components/docs/VersionSelector.tsx +64 -8
  356. package/website/components/examples/ExamplesViewer.tsx +2 -2
  357. package/website/components/layout/Footer.tsx +6 -1
  358. package/website/components/layout/Header.tsx +44 -42
  359. package/website/components/schema/SchemaComponentsAccordion.tsx +84 -0
  360. package/website/components/schema/SchemaExplorer.tsx +4 -4
  361. package/website/components/ui/Badge.tsx +82 -0
  362. package/website/components/ui/Button.tsx +116 -0
  363. package/website/components/ui/Card.tsx +167 -0
  364. package/website/components/ui/Checkbox.tsx +141 -0
  365. package/website/components/ui/Input.tsx +169 -0
  366. package/website/components/ui/Radio.tsx +141 -0
  367. package/website/components/ui/Select.tsx +182 -0
  368. package/website/components/ui/Tag.tsx +158 -0
  369. package/website/components/ui/Textarea.tsx +195 -0
  370. package/website/components/ui/index.ts +11 -0
  371. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +276 -276
  372. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +3 -14
  373. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +286 -0
  374. package/website/content/blog/introducing-ossa-framework.md +1 -1
  375. package/website/content/blog/ossa-production-results.md +5 -5
  376. package/website/content/blog/welcome-to-ossa.md +2 -2
  377. package/website/content/blog/why-ai-agents-need-open-standard.md +5 -5
  378. package/website/content/docs/{00-HOME.md → 00-home.md} +18 -25
  379. package/website/content/docs/adapters/openai-adapter.md +693 -0
  380. package/website/content/docs/agents/catalog.md +28 -0
  381. package/website/content/docs/aiflow-framework-integration-with-ossa.md +107 -0
  382. package/website/content/docs/api-reference/index.md +38 -0
  383. package/website/content/docs/api-reference/ossa-core-api.md +634 -0
  384. package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
  385. package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
  386. package/website/content/docs/architecture/execution-flow.md +3 -3
  387. package/website/content/docs/architecture/multi-agent-systems.md +4 -4
  388. package/website/content/docs/architecture/overview.md +4 -4
  389. package/website/content/docs/architecture/stack-integration.md +4 -4
  390. package/website/content/docs/changelog.md +4 -4
  391. package/website/content/docs/cli-reference/index.md +111 -0
  392. package/website/content/docs/cli-reference/ossa-agents.md +70 -0
  393. package/website/content/docs/cli-reference/ossa-export.md +56 -0
  394. package/website/content/docs/cli-reference/ossa-generate.md +66 -0
  395. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
  396. package/website/content/docs/cli-reference/ossa-import.md +56 -0
  397. package/website/content/docs/cli-reference/ossa-init.md +57 -0
  398. package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
  399. package/website/content/docs/cli-reference/ossa-run.md +66 -0
  400. package/website/content/docs/cli-reference/ossa-schema.md +57 -0
  401. package/website/content/docs/cli-reference/ossa-setup.md +57 -0
  402. package/website/content/docs/cli-reference/ossa-validate.md +66 -0
  403. package/website/content/docs/configuration/index.md +97 -0
  404. package/website/content/docs/contributing.md +2 -2
  405. package/website/content/docs/deployment/github-mirroring.md +924 -0
  406. package/website/content/docs/documentation.md +100 -0
  407. package/website/content/docs/ecosystem/framework-support.md +551 -11
  408. package/website/content/docs/errors/index.md +10 -0
  409. package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → examples/aiflow-framework-integration-with-ossa.md} +2 -2
  410. package/website/content/docs/examples/catalog.md +300 -0
  411. package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
  412. package/website/content/docs/getting-started/index.md +92 -0
  413. package/website/content/docs/getting-started/installation.md +7 -7
  414. package/website/content/docs/getting-started/running-agents.md +215 -13
  415. package/{docs → website/content/docs}/getting-started.md +10 -6
  416. package/website/content/docs/integrations/aiflow.md +2 -2
  417. package/website/content/docs/integrations/drupal.md +2 -2
  418. package/website/content/docs/migration-guides/agent-schema-comparison.md +232 -0
  419. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  420. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  421. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +11 -11
  422. package/{docs/migration → website/content/docs/migration-guides}/general-agent-schema.yml +1 -9
  423. package/website/content/docs/migration-guides/index.md +1 -1
  424. package/website/content/docs/migration-guides/langchain-to-ossa.md +17 -17
  425. package/website/content/docs/migration-guides/langflow-to-ossa.md +3 -3
  426. package/website/content/docs/migration-guides/openai-to-ossa.md +10 -10
  427. package/website/content/docs/openapi-extensions/examples.md +9 -9
  428. package/website/content/docs/openapi-extensions/index.md +59 -3
  429. package/website/content/docs/openapi-extensions/operation-extensions.md +61 -2
  430. package/website/content/docs/openapi-extensions/root-extensions.md +49 -3
  431. package/{docs/OSSA-COMPLIANT-BADGE.md → website/content/docs/ossa-compliant-badge.md} +18 -15
  432. package/website/content/docs/pre-release/index.md +10 -10
  433. package/website/content/docs/readme.md +35 -0
  434. package/website/content/docs/releases/v0.2.6.md +99 -0
  435. package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
  436. package/website/content/docs/schema-reference/agent-id.md +52 -0
  437. package/website/content/docs/schema-reference/agent-name.md +50 -0
  438. package/website/content/docs/schema-reference/agent-role.md +54 -0
  439. package/website/content/docs/schema-reference/agent-spec.md +2 -2
  440. package/website/content/docs/schema-reference/agent-version.md +50 -0
  441. package/website/content/docs/schema-reference/autonomy.md +5 -5
  442. package/website/content/docs/schema-reference/constraints.md +5 -5
  443. package/website/content/docs/schema-reference/index.md +26 -157
  444. package/website/content/docs/schema-reference/llm-config.md +1 -1
  445. package/website/content/docs/schema-reference/observability.md +5 -5
  446. package/website/content/docs/schema-reference/ossa-manifest.md +6 -6
  447. package/website/content/docs/schema-reference/taxonomy.md +3 -3
  448. package/website/content/docs/types-reference/index.md +105 -0
  449. package/website/content/docs/use-cases/00-index.md +1 -1
  450. package/{docs/VERSIONING.md → website/content/docs/versioning.md} +9 -5
  451. package/website/dev.sh +53 -0
  452. package/website/docker-compose.dev.yml +36 -0
  453. package/website/lib/version.ts +18 -1
  454. package/website/lib/versions.json +103 -0
  455. package/website/next.config.ts +3 -1
  456. package/website/package-lock.json +552 -18
  457. package/website/package.json +11 -5
  458. package/website/postcss.config.mjs +1 -1
  459. package/website/scripts/fetch-versions.js +166 -0
  460. package/website/scripts/generate-examples-index.js +163 -0
  461. package/website/scripts/merge-docs-to-wiki.ts +207 -0
  462. package/website/scripts/sync-version.js +28 -0
  463. package/website/scripts/sync-wiki.ts +64 -3
  464. package/website/scripts/upload-wiki.ts +199 -0
  465. package/website/styles/_spacing.scss +453 -0
  466. package/website/styles/_tokens.scss +245 -0
  467. package/website/styles/_typography.scss +361 -0
  468. package/website/styles/_variables.scss +287 -0
  469. package/website/tailwind.config.ts +127 -22
  470. package/.releaserc.json.disabled +0 -81
  471. package/dist/spec/v0.2.5-dev/CHANGELOG.md +0 -171
  472. package/dist/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
  473. package/dist/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
  474. package/dist/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
  475. package/dist/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  476. package/dist/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  477. package/docs/README.md +0 -31
  478. package/docs/agent-openapi-spec.yml +0 -942
  479. package/docs/openapi-extensions.md +0 -930
  480. package/docs/schemas/openapi-extensions.schema.json +0 -486
  481. package/openapi/gitlab-orchestrator.openapi.yaml +0 -330
  482. package/ossa-website-swarm-tasks.json +0 -105
  483. package/spec/v0.2.5-dev/CHANGELOG.md +0 -171
  484. package/spec/v0.2.5-dev/examples/customer-support-graph.ossa.yaml +0 -362
  485. package/spec/v0.2.5-dev/examples/parallel-processors.ossa.yaml +0 -464
  486. package/spec/v0.2.5-dev/examples/research-team.ossa.yaml +0 -440
  487. package/spec/v0.2.5-dev/migrations/v0.2.4-to-v0.2.5.md +0 -317
  488. package/spec/v0.2.5-dev/ossa-0.2.5-dev.yaml +0 -409
  489. package/website/app/api/validate/route.ts +0 -88
  490. package/website/app/globals.css +0 -108
  491. package/website/content/docs/OpenAPI-Extensions.md +0 -498
  492. package/website/content/docs/core-concepts/project-structure.md +0 -348
  493. package/website/content/docs/examples/Migration-Guides.md +0 -214
  494. package/website/content/docs/examples.md +0 -71
  495. package/website/content/docs/for-audiences/Enterprises.md +0 -256
  496. package/website/content/docs/for-audiences/architects.md +0 -224
  497. package/website/content/docs/for-audiences/developers.md +0 -220
  498. package/website/content/docs/getting-started/5-minute-overview.md +0 -85
  499. package/website/content/docs/getting-started/Hello-World.md +0 -184
  500. package/website/content/docs/getting-started/first-agent.md +0 -196
  501. package/website/content/docs/migration-guides/00-index.md +0 -76
  502. package/website/content/docs/migration-guides/README.md +0 -133
  503. package/website/next.config.js +0 -17
  504. package/website/postcss.config.js +0 -7
  505. package/website/tailwind.config.js +0 -58
  506. /package/dist/spec/{v0.2.4-dev/ossa-0.2.4-dev.schema.json → v0.2.4/ossa-0.2.4.schema.json} +0 -0
  507. /package/openapi/{ossa-registry-api.openapi.yaml → core/ossa-registry-api.openapi.yaml} +0 -0
  508. /package/openapi/{drupal-agent-api.openapi.yaml → reference-implementations/drupal-agent-api.openapi.yaml} +0 -0
  509. /package/openapi/{helm-generator.openapi.yaml → reference-implementations/helm-generator.openapi.yaml} +0 -0
  510. /package/spec/{v0.2.4-dev/ossa-0.2.4-dev.schema.json → v0.2.4/ossa-0.2.4.schema.json} +0 -0
  511. /package/{docs/migration → website/content/docs/migration-guides}/migration-manifest.json +0 -0
@@ -0,0 +1,924 @@
1
+ ---
2
+ title: "GitHub Mirroring Deployment Guide"
3
+ ---
4
+
5
+ # GitHub Mirroring Deployment Guide
6
+
7
+ ## Overview
8
+
9
+ This guide documents the GitHub mirroring setup for the Open Standard Agents (OSSA) repository. The project uses a **dual-platform strategy** where GitLab serves as the primary development platform, and GitHub acts as a public mirror for broader community access and visibility.
10
+
11
+ ### Why Mirror to GitHub?
12
+
13
+ - **Broader Reach**: GitHub has a larger developer community and better discoverability
14
+ - **Ecosystem Integration**: Many tools and services integrate better with GitHub
15
+ - **Redundancy**: Provides backup and alternative access to the repository
16
+ - **Community Engagement**: Easier for external contributors to discover and engage
17
+ - **Website Hosting**: GitHub Pages serves as the primary website host (openstandardagents.org)
18
+
19
+ ### Architecture
20
+
21
+ ```
22
+ ┌─────────────────────────────────────────────────────────────┐
23
+ │ GitLab (Primary) │
24
+ │ - Source of truth for code │
25
+ │ - CI/CD pipeline orchestration │
26
+ │ - Merge requests and code review │
27
+ │ - Issue tracking and project management │
28
+ │ - NPM package publishing │
29
+ │ - GitLab Pages (backup website) │
30
+ └──────────────────┬──────────────────────────────────────────┘
31
+
32
+ │ Automatic Push Mirror
33
+ │ (on main branch & tags)
34
+
35
+
36
+ ┌─────────────────────────────────────────────────────────────┐
37
+ │ GitHub (Mirror) │
38
+ │ - Public repository mirror │
39
+ │ - GitHub Actions CI (validation) │
40
+ │ - GitHub Pages (primary website) │
41
+ │ - Community engagement │
42
+ │ - Release distribution │
43
+ │ - CodeQL security scanning │
44
+ └─────────────────────────────────────────────────────────────┘
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Prerequisites
50
+
51
+ Before setting up GitHub mirroring, ensure you have:
52
+
53
+ 1. **GitLab Repository**: Primary repository on GitLab (gitlab.com/blueflyio/openstandardagents)
54
+ 2. **GitHub Repository**: Target mirror repository (github.com/blueflyio/openstandardagents)
55
+ 3. **GitHub Personal Access Token**: With `repo` and `workflow` permissions
56
+ 4. **GitLab CI/CD Access**: Ability to set CI/CD variables in GitLab project settings
57
+
58
+ ---
59
+
60
+ ## Configuration
61
+
62
+ ### 1. GitHub Personal Access Token Setup
63
+
64
+ Create a GitHub Personal Access Token (PAT) with the following permissions:
65
+
66
+ **Token Permissions Required:**
67
+ - `repo` - Full control of private repositories
68
+ - `repo:status` - Access commit status
69
+ - `repo_deployment` - Access deployment status
70
+ - `public_repo` - Access public repositories
71
+ - `workflow` - Update GitHub Action workflows
72
+
73
+ **Steps to Create Token:**
74
+
75
+ 1. Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
76
+ 2. Click "Generate new token (classic)"
77
+ 3. Set token name: `GitLab Mirror - OSSA`
78
+ 4. Set expiration: 90 days (recommended) or No expiration (requires periodic rotation)
79
+ 5. Select scopes: `repo`, `workflow`
80
+ 6. Click "Generate token"
81
+ 7. **Copy the token immediately** (you won't see it again)
82
+
83
+ **Security Best Practices:**
84
+ - Use a dedicated service account or bot account for mirroring
85
+ - Set token expiration and rotate regularly
86
+ - Store token securely in GitLab CI/CD variables (masked)
87
+ - Never commit tokens to the repository
88
+ - Use fine-grained tokens when available (GitHub beta feature)
89
+
90
+ ### 2. GitLab CI/CD Variable Configuration
91
+
92
+ Add the GitHub token to GitLab CI/CD variables:
93
+
94
+ **Steps:**
95
+
96
+ 1. Navigate to GitLab project: Settings → CI/CD → Variables
97
+ 2. Click "Add variable"
98
+ 3. Configure variable:
99
+ - **Key**: `GITHUB_MIRROR_TOKEN`
100
+ - **Value**: `<your-github-personal-access-token>`
101
+ - **Type**: Variable
102
+ - **Environment scope**: All (default)
103
+ - **Protect variable**: ✅ Yes (recommended - only available to protected branches)
104
+ - **Mask variable**: ✅ Yes (hides value in job logs)
105
+ - **Expand variable reference**: ❌ No
106
+ 4. Click "Add variable"
107
+
108
+ **Verification:**
109
+
110
+ The token is correctly configured when:
111
+ - Variable appears in Settings → CI/CD → Variables list
112
+ - Value is masked (shows as `[masked]` in logs)
113
+ - Mirror job runs successfully without authentication errors
114
+
115
+ ### 3. GitLab CI/CD Mirror Job
116
+
117
+ The mirror job is defined in `.gitlab-ci.yml` at the `mirror` stage:
118
+
119
+ ```yaml
120
+ mirror:github:
121
+ stage: mirror
122
+ image: alpine:latest
123
+ before_script:
124
+ - apk add --no-cache git
125
+ - git config --global user.email "ci@blueflyio.com"
126
+ - git config --global user.name "GitLab CI"
127
+ script:
128
+ - |
129
+ if [ -z "$GITHUB_MIRROR_TOKEN" ]; then
130
+ echo "ℹ️ GITHUB_MIRROR_TOKEN not set - skipping"
131
+ exit 0
132
+ fi
133
+
134
+ echo "🔄 Syncing to GitHub..."
135
+ git remote add github https://${GITHUB_MIRROR_TOKEN}@github.com/blueflyio/openstandardagents.git || true
136
+ git push github --all --force || true
137
+ git push github --tags --force || true
138
+ echo "✅ GitHub mirror synced"
139
+ rules:
140
+ - if: $CI_COMMIT_TAG
141
+ when: on_success
142
+ - if: $CI_COMMIT_BRANCH == "main"
143
+ when: on_success
144
+ allow_failure: true
145
+ ```
146
+
147
+ **Job Configuration Details:**
148
+
149
+ | Setting | Value | Purpose |
150
+ |---------|-------|---------|
151
+ | **Stage** | `mirror` | Runs after release stage |
152
+ | **Image** | `alpine:latest` | Minimal Linux image with git |
153
+ | **Trigger** | Tags + main branch | Mirrors production code only |
154
+ | **Force Push** | Yes | Ensures GitHub matches GitLab exactly |
155
+ | **Failure Handling** | `allow_failure: true` | Pipeline succeeds even if mirror fails |
156
+
157
+ **When Mirror Runs:**
158
+
159
+ 1. **On Git Tags**: When a new version tag is created (e.g., `v0.2.5`)
160
+ 2. **On Main Branch**: When commits are pushed to the `main` branch
161
+ 3. **Not on Feature Branches**: Feature branches are not mirrored
162
+
163
+ **What Gets Mirrored:**
164
+
165
+ - ✅ All branches (`git push --all`)
166
+ - ✅ All tags (`git push --tags`)
167
+ - ✅ Commit history
168
+ - ✅ Repository metadata
169
+ - ❌ GitLab-specific features (CI/CD variables, merge requests, issues)
170
+
171
+ ---
172
+
173
+ ## CI/CD Considerations
174
+
175
+ ### Dual-Pipeline Strategy
176
+
177
+ The project uses a **dual-pipeline strategy** where GitLab is the primary CI/CD platform, and GitHub provides supplementary validation and deployment.
178
+
179
+ #### GitLab CI/CD (Primary)
180
+
181
+ **Stages:**
182
+ 1. `setup` - Environment preparation
183
+ 2. `version-detect` - Milestone and version detection
184
+ 3. `validate` - Code validation, linting, version sync
185
+ 4. `build` - Build distribution packages
186
+ 5. `test` - Unit tests, security audits, coverage
187
+ 6. `quality` - Quality gates
188
+ 7. `deploy` - Website deployment (manual)
189
+ 8. `release` - NPM publishing (milestone-gated)
190
+ 9. `mirror` - GitHub synchronization
191
+
192
+ **Key Features:**
193
+ - **Milestone-Gated Releases**: Requires closed milestone + `ENABLE_RELEASE=true`
194
+ - **Dev Tag Management**: Automatic dev tags on development branch
195
+ - **Documentation Sync**: Validates version consistency across docs
196
+ - **Comprehensive Testing**: Lint, typecheck, unit tests, security audits
197
+ - **Manual Website Deployment**: Controlled deployment to GitLab Pages
198
+ - **NPM Publishing**: Automated npm publish on release
199
+
200
+ **Release Gate:**
201
+
202
+ Releases require **BOTH** conditions:
203
+ 1. ✅ Milestone must be 100% complete and closed
204
+ 2. ✅ CI/CD variable `ENABLE_RELEASE` must be set to `"true"`
205
+
206
+ This allows deploying to main without releasing. Set the variable only when ready to release.
207
+
208
+ #### GitHub Actions (Mirror)
209
+
210
+ **Workflows:**
211
+
212
+ 1. **CI Workflow** (`.github/workflows/ci.yml`)
213
+ - Validate, lint, test, security audit
214
+ - Build package and website
215
+ - Upload coverage to Codecov
216
+ - Runs on: `push` to main/develop, `pull_request`
217
+
218
+ 2. **Release Workflow** (`.github/workflows/release.yml`)
219
+ - Semantic release (GitHub releases)
220
+ - NPM publishing (backup)
221
+ - GitHub Pages deployment
222
+ - Runs on: `push` to main/develop
223
+
224
+ 3. **CodeQL Workflow** (`.github/workflows/codeql.yml`)
225
+ - Security vulnerability scanning
226
+ - Code quality analysis
227
+ - Runs on: `push`, `pull_request`, weekly schedule
228
+
229
+ **Key Differences:**
230
+
231
+ | Feature | GitLab (Primary) | GitHub (Mirror) |
232
+ |---------|------------------|-----------------|
233
+ | **Purpose** | Source of truth | Public mirror |
234
+ | **CI Trigger** | All branches | main/develop only |
235
+ | **Release Strategy** | Milestone-gated | Semantic release |
236
+ | **NPM Publish** | Primary | Backup/fallback |
237
+ | **Website Deploy** | Manual button | Automatic on main |
238
+ | **Test Coverage** | Comprehensive | Basic validation |
239
+
240
+ ### Force Push Strategy
241
+
242
+ The mirror job uses `--force` flags for both branches and tags:
243
+
244
+ ```bash
245
+ git push github --all --force
246
+ git push github --tags --force
247
+ ```
248
+
249
+ **Why Force Push?**
250
+
251
+ 1. **Single Source of Truth**: GitLab is authoritative, GitHub must match exactly
252
+ 2. **Conflict Resolution**: Prevents divergence between platforms
253
+ 3. **Tag Updates**: Allows updating existing tags (e.g., fixing release notes)
254
+ 4. **Simplicity**: No merge conflicts or manual intervention required
255
+
256
+ **Implications:**
257
+
258
+ ⚠️ **Warning**: Force pushing overwrites GitHub history. This is intentional for mirroring but has consequences:
259
+
260
+ - **GitHub-only commits are lost**: Any commits made directly to GitHub will be overwritten
261
+ - **Pull requests may break**: GitHub PRs should not be used; use GitLab merge requests
262
+ - **History rewriting**: If GitLab history is rewritten, GitHub will match
263
+ - **Tag updates**: Existing tags can be updated (useful for release notes)
264
+
265
+ **Best Practices:**
266
+
267
+ - ✅ Always work on GitLab (primary platform)
268
+ - ✅ Use GitLab merge requests for code review
269
+ - ✅ Create issues on GitLab, not GitHub
270
+ - ❌ Never commit directly to GitHub
271
+ - ❌ Never create GitHub pull requests
272
+ - ❌ Never manually push to GitHub
273
+
274
+ ### Tag Synchronization
275
+
276
+ Tags are synchronized automatically when created on GitLab:
277
+
278
+ **Tag Creation Flow:**
279
+
280
+ 1. **GitLab Release**: Tag created on GitLab (e.g., `v0.2.5`)
281
+ 2. **CI Pipeline Triggers**: Mirror job runs automatically
282
+ 3. **GitHub Sync**: Tag pushed to GitHub with `--force`
283
+ 4. **GitHub Actions**: Release workflow triggers on new tag
284
+ 5. **GitHub Release**: Semantic release creates GitHub release
285
+
286
+ **Tag Types:**
287
+
288
+ - **Production Tags**: `v0.2.5`, `v1.0.0` (semantic versions)
289
+ - **Dev Tags**: `0.2.6-dev-1`, `0.2.6-dev-2` (development builds)
290
+ - **RC Tags**: `v0.2.5-RC` (release candidates)
291
+
292
+ **Tag Metadata:**
293
+
294
+ GitLab tags include comprehensive release information:
295
+
296
+ ```
297
+ Release v0.2.5
298
+
299
+ Milestone - v0.2.5 - Bug Fixes & Documentation
300
+ Pipeline - 12345678
301
+ Released - 2025-11-25T20:00:00Z
302
+ Commit - abc123def456
303
+
304
+ Documentation
305
+ - Schema - https://openstandardagents.org/schema/
306
+ - Changelog - https://github.com/blueflyio/openstandardagents/blob/main/CHANGELOG.md
307
+ - Migration Guide - https://openstandardagents.org/docs/migration-guides/
308
+
309
+ npm Package - @bluefly/openstandardagents@0.2.5
310
+ GitLab Release - https://gitlab.com/blueflyio/openstandardagents/-/releases/v0.2.5
311
+ ```
312
+
313
+ This metadata is preserved when mirrored to GitHub.
314
+
315
+ ---
316
+
317
+ ## Branch Protection Rules
318
+
319
+ ### GitHub Branch Protection
320
+
321
+ To prevent accidental commits to GitHub and maintain GitLab as the source of truth, configure branch protection rules on GitHub:
322
+
323
+ **Recommended Settings for `main` Branch:**
324
+
325
+ 1. Navigate to GitHub repository: Settings → Branches → Branch protection rules
326
+ 2. Click "Add rule" or edit existing rule for `main`
327
+ 3. Configure protection:
328
+
329
+ **Branch name pattern**: `main`
330
+
331
+ **Protect matching branches:**
332
+ - ✅ **Require a pull request before merging**
333
+ - Required approvals: 1
334
+ - ❌ Dismiss stale pull request approvals when new commits are pushed
335
+ - ❌ Require review from Code Owners
336
+ - ❌ Restrict who can dismiss pull request reviews
337
+ - ❌ Allow specified actors to bypass required pull requests
338
+ - ❌ Require approval of the most recent reviewable push
339
+
340
+ - ✅ **Require status checks to pass before merging**
341
+ - ✅ Require branches to be up to date before merging
342
+ - Status checks: `validate`, `lint`, `test`, `build`
343
+
344
+ - ✅ **Require conversation resolution before merging**
345
+
346
+ - ✅ **Require signed commits**
347
+
348
+ - ❌ **Require linear history** (conflicts with mirror force push)
349
+
350
+ - ✅ **Require deployments to succeed before merging**
351
+ - Environments: `production`
352
+
353
+ - ❌ **Lock branch** (would prevent mirroring)
354
+
355
+ - ❌ **Do not allow bypassing the above settings**
356
+
357
+ - ✅ **Restrict who can push to matching branches**
358
+ - Add: GitLab CI service account or bot account
359
+ - This allows mirror job to push while preventing manual pushes
360
+
361
+ - ✅ **Allow force pushes**
362
+ - Specify who can force push: GitLab CI service account only
363
+ - Required for mirroring to work
364
+
365
+ - ✅ **Allow deletions**
366
+ - Specify who can delete: GitLab CI service account only
367
+
368
+ **Additional Protection for `develop` Branch:**
369
+
370
+ Apply similar rules to `develop` branch if mirrored:
371
+ - Same settings as `main`
372
+ - Adjust status checks as needed
373
+ - Allow force pushes from GitLab CI only
374
+
375
+ ### GitLab Branch Protection
376
+
377
+ GitLab branch protection is already configured:
378
+
379
+ **Main Branch:**
380
+ - ✅ Protected branch
381
+ - ✅ Merge requests required
382
+ - ✅ Merge trains enabled
383
+ - ✅ Code owner approval required
384
+ - ✅ All discussions must be resolved
385
+
386
+ **Development Branch:**
387
+ - ✅ Protected branch
388
+ - ✅ Merge requests required
389
+ - ✅ Maintainer approval required
390
+
391
+ ### Interaction Between Platforms
392
+
393
+ **GitLab Merge Trains + GitHub Protection:**
394
+
395
+ GitLab merge trains ensure that:
396
+ 1. All CI checks pass before merge
397
+ 2. Code is always in a releasable state
398
+ 3. No merge conflicts on main
399
+
400
+ GitHub protection ensures that:
401
+ 1. Mirror is the only way to update GitHub
402
+ 2. No accidental commits to GitHub
403
+ 3. Status checks validate mirrored code
404
+
405
+ **Consistency Guidelines:**
406
+
407
+ - ✅ Keep branch names consistent (main, develop, feature/*)
408
+ - ✅ Use same commit message conventions
409
+ - ✅ Apply similar protection rules
410
+ - ✅ Maintain same branching strategy
411
+ - ❌ Don't create GitHub-specific branches
412
+ - ❌ Don't use different versioning schemes
413
+
414
+ ---
415
+
416
+ ## Verification
417
+
418
+ ### How to Verify Mirroring is Working
419
+
420
+ **1. Check GitLab CI/CD Pipeline:**
421
+
422
+ ```bash
423
+ # Navigate to GitLab project
424
+ # Go to: CI/CD → Pipelines
425
+ # Find latest pipeline on main branch
426
+ # Check mirror:github job status
427
+ ```
428
+
429
+ **Expected Output:**
430
+ ```
431
+ 🔄 Syncing to GitHub...
432
+ ✅ GitHub mirror synced
433
+ ```
434
+
435
+ **2. Compare Commits:**
436
+
437
+ ```bash
438
+ # Clone both repositories
439
+ git clone https://gitlab.com/blueflyio/openstandardagents.git gitlab-repo
440
+ git clone https://github.com/blueflyio/openstandardagents.git github-repo
441
+
442
+ # Compare latest commits
443
+ cd gitlab-repo && git log -1 --oneline
444
+ cd ../github-repo && git log -1 --oneline
445
+
446
+ # Should show same commit hash and message
447
+ ```
448
+
449
+ **3. Verify Tags:**
450
+
451
+ ```bash
452
+ # List tags on both platforms
453
+ cd gitlab-repo && git tag -l | sort
454
+ cd ../github-repo && git tag -l | sort
455
+
456
+ # Should show identical tag lists
457
+ ```
458
+
459
+ **4. Check GitHub Actions:**
460
+
461
+ ```bash
462
+ # Navigate to GitHub repository
463
+ # Go to: Actions tab
464
+ # Verify workflows are running successfully
465
+ ```
466
+
467
+ **5. Test Website Deployment:**
468
+
469
+ ```bash
470
+ # Visit both websites
471
+ curl -I https://openstandardagents.org
472
+ # Should return 200 OK from GitHub Pages
473
+
474
+ curl -I https://blueflyio.gitlab.io/openstandardagents
475
+ # Should return 200 OK from GitLab Pages
476
+ ```
477
+
478
+ ### Verification Checklist
479
+
480
+ - [ ] GitLab mirror job completes successfully
481
+ - [ ] Latest commit on GitHub matches GitLab
482
+ - [ ] All tags are synchronized
483
+ - [ ] GitHub Actions workflows pass
484
+ - [ ] Website deploys successfully to GitHub Pages
485
+ - [ ] No authentication errors in GitLab CI logs
486
+ - [ ] Branch protection rules are active on GitHub
487
+ - [ ] Force push is restricted to CI service account
488
+
489
+ ---
490
+
491
+ ## Troubleshooting
492
+
493
+ ### Common Issues and Solutions
494
+
495
+ #### 1. Authentication Failed
496
+
497
+ **Symptom:**
498
+ ```
499
+ fatal: Authentication failed for 'https://github.com/blueflyio/openstandardagents.git/'
500
+ ```
501
+
502
+ **Causes:**
503
+ - Token expired or invalid
504
+ - Token lacks required permissions
505
+ - Token not set in GitLab CI/CD variables
506
+
507
+ **Solutions:**
508
+
509
+ 1. **Verify token exists:**
510
+ ```bash
511
+ # In GitLab: Settings → CI/CD → Variables
512
+ # Check GITHUB_MIRROR_TOKEN is present and masked
513
+ ```
514
+
515
+ 2. **Check token permissions:**
516
+ - Go to GitHub: Settings → Developer settings → Personal access tokens
517
+ - Verify token has `repo` and `workflow` scopes
518
+ - Regenerate token if needed
519
+
520
+ 3. **Update GitLab variable:**
521
+ - Delete old `GITHUB_MIRROR_TOKEN` variable
522
+ - Create new variable with fresh token
523
+ - Ensure "Masked" is checked
524
+
525
+ 4. **Test token manually:**
526
+ ```bash
527
+ git clone https://${GITHUB_MIRROR_TOKEN}@github.com/blueflyio/openstandardagents.git
528
+ # Should clone successfully
529
+ ```
530
+
531
+ #### 2. Token Expiration
532
+
533
+ **Symptom:**
534
+ ```
535
+ remote: Invalid username or password.
536
+ fatal: Authentication failed
537
+ ```
538
+
539
+ **Prevention:**
540
+ - Set calendar reminder 1 week before expiration
541
+ - Use longer expiration periods (90 days)
542
+ - Consider using GitHub App tokens (no expiration)
543
+
544
+ **Resolution:**
545
+
546
+ 1. **Generate new token** (see "GitHub Personal Access Token Setup")
547
+ 2. **Update GitLab variable** with new token
548
+ 3. **Retry failed pipeline** or push new commit
549
+
550
+ **Automation:**
551
+ ```bash
552
+ # Add to monitoring/alerting
553
+ # Check token expiration date
554
+ # Alert 7 days before expiration
555
+ ```
556
+
557
+ #### 3. Force Push Rejected
558
+
559
+ **Symptom:**
560
+ ```
561
+ ! [rejected] main -> main (non-fast-forward)
562
+ error: failed to push some refs
563
+ ```
564
+
565
+ **Causes:**
566
+ - Branch protection prevents force push
567
+ - CI service account not in allowed list
568
+ - GitHub repository has diverged
569
+
570
+ **Solutions:**
571
+
572
+ 1. **Check branch protection:**
573
+ - GitHub: Settings → Branches → main
574
+ - Verify "Allow force pushes" is enabled
575
+ - Verify CI service account is in allowed list
576
+
577
+ 2. **Verify CI account permissions:**
578
+ - Ensure token is from account with force push access
579
+ - Check account is repository admin or has force push permission
580
+
581
+ 3. **Manual sync (emergency only):**
582
+ ```bash
583
+ # Clone GitLab repo
584
+ git clone https://gitlab.com/blueflyio/openstandardagents.git
585
+ cd openstandardagents
586
+
587
+ # Add GitHub remote
588
+ git remote add github https://${GITHUB_MIRROR_TOKEN}@github.com/blueflyio/openstandardagents.git
589
+
590
+ # Force push
591
+ git push github --all --force
592
+ git push github --tags --force
593
+ ```
594
+
595
+ #### 4. Mirror Job Skipped
596
+
597
+ **Symptom:**
598
+ ```
599
+ ℹ️ GITHUB_MIRROR_TOKEN not set - skipping
600
+ ```
601
+
602
+ **Causes:**
603
+ - Variable not set in GitLab CI/CD
604
+ - Variable not available to pipeline (scope issue)
605
+ - Variable name mismatch
606
+
607
+ **Solutions:**
608
+
609
+ 1. **Verify variable name:**
610
+ - Must be exactly `GITHUB_MIRROR_TOKEN`
611
+ - Case-sensitive
612
+
613
+ 2. **Check variable scope:**
614
+ - Environment scope should be "All" or match pipeline environment
615
+ - Protected variable should be enabled if branch is protected
616
+
617
+ 3. **Verify variable in pipeline:**
618
+ ```yaml
619
+ # Add debug step to mirror job
620
+ script:
621
+ - echo "Token set: $([ -n "$GITHUB_MIRROR_TOKEN" ] && echo 'yes' || echo 'no')"
622
+ ```
623
+
624
+ #### 5. Merge Conflicts on GitHub
625
+
626
+ **Symptom:**
627
+ ```
628
+ CONFLICT (content): Merge conflict in <file>
629
+ ```
630
+
631
+ **Cause:**
632
+ - Commits made directly to GitHub (violates workflow)
633
+ - Manual changes to GitHub repository
634
+
635
+ **Solution:**
636
+
637
+ ⚠️ **This should never happen if workflow is followed correctly.**
638
+
639
+ 1. **Identify conflicting commits:**
640
+ ```bash
641
+ git log --oneline --graph --all
642
+ ```
643
+
644
+ 2. **Force sync from GitLab (destructive):**
645
+ ```bash
646
+ git push github --all --force
647
+ git push github --tags --force
648
+ ```
649
+
650
+ 3. **Prevent future conflicts:**
651
+ - Enable branch protection on GitHub
652
+ - Restrict push access to CI service account only
653
+ - Educate team: "Never commit to GitHub directly"
654
+
655
+ #### 6. Tag Synchronization Issues
656
+
657
+ **Symptom:**
658
+ - Tags missing on GitHub
659
+ - Tag points to different commit
660
+ - Duplicate tags with different content
661
+
662
+ **Solutions:**
663
+
664
+ 1. **Verify tag exists on GitLab:**
665
+ ```bash
666
+ git ls-remote --tags https://gitlab.com/blueflyio/openstandardagents.git
667
+ ```
668
+
669
+ 2. **Force sync tags:**
670
+ ```bash
671
+ git push github --tags --force
672
+ ```
673
+
674
+ 3. **Delete and recreate tag (if corrupted):**
675
+ ```bash
676
+ # On GitLab
677
+ git tag -d v0.2.5
678
+ git push origin :refs/tags/v0.2.5
679
+
680
+ # Recreate tag
681
+ git tag -a v0.2.5 -m "Release v0.2.5"
682
+ git push origin v0.2.5
683
+
684
+ # Mirror will sync automatically
685
+ ```
686
+
687
+ #### 7. GitHub Actions Not Triggering
688
+
689
+ **Symptom:**
690
+ - Mirror succeeds but GitHub Actions don't run
691
+ - Workflows show "skipped" status
692
+
693
+ **Causes:**
694
+ - Workflow files not present in mirrored branch
695
+ - Workflow disabled on GitHub
696
+ - Token lacks `workflow` permission
697
+
698
+ **Solutions:**
699
+
700
+ 1. **Verify workflow files exist:**
701
+ ```bash
702
+ ls -la .github/workflows/
703
+ # Should show: ci.yml, release.yml, codeql.yml
704
+ ```
705
+
706
+ 2. **Check workflow status:**
707
+ - GitHub: Actions tab
708
+ - Verify workflows are enabled (not disabled)
709
+
710
+ 3. **Update token permissions:**
711
+ - Add `workflow` scope to GitHub token
712
+ - Update `GITHUB_MIRROR_TOKEN` in GitLab
713
+
714
+ 4. **Manually trigger workflow:**
715
+ - GitHub: Actions → Select workflow → Run workflow
716
+
717
+ ---
718
+
719
+ ## Maintenance
720
+
721
+ ### Token Rotation
722
+
723
+ **Recommended Schedule:**
724
+ - Rotate tokens every 90 days
725
+ - Set calendar reminders
726
+ - Document rotation in team runbook
727
+
728
+ **Rotation Process:**
729
+
730
+ 1. **Generate new token** (see "GitHub Personal Access Token Setup")
731
+ 2. **Test new token:**
732
+ ```bash
733
+ git clone https://${NEW_TOKEN}@github.com/blueflyio/openstandardagents.git test-clone
734
+ ```
735
+ 3. **Update GitLab variable:**
736
+ - Settings → CI/CD → Variables
737
+ - Edit `GITHUB_MIRROR_TOKEN`
738
+ - Replace value with new token
739
+ 4. **Verify mirror job:**
740
+ - Trigger pipeline manually or push commit
741
+ - Check mirror:github job succeeds
742
+ 5. **Revoke old token:**
743
+ - GitHub: Settings → Developer settings → Personal access tokens
744
+ - Find old token → Revoke
745
+
746
+ **Automation:**
747
+ ```bash
748
+ # Add to monitoring
749
+ # Alert 7 days before token expiration
750
+ # Provide rotation instructions in alert
751
+ ```
752
+
753
+ ### Monitoring
754
+
755
+ **Key Metrics to Monitor:**
756
+
757
+ 1. **Mirror Job Success Rate**
758
+ - Target: > 99%
759
+ - Alert if: < 95% over 7 days
760
+
761
+ 2. **Sync Latency**
762
+ - Target: < 5 minutes from GitLab commit to GitHub
763
+ - Alert if: > 15 minutes
764
+
765
+ 3. **Token Expiration**
766
+ - Alert: 7 days before expiration
767
+ - Critical: 1 day before expiration
768
+
769
+ 4. **GitHub Actions Status**
770
+ - Target: All workflows passing
771
+ - Alert if: Any workflow failing > 24 hours
772
+
773
+ **Monitoring Setup:**
774
+
775
+ ```yaml
776
+ # Example: GitLab CI monitoring job
777
+ monitor:mirror:
778
+ stage: .post
779
+ script:
780
+ - |
781
+ # Check last mirror job status
782
+ LAST_STATUS=$(curl -sS "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs?scope=success&per_page=1" \
783
+ -H "PRIVATE-TOKEN: ${GITLAB_TOKEN}" | jq -r '.[0].status')
784
+
785
+ if [ "$LAST_STATUS" != "success" ]; then
786
+ echo "⚠️ Last mirror job failed"
787
+ # Send alert to monitoring system
788
+ fi
789
+ rules:
790
+ - if: $CI_PIPELINE_SOURCE == "schedule"
791
+ allow_failure: true
792
+ ```
793
+
794
+ ### Updates and Changes
795
+
796
+ **When to Update Mirror Configuration:**
797
+
798
+ 1. **Repository Rename**
799
+ - Update GitHub repository URL in `.gitlab-ci.yml`
800
+ - Update documentation references
801
+
802
+ 2. **Organization Change**
803
+ - Update GitHub organization in mirror URL
804
+ - Regenerate token for new organization
805
+
806
+ 3. **Branch Strategy Change**
807
+ - Update mirror job rules to include/exclude branches
808
+ - Update branch protection rules
809
+
810
+ 4. **Token Permissions Change**
811
+ - Regenerate token with new permissions
812
+ - Update GitLab variable
813
+ - Test mirror job
814
+
815
+ **Change Process:**
816
+
817
+ 1. **Test in development:**
818
+ - Create test repository on GitHub
819
+ - Update mirror URL to test repo
820
+ - Verify mirror works
821
+
822
+ 2. **Update production:**
823
+ - Update `.gitlab-ci.yml` with new configuration
824
+ - Create merge request
825
+ - Review and approve
826
+ - Merge to main
827
+
828
+ 3. **Verify:**
829
+ - Check mirror job succeeds
830
+ - Verify GitHub repository updated
831
+ - Monitor for 24 hours
832
+
833
+ ---
834
+
835
+ ## Security Considerations
836
+
837
+ ### Token Security
838
+
839
+ **Best Practices:**
840
+
841
+ 1. **Use Dedicated Service Account**
842
+ - Create GitHub bot account (e.g., `ossa-mirror-bot`)
843
+ - Use bot account token for mirroring
844
+ - Limit bot account permissions to minimum required
845
+
846
+ 2. **Token Storage**
847
+ - ✅ Store in GitLab CI/CD variables (masked)
848
+ - ✅ Enable "Protected" flag for production
849
+ - ❌ Never commit to repository
850
+ - ❌ Never log token value
851
+ - ❌ Never share via insecure channels
852
+
853
+ 3. **Token Permissions**
854
+ - Use minimum required scopes (`repo`, `workflow`)
855
+ - Avoid admin or org-level permissions
856
+ - Use fine-grained tokens when available
857
+
858
+ 4. **Token Rotation**
859
+ - Rotate every 90 days minimum
860
+ - Rotate immediately if compromised
861
+ - Document rotation in security runbook
862
+
863
+ ### Access Control
864
+
865
+ **GitLab:**
866
+ - Limit who can edit CI/CD variables (Maintainer role)
867
+ - Protect main and develop branches
868
+ - Require merge request approvals
869
+ - Enable merge trains
870
+
871
+ **GitHub:**
872
+ - Restrict force push to CI service account only
873
+ - Enable branch protection on main
874
+ - Require status checks before merge
875
+ - Enable signed commits
876
+
877
+ ### Audit Logging
878
+
879
+ **GitLab:**
880
+ - Monitor CI/CD job logs for mirror activity
881
+ - Track variable changes in audit log
882
+ - Alert on failed mirror jobs
883
+
884
+ **GitHub:**
885
+ - Enable audit log for repository
886
+ - Monitor force push events
887
+ - Track token usage
888
+
889
+ **Retention:**
890
+ - Keep CI/CD logs for 90 days minimum
891
+ - Archive audit logs for 1 year
892
+ - Comply with organizational retention policies
893
+
894
+ ---
895
+
896
+ ## Related Documentation
897
+
898
+ - **GitLab CI/CD Pipeline**: `.gitlab-ci.yml` (lines 1089-1109)
899
+ - **GitHub Workflows**: `.github/workflows/`
900
+ - **Release Process**: `.gitlab/docs/releases/`
901
+ - **Infrastructure Documentation**: `.gitlab/docs/infrastructure/`
902
+ - **Website Deployment**: `website/README.md`
903
+
904
+ ---
905
+
906
+ ## Support
907
+
908
+ **Issues:**
909
+ - GitLab: https://gitlab.com/blueflyio/openstandardagents/-/issues
910
+ - GitHub: https://github.com/blueflyio/openstandardagents/issues
911
+
912
+ **Documentation:**
913
+ - Website: https://openstandardagents.org
914
+ - GitLab Wiki: https://gitlab.com/blueflyio/openstandardagents/-/wikis/home
915
+
916
+ **Contact:**
917
+ - Email: support@bluefly.io
918
+ - GitLab: @bluefly
919
+
920
+ ---
921
+
922
+ **Version**: 1.0.0
923
+ **Last Updated**: 2025-11-25
924
+ **Maintained By**: OSSA Platform Team