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,425 @@
1
+ /**
2
+ * JSON Pointer Resolver (RFC 6901)
3
+ *
4
+ * Implements RFC 6901 JSON Pointer specification for resolving,
5
+ * setting, and manipulating data within nested objects.
6
+ *
7
+ * @see https://www.rfc-editor.org/rfc/rfc6901
8
+ * @module adapters/a2ui/data/json-pointer-resolver
9
+ */
10
+ // ============================================================================
11
+ // Types
12
+ // ============================================================================
13
+ /**
14
+ * Error thrown for invalid JSON Pointer operations
15
+ */
16
+ export class JsonPointerError extends Error {
17
+ pointer;
18
+ code;
19
+ constructor(message, pointer, code) {
20
+ super(message);
21
+ this.pointer = pointer;
22
+ this.code = code;
23
+ this.name = 'JsonPointerError';
24
+ }
25
+ }
26
+ // ============================================================================
27
+ // Core Functions
28
+ // ============================================================================
29
+ /**
30
+ * Escape a JSON Pointer segment according to RFC 6901
31
+ *
32
+ * ~ -> ~0
33
+ * / -> ~1
34
+ *
35
+ * @param segment - The segment to escape
36
+ * @returns Escaped segment
37
+ */
38
+ export function escapeSegment(segment) {
39
+ return segment.replace(/~/g, '~0').replace(/\//g, '~1');
40
+ }
41
+ /**
42
+ * Unescape a JSON Pointer segment according to RFC 6901
43
+ *
44
+ * ~0 -> ~
45
+ * ~1 -> /
46
+ *
47
+ * @param segment - The escaped segment
48
+ * @returns Unescaped segment
49
+ */
50
+ export function unescapeSegment(segment) {
51
+ // Must process ~1 before ~0 to avoid double-unescaping
52
+ return segment.replace(/~1/g, '/').replace(/~0/g, '~');
53
+ }
54
+ /**
55
+ * Parse a JSON Pointer string into path segments
56
+ *
57
+ * @param pointer - JSON Pointer string (must start with '/' or be empty)
58
+ * @returns Array of path segments
59
+ * @throws {JsonPointerError} If pointer format is invalid
60
+ *
61
+ * @example
62
+ * parseJsonPointer('/metrics/coverage/line') -> ['metrics', 'coverage', 'line']
63
+ * parseJsonPointer('/users/0/name') -> ['users', '0', 'name']
64
+ * parseJsonPointer('') -> []
65
+ */
66
+ export function parseJsonPointer(pointer) {
67
+ // Empty pointer refers to the root document
68
+ if (pointer === '') {
69
+ return [];
70
+ }
71
+ // Non-empty pointer must start with '/'
72
+ if (!pointer.startsWith('/')) {
73
+ throw new JsonPointerError(`JSON Pointer must start with '/' or be empty, got: "${pointer}"`, pointer, 'INVALID_POINTER_FORMAT');
74
+ }
75
+ // Split and unescape segments (skip the first empty segment from split)
76
+ const segments = pointer.slice(1).split('/');
77
+ return segments.map(unescapeSegment);
78
+ }
79
+ /**
80
+ * Build a JSON Pointer string from path segments
81
+ *
82
+ * @param segments - Array of path segments
83
+ * @returns JSON Pointer string
84
+ *
85
+ * @example
86
+ * buildJsonPointer(['metrics', 'coverage']) -> '/metrics/coverage'
87
+ * buildJsonPointer([]) -> ''
88
+ */
89
+ export function buildJsonPointer(segments) {
90
+ if (segments.length === 0) {
91
+ return '';
92
+ }
93
+ return '/' + segments.map(escapeSegment).join('/');
94
+ }
95
+ /**
96
+ * Validate a JSON Pointer string format
97
+ *
98
+ * @param pointer - String to validate
99
+ * @returns True if valid JSON Pointer format
100
+ */
101
+ export function isValidPointer(pointer) {
102
+ if (pointer === '') {
103
+ return true;
104
+ }
105
+ if (!pointer.startsWith('/')) {
106
+ return false;
107
+ }
108
+ // Check for invalid escape sequences
109
+ // Valid: ~0 and ~1, Invalid: ~ followed by anything else
110
+ const invalidEscapePattern = /~(?![01])/;
111
+ return !invalidEscapePattern.test(pointer);
112
+ }
113
+ /**
114
+ * Resolve a JSON Pointer against a data object
115
+ *
116
+ * @param data - The data object to resolve against
117
+ * @param pointer - JSON Pointer string
118
+ * @returns The resolved value, or undefined if not found
119
+ *
120
+ * @example
121
+ * const data = { metrics: { coverage: { line: 85 } } };
122
+ * resolvePointer(data, '/metrics/coverage/line') -> 85
123
+ * resolvePointer(data, '/metrics/unknown') -> undefined
124
+ */
125
+ export function resolvePointer(data, pointer) {
126
+ const result = resolvePointerWithInfo(data, pointer);
127
+ return result.value;
128
+ }
129
+ /**
130
+ * Resolve a JSON Pointer with additional information about the resolution
131
+ *
132
+ * @param data - The data object to resolve against
133
+ * @param pointer - JSON Pointer string
134
+ * @returns Resolution result with found flag, value, parent, and key
135
+ */
136
+ export function resolvePointerWithInfo(data, pointer) {
137
+ // Validate pointer format
138
+ if (!isValidPointer(pointer)) {
139
+ return { found: false, value: undefined };
140
+ }
141
+ const segments = parseJsonPointer(pointer);
142
+ // Empty pointer returns the root
143
+ if (segments.length === 0) {
144
+ return { found: true, value: data };
145
+ }
146
+ let current = data;
147
+ let parent = undefined;
148
+ let lastKey = undefined;
149
+ for (let i = 0; i < segments.length; i++) {
150
+ const segment = segments[i];
151
+ // Cannot navigate into null or primitives
152
+ if (current === null || current === undefined) {
153
+ return { found: false, value: undefined };
154
+ }
155
+ if (typeof current !== 'object') {
156
+ return { found: false, value: undefined };
157
+ }
158
+ parent = current;
159
+ if (Array.isArray(current)) {
160
+ // Array access - segment must be a valid array index or '-'
161
+ if (segment === '-') {
162
+ // '-' refers to the element after the last (for appending)
163
+ // For resolution, treat as not found
164
+ return { found: false, value: undefined };
165
+ }
166
+ const index = parseInt(segment, 10);
167
+ if (isNaN(index) || index < 0 || index.toString() !== segment) {
168
+ return { found: false, value: undefined };
169
+ }
170
+ if (index >= current.length) {
171
+ return { found: false, value: undefined };
172
+ }
173
+ lastKey = index;
174
+ current = current[index];
175
+ }
176
+ else {
177
+ // Object access
178
+ const obj = current;
179
+ if (!(segment in obj)) {
180
+ return { found: false, value: undefined };
181
+ }
182
+ lastKey = segment;
183
+ current = obj[segment];
184
+ }
185
+ }
186
+ return {
187
+ found: true,
188
+ value: current,
189
+ parent,
190
+ key: lastKey,
191
+ };
192
+ }
193
+ /**
194
+ * Check if a JSON Pointer path exists in the data
195
+ *
196
+ * @param data - The data object to check
197
+ * @param pointer - JSON Pointer string
198
+ * @returns True if the path exists
199
+ */
200
+ export function pointerExists(data, pointer) {
201
+ const result = resolvePointerWithInfo(data, pointer);
202
+ return result.found;
203
+ }
204
+ /**
205
+ * Set a value at a JSON Pointer location
206
+ *
207
+ * @param data - The data object to modify (must be an object or array)
208
+ * @param pointer - JSON Pointer string
209
+ * @param value - The value to set
210
+ * @throws {JsonPointerError} If the path cannot be set
211
+ *
212
+ * @example
213
+ * const data = { metrics: { coverage: 75 } };
214
+ * setAtPointer(data, '/metrics/coverage', 85);
215
+ * // data.metrics.coverage is now 85
216
+ */
217
+ export function setAtPointer(data, pointer, value) {
218
+ if (!isValidPointer(pointer)) {
219
+ throw new JsonPointerError(`Invalid JSON Pointer format: "${pointer}"`, pointer, 'INVALID_POINTER_FORMAT');
220
+ }
221
+ const segments = parseJsonPointer(pointer);
222
+ // Cannot set the root
223
+ if (segments.length === 0) {
224
+ throw new JsonPointerError('Cannot replace the root document', pointer, 'CANNOT_SET_ON_PRIMITIVE');
225
+ }
226
+ // Navigate to the parent
227
+ let current = data;
228
+ for (let i = 0; i < segments.length - 1; i++) {
229
+ const segment = segments[i];
230
+ if (current === null || current === undefined || typeof current !== 'object') {
231
+ throw new JsonPointerError(`Cannot navigate through non-object at segment "${segment}"`, pointer, 'PATH_NOT_FOUND');
232
+ }
233
+ if (Array.isArray(current)) {
234
+ const index = parseInt(segment, 10);
235
+ if (isNaN(index) || index < 0 || index >= current.length) {
236
+ throw new JsonPointerError(`Invalid array index "${segment}"`, pointer, 'INVALID_ARRAY_INDEX');
237
+ }
238
+ current = current[index];
239
+ }
240
+ else {
241
+ const obj = current;
242
+ if (!(segment in obj)) {
243
+ // Auto-create intermediate objects
244
+ obj[segment] = {};
245
+ }
246
+ current = obj[segment];
247
+ }
248
+ }
249
+ // Set the final value
250
+ const lastSegment = segments[segments.length - 1];
251
+ if (current === null || current === undefined || typeof current !== 'object') {
252
+ throw new JsonPointerError('Cannot set property on non-object', pointer, 'CANNOT_SET_ON_PRIMITIVE');
253
+ }
254
+ if (Array.isArray(current)) {
255
+ if (lastSegment === '-') {
256
+ // '-' means append to array
257
+ current.push(value);
258
+ }
259
+ else {
260
+ const index = parseInt(lastSegment, 10);
261
+ if (isNaN(index) || index < 0) {
262
+ throw new JsonPointerError(`Invalid array index "${lastSegment}"`, pointer, 'INVALID_ARRAY_INDEX');
263
+ }
264
+ // Allow setting at index equal to length (append)
265
+ if (index > current.length) {
266
+ throw new JsonPointerError(`Array index ${index} out of bounds (length: ${current.length})`, pointer, 'INVALID_ARRAY_INDEX');
267
+ }
268
+ current[index] = value;
269
+ }
270
+ }
271
+ else {
272
+ current[lastSegment] = value;
273
+ }
274
+ }
275
+ /**
276
+ * Delete a value at a JSON Pointer location
277
+ *
278
+ * @param data - The data object to modify
279
+ * @param pointer - JSON Pointer string
280
+ * @returns True if the value was deleted, false if it didn't exist
281
+ */
282
+ export function deleteAtPointer(data, pointer) {
283
+ if (!isValidPointer(pointer)) {
284
+ return false;
285
+ }
286
+ const segments = parseJsonPointer(pointer);
287
+ // Cannot delete the root
288
+ if (segments.length === 0) {
289
+ return false;
290
+ }
291
+ const result = resolvePointerWithInfo(data, buildJsonPointer(segments.slice(0, -1)));
292
+ if (!result.found || result.value === null || typeof result.value !== 'object') {
293
+ return false;
294
+ }
295
+ const lastSegment = segments[segments.length - 1];
296
+ const parent = result.value;
297
+ if (Array.isArray(parent)) {
298
+ const index = parseInt(lastSegment, 10);
299
+ if (isNaN(index) || index < 0 || index >= parent.length) {
300
+ return false;
301
+ }
302
+ parent.splice(index, 1);
303
+ return true;
304
+ }
305
+ else {
306
+ const obj = parent;
307
+ if (!(lastSegment in obj)) {
308
+ return false;
309
+ }
310
+ delete obj[lastSegment];
311
+ return true;
312
+ }
313
+ }
314
+ /**
315
+ * Get all paths in a data object as JSON Pointers
316
+ *
317
+ * @param data - The data object to traverse
318
+ * @param maxDepth - Maximum depth to traverse (default: 10)
319
+ * @returns Array of JSON Pointer strings
320
+ */
321
+ export function getAllPaths(data, maxDepth = 10) {
322
+ const paths = [];
323
+ function traverse(current, segments, depth) {
324
+ // Add current path
325
+ if (segments.length > 0) {
326
+ paths.push(buildJsonPointer(segments));
327
+ }
328
+ // Stop at max depth or non-object
329
+ if (depth >= maxDepth || current === null || typeof current !== 'object') {
330
+ return;
331
+ }
332
+ if (Array.isArray(current)) {
333
+ for (let i = 0; i < current.length; i++) {
334
+ traverse(current[i], [...segments, i.toString()], depth + 1);
335
+ }
336
+ }
337
+ else {
338
+ for (const key of Object.keys(current)) {
339
+ traverse(current[key], [...segments, key], depth + 1);
340
+ }
341
+ }
342
+ }
343
+ traverse(data, [], 0);
344
+ return paths;
345
+ }
346
+ /**
347
+ * Check if a pointer is a parent of another pointer
348
+ *
349
+ * @param parent - Potential parent pointer
350
+ * @param child - Potential child pointer
351
+ * @returns True if parent is an ancestor of child
352
+ *
353
+ * @example
354
+ * isParentPointer('/metrics', '/metrics/coverage') -> true
355
+ * isParentPointer('/metrics/coverage', '/metrics') -> false
356
+ */
357
+ export function isParentPointer(parent, child) {
358
+ if (parent === '') {
359
+ return child !== '';
360
+ }
361
+ if (!child.startsWith(parent)) {
362
+ return false;
363
+ }
364
+ // Must be followed by '/' or be exact match
365
+ const remaining = child.slice(parent.length);
366
+ return remaining.startsWith('/');
367
+ }
368
+ /**
369
+ * Get the parent pointer of a given pointer
370
+ *
371
+ * @param pointer - JSON Pointer string
372
+ * @returns Parent pointer, or undefined for root
373
+ */
374
+ export function getParentPointer(pointer) {
375
+ const segments = parseJsonPointer(pointer);
376
+ if (segments.length === 0) {
377
+ return undefined;
378
+ }
379
+ return buildJsonPointer(segments.slice(0, -1));
380
+ }
381
+ /**
382
+ * Get the last segment (key) of a pointer
383
+ *
384
+ * @param pointer - JSON Pointer string
385
+ * @returns The last segment, or undefined for root
386
+ */
387
+ export function getPointerKey(pointer) {
388
+ const segments = parseJsonPointer(pointer);
389
+ if (segments.length === 0) {
390
+ return undefined;
391
+ }
392
+ return segments[segments.length - 1];
393
+ }
394
+ /**
395
+ * Join two pointers together
396
+ *
397
+ * @param base - Base pointer
398
+ * @param relative - Relative pointer to append
399
+ * @returns Combined pointer
400
+ */
401
+ export function joinPointers(base, relative) {
402
+ const baseSegments = parseJsonPointer(base);
403
+ const relativeSegments = parseJsonPointer(relative);
404
+ return buildJsonPointer([...baseSegments, ...relativeSegments]);
405
+ }
406
+ /**
407
+ * Create a relative pointer from an absolute pointer to another
408
+ *
409
+ * @param from - Starting pointer
410
+ * @param to - Target pointer
411
+ * @returns Relative segments needed to go from 'from' to 'to'
412
+ */
413
+ export function getRelativePath(from, to) {
414
+ const fromSegments = parseJsonPointer(from);
415
+ const toSegments = parseJsonPointer(to);
416
+ // Find common prefix
417
+ let commonLength = 0;
418
+ while (commonLength < fromSegments.length &&
419
+ commonLength < toSegments.length &&
420
+ fromSegments[commonLength] === toSegments[commonLength]) {
421
+ commonLength++;
422
+ }
423
+ return toSegments.slice(commonLength);
424
+ }
425
+ //# sourceMappingURL=json-pointer-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-pointer-resolver.js","sourceRoot":"","sources":["../../../../src/adapters/a2ui/data/json-pointer-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Reactive Data Store
3
+ *
4
+ * Provides a reactive data store with path-specific subscriptions,
5
+ * change detection, and batch updates for A2UI data binding.
6
+ *
7
+ * @module adapters/a2ui/data/reactive-store
8
+ */
9
+ /**
10
+ * Callback for store change notifications
11
+ */
12
+ export type ChangeCallback<T = unknown> = (value: T, previousValue: T | undefined) => void;
13
+ /**
14
+ * Callback for global change notifications
15
+ */
16
+ export type GlobalChangeCallback = (data: Record<string, unknown>, changes: StoreChange[]) => void;
17
+ /**
18
+ * Store change record
19
+ */
20
+ export interface StoreChange {
21
+ /** The JSON Pointer path that changed */
22
+ readonly path: string;
23
+ /** The new value */
24
+ readonly newValue: unknown;
25
+ /** The previous value */
26
+ readonly previousValue: unknown;
27
+ /** Type of change */
28
+ readonly type: 'set' | 'delete' | 'batch';
29
+ }
30
+ /**
31
+ * Batch update operation
32
+ */
33
+ export interface BatchUpdate {
34
+ /** JSON Pointer path */
35
+ readonly pointer: string;
36
+ /** Value to set (undefined for delete) */
37
+ readonly value: unknown;
38
+ /** Operation type */
39
+ readonly operation?: 'set' | 'delete';
40
+ }
41
+ /**
42
+ * Subscription handle for unsubscribing
43
+ */
44
+ export interface Subscription {
45
+ /** Unsubscribe from changes */
46
+ unsubscribe: () => void;
47
+ }
48
+ /**
49
+ * Reactive store configuration
50
+ */
51
+ export interface ReactiveStoreConfig {
52
+ /** Initial data */
53
+ readonly initialData?: Record<string, unknown>;
54
+ /** Whether to deep clone data on get/set (default: true) */
55
+ readonly deepClone?: boolean;
56
+ /** Whether to emit changes synchronously (default: true) */
57
+ readonly synchronous?: boolean;
58
+ /** Debounce time for async notifications (ms) */
59
+ readonly debounceMs?: number;
60
+ }
61
+ /**
62
+ * Interface for reactive data store
63
+ */
64
+ export interface IReactiveStore {
65
+ /** Get entire data object */
66
+ getData(): Record<string, unknown>;
67
+ /** Set entire data object */
68
+ setData(data: Record<string, unknown>): void;
69
+ /** Get value at path */
70
+ getAt<T>(pointer: string): T | undefined;
71
+ /** Set value at path */
72
+ setAt(pointer: string, value: unknown): void;
73
+ /** Delete value at path */
74
+ deleteAt(pointer: string): boolean;
75
+ /** Check if path exists */
76
+ has(pointer: string): boolean;
77
+ /** Subscribe to changes at path */
78
+ subscribe<T>(pointer: string, callback: ChangeCallback<T>): Subscription;
79
+ /** Subscribe to any change */
80
+ subscribeAll(callback: GlobalChangeCallback): Subscription;
81
+ /** Batch multiple updates with single notification */
82
+ batch(updates: BatchUpdate[]): void;
83
+ /** Get current subscription count */
84
+ getSubscriptionCount(): number;
85
+ /** Clear all data and subscriptions */
86
+ clear(): void;
87
+ }
88
+ /**
89
+ * Reactive Data Store
90
+ *
91
+ * Provides a reactive store with:
92
+ * - Path-specific subscriptions using JSON Pointers
93
+ * - Change detection and notification
94
+ * - Batch updates for performance
95
+ * - Global change subscriptions
96
+ */
97
+ export declare class ReactiveStore implements IReactiveStore {
98
+ private data;
99
+ private readonly config;
100
+ private readonly pathSubscriptions;
101
+ private readonly globalSubscriptions;
102
+ private subscriptionIdCounter;
103
+ private pendingNotifications;
104
+ private notificationTimeout;
105
+ constructor(config?: ReactiveStoreConfig);
106
+ /**
107
+ * Get the entire data object
108
+ *
109
+ * @returns Copy of the data object (or reference if deepClone is false)
110
+ */
111
+ getData(): Record<string, unknown>;
112
+ /**
113
+ * Set the entire data object
114
+ *
115
+ * @param data - New data object
116
+ */
117
+ setData(data: Record<string, unknown>): void;
118
+ /**
119
+ * Get value at a specific path
120
+ *
121
+ * @param pointer - JSON Pointer path
122
+ * @returns Value at path, or undefined if not found
123
+ */
124
+ getAt<T>(pointer: string): T | undefined;
125
+ /**
126
+ * Set value at a specific path
127
+ *
128
+ * @param pointer - JSON Pointer path
129
+ * @param value - Value to set
130
+ */
131
+ setAt(pointer: string, value: unknown): void;
132
+ /**
133
+ * Delete value at a specific path
134
+ *
135
+ * @param pointer - JSON Pointer path
136
+ * @returns True if value was deleted
137
+ */
138
+ deleteAt(pointer: string): boolean;
139
+ /**
140
+ * Check if a path exists in the data
141
+ *
142
+ * @param pointer - JSON Pointer path
143
+ * @returns True if path exists
144
+ */
145
+ has(pointer: string): boolean;
146
+ /**
147
+ * Subscribe to changes at a specific path
148
+ *
149
+ * The callback will be invoked when:
150
+ * - The exact path changes
151
+ * - A parent path changes (which affects this path)
152
+ * - A child path changes (if watching an object/array)
153
+ *
154
+ * @param pointer - JSON Pointer path to watch
155
+ * @param callback - Callback invoked on change
156
+ * @returns Subscription handle with unsubscribe method
157
+ */
158
+ subscribe<T>(pointer: string, callback: ChangeCallback<T>): Subscription;
159
+ /**
160
+ * Subscribe to any change in the store
161
+ *
162
+ * @param callback - Callback invoked on any change
163
+ * @returns Subscription handle with unsubscribe method
164
+ */
165
+ subscribeAll(callback: GlobalChangeCallback): Subscription;
166
+ /**
167
+ * Batch multiple updates with a single notification
168
+ *
169
+ * Updates are applied in order, and subscribers are notified once
170
+ * after all updates are complete.
171
+ *
172
+ * @param updates - Array of updates to apply
173
+ */
174
+ batch(updates: BatchUpdate[]): void;
175
+ /**
176
+ * Get the current number of subscriptions
177
+ */
178
+ getSubscriptionCount(): number;
179
+ /**
180
+ * Clear all data and subscriptions
181
+ */
182
+ clear(): void;
183
+ /**
184
+ * Notify subscribers of changes
185
+ */
186
+ private notifyChanges;
187
+ /**
188
+ * Schedule asynchronous notifications
189
+ */
190
+ private scheduleNotifications;
191
+ /**
192
+ * Process and dispatch notifications
193
+ */
194
+ private processNotifications;
195
+ /**
196
+ * Check if a subscribed path should be notified for a change at a given path
197
+ */
198
+ private shouldNotifyPath;
199
+ /**
200
+ * Deep clone a value
201
+ */
202
+ private deepClone;
203
+ }
204
+ /**
205
+ * Create a reactive store with the given configuration
206
+ */
207
+ export declare function createReactiveStore(config?: ReactiveStoreConfig): ReactiveStore;
208
+ /**
209
+ * Create a computed value that updates when dependencies change
210
+ *
211
+ * @param store - Reactive store
212
+ * @param dependencies - Array of paths this computation depends on
213
+ * @param compute - Function to compute the value
214
+ * @param callback - Callback to invoke when computed value changes
215
+ * @returns Subscription handle
216
+ */
217
+ export declare function createComputed<T>(store: IReactiveStore, dependencies: string[], compute: (data: Record<string, unknown>) => T, callback: (value: T) => void): Subscription;
218
+ /**
219
+ * Create a selector that extracts and transforms data
220
+ *
221
+ * @param store - Reactive store
222
+ * @param path - Path to select from
223
+ * @param transform - Transform function (optional)
224
+ * @returns Current transformed value and subscribe function
225
+ */
226
+ export declare function createSelector<T, R = T>(store: IReactiveStore, path: string, transform?: (value: T | undefined) => R): {
227
+ getValue: () => R;
228
+ subscribe: (callback: (value: R) => void) => Subscription;
229
+ };
230
+ /**
231
+ * Merge multiple stores into a single namespace
232
+ *
233
+ * @param stores - Map of namespace to store
234
+ * @returns Combined store interface
235
+ */
236
+ export declare function combineStores(stores: Map<string, IReactiveStore>): {
237
+ getAt: <T>(namespace: string, pointer: string) => T | undefined;
238
+ setAt: (namespace: string, pointer: string, value: unknown) => void;
239
+ subscribe: <T>(namespace: string, pointer: string, callback: ChangeCallback<T>) => Subscription;
240
+ };
241
+ //# sourceMappingURL=reactive-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-store.d.ts","sourceRoot":"","sources":["../../../../src/adapters/a2ui/data/reactive-store.ts"],"names":[],"mappings":"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"}