agentic-qe 3.3.4 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/.claude/agents/v3/qe-queen-coordinator.md +332 -166
  2. package/.claude/helpers/statusline-v3.cjs +85 -42
  3. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +7 -4
  4. package/README.md +71 -2
  5. package/package.json +1 -1
  6. package/scripts/cloud-db-config.json +10 -5
  7. package/scripts/merge-v3-to-root.sql +48 -0
  8. package/v3/CHANGELOG.md +156 -0
  9. package/v3/README.md +118 -1
  10. package/v3/assets/agents/v3/qe-queen-coordinator.md +332 -166
  11. package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +7 -4
  12. package/v3/dist/adapters/a2a/agent-cards/generator.d.ts +153 -0
  13. package/v3/dist/adapters/a2a/agent-cards/generator.d.ts.map +1 -0
  14. package/v3/dist/adapters/a2a/agent-cards/generator.js +478 -0
  15. package/v3/dist/adapters/a2a/agent-cards/generator.js.map +1 -0
  16. package/v3/dist/adapters/a2a/agent-cards/schema.d.ts +274 -0
  17. package/v3/dist/adapters/a2a/agent-cards/schema.d.ts.map +1 -0
  18. package/v3/dist/adapters/a2a/agent-cards/schema.js +135 -0
  19. package/v3/dist/adapters/a2a/agent-cards/schema.js.map +1 -0
  20. package/v3/dist/adapters/a2a/agent-cards/validator.d.ts +514 -0
  21. package/v3/dist/adapters/a2a/agent-cards/validator.d.ts.map +1 -0
  22. package/v3/dist/adapters/a2a/agent-cards/validator.js +555 -0
  23. package/v3/dist/adapters/a2a/agent-cards/validator.js.map +1 -0
  24. package/v3/dist/adapters/a2a/auth/index.d.ts +23 -0
  25. package/v3/dist/adapters/a2a/auth/index.d.ts.map +1 -0
  26. package/v3/dist/adapters/a2a/auth/index.js +85 -0
  27. package/v3/dist/adapters/a2a/auth/index.js.map +1 -0
  28. package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts +215 -0
  29. package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts.map +1 -0
  30. package/v3/dist/adapters/a2a/auth/jwt-utils.js +314 -0
  31. package/v3/dist/adapters/a2a/auth/jwt-utils.js.map +1 -0
  32. package/v3/dist/adapters/a2a/auth/middleware.d.ts +173 -0
  33. package/v3/dist/adapters/a2a/auth/middleware.d.ts.map +1 -0
  34. package/v3/dist/adapters/a2a/auth/middleware.js +300 -0
  35. package/v3/dist/adapters/a2a/auth/middleware.js.map +1 -0
  36. package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts +308 -0
  37. package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts.map +1 -0
  38. package/v3/dist/adapters/a2a/auth/oauth-provider.js +573 -0
  39. package/v3/dist/adapters/a2a/auth/oauth-provider.js.map +1 -0
  40. package/v3/dist/adapters/a2a/auth/routes.d.ts +244 -0
  41. package/v3/dist/adapters/a2a/auth/routes.d.ts.map +1 -0
  42. package/v3/dist/adapters/a2a/auth/routes.js +496 -0
  43. package/v3/dist/adapters/a2a/auth/routes.js.map +1 -0
  44. package/v3/dist/adapters/a2a/auth/scopes.d.ts +219 -0
  45. package/v3/dist/adapters/a2a/auth/scopes.d.ts.map +1 -0
  46. package/v3/dist/adapters/a2a/auth/scopes.js +292 -0
  47. package/v3/dist/adapters/a2a/auth/scopes.js.map +1 -0
  48. package/v3/dist/adapters/a2a/auth/token-store.d.ts +278 -0
  49. package/v3/dist/adapters/a2a/auth/token-store.d.ts.map +1 -0
  50. package/v3/dist/adapters/a2a/auth/token-store.js +453 -0
  51. package/v3/dist/adapters/a2a/auth/token-store.js.map +1 -0
  52. package/v3/dist/adapters/a2a/discovery/agent-health.d.ts +226 -0
  53. package/v3/dist/adapters/a2a/discovery/agent-health.d.ts.map +1 -0
  54. package/v3/dist/adapters/a2a/discovery/agent-health.js +426 -0
  55. package/v3/dist/adapters/a2a/discovery/agent-health.js.map +1 -0
  56. package/v3/dist/adapters/a2a/discovery/discovery-service.d.ts +296 -0
  57. package/v3/dist/adapters/a2a/discovery/discovery-service.d.ts.map +1 -0
  58. package/v3/dist/adapters/a2a/discovery/discovery-service.js +520 -0
  59. package/v3/dist/adapters/a2a/discovery/discovery-service.js.map +1 -0
  60. package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts +166 -0
  61. package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts.map +1 -0
  62. package/v3/dist/adapters/a2a/discovery/file-watcher.js +385 -0
  63. package/v3/dist/adapters/a2a/discovery/file-watcher.js.map +1 -0
  64. package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts +226 -0
  65. package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts.map +1 -0
  66. package/v3/dist/adapters/a2a/discovery/hot-reload-service.js +433 -0
  67. package/v3/dist/adapters/a2a/discovery/hot-reload-service.js.map +1 -0
  68. package/v3/dist/adapters/a2a/discovery/index.d.ts +18 -0
  69. package/v3/dist/adapters/a2a/discovery/index.d.ts.map +1 -0
  70. package/v3/dist/adapters/a2a/discovery/index.js +54 -0
  71. package/v3/dist/adapters/a2a/discovery/index.js.map +1 -0
  72. package/v3/dist/adapters/a2a/discovery/metrics.d.ts +200 -0
  73. package/v3/dist/adapters/a2a/discovery/metrics.d.ts.map +1 -0
  74. package/v3/dist/adapters/a2a/discovery/metrics.js +371 -0
  75. package/v3/dist/adapters/a2a/discovery/metrics.js.map +1 -0
  76. package/v3/dist/adapters/a2a/discovery/routes.d.ts +184 -0
  77. package/v3/dist/adapters/a2a/discovery/routes.d.ts.map +1 -0
  78. package/v3/dist/adapters/a2a/discovery/routes.js +453 -0
  79. package/v3/dist/adapters/a2a/discovery/routes.js.map +1 -0
  80. package/v3/dist/adapters/a2a/index.d.ts +18 -0
  81. package/v3/dist/adapters/a2a/index.d.ts.map +1 -0
  82. package/v3/dist/adapters/a2a/index.js +139 -0
  83. package/v3/dist/adapters/a2a/index.js.map +1 -0
  84. package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts +312 -0
  85. package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts.map +1 -0
  86. package/v3/dist/adapters/a2a/jsonrpc/envelope.js +554 -0
  87. package/v3/dist/adapters/a2a/jsonrpc/envelope.js.map +1 -0
  88. package/v3/dist/adapters/a2a/jsonrpc/errors.d.ts +244 -0
  89. package/v3/dist/adapters/a2a/jsonrpc/errors.d.ts.map +1 -0
  90. package/v3/dist/adapters/a2a/jsonrpc/errors.js +365 -0
  91. package/v3/dist/adapters/a2a/jsonrpc/errors.js.map +1 -0
  92. package/v3/dist/adapters/a2a/jsonrpc/index.d.ts +14 -0
  93. package/v3/dist/adapters/a2a/jsonrpc/index.d.ts.map +1 -0
  94. package/v3/dist/adapters/a2a/jsonrpc/index.js +59 -0
  95. package/v3/dist/adapters/a2a/jsonrpc/index.js.map +1 -0
  96. package/v3/dist/adapters/a2a/jsonrpc/methods.d.ts +400 -0
  97. package/v3/dist/adapters/a2a/jsonrpc/methods.d.ts.map +1 -0
  98. package/v3/dist/adapters/a2a/jsonrpc/methods.js +249 -0
  99. package/v3/dist/adapters/a2a/jsonrpc/methods.js.map +1 -0
  100. package/v3/dist/adapters/a2a/notifications/index.d.ts +60 -0
  101. package/v3/dist/adapters/a2a/notifications/index.d.ts.map +1 -0
  102. package/v3/dist/adapters/a2a/notifications/index.js +99 -0
  103. package/v3/dist/adapters/a2a/notifications/index.js.map +1 -0
  104. package/v3/dist/adapters/a2a/notifications/retry-queue.d.ts +225 -0
  105. package/v3/dist/adapters/a2a/notifications/retry-queue.d.ts.map +1 -0
  106. package/v3/dist/adapters/a2a/notifications/retry-queue.js +449 -0
  107. package/v3/dist/adapters/a2a/notifications/retry-queue.js.map +1 -0
  108. package/v3/dist/adapters/a2a/notifications/signature.d.ts +133 -0
  109. package/v3/dist/adapters/a2a/notifications/signature.d.ts.map +1 -0
  110. package/v3/dist/adapters/a2a/notifications/signature.js +244 -0
  111. package/v3/dist/adapters/a2a/notifications/signature.js.map +1 -0
  112. package/v3/dist/adapters/a2a/notifications/subscription-store.d.ts +243 -0
  113. package/v3/dist/adapters/a2a/notifications/subscription-store.d.ts.map +1 -0
  114. package/v3/dist/adapters/a2a/notifications/subscription-store.js +486 -0
  115. package/v3/dist/adapters/a2a/notifications/subscription-store.js.map +1 -0
  116. package/v3/dist/adapters/a2a/notifications/webhook-service.d.ts +257 -0
  117. package/v3/dist/adapters/a2a/notifications/webhook-service.d.ts.map +1 -0
  118. package/v3/dist/adapters/a2a/notifications/webhook-service.js +542 -0
  119. package/v3/dist/adapters/a2a/notifications/webhook-service.js.map +1 -0
  120. package/v3/dist/adapters/a2a/tasks/index.d.ts +16 -0
  121. package/v3/dist/adapters/a2a/tasks/index.d.ts.map +1 -0
  122. package/v3/dist/adapters/a2a/tasks/index.js +33 -0
  123. package/v3/dist/adapters/a2a/tasks/index.js.map +1 -0
  124. package/v3/dist/adapters/a2a/tasks/task-manager.d.ts +306 -0
  125. package/v3/dist/adapters/a2a/tasks/task-manager.d.ts.map +1 -0
  126. package/v3/dist/adapters/a2a/tasks/task-manager.js +562 -0
  127. package/v3/dist/adapters/a2a/tasks/task-manager.js.map +1 -0
  128. package/v3/dist/adapters/a2a/tasks/task-router.d.ts +270 -0
  129. package/v3/dist/adapters/a2a/tasks/task-router.d.ts.map +1 -0
  130. package/v3/dist/adapters/a2a/tasks/task-router.js +574 -0
  131. package/v3/dist/adapters/a2a/tasks/task-router.js.map +1 -0
  132. package/v3/dist/adapters/a2a/tasks/task-store.d.ts +251 -0
  133. package/v3/dist/adapters/a2a/tasks/task-store.d.ts.map +1 -0
  134. package/v3/dist/adapters/a2a/tasks/task-store.js +468 -0
  135. package/v3/dist/adapters/a2a/tasks/task-store.js.map +1 -0
  136. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.d.ts +294 -0
  137. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.d.ts.map +1 -0
  138. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.js +447 -0
  139. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.js.map +1 -0
  140. package/v3/dist/adapters/a2ui/accessibility/index.d.ts +83 -0
  141. package/v3/dist/adapters/a2ui/accessibility/index.d.ts.map +1 -0
  142. package/v3/dist/adapters/a2ui/accessibility/index.js +155 -0
  143. package/v3/dist/adapters/a2ui/accessibility/index.js.map +1 -0
  144. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.d.ts +177 -0
  145. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.d.ts.map +1 -0
  146. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.js +638 -0
  147. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.js.map +1 -0
  148. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.d.ts +186 -0
  149. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.d.ts.map +1 -0
  150. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.js +816 -0
  151. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.js.map +1 -0
  152. package/v3/dist/adapters/a2ui/catalog/component-schemas.d.ts +227 -0
  153. package/v3/dist/adapters/a2ui/catalog/component-schemas.d.ts.map +1 -0
  154. package/v3/dist/adapters/a2ui/catalog/component-schemas.js +1090 -0
  155. package/v3/dist/adapters/a2ui/catalog/component-schemas.js.map +1 -0
  156. package/v3/dist/adapters/a2ui/catalog/index.d.ts +55 -0
  157. package/v3/dist/adapters/a2ui/catalog/index.d.ts.map +1 -0
  158. package/v3/dist/adapters/a2ui/catalog/index.js +100 -0
  159. package/v3/dist/adapters/a2ui/catalog/index.js.map +1 -0
  160. package/v3/dist/adapters/a2ui/catalog/qe-catalog.d.ts +456 -0
  161. package/v3/dist/adapters/a2ui/catalog/qe-catalog.d.ts.map +1 -0
  162. package/v3/dist/adapters/a2ui/catalog/qe-catalog.js +413 -0
  163. package/v3/dist/adapters/a2ui/catalog/qe-catalog.js.map +1 -0
  164. package/v3/dist/adapters/a2ui/catalog/standard-catalog.d.ts +581 -0
  165. package/v3/dist/adapters/a2ui/catalog/standard-catalog.d.ts.map +1 -0
  166. package/v3/dist/adapters/a2ui/catalog/standard-catalog.js +409 -0
  167. package/v3/dist/adapters/a2ui/catalog/standard-catalog.js.map +1 -0
  168. package/v3/dist/adapters/a2ui/data/bound-value.d.ts +252 -0
  169. package/v3/dist/adapters/a2ui/data/bound-value.d.ts.map +1 -0
  170. package/v3/dist/adapters/a2ui/data/bound-value.js +403 -0
  171. package/v3/dist/adapters/a2ui/data/bound-value.js.map +1 -0
  172. package/v3/dist/adapters/a2ui/data/index.d.ts +14 -0
  173. package/v3/dist/adapters/a2ui/data/index.d.ts.map +1 -0
  174. package/v3/dist/adapters/a2ui/data/index.js +41 -0
  175. package/v3/dist/adapters/a2ui/data/index.js.map +1 -0
  176. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.d.ts +187 -0
  177. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.d.ts.map +1 -0
  178. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.js +425 -0
  179. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.js.map +1 -0
  180. package/v3/dist/adapters/a2ui/data/reactive-store.d.ts +241 -0
  181. package/v3/dist/adapters/a2ui/data/reactive-store.d.ts.map +1 -0
  182. package/v3/dist/adapters/a2ui/data/reactive-store.js +461 -0
  183. package/v3/dist/adapters/a2ui/data/reactive-store.js.map +1 -0
  184. package/v3/dist/adapters/a2ui/index.d.ts +17 -0
  185. package/v3/dist/adapters/a2ui/index.d.ts.map +1 -0
  186. package/v3/dist/adapters/a2ui/index.js +119 -0
  187. package/v3/dist/adapters/a2ui/index.js.map +1 -0
  188. package/v3/dist/adapters/a2ui/integration/agui-sync.d.ts +259 -0
  189. package/v3/dist/adapters/a2ui/integration/agui-sync.d.ts.map +1 -0
  190. package/v3/dist/adapters/a2ui/integration/agui-sync.js +559 -0
  191. package/v3/dist/adapters/a2ui/integration/agui-sync.js.map +1 -0
  192. package/v3/dist/adapters/a2ui/integration/index.d.ts +11 -0
  193. package/v3/dist/adapters/a2ui/integration/index.d.ts.map +1 -0
  194. package/v3/dist/adapters/a2ui/integration/index.js +23 -0
  195. package/v3/dist/adapters/a2ui/integration/index.js.map +1 -0
  196. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.d.ts +209 -0
  197. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.d.ts.map +1 -0
  198. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.js +545 -0
  199. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.js.map +1 -0
  200. package/v3/dist/adapters/a2ui/renderer/component-builder.d.ts +227 -0
  201. package/v3/dist/adapters/a2ui/renderer/component-builder.d.ts.map +1 -0
  202. package/v3/dist/adapters/a2ui/renderer/component-builder.js +488 -0
  203. package/v3/dist/adapters/a2ui/renderer/component-builder.js.map +1 -0
  204. package/v3/dist/adapters/a2ui/renderer/index.d.ts +16 -0
  205. package/v3/dist/adapters/a2ui/renderer/index.d.ts.map +1 -0
  206. package/v3/dist/adapters/a2ui/renderer/index.js +50 -0
  207. package/v3/dist/adapters/a2ui/renderer/index.js.map +1 -0
  208. package/v3/dist/adapters/a2ui/renderer/message-types.d.ts +299 -0
  209. package/v3/dist/adapters/a2ui/renderer/message-types.d.ts.map +1 -0
  210. package/v3/dist/adapters/a2ui/renderer/message-types.js +187 -0
  211. package/v3/dist/adapters/a2ui/renderer/message-types.js.map +1 -0
  212. package/v3/dist/adapters/a2ui/renderer/surface-generator.d.ts +210 -0
  213. package/v3/dist/adapters/a2ui/renderer/surface-generator.d.ts.map +1 -0
  214. package/v3/dist/adapters/a2ui/renderer/surface-generator.js +586 -0
  215. package/v3/dist/adapters/a2ui/renderer/surface-generator.js.map +1 -0
  216. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.d.ts +149 -0
  217. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.d.ts.map +1 -0
  218. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.js +414 -0
  219. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.js.map +1 -0
  220. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.d.ts +95 -0
  221. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.d.ts.map +1 -0
  222. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.js +231 -0
  223. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.js.map +1 -0
  224. package/v3/dist/adapters/a2ui/renderer/templates/index.d.ts +12 -0
  225. package/v3/dist/adapters/a2ui/renderer/templates/index.d.ts.map +1 -0
  226. package/v3/dist/adapters/a2ui/renderer/templates/index.js +16 -0
  227. package/v3/dist/adapters/a2ui/renderer/templates/index.js.map +1 -0
  228. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.d.ts +121 -0
  229. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.d.ts.map +1 -0
  230. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.js +367 -0
  231. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.js.map +1 -0
  232. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.d.ts +104 -0
  233. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.d.ts.map +1 -0
  234. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.js +294 -0
  235. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.js.map +1 -0
  236. package/v3/dist/adapters/ag-ui/backpressure-handler.d.ts +201 -0
  237. package/v3/dist/adapters/ag-ui/backpressure-handler.d.ts.map +1 -0
  238. package/v3/dist/adapters/ag-ui/backpressure-handler.js +399 -0
  239. package/v3/dist/adapters/ag-ui/backpressure-handler.js.map +1 -0
  240. package/v3/dist/adapters/ag-ui/event-adapter.d.ts +360 -0
  241. package/v3/dist/adapters/ag-ui/event-adapter.d.ts.map +1 -0
  242. package/v3/dist/adapters/ag-ui/event-adapter.js +1083 -0
  243. package/v3/dist/adapters/ag-ui/event-adapter.js.map +1 -0
  244. package/v3/dist/adapters/ag-ui/event-batcher.d.ts +242 -0
  245. package/v3/dist/adapters/ag-ui/event-batcher.d.ts.map +1 -0
  246. package/v3/dist/adapters/ag-ui/event-batcher.js +444 -0
  247. package/v3/dist/adapters/ag-ui/event-batcher.js.map +1 -0
  248. package/v3/dist/adapters/ag-ui/event-types.d.ts +450 -0
  249. package/v3/dist/adapters/ag-ui/event-types.d.ts.map +1 -0
  250. package/v3/dist/adapters/ag-ui/event-types.js +173 -0
  251. package/v3/dist/adapters/ag-ui/event-types.js.map +1 -0
  252. package/v3/dist/adapters/ag-ui/index.d.ts +17 -0
  253. package/v3/dist/adapters/ag-ui/index.d.ts.map +1 -0
  254. package/v3/dist/adapters/ag-ui/index.js +47 -0
  255. package/v3/dist/adapters/ag-ui/index.js.map +1 -0
  256. package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts +136 -0
  257. package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts.map +1 -0
  258. package/v3/dist/adapters/ag-ui/json-patch-utils.js +574 -0
  259. package/v3/dist/adapters/ag-ui/json-patch-utils.js.map +1 -0
  260. package/v3/dist/adapters/ag-ui/json-patch.d.ts +241 -0
  261. package/v3/dist/adapters/ag-ui/json-patch.d.ts.map +1 -0
  262. package/v3/dist/adapters/ag-ui/json-patch.js +726 -0
  263. package/v3/dist/adapters/ag-ui/json-patch.js.map +1 -0
  264. package/v3/dist/adapters/ag-ui/state-delta-cache.d.ts +218 -0
  265. package/v3/dist/adapters/ag-ui/state-delta-cache.d.ts.map +1 -0
  266. package/v3/dist/adapters/ag-ui/state-delta-cache.js +422 -0
  267. package/v3/dist/adapters/ag-ui/state-delta-cache.js.map +1 -0
  268. package/v3/dist/adapters/ag-ui/state-manager.d.ts +249 -0
  269. package/v3/dist/adapters/ag-ui/state-manager.d.ts.map +1 -0
  270. package/v3/dist/adapters/ag-ui/state-manager.js +511 -0
  271. package/v3/dist/adapters/ag-ui/state-manager.js.map +1 -0
  272. package/v3/dist/adapters/ag-ui/stream-controller.d.ts +195 -0
  273. package/v3/dist/adapters/ag-ui/stream-controller.d.ts.map +1 -0
  274. package/v3/dist/adapters/ag-ui/stream-controller.js +481 -0
  275. package/v3/dist/adapters/ag-ui/stream-controller.js.map +1 -0
  276. package/v3/dist/adapters/index.d.ts +4 -0
  277. package/v3/dist/adapters/index.d.ts.map +1 -1
  278. package/v3/dist/adapters/index.js +89 -0
  279. package/v3/dist/adapters/index.js.map +1 -1
  280. package/v3/dist/cli/bundle.js +1507 -425
  281. package/v3/dist/coordination/consensus/providers/claude-provider.js +1 -1
  282. package/v3/dist/coordination/consensus/providers/gemini-provider.js +1 -1
  283. package/v3/dist/coordination/consensus/providers/openai-provider.js +1 -1
  284. package/v3/dist/init/init-wizard.d.ts.map +1 -1
  285. package/v3/dist/init/init-wizard.js +19 -4
  286. package/v3/dist/init/init-wizard.js.map +1 -1
  287. package/v3/dist/init/migration/config-migrator.d.ts.map +1 -1
  288. package/v3/dist/init/migration/config-migrator.js +15 -1
  289. package/v3/dist/init/migration/config-migrator.js.map +1 -1
  290. package/v3/dist/init/phases/05-learning.js +1 -1
  291. package/v3/dist/init/phases/05-learning.js.map +1 -1
  292. package/v3/dist/init/self-configurator.d.ts +7 -0
  293. package/v3/dist/init/self-configurator.d.ts.map +1 -1
  294. package/v3/dist/init/self-configurator.js +23 -27
  295. package/v3/dist/init/self-configurator.js.map +1 -1
  296. package/v3/dist/integrations/ruvector/interfaces.js +1 -1
  297. package/v3/dist/integrations/ruvector/interfaces.js.map +1 -1
  298. package/v3/dist/kernel/index.d.ts +1 -1
  299. package/v3/dist/kernel/index.d.ts.map +1 -1
  300. package/v3/dist/kernel/index.js +3 -1
  301. package/v3/dist/kernel/index.js.map +1 -1
  302. package/v3/dist/kernel/plugin-loader.d.ts.map +1 -1
  303. package/v3/dist/kernel/plugin-loader.js +6 -1
  304. package/v3/dist/kernel/plugin-loader.js.map +1 -1
  305. package/v3/dist/kernel/unified-memory.d.ts +123 -0
  306. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  307. package/v3/dist/kernel/unified-memory.js +258 -2
  308. package/v3/dist/kernel/unified-memory.js.map +1 -1
  309. package/v3/dist/learning/qe-unified-memory.js +1 -1
  310. package/v3/dist/learning/qe-unified-memory.js.map +1 -1
  311. package/v3/dist/learning/real-qe-reasoning-bank.js +2 -2
  312. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  313. package/v3/dist/learning/sqlite-persistence.d.ts +1 -1
  314. package/v3/dist/learning/sqlite-persistence.js +1 -1
  315. package/v3/dist/learning/sqlite-persistence.js.map +1 -1
  316. package/v3/dist/learning/v2-to-v3-migration.d.ts +2 -2
  317. package/v3/dist/learning/v2-to-v3-migration.d.ts.map +1 -1
  318. package/v3/dist/learning/v2-to-v3-migration.js +2 -2
  319. package/v3/dist/learning/v2-to-v3-migration.js.map +1 -1
  320. package/v3/dist/mcp/bundle.js +63075 -53304
  321. package/v3/dist/mcp/entry.d.ts +5 -0
  322. package/v3/dist/mcp/entry.d.ts.map +1 -1
  323. package/v3/dist/mcp/entry.js +36 -0
  324. package/v3/dist/mcp/entry.js.map +1 -1
  325. package/v3/dist/mcp/http-server.d.ts +95 -0
  326. package/v3/dist/mcp/http-server.d.ts.map +1 -0
  327. package/v3/dist/mcp/http-server.js +833 -0
  328. package/v3/dist/mcp/http-server.js.map +1 -0
  329. package/v3/dist/mcp/protocol-server.d.ts +6 -0
  330. package/v3/dist/mcp/protocol-server.d.ts.map +1 -1
  331. package/v3/dist/mcp/protocol-server.js +40 -0
  332. package/v3/dist/mcp/protocol-server.js.map +1 -1
  333. package/v3/dist/mcp/transport/index.d.ts +25 -3
  334. package/v3/dist/mcp/transport/index.d.ts.map +1 -1
  335. package/v3/dist/mcp/transport/index.js +22 -4
  336. package/v3/dist/mcp/transport/index.js.map +1 -1
  337. package/v3/dist/mcp/transport/sse/connection-manager.d.ts +84 -0
  338. package/v3/dist/mcp/transport/sse/connection-manager.d.ts.map +1 -0
  339. package/v3/dist/mcp/transport/sse/connection-manager.js +271 -0
  340. package/v3/dist/mcp/transport/sse/connection-manager.js.map +1 -0
  341. package/v3/dist/mcp/transport/sse/index.d.ts +10 -0
  342. package/v3/dist/mcp/transport/sse/index.d.ts.map +1 -0
  343. package/v3/dist/mcp/transport/sse/index.js +15 -0
  344. package/v3/dist/mcp/transport/sse/index.js.map +1 -0
  345. package/v3/dist/mcp/transport/sse/sse-transport.d.ts +56 -0
  346. package/v3/dist/mcp/transport/sse/sse-transport.d.ts.map +1 -0
  347. package/v3/dist/mcp/transport/sse/sse-transport.js +381 -0
  348. package/v3/dist/mcp/transport/sse/sse-transport.js.map +1 -0
  349. package/v3/dist/mcp/transport/sse/types.d.ts +237 -0
  350. package/v3/dist/mcp/transport/sse/types.d.ts.map +1 -0
  351. package/v3/dist/mcp/transport/sse/types.js +37 -0
  352. package/v3/dist/mcp/transport/sse/types.js.map +1 -0
  353. package/v3/dist/mcp/transport/websocket/connection-manager.d.ts +143 -0
  354. package/v3/dist/mcp/transport/websocket/connection-manager.d.ts.map +1 -0
  355. package/v3/dist/mcp/transport/websocket/connection-manager.js +522 -0
  356. package/v3/dist/mcp/transport/websocket/connection-manager.js.map +1 -0
  357. package/v3/dist/mcp/transport/websocket/index.d.ts +10 -0
  358. package/v3/dist/mcp/transport/websocket/index.d.ts.map +1 -0
  359. package/v3/dist/mcp/transport/websocket/index.js +19 -0
  360. package/v3/dist/mcp/transport/websocket/index.js.map +1 -0
  361. package/v3/dist/mcp/transport/websocket/types.d.ts +354 -0
  362. package/v3/dist/mcp/transport/websocket/types.d.ts.map +1 -0
  363. package/v3/dist/mcp/transport/websocket/types.js +49 -0
  364. package/v3/dist/mcp/transport/websocket/types.js.map +1 -0
  365. package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts +77 -0
  366. package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts.map +1 -0
  367. package/v3/dist/mcp/transport/websocket/websocket-transport.js +622 -0
  368. package/v3/dist/mcp/transport/websocket/websocket-transport.js.map +1 -0
  369. package/v3/dist/memory/crdt/convergence-tracker.d.ts +59 -0
  370. package/v3/dist/memory/crdt/convergence-tracker.d.ts.map +1 -0
  371. package/v3/dist/memory/crdt/convergence-tracker.js +325 -0
  372. package/v3/dist/memory/crdt/convergence-tracker.js.map +1 -0
  373. package/v3/dist/memory/crdt/crdt-store.d.ts +55 -0
  374. package/v3/dist/memory/crdt/crdt-store.d.ts.map +1 -0
  375. package/v3/dist/memory/crdt/crdt-store.js +582 -0
  376. package/v3/dist/memory/crdt/crdt-store.js.map +1 -0
  377. package/v3/dist/memory/crdt/g-counter.d.ts +47 -0
  378. package/v3/dist/memory/crdt/g-counter.d.ts.map +1 -0
  379. package/v3/dist/memory/crdt/g-counter.js +134 -0
  380. package/v3/dist/memory/crdt/g-counter.js.map +1 -0
  381. package/v3/dist/memory/crdt/index.d.ts +52 -0
  382. package/v3/dist/memory/crdt/index.d.ts.map +1 -0
  383. package/v3/dist/memory/crdt/index.js +66 -0
  384. package/v3/dist/memory/crdt/index.js.map +1 -0
  385. package/v3/dist/memory/crdt/lww-register.d.ts +40 -0
  386. package/v3/dist/memory/crdt/lww-register.d.ts.map +1 -0
  387. package/v3/dist/memory/crdt/lww-register.js +133 -0
  388. package/v3/dist/memory/crdt/lww-register.js.map +1 -0
  389. package/v3/dist/memory/crdt/or-set.d.ts +62 -0
  390. package/v3/dist/memory/crdt/or-set.d.ts.map +1 -0
  391. package/v3/dist/memory/crdt/or-set.js +336 -0
  392. package/v3/dist/memory/crdt/or-set.js.map +1 -0
  393. package/v3/dist/memory/crdt/pn-counter.d.ts +53 -0
  394. package/v3/dist/memory/crdt/pn-counter.d.ts.map +1 -0
  395. package/v3/dist/memory/crdt/pn-counter.js +147 -0
  396. package/v3/dist/memory/crdt/pn-counter.js.map +1 -0
  397. package/v3/dist/memory/crdt/types.d.ts +397 -0
  398. package/v3/dist/memory/crdt/types.d.ts.map +1 -0
  399. package/v3/dist/memory/crdt/types.js +12 -0
  400. package/v3/dist/memory/crdt/types.js.map +1 -0
  401. package/v3/dist/memory/index.d.ts +5 -2
  402. package/v3/dist/memory/index.d.ts.map +1 -1
  403. package/v3/dist/memory/index.js +5 -2
  404. package/v3/dist/memory/index.js.map +1 -1
  405. package/v3/dist/performance/benchmarks.d.ts +215 -0
  406. package/v3/dist/performance/benchmarks.d.ts.map +1 -0
  407. package/v3/dist/performance/benchmarks.js +516 -0
  408. package/v3/dist/performance/benchmarks.js.map +1 -0
  409. package/v3/dist/performance/ci-gates.d.ts +149 -0
  410. package/v3/dist/performance/ci-gates.d.ts.map +1 -0
  411. package/v3/dist/performance/ci-gates.js +425 -0
  412. package/v3/dist/performance/ci-gates.js.map +1 -0
  413. package/v3/dist/performance/index.d.ts +18 -0
  414. package/v3/dist/performance/index.d.ts.map +1 -0
  415. package/v3/dist/performance/index.js +26 -0
  416. package/v3/dist/performance/index.js.map +1 -0
  417. package/v3/dist/performance/optimizer.d.ts +323 -0
  418. package/v3/dist/performance/optimizer.d.ts.map +1 -0
  419. package/v3/dist/performance/optimizer.js +592 -0
  420. package/v3/dist/performance/optimizer.js.map +1 -0
  421. package/v3/dist/performance/profiler.d.ts +195 -0
  422. package/v3/dist/performance/profiler.d.ts.map +1 -0
  423. package/v3/dist/performance/profiler.js +369 -0
  424. package/v3/dist/performance/profiler.js.map +1 -0
  425. package/v3/dist/performance/run-gates.d.ts +23 -0
  426. package/v3/dist/performance/run-gates.d.ts.map +1 -0
  427. package/v3/dist/performance/run-gates.js +122 -0
  428. package/v3/dist/performance/run-gates.js.map +1 -0
  429. package/v3/dist/sync/claude-flow-bridge.d.ts +1 -1
  430. package/v3/dist/sync/claude-flow-bridge.js +1 -1
  431. package/v3/dist/sync/interfaces.d.ts +6 -0
  432. package/v3/dist/sync/interfaces.d.ts.map +1 -1
  433. package/v3/dist/sync/interfaces.js +34 -47
  434. package/v3/dist/sync/interfaces.js.map +1 -1
  435. package/v3/dist/sync/readers/sqlite-reader.d.ts +1 -1
  436. package/v3/dist/sync/readers/sqlite-reader.js +1 -1
  437. package/v3/dist/testing/index.d.ts +6 -0
  438. package/v3/dist/testing/index.d.ts.map +1 -0
  439. package/v3/dist/testing/index.js +7 -0
  440. package/v3/dist/testing/index.js.map +1 -0
  441. package/v3/dist/testing/load/agent-load-tester.d.ts +221 -0
  442. package/v3/dist/testing/load/agent-load-tester.d.ts.map +1 -0
  443. package/v3/dist/testing/load/agent-load-tester.js +566 -0
  444. package/v3/dist/testing/load/agent-load-tester.js.map +1 -0
  445. package/v3/dist/testing/load/bottleneck-analyzer.d.ts +150 -0
  446. package/v3/dist/testing/load/bottleneck-analyzer.d.ts.map +1 -0
  447. package/v3/dist/testing/load/bottleneck-analyzer.js +442 -0
  448. package/v3/dist/testing/load/bottleneck-analyzer.js.map +1 -0
  449. package/v3/dist/testing/load/index.d.ts +17 -0
  450. package/v3/dist/testing/load/index.d.ts.map +1 -0
  451. package/v3/dist/testing/load/index.js +23 -0
  452. package/v3/dist/testing/load/index.js.map +1 -0
  453. package/v3/dist/testing/load/metrics-collector.d.ts +275 -0
  454. package/v3/dist/testing/load/metrics-collector.d.ts.map +1 -0
  455. package/v3/dist/testing/load/metrics-collector.js +475 -0
  456. package/v3/dist/testing/load/metrics-collector.js.map +1 -0
  457. package/v3/package.json +5 -1
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A2A Discovery Module
3
+ *
4
+ * Provides RFC 8615 compliant agent discovery for A2A Protocol.
5
+ * Includes discovery service, Express-compatible routes, hot-reload,
6
+ * health checking, and metrics collection.
7
+ *
8
+ * @module adapters/a2a/discovery
9
+ * @see https://tools.ietf.org/html/rfc8615
10
+ * @see https://a2a-protocol.org/latest/topics/agent-discovery/
11
+ */
12
+ export { DiscoveryService, createDiscoveryService, type DiscoveryServiceConfig, DEFAULT_DISCOVERY_CONFIG, type AgentSearchCriteria, type AgentSearchResult, type CardAccessMetrics, type RateLimitInfo, type UsageStats, type ExtendedCardData, } from './discovery-service.js';
13
+ export { createDiscoveryRoutes, getDiscoveryRouteDefinitions, type DiscoveryRoutesConfig, DEFAULT_ROUTES_CONFIG, type HttpRequest, type HttpResponse, type NextFunction, type HttpHandler, type RouteDefinition, type AuthMiddleware, type AuthenticatedRequest, type A2AErrorResponse, createAgentNotFoundResponse, createAuthRequiredResponse, createInternalErrorResponse, createPlatformCardHandler, createAgentCardHandler, createExtendedCardHandler, } from './routes.js';
14
+ export { AgentFileWatcher, createAgentFileWatcher, type FileWatcherConfig, DEFAULT_FILE_WATCHER_CONFIG, type FileEvent, type FileChangeEvent, type WatcherStatus, type FileWatcherEvents, } from './file-watcher.js';
15
+ export { HotReloadService, createHotReloadService, type HotReloadServiceConfig, DEFAULT_HOT_RELOAD_CONFIG, type HotReloadEvent, type HotReloadStatus, type ReloadResult, type HotReloadEvents, } from './hot-reload-service.js';
16
+ export { AgentHealthChecker, createAgentHealthChecker, type HealthCheckConfig, DEFAULT_HEALTH_CHECK_CONFIG, type HealthStatus, type AgentHealthStatus, type HealthCheckResult, type PeriodicCheckConfig, type HealthSummary, type HealthCheckerEvents, } from './agent-health.js';
17
+ export { MetricsCollector, createMetricsCollector, getGlobalMetrics, resetGlobalMetrics, type MetricsCollectorConfig, DEFAULT_METRICS_CONFIG, type MetricType, type MetricLabels, type DiscoveryMetrics, } from './metrics.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,KAAK,sBAAsB,EAC3B,wBAAwB,EAGxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAGtB,KAAK,iBAAiB,EAGtB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAEL,qBAAqB,EACrB,4BAA4B,EAG5B,KAAK,qBAAqB,EAC1B,qBAAqB,EAGrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EAGpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAGrB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAG3B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,KAAK,iBAAiB,EACtB,2BAA2B,EAG3B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,KAAK,sBAAsB,EAC3B,yBAAyB,EAGzB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAEL,kBAAkB,EAClB,wBAAwB,EAGxB,KAAK,iBAAiB,EACtB,2BAA2B,EAG3B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EAGtB,gBAAgB,EAChB,kBAAkB,EAGlB,KAAK,sBAAsB,EAC3B,sBAAsB,EAGtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * A2A Discovery Module
3
+ *
4
+ * Provides RFC 8615 compliant agent discovery for A2A Protocol.
5
+ * Includes discovery service, Express-compatible routes, hot-reload,
6
+ * health checking, and metrics collection.
7
+ *
8
+ * @module adapters/a2a/discovery
9
+ * @see https://tools.ietf.org/html/rfc8615
10
+ * @see https://a2a-protocol.org/latest/topics/agent-discovery/
11
+ */
12
+ // ============================================================================
13
+ // Discovery Service
14
+ // ============================================================================
15
+ export {
16
+ // Service Class
17
+ DiscoveryService, createDiscoveryService, DEFAULT_DISCOVERY_CONFIG, } from './discovery-service.js';
18
+ // ============================================================================
19
+ // Express-Compatible Routes
20
+ // ============================================================================
21
+ export {
22
+ // Route Factory
23
+ createDiscoveryRoutes, getDiscoveryRouteDefinitions, DEFAULT_ROUTES_CONFIG,
24
+ // Error Response Factories
25
+ createAgentNotFoundResponse, createAuthRequiredResponse, createInternalErrorResponse,
26
+ // Standalone Handlers
27
+ createPlatformCardHandler, createAgentCardHandler, createExtendedCardHandler, } from './routes.js';
28
+ // ============================================================================
29
+ // File Watcher
30
+ // ============================================================================
31
+ export {
32
+ // Class
33
+ AgentFileWatcher, createAgentFileWatcher, DEFAULT_FILE_WATCHER_CONFIG, } from './file-watcher.js';
34
+ // ============================================================================
35
+ // Hot Reload Service
36
+ // ============================================================================
37
+ export {
38
+ // Class
39
+ HotReloadService, createHotReloadService, DEFAULT_HOT_RELOAD_CONFIG, } from './hot-reload-service.js';
40
+ // ============================================================================
41
+ // Agent Health Checker
42
+ // ============================================================================
43
+ export {
44
+ // Class
45
+ AgentHealthChecker, createAgentHealthChecker, DEFAULT_HEALTH_CHECK_CONFIG, } from './agent-health.js';
46
+ // ============================================================================
47
+ // Metrics
48
+ // ============================================================================
49
+ export {
50
+ // Class
51
+ MetricsCollector, createMetricsCollector,
52
+ // Global Metrics
53
+ getGlobalMetrics, resetGlobalMetrics, DEFAULT_METRICS_CONFIG, } from './metrics.js';
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO;AACL,gBAAgB;AAChB,gBAAgB,EAChB,sBAAsB,EAItB,wBAAwB,GAazB,MAAM,wBAAwB,CAAC;AAEhC,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO;AACL,gBAAgB;AAChB,qBAAqB,EACrB,4BAA4B,EAI5B,qBAAqB;AAcrB,2BAA2B;AAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B;AAE3B,sBAAsB;AACtB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,gBAAgB,EAChB,sBAAsB,EAItB,2BAA2B,GAO5B,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,gBAAgB,EAChB,sBAAsB,EAItB,yBAAyB,GAO1B,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,kBAAkB,EAClB,wBAAwB,EAIxB,2BAA2B,GAS5B,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,OAAO;AACL,QAAQ;AACR,gBAAgB,EAChB,sBAAsB;AAEtB,iBAAiB;AACjB,gBAAgB,EAChB,kBAAkB,EAIlB,sBAAsB,GAMvB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * A2A Discovery Metrics Collector
3
+ *
4
+ * Provides Prometheus-style metrics collection for agent discovery,
5
+ * hot-reload, and health checking operations.
6
+ *
7
+ * @module adapters/a2a/discovery/metrics
8
+ */
9
+ /**
10
+ * Metric types
11
+ */
12
+ export type MetricType = 'counter' | 'gauge' | 'histogram';
13
+ /**
14
+ * Labels for metric tagging
15
+ */
16
+ export type MetricLabels = Record<string, string>;
17
+ /**
18
+ * Discovery metrics interface
19
+ */
20
+ export interface DiscoveryMetrics {
21
+ /** Number of registered agents */
22
+ readonly agentsRegistered: number;
23
+ /** Agents by domain */
24
+ readonly agentsByDomain: Map<string, number>;
25
+ /** Registration event counts */
26
+ readonly registrationEvents: {
27
+ readonly add: number;
28
+ readonly remove: number;
29
+ readonly update: number;
30
+ };
31
+ /** Cache hit count */
32
+ readonly cacheHits: number;
33
+ /** Cache miss count */
34
+ readonly cacheMisses: number;
35
+ /** File watcher event count */
36
+ readonly fileWatcherEvents: number;
37
+ }
38
+ /**
39
+ * Histogram bucket
40
+ */
41
+ interface HistogramBucket {
42
+ le: number;
43
+ count: number;
44
+ }
45
+ /**
46
+ * Histogram metric data
47
+ */
48
+ interface HistogramData {
49
+ buckets: HistogramBucket[];
50
+ sum: number;
51
+ count: number;
52
+ }
53
+ /**
54
+ * Metrics collector configuration
55
+ */
56
+ export interface MetricsCollectorConfig {
57
+ /** Prefix for all metric names */
58
+ readonly prefix?: string;
59
+ /** Default labels to add to all metrics */
60
+ readonly defaultLabels?: MetricLabels;
61
+ /** Enable timestamps in output */
62
+ readonly includeTimestamps?: boolean;
63
+ /** Histogram buckets for latency metrics */
64
+ readonly histogramBuckets?: number[];
65
+ }
66
+ /**
67
+ * Default configuration
68
+ */
69
+ export declare const DEFAULT_METRICS_CONFIG: Required<MetricsCollectorConfig>;
70
+ /**
71
+ * Metrics Collector
72
+ *
73
+ * Collects and exports Prometheus-style metrics for agent discovery operations.
74
+ * Supports counters, gauges, and histograms with arbitrary labels.
75
+ */
76
+ export declare class MetricsCollector {
77
+ private readonly config;
78
+ private readonly counters;
79
+ private readonly gauges;
80
+ private readonly histograms;
81
+ private readonly metricHelp;
82
+ constructor(config?: MetricsCollectorConfig);
83
+ /**
84
+ * Increment a counter
85
+ */
86
+ increment(metric: string, labels?: MetricLabels, value?: number): void;
87
+ /**
88
+ * Set a gauge value
89
+ */
90
+ gauge(metric: string, value: number, labels?: MetricLabels): void;
91
+ /**
92
+ * Observe a histogram value
93
+ */
94
+ observe(metric: string, value: number, labels?: MetricLabels): void;
95
+ /**
96
+ * Get the current value of a counter
97
+ */
98
+ getCounter(metric: string, labels?: MetricLabels): number;
99
+ /**
100
+ * Get the current value of a gauge
101
+ */
102
+ getGauge(metric: string, labels?: MetricLabels): number;
103
+ /**
104
+ * Get histogram data
105
+ */
106
+ getHistogram(metric: string, labels?: MetricLabels): HistogramData | null;
107
+ /**
108
+ * Register a metric with help text
109
+ */
110
+ register(metric: string, help: string): void;
111
+ /**
112
+ * Get all metrics in Prometheus exposition format
113
+ */
114
+ getMetrics(): string;
115
+ /**
116
+ * Get discovery-specific metrics summary
117
+ */
118
+ getDiscoveryMetrics(): DiscoveryMetrics;
119
+ /**
120
+ * Reset all metrics
121
+ */
122
+ reset(): void;
123
+ /**
124
+ * Reset a specific counter
125
+ */
126
+ resetCounter(metric: string, labels?: MetricLabels): void;
127
+ /**
128
+ * Reset a specific gauge
129
+ */
130
+ resetGauge(metric: string, labels?: MetricLabels): void;
131
+ /**
132
+ * Get the number of registered metrics
133
+ */
134
+ getMetricCount(): {
135
+ counters: number;
136
+ gauges: number;
137
+ histograms: number;
138
+ };
139
+ /**
140
+ * Register default metrics
141
+ */
142
+ private registerDefaultMetrics;
143
+ /**
144
+ * Build a unique key for a metric with labels
145
+ */
146
+ private buildKey;
147
+ /**
148
+ * Build the full metric name with prefix
149
+ */
150
+ private buildFullName;
151
+ /**
152
+ * Merge labels with defaults
153
+ */
154
+ private mergeLabels;
155
+ /**
156
+ * Group metrics by name
157
+ */
158
+ private groupByName;
159
+ /**
160
+ * Format a metric line in Prometheus format
161
+ */
162
+ private formatMetricLine;
163
+ }
164
+ /**
165
+ * Create a Metrics Collector instance
166
+ *
167
+ * @param config - Collector configuration
168
+ * @returns Metrics collector instance
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const metrics = createMetricsCollector({
173
+ * prefix: 'aqe_discovery',
174
+ * defaultLabels: { environment: 'production' },
175
+ * });
176
+ *
177
+ * // Increment counter
178
+ * metrics.increment('registration.add', { domain: 'test-generation' });
179
+ *
180
+ * // Set gauge
181
+ * metrics.gauge('agents.registered', 68);
182
+ *
183
+ * // Observe histogram
184
+ * metrics.observe('health.latency', 0.125);
185
+ *
186
+ * // Get Prometheus format output
187
+ * const output = metrics.getMetrics();
188
+ * ```
189
+ */
190
+ export declare function createMetricsCollector(config?: MetricsCollectorConfig): MetricsCollector;
191
+ /**
192
+ * Get or create the global metrics collector
193
+ */
194
+ export declare function getGlobalMetrics(): MetricsCollector;
195
+ /**
196
+ * Reset the global metrics collector
197
+ */
198
+ export declare function resetGlobalMetrics(): void;
199
+ export {};
200
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,371 @@
1
+ /**
2
+ * A2A Discovery Metrics Collector
3
+ *
4
+ * Provides Prometheus-style metrics collection for agent discovery,
5
+ * hot-reload, and health checking operations.
6
+ *
7
+ * @module adapters/a2a/discovery/metrics
8
+ */
9
+ /**
10
+ * Default configuration
11
+ */
12
+ export const DEFAULT_METRICS_CONFIG = {
13
+ prefix: 'aqe_discovery',
14
+ defaultLabels: {},
15
+ includeTimestamps: true,
16
+ histogramBuckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
17
+ };
18
+ // ============================================================================
19
+ // Metrics Collector Class
20
+ // ============================================================================
21
+ /**
22
+ * Metrics Collector
23
+ *
24
+ * Collects and exports Prometheus-style metrics for agent discovery operations.
25
+ * Supports counters, gauges, and histograms with arbitrary labels.
26
+ */
27
+ export class MetricsCollector {
28
+ config;
29
+ counters = new Map();
30
+ gauges = new Map();
31
+ histograms = new Map();
32
+ metricHelp = new Map();
33
+ constructor(config = {}) {
34
+ this.config = {
35
+ ...DEFAULT_METRICS_CONFIG,
36
+ ...config,
37
+ };
38
+ // Register default metrics
39
+ this.registerDefaultMetrics();
40
+ }
41
+ // ============================================================================
42
+ // Public API
43
+ // ============================================================================
44
+ /**
45
+ * Increment a counter
46
+ */
47
+ increment(metric, labels = {}, value = 1) {
48
+ const key = this.buildKey(metric, labels);
49
+ const fullName = this.buildFullName(metric);
50
+ const mergedLabels = this.mergeLabels(labels);
51
+ const existing = this.counters.get(key);
52
+ if (existing) {
53
+ existing.value += value;
54
+ existing.timestamp = Date.now();
55
+ }
56
+ else {
57
+ this.counters.set(key, {
58
+ name: fullName,
59
+ type: 'counter',
60
+ help: this.metricHelp.get(metric) ?? `Counter for ${metric}`,
61
+ value,
62
+ labels: mergedLabels,
63
+ timestamp: Date.now(),
64
+ });
65
+ }
66
+ }
67
+ /**
68
+ * Set a gauge value
69
+ */
70
+ gauge(metric, value, labels = {}) {
71
+ const key = this.buildKey(metric, labels);
72
+ const fullName = this.buildFullName(metric);
73
+ const mergedLabels = this.mergeLabels(labels);
74
+ this.gauges.set(key, {
75
+ name: fullName,
76
+ type: 'gauge',
77
+ help: this.metricHelp.get(metric) ?? `Gauge for ${metric}`,
78
+ value,
79
+ labels: mergedLabels,
80
+ timestamp: Date.now(),
81
+ });
82
+ }
83
+ /**
84
+ * Observe a histogram value
85
+ */
86
+ observe(metric, value, labels = {}) {
87
+ const key = this.buildKey(metric, labels);
88
+ let histogram = this.histograms.get(key);
89
+ if (!histogram) {
90
+ histogram = {
91
+ buckets: this.config.histogramBuckets.map((le) => ({ le, count: 0 })),
92
+ sum: 0,
93
+ count: 0,
94
+ };
95
+ this.histograms.set(key, histogram);
96
+ }
97
+ // Update buckets
98
+ for (const bucket of histogram.buckets) {
99
+ if (value <= bucket.le) {
100
+ bucket.count++;
101
+ }
102
+ }
103
+ histogram.sum += value;
104
+ histogram.count++;
105
+ }
106
+ /**
107
+ * Get the current value of a counter
108
+ */
109
+ getCounter(metric, labels = {}) {
110
+ const key = this.buildKey(metric, labels);
111
+ return this.counters.get(key)?.value ?? 0;
112
+ }
113
+ /**
114
+ * Get the current value of a gauge
115
+ */
116
+ getGauge(metric, labels = {}) {
117
+ const key = this.buildKey(metric, labels);
118
+ return this.gauges.get(key)?.value ?? 0;
119
+ }
120
+ /**
121
+ * Get histogram data
122
+ */
123
+ getHistogram(metric, labels = {}) {
124
+ const key = this.buildKey(metric, labels);
125
+ return this.histograms.get(key) ?? null;
126
+ }
127
+ /**
128
+ * Register a metric with help text
129
+ */
130
+ register(metric, help) {
131
+ this.metricHelp.set(metric, help);
132
+ }
133
+ /**
134
+ * Get all metrics in Prometheus exposition format
135
+ */
136
+ getMetrics() {
137
+ const lines = [];
138
+ // Output counters
139
+ const countersByName = this.groupByName(this.counters);
140
+ for (const [name, entries] of countersByName) {
141
+ const help = entries[0]?.help ?? '';
142
+ lines.push(`# HELP ${name} ${help}`);
143
+ lines.push(`# TYPE ${name} counter`);
144
+ for (const entry of entries) {
145
+ lines.push(this.formatMetricLine(entry));
146
+ }
147
+ }
148
+ // Output gauges
149
+ const gaugesByName = this.groupByName(this.gauges);
150
+ for (const [name, entries] of gaugesByName) {
151
+ const help = entries[0]?.help ?? '';
152
+ lines.push(`# HELP ${name} ${help}`);
153
+ lines.push(`# TYPE ${name} gauge`);
154
+ for (const entry of entries) {
155
+ lines.push(this.formatMetricLine(entry));
156
+ }
157
+ }
158
+ // Output histograms
159
+ for (const [key, histogram] of this.histograms) {
160
+ const [metric] = key.split('{');
161
+ const fullName = this.buildFullName(metric);
162
+ const help = this.metricHelp.get(metric) ?? `Histogram for ${metric}`;
163
+ lines.push(`# HELP ${fullName} ${help}`);
164
+ lines.push(`# TYPE ${fullName} histogram`);
165
+ for (const bucket of histogram.buckets) {
166
+ lines.push(`${fullName}_bucket{le="${bucket.le}"} ${bucket.count}`);
167
+ }
168
+ lines.push(`${fullName}_bucket{le="+Inf"} ${histogram.count}`);
169
+ lines.push(`${fullName}_sum ${histogram.sum}`);
170
+ lines.push(`${fullName}_count ${histogram.count}`);
171
+ }
172
+ return lines.join('\n');
173
+ }
174
+ /**
175
+ * Get discovery-specific metrics summary
176
+ */
177
+ getDiscoveryMetrics() {
178
+ const agentsByDomain = new Map();
179
+ // Extract domain counts from gauges
180
+ for (const [key, entry] of this.gauges) {
181
+ if (key.includes('agents_by_domain')) {
182
+ const domain = entry.labels.domain ?? 'unknown';
183
+ agentsByDomain.set(domain, entry.value);
184
+ }
185
+ }
186
+ return {
187
+ agentsRegistered: this.getGauge('agents.registered'),
188
+ agentsByDomain,
189
+ registrationEvents: {
190
+ add: this.getCounter('registration.add'),
191
+ remove: this.getCounter('registration.remove'),
192
+ update: this.getCounter('registration.update'),
193
+ },
194
+ cacheHits: this.getCounter('cache.hits'),
195
+ cacheMisses: this.getCounter('cache.misses'),
196
+ fileWatcherEvents: this.getCounter('file-watcher.events'),
197
+ };
198
+ }
199
+ /**
200
+ * Reset all metrics
201
+ */
202
+ reset() {
203
+ this.counters.clear();
204
+ this.gauges.clear();
205
+ this.histograms.clear();
206
+ this.registerDefaultMetrics();
207
+ }
208
+ /**
209
+ * Reset a specific counter
210
+ */
211
+ resetCounter(metric, labels = {}) {
212
+ const key = this.buildKey(metric, labels);
213
+ this.counters.delete(key);
214
+ }
215
+ /**
216
+ * Reset a specific gauge
217
+ */
218
+ resetGauge(metric, labels = {}) {
219
+ const key = this.buildKey(metric, labels);
220
+ this.gauges.delete(key);
221
+ }
222
+ /**
223
+ * Get the number of registered metrics
224
+ */
225
+ getMetricCount() {
226
+ return {
227
+ counters: this.counters.size,
228
+ gauges: this.gauges.size,
229
+ histograms: this.histograms.size,
230
+ };
231
+ }
232
+ // ============================================================================
233
+ // Private Methods
234
+ // ============================================================================
235
+ /**
236
+ * Register default metrics
237
+ */
238
+ registerDefaultMetrics() {
239
+ this.register('agents.registered', 'Total number of registered agents');
240
+ this.register('agents_by_domain', 'Number of agents per domain');
241
+ this.register('registration.add', 'Number of agent registrations');
242
+ this.register('registration.remove', 'Number of agent removals');
243
+ this.register('registration.update', 'Number of agent updates');
244
+ this.register('cache.hits', 'Number of cache hits');
245
+ this.register('cache.misses', 'Number of cache misses');
246
+ this.register('file-watcher.events', 'Number of file watcher events');
247
+ this.register('hot-reload.start', 'Number of hot reload service starts');
248
+ this.register('hot-reload.stop', 'Number of hot reload service stops');
249
+ this.register('hot-reload.file-event', 'Number of file events processed');
250
+ this.register('hot-reload.card-added', 'Number of agent cards added');
251
+ this.register('hot-reload.card-updated', 'Number of agent cards updated');
252
+ this.register('hot-reload.card-removed', 'Number of agent cards removed');
253
+ this.register('hot-reload.platform-card-updated', 'Number of platform card updates');
254
+ this.register('hot-reload.cache-invalidation', 'Number of cache invalidations');
255
+ this.register('hot-reload.failures', 'Number of hot reload failures');
256
+ this.register('hot-reload.errors', 'Number of hot reload errors');
257
+ this.register('hot-reload.last-duration-ms', 'Duration of last hot reload in milliseconds');
258
+ this.register('health.checks', 'Number of health checks performed');
259
+ this.register('health.checks.success', 'Number of successful health checks');
260
+ this.register('health.checks.failure', 'Number of failed health checks');
261
+ this.register('health.latency', 'Health check latency in seconds');
262
+ }
263
+ /**
264
+ * Build a unique key for a metric with labels
265
+ */
266
+ buildKey(metric, labels) {
267
+ const sortedLabels = Object.entries(labels)
268
+ .sort(([a], [b]) => a.localeCompare(b))
269
+ .map(([k, v]) => `${k}="${v}"`)
270
+ .join(',');
271
+ return sortedLabels ? `${metric}{${sortedLabels}}` : metric;
272
+ }
273
+ /**
274
+ * Build the full metric name with prefix
275
+ */
276
+ buildFullName(metric) {
277
+ const sanitized = metric.replace(/[^a-zA-Z0-9_]/g, '_');
278
+ return `${this.config.prefix}_${sanitized}`;
279
+ }
280
+ /**
281
+ * Merge labels with defaults
282
+ */
283
+ mergeLabels(labels) {
284
+ return {
285
+ ...this.config.defaultLabels,
286
+ ...labels,
287
+ };
288
+ }
289
+ /**
290
+ * Group metrics by name
291
+ */
292
+ groupByName(metrics) {
293
+ const grouped = new Map();
294
+ for (const entry of metrics.values()) {
295
+ const existing = grouped.get(entry.name);
296
+ if (existing) {
297
+ existing.push(entry);
298
+ }
299
+ else {
300
+ grouped.set(entry.name, [entry]);
301
+ }
302
+ }
303
+ return grouped;
304
+ }
305
+ /**
306
+ * Format a metric line in Prometheus format
307
+ */
308
+ formatMetricLine(entry) {
309
+ const labelParts = Object.entries(entry.labels)
310
+ .filter(([, v]) => v !== undefined && v !== '')
311
+ .map(([k, v]) => `${k}="${v}"`)
312
+ .join(',');
313
+ const labels = labelParts ? `{${labelParts}}` : '';
314
+ const timestamp = this.config.includeTimestamps ? ` ${entry.timestamp}` : '';
315
+ return `${entry.name}${labels} ${entry.value}${timestamp}`;
316
+ }
317
+ }
318
+ // ============================================================================
319
+ // Factory Function
320
+ // ============================================================================
321
+ /**
322
+ * Create a Metrics Collector instance
323
+ *
324
+ * @param config - Collector configuration
325
+ * @returns Metrics collector instance
326
+ *
327
+ * @example
328
+ * ```typescript
329
+ * const metrics = createMetricsCollector({
330
+ * prefix: 'aqe_discovery',
331
+ * defaultLabels: { environment: 'production' },
332
+ * });
333
+ *
334
+ * // Increment counter
335
+ * metrics.increment('registration.add', { domain: 'test-generation' });
336
+ *
337
+ * // Set gauge
338
+ * metrics.gauge('agents.registered', 68);
339
+ *
340
+ * // Observe histogram
341
+ * metrics.observe('health.latency', 0.125);
342
+ *
343
+ * // Get Prometheus format output
344
+ * const output = metrics.getMetrics();
345
+ * ```
346
+ */
347
+ export function createMetricsCollector(config = {}) {
348
+ return new MetricsCollector(config);
349
+ }
350
+ // ============================================================================
351
+ // Singleton for Global Metrics
352
+ // ============================================================================
353
+ let globalMetrics = null;
354
+ /**
355
+ * Get or create the global metrics collector
356
+ */
357
+ export function getGlobalMetrics() {
358
+ if (!globalMetrics) {
359
+ globalMetrics = createMetricsCollector();
360
+ }
361
+ return globalMetrics;
362
+ }
363
+ /**
364
+ * Reset the global metrics collector
365
+ */
366
+ export function resetGlobalMetrics() {
367
+ if (globalMetrics) {
368
+ globalMetrics.reset();
369
+ }
370
+ }
371
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/metrics.ts"],"names":[],"mappings":"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"}