@bluefly/openstandardagents 0.2.9 → 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 (836) hide show
  1. package/CHANGELOG.md +1766 -212
  2. package/README.md +517 -168
  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 +27 -14
  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.map +1 -1
  348. package/dist/services/runtime/claude/claude-adapter.js +3 -7
  349. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  350. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -1
  351. package/dist/services/runtime/claude/manifest-parser.js +2 -2
  352. package/dist/services/runtime/claude/manifest-parser.js.map +1 -1
  353. package/dist/services/runtime/gemini.adapter.d.ts +190 -0
  354. package/dist/services/runtime/gemini.adapter.d.ts.map +1 -0
  355. package/dist/services/runtime/gemini.adapter.js +603 -0
  356. package/dist/services/runtime/gemini.adapter.js.map +1 -0
  357. package/dist/services/runtime/mistral.adapter.d.ts +201 -0
  358. package/dist/services/runtime/mistral.adapter.d.ts.map +1 -0
  359. package/dist/services/runtime/mistral.adapter.js +654 -0
  360. package/dist/services/runtime/mistral.adapter.js.map +1 -0
  361. package/dist/services/runtime/ollama.adapter.d.ts +187 -0
  362. package/dist/services/runtime/ollama.adapter.d.ts.map +1 -0
  363. package/dist/services/runtime/ollama.adapter.js +525 -0
  364. package/dist/services/runtime/ollama.adapter.js.map +1 -0
  365. package/dist/services/runtime/openai.adapter.d.ts.map +1 -1
  366. package/dist/services/runtime/openai.adapter.js.map +1 -1
  367. package/dist/services/test-runner/test-runner.service.d.ts +21 -0
  368. package/dist/services/test-runner/test-runner.service.d.ts.map +1 -0
  369. package/dist/services/test-runner/test-runner.service.js +91 -0
  370. package/dist/services/test-runner/test-runner.service.js.map +1 -0
  371. package/dist/services/validation.service.d.ts.map +1 -1
  372. package/dist/services/validation.service.js +38 -13
  373. package/dist/services/validation.service.js.map +1 -1
  374. package/dist/services/validators/anthropic.validator.d.ts.map +1 -1
  375. package/dist/services/validators/anthropic.validator.js +2 -5
  376. package/dist/services/validators/anthropic.validator.js.map +1 -1
  377. package/dist/services/validators/autogen.validator.d.ts.map +1 -1
  378. package/dist/services/validators/autogen.validator.js +1 -2
  379. package/dist/services/validators/autogen.validator.js.map +1 -1
  380. package/dist/services/validators/contract.validator.d.ts +90 -0
  381. package/dist/services/validators/contract.validator.d.ts.map +1 -0
  382. package/dist/services/validators/contract.validator.js +508 -0
  383. package/dist/services/validators/contract.validator.js.map +1 -0
  384. package/dist/services/validators/crewai.validator.d.ts.map +1 -1
  385. package/dist/services/validators/crewai.validator.js.map +1 -1
  386. package/dist/services/validators/cursor.validator.d.ts.map +1 -1
  387. package/dist/services/validators/cursor.validator.js.map +1 -1
  388. package/dist/services/validators/dependencies.validator.d.ts +104 -0
  389. package/dist/services/validators/dependencies.validator.d.ts.map +1 -0
  390. package/dist/services/validators/dependencies.validator.js +386 -0
  391. package/dist/services/validators/dependencies.validator.js.map +1 -0
  392. package/dist/services/validators/index.d.ts +1 -0
  393. package/dist/services/validators/index.d.ts.map +1 -1
  394. package/dist/services/validators/index.js +1 -0
  395. package/dist/services/validators/index.js.map +1 -1
  396. package/dist/services/validators/langchain.validator.d.ts.map +1 -1
  397. package/dist/services/validators/langchain.validator.js +4 -13
  398. package/dist/services/validators/langchain.validator.js.map +1 -1
  399. package/dist/services/validators/langflow.validator.d.ts.map +1 -1
  400. package/dist/services/validators/langflow.validator.js +1 -2
  401. package/dist/services/validators/langflow.validator.js.map +1 -1
  402. package/dist/services/validators/langgraph.validator.d.ts.map +1 -1
  403. package/dist/services/validators/langgraph.validator.js +1 -2
  404. package/dist/services/validators/langgraph.validator.js.map +1 -1
  405. package/dist/services/validators/llamaindex.validator.d.ts.map +1 -1
  406. package/dist/services/validators/llamaindex.validator.js +4 -13
  407. package/dist/services/validators/llamaindex.validator.js.map +1 -1
  408. package/dist/services/validators/messaging.validator.d.ts +77 -0
  409. package/dist/services/validators/messaging.validator.d.ts.map +1 -0
  410. package/dist/services/validators/messaging.validator.js +296 -0
  411. package/dist/services/validators/messaging.validator.js.map +1 -0
  412. package/dist/services/validators/openai.validator.d.ts.map +1 -1
  413. package/dist/services/validators/openai.validator.js +1 -6
  414. package/dist/services/validators/openai.validator.js.map +1 -1
  415. package/dist/services/validators/vercel-ai.validator.d.ts.map +1 -1
  416. package/dist/services/validators/vercel-ai.validator.js +1 -3
  417. package/dist/services/validators/vercel-ai.validator.js.map +1 -1
  418. package/dist/spec/extensions/a2a-messaging.md +471 -0
  419. package/dist/spec/extensions/manifest-extensions.md +550 -0
  420. package/dist/spec/registry/README.md +472 -0
  421. package/dist/spec/registry/openapi.yaml +1124 -0
  422. package/dist/spec/registry/registry-api.schema.json +731 -0
  423. package/dist/spec/registry/registry-spec.md +2239 -0
  424. package/dist/spec/schema/agent-test.schema.json +117 -0
  425. package/dist/spec/schema/components/activity-stream.schema.json +94 -0
  426. package/dist/spec/schema/components/constraints.schema.json +84 -0
  427. package/dist/spec/schema/components/dependencies.schema.json +147 -0
  428. package/dist/spec/schema/components/encryption.schema.json +115 -0
  429. package/dist/spec/schema/components/identity.schema.json +48 -0
  430. package/dist/spec/schema/components/index.json +37 -0
  431. package/dist/spec/schema/components/llm-config.schema.json +67 -0
  432. package/dist/spec/schema/components/metadata.schema.json +37 -0
  433. package/dist/spec/schema/components/tool.schema.json +64 -0
  434. package/dist/spec/schema/extensions/a2a.extension.schema.json +127 -0
  435. package/dist/spec/v0.2.8/ossa-0.2.8.schema.json +95 -1
  436. package/dist/spec/v0.3.0/UNIFIED-SCHEMA.md +120 -0
  437. package/dist/spec/v0.3.0/adapters/drupal.md +541 -0
  438. package/dist/spec/v0.3.0/adapters/symfony.md +659 -0
  439. package/dist/spec/v0.3.0/agent-test.schema.json +75 -0
  440. package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +110 -0
  441. package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  442. package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  443. package/dist/spec/v0.3.0/extensions/drupal.md +417 -0
  444. package/dist/spec/v0.3.0/ossa-0.3.0.schema.json +2787 -0
  445. package/dist/spec/v0.3.0/protocols/sse.md +494 -0
  446. package/dist/spec/v0.3.0/protocols/webrtc.md +600 -0
  447. package/dist/spec/v0.3.0/protocols/websocket.md +362 -0
  448. package/dist/spec/v0.3.0/schemas/agent-unified.yaml +165 -0
  449. package/dist/spec/v0.3.0/schemas/capabilities.yaml +102 -0
  450. package/dist/spec/v0.3.0/schemas/functions.yaml +75 -0
  451. package/dist/spec/v0.3.0/schemas/messaging/channel.schema.json +245 -0
  452. package/dist/spec/v0.3.0/schemas/messaging/delivery-receipt.schema.json +192 -0
  453. package/dist/spec/v0.3.0/schemas/messaging/message.schema.json +205 -0
  454. package/dist/spec/v0.3.0/schemas/messaging/subscription.schema.json +214 -0
  455. package/dist/spec/v0.3.0/schemas/runtime.yaml +102 -0
  456. package/dist/spec/v0.3.0/schemas/taxonomy.yaml +533 -0
  457. package/dist/spec/v0.3.0/schemas/unified-llm.yaml +91 -0
  458. package/dist/spec/v0.3.0/taxonomy.yaml +256 -0
  459. package/dist/testing/fixtures.d.ts +61 -0
  460. package/dist/testing/fixtures.d.ts.map +1 -0
  461. package/dist/testing/fixtures.js +291 -0
  462. package/dist/testing/fixtures.js.map +1 -0
  463. package/dist/testing/index.d.ts +10 -0
  464. package/dist/testing/index.d.ts.map +1 -0
  465. package/dist/testing/index.js +10 -0
  466. package/dist/testing/index.js.map +1 -0
  467. package/dist/testing/reporters/base.d.ts +24 -0
  468. package/dist/testing/reporters/base.d.ts.map +1 -0
  469. package/dist/testing/reporters/base.js +5 -0
  470. package/dist/testing/reporters/base.js.map +1 -0
  471. package/dist/testing/reporters/console.d.ts +18 -0
  472. package/dist/testing/reporters/console.d.ts.map +1 -0
  473. package/dist/testing/reporters/console.js +76 -0
  474. package/dist/testing/reporters/console.js.map +1 -0
  475. package/dist/testing/reporters/json.d.ts +29 -0
  476. package/dist/testing/reporters/json.d.ts.map +1 -0
  477. package/dist/testing/reporters/json.js +40 -0
  478. package/dist/testing/reporters/json.js.map +1 -0
  479. package/dist/testing/runner.d.ts +96 -0
  480. package/dist/testing/runner.d.ts.map +1 -0
  481. package/dist/testing/runner.js +401 -0
  482. package/dist/testing/runner.js.map +1 -0
  483. package/dist/transports/index.d.ts +8 -0
  484. package/dist/transports/index.d.ts.map +1 -0
  485. package/dist/transports/index.js +11 -0
  486. package/dist/transports/index.js.map +1 -0
  487. package/dist/transports/sse.d.ts +166 -0
  488. package/dist/transports/sse.d.ts.map +1 -0
  489. package/dist/transports/sse.js +309 -0
  490. package/dist/transports/sse.js.map +1 -0
  491. package/dist/transports/webrtc.d.ts +183 -0
  492. package/dist/transports/webrtc.d.ts.map +1 -0
  493. package/dist/transports/webrtc.js +478 -0
  494. package/dist/transports/webrtc.js.map +1 -0
  495. package/dist/transports/websocket.d.ts +204 -0
  496. package/dist/transports/websocket.d.ts.map +1 -0
  497. package/dist/transports/websocket.js +397 -0
  498. package/dist/transports/websocket.js.map +1 -0
  499. package/dist/types/generated/ossa-0.3.0.types.d.ts +316 -0
  500. package/dist/types/generated/ossa-0.3.0.types.d.ts.map +1 -0
  501. package/dist/types/generated/ossa-0.3.0.types.js +8 -0
  502. package/dist/types/generated/ossa-0.3.0.types.js.map +1 -0
  503. package/dist/types/generated/ossa-0.3.0.zod.d.ts +17 -0
  504. package/dist/types/generated/ossa-0.3.0.zod.d.ts.map +1 -0
  505. package/dist/types/generated/ossa-0.3.0.zod.js +3 -0
  506. package/dist/types/generated/ossa-0.3.0.zod.js.map +1 -0
  507. package/dist/types/index.d.ts +124 -2
  508. package/dist/types/index.d.ts.map +1 -1
  509. package/dist/types/index.js +8 -1
  510. package/dist/types/index.js.map +1 -1
  511. package/dist/types/messaging.d.ts +116 -0
  512. package/dist/types/messaging.d.ts.map +1 -0
  513. package/dist/types/messaging.js +6 -0
  514. package/dist/types/messaging.js.map +1 -0
  515. package/dist/types/policy.d.ts.map +1 -1
  516. package/dist/types/policy.js.map +1 -1
  517. package/dist/types/task.d.ts +222 -0
  518. package/dist/types/task.d.ts.map +1 -0
  519. package/dist/types/task.js +40 -0
  520. package/dist/types/task.js.map +1 -0
  521. package/dist/types/workflow.d.ts +283 -0
  522. package/dist/types/workflow.d.ts.map +1 -0
  523. package/dist/types/workflow.js +51 -0
  524. package/dist/types/workflow.js.map +1 -0
  525. package/dist/utils/path-validator.d.ts +24 -0
  526. package/dist/utils/path-validator.d.ts.map +1 -0
  527. package/dist/utils/path-validator.js +70 -0
  528. package/dist/utils/path-validator.js.map +1 -0
  529. package/dist/utils/version.d.ts +17 -8
  530. package/dist/utils/version.d.ts.map +1 -1
  531. package/dist/utils/version.js +84 -30
  532. package/dist/utils/version.js.map +1 -1
  533. package/dist/utils/yaml-parser.d.ts +23 -0
  534. package/dist/utils/yaml-parser.d.ts.map +1 -0
  535. package/dist/utils/yaml-parser.js +34 -0
  536. package/dist/utils/yaml-parser.js.map +1 -0
  537. package/examples/adapters/drupal-eca-mapping.yaml +153 -0
  538. package/examples/adapters/drupal-eca-task.yaml +48 -0
  539. package/examples/adapters/drupal-flowdrop-mapping.yaml +463 -0
  540. package/examples/adapters/drupal-maestro-mapping.yaml +369 -0
  541. package/examples/adapters/mistral-README.md +367 -0
  542. package/examples/adapters/mistral-agent.yaml +147 -0
  543. package/examples/adapters/symfony-messenger-task.yaml +135 -0
  544. package/examples/adapters/symfony-messenger-workflow.yaml +352 -0
  545. package/examples/adk-integration/code-review-workflow.yml +1 -1
  546. package/examples/adk-integration/customer-support.yml +1 -1
  547. package/examples/adk-integration/data-pipeline.yml +1 -1
  548. package/examples/advanced/reasoning-agent.yaml +1 -1
  549. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -18
  550. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  551. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  552. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  553. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  554. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  555. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  556. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  557. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  558. package/examples/agent-mesh/README.ts +311 -0
  559. package/examples/agent-mesh/basic-usage.ts +461 -0
  560. package/examples/agents/architecture-healer-enterprise.yaml +143 -0
  561. package/examples/agents/dependency-healer-npm.yaml +81 -0
  562. package/examples/agents/spec-healer-openapi.yaml +59 -0
  563. package/examples/agents/wiki-healer-production.yaml +131 -0
  564. package/examples/agents-md/code-agent.ossa.json +1 -1
  565. package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
  566. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  567. package/examples/anthropic-adapter-example.ts +374 -0
  568. package/examples/anthropic-simple.ts +70 -0
  569. package/examples/autogen/multi-agent.ossa.json +1 -1
  570. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +37 -0
  571. package/examples/bridges/.gitlab-ci.yml +293 -0
  572. package/examples/bridges/k8s/deployment.yaml +14 -14
  573. package/examples/ci/multi-project-release-example.yml +401 -0
  574. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  575. package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
  576. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  577. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  578. package/examples/contracts/data-consumer.ossa.yaml +171 -0
  579. package/examples/contracts/data-producer-v2.ossa.yaml +227 -0
  580. package/examples/contracts/data-producer.ossa.yaml +217 -0
  581. package/examples/coordinator-agent/README.md +180 -0
  582. package/examples/coordinator-agent/index.ts +440 -0
  583. package/examples/coordinator-agent/manifest.yaml +41 -0
  584. package/examples/crewai/research-team.ossa.json +1 -1
  585. package/examples/cursor/code-review-agent.ossa.json +1 -1
  586. package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +37 -0
  587. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  588. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  589. package/examples/extensions/agents-md-advanced.yml +177 -0
  590. package/examples/extensions/agents-md-basic.yml +74 -0
  591. package/examples/extensions/agents-md-sync.yml +96 -0
  592. package/examples/extensions/agents-md-v1.yml +1 -1
  593. package/examples/extensions/drupal-v1.yml +1 -1
  594. package/examples/extensions/encryption-multi-provider.yaml +120 -0
  595. package/examples/extensions/kagent-v1.yml +2 -2
  596. package/examples/extensions/knowledge-sources.yaml +59 -0
  597. package/examples/extensions/mcp-full-featured.yaml +150 -0
  598. package/examples/getting-started/01-minimal-agent.ossa.yaml +376 -0
  599. package/examples/getting-started/02-agent-with-tools.ossa.yaml +866 -0
  600. package/examples/getting-started/03-agent-with-safety.ossa.yaml +868 -0
  601. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +829 -0
  602. package/examples/getting-started/05-workflow-composition.ossa.yaml +209 -0
  603. package/examples/getting-started/README.md +69 -0
  604. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  605. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  606. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  607. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  608. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  609. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  610. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  611. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  612. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  613. package/examples/langchain/chain-agent.ossa.json +1 -1
  614. package/examples/langflow/workflow-agent.ossa.json +1 -1
  615. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  616. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  617. package/examples/messaging/dependency-healer.ossa.yaml +354 -0
  618. package/examples/messaging/incident-responder.ossa.yaml +477 -0
  619. package/examples/messaging/routing-rules.ossa.yaml +307 -0
  620. package/examples/messaging/security-scanner.ossa.yaml +328 -0
  621. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  622. package/examples/mistral-adapter-example.ts +435 -0
  623. package/examples/mistral-simple.ts +56 -0
  624. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  625. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  626. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  627. package/examples/observability/activity-stream-full.yaml +133 -0
  628. package/examples/observability/gitlab-ci-template.yml +304 -0
  629. package/examples/openai/basic-agent.ossa.yaml +1 -1
  630. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  631. package/examples/openai/swarm-agent.ossa.json +1 -1
  632. package/examples/production/document-analyzer-openai.yml +1 -1
  633. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  634. package/examples/rag-agent/README.md +136 -0
  635. package/examples/rag-agent/index.ts +272 -0
  636. package/examples/rag-agent/manifest.yaml +45 -0
  637. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +163 -0
  638. package/examples/real-world/rag-documentation-assistant.ossa.yaml +235 -0
  639. package/examples/reference-implementations/README.md +321 -0
  640. package/examples/reference-implementations/curl-scripts/01-search-agents.sh +72 -0
  641. package/examples/reference-implementations/curl-scripts/02-get-agent-details.sh +74 -0
  642. package/examples/reference-implementations/curl-scripts/03-publish-agent.sh +136 -0
  643. package/examples/reference-implementations/curl-scripts/04-a2a-messaging.sh +178 -0
  644. package/examples/reference-implementations/curl-scripts/05-discovery.sh +98 -0
  645. package/examples/reference-implementations/curl-scripts/README.md +277 -0
  646. package/examples/reference-implementations/python-client/README.md +282 -0
  647. package/examples/reference-implementations/python-client/examples/basic_usage.py +84 -0
  648. package/examples/reference-implementations/python-client/examples/publish_agent.py +137 -0
  649. package/examples/reference-implementations/python-client/ossa_client/__init__.py +80 -0
  650. package/examples/reference-implementations/python-client/ossa_client/agents.py +240 -0
  651. package/examples/reference-implementations/python-client/ossa_client/client.py +164 -0
  652. package/examples/reference-implementations/python-client/ossa_client/discovery.py +153 -0
  653. package/examples/reference-implementations/python-client/ossa_client/messaging.py +227 -0
  654. package/examples/reference-implementations/python-client/requirements.txt +2 -0
  655. package/examples/reference-implementations/python-client/setup.py +40 -0
  656. package/examples/reference-implementations/typescript-client/README.md +227 -0
  657. package/examples/reference-implementations/typescript-client/examples/basic-usage.ts +86 -0
  658. package/examples/reference-implementations/typescript-client/examples/messaging.ts +185 -0
  659. package/examples/reference-implementations/typescript-client/examples/publish-agent.ts +138 -0
  660. package/examples/reference-implementations/typescript-client/package.json +40 -0
  661. package/examples/reference-implementations/typescript-client/src/agents.ts +285 -0
  662. package/examples/reference-implementations/typescript-client/src/client.ts +161 -0
  663. package/examples/reference-implementations/typescript-client/src/discovery.ts +244 -0
  664. package/examples/reference-implementations/typescript-client/src/index.ts +67 -0
  665. package/examples/reference-implementations/typescript-client/src/messaging.ts +385 -0
  666. package/examples/reference-implementations/typescript-client/tsconfig.json +25 -0
  667. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +465 -0
  668. package/examples/schema/reusable-components.yaml +95 -0
  669. package/examples/tasks/batch-email-sender.yaml +105 -0
  670. package/examples/tasks/data-transform.yaml +82 -0
  671. package/examples/tasks/publish-content.yaml +86 -0
  672. package/examples/templates/ossa-compliance.yaml +1 -1
  673. package/examples/unified/security-scanner.ossa.yaml +311 -0
  674. package/examples/vercel/edge-agent.ossa.json +1 -1
  675. package/examples/workflow-agent/README.md +175 -0
  676. package/examples/workflow-agent/index.ts +408 -0
  677. package/examples/workflow-agent/manifest.yaml +41 -0
  678. package/examples/workflows/batch-email-campaign.yaml +140 -0
  679. package/examples/workflows/content-review-publish.yaml +156 -0
  680. package/examples/workflows/simple-etl.yaml +151 -0
  681. package/openapi/agent-communication.yaml +1113 -0
  682. package/openapi/agent-crud.yaml +1124 -0
  683. package/openapi/agent-discovery.yaml +677 -0
  684. package/openapi/agent-identity.yaml +620 -0
  685. package/openapi/protocols/sse-streams.yaml +479 -0
  686. package/openapi/protocols/websocket-events.yaml +427 -0
  687. package/openapi/schemas/discovery.json +488 -0
  688. package/package.json +91 -33
  689. package/schemas/agent.json +523 -0
  690. package/schemas/communication.json +897 -0
  691. package/schemas/identity.json +482 -0
  692. package/spec/extensions/a2a-messaging.md +471 -0
  693. package/spec/extensions/manifest-extensions.md +550 -0
  694. package/spec/registry/README.md +472 -0
  695. package/spec/registry/openapi.yaml +1124 -0
  696. package/spec/registry/registry-api.schema.json +731 -0
  697. package/spec/registry/registry-spec.md +2239 -0
  698. package/spec/schema/agent-test.schema.json +117 -0
  699. package/spec/schema/components/activity-stream.schema.json +94 -0
  700. package/spec/schema/components/constraints.schema.json +84 -0
  701. package/spec/schema/components/dependencies.schema.json +147 -0
  702. package/spec/schema/components/encryption.schema.json +115 -0
  703. package/spec/schema/components/identity.schema.json +48 -0
  704. package/spec/schema/components/index.json +37 -0
  705. package/spec/schema/components/llm-config.schema.json +67 -0
  706. package/spec/schema/components/metadata.schema.json +37 -0
  707. package/spec/schema/components/tool.schema.json +64 -0
  708. package/spec/schema/extensions/a2a.extension.schema.json +127 -0
  709. package/spec/v0.2.8/ossa-0.2.8.schema.json +95 -1
  710. package/spec/v0.3.0/UNIFIED-SCHEMA.md +120 -0
  711. package/spec/v0.3.0/adapters/drupal.md +541 -0
  712. package/spec/v0.3.0/adapters/symfony.md +659 -0
  713. package/spec/v0.3.0/agent-test.schema.json +75 -0
  714. package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +110 -0
  715. package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  716. package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  717. package/spec/v0.3.0/extensions/drupal.md +417 -0
  718. package/spec/v0.3.0/ossa-0.3.0.schema.json +2787 -0
  719. package/spec/v0.3.0/protocols/sse.md +494 -0
  720. package/spec/v0.3.0/protocols/webrtc.md +600 -0
  721. package/spec/v0.3.0/protocols/websocket.md +362 -0
  722. package/spec/v0.3.0/schemas/agent-unified.yaml +165 -0
  723. package/spec/v0.3.0/schemas/capabilities.yaml +102 -0
  724. package/spec/v0.3.0/schemas/functions.yaml +75 -0
  725. package/spec/v0.3.0/schemas/messaging/channel.schema.json +245 -0
  726. package/spec/v0.3.0/schemas/messaging/delivery-receipt.schema.json +192 -0
  727. package/spec/v0.3.0/schemas/messaging/message.schema.json +205 -0
  728. package/spec/v0.3.0/schemas/messaging/subscription.schema.json +214 -0
  729. package/spec/v0.3.0/schemas/runtime.yaml +102 -0
  730. package/spec/v0.3.0/schemas/taxonomy.yaml +533 -0
  731. package/spec/v0.3.0/schemas/unified-llm.yaml +91 -0
  732. package/spec/v0.3.0/taxonomy.yaml +256 -0
  733. package/.cursorrules +0 -84
  734. package/.devfile.yaml +0 -87
  735. package/.env.example +0 -63
  736. package/.eslintrc.cjs +0 -43
  737. package/.github/AGENTS.md +0 -245
  738. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -63
  739. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -40
  740. package/.github/PULL_REQUEST_TEMPLATE.md +0 -39
  741. package/.github/agents/github-issue-triage.ossa.yaml +0 -99
  742. package/.github/agents/github-pr-triage.ossa.yaml +0 -137
  743. package/.github/dependabot.yml +0 -58
  744. package/.github/workflows/ci.yml +0 -154
  745. package/.github/workflows/codeql.yml +0 -41
  746. package/.github/workflows/dependabot-auto-merge.yml +0 -28
  747. package/.github/workflows/dependabot-comment.yml +0 -34
  748. package/.github/workflows/issue-sync-to-gitlab.yml +0 -138
  749. package/.github/workflows/pr-triage-to-gitlab.yml +0 -164
  750. package/.github/workflows/release.yml +0 -103
  751. package/.husky/pre-commit +0 -5
  752. package/.kiro/config.json +0 -21
  753. package/.kiro/settings/mcp.json +0 -61
  754. package/.kiro/specs/scripts-migration-api-first/design.md +0 -883
  755. package/.kiro/specs/scripts-migration-api-first/requirements.md +0 -165
  756. package/.kiro/specs/scripts-migration-api-first/tasks.md +0 -539
  757. package/.kiro/specs/website-brand-identity/design.md +0 -1060
  758. package/.kiro/specs/website-brand-identity/requirements.md +0 -287
  759. package/.kiro/specs/website-brand-identity/tasks.md +0 -981
  760. package/.prettierignore +0 -7
  761. package/.prettierrc.json +0 -10
  762. package/.redocly.yaml +0 -9
  763. package/.releaserc.json +0 -85
  764. package/.version.json +0 -6
  765. package/.wiki-config.json +0 -24
  766. package/CODEOWNERS +0 -75
  767. package/CONTRIBUTING.md +0 -366
  768. package/bin/validate-ossa-0.2.2.ts +0 -244
  769. package/bin/validate-ossa-0.2.4.ts +0 -244
  770. package/docs/brand-guide/01-brand-overview.md +0 -37
  771. package/docs/brand-guide/02-logo-usage.md +0 -43
  772. package/docs/brand-guide/03-color-palette.md +0 -70
  773. package/docs/brand-guide/04-typography.md +0 -82
  774. package/docs/brand-guide/05-voice-and-tone.md +0 -108
  775. package/docs/brand-guide/06-visual-elements.md +0 -137
  776. package/docs/brand-guide/07-application-examples.md +0 -153
  777. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +0 -21
  778. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  779. package/docs/brand-guide/README.md +0 -107
  780. package/docs/comparison.md +0 -315
  781. package/docs/operations/automation-roadmap.md +0 -245
  782. package/docs/operations/github-sync-strategy.md +0 -357
  783. package/docs/specs/policy-dsl.md +0 -925
  784. package/eslint-report.json +0 -1
  785. package/gl-code-quality-report.json +0 -62
  786. package/infrastructure/docker-compose.yml +0 -33
  787. package/infrastructure/gitlab-agent/rbac.yaml +0 -126
  788. package/infrastructure/gitlab-agent/values.yaml +0 -150
  789. package/infrastructure/k8s/monitoring/00-namespace.yaml +0 -7
  790. package/infrastructure/k8s/monitoring/01-prometheus.yaml +0 -142
  791. package/infrastructure/k8s/monitoring/02-grafana.yaml +0 -63
  792. package/infrastructure/k8s/monitoring/03-lightweight.yaml +0 -121
  793. package/infrastructure/k8s/monitoring/README.md +0 -73
  794. package/infrastructure/k8s/monitoring/deploy.sh +0 -38
  795. package/junit.xml +0 -1
  796. package/llms-ctx-full.txt +0 -39
  797. package/llms-ctx.txt +0 -39
  798. package/llms.txt +0 -47
  799. package/release.config.js +0 -79
  800. package/scripts/README.md +0 -128
  801. package/scripts/auto-rebase-mrs.ts +0 -106
  802. package/scripts/batch-dependabot.sh +0 -57
  803. package/scripts/bump-version.ts +0 -57
  804. package/scripts/compliance-audit.ts +0 -796
  805. package/scripts/configure-gitlab-branch-protection.ts +0 -95
  806. package/scripts/create-issue-helper.ts +0 -238
  807. package/scripts/create-milestone-issue.ts +0 -73
  808. package/scripts/enhanced-version-manager.ts +0 -257
  809. package/scripts/eslint-to-codequality.cjs +0 -34
  810. package/scripts/fix-schema-formats.js +0 -82
  811. package/scripts/gen-types.ts +0 -51
  812. package/scripts/gen-zod.ts +0 -51
  813. package/scripts/generate-agents-catalog.ts +0 -78
  814. package/scripts/generate-api-docs.ts +0 -219
  815. package/scripts/generate-cli-docs.ts +0 -410
  816. package/scripts/generate-config-docs.ts +0 -109
  817. package/scripts/generate-errors-docs.ts +0 -76
  818. package/scripts/generate-examples-docs.ts +0 -100
  819. package/scripts/generate-llms-ctx.sh +0 -17
  820. package/scripts/generate-schema-docs.ts +0 -317
  821. package/scripts/generate-types-docs.ts +0 -48
  822. package/scripts/lowercase-docs.ts +0 -43
  823. package/scripts/manage-milestone-mrs.ts +0 -279
  824. package/scripts/process-doc-templates.ts +0 -37
  825. package/scripts/rebase-all-mrs.sh +0 -75
  826. package/scripts/schemas/package.schema.ts +0 -75
  827. package/scripts/setup-branch-protection.sh +0 -33
  828. package/scripts/sync-github-pr.sh +0 -48
  829. package/scripts/sync-version.js +0 -32
  830. package/scripts/sync-version.ts +0 -39
  831. package/scripts/sync-versions.ts +0 -488
  832. package/scripts/sync-wiki.sh +0 -50
  833. package/scripts/validate-all.js +0 -127
  834. package/scripts/validate-schema.ts +0 -50
  835. package/test-results/junit.xml +0 -337
  836. package/test-results.xml +0 -1
@@ -0,0 +1,866 @@
1
+ # ╔═══════════════════════════════════════════════════════════════════════════════╗
2
+ # ║ ║
3
+ # ║ ██████╗ ███████╗███████╗ █████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ║
4
+ # ║ ██╔═══██╗██╔════╝██╔════╝██╔══██╗ ██║ ██║██╔═████╗ ╚════██╗██╔═████╗ ║
5
+ # ║ ██║ ██║███████╗███████╗███████║ ██║ ██║██║██╔██║ █████╔╝██║██╔██║ ║
6
+ # ║ ██║ ██║╚════██║╚════██║██╔══██║ ╚██╗ ██╔╝████╔╝██║ ╚═══██╗████╔╝██║ ║
7
+ # ║ ╚██████╔╝███████║███████║██║ ██║ ╚████╔╝ ╚██████╔╝██╗██████╔╝╚██████╔╝ ║
8
+ # ║ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝╚═════╝ ╚═════╝ ║
9
+ # ║ ║
10
+ # ║ GETTING STARTED: 02 - AGENT WITH TOOLS ║
11
+ # ║ ║
12
+ # ╚═══════════════════════════════════════════════════════════════════════════════╝
13
+ #
14
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
15
+ # │ WHAT YOU'LL LEARN │
16
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
17
+ # │ │
18
+ # │ ✓ How to give agents TOOLS to interact with external systems │
19
+ # │ ✓ MCP (Model Context Protocol) - the standard for agent tools │
20
+ # │ ✓ Function tools - custom capabilities with JSON Schema │
21
+ # │ ✓ How tools work: function calling → execution → result → LLM decision │
22
+ # │ ✓ Real example: GitHub API + filesystem + custom test runner │
23
+ # │ │
24
+ # └─────────────────────────────────────────────────────────────────────────────────┘
25
+ #
26
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
27
+ # │ WHAT ARE TOOLS? │
28
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
29
+ # │ │
30
+ # │ Tools are CAPABILITIES that extend what an agent can do beyond text. │
31
+ # │ │
32
+ # │ Without tools: Agent can only READ and WRITE text │
33
+ # │ With tools: Agent can INTERACT with the real world │
34
+ # │ │
35
+ # │ Think of tools like: │
36
+ # │ • A human brain (LLM) + hands (tools) to manipulate the environment │
37
+ # │ • A smart assistant who can actually DO things, not just talk │
38
+ # │ │
39
+ # │ Examples: │
40
+ # │ ┌───────────────────────────────────────────────────────────────────┐ │
41
+ # │ │ TOOL TYPE CAPABILITY EXAMPLE USE │ │
42
+ # │ ├───────────────────────────────────────────────────────────────────┤ │
43
+ # │ │ MCP (GitHub) Create PRs, issues, commits Code review │ │
44
+ # │ │ MCP (Filesystem) Read/write files Edit config │ │
45
+ # │ │ MCP (Database) Query PostgreSQL, MySQL Analyze data │ │
46
+ # │ │ MCP (Slack) Send messages, read channels Notifications │ │
47
+ # │ │ Function Custom logic in your runtime Run tests │ │
48
+ # │ │ API Call REST endpoints Weather, stocks │ │
49
+ # │ └───────────────────────────────────────────────────────────────────┘ │
50
+ # │ │
51
+ # └─────────────────────────────────────────────────────────────────────────────────┘
52
+ #
53
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
54
+ # │ HOW TOOLS WORK: THE FUNCTION CALLING FLOW │
55
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
56
+ # │ │
57
+ # │ 1. USER → "Create a PR for the new login feature" │
58
+ # │ │
59
+ # │ 2. LLM THINKS → │
60
+ # │ "I need to use the github tool's create_pull_request function" │
61
+ # │ │
62
+ # │ 3. LLM GENERATES FUNCTION CALL → │
63
+ # │ { │
64
+ # │ "tool": "github", │
65
+ # │ "function": "create_pull_request", │
66
+ # │ "arguments": { │
67
+ # │ "title": "Add new login feature", │
68
+ # │ "branch": "feature/login", │
69
+ # │ "base": "main" │
70
+ # │ } │
71
+ # │ } │
72
+ # │ │
73
+ # │ 4. RUNTIME EXECUTES → Calls GitHub API via MCP server │
74
+ # │ │
75
+ # │ 5. RUNTIME RETURNS RESULT → │
76
+ # │ { │
77
+ # │ "pr_number": 42, │
78
+ # │ "url": "https://github.com/org/repo/pull/42", │
79
+ # │ "status": "open" │
80
+ # │ } │
81
+ # │ │
82
+ # │ 6. LLM SEES RESULT → Formulates response to user │
83
+ # │ │
84
+ # │ 7. AGENT → "I've created PR #42 for the login feature. It's ready for review!" │
85
+ # │ │
86
+ # │ KEY INSIGHT: │
87
+ # │ The LLM DECIDES when to use tools. The runtime EXECUTES them. │
88
+ # │ This is called "agentic behavior" - the agent chooses its own actions. │
89
+ # │ │
90
+ # └─────────────────────────────────────────────────────────────────────────────────┘
91
+ #
92
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
93
+ # │ HOW TO RUN THIS EXAMPLE │
94
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
95
+ # │ │
96
+ # │ STEP 1: Install MCP servers you'll use │
97
+ # │ ──────────────────────────────────────── │
98
+ # │ MCP servers are published to npm. You don't need to install them globally - │
99
+ # │ the agent runtime will use npx to run them on-demand. │
100
+ # │ │
101
+ # │ Available MCP servers: │
102
+ # │ • @modelcontextprotocol/server-github - GitHub API │
103
+ # │ • @modelcontextprotocol/server-filesystem - File operations │
104
+ # │ • @modelcontextprotocol/server-postgres - PostgreSQL queries │
105
+ # │ • @modelcontextprotocol/server-slack - Slack integration │
106
+ # │ • @modelcontextprotocol/server-memory - Persistent memory │
107
+ # │ │
108
+ # │ Find more: https://github.com/modelcontextprotocol/servers │
109
+ # │ │
110
+ # │ STEP 2: Set required environment variables │
111
+ # │ ───────────────────────────────────────── │
112
+ # │ # LLM provider (from example 01) │
113
+ # │ $ export ANTHROPIC_API_KEY=sk-ant-... │
114
+ # │ │
115
+ # │ # GitHub tool authentication │
116
+ # │ $ export GITHUB_TOKEN=ghp_... │
117
+ # │ # Get token: https://github.com/settings/tokens │
118
+ # │ # Required scopes: repo, read:user │
119
+ # │ │
120
+ # │ STEP 3: Validate the manifest │
121
+ # │ ──────────────────────────── │
122
+ # │ $ ossa validate 02-agent-with-tools.ossa.yaml │
123
+ # │ │
124
+ # │ Expected output: │
125
+ # │ ✓ Schema validation passed │
126
+ # │ ✓ Tools configuration valid │
127
+ # │ ✓ MCP server paths resolved │
128
+ # │ ✓ Ready to run │
129
+ # │ │
130
+ # │ STEP 4: Run the agent interactively │
131
+ # │ ──────────────────────────────────── │
132
+ # │ $ ossa run 02-agent-with-tools.ossa.yaml --interactive │
133
+ # │ │
134
+ # │ Try these prompts: │
135
+ # │ │
136
+ # │ > List files in /workspace │
137
+ # │ Agent: [Uses filesystem tool to list directory] │
138
+ # │ I found 15 files in /workspace: ... │
139
+ # │ │
140
+ # │ > Read the README.md file │
141
+ # │ Agent: [Uses filesystem tool to read file] │
142
+ # │ The README contains: ... │
143
+ # │ │
144
+ # │ > What's my latest GitHub PR? │
145
+ # │ Agent: [Uses GitHub tool to list pull requests] │
146
+ # │ Your most recent PR is #42: "Add login feature" ... │
147
+ # │ │
148
+ # │ > Run the tests │
149
+ # │ Agent: [Uses run_tests function tool] │
150
+ # │ Tests passed: 47/47 ✓ │
151
+ # │ │
152
+ # │ STEP 5: Test MCP servers directly (debugging) │
153
+ # │ ───────────────────────────────────────────── │
154
+ # │ You can test MCP servers outside of OSSA: │
155
+ # │ │
156
+ # │ # List available tools in GitHub MCP server │
157
+ # │ $ npx @modelcontextprotocol/server-github list-tools │
158
+ # │ │
159
+ # │ # Test a specific function │
160
+ # │ $ npx @modelcontextprotocol/server-github call-tool \ │
161
+ # │ --tool get_pull_request \ │
162
+ # │ --args '{"repo":"owner/name","pr_number":42}' │
163
+ # │ │
164
+ # │ STEP 6: Monitor tool usage (observability) │
165
+ # │ ────────────────────────────────────────── │
166
+ # │ $ ossa run 02-agent-with-tools.ossa.yaml \ │
167
+ # │ --log-level debug \ │
168
+ # │ --trace-tools │
169
+ # │ │
170
+ # │ Shows: │
171
+ # │ • Which tools the agent chooses to use │
172
+ # │ • Arguments passed to each tool │
173
+ # │ • Results returned │
174
+ # │ • Decision-making process │
175
+ # │ │
176
+ # └─────────────────────────────────────────────────────────────────────────────────┘
177
+ #
178
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
179
+ # │ KEY CONCEPTS IN THIS EXAMPLE │
180
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
181
+ # │ │
182
+ # │ 1. MCP (Model Context Protocol) │
183
+ # │ ───────────────────────────── │
184
+ # │ An OPEN STANDARD for connecting LLMs to external tools. │
185
+ # │ Like OpenAPI for REST APIs, but for agent tools. │
186
+ # │ │
187
+ # │ MCP defines: │
188
+ # │ • How to describe available tools (JSON Schema) │
189
+ # │ • How to execute functions (standardized RPC) │
190
+ # │ • How to handle errors and retries │
191
+ # │ • How to stream results (for long operations) │
192
+ # │ │
193
+ # │ Why MCP? │
194
+ # │ • Write once, works with any LLM (Anthropic, OpenAI, Google, etc.) │
195
+ # │ • Rich ecosystem of pre-built servers (GitHub, Slack, DBs, etc.) │
196
+ # │ • Secure - tools run in separate processes with access controls │
197
+ # │ • Portable - same tool works across frameworks (LangChain, CrewAI, etc.) │
198
+ # │ │
199
+ # │ 2. MCP Server Lifecycle │
200
+ # │ ───────────────────── │
201
+ # │ When you run the agent: │
202
+ # │ │
203
+ # │ a) Runtime spawns MCP server process: │
204
+ # │ $ npx -y @modelcontextprotocol/server-github │
205
+ # │ │
206
+ # │ b) Server connects via stdio/HTTP and reports available tools: │
207
+ # │ { │
208
+ # │ "tools": [ │
209
+ # │ {"name": "create_pull_request", ...}, │
210
+ # │ {"name": "get_pull_request", ...}, │
211
+ # │ {"name": "create_issue", ...} │
212
+ # │ ] │
213
+ # │ } │
214
+ # │ │
215
+ # │ c) LLM receives tool descriptions in system prompt │
216
+ # │ │
217
+ # │ d) When LLM calls a tool, runtime forwards request to MCP server │
218
+ # │ │
219
+ # │ e) MCP server executes (e.g., calls GitHub API), returns result │
220
+ # │ │
221
+ # │ f) Runtime passes result back to LLM for next decision │
222
+ # │ │
223
+ # │ 3. Function Tools (Custom Logic) │
224
+ # │ ────────────────────────── │
225
+ # │ When no MCP server exists for your use case, write a function tool. │
226
+ # │ │
227
+ # │ Components: │
228
+ # │ • name: Unique identifier (e.g., "run_tests", "deploy_service") │
229
+ # │ • description: What it does (LLM uses this to decide when to call it) │
230
+ # │ • input_schema: JSON Schema defining valid arguments │
231
+ # │ • implementation: Provided by the runtime (Python, Node.js, etc.) │
232
+ # │ │
233
+ # │ Example flow: │
234
+ # │ 1. LLM decides to call run_tests with {"test_path": "tests/unit/"} │
235
+ # │ 2. Runtime validates arguments against input_schema │
236
+ # │ 3. Runtime executes your Python/Node.js function │
237
+ # │ 4. Function returns {"status": "passed", "count": 47} │
238
+ # │ 5. LLM sees result and responds to user │
239
+ # │ │
240
+ # │ 4. Tool Selection (How LLM Chooses) │
241
+ # │ ───────────────────────────────── │
242
+ # │ The LLM chooses tools based on: │
243
+ # │ │
244
+ # │ • User's request: "Create a PR" → github tool │
245
+ # │ • Tool descriptions: Detailed description helps LLM make right choice │
246
+ # │ • Context: Recent conversation, previous tool results │
247
+ # │ • Constraints: Autonomy rules (see example 03) │
248
+ # │ │
249
+ # │ Best practices: │
250
+ # │ ✓ Write DETAILED tool descriptions (when, why, what it returns) │
251
+ # │ ✓ Use descriptive parameter names (repo_url vs url) │
252
+ # │ ✓ Include examples in description: "Example: repo_url='owner/name'" │
253
+ # │ ✓ Specify constraints: "Only works for public repositories" │
254
+ # │ │
255
+ # │ 5. Tool Configuration Patterns │
256
+ # │ ──────────────────────────── │
257
+ # │ │
258
+ # │ MCP tool with environment variable: │
259
+ # │ ```yaml │
260
+ # │ - type: mcp │
261
+ # │ name: github │
262
+ # │ config: │
263
+ # │ server: npx -y @modelcontextprotocol/server-github │
264
+ # │ env: │
265
+ # │ GITHUB_TOKEN: ${GITHUB_TOKEN} # From environment │
266
+ # │ ``` │
267
+ # │ │
268
+ # │ MCP tool with arguments: │
269
+ # │ ```yaml │
270
+ # │ - type: mcp │
271
+ # │ name: filesystem │
272
+ # │ config: │
273
+ # │ server: npx -y @modelcontextprotocol/server-filesystem │
274
+ # │ args: │
275
+ # │ - /workspace # Allowed root directory │
276
+ # │ - --read-only false # Enable writes │
277
+ # │ ``` │
278
+ # │ │
279
+ # │ Function tool with complex schema: │
280
+ # │ ```yaml │
281
+ # │ - type: function │
282
+ # │ name: query_database │
283
+ # │ description: Run SQL queries (SELECT only, no mutations) │
284
+ # │ input_schema: │
285
+ # │ type: object │
286
+ # │ required: [query] │
287
+ # │ properties: │
288
+ # │ query: │
289
+ # │ type: string │
290
+ # │ description: SQL query to execute │
291
+ # │ pattern: "^SELECT.*" # Enforce SELECT only │
292
+ # │ limit: │
293
+ # │ type: integer │
294
+ # │ minimum: 1 │
295
+ # │ maximum: 1000 │
296
+ # │ default: 100 │
297
+ # │ ``` │
298
+ # │ │
299
+ # └─────────────────────────────────────────────────────────────────────────────────┘
300
+ #
301
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
302
+ # │ MCP SERVER DIRECTORY │
303
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
304
+ # │ │
305
+ # │ Official MCP servers (maintained by Anthropic): │
306
+ # │ https://github.com/modelcontextprotocol/servers │
307
+ # │ │
308
+ # │ DEVELOPMENT TOOLS │
309
+ # │ ──────────────────────────────────────────────────────────────────────── │
310
+ # │ • server-github - PRs, issues, commits, code search │
311
+ # │ • server-gitlab - GitLab API │
312
+ # │ • server-filesystem - Read/write files (sandboxed) │
313
+ # │ • server-git - Git operations (clone, commit, branch) │
314
+ # │ │
315
+ # │ DATA & DATABASES │
316
+ # │ ──────────────────────────────────────────────────────────────────────── │
317
+ # │ • server-postgres - PostgreSQL queries │
318
+ # │ • server-sqlite - SQLite databases │
319
+ # │ • server-mysql - MySQL/MariaDB │
320
+ # │ • server-mongodb - MongoDB collections │
321
+ # │ │
322
+ # │ COMMUNICATION │
323
+ # │ ──────────────────────────────────────────────────────────────────────── │
324
+ # │ • server-slack - Send messages, read channels │
325
+ # │ • server-email - Send emails (SMTP) │
326
+ # │ • server-discord - Discord bot integration │
327
+ # │ │
328
+ # │ CLOUD PLATFORMS │
329
+ # │ ──────────────────────────────────────────────────────────────────────── │
330
+ # │ • server-aws - S3, Lambda, EC2 operations │
331
+ # │ • server-gcp - Google Cloud Platform │
332
+ # │ • server-kubernetes - K8s cluster management │
333
+ # │ │
334
+ # │ SPECIALIZED │
335
+ # │ ──────────────────────────────────────────────────────────────────────── │
336
+ # │ • server-memory - Persistent agent memory (RAG) │
337
+ # │ • server-puppeteer - Browser automation │
338
+ # │ • server-fetch - HTTP requests with retries │
339
+ # │ • server-youtube - YouTube transcripts │
340
+ # │ │
341
+ # │ Community servers: Search npm for "mcp-server-*" │
342
+ # │ │
343
+ # └─────────────────────────────────────────────────────────────────────────────────┘
344
+ #
345
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
346
+ # │ WRITING YOUR OWN MCP SERVER │
347
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
348
+ # │ │
349
+ # │ When to build a custom MCP server: │
350
+ # │ • You need to integrate a service without an existing MCP server │
351
+ # │ • You have complex business logic to expose │
352
+ # │ • You want to reuse the tool across multiple agents/frameworks │
353
+ # │ │
354
+ # │ Quick start (TypeScript): │
355
+ # │ │
356
+ # │ ```typescript │
357
+ # │ import { Server } from "@modelcontextprotocol/sdk/server/index.js"; │
358
+ # │ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; │
359
+ # │ │
360
+ # │ const server = new Server({ │
361
+ # │ name: "my-custom-server", │
362
+ # │ version: "1.0.0" │
363
+ # │ }, { │
364
+ # │ capabilities: { tools: {} } │
365
+ # │ }); │
366
+ # │ │
367
+ # │ // Define tools │
368
+ # │ server.setRequestHandler(ListToolsRequestSchema, async () => ({ │
369
+ # │ tools: [ │
370
+ # │ { │
371
+ # │ name: "send_notification", │
372
+ # │ description: "Send a notification via internal system", │
373
+ # │ inputSchema: { │
374
+ # │ type: "object", │
375
+ # │ properties: { │
376
+ # │ message: { type: "string" }, │
377
+ # │ priority: { type: "string", enum: ["low", "high"] } │
378
+ # │ }, │
379
+ # │ required: ["message"] │
380
+ # │ } │
381
+ # │ } │
382
+ # │ ] │
383
+ # │ })); │
384
+ # │ │
385
+ # │ // Handle tool calls │
386
+ # │ server.setRequestHandler(CallToolRequestSchema, async (request) => { │
387
+ # │ if (request.params.name === "send_notification") { │
388
+ # │ const { message, priority } = request.params.arguments; │
389
+ # │ // Your implementation here │
390
+ # │ await sendToInternalSystem(message, priority); │
391
+ # │ return { content: [{ type: "text", text: "Notification sent!" }] }; │
392
+ # │ } │
393
+ # │ }); │
394
+ # │ │
395
+ # │ // Start server │
396
+ # │ const transport = new StdioServerTransport(); │
397
+ # │ await server.connect(transport); │
398
+ # │ ``` │
399
+ # │ │
400
+ # │ Then use in OSSA: │
401
+ # │ ```yaml │
402
+ # │ tools: │
403
+ # │ - type: mcp │
404
+ # │ name: my-custom-tool │
405
+ # │ config: │
406
+ # │ server: node /path/to/my-mcp-server.js │
407
+ # │ ``` │
408
+ # │ │
409
+ # │ SDK documentation: https://modelcontextprotocol.io/docs │
410
+ # │ │
411
+ # └─────────────────────────────────────────────────────────────────────────────────┘
412
+ #
413
+ # ┌─────────────────────────────────────────────────────────────────────────────────┐
414
+ # │ NEXT STEPS │
415
+ # ├─────────────────────────────────────────────────────────────────────────────────┤
416
+ # │ │
417
+ # │ 03-agent-with-safety.ossa.yaml │
418
+ # │ CRITICAL for production: PII detection, rate limiting, content filtering │
419
+ # │ Learn: Guardrails, autonomy controls, compliance (SOC2, GDPR) │
420
+ # │ │
421
+ # │ 04-agent-with-messaging.ossa.yaml │
422
+ # │ Multi-agent systems: Agents that communicate and coordinate │
423
+ # │ Learn: Pub/sub, commands, event-driven architectures │
424
+ # │ │
425
+ # │ 05-workflow-composition.ossa.yaml │
426
+ # │ Orchestration: Compose agents and tasks into complex pipelines │
427
+ # │ Learn: DAGs, error handling, parallel execution │
428
+ # │ │
429
+ # └─────────────────────────────────────────────────────────────────────────────────┘
430
+ #
431
+ # ═══════════════════════════════════════════════════════════════════════════════════
432
+ # THE ACTUAL MANIFEST STARTS HERE
433
+ # ═══════════════════════════════════════════════════════════════════════════════════
434
+
435
+ # ──────────────────────────────────────────────────────────────────────────────────
436
+ # API VERSION (Required)
437
+ # ──────────────────────────────────────────────────────────────────────────────────
438
+ # Same as example 01 - using OSSA v0.3.0
439
+ # ──────────────────────────────────────────────────────────────────────────────────
440
+ apiVersion: ossa/v0.3.0
441
+
442
+ # ──────────────────────────────────────────────────────────────────────────────────
443
+ # KIND (Required)
444
+ # ──────────────────────────────────────────────────────────────────────────────────
445
+ # Agent - because we want LLM-powered reasoning + tool use
446
+ # (Tasks don't use LLMs, Workflows compose multiple agents/tasks)
447
+ # ──────────────────────────────────────────────────────────────────────────────────
448
+ kind: Agent
449
+
450
+ # ──────────────────────────────────────────────────────────────────────────────────
451
+ # METADATA (Required)
452
+ # ──────────────────────────────────────────────────────────────────────────────────
453
+ metadata:
454
+ # Descriptive name - indicates this agent can assist with code
455
+ name: code-assistant
456
+
457
+ # Version 1.0.0 - production-ready with tools
458
+ version: 1.0.0
459
+
460
+ # Human-readable description for documentation and registries
461
+ description: |
462
+ Code review assistant with integrated tools for GitHub API, filesystem
463
+ operations, and test execution. Demonstrates MCP (Model Context Protocol)
464
+ integration and custom function tools.
465
+
466
+ Capabilities:
467
+ - Read and analyze source code files
468
+ - Create and manage GitHub pull requests
469
+ - Run project test suites
470
+ - Provide code quality feedback
471
+
472
+ # Labels for categorization
473
+ labels:
474
+ difficulty: beginner # Good intro to tools
475
+ tutorial: "02" # Second in getting-started series
476
+ capability: code-review # Primary use case
477
+ tools: mcp # Uses MCP servers
478
+
479
+ # ──────────────────────────────────────────────────────────────────────────────────
480
+ # SPEC (Agent Configuration)
481
+ # ──────────────────────────────────────────────────────────────────────────────────
482
+ spec:
483
+ # ────────────────────────────────────────────────────────────────────────────────
484
+ # ROLE (System Prompt)
485
+ # ────────────────────────────────────────────────────────────────────────────────
486
+ # Define the agent's expertise and behavioral guidelines
487
+ #
488
+ # IMPORTANT: When agents have tools, the role should explain:
489
+ # 1. What the agent can do (capabilities)
490
+ # 2. When to use tools vs pure reasoning
491
+ # 3. How to communicate tool usage to users (transparency)
492
+ # 4. Safety guidelines (e.g., "Always explain before destructive actions")
493
+ # ────────────────────────────────────────────────────────────────────────────────
494
+ role: |
495
+ You are an expert code review assistant with access to development tools.
496
+
497
+ Your capabilities:
498
+ 1. **Code Analysis**: Read and analyze source code files using filesystem access
499
+ 2. **GitHub Integration**: Create PRs, review issues, examine commits
500
+ 3. **Testing**: Run project test suites and interpret results
501
+ 4. **Best Practices**: Provide feedback on code quality, patterns, and maintainability
502
+
503
+ Working guidelines:
504
+ - **Transparency**: Always explain which tools you're using and why
505
+ - **Safety First**: Ask for confirmation before destructive operations (delete, force push)
506
+ - **Context Awareness**: Read relevant files before making recommendations
507
+ - **Testing**: Run tests before suggesting code is ready to merge
508
+ - **Incremental**: Start with simple analysis, go deeper if needed
509
+
510
+ Communication style:
511
+ - Be clear about what you're checking: "Let me read the main.py file..."
512
+ - Explain tool results: "The tests show 3 failures in the auth module..."
513
+ - Provide actionable feedback: "Consider extracting this logic into a helper function"
514
+ - Use markdown for code suggestions and structured output
515
+
516
+ When reviewing code:
517
+ 1. First, understand the context (read related files, check recent commits)
518
+ 2. Run tests if available
519
+ 3. Analyze for common issues: security, performance, readability
520
+ 4. Provide specific, actionable suggestions
521
+ 5. Highlight what's done well, not just problems
522
+
523
+ # ────────────────────────────────────────────────────────────────────────────────
524
+ # LLM CONFIGURATION
525
+ # ────────────────────────────────────────────────────────────────────────────────
526
+ # For code review, we want focused, deterministic behavior
527
+ # ────────────────────────────────────────────────────────────────────────────────
528
+ llm:
529
+ # Use environment variable for portability (same as example 01)
530
+ provider: ${LLM_PROVIDER:-anthropic}
531
+
532
+ # Default to Sonnet - good balance of speed and code understanding
533
+ # For faster/cheaper: claude-haiku
534
+ # For more complex analysis: claude-opus-4-20250514
535
+ model: ${LLM_MODEL:-claude-sonnet-4-20250514}
536
+
537
+ # Temperature 0.3 - lower than default (0.7) for more focused code analysis
538
+ # Code review benefits from consistency and precision
539
+ # Range guide for code tasks:
540
+ # 0.0-0.2: Code generation, security analysis (very focused)
541
+ # 0.2-0.4: Code review, refactoring suggestions (balanced)
542
+ # 0.4-0.7: Architecture discussions, brainstorming (creative)
543
+ temperature: 0.3
544
+
545
+ # ────────────────────────────────────────────────────────────────────────────────
546
+ # TOOLS (The Main Feature of This Example!)
547
+ # ────────────────────────────────────────────────────────────────────────────────
548
+ # Tools extend the agent's capabilities beyond text generation.
549
+ # Each tool is described to the LLM, which decides when to use it.
550
+ #
551
+ # Tool types:
552
+ # • mcp - Model Context Protocol server (standard, reusable)
553
+ # • function - Custom logic implemented by runtime
554
+ # • api - REST API endpoint (OpenAPI spec)
555
+ #
556
+ # The LLM sees tool descriptions in its system prompt and can call them
557
+ # using structured function calling (supported by Claude, GPT-4, Gemini, etc.)
558
+ # ────────────────────────────────────────────────────────────────────────────────
559
+ tools:
560
+ # ──────────────────────────────────────────────────────────────────────────────
561
+ # TOOL 1: GitHub MCP Server
562
+ # ──────────────────────────────────────────────────────────────────────────────
563
+ # Connects to the official GitHub MCP server maintained by Anthropic.
564
+ # Provides 20+ functions: create_pr, get_pr, create_issue, search_code, etc.
565
+ #
566
+ # How it works:
567
+ # 1. Runtime spawns: npx -y @modelcontextprotocol/server-github
568
+ # 2. MCP server connects via stdio and reports available functions
569
+ # 3. LLM sees descriptions like "create_pull_request: Create a new PR..."
570
+ # 4. When LLM calls a function, runtime forwards to MCP server
571
+ # 5. MCP server uses GitHub API (authenticated with GITHUB_TOKEN)
572
+ # 6. Result flows back: MCP server → runtime → LLM
573
+ # ──────────────────────────────────────────────────────────────────────────────
574
+ - type: mcp
575
+
576
+ # Tool name - used in logs and by LLM to reference this capability
577
+ # Convention: lowercase, descriptive (github, slack, database)
578
+ name: github
579
+
580
+ # Description - helps LLM understand when to use this tool
581
+ # Be specific! Include what it CAN and CANNOT do.
582
+ description: |
583
+ GitHub API access for repository operations. Provides functions to:
584
+ - Create, read, and update pull requests
585
+ - Manage issues (create, comment, label, close)
586
+ - Search code and repositories
587
+ - Read file contents and directory structures
588
+ - View commit history and diffs
589
+
590
+ Requires: GITHUB_TOKEN environment variable with repo scope.
591
+ Note: Cannot force push or delete repositories (safety constraints).
592
+
593
+ # Configuration specific to this MCP server
594
+ config:
595
+ # server: Command to start the MCP server
596
+ # npx -y: Run without install prompt, auto-install if needed
597
+ # The server listens on stdio for commands from the runtime
598
+ server: npx -y @modelcontextprotocol/server-github
599
+
600
+ # Environment variables passed to the MCP server
601
+ # The GitHub server needs GITHUB_TOKEN for API authentication
602
+ env:
603
+ # ${GITHUB_TOKEN} - reads from your shell environment
604
+ # Get a token: https://github.com/settings/tokens
605
+ # Required scopes: repo (for private repos) or public_repo (public only)
606
+ GITHUB_TOKEN: ${GITHUB_TOKEN}
607
+
608
+ # Optional: Configure timeout for MCP operations
609
+ # Useful for slow APIs or large repo operations
610
+ # timeout_seconds: 30
611
+
612
+ # Optional: Restrict which GitHub functions are available
613
+ # By default, all functions are exposed. You can allowlist:
614
+ # allowed_functions:
615
+ # - create_pull_request
616
+ # - get_pull_request
617
+ # - create_issue
618
+ # This is useful for security (prevent certain operations) or
619
+ # to simplify the LLM's choices (fewer options = better decisions)
620
+
621
+ # ──────────────────────────────────────────────────────────────────────────────
622
+ # TOOL 2: Filesystem MCP Server
623
+ # ──────────────────────────────────────────────────────────────────────────────
624
+ # Provides sandboxed file system access. The agent can read/write files
625
+ # within specified directories.
626
+ #
627
+ # Security note:
628
+ # The first argument (/workspace) defines the ROOT of accessible paths.
629
+ # The agent CANNOT access files outside this directory (sandboxing).
630
+ # This prevents accidental or malicious access to system files.
631
+ # ──────────────────────────────────────────────────────────────────────────────
632
+ - type: mcp
633
+
634
+ name: filesystem
635
+
636
+ description: |
637
+ Read and write files within /workspace directory. Provides functions to:
638
+ - List directory contents (recursive and non-recursive)
639
+ - Read file contents (text and binary)
640
+ - Write/update files (create if not exists)
641
+ - Create directories
642
+ - Check file existence and metadata
643
+
644
+ Security: Sandboxed to /workspace - cannot access parent directories.
645
+ Use this to analyze code, read configs, save reports.
646
+
647
+ config:
648
+ # MCP server for filesystem operations
649
+ server: npx -y @modelcontextprotocol/server-filesystem
650
+
651
+ # Arguments passed to the filesystem server
652
+ # First arg: Root directory (all operations are relative to this)
653
+ args:
654
+ - /workspace
655
+ # Optional: Enable/disable writes (default: writes enabled)
656
+ # Add this for read-only access:
657
+ # - --read-only true
658
+
659
+ # Optional: File type restrictions
660
+ # allowed_extensions:
661
+ # - .py
662
+ # - .js
663
+ # - .md
664
+ # - .yaml
665
+ # denied_extensions:
666
+ # - .env # Prevent reading secrets
667
+ # - .key
668
+ # - .pem
669
+
670
+ # ──────────────────────────────────────────────────────────────────────────────
671
+ # TOOL 3: Custom Function Tool
672
+ # ──────────────────────────────────────────────────────────────────────────────
673
+ # Function tools let you expose runtime-specific logic to the agent.
674
+ # Unlike MCP (which spawns a separate process), functions run in your
675
+ # application runtime (Python, Node.js, Go, etc.).
676
+ #
677
+ # Use function tools when:
678
+ # • You need deep integration with your application logic
679
+ # • Performance is critical (no IPC overhead)
680
+ # • The functionality is unique to your use case (no reusable MCP server)
681
+ #
682
+ # Use MCP when:
683
+ # • You want to reuse the tool across multiple agents/frameworks
684
+ # • You're integrating a third-party service (GitHub, Slack, AWS, etc.)
685
+ # • You want process isolation for security
686
+ # ──────────────────────────────────────────────────────────────────────────────
687
+ - type: function
688
+
689
+ # Function name - unique identifier
690
+ # Convention: verb_noun (run_tests, deploy_service, send_email)
691
+ name: run_tests
692
+
693
+ # Description for the LLM - be VERY specific about:
694
+ # • What the function does
695
+ # • When to use it (before merging? on demand?)
696
+ # • What it returns (exit code? detailed results?)
697
+ # • Any prerequisites (must install deps first? requires certain env?)
698
+ description: |
699
+ Execute the project's test suite and return results.
700
+
701
+ Behavior:
702
+ - Runs tests using the project's configured test runner (pytest, jest, etc.)
703
+ - If test_path is provided, runs only those tests (file or directory)
704
+ - If test_path is omitted, runs the full test suite
705
+ - Returns: pass/fail status, number of tests, execution time, failure details
706
+
707
+ Use this:
708
+ - Before suggesting a PR is ready to merge
709
+ - After making code changes to verify nothing broke
710
+ - To verify a specific module works correctly
711
+
712
+ Prerequisites:
713
+ - Project dependencies must be installed (npm install, pip install, etc.)
714
+ - Test configuration must exist (pytest.ini, jest.config.js, etc.)
715
+
716
+ # Input schema - JSON Schema defining valid arguments
717
+ # The LLM generates arguments matching this schema when calling the function
718
+ # Runtime validates arguments before executing your function
719
+ input_schema:
720
+ type: object
721
+
722
+ # Properties - available parameters
723
+ properties:
724
+ test_path:
725
+ type: string
726
+ description: |
727
+ Optional path to specific test file or directory.
728
+ Examples:
729
+ - "tests/unit/auth_test.py" (single file)
730
+ - "tests/integration/" (directory)
731
+ - "" or null (all tests)
732
+
733
+ # Optional: Pattern validation
734
+ # pattern: "^tests/.*" # Must start with tests/
735
+
736
+ verbose:
737
+ type: boolean
738
+ description: |
739
+ If true, return detailed output for each test.
740
+ If false, return summary only (faster, less token usage).
741
+ default: false
742
+
743
+ # You can add more parameters:
744
+ # coverage:
745
+ # type: boolean
746
+ # description: Generate code coverage report
747
+ # parallel:
748
+ # type: boolean
749
+ # description: Run tests in parallel (faster but may have side effects)
750
+
751
+ # Required parameters - must be provided when calling function
752
+ # Empty array = all parameters optional
753
+ required: []
754
+
755
+ # Optional: Additional constraints
756
+ # additionalProperties: false # Reject unknown properties
757
+
758
+ # Output schema - what the function returns
759
+ # This helps the LLM understand the result structure
760
+ # (Not enforced by runtime, but good for documentation)
761
+ output_schema:
762
+ type: object
763
+ properties:
764
+ status:
765
+ type: string
766
+ enum: [passed, failed, error]
767
+ description: Overall test result
768
+
769
+ total_tests:
770
+ type: integer
771
+ description: Number of tests executed
772
+
773
+ passed_count:
774
+ type: integer
775
+ description: Number of passing tests
776
+
777
+ failed_count:
778
+ type: integer
779
+ description: Number of failing tests
780
+
781
+ duration_seconds:
782
+ type: number
783
+ description: Total execution time
784
+
785
+ failures:
786
+ type: array
787
+ description: Details of failed tests (if any)
788
+ items:
789
+ type: object
790
+ properties:
791
+ test_name:
792
+ type: string
793
+ error_message:
794
+ type: string
795
+ file:
796
+ type: string
797
+ line:
798
+ type: integer
799
+
800
+ # Implementation is provided by the RUNTIME, not in the manifest.
801
+ #
802
+ # Example Python runtime implementation:
803
+ # ```python
804
+ # async def run_tests(test_path: str = "", verbose: bool = False):
805
+ # import subprocess
806
+ # cmd = ["pytest"]
807
+ # if test_path:
808
+ # cmd.append(test_path)
809
+ # if verbose:
810
+ # cmd.append("-v")
811
+ # result = subprocess.run(cmd, capture_output=True, text=True)
812
+ # # Parse result and return structured data matching output_schema
813
+ # return {
814
+ # "status": "passed" if result.returncode == 0 else "failed",
815
+ # "total_tests": parse_pytest_output(result.stdout),
816
+ # ...
817
+ # }
818
+ # ```
819
+ #
820
+ # Example Node.js runtime implementation:
821
+ # ```javascript
822
+ # async function run_tests({ test_path = "", verbose = false }) {
823
+ # const { exec } = require('child_process');
824
+ # const cmd = `jest ${test_path} ${verbose ? '--verbose' : ''}`;
825
+ # const result = await execPromise(cmd);
826
+ # return {
827
+ # status: result.code === 0 ? 'passed' : 'failed',
828
+ # total_tests: parseJestOutput(result.stdout),
829
+ # ...
830
+ # };
831
+ # }
832
+ # ```
833
+
834
+ # ═══════════════════════════════════════════════════════════════════════════════════
835
+ # SUMMARY: WHAT WE BUILT
836
+ # ═══════════════════════════════════════════════════════════════════════════════════
837
+ #
838
+ # This agent can:
839
+ # ✓ Understand natural language requests about code review
840
+ # ✓ Read files from /workspace using filesystem MCP server
841
+ # ✓ Interact with GitHub using github MCP server (PRs, issues, etc.)
842
+ # ✓ Run tests using custom function tool
843
+ # ✓ Reason about when and how to use each tool
844
+ # ✓ Combine multiple tools to complete complex tasks
845
+ #
846
+ # Example interaction flow:
847
+ # User: "Review the latest PR and run tests"
848
+ # Agent: [Calls github.get_latest_pr()]
849
+ # "I found PR #42: 'Add login feature'. Let me check the code."
850
+ # [Calls filesystem.read_file("src/auth/login.py")]
851
+ # "The code looks good. Running tests to verify..."
852
+ # [Calls run_tests({ test_path: "tests/auth/" })]
853
+ # "All 12 tests passed! The PR is ready to merge."
854
+ #
855
+ # What we learned:
856
+ # → MCP servers provide reusable, standardized tools
857
+ # → Function tools provide custom runtime logic
858
+ # → Tools are described to the LLM, which chooses when to use them
859
+ # → The runtime handles tool execution and passes results back to the LLM
860
+ #
861
+ # Next example (03-agent-with-safety.ossa.yaml):
862
+ # → Production-ready safety: PII detection, rate limiting, guardrails
863
+ # → Autonomy controls: human-in-the-loop, approval workflows
864
+ # → Compliance: SOC2, GDPR, HIPAA considerations
865
+ #
866
+ # ═══════════════════════════════════════════════════════════════════════════════════