@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,362 @@
1
+ # WebSocket Transport Protocol
2
+
3
+ ## Overview
4
+
5
+ WebSocket transport enables bidirectional, real-time communication between OSSA agents over persistent connections. This specification defines how agents use WebSocket connections for agent-to-agent messaging, capability calls, and status updates.
6
+
7
+ ## Connection Lifecycle
8
+
9
+ ### Connection Establishment
10
+
11
+ ```typescript
12
+ // Client initiates connection
13
+ const ws = new WebSocket('wss://agent.example.com/ws');
14
+
15
+ // Send agent registration on connect
16
+ ws.onopen = () => {
17
+ ws.send(JSON.stringify({
18
+ type: 'register',
19
+ agentId: 'agent://example.com/my-agent',
20
+ capabilities: ['process_data', 'analyze_content'],
21
+ version: 'ossa/v0.3.1'
22
+ }));
23
+ };
24
+ ```
25
+
26
+ ### Authentication
27
+
28
+ WebSocket connections MUST authenticate using one of:
29
+
30
+ 1. **Bearer Token** - Include in initial HTTP upgrade request
31
+ 2. **Query Parameter** - For restricted environments: `?token=<jwt>`
32
+ 3. **Message-based Auth** - Send auth message after connection
33
+
34
+ ```http
35
+ GET /ws HTTP/1.1
36
+ Host: agent.example.com
37
+ Upgrade: websocket
38
+ Connection: Upgrade
39
+ Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
40
+ Sec-WebSocket-Version: 13
41
+ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
42
+ ```
43
+
44
+ ### Heartbeat/Keepalive
45
+
46
+ Agents MUST implement ping/pong to maintain connection health:
47
+
48
+ - Server sends `ping` every 30 seconds
49
+ - Client responds with `pong` within 5 seconds
50
+ - Connection closes after 3 missed pongs
51
+
52
+ ```json
53
+ // Server ping
54
+ {"type": "ping", "timestamp": "2025-12-18T14:00:00Z"}
55
+
56
+ // Client pong
57
+ {"type": "pong", "timestamp": "2025-12-18T14:00:00Z"}
58
+ ```
59
+
60
+ ## Message Format
61
+
62
+ ### Base Message Structure
63
+
64
+ ```typescript
65
+ interface WebSocketEvent {
66
+ type: 'message' | 'capability_call' | 'status_update' | 'error' | 'ack';
67
+ id: string; // Unique message ID (UUID)
68
+ timestamp: string; // ISO 8601 timestamp
69
+ payload: unknown; // Message-specific payload
70
+ metadata: {
71
+ agentId: string; // Sender agent URI
72
+ correlationId?: string; // For request/response matching
73
+ replyTo?: string; // WebSocket connection ID for responses
74
+ priority?: 'low' | 'normal' | 'high' | 'critical';
75
+ ttl?: number; // Time-to-live in seconds
76
+ };
77
+ }
78
+ ```
79
+
80
+ ### Message Types
81
+
82
+ #### 1. Message Event
83
+
84
+ Pub/sub style message broadcast:
85
+
86
+ ```json
87
+ {
88
+ "type": "message",
89
+ "id": "msg-123e4567-e89b-12d3-a456-426614174000",
90
+ "timestamp": "2025-12-18T14:00:00Z",
91
+ "payload": {
92
+ "channel": "content.published",
93
+ "data": {
94
+ "contentId": "node-123",
95
+ "title": "New Article",
96
+ "status": "published"
97
+ }
98
+ },
99
+ "metadata": {
100
+ "agentId": "agent://example.com/publisher",
101
+ "priority": "normal"
102
+ }
103
+ }
104
+ ```
105
+
106
+ #### 2. Capability Call
107
+
108
+ RPC-style capability invocation:
109
+
110
+ ```json
111
+ {
112
+ "type": "capability_call",
113
+ "id": "call-456e7890-a12b-34c5-d678-901234567890",
114
+ "timestamp": "2025-12-18T14:00:00Z",
115
+ "payload": {
116
+ "capability": "analyze_content",
117
+ "input": {
118
+ "contentId": "node-123",
119
+ "analysisType": "sentiment"
120
+ }
121
+ },
122
+ "metadata": {
123
+ "agentId": "agent://example.com/analyzer",
124
+ "correlationId": "req-789",
125
+ "replyTo": "ws-conn-abc123"
126
+ }
127
+ }
128
+ ```
129
+
130
+ #### 3. Status Update
131
+
132
+ Agent health and status broadcasts:
133
+
134
+ ```json
135
+ {
136
+ "type": "status_update",
137
+ "id": "status-901e2345-f67g-89h0-i123-456789012345",
138
+ "timestamp": "2025-12-18T14:00:00Z",
139
+ "payload": {
140
+ "status": "healthy",
141
+ "load": 0.45,
142
+ "activeConnections": 12,
143
+ "capabilities": ["process_data", "analyze_content"]
144
+ },
145
+ "metadata": {
146
+ "agentId": "agent://example.com/worker-1"
147
+ }
148
+ }
149
+ ```
150
+
151
+ #### 4. Error Event
152
+
153
+ Error notifications:
154
+
155
+ ```json
156
+ {
157
+ "type": "error",
158
+ "id": "err-234f5678-g90h-12i3-j456-789012345678",
159
+ "timestamp": "2025-12-18T14:00:00Z",
160
+ "payload": {
161
+ "code": "CAPABILITY_NOT_FOUND",
162
+ "message": "Capability 'unknown_capability' not found",
163
+ "details": {
164
+ "requestedCapability": "unknown_capability",
165
+ "availableCapabilities": ["process_data", "analyze_content"]
166
+ }
167
+ },
168
+ "metadata": {
169
+ "agentId": "agent://example.com/agent",
170
+ "correlationId": "req-789"
171
+ }
172
+ }
173
+ ```
174
+
175
+ #### 5. Acknowledgment
176
+
177
+ Message delivery confirmation:
178
+
179
+ ```json
180
+ {
181
+ "type": "ack",
182
+ "id": "ack-567g8901-h23i-45j6-k789-012345678901",
183
+ "timestamp": "2025-12-18T14:00:00Z",
184
+ "payload": {
185
+ "messageId": "msg-123e4567-e89b-12d3-a456-426614174000",
186
+ "status": "received"
187
+ },
188
+ "metadata": {
189
+ "agentId": "agent://example.com/receiver"
190
+ }
191
+ }
192
+ ```
193
+
194
+ ## Error Handling
195
+
196
+ ### Reconnection Strategy
197
+
198
+ Clients MUST implement exponential backoff for reconnection:
199
+
200
+ ```typescript
201
+ const reconnect = (attempt: number) => {
202
+ const delay = Math.min(1000 * Math.pow(2, attempt), 30000);
203
+ setTimeout(() => connectWebSocket(), delay);
204
+ };
205
+ ```
206
+
207
+ ### Connection Loss
208
+
209
+ On connection loss:
210
+
211
+ 1. Client buffers outgoing messages (up to configured limit)
212
+ 2. Client attempts reconnection with exponential backoff
213
+ 3. On reconnect, client reregisters and resends buffered messages
214
+ 4. Messages older than TTL are discarded
215
+
216
+ ### Error Codes
217
+
218
+ | Code | Description | Action |
219
+ |------|-------------|--------|
220
+ | `AUTH_FAILED` | Authentication failed | Refresh token and reconnect |
221
+ | `CAPABILITY_NOT_FOUND` | Unknown capability | Check capability registration |
222
+ | `RATE_LIMIT_EXCEEDED` | Too many messages | Implement backoff |
223
+ | `PAYLOAD_TOO_LARGE` | Message exceeds size limit | Reduce payload or use chunking |
224
+ | `PROTOCOL_ERROR` | Invalid message format | Fix message structure |
225
+
226
+ ## Message Ordering
227
+
228
+ WebSocket transport provides **ordered delivery** per connection:
229
+
230
+ - Messages sent on the same connection arrive in order
231
+ - No ordering guarantees across different connections
232
+ - Use `correlationId` for request/response matching
233
+
234
+ ## Reliability Features
235
+
236
+ ### At-Least-Once Delivery
237
+
238
+ Implement using acknowledgments:
239
+
240
+ ```typescript
241
+ // Sender waits for ACK
242
+ const sendWithAck = async (message: WebSocketEvent) => {
243
+ ws.send(JSON.stringify(message));
244
+
245
+ return new Promise((resolve, reject) => {
246
+ const timeout = setTimeout(() => {
247
+ reject(new Error('ACK timeout'));
248
+ }, 5000);
249
+
250
+ ackHandlers.set(message.id, () => {
251
+ clearTimeout(timeout);
252
+ resolve();
253
+ });
254
+ });
255
+ };
256
+ ```
257
+
258
+ ### Message Deduplication
259
+
260
+ Receivers SHOULD track message IDs to prevent duplicate processing:
261
+
262
+ ```typescript
263
+ const processedMessages = new Set<string>();
264
+
265
+ ws.onmessage = (event) => {
266
+ const message = JSON.parse(event.data);
267
+
268
+ if (processedMessages.has(message.id)) {
269
+ return; // Duplicate, skip
270
+ }
271
+
272
+ processedMessages.add(message.id);
273
+ processMessage(message);
274
+
275
+ // Send ACK
276
+ ws.send(JSON.stringify({
277
+ type: 'ack',
278
+ payload: { messageId: message.id, status: 'received' }
279
+ }));
280
+ };
281
+ ```
282
+
283
+ ## Security Considerations
284
+
285
+ 1. **TLS Required** - MUST use `wss://` in production
286
+ 2. **Token Expiry** - JWT tokens SHOULD have short expiry (15 minutes)
287
+ 3. **Rate Limiting** - Server SHOULD limit messages per connection
288
+ 4. **Message Size** - Server SHOULD enforce max message size (1MB default)
289
+ 5. **Origin Validation** - Server MUST validate `Origin` header
290
+
291
+ ## Performance Tuning
292
+
293
+ ### Message Batching
294
+
295
+ For high-throughput scenarios, batch multiple messages:
296
+
297
+ ```json
298
+ {
299
+ "type": "batch",
300
+ "messages": [
301
+ {"type": "message", "payload": {...}},
302
+ {"type": "message", "payload": {...}}
303
+ ]
304
+ }
305
+ ```
306
+
307
+ ### Compression
308
+
309
+ Enable WebSocket compression (permessage-deflate):
310
+
311
+ ```http
312
+ Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
313
+ ```
314
+
315
+ ## Examples
316
+
317
+ ### Agent-to-Agent Communication
318
+
319
+ ```typescript
320
+ // Agent A sends capability call to Agent B
321
+ ws.send(JSON.stringify({
322
+ type: 'capability_call',
323
+ id: uuid(),
324
+ timestamp: new Date().toISOString(),
325
+ payload: {
326
+ capability: 'process_data',
327
+ input: { data: [1, 2, 3] }
328
+ },
329
+ metadata: {
330
+ agentId: 'agent://example.com/agent-a',
331
+ correlationId: 'req-123',
332
+ replyTo: 'ws-conn-abc'
333
+ }
334
+ }));
335
+
336
+ // Agent B responds
337
+ ws.send(JSON.stringify({
338
+ type: 'message',
339
+ id: uuid(),
340
+ timestamp: new Date().toISOString(),
341
+ payload: {
342
+ result: { processed: true, count: 3 }
343
+ },
344
+ metadata: {
345
+ agentId: 'agent://example.com/agent-b',
346
+ correlationId: 'req-123'
347
+ }
348
+ }));
349
+ ```
350
+
351
+ ## Compatibility
352
+
353
+ - WebSocket protocol version: RFC 6455
354
+ - Minimum TLS version: 1.2
355
+ - Supported subprotocols: `ossa.v0.3.1`
356
+ - JSON payload encoding: UTF-8
357
+
358
+ ## References
359
+
360
+ - [RFC 6455 - The WebSocket Protocol](https://tools.ietf.org/html/rfc6455)
361
+ - [OSSA Message Envelope Specification](../messaging.md)
362
+ - [Agent Discovery Protocol](../discovery.md)