@bluefly/openstandardagents 0.3.1 → 0.3.2

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 (338) hide show
  1. package/.devfile.yaml +87 -0
  2. package/.gitlab-ci-trigger +1 -0
  3. package/.wiki-config.json +24 -0
  4. package/CHANGELOG.md +212 -1
  5. package/README.md +31 -56
  6. package/dist/adapters/anthropic/runtime.js +2 -2
  7. package/dist/adapters/anthropic/runtime.js.map +1 -1
  8. package/dist/bot/architecture-validator-bot.d.ts +8 -0
  9. package/dist/bot/architecture-validator-bot.d.ts.map +1 -0
  10. package/dist/bot/architecture-validator-bot.js +15 -0
  11. package/dist/bot/architecture-validator-bot.js.map +1 -0
  12. package/dist/bot/ci-pipeline-bot.d.ts +7 -0
  13. package/dist/bot/ci-pipeline-bot.d.ts.map +1 -0
  14. package/dist/bot/ci-pipeline-bot.js +7 -0
  15. package/dist/bot/ci-pipeline-bot.js.map +1 -0
  16. package/dist/bot/compliance-bot.d.ts +56 -0
  17. package/dist/bot/compliance-bot.d.ts.map +1 -0
  18. package/dist/bot/compliance-bot.js +203 -0
  19. package/dist/bot/compliance-bot.js.map +1 -0
  20. package/dist/bot/dependency-updater-bot.d.ts +9 -0
  21. package/dist/bot/dependency-updater-bot.d.ts.map +1 -0
  22. package/dist/bot/dependency-updater-bot.js +9 -0
  23. package/dist/bot/dependency-updater-bot.js.map +1 -0
  24. package/dist/bot/security-scanner-bot.d.ts +11 -0
  25. package/dist/bot/security-scanner-bot.d.ts.map +1 -0
  26. package/dist/bot/security-scanner-bot.js +21 -0
  27. package/dist/bot/security-scanner-bot.js.map +1 -0
  28. package/dist/cli/commands/agent-card.command.d.ts +11 -0
  29. package/dist/cli/commands/agent-card.command.d.ts.map +1 -0
  30. package/dist/cli/commands/agent-card.command.js +285 -0
  31. package/dist/cli/commands/agent-card.command.js.map +1 -0
  32. package/dist/cli/commands/agents.command.d.ts +11 -0
  33. package/dist/cli/commands/agents.command.d.ts.map +1 -0
  34. package/dist/cli/commands/agents.command.js +326 -0
  35. package/dist/cli/commands/agents.command.js.map +1 -0
  36. package/dist/cli/commands/generate.command.d.ts +13 -2
  37. package/dist/cli/commands/generate.command.d.ts.map +1 -1
  38. package/dist/cli/commands/generate.command.js +204 -29
  39. package/dist/cli/commands/generate.command.js.map +1 -1
  40. package/dist/cli/commands/registry.command.d.ts +14 -0
  41. package/dist/cli/commands/registry.command.d.ts.map +1 -0
  42. package/dist/cli/commands/registry.command.js +428 -0
  43. package/dist/cli/commands/registry.command.js.map +1 -0
  44. package/dist/cli/commands/workspace.command.d.ts +14 -0
  45. package/dist/cli/commands/workspace.command.d.ts.map +1 -0
  46. package/dist/cli/commands/workspace.command.js +467 -0
  47. package/dist/cli/commands/workspace.command.js.map +1 -0
  48. package/dist/cli/index.js +9 -0
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/di-container.d.ts.map +1 -1
  51. package/dist/di-container.js +20 -0
  52. package/dist/di-container.js.map +1 -1
  53. package/dist/services/codegen/codegen.service.d.ts +75 -0
  54. package/dist/services/codegen/codegen.service.d.ts.map +1 -0
  55. package/dist/services/codegen/codegen.service.js +136 -0
  56. package/dist/services/codegen/codegen.service.js.map +1 -0
  57. package/dist/services/codegen/generators/manifest.generator.d.ts +41 -0
  58. package/dist/services/codegen/generators/manifest.generator.d.ts.map +1 -0
  59. package/dist/services/codegen/generators/manifest.generator.js +178 -0
  60. package/dist/services/codegen/generators/manifest.generator.js.map +1 -0
  61. package/dist/services/codegen/generators/openapi.generator.d.ts +46 -0
  62. package/dist/services/codegen/generators/openapi.generator.d.ts.map +1 -0
  63. package/dist/services/codegen/generators/openapi.generator.js +157 -0
  64. package/dist/services/codegen/generators/openapi.generator.js.map +1 -0
  65. package/dist/services/codegen/generators/types.generator.d.ts +27 -0
  66. package/dist/services/codegen/generators/types.generator.d.ts.map +1 -0
  67. package/dist/services/codegen/generators/types.generator.js +97 -0
  68. package/dist/services/codegen/generators/types.generator.js.map +1 -0
  69. package/dist/services/codegen/generators/vscode.generator.d.ts +43 -0
  70. package/dist/services/codegen/generators/vscode.generator.d.ts.map +1 -0
  71. package/dist/services/codegen/generators/vscode.generator.js +163 -0
  72. package/dist/services/codegen/generators/vscode.generator.js.map +1 -0
  73. package/dist/services/codegen/generators/zod.generator.d.ts +31 -0
  74. package/dist/services/codegen/generators/zod.generator.d.ts.map +1 -0
  75. package/dist/services/codegen/generators/zod.generator.js +134 -0
  76. package/dist/services/codegen/generators/zod.generator.js.map +1 -0
  77. package/dist/services/codegen/index.d.ts +33 -0
  78. package/dist/services/codegen/index.d.ts.map +1 -0
  79. package/dist/services/codegen/index.js +36 -0
  80. package/dist/services/codegen/index.js.map +1 -0
  81. package/dist/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
  82. package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
  83. package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
  84. package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
  85. package/dist/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
  86. package/dist/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
  87. package/dist/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +1 -1
  88. package/dist/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +1 -1
  89. package/dist/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
  90. package/dist/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
  91. package/dist/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
  92. package/dist/spec/v0.3.1/ossa-0.3.1.schema.json +300 -21
  93. package/dist/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
  94. package/dist/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
  95. package/dist/spec/v0.3.2/access_tiers.yaml +375 -0
  96. package/dist/spec/v0.3.2/adapters/drupal.md +541 -0
  97. package/dist/spec/v0.3.2/adapters/symfony.md +659 -0
  98. package/dist/spec/v0.3.2/agent-test.schema.json +75 -0
  99. package/dist/spec/v0.3.2/examples/access-tiers/README.md +106 -0
  100. package/dist/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
  101. package/dist/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
  102. package/dist/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
  103. package/dist/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
  104. package/dist/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
  105. package/dist/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
  106. package/dist/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
  107. package/dist/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  108. package/dist/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
  109. package/dist/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  110. package/dist/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
  111. package/dist/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
  112. package/dist/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
  113. package/dist/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
  114. package/dist/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
  115. package/dist/spec/v0.3.2/extensions/drupal.md +417 -0
  116. package/dist/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
  117. package/dist/spec/{v0.3.1/ossa-0.3.0.schema.json → v0.3.2/ossa-0.3.2.schema.json} +563 -34
  118. package/dist/spec/v0.3.2/protocols/delegation.yaml +239 -0
  119. package/dist/spec/v0.3.2/protocols/sse.md +494 -0
  120. package/dist/spec/v0.3.2/protocols/webrtc.md +600 -0
  121. package/dist/spec/v0.3.2/protocols/websocket.md +362 -0
  122. package/dist/spec/v0.3.2/runtime/RUNTIME.md +457 -0
  123. package/dist/spec/v0.3.2/runtime/memory-model.yaml +871 -0
  124. package/dist/spec/v0.3.2/runtime/runtime.yaml +926 -0
  125. package/dist/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
  126. package/dist/spec/v0.3.2/schemas/capabilities.yaml +102 -0
  127. package/dist/spec/v0.3.2/schemas/functions.yaml +75 -0
  128. package/dist/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
  129. package/dist/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
  130. package/dist/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
  131. package/dist/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
  132. package/dist/spec/v0.3.2/schemas/runtime.yaml +102 -0
  133. package/dist/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
  134. package/dist/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
  135. package/dist/spec/v0.3.2/taxonomy.yaml +363 -0
  136. package/dist/types/generated/ossa-0.3.2.types.d.ts +367 -0
  137. package/dist/types/generated/ossa-0.3.2.types.d.ts.map +1 -0
  138. package/dist/types/generated/ossa-0.3.2.types.js +10 -0
  139. package/dist/types/generated/ossa-0.3.2.types.js.map +1 -0
  140. package/dist/types/generated/ossa-0.3.2.zod.d.ts +36 -0
  141. package/dist/types/generated/ossa-0.3.2.zod.d.ts.map +1 -0
  142. package/dist/types/generated/ossa-0.3.2.zod.js +25 -0
  143. package/dist/types/generated/ossa-0.3.2.zod.js.map +1 -0
  144. package/examples/adapters/drupal-eca-mapping.yaml +1 -1
  145. package/examples/adapters/drupal-eca-task.yaml +1 -1
  146. package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
  147. package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
  148. package/examples/adapters/mistral-agent.yaml +1 -1
  149. package/examples/adapters/symfony-messenger-task.yaml +1 -1
  150. package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
  151. package/examples/adk-integration/code-review-workflow.yml +1 -1
  152. package/examples/adk-integration/customer-support.yml +1 -1
  153. package/examples/adk-integration/data-pipeline.yml +1 -1
  154. package/examples/advanced/reasoning-agent.yaml +1 -1
  155. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  156. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  157. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  158. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  159. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  160. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  161. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  162. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  163. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  164. package/examples/agents/architecture-healer-enterprise.yaml +1 -1
  165. package/examples/agents/dependency-healer-npm.yaml +1 -1
  166. package/examples/agents/spec-healer-openapi.yaml +1 -1
  167. package/examples/agents/wiki-healer-production.yaml +1 -1
  168. package/examples/agents-md/code-agent.ossa.json +36 -11
  169. package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
  170. package/examples/anthropic/claude-assistant.ossa.json +4 -4
  171. package/examples/autogen/multi-agent.ossa.json +2 -2
  172. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
  173. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  174. package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
  175. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  176. package/examples/contracts/data-consumer.ossa.yaml +1 -1
  177. package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
  178. package/examples/contracts/data-producer.ossa.yaml +1 -1
  179. package/examples/crewai/research-team.ossa.json +2 -2
  180. package/examples/cursor/code-review-agent.ossa.json +2 -2
  181. package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +1 -1
  182. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  183. package/examples/extensions/agents-md-advanced.yml +1 -1
  184. package/examples/extensions/agents-md-basic.yml +1 -1
  185. package/examples/extensions/agents-md-sync.yml +1 -1
  186. package/examples/extensions/agents-md-v1.yml +1 -1
  187. package/examples/extensions/drupal-v1.yml +1 -1
  188. package/examples/extensions/encryption-multi-provider.yaml +4 -4
  189. package/examples/extensions/kagent-v1.yml +1 -1
  190. package/examples/extensions/knowledge-sources.yaml +1 -1
  191. package/examples/extensions/mcp-full-featured.yaml +1 -1
  192. package/examples/getting-started/01-minimal-agent.ossa.yaml +3 -3
  193. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  194. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  195. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +2 -2
  196. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  197. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  198. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  199. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  200. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  201. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  202. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  203. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  204. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  205. package/examples/langchain/chain-agent.ossa.json +2 -2
  206. package/examples/langflow/workflow-agent.ossa.json +2 -2
  207. package/examples/langgraph/state-machine-agent.ossa.json +2 -2
  208. package/examples/llamaindex/rag-agent.ossa.json +2 -2
  209. package/examples/messaging/dependency-healer.ossa.yaml +1 -1
  210. package/examples/messaging/incident-responder.ossa.yaml +1 -1
  211. package/examples/messaging/routing-rules.ossa.yaml +3 -3
  212. package/examples/messaging/security-scanner.ossa.yaml +1 -1
  213. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  214. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  215. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  216. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  217. package/examples/observability/activity-stream-full.yaml +1 -1
  218. package/examples/openai/basic-agent.ossa.yaml +1 -1
  219. package/examples/openai/multi-tool-agent.ossa.json +2 -2
  220. package/examples/openai/swarm-agent.ossa.json +2 -2
  221. package/examples/production/document-analyzer-openai.yml +1 -1
  222. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  223. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
  224. package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
  225. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
  226. package/examples/schema/reusable-components.yaml +1 -1
  227. package/examples/showcase/ci-pipeline.ossa.yaml +59 -0
  228. package/examples/showcase/code-assistant.ossa.yaml +118 -0
  229. package/examples/showcase/code-reviewer.ossa.yaml +61 -0
  230. package/examples/showcase/compliance-validator.ossa.yaml +62 -0
  231. package/examples/showcase/content-writer.ossa.yaml +67 -0
  232. package/examples/showcase/data-transformer.ossa.yaml +78 -0
  233. package/examples/showcase/doc-generator.ossa.yaml +68 -0
  234. package/examples/showcase/security-scanner.ossa.yaml +65 -0
  235. package/examples/showcase/test-generator.ossa.yaml +63 -0
  236. package/examples/showcase/workflow-orchestrator.ossa.yaml +129 -0
  237. package/examples/tasks/batch-email-sender.yaml +1 -1
  238. package/examples/tasks/data-transform.yaml +1 -1
  239. package/examples/tasks/publish-content.yaml +1 -1
  240. package/examples/templates/ossa-compliance.yaml +1 -1
  241. package/examples/unified/security-scanner.ossa.yaml +1 -1
  242. package/examples/vercel/edge-agent.ossa.json +2 -2
  243. package/examples/workflows/batch-email-campaign.yaml +1 -1
  244. package/examples/workflows/content-review-publish.yaml +1 -1
  245. package/examples/workflows/simple-etl.yaml +1 -1
  246. package/llms-ctx-full.txt +39 -0
  247. package/llms-ctx.txt +39 -0
  248. package/openapi/agent-communication.yaml +1 -1
  249. package/openapi/agent-crud.yaml +8 -8
  250. package/openapi/agent-discovery.yaml +2 -2
  251. package/openapi/agent-identity.yaml +8 -8
  252. package/openapi/cli-commands.openapi.yaml +231 -0
  253. package/openapi/core/ossa-core-api.openapi.yaml +1 -1
  254. package/openapi/core/ossa-registry-api.openapi.yaml +1 -1
  255. package/openapi/core/ossa-registry.openapi.yaml +1 -1
  256. package/openapi/core/unified-agent-gateway.openapi.yaml +1 -1
  257. package/openapi/github-sync.yaml +1 -1
  258. package/openapi/protocols/sse-streams.yaml +1 -1
  259. package/openapi/protocols/websocket-events.yaml +2 -2
  260. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +2 -2
  261. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +1 -1
  262. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +1 -1
  263. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +2 -2
  264. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +2 -2
  265. package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +1 -1
  266. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +1 -1
  267. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +2 -2
  268. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +1 -1
  269. package/openapi/reference-implementations/helm-generator.openapi.yaml +1 -1
  270. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +1 -1
  271. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +1 -1
  272. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +2 -2
  273. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +1 -1
  274. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +2 -2
  275. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +1 -1
  276. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +2 -2
  277. package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +1 -1
  278. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +2 -2
  279. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +1 -1
  280. package/package.json +13 -3
  281. package/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
  282. package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
  283. package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
  284. package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
  285. package/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
  286. package/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
  287. package/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +1 -1
  288. package/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +1 -1
  289. package/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
  290. package/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
  291. package/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
  292. package/spec/v0.3.1/ossa-0.3.1.schema.json +300 -21
  293. package/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
  294. package/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
  295. package/spec/v0.3.2/access_tiers.yaml +375 -0
  296. package/spec/v0.3.2/adapters/drupal.md +541 -0
  297. package/spec/v0.3.2/adapters/symfony.md +659 -0
  298. package/spec/v0.3.2/agent-test.schema.json +75 -0
  299. package/spec/v0.3.2/examples/access-tiers/README.md +106 -0
  300. package/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
  301. package/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
  302. package/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
  303. package/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
  304. package/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
  305. package/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
  306. package/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
  307. package/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  308. package/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
  309. package/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  310. package/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
  311. package/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
  312. package/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
  313. package/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
  314. package/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
  315. package/spec/v0.3.2/extensions/drupal.md +417 -0
  316. package/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
  317. package/spec/{v0.3.1/ossa-0.3.0.schema.json → v0.3.2/ossa-0.3.2.schema.json} +563 -34
  318. package/spec/v0.3.2/protocols/delegation.yaml +239 -0
  319. package/spec/v0.3.2/protocols/sse.md +494 -0
  320. package/spec/v0.3.2/protocols/webrtc.md +600 -0
  321. package/spec/v0.3.2/protocols/websocket.md +362 -0
  322. package/spec/v0.3.2/runtime/RUNTIME.md +457 -0
  323. package/spec/v0.3.2/runtime/memory-model.yaml +871 -0
  324. package/spec/v0.3.2/runtime/runtime.yaml +926 -0
  325. package/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
  326. package/spec/v0.3.2/schemas/capabilities.yaml +102 -0
  327. package/spec/v0.3.2/schemas/functions.yaml +75 -0
  328. package/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
  329. package/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
  330. package/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
  331. package/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
  332. package/spec/v0.3.2/schemas/runtime.yaml +102 -0
  333. package/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
  334. package/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
  335. package/spec/v0.3.2/taxonomy.yaml +363 -0
  336. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +0 -60
  337. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +0 -68
  338. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +0 -106
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Codegen Service - CI-Based Schema/Version Generation
3
+ *
4
+ * CRUD Operations:
5
+ * - generate: Create/update generated files
6
+ * - list: Show what would be generated
7
+ * - validate: Check for version drift
8
+ * - sync: Update all files to current version
9
+ *
10
+ * Single Source of Truth: package.json version
11
+ *
12
+ * @see src/utils/version.ts for getVersion(), getApiVersion()
13
+ */
14
+ import { ManifestGenerator } from './generators/manifest.generator.js';
15
+ import { VSCodeGenerator } from './generators/vscode.generator.js';
16
+ import { OpenAPIGenerator } from './generators/openapi.generator.js';
17
+ import { TypesGenerator } from './generators/types.generator.js';
18
+ import { ZodGenerator } from './generators/zod.generator.js';
19
+ export interface GenerateResult {
20
+ generator: string;
21
+ filesUpdated: number;
22
+ filesCreated: number;
23
+ errors: string[];
24
+ }
25
+ export interface DriftReport {
26
+ hasDrift: boolean;
27
+ currentVersion: string;
28
+ filesWithOldVersion: Array<{
29
+ path: string;
30
+ foundVersion: string;
31
+ }>;
32
+ }
33
+ export type GeneratorType = 'types' | 'zod' | 'manifests' | 'vscode' | 'openapi' | 'all';
34
+ export declare class CodegenService {
35
+ private manifestGenerator;
36
+ private vscodeGenerator;
37
+ private openapiGenerator;
38
+ private typesGenerator;
39
+ private zodGenerator;
40
+ constructor(manifestGenerator: ManifestGenerator, vscodeGenerator: VSCodeGenerator, openapiGenerator: OpenAPIGenerator, typesGenerator: TypesGenerator, zodGenerator: ZodGenerator);
41
+ /**
42
+ * Get current version info
43
+ */
44
+ getVersionInfo(): {
45
+ version: string;
46
+ apiVersion: string;
47
+ };
48
+ /**
49
+ * CRUD: CREATE/UPDATE - Generate files
50
+ */
51
+ generate(type: GeneratorType, dryRun?: boolean): Promise<GenerateResult[]>;
52
+ /**
53
+ * CRUD: READ - List files that would be generated
54
+ */
55
+ list(type: GeneratorType): Promise<string[]>;
56
+ /**
57
+ * CRUD: VALIDATE - Check for version drift
58
+ */
59
+ validate(): Promise<DriftReport>;
60
+ /**
61
+ * CRUD: UPDATE - Sync all files to current version
62
+ */
63
+ sync(dryRun?: boolean): Promise<GenerateResult[]>;
64
+ private getGenerators;
65
+ }
66
+ /**
67
+ * Base interface for all generators
68
+ */
69
+ export interface Generator {
70
+ name: string;
71
+ generate(dryRun: boolean): Promise<GenerateResult>;
72
+ listTargetFiles(): Promise<string[]>;
73
+ checkDrift(version: string, apiVersion: string): Promise<DriftReport['filesWithOldVersion']>;
74
+ }
75
+ //# sourceMappingURL=codegen.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.service.d.ts","sourceRoot":"","sources":["../../../src/services/codegen/codegen.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,KAAK,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzF,qBACa,cAAc;IAEI,OAAO,CAAC,iBAAiB;IAC3B,OAAO,CAAC,eAAe;IACtB,OAAO,CAAC,gBAAgB;IAC1B,OAAO,CAAC,cAAc;IACxB,OAAO,CAAC,YAAY;gBAJP,iBAAiB,EAAE,iBAAiB,EACtC,eAAe,EAAE,eAAe,EAC/B,gBAAgB,EAAE,gBAAgB,EACpC,cAAc,EAAE,cAAc,EAChC,YAAY,EAAE,YAAY;IAG1D;;OAEG;IACH,cAAc,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAOzD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAY9E;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYlD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAmBtC;;OAEG;IACG,IAAI,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIrD,OAAO,CAAC,aAAa;CAoBtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACnD,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;CAC9F"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Codegen Service - CI-Based Schema/Version Generation
3
+ *
4
+ * CRUD Operations:
5
+ * - generate: Create/update generated files
6
+ * - list: Show what would be generated
7
+ * - validate: Check for version drift
8
+ * - sync: Update all files to current version
9
+ *
10
+ * Single Source of Truth: package.json version
11
+ *
12
+ * @see src/utils/version.ts for getVersion(), getApiVersion()
13
+ */
14
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ };
20
+ var __metadata = (this && this.__metadata) || function (k, v) {
21
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
+ };
23
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
24
+ return function (target, key) { decorator(target, key, paramIndex); }
25
+ };
26
+ import { injectable, inject } from 'inversify';
27
+ import { getVersion, getApiVersion } from '../../utils/version.js';
28
+ import { ManifestGenerator } from './generators/manifest.generator.js';
29
+ import { VSCodeGenerator } from './generators/vscode.generator.js';
30
+ import { OpenAPIGenerator } from './generators/openapi.generator.js';
31
+ import { TypesGenerator } from './generators/types.generator.js';
32
+ import { ZodGenerator } from './generators/zod.generator.js';
33
+ let CodegenService = class CodegenService {
34
+ manifestGenerator;
35
+ vscodeGenerator;
36
+ openapiGenerator;
37
+ typesGenerator;
38
+ zodGenerator;
39
+ constructor(manifestGenerator, vscodeGenerator, openapiGenerator, typesGenerator, zodGenerator) {
40
+ this.manifestGenerator = manifestGenerator;
41
+ this.vscodeGenerator = vscodeGenerator;
42
+ this.openapiGenerator = openapiGenerator;
43
+ this.typesGenerator = typesGenerator;
44
+ this.zodGenerator = zodGenerator;
45
+ }
46
+ /**
47
+ * Get current version info
48
+ */
49
+ getVersionInfo() {
50
+ return {
51
+ version: getVersion(),
52
+ apiVersion: getApiVersion(),
53
+ };
54
+ }
55
+ /**
56
+ * CRUD: CREATE/UPDATE - Generate files
57
+ */
58
+ async generate(type, dryRun = false) {
59
+ const results = [];
60
+ const generators = this.getGenerators(type);
61
+ for (const gen of generators) {
62
+ const result = await gen.generate(dryRun);
63
+ results.push(result);
64
+ }
65
+ return results;
66
+ }
67
+ /**
68
+ * CRUD: READ - List files that would be generated
69
+ */
70
+ async list(type) {
71
+ const generators = this.getGenerators(type);
72
+ const files = [];
73
+ for (const gen of generators) {
74
+ const genFiles = await gen.listTargetFiles();
75
+ files.push(...genFiles);
76
+ }
77
+ return files;
78
+ }
79
+ /**
80
+ * CRUD: VALIDATE - Check for version drift
81
+ */
82
+ async validate() {
83
+ const currentVersion = getVersion();
84
+ const apiVersion = getApiVersion();
85
+ const filesWithOldVersion = [];
86
+ // Check all generators for drift
87
+ const generators = this.getGenerators('all');
88
+ for (const gen of generators) {
89
+ const drift = await gen.checkDrift(currentVersion, apiVersion);
90
+ filesWithOldVersion.push(...drift);
91
+ }
92
+ return {
93
+ hasDrift: filesWithOldVersion.length > 0,
94
+ currentVersion,
95
+ filesWithOldVersion,
96
+ };
97
+ }
98
+ /**
99
+ * CRUD: UPDATE - Sync all files to current version
100
+ */
101
+ async sync(dryRun = false) {
102
+ return this.generate('all', dryRun);
103
+ }
104
+ getGenerators(type) {
105
+ const generatorMap = {
106
+ types: this.typesGenerator,
107
+ zod: this.zodGenerator,
108
+ manifests: this.manifestGenerator,
109
+ vscode: this.vscodeGenerator,
110
+ openapi: this.openapiGenerator,
111
+ };
112
+ if (type === 'all') {
113
+ return Object.values(generatorMap);
114
+ }
115
+ const generator = generatorMap[type];
116
+ if (!generator) {
117
+ throw new Error(`Unknown generator type: ${type}`);
118
+ }
119
+ return [generator];
120
+ }
121
+ };
122
+ CodegenService = __decorate([
123
+ injectable(),
124
+ __param(0, inject(ManifestGenerator)),
125
+ __param(1, inject(VSCodeGenerator)),
126
+ __param(2, inject(OpenAPIGenerator)),
127
+ __param(3, inject(TypesGenerator)),
128
+ __param(4, inject(ZodGenerator)),
129
+ __metadata("design:paramtypes", [ManifestGenerator,
130
+ VSCodeGenerator,
131
+ OpenAPIGenerator,
132
+ TypesGenerator,
133
+ ZodGenerator])
134
+ ], CodegenService);
135
+ export { CodegenService };
136
+ //# sourceMappingURL=codegen.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.service.js","sourceRoot":"","sources":["../../../src/services/codegen/codegen.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Manifest Generator - Update apiVersion in all OSSA manifests
3
+ *
4
+ * Fixes 161+ .ossa.yaml files with hardcoded versions.
5
+ * Uses single source of truth: package.json version
6
+ */
7
+ import type { Generator, GenerateResult, DriftReport } from '../codegen.service.js';
8
+ export declare class ManifestGenerator implements Generator {
9
+ name: string;
10
+ private readonly patterns;
11
+ private readonly excludePatterns;
12
+ /**
13
+ * Generate: Update apiVersion in all manifests
14
+ */
15
+ generate(dryRun: boolean): Promise<GenerateResult>;
16
+ /**
17
+ * List all manifest files
18
+ */
19
+ listTargetFiles(): Promise<string[]>;
20
+ /**
21
+ * Check for version drift in manifests
22
+ */
23
+ checkDrift(version: string, apiVersion: string): Promise<DriftReport['filesWithOldVersion']>;
24
+ /**
25
+ * Update a single manifest file
26
+ */
27
+ private updateManifest;
28
+ /**
29
+ * Update YAML manifest apiVersion
30
+ */
31
+ private updateYamlManifest;
32
+ /**
33
+ * Update JSON manifest apiVersion
34
+ */
35
+ private updateJsonManifest;
36
+ /**
37
+ * Extract apiVersion from file content
38
+ */
39
+ private extractApiVersion;
40
+ }
41
+ //# sourceMappingURL=manifest.generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.generator.d.ts","sourceRoot":"","sources":["../../../../src/services/codegen/generators/manifest.generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpF,qBACa,iBAAkB,YAAW,SAAS;IACjD,IAAI,SAAe;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAIvB;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEF;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBxD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAuBlG;;OAEG;YACW,cAAc;IA4B5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAgB1B"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Manifest Generator - Update apiVersion in all OSSA manifests
3
+ *
4
+ * Fixes 161+ .ossa.yaml files with hardcoded versions.
5
+ * Uses single source of truth: package.json version
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ import { injectable } from 'inversify';
14
+ import * as fs from 'fs';
15
+ import * as path from 'path';
16
+ import { glob } from 'glob';
17
+ import { getApiVersion } from '../../../utils/version.js';
18
+ let ManifestGenerator = class ManifestGenerator {
19
+ name = 'manifests';
20
+ patterns = [
21
+ '**/*.ossa.yaml',
22
+ '**/*.ossa.yml',
23
+ '**/*.ossa.json',
24
+ ];
25
+ excludePatterns = [
26
+ 'node_modules/**',
27
+ 'dist/**',
28
+ '.git/**',
29
+ '**/*.template.*',
30
+ ];
31
+ /**
32
+ * Generate: Update apiVersion in all manifests
33
+ */
34
+ async generate(dryRun) {
35
+ const result = {
36
+ generator: this.name,
37
+ filesUpdated: 0,
38
+ filesCreated: 0,
39
+ errors: [],
40
+ };
41
+ const files = await this.listTargetFiles();
42
+ const targetApiVersion = getApiVersion();
43
+ for (const file of files) {
44
+ try {
45
+ const updated = await this.updateManifest(file, targetApiVersion, dryRun);
46
+ if (updated) {
47
+ result.filesUpdated++;
48
+ }
49
+ }
50
+ catch (error) {
51
+ result.errors.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);
52
+ }
53
+ }
54
+ return result;
55
+ }
56
+ /**
57
+ * List all manifest files
58
+ */
59
+ async listTargetFiles() {
60
+ const allFiles = [];
61
+ for (const pattern of this.patterns) {
62
+ const files = await glob(pattern, {
63
+ ignore: this.excludePatterns,
64
+ cwd: process.cwd(),
65
+ absolute: true,
66
+ });
67
+ allFiles.push(...files);
68
+ }
69
+ return [...new Set(allFiles)].sort();
70
+ }
71
+ /**
72
+ * Check for version drift in manifests
73
+ */
74
+ async checkDrift(version, apiVersion) {
75
+ const drift = [];
76
+ const files = await this.listTargetFiles();
77
+ for (const file of files) {
78
+ try {
79
+ const content = fs.readFileSync(file, 'utf8');
80
+ const foundVersion = this.extractApiVersion(content, file);
81
+ if (foundVersion && foundVersion !== apiVersion) {
82
+ drift.push({
83
+ path: path.relative(process.cwd(), file),
84
+ foundVersion,
85
+ });
86
+ }
87
+ }
88
+ catch {
89
+ // Skip files that can't be read
90
+ }
91
+ }
92
+ return drift;
93
+ }
94
+ /**
95
+ * Update a single manifest file
96
+ */
97
+ async updateManifest(filePath, targetApiVersion, dryRun) {
98
+ const content = fs.readFileSync(filePath, 'utf8');
99
+ const ext = path.extname(filePath).toLowerCase();
100
+ let updated;
101
+ let changed = false;
102
+ if (ext === '.json') {
103
+ const result = this.updateJsonManifest(content, targetApiVersion);
104
+ updated = result.content;
105
+ changed = result.changed;
106
+ }
107
+ else {
108
+ const result = this.updateYamlManifest(content, targetApiVersion);
109
+ updated = result.content;
110
+ changed = result.changed;
111
+ }
112
+ if (changed && !dryRun) {
113
+ fs.writeFileSync(filePath, updated, 'utf8');
114
+ }
115
+ return changed;
116
+ }
117
+ /**
118
+ * Update YAML manifest apiVersion
119
+ */
120
+ updateYamlManifest(content, targetApiVersion) {
121
+ // Use regex to preserve formatting and comments
122
+ const apiVersionRegex = /^(apiVersion:\s*)ossa\/v[\d.]+(-\w+)?/m;
123
+ const match = content.match(apiVersionRegex);
124
+ if (!match) {
125
+ return { content, changed: false };
126
+ }
127
+ const currentVersion = match[0];
128
+ const targetValue = `apiVersion: ${targetApiVersion}`;
129
+ if (currentVersion === targetValue) {
130
+ return { content, changed: false };
131
+ }
132
+ const updated = content.replace(apiVersionRegex, targetValue);
133
+ return { content: updated, changed: true };
134
+ }
135
+ /**
136
+ * Update JSON manifest apiVersion
137
+ */
138
+ updateJsonManifest(content, targetApiVersion) {
139
+ try {
140
+ const json = JSON.parse(content);
141
+ if (!json.apiVersion) {
142
+ return { content, changed: false };
143
+ }
144
+ if (json.apiVersion === targetApiVersion) {
145
+ return { content, changed: false };
146
+ }
147
+ json.apiVersion = targetApiVersion;
148
+ const updated = JSON.stringify(json, null, 2) + '\n';
149
+ return { content: updated, changed: true };
150
+ }
151
+ catch {
152
+ return { content, changed: false };
153
+ }
154
+ }
155
+ /**
156
+ * Extract apiVersion from file content
157
+ */
158
+ extractApiVersion(content, filePath) {
159
+ const ext = path.extname(filePath).toLowerCase();
160
+ if (ext === '.json') {
161
+ try {
162
+ const json = JSON.parse(content);
163
+ return json.apiVersion || null;
164
+ }
165
+ catch {
166
+ return null;
167
+ }
168
+ }
169
+ // YAML - extract with regex to handle various formats
170
+ const match = content.match(/apiVersion:\s*(ossa\/v[\d.]+(-\w+)?|v[\d.]+)/);
171
+ return match ? match[1] : null;
172
+ }
173
+ };
174
+ ManifestGenerator = __decorate([
175
+ injectable()
176
+ ], ManifestGenerator);
177
+ export { ManifestGenerator };
178
+ //# sourceMappingURL=manifest.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.generator.js","sourceRoot":"","sources":["../../../../src/services/codegen/generators/manifest.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * OpenAPI Generator - Sync versions in OpenAPI specs
3
+ *
4
+ * Updates:
5
+ * - info.version in all openapi/*.yaml files
6
+ * - Schema URLs to use correct domain
7
+ *
8
+ * Domain Configuration:
9
+ * - OSSA_DOMAIN env var (default: openstandardagents.org)
10
+ * - Local dev: ossa.orb.local
11
+ */
12
+ import type { Generator, GenerateResult, DriftReport } from '../codegen.service.js';
13
+ export declare class OpenAPIGenerator implements Generator {
14
+ name: string;
15
+ private readonly patterns;
16
+ private readonly excludePatterns;
17
+ /**
18
+ * Generate: Update versions in OpenAPI specs
19
+ */
20
+ generate(dryRun: boolean): Promise<GenerateResult>;
21
+ /**
22
+ * List target files
23
+ */
24
+ listTargetFiles(): Promise<string[]>;
25
+ /**
26
+ * Check for version drift
27
+ */
28
+ checkDrift(version: string, apiVersion: string): Promise<DriftReport['filesWithOldVersion']>;
29
+ /**
30
+ * Update a single OpenAPI spec
31
+ */
32
+ private updateOpenAPISpec;
33
+ /**
34
+ * Get configured domain
35
+ */
36
+ private getDomain;
37
+ /**
38
+ * Find old OSSA version patterns (not API versions)
39
+ *
40
+ * Note: OpenAPI specs have their own info.version (e.g., 1.2.0)
41
+ * which is the API version, NOT the OSSA schema version.
42
+ * We only check for ossa/vX.X.X patterns.
43
+ */
44
+ private findOldVersions;
45
+ }
46
+ //# sourceMappingURL=openapi.generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.generator.d.ts","sourceRoot":"","sources":["../../../../src/services/codegen/generators/openapi.generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpF,qBACa,gBAAiB,YAAW,SAAS;IAChD,IAAI,SAAa;IAEjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAElE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA0BxD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAuBlG;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAuBxB"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * OpenAPI Generator - Sync versions in OpenAPI specs
3
+ *
4
+ * Updates:
5
+ * - info.version in all openapi/*.yaml files
6
+ * - Schema URLs to use correct domain
7
+ *
8
+ * Domain Configuration:
9
+ * - OSSA_DOMAIN env var (default: openstandardagents.org)
10
+ * - Local dev: ossa.orb.local
11
+ */
12
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ };
18
+ import { injectable } from 'inversify';
19
+ import * as fs from 'fs';
20
+ import * as path from 'path';
21
+ import { glob } from 'glob';
22
+ import { getVersion, getApiVersion } from '../../../utils/version.js';
23
+ // Domain configuration
24
+ const OSSA_DOMAIN = process.env.OSSA_DOMAIN || 'openstandardagents.org';
25
+ const OSSA_LOCAL_DOMAIN = 'ossa.orb.local';
26
+ let OpenAPIGenerator = class OpenAPIGenerator {
27
+ name = 'openapi';
28
+ patterns = ['openapi/**/*.yaml', 'openapi/**/*.yml'];
29
+ excludePatterns = ['node_modules/**', 'dist/**'];
30
+ /**
31
+ * Generate: Update versions in OpenAPI specs
32
+ */
33
+ async generate(dryRun) {
34
+ const result = {
35
+ generator: this.name,
36
+ filesUpdated: 0,
37
+ filesCreated: 0,
38
+ errors: [],
39
+ };
40
+ const files = await this.listTargetFiles();
41
+ const version = getVersion();
42
+ const apiVersion = getApiVersion();
43
+ for (const file of files) {
44
+ try {
45
+ const updated = await this.updateOpenAPISpec(file, version, apiVersion, dryRun);
46
+ if (updated) {
47
+ result.filesUpdated++;
48
+ }
49
+ }
50
+ catch (error) {
51
+ result.errors.push(`${file}: ${error instanceof Error ? error.message : String(error)}`);
52
+ }
53
+ }
54
+ return result;
55
+ }
56
+ /**
57
+ * List target files
58
+ */
59
+ async listTargetFiles() {
60
+ const allFiles = [];
61
+ for (const pattern of this.patterns) {
62
+ const files = await glob(pattern, {
63
+ ignore: this.excludePatterns,
64
+ cwd: process.cwd(),
65
+ absolute: true,
66
+ });
67
+ allFiles.push(...files);
68
+ }
69
+ return [...new Set(allFiles)].sort();
70
+ }
71
+ /**
72
+ * Check for version drift
73
+ */
74
+ async checkDrift(version, apiVersion) {
75
+ const drift = [];
76
+ const files = await this.listTargetFiles();
77
+ for (const file of files) {
78
+ try {
79
+ const content = fs.readFileSync(file, 'utf8');
80
+ const oldVersions = this.findOldVersions(content, version);
81
+ if (oldVersions.length > 0) {
82
+ drift.push({
83
+ path: path.relative(process.cwd(), file),
84
+ foundVersion: oldVersions[0],
85
+ });
86
+ }
87
+ }
88
+ catch {
89
+ // Skip
90
+ }
91
+ }
92
+ return drift;
93
+ }
94
+ /**
95
+ * Update a single OpenAPI spec
96
+ */
97
+ async updateOpenAPISpec(filePath, version, apiVersion, dryRun) {
98
+ const content = fs.readFileSync(filePath, 'utf8');
99
+ let updated = content;
100
+ // Update info.version
101
+ updated = updated.replace(/(info:\s*\n(?:[^\n]*\n)*?\s*version:\s*)(['"]?)[\d.]+(-[\w.]+)?(['"]?)/m, `$1$2${version}$4`);
102
+ // Update ossa/vX.X.X patterns
103
+ updated = updated.replace(/ossa\/v\d+\.\d+\.\d+/g, apiVersion);
104
+ // Update schema URLs - use configured domain
105
+ const domain = this.getDomain();
106
+ updated = updated.replace(/https?:\/\/[a-z.-]+\/schemas\/v[\d.]+/g, `https://${domain}/schemas/v${version}`);
107
+ if (updated === content) {
108
+ return false;
109
+ }
110
+ if (!dryRun) {
111
+ fs.writeFileSync(filePath, updated, 'utf8');
112
+ }
113
+ return true;
114
+ }
115
+ /**
116
+ * Get configured domain
117
+ */
118
+ getDomain() {
119
+ // Allow override via environment
120
+ if (process.env.OSSA_LOCAL === 'true') {
121
+ return OSSA_LOCAL_DOMAIN;
122
+ }
123
+ return OSSA_DOMAIN;
124
+ }
125
+ /**
126
+ * Find old OSSA version patterns (not API versions)
127
+ *
128
+ * Note: OpenAPI specs have their own info.version (e.g., 1.2.0)
129
+ * which is the API version, NOT the OSSA schema version.
130
+ * We only check for ossa/vX.X.X patterns.
131
+ */
132
+ findOldVersions(content, currentVersion) {
133
+ const versions = [];
134
+ const apiVersion = `ossa/v${currentVersion}`;
135
+ // Only find ossa/vX.X.X patterns (OSSA schema version)
136
+ const ossaVersionMatches = content.matchAll(/ossa\/v(\d+\.\d+\.\d+)/g);
137
+ for (const match of ossaVersionMatches) {
138
+ const foundVersion = `ossa/v${match[1]}`;
139
+ if (foundVersion !== apiVersion) {
140
+ versions.push(foundVersion);
141
+ }
142
+ }
143
+ // Find schema URL versions
144
+ const schemaUrlMatches = content.matchAll(/schemas\/v(\d+\.\d+\.\d+)/g);
145
+ for (const match of schemaUrlMatches) {
146
+ if (match[1] !== currentVersion) {
147
+ versions.push(`schemas/v${match[1]}`);
148
+ }
149
+ }
150
+ return [...new Set(versions)];
151
+ }
152
+ };
153
+ OpenAPIGenerator = __decorate([
154
+ injectable()
155
+ ], OpenAPIGenerator);
156
+ export { OpenAPIGenerator };
157
+ //# sourceMappingURL=openapi.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.generator.js","sourceRoot":"","sources":["../../../../src/services/codegen/generators/openapi.generator.ts"],"names":[],"mappings":"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"}