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,134 @@
1
+ /**
2
+ * Grow-only Counter Implementation
3
+ *
4
+ * A CRDT counter that only supports increment operations.
5
+ * Each node maintains its own count, and the total is the sum of all counts.
6
+ * Merge takes the maximum of each node's count.
7
+ *
8
+ * @module memory/crdt/g-counter
9
+ */
10
+ // =============================================================================
11
+ // G-Counter Implementation
12
+ // =============================================================================
13
+ /**
14
+ * Create a new G-Counter
15
+ *
16
+ * @param nodeId - Unique identifier for this node
17
+ * @returns G-Counter instance
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const counter = createGCounter('node-1');
22
+ * counter.increment(5);
23
+ * counter.increment();
24
+ * console.log(counter.get()); // 6
25
+ * ```
26
+ */
27
+ export function createGCounter(nodeId) {
28
+ // Internal state: per-node counts
29
+ const state = {
30
+ counts: {},
31
+ version: 0,
32
+ lastUpdated: Date.now(),
33
+ };
34
+ // Initialize this node's count
35
+ state.counts[nodeId] = 0;
36
+ return {
37
+ get() {
38
+ // Sum all node counts
39
+ return Object.values(state.counts).reduce((sum, count) => sum + count, 0);
40
+ },
41
+ increment(n = 1) {
42
+ if (n < 0) {
43
+ throw new Error('G-Counter can only increment by positive values');
44
+ }
45
+ if (n === 0) {
46
+ return;
47
+ }
48
+ state.counts[nodeId] = (state.counts[nodeId] || 0) + n;
49
+ state.version++;
50
+ state.lastUpdated = Date.now();
51
+ },
52
+ merge(other) {
53
+ const otherState = other.getState();
54
+ this.applyState(otherState);
55
+ },
56
+ getState() {
57
+ // Return a deep copy to prevent external mutation
58
+ return {
59
+ counts: { ...state.counts },
60
+ version: state.version,
61
+ lastUpdated: state.lastUpdated,
62
+ };
63
+ },
64
+ applyState(incoming) {
65
+ let changed = false;
66
+ // Merge counts: take max for each node
67
+ for (const [incomingNodeId, incomingCount] of Object.entries(incoming.counts)) {
68
+ const currentCount = state.counts[incomingNodeId] || 0;
69
+ if (incomingCount > currentCount) {
70
+ state.counts[incomingNodeId] = incomingCount;
71
+ changed = true;
72
+ }
73
+ }
74
+ if (changed) {
75
+ state.version = Math.max(state.version, incoming.version) + 1;
76
+ state.lastUpdated = Date.now();
77
+ }
78
+ },
79
+ getNodeId() {
80
+ return nodeId;
81
+ },
82
+ getLocalCount() {
83
+ return state.counts[nodeId] || 0;
84
+ },
85
+ };
86
+ }
87
+ // =============================================================================
88
+ // Factory with State
89
+ // =============================================================================
90
+ /**
91
+ * Create a G-Counter from existing state
92
+ *
93
+ * @param nodeId - Unique identifier for this node
94
+ * @param existingState - State to restore from
95
+ * @returns G-Counter instance
96
+ */
97
+ export function createGCounterFromState(nodeId, existingState) {
98
+ const counter = createGCounter(nodeId);
99
+ counter.applyState(existingState);
100
+ return counter;
101
+ }
102
+ // =============================================================================
103
+ // Type Guards
104
+ // =============================================================================
105
+ /**
106
+ * Check if a value is a valid G-Counter state
107
+ */
108
+ export function isGCounterState(value) {
109
+ if (typeof value !== 'object' || value === null) {
110
+ return false;
111
+ }
112
+ const state = value;
113
+ return (typeof state.counts === 'object' &&
114
+ state.counts !== null &&
115
+ typeof state.version === 'number' &&
116
+ typeof state.lastUpdated === 'number' &&
117
+ Object.values(state.counts).every((v) => typeof v === 'number' && v >= 0));
118
+ }
119
+ // =============================================================================
120
+ // Utilities
121
+ // =============================================================================
122
+ /**
123
+ * Get the count for a specific node from state
124
+ */
125
+ export function getNodeCountFromState(state, nodeId) {
126
+ return state.counts[nodeId] || 0;
127
+ }
128
+ /**
129
+ * Get all contributing nodes from state
130
+ */
131
+ export function getContributingNodes(state) {
132
+ return Object.keys(state.counts).filter((k) => state.counts[k] > 0);
133
+ }
134
+ //# sourceMappingURL=g-counter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"g-counter.js","sourceRoot":"","sources":["../../../src/memory/crdt/g-counter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * CRDT Module - Conflict-free Replicated Data Types
3
+ *
4
+ * Provides eventually consistent distributed state for multi-agent coordination.
5
+ * Implements standard CRDTs with support for delta-based replication.
6
+ *
7
+ * @module memory/crdt
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * createCRDTStore,
13
+ * createConvergenceTracker,
14
+ * } from '@agentic-qe/v3/memory/crdt';
15
+ *
16
+ * // Agent A creates store
17
+ * const storeA = createCRDTStore({ nodeId: 'agent-a' });
18
+ * storeA.setRegister('config', { maxAgents: 100 });
19
+ * storeA.incrementCounter('tasks');
20
+ * storeA.addToSet('active', 'agent-a');
21
+ *
22
+ * // Agent B creates store (concurrent)
23
+ * const storeB = createCRDTStore({ nodeId: 'agent-b' });
24
+ * storeB.incrementCounter('tasks');
25
+ * storeB.addToSet('active', 'agent-b');
26
+ *
27
+ * // Merge stores (order doesn't matter)
28
+ * storeA.merge(storeB);
29
+ * storeB.merge(storeA);
30
+ *
31
+ * // Both converge to same state
32
+ * console.log(storeA.getCounter('tasks').get()); // 2
33
+ * console.log(storeB.getCounter('tasks').get()); // 2
34
+ *
35
+ * // Track convergence across cluster
36
+ * const tracker = createConvergenceTracker();
37
+ * tracker.recordNodeState('agent-a', storeA.getState());
38
+ * tracker.recordNodeState('agent-b', storeB.getState());
39
+ * console.log(tracker.hasConverged()); // true
40
+ * ```
41
+ */
42
+ export type { CRDTType, CRDTBaseState, LWWRegister, LWWRegisterState, GCounter, GCounterState, PNCounter, PNCounterState, ORSet, ORSetState, ORSetElement, CRDTStore, CRDTStoreConfig, CRDTStoreState, CRDTStoreDelta, CRDTStoreStats, CRDTChangeEvent, CRDTChangeListener, ConvergenceTracker, ConvergenceTrackerConfig, ConvergenceStatus, NodeStateSnapshot, SerializationOptions, MergeResult, } from './types.js';
43
+ export { createLWWRegister, createLWWRegisterFromState, isLWWRegisterState, } from './lww-register.js';
44
+ export { createGCounter, createGCounterFromState, isGCounterState, getNodeCountFromState, getContributingNodes, } from './g-counter.js';
45
+ export { createPNCounter, createPNCounterFromState, isPNCounterState, getPNCounterBreakdown, } from './pn-counter.js';
46
+ export type { PNCounterBreakdown } from './pn-counter.js';
47
+ export { createORSet, createORSetFromState, isORSetState, getORSetStats, compactORSetState, } from './or-set.js';
48
+ export type { ORSetStats } from './or-set.js';
49
+ export { createCRDTStore, createCRDTStoreFromState, isCRDTStoreState, isCRDTStoreDelta, } from './crdt-store.js';
50
+ export { createConvergenceTracker, createMetricsConvergenceTracker, } from './convergence-tracker.js';
51
+ export type { ConvergenceMetrics, MetricsConvergenceTracker, } from './convergence-tracker.js';
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/crdt/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAMH,YAAY,EAEV,QAAQ,EACR,aAAa,EAGb,WAAW,EACX,gBAAgB,EAGhB,QAAQ,EACR,aAAa,EAGb,SAAS,EACT,cAAc,EAGd,KAAK,EACL,UAAU,EACV,YAAY,EAGZ,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAGlB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EAGjB,oBAAoB,EACpB,WAAW,GACZ,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAM1D,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * CRDT Module - Conflict-free Replicated Data Types
3
+ *
4
+ * Provides eventually consistent distributed state for multi-agent coordination.
5
+ * Implements standard CRDTs with support for delta-based replication.
6
+ *
7
+ * @module memory/crdt
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * createCRDTStore,
13
+ * createConvergenceTracker,
14
+ * } from '@agentic-qe/v3/memory/crdt';
15
+ *
16
+ * // Agent A creates store
17
+ * const storeA = createCRDTStore({ nodeId: 'agent-a' });
18
+ * storeA.setRegister('config', { maxAgents: 100 });
19
+ * storeA.incrementCounter('tasks');
20
+ * storeA.addToSet('active', 'agent-a');
21
+ *
22
+ * // Agent B creates store (concurrent)
23
+ * const storeB = createCRDTStore({ nodeId: 'agent-b' });
24
+ * storeB.incrementCounter('tasks');
25
+ * storeB.addToSet('active', 'agent-b');
26
+ *
27
+ * // Merge stores (order doesn't matter)
28
+ * storeA.merge(storeB);
29
+ * storeB.merge(storeA);
30
+ *
31
+ * // Both converge to same state
32
+ * console.log(storeA.getCounter('tasks').get()); // 2
33
+ * console.log(storeB.getCounter('tasks').get()); // 2
34
+ *
35
+ * // Track convergence across cluster
36
+ * const tracker = createConvergenceTracker();
37
+ * tracker.recordNodeState('agent-a', storeA.getState());
38
+ * tracker.recordNodeState('agent-b', storeB.getState());
39
+ * console.log(tracker.hasConverged()); // true
40
+ * ```
41
+ */
42
+ // =============================================================================
43
+ // LWW Register Exports
44
+ // =============================================================================
45
+ export { createLWWRegister, createLWWRegisterFromState, isLWWRegisterState, } from './lww-register.js';
46
+ // =============================================================================
47
+ // G-Counter Exports
48
+ // =============================================================================
49
+ export { createGCounter, createGCounterFromState, isGCounterState, getNodeCountFromState, getContributingNodes, } from './g-counter.js';
50
+ // =============================================================================
51
+ // PN-Counter Exports
52
+ // =============================================================================
53
+ export { createPNCounter, createPNCounterFromState, isPNCounterState, getPNCounterBreakdown, } from './pn-counter.js';
54
+ // =============================================================================
55
+ // OR-Set Exports
56
+ // =============================================================================
57
+ export { createORSet, createORSetFromState, isORSetState, getORSetStats, compactORSetState, } from './or-set.js';
58
+ // =============================================================================
59
+ // CRDT Store Exports
60
+ // =============================================================================
61
+ export { createCRDTStore, createCRDTStoreFromState, isCRDTStoreState, isCRDTStoreDelta, } from './crdt-store.js';
62
+ // =============================================================================
63
+ // Convergence Tracker Exports
64
+ // =============================================================================
65
+ export { createConvergenceTracker, createMetricsConvergenceTracker, } from './convergence-tracker.js';
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/crdt/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAgDH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAIzB,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAIrB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Last-Write-Wins Register Implementation
3
+ *
4
+ * A CRDT register where concurrent writes are resolved using timestamps.
5
+ * The write with the highest timestamp wins. In case of ties, the node ID
6
+ * is used as a tiebreaker (lexicographic order).
7
+ *
8
+ * @module memory/crdt/lww-register
9
+ */
10
+ import type { LWWRegister, LWWRegisterState } from './types.js';
11
+ /**
12
+ * Create a new LWW Register
13
+ *
14
+ * @param nodeId - Unique identifier for this node
15
+ * @param initialValue - Optional initial value
16
+ * @param initialTimestamp - Optional initial timestamp
17
+ * @returns LWW Register instance
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const register = createLWWRegister<string>('node-1');
22
+ * register.set('hello', Date.now());
23
+ * console.log(register.get()); // 'hello'
24
+ * ```
25
+ */
26
+ export declare function createLWWRegister<T>(nodeId: string, initialValue?: T, initialTimestamp?: number): LWWRegister<T>;
27
+ /**
28
+ * Create a LWW Register from existing state
29
+ *
30
+ * @param nodeId - Unique identifier for this node
31
+ * @param existingState - State to restore from
32
+ * @returns LWW Register instance
33
+ */
34
+ export declare function createLWWRegisterFromState<T>(nodeId: string, existingState: LWWRegisterState<T>): LWWRegister<T>;
35
+ /**
36
+ * Check if a value is a valid LWW Register state
37
+ */
38
+ export declare function isLWWRegisterState<T>(value: unknown): value is LWWRegisterState<T>;
39
+ export type { LWWRegister, LWWRegisterState };
40
+ //# sourceMappingURL=lww-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lww-register.d.ts","sourceRoot":"","sources":["../../../src/memory/crdt/lww-register.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMhE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,CAAC,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,WAAW,CAAC,CAAC,CAAC,CA+FhB;AAMD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACjC,WAAW,CAAC,CAAC,CAAC,CAIhB;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAalF;AAMD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Last-Write-Wins Register Implementation
3
+ *
4
+ * A CRDT register where concurrent writes are resolved using timestamps.
5
+ * The write with the highest timestamp wins. In case of ties, the node ID
6
+ * is used as a tiebreaker (lexicographic order).
7
+ *
8
+ * @module memory/crdt/lww-register
9
+ */
10
+ // =============================================================================
11
+ // LWW Register Implementation
12
+ // =============================================================================
13
+ /**
14
+ * Create a new LWW Register
15
+ *
16
+ * @param nodeId - Unique identifier for this node
17
+ * @param initialValue - Optional initial value
18
+ * @param initialTimestamp - Optional initial timestamp
19
+ * @returns LWW Register instance
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const register = createLWWRegister<string>('node-1');
24
+ * register.set('hello', Date.now());
25
+ * console.log(register.get()); // 'hello'
26
+ * ```
27
+ */
28
+ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
29
+ // Internal state
30
+ let state = {
31
+ value: initialValue,
32
+ timestamp: initialTimestamp ?? (initialValue !== undefined ? Date.now() : 0),
33
+ nodeId: initialValue !== undefined ? nodeId : '',
34
+ version: initialValue !== undefined ? 1 : 0,
35
+ lastUpdated: Date.now(),
36
+ };
37
+ /**
38
+ * Compare two timestamps with nodeId as tiebreaker
39
+ * Returns positive if a wins, negative if b wins, 0 if equal
40
+ */
41
+ function compareTimestamps(timestampA, nodeIdA, timestampB, nodeIdB) {
42
+ if (timestampA !== timestampB) {
43
+ return timestampA - timestampB;
44
+ }
45
+ // Tiebreaker: lexicographic comparison of node IDs
46
+ return nodeIdA.localeCompare(nodeIdB);
47
+ }
48
+ return {
49
+ get() {
50
+ return state.value;
51
+ },
52
+ set(value, timestamp) {
53
+ const ts = timestamp ?? Date.now();
54
+ // Only update if new timestamp wins
55
+ if (state.timestamp === 0 ||
56
+ compareTimestamps(ts, nodeId, state.timestamp, state.nodeId) > 0) {
57
+ state = {
58
+ value,
59
+ timestamp: ts,
60
+ nodeId,
61
+ version: state.version + 1,
62
+ lastUpdated: Date.now(),
63
+ };
64
+ }
65
+ },
66
+ merge(other) {
67
+ const otherState = other.getState();
68
+ this.applyState(otherState);
69
+ },
70
+ getState() {
71
+ // Return a copy to prevent external mutation
72
+ return {
73
+ value: state.value,
74
+ timestamp: state.timestamp,
75
+ nodeId: state.nodeId,
76
+ version: state.version,
77
+ lastUpdated: state.lastUpdated,
78
+ };
79
+ },
80
+ applyState(incoming) {
81
+ // Only update if incoming timestamp wins
82
+ if (state.timestamp === 0 ||
83
+ compareTimestamps(incoming.timestamp, incoming.nodeId, state.timestamp, state.nodeId) > 0) {
84
+ state = {
85
+ value: incoming.value,
86
+ timestamp: incoming.timestamp,
87
+ nodeId: incoming.nodeId,
88
+ version: Math.max(state.version, incoming.version) + 1,
89
+ lastUpdated: Date.now(),
90
+ };
91
+ }
92
+ },
93
+ getNodeId() {
94
+ return nodeId;
95
+ },
96
+ getTimestamp() {
97
+ return state.timestamp;
98
+ },
99
+ };
100
+ }
101
+ // =============================================================================
102
+ // Factory with State
103
+ // =============================================================================
104
+ /**
105
+ * Create a LWW Register from existing state
106
+ *
107
+ * @param nodeId - Unique identifier for this node
108
+ * @param existingState - State to restore from
109
+ * @returns LWW Register instance
110
+ */
111
+ export function createLWWRegisterFromState(nodeId, existingState) {
112
+ const register = createLWWRegister(nodeId);
113
+ register.applyState(existingState);
114
+ return register;
115
+ }
116
+ // =============================================================================
117
+ // Type Guards
118
+ // =============================================================================
119
+ /**
120
+ * Check if a value is a valid LWW Register state
121
+ */
122
+ export function isLWWRegisterState(value) {
123
+ if (typeof value !== 'object' || value === null) {
124
+ return false;
125
+ }
126
+ const state = value;
127
+ return (typeof state.timestamp === 'number' &&
128
+ typeof state.nodeId === 'string' &&
129
+ typeof state.version === 'number' &&
130
+ typeof state.lastUpdated === 'number' &&
131
+ 'value' in state);
132
+ }
133
+ //# sourceMappingURL=lww-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lww-register.js","sourceRoot":"","sources":["../../../src/memory/crdt/lww-register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Observed-Remove Set Implementation
3
+ *
4
+ * A CRDT set with add-wins semantics on concurrent add/remove operations.
5
+ * Each add operation creates a unique tag. Remove operations mark those tags
6
+ * as tombstones. An element is present if it has at least one tag not in tombstones.
7
+ *
8
+ * @module memory/crdt/or-set
9
+ */
10
+ import type { ORSet, ORSetState } from './types.js';
11
+ /**
12
+ * Create a new OR-Set
13
+ *
14
+ * @param nodeId - Unique identifier for this node
15
+ * @returns OR-Set instance
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const set = createORSet<string>('node-1');
20
+ * set.add('apple');
21
+ * set.add('banana');
22
+ * set.remove('apple');
23
+ * console.log(set.values()); // ['banana']
24
+ * ```
25
+ */
26
+ export declare function createORSet<T>(nodeId: string): ORSet<T>;
27
+ /**
28
+ * Create an OR-Set from existing state
29
+ *
30
+ * @param nodeId - Unique identifier for this node
31
+ * @param existingState - State to restore from
32
+ * @returns OR-Set instance
33
+ */
34
+ export declare function createORSetFromState<T>(nodeId: string, existingState: ORSetState<T>): ORSet<T>;
35
+ /**
36
+ * Check if a value is a valid OR-Set state
37
+ */
38
+ export declare function isORSetState<T>(value: unknown): value is ORSetState<T>;
39
+ /**
40
+ * Get detailed statistics about an OR-Set
41
+ */
42
+ export interface ORSetStats {
43
+ /** Number of active elements */
44
+ activeElements: number;
45
+ /** Total tags across all elements */
46
+ totalTags: number;
47
+ /** Total tombstoned tags */
48
+ totalTombstones: number;
49
+ /** Number of elements with tombstones */
50
+ elementsWithTombstones: number;
51
+ }
52
+ /**
53
+ * Get statistics about an OR-Set
54
+ */
55
+ export declare function getORSetStats<T>(state: ORSetState<T>): ORSetStats;
56
+ /**
57
+ * Compact OR-Set state by removing fully tombstoned elements
58
+ * Returns a new state object (does not mutate input)
59
+ */
60
+ export declare function compactORSetState<T>(state: ORSetState<T>): ORSetState<T>;
61
+ export type { ORSet, ORSetState };
62
+ //# sourceMappingURL=or-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-set.d.ts","sourceRoot":"","sources":["../../../src/memory/crdt/or-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4DpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAgNvD;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,GAC3B,KAAK,CAAC,CAAC,CAAC,CAIV;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CActE;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CA8BjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA0BxE;AAMD,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC"}