@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
@@ -1 +0,0 @@
1
- [{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/export.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/generate.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/github-sync.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/gitlab-agent.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/import.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/init.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/migrate.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/release.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/run.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/schema.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/setup.command.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'options' is defined but never used. Allowed unused args must match /^_/u.","line":214,"column":15,"nodeType":null,"messageId":"unusedVar","endLine":214,"endColumn":22}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * OSSA Setup Command\n * Professional setup commands for branch protection and release automation\n * Follows DRY, OpenAPI, Zod, CRUD principles\n */\n\nimport chalk from 'chalk';\nimport { Command } from 'commander';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { execSync } from 'child_process';\nimport { z } from 'zod';\n\n/**\n * Zod Schema for Setup Options\n */\nconst SetupOptionsSchema = z.object({\n force: z.boolean().optional().default(false),\n verbose: z.boolean().optional().default(false),\n});\n\ntype SetupOptions = z.infer<typeof SetupOptionsSchema>;\n\n/**\n * Base Setup Service (DRY)\n */\nclass SetupService {\n protected projectRoot: string;\n\n constructor() {\n this.projectRoot = this.findProjectRoot();\n }\n\n protected findProjectRoot(): string {\n let current = process.cwd();\n for (let i = 0; i < 10; i++) {\n const packageJson = path.join(current, 'package.json');\n if (fs.existsSync(packageJson)) {\n return current;\n }\n const parent = path.dirname(current);\n if (parent === current) break;\n current = parent;\n }\n return process.cwd();\n }\n\n protected log(message: string, type: 'info' | 'success' | 'warning' | 'error' = 'info'): void {\n const colors = {\n info: chalk.blue,\n success: chalk.green,\n warning: chalk.yellow,\n error: chalk.red,\n };\n console.log(colors[type](message));\n }\n\n protected exec(command: string, options?: { cwd?: string; silent?: boolean }): string {\n try {\n const result = execSync(command, {\n cwd: options?.cwd || this.projectRoot,\n encoding: 'utf-8',\n stdio: options?.silent ? 'pipe' : 'inherit',\n });\n return result.toString();\n } catch {\n throw new Error(`Command failed: ${command}`);\n }\n }\n\n protected fileExists(filePath: string): boolean {\n return fs.existsSync(path.resolve(this.projectRoot, filePath));\n }\n\n protected ensureDirectory(dirPath: string): void {\n const fullPath = path.resolve(this.projectRoot, dirPath);\n if (!fs.existsSync(fullPath)) {\n fs.mkdirSync(fullPath, { recursive: true });\n }\n }\n}\n\n/**\n * Branch Protection Setup Service\n */\nclass BranchProtectionService extends SetupService {\n private readonly protectedBranches = ['main', 'development'];\n private readonly hooksDir = '.git/hooks';\n private readonly hookFile = 'post-checkout';\n\n async setup(options: SetupOptions): Promise<void> {\n this.log('🔒 Setting up branch protection for main and development...', 'info');\n this.log('');\n\n // Ensure hooks directory exists\n this.ensureDirectory(this.hooksDir);\n\n // Create post-checkout hook\n await this.createPostCheckoutHook(options.force);\n\n // Configure git hooks path\n this.exec('git config core.hooksPath .git/hooks', { silent: true });\n\n this.log('');\n this.log('✅ Branch protection installed!', 'success');\n this.log('');\n this.log(`Protected branches: ${this.protectedBranches.join(', ')}`);\n this.log('');\n this.log(\n 'The hook will automatically switch you back if you try to checkout these branches.'\n );\n this.log('');\n }\n\n private async createPostCheckoutHook(force: boolean): Promise<void> {\n const hookPath = path.resolve(this.projectRoot, this.hooksDir, this.hookFile);\n\n if (fs.existsSync(hookPath) && !force) {\n this.log(`✅ Post-checkout hook already exists`, 'info');\n // Ensure it's executable\n fs.chmodSync(hookPath, 0o755);\n return;\n }\n\n const hookContent = this.generateHookContent();\n fs.writeFileSync(hookPath, hookContent, { mode: 0o755 });\n\n this.log(`✅ Created post-checkout hook`, 'success');\n }\n\n private generateHookContent(): string {\n return `#!/bin/bash\n#\n# Git Post-Checkout Hook\n# Prevents checking out main and development branches locally\n# Enforces feature branch workflow\n#\n\n# Post-checkout hook receives:\n# $1 = previous HEAD\n# $2 = new HEAD\n# $3 = flag (0=file checkout, 1=branch checkout)\n\n# Only block branch checkouts, not file checkouts\nif [ \"$3\" != \"1\" ]; then\n exit 0\nfi\n\n# Get current branch name\nCURRENT_BRANCH=$(git branch --show-current 2>/dev/null)\n\n# Protected branches that cannot be checked out locally\nPROTECTED_BRANCHES=\"main development\"\n\n# Check if we're on a protected branch\nfor PROTECTED in $PROTECTED_BRANCHES; do\n if [ \"$CURRENT_BRANCH\" = \"$PROTECTED\" ]; then\n echo \"\"\n echo \"❌ ERROR: Cannot work on '$PROTECTED' branch locally\"\n echo \"\"\n echo \"This project enforces a feature branch workflow:\"\n echo \" • Work is done on feature branches\"\n echo \" • Feature branches → merge to development (via MR)\"\n echo \" • Development → merge to main (via MR)\"\n echo \"\"\n echo \"Switching you back to your previous branch...\"\n echo \"\"\n \n # Switch back to previous branch or a safe default\n PREVIOUS_BRANCH=$(git reflog | grep \"checkout:\" | head -2 | tail -1 | awk '{print $NF}' | sed 's|.*:||')\n \n if [ -n \"$PREVIOUS_BRANCH\" ] && [ \"$PREVIOUS_BRANCH\" != \"$PROTECTED\" ]; then\n git checkout \"$PREVIOUS_BRANCH\" 2>/dev/null\n echo \"✅ Switched back to: $PREVIOUS_BRANCH\"\n else\n # Try to find a feature branch\n FEATURE_BRANCH=$(git branch -a | grep -E \"feat/|feature/\" | head -1 | sed 's|.*/||' | xargs)\n if [ -n \"$FEATURE_BRANCH\" ]; then\n git checkout \"$FEATURE_BRANCH\" 2>/dev/null\n echo \"✅ Switched to feature branch: $FEATURE_BRANCH\"\n else\n echo \"⚠️ Could not auto-switch. Please manually checkout a feature branch:\"\n echo \" git checkout -b feat/your-feature development\"\n fi\n fi\n \n echo \"\"\n echo \"To work on this project:\"\n echo \" 1. Create a feature branch: git checkout -b feat/your-feature development\"\n echo \" 2. Make your changes\"\n echo \" 3. Push and create a merge request\"\n echo \"\"\n echo \"If you need to view $PROTECTED:\"\n echo \" • Use: git worktree add ../project-$PROTECTED $PROTECTED\"\n echo \" • Or view on GitLab: https://gitlab.com/blueflyio/openstandardagents/-/tree/$PROTECTED\"\n echo \"\"\n exit 1\n fi\ndone\n\n# Allow checkout\nexit 0\n`;\n }\n}\n\n/**\n * Release Automation Setup Service\n */\nclass ReleaseAutomationService extends SetupService {\n private readonly requiredDependencies = ['@gitbeaker/rest', '@octokit/rest'];\n private readonly requiredEnvVars = ['GITLAB_TOKEN', 'NPM_TOKEN', 'GITHUB_TOKEN'];\n\n async setup(options: SetupOptions): Promise<void> {\n this.log('🚀 Release Automation Setup', 'info');\n this.log('==============================', 'info');\n this.log('');\n\n // Check branch\n await this.checkBranch();\n\n // Check dependencies\n await this.checkDependencies();\n\n // Check CI/CD variables\n this.checkCICDVariables();\n\n // Check webhooks\n this.checkWebhooks();\n\n // Run tests\n await this.runTests();\n\n this.log('');\n this.log('==============================', 'info');\n this.log('✅ Setup checks complete!', 'success');\n this.log('');\n this.log('Next steps:');\n this.log(' 1. Configure webhooks in GitLab UI');\n this.log(' 2. Set CI/CD variables in GitLab UI');\n this.log(' 3. Create test milestone: v0.2.8-test');\n this.log(' 4. Verify automation works');\n this.log('');\n }\n\n private async checkBranch(): Promise<void> {\n try {\n const branch = this.exec('git branch --show-current', { silent: true }).trim();\n if (branch !== 'development') {\n this.log(\n `⚠️ Warning: Not on development branch (current: ${branch})`,\n 'warning'\n );\n this.log(' Switch to development first: git checkout development', 'warning');\n throw new Error('Must be on development branch');\n }\n this.log('✅ On development branch', 'success');\n this.log('');\n } catch (error) {\n if (error instanceof Error && error.message === 'Must be on development branch') {\n throw error;\n }\n throw new Error('Failed to check git branch');\n }\n }\n\n private async checkDependencies(): Promise<void> {\n this.log('📦 Checking dependencies...', 'info');\n\n for (const dep of this.requiredDependencies) {\n try {\n this.exec(`npm list ${dep}`, { silent: true });\n this.log(` ✅ ${dep}`, 'success');\n } catch {\n this.log(` ❌ ${dep} not found`, 'error');\n this.log(' Run: npm install', 'error');\n throw new Error(`Missing dependency: ${dep}`);\n }\n }\n\n this.log('✅ Dependencies installed', 'success');\n this.log('');\n }\n\n private checkCICDVariables(): void {\n this.log('🔐 Checking CI/CD variables...', 'info');\n this.log('');\n this.log('Required variables (set in GitLab UI):');\n for (const varName of this.requiredEnvVars) {\n const exists = !!process.env[varName];\n const status = exists ? '✅' : '❌';\n this.log(` ${status} ${varName}${exists ? ' (set)' : ' (missing)'}`);\n }\n this.log('');\n this.log('To set these:');\n this.log(' 1. Go to: Settings → CI/CD → Variables');\n this.log(' 2. Add each variable');\n this.log(' 3. Mark as \\'Protected\\' and \\'Masked\\'');\n this.log('');\n }\n\n private checkWebhooks(): void {\n this.log('🔗 Webhooks to configure:', 'info');\n this.log('');\n this.log('Webhook 1: Milestone Events');\n this.log(' URL: https://your-webhook-endpoint.com/milestone');\n this.log(' Trigger: Milestone events');\n this.log('');\n this.log('Webhook 2: Push Events');\n this.log(' URL: https://your-webhook-endpoint.com/push');\n this.log(' Trigger: Push events (development branch)');\n this.log('');\n this.log('To configure:');\n this.log(' Go to: Settings → Webhooks');\n this.log('');\n }\n\n private async runTests(): Promise<void> {\n this.log('🧪 Running tests...', 'info');\n try {\n this.exec('npm test', { silent: false });\n this.log('✅ All tests passing', 'success');\n } catch {\n this.log('❌ Tests failed', 'error');\n throw new Error('Tests failed');\n }\n }\n}\n\n/**\n * Main Setup Command\n */\nexport const setupCommand = new Command('setup')\n .description('Setup OSSA project tools and automation')\n .option('-f, --force', 'Force overwrite existing configuration')\n .option('-v, --verbose', 'Verbose output');\n\n/**\n * Branch Protection Subcommand\n */\nconst branchProtectionSubcommand = new Command('branch-protection')\n .alias('bp')\n .description('Setup git hooks to prevent checking out main/development locally')\n .option('-f, --force', 'Force overwrite existing hooks')\n .option('-v, --verbose', 'Verbose output')\n .action(async (options: { force?: boolean; verbose?: boolean }) => {\n try {\n const validated = SetupOptionsSchema.parse(options);\n const service = new BranchProtectionService();\n await service.setup(validated);\n } catch (error) {\n if (error instanceof z.ZodError) {\n console.error(chalk.red('Validation error:'), error.issues);\n process.exit(1);\n }\n console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);\n process.exit(1);\n }\n });\n\n/**\n * Release Automation Subcommand\n */\nconst releaseAutomationSubcommand = new Command('release-automation')\n .alias('ra')\n .description('Setup release automation (dependencies, CI/CD variables, webhooks)')\n .option('-f, --force', 'Force setup even if checks fail')\n .option('-v, --verbose', 'Verbose output')\n .action(async (options: { force?: boolean; verbose?: boolean }) => {\n try {\n const validated = SetupOptionsSchema.parse(options);\n const service = new ReleaseAutomationService();\n await service.setup(validated);\n } catch (error) {\n if (error instanceof z.ZodError) {\n console.error(chalk.red('Validation error:'), error.issues);\n process.exit(1);\n }\n console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);\n process.exit(1);\n }\n });\n\n// Register subcommands\nsetupCommand.addCommand(branchProtectionSubcommand);\nsetupCommand.addCommand(releaseAutomationSubcommand);\n\n","usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/sync.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/commands/validate.command.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/cli/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/di-container.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/repositories/manifest.repository.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/repositories/schema.repository.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/generation.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/github-sync/github-client.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/github-sync/gitlab-client.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/github-sync/schemas.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/github-sync/sync.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/gitlab-agent.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/migration.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/base-crud.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/merge-request.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/milestone.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/release.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/schemas/release.schema.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/tag.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/release-automation/webhook.service.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'project' is assigned a value but never used.","line":50,"column":15,"nodeType":null,"messageId":"unusedVar","endLine":50,"endColumn":22},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'project' is assigned a value but never used.","line":117,"column":13,"nodeType":null,"messageId":"unusedVar","endLine":117,"endColumn":20},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'project' is assigned a value but never used.","line":145,"column":13,"nodeType":null,"messageId":"unusedVar","endLine":145,"endColumn":20}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Webhook Service\n * Handles GitLab webhooks with Zod validation\n */\n\nimport {\n MilestoneWebhookPayloadSchema,\n PushWebhookPayloadSchema,\n WebhookResponseSchema,\n type MilestoneWebhookPayload,\n type PushWebhookPayload,\n type WebhookResponse,\n} from './schemas/release.schema.js';\nimport { ReleaseService } from './release.service.js';\nimport { MilestoneService } from './milestone.service.js';\nimport { TagService } from './tag.service.js';\nimport { MergeRequestService } from './merge-request.service.js';\n\n/**\n * Webhook Service\n * DRY: Centralized webhook handling\n */\nexport class WebhookService {\n private releaseService: ReleaseService;\n private milestoneService: MilestoneService;\n private tagService: TagService;\n private mergeRequestService: MergeRequestService;\n\n constructor(\n gitlabToken: string,\n projectId: string | number = process.env.CI_PROJECT_ID || ''\n ) {\n this.releaseService = new ReleaseService(gitlabToken, projectId);\n this.milestoneService = new MilestoneService(gitlabToken, projectId);\n this.tagService = new TagService(gitlabToken, projectId);\n this.mergeRequestService = new MergeRequestService(gitlabToken, projectId);\n }\n\n /**\n * Handle milestone webhook\n */\n async handleMilestoneWebhook(\n payload: unknown\n ): Promise<WebhookResponse> {\n try {\n // Validate payload with Zod\n const validated = MilestoneWebhookPayloadSchema.parse(payload);\n const actions: WebhookResponse['actions'] = [];\n\n const { project, object_attributes: milestone } = validated;\n\n // Determine if this is a create or close event\n const isNewMilestone =\n milestone.state === 'active' &&\n new Date(milestone.created_at).getTime() ===\n new Date(milestone.updated_at).getTime();\n\n if (isNewMilestone) {\n // Milestone created - create dev tag and branch\n const action = await this.handleMilestoneCreate(validated);\n if (action) actions.push(action);\n } else if (milestone.state === 'closed') {\n // Milestone closed - create RC\n const action = await this.handleMilestoneClose(validated);\n if (action) actions.push(action);\n }\n\n return WebhookResponseSchema.parse({\n success: true,\n message: `Milestone ${milestone.title} processed`,\n actions,\n });\n } catch (error) {\n return WebhookResponseSchema.parse({\n success: false,\n message: `Webhook processing failed: ${error}`,\n actions: [],\n });\n }\n }\n\n /**\n * Handle push webhook\n */\n async handlePushWebhook(payload: unknown): Promise<WebhookResponse> {\n try {\n // Validate payload with Zod\n const validated = PushWebhookPayloadSchema.parse(payload);\n const actions: WebhookResponse['actions'] = [];\n\n // Only process development branch pushes\n if (validated.ref === 'refs/heads/development') {\n const action = await this.handleDevelopmentPush(validated);\n if (action) actions.push(action);\n }\n\n return WebhookResponseSchema.parse({\n success: true,\n message: 'Push webhook processed',\n actions,\n });\n } catch (error) {\n return WebhookResponseSchema.parse({\n success: false,\n message: `Webhook processing failed: ${error}`,\n actions: [],\n });\n }\n }\n\n /**\n * Handle milestone creation\n */\n private async handleMilestoneCreate(\n payload: MilestoneWebhookPayload\n ): Promise<{ type: string; status: string; details?: Record<string, unknown> } | null> {\n const { project, object_attributes: milestone } = payload;\n const version = milestone.title.replace(/^v/, '');\n\n // Create initial dev tag\n const devTag = `v${version}-dev.0`;\n await this.tagService.create({\n name: devTag,\n ref: 'development',\n message: `Initial dev tag for ${milestone.title}`,\n });\n\n return {\n type: 'milestone_created',\n status: 'success',\n details: {\n milestoneId: milestone.id,\n tag: devTag,\n version,\n },\n };\n }\n\n /**\n * Handle milestone closure\n */\n private async handleMilestoneClose(\n payload: MilestoneWebhookPayload\n ): Promise<{ type: string; status: string; details?: Record<string, unknown> } | null> {\n const { project, object_attributes: milestone } = payload;\n const version = milestone.title.replace(/^v/, '');\n\n // Get milestone statistics\n const milestoneData = await this.milestoneService.read(milestone.id);\n if (!milestoneData) {\n throw new Error(`Milestone ${milestone.id} not found`);\n }\n\n // Check all issues are closed\n if (milestoneData.statistics.openIssues > 0) {\n throw new Error(\n `Cannot create RC: ${milestoneData.statistics.openIssues} issues still open`\n );\n }\n\n // Create RC tag\n const rcTag = `v${version}-rc.1`;\n await this.tagService.create({\n name: rcTag,\n ref: 'development',\n message: `Release candidate for ${milestone.title}`,\n });\n\n // Create MR: development → main\n const mr = await this.mergeRequestService.create({\n sourceBranch: 'development',\n targetBranch: 'main',\n title: `Release ${milestone.title}`,\n description: `Release candidate ${rcTag} for milestone ${milestone.title}`,\n labels: ['release', 'automation'],\n milestoneId: milestone.id,\n });\n\n return {\n type: 'milestone_closed',\n status: 'success',\n details: {\n milestoneId: milestone.id,\n rcTag,\n mergeRequestId: mr.id,\n },\n };\n }\n\n /**\n * Handle development branch push\n */\n private async handleDevelopmentPush(\n payload: PushWebhookPayload\n ): Promise<{ type: string; status: string; details?: Record<string, unknown> } | null> {\n // Auto-increment dev tag\n // This would be implemented based on current version detection\n // For now, return success\n\n return {\n type: 'dev_tag_incremented',\n status: 'success',\n details: {\n branch: payload.ref,\n commits: payload.commits.length,\n },\n };\n }\n}\n\n","usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/runtime/claude/capability-mapper.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/runtime/claude/claude-adapter.ts","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'options' is defined but never used. Allowed unused args must match /^_/u.","line":268,"column":5,"nodeType":null,"messageId":"unusedVar","endLine":268,"endColumn":12}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * Claude Runtime Adapter\n * Runs OSSA agents using Anthropic's Claude API\n */\n\nimport Anthropic from '@anthropic-ai/sdk';\nimport { ManifestParser } from './manifest-parser.js';\nimport { CapabilityMapper } from './capability-mapper.js';\nimport type {\n OssaManifestWithAnthropic,\n ClaudeMessage,\n ClaudeRunOptions,\n ClaudeAdapterConfig,\n AgentInfo,\n ToolHandler,\n ClaudeTool,\n} from './types.js';\n\n/**\n * Claude adapter for executing OSSA agents\n */\nexport class ClaudeAdapter {\n private client: Anthropic;\n private parser: ManifestParser;\n private mapper: CapabilityMapper;\n private messages: ClaudeMessage[] = [];\n private conversationHistory: Anthropic.MessageParam[] = [];\n\n constructor(config: ClaudeAdapterConfig) {\n // Initialize Anthropic client\n this.client = new Anthropic({\n apiKey: config.apiKey || process.env.ANTHROPIC_API_KEY,\n });\n\n // Initialize parser and mapper\n this.parser = new ManifestParser(config.manifest);\n this.mapper = new CapabilityMapper();\n\n // Validate manifest\n const validation = this.parser.validate();\n if (!validation.valid) {\n throw new Error(\n `Invalid OSSA manifest: ${validation.errors.join(', ')}`\n );\n }\n\n // Check if Anthropic integration is enabled\n if (!this.parser.isAnthropicEnabled()) {\n console.warn(\n 'Warning: Anthropic extension is disabled in manifest'\n );\n }\n\n // Initialize tools\n this.initializeTools();\n }\n\n /**\n * Initialize tools from manifest\n */\n private initializeTools(): void {\n // Map Claude extension tools first (highest priority)\n const anthropicExt = this.parser.getAnthropicExtension();\n if (anthropicExt?.tools) {\n this.mapper.mapClaudeTools(anthropicExt.tools);\n }\n\n // Map OSSA spec tools\n const specTools = this.parser.getSpecTools();\n this.mapper.mapOssaTools(specTools);\n\n // Map MCP capabilities if any\n for (const tool of specTools) {\n if (tool.type === 'mcp' && tool.capabilities) {\n this.mapper.mapMcpCapabilities(tool.capabilities);\n } else if (tool.type === 'http') {\n this.mapper.mapHttpTool(tool);\n }\n }\n }\n\n /**\n * Register a tool handler\n */\n registerToolHandler(name: string, handler: ToolHandler): boolean {\n return this.mapper.registerToolHandler(name, handler);\n }\n\n /**\n * Execute a tool call\n */\n private async executeTool(\n name: string,\n input: Record<string, unknown>\n ): Promise<string> {\n const tool = this.mapper.getTool(name);\n if (!tool) {\n return JSON.stringify({\n error: `Tool '${name}' not found`,\n });\n }\n\n if (tool.handler) {\n try {\n return await tool.handler(input);\n } catch (error) {\n return JSON.stringify({\n error: `Error executing ${name}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n // Default: return placeholder response\n return JSON.stringify({\n message: `Tool '${name}' executed`,\n input,\n note: 'No handler registered for this tool',\n });\n }\n\n /**\n * Initialize the conversation\n */\n initialize(): void {\n this.messages = [];\n this.conversationHistory = [];\n }\n\n /**\n * Send a message and get a response\n */\n async chat(\n userMessage: string,\n options?: ClaudeRunOptions\n ): Promise<string> {\n // Add user message to history\n this.conversationHistory.push({\n role: 'user',\n content: userMessage,\n });\n\n const tools = this.mapper.getClaudeTools();\n let turnCount = 0;\n const maxTurns = options?.maxTurns || 10;\n\n while (turnCount < maxTurns) {\n turnCount++;\n\n if (options?.verbose) {\n console.log(`\\n[Turn ${turnCount}/${maxTurns}]`);\n }\n\n // Call Claude API\n const response = await this.client.messages.create({\n model: this.parser.getModel(),\n max_tokens: this.parser.getMaxTokens(),\n temperature: this.parser.getTemperature(),\n system: this.parser.getSystemPrompt(),\n messages: this.conversationHistory,\n tools: tools.length > 0 ? tools : undefined,\n stop_sequences: this.parser.getStopSequences(),\n });\n\n if (options?.verbose) {\n console.log(\n ` Model: ${response.model}, Stop: ${response.stop_reason}`\n );\n console.log(\n ` Tokens: ${response.usage.input_tokens} in, ${response.usage.output_tokens} out`\n );\n }\n\n // Add assistant response to history\n this.conversationHistory.push({\n role: 'assistant',\n content: response.content,\n });\n\n // Check if we need to execute tools\n const toolUses = response.content.filter(\n (block) => block.type === 'tool_use'\n );\n\n if (toolUses.length > 0) {\n if (options?.verbose) {\n console.log(` [Executing ${toolUses.length} tool(s)...]`);\n }\n\n // Execute all tool calls\n const toolResults: Array<{\n type: 'tool_result';\n tool_use_id: string;\n content: string;\n }> = [];\n\n for (const toolUse of toolUses) {\n if (toolUse.type !== 'tool_use') continue;\n\n const { id, name, input } = toolUse;\n\n if (options?.verbose) {\n console.log(\n ` → ${name}(${JSON.stringify(input).substring(0, 100)}...)`\n );\n }\n\n const result = await this.executeTool(\n name,\n input as Record<string, unknown>\n );\n\n if (options?.verbose) {\n console.log(\n ` ← ${result.substring(0, 100)}${result.length > 100 ? '...' : ''}`\n );\n }\n\n toolResults.push({\n type: 'tool_result',\n tool_use_id: id,\n content: result,\n });\n }\n\n // Add tool results to conversation\n this.conversationHistory.push({\n role: 'user',\n content: toolResults,\n });\n\n // Continue the loop to get final response\n continue;\n }\n\n // Check if we have a text response\n const textBlocks = response.content.filter(\n (block) => block.type === 'text'\n );\n\n if (textBlocks.length > 0) {\n return textBlocks\n .map((block) => (block.type === 'text' ? block.text : ''))\n .join('\\n');\n }\n\n // No text and no tool calls - unexpected\n if (response.stop_reason === 'end_turn') {\n return '';\n }\n\n // Max tokens or stop sequence reached\n if (\n response.stop_reason === 'max_tokens' ||\n response.stop_reason === 'stop_sequence'\n ) {\n return '[Response truncated due to length limit]';\n }\n }\n\n return '[Max turns reached without completion]';\n }\n\n /**\n * Stream a response (for future implementation)\n */\n async chatStream(\n userMessage: string,\n options?: ClaudeRunOptions\n ): Promise<AsyncIterable<string>> {\n // Add user message to history\n this.conversationHistory.push({\n role: 'user',\n content: userMessage,\n });\n\n const tools = this.mapper.getClaudeTools();\n\n const stream = await this.client.messages.stream({\n model: this.parser.getModel(),\n max_tokens: this.parser.getMaxTokens(),\n temperature: this.parser.getTemperature(),\n system: this.parser.getSystemPrompt(),\n messages: this.conversationHistory,\n tools: tools.length > 0 ? tools : undefined,\n });\n\n // Return async generator\n return (async function* () {\n for await (const chunk of stream) {\n if (\n chunk.type === 'content_block_delta' &&\n chunk.delta.type === 'text_delta'\n ) {\n yield chunk.delta.text;\n }\n }\n })();\n }\n\n /**\n * Get agent information\n */\n getAgentInfo(): AgentInfo {\n const metadata = this.parser.getMetadata();\n const tools = Array.from(this.mapper.getTools().keys());\n\n return {\n name: metadata.name,\n model: this.parser.getModel(),\n tools,\n provider: 'anthropic',\n };\n }\n\n /**\n * Get conversation history\n */\n getConversationHistory(): Anthropic.MessageParam[] {\n return this.conversationHistory;\n }\n\n /**\n * Clear conversation history\n */\n clearHistory(): void {\n this.conversationHistory = [];\n this.messages = [];\n }\n\n /**\n * Get available tools\n */\n getTools(): ClaudeTool[] {\n return this.mapper.getClaudeTools();\n }\n\n /**\n * Get the Anthropic client (for advanced usage)\n */\n getClient(): Anthropic {\n return this.client;\n }\n\n /**\n * Get the manifest parser\n */\n getParser(): ManifestParser {\n return this.parser;\n }\n\n /**\n * Get the capability mapper\n */\n getMapper(): CapabilityMapper {\n return this.mapper;\n }\n\n /**\n * Create a Claude adapter from a manifest file\n */\n static async fromFile(\n manifestPath: string,\n apiKey?: string\n ): Promise<ClaudeAdapter> {\n const fs = await import('fs/promises');\n const manifestContent = await fs.readFile(manifestPath, 'utf-8');\n const manifest = JSON.parse(\n manifestContent\n ) as OssaManifestWithAnthropic;\n\n return new ClaudeAdapter({\n manifest,\n apiKey,\n });\n }\n\n /**\n * Create a Claude adapter from a manifest object\n */\n static fromManifest(\n manifest: OssaManifestWithAnthropic,\n apiKey?: string\n ): ClaudeAdapter {\n return new ClaudeAdapter({\n manifest,\n apiKey,\n });\n }\n}\n","usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/runtime/claude/manifest-parser.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/runtime/claude/types.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/runtime/openai.adapter.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validation.service.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/anthropic.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/autogen.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/crewai.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/cursor.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/langchain.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/langflow.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/langgraph.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/llamaindex.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/openai.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/services/validators/vercel-ai.validator.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/types/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/types/openapi-extensions.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/utils/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/Users/flux423/Sites/LLM/openstandardagents/src/utils/version.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]
@@ -1,62 +0,0 @@
1
- [
2
- {
3
- "description": "'options' is defined but never used. Allowed unused args must match /^_/u.",
4
- "check_name": "@typescript-eslint/no-unused-vars",
5
- "fingerprint": "2f9f79fe8e23387068b611520413b327",
6
- "severity": "minor",
7
- "location": {
8
- "path": "src/cli/commands/setup.command.ts",
9
- "lines": {
10
- "begin": 214
11
- }
12
- }
13
- },
14
- {
15
- "description": "'project' is assigned a value but never used.",
16
- "check_name": "@typescript-eslint/no-unused-vars",
17
- "fingerprint": "7402441c276d946f9420395c18052f97",
18
- "severity": "minor",
19
- "location": {
20
- "path": "src/services/release-automation/webhook.service.ts",
21
- "lines": {
22
- "begin": 50
23
- }
24
- }
25
- },
26
- {
27
- "description": "'project' is assigned a value but never used.",
28
- "check_name": "@typescript-eslint/no-unused-vars",
29
- "fingerprint": "71675c76efa40f112f4d1fa38384c254",
30
- "severity": "minor",
31
- "location": {
32
- "path": "src/services/release-automation/webhook.service.ts",
33
- "lines": {
34
- "begin": 117
35
- }
36
- }
37
- },
38
- {
39
- "description": "'project' is assigned a value but never used.",
40
- "check_name": "@typescript-eslint/no-unused-vars",
41
- "fingerprint": "94df01d04ebcbbc20035fbde29eb21ea",
42
- "severity": "minor",
43
- "location": {
44
- "path": "src/services/release-automation/webhook.service.ts",
45
- "lines": {
46
- "begin": 145
47
- }
48
- }
49
- },
50
- {
51
- "description": "'options' is defined but never used. Allowed unused args must match /^_/u.",
52
- "check_name": "@typescript-eslint/no-unused-vars",
53
- "fingerprint": "400e20d0938c08417406c37c76e4f043",
54
- "severity": "minor",
55
- "location": {
56
- "path": "src/services/runtime/claude/claude-adapter.ts",
57
- "lines": {
58
- "begin": 268
59
- }
60
- }
61
- }
62
- ]
@@ -1,33 +0,0 @@
1
- version: "3.8"
2
-
3
- services:
4
- ossa:
5
- build:
6
- context: ..
7
- dockerfile: Dockerfile
8
- container_name: ossa
9
- ports:
10
- - "7001:7001"
11
- environment:
12
- - NODE_ENV=production
13
- - PORT=7001
14
- - HOST=0.0.0.0
15
- networks:
16
- - llm-network
17
- healthcheck:
18
- test:
19
- [
20
- "CMD",
21
- "node",
22
- "-e",
23
- "require('http').get('http://localhost:7001/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))",
24
- ]
25
- interval: 30s
26
- timeout: 10s
27
- retries: 3
28
- start_period: 30s
29
- restart: unless-stopped
30
-
31
- networks:
32
- llm-network:
33
- external: true
@@ -1,126 +0,0 @@
1
- # GitLab Kubernetes Agent RBAC Configuration
2
- # Production-ready RBAC with least privilege principles
3
- # This replaces the default cluster-admin role with more restrictive permissions
4
-
5
- apiVersion: v1
6
- kind: ServiceAccount
7
- metadata:
8
- name: gitlab-agent
9
- namespace: gitlab-agent
10
- labels:
11
- app: gitlab-agent
12
- component: ossa-agent
13
- ---
14
- # ClusterRole with minimal required permissions for GitLab agent
15
- # Adjust based on your specific needs
16
- apiVersion: rbac.authorization.k8s.io/v1
17
- kind: ClusterRole
18
- metadata:
19
- name: gitlab-agent
20
- labels:
21
- app: gitlab-agent
22
- component: ossa-agent
23
- rules:
24
- # Core API access for agent operations
25
- - apiGroups: [""]
26
- resources:
27
- - namespaces
28
- - pods
29
- - pods/exec
30
- - pods/log
31
- - pods/portforward
32
- - services
33
- - endpoints
34
- - configmaps
35
- - secrets
36
- verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
37
-
38
- # Deployment and workload management
39
- - apiGroups: ["apps"]
40
- resources:
41
- - deployments
42
- - replicasets
43
- - statefulsets
44
- - daemonsets
45
- verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
46
-
47
- # Job and CronJob management
48
- - apiGroups: ["batch"]
49
- resources:
50
- - jobs
51
- - cronjobs
52
- verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
53
-
54
- # Ingress management
55
- - apiGroups: ["networking.k8s.io"]
56
- resources:
57
- - ingresses
58
- - ingressclasses
59
- verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
60
-
61
- # Service account and RBAC (for CI/CD operations)
62
- - apiGroups: [""]
63
- resources:
64
- - serviceaccounts
65
- verbs: ["get", "list", "watch", "create", "update", "patch"]
66
-
67
- - apiGroups: ["rbac.authorization.k8s.io"]
68
- resources:
69
- - roles
70
- - rolebindings
71
- - clusterroles
72
- - clusterrolebindings
73
- verbs: ["get", "list", "watch", "create", "update", "patch"]
74
-
75
- # Events for observability
76
- - apiGroups: [""]
77
- resources:
78
- - events
79
- verbs: ["get", "list", "watch", "create", "patch"]
80
-
81
- # Nodes (read-only for cluster info)
82
- - apiGroups: [""]
83
- resources:
84
- - nodes
85
- verbs: ["get", "list", "watch"]
86
-
87
- # Persistent volumes (if needed for deployments)
88
- - apiGroups: [""]
89
- resources:
90
- - persistentvolumes
91
- - persistentvolumeclaims
92
- verbs: ["get", "list", "watch", "create", "update", "patch"]
93
-
94
- # Custom resources (for OSSA agents and other CRDs)
95
- - apiGroups: ["*"]
96
- resources: ["*"]
97
- verbs: ["get", "list", "watch"]
98
-
99
- # Metrics and monitoring
100
- - apiGroups: ["metrics.k8s.io"]
101
- resources:
102
- - nodes
103
- - pods
104
- verbs: ["get", "list"]
105
-
106
- # Health checks
107
- - nonResourceURLs: ["/healthz", "/readyz", "/livez"]
108
- verbs: ["get"]
109
- ---
110
- # ClusterRoleBinding
111
- apiVersion: rbac.authorization.k8s.io/v1
112
- kind: ClusterRoleBinding
113
- metadata:
114
- name: gitlab-agent
115
- labels:
116
- app: gitlab-agent
117
- component: ossa-agent
118
- roleRef:
119
- apiGroup: rbac.authorization.k8s.io
120
- kind: ClusterRole
121
- name: gitlab-agent
122
- subjects:
123
- - kind: ServiceAccount
124
- name: gitlab-agent
125
- namespace: gitlab-agent
126
-
@@ -1,150 +0,0 @@
1
- # GitLab Kubernetes Agent Helm Values
2
- # Production-ready configuration for OSSA agents
3
-
4
- # Agent configuration
5
- config:
6
- # Agent token (set via --set config.token=<token> or from secret)
7
- # token: ""
8
-
9
- # KAS address for self-hosted GitLab
10
- # Replace with your GitLab instance URL
11
- kasAddress: "wss://your-gitlab-instance.com/-/kubernetes-agent/"
12
-
13
- # Optional: KAS CA certificate for self-signed certs
14
- # kasCaCert: ""
15
-
16
- # Image configuration
17
- image:
18
- repository: registry.gitlab.com/gitlab-org/cluster-integration/gitlab-agent/agentk
19
- tag: "v18.4.0" # Match your GitLab version
20
- pullPolicy: IfNotPresent
21
-
22
- # Service account configuration
23
- serviceAccount:
24
- create: true
25
- name: gitlab-agent
26
- annotations: {}
27
- # annotations:
28
- # eks.amazonaws.com/role-arn: "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
29
-
30
- # RBAC configuration
31
- rbac:
32
- create: true
33
- # Use existing role instead of creating cluster-admin
34
- # useExistingRole: false
35
- # existingRoleName: ""
36
-
37
- # Resource limits
38
- resources:
39
- requests:
40
- cpu: 100m
41
- memory: 128Mi
42
- limits:
43
- cpu: 500m
44
- memory: 512Mi
45
-
46
- # Pod configuration
47
- podAnnotations:
48
- prometheus.io/scrape: "true"
49
- prometheus.io/port: "8080"
50
- prometheus.io/path: "/metrics"
51
-
52
- podLabels:
53
- app: gitlab-agent
54
- component: ossa-agent
55
- managed-by: helm
56
-
57
- # Security context
58
- securityContext:
59
- runAsNonRoot: true
60
- runAsUser: 65534
61
- fsGroup: 65534
62
- seccompProfile:
63
- type: RuntimeDefault
64
-
65
- # Node selector (optional)
66
- nodeSelector: {}
67
-
68
- # Tolerations (optional)
69
- tolerations: []
70
-
71
- # Affinity rules (optional)
72
- affinity: {}
73
-
74
- # Extra environment variables
75
- extraEnv: []
76
- # Example:
77
- # extraEnv:
78
- # - name: LOG_LEVEL
79
- # value: "debug"
80
-
81
- # Liveness and readiness probes
82
- livenessProbe:
83
- httpGet:
84
- path: /liveness
85
- port: 8080
86
- initialDelaySeconds: 30
87
- periodSeconds: 30
88
- timeoutSeconds: 5
89
- failureThreshold: 3
90
-
91
- readinessProbe:
92
- httpGet:
93
- path: /readiness
94
- port: 8080
95
- initialDelaySeconds: 10
96
- periodSeconds: 10
97
- timeoutSeconds: 5
98
- failureThreshold: 3
99
-
100
- # Pod disruption budget
101
- podDisruptionBudget:
102
- enabled: true
103
- minAvailable: 1
104
-
105
- # Service monitor for Prometheus (if Prometheus Operator is installed)
106
- serviceMonitor:
107
- enabled: false
108
- interval: 30s
109
- scrapeTimeout: 10s
110
- labels: {}
111
-
112
- # Network policy (if supported)
113
- networkPolicy:
114
- enabled: false
115
-
116
- # Priority class (optional)
117
- priorityClassName: ""
118
-
119
- # Extra volumes
120
- extraVolumes: []
121
-
122
- # Extra volume mounts
123
- extraVolumeMounts: []
124
-
125
- # Init containers
126
- initContainers: []
127
-
128
- # Additional containers (sidecars)
129
- additionalContainers: []
130
-
131
- # Deployment configuration
132
- replicaCount: 1
133
-
134
- # Strategy
135
- strategy:
136
- type: RollingUpdate
137
- rollingUpdate:
138
- maxSurge: 1
139
- maxUnavailable: 0
140
-
141
- # Termination grace period
142
- terminationGracePeriodSeconds: 30
143
-
144
- # Namespace configuration
145
- namespace:
146
- create: true
147
- name: gitlab-agent
148
- annotations: {}
149
- labels: {}
150
-
@@ -1,7 +0,0 @@
1
- apiVersion: v1
2
- kind: Namespace
3
- metadata:
4
- name: monitoring
5
- labels:
6
- name: monitoring
7
- app.kubernetes.io/name: monitoring
@@ -1,142 +0,0 @@
1
- apiVersion: v1
2
- kind: ConfigMap
3
- metadata:
4
- name: prometheus-config
5
- namespace: monitoring
6
- data:
7
- prometheus.yml: |
8
- global:
9
- scrape_interval: 15s
10
- evaluation_interval: 15s
11
-
12
- scrape_configs:
13
- - job_name: 'prometheus'
14
- static_configs:
15
- - targets: ['localhost:9090']
16
-
17
- - job_name: 'gitlab-agent'
18
- kubernetes_sd_configs:
19
- - role: pod
20
- namespaces:
21
- names:
22
- - gitlab-agent
23
- relabel_configs:
24
- - source_labels: [__meta_kubernetes_pod_label_app]
25
- regex: gitlab-agent
26
- action: keep
27
- - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
28
- action: keep
29
- regex: true
30
- - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port]
31
- action: replace
32
- target_label: __address__
33
- regex: ([^:]+)(?::\d+)?;(\d+)
34
- replacement: $1:$2
35
-
36
- - job_name: 'ossa-agents'
37
- kubernetes_sd_configs:
38
- - role: pod
39
- namespaces:
40
- names:
41
- - ossa-agents
42
- relabel_configs:
43
- - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
44
- action: keep
45
- regex: true
46
- - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
47
- action: replace
48
- target_label: __metrics_path__
49
- regex: (.+)
50
- - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
51
- action: replace
52
- regex: ([^:]+)(?::\d+)?;(\d+)
53
- replacement: $1:$2
54
- target_label: __address__
55
- ---
56
- apiVersion: apps/v1
57
- kind: Deployment
58
- metadata:
59
- name: prometheus
60
- namespace: monitoring
61
- spec:
62
- replicas: 1
63
- selector:
64
- matchLabels:
65
- app: prometheus
66
- template:
67
- metadata:
68
- labels:
69
- app: prometheus
70
- spec:
71
- serviceAccountName: prometheus
72
- containers:
73
- - name: prometheus
74
- image: prom/prometheus:latest
75
- args:
76
- - '--config.file=/etc/prometheus/prometheus.yml'
77
- - '--storage.tsdb.path=/prometheus'
78
- - '--web.console.libraries=/usr/share/prometheus/console_libraries'
79
- - '--web.console.templates=/usr/share/prometheus/consoles'
80
- ports:
81
- - containerPort: 9090
82
- volumeMounts:
83
- - name: config
84
- mountPath: /etc/prometheus
85
- - name: storage
86
- mountPath: /prometheus
87
- volumes:
88
- - name: config
89
- configMap:
90
- name: prometheus-config
91
- - name: storage
92
- emptyDir: {}
93
- ---
94
- apiVersion: v1
95
- kind: Service
96
- metadata:
97
- name: prometheus
98
- namespace: monitoring
99
- spec:
100
- selector:
101
- app: prometheus
102
- ports:
103
- - port: 9090
104
- targetPort: 9090
105
- ---
106
- apiVersion: v1
107
- kind: ServiceAccount
108
- metadata:
109
- name: prometheus
110
- namespace: monitoring
111
- ---
112
- apiVersion: rbac.authorization.k8s.io/v1
113
- kind: ClusterRole
114
- metadata:
115
- name: prometheus
116
- rules:
117
- - apiGroups: [""]
118
- resources:
119
- - nodes
120
- - nodes/proxy
121
- - services
122
- - endpoints
123
- - pods
124
- verbs: ["get", "list", "watch"]
125
- - apiGroups:
126
- - extensions
127
- resources:
128
- - ingresses
129
- verbs: ["get", "list", "watch"]
130
- ---
131
- apiVersion: rbac.authorization.k8s.io/v1
132
- kind: ClusterRoleBinding
133
- metadata:
134
- name: prometheus
135
- roleRef:
136
- apiGroup: rbac.authorization.k8s.io
137
- kind: ClusterRole
138
- name: prometheus
139
- subjects:
140
- - kind: ServiceAccount
141
- name: prometheus
142
- namespace: monitoring