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,184 @@
1
+ /**
2
+ * A2A Discovery Routes
3
+ *
4
+ * Express-compatible route handlers for RFC 8615 well-known URI agent discovery.
5
+ * Provides endpoints for platform and individual agent card discovery.
6
+ *
7
+ * NOTE: This module exports handler factories that work with Express or any
8
+ * compatible HTTP framework. Express itself is not bundled - consumers must
9
+ * provide their own Express installation.
10
+ *
11
+ * @module adapters/a2a/discovery/routes
12
+ * @see https://tools.ietf.org/html/rfc8615
13
+ */
14
+ import { DiscoveryService } from './discovery-service.js';
15
+ /**
16
+ * Minimal HTTP request interface compatible with Express
17
+ */
18
+ export interface HttpRequest {
19
+ params: Record<string, string>;
20
+ query: Record<string, string | string[] | undefined>;
21
+ headers: Record<string, string | string[] | undefined>;
22
+ header(name: string): string | undefined;
23
+ }
24
+ /**
25
+ * Minimal HTTP response interface compatible with Express
26
+ */
27
+ export interface HttpResponse {
28
+ status(code: number): HttpResponse;
29
+ json(body: unknown): void;
30
+ setHeader(name: string, value: string | number): void;
31
+ end(): void;
32
+ }
33
+ /**
34
+ * Next function for middleware chaining
35
+ */
36
+ export type NextFunction = (error?: unknown) => void;
37
+ /**
38
+ * HTTP handler function
39
+ */
40
+ export type HttpHandler = (req: HttpRequest, res: HttpResponse, next?: NextFunction) => void | Promise<void>;
41
+ /**
42
+ * Route configuration options
43
+ */
44
+ export interface DiscoveryRoutesConfig {
45
+ /** Discovery service instance */
46
+ readonly discoveryService: DiscoveryService;
47
+ /** Authentication middleware for extended cards */
48
+ readonly authMiddleware?: HttpHandler;
49
+ /** Default cache duration in seconds (for Cache-Control header) */
50
+ readonly defaultCacheSeconds?: number;
51
+ /** Enable CORS headers */
52
+ readonly enableCors?: boolean;
53
+ }
54
+ /**
55
+ * Authentication middleware type
56
+ */
57
+ export type AuthMiddleware = HttpHandler;
58
+ /**
59
+ * A2A error response format
60
+ */
61
+ export interface A2AErrorResponse {
62
+ readonly error: {
63
+ readonly code: number;
64
+ readonly message: string;
65
+ readonly data?: unknown;
66
+ };
67
+ }
68
+ /**
69
+ * Request with authenticated user info
70
+ */
71
+ export interface AuthenticatedRequest extends HttpRequest {
72
+ user?: {
73
+ id: string;
74
+ scopes?: string[];
75
+ };
76
+ }
77
+ /**
78
+ * Route definition for Express router setup
79
+ */
80
+ export interface RouteDefinition {
81
+ readonly method: 'get' | 'post' | 'options';
82
+ readonly path: string;
83
+ readonly handlers: HttpHandler[];
84
+ }
85
+ /**
86
+ * Default route configuration
87
+ */
88
+ export declare const DEFAULT_ROUTES_CONFIG: {
89
+ readonly defaultCacheSeconds: 3600;
90
+ readonly enableCors: true;
91
+ };
92
+ /**
93
+ * Create an A2A-formatted error response for agent not found
94
+ */
95
+ export declare function createAgentNotFoundResponse(agentId: string): A2AErrorResponse;
96
+ /**
97
+ * Create an A2A-formatted error response for authentication required
98
+ */
99
+ export declare function createAuthRequiredResponse(): A2AErrorResponse;
100
+ /**
101
+ * Create an A2A-formatted error response for internal errors
102
+ */
103
+ export declare function createInternalErrorResponse(message?: string): A2AErrorResponse;
104
+ /**
105
+ * Get route definitions for A2A agent discovery
106
+ *
107
+ * Returns an array of route definitions that can be used to setup routes
108
+ * in Express or any compatible HTTP framework.
109
+ *
110
+ * @param config - Route configuration
111
+ * @returns Array of route definitions
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const routeDefs = getDiscoveryRouteDefinitions({
116
+ * discoveryService,
117
+ * authMiddleware: verifyToken,
118
+ * });
119
+ *
120
+ * // Setup in Express
121
+ * for (const route of routeDefs) {
122
+ * app[route.method](route.path, ...route.handlers);
123
+ * }
124
+ * ```
125
+ */
126
+ export declare function getDiscoveryRouteDefinitions(config: DiscoveryRoutesConfig): RouteDefinition[];
127
+ /**
128
+ * Create Express routes for A2A agent discovery
129
+ *
130
+ * NOTE: This function requires Express to be installed separately.
131
+ * If Express is not available, use getDiscoveryRouteDefinitions() instead.
132
+ *
133
+ * Registers the following endpoints:
134
+ * - GET /.well-known/agent.json - Platform aggregate card
135
+ * - GET /a2a/:agentId/.well-known/agent.json - Individual agent card
136
+ * - GET /a2a/:agentId/.well-known/agent.json?extended=true - Extended agent card (auth required)
137
+ * - GET /a2a/agents - Search/list agents
138
+ * - GET /a2a/agents/:agentId - Alias for individual agent card
139
+ *
140
+ * @param config - Route configuration
141
+ * @returns Express router (requires express to be installed)
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * import express from 'express';
146
+ * import { createDiscoveryRoutes } from '@agentic-qe/v3';
147
+ *
148
+ * const app = express();
149
+ * const routes = createDiscoveryRoutes({
150
+ * discoveryService,
151
+ * authMiddleware: verifyToken,
152
+ * });
153
+ *
154
+ * app.use(routes);
155
+ * ```
156
+ */
157
+ export declare function createDiscoveryRoutes(config: DiscoveryRoutesConfig): {
158
+ stack: Array<{
159
+ route?: {
160
+ path?: string;
161
+ };
162
+ }>;
163
+ } & Record<string, unknown>;
164
+ /**
165
+ * Create a standalone platform card handler
166
+ */
167
+ export declare function createPlatformCardHandler(discoveryService: DiscoveryService, options?: {
168
+ cacheSeconds?: number;
169
+ enableCors?: boolean;
170
+ }): HttpHandler;
171
+ /**
172
+ * Create a standalone agent card handler
173
+ */
174
+ export declare function createAgentCardHandler(discoveryService: DiscoveryService, options?: {
175
+ cacheSeconds?: number;
176
+ enableCors?: boolean;
177
+ }): HttpHandler;
178
+ /**
179
+ * Create a standalone extended card handler
180
+ */
181
+ export declare function createExtendedCardHandler(discoveryService: DiscoveryService, authMiddleware: HttpHandler, options?: {
182
+ enableCors?: boolean;
183
+ }): HttpHandler[];
184
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,453 @@
1
+ /**
2
+ * A2A Discovery Routes
3
+ *
4
+ * Express-compatible route handlers for RFC 8615 well-known URI agent discovery.
5
+ * Provides endpoints for platform and individual agent card discovery.
6
+ *
7
+ * NOTE: This module exports handler factories that work with Express or any
8
+ * compatible HTTP framework. Express itself is not bundled - consumers must
9
+ * provide their own Express installation.
10
+ *
11
+ * @module adapters/a2a/discovery/routes
12
+ * @see https://tools.ietf.org/html/rfc8615
13
+ */
14
+ // ============================================================================
15
+ // Default Configuration
16
+ // ============================================================================
17
+ /**
18
+ * Default route configuration
19
+ */
20
+ export const DEFAULT_ROUTES_CONFIG = {
21
+ defaultCacheSeconds: 3600, // 1 hour
22
+ enableCors: true,
23
+ };
24
+ // ============================================================================
25
+ // Error Response Helpers
26
+ // ============================================================================
27
+ /**
28
+ * Create an A2A-formatted error response for agent not found
29
+ */
30
+ export function createAgentNotFoundResponse(agentId) {
31
+ return {
32
+ error: {
33
+ code: -32001,
34
+ message: 'Agent not found',
35
+ data: { agentId },
36
+ },
37
+ };
38
+ }
39
+ /**
40
+ * Create an A2A-formatted error response for authentication required
41
+ */
42
+ export function createAuthRequiredResponse() {
43
+ return {
44
+ error: {
45
+ code: -32020,
46
+ message: 'Authentication required for extended agent card',
47
+ },
48
+ };
49
+ }
50
+ /**
51
+ * Create an A2A-formatted error response for internal errors
52
+ */
53
+ export function createInternalErrorResponse(message) {
54
+ return {
55
+ error: {
56
+ code: -32603,
57
+ message: message ?? 'Internal error',
58
+ },
59
+ };
60
+ }
61
+ // ============================================================================
62
+ // Route Handlers
63
+ // ============================================================================
64
+ /**
65
+ * Create discovery route handlers
66
+ */
67
+ function createRouteHandlers(config) {
68
+ const { discoveryService, defaultCacheSeconds, enableCors } = config;
69
+ /**
70
+ * Set common response headers
71
+ */
72
+ function setCommonHeaders(res, etag) {
73
+ res.setHeader('Content-Type', 'application/json');
74
+ res.setHeader('Cache-Control', `public, max-age=${defaultCacheSeconds}`);
75
+ if (etag) {
76
+ res.setHeader('ETag', etag);
77
+ }
78
+ if (enableCors) {
79
+ res.setHeader('Access-Control-Allow-Origin', '*');
80
+ res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
81
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
82
+ }
83
+ }
84
+ /**
85
+ * Handle conditional GET (If-None-Match)
86
+ */
87
+ function handleConditionalGet(req, res, currentEtag) {
88
+ const ifNoneMatch = req.header('If-None-Match');
89
+ if (ifNoneMatch && currentEtag && ifNoneMatch === currentEtag) {
90
+ res.status(304).end();
91
+ return true;
92
+ }
93
+ return false;
94
+ }
95
+ return {
96
+ /**
97
+ * GET /.well-known/agent.json
98
+ * Returns the aggregate platform card
99
+ */
100
+ async getPlatformCard(req, res) {
101
+ try {
102
+ // Check conditional GET
103
+ const etag = discoveryService.getPlatformCardEtag();
104
+ if (handleConditionalGet(req, res, etag)) {
105
+ return;
106
+ }
107
+ const card = await discoveryService.getPlatformCard();
108
+ const newEtag = discoveryService.getPlatformCardEtag();
109
+ setCommonHeaders(res, newEtag);
110
+ res.json(card);
111
+ }
112
+ catch (error) {
113
+ res.status(500).json(createInternalErrorResponse());
114
+ }
115
+ },
116
+ /**
117
+ * GET /a2a/:agentId/.well-known/agent.json
118
+ * Returns an individual agent card
119
+ */
120
+ async getAgentCard(req, res) {
121
+ try {
122
+ const { agentId } = req.params;
123
+ const extended = req.query.extended === 'true';
124
+ // If extended is requested, check authentication
125
+ if (extended) {
126
+ const authReq = req;
127
+ if (!authReq.user) {
128
+ res.status(401).json(createAuthRequiredResponse());
129
+ return;
130
+ }
131
+ }
132
+ // Check conditional GET
133
+ const etag = discoveryService.getAgentCardEtag(agentId);
134
+ if (!extended && handleConditionalGet(req, res, etag)) {
135
+ return;
136
+ }
137
+ // Get the appropriate card type
138
+ const card = extended
139
+ ? await discoveryService.getExtendedAgentCard(agentId)
140
+ : await discoveryService.getAgentCard(agentId);
141
+ if (!card) {
142
+ res.status(404).json(createAgentNotFoundResponse(agentId));
143
+ return;
144
+ }
145
+ // For extended cards, don't cache as aggressively
146
+ if (extended) {
147
+ res.setHeader('Content-Type', 'application/json');
148
+ res.setHeader('Cache-Control', 'private, max-age=60');
149
+ }
150
+ else {
151
+ const newEtag = discoveryService.getAgentCardEtag(agentId);
152
+ setCommonHeaders(res, newEtag);
153
+ }
154
+ res.json(card);
155
+ }
156
+ catch (error) {
157
+ res.status(500).json(createInternalErrorResponse());
158
+ }
159
+ },
160
+ /**
161
+ * GET /a2a/agents
162
+ * Search for agents with optional filters
163
+ */
164
+ async searchAgents(req, res) {
165
+ try {
166
+ const criteria = {
167
+ capability: req.query.capability,
168
+ skill: req.query.skill,
169
+ tag: req.query.tag,
170
+ domain: req.query.domain,
171
+ streaming: req.query.streaming !== undefined
172
+ ? req.query.streaming === 'true'
173
+ : undefined,
174
+ limit: req.query.limit ? parseInt(req.query.limit, 10) : undefined,
175
+ };
176
+ const result = await discoveryService.search(criteria);
177
+ setCommonHeaders(res);
178
+ res.json({
179
+ agents: result.agents.map((a) => ({
180
+ name: a.name,
181
+ description: a.description,
182
+ url: a.url,
183
+ version: a.version,
184
+ skills: a.skills.map((s) => s.id),
185
+ })),
186
+ total: result.total,
187
+ criteria: result.criteria,
188
+ });
189
+ }
190
+ catch (error) {
191
+ res.status(500).json(createInternalErrorResponse());
192
+ }
193
+ },
194
+ /**
195
+ * GET /a2a/agents/:agentId
196
+ * Alias for individual agent card (without .well-known path)
197
+ */
198
+ async getAgentCardAlias(req, res) {
199
+ return this.getAgentCard(req, res);
200
+ },
201
+ /**
202
+ * OPTIONS handler for CORS preflight
203
+ */
204
+ handleOptions(req, res) {
205
+ if (enableCors) {
206
+ res.setHeader('Access-Control-Allow-Origin', '*');
207
+ res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
208
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
209
+ res.setHeader('Access-Control-Max-Age', '86400');
210
+ }
211
+ res.status(204).end();
212
+ },
213
+ };
214
+ }
215
+ // ============================================================================
216
+ // Middleware Helpers
217
+ // ============================================================================
218
+ /**
219
+ * Default auth middleware (no-op)
220
+ */
221
+ function defaultAuthMiddleware(req, res, next) {
222
+ if (next)
223
+ next();
224
+ }
225
+ /**
226
+ * Conditional authentication middleware
227
+ *
228
+ * Only applies auth middleware if extended=true query parameter is present
229
+ */
230
+ function createConditionalAuth(authMiddleware) {
231
+ return (req, res, next) => {
232
+ if (req.query.extended === 'true' && authMiddleware) {
233
+ authMiddleware(req, res, next);
234
+ }
235
+ else {
236
+ if (next)
237
+ next();
238
+ }
239
+ };
240
+ }
241
+ // ============================================================================
242
+ // Route Factory (Framework-agnostic)
243
+ // ============================================================================
244
+ /**
245
+ * Get route definitions for A2A agent discovery
246
+ *
247
+ * Returns an array of route definitions that can be used to setup routes
248
+ * in Express or any compatible HTTP framework.
249
+ *
250
+ * @param config - Route configuration
251
+ * @returns Array of route definitions
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * const routeDefs = getDiscoveryRouteDefinitions({
256
+ * discoveryService,
257
+ * authMiddleware: verifyToken,
258
+ * });
259
+ *
260
+ * // Setup in Express
261
+ * for (const route of routeDefs) {
262
+ * app[route.method](route.path, ...route.handlers);
263
+ * }
264
+ * ```
265
+ */
266
+ export function getDiscoveryRouteDefinitions(config) {
267
+ const fullConfig = {
268
+ authMiddleware: config.authMiddleware ?? defaultAuthMiddleware,
269
+ ...DEFAULT_ROUTES_CONFIG,
270
+ ...config,
271
+ };
272
+ const handlers = createRouteHandlers(fullConfig);
273
+ const conditionalAuth = createConditionalAuth(fullConfig.authMiddleware);
274
+ return [
275
+ // CORS preflight
276
+ {
277
+ method: 'options',
278
+ path: '/.well-known/agent.json',
279
+ handlers: [handlers.handleOptions.bind(handlers)],
280
+ },
281
+ {
282
+ method: 'options',
283
+ path: '/a2a/:agentId/.well-known/agent.json',
284
+ handlers: [handlers.handleOptions.bind(handlers)],
285
+ },
286
+ {
287
+ method: 'options',
288
+ path: '/a2a/agents',
289
+ handlers: [handlers.handleOptions.bind(handlers)],
290
+ },
291
+ {
292
+ method: 'options',
293
+ path: '/a2a/agents/:agentId',
294
+ handlers: [handlers.handleOptions.bind(handlers)],
295
+ },
296
+ // Platform card
297
+ {
298
+ method: 'get',
299
+ path: '/.well-known/agent.json',
300
+ handlers: [handlers.getPlatformCard.bind(handlers)],
301
+ },
302
+ // Individual agent card (with optional extended)
303
+ {
304
+ method: 'get',
305
+ path: '/a2a/:agentId/.well-known/agent.json',
306
+ handlers: [conditionalAuth, handlers.getAgentCard.bind(handlers)],
307
+ },
308
+ // Search agents
309
+ {
310
+ method: 'get',
311
+ path: '/a2a/agents',
312
+ handlers: [handlers.searchAgents.bind(handlers)],
313
+ },
314
+ // Alias for agent card
315
+ {
316
+ method: 'get',
317
+ path: '/a2a/agents/:agentId',
318
+ handlers: [conditionalAuth, handlers.getAgentCardAlias.bind(handlers)],
319
+ },
320
+ ];
321
+ }
322
+ /**
323
+ * Create Express routes for A2A agent discovery
324
+ *
325
+ * NOTE: This function requires Express to be installed separately.
326
+ * If Express is not available, use getDiscoveryRouteDefinitions() instead.
327
+ *
328
+ * Registers the following endpoints:
329
+ * - GET /.well-known/agent.json - Platform aggregate card
330
+ * - GET /a2a/:agentId/.well-known/agent.json - Individual agent card
331
+ * - GET /a2a/:agentId/.well-known/agent.json?extended=true - Extended agent card (auth required)
332
+ * - GET /a2a/agents - Search/list agents
333
+ * - GET /a2a/agents/:agentId - Alias for individual agent card
334
+ *
335
+ * @param config - Route configuration
336
+ * @returns Express router (requires express to be installed)
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * import express from 'express';
341
+ * import { createDiscoveryRoutes } from '@agentic-qe/v3';
342
+ *
343
+ * const app = express();
344
+ * const routes = createDiscoveryRoutes({
345
+ * discoveryService,
346
+ * authMiddleware: verifyToken,
347
+ * });
348
+ *
349
+ * app.use(routes);
350
+ * ```
351
+ */
352
+ export function createDiscoveryRoutes(config) {
353
+ // Dynamically import express - this allows the module to be loaded
354
+ // even when express is not installed
355
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
356
+ const express = require('express');
357
+ const router = express.Router();
358
+ const routeDefs = getDiscoveryRouteDefinitions(config);
359
+ for (const route of routeDefs) {
360
+ router[route.method](route.path, ...route.handlers);
361
+ }
362
+ return router;
363
+ }
364
+ // ============================================================================
365
+ // Standalone Route Functions (for custom router setup)
366
+ // ============================================================================
367
+ /**
368
+ * Create a standalone platform card handler
369
+ */
370
+ export function createPlatformCardHandler(discoveryService, options = {}) {
371
+ const { cacheSeconds = 3600, enableCors = true } = options;
372
+ return async (req, res) => {
373
+ try {
374
+ const card = await discoveryService.getPlatformCard();
375
+ const etag = discoveryService.getPlatformCardEtag();
376
+ res.setHeader('Content-Type', 'application/json');
377
+ res.setHeader('Cache-Control', `public, max-age=${cacheSeconds}`);
378
+ if (etag) {
379
+ res.setHeader('ETag', etag);
380
+ }
381
+ if (enableCors) {
382
+ res.setHeader('Access-Control-Allow-Origin', '*');
383
+ }
384
+ res.json(card);
385
+ }
386
+ catch (error) {
387
+ res.status(500).json(createInternalErrorResponse());
388
+ }
389
+ };
390
+ }
391
+ /**
392
+ * Create a standalone agent card handler
393
+ */
394
+ export function createAgentCardHandler(discoveryService, options = {}) {
395
+ const { cacheSeconds = 3600, enableCors = true } = options;
396
+ return async (req, res) => {
397
+ try {
398
+ const { agentId } = req.params;
399
+ const card = await discoveryService.getAgentCard(agentId);
400
+ if (!card) {
401
+ res.status(404).json(createAgentNotFoundResponse(agentId));
402
+ return;
403
+ }
404
+ const etag = discoveryService.getAgentCardEtag(agentId);
405
+ res.setHeader('Content-Type', 'application/json');
406
+ res.setHeader('Cache-Control', `public, max-age=${cacheSeconds}`);
407
+ if (etag) {
408
+ res.setHeader('ETag', etag);
409
+ }
410
+ if (enableCors) {
411
+ res.setHeader('Access-Control-Allow-Origin', '*');
412
+ }
413
+ res.json(card);
414
+ }
415
+ catch (error) {
416
+ res.status(500).json(createInternalErrorResponse());
417
+ }
418
+ };
419
+ }
420
+ /**
421
+ * Create a standalone extended card handler
422
+ */
423
+ export function createExtendedCardHandler(discoveryService, authMiddleware, options = {}) {
424
+ const { enableCors = true } = options;
425
+ return [
426
+ authMiddleware,
427
+ async (req, res) => {
428
+ try {
429
+ const { agentId } = req.params;
430
+ const authReq = req;
431
+ if (!authReq.user) {
432
+ res.status(401).json(createAuthRequiredResponse());
433
+ return;
434
+ }
435
+ const card = await discoveryService.getExtendedAgentCard(agentId);
436
+ if (!card) {
437
+ res.status(404).json(createAgentNotFoundResponse(agentId));
438
+ return;
439
+ }
440
+ res.setHeader('Content-Type', 'application/json');
441
+ res.setHeader('Cache-Control', 'private, max-age=60');
442
+ if (enableCors) {
443
+ res.setHeader('Access-Control-Allow-Origin', '*');
444
+ }
445
+ res.json(card);
446
+ }
447
+ catch (error) {
448
+ res.status(500).json(createInternalErrorResponse());
449
+ }
450
+ },
451
+ ];
452
+ }
453
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/discovery/routes.ts"],"names":[],"mappings":"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"}