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,422 @@
1
+ /**
2
+ * State Delta Cache for AG-UI Protocol
3
+ *
4
+ * Pre-computes and caches JSON Patch deltas for common state transitions
5
+ * to reduce latency in AG-UI state synchronization.
6
+ *
7
+ * Features:
8
+ * - LRU cache with configurable size limit
9
+ * - Pre-computed deltas for common agent state transitions
10
+ * - Cache warming on initialization
11
+ * - Fallback to on-demand computation for cache misses
12
+ * - Cache hit/miss metrics for monitoring
13
+ *
14
+ * @module adapters/ag-ui/state-delta-cache
15
+ */
16
+ import { createHash } from 'crypto';
17
+ import { computeDiff, deepEqual } from './json-patch.js';
18
+ /**
19
+ * Default configuration values
20
+ */
21
+ const DEFAULT_CONFIG = {
22
+ maxSize: 1000,
23
+ warmOnInit: true,
24
+ diffConfig: {},
25
+ ttl: 0, // 0 means unlimited
26
+ agentStatusPath: '/agent/status',
27
+ progressPath: '/progress/percent',
28
+ toolStatusPath: '/tool/status',
29
+ };
30
+ // ============================================================================
31
+ // Pre-computed Transition Definitions
32
+ // ============================================================================
33
+ /**
34
+ * Agent status transitions
35
+ */
36
+ const AGENT_STATUS_TRANSITIONS = [
37
+ ['idle', 'running'],
38
+ ['running', 'completed'],
39
+ ['running', 'error'],
40
+ ['running', 'cancelled'],
41
+ ['completed', 'idle'],
42
+ ['error', 'idle'],
43
+ ['cancelled', 'idle'],
44
+ ];
45
+ /**
46
+ * Progress milestone transitions
47
+ */
48
+ const PROGRESS_TRANSITIONS = [
49
+ [0, 25],
50
+ [25, 50],
51
+ [50, 75],
52
+ [75, 100],
53
+ [0, 50],
54
+ [50, 100],
55
+ [0, 100],
56
+ ];
57
+ /**
58
+ * Tool execution status transitions
59
+ */
60
+ const TOOL_STATUS_TRANSITIONS = [
61
+ ['pending', 'executing'],
62
+ ['executing', 'success'],
63
+ ['executing', 'failure'],
64
+ ['success', 'pending'],
65
+ ['failure', 'pending'],
66
+ ];
67
+ // ============================================================================
68
+ // State Delta Cache Implementation
69
+ // ============================================================================
70
+ /**
71
+ * LRU Cache for pre-computed state deltas
72
+ *
73
+ * Reduces latency by caching common state transitions and using
74
+ * pre-computed deltas instead of computing on-demand.
75
+ */
76
+ export class StateDeltaCache {
77
+ config;
78
+ cache;
79
+ preComputedKeys;
80
+ // Metrics
81
+ hits = 0;
82
+ misses = 0;
83
+ evictions = 0;
84
+ constructor(config = {}) {
85
+ this.config = { ...DEFAULT_CONFIG, ...config };
86
+ this.cache = new Map();
87
+ this.preComputedKeys = new Set();
88
+ if (this.config.warmOnInit) {
89
+ this.warmCache();
90
+ }
91
+ }
92
+ // ============================================================================
93
+ // Cache Operations
94
+ // ============================================================================
95
+ /**
96
+ * Get delta from cache or compute on-demand
97
+ *
98
+ * @param fromState - Source state
99
+ * @param toState - Target state
100
+ * @returns JSON Patch operations to transform fromState to toState
101
+ */
102
+ getDelta(fromState, toState) {
103
+ const key = this.computeCacheKey(fromState, toState);
104
+ // Check cache
105
+ const cached = this.cache.get(key);
106
+ if (cached && !this.isExpired(cached)) {
107
+ this.hits++;
108
+ cached.lastAccessedAt = Date.now();
109
+ cached.accessCount++;
110
+ // Move to end for LRU (delete and re-add)
111
+ this.cache.delete(key);
112
+ this.cache.set(key, cached);
113
+ return cached.delta;
114
+ }
115
+ // Cache miss - compute delta
116
+ this.misses++;
117
+ const delta = computeDiff(fromState, toState, this.config.diffConfig);
118
+ // Store in cache
119
+ this.setDelta(key, delta);
120
+ return delta;
121
+ }
122
+ /**
123
+ * Check if a delta is cached for the given states
124
+ */
125
+ has(fromState, toState) {
126
+ const key = this.computeCacheKey(fromState, toState);
127
+ const cached = this.cache.get(key);
128
+ return cached !== undefined && !this.isExpired(cached);
129
+ }
130
+ /**
131
+ * Pre-compute and store a delta in the cache
132
+ */
133
+ precompute(fromState, toState) {
134
+ const key = this.computeCacheKey(fromState, toState);
135
+ const delta = computeDiff(fromState, toState, this.config.diffConfig);
136
+ this.setDelta(key, delta);
137
+ this.preComputedKeys.add(key);
138
+ return delta;
139
+ }
140
+ /**
141
+ * Invalidate a specific cache entry
142
+ */
143
+ invalidate(fromState, toState) {
144
+ const key = this.computeCacheKey(fromState, toState);
145
+ const deleted = this.cache.delete(key);
146
+ if (deleted) {
147
+ this.preComputedKeys.delete(key);
148
+ }
149
+ return deleted;
150
+ }
151
+ /**
152
+ * Invalidate all entries matching a path prefix
153
+ */
154
+ invalidateByPath(pathPrefix) {
155
+ let count = 0;
156
+ // We need to track entries by path, but our key is a hash
157
+ // This is a limitation - for now, we clear the entire cache
158
+ // In production, we'd maintain a secondary index by path
159
+ for (const [key, entry] of this.cache.entries()) {
160
+ // Check if any delta operation targets the given path
161
+ const matchesPath = entry.delta.some((op) => op.path === pathPrefix ||
162
+ op.path.startsWith(pathPrefix + '/'));
163
+ if (matchesPath) {
164
+ this.cache.delete(key);
165
+ this.preComputedKeys.delete(key);
166
+ count++;
167
+ }
168
+ }
169
+ return count;
170
+ }
171
+ /**
172
+ * Clear all cache entries
173
+ */
174
+ clear() {
175
+ this.cache.clear();
176
+ this.preComputedKeys.clear();
177
+ }
178
+ /**
179
+ * Reset metrics
180
+ */
181
+ resetMetrics() {
182
+ this.hits = 0;
183
+ this.misses = 0;
184
+ this.evictions = 0;
185
+ }
186
+ // ============================================================================
187
+ // Cache Warming
188
+ // ============================================================================
189
+ /**
190
+ * Warm the cache with pre-computed common transitions
191
+ */
192
+ warmCache() {
193
+ // Agent status transitions
194
+ for (const [from, to] of AGENT_STATUS_TRANSITIONS) {
195
+ this.precomputePathTransition(this.config.agentStatusPath, from, to, 'agent-status');
196
+ }
197
+ // Progress transitions
198
+ for (const [from, to] of PROGRESS_TRANSITIONS) {
199
+ this.precomputePathTransition(this.config.progressPath, from, to, 'progress');
200
+ }
201
+ // Tool status transitions
202
+ for (const [from, to] of TOOL_STATUS_TRANSITIONS) {
203
+ this.precomputePathTransition(this.config.toolStatusPath, from, to, 'tool-execution');
204
+ }
205
+ }
206
+ /**
207
+ * Pre-compute transition for a specific path
208
+ */
209
+ precomputePathTransition(path, fromValue, toValue, _category) {
210
+ const pathParts = this.parseJsonPointerPath(path);
211
+ const fromState = this.buildStateFromPath(pathParts, fromValue);
212
+ const toState = this.buildStateFromPath(pathParts, toValue);
213
+ this.precompute(fromState, toState);
214
+ }
215
+ /**
216
+ * Parse a JSON Pointer path into segments
217
+ */
218
+ parseJsonPointerPath(path) {
219
+ if (path === '' || path === '/')
220
+ return [];
221
+ if (!path.startsWith('/')) {
222
+ throw new Error(`Invalid JSON Pointer: ${path}`);
223
+ }
224
+ return path.slice(1).split('/');
225
+ }
226
+ /**
227
+ * Build a state object from path segments and value
228
+ */
229
+ buildStateFromPath(pathParts, value) {
230
+ if (pathParts.length === 0) {
231
+ return typeof value === 'object' && value !== null
232
+ ? value
233
+ : {};
234
+ }
235
+ const result = {};
236
+ let current = result;
237
+ for (let i = 0; i < pathParts.length - 1; i++) {
238
+ current[pathParts[i]] = {};
239
+ current = current[pathParts[i]];
240
+ }
241
+ current[pathParts[pathParts.length - 1]] = value;
242
+ return result;
243
+ }
244
+ // ============================================================================
245
+ // Custom Pre-computation
246
+ // ============================================================================
247
+ /**
248
+ * Pre-compute a status transition at a custom path
249
+ */
250
+ precomputeStatusTransition(path, fromStatus, toStatus) {
251
+ const pathParts = this.parseJsonPointerPath(path);
252
+ const fromState = this.buildStateFromPath(pathParts, fromStatus);
253
+ const toState = this.buildStateFromPath(pathParts, toStatus);
254
+ return this.precompute(fromState, toState);
255
+ }
256
+ /**
257
+ * Pre-compute a progress transition at a custom path
258
+ */
259
+ precomputeProgressTransition(path, fromPercent, toPercent) {
260
+ const pathParts = this.parseJsonPointerPath(path);
261
+ const fromState = this.buildStateFromPath(pathParts, fromPercent);
262
+ const toState = this.buildStateFromPath(pathParts, toPercent);
263
+ return this.precompute(fromState, toState);
264
+ }
265
+ /**
266
+ * Pre-compute all transitions between a set of values at a path
267
+ */
268
+ precomputeAllTransitions(path, values) {
269
+ let count = 0;
270
+ const pathParts = this.parseJsonPointerPath(path);
271
+ for (let i = 0; i < values.length; i++) {
272
+ for (let j = 0; j < values.length; j++) {
273
+ if (i !== j) {
274
+ const fromState = this.buildStateFromPath(pathParts, values[i]);
275
+ const toState = this.buildStateFromPath(pathParts, values[j]);
276
+ // Only add if not already equal
277
+ if (!deepEqual(fromState, toState)) {
278
+ this.precompute(fromState, toState);
279
+ count++;
280
+ }
281
+ }
282
+ }
283
+ }
284
+ return count;
285
+ }
286
+ // ============================================================================
287
+ // Metrics
288
+ // ============================================================================
289
+ /**
290
+ * Get current cache metrics
291
+ */
292
+ getMetrics() {
293
+ const total = this.hits + this.misses;
294
+ return {
295
+ hits: this.hits,
296
+ misses: this.misses,
297
+ size: this.cache.size,
298
+ maxSize: this.config.maxSize,
299
+ hitRate: total > 0 ? (this.hits / total) * 100 : 0,
300
+ evictions: this.evictions,
301
+ preComputedEntries: this.preComputedKeys.size,
302
+ };
303
+ }
304
+ /**
305
+ * Get cache size
306
+ */
307
+ get size() {
308
+ return this.cache.size;
309
+ }
310
+ /**
311
+ * Get maximum cache size
312
+ */
313
+ get maxSize() {
314
+ return this.config.maxSize;
315
+ }
316
+ // ============================================================================
317
+ // Internal Methods
318
+ // ============================================================================
319
+ /**
320
+ * Compute cache key from two states
321
+ * Uses SHA-256 hash of JSON-stringified states
322
+ */
323
+ computeCacheKey(fromState, toState) {
324
+ const fromHash = this.hashState(fromState);
325
+ const toHash = this.hashState(toState);
326
+ return `${fromHash}:${toHash}`;
327
+ }
328
+ /**
329
+ * Hash a state object for cache key
330
+ */
331
+ hashState(state) {
332
+ // Ensure consistent key ordering by sorting
333
+ const serialized = JSON.stringify(state, Object.keys(state).sort());
334
+ return createHash('sha256').update(serialized).digest('hex').substring(0, 16);
335
+ }
336
+ /**
337
+ * Set a delta in the cache with LRU eviction
338
+ */
339
+ setDelta(key, delta) {
340
+ // Evict if at capacity (LRU)
341
+ while (this.cache.size >= this.config.maxSize) {
342
+ this.evictLRU();
343
+ }
344
+ const now = Date.now();
345
+ this.cache.set(key, {
346
+ delta,
347
+ createdAt: now,
348
+ lastAccessedAt: now,
349
+ accessCount: 0,
350
+ });
351
+ }
352
+ /**
353
+ * Evict the least recently used entry
354
+ */
355
+ evictLRU() {
356
+ // Map maintains insertion order, but we need LRU by access time
357
+ let oldestKey = null;
358
+ let oldestTime = Infinity;
359
+ for (const [key, entry] of this.cache.entries()) {
360
+ // Prefer evicting non-precomputed entries first
361
+ const isPrecomputed = this.preComputedKeys.has(key);
362
+ if (!isPrecomputed && entry.lastAccessedAt < oldestTime) {
363
+ oldestTime = entry.lastAccessedAt;
364
+ oldestKey = key;
365
+ }
366
+ }
367
+ // If all entries are pre-computed, evict oldest pre-computed
368
+ if (oldestKey === null) {
369
+ for (const [key, entry] of this.cache.entries()) {
370
+ if (entry.lastAccessedAt < oldestTime) {
371
+ oldestTime = entry.lastAccessedAt;
372
+ oldestKey = key;
373
+ }
374
+ }
375
+ }
376
+ if (oldestKey !== null) {
377
+ this.cache.delete(oldestKey);
378
+ this.preComputedKeys.delete(oldestKey);
379
+ this.evictions++;
380
+ }
381
+ }
382
+ /**
383
+ * Check if a cache entry is expired
384
+ */
385
+ isExpired(entry) {
386
+ if (this.config.ttl <= 0) {
387
+ return false; // No TTL
388
+ }
389
+ return Date.now() - entry.createdAt > this.config.ttl;
390
+ }
391
+ }
392
+ // ============================================================================
393
+ // Factory Function
394
+ // ============================================================================
395
+ /**
396
+ * Create a new StateDeltaCache instance
397
+ */
398
+ export function createStateDeltaCache(config = {}) {
399
+ return new StateDeltaCache(config);
400
+ }
401
+ // ============================================================================
402
+ // Utilities
403
+ // ============================================================================
404
+ /**
405
+ * Get all pre-defined agent status values
406
+ */
407
+ export function getAgentStatusValues() {
408
+ return ['idle', 'running', 'completed', 'error', 'cancelled'];
409
+ }
410
+ /**
411
+ * Get all pre-defined progress milestones
412
+ */
413
+ export function getProgressMilestones() {
414
+ return [0, 25, 50, 75, 100];
415
+ }
416
+ /**
417
+ * Get all pre-defined tool status values
418
+ */
419
+ export function getToolStatusValues() {
420
+ return ['pending', 'executing', 'success', 'failure'];
421
+ }
422
+ //# sourceMappingURL=state-delta-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-delta-cache.js","sourceRoot":"","sources":["../../../src/adapters/ag-ui/state-delta-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,249 @@
1
+ /**
2
+ * AG-UI State Manager
3
+ *
4
+ * Manages agent state for AG-UI STATE_SNAPSHOT and STATE_DELTA synchronization.
5
+ * Provides atomic state updates with automatic delta computation.
6
+ *
7
+ * @module adapters/ag-ui/state-manager
8
+ */
9
+ import { EventEmitter } from 'events';
10
+ import type { JsonPatchOperation } from './event-types.js';
11
+ import { type PatchResult, type DiffConfig } from './json-patch.js';
12
+ import { StateDeltaCache, type StateDeltaCacheConfig } from './state-delta-cache.js';
13
+ /**
14
+ * State manager configuration
15
+ */
16
+ export interface StateManagerConfig {
17
+ /** Initial state */
18
+ initialState?: Record<string, unknown>;
19
+ /** Whether to auto-increment version on state changes */
20
+ autoVersion?: boolean;
21
+ /** Maximum state history to retain (for rollback) */
22
+ maxHistory?: number;
23
+ /** Whether to emit events on state changes */
24
+ emitEvents?: boolean;
25
+ /** Custom ID generator */
26
+ idGenerator?: () => string;
27
+ /** Custom timestamp generator */
28
+ timestampGenerator?: () => string;
29
+ /** Diff configuration */
30
+ diffConfig?: DiffConfig;
31
+ /** Enable delta caching for optimized diff computation */
32
+ enableCache?: boolean;
33
+ /** Delta cache configuration */
34
+ cacheConfig?: StateDeltaCacheConfig;
35
+ }
36
+ /**
37
+ * State change event payload
38
+ */
39
+ export interface StateChangeEvent {
40
+ /** Change type */
41
+ type: 'snapshot' | 'delta';
42
+ /** Current version */
43
+ version: number;
44
+ /** Previous version (for delta) */
45
+ previousVersion?: number;
46
+ /** Delta operations (for delta type) */
47
+ delta?: JsonPatchOperation[];
48
+ /** Full state (for snapshot type) */
49
+ state?: Record<string, unknown>;
50
+ /** Timestamp of change */
51
+ timestamp: string;
52
+ }
53
+ /**
54
+ * State history entry
55
+ */
56
+ export interface StateHistoryEntry {
57
+ /** State version */
58
+ version: number;
59
+ /** State snapshot */
60
+ state: Record<string, unknown>;
61
+ /** Timestamp */
62
+ timestamp: string;
63
+ /** Delta from previous state */
64
+ deltaFromPrevious?: JsonPatchOperation[];
65
+ }
66
+ /**
67
+ * AG-UI State Manager
68
+ *
69
+ * Manages bidirectional state synchronization between agent and UI
70
+ * using STATE_SNAPSHOT and STATE_DELTA events.
71
+ */
72
+ export declare class StateManager extends EventEmitter {
73
+ private config;
74
+ private state;
75
+ private version;
76
+ private history;
77
+ private lastSnapshotVersion;
78
+ private connectionId;
79
+ private readonly deltaCache;
80
+ constructor(config?: StateManagerConfig);
81
+ /**
82
+ * Get the current state as a snapshot
83
+ */
84
+ getSnapshot(): Record<string, unknown>;
85
+ /**
86
+ * Get the current state version
87
+ */
88
+ getVersion(): number;
89
+ /**
90
+ * Generate a STATE_SNAPSHOT event payload
91
+ */
92
+ generateSnapshotEvent(): {
93
+ type: 'STATE_SNAPSHOT';
94
+ state: Record<string, unknown>;
95
+ version: number;
96
+ };
97
+ /**
98
+ * Check if a snapshot should be sent (e.g., on reconnection)
99
+ */
100
+ shouldSendSnapshot(clientVersion?: number): boolean;
101
+ /**
102
+ * Get the current state (readonly reference)
103
+ */
104
+ getState(): Readonly<Record<string, unknown>>;
105
+ /**
106
+ * Set the entire state, computing delta from current state
107
+ * Uses delta cache for optimized computation of common transitions
108
+ * Returns the delta operations
109
+ */
110
+ setState(newState: Record<string, unknown>): JsonPatchOperation[];
111
+ /**
112
+ * Update a specific path in the state
113
+ */
114
+ updatePath(path: string, value: unknown): JsonPatchOperation[];
115
+ /**
116
+ * Remove a value at a specific path
117
+ */
118
+ removePath(path: string): JsonPatchOperation[];
119
+ /**
120
+ * Merge an object into the state at a specific path
121
+ */
122
+ mergePath(path: string, value: Record<string, unknown>): JsonPatchOperation[];
123
+ /**
124
+ * Compute delta between current state and provided state
125
+ * Uses delta cache for optimized computation if enabled
126
+ */
127
+ computeDelta(oldState: Record<string, unknown>, newState: Record<string, unknown>): JsonPatchOperation[];
128
+ /**
129
+ * Apply a delta (JSON Patch) to the current state
130
+ * Atomic operation with rollback on error
131
+ */
132
+ applyDelta(delta: JsonPatchOperation[]): JsonPatchOperation[];
133
+ /**
134
+ * Generate a STATE_DELTA event payload for the given delta
135
+ */
136
+ generateDeltaEvent(delta: JsonPatchOperation[]): {
137
+ type: 'STATE_DELTA';
138
+ delta: JsonPatchOperation[];
139
+ version: number;
140
+ };
141
+ /**
142
+ * Apply patch from external source (e.g., client updates)
143
+ * Returns PatchResult for error handling
144
+ */
145
+ applyExternalPatch(patch: JsonPatchOperation[]): PatchResult;
146
+ /**
147
+ * Get state history
148
+ */
149
+ getHistory(): readonly StateHistoryEntry[];
150
+ /**
151
+ * Get state at a specific version
152
+ */
153
+ getStateAtVersion(version: number): Record<string, unknown> | undefined;
154
+ /**
155
+ * Rollback to a previous version
156
+ */
157
+ rollback(targetVersion: number): JsonPatchOperation[];
158
+ /**
159
+ * Add entry to history with size limit enforcement
160
+ */
161
+ private addToHistory;
162
+ /**
163
+ * Handle new connection (emit snapshot)
164
+ */
165
+ onConnection(connectionId: string): {
166
+ type: 'STATE_SNAPSHOT';
167
+ state: Record<string, unknown>;
168
+ version: number;
169
+ };
170
+ /**
171
+ * Handle reconnection (emit snapshot if needed)
172
+ */
173
+ onReconnection(connectionId: string, lastKnownVersion?: number): {
174
+ type: 'STATE_SNAPSHOT';
175
+ state: Record<string, unknown>;
176
+ version: number;
177
+ } | null;
178
+ /**
179
+ * Handle disconnection
180
+ */
181
+ onDisconnection(connectionId: string): void;
182
+ /**
183
+ * Get current connection ID
184
+ */
185
+ getConnectionId(): string | null;
186
+ /**
187
+ * Get value at a specific path
188
+ */
189
+ getValue<T = unknown>(path: string): T | undefined;
190
+ /**
191
+ * Check if path exists in state
192
+ */
193
+ hasPath(path: string): boolean;
194
+ /**
195
+ * Check if current state equals the provided state
196
+ */
197
+ equals(otherState: Record<string, unknown>): boolean;
198
+ /**
199
+ * Reset state to initial state
200
+ */
201
+ reset(): JsonPatchOperation[];
202
+ /**
203
+ * Clear all state
204
+ */
205
+ clear(): JsonPatchOperation[];
206
+ /**
207
+ * Clear history only (keep current state)
208
+ */
209
+ clearHistory(): void;
210
+ /**
211
+ * Get the delta cache instance (if enabled)
212
+ */
213
+ getDeltaCache(): StateDeltaCache | null;
214
+ /**
215
+ * Check if delta caching is enabled
216
+ */
217
+ isCacheEnabled(): boolean;
218
+ /**
219
+ * Get cache metrics (if cache is enabled)
220
+ */
221
+ getCacheMetrics(): {
222
+ hits: number;
223
+ misses: number;
224
+ size: number;
225
+ maxSize: number;
226
+ hitRate: number;
227
+ evictions: number;
228
+ preComputedEntries: number;
229
+ } | null;
230
+ /**
231
+ * Pre-compute delta for a specific state transition
232
+ * Useful for warming cache with known common transitions
233
+ */
234
+ precomputeTransition(fromState: Record<string, unknown>, toState: Record<string, unknown>): JsonPatchOperation[] | null;
235
+ /**
236
+ * Warm cache with common agent state transitions
237
+ */
238
+ warmCache(): void;
239
+ /**
240
+ * Clear the delta cache
241
+ */
242
+ clearCache(): void;
243
+ }
244
+ /**
245
+ * Create a new StateManager instance
246
+ */
247
+ export declare function createStateManager(config?: StateManagerConfig): StateManager;
248
+ export type { PatchResult, DiffConfig };
249
+ //# sourceMappingURL=state-manager.d.ts.map