agentic-qe 3.3.5 → 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 (423) hide show
  1. package/.claude/helpers/statusline-v3.cjs +47 -0
  2. package/.claude/skills/qcsd-ideation-swarm/SKILL.md +7 -4
  3. package/README.md +69 -0
  4. package/package.json +1 -1
  5. package/v3/CHANGELOG.md +91 -0
  6. package/v3/README.md +117 -0
  7. package/v3/assets/skills/qcsd-ideation-swarm/SKILL.md +7 -4
  8. package/v3/dist/adapters/a2a/agent-cards/generator.d.ts +153 -0
  9. package/v3/dist/adapters/a2a/agent-cards/generator.d.ts.map +1 -0
  10. package/v3/dist/adapters/a2a/agent-cards/generator.js +478 -0
  11. package/v3/dist/adapters/a2a/agent-cards/generator.js.map +1 -0
  12. package/v3/dist/adapters/a2a/agent-cards/schema.d.ts +274 -0
  13. package/v3/dist/adapters/a2a/agent-cards/schema.d.ts.map +1 -0
  14. package/v3/dist/adapters/a2a/agent-cards/schema.js +135 -0
  15. package/v3/dist/adapters/a2a/agent-cards/schema.js.map +1 -0
  16. package/v3/dist/adapters/a2a/agent-cards/validator.d.ts +514 -0
  17. package/v3/dist/adapters/a2a/agent-cards/validator.d.ts.map +1 -0
  18. package/v3/dist/adapters/a2a/agent-cards/validator.js +555 -0
  19. package/v3/dist/adapters/a2a/agent-cards/validator.js.map +1 -0
  20. package/v3/dist/adapters/a2a/auth/index.d.ts +23 -0
  21. package/v3/dist/adapters/a2a/auth/index.d.ts.map +1 -0
  22. package/v3/dist/adapters/a2a/auth/index.js +85 -0
  23. package/v3/dist/adapters/a2a/auth/index.js.map +1 -0
  24. package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts +215 -0
  25. package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts.map +1 -0
  26. package/v3/dist/adapters/a2a/auth/jwt-utils.js +314 -0
  27. package/v3/dist/adapters/a2a/auth/jwt-utils.js.map +1 -0
  28. package/v3/dist/adapters/a2a/auth/middleware.d.ts +173 -0
  29. package/v3/dist/adapters/a2a/auth/middleware.d.ts.map +1 -0
  30. package/v3/dist/adapters/a2a/auth/middleware.js +300 -0
  31. package/v3/dist/adapters/a2a/auth/middleware.js.map +1 -0
  32. package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts +308 -0
  33. package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts.map +1 -0
  34. package/v3/dist/adapters/a2a/auth/oauth-provider.js +573 -0
  35. package/v3/dist/adapters/a2a/auth/oauth-provider.js.map +1 -0
  36. package/v3/dist/adapters/a2a/auth/routes.d.ts +244 -0
  37. package/v3/dist/adapters/a2a/auth/routes.d.ts.map +1 -0
  38. package/v3/dist/adapters/a2a/auth/routes.js +496 -0
  39. package/v3/dist/adapters/a2a/auth/routes.js.map +1 -0
  40. package/v3/dist/adapters/a2a/auth/scopes.d.ts +219 -0
  41. package/v3/dist/adapters/a2a/auth/scopes.d.ts.map +1 -0
  42. package/v3/dist/adapters/a2a/auth/scopes.js +292 -0
  43. package/v3/dist/adapters/a2a/auth/scopes.js.map +1 -0
  44. package/v3/dist/adapters/a2a/auth/token-store.d.ts +278 -0
  45. package/v3/dist/adapters/a2a/auth/token-store.d.ts.map +1 -0
  46. package/v3/dist/adapters/a2a/auth/token-store.js +453 -0
  47. package/v3/dist/adapters/a2a/auth/token-store.js.map +1 -0
  48. package/v3/dist/adapters/a2a/discovery/agent-health.d.ts +226 -0
  49. package/v3/dist/adapters/a2a/discovery/agent-health.d.ts.map +1 -0
  50. package/v3/dist/adapters/a2a/discovery/agent-health.js +426 -0
  51. package/v3/dist/adapters/a2a/discovery/agent-health.js.map +1 -0
  52. package/v3/dist/adapters/a2a/discovery/discovery-service.d.ts +296 -0
  53. package/v3/dist/adapters/a2a/discovery/discovery-service.d.ts.map +1 -0
  54. package/v3/dist/adapters/a2a/discovery/discovery-service.js +520 -0
  55. package/v3/dist/adapters/a2a/discovery/discovery-service.js.map +1 -0
  56. package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts +166 -0
  57. package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts.map +1 -0
  58. package/v3/dist/adapters/a2a/discovery/file-watcher.js +385 -0
  59. package/v3/dist/adapters/a2a/discovery/file-watcher.js.map +1 -0
  60. package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts +226 -0
  61. package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts.map +1 -0
  62. package/v3/dist/adapters/a2a/discovery/hot-reload-service.js +433 -0
  63. package/v3/dist/adapters/a2a/discovery/hot-reload-service.js.map +1 -0
  64. package/v3/dist/adapters/a2a/discovery/index.d.ts +18 -0
  65. package/v3/dist/adapters/a2a/discovery/index.d.ts.map +1 -0
  66. package/v3/dist/adapters/a2a/discovery/index.js +54 -0
  67. package/v3/dist/adapters/a2a/discovery/index.js.map +1 -0
  68. package/v3/dist/adapters/a2a/discovery/metrics.d.ts +200 -0
  69. package/v3/dist/adapters/a2a/discovery/metrics.d.ts.map +1 -0
  70. package/v3/dist/adapters/a2a/discovery/metrics.js +371 -0
  71. package/v3/dist/adapters/a2a/discovery/metrics.js.map +1 -0
  72. package/v3/dist/adapters/a2a/discovery/routes.d.ts +184 -0
  73. package/v3/dist/adapters/a2a/discovery/routes.d.ts.map +1 -0
  74. package/v3/dist/adapters/a2a/discovery/routes.js +453 -0
  75. package/v3/dist/adapters/a2a/discovery/routes.js.map +1 -0
  76. package/v3/dist/adapters/a2a/index.d.ts +18 -0
  77. package/v3/dist/adapters/a2a/index.d.ts.map +1 -0
  78. package/v3/dist/adapters/a2a/index.js +139 -0
  79. package/v3/dist/adapters/a2a/index.js.map +1 -0
  80. package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts +312 -0
  81. package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts.map +1 -0
  82. package/v3/dist/adapters/a2a/jsonrpc/envelope.js +554 -0
  83. package/v3/dist/adapters/a2a/jsonrpc/envelope.js.map +1 -0
  84. package/v3/dist/adapters/a2a/jsonrpc/errors.d.ts +244 -0
  85. package/v3/dist/adapters/a2a/jsonrpc/errors.d.ts.map +1 -0
  86. package/v3/dist/adapters/a2a/jsonrpc/errors.js +365 -0
  87. package/v3/dist/adapters/a2a/jsonrpc/errors.js.map +1 -0
  88. package/v3/dist/adapters/a2a/jsonrpc/index.d.ts +14 -0
  89. package/v3/dist/adapters/a2a/jsonrpc/index.d.ts.map +1 -0
  90. package/v3/dist/adapters/a2a/jsonrpc/index.js +59 -0
  91. package/v3/dist/adapters/a2a/jsonrpc/index.js.map +1 -0
  92. package/v3/dist/adapters/a2a/jsonrpc/methods.d.ts +400 -0
  93. package/v3/dist/adapters/a2a/jsonrpc/methods.d.ts.map +1 -0
  94. package/v3/dist/adapters/a2a/jsonrpc/methods.js +249 -0
  95. package/v3/dist/adapters/a2a/jsonrpc/methods.js.map +1 -0
  96. package/v3/dist/adapters/a2a/notifications/index.d.ts +60 -0
  97. package/v3/dist/adapters/a2a/notifications/index.d.ts.map +1 -0
  98. package/v3/dist/adapters/a2a/notifications/index.js +99 -0
  99. package/v3/dist/adapters/a2a/notifications/index.js.map +1 -0
  100. package/v3/dist/adapters/a2a/notifications/retry-queue.d.ts +225 -0
  101. package/v3/dist/adapters/a2a/notifications/retry-queue.d.ts.map +1 -0
  102. package/v3/dist/adapters/a2a/notifications/retry-queue.js +449 -0
  103. package/v3/dist/adapters/a2a/notifications/retry-queue.js.map +1 -0
  104. package/v3/dist/adapters/a2a/notifications/signature.d.ts +133 -0
  105. package/v3/dist/adapters/a2a/notifications/signature.d.ts.map +1 -0
  106. package/v3/dist/adapters/a2a/notifications/signature.js +244 -0
  107. package/v3/dist/adapters/a2a/notifications/signature.js.map +1 -0
  108. package/v3/dist/adapters/a2a/notifications/subscription-store.d.ts +243 -0
  109. package/v3/dist/adapters/a2a/notifications/subscription-store.d.ts.map +1 -0
  110. package/v3/dist/adapters/a2a/notifications/subscription-store.js +486 -0
  111. package/v3/dist/adapters/a2a/notifications/subscription-store.js.map +1 -0
  112. package/v3/dist/adapters/a2a/notifications/webhook-service.d.ts +257 -0
  113. package/v3/dist/adapters/a2a/notifications/webhook-service.d.ts.map +1 -0
  114. package/v3/dist/adapters/a2a/notifications/webhook-service.js +542 -0
  115. package/v3/dist/adapters/a2a/notifications/webhook-service.js.map +1 -0
  116. package/v3/dist/adapters/a2a/tasks/index.d.ts +16 -0
  117. package/v3/dist/adapters/a2a/tasks/index.d.ts.map +1 -0
  118. package/v3/dist/adapters/a2a/tasks/index.js +33 -0
  119. package/v3/dist/adapters/a2a/tasks/index.js.map +1 -0
  120. package/v3/dist/adapters/a2a/tasks/task-manager.d.ts +306 -0
  121. package/v3/dist/adapters/a2a/tasks/task-manager.d.ts.map +1 -0
  122. package/v3/dist/adapters/a2a/tasks/task-manager.js +562 -0
  123. package/v3/dist/adapters/a2a/tasks/task-manager.js.map +1 -0
  124. package/v3/dist/adapters/a2a/tasks/task-router.d.ts +270 -0
  125. package/v3/dist/adapters/a2a/tasks/task-router.d.ts.map +1 -0
  126. package/v3/dist/adapters/a2a/tasks/task-router.js +574 -0
  127. package/v3/dist/adapters/a2a/tasks/task-router.js.map +1 -0
  128. package/v3/dist/adapters/a2a/tasks/task-store.d.ts +251 -0
  129. package/v3/dist/adapters/a2a/tasks/task-store.d.ts.map +1 -0
  130. package/v3/dist/adapters/a2a/tasks/task-store.js +468 -0
  131. package/v3/dist/adapters/a2a/tasks/task-store.js.map +1 -0
  132. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.d.ts +294 -0
  133. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.d.ts.map +1 -0
  134. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.js +447 -0
  135. package/v3/dist/adapters/a2ui/accessibility/aria-attributes.js.map +1 -0
  136. package/v3/dist/adapters/a2ui/accessibility/index.d.ts +83 -0
  137. package/v3/dist/adapters/a2ui/accessibility/index.d.ts.map +1 -0
  138. package/v3/dist/adapters/a2ui/accessibility/index.js +155 -0
  139. package/v3/dist/adapters/a2ui/accessibility/index.js.map +1 -0
  140. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.d.ts +177 -0
  141. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.d.ts.map +1 -0
  142. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.js +638 -0
  143. package/v3/dist/adapters/a2ui/accessibility/keyboard-nav.js.map +1 -0
  144. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.d.ts +186 -0
  145. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.d.ts.map +1 -0
  146. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.js +816 -0
  147. package/v3/dist/adapters/a2ui/accessibility/wcag-validator.js.map +1 -0
  148. package/v3/dist/adapters/a2ui/catalog/component-schemas.d.ts +227 -0
  149. package/v3/dist/adapters/a2ui/catalog/component-schemas.d.ts.map +1 -0
  150. package/v3/dist/adapters/a2ui/catalog/component-schemas.js +1090 -0
  151. package/v3/dist/adapters/a2ui/catalog/component-schemas.js.map +1 -0
  152. package/v3/dist/adapters/a2ui/catalog/index.d.ts +55 -0
  153. package/v3/dist/adapters/a2ui/catalog/index.d.ts.map +1 -0
  154. package/v3/dist/adapters/a2ui/catalog/index.js +100 -0
  155. package/v3/dist/adapters/a2ui/catalog/index.js.map +1 -0
  156. package/v3/dist/adapters/a2ui/catalog/qe-catalog.d.ts +456 -0
  157. package/v3/dist/adapters/a2ui/catalog/qe-catalog.d.ts.map +1 -0
  158. package/v3/dist/adapters/a2ui/catalog/qe-catalog.js +413 -0
  159. package/v3/dist/adapters/a2ui/catalog/qe-catalog.js.map +1 -0
  160. package/v3/dist/adapters/a2ui/catalog/standard-catalog.d.ts +581 -0
  161. package/v3/dist/adapters/a2ui/catalog/standard-catalog.d.ts.map +1 -0
  162. package/v3/dist/adapters/a2ui/catalog/standard-catalog.js +409 -0
  163. package/v3/dist/adapters/a2ui/catalog/standard-catalog.js.map +1 -0
  164. package/v3/dist/adapters/a2ui/data/bound-value.d.ts +252 -0
  165. package/v3/dist/adapters/a2ui/data/bound-value.d.ts.map +1 -0
  166. package/v3/dist/adapters/a2ui/data/bound-value.js +403 -0
  167. package/v3/dist/adapters/a2ui/data/bound-value.js.map +1 -0
  168. package/v3/dist/adapters/a2ui/data/index.d.ts +14 -0
  169. package/v3/dist/adapters/a2ui/data/index.d.ts.map +1 -0
  170. package/v3/dist/adapters/a2ui/data/index.js +41 -0
  171. package/v3/dist/adapters/a2ui/data/index.js.map +1 -0
  172. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.d.ts +187 -0
  173. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.d.ts.map +1 -0
  174. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.js +425 -0
  175. package/v3/dist/adapters/a2ui/data/json-pointer-resolver.js.map +1 -0
  176. package/v3/dist/adapters/a2ui/data/reactive-store.d.ts +241 -0
  177. package/v3/dist/adapters/a2ui/data/reactive-store.d.ts.map +1 -0
  178. package/v3/dist/adapters/a2ui/data/reactive-store.js +461 -0
  179. package/v3/dist/adapters/a2ui/data/reactive-store.js.map +1 -0
  180. package/v3/dist/adapters/a2ui/index.d.ts +17 -0
  181. package/v3/dist/adapters/a2ui/index.d.ts.map +1 -0
  182. package/v3/dist/adapters/a2ui/index.js +119 -0
  183. package/v3/dist/adapters/a2ui/index.js.map +1 -0
  184. package/v3/dist/adapters/a2ui/integration/agui-sync.d.ts +259 -0
  185. package/v3/dist/adapters/a2ui/integration/agui-sync.d.ts.map +1 -0
  186. package/v3/dist/adapters/a2ui/integration/agui-sync.js +559 -0
  187. package/v3/dist/adapters/a2ui/integration/agui-sync.js.map +1 -0
  188. package/v3/dist/adapters/a2ui/integration/index.d.ts +11 -0
  189. package/v3/dist/adapters/a2ui/integration/index.d.ts.map +1 -0
  190. package/v3/dist/adapters/a2ui/integration/index.js +23 -0
  191. package/v3/dist/adapters/a2ui/integration/index.js.map +1 -0
  192. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.d.ts +209 -0
  193. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.d.ts.map +1 -0
  194. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.js +545 -0
  195. package/v3/dist/adapters/a2ui/integration/surface-state-bridge.js.map +1 -0
  196. package/v3/dist/adapters/a2ui/renderer/component-builder.d.ts +227 -0
  197. package/v3/dist/adapters/a2ui/renderer/component-builder.d.ts.map +1 -0
  198. package/v3/dist/adapters/a2ui/renderer/component-builder.js +488 -0
  199. package/v3/dist/adapters/a2ui/renderer/component-builder.js.map +1 -0
  200. package/v3/dist/adapters/a2ui/renderer/index.d.ts +16 -0
  201. package/v3/dist/adapters/a2ui/renderer/index.d.ts.map +1 -0
  202. package/v3/dist/adapters/a2ui/renderer/index.js +50 -0
  203. package/v3/dist/adapters/a2ui/renderer/index.js.map +1 -0
  204. package/v3/dist/adapters/a2ui/renderer/message-types.d.ts +299 -0
  205. package/v3/dist/adapters/a2ui/renderer/message-types.d.ts.map +1 -0
  206. package/v3/dist/adapters/a2ui/renderer/message-types.js +187 -0
  207. package/v3/dist/adapters/a2ui/renderer/message-types.js.map +1 -0
  208. package/v3/dist/adapters/a2ui/renderer/surface-generator.d.ts +210 -0
  209. package/v3/dist/adapters/a2ui/renderer/surface-generator.d.ts.map +1 -0
  210. package/v3/dist/adapters/a2ui/renderer/surface-generator.js +586 -0
  211. package/v3/dist/adapters/a2ui/renderer/surface-generator.js.map +1 -0
  212. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.d.ts +149 -0
  213. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.d.ts.map +1 -0
  214. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.js +414 -0
  215. package/v3/dist/adapters/a2ui/renderer/templates/accessibility-surface.js.map +1 -0
  216. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.d.ts +95 -0
  217. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.d.ts.map +1 -0
  218. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.js +231 -0
  219. package/v3/dist/adapters/a2ui/renderer/templates/coverage-surface.js.map +1 -0
  220. package/v3/dist/adapters/a2ui/renderer/templates/index.d.ts +12 -0
  221. package/v3/dist/adapters/a2ui/renderer/templates/index.d.ts.map +1 -0
  222. package/v3/dist/adapters/a2ui/renderer/templates/index.js +16 -0
  223. package/v3/dist/adapters/a2ui/renderer/templates/index.js.map +1 -0
  224. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.d.ts +121 -0
  225. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.d.ts.map +1 -0
  226. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.js +367 -0
  227. package/v3/dist/adapters/a2ui/renderer/templates/security-surface.js.map +1 -0
  228. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.d.ts +104 -0
  229. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.d.ts.map +1 -0
  230. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.js +294 -0
  231. package/v3/dist/adapters/a2ui/renderer/templates/test-results-surface.js.map +1 -0
  232. package/v3/dist/adapters/ag-ui/backpressure-handler.d.ts +201 -0
  233. package/v3/dist/adapters/ag-ui/backpressure-handler.d.ts.map +1 -0
  234. package/v3/dist/adapters/ag-ui/backpressure-handler.js +399 -0
  235. package/v3/dist/adapters/ag-ui/backpressure-handler.js.map +1 -0
  236. package/v3/dist/adapters/ag-ui/event-adapter.d.ts +360 -0
  237. package/v3/dist/adapters/ag-ui/event-adapter.d.ts.map +1 -0
  238. package/v3/dist/adapters/ag-ui/event-adapter.js +1083 -0
  239. package/v3/dist/adapters/ag-ui/event-adapter.js.map +1 -0
  240. package/v3/dist/adapters/ag-ui/event-batcher.d.ts +242 -0
  241. package/v3/dist/adapters/ag-ui/event-batcher.d.ts.map +1 -0
  242. package/v3/dist/adapters/ag-ui/event-batcher.js +444 -0
  243. package/v3/dist/adapters/ag-ui/event-batcher.js.map +1 -0
  244. package/v3/dist/adapters/ag-ui/event-types.d.ts +450 -0
  245. package/v3/dist/adapters/ag-ui/event-types.d.ts.map +1 -0
  246. package/v3/dist/adapters/ag-ui/event-types.js +173 -0
  247. package/v3/dist/adapters/ag-ui/event-types.js.map +1 -0
  248. package/v3/dist/adapters/ag-ui/index.d.ts +17 -0
  249. package/v3/dist/adapters/ag-ui/index.d.ts.map +1 -0
  250. package/v3/dist/adapters/ag-ui/index.js +47 -0
  251. package/v3/dist/adapters/ag-ui/index.js.map +1 -0
  252. package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts +136 -0
  253. package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts.map +1 -0
  254. package/v3/dist/adapters/ag-ui/json-patch-utils.js +574 -0
  255. package/v3/dist/adapters/ag-ui/json-patch-utils.js.map +1 -0
  256. package/v3/dist/adapters/ag-ui/json-patch.d.ts +241 -0
  257. package/v3/dist/adapters/ag-ui/json-patch.d.ts.map +1 -0
  258. package/v3/dist/adapters/ag-ui/json-patch.js +726 -0
  259. package/v3/dist/adapters/ag-ui/json-patch.js.map +1 -0
  260. package/v3/dist/adapters/ag-ui/state-delta-cache.d.ts +218 -0
  261. package/v3/dist/adapters/ag-ui/state-delta-cache.d.ts.map +1 -0
  262. package/v3/dist/adapters/ag-ui/state-delta-cache.js +422 -0
  263. package/v3/dist/adapters/ag-ui/state-delta-cache.js.map +1 -0
  264. package/v3/dist/adapters/ag-ui/state-manager.d.ts +249 -0
  265. package/v3/dist/adapters/ag-ui/state-manager.d.ts.map +1 -0
  266. package/v3/dist/adapters/ag-ui/state-manager.js +511 -0
  267. package/v3/dist/adapters/ag-ui/state-manager.js.map +1 -0
  268. package/v3/dist/adapters/ag-ui/stream-controller.d.ts +195 -0
  269. package/v3/dist/adapters/ag-ui/stream-controller.d.ts.map +1 -0
  270. package/v3/dist/adapters/ag-ui/stream-controller.js +481 -0
  271. package/v3/dist/adapters/ag-ui/stream-controller.js.map +1 -0
  272. package/v3/dist/adapters/index.d.ts +4 -0
  273. package/v3/dist/adapters/index.d.ts.map +1 -1
  274. package/v3/dist/adapters/index.js +89 -0
  275. package/v3/dist/adapters/index.js.map +1 -1
  276. package/v3/dist/cli/bundle.js +1213 -137
  277. package/v3/dist/init/init-wizard.d.ts.map +1 -1
  278. package/v3/dist/init/init-wizard.js +16 -1
  279. package/v3/dist/init/init-wizard.js.map +1 -1
  280. package/v3/dist/init/migration/config-migrator.d.ts.map +1 -1
  281. package/v3/dist/init/migration/config-migrator.js +15 -1
  282. package/v3/dist/init/migration/config-migrator.js.map +1 -1
  283. package/v3/dist/init/self-configurator.d.ts +7 -0
  284. package/v3/dist/init/self-configurator.d.ts.map +1 -1
  285. package/v3/dist/init/self-configurator.js +23 -27
  286. package/v3/dist/init/self-configurator.js.map +1 -1
  287. package/v3/dist/kernel/plugin-loader.d.ts.map +1 -1
  288. package/v3/dist/kernel/plugin-loader.js +6 -1
  289. package/v3/dist/kernel/plugin-loader.js.map +1 -1
  290. package/v3/dist/kernel/unified-memory.d.ts +97 -0
  291. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  292. package/v3/dist/kernel/unified-memory.js +204 -0
  293. package/v3/dist/kernel/unified-memory.js.map +1 -1
  294. package/v3/dist/mcp/bundle.js +104754 -95005
  295. package/v3/dist/mcp/entry.d.ts +5 -0
  296. package/v3/dist/mcp/entry.d.ts.map +1 -1
  297. package/v3/dist/mcp/entry.js +36 -0
  298. package/v3/dist/mcp/entry.js.map +1 -1
  299. package/v3/dist/mcp/http-server.d.ts +95 -0
  300. package/v3/dist/mcp/http-server.d.ts.map +1 -0
  301. package/v3/dist/mcp/http-server.js +833 -0
  302. package/v3/dist/mcp/http-server.js.map +1 -0
  303. package/v3/dist/mcp/protocol-server.d.ts +6 -0
  304. package/v3/dist/mcp/protocol-server.d.ts.map +1 -1
  305. package/v3/dist/mcp/protocol-server.js +40 -0
  306. package/v3/dist/mcp/protocol-server.js.map +1 -1
  307. package/v3/dist/mcp/transport/index.d.ts +25 -3
  308. package/v3/dist/mcp/transport/index.d.ts.map +1 -1
  309. package/v3/dist/mcp/transport/index.js +22 -4
  310. package/v3/dist/mcp/transport/index.js.map +1 -1
  311. package/v3/dist/mcp/transport/sse/connection-manager.d.ts +84 -0
  312. package/v3/dist/mcp/transport/sse/connection-manager.d.ts.map +1 -0
  313. package/v3/dist/mcp/transport/sse/connection-manager.js +271 -0
  314. package/v3/dist/mcp/transport/sse/connection-manager.js.map +1 -0
  315. package/v3/dist/mcp/transport/sse/index.d.ts +10 -0
  316. package/v3/dist/mcp/transport/sse/index.d.ts.map +1 -0
  317. package/v3/dist/mcp/transport/sse/index.js +15 -0
  318. package/v3/dist/mcp/transport/sse/index.js.map +1 -0
  319. package/v3/dist/mcp/transport/sse/sse-transport.d.ts +56 -0
  320. package/v3/dist/mcp/transport/sse/sse-transport.d.ts.map +1 -0
  321. package/v3/dist/mcp/transport/sse/sse-transport.js +381 -0
  322. package/v3/dist/mcp/transport/sse/sse-transport.js.map +1 -0
  323. package/v3/dist/mcp/transport/sse/types.d.ts +237 -0
  324. package/v3/dist/mcp/transport/sse/types.d.ts.map +1 -0
  325. package/v3/dist/mcp/transport/sse/types.js +37 -0
  326. package/v3/dist/mcp/transport/sse/types.js.map +1 -0
  327. package/v3/dist/mcp/transport/websocket/connection-manager.d.ts +143 -0
  328. package/v3/dist/mcp/transport/websocket/connection-manager.d.ts.map +1 -0
  329. package/v3/dist/mcp/transport/websocket/connection-manager.js +522 -0
  330. package/v3/dist/mcp/transport/websocket/connection-manager.js.map +1 -0
  331. package/v3/dist/mcp/transport/websocket/index.d.ts +10 -0
  332. package/v3/dist/mcp/transport/websocket/index.d.ts.map +1 -0
  333. package/v3/dist/mcp/transport/websocket/index.js +19 -0
  334. package/v3/dist/mcp/transport/websocket/index.js.map +1 -0
  335. package/v3/dist/mcp/transport/websocket/types.d.ts +354 -0
  336. package/v3/dist/mcp/transport/websocket/types.d.ts.map +1 -0
  337. package/v3/dist/mcp/transport/websocket/types.js +49 -0
  338. package/v3/dist/mcp/transport/websocket/types.js.map +1 -0
  339. package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts +77 -0
  340. package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts.map +1 -0
  341. package/v3/dist/mcp/transport/websocket/websocket-transport.js +622 -0
  342. package/v3/dist/mcp/transport/websocket/websocket-transport.js.map +1 -0
  343. package/v3/dist/memory/crdt/convergence-tracker.d.ts +59 -0
  344. package/v3/dist/memory/crdt/convergence-tracker.d.ts.map +1 -0
  345. package/v3/dist/memory/crdt/convergence-tracker.js +325 -0
  346. package/v3/dist/memory/crdt/convergence-tracker.js.map +1 -0
  347. package/v3/dist/memory/crdt/crdt-store.d.ts +55 -0
  348. package/v3/dist/memory/crdt/crdt-store.d.ts.map +1 -0
  349. package/v3/dist/memory/crdt/crdt-store.js +582 -0
  350. package/v3/dist/memory/crdt/crdt-store.js.map +1 -0
  351. package/v3/dist/memory/crdt/g-counter.d.ts +47 -0
  352. package/v3/dist/memory/crdt/g-counter.d.ts.map +1 -0
  353. package/v3/dist/memory/crdt/g-counter.js +134 -0
  354. package/v3/dist/memory/crdt/g-counter.js.map +1 -0
  355. package/v3/dist/memory/crdt/index.d.ts +52 -0
  356. package/v3/dist/memory/crdt/index.d.ts.map +1 -0
  357. package/v3/dist/memory/crdt/index.js +66 -0
  358. package/v3/dist/memory/crdt/index.js.map +1 -0
  359. package/v3/dist/memory/crdt/lww-register.d.ts +40 -0
  360. package/v3/dist/memory/crdt/lww-register.d.ts.map +1 -0
  361. package/v3/dist/memory/crdt/lww-register.js +133 -0
  362. package/v3/dist/memory/crdt/lww-register.js.map +1 -0
  363. package/v3/dist/memory/crdt/or-set.d.ts +62 -0
  364. package/v3/dist/memory/crdt/or-set.d.ts.map +1 -0
  365. package/v3/dist/memory/crdt/or-set.js +336 -0
  366. package/v3/dist/memory/crdt/or-set.js.map +1 -0
  367. package/v3/dist/memory/crdt/pn-counter.d.ts +53 -0
  368. package/v3/dist/memory/crdt/pn-counter.d.ts.map +1 -0
  369. package/v3/dist/memory/crdt/pn-counter.js +147 -0
  370. package/v3/dist/memory/crdt/pn-counter.js.map +1 -0
  371. package/v3/dist/memory/crdt/types.d.ts +397 -0
  372. package/v3/dist/memory/crdt/types.d.ts.map +1 -0
  373. package/v3/dist/memory/crdt/types.js +12 -0
  374. package/v3/dist/memory/crdt/types.js.map +1 -0
  375. package/v3/dist/memory/index.d.ts +5 -2
  376. package/v3/dist/memory/index.d.ts.map +1 -1
  377. package/v3/dist/memory/index.js +5 -2
  378. package/v3/dist/memory/index.js.map +1 -1
  379. package/v3/dist/performance/benchmarks.d.ts +215 -0
  380. package/v3/dist/performance/benchmarks.d.ts.map +1 -0
  381. package/v3/dist/performance/benchmarks.js +516 -0
  382. package/v3/dist/performance/benchmarks.js.map +1 -0
  383. package/v3/dist/performance/ci-gates.d.ts +149 -0
  384. package/v3/dist/performance/ci-gates.d.ts.map +1 -0
  385. package/v3/dist/performance/ci-gates.js +425 -0
  386. package/v3/dist/performance/ci-gates.js.map +1 -0
  387. package/v3/dist/performance/index.d.ts +18 -0
  388. package/v3/dist/performance/index.d.ts.map +1 -0
  389. package/v3/dist/performance/index.js +26 -0
  390. package/v3/dist/performance/index.js.map +1 -0
  391. package/v3/dist/performance/optimizer.d.ts +323 -0
  392. package/v3/dist/performance/optimizer.d.ts.map +1 -0
  393. package/v3/dist/performance/optimizer.js +592 -0
  394. package/v3/dist/performance/optimizer.js.map +1 -0
  395. package/v3/dist/performance/profiler.d.ts +195 -0
  396. package/v3/dist/performance/profiler.d.ts.map +1 -0
  397. package/v3/dist/performance/profiler.js +369 -0
  398. package/v3/dist/performance/profiler.js.map +1 -0
  399. package/v3/dist/performance/run-gates.d.ts +23 -0
  400. package/v3/dist/performance/run-gates.d.ts.map +1 -0
  401. package/v3/dist/performance/run-gates.js +122 -0
  402. package/v3/dist/performance/run-gates.js.map +1 -0
  403. package/v3/dist/testing/index.d.ts +6 -0
  404. package/v3/dist/testing/index.d.ts.map +1 -0
  405. package/v3/dist/testing/index.js +7 -0
  406. package/v3/dist/testing/index.js.map +1 -0
  407. package/v3/dist/testing/load/agent-load-tester.d.ts +221 -0
  408. package/v3/dist/testing/load/agent-load-tester.d.ts.map +1 -0
  409. package/v3/dist/testing/load/agent-load-tester.js +566 -0
  410. package/v3/dist/testing/load/agent-load-tester.js.map +1 -0
  411. package/v3/dist/testing/load/bottleneck-analyzer.d.ts +150 -0
  412. package/v3/dist/testing/load/bottleneck-analyzer.d.ts.map +1 -0
  413. package/v3/dist/testing/load/bottleneck-analyzer.js +442 -0
  414. package/v3/dist/testing/load/bottleneck-analyzer.js.map +1 -0
  415. package/v3/dist/testing/load/index.d.ts +17 -0
  416. package/v3/dist/testing/load/index.d.ts.map +1 -0
  417. package/v3/dist/testing/load/index.js +23 -0
  418. package/v3/dist/testing/load/index.js.map +1 -0
  419. package/v3/dist/testing/load/metrics-collector.d.ts +275 -0
  420. package/v3/dist/testing/load/metrics-collector.d.ts.map +1 -0
  421. package/v3/dist/testing/load/metrics-collector.js +475 -0
  422. package/v3/dist/testing/load/metrics-collector.js.map +1 -0
  423. package/v3/package.json +5 -1
@@ -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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"}