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,153 @@
1
+ /**
2
+ * A2A Agent Card Generator
3
+ *
4
+ * Parses agent markdown files and generates A2A v0.3 compatible Agent Cards.
5
+ * Supports batch generation for all QE agents.
6
+ *
7
+ * @module adapters/a2a/agent-cards/generator
8
+ */
9
+ import { AgentSkill, QEAgentCard, AgentCapabilities, AgentProvider, InputMode, OutputMode } from './schema.js';
10
+ /**
11
+ * Configuration for the Agent Card Generator
12
+ */
13
+ export interface AgentCardGeneratorConfig {
14
+ /** Base URL for agent endpoints */
15
+ readonly baseUrl: string;
16
+ /** Default agent version if not specified in markdown */
17
+ readonly defaultVersion?: string;
18
+ /** Default provider information */
19
+ readonly provider?: AgentProvider;
20
+ /** Default capabilities */
21
+ readonly defaultCapabilities?: AgentCapabilities;
22
+ /** Default input modes */
23
+ readonly defaultInputModes?: InputMode[];
24
+ /** Default output modes */
25
+ readonly defaultOutputModes?: OutputMode[];
26
+ /** Whether to include QE-specific metadata */
27
+ readonly includeQEMetadata?: boolean;
28
+ /** Custom skill extractor function */
29
+ readonly skillExtractor?: (markdown: string, parsedData: ParsedAgentMarkdown) => AgentSkill[];
30
+ /** Custom tag extractor function */
31
+ readonly tagExtractor?: (markdown: string, parsedData: ParsedAgentMarkdown) => string[];
32
+ }
33
+ /**
34
+ * Default generator configuration
35
+ */
36
+ export declare const DEFAULT_GENERATOR_CONFIG: Required<AgentCardGeneratorConfig>;
37
+ /**
38
+ * YAML frontmatter data from agent markdown
39
+ */
40
+ export interface AgentFrontmatter {
41
+ readonly name?: string;
42
+ readonly version?: string;
43
+ readonly updated?: string;
44
+ readonly description?: string;
45
+ readonly domain?: string;
46
+ readonly v2_compat?: {
47
+ readonly name?: string;
48
+ readonly deprecated_in?: string;
49
+ readonly removed_in?: string;
50
+ } | string;
51
+ }
52
+ /**
53
+ * Parsed agent markdown data
54
+ */
55
+ export interface ParsedAgentMarkdown {
56
+ /** Frontmatter data */
57
+ readonly frontmatter: AgentFrontmatter;
58
+ /** Agent identity section */
59
+ readonly identity?: string;
60
+ /** Capabilities section */
61
+ readonly capabilities?: string;
62
+ /** Implementation status section */
63
+ readonly implementationStatus?: string;
64
+ /** Skills available section */
65
+ readonly skillsAvailable?: string;
66
+ /** Memory namespace section */
67
+ readonly memoryNamespace?: string;
68
+ /** Examples section */
69
+ readonly examples?: string;
70
+ /** Output format section */
71
+ readonly outputFormat?: string;
72
+ /** Coordination notes section */
73
+ readonly coordinationNotes?: string;
74
+ /** Learning protocol section */
75
+ readonly learningProtocol?: string;
76
+ /** Raw markdown content */
77
+ readonly rawContent: string;
78
+ }
79
+ /**
80
+ * Result from generating agent cards
81
+ */
82
+ export interface GenerationResult {
83
+ /** Successfully generated cards */
84
+ readonly cards: Map<string, QEAgentCard>;
85
+ /** Errors encountered during generation */
86
+ readonly errors: Map<string, Error>;
87
+ /** Statistics about the generation */
88
+ readonly stats: {
89
+ readonly total: number;
90
+ readonly success: number;
91
+ readonly failed: number;
92
+ readonly duration: number;
93
+ };
94
+ }
95
+ /**
96
+ * Parse YAML frontmatter from markdown content
97
+ */
98
+ export declare function parseFrontmatter(markdown: string): AgentFrontmatter;
99
+ /**
100
+ * Extract a section from markdown by header name
101
+ */
102
+ export declare function extractSection(markdown: string, sectionName: string): string | undefined;
103
+ /**
104
+ * Parse agent markdown file content
105
+ */
106
+ export declare function parseAgentMarkdown(markdown: string): ParsedAgentMarkdown;
107
+ /**
108
+ * Extract examples from markdown content
109
+ */
110
+ export declare function extractExamples(markdown: string, parsed: ParsedAgentMarkdown): string[];
111
+ /**
112
+ * Extract memory namespaces from markdown
113
+ */
114
+ export declare function extractMemoryNamespaces(markdown: string, parsed: ParsedAgentMarkdown): {
115
+ reads: string[];
116
+ writes: string[];
117
+ };
118
+ /**
119
+ * Extract implementation status from markdown
120
+ */
121
+ export declare function extractImplementationStatus(markdown: string, parsed: ParsedAgentMarkdown): {
122
+ working: string[];
123
+ partial: string[];
124
+ planned: string[];
125
+ };
126
+ /**
127
+ * Generator for A2A Agent Cards from agent markdown files
128
+ */
129
+ export declare class AgentCardGenerator {
130
+ private readonly config;
131
+ constructor(config?: Partial<AgentCardGeneratorConfig>);
132
+ /**
133
+ * Generate an agent card from markdown content
134
+ */
135
+ generateFromMarkdown(markdown: string, agentId?: string): QEAgentCard;
136
+ /**
137
+ * Generate an agent card from a markdown file path
138
+ */
139
+ generateFromFile(filePath: string): Promise<QEAgentCard>;
140
+ /**
141
+ * Generate cards for all agent markdown files in a directory
142
+ */
143
+ generateFromDirectory(directoryPath: string, recursive?: boolean): Promise<GenerationResult>;
144
+ /**
145
+ * Generate cards for all 68 QE agents
146
+ */
147
+ generateAllCards(agentsBasePath: string): Promise<GenerationResult>;
148
+ }
149
+ /**
150
+ * Create an Agent Card Generator instance
151
+ */
152
+ export declare function createAgentCardGenerator(config?: Partial<AgentCardGeneratorConfig>): AgentCardGenerator;
153
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2a/agent-cards/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,478 @@
1
+ /**
2
+ * A2A Agent Card Generator
3
+ *
4
+ * Parses agent markdown files and generates A2A v0.3 compatible Agent Cards.
5
+ * Supports batch generation for all QE agents.
6
+ *
7
+ * @module adapters/a2a/agent-cards/generator
8
+ */
9
+ import { readFile, readdir, stat } from 'fs/promises';
10
+ import { join, basename } from 'path';
11
+ import { DEFAULT_CAPABILITIES, DEFAULT_INPUT_MODES, DEFAULT_OUTPUT_MODES, DEFAULT_QE_PROVIDER, createAgentSkill, createQEAgentCard, } from './schema.js';
12
+ /**
13
+ * Default generator configuration
14
+ */
15
+ export const DEFAULT_GENERATOR_CONFIG = {
16
+ baseUrl: 'http://localhost:8080',
17
+ defaultVersion: '3.0.0',
18
+ provider: DEFAULT_QE_PROVIDER,
19
+ defaultCapabilities: DEFAULT_CAPABILITIES,
20
+ defaultInputModes: DEFAULT_INPUT_MODES,
21
+ defaultOutputModes: DEFAULT_OUTPUT_MODES,
22
+ includeQEMetadata: true,
23
+ skillExtractor: defaultSkillExtractor,
24
+ tagExtractor: defaultTagExtractor,
25
+ };
26
+ // ============================================================================
27
+ // Markdown Parsing
28
+ // ============================================================================
29
+ /**
30
+ * Parse YAML frontmatter from markdown content
31
+ */
32
+ export function parseFrontmatter(markdown) {
33
+ const frontmatterMatch = markdown.match(/^---\n([\s\S]*?)\n---/);
34
+ if (!frontmatterMatch) {
35
+ return {};
36
+ }
37
+ const frontmatterText = frontmatterMatch[1];
38
+ const result = {};
39
+ // Simple YAML parser for common patterns
40
+ const lines = frontmatterText.split('\n');
41
+ let currentKey = '';
42
+ let indentLevel = 0;
43
+ let nestedObj = {};
44
+ for (const line of lines) {
45
+ // Skip empty lines
46
+ if (line.trim() === '')
47
+ continue;
48
+ // Check indent level
49
+ const leadingSpaces = line.match(/^(\s*)/)?.[1].length ?? 0;
50
+ // Parse key-value pairs
51
+ const keyValueMatch = line.match(/^(\s*)(\w+):\s*(.*)$/);
52
+ if (keyValueMatch) {
53
+ const [, indent, key, value] = keyValueMatch;
54
+ const currentIndent = indent.length;
55
+ if (currentIndent === 0) {
56
+ // Top-level key
57
+ if (currentKey && indentLevel > 0) {
58
+ result[currentKey] = nestedObj;
59
+ nestedObj = {};
60
+ }
61
+ currentKey = key;
62
+ indentLevel = 0;
63
+ if (value.trim()) {
64
+ // Clean up quoted values
65
+ result[key] = value.replace(/^["']|["']$/g, '');
66
+ }
67
+ }
68
+ else if (currentIndent > 0 && currentKey) {
69
+ // Nested key
70
+ indentLevel = currentIndent;
71
+ if (value.trim()) {
72
+ nestedObj[key] = value.replace(/^["']|["']$/g, '');
73
+ }
74
+ }
75
+ }
76
+ }
77
+ // Don't forget the last nested object
78
+ if (currentKey && Object.keys(nestedObj).length > 0) {
79
+ result[currentKey] = nestedObj;
80
+ }
81
+ return result;
82
+ }
83
+ /**
84
+ * Extract a section from markdown by header name
85
+ */
86
+ export function extractSection(markdown, sectionName) {
87
+ // Try XML-style tags first (used in agent definitions)
88
+ const xmlTagPattern = new RegExp(`<${sectionName}>([\\s\\S]*?)</${sectionName}>`, 'i');
89
+ const xmlMatch = markdown.match(xmlTagPattern);
90
+ if (xmlMatch) {
91
+ return xmlMatch[1].trim();
92
+ }
93
+ // Try markdown headers
94
+ const headerPattern = new RegExp(`(?:^|\\n)##?\\s*${sectionName}[\\s\\S]*?\\n([\\s\\S]*?)(?=\\n##|$)`, 'i');
95
+ const headerMatch = markdown.match(headerPattern);
96
+ if (headerMatch) {
97
+ return headerMatch[1].trim();
98
+ }
99
+ return undefined;
100
+ }
101
+ /**
102
+ * Parse agent markdown file content
103
+ */
104
+ export function parseAgentMarkdown(markdown) {
105
+ const frontmatter = parseFrontmatter(markdown);
106
+ return {
107
+ frontmatter,
108
+ identity: extractSection(markdown, 'identity'),
109
+ capabilities: extractSection(markdown, 'capabilities'),
110
+ implementationStatus: extractSection(markdown, 'implementation_status'),
111
+ skillsAvailable: extractSection(markdown, 'skills_available'),
112
+ memoryNamespace: extractSection(markdown, 'memory_namespace'),
113
+ examples: extractSection(markdown, 'examples'),
114
+ outputFormat: extractSection(markdown, 'output_format'),
115
+ coordinationNotes: extractSection(markdown, 'coordination_notes'),
116
+ learningProtocol: extractSection(markdown, 'learning_protocol'),
117
+ rawContent: markdown,
118
+ };
119
+ }
120
+ // ============================================================================
121
+ // Skill Extraction
122
+ // ============================================================================
123
+ /**
124
+ * Default skill extractor from markdown content
125
+ */
126
+ function defaultSkillExtractor(markdown, parsed) {
127
+ const skills = [];
128
+ // Extract capabilities section
129
+ const capabilitiesSection = parsed.capabilities ?? '';
130
+ // Parse bullet points as skills
131
+ const bulletPattern = /-\s*\*\*([^*]+)\*\*:\s*([^\n]+)/g;
132
+ let match;
133
+ while ((match = bulletPattern.exec(capabilitiesSection)) !== null) {
134
+ const [, name, description] = match;
135
+ const id = name
136
+ .toLowerCase()
137
+ .replace(/[^a-z0-9]+/g, '-')
138
+ .replace(/^-|-$/g, '');
139
+ skills.push(createAgentSkill(id, name.trim(), description.trim(), {
140
+ tags: extractSkillTags(name, description, parsed.frontmatter.domain),
141
+ }));
142
+ }
143
+ // If no skills found from capabilities section, try skills_available section
144
+ if (skills.length === 0 && parsed.skillsAvailable) {
145
+ const skillLines = parsed.skillsAvailable.split('\n');
146
+ for (const line of skillLines) {
147
+ const skillMatch = line.match(/-\s*([^:]+):\s*(.+)/);
148
+ if (skillMatch) {
149
+ const [, name, description] = skillMatch;
150
+ const id = name
151
+ .toLowerCase()
152
+ .replace(/[^a-z0-9]+/g, '-')
153
+ .replace(/^-|-$/g, '');
154
+ skills.push(createAgentSkill(id, name.trim(), description.trim(), {
155
+ tags: extractSkillTags(name, description, parsed.frontmatter.domain),
156
+ }));
157
+ }
158
+ }
159
+ }
160
+ // Generate a primary skill from the agent's main purpose if no skills found
161
+ if (skills.length === 0 && parsed.frontmatter.name && parsed.frontmatter.description) {
162
+ // Remove qe- prefix to get the skill ID (e.g., "qe-test-architect" -> "test-architect")
163
+ const primaryId = parsed.frontmatter.name.replace(/^qe-/, '');
164
+ skills.push(createAgentSkill(primaryId, formatSkillName(parsed.frontmatter.name), parsed.frontmatter.description, {
165
+ tags: extractSkillTags(parsed.frontmatter.name, parsed.frontmatter.description, parsed.frontmatter.domain),
166
+ }));
167
+ }
168
+ return skills;
169
+ }
170
+ /**
171
+ * Extract tags from skill name and description
172
+ */
173
+ function extractSkillTags(name, description, domain) {
174
+ const tags = [];
175
+ // Add domain as tag
176
+ if (domain) {
177
+ tags.push(domain);
178
+ }
179
+ // Extract common keywords
180
+ const keywords = [
181
+ 'test', 'testing', 'security', 'coverage', 'performance', 'accessibility',
182
+ 'generation', 'analysis', 'scanning', 'validation', 'ai', 'ml', 'learning',
183
+ 'quality', 'automation', 'integration', 'e2e', 'unit', 'api', 'tdd', 'bdd',
184
+ 'mutation', 'flaky', 'chaos', 'resilience', 'compliance', 'owasp', 'wcag',
185
+ ];
186
+ const combinedText = `${name} ${description}`.toLowerCase();
187
+ for (const keyword of keywords) {
188
+ if (combinedText.includes(keyword) && !tags.includes(keyword)) {
189
+ tags.push(keyword);
190
+ }
191
+ }
192
+ return tags;
193
+ }
194
+ /**
195
+ * Format agent name to human-readable skill name
196
+ */
197
+ function formatSkillName(agentName) {
198
+ return agentName
199
+ .replace(/^qe-/, '')
200
+ .split('-')
201
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
202
+ .join(' ');
203
+ }
204
+ /**
205
+ * Default tag extractor
206
+ */
207
+ function defaultTagExtractor(markdown, parsed) {
208
+ const tags = [];
209
+ // Add domain
210
+ if (parsed.frontmatter.domain) {
211
+ tags.push(parsed.frontmatter.domain);
212
+ }
213
+ // Extract from skills
214
+ const skills = defaultSkillExtractor(markdown, parsed);
215
+ for (const skill of skills) {
216
+ if (skill.tags) {
217
+ for (const tag of skill.tags) {
218
+ if (!tags.includes(tag)) {
219
+ tags.push(tag);
220
+ }
221
+ }
222
+ }
223
+ }
224
+ return tags;
225
+ }
226
+ // ============================================================================
227
+ // Example Extraction
228
+ // ============================================================================
229
+ /**
230
+ * Extract examples from markdown content
231
+ */
232
+ export function extractExamples(markdown, parsed) {
233
+ const examples = [];
234
+ // Try examples section
235
+ if (parsed.examples) {
236
+ // Extract code blocks
237
+ const codeBlockPattern = /```[\s\S]*?Input:\s*([^\n]+)/g;
238
+ let match;
239
+ while ((match = codeBlockPattern.exec(parsed.examples)) !== null) {
240
+ examples.push(match[1].trim());
241
+ }
242
+ // Extract quoted examples
243
+ const quotedPattern = /-\s*"([^"]+)"/g;
244
+ while ((match = quotedPattern.exec(parsed.examples)) !== null) {
245
+ examples.push(match[1].trim());
246
+ }
247
+ }
248
+ // Try skills_available section
249
+ if (parsed.skillsAvailable) {
250
+ const quotedPattern = /-\s*"([^"]+)"/g;
251
+ let match;
252
+ while ((match = quotedPattern.exec(parsed.skillsAvailable)) !== null) {
253
+ if (!examples.includes(match[1])) {
254
+ examples.push(match[1].trim());
255
+ }
256
+ }
257
+ }
258
+ return examples;
259
+ }
260
+ // ============================================================================
261
+ // Memory Namespace Extraction
262
+ // ============================================================================
263
+ /**
264
+ * Extract memory namespaces from markdown
265
+ */
266
+ export function extractMemoryNamespaces(markdown, parsed) {
267
+ const reads = [];
268
+ const writes = [];
269
+ if (!parsed.memoryNamespace) {
270
+ return { reads, writes };
271
+ }
272
+ const lines = parsed.memoryNamespace.split('\n');
273
+ let currentSection = null;
274
+ for (const line of lines) {
275
+ const trimmed = line.trim();
276
+ if (trimmed.toLowerCase().startsWith('reads:')) {
277
+ currentSection = 'reads';
278
+ }
279
+ else if (trimmed.toLowerCase().startsWith('writes:')) {
280
+ currentSection = 'writes';
281
+ }
282
+ else if (trimmed.startsWith('-')) {
283
+ const namespace = trimmed.replace(/^-\s*/, '').split(' ')[0];
284
+ if (currentSection === 'reads') {
285
+ reads.push(namespace);
286
+ }
287
+ else if (currentSection === 'writes') {
288
+ writes.push(namespace);
289
+ }
290
+ }
291
+ }
292
+ return { reads, writes };
293
+ }
294
+ // ============================================================================
295
+ // Implementation Status Extraction
296
+ // ============================================================================
297
+ /**
298
+ * Extract implementation status from markdown
299
+ */
300
+ export function extractImplementationStatus(markdown, parsed) {
301
+ const working = [];
302
+ const partial = [];
303
+ const planned = [];
304
+ if (!parsed.implementationStatus) {
305
+ return { working, partial, planned };
306
+ }
307
+ const lines = parsed.implementationStatus.split('\n');
308
+ let currentSection = null;
309
+ for (const line of lines) {
310
+ const trimmed = line.trim();
311
+ if (trimmed.toLowerCase().startsWith('working:')) {
312
+ currentSection = 'working';
313
+ }
314
+ else if (trimmed.toLowerCase().startsWith('partial:')) {
315
+ currentSection = 'partial';
316
+ }
317
+ else if (trimmed.toLowerCase().startsWith('planned:')) {
318
+ currentSection = 'planned';
319
+ }
320
+ else if (trimmed.startsWith('-')) {
321
+ const item = trimmed.replace(/^-\s*/, '');
322
+ if (currentSection === 'working') {
323
+ working.push(item);
324
+ }
325
+ else if (currentSection === 'partial') {
326
+ partial.push(item);
327
+ }
328
+ else if (currentSection === 'planned') {
329
+ planned.push(item);
330
+ }
331
+ }
332
+ }
333
+ return { working, partial, planned };
334
+ }
335
+ // ============================================================================
336
+ // Agent Card Generator Class
337
+ // ============================================================================
338
+ /**
339
+ * Generator for A2A Agent Cards from agent markdown files
340
+ */
341
+ export class AgentCardGenerator {
342
+ config;
343
+ constructor(config = {}) {
344
+ this.config = {
345
+ ...DEFAULT_GENERATOR_CONFIG,
346
+ ...config,
347
+ };
348
+ }
349
+ /**
350
+ * Generate an agent card from markdown content
351
+ */
352
+ generateFromMarkdown(markdown, agentId) {
353
+ const parsed = parseAgentMarkdown(markdown);
354
+ const frontmatter = parsed.frontmatter;
355
+ // Determine agent name
356
+ const name = frontmatter.name ?? agentId ?? 'unknown-agent';
357
+ // Extract description
358
+ let description = frontmatter.description ?? '';
359
+ if (!description && parsed.identity) {
360
+ // Try to extract from identity section
361
+ const missionMatch = parsed.identity.match(/Mission:\s*([^\n]+)/);
362
+ if (missionMatch) {
363
+ description = missionMatch[1].trim();
364
+ }
365
+ }
366
+ // Extract skills
367
+ const skills = this.config.skillExtractor(markdown, parsed);
368
+ // Add examples to skills
369
+ const examples = extractExamples(markdown, parsed);
370
+ if (examples.length > 0 && skills.length > 0) {
371
+ // Add examples to the first (primary) skill
372
+ const primarySkill = skills[0];
373
+ skills[0] = {
374
+ ...primarySkill,
375
+ examples: [...(primarySkill.examples ?? []), ...examples],
376
+ };
377
+ }
378
+ // Extract memory namespaces
379
+ const memoryNamespaces = extractMemoryNamespaces(markdown, parsed);
380
+ // Extract implementation status
381
+ const implementationStatus = extractImplementationStatus(markdown, parsed);
382
+ // Extract v2 compatibility
383
+ let v2Compat;
384
+ if (frontmatter.v2_compat) {
385
+ if (typeof frontmatter.v2_compat === 'string') {
386
+ v2Compat = { name: frontmatter.v2_compat };
387
+ }
388
+ else {
389
+ v2Compat = {
390
+ name: frontmatter.v2_compat.name,
391
+ deprecatedIn: frontmatter.v2_compat.deprecated_in,
392
+ removedIn: frontmatter.v2_compat.removed_in,
393
+ };
394
+ }
395
+ }
396
+ // Build QE metadata
397
+ const qeMetadata = this.config.includeQEMetadata
398
+ ? {
399
+ domain: frontmatter.domain,
400
+ v2Compatibility: v2Compat,
401
+ memoryReads: memoryNamespaces.reads,
402
+ memoryWrites: memoryNamespaces.writes,
403
+ implementationStatus,
404
+ }
405
+ : undefined;
406
+ // Build the agent card
407
+ return createQEAgentCard(name, description, `${this.config.baseUrl}/a2a/${name}`, frontmatter.version ?? this.config.defaultVersion, skills, qeMetadata, {
408
+ provider: this.config.provider,
409
+ capabilities: this.config.defaultCapabilities,
410
+ defaultInputModes: this.config.defaultInputModes,
411
+ defaultOutputModes: this.config.defaultOutputModes,
412
+ supportsAuthenticatedExtendedCard: true,
413
+ });
414
+ }
415
+ /**
416
+ * Generate an agent card from a markdown file path
417
+ */
418
+ async generateFromFile(filePath) {
419
+ const markdown = await readFile(filePath, 'utf-8');
420
+ const agentId = basename(filePath, '.md');
421
+ return this.generateFromMarkdown(markdown, agentId);
422
+ }
423
+ /**
424
+ * Generate cards for all agent markdown files in a directory
425
+ */
426
+ async generateFromDirectory(directoryPath, recursive = true) {
427
+ const startTime = Date.now();
428
+ const cards = new Map();
429
+ const errors = new Map();
430
+ const processDirectory = async (dirPath) => {
431
+ const entries = await readdir(dirPath);
432
+ for (const entry of entries) {
433
+ const fullPath = join(dirPath, entry);
434
+ const stats = await stat(fullPath);
435
+ if (stats.isDirectory() && recursive) {
436
+ await processDirectory(fullPath);
437
+ }
438
+ else if (stats.isFile() && entry.endsWith('.md') && entry !== 'README.md') {
439
+ try {
440
+ const card = await this.generateFromFile(fullPath);
441
+ cards.set(card.name, card);
442
+ }
443
+ catch (error) {
444
+ errors.set(fullPath, error instanceof Error ? error : new Error(String(error)));
445
+ }
446
+ }
447
+ }
448
+ };
449
+ await processDirectory(directoryPath);
450
+ const duration = Date.now() - startTime;
451
+ return {
452
+ cards,
453
+ errors,
454
+ stats: {
455
+ total: cards.size + errors.size,
456
+ success: cards.size,
457
+ failed: errors.size,
458
+ duration,
459
+ },
460
+ };
461
+ }
462
+ /**
463
+ * Generate cards for all 68 QE agents
464
+ */
465
+ async generateAllCards(agentsBasePath) {
466
+ return this.generateFromDirectory(agentsBasePath, true);
467
+ }
468
+ }
469
+ // ============================================================================
470
+ // Factory Function
471
+ // ============================================================================
472
+ /**
473
+ * Create an Agent Card Generator instance
474
+ */
475
+ export function createAgentCardGenerator(config = {}) {
476
+ return new AgentCardGenerator(config);
477
+ }
478
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/adapters/a2a/agent-cards/generator.ts"],"names":[],"mappings":"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"}