@bluefly/openstandardagents 0.2.8 → 0.3.0

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 (859) hide show
  1. package/CHANGELOG.md +1772 -185
  2. package/README.md +517 -161
  3. package/bin/ossa-generate +9 -16
  4. package/bin/quickstart +514 -0
  5. package/dist/adapters/anthropic/client.d.ts +144 -0
  6. package/dist/adapters/anthropic/client.d.ts.map +1 -0
  7. package/dist/adapters/anthropic/client.js +364 -0
  8. package/dist/adapters/anthropic/client.js.map +1 -0
  9. package/dist/adapters/anthropic/config.d.ts +149 -0
  10. package/dist/adapters/anthropic/config.d.ts.map +1 -0
  11. package/dist/adapters/anthropic/config.js +157 -0
  12. package/dist/adapters/anthropic/config.js.map +1 -0
  13. package/dist/adapters/anthropic/index.d.ts +40 -0
  14. package/dist/adapters/anthropic/index.d.ts.map +1 -0
  15. package/dist/adapters/anthropic/index.js +40 -0
  16. package/dist/adapters/anthropic/index.js.map +1 -0
  17. package/dist/adapters/anthropic/messages.d.ts +93 -0
  18. package/dist/adapters/anthropic/messages.d.ts.map +1 -0
  19. package/dist/adapters/anthropic/messages.js +318 -0
  20. package/dist/adapters/anthropic/messages.js.map +1 -0
  21. package/dist/adapters/anthropic/runtime.d.ts +136 -0
  22. package/dist/adapters/anthropic/runtime.d.ts.map +1 -0
  23. package/dist/adapters/anthropic/runtime.js +287 -0
  24. package/dist/adapters/anthropic/runtime.js.map +1 -0
  25. package/dist/adapters/anthropic/tools.d.ts +126 -0
  26. package/dist/adapters/anthropic/tools.d.ts.map +1 -0
  27. package/dist/adapters/anthropic/tools.js +329 -0
  28. package/dist/adapters/anthropic/tools.js.map +1 -0
  29. package/dist/adapters/crewai-adapter.d.ts +57 -0
  30. package/dist/adapters/crewai-adapter.d.ts.map +1 -0
  31. package/dist/adapters/crewai-adapter.js +164 -0
  32. package/dist/adapters/crewai-adapter.js.map +1 -0
  33. package/dist/adapters/drupal/index.d.ts +109 -0
  34. package/dist/adapters/drupal/index.d.ts.map +1 -0
  35. package/dist/adapters/drupal/index.js +292 -0
  36. package/dist/adapters/drupal/index.js.map +1 -0
  37. package/dist/adapters/langchain-adapter.d.ts +45 -0
  38. package/dist/adapters/langchain-adapter.d.ts.map +1 -0
  39. package/dist/adapters/langchain-adapter.js +133 -0
  40. package/dist/adapters/langchain-adapter.js.map +1 -0
  41. package/dist/adapters/langflow-adapter.d.ts +50 -0
  42. package/dist/adapters/langflow-adapter.d.ts.map +1 -0
  43. package/dist/adapters/langflow-adapter.js +232 -0
  44. package/dist/adapters/langflow-adapter.js.map +1 -0
  45. package/dist/adapters/openapi-adapter.d.ts +93 -0
  46. package/dist/adapters/openapi-adapter.d.ts.map +1 -0
  47. package/dist/adapters/openapi-adapter.js +311 -0
  48. package/dist/adapters/openapi-adapter.js.map +1 -0
  49. package/dist/adapters/symfony/index.d.ts +163 -0
  50. package/dist/adapters/symfony/index.d.ts.map +1 -0
  51. package/dist/adapters/symfony/index.js +271 -0
  52. package/dist/adapters/symfony/index.js.map +1 -0
  53. package/dist/cli/commands/agents-md.command.d.ts +7 -0
  54. package/dist/cli/commands/agents-md.command.d.ts.map +1 -0
  55. package/dist/cli/commands/agents-md.command.js +148 -0
  56. package/dist/cli/commands/agents-md.command.js.map +1 -0
  57. package/dist/cli/commands/contract.command.d.ts +10 -0
  58. package/dist/cli/commands/contract.command.d.ts.map +1 -0
  59. package/dist/cli/commands/contract.command.js +402 -0
  60. package/dist/cli/commands/contract.command.js.map +1 -0
  61. package/dist/cli/commands/dependencies.command.d.ts +10 -0
  62. package/dist/cli/commands/dependencies.command.d.ts.map +1 -0
  63. package/dist/cli/commands/dependencies.command.js +318 -0
  64. package/dist/cli/commands/dependencies.command.js.map +1 -0
  65. package/dist/cli/commands/deploy.command.d.ts +4 -0
  66. package/dist/cli/commands/deploy.command.d.ts.map +1 -0
  67. package/dist/cli/commands/deploy.command.js +172 -0
  68. package/dist/cli/commands/deploy.command.js.map +1 -0
  69. package/dist/cli/commands/deploy.d.ts +22 -0
  70. package/dist/cli/commands/deploy.d.ts.map +1 -0
  71. package/dist/cli/commands/deploy.js +319 -0
  72. package/dist/cli/commands/deploy.js.map +1 -0
  73. package/dist/cli/commands/export.command.d.ts +7 -0
  74. package/dist/cli/commands/export.command.d.ts.map +1 -0
  75. package/dist/cli/commands/export.command.js +56 -0
  76. package/dist/cli/commands/export.command.js.map +1 -0
  77. package/dist/cli/commands/generate.command.d.ts +7 -0
  78. package/dist/cli/commands/generate.command.d.ts.map +1 -0
  79. package/dist/cli/commands/generate.command.js +66 -0
  80. package/dist/cli/commands/generate.command.js.map +1 -0
  81. package/dist/cli/commands/github-sync.command.d.ts +3 -0
  82. package/dist/cli/commands/github-sync.command.d.ts.map +1 -0
  83. package/dist/cli/commands/github-sync.command.js +51 -0
  84. package/dist/cli/commands/github-sync.command.js.map +1 -0
  85. package/dist/cli/commands/gitlab-agent.command.d.ts +8 -0
  86. package/dist/cli/commands/gitlab-agent.command.d.ts.map +1 -0
  87. package/dist/cli/commands/gitlab-agent.command.js +201 -0
  88. package/dist/cli/commands/gitlab-agent.command.js.map +1 -0
  89. package/dist/cli/commands/import.command.d.ts +7 -0
  90. package/dist/cli/commands/import.command.d.ts.map +1 -0
  91. package/dist/cli/commands/import.command.js +36 -0
  92. package/dist/cli/commands/import.command.js.map +1 -0
  93. package/dist/cli/commands/info.command.d.ts +3 -0
  94. package/dist/cli/commands/info.command.d.ts.map +1 -0
  95. package/dist/cli/commands/info.command.js +45 -0
  96. package/dist/cli/commands/info.command.js.map +1 -0
  97. package/dist/cli/commands/init.command.d.ts +7 -0
  98. package/dist/cli/commands/init.command.d.ts.map +1 -0
  99. package/dist/cli/commands/init.command.js +139 -0
  100. package/dist/cli/commands/init.command.js.map +1 -0
  101. package/dist/cli/commands/install.command.d.ts +3 -0
  102. package/dist/cli/commands/install.command.d.ts.map +1 -0
  103. package/dist/cli/commands/install.command.js +44 -0
  104. package/dist/cli/commands/install.command.js.map +1 -0
  105. package/dist/cli/commands/migrate.command.d.ts +22 -0
  106. package/dist/cli/commands/migrate.command.d.ts.map +1 -0
  107. package/dist/cli/commands/migrate.command.js +157 -0
  108. package/dist/cli/commands/migrate.command.js.map +1 -0
  109. package/dist/cli/commands/publish.command.d.ts +3 -0
  110. package/dist/cli/commands/publish.command.d.ts.map +1 -0
  111. package/dist/cli/commands/publish.command.js +76 -0
  112. package/dist/cli/commands/publish.command.js.map +1 -0
  113. package/dist/cli/commands/quickstart.command.d.ts +10 -0
  114. package/dist/cli/commands/quickstart.command.d.ts.map +1 -0
  115. package/dist/cli/commands/quickstart.command.js +257 -0
  116. package/dist/cli/commands/quickstart.command.js.map +1 -0
  117. package/dist/cli/commands/release.command.d.ts +8 -0
  118. package/dist/cli/commands/release.command.d.ts.map +1 -0
  119. package/dist/cli/commands/release.command.js +641 -0
  120. package/dist/cli/commands/release.command.js.map +1 -0
  121. package/dist/cli/commands/run.command.d.ts +7 -0
  122. package/dist/cli/commands/run.command.d.ts.map +1 -0
  123. package/dist/cli/commands/run.command.js +125 -0
  124. package/dist/cli/commands/run.command.js.map +1 -0
  125. package/dist/cli/commands/schema.command.d.ts +7 -0
  126. package/dist/cli/commands/schema.command.d.ts.map +1 -0
  127. package/dist/cli/commands/schema.command.js +76 -0
  128. package/dist/cli/commands/schema.command.js.map +1 -0
  129. package/dist/cli/commands/search.command.d.ts +3 -0
  130. package/dist/cli/commands/search.command.d.ts.map +1 -0
  131. package/dist/cli/commands/search.command.js +45 -0
  132. package/dist/cli/commands/search.command.js.map +1 -0
  133. package/dist/cli/commands/setup.command.d.ts +11 -0
  134. package/dist/cli/commands/setup.command.d.ts.map +1 -0
  135. package/dist/cli/commands/setup.command.js +350 -0
  136. package/dist/cli/commands/setup.command.js.map +1 -0
  137. package/dist/cli/commands/sync.command.d.ts +3 -0
  138. package/dist/cli/commands/sync.command.d.ts.map +1 -0
  139. package/dist/cli/commands/sync.command.js +51 -0
  140. package/dist/cli/commands/sync.command.js.map +1 -0
  141. package/dist/cli/commands/test.command.d.ts +3 -0
  142. package/dist/cli/commands/test.command.d.ts.map +1 -0
  143. package/dist/cli/commands/test.command.js +91 -0
  144. package/dist/cli/commands/test.command.js.map +1 -0
  145. package/dist/cli/commands/validate.command.d.ts +7 -0
  146. package/dist/cli/commands/validate.command.d.ts.map +1 -0
  147. package/dist/cli/commands/validate.command.js +143 -0
  148. package/dist/cli/commands/validate.command.js.map +1 -0
  149. package/dist/cli/index.d.ts +7 -0
  150. package/dist/cli/index.d.ts.map +1 -0
  151. package/dist/cli/index.js +148 -0
  152. package/dist/cli/index.js.map +1 -0
  153. package/dist/cli/utils/error-formatter.d.ts +19 -0
  154. package/dist/cli/utils/error-formatter.d.ts.map +1 -0
  155. package/dist/cli/utils/error-formatter.js +330 -0
  156. package/dist/cli/utils/error-formatter.js.map +1 -0
  157. package/dist/deploy/base-driver.d.ts +39 -0
  158. package/dist/deploy/base-driver.d.ts.map +1 -0
  159. package/dist/deploy/base-driver.js +63 -0
  160. package/dist/deploy/base-driver.js.map +1 -0
  161. package/dist/deploy/docker-driver.d.ts +32 -0
  162. package/dist/deploy/docker-driver.d.ts.map +1 -0
  163. package/dist/deploy/docker-driver.js +246 -0
  164. package/dist/deploy/docker-driver.js.map +1 -0
  165. package/dist/deploy/index.d.ts +15 -0
  166. package/dist/deploy/index.d.ts.map +1 -0
  167. package/dist/deploy/index.js +28 -0
  168. package/dist/deploy/index.js.map +1 -0
  169. package/dist/deploy/k8s-driver.d.ts +40 -0
  170. package/dist/deploy/k8s-driver.d.ts.map +1 -0
  171. package/dist/deploy/k8s-driver.js +372 -0
  172. package/dist/deploy/k8s-driver.js.map +1 -0
  173. package/dist/deploy/local-driver.d.ts +20 -0
  174. package/dist/deploy/local-driver.d.ts.map +1 -0
  175. package/dist/deploy/local-driver.js +150 -0
  176. package/dist/deploy/local-driver.js.map +1 -0
  177. package/dist/deploy/types.d.ts +103 -0
  178. package/dist/deploy/types.d.ts.map +1 -0
  179. package/dist/deploy/types.js +6 -0
  180. package/dist/deploy/types.js.map +1 -0
  181. package/dist/di-container.d.ts.map +1 -1
  182. package/dist/di-container.js +14 -0
  183. package/dist/di-container.js.map +1 -1
  184. package/dist/index.d.ts +2 -1
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +3 -1
  187. package/dist/index.js.map +1 -1
  188. package/dist/mesh/client.d.ts +144 -0
  189. package/dist/mesh/client.d.ts.map +1 -0
  190. package/dist/mesh/client.js +424 -0
  191. package/dist/mesh/client.js.map +1 -0
  192. package/dist/mesh/discovery.d.ts +176 -0
  193. package/dist/mesh/discovery.d.ts.map +1 -0
  194. package/dist/mesh/discovery.js +288 -0
  195. package/dist/mesh/discovery.js.map +1 -0
  196. package/dist/mesh/index.d.ts +89 -0
  197. package/dist/mesh/index.d.ts.map +1 -0
  198. package/dist/mesh/index.js +92 -0
  199. package/dist/mesh/index.js.map +1 -0
  200. package/dist/mesh/routing.d.ts +158 -0
  201. package/dist/mesh/routing.d.ts.map +1 -0
  202. package/dist/mesh/routing.js +360 -0
  203. package/dist/mesh/routing.js.map +1 -0
  204. package/dist/mesh/types.d.ts +439 -0
  205. package/dist/mesh/types.d.ts.map +1 -0
  206. package/dist/mesh/types.js +6 -0
  207. package/dist/mesh/types.js.map +1 -0
  208. package/dist/messaging/broker.d.ts +76 -0
  209. package/dist/messaging/broker.d.ts.map +1 -0
  210. package/dist/messaging/broker.js +145 -0
  211. package/dist/messaging/broker.js.map +1 -0
  212. package/dist/messaging/channels.d.ts +70 -0
  213. package/dist/messaging/channels.d.ts.map +1 -0
  214. package/dist/messaging/channels.js +183 -0
  215. package/dist/messaging/channels.js.map +1 -0
  216. package/dist/messaging/index.d.ts +10 -0
  217. package/dist/messaging/index.d.ts.map +1 -0
  218. package/dist/messaging/index.js +10 -0
  219. package/dist/messaging/index.js.map +1 -0
  220. package/dist/messaging/protocols/memory.d.ts +83 -0
  221. package/dist/messaging/protocols/memory.d.ts.map +1 -0
  222. package/dist/messaging/protocols/memory.js +293 -0
  223. package/dist/messaging/protocols/memory.js.map +1 -0
  224. package/dist/messaging/protocols/redis.d.ts +83 -0
  225. package/dist/messaging/protocols/redis.d.ts.map +1 -0
  226. package/dist/messaging/protocols/redis.js +223 -0
  227. package/dist/messaging/protocols/redis.js.map +1 -0
  228. package/dist/messaging/types.d.ts +180 -0
  229. package/dist/messaging/types.d.ts.map +1 -0
  230. package/dist/messaging/types.js +6 -0
  231. package/dist/messaging/types.js.map +1 -0
  232. package/dist/repositories/manifest.repository.d.ts +1 -1
  233. package/dist/repositories/manifest.repository.d.ts.map +1 -1
  234. package/dist/repositories/manifest.repository.js +7 -6
  235. package/dist/repositories/manifest.repository.js.map +1 -1
  236. package/dist/repositories/schema.repository.d.ts +4 -0
  237. package/dist/repositories/schema.repository.d.ts.map +1 -1
  238. package/dist/repositories/schema.repository.js +10 -3
  239. package/dist/repositories/schema.repository.js.map +1 -1
  240. package/dist/sdk/events/cloudevents-emitter.d.ts +56 -0
  241. package/dist/sdk/events/cloudevents-emitter.d.ts.map +1 -0
  242. package/dist/sdk/events/cloudevents-emitter.js +101 -0
  243. package/dist/sdk/events/cloudevents-emitter.js.map +1 -0
  244. package/dist/sdk/events/index.d.ts +2 -0
  245. package/dist/sdk/events/index.d.ts.map +1 -0
  246. package/dist/sdk/events/index.js +2 -0
  247. package/dist/sdk/events/index.js.map +1 -0
  248. package/dist/sdk/tracing/index.d.ts +2 -0
  249. package/dist/sdk/tracing/index.d.ts.map +1 -0
  250. package/dist/sdk/tracing/index.js +2 -0
  251. package/dist/sdk/tracing/index.js.map +1 -0
  252. package/dist/sdk/tracing/w3c-baggage.d.ts +40 -0
  253. package/dist/sdk/tracing/w3c-baggage.d.ts.map +1 -0
  254. package/dist/sdk/tracing/w3c-baggage.js +148 -0
  255. package/dist/sdk/tracing/w3c-baggage.js.map +1 -0
  256. package/dist/services/agent-services/qdrant.service.d.ts +60 -0
  257. package/dist/services/agent-services/qdrant.service.d.ts.map +1 -0
  258. package/dist/services/agent-services/qdrant.service.js +168 -0
  259. package/dist/services/agent-services/qdrant.service.js.map +1 -0
  260. package/dist/services/agents-md/agents-md.service.d.ts +61 -0
  261. package/dist/services/agents-md/agents-md.service.d.ts.map +1 -0
  262. package/dist/services/agents-md/agents-md.service.js +348 -0
  263. package/dist/services/agents-md/agents-md.service.js.map +1 -0
  264. package/dist/services/deployment/deployment.service.d.ts +19 -0
  265. package/dist/services/deployment/deployment.service.d.ts.map +1 -0
  266. package/dist/services/deployment/deployment.service.js +87 -0
  267. package/dist/services/deployment/deployment.service.js.map +1 -0
  268. package/dist/services/generation.service.d.ts +3 -1
  269. package/dist/services/generation.service.d.ts.map +1 -1
  270. package/dist/services/generation.service.js +34 -68
  271. package/dist/services/generation.service.js.map +1 -1
  272. package/dist/services/github-sync/github-client.js +2 -2
  273. package/dist/services/github-sync/github-client.js.map +1 -1
  274. package/dist/services/github-sync/schemas.d.ts +1 -1
  275. package/dist/services/github-sync/schemas.d.ts.map +1 -1
  276. package/dist/services/github-sync/schemas.js.map +1 -1
  277. package/dist/services/github-sync/sync.service.d.ts.map +1 -1
  278. package/dist/services/github-sync/sync.service.js +4 -2
  279. package/dist/services/github-sync/sync.service.js.map +1 -1
  280. package/dist/services/gitlab-agent.service.d.ts.map +1 -1
  281. package/dist/services/gitlab-agent.service.js +3 -1
  282. package/dist/services/gitlab-agent.service.js.map +1 -1
  283. package/dist/services/messaging/example.d.ts +6 -0
  284. package/dist/services/messaging/example.d.ts.map +1 -0
  285. package/dist/services/messaging/example.js +260 -0
  286. package/dist/services/messaging/example.js.map +1 -0
  287. package/dist/services/messaging/index.d.ts +81 -0
  288. package/dist/services/messaging/index.d.ts.map +1 -0
  289. package/dist/services/messaging/index.js +85 -0
  290. package/dist/services/messaging/index.js.map +1 -0
  291. package/dist/services/messaging/memory-broker.d.ts +103 -0
  292. package/dist/services/messaging/memory-broker.d.ts.map +1 -0
  293. package/dist/services/messaging/memory-broker.js +435 -0
  294. package/dist/services/messaging/memory-broker.js.map +1 -0
  295. package/dist/services/messaging/messaging.service.d.ts +150 -0
  296. package/dist/services/messaging/messaging.service.d.ts.map +1 -0
  297. package/dist/services/messaging/messaging.service.js +456 -0
  298. package/dist/services/messaging/messaging.service.js.map +1 -0
  299. package/dist/services/messaging/messaging.types.d.ts +319 -0
  300. package/dist/services/messaging/messaging.types.d.ts.map +1 -0
  301. package/dist/services/messaging/messaging.types.js +68 -0
  302. package/dist/services/messaging/messaging.types.js.map +1 -0
  303. package/dist/services/migration.service.d.ts +45 -4
  304. package/dist/services/migration.service.d.ts.map +1 -1
  305. package/dist/services/migration.service.js +248 -31
  306. package/dist/services/migration.service.js.map +1 -1
  307. package/dist/services/registry/registry.service.d.ts +39 -0
  308. package/dist/services/registry/registry.service.d.ts.map +1 -0
  309. package/dist/services/registry/registry.service.js +169 -0
  310. package/dist/services/registry/registry.service.js.map +1 -0
  311. package/dist/services/release-automation/base-crud.service.d.ts.map +1 -1
  312. package/dist/services/release-automation/base-crud.service.js.map +1 -1
  313. package/dist/services/release-automation/merge-request.service.d.ts.map +1 -1
  314. package/dist/services/release-automation/merge-request.service.js +4 -4
  315. package/dist/services/release-automation/merge-request.service.js.map +1 -1
  316. package/dist/services/release-automation/milestone.service.d.ts.map +1 -1
  317. package/dist/services/release-automation/milestone.service.js.map +1 -1
  318. package/dist/services/release-automation/release.service.d.ts +4 -4
  319. package/dist/services/release-automation/release.service.d.ts.map +1 -1
  320. package/dist/services/release-automation/release.service.js +1 -3
  321. package/dist/services/release-automation/release.service.js.map +1 -1
  322. package/dist/services/release-automation/schemas/release.schema.d.ts +3 -3
  323. package/dist/services/release-automation/schemas/release.schema.d.ts.map +1 -1
  324. package/dist/services/release-automation/schemas/release.schema.js +11 -23
  325. package/dist/services/release-automation/schemas/release.schema.js.map +1 -1
  326. package/dist/services/release-automation/tag.service.d.ts.map +1 -1
  327. package/dist/services/release-automation/tag.service.js +4 -1
  328. package/dist/services/release-automation/tag.service.js.map +1 -1
  329. package/dist/services/release-automation/webhook.service.d.ts +2 -2
  330. package/dist/services/release-automation/webhook.service.d.ts.map +1 -1
  331. package/dist/services/release-automation/webhook.service.js +30 -17
  332. package/dist/services/release-automation/webhook.service.js.map +1 -1
  333. package/dist/services/runtime/anthropic.adapter.d.ts +145 -0
  334. package/dist/services/runtime/anthropic.adapter.d.ts.map +1 -0
  335. package/dist/services/runtime/anthropic.adapter.js +525 -0
  336. package/dist/services/runtime/anthropic.adapter.js.map +1 -0
  337. package/dist/services/runtime/azure.adapter.d.ts +389 -0
  338. package/dist/services/runtime/azure.adapter.d.ts.map +1 -0
  339. package/dist/services/runtime/azure.adapter.js +515 -0
  340. package/dist/services/runtime/azure.adapter.js.map +1 -0
  341. package/dist/services/runtime/bedrock.adapter.d.ts +170 -0
  342. package/dist/services/runtime/bedrock.adapter.d.ts.map +1 -0
  343. package/dist/services/runtime/bedrock.adapter.js +667 -0
  344. package/dist/services/runtime/bedrock.adapter.js.map +1 -0
  345. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -1
  346. package/dist/services/runtime/claude/capability-mapper.js.map +1 -1
  347. package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
  348. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  349. package/dist/services/runtime/claude/claude-adapter.js +4 -8
  350. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  351. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -1
  352. package/dist/services/runtime/claude/manifest-parser.js +2 -2
  353. package/dist/services/runtime/claude/manifest-parser.js.map +1 -1
  354. package/dist/services/runtime/gemini.adapter.d.ts +190 -0
  355. package/dist/services/runtime/gemini.adapter.d.ts.map +1 -0
  356. package/dist/services/runtime/gemini.adapter.js +603 -0
  357. package/dist/services/runtime/gemini.adapter.js.map +1 -0
  358. package/dist/services/runtime/mistral.adapter.d.ts +201 -0
  359. package/dist/services/runtime/mistral.adapter.d.ts.map +1 -0
  360. package/dist/services/runtime/mistral.adapter.js +654 -0
  361. package/dist/services/runtime/mistral.adapter.js.map +1 -0
  362. package/dist/services/runtime/ollama.adapter.d.ts +187 -0
  363. package/dist/services/runtime/ollama.adapter.d.ts.map +1 -0
  364. package/dist/services/runtime/ollama.adapter.js +525 -0
  365. package/dist/services/runtime/ollama.adapter.js.map +1 -0
  366. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  367. package/dist/services/runtime/openai.adapter.js.map +1 -1
  368. package/dist/services/test-runner/test-runner.service.d.ts +21 -0
  369. package/dist/services/test-runner/test-runner.service.d.ts.map +1 -0
  370. package/dist/services/test-runner/test-runner.service.js +91 -0
  371. package/dist/services/test-runner/test-runner.service.js.map +1 -0
  372. package/dist/services/validation.service.d.ts.map +1 -1
  373. package/dist/services/validation.service.js +38 -13
  374. package/dist/services/validation.service.js.map +1 -1
  375. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  376. package/dist/services/validators/anthropic.validator.js +2 -5
  377. package/dist/services/validators/anthropic.validator.js.map +1 -1
  378. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  379. package/dist/services/validators/autogen.validator.js +1 -2
  380. package/dist/services/validators/autogen.validator.js.map +1 -1
  381. package/dist/services/validators/contract.validator.d.ts +90 -0
  382. package/dist/services/validators/contract.validator.d.ts.map +1 -0
  383. package/dist/services/validators/contract.validator.js +508 -0
  384. package/dist/services/validators/contract.validator.js.map +1 -0
  385. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  386. package/dist/services/validators/crewai.validator.js.map +1 -1
  387. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  388. package/dist/services/validators/cursor.validator.js.map +1 -1
  389. package/dist/services/validators/dependencies.validator.d.ts +104 -0
  390. package/dist/services/validators/dependencies.validator.d.ts.map +1 -0
  391. package/dist/services/validators/dependencies.validator.js +386 -0
  392. package/dist/services/validators/dependencies.validator.js.map +1 -0
  393. package/dist/services/validators/index.d.ts +1 -0
  394. package/dist/services/validators/index.d.ts.map +1 -1
  395. package/dist/services/validators/index.js +1 -0
  396. package/dist/services/validators/index.js.map +1 -1
  397. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  398. package/dist/services/validators/langchain.validator.js +4 -13
  399. package/dist/services/validators/langchain.validator.js.map +1 -1
  400. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  401. package/dist/services/validators/langflow.validator.js +1 -2
  402. package/dist/services/validators/langflow.validator.js.map +1 -1
  403. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  404. package/dist/services/validators/langgraph.validator.js +1 -2
  405. package/dist/services/validators/langgraph.validator.js.map +1 -1
  406. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  407. package/dist/services/validators/llamaindex.validator.js +4 -13
  408. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  409. package/dist/services/validators/messaging.validator.d.ts +77 -0
  410. package/dist/services/validators/messaging.validator.d.ts.map +1 -0
  411. package/dist/services/validators/messaging.validator.js +296 -0
  412. package/dist/services/validators/messaging.validator.js.map +1 -0
  413. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  414. package/dist/services/validators/openai.validator.js +1 -6
  415. package/dist/services/validators/openai.validator.js.map +1 -1
  416. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  417. package/dist/services/validators/vercel-ai.validator.js +1 -3
  418. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  419. package/dist/spec/extensions/a2a-messaging.md +471 -0
  420. package/dist/spec/extensions/manifest-extensions.md +550 -0
  421. package/dist/spec/registry/README.md +472 -0
  422. package/dist/spec/registry/openapi.yaml +1124 -0
  423. package/dist/spec/registry/registry-api.schema.json +731 -0
  424. package/dist/spec/registry/registry-spec.md +2239 -0
  425. package/dist/spec/schema/agent-test.schema.json +117 -0
  426. package/dist/spec/schema/components/activity-stream.schema.json +94 -0
  427. package/dist/spec/schema/components/constraints.schema.json +84 -0
  428. package/dist/spec/schema/components/dependencies.schema.json +147 -0
  429. package/dist/spec/schema/components/encryption.schema.json +115 -0
  430. package/dist/spec/schema/components/identity.schema.json +48 -0
  431. package/dist/spec/schema/components/index.json +37 -0
  432. package/dist/spec/schema/components/llm-config.schema.json +67 -0
  433. package/dist/spec/schema/components/metadata.schema.json +37 -0
  434. package/dist/spec/schema/components/tool.schema.json +64 -0
  435. package/dist/spec/schema/extensions/a2a.extension.schema.json +127 -0
  436. package/dist/spec/v0.2.8/ossa-0.2.8.schema.json +95 -1
  437. package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
  438. package/dist/spec/v0.2.9/agent.md +1946 -0
  439. package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
  440. package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
  441. package/dist/spec/v0.2.9/capability-schema.md +576 -0
  442. package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
  443. package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
  444. package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  445. package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  446. package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
  447. package/dist/spec/v0.2.9/security-model.md +1245 -0
  448. package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
  449. package/dist/spec/v0.2.9/types.ts +522 -0
  450. package/dist/spec/v0.3.0/UNIFIED-SCHEMA.md +120 -0
  451. package/dist/spec/v0.3.0/adapters/drupal.md +541 -0
  452. package/dist/spec/v0.3.0/adapters/symfony.md +659 -0
  453. package/dist/spec/v0.3.0/agent-test.schema.json +75 -0
  454. package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +110 -0
  455. package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  456. package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  457. package/dist/spec/v0.3.0/extensions/drupal.md +417 -0
  458. package/dist/spec/v0.3.0/ossa-0.3.0.schema.json +2787 -0
  459. package/dist/spec/v0.3.0/protocols/sse.md +494 -0
  460. package/dist/spec/v0.3.0/protocols/webrtc.md +600 -0
  461. package/dist/spec/v0.3.0/protocols/websocket.md +362 -0
  462. package/dist/spec/v0.3.0/schemas/agent-unified.yaml +165 -0
  463. package/dist/spec/v0.3.0/schemas/capabilities.yaml +102 -0
  464. package/dist/spec/v0.3.0/schemas/functions.yaml +75 -0
  465. package/dist/spec/v0.3.0/schemas/messaging/channel.schema.json +245 -0
  466. package/dist/spec/v0.3.0/schemas/messaging/delivery-receipt.schema.json +192 -0
  467. package/dist/spec/v0.3.0/schemas/messaging/message.schema.json +205 -0
  468. package/dist/spec/v0.3.0/schemas/messaging/subscription.schema.json +214 -0
  469. package/dist/spec/v0.3.0/schemas/runtime.yaml +102 -0
  470. package/dist/spec/v0.3.0/schemas/taxonomy.yaml +533 -0
  471. package/dist/spec/v0.3.0/schemas/unified-llm.yaml +91 -0
  472. package/dist/spec/v0.3.0/taxonomy.yaml +256 -0
  473. package/dist/testing/fixtures.d.ts +61 -0
  474. package/dist/testing/fixtures.d.ts.map +1 -0
  475. package/dist/testing/fixtures.js +291 -0
  476. package/dist/testing/fixtures.js.map +1 -0
  477. package/dist/testing/index.d.ts +10 -0
  478. package/dist/testing/index.d.ts.map +1 -0
  479. package/dist/testing/index.js +10 -0
  480. package/dist/testing/index.js.map +1 -0
  481. package/dist/testing/reporters/base.d.ts +24 -0
  482. package/dist/testing/reporters/base.d.ts.map +1 -0
  483. package/dist/testing/reporters/base.js +5 -0
  484. package/dist/testing/reporters/base.js.map +1 -0
  485. package/dist/testing/reporters/console.d.ts +18 -0
  486. package/dist/testing/reporters/console.d.ts.map +1 -0
  487. package/dist/testing/reporters/console.js +76 -0
  488. package/dist/testing/reporters/console.js.map +1 -0
  489. package/dist/testing/reporters/json.d.ts +29 -0
  490. package/dist/testing/reporters/json.d.ts.map +1 -0
  491. package/dist/testing/reporters/json.js +40 -0
  492. package/dist/testing/reporters/json.js.map +1 -0
  493. package/dist/testing/runner.d.ts +96 -0
  494. package/dist/testing/runner.d.ts.map +1 -0
  495. package/dist/testing/runner.js +401 -0
  496. package/dist/testing/runner.js.map +1 -0
  497. package/dist/transports/index.d.ts +8 -0
  498. package/dist/transports/index.d.ts.map +1 -0
  499. package/dist/transports/index.js +11 -0
  500. package/dist/transports/index.js.map +1 -0
  501. package/dist/transports/sse.d.ts +166 -0
  502. package/dist/transports/sse.d.ts.map +1 -0
  503. package/dist/transports/sse.js +309 -0
  504. package/dist/transports/sse.js.map +1 -0
  505. package/dist/transports/webrtc.d.ts +183 -0
  506. package/dist/transports/webrtc.d.ts.map +1 -0
  507. package/dist/transports/webrtc.js +478 -0
  508. package/dist/transports/webrtc.js.map +1 -0
  509. package/dist/transports/websocket.d.ts +204 -0
  510. package/dist/transports/websocket.d.ts.map +1 -0
  511. package/dist/transports/websocket.js +397 -0
  512. package/dist/transports/websocket.js.map +1 -0
  513. package/dist/types/generated/ossa-0.3.0.types.d.ts +316 -0
  514. package/dist/types/generated/ossa-0.3.0.types.d.ts.map +1 -0
  515. package/dist/types/generated/ossa-0.3.0.types.js +8 -0
  516. package/dist/types/generated/ossa-0.3.0.types.js.map +1 -0
  517. package/dist/types/generated/ossa-0.3.0.zod.d.ts +17 -0
  518. package/dist/types/generated/ossa-0.3.0.zod.d.ts.map +1 -0
  519. package/dist/types/generated/ossa-0.3.0.zod.js +3 -0
  520. package/dist/types/generated/ossa-0.3.0.zod.js.map +1 -0
  521. package/dist/types/index.d.ts +124 -2
  522. package/dist/types/index.d.ts.map +1 -1
  523. package/dist/types/index.js +8 -1
  524. package/dist/types/index.js.map +1 -1
  525. package/dist/types/messaging.d.ts +116 -0
  526. package/dist/types/messaging.d.ts.map +1 -0
  527. package/dist/types/messaging.js +6 -0
  528. package/dist/types/messaging.js.map +1 -0
  529. package/dist/types/policy.d.ts +377 -0
  530. package/dist/types/policy.d.ts.map +1 -0
  531. package/dist/types/policy.js +84 -0
  532. package/dist/types/policy.js.map +1 -0
  533. package/dist/types/task.d.ts +222 -0
  534. package/dist/types/task.d.ts.map +1 -0
  535. package/dist/types/task.js +40 -0
  536. package/dist/types/task.js.map +1 -0
  537. package/dist/types/workflow.d.ts +283 -0
  538. package/dist/types/workflow.d.ts.map +1 -0
  539. package/dist/types/workflow.js +51 -0
  540. package/dist/types/workflow.js.map +1 -0
  541. package/dist/utils/path-validator.d.ts +24 -0
  542. package/dist/utils/path-validator.d.ts.map +1 -0
  543. package/dist/utils/path-validator.js +70 -0
  544. package/dist/utils/path-validator.js.map +1 -0
  545. package/dist/utils/version.d.ts +17 -8
  546. package/dist/utils/version.d.ts.map +1 -1
  547. package/dist/utils/version.js +84 -30
  548. package/dist/utils/version.js.map +1 -1
  549. package/dist/utils/yaml-parser.d.ts +23 -0
  550. package/dist/utils/yaml-parser.d.ts.map +1 -0
  551. package/dist/utils/yaml-parser.js +34 -0
  552. package/dist/utils/yaml-parser.js.map +1 -0
  553. package/examples/adapters/drupal-eca-mapping.yaml +153 -0
  554. package/examples/adapters/drupal-eca-task.yaml +48 -0
  555. package/examples/adapters/drupal-flowdrop-mapping.yaml +463 -0
  556. package/examples/adapters/drupal-maestro-mapping.yaml +369 -0
  557. package/examples/adapters/mistral-README.md +367 -0
  558. package/examples/adapters/mistral-agent.yaml +147 -0
  559. package/examples/adapters/symfony-messenger-task.yaml +135 -0
  560. package/examples/adapters/symfony-messenger-workflow.yaml +352 -0
  561. package/examples/adk-integration/code-review-workflow.yml +1 -1
  562. package/examples/adk-integration/customer-support.yml +1 -1
  563. package/examples/adk-integration/data-pipeline.yml +1 -1
  564. package/examples/advanced/reasoning-agent.yaml +136 -0
  565. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -18
  566. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  567. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  568. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  569. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  570. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  571. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  572. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  573. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  574. package/examples/agent-mesh/README.ts +311 -0
  575. package/examples/agent-mesh/basic-usage.ts +461 -0
  576. package/examples/agents/architecture-healer-enterprise.yaml +143 -0
  577. package/examples/agents/dependency-healer-npm.yaml +81 -0
  578. package/examples/agents/spec-healer-openapi.yaml +59 -0
  579. package/examples/agents/wiki-healer-production.yaml +131 -0
  580. package/examples/agents-md/code-agent.ossa.json +100 -0
  581. package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
  582. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  583. package/examples/anthropic-adapter-example.ts +374 -0
  584. package/examples/anthropic-simple.ts +70 -0
  585. package/examples/autogen/multi-agent.ossa.json +1 -1
  586. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +37 -0
  587. package/examples/bridges/.gitlab-ci.yml +293 -0
  588. package/examples/bridges/k8s/deployment.yaml +14 -14
  589. package/examples/ci/multi-project-release-example.yml +401 -0
  590. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  591. package/examples/claude-code/ossa-validator.ossa.yaml +2 -2
  592. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  593. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  594. package/examples/contracts/data-consumer.ossa.yaml +171 -0
  595. package/examples/contracts/data-producer-v2.ossa.yaml +227 -0
  596. package/examples/contracts/data-producer.ossa.yaml +217 -0
  597. package/examples/coordinator-agent/README.md +180 -0
  598. package/examples/coordinator-agent/index.ts +440 -0
  599. package/examples/coordinator-agent/manifest.yaml +41 -0
  600. package/examples/crewai/research-team.ossa.json +1 -1
  601. package/examples/cursor/code-review-agent.ossa.json +1 -1
  602. package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +37 -0
  603. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  604. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  605. package/examples/extensions/agents-md-advanced.yml +177 -0
  606. package/examples/extensions/agents-md-basic.yml +74 -0
  607. package/examples/extensions/agents-md-sync.yml +96 -0
  608. package/examples/extensions/agents-md-v1.yml +175 -0
  609. package/examples/extensions/drupal-v1.yml +1 -1
  610. package/examples/extensions/encryption-multi-provider.yaml +120 -0
  611. package/examples/extensions/kagent-v1.yml +2 -2
  612. package/examples/extensions/knowledge-sources.yaml +59 -0
  613. package/examples/extensions/mcp-full-featured.yaml +150 -0
  614. package/examples/getting-started/01-minimal-agent.ossa.yaml +376 -0
  615. package/examples/getting-started/02-agent-with-tools.ossa.yaml +866 -0
  616. package/examples/getting-started/03-agent-with-safety.ossa.yaml +868 -0
  617. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +829 -0
  618. package/examples/getting-started/05-workflow-composition.ossa.yaml +209 -0
  619. package/examples/getting-started/README.md +69 -0
  620. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  621. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  622. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  623. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  624. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  625. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  626. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  627. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  628. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  629. package/examples/langchain/chain-agent.ossa.json +1 -1
  630. package/examples/langflow/workflow-agent.ossa.json +1 -1
  631. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  632. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  633. package/examples/messaging/dependency-healer.ossa.yaml +354 -0
  634. package/examples/messaging/incident-responder.ossa.yaml +477 -0
  635. package/examples/messaging/routing-rules.ossa.yaml +307 -0
  636. package/examples/messaging/security-scanner.ossa.yaml +328 -0
  637. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  638. package/examples/mistral-adapter-example.ts +435 -0
  639. package/examples/mistral-simple.ts +56 -0
  640. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  641. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  642. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  643. package/examples/observability/activity-stream-full.yaml +133 -0
  644. package/examples/observability/gitlab-ci-template.yml +304 -0
  645. package/examples/openai/basic-agent.ossa.yaml +1 -1
  646. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  647. package/examples/openai/swarm-agent.ossa.json +1 -1
  648. package/examples/production/document-analyzer-openai.yml +1 -1
  649. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  650. package/examples/rag-agent/README.md +136 -0
  651. package/examples/rag-agent/index.ts +272 -0
  652. package/examples/rag-agent/manifest.yaml +45 -0
  653. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +163 -0
  654. package/examples/real-world/rag-documentation-assistant.ossa.yaml +235 -0
  655. package/examples/reference-implementations/README.md +321 -0
  656. package/examples/reference-implementations/curl-scripts/01-search-agents.sh +72 -0
  657. package/examples/reference-implementations/curl-scripts/02-get-agent-details.sh +74 -0
  658. package/examples/reference-implementations/curl-scripts/03-publish-agent.sh +136 -0
  659. package/examples/reference-implementations/curl-scripts/04-a2a-messaging.sh +178 -0
  660. package/examples/reference-implementations/curl-scripts/05-discovery.sh +98 -0
  661. package/examples/reference-implementations/curl-scripts/README.md +277 -0
  662. package/examples/reference-implementations/python-client/README.md +282 -0
  663. package/examples/reference-implementations/python-client/examples/basic_usage.py +84 -0
  664. package/examples/reference-implementations/python-client/examples/publish_agent.py +137 -0
  665. package/examples/reference-implementations/python-client/ossa_client/__init__.py +80 -0
  666. package/examples/reference-implementations/python-client/ossa_client/agents.py +240 -0
  667. package/examples/reference-implementations/python-client/ossa_client/client.py +164 -0
  668. package/examples/reference-implementations/python-client/ossa_client/discovery.py +153 -0
  669. package/examples/reference-implementations/python-client/ossa_client/messaging.py +227 -0
  670. package/examples/reference-implementations/python-client/requirements.txt +2 -0
  671. package/examples/reference-implementations/python-client/setup.py +40 -0
  672. package/examples/reference-implementations/typescript-client/README.md +227 -0
  673. package/examples/reference-implementations/typescript-client/examples/basic-usage.ts +86 -0
  674. package/examples/reference-implementations/typescript-client/examples/messaging.ts +185 -0
  675. package/examples/reference-implementations/typescript-client/examples/publish-agent.ts +138 -0
  676. package/examples/reference-implementations/typescript-client/package.json +40 -0
  677. package/examples/reference-implementations/typescript-client/src/agents.ts +285 -0
  678. package/examples/reference-implementations/typescript-client/src/client.ts +161 -0
  679. package/examples/reference-implementations/typescript-client/src/discovery.ts +244 -0
  680. package/examples/reference-implementations/typescript-client/src/index.ts +67 -0
  681. package/examples/reference-implementations/typescript-client/src/messaging.ts +385 -0
  682. package/examples/reference-implementations/typescript-client/tsconfig.json +25 -0
  683. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +465 -0
  684. package/examples/schema/reusable-components.yaml +95 -0
  685. package/examples/tasks/batch-email-sender.yaml +105 -0
  686. package/examples/tasks/data-transform.yaml +82 -0
  687. package/examples/tasks/publish-content.yaml +86 -0
  688. package/examples/templates/ossa-compliance.yaml +1 -1
  689. package/examples/unified/security-scanner.ossa.yaml +311 -0
  690. package/examples/vercel/edge-agent.ossa.json +1 -1
  691. package/examples/workflow-agent/README.md +175 -0
  692. package/examples/workflow-agent/index.ts +408 -0
  693. package/examples/workflow-agent/manifest.yaml +41 -0
  694. package/examples/workflows/batch-email-campaign.yaml +140 -0
  695. package/examples/workflows/content-review-publish.yaml +156 -0
  696. package/examples/workflows/simple-etl.yaml +151 -0
  697. package/openapi/agent-communication.yaml +1113 -0
  698. package/openapi/agent-crud.yaml +1124 -0
  699. package/openapi/agent-discovery.yaml +677 -0
  700. package/openapi/agent-identity.yaml +620 -0
  701. package/openapi/protocols/sse-streams.yaml +479 -0
  702. package/openapi/protocols/websocket-events.yaml +427 -0
  703. package/openapi/schemas/discovery.json +488 -0
  704. package/package.json +93 -33
  705. package/schemas/agent.json +523 -0
  706. package/schemas/communication.json +897 -0
  707. package/schemas/identity.json +482 -0
  708. package/spec/extensions/a2a-messaging.md +471 -0
  709. package/spec/extensions/manifest-extensions.md +550 -0
  710. package/spec/registry/README.md +472 -0
  711. package/spec/registry/openapi.yaml +1124 -0
  712. package/spec/registry/registry-api.schema.json +731 -0
  713. package/spec/registry/registry-spec.md +2239 -0
  714. package/spec/schema/agent-test.schema.json +117 -0
  715. package/spec/schema/components/activity-stream.schema.json +94 -0
  716. package/spec/schema/components/constraints.schema.json +84 -0
  717. package/spec/schema/components/dependencies.schema.json +147 -0
  718. package/spec/schema/components/encryption.schema.json +115 -0
  719. package/spec/schema/components/identity.schema.json +48 -0
  720. package/spec/schema/components/index.json +37 -0
  721. package/spec/schema/components/llm-config.schema.json +67 -0
  722. package/spec/schema/components/metadata.schema.json +37 -0
  723. package/spec/schema/components/tool.schema.json +64 -0
  724. package/spec/schema/extensions/a2a.extension.schema.json +127 -0
  725. package/spec/v0.2.8/ossa-0.2.8.schema.json +95 -1
  726. package/spec/v0.2.9/a2a-protocol.md +1337 -0
  727. package/spec/v0.2.9/agent.md +1946 -0
  728. package/spec/v0.2.9/capabilities/index.yaml +25 -0
  729. package/spec/v0.2.9/capabilities/memory.yaml +251 -0
  730. package/spec/v0.2.9/capability-schema.md +576 -0
  731. package/spec/v0.2.9/compliance-profiles.md +533 -0
  732. package/spec/v0.2.9/conformance-testing.md +1527 -0
  733. package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  734. package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  735. package/spec/v0.2.9/runtime-semantics.md +464 -0
  736. package/spec/v0.2.9/security-model.md +1245 -0
  737. package/spec/v0.2.9/semantic-conventions.md +347 -0
  738. package/spec/v0.2.9/types.ts +522 -0
  739. package/spec/v0.3.0/UNIFIED-SCHEMA.md +120 -0
  740. package/spec/v0.3.0/adapters/drupal.md +541 -0
  741. package/spec/v0.3.0/adapters/symfony.md +659 -0
  742. package/spec/v0.3.0/agent-test.schema.json +75 -0
  743. package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +110 -0
  744. package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  745. package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  746. package/spec/v0.3.0/extensions/drupal.md +417 -0
  747. package/spec/v0.3.0/ossa-0.3.0.schema.json +2787 -0
  748. package/spec/v0.3.0/protocols/sse.md +494 -0
  749. package/spec/v0.3.0/protocols/webrtc.md +600 -0
  750. package/spec/v0.3.0/protocols/websocket.md +362 -0
  751. package/spec/v0.3.0/schemas/agent-unified.yaml +165 -0
  752. package/spec/v0.3.0/schemas/capabilities.yaml +102 -0
  753. package/spec/v0.3.0/schemas/functions.yaml +75 -0
  754. package/spec/v0.3.0/schemas/messaging/channel.schema.json +245 -0
  755. package/spec/v0.3.0/schemas/messaging/delivery-receipt.schema.json +192 -0
  756. package/spec/v0.3.0/schemas/messaging/message.schema.json +205 -0
  757. package/spec/v0.3.0/schemas/messaging/subscription.schema.json +214 -0
  758. package/spec/v0.3.0/schemas/runtime.yaml +102 -0
  759. package/spec/v0.3.0/schemas/taxonomy.yaml +533 -0
  760. package/spec/v0.3.0/schemas/unified-llm.yaml +91 -0
  761. package/spec/v0.3.0/taxonomy.yaml +256 -0
  762. package/.cursorrules +0 -84
  763. package/.devfile.yaml +0 -87
  764. package/.env.example +0 -63
  765. package/.eslintrc.cjs +0 -43
  766. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -63
  767. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -40
  768. package/.github/PULL_REQUEST_TEMPLATE.md +0 -39
  769. package/.github/dependabot.yml +0 -58
  770. package/.github/workflows/ci.yml +0 -154
  771. package/.github/workflows/codeql.yml +0 -41
  772. package/.github/workflows/dependabot-auto-merge.yml +0 -28
  773. package/.github/workflows/dependabot-comment.yml +0 -34
  774. package/.github/workflows/pr-comment.yml +0 -33
  775. package/.github/workflows/release.yml +0 -103
  776. package/.husky/pre-commit +0 -5
  777. package/.kiro/config.json +0 -21
  778. package/.kiro/settings/mcp.json +0 -61
  779. package/.kiro/specs/scripts-migration-api-first/design.md +0 -883
  780. package/.kiro/specs/scripts-migration-api-first/requirements.md +0 -165
  781. package/.kiro/specs/scripts-migration-api-first/tasks.md +0 -539
  782. package/.kiro/specs/website-brand-identity/design.md +0 -1060
  783. package/.kiro/specs/website-brand-identity/requirements.md +0 -287
  784. package/.kiro/specs/website-brand-identity/tasks.md +0 -981
  785. package/.prettierignore +0 -7
  786. package/.prettierrc.json +0 -10
  787. package/.redocly.yaml +0 -9
  788. package/.releaserc.json +0 -85
  789. package/.version.json +0 -6
  790. package/.wiki-config.json +0 -24
  791. package/CODEOWNERS +0 -75
  792. package/CONTRIBUTING.md +0 -267
  793. package/bin/validate-ossa-0.2.2.ts +0 -244
  794. package/bin/validate-ossa-0.2.4.ts +0 -244
  795. package/docs/brand-guide/01-brand-overview.md +0 -37
  796. package/docs/brand-guide/02-logo-usage.md +0 -43
  797. package/docs/brand-guide/03-color-palette.md +0 -70
  798. package/docs/brand-guide/04-typography.md +0 -82
  799. package/docs/brand-guide/05-voice-and-tone.md +0 -108
  800. package/docs/brand-guide/06-visual-elements.md +0 -137
  801. package/docs/brand-guide/07-application-examples.md +0 -153
  802. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +0 -21
  803. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  804. package/docs/brand-guide/README.md +0 -107
  805. package/docs/comparison.md +0 -315
  806. package/docs/operations/automation-roadmap.md +0 -245
  807. package/docs/operations/github-sync-strategy.md +0 -357
  808. package/eslint-report.json +0 -1
  809. package/gl-code-quality-report.json +0 -62
  810. package/infrastructure/docker-compose.yml +0 -33
  811. package/infrastructure/gitlab-agent/rbac.yaml +0 -126
  812. package/infrastructure/gitlab-agent/values.yaml +0 -150
  813. package/infrastructure/k8s/monitoring/00-namespace.yaml +0 -7
  814. package/infrastructure/k8s/monitoring/01-prometheus.yaml +0 -142
  815. package/infrastructure/k8s/monitoring/02-grafana.yaml +0 -63
  816. package/infrastructure/k8s/monitoring/03-lightweight.yaml +0 -121
  817. package/infrastructure/k8s/monitoring/README.md +0 -73
  818. package/infrastructure/k8s/monitoring/deploy.sh +0 -38
  819. package/junit.xml +0 -1
  820. package/llms-ctx-full.txt +0 -39
  821. package/llms-ctx.txt +0 -39
  822. package/llms.txt +0 -47
  823. package/release.config.js +0 -79
  824. package/scripts/README.md +0 -103
  825. package/scripts/auto-rebase-mrs.ts +0 -106
  826. package/scripts/batch-dependabot.sh +0 -57
  827. package/scripts/bump-version.ts +0 -57
  828. package/scripts/configure-gitlab-branch-protection.ts +0 -95
  829. package/scripts/create-issue-helper.ts +0 -238
  830. package/scripts/create-milestone-issue.ts +0 -73
  831. package/scripts/enhanced-version-manager.ts +0 -257
  832. package/scripts/eslint-to-codequality.cjs +0 -34
  833. package/scripts/fix-schema-formats.js +0 -82
  834. package/scripts/gen-types.ts +0 -51
  835. package/scripts/gen-zod.ts +0 -51
  836. package/scripts/generate-agents-catalog.ts +0 -77
  837. package/scripts/generate-api-docs.ts +0 -218
  838. package/scripts/generate-cli-docs.ts +0 -410
  839. package/scripts/generate-config-docs.ts +0 -109
  840. package/scripts/generate-errors-docs.ts +0 -76
  841. package/scripts/generate-examples-docs.ts +0 -99
  842. package/scripts/generate-llms-ctx.sh +0 -17
  843. package/scripts/generate-schema-docs.ts +0 -317
  844. package/scripts/generate-types-docs.ts +0 -48
  845. package/scripts/lowercase-docs.ts +0 -43
  846. package/scripts/manage-milestone-mrs.ts +0 -279
  847. package/scripts/process-doc-templates.ts +0 -37
  848. package/scripts/rebase-all-mrs.sh +0 -75
  849. package/scripts/schemas/package.schema.ts +0 -75
  850. package/scripts/setup-branch-protection.sh +0 -33
  851. package/scripts/sync-github-pr.sh +0 -48
  852. package/scripts/sync-version.js +0 -32
  853. package/scripts/sync-version.ts +0 -39
  854. package/scripts/sync-versions.ts +0 -488
  855. package/scripts/sync-wiki.sh +0 -50
  856. package/scripts/validate-all.js +0 -127
  857. package/scripts/validate-schema.ts +0 -50
  858. package/test-results/junit.xml +0 -299
  859. package/test-results.xml +0 -1
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Path Validation Utility
3
+ * Prevents path traversal attacks and validates file access
4
+ */
5
+ import { resolve, normalize } from 'path';
6
+ import { existsSync, statSync } from 'fs';
7
+ export class PathValidationError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'PathValidationError';
11
+ }
12
+ }
13
+ /**
14
+ * Validates a file path for security and existence
15
+ * @param filePath - The file path to validate
16
+ * @param basePath - Optional base path to restrict access (defaults to null for no restriction)
17
+ * @returns Absolute, validated file path
18
+ * @throws PathValidationError if path is invalid or inaccessible
19
+ */
20
+ export function validateFilePath(filePath, basePath = null) {
21
+ // Normalize and resolve path
22
+ const normalized = normalize(filePath);
23
+ const resolved = resolve(normalized);
24
+ // If basePath is provided, enforce path traversal protection
25
+ if (basePath !== null) {
26
+ const baseResolved = resolve(basePath);
27
+ if (!resolved.startsWith(baseResolved)) {
28
+ throw new PathValidationError(`Access denied: Path '${filePath}' attempts to escape base directory`);
29
+ }
30
+ }
31
+ // Check if path exists
32
+ if (!existsSync(resolved)) {
33
+ throw new PathValidationError(`File not found: ${filePath}`);
34
+ }
35
+ // Ensure it's a file, not a directory
36
+ const stats = statSync(resolved);
37
+ if (!stats.isFile()) {
38
+ throw new PathValidationError(`Path is not a file: ${filePath}`);
39
+ }
40
+ return resolved;
41
+ }
42
+ /**
43
+ * Validates a directory path for security and existence
44
+ * @param dirPath - The directory path to validate
45
+ * @param basePath - Optional base path to restrict access (defaults to null for no restriction)
46
+ * @returns Absolute, validated directory path
47
+ * @throws PathValidationError if path is invalid or inaccessible
48
+ */
49
+ export function validateDirectoryPath(dirPath, basePath = null) {
50
+ const normalized = normalize(dirPath);
51
+ const resolved = resolve(normalized);
52
+ // If basePath is provided, enforce path traversal protection
53
+ if (basePath !== null) {
54
+ const baseResolved = resolve(basePath);
55
+ if (!resolved.startsWith(baseResolved)) {
56
+ throw new PathValidationError(`Access denied: Path '${dirPath}' attempts to escape base directory`);
57
+ }
58
+ }
59
+ // Check if path exists
60
+ if (!existsSync(resolved)) {
61
+ throw new PathValidationError(`Directory not found: ${dirPath}`);
62
+ }
63
+ // Ensure it's a directory
64
+ const stats = statSync(resolved);
65
+ if (!stats.isDirectory()) {
66
+ throw new PathValidationError(`Path is not a directory: ${dirPath}`);
67
+ }
68
+ return resolved;
69
+ }
70
+ //# sourceMappingURL=path-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-validator.js","sourceRoot":"","sources":["../../src/utils/path-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE1C,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAA0B,IAAI;IAC/E,6BAA6B;IAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAErC,6DAA6D;IAC7D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,QAAQ,qCAAqC,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,sCAAsC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,WAA0B,IAAI;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAErC,6DAA6D;IAC7D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,mBAAmB,CAC3B,wBAAwB,OAAO,qCAAqC,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,0BAA0B;IAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -2,22 +2,26 @@
2
2
  * OSSA Version Utilities
3
3
  *
4
4
  * Provides dynamic version detection from package.json
5
- * NEVER hardcode version strings - use these utilities
5
+ *
6
+ * CRITICAL: NO HARDCODED VERSION STRINGS ANYWHERE
7
+ * All versions MUST be derived from package.json or environment variables.
8
+ *
9
+ * NOTE: This module is designed to work with both ESM and CommonJS (Jest).
6
10
  */
7
11
  export interface VersionInfo {
8
- /** Full version string (e.g., "0.2.8") */
12
+ /** Full version string (e.g., "0.3.0") - dynamically derived */
9
13
  version: string;
10
- /** Major version (e.g., 0) */
14
+ /** Major version */
11
15
  major: number;
12
- /** Minor version (e.g., 2) */
16
+ /** Minor version */
13
17
  minor: number;
14
- /** Patch version (e.g., 8) */
18
+ /** Patch version */
15
19
  patch: number;
16
20
  /** Prerelease tag if any (e.g., "RC", "beta") */
17
21
  prerelease?: string;
18
- /** Schema directory name (e.g., "v0.2.8") */
22
+ /** Schema directory name (e.g., "v0.3.0") */
19
23
  schemaDir: string;
20
- /** Schema filename (e.g., "ossa-0.2.8.schema.json") */
24
+ /** Schema filename (e.g., "ossa-0.3.0.schema.json") */
21
25
  schemaFile: string;
22
26
  /** Full schema path relative to project root */
23
27
  schemaPath: string;
@@ -29,6 +33,7 @@ export interface VersionInfo {
29
33
  *
30
34
  * @param forceRefresh - If true, bypasses cache and re-reads package.json
31
35
  * @returns VersionInfo object with all version details
36
+ * @throws Error if version cannot be determined dynamically
32
37
  *
33
38
  * @example
34
39
  * const { version, schemaPath, apiVersion } = getVersionInfo();
@@ -49,7 +54,7 @@ export declare function getSchemaPath(): string;
49
54
  */
50
55
  export declare function getApiVersion(): string;
51
56
  /**
52
- * Get the schema directory (e.g., "v0.2.8")
57
+ * Get the schema directory (e.g., "v0.3.0")
53
58
  */
54
59
  export declare function getSchemaDir(): string;
55
60
  /**
@@ -65,4 +70,8 @@ export declare function getSupportedVersions(): string[];
65
70
  * Resolve absolute path to schema file
66
71
  */
67
72
  export declare function resolveSchemaPath(projectRoot?: string): string;
73
+ /**
74
+ * Clear the cached version info (useful for testing)
75
+ */
76
+ export declare function clearVersionCache(): void;
68
77
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAoCD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,YAAY,UAAQ,GAAG,WAAW,CAiDhE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAc/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAmHD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,YAAY,UAAQ,GAAG,WAAW,CAoBhE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAc/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -2,11 +2,14 @@
2
2
  * OSSA Version Utilities
3
3
  *
4
4
  * Provides dynamic version detection from package.json
5
- * NEVER hardcode version strings - use these utilities
5
+ *
6
+ * CRITICAL: NO HARDCODED VERSION STRINGS ANYWHERE
7
+ * All versions MUST be derived from package.json or environment variables.
8
+ *
9
+ * NOTE: This module is designed to work with both ESM and CommonJS (Jest).
6
10
  */
7
11
  import * as fs from 'fs';
8
12
  import * as path from 'path';
9
- import { fileURLToPath } from 'url';
10
13
  // Cache the version info once resolved
11
14
  let cachedVersionInfo = null;
12
15
  /**
@@ -33,59 +36,104 @@ function parseVersion(version) {
33
36
  // Handle versions like "0.2.8", "0.2.8-RC", "0.2.8-beta.1"
34
37
  const match = version.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);
35
38
  if (!match) {
36
- throw new Error(`Invalid version format: ${version}`);
39
+ throw new Error(`Invalid version format: ${version}. Version must be read from package.json.`);
37
40
  }
38
41
  return {
39
42
  major: parseInt(match[1], 10),
40
43
  minor: parseInt(match[2], 10),
41
44
  patch: parseInt(match[3], 10),
42
- prerelease: match[4]
45
+ prerelease: match[4],
43
46
  };
44
47
  }
45
48
  /**
46
- * Get OSSA version information dynamically from package.json
49
+ * Read version from package.json - the ONLY source of truth
47
50
  *
48
- * @param forceRefresh - If true, bypasses cache and re-reads package.json
49
- * @returns VersionInfo object with all version details
51
+ * Strategy order:
52
+ * 1. OSSA_VERSION environment variable (for CI/CD overrides)
53
+ * 2. package.json from process.cwd()
54
+ * 3. package.json from __dirname (CommonJS)
50
55
  *
51
- * @example
52
- * const { version, schemaPath, apiVersion } = getVersionInfo();
53
- * console.log(`Using OSSA ${version}`);
54
- * console.log(`Schema at: ${schemaPath}`);
56
+ * THROWS if no version can be determined - we NEVER use fallback hardcoded versions.
55
57
  */
56
- export function getVersionInfo(forceRefresh = false) {
57
- if (cachedVersionInfo && !forceRefresh) {
58
- return cachedVersionInfo;
58
+ function readVersionFromPackageJson() {
59
+ // Strategy 1: Environment variable override (for CI/CD)
60
+ if (process.env.OSSA_VERSION) {
61
+ return process.env.OSSA_VERSION;
59
62
  }
60
- let version = '0.2.8'; // Ultimate fallback
61
- // Try to find package.json
62
- // Strategy 1: From this file's location (works in dist)
63
+ // Strategy 2: From process.cwd() - most common case
63
64
  try {
64
- const __filename = fileURLToPath(import.meta.url);
65
- const __dirname = path.dirname(__filename);
66
- const pkgPath = findPackageJson(__dirname);
65
+ const pkgPath = findPackageJson(process.cwd());
67
66
  if (pkgPath) {
68
67
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
69
- version = pkg.version;
68
+ if (pkg.version && pkg.version !== '{{VERSION}}') {
69
+ return pkg.version;
70
+ }
71
+ // If version is {{VERSION}} placeholder, continue to next strategy
70
72
  }
71
73
  }
72
74
  catch {
73
- // Strategy 2: From process.cwd()
75
+ // Continue to next strategy
76
+ }
77
+ // Strategy 3: From __dirname (CommonJS/Jest)
78
+ if (typeof __dirname !== 'undefined') {
74
79
  try {
75
- const pkgPath = findPackageJson(process.cwd());
80
+ const pkgPath = findPackageJson(__dirname);
76
81
  if (pkgPath) {
77
82
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
78
- version = pkg.version;
83
+ if (pkg.version && pkg.version !== '{{VERSION}}') {
84
+ return pkg.version;
85
+ }
79
86
  }
80
87
  }
81
88
  catch {
82
- // Use fallback
89
+ // Continue to next strategy
83
90
  }
84
91
  }
85
- // Strategy 3: Check environment variable override
86
- if (process.env.OSSA_VERSION) {
87
- version = process.env.OSSA_VERSION;
92
+ // Strategy 4: Check for spec directories to infer version
93
+ // Look for existing schema directories and use the latest
94
+ try {
95
+ const specDir = path.resolve(process.cwd(), 'spec');
96
+ if (fs.existsSync(specDir)) {
97
+ const versions = fs
98
+ .readdirSync(specDir)
99
+ .filter((d) => d.startsWith('v') && fs.statSync(path.join(specDir, d)).isDirectory())
100
+ .map((d) => d.substring(1)) // Remove 'v' prefix
101
+ .filter((v) => /^\d+\.\d+\.\d+/.test(v))
102
+ .sort((a, b) => {
103
+ const [aMajor, aMinor, aPatch] = a.split('.').map(Number);
104
+ const [bMajor, bMinor, bPatch] = b.split('.').map(Number);
105
+ return bMajor - aMajor || bMinor - aMinor || bPatch - aPatch;
106
+ });
107
+ if (versions.length > 0) {
108
+ return versions[0];
109
+ }
110
+ }
111
+ }
112
+ catch {
113
+ // Continue
114
+ }
115
+ // NO FALLBACK - fail loudly
116
+ throw new Error('OSSA_VERSION_ERROR: Could not determine version dynamically. ' +
117
+ 'Ensure package.json exists with a valid version, or set OSSA_VERSION env var. ' +
118
+ 'NEVER hardcode version strings.');
119
+ }
120
+ /**
121
+ * Get OSSA version information dynamically from package.json
122
+ *
123
+ * @param forceRefresh - If true, bypasses cache and re-reads package.json
124
+ * @returns VersionInfo object with all version details
125
+ * @throws Error if version cannot be determined dynamically
126
+ *
127
+ * @example
128
+ * const { version, schemaPath, apiVersion } = getVersionInfo();
129
+ * console.log(`Using OSSA ${version}`);
130
+ * console.log(`Schema at: ${schemaPath}`);
131
+ */
132
+ export function getVersionInfo(forceRefresh = false) {
133
+ if (cachedVersionInfo && !forceRefresh) {
134
+ return cachedVersionInfo;
88
135
  }
136
+ const version = readVersionFromPackageJson();
89
137
  const parsed = parseVersion(version);
90
138
  const schemaDir = `v${version}`;
91
139
  const schemaFile = `ossa-${version}.schema.json`;
@@ -95,7 +143,7 @@ export function getVersionInfo(forceRefresh = false) {
95
143
  schemaDir,
96
144
  schemaFile,
97
145
  schemaPath: `spec/${schemaDir}/${schemaFile}`,
98
- apiVersion: `ossa.io/${schemaDir}`
146
+ apiVersion: `ossa/${schemaDir}`,
99
147
  };
100
148
  return cachedVersionInfo;
101
149
  }
@@ -118,7 +166,7 @@ export function getApiVersion() {
118
166
  return getVersionInfo().apiVersion;
119
167
  }
120
168
  /**
121
- * Get the schema directory (e.g., "v0.2.8")
169
+ * Get the schema directory (e.g., "v0.3.0")
122
170
  */
123
171
  export function getSchemaDir() {
124
172
  return getVersionInfo().schemaDir;
@@ -153,4 +201,10 @@ export function resolveSchemaPath(projectRoot) {
153
201
  const root = projectRoot || process.cwd();
154
202
  return path.resolve(root, getVersionInfo().schemaPath);
155
203
  }
204
+ /**
205
+ * Clear the cached version info (useful for testing)
206
+ */
207
+ export function clearVersionCache() {
208
+ cachedVersionInfo = null;
209
+ }
156
210
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,uCAAuC;AACvC,IAAI,iBAAiB,GAAuB,IAAI,CAAC;AAuBjD;;GAEG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,2DAA2D;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;KACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,YAAY,GAAG,KAAK;IACjD,IAAI,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,oBAAoB;IAE3C,2BAA2B;IAC3B,wDAAwD;IACxD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1D,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,QAAQ,OAAO,cAAc,CAAC;IAEjD,iBAAiB,GAAG;QAClB,OAAO;QACP,GAAG,MAAM;QACT,SAAS;QACT,UAAU;QACV,UAAU,EAAE,QAAQ,SAAS,IAAI,UAAU,EAAE;QAC7C,UAAU,EAAE,WAAW,SAAS,EAAE;KACnC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,cAAc,EAAE,CAAC,OAAO,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,cAAc,EAAE,CAAC,UAAU,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,cAAc,EAAE,CAAC,UAAU,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,cAAc,EAAE,CAAC,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,cAAc,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,0CAA0C;IAC1C,8CAA8C;IAC9C,MAAM,QAAQ,GAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C,4CAA4C;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAoB;IACpD,MAAM,IAAI,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Safe YAML Parser
3
+ * Prevents YAML injection attacks and DoS vulnerabilities
4
+ */
5
+ export interface SafeYAMLOptions {
6
+ maxAliasCount?: number;
7
+ allowCustomTags?: boolean;
8
+ allowMergeKeys?: boolean;
9
+ }
10
+ /**
11
+ * Safely parses YAML content with security protections
12
+ * @param content - YAML string to parse
13
+ * @param options - Optional security configuration
14
+ * @returns Parsed YAML object
15
+ */
16
+ export declare function safeParseYAML<T = unknown>(content: string, options?: SafeYAMLOptions): T;
17
+ /**
18
+ * Safely stringifies an object to YAML
19
+ * @param obj - Object to stringify
20
+ * @returns YAML string
21
+ */
22
+ export declare function safeStringifyYAML(obj: unknown): string;
23
+ //# sourceMappingURL=yaml-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-parser.d.ts","sourceRoot":"","sources":["../../src/utils/yaml-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CAW5F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAMtD"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Safe YAML Parser
3
+ * Prevents YAML injection attacks and DoS vulnerabilities
4
+ */
5
+ import YAML from 'yaml';
6
+ /**
7
+ * Safely parses YAML content with security protections
8
+ * @param content - YAML string to parse
9
+ * @param options - Optional security configuration
10
+ * @returns Parsed YAML object
11
+ */
12
+ export function safeParseYAML(content, options = {}) {
13
+ const { maxAliasCount = 100, allowCustomTags = false, allowMergeKeys = false } = options;
14
+ // Parse with security restrictions
15
+ const parsed = YAML.parse(content, {
16
+ maxAliasCount, // Prevent billion laughs attack
17
+ customTags: allowCustomTags ? undefined : [], // Disable custom tags
18
+ merge: allowMergeKeys, // Disable merge keys (<<)
19
+ });
20
+ return parsed;
21
+ }
22
+ /**
23
+ * Safely stringifies an object to YAML
24
+ * @param obj - Object to stringify
25
+ * @returns YAML string
26
+ */
27
+ export function safeStringifyYAML(obj) {
28
+ // Convert undefined to null for consistent output
29
+ const value = obj === undefined ? null : obj;
30
+ return YAML.stringify(value, {
31
+ // No security restrictions needed for stringify
32
+ });
33
+ }
34
+ //# sourceMappingURL=yaml-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-parser.js","sourceRoot":"","sources":["../../src/utils/yaml-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAc,OAAe,EAAE,UAA2B,EAAE;IACvF,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,eAAe,GAAG,KAAK,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEzF,mCAAmC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACjC,aAAa,EAAE,gCAAgC;QAC/C,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,sBAAsB;QACpE,KAAK,EAAE,cAAc,EAAE,0BAA0B;KAClD,CAAC,CAAC;IAEH,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,kDAAkD;IAClD,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAC3B,gDAAgD;KACjD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,153 @@
1
+ # Example: ECA (Event-Condition-Action) to OSSA Task Mapping
2
+ # Demonstrates how Drupal ECA rules map to OSSA Task/Workflow manifests
3
+ apiVersion: ossa/v0.3.0
4
+ kind: Task
5
+ metadata:
6
+ name: eca-content-published-notify
7
+ version: 1.0.0
8
+ description: Send notification when content is published (ECA rule mapping)
9
+ labels:
10
+ runtime: drupal
11
+ engine: eca
12
+ domain: content
13
+ annotations:
14
+ drupal.ossa.io/eca-model: content_published_notification
15
+ drupal.ossa.io/eca-version: "1.0"
16
+
17
+ spec:
18
+ execution:
19
+ type: deterministic
20
+ runtime: drupal
21
+ entrypoint: "Drupal\\ossa_adapter\\TaskHandler\\ECAHandler::execute"
22
+ timeout_seconds: 30
23
+
24
+ # ECA Event → OSSA Trigger
25
+ triggers:
26
+ - type: event
27
+ source: drupal.entity
28
+ event: node.insert
29
+ filter:
30
+ bundle: article
31
+ status: 1 # Published
32
+ - type: event
33
+ source: drupal.entity
34
+ event: node.update
35
+ filter:
36
+ bundle: article
37
+ status: 1
38
+ _previous_status: 0 # Was unpublished
39
+
40
+ # ECA Conditions → OSSA Input Schema
41
+ input:
42
+ type: object
43
+ properties:
44
+ entity:
45
+ type: object
46
+ description: The Drupal node entity
47
+ properties:
48
+ nid:
49
+ type: integer
50
+ title:
51
+ type: string
52
+ bundle:
53
+ type: string
54
+ uid:
55
+ type: integer
56
+ status:
57
+ type: integer
58
+ user:
59
+ type: object
60
+ description: The user who triggered the action
61
+ properties:
62
+ uid:
63
+ type: integer
64
+ mail:
65
+ type: string
66
+ name:
67
+ type: string
68
+ event_type:
69
+ type: string
70
+ enum: [insert, update]
71
+ required:
72
+ - entity
73
+ - user
74
+
75
+ # ECA Actions → OSSA Capabilities
76
+ capabilities:
77
+ - send_email
78
+ - log_message
79
+ - create_entity
80
+ - queue_item
81
+
82
+ output:
83
+ type: object
84
+ properties:
85
+ notifications_sent:
86
+ type: integer
87
+ log_id:
88
+ type: string
89
+ success:
90
+ type: boolean
91
+
92
+ # Error handling
93
+ error_handling:
94
+ on_error: log_and_continue
95
+ fallback:
96
+ log_level: error
97
+ notify_admin: true
98
+
99
+ observability:
100
+ logging:
101
+ level: info
102
+ metrics:
103
+ enabled: true
104
+ custom_labels:
105
+ content_type: "${{ input.entity.bundle }}"
106
+ event_type: "${{ input.event_type }}"
107
+
108
+ # Drupal-specific runtime bindings
109
+ runtime:
110
+ type: drupal
111
+ bindings:
112
+ # Map OSSA capabilities to ECA plugins
113
+ send_email:
114
+ plugin: "eca_mail:send"
115
+ config:
116
+ to: "admin@example.com"
117
+ subject: "Content Published: ${{ input.entity.title }}"
118
+ body: |
119
+ A new article has been published:
120
+
121
+ Title: ${{ input.entity.title }}
122
+ Author: ${{ input.user.name }}
123
+ URL: /node/${{ input.entity.nid }}
124
+
125
+ log_message:
126
+ plugin: "eca_log:message"
127
+ config:
128
+ level: info
129
+ message: "Content published notification sent for node ${{ input.entity.nid }}"
130
+
131
+ create_entity:
132
+ plugin: "eca_content:create_entity"
133
+ config:
134
+ entity_type: notification
135
+ bundle: content_alert
136
+
137
+ queue_item:
138
+ plugin: "eca_queue:add"
139
+ config:
140
+ queue_name: content_notifications
141
+
142
+ # ECA-specific configuration
143
+ eca:
144
+ model_id: content_published_notification
145
+ event_plugins:
146
+ - eca_content:entity_insert
147
+ - eca_content:entity_update
148
+ condition_plugins:
149
+ - eca_content:entity_bundle
150
+ - eca_content:entity_field_value
151
+ action_plugins:
152
+ - eca_mail:send
153
+ - eca_log:message
@@ -0,0 +1,48 @@
1
+ apiVersion: ossa/v0.3.0
2
+ kind: Task
3
+ metadata:
4
+ name: drupal-content-moderation
5
+ description: Content moderation workflow using Drupal ECA
6
+ labels:
7
+ drupal.module: eca
8
+ drupal.version: "11.x"
9
+ spec:
10
+ steps:
11
+ - name: validate-content
12
+ action: drupal.eca.condition
13
+ inputs:
14
+ condition_type: entity_field_value
15
+ entity_type: node
16
+ field: moderation_state
17
+ operator: equals
18
+ value: draft
19
+
20
+ - name: check-permissions
21
+ action: drupal.eca.condition
22
+ inputs:
23
+ condition_type: user_permission
24
+ permission: moderate content
25
+
26
+ - name: update-state
27
+ action: drupal.eca.action
28
+ inputs:
29
+ action_type: entity_set_field_value
30
+ entity_type: node
31
+ field: moderation_state
32
+ value: published
33
+
34
+ - name: notify-author
35
+ action: drupal.eca.action
36
+ inputs:
37
+ action_type: send_email
38
+ to: "{{ entity.author.email }}"
39
+ subject: "Your content has been published"
40
+ template: content_published
41
+
42
+ runtime:
43
+ drupal:
44
+ module: eca
45
+ event: entity_presave
46
+ entity_type: node
47
+ bundle: article
48
+ priority: 100