@bluefly/openstandardagents 0.4.4 → 0.4.5

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 (1075) hide show
  1. package/.version.json +3 -3
  2. package/CHANGELOG.md +302 -7
  3. package/README.md +470 -22
  4. package/dist/.version.json +7 -0
  5. package/dist/adapters/a2a/__tests__/mcp-integration.spec.d.ts +5 -0
  6. package/dist/adapters/a2a/__tests__/mcp-integration.spec.d.ts.map +1 -0
  7. package/dist/adapters/a2a/__tests__/mcp-integration.spec.js +267 -0
  8. package/dist/adapters/a2a/__tests__/mcp-integration.spec.js.map +1 -0
  9. package/dist/adapters/a2a/__tests__/mcp-transport.spec.d.ts +5 -0
  10. package/dist/adapters/a2a/__tests__/mcp-transport.spec.d.ts.map +1 -0
  11. package/dist/adapters/a2a/__tests__/mcp-transport.spec.js +202 -0
  12. package/dist/adapters/a2a/__tests__/mcp-transport.spec.js.map +1 -0
  13. package/dist/adapters/a2a/a2a-protocol.d.ts +398 -0
  14. package/dist/adapters/a2a/a2a-protocol.d.ts.map +1 -0
  15. package/dist/adapters/a2a/a2a-protocol.js +257 -0
  16. package/dist/adapters/a2a/a2a-protocol.js.map +1 -0
  17. package/dist/adapters/a2a/a2a-tool.d.ts +110 -0
  18. package/dist/adapters/a2a/a2a-tool.d.ts.map +1 -0
  19. package/dist/adapters/a2a/a2a-tool.js +349 -0
  20. package/dist/adapters/a2a/a2a-tool.js.map +1 -0
  21. package/dist/adapters/a2a/agent-mesh.d.ts +195 -0
  22. package/dist/adapters/a2a/agent-mesh.d.ts.map +1 -0
  23. package/dist/adapters/a2a/agent-mesh.js +347 -0
  24. package/dist/adapters/a2a/agent-mesh.js.map +1 -0
  25. package/dist/adapters/a2a/delegation.d.ts +232 -0
  26. package/dist/adapters/a2a/delegation.d.ts.map +1 -0
  27. package/dist/adapters/a2a/delegation.js +236 -0
  28. package/dist/adapters/a2a/delegation.js.map +1 -0
  29. package/dist/adapters/a2a/index.d.ts +18 -0
  30. package/dist/adapters/a2a/index.d.ts.map +1 -0
  31. package/dist/adapters/a2a/index.js +24 -0
  32. package/dist/adapters/a2a/index.js.map +1 -0
  33. package/dist/adapters/a2a/mcp-integration.d.ts +258 -0
  34. package/dist/adapters/a2a/mcp-integration.d.ts.map +1 -0
  35. package/dist/adapters/a2a/mcp-integration.js +328 -0
  36. package/dist/adapters/a2a/mcp-integration.js.map +1 -0
  37. package/dist/adapters/a2a/mcp-transport.d.ts +118 -0
  38. package/dist/adapters/a2a/mcp-transport.d.ts.map +1 -0
  39. package/dist/adapters/a2a/mcp-transport.js +287 -0
  40. package/dist/adapters/a2a/mcp-transport.js.map +1 -0
  41. package/dist/adapters/a2a/swarm-orchestration.d.ts +278 -0
  42. package/dist/adapters/a2a/swarm-orchestration.d.ts.map +1 -0
  43. package/dist/adapters/a2a/swarm-orchestration.js +322 -0
  44. package/dist/adapters/a2a/swarm-orchestration.js.map +1 -0
  45. package/dist/adapters/agent-skills/exporter.d.ts.map +1 -1
  46. package/dist/adapters/agent-skills/exporter.js +13 -6
  47. package/dist/adapters/agent-skills/exporter.js.map +1 -1
  48. package/dist/adapters/anthropic/claude-optimizations.d.ts.map +1 -1
  49. package/dist/adapters/anthropic/claude-optimizations.js +14 -7
  50. package/dist/adapters/anthropic/claude-optimizations.js.map +1 -1
  51. package/dist/adapters/anthropic/client.d.ts +33 -121
  52. package/dist/adapters/anthropic/client.d.ts.map +1 -1
  53. package/dist/adapters/anthropic/client.js +67 -334
  54. package/dist/adapters/anthropic/client.js.map +1 -1
  55. package/dist/adapters/anthropic/index.d.ts +4 -25
  56. package/dist/adapters/anthropic/index.d.ts.map +1 -1
  57. package/dist/adapters/anthropic/index.js +5 -25
  58. package/dist/adapters/anthropic/index.js.map +1 -1
  59. package/dist/adapters/anthropic/messages.d.ts +3 -3
  60. package/dist/adapters/anthropic/messages.d.ts.map +1 -1
  61. package/dist/adapters/anthropic/messages.js +60 -99
  62. package/dist/adapters/anthropic/messages.js.map +1 -1
  63. package/dist/adapters/anthropic/tools.d.ts +0 -15
  64. package/dist/adapters/anthropic/tools.d.ts.map +1 -1
  65. package/dist/adapters/anthropic/tools.js +20 -84
  66. package/dist/adapters/anthropic/tools.js.map +1 -1
  67. package/dist/adapters/base/adapter.interface.d.ts +63 -2
  68. package/dist/adapters/base/adapter.interface.d.ts.map +1 -1
  69. package/dist/adapters/base/adapter.interface.js +34 -0
  70. package/dist/adapters/base/adapter.interface.js.map +1 -1
  71. package/dist/adapters/base/base-exporter.d.ts +108 -0
  72. package/dist/adapters/base/base-exporter.d.ts.map +1 -0
  73. package/dist/adapters/base/base-exporter.js +165 -0
  74. package/dist/adapters/base/base-exporter.js.map +1 -0
  75. package/dist/adapters/base/common-file-generator.d.ts +57 -0
  76. package/dist/adapters/base/common-file-generator.d.ts.map +1 -1
  77. package/dist/adapters/base/common-file-generator.js +106 -8
  78. package/dist/adapters/base/common-file-generator.js.map +1 -1
  79. package/dist/adapters/base/index.d.ts +3 -1
  80. package/dist/adapters/base/index.d.ts.map +1 -1
  81. package/dist/adapters/base/index.js +5 -1
  82. package/dist/adapters/base/index.js.map +1 -1
  83. package/dist/adapters/base/manifest-validator.d.ts.map +1 -1
  84. package/dist/adapters/base/manifest-validator.js.map +1 -1
  85. package/dist/adapters/base/perfect-agent-utils.d.ts +29 -0
  86. package/dist/adapters/base/perfect-agent-utils.d.ts.map +1 -0
  87. package/dist/adapters/base/perfect-agent-utils.js +234 -0
  88. package/dist/adapters/base/perfect-agent-utils.js.map +1 -0
  89. package/dist/adapters/base/tool-params.d.ts +42 -0
  90. package/dist/adapters/base/tool-params.d.ts.map +1 -0
  91. package/dist/adapters/base/tool-params.js +123 -0
  92. package/dist/adapters/base/tool-params.js.map +1 -0
  93. package/dist/adapters/claude-code/adapter.d.ts +64 -0
  94. package/dist/adapters/claude-code/adapter.d.ts.map +1 -0
  95. package/dist/adapters/claude-code/adapter.js +336 -0
  96. package/dist/adapters/claude-code/adapter.js.map +1 -0
  97. package/dist/adapters/claude-code/types.d.ts +154 -0
  98. package/dist/adapters/claude-code/types.d.ts.map +1 -0
  99. package/dist/adapters/claude-code/types.js +6 -0
  100. package/dist/adapters/claude-code/types.js.map +1 -0
  101. package/dist/adapters/crewai/adapter.d.ts +1 -0
  102. package/dist/adapters/crewai/adapter.d.ts.map +1 -1
  103. package/dist/adapters/crewai/adapter.js +72 -45
  104. package/dist/adapters/crewai/adapter.js.map +1 -1
  105. package/dist/adapters/crewai/converter.d.ts.map +1 -1
  106. package/dist/adapters/crewai/converter.js +3 -4
  107. package/dist/adapters/crewai/converter.js.map +1 -1
  108. package/dist/adapters/cursor/adapter.d.ts +75 -0
  109. package/dist/adapters/cursor/adapter.d.ts.map +1 -0
  110. package/dist/adapters/cursor/adapter.js +474 -0
  111. package/dist/adapters/cursor/adapter.js.map +1 -0
  112. package/dist/adapters/cursor/types.d.ts +221 -0
  113. package/dist/adapters/cursor/types.d.ts.map +1 -0
  114. package/dist/adapters/cursor/types.js +6 -0
  115. package/dist/adapters/cursor/types.js.map +1 -0
  116. package/dist/adapters/docker/docker-exporter.d.ts.map +1 -1
  117. package/dist/adapters/docker/docker-exporter.js.map +1 -1
  118. package/dist/adapters/docker/generators.d.ts.map +1 -1
  119. package/dist/adapters/docker/generators.js +8 -3
  120. package/dist/adapters/docker/generators.js.map +1 -1
  121. package/dist/adapters/drupal/adapter.d.ts +1 -0
  122. package/dist/adapters/drupal/adapter.d.ts.map +1 -1
  123. package/dist/adapters/drupal/adapter.js +3 -0
  124. package/dist/adapters/drupal/adapter.js.map +1 -1
  125. package/dist/adapters/drupal/generator.d.ts +1 -0
  126. package/dist/adapters/drupal/generator.d.ts.map +1 -1
  127. package/dist/adapters/drupal/generator.js +3 -0
  128. package/dist/adapters/drupal/generator.js.map +1 -1
  129. package/dist/adapters/drupal/index.d.ts +0 -1
  130. package/dist/adapters/drupal/index.d.ts.map +1 -1
  131. package/dist/adapters/drupal/index.js +0 -2
  132. package/dist/adapters/drupal/index.js.map +1 -1
  133. package/dist/adapters/drupal/manifest-exporter.d.ts +22 -12
  134. package/dist/adapters/drupal/manifest-exporter.d.ts.map +1 -1
  135. package/dist/adapters/drupal/manifest-exporter.js +64 -18
  136. package/dist/adapters/drupal/manifest-exporter.js.map +1 -1
  137. package/dist/adapters/gitlab/agent-generator.js +2 -2
  138. package/dist/adapters/gitlab/agent-generator.js.map +1 -1
  139. package/dist/adapters/gitlab/external-agent-generator.d.ts.map +1 -1
  140. package/dist/adapters/gitlab/external-agent-generator.js +13 -4
  141. package/dist/adapters/gitlab/external-agent-generator.js.map +1 -1
  142. package/dist/adapters/gitlab/flow-generator.d.ts.map +1 -1
  143. package/dist/adapters/gitlab/flow-generator.js +55 -14
  144. package/dist/adapters/gitlab/flow-generator.js.map +1 -1
  145. package/dist/adapters/gitlab/package-generator.d.ts +19 -6
  146. package/dist/adapters/gitlab/package-generator.d.ts.map +1 -1
  147. package/dist/adapters/gitlab/package-generator.js +62 -87
  148. package/dist/adapters/gitlab/package-generator.js.map +1 -1
  149. package/dist/adapters/gitlab/router-generator.d.ts.map +1 -1
  150. package/dist/adapters/gitlab/router-generator.js +5 -1
  151. package/dist/adapters/gitlab/router-generator.js.map +1 -1
  152. package/dist/adapters/gitlab/trigger-generator.d.ts.map +1 -1
  153. package/dist/adapters/gitlab/trigger-generator.js +5 -5
  154. package/dist/adapters/gitlab/trigger-generator.js.map +1 -1
  155. package/dist/adapters/gitlab/types.d.ts.map +1 -1
  156. package/dist/adapters/gitlab-duo/adapter.d.ts +1 -0
  157. package/dist/adapters/gitlab-duo/adapter.d.ts.map +1 -1
  158. package/dist/adapters/gitlab-duo/adapter.js +3 -0
  159. package/dist/adapters/gitlab-duo/adapter.js.map +1 -1
  160. package/dist/adapters/index.d.ts.map +1 -1
  161. package/dist/adapters/index.js +12 -0
  162. package/dist/adapters/index.js.map +1 -1
  163. package/dist/adapters/kubernetes/generator.d.ts.map +1 -1
  164. package/dist/adapters/kubernetes/generator.js +6 -12
  165. package/dist/adapters/kubernetes/generator.js.map +1 -1
  166. package/dist/adapters/kubernetes/kagent-crd-generator.d.ts.map +1 -1
  167. package/dist/adapters/kubernetes/kagent-crd-generator.js.map +1 -1
  168. package/dist/adapters/langchain/adapter.d.ts +1 -0
  169. package/dist/adapters/langchain/adapter.d.ts.map +1 -1
  170. package/dist/adapters/langchain/adapter.js +4 -1
  171. package/dist/adapters/langchain/adapter.js.map +1 -1
  172. package/dist/adapters/langchain/converter.d.ts.map +1 -1
  173. package/dist/adapters/langchain/converter.js +1 -2
  174. package/dist/adapters/langchain/converter.js.map +1 -1
  175. package/dist/adapters/mcp/adapter.d.ts +12 -20
  176. package/dist/adapters/mcp/adapter.d.ts.map +1 -1
  177. package/dist/adapters/mcp/adapter.js +67 -216
  178. package/dist/adapters/mcp/adapter.js.map +1 -1
  179. package/dist/adapters/mcp/converter.d.ts +1 -0
  180. package/dist/adapters/mcp/converter.d.ts.map +1 -1
  181. package/dist/adapters/mcp/converter.js +5 -2
  182. package/dist/adapters/mcp/converter.js.map +1 -1
  183. package/dist/adapters/mobile-agent/adapter.d.ts +63 -0
  184. package/dist/adapters/mobile-agent/adapter.d.ts.map +1 -0
  185. package/dist/adapters/mobile-agent/adapter.js +678 -0
  186. package/dist/adapters/mobile-agent/adapter.js.map +1 -0
  187. package/dist/adapters/npm/adapter.d.ts +1 -0
  188. package/dist/adapters/npm/adapter.d.ts.map +1 -1
  189. package/dist/adapters/npm/adapter.js +11 -5
  190. package/dist/adapters/npm/adapter.js.map +1 -1
  191. package/dist/adapters/npm/converter.d.ts +6 -9
  192. package/dist/adapters/npm/converter.d.ts.map +1 -1
  193. package/dist/adapters/npm/converter.js +22 -68
  194. package/dist/adapters/npm/converter.js.map +1 -1
  195. package/dist/adapters/npm/package-generator.d.ts +93 -0
  196. package/dist/adapters/npm/package-generator.d.ts.map +1 -0
  197. package/dist/adapters/npm/package-generator.js +240 -0
  198. package/dist/adapters/npm/package-generator.js.map +1 -0
  199. package/dist/adapters/npm/type-aware-dependencies.d.ts.map +1 -1
  200. package/dist/adapters/npm/type-aware-dependencies.js +4 -2
  201. package/dist/adapters/npm/type-aware-dependencies.js.map +1 -1
  202. package/dist/adapters/openai-agents/adapter.d.ts +31 -0
  203. package/dist/adapters/openai-agents/adapter.d.ts.map +1 -0
  204. package/dist/adapters/openai-agents/adapter.js +344 -0
  205. package/dist/adapters/openai-agents/adapter.js.map +1 -0
  206. package/dist/adapters/openai-agents/index.d.ts +10 -0
  207. package/dist/adapters/openai-agents/index.d.ts.map +1 -0
  208. package/dist/adapters/openai-agents/index.js +10 -0
  209. package/dist/adapters/openai-agents/index.js.map +1 -0
  210. package/dist/adapters/opentelemetry.adapter.d.ts +8 -2
  211. package/dist/adapters/opentelemetry.adapter.d.ts.map +1 -1
  212. package/dist/adapters/opentelemetry.adapter.js +92 -11
  213. package/dist/adapters/opentelemetry.adapter.js.map +1 -1
  214. package/dist/adapters/registry/platform-registry.d.ts +1 -0
  215. package/dist/adapters/registry/platform-registry.d.ts.map +1 -1
  216. package/dist/adapters/registry/platform-registry.js +1 -0
  217. package/dist/adapters/registry/platform-registry.js.map +1 -1
  218. package/dist/adapters/warp/adapter.d.ts +52 -0
  219. package/dist/adapters/warp/adapter.d.ts.map +1 -0
  220. package/dist/adapters/warp/adapter.js +383 -0
  221. package/dist/adapters/warp/adapter.js.map +1 -0
  222. package/dist/adapters/warp/types.d.ts +140 -0
  223. package/dist/adapters/warp/types.d.ts.map +1 -0
  224. package/dist/adapters/warp/types.js +6 -0
  225. package/dist/adapters/warp/types.js.map +1 -0
  226. package/dist/bot/agent-compliance.js +1 -1
  227. package/dist/cli/banner.js +2 -2
  228. package/dist/cli/banner.js.map +1 -1
  229. package/dist/cli/commands/agent/discover-type.command.d.ts +39 -0
  230. package/dist/cli/commands/agent/discover-type.command.d.ts.map +1 -0
  231. package/dist/cli/commands/agent/discover-type.command.js +332 -0
  232. package/dist/cli/commands/agent/discover-type.command.js.map +1 -0
  233. package/dist/cli/commands/agent-card.command.d.ts +3 -9
  234. package/dist/cli/commands/agent-card.command.d.ts.map +1 -1
  235. package/dist/cli/commands/agent-card.command.js +109 -255
  236. package/dist/cli/commands/agent-card.command.js.map +1 -1
  237. package/dist/cli/commands/agent-wizard.command.d.ts.map +1 -1
  238. package/dist/cli/commands/agent-wizard.command.js +390 -0
  239. package/dist/cli/commands/agent-wizard.command.js.map +1 -1
  240. package/dist/cli/commands/agents-local.command.d.ts +10 -0
  241. package/dist/cli/commands/agents-local.command.d.ts.map +1 -0
  242. package/dist/cli/commands/agents-local.command.js +283 -0
  243. package/dist/cli/commands/agents-local.command.js.map +1 -0
  244. package/dist/cli/commands/agents-md.command.d.ts.map +1 -1
  245. package/dist/cli/commands/agents-md.command.js.map +1 -1
  246. package/dist/cli/commands/agents.command.d.ts +4 -4
  247. package/dist/cli/commands/agents.command.d.ts.map +1 -1
  248. package/dist/cli/commands/agents.command.js +5 -138
  249. package/dist/cli/commands/agents.command.js.map +1 -1
  250. package/dist/cli/commands/build.command.d.ts.map +1 -1
  251. package/dist/cli/commands/build.command.js +2 -26
  252. package/dist/cli/commands/build.command.js.map +1 -1
  253. package/dist/cli/commands/capability/create.command.d.ts +7 -0
  254. package/dist/cli/commands/capability/create.command.d.ts.map +1 -0
  255. package/dist/cli/commands/capability/create.command.js +225 -0
  256. package/dist/cli/commands/capability/create.command.js.map +1 -0
  257. package/dist/cli/commands/capability/index.d.ts +7 -0
  258. package/dist/cli/commands/capability/index.d.ts.map +1 -0
  259. package/dist/cli/commands/capability/index.js +10 -0
  260. package/dist/cli/commands/capability/index.js.map +1 -0
  261. package/dist/cli/commands/catalog/index.d.ts +0 -4
  262. package/dist/cli/commands/catalog/index.d.ts.map +1 -1
  263. package/dist/cli/commands/catalog/index.js +0 -12
  264. package/dist/cli/commands/catalog/index.js.map +1 -1
  265. package/dist/cli/commands/catalog/schemas.d.ts +1 -1
  266. package/dist/cli/commands/deploy-enhanced.command.js +1 -2
  267. package/dist/cli/commands/deploy-enhanced.command.js.map +1 -1
  268. package/dist/cli/commands/discover.d.ts.map +1 -1
  269. package/dist/cli/commands/discover.js +1 -1
  270. package/dist/cli/commands/discover.js.map +1 -1
  271. package/dist/cli/commands/export.command.d.ts.map +1 -1
  272. package/dist/cli/commands/export.command.js +312 -8
  273. package/dist/cli/commands/export.command.js.map +1 -1
  274. package/dist/cli/commands/framework.command.d.ts.map +1 -1
  275. package/dist/cli/commands/framework.command.js +2 -1
  276. package/dist/cli/commands/framework.command.js.map +1 -1
  277. package/dist/cli/commands/generate-gaid.command.d.ts.map +1 -1
  278. package/dist/cli/commands/generate-gaid.command.js.map +1 -1
  279. package/dist/cli/commands/import.command.d.ts.map +1 -1
  280. package/dist/cli/commands/import.command.js +11 -0
  281. package/dist/cli/commands/import.command.js.map +1 -1
  282. package/dist/cli/commands/init.command.d.ts.map +1 -1
  283. package/dist/cli/commands/init.command.js +12 -1
  284. package/dist/cli/commands/init.command.js.map +1 -1
  285. package/dist/cli/commands/manifest/diff.command.d.ts +7 -0
  286. package/dist/cli/commands/manifest/diff.command.d.ts.map +1 -0
  287. package/dist/cli/commands/manifest/diff.command.js +186 -0
  288. package/dist/cli/commands/manifest/diff.command.js.map +1 -0
  289. package/dist/cli/commands/manifest/explain.command.d.ts +7 -0
  290. package/dist/cli/commands/manifest/explain.command.d.ts.map +1 -0
  291. package/dist/cli/commands/manifest/explain.command.js +193 -0
  292. package/dist/cli/commands/manifest/explain.command.js.map +1 -0
  293. package/dist/cli/commands/manifest/index.d.ts +7 -0
  294. package/dist/cli/commands/manifest/index.d.ts.map +1 -0
  295. package/dist/cli/commands/manifest/index.js +12 -0
  296. package/dist/cli/commands/manifest/index.js.map +1 -0
  297. package/dist/cli/commands/migrate.command.d.ts +4 -1
  298. package/dist/cli/commands/migrate.command.d.ts.map +1 -1
  299. package/dist/cli/commands/migrate.command.js +56 -81
  300. package/dist/cli/commands/migrate.command.js.map +1 -1
  301. package/dist/cli/commands/register.d.ts.map +1 -1
  302. package/dist/cli/commands/register.js +46 -109
  303. package/dist/cli/commands/register.js.map +1 -1
  304. package/dist/cli/commands/rollback.command.d.ts.map +1 -1
  305. package/dist/cli/commands/rollback.command.js.map +1 -1
  306. package/dist/cli/commands/skills.command.d.ts.map +1 -1
  307. package/dist/cli/commands/skills.command.js +177 -0
  308. package/dist/cli/commands/skills.command.js.map +1 -1
  309. package/dist/cli/commands/tool/create.command.d.ts +12 -0
  310. package/dist/cli/commands/tool/create.command.d.ts.map +1 -0
  311. package/dist/cli/commands/tool/create.command.js +276 -0
  312. package/dist/cli/commands/tool/create.command.js.map +1 -0
  313. package/dist/cli/commands/tool/index.d.ts +7 -0
  314. package/dist/cli/commands/tool/index.d.ts.map +1 -0
  315. package/dist/cli/commands/tool/index.js +14 -0
  316. package/dist/cli/commands/tool/index.js.map +1 -0
  317. package/dist/cli/commands/tool/list.command.d.ts +7 -0
  318. package/dist/cli/commands/tool/list.command.d.ts.map +1 -0
  319. package/dist/cli/commands/tool/list.command.js +268 -0
  320. package/dist/cli/commands/tool/list.command.js.map +1 -0
  321. package/dist/cli/commands/tool/validate.command.d.ts +7 -0
  322. package/dist/cli/commands/tool/validate.command.d.ts.map +1 -0
  323. package/dist/cli/commands/tool/validate.command.js +103 -0
  324. package/dist/cli/commands/tool/validate.command.js.map +1 -0
  325. package/dist/cli/commands/upgrade.command.d.ts.map +1 -1
  326. package/dist/cli/commands/upgrade.command.js +12 -0
  327. package/dist/cli/commands/upgrade.command.js.map +1 -1
  328. package/dist/cli/commands/verify.d.ts.map +1 -1
  329. package/dist/cli/commands/verify.js +1 -1
  330. package/dist/cli/commands/verify.js.map +1 -1
  331. package/dist/cli/commands/wizard-api-first.command.d.ts.map +1 -1
  332. package/dist/cli/commands/wizard-api-first.command.js +76 -0
  333. package/dist/cli/commands/wizard-api-first.command.js.map +1 -1
  334. package/dist/cli/commands/wizard-interactive.command.d.ts.map +1 -1
  335. package/dist/cli/commands/wizard-interactive.command.js +171 -97
  336. package/dist/cli/commands/wizard-interactive.command.js.map +1 -1
  337. package/dist/cli/commands/wizard.command.js +1 -1
  338. package/dist/cli/commands/wizard.command.js.map +1 -1
  339. package/dist/cli/extensions/gitlab.extension.js +1 -1
  340. package/dist/cli/index.js +104 -126
  341. package/dist/cli/index.js.map +1 -1
  342. package/dist/cli/utils/error-formatter.js +3 -3
  343. package/dist/cli/utils/standard-options.d.ts +2 -2
  344. package/dist/cli/utils/standard-options.d.ts.map +1 -1
  345. package/dist/cli/utils/standard-options.js +2 -2
  346. package/dist/cli/utils/standard-options.js.map +1 -1
  347. package/dist/cli/utils/validation-builder.d.ts +1 -1
  348. package/dist/cli/utils/validation-builder.js +2 -2
  349. package/dist/cli/wizard/interactive-wizard.js +2 -2
  350. package/dist/cli/wizard/steps/02-basic-info.js +1 -1
  351. package/dist/cli/wizard/steps/05-tools.d.ts.map +1 -1
  352. package/dist/cli/wizard/steps/05-tools.js +22 -3
  353. package/dist/cli/wizard/steps/05-tools.js.map +1 -1
  354. package/dist/config/defaults.js +3 -3
  355. package/dist/config/defaults.js.map +1 -1
  356. package/dist/deploy/cloud/aws-driver.d.ts.map +1 -1
  357. package/dist/deploy/cloud/aws-driver.js.map +1 -1
  358. package/dist/deploy/cloud/azure-driver.d.ts.map +1 -1
  359. package/dist/deploy/cloud/azure-driver.js.map +1 -1
  360. package/dist/deploy/cloud/gcp-driver.d.ts.map +1 -1
  361. package/dist/deploy/cloud/gcp-driver.js +6 -2
  362. package/dist/deploy/cloud/gcp-driver.js.map +1 -1
  363. package/dist/dev-cli/commands/release-prep.command.d.ts +1 -5
  364. package/dist/dev-cli/commands/release-prep.command.d.ts.map +1 -1
  365. package/dist/dev-cli/commands/release-prep.command.js +4 -8
  366. package/dist/dev-cli/commands/release-prep.command.js.map +1 -1
  367. package/dist/dev-cli/services/spec-generate.service.d.ts +8 -1
  368. package/dist/dev-cli/services/spec-generate.service.d.ts.map +1 -1
  369. package/dist/dev-cli/services/spec-generate.service.js +96 -11
  370. package/dist/dev-cli/services/spec-generate.service.js.map +1 -1
  371. package/dist/dev-cli/services/spec-validate.service.d.ts.map +1 -1
  372. package/dist/dev-cli/services/spec-validate.service.js +66 -5
  373. package/dist/dev-cli/services/spec-validate.service.js.map +1 -1
  374. package/dist/dev-cli/services/version-validate.service.d.ts.map +1 -1
  375. package/dist/dev-cli/services/version-validate.service.js +1 -3
  376. package/dist/dev-cli/services/version-validate.service.js.map +1 -1
  377. package/dist/di-container.d.ts +5 -0
  378. package/dist/di-container.d.ts.map +1 -1
  379. package/dist/di-container.js +20 -4
  380. package/dist/di-container.js.map +1 -1
  381. package/dist/index.d.ts +0 -2
  382. package/dist/index.d.ts.map +1 -1
  383. package/dist/index.js +0 -1
  384. package/dist/index.js.map +1 -1
  385. package/dist/mesh/advanced-routing.d.ts.map +1 -1
  386. package/dist/mesh/advanced-routing.js +21 -15
  387. package/dist/mesh/advanced-routing.js.map +1 -1
  388. package/dist/mesh/agent-graph.d.ts.map +1 -1
  389. package/dist/mesh/agent-graph.js +38 -32
  390. package/dist/mesh/agent-graph.js.map +1 -1
  391. package/dist/mesh/discovery-providers.d.ts.map +1 -1
  392. package/dist/mesh/discovery-providers.js +25 -19
  393. package/dist/mesh/discovery-providers.js.map +1 -1
  394. package/dist/mesh/types.d.ts +212 -1
  395. package/dist/mesh/types.d.ts.map +1 -1
  396. package/dist/messaging/channels.d.ts +1 -1
  397. package/dist/messaging/channels.js +1 -1
  398. package/dist/messaging/protocols/memory.d.ts +1 -1
  399. package/dist/messaging/protocols/memory.js +1 -1
  400. package/dist/messenger/Commands/MessengerStatsCommand.d.ts.map +1 -1
  401. package/dist/messenger/Commands/MessengerStatsCommand.js.map +1 -1
  402. package/dist/messenger/EventSubscriber/FailedMessageSubscriber.d.ts.map +1 -1
  403. package/dist/messenger/EventSubscriber/FailedMessageSubscriber.js.map +1 -1
  404. package/dist/messenger/Handler/AgentBatchHandler.d.ts.map +1 -1
  405. package/dist/messenger/Handler/AgentBatchHandler.js +6 -2
  406. package/dist/messenger/Handler/AgentBatchHandler.js.map +1 -1
  407. package/dist/messenger/Handler/AgentExecutionHandler.d.ts.map +1 -1
  408. package/dist/messenger/Handler/AgentExecutionHandler.js.map +1 -1
  409. package/dist/messenger/Message/AgentBatchMessage.d.ts.map +1 -1
  410. package/dist/messenger/Message/AgentBatchMessage.js +3 -1
  411. package/dist/messenger/Message/AgentBatchMessage.js.map +1 -1
  412. package/dist/messenger/Message/AgentExecutionMessage.d.ts.map +1 -1
  413. package/dist/messenger/Message/AgentExecutionMessage.js.map +1 -1
  414. package/dist/messenger/Message/index.d.ts +1 -1
  415. package/dist/messenger/Message/index.d.ts.map +1 -1
  416. package/dist/messenger/Message/index.js +1 -1
  417. package/dist/messenger/Message/index.js.map +1 -1
  418. package/dist/messenger/Middleware/AuthenticationMiddleware.d.ts.map +1 -1
  419. package/dist/messenger/Middleware/AuthenticationMiddleware.js +1 -2
  420. package/dist/messenger/Middleware/AuthenticationMiddleware.js.map +1 -1
  421. package/dist/messenger/Middleware/LoggingMiddleware.d.ts.map +1 -1
  422. package/dist/messenger/Middleware/LoggingMiddleware.js +3 -1
  423. package/dist/messenger/Middleware/LoggingMiddleware.js.map +1 -1
  424. package/dist/messenger/Middleware/RateLimitMiddleware.d.ts.map +1 -1
  425. package/dist/messenger/Middleware/RateLimitMiddleware.js.map +1 -1
  426. package/dist/messenger/Middleware/ValidationMiddleware.d.ts.map +1 -1
  427. package/dist/messenger/Middleware/ValidationMiddleware.js +8 -3
  428. package/dist/messenger/Middleware/ValidationMiddleware.js.map +1 -1
  429. package/dist/messenger/Monitoring/QueueMonitor.d.ts.map +1 -1
  430. package/dist/messenger/Monitoring/QueueMonitor.js +5 -2
  431. package/dist/messenger/Monitoring/QueueMonitor.js.map +1 -1
  432. package/dist/package.json +36 -18
  433. package/dist/repositories/schema.repository.d.ts.map +1 -1
  434. package/dist/repositories/schema.repository.js +10 -4
  435. package/dist/repositories/schema.repository.js.map +1 -1
  436. package/dist/sdks/kagent/crd-generator.d.ts.map +1 -1
  437. package/dist/sdks/kagent/crd-generator.js +5 -4
  438. package/dist/sdks/kagent/crd-generator.js.map +1 -1
  439. package/dist/sdks/kagent/crd-parser.d.ts.map +1 -1
  440. package/dist/sdks/kagent/crd-parser.js +2 -1
  441. package/dist/sdks/kagent/crd-parser.js.map +1 -1
  442. package/dist/sdks/shared/validation.d.ts +4 -4
  443. package/dist/sdks/typescript/builders/autonomy.builder.d.ts +119 -0
  444. package/dist/sdks/typescript/builders/autonomy.builder.d.ts.map +1 -0
  445. package/dist/sdks/typescript/builders/autonomy.builder.js +165 -0
  446. package/dist/sdks/typescript/builders/autonomy.builder.js.map +1 -0
  447. package/dist/sdks/typescript/builders/index.d.ts +12 -0
  448. package/dist/sdks/typescript/builders/index.d.ts.map +1 -0
  449. package/dist/sdks/typescript/builders/index.js +11 -0
  450. package/dist/sdks/typescript/builders/index.js.map +1 -0
  451. package/dist/sdks/typescript/builders/llm.builder.d.ts +74 -0
  452. package/dist/sdks/typescript/builders/llm.builder.d.ts.map +1 -0
  453. package/dist/sdks/typescript/builders/llm.builder.js +123 -0
  454. package/dist/sdks/typescript/builders/llm.builder.js.map +1 -0
  455. package/dist/sdks/typescript/builders/manifest.builder.d.ts +153 -0
  456. package/dist/sdks/typescript/builders/manifest.builder.d.ts.map +1 -0
  457. package/dist/sdks/typescript/builders/manifest.builder.js +343 -0
  458. package/dist/sdks/typescript/builders/manifest.builder.js.map +1 -0
  459. package/dist/sdks/typescript/builders/safety.builder.d.ts +79 -0
  460. package/dist/sdks/typescript/builders/safety.builder.d.ts.map +1 -0
  461. package/dist/sdks/typescript/builders/safety.builder.js +147 -0
  462. package/dist/sdks/typescript/builders/safety.builder.js.map +1 -0
  463. package/dist/sdks/typescript/builders/tool.builder.d.ts +179 -0
  464. package/dist/sdks/typescript/builders/tool.builder.d.ts.map +1 -0
  465. package/dist/sdks/typescript/builders/tool.builder.js +305 -0
  466. package/dist/sdks/typescript/builders/tool.builder.js.map +1 -0
  467. package/dist/sdks/typescript/client.d.ts +1 -3
  468. package/dist/sdks/typescript/client.d.ts.map +1 -1
  469. package/dist/sdks/typescript/client.js +1 -3
  470. package/dist/sdks/typescript/client.js.map +1 -1
  471. package/dist/sdks/typescript/constants.d.ts +24 -0
  472. package/dist/sdks/typescript/constants.d.ts.map +1 -0
  473. package/dist/sdks/typescript/constants.js +102 -0
  474. package/dist/sdks/typescript/constants.js.map +1 -0
  475. package/dist/sdks/typescript/index.d.ts +4 -0
  476. package/dist/sdks/typescript/index.d.ts.map +1 -1
  477. package/dist/sdks/typescript/index.js +4 -0
  478. package/dist/sdks/typescript/index.js.map +1 -1
  479. package/dist/sdks/typescript/manifest.d.ts +8 -3
  480. package/dist/sdks/typescript/manifest.d.ts.map +1 -1
  481. package/dist/sdks/typescript/manifest.js +12 -28
  482. package/dist/sdks/typescript/manifest.js.map +1 -1
  483. package/dist/sdks/typescript/types.d.ts +5 -3
  484. package/dist/sdks/typescript/types.d.ts.map +1 -1
  485. package/dist/sdks/typescript/types.js +6 -3
  486. package/dist/sdks/typescript/types.js.map +1 -1
  487. package/dist/sdks/typescript/validator.d.ts +31 -0
  488. package/dist/sdks/typescript/validator.d.ts.map +1 -1
  489. package/dist/sdks/typescript/validator.js +205 -1
  490. package/dist/sdks/typescript/validator.js.map +1 -1
  491. package/dist/services/agent-card-generator.d.ts +57 -0
  492. package/dist/services/agent-card-generator.d.ts.map +1 -0
  493. package/dist/services/agent-card-generator.js +592 -0
  494. package/dist/services/agent-card-generator.js.map +1 -0
  495. package/dist/services/agent-type-detector.service.d.ts +72 -0
  496. package/dist/services/agent-type-detector.service.d.ts.map +1 -0
  497. package/dist/services/agent-type-detector.service.js +197 -0
  498. package/dist/services/agent-type-detector.service.js.map +1 -0
  499. package/dist/services/agents-md/agents-md-generator.service.d.ts +29 -0
  500. package/dist/services/agents-md/agents-md-generator.service.d.ts.map +1 -0
  501. package/dist/services/agents-md/agents-md-generator.service.js +252 -0
  502. package/dist/services/agents-md/agents-md-generator.service.js.map +1 -0
  503. package/dist/services/ai-architect.service.js +1 -1
  504. package/dist/services/ai-architect.service.js.map +1 -1
  505. package/dist/services/audit.d.ts +7 -1
  506. package/dist/services/audit.d.ts.map +1 -1
  507. package/dist/services/audit.js +70 -40
  508. package/dist/services/audit.js.map +1 -1
  509. package/dist/services/codegen/generators/vscode.generator.js +2 -2
  510. package/dist/services/codegen/generators/vscode.generator.js.map +1 -1
  511. package/dist/services/evals/evals-generator.service.d.ts +90 -0
  512. package/dist/services/evals/evals-generator.service.d.ts.map +1 -0
  513. package/dist/services/evals/evals-generator.service.js +1603 -0
  514. package/dist/services/evals/evals-generator.service.js.map +1 -0
  515. package/dist/services/export/anthropic/anthropic-exporter.d.ts +1 -0
  516. package/dist/services/export/anthropic/anthropic-exporter.d.ts.map +1 -1
  517. package/dist/services/export/anthropic/anthropic-exporter.js +11 -2
  518. package/dist/services/export/anthropic/anthropic-exporter.js.map +1 -1
  519. package/dist/services/export/export-orchestrator.d.ts +1 -0
  520. package/dist/services/export/export-orchestrator.d.ts.map +1 -1
  521. package/dist/services/export/npm/npm-exporter.d.ts.map +1 -1
  522. package/dist/services/export/npm/npm-exporter.js.map +1 -1
  523. package/dist/services/export/npm/package-json-generator.d.ts.map +1 -1
  524. package/dist/services/export/npm/package-json-generator.js +2 -1
  525. package/dist/services/export/npm/package-json-generator.js.map +1 -1
  526. package/dist/services/framework-import/langchain-importer.service.d.ts.map +1 -1
  527. package/dist/services/framework-import/langchain-importer.service.js +2 -1
  528. package/dist/services/framework-import/langchain-importer.service.js.map +1 -1
  529. package/dist/services/framework-import/langflow-importer.service.d.ts.map +1 -1
  530. package/dist/services/framework-import/langflow-importer.service.js +3 -2
  531. package/dist/services/framework-import/langflow-importer.service.js.map +1 -1
  532. package/dist/services/generation.service.d.ts +7 -0
  533. package/dist/services/generation.service.d.ts.map +1 -1
  534. package/dist/services/generation.service.js +31 -8
  535. package/dist/services/generation.service.js.map +1 -1
  536. package/dist/services/github-sync/schemas.d.ts +1 -1
  537. package/dist/services/governance/governance-generator.service.d.ts +120 -0
  538. package/dist/services/governance/governance-generator.service.d.ts.map +1 -0
  539. package/dist/services/governance/governance-generator.service.js +955 -0
  540. package/dist/services/governance/governance-generator.service.js.map +1 -0
  541. package/dist/services/id-card.service.d.ts +109 -0
  542. package/dist/services/id-card.service.d.ts.map +1 -0
  543. package/dist/services/id-card.service.js +236 -0
  544. package/dist/services/id-card.service.js.map +1 -0
  545. package/dist/services/llms-txt/llms-txt.service.d.ts +2 -2
  546. package/dist/services/llms-txt/llms-txt.service.js +2 -2
  547. package/dist/services/messaging/index.d.ts +0 -1
  548. package/dist/services/messaging/index.d.ts.map +1 -1
  549. package/dist/services/messaging/index.js +2 -1
  550. package/dist/services/messaging/index.js.map +1 -1
  551. package/dist/services/multi-agent/team-generator.service.d.ts +41 -0
  552. package/dist/services/multi-agent/team-generator.service.d.ts.map +1 -0
  553. package/dist/services/multi-agent/team-generator.service.js +560 -0
  554. package/dist/services/multi-agent/team-generator.service.js.map +1 -0
  555. package/dist/services/observability/observability-generator.service.d.ts +54 -0
  556. package/dist/services/observability/observability-generator.service.d.ts.map +1 -0
  557. package/dist/services/observability/observability-generator.service.js +1353 -0
  558. package/dist/services/observability/observability-generator.service.js.map +1 -0
  559. package/dist/services/registry/bundle.service.d.ts.map +1 -1
  560. package/dist/services/registry/bundle.service.js +2 -1
  561. package/dist/services/registry/bundle.service.js.map +1 -1
  562. package/dist/services/registry/index.service.js +1 -1
  563. package/dist/services/registry.service.d.ts.map +1 -1
  564. package/dist/services/registry.service.js +2 -1
  565. package/dist/services/registry.service.js.map +1 -1
  566. package/dist/services/release-automation/release-agent.service.js +1 -1
  567. package/dist/services/runtime/anthropic.adapter.d.ts.map +1 -1
  568. package/dist/services/runtime/anthropic.adapter.js +2 -6
  569. package/dist/services/runtime/anthropic.adapter.js.map +1 -1
  570. package/dist/services/runtime/azure.adapter.d.ts +1 -1
  571. package/dist/services/runtime/azure.adapter.js +3 -3
  572. package/dist/services/runtime/azure.adapter.js.map +1 -1
  573. package/dist/services/runtime/bedrock.adapter.d.ts.map +1 -1
  574. package/dist/services/runtime/bedrock.adapter.js +2 -6
  575. package/dist/services/runtime/bedrock.adapter.js.map +1 -1
  576. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  577. package/dist/services/runtime/claude/claude-adapter.js +2 -6
  578. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  579. package/dist/services/runtime/gemini.adapter.d.ts.map +1 -1
  580. package/dist/services/runtime/gemini.adapter.js +2 -6
  581. package/dist/services/runtime/gemini.adapter.js.map +1 -1
  582. package/dist/services/runtime/mistral.adapter.d.ts.map +1 -1
  583. package/dist/services/runtime/mistral.adapter.js +2 -6
  584. package/dist/services/runtime/mistral.adapter.js.map +1 -1
  585. package/dist/services/runtime/ollama.adapter.d.ts.map +1 -1
  586. package/dist/services/runtime/ollama.adapter.js +2 -6
  587. package/dist/services/runtime/ollama.adapter.js.map +1 -1
  588. package/dist/services/runtime/openai.adapter.js +2 -2
  589. package/dist/services/runtime/openai.adapter.js.map +1 -1
  590. package/dist/services/skills-pipeline/index.d.ts +8 -0
  591. package/dist/services/skills-pipeline/index.d.ts.map +1 -0
  592. package/dist/services/skills-pipeline/index.js +8 -0
  593. package/dist/services/skills-pipeline/index.js.map +1 -0
  594. package/dist/services/skills-pipeline/skills-export.service.d.ts +86 -0
  595. package/dist/services/skills-pipeline/skills-export.service.d.ts.map +1 -0
  596. package/dist/services/skills-pipeline/skills-export.service.js +483 -0
  597. package/dist/services/skills-pipeline/skills-export.service.js.map +1 -0
  598. package/dist/services/skills-pipeline/skills-generator.service.d.ts +118 -0
  599. package/dist/services/skills-pipeline/skills-generator.service.d.ts.map +1 -0
  600. package/dist/services/skills-pipeline/skills-generator.service.js +648 -0
  601. package/dist/services/skills-pipeline/skills-generator.service.js.map +1 -0
  602. package/dist/services/skills-pipeline/skills-research.service.d.ts +112 -0
  603. package/dist/services/skills-pipeline/skills-research.service.d.ts.map +1 -0
  604. package/dist/services/skills-pipeline/skills-research.service.js +471 -0
  605. package/dist/services/skills-pipeline/skills-research.service.js.map +1 -0
  606. package/dist/services/taxonomy-service.d.ts +4 -4
  607. package/dist/services/taxonomy-service.js +1 -1
  608. package/dist/services/template-processor.service.d.ts.map +1 -1
  609. package/dist/services/template-processor.service.js +7 -5
  610. package/dist/services/template-processor.service.js.map +1 -1
  611. package/dist/services/validators/a2a.validator.js +1 -1
  612. package/dist/services/validators/autogen.validator.js +1 -1
  613. package/dist/services/validators/crewai.validator.js +1 -1
  614. package/dist/services/validators/kagent.validator.js +1 -1
  615. package/dist/services/validators/langchain.validator.js +1 -1
  616. package/dist/services/validators/langgraph.validator.js +1 -1
  617. package/dist/services/validators/mcp.validator.js +1 -1
  618. package/dist/services/wizard/prompts.d.ts.map +1 -1
  619. package/dist/services/wizard/prompts.js +25 -9
  620. package/dist/services/wizard/prompts.js.map +1 -1
  621. package/dist/services/wizard/wizard.service.d.ts +1 -1
  622. package/dist/services/wizard/wizard.service.d.ts.map +1 -1
  623. package/dist/services/wizard/wizard.service.js +89 -26
  624. package/dist/services/wizard/wizard.service.js.map +1 -1
  625. package/dist/spec/extensions/knowledge-graph/knowledge-graph.schema.json +1 -1
  626. package/dist/spec/extensions/manifest-extensions.md +2 -2
  627. package/dist/spec/registry/README.md +1 -1
  628. package/dist/spec/registry/registry-spec.md +4 -4
  629. package/dist/spec/v0.4/agent-card.schema.json +390 -0
  630. package/dist/spec/v0.4/agent.schema.json +808 -48
  631. package/dist/spec/v0.4/extensions/drupal/drupal.schema.json +77 -0
  632. package/dist/spec/v0.4/extensions/evals/evals.schema.json +597 -0
  633. package/dist/spec/v0.4/extensions/identity/identity.schema.json +302 -0
  634. package/dist/spec/v0.4/extensions/kagent/README.md +1 -1
  635. package/dist/spec/v0.4/extensions/team/team.schema.json +304 -0
  636. package/dist/spec/v0.5/agent.schema.json +768 -0
  637. package/dist/transports/websocket.js +1 -1
  638. package/dist/types/dynamic-agent-types.d.ts +158 -0
  639. package/dist/types/dynamic-agent-types.d.ts.map +1 -0
  640. package/dist/types/dynamic-agent-types.js +473 -0
  641. package/dist/types/dynamic-agent-types.js.map +1 -0
  642. package/dist/types/generated/ossa-0.3.4.types.d.ts +63 -0
  643. package/dist/types/generated/ossa-0.3.4.types.d.ts.map +1 -1
  644. package/dist/types/generated/ossa-0.3.4.zod.d.ts +303 -0
  645. package/dist/types/generated/ossa-0.3.4.zod.d.ts.map +1 -1
  646. package/dist/types/generated/ossa-0.3.4.zod.js +92 -0
  647. package/dist/types/generated/ossa-0.3.4.zod.js.map +1 -1
  648. package/dist/types/identity.zod.d.ts +15 -15
  649. package/dist/types/index.d.ts +176 -3
  650. package/dist/types/index.d.ts.map +1 -1
  651. package/dist/types/index.js +7 -0
  652. package/dist/types/index.js.map +1 -1
  653. package/dist/types/personality.zod.d.ts +20 -20
  654. package/dist/types/protocols.d.ts +158 -0
  655. package/dist/types/protocols.d.ts.map +1 -0
  656. package/dist/types/protocols.js +8 -0
  657. package/dist/types/protocols.js.map +1 -0
  658. package/dist/types/security.d.ts +123 -0
  659. package/dist/types/security.d.ts.map +1 -0
  660. package/dist/types/security.js +9 -0
  661. package/dist/types/security.js.map +1 -0
  662. package/dist/types/tool.d.ts +73 -0
  663. package/dist/types/tool.d.ts.map +1 -0
  664. package/dist/types/tool.js +66 -0
  665. package/dist/types/tool.js.map +1 -0
  666. package/dist/utils/version.d.ts +9 -9
  667. package/dist/utils/version.d.ts.map +1 -1
  668. package/dist/utils/version.js +11 -18
  669. package/dist/utils/version.js.map +1 -1
  670. package/dist/validation/error-codes.js +5 -5
  671. package/dist/validation/error-codes.js.map +1 -1
  672. package/dist/validation/linter.d.ts +3 -3
  673. package/dist/validation/linter.js +4 -4
  674. package/dist/validation/linter.js.map +1 -1
  675. package/dist/validation/progressive-scorer.d.ts.map +1 -1
  676. package/dist/validation/progressive-scorer.js +18 -5
  677. package/dist/validation/progressive-scorer.js.map +1 -1
  678. package/dist/validation/validation-context.d.ts.map +1 -1
  679. package/dist/validation/validation-context.js.map +1 -1
  680. package/dist/validation/validator-registry.d.ts.map +1 -1
  681. package/dist/validation/validator-registry.js.map +1 -1
  682. package/dist/validation/validator.d.ts +3 -3
  683. package/dist/validation/validator.d.ts.map +1 -1
  684. package/dist/validation/validator.js +4 -4
  685. package/dist/validation/validator.js.map +1 -1
  686. package/dist/version.d.ts.map +1 -1
  687. package/dist/version.js +7 -2
  688. package/dist/version.js.map +1 -1
  689. package/examples/a2a/agent-handoff.ossa.yaml +1 -1
  690. package/examples/a2a/service-discovery.ossa.yaml +1 -1
  691. package/examples/adapters/drupal-eca-mapping.yaml +1 -1
  692. package/examples/adapters/drupal-eca-task.yaml +1 -1
  693. package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
  694. package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
  695. package/examples/adapters/mistral-README.md +1 -1
  696. package/examples/adapters/mistral-agent.yaml +1 -1
  697. package/examples/adapters/symfony-messenger-task.yaml +1 -1
  698. package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
  699. package/examples/adk-integration/code-review-workflow.yml +1 -1
  700. package/examples/adk-integration/customer-support.yml +1 -1
  701. package/examples/adk-integration/data-pipeline.yml +1 -1
  702. package/examples/advanced/reasoning-agent.yaml +1 -1
  703. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  704. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  705. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  706. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  707. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  708. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  709. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  710. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  711. package/examples/agent-manifests/v0.5-identity-security-protocols.ossa.yaml +159 -0
  712. package/examples/agent-manifests/v0.5-minimal.ossa.yaml +37 -0
  713. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  714. package/examples/agent-mesh/DISCOVERY.md +2 -2
  715. package/examples/agent-taxonomy-example.ossa.yaml +1 -1
  716. package/examples/agents/01-customer-support-bot/agent.ossa.yaml +1 -1
  717. package/examples/agents/02-code-review-agent/agent.ossa.yaml +1 -1
  718. package/examples/agents/03-data-analysis-agent/agent.ossa.yaml +1 -1
  719. package/examples/agents/04-content-moderator/agent.ossa.yaml +1 -1
  720. package/examples/agents/05-sales-assistant/agent.ossa.yaml +1 -1
  721. package/examples/agents/06-devops-agent/agent.ossa.yaml +1 -1
  722. package/examples/agents/07-research-assistant/agent.ossa.yaml +1 -1
  723. package/examples/agents/08-email-triage-agent/agent.ossa.yaml +1 -1
  724. package/examples/agents/09-security-scanner/agent.ossa.yaml +1 -1
  725. package/examples/agents/10-meeting-assistant/agent.ossa.yaml +1 -1
  726. package/examples/agents/architecture-healer-enterprise.yaml +1 -1
  727. package/examples/agents/dependency-healer-npm.yaml +1 -1
  728. package/examples/agents/spec-healer-openapi.yaml +1 -1
  729. package/examples/agents/wiki-healer-production.yaml +1 -1
  730. package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
  731. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
  732. package/examples/build-once-use-everywhere/README.md +3 -3
  733. package/examples/build-once-use-everywhere/agent.ossa.yaml +1 -1
  734. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  735. package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
  736. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  737. package/examples/contracts/data-consumer.ossa.yaml +1 -1
  738. package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
  739. package/examples/contracts/data-producer.ossa.yaml +1 -1
  740. package/examples/deployment-workflow.md +1 -1
  741. package/examples/drupal/QUICKSTART.md +8 -8
  742. package/examples/drupal/content-moderator.ossa.yaml +1 -1
  743. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  744. package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +1 -1
  745. package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +1 -1
  746. package/examples/extensions/agents-md-advanced.yml +1 -1
  747. package/examples/extensions/agents-md-basic.yml +1 -1
  748. package/examples/extensions/agents-md-sync.yml +1 -1
  749. package/examples/extensions/agents-md-v1.yml +3 -3
  750. package/examples/extensions/drupal-v1.yml +1 -1
  751. package/examples/extensions/encryption-multi-provider.yaml +4 -4
  752. package/examples/extensions/kagent-v1.yml +1 -1
  753. package/examples/extensions/knowledge-sources.yaml +1 -1
  754. package/examples/extensions/mcp-full-featured.yaml +1 -1
  755. package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
  756. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  757. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  758. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
  759. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  760. package/examples/getting-started/hello-world-complete.ossa.yaml +2 -1
  761. package/examples/gitlab-agents/DEPLOYMENT.md +7 -7
  762. package/examples/gitlab-agents/daily-code-scan/src/gitlab-client.ts +87 -11
  763. package/examples/gitlab-agents/duo-comment-responder/README.md +1 -1
  764. package/examples/gitlab-agents/duo-comment-responder/webhook-config.json +1 -1
  765. package/examples/gitlab-agents/k8s/deploy-all.yaml +5 -5
  766. package/examples/gitlab-agents/mr-reviewer/README.md +1 -1
  767. package/examples/gitlab-agents/mr-reviewer/src/gitlab-client.ts +83 -13
  768. package/examples/gitlab-agents/mr-reviewer/webhook-config.json +1 -1
  769. package/examples/gitlab-agents/pipeline-auto-fix/README.md +1 -1
  770. package/examples/gitlab-agents/pipeline-auto-fix/src/gitlab-client.ts +2 -3
  771. package/examples/gitlab-agents/pipeline-auto-fix/webhook-config.json +1 -1
  772. package/examples/gitlab-duo/README.md +7 -7
  773. package/examples/hierarchical-agent.ossa.yaml +126 -0
  774. package/examples/hierarchical-crewai.ossa.yaml +96 -0
  775. package/examples/infrastructure/token-rotation/manifest.ossa.yaml +1 -1
  776. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +1 -1
  777. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  778. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  779. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  780. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  781. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  782. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  783. package/examples/knowledge-graph/drupal-agent-with-kg.ossa.yaml +1 -1
  784. package/examples/mcp/browser-puppeteer.ossa.yaml +5 -7
  785. package/examples/mcp/database-mcp.ossa.yaml +1 -1
  786. package/examples/mcp/filesystem-mcp.ossa.yaml +1 -1
  787. package/examples/messaging/dependency-healer.ossa.yaml +1 -1
  788. package/examples/messaging/incident-responder.ossa.yaml +1 -1
  789. package/examples/messaging/routing-rules.ossa.yaml +1 -1
  790. package/examples/messaging/security-scanner.ossa.yaml +1 -1
  791. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  792. package/examples/migrations/langchain/01-python-react-agent-after.ossa.yaml +1 -1
  793. package/examples/migrations/langchain/02-typescript-conversational-after.ossa.yaml +1 -1
  794. package/examples/migrations/langchain/03-sequential-chain-after.ossa.yaml +1 -1
  795. package/examples/migrations/langchain/04-config-based-after.ossa.yaml +1 -1
  796. package/examples/migrations/langchain/USAGE.txt +1 -1
  797. package/examples/migrations/swarm-to-ossa/QUICKSTART.md +3 -3
  798. package/examples/migrations/swarm-to-ossa/after-handoffs.ossa.yaml +6 -6
  799. package/examples/migrations/swarm-to-ossa/after-triage-agent.ossa.yaml +3 -3
  800. package/examples/minimal/agent.yml +1 -1
  801. package/examples/mr-reviewer-with-governance.ossa.yaml +1 -1
  802. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  803. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  804. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  805. package/examples/multi-agent-research-workflow.ossa.yaml +1 -1
  806. package/examples/multi-platform/single-manifest/agent.ossa.yaml +1 -1
  807. package/examples/observability/activity-stream-full.yaml +1 -1
  808. package/examples/openai/basic-agent.ossa.yaml +1 -1
  809. package/examples/ossa-templates/01-code-assistant.ossa.yaml +1 -1
  810. package/examples/ossa-templates/02-security-scanner.ossa.yaml +1 -1
  811. package/examples/ossa-templates/03-ci-pipeline.ossa.yaml +1 -1
  812. package/examples/ossa-templates/04-code-reviewer.ossa.yaml +1 -1
  813. package/examples/ossa-templates/05-doc-generator.ossa.yaml +1 -1
  814. package/examples/ossa-templates/06-compliance-validator.ossa.yaml +1 -1
  815. package/examples/ossa-templates/07-workflow-orchestrator.ossa.yaml +1 -1
  816. package/examples/ossa-templates/08-content-writer.ossa.yaml +1 -1
  817. package/examples/ossa-templates/09-test-generator.ossa.yaml +1 -1
  818. package/examples/ossa-templates/10-data-transformer.ossa.yaml +1 -1
  819. package/examples/ossa-templates/11-react-performance-expert.ossa.yaml +1 -1
  820. package/examples/ossa-templates/12-typescript-type-safety-expert.ossa.yaml +1 -1
  821. package/examples/ossa-templates/13-accessibility-champion.ossa.yaml +1 -1
  822. package/examples/ossa-templates/14-security-hardening-agent.ossa.yaml +1 -1
  823. package/examples/pipeline-agent.ossa.yaml +196 -0
  824. package/examples/platform-specific/claude-code-subagent.yaml +185 -0
  825. package/examples/platform-specific/cursor-coding-agent.yaml +175 -0
  826. package/examples/platform-specific/warp-terminal-agent.yaml +122 -0
  827. package/examples/production/document-analyzer-openai.yml +1 -1
  828. package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +1 -1
  829. package/examples/production-ready/02-code-review-agent/agent.ossa.yaml +1 -1
  830. package/examples/production-ready/03-data-analysis-agent/agent.ossa.yaml +1 -1
  831. package/examples/production-ready/04-content-moderator/agent.ossa.yaml +1 -1
  832. package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +1 -1
  833. package/examples/production-ready/06-devops-agent/agent.ossa.yaml +1 -1
  834. package/examples/production-ready/07-research-assistant/agent.ossa.yaml +1 -1
  835. package/examples/production-ready/08-email-triage-agent/agent.ossa.yaml +1 -1
  836. package/examples/production-ready/09-security-scanner/agent.ossa.yaml +1 -1
  837. package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +1 -1
  838. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  839. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
  840. package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
  841. package/examples/reference-implementations/python-client/README.md +2 -2
  842. package/examples/reference-implementations/typescript-client/README.md +1 -1
  843. package/examples/registry/agents/code-reviewer/agent.yaml +1 -1
  844. package/examples/registry/agents/security-scanner/agent.yaml +1 -1
  845. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
  846. package/examples/schema/reusable-components.yaml +1 -1
  847. package/examples/showcase/ci-pipeline.ossa.yaml +1 -1
  848. package/examples/showcase/code-assistant.ossa.yaml +1 -1
  849. package/examples/showcase/code-reviewer.ossa.yaml +1 -1
  850. package/examples/showcase/compliance-checker.ossa.yaml +1 -1
  851. package/examples/showcase/compliance-validator.ossa.yaml +1 -1
  852. package/examples/showcase/content-writer.ossa.yaml +1 -1
  853. package/examples/showcase/customer-support.ossa.yaml +1 -1
  854. package/examples/showcase/data-processing-pipeline.ossa.yaml +1 -1
  855. package/examples/showcase/data-transformer.ossa.yaml +1 -1
  856. package/examples/showcase/doc-generator.ossa.yaml +1 -1
  857. package/examples/showcase/full-power-agent.ossa.yaml +350 -0
  858. package/examples/showcase/security-scanner-enhanced.ossa.yaml +1 -1
  859. package/examples/showcase/security-scanner.ossa.yaml +1 -1
  860. package/examples/showcase/team-leader.ossa.yaml +1 -1
  861. package/examples/showcase/test-generator.ossa.yaml +1 -1
  862. package/examples/showcase/workflow-orchestrator.ossa.yaml +1 -1
  863. package/examples/single-agent.ossa.yaml +40 -0
  864. package/examples/skills-example.ossa.yaml +1 -1
  865. package/examples/subagents-pipeline.ossa.yaml +76 -0
  866. package/examples/swarm-agent.ossa.yaml +136 -0
  867. package/examples/swarm-handoff.ossa.yaml +67 -0
  868. package/examples/tasks/batch-email-sender.yaml +1 -1
  869. package/examples/tasks/data-transform.yaml +1 -1
  870. package/examples/tasks/publish-content.yaml +1 -1
  871. package/examples/team-agent.ossa.yaml +159 -0
  872. package/examples/team-lead-teammate.ossa.yaml +83 -0
  873. package/examples/templates/ossa-compliance.yaml +1 -1
  874. package/examples/unified/security-scanner.ossa.yaml +1 -1
  875. package/examples/workflows/batch-email-campaign.yaml +1 -1
  876. package/examples/workflows/content-review-publish.yaml +1 -1
  877. package/examples/workflows/simple-etl.yaml +1 -1
  878. package/openapi/agents-md-service.yaml +1 -1
  879. package/openapi/core/unified-agent-gateway.openapi.yaml +1 -1
  880. package/openapi/ossa-cli-enhancements.openapi.yaml +3 -3
  881. package/openapi/ossa-cli.yaml +1 -1
  882. package/openapi/protocols/sse-streams.yaml +1 -1
  883. package/openapi/protocols/websocket-events.yaml +2 -2
  884. package/openapi/release-automation.openapi.yaml +1 -1
  885. package/package.json +36 -18
  886. package/spec/extensions/knowledge-graph/knowledge-graph.schema.json +1 -1
  887. package/spec/extensions/manifest-extensions.md +2 -2
  888. package/spec/registry/README.md +1 -1
  889. package/spec/registry/registry-spec.md +4 -4
  890. package/spec/v0.4/agent-card.schema.json +390 -0
  891. package/spec/v0.4/agent.schema.json +808 -48
  892. package/spec/v0.4/extensions/drupal/drupal.schema.json +77 -0
  893. package/spec/v0.4/extensions/evals/evals.schema.json +597 -0
  894. package/spec/v0.4/extensions/governance/governance-extension.yaml +161 -0
  895. package/spec/v0.4/extensions/identity/identity.schema.json +302 -0
  896. package/spec/v0.4/extensions/kagent/README.md +1 -1
  897. package/spec/v0.4/extensions/team/team.schema.json +304 -0
  898. package/spec/v0.5/agent.schema.json +768 -0
  899. package/dist/adapters/anthropic/runtime.d.ts +0 -136
  900. package/dist/adapters/anthropic/runtime.d.ts.map +0 -1
  901. package/dist/adapters/anthropic/runtime.js +0 -290
  902. package/dist/adapters/anthropic/runtime.js.map +0 -1
  903. package/dist/adapters/drupal/production-exporter.legacy.d.ts +0 -131
  904. package/dist/adapters/drupal/production-exporter.legacy.d.ts.map +0 -1
  905. package/dist/adapters/drupal/production-exporter.legacy.js +0 -2537
  906. package/dist/adapters/drupal/production-exporter.legacy.js.map +0 -1
  907. package/dist/cli/commands/agent-create.command.d.ts +0 -18
  908. package/dist/cli/commands/agent-create.command.d.ts.map +0 -1
  909. package/dist/cli/commands/agent-create.command.js +0 -437
  910. package/dist/cli/commands/agent-create.command.js.map +0 -1
  911. package/dist/cli/commands/catalog/diff.command.d.ts +0 -8
  912. package/dist/cli/commands/catalog/diff.command.d.ts.map +0 -1
  913. package/dist/cli/commands/catalog/diff.command.js +0 -76
  914. package/dist/cli/commands/catalog/diff.command.js.map +0 -1
  915. package/dist/cli/commands/catalog/pull.command.d.ts +0 -8
  916. package/dist/cli/commands/catalog/pull.command.d.ts.map +0 -1
  917. package/dist/cli/commands/catalog/pull.command.js +0 -107
  918. package/dist/cli/commands/catalog/pull.command.js.map +0 -1
  919. package/dist/cli/commands/catalog/push.command.d.ts +0 -8
  920. package/dist/cli/commands/catalog/push.command.d.ts.map +0 -1
  921. package/dist/cli/commands/catalog/push.command.js +0 -120
  922. package/dist/cli/commands/catalog/push.command.js.map +0 -1
  923. package/dist/cli/commands/catalog/sync.command.d.ts +0 -8
  924. package/dist/cli/commands/catalog/sync.command.d.ts.map +0 -1
  925. package/dist/cli/commands/catalog/sync.command.js +0 -86
  926. package/dist/cli/commands/catalog/sync.command.js.map +0 -1
  927. package/dist/cli/commands/setup.command.d.ts +0 -11
  928. package/dist/cli/commands/setup.command.d.ts.map +0 -1
  929. package/dist/cli/commands/setup.command.js +0 -354
  930. package/dist/cli/commands/setup.command.js.map +0 -1
  931. package/dist/services/agent-protocol-client.d.ts +0 -541
  932. package/dist/services/agent-protocol-client.d.ts.map +0 -1
  933. package/dist/services/agent-protocol-client.js +0 -166
  934. package/dist/services/agent-protocol-client.js.map +0 -1
  935. package/dist/spec/v0.3/CHANGELOG.md +0 -237
  936. package/dist/spec/v0.3/MIGRATION-v0.3.4-to-v0.3.5.md +0 -292
  937. package/dist/spec/v0.3/MIGRATION-v0.3.5-to-v0.3.6.md +0 -552
  938. package/dist/spec/v0.3/README.md +0 -366
  939. package/dist/spec/v0.3/adoption-blockers.json +0 -142
  940. package/dist/spec/v0.3/bat-framework.schema.json +0 -114
  941. package/dist/spec/v0.3/capability-discovery.schema.json +0 -128
  942. package/dist/spec/v0.3/checkpoint.schema.json +0 -132
  943. package/dist/spec/v0.3/completion-signals.schema.json +0 -136
  944. package/dist/spec/v0.3/conformance/IMPLEMENTATION.md +0 -402
  945. package/dist/spec/v0.3/conformance/PROFILES.md +0 -210
  946. package/dist/spec/v0.3/conformance/README.md +0 -263
  947. package/dist/spec/v0.3/conformance/profiles/baseline.json +0 -27
  948. package/dist/spec/v0.3/conformance/profiles/enterprise.json +0 -33
  949. package/dist/spec/v0.3/conformance/profiles/gitlab-kagent.json +0 -36
  950. package/dist/spec/v0.3/conformance/tests/baseline/invalid/missing-identity.yaml +0 -6
  951. package/dist/spec/v0.3/conformance/tests/baseline/invalid/missing-kind.yaml +0 -7
  952. package/dist/spec/v0.3/conformance/tests/baseline/valid/basic-agent.yaml +0 -22
  953. package/dist/spec/v0.3/conformance/tests/baseline/valid/minimal-agent.yaml +0 -15
  954. package/dist/spec/v0.3/conformance/tests/enterprise/valid/enterprise-agent.yaml +0 -88
  955. package/dist/spec/v0.3/conformance/tests/enterprise/valid/production-agent.yaml +0 -112
  956. package/dist/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-agent.yaml +0 -117
  957. package/dist/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-full.yaml +0 -125
  958. package/dist/spec/v0.3/examples/checkpoint-example.ossa.yaml +0 -81
  959. package/dist/spec/v0.3/examples/flow-example.ossa.yaml +0 -119
  960. package/dist/spec/v0.3/examples/forward-thinking-agent.ossa.yaml +0 -294
  961. package/dist/spec/v0.3/examples/moe-example.ossa.yaml +0 -120
  962. package/dist/spec/v0.3/extensions/a2a/README.md +0 -193
  963. package/dist/spec/v0.3/extensions/a2a/a2a.schema.json +0 -77
  964. package/dist/spec/v0.3/extensions/ag2/ag2.schema.json +0 -277
  965. package/dist/spec/v0.3/extensions/crewai/crewai.schema.json +0 -256
  966. package/dist/spec/v0.3/extensions/kagent/README.md +0 -315
  967. package/dist/spec/v0.3/extensions/kagent/kagent.schema.json +0 -624
  968. package/dist/spec/v0.3/extensions/langchain/langchain.schema.json +0 -243
  969. package/dist/spec/v0.3/extensions/langgraph/langgraph.schema.json +0 -211
  970. package/dist/spec/v0.3/extensions/mcp/README.md +0 -276
  971. package/dist/spec/v0.3/extensions/mcp/mcp.schema.json +0 -84
  972. package/dist/spec/v0.3/feedback-loops.schema.json +0 -145
  973. package/dist/spec/v0.3/flow-kind.schema.json +0 -244
  974. package/dist/spec/v0.3/infrastructure-substrate.schema.json +0 -190
  975. package/dist/spec/v0.3/mixture-of-experts.schema.json +0 -159
  976. package/dist/spec/v0.3/moe-metrics.schema.json +0 -162
  977. package/dist/spec/v0.3/ossa-0.3.5.schema.json +0 -13534
  978. package/dist/spec/v0.3/ossa-0.3.6.schema.json +0 -14920
  979. package/dist/spec/v0.3/ossa-v0.3.schema.json +0 -15824
  980. package/dist/spec/v0.3/registry/registry-contract.schema.json +0 -359
  981. package/dist/spec/v0.3.6/CHANGELOG.md +0 -171
  982. package/dist/spec/v0.3.6/README.md +0 -382
  983. package/dist/spec/v0.3.6/taxonomy.yaml +0 -506
  984. package/examples/bridges/__pycache__/test_aiflow_integration.cpython-313.pyc +0 -0
  985. package/examples/migrations/swarm-to-ossa/before-handoffs.py +0 -373
  986. package/examples/v0.3.6/full-featured-v0.3.6.ossa.yaml +0 -304
  987. package/examples/v0.3.6/gitlab-duo-composite-identity.ossa.yaml +0 -119
  988. package/examples/v0.3.6/knowledge-graph-integration.ossa.yaml +0 -109
  989. package/examples/v0.3.6/token-efficiency-economy.ossa.yaml +0 -111
  990. package/examples/v0.3.6-features/README.md +0 -433
  991. package/examples/v0.3.6-features/genetics-breeding-advanced.ossa.yaml +0 -496
  992. package/examples/v0.3.6-features/genetics-breeding-simple.ossa.yaml +0 -304
  993. package/examples/v0.3.6-features/genetics-fitness-scoring.ossa.yaml +0 -551
  994. package/schemas/capability-contract.v0.json +0 -116
  995. package/schemas/identity.lock.schema.json +0 -59
  996. package/schemas/identity.plan.schema.json +0 -132
  997. package/spec/v0.3/CHANGELOG.md +0 -237
  998. package/spec/v0.3/MIGRATION-v0.3.4-to-v0.3.5.md +0 -292
  999. package/spec/v0.3/MIGRATION-v0.3.5-to-v0.3.6.md +0 -552
  1000. package/spec/v0.3/README.md +0 -366
  1001. package/spec/v0.3/adoption-blockers.json +0 -142
  1002. package/spec/v0.3/bat-framework.schema.json +0 -114
  1003. package/spec/v0.3/capability-discovery.schema.json +0 -128
  1004. package/spec/v0.3/checkpoint.schema.json +0 -132
  1005. package/spec/v0.3/completion-signals.schema.json +0 -136
  1006. package/spec/v0.3/conformance/IMPLEMENTATION.md +0 -402
  1007. package/spec/v0.3/conformance/PROFILES.md +0 -210
  1008. package/spec/v0.3/conformance/README.md +0 -263
  1009. package/spec/v0.3/conformance/profiles/baseline.json +0 -27
  1010. package/spec/v0.3/conformance/profiles/enterprise.json +0 -33
  1011. package/spec/v0.3/conformance/profiles/gitlab-kagent.json +0 -36
  1012. package/spec/v0.3/conformance/tests/baseline/invalid/missing-identity.yaml +0 -6
  1013. package/spec/v0.3/conformance/tests/baseline/invalid/missing-kind.yaml +0 -7
  1014. package/spec/v0.3/conformance/tests/baseline/valid/basic-agent.yaml +0 -22
  1015. package/spec/v0.3/conformance/tests/baseline/valid/minimal-agent.yaml +0 -15
  1016. package/spec/v0.3/conformance/tests/enterprise/valid/enterprise-agent.yaml +0 -88
  1017. package/spec/v0.3/conformance/tests/enterprise/valid/production-agent.yaml +0 -112
  1018. package/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-agent.yaml +0 -117
  1019. package/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-full.yaml +0 -125
  1020. package/spec/v0.3/examples/checkpoint-example.ossa.yaml +0 -81
  1021. package/spec/v0.3/examples/flow-example.ossa.yaml +0 -119
  1022. package/spec/v0.3/examples/forward-thinking-agent.ossa.yaml +0 -294
  1023. package/spec/v0.3/examples/moe-example.ossa.yaml +0 -120
  1024. package/spec/v0.3/extensions/a2a/README.md +0 -193
  1025. package/spec/v0.3/extensions/a2a/a2a.schema.json +0 -77
  1026. package/spec/v0.3/extensions/ag2/ag2.schema.json +0 -277
  1027. package/spec/v0.3/extensions/crewai/crewai.schema.json +0 -256
  1028. package/spec/v0.3/extensions/kagent/README.md +0 -315
  1029. package/spec/v0.3/extensions/kagent/kagent.schema.json +0 -624
  1030. package/spec/v0.3/extensions/langchain/langchain.schema.json +0 -243
  1031. package/spec/v0.3/extensions/langgraph/langgraph.schema.json +0 -211
  1032. package/spec/v0.3/extensions/mcp/README.md +0 -276
  1033. package/spec/v0.3/extensions/mcp/mcp.schema.json +0 -84
  1034. package/spec/v0.3/feedback-loops.schema.json +0 -145
  1035. package/spec/v0.3/flow-kind.schema.json +0 -244
  1036. package/spec/v0.3/infrastructure-substrate.schema.json +0 -190
  1037. package/spec/v0.3/mixture-of-experts.schema.json +0 -159
  1038. package/spec/v0.3/moe-metrics.schema.json +0 -162
  1039. package/spec/v0.3/ossa-0.3.5.schema.json +0 -13534
  1040. package/spec/v0.3/ossa-0.3.6.schema.json +0 -14920
  1041. package/spec/v0.3/ossa-v0.3.schema.json +0 -15824
  1042. package/spec/v0.3/registry/registry-contract.schema.json +0 -359
  1043. package/spec/v0.3.6/CHANGELOG.md +0 -171
  1044. package/spec/v0.3.6/README.md +0 -382
  1045. package/spec/v0.3.6/taxonomy.yaml +0 -506
  1046. package/templates/agent-types/analyzer/cost-analyzer.yaml +0 -38
  1047. package/templates/agent-types/analyzer/performance-profiler.yaml +0 -38
  1048. package/templates/agent-types/analyzer/security-scanner.yaml +0 -36
  1049. package/templates/agent-types/backend/api-validator.yaml +0 -37
  1050. package/templates/agent-types/backend/load-balancer.yaml +0 -39
  1051. package/templates/agent-types/content/content-generator.yaml +0 -40
  1052. package/templates/agent-types/content/seo-optimizer.yaml +0 -39
  1053. package/templates/agent-types/data/data-processor.yaml +0 -38
  1054. package/templates/agent-types/data/report-generator.yaml +0 -40
  1055. package/templates/agent-types/development/code-generator.yaml +0 -39
  1056. package/templates/agent-types/development/dependency-updater.yaml +0 -38
  1057. package/templates/agent-types/frontend/accessibility-checker.yaml +0 -38
  1058. package/templates/agent-types/frontend/ui-tester.yaml +0 -38
  1059. package/templates/agent-types/infrastructure/deployment-automator.yaml +0 -39
  1060. package/templates/agent-types/infrastructure/resource-optimizer.yaml +0 -38
  1061. package/templates/agent-types/monitor/health-checker.yaml +0 -37
  1062. package/templates/agent-types/monitor/log-analyzer.yaml +0 -37
  1063. package/templates/agent-types/orchestrator/multi-agent-coordinator.yaml +0 -38
  1064. package/templates/agent-types/orchestrator/workflow-manager.yaml +0 -39
  1065. package/templates/agent-types/security/compliance-checker.yaml +0 -38
  1066. package/templates/agent-types/security/vulnerability-scanner.yaml +0 -38
  1067. package/templates/agent-types/worker/api-tester.yaml +0 -43
  1068. package/templates/agent-types/worker/code-reviewer.yaml +0 -39
  1069. package/templates/agent-types/worker/database-migrator.yaml +0 -38
  1070. package/templates/platforms/cursor/code-assistant/manifest.ossa.yaml +0 -40
  1071. package/templates/platforms/drupal/content-agent/manifest.ossa.yaml +0 -39
  1072. package/templates/platforms/gitlab/ci-agent/manifest.ossa.yaml +0 -41
  1073. package/templates/platforms/kubernetes/operator-agent/manifest.ossa.yaml +0 -39
  1074. package/templates/platforms/langflow/workflow-agent/manifest.ossa.yaml +0 -38
  1075. /package/{schemas → dist/spec/v0.4/extensions/governance}/governance-extension.yaml +0 -0
@@ -0,0 +1,1353 @@
1
+ /**
2
+ * Observability Generator Service
3
+ *
4
+ * Generates deployable observability configuration from an OSSA agent manifest:
5
+ * - observability/traces.yaml OTel Collector pipeline config
6
+ * - observability/metrics.yaml Prometheus-compatible metric definitions
7
+ * - observability/dashboards/agent-health.json Grafana dashboard template
8
+ *
9
+ * Uses OpenTelemetry gen_ai semantic conventions (v1.39.0 experimental).
10
+ * Reference: src/adapters/opentelemetry.adapter.ts for runtime patterns.
11
+ * This service generates static config FILES, not runtime initialization.
12
+ *
13
+ * SOLID: Single Responsibility - observability config generation only
14
+ * DRY: Reuses OssaAgent types, single-source manifest
15
+ */
16
+ import * as yaml from 'yaml';
17
+ // ── Service ─────────────────────────────────────────────────────────
18
+ export class ObservabilityGeneratorService {
19
+ /**
20
+ * Generate observability configuration files from an OSSA manifest.
21
+ *
22
+ * @param manifest - A validated OssaAgent manifest
23
+ * @returns ExportFile[] ready for disk write or archive
24
+ */
25
+ generate(manifest) {
26
+ const identity = this.resolveIdentity(manifest);
27
+ const endpoints = this.resolveEndpoints(manifest);
28
+ const constraints = this.resolveConstraints(manifest);
29
+ const tools = this.resolveTools(manifest);
30
+ const team = this.resolveTeam(manifest);
31
+ const isMultiAgent = team.length > 0;
32
+ const files = [
33
+ this.generateTracesYaml(identity, endpoints, tools, team),
34
+ this.generateMetricsYaml(identity, endpoints, constraints, tools, team),
35
+ this.generateDashboardJson(identity, constraints, tools, isMultiAgent),
36
+ ];
37
+ return files;
38
+ }
39
+ // ── Identity resolution ─────────────────────────────────────────
40
+ resolveIdentity(manifest) {
41
+ const meta = manifest.metadata;
42
+ const spec = manifest.spec;
43
+ return {
44
+ name: meta?.name ?? 'unnamed-agent',
45
+ version: meta?.version ?? '0.0.0',
46
+ provider: spec?.llm?.provider ?? 'unknown',
47
+ model: spec?.llm?.model ?? 'unknown',
48
+ pattern: meta?.agentArchitecture?.pattern ?? 'single',
49
+ agentType: meta?.agentType ?? 'custom',
50
+ agentKind: meta?.agentKind ?? 'worker',
51
+ };
52
+ }
53
+ // ── Endpoint resolution ─────────────────────────────────────────
54
+ resolveEndpoints(manifest) {
55
+ const obs = manifest.spec?.observability;
56
+ const ext = manifest.extensions?.observability;
57
+ const extTraces = ext?.traces;
58
+ const extMetrics = ext?.metrics;
59
+ // Prefer spec.observability, fall back to extensions.observability, then defaults
60
+ const tracesEndpoint = obs?.tracing?.endpoint ??
61
+ extTraces?.endpoint ??
62
+ 'http://localhost:4318/v1/traces';
63
+ const metricsEndpoint = obs?.metrics?.endpoint ??
64
+ extMetrics?.endpoint ??
65
+ 'http://localhost:4318/v1/metrics';
66
+ const tracesExporter = obs?.tracing?.exporter ?? 'otlp';
67
+ const metricsExporter = obs?.metrics?.exporter ?? 'otlp';
68
+ const sampleRate = extTraces?.sample_rate ?? 1.0;
69
+ const collectionIntervalSeconds = extMetrics?.collection_interval_seconds ?? 60;
70
+ return {
71
+ tracesEndpoint,
72
+ metricsEndpoint,
73
+ tracesExporter,
74
+ metricsExporter,
75
+ sampleRate,
76
+ collectionIntervalSeconds,
77
+ };
78
+ }
79
+ // ── Constraint resolution ───────────────────────────────────────
80
+ resolveConstraints(manifest) {
81
+ const cost = manifest.spec?.constraints?.cost;
82
+ const perf = manifest.spec?.constraints?.performance;
83
+ return {
84
+ maxTokensPerDay: cost?.maxTokensPerDay ?? 1_000_000,
85
+ maxCostPerDay: cost?.maxCostPerDay ?? 100,
86
+ maxLatencySeconds: perf?.maxLatencySeconds ?? 30,
87
+ maxErrorRate: perf?.maxErrorRate ?? 0.05,
88
+ timeoutSeconds: perf?.timeoutSeconds ?? 120,
89
+ };
90
+ }
91
+ // ── Tool resolution ─────────────────────────────────────────────
92
+ resolveTools(manifest) {
93
+ const tools = manifest.spec?.tools ?? [];
94
+ return tools.map((t) => t.name ?? t.type ?? 'unknown_tool');
95
+ }
96
+ // ── Team resolution ─────────────────────────────────────────────
97
+ resolveTeam(manifest) {
98
+ const spec = manifest.spec;
99
+ if (!spec)
100
+ return [];
101
+ // Check spec.team.members (primary path for multi-agent)
102
+ const team = spec.team;
103
+ if (team?.members && Array.isArray(team.members)) {
104
+ return team.members.map((m) => ({
105
+ name: m.name ?? 'unnamed',
106
+ role: m.role ?? 'worker',
107
+ }));
108
+ }
109
+ // Check spec.swarm.agents
110
+ const swarm = spec.swarm;
111
+ if (swarm?.agents && Array.isArray(swarm.agents)) {
112
+ return swarm.agents.map((a) => ({
113
+ name: a.name ?? 'unnamed',
114
+ role: a.role ?? 'worker',
115
+ }));
116
+ }
117
+ // Check spec.subagents
118
+ if (spec.subagents && Array.isArray(spec.subagents)) {
119
+ return spec.subagents.map((s) => ({
120
+ name: s.name ?? 'unnamed',
121
+ role: s.role ?? 'worker',
122
+ }));
123
+ }
124
+ return [];
125
+ }
126
+ // ── Traces YAML ─────────────────────────────────────────────────
127
+ generateTracesYaml(identity, endpoints, tools, team) {
128
+ const isMultiAgent = team.length > 0;
129
+ // Build OTel Collector config using gen_ai semantic conventions
130
+ const config = {
131
+ // Header comment captured as YAML comment below
132
+ receivers: {
133
+ otlp: {
134
+ protocols: {
135
+ http: {
136
+ endpoint: '0.0.0.0:4318',
137
+ },
138
+ grpc: {
139
+ endpoint: '0.0.0.0:4317',
140
+ },
141
+ },
142
+ },
143
+ },
144
+ processors: {
145
+ batch: {
146
+ timeout: '5s',
147
+ send_batch_size: 512,
148
+ send_batch_max_size: 1024,
149
+ },
150
+ // Enrich all spans with agent resource attributes
151
+ resource: {
152
+ attributes: [
153
+ { key: 'service.name', value: identity.name, action: 'upsert' },
154
+ { key: 'service.version', value: identity.version, action: 'upsert' },
155
+ { key: 'gen_ai.agent.name', value: identity.name, action: 'upsert' },
156
+ { key: 'gen_ai.provider.name', value: identity.provider, action: 'upsert' },
157
+ { key: 'gen_ai.request.model', value: identity.model, action: 'upsert' },
158
+ { key: 'ossa.agent.type', value: identity.agentType, action: 'upsert' },
159
+ { key: 'ossa.agent.kind', value: identity.agentKind, action: 'upsert' },
160
+ { key: 'ossa.agent.architecture.pattern', value: identity.pattern, action: 'upsert' },
161
+ ],
162
+ },
163
+ // Probabilistic sampling for high-throughput agents
164
+ probabilistic_sampler: {
165
+ sampling_percentage: endpoints.sampleRate * 100,
166
+ },
167
+ // Span filtering: keep only gen_ai.* and agent.* spans in production
168
+ filter: {
169
+ error_mode: 'ignore',
170
+ traces: {
171
+ span: [
172
+ 'attributes["gen_ai.operation.name"] != nil',
173
+ 'attributes["gen_ai.agent.name"] != nil',
174
+ 'name == "invoke_agent"',
175
+ 'name == "gen_ai.tool.call"',
176
+ 'name == "gen_ai.chat"',
177
+ 'name == "gen_ai.content.completion"',
178
+ ],
179
+ },
180
+ },
181
+ },
182
+ exporters: this.buildTraceExporters(endpoints),
183
+ service: {
184
+ pipelines: {
185
+ traces: {
186
+ receivers: ['otlp'],
187
+ processors: ['resource', 'probabilistic_sampler', 'batch'],
188
+ exporters: this.buildTraceExporterNames(endpoints),
189
+ },
190
+ },
191
+ telemetry: {
192
+ logs: {
193
+ level: 'info',
194
+ },
195
+ },
196
+ },
197
+ };
198
+ // Add span definitions as documentation for instrumentation
199
+ const spanDefinitions = this.buildSpanDefinitions(identity, tools, team, isMultiAgent);
200
+ const yamlContent = [
201
+ `# OpenTelemetry Collector configuration for ${identity.name}`,
202
+ `# Generated from OSSA manifest v${identity.version}`,
203
+ `# gen_ai semantic conventions v1.39.0 (experimental)`,
204
+ '#',
205
+ '# Span naming conventions:',
206
+ '# invoke_agent - Top-level agent invocation (kind: CLIENT)',
207
+ '# gen_ai.chat - LLM chat completion call (kind: CLIENT)',
208
+ '# gen_ai.content.completion - Content generation (kind: INTERNAL)',
209
+ '# gen_ai.tool.call - Tool invocation (kind: INTERNAL)',
210
+ ...(isMultiAgent
211
+ ? [
212
+ '# agent.handoff - Inter-agent handoff (kind: INTERNAL)',
213
+ '# agent.coordinate - Team coordination (kind: INTERNAL)',
214
+ ]
215
+ : []),
216
+ '#',
217
+ yaml.stringify(config, { lineWidth: 120 }),
218
+ '',
219
+ '# ── Span Definitions (for instrumentation reference) ──',
220
+ '#',
221
+ yaml.stringify({ _span_definitions: spanDefinitions }, { lineWidth: 120 }),
222
+ ].join('\n');
223
+ return {
224
+ path: 'observability/traces.yaml',
225
+ content: yamlContent,
226
+ type: 'config',
227
+ language: 'yaml',
228
+ };
229
+ }
230
+ buildTraceExporters(endpoints) {
231
+ const exporters = {};
232
+ switch (endpoints.tracesExporter) {
233
+ case 'jaeger':
234
+ exporters.jaeger = {
235
+ endpoint: endpoints.tracesEndpoint,
236
+ tls: { insecure: true },
237
+ };
238
+ break;
239
+ case 'zipkin':
240
+ exporters.zipkin = {
241
+ endpoint: endpoints.tracesEndpoint,
242
+ };
243
+ break;
244
+ case 'otlp':
245
+ default:
246
+ exporters.otlp = {
247
+ endpoint: endpoints.tracesEndpoint,
248
+ tls: { insecure: true },
249
+ };
250
+ break;
251
+ }
252
+ // Always include debug exporter for development
253
+ exporters.debug = {
254
+ verbosity: 'basic',
255
+ };
256
+ return exporters;
257
+ }
258
+ buildTraceExporterNames(endpoints) {
259
+ const names = [];
260
+ switch (endpoints.tracesExporter) {
261
+ case 'jaeger':
262
+ names.push('jaeger');
263
+ break;
264
+ case 'zipkin':
265
+ names.push('zipkin');
266
+ break;
267
+ case 'otlp':
268
+ default:
269
+ names.push('otlp');
270
+ break;
271
+ }
272
+ names.push('debug');
273
+ return names;
274
+ }
275
+ buildSpanDefinitions(identity, tools, team, isMultiAgent) {
276
+ const spans = [
277
+ {
278
+ name: 'invoke_agent',
279
+ kind: 'CLIENT',
280
+ description: `Top-level invocation of ${identity.name}`,
281
+ attributes: {
282
+ 'gen_ai.agent.name': identity.name,
283
+ 'gen_ai.operation.name': 'invoke_agent',
284
+ 'gen_ai.request.model': identity.model,
285
+ 'gen_ai.provider.name': identity.provider,
286
+ 'gen_ai.agent.description': `${identity.agentKind} agent (${identity.pattern} pattern)`,
287
+ },
288
+ },
289
+ {
290
+ name: 'gen_ai.chat',
291
+ kind: 'CLIENT',
292
+ description: 'LLM chat completion request',
293
+ attributes: {
294
+ 'gen_ai.operation.name': 'chat',
295
+ 'gen_ai.request.model': identity.model,
296
+ 'gen_ai.provider.name': identity.provider,
297
+ 'gen_ai.request.temperature': '${temperature}',
298
+ 'gen_ai.request.max_tokens': '${maxTokens}',
299
+ 'gen_ai.request.top_p': '${topP}',
300
+ },
301
+ events: [
302
+ {
303
+ name: 'gen_ai.content.prompt',
304
+ attributes: { 'gen_ai.prompt': '${prompt_content}' },
305
+ },
306
+ {
307
+ name: 'gen_ai.content.completion',
308
+ attributes: { 'gen_ai.completion': '${completion_content}' },
309
+ },
310
+ ],
311
+ metrics_on_end: {
312
+ 'gen_ai.usage.input_tokens': '${input_tokens}',
313
+ 'gen_ai.usage.output_tokens': '${output_tokens}',
314
+ },
315
+ },
316
+ ];
317
+ // Tool call spans
318
+ for (const toolName of tools) {
319
+ spans.push({
320
+ name: 'gen_ai.tool.call',
321
+ kind: 'INTERNAL',
322
+ description: `Tool invocation: ${toolName}`,
323
+ attributes: {
324
+ 'gen_ai.operation.name': 'tool_call',
325
+ 'gen_ai.tool.name': toolName,
326
+ 'gen_ai.tool.call.id': '${call_id}',
327
+ 'gen_ai.tool.parameters': '${parameters_json}',
328
+ },
329
+ });
330
+ }
331
+ // Multi-agent coordination spans
332
+ if (isMultiAgent) {
333
+ spans.push({
334
+ name: 'agent.handoff',
335
+ kind: 'INTERNAL',
336
+ description: 'Handoff between agents in the team',
337
+ attributes: {
338
+ 'gen_ai.operation.name': 'handoff',
339
+ 'ossa.handoff.source_agent': '${source_agent}',
340
+ 'ossa.handoff.target_agent': '${target_agent}',
341
+ 'ossa.handoff.reason': '${reason}',
342
+ },
343
+ }, {
344
+ name: 'agent.coordinate',
345
+ kind: 'INTERNAL',
346
+ description: 'Team coordination event',
347
+ attributes: {
348
+ 'gen_ai.operation.name': 'coordinate',
349
+ 'ossa.coordination.team_size': String(team.length),
350
+ 'ossa.coordination.pattern': identity.pattern,
351
+ 'ossa.coordination.leader': '${leader_name}',
352
+ },
353
+ });
354
+ // Per-member invocation spans
355
+ for (const member of team) {
356
+ spans.push({
357
+ name: `invoke_agent`,
358
+ kind: 'INTERNAL',
359
+ description: `Invocation of team member: ${member.name} (${member.role})`,
360
+ attributes: {
361
+ 'gen_ai.agent.name': member.name,
362
+ 'gen_ai.operation.name': 'invoke_agent',
363
+ 'ossa.agent.role': member.role,
364
+ 'ossa.team.parent': identity.name,
365
+ },
366
+ });
367
+ }
368
+ }
369
+ return spans;
370
+ }
371
+ // ── Metrics YAML ────────────────────────────────────────────────
372
+ generateMetricsYaml(identity, endpoints, constraints, tools, team) {
373
+ const isMultiAgent = team.length > 0;
374
+ const sanitizedName = identity.name.replace(/[^a-zA-Z0-9_]/g, '_');
375
+ const metricDefinitions = this.buildMetricDefinitions(sanitizedName, identity, constraints, tools, team, isMultiAgent);
376
+ // OTel Collector config fragment for metrics pipeline
377
+ const collectorConfig = {
378
+ receivers: {
379
+ otlp: {
380
+ protocols: {
381
+ http: { endpoint: '0.0.0.0:4318' },
382
+ grpc: { endpoint: '0.0.0.0:4317' },
383
+ },
384
+ },
385
+ prometheus: {
386
+ config: {
387
+ scrape_configs: [
388
+ {
389
+ job_name: `${identity.name}-metrics`,
390
+ scrape_interval: `${endpoints.collectionIntervalSeconds}s`,
391
+ static_configs: [
392
+ {
393
+ targets: ['localhost:9464'],
394
+ labels: {
395
+ agent: identity.name,
396
+ version: identity.version,
397
+ provider: identity.provider,
398
+ },
399
+ },
400
+ ],
401
+ },
402
+ ],
403
+ },
404
+ },
405
+ },
406
+ processors: {
407
+ batch: {
408
+ timeout: '10s',
409
+ send_batch_size: 256,
410
+ },
411
+ resource: {
412
+ attributes: [
413
+ { key: 'service.name', value: identity.name, action: 'upsert' },
414
+ { key: 'service.version', value: identity.version, action: 'upsert' },
415
+ ],
416
+ },
417
+ },
418
+ exporters: this.buildMetricExporters(endpoints),
419
+ service: {
420
+ pipelines: {
421
+ metrics: {
422
+ receivers: ['otlp', 'prometheus'],
423
+ processors: ['resource', 'batch'],
424
+ exporters: this.buildMetricExporterNames(endpoints),
425
+ },
426
+ },
427
+ },
428
+ };
429
+ // Prometheus recording rules for derived metrics
430
+ const recordingRules = this.buildRecordingRules(sanitizedName, identity, constraints, isMultiAgent);
431
+ // Alert rules based on constraints
432
+ const alertRules = this.buildAlertRules(sanitizedName, identity, constraints, isMultiAgent);
433
+ const yamlContent = [
434
+ `# Metrics configuration for ${identity.name}`,
435
+ `# Generated from OSSA manifest v${identity.version}`,
436
+ `# gen_ai semantic conventions v1.39.0 (experimental)`,
437
+ '#',
438
+ '# Includes:',
439
+ '# - OTel Collector metrics pipeline config',
440
+ '# - Metric definitions (Prometheus-compatible)',
441
+ '# - Recording rules (pre-computed aggregates)',
442
+ '# - Alert rules (constraint-based thresholds)',
443
+ '#',
444
+ '',
445
+ '# ── OTel Collector Config ──',
446
+ yaml.stringify(collectorConfig, { lineWidth: 120 }),
447
+ '',
448
+ '# ── Metric Definitions ──',
449
+ yaml.stringify({ metric_definitions: metricDefinitions }, { lineWidth: 120 }),
450
+ '',
451
+ '# ── Prometheus Recording Rules ──',
452
+ yaml.stringify({ groups: [recordingRules] }, { lineWidth: 120 }),
453
+ '',
454
+ '# ── Prometheus Alert Rules ──',
455
+ yaml.stringify({ groups: [alertRules] }, { lineWidth: 120 }),
456
+ ].join('\n');
457
+ return {
458
+ path: 'observability/metrics.yaml',
459
+ content: yamlContent,
460
+ type: 'config',
461
+ language: 'yaml',
462
+ };
463
+ }
464
+ buildMetricExporters(endpoints) {
465
+ const exporters = {};
466
+ switch (endpoints.metricsExporter) {
467
+ case 'prometheus':
468
+ exporters.prometheus = {
469
+ endpoint: '0.0.0.0:9464',
470
+ namespace: 'ossa',
471
+ const_labels: {
472
+ source: 'ossa-agent',
473
+ },
474
+ };
475
+ break;
476
+ case 'otlp':
477
+ default:
478
+ exporters.otlp = {
479
+ endpoint: endpoints.metricsEndpoint,
480
+ tls: { insecure: true },
481
+ };
482
+ break;
483
+ }
484
+ exporters.debug = {
485
+ verbosity: 'basic',
486
+ };
487
+ return exporters;
488
+ }
489
+ buildMetricExporterNames(endpoints) {
490
+ const names = [];
491
+ switch (endpoints.metricsExporter) {
492
+ case 'prometheus':
493
+ names.push('prometheus');
494
+ break;
495
+ case 'otlp':
496
+ default:
497
+ names.push('otlp');
498
+ break;
499
+ }
500
+ names.push('debug');
501
+ return names;
502
+ }
503
+ buildMetricDefinitions(sanitizedName, identity, constraints, tools, team, isMultiAgent) {
504
+ const metrics = [
505
+ // ── Token Usage ───────────────────────────────────
506
+ {
507
+ name: 'gen_ai_usage_input_tokens_total',
508
+ type: 'counter',
509
+ unit: 'tokens',
510
+ description: 'Total input tokens consumed by LLM requests',
511
+ labels: ['gen_ai.provider.name', 'gen_ai.request.model', 'gen_ai.agent.name'],
512
+ semantic_convention: 'gen_ai.usage.input_tokens',
513
+ },
514
+ {
515
+ name: 'gen_ai_usage_output_tokens_total',
516
+ type: 'counter',
517
+ unit: 'tokens',
518
+ description: 'Total output tokens generated by LLM responses',
519
+ labels: ['gen_ai.provider.name', 'gen_ai.request.model', 'gen_ai.agent.name'],
520
+ semantic_convention: 'gen_ai.usage.output_tokens',
521
+ },
522
+ {
523
+ name: `${sanitizedName}_tokens_daily_total`,
524
+ type: 'counter',
525
+ unit: 'tokens',
526
+ description: `Daily token budget consumption for ${identity.name}`,
527
+ labels: ['direction', 'gen_ai.request.model'],
528
+ threshold: constraints.maxTokensPerDay,
529
+ },
530
+ // ── Latency ───────────────────────────────────────
531
+ {
532
+ name: 'gen_ai_client_operation_duration_seconds',
533
+ type: 'histogram',
534
+ unit: 'seconds',
535
+ description: 'Duration of gen_ai operations (chat, tool_call, invoke_agent)',
536
+ labels: ['gen_ai.operation.name', 'gen_ai.agent.name', 'gen_ai.request.model'],
537
+ buckets: [0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 15.0, 30.0, 60.0, 120.0],
538
+ semantic_convention: 'gen_ai.client.operation.duration',
539
+ slo_threshold: constraints.maxLatencySeconds,
540
+ },
541
+ {
542
+ name: `${sanitizedName}_time_to_first_token_seconds`,
543
+ type: 'histogram',
544
+ unit: 'seconds',
545
+ description: 'Time to first token in streaming responses',
546
+ labels: ['gen_ai.request.model', 'gen_ai.provider.name'],
547
+ buckets: [0.05, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0],
548
+ },
549
+ // ── Cost ──────────────────────────────────────────
550
+ {
551
+ name: `${sanitizedName}_cost_per_request_dollars`,
552
+ type: 'histogram',
553
+ unit: 'dollars',
554
+ description: 'Estimated cost per LLM request in USD',
555
+ labels: ['gen_ai.operation.name', 'gen_ai.request.model'],
556
+ buckets: [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1.0, 5.0],
557
+ },
558
+ {
559
+ name: `${sanitizedName}_cost_daily_total_dollars`,
560
+ type: 'counter',
561
+ unit: 'dollars',
562
+ description: `Daily cost accumulation for ${identity.name}`,
563
+ labels: ['gen_ai.request.model'],
564
+ threshold: constraints.maxCostPerDay,
565
+ },
566
+ // ── Error Tracking ────────────────────────────────
567
+ {
568
+ name: `${sanitizedName}_requests_total`,
569
+ type: 'counter',
570
+ description: 'Total requests processed by the agent',
571
+ labels: ['gen_ai.operation.name', 'status', 'error.type'],
572
+ },
573
+ {
574
+ name: `${sanitizedName}_errors_total`,
575
+ type: 'counter',
576
+ description: 'Total errors encountered by the agent',
577
+ labels: ['gen_ai.operation.name', 'error.type', 'gen_ai.request.model'],
578
+ threshold_rate: constraints.maxErrorRate,
579
+ },
580
+ // ── Tool Metrics ──────────────────────────────────
581
+ {
582
+ name: `${sanitizedName}_tool_calls_total`,
583
+ type: 'counter',
584
+ description: 'Total tool invocations',
585
+ labels: ['gen_ai.tool.name', 'status'],
586
+ },
587
+ {
588
+ name: `${sanitizedName}_tool_duration_seconds`,
589
+ type: 'histogram',
590
+ unit: 'seconds',
591
+ description: 'Duration of individual tool calls',
592
+ labels: ['gen_ai.tool.name'],
593
+ buckets: [0.01, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0],
594
+ },
595
+ // ── Agent Lifecycle ───────────────────────────────
596
+ {
597
+ name: `${sanitizedName}_invocations_total`,
598
+ type: 'counter',
599
+ description: 'Total agent invocations',
600
+ labels: ['gen_ai.agent.name', 'status'],
601
+ },
602
+ {
603
+ name: `${sanitizedName}_active_invocations`,
604
+ type: 'gauge',
605
+ description: 'Currently active agent invocations',
606
+ labels: ['gen_ai.agent.name'],
607
+ },
608
+ {
609
+ name: `${sanitizedName}_invocation_duration_seconds`,
610
+ type: 'histogram',
611
+ unit: 'seconds',
612
+ description: 'End-to-end duration of a full agent invocation',
613
+ labels: ['gen_ai.agent.name', 'status'],
614
+ buckets: [0.5, 1.0, 2.5, 5.0, 10.0, 30.0, 60.0, 120.0, 300.0],
615
+ },
616
+ ];
617
+ // Per-tool specific counters
618
+ for (const tool of tools) {
619
+ metrics.push({
620
+ name: `${sanitizedName}_tool_${tool.replace(/[^a-zA-Z0-9_]/g, '_')}_calls_total`,
621
+ type: 'counter',
622
+ description: `Invocations of tool: ${tool}`,
623
+ labels: ['status', 'error.type'],
624
+ });
625
+ }
626
+ // ── Multi-agent / Team metrics ──────────────────────
627
+ if (isMultiAgent) {
628
+ metrics.push({
629
+ name: `${sanitizedName}_team_handoffs_total`,
630
+ type: 'counter',
631
+ description: 'Total handoffs between team members',
632
+ labels: ['source_agent', 'target_agent', 'reason'],
633
+ }, {
634
+ name: `${sanitizedName}_team_coordination_duration_seconds`,
635
+ type: 'histogram',
636
+ unit: 'seconds',
637
+ description: 'Duration of team coordination events',
638
+ labels: ['coordination_type', 'pattern'],
639
+ buckets: [0.1, 0.5, 1.0, 5.0, 10.0, 30.0, 60.0],
640
+ }, {
641
+ name: `${sanitizedName}_team_member_utilization_ratio`,
642
+ type: 'gauge',
643
+ description: 'Utilization ratio per team member (active time / total time)',
644
+ labels: ['gen_ai.agent.name', 'role'],
645
+ });
646
+ // Per-member metrics
647
+ for (const member of team) {
648
+ const memberSafe = member.name.replace(/[^a-zA-Z0-9_]/g, '_');
649
+ metrics.push({
650
+ name: `${sanitizedName}_member_${memberSafe}_tokens_total`,
651
+ type: 'counter',
652
+ unit: 'tokens',
653
+ description: `Token usage for team member: ${member.name} (${member.role})`,
654
+ labels: ['direction', 'gen_ai.request.model'],
655
+ }, {
656
+ name: `${sanitizedName}_member_${memberSafe}_invocations_total`,
657
+ type: 'counter',
658
+ description: `Invocations of team member: ${member.name}`,
659
+ labels: ['status'],
660
+ });
661
+ }
662
+ }
663
+ return metrics;
664
+ }
665
+ buildRecordingRules(sanitizedName, identity, constraints, isMultiAgent) {
666
+ const rules = [
667
+ // Token usage rate (tokens per minute)
668
+ {
669
+ record: `${sanitizedName}:tokens_per_minute`,
670
+ expr: `rate(gen_ai_usage_input_tokens_total{gen_ai_agent_name="${identity.name}"}[5m]) + rate(gen_ai_usage_output_tokens_total{gen_ai_agent_name="${identity.name}"}[5m])`,
671
+ },
672
+ // Error rate over 5m window
673
+ {
674
+ record: `${sanitizedName}:error_rate_5m`,
675
+ expr: `rate(${sanitizedName}_errors_total[5m]) / rate(${sanitizedName}_requests_total[5m])`,
676
+ },
677
+ // p50, p95, p99 latency
678
+ {
679
+ record: `${sanitizedName}:latency_p50`,
680
+ expr: `histogram_quantile(0.50, rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m]))`,
681
+ },
682
+ {
683
+ record: `${sanitizedName}:latency_p95`,
684
+ expr: `histogram_quantile(0.95, rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m]))`,
685
+ },
686
+ {
687
+ record: `${sanitizedName}:latency_p99`,
688
+ expr: `histogram_quantile(0.99, rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m]))`,
689
+ },
690
+ // Cost per task (estimated from token usage)
691
+ {
692
+ record: `${sanitizedName}:cost_per_task_avg`,
693
+ expr: `rate(${sanitizedName}_cost_daily_total_dollars[5m]) / rate(${sanitizedName}_invocations_total{status="success"}[5m])`,
694
+ },
695
+ // Token budget utilization (percentage of daily limit used)
696
+ {
697
+ record: `${sanitizedName}:token_budget_utilization`,
698
+ expr: `increase(${sanitizedName}_tokens_daily_total[24h]) / ${constraints.maxTokensPerDay}`,
699
+ },
700
+ // Tool call success rate
701
+ {
702
+ record: `${sanitizedName}:tool_success_rate`,
703
+ expr: `rate(${sanitizedName}_tool_calls_total{status="success"}[5m]) / rate(${sanitizedName}_tool_calls_total[5m])`,
704
+ },
705
+ ];
706
+ if (isMultiAgent) {
707
+ rules.push({
708
+ record: `${sanitizedName}:handoff_rate_5m`,
709
+ expr: `rate(${sanitizedName}_team_handoffs_total[5m])`,
710
+ }, {
711
+ record: `${sanitizedName}:coordination_overhead_ratio`,
712
+ expr: `rate(${sanitizedName}_team_coordination_duration_seconds_sum[5m]) / rate(${sanitizedName}_invocation_duration_seconds_sum[5m])`,
713
+ });
714
+ }
715
+ return {
716
+ name: `${identity.name}_recording_rules`,
717
+ interval: '30s',
718
+ rules,
719
+ };
720
+ }
721
+ buildAlertRules(sanitizedName, identity, constraints, isMultiAgent) {
722
+ const rules = [
723
+ // High error rate
724
+ {
725
+ alert: `${identity.name}_HighErrorRate`,
726
+ expr: `${sanitizedName}:error_rate_5m > ${constraints.maxErrorRate}`,
727
+ for: '5m',
728
+ labels: {
729
+ severity: 'critical',
730
+ agent: identity.name,
731
+ },
732
+ annotations: {
733
+ summary: `Agent ${identity.name} error rate exceeds ${constraints.maxErrorRate * 100}%`,
734
+ description: `Error rate is {{ $value | humanizePercentage }} (threshold: ${constraints.maxErrorRate * 100}%).`,
735
+ runbook_url: `https://runbooks.example.com/agents/${identity.name}/high-error-rate`,
736
+ },
737
+ },
738
+ // High latency (p95 exceeding SLO)
739
+ {
740
+ alert: `${identity.name}_HighLatency`,
741
+ expr: `${sanitizedName}:latency_p95 > ${constraints.maxLatencySeconds}`,
742
+ for: '5m',
743
+ labels: {
744
+ severity: 'warning',
745
+ agent: identity.name,
746
+ },
747
+ annotations: {
748
+ summary: `Agent ${identity.name} p95 latency exceeds ${constraints.maxLatencySeconds}s`,
749
+ description: `p95 latency is {{ $value | humanizeDuration }} (SLO: ${constraints.maxLatencySeconds}s).`,
750
+ },
751
+ },
752
+ // Token budget exhaustion (>80% of daily budget)
753
+ {
754
+ alert: `${identity.name}_TokenBudgetWarning`,
755
+ expr: `${sanitizedName}:token_budget_utilization > 0.8`,
756
+ for: '10m',
757
+ labels: {
758
+ severity: 'warning',
759
+ agent: identity.name,
760
+ },
761
+ annotations: {
762
+ summary: `Agent ${identity.name} approaching token budget limit`,
763
+ description: `Token budget utilization is {{ $value | humanizePercentage }} of daily limit (${constraints.maxTokensPerDay.toLocaleString()} tokens).`,
764
+ },
765
+ },
766
+ // Token budget exceeded
767
+ {
768
+ alert: `${identity.name}_TokenBudgetExceeded`,
769
+ expr: `${sanitizedName}:token_budget_utilization > 1.0`,
770
+ for: '1m',
771
+ labels: {
772
+ severity: 'critical',
773
+ agent: identity.name,
774
+ },
775
+ annotations: {
776
+ summary: `Agent ${identity.name} has exceeded daily token budget`,
777
+ description: `Token budget utilization is {{ $value | humanizePercentage }}. Limit: ${constraints.maxTokensPerDay.toLocaleString()} tokens/day.`,
778
+ },
779
+ },
780
+ // Cost threshold exceeded
781
+ {
782
+ alert: `${identity.name}_DailyCostExceeded`,
783
+ expr: `increase(${sanitizedName}_cost_daily_total_dollars[24h]) > ${constraints.maxCostPerDay}`,
784
+ for: '5m',
785
+ labels: {
786
+ severity: 'critical',
787
+ agent: identity.name,
788
+ },
789
+ annotations: {
790
+ summary: `Agent ${identity.name} daily cost exceeds $${constraints.maxCostPerDay}`,
791
+ description: 'Daily cost is ${{ $value | printf "%.2f" }}.',
792
+ },
793
+ },
794
+ // Agent down (no invocations in 15m)
795
+ {
796
+ alert: `${identity.name}_AgentDown`,
797
+ expr: `rate(${sanitizedName}_invocations_total[15m]) == 0`,
798
+ for: '15m',
799
+ labels: {
800
+ severity: 'warning',
801
+ agent: identity.name,
802
+ },
803
+ annotations: {
804
+ summary: `Agent ${identity.name} has received no invocations in 15 minutes`,
805
+ description: 'The agent may be down or unreachable.',
806
+ },
807
+ },
808
+ // Tool failure spike
809
+ {
810
+ alert: `${identity.name}_ToolFailureSpike`,
811
+ expr: `(1 - ${sanitizedName}:tool_success_rate) > 0.2`,
812
+ for: '5m',
813
+ labels: {
814
+ severity: 'warning',
815
+ agent: identity.name,
816
+ },
817
+ annotations: {
818
+ summary: `Agent ${identity.name} tool failure rate exceeds 20%`,
819
+ description: 'Tool success rate is {{ $value | humanizePercentage }}.',
820
+ },
821
+ },
822
+ ];
823
+ if (isMultiAgent) {
824
+ rules.push({
825
+ alert: `${identity.name}_HighCoordinationOverhead`,
826
+ expr: `${sanitizedName}:coordination_overhead_ratio > 0.3`,
827
+ for: '10m',
828
+ labels: {
829
+ severity: 'warning',
830
+ agent: identity.name,
831
+ },
832
+ annotations: {
833
+ summary: `Agent ${identity.name} spending >30% of time on coordination`,
834
+ description: 'Coordination overhead is {{ $value | humanizePercentage }}. Consider simplifying the team structure.',
835
+ },
836
+ }, {
837
+ alert: `${identity.name}_ExcessiveHandoffs`,
838
+ expr: `${sanitizedName}:handoff_rate_5m > 10`,
839
+ for: '5m',
840
+ labels: {
841
+ severity: 'warning',
842
+ agent: identity.name,
843
+ },
844
+ annotations: {
845
+ summary: `Agent ${identity.name} team handoff rate exceeds 10/5m`,
846
+ description: 'High handoff rate may indicate unclear task boundaries.',
847
+ },
848
+ });
849
+ }
850
+ return {
851
+ name: `${identity.name}_alert_rules`,
852
+ rules,
853
+ };
854
+ }
855
+ // ── Grafana Dashboard JSON ──────────────────────────────────────
856
+ generateDashboardJson(identity, constraints, tools, isMultiAgent) {
857
+ const dashboard = this.buildGrafanaDashboard(identity, constraints, tools, isMultiAgent);
858
+ return {
859
+ path: 'observability/dashboards/agent-health.json',
860
+ content: JSON.stringify(dashboard, null, 2),
861
+ type: 'config',
862
+ language: 'json',
863
+ };
864
+ }
865
+ buildGrafanaDashboard(identity, constraints, tools, isMultiAgent) {
866
+ const sanitizedName = identity.name.replace(/[^a-zA-Z0-9_]/g, '_');
867
+ const panels = [];
868
+ let panelId = 1;
869
+ let gridY = 0;
870
+ // ── Row: Overview ─────────────────────────────────
871
+ panels.push(this.createRow('Overview', gridY));
872
+ gridY += 1;
873
+ // Stat panels row
874
+ panels.push(this.createStatPanel(panelId++, 'Total Invocations', `sum(increase(${sanitizedName}_invocations_total[24h]))`, { x: 0, y: gridY, w: 4, h: 4 }, 'none', 'blue'));
875
+ panels.push(this.createStatPanel(panelId++, 'Active Invocations', `sum(${sanitizedName}_active_invocations)`, { x: 4, y: gridY, w: 4, h: 4 }, 'none', 'green'));
876
+ panels.push(this.createStatPanel(panelId++, 'Error Rate', `${sanitizedName}:error_rate_5m`, { x: 8, y: gridY, w: 4, h: 4 }, 'percentunit', 'red', [
877
+ { color: 'green', value: null },
878
+ { color: 'orange', value: constraints.maxErrorRate * 0.5 },
879
+ { color: 'red', value: constraints.maxErrorRate },
880
+ ]));
881
+ panels.push(this.createStatPanel(panelId++, 'p95 Latency', `${sanitizedName}:latency_p95`, { x: 12, y: gridY, w: 4, h: 4 }, 's', 'orange', [
882
+ { color: 'green', value: null },
883
+ { color: 'orange', value: constraints.maxLatencySeconds * 0.7 },
884
+ { color: 'red', value: constraints.maxLatencySeconds },
885
+ ]));
886
+ panels.push(this.createStatPanel(panelId++, 'Daily Cost', `increase(${sanitizedName}_cost_daily_total_dollars[24h])`, { x: 16, y: gridY, w: 4, h: 4 }, 'currencyUSD', 'purple', [
887
+ { color: 'green', value: null },
888
+ { color: 'orange', value: constraints.maxCostPerDay * 0.8 },
889
+ { color: 'red', value: constraints.maxCostPerDay },
890
+ ]));
891
+ panels.push(this.createStatPanel(panelId++, 'Token Budget Used', `${sanitizedName}:token_budget_utilization * 100`, { x: 20, y: gridY, w: 4, h: 4 }, 'percent', 'yellow', [
892
+ { color: 'green', value: null },
893
+ { color: 'orange', value: 80 },
894
+ { color: 'red', value: 100 },
895
+ ]));
896
+ gridY += 4;
897
+ // ── Row: Token Usage ──────────────────────────────
898
+ panels.push(this.createRow('Token Usage', gridY));
899
+ gridY += 1;
900
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Token Usage Over Time', [
901
+ {
902
+ expr: `rate(gen_ai_usage_input_tokens_total{gen_ai_agent_name="${identity.name}"}[5m])`,
903
+ legendFormat: 'Input tokens/s',
904
+ },
905
+ {
906
+ expr: `rate(gen_ai_usage_output_tokens_total{gen_ai_agent_name="${identity.name}"}[5m])`,
907
+ legendFormat: 'Output tokens/s',
908
+ },
909
+ ], { x: 0, y: gridY, w: 12, h: 8 }, 'tokens/s'));
910
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Cumulative Token Budget', [
911
+ {
912
+ expr: `increase(${sanitizedName}_tokens_daily_total[${this.buildRange('$__range')}])`,
913
+ legendFormat: 'Tokens used',
914
+ },
915
+ {
916
+ expr: `vector(${constraints.maxTokensPerDay})`,
917
+ legendFormat: 'Daily limit',
918
+ },
919
+ ], { x: 12, y: gridY, w: 12, h: 8 }, 'tokens'));
920
+ gridY += 8;
921
+ // ── Row: Latency ──────────────────────────────────
922
+ panels.push(this.createRow('Latency', gridY));
923
+ gridY += 1;
924
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Latency Percentiles (p50 / p95 / p99)', [
925
+ {
926
+ expr: `${sanitizedName}:latency_p50`,
927
+ legendFormat: 'p50',
928
+ },
929
+ {
930
+ expr: `${sanitizedName}:latency_p95`,
931
+ legendFormat: 'p95',
932
+ },
933
+ {
934
+ expr: `${sanitizedName}:latency_p99`,
935
+ legendFormat: 'p99',
936
+ },
937
+ {
938
+ expr: `vector(${constraints.maxLatencySeconds})`,
939
+ legendFormat: 'SLO threshold',
940
+ },
941
+ ], { x: 0, y: gridY, w: 12, h: 8 }, 's'));
942
+ panels.push(this.createHeatmapPanel(panelId++, 'Latency Distribution', `sum(rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m])) by (le)`, { x: 12, y: gridY, w: 12, h: 8 }));
943
+ gridY += 8;
944
+ // ── Row: Cost ─────────────────────────────────────
945
+ panels.push(this.createRow('Cost Per Task', gridY));
946
+ gridY += 1;
947
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Cost Per Request', [
948
+ {
949
+ expr: `rate(${sanitizedName}_cost_per_request_dollars_sum[5m]) / rate(${sanitizedName}_cost_per_request_dollars_count[5m])`,
950
+ legendFormat: 'Avg cost/request',
951
+ },
952
+ {
953
+ expr: `histogram_quantile(0.95, rate(${sanitizedName}_cost_per_request_dollars_bucket[5m]))`,
954
+ legendFormat: 'p95 cost/request',
955
+ },
956
+ ], { x: 0, y: gridY, w: 12, h: 8 }, 'currencyUSD'));
957
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Daily Cost Accumulation', [
958
+ {
959
+ expr: `increase(${sanitizedName}_cost_daily_total_dollars[1h])`,
960
+ legendFormat: 'Hourly spend',
961
+ },
962
+ {
963
+ expr: `vector(${constraints.maxCostPerDay / 24})`,
964
+ legendFormat: 'Hourly budget',
965
+ },
966
+ ], { x: 12, y: gridY, w: 12, h: 8 }, 'currencyUSD'));
967
+ gridY += 8;
968
+ // ── Row: Error Rate ───────────────────────────────
969
+ panels.push(this.createRow('Error Rate', gridY));
970
+ gridY += 1;
971
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Error Rate Over Time', [
972
+ {
973
+ expr: `${sanitizedName}:error_rate_5m`,
974
+ legendFormat: 'Error rate',
975
+ },
976
+ {
977
+ expr: `vector(${constraints.maxErrorRate})`,
978
+ legendFormat: 'SLO threshold',
979
+ },
980
+ ], { x: 0, y: gridY, w: 12, h: 8 }, 'percentunit'));
981
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Errors by Type', [
982
+ {
983
+ expr: `sum by (error_type) (rate(${sanitizedName}_errors_total[5m]))`,
984
+ legendFormat: '{{ error_type }}',
985
+ },
986
+ ], { x: 12, y: gridY, w: 12, h: 8 }, 'ops'));
987
+ gridY += 8;
988
+ // ── Row: Tool Call Frequency ──────────────────────
989
+ panels.push(this.createRow('Tool Calls', gridY));
990
+ gridY += 1;
991
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Tool Call Frequency', [
992
+ {
993
+ expr: `sum by (gen_ai_tool_name) (rate(${sanitizedName}_tool_calls_total[5m]))`,
994
+ legendFormat: '{{ gen_ai_tool_name }}',
995
+ },
996
+ ], { x: 0, y: gridY, w: 12, h: 8 }, 'ops'));
997
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Tool Latency by Tool', [
998
+ {
999
+ expr: `histogram_quantile(0.95, sum by (gen_ai_tool_name, le) (rate(${sanitizedName}_tool_duration_seconds_bucket[5m])))`,
1000
+ legendFormat: '{{ gen_ai_tool_name }} p95',
1001
+ },
1002
+ ], { x: 12, y: gridY, w: 12, h: 8 }, 's'));
1003
+ gridY += 8;
1004
+ // Per-tool breakdown table
1005
+ if (tools.length > 0) {
1006
+ panels.push(this.createTablePanel(panelId++, 'Tool Breakdown', [
1007
+ {
1008
+ expr: `sum by (gen_ai_tool_name) (increase(${sanitizedName}_tool_calls_total[24h]))`,
1009
+ legendFormat: '{{ gen_ai_tool_name }}',
1010
+ format: 'table',
1011
+ instant: true,
1012
+ },
1013
+ ], { x: 0, y: gridY, w: 24, h: 6 }));
1014
+ gridY += 6;
1015
+ }
1016
+ // ── Row: Multi-agent (conditional) ────────────────
1017
+ if (isMultiAgent) {
1018
+ panels.push(this.createRow('Team Coordination', gridY));
1019
+ gridY += 1;
1020
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Handoff Rate', [
1021
+ {
1022
+ expr: `sum by (source_agent, target_agent) (rate(${sanitizedName}_team_handoffs_total[5m]))`,
1023
+ legendFormat: '{{ source_agent }} -> {{ target_agent }}',
1024
+ },
1025
+ ], { x: 0, y: gridY, w: 12, h: 8 }, 'ops'));
1026
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Coordination Overhead', [
1027
+ {
1028
+ expr: `${sanitizedName}:coordination_overhead_ratio`,
1029
+ legendFormat: 'Overhead ratio',
1030
+ },
1031
+ {
1032
+ expr: 'vector(0.3)',
1033
+ legendFormat: 'Threshold (30%)',
1034
+ },
1035
+ ], { x: 12, y: gridY, w: 12, h: 8 }, 'percentunit'));
1036
+ gridY += 8;
1037
+ panels.push(this.createTimeSeriesPanel(panelId++, 'Member Utilization', [
1038
+ {
1039
+ expr: `${sanitizedName}_team_member_utilization_ratio`,
1040
+ legendFormat: '{{ gen_ai_agent_name }} ({{ role }})',
1041
+ },
1042
+ ], { x: 0, y: gridY, w: 24, h: 8 }, 'percentunit'));
1043
+ gridY += 8;
1044
+ }
1045
+ return {
1046
+ __inputs: [
1047
+ {
1048
+ name: 'DS_PROMETHEUS',
1049
+ label: 'Prometheus',
1050
+ description: 'Prometheus data source for agent metrics',
1051
+ type: 'datasource',
1052
+ pluginId: 'prometheus',
1053
+ pluginName: 'Prometheus',
1054
+ },
1055
+ ],
1056
+ __requires: [
1057
+ { type: 'grafana', id: 'grafana', name: 'Grafana', version: '10.0.0' },
1058
+ { type: 'datasource', id: 'prometheus', name: 'Prometheus', version: '1.0.0' },
1059
+ { type: 'panel', id: 'timeseries', name: 'Time series', version: '' },
1060
+ { type: 'panel', id: 'stat', name: 'Stat', version: '' },
1061
+ { type: 'panel', id: 'heatmap', name: 'Heatmap', version: '' },
1062
+ { type: 'panel', id: 'table', name: 'Table', version: '' },
1063
+ { type: 'panel', id: 'row', name: 'Row', version: '' },
1064
+ ],
1065
+ annotations: {
1066
+ list: [
1067
+ {
1068
+ builtIn: 1,
1069
+ datasource: { type: 'grafana', uid: '-- Grafana --' },
1070
+ enable: true,
1071
+ hide: true,
1072
+ iconColor: 'rgba(0, 211, 255, 1)',
1073
+ name: 'Annotations & Alerts',
1074
+ type: 'dashboard',
1075
+ },
1076
+ ],
1077
+ },
1078
+ description: `Health dashboard for OSSA agent: ${identity.name} (${identity.agentKind}, ${identity.pattern} pattern)`,
1079
+ editable: true,
1080
+ fiscalYearStartMonth: 0,
1081
+ graphTooltip: 1, // Shared crosshair
1082
+ id: null,
1083
+ links: [],
1084
+ panels,
1085
+ schemaVersion: 39,
1086
+ tags: ['ossa', 'agent', identity.name, identity.agentType, identity.pattern],
1087
+ templating: {
1088
+ list: [
1089
+ {
1090
+ current: { selected: false, text: 'Prometheus', value: 'Prometheus' },
1091
+ hide: 0,
1092
+ includeAll: false,
1093
+ label: 'Data Source',
1094
+ multi: false,
1095
+ name: 'datasource',
1096
+ options: [],
1097
+ query: 'prometheus',
1098
+ queryValue: '',
1099
+ refresh: 1,
1100
+ regex: '',
1101
+ skipUrlSync: false,
1102
+ type: 'datasource',
1103
+ },
1104
+ {
1105
+ current: { selected: false, text: identity.name, value: identity.name },
1106
+ hide: 2,
1107
+ label: 'Agent Name',
1108
+ name: 'agent_name',
1109
+ options: [{ selected: true, text: identity.name, value: identity.name }],
1110
+ query: identity.name,
1111
+ skipUrlSync: false,
1112
+ type: 'constant',
1113
+ },
1114
+ ],
1115
+ },
1116
+ time: { from: 'now-6h', to: 'now' },
1117
+ timepicker: {},
1118
+ timezone: 'browser',
1119
+ title: `${identity.name} - Agent Health`,
1120
+ uid: `ossa-${sanitizedName}-health`,
1121
+ version: 1,
1122
+ refresh: '30s',
1123
+ };
1124
+ }
1125
+ // ── Grafana panel builders ──────────────────────────────────────
1126
+ createRow(title, gridY) {
1127
+ return {
1128
+ collapsed: false,
1129
+ gridPos: { h: 1, w: 24, x: 0, y: gridY },
1130
+ id: 1000 + gridY,
1131
+ panels: [],
1132
+ title,
1133
+ type: 'row',
1134
+ };
1135
+ }
1136
+ createStatPanel(id, title, expr, gridPos, unit, color, thresholds) {
1137
+ return {
1138
+ id,
1139
+ title,
1140
+ type: 'stat',
1141
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1142
+ fieldConfig: {
1143
+ defaults: {
1144
+ color: { mode: thresholds ? 'thresholds' : 'fixed', fixedColor: color },
1145
+ mappings: [],
1146
+ thresholds: {
1147
+ mode: 'absolute',
1148
+ steps: thresholds ?? [
1149
+ { color: color, value: null },
1150
+ ],
1151
+ },
1152
+ unit,
1153
+ },
1154
+ overrides: [],
1155
+ },
1156
+ gridPos,
1157
+ options: {
1158
+ colorMode: thresholds ? 'background' : 'value',
1159
+ graphMode: 'area',
1160
+ justifyMode: 'auto',
1161
+ orientation: 'auto',
1162
+ reduceOptions: {
1163
+ calcs: ['lastNotNull'],
1164
+ fields: '',
1165
+ values: false,
1166
+ },
1167
+ textMode: 'auto',
1168
+ wideLayout: true,
1169
+ },
1170
+ targets: [
1171
+ {
1172
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1173
+ expr,
1174
+ instant: true,
1175
+ legendFormat: '__auto',
1176
+ refId: 'A',
1177
+ },
1178
+ ],
1179
+ };
1180
+ }
1181
+ createTimeSeriesPanel(id, title, queries, gridPos, unit) {
1182
+ return {
1183
+ id,
1184
+ title,
1185
+ type: 'timeseries',
1186
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1187
+ fieldConfig: {
1188
+ defaults: {
1189
+ color: { mode: 'palette-classic' },
1190
+ custom: {
1191
+ axisBorderShow: false,
1192
+ axisCenteredZero: false,
1193
+ axisColorMode: 'text',
1194
+ axisLabel: '',
1195
+ axisPlacement: 'auto',
1196
+ barAlignment: 0,
1197
+ drawStyle: 'line',
1198
+ fillOpacity: 10,
1199
+ gradientMode: 'none',
1200
+ hideFrom: { legend: false, tooltip: false, viz: false },
1201
+ insertNulls: false,
1202
+ lineInterpolation: 'smooth',
1203
+ lineWidth: 2,
1204
+ pointSize: 5,
1205
+ scaleDistribution: { type: 'linear' },
1206
+ showPoints: 'auto',
1207
+ spanNulls: false,
1208
+ stacking: { group: 'A', mode: 'none' },
1209
+ thresholdsStyle: { mode: 'off' },
1210
+ },
1211
+ mappings: [],
1212
+ thresholds: {
1213
+ mode: 'absolute',
1214
+ steps: [{ color: 'green', value: null }],
1215
+ },
1216
+ unit,
1217
+ },
1218
+ overrides: [],
1219
+ },
1220
+ gridPos,
1221
+ options: {
1222
+ legend: {
1223
+ calcs: ['mean', 'max', 'lastNotNull'],
1224
+ displayMode: 'table',
1225
+ placement: 'bottom',
1226
+ showLegend: true,
1227
+ },
1228
+ tooltip: { mode: 'multi', sort: 'desc' },
1229
+ },
1230
+ targets: queries.map((q, i) => ({
1231
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1232
+ expr: q.expr,
1233
+ legendFormat: q.legendFormat,
1234
+ refId: String.fromCharCode(65 + i), // A, B, C, ...
1235
+ })),
1236
+ };
1237
+ }
1238
+ createHeatmapPanel(id, title, expr, gridPos) {
1239
+ return {
1240
+ id,
1241
+ title,
1242
+ type: 'heatmap',
1243
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1244
+ gridPos,
1245
+ options: {
1246
+ calculate: false,
1247
+ cellGap: 1,
1248
+ color: {
1249
+ exponent: 0.5,
1250
+ fill: 'dark-orange',
1251
+ mode: 'scheme',
1252
+ reverse: false,
1253
+ scale: 'exponential',
1254
+ scheme: 'Oranges',
1255
+ steps: 64,
1256
+ },
1257
+ exemplars: { color: 'rgba(255,0,255,0.7)' },
1258
+ filterValues: { le: 1e-9 },
1259
+ legend: { show: true },
1260
+ rowsFrame: { layout: 'le' },
1261
+ showValue: 'auto',
1262
+ tooltip: { mode: 'single', showColorScale: false, yHistogram: false },
1263
+ yAxis: {
1264
+ axisPlacement: 'left',
1265
+ reverse: false,
1266
+ unit: 's',
1267
+ },
1268
+ },
1269
+ targets: [
1270
+ {
1271
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1272
+ expr,
1273
+ format: 'heatmap',
1274
+ legendFormat: '{{ le }}',
1275
+ refId: 'A',
1276
+ },
1277
+ ],
1278
+ };
1279
+ }
1280
+ createTablePanel(id, title, queries, gridPos) {
1281
+ return {
1282
+ id,
1283
+ title,
1284
+ type: 'table',
1285
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1286
+ fieldConfig: {
1287
+ defaults: {
1288
+ color: { mode: 'thresholds' },
1289
+ custom: {
1290
+ align: 'auto',
1291
+ cellOptions: { type: 'auto' },
1292
+ inspect: false,
1293
+ },
1294
+ mappings: [],
1295
+ thresholds: {
1296
+ mode: 'absolute',
1297
+ steps: [
1298
+ { color: 'green', value: null },
1299
+ { color: 'red', value: 80 },
1300
+ ],
1301
+ },
1302
+ },
1303
+ overrides: [
1304
+ {
1305
+ matcher: { id: 'byName', options: 'gen_ai_tool_name' },
1306
+ properties: [{ id: 'displayName', value: 'Tool' }],
1307
+ },
1308
+ {
1309
+ matcher: { id: 'byName', options: 'Value' },
1310
+ properties: [{ id: 'displayName', value: 'Calls (24h)' }],
1311
+ },
1312
+ ],
1313
+ },
1314
+ gridPos,
1315
+ options: {
1316
+ cellHeight: 'sm',
1317
+ footer: { countRows: false, fields: '', reducer: ['sum'], show: true },
1318
+ showHeader: true,
1319
+ sortBy: [{ desc: true, displayName: 'Calls (24h)' }],
1320
+ },
1321
+ targets: queries.map((q, i) => ({
1322
+ datasource: { type: 'prometheus', uid: '${datasource}' },
1323
+ expr: q.expr,
1324
+ format: q.format,
1325
+ instant: q.instant,
1326
+ legendFormat: q.legendFormat,
1327
+ refId: String.fromCharCode(65 + i),
1328
+ })),
1329
+ transformations: [
1330
+ {
1331
+ id: 'merge',
1332
+ options: {},
1333
+ },
1334
+ {
1335
+ id: 'organize',
1336
+ options: {
1337
+ excludeByName: { Time: true, __name__: true },
1338
+ indexByName: {},
1339
+ renameByName: {},
1340
+ },
1341
+ },
1342
+ ],
1343
+ };
1344
+ }
1345
+ /**
1346
+ * Build a range expression for PromQL that works with Grafana variables.
1347
+ * Falls back to a static range if no variable is available.
1348
+ */
1349
+ buildRange(variable) {
1350
+ return variable;
1351
+ }
1352
+ }
1353
+ //# sourceMappingURL=observability-generator.service.js.map