agentic-qe 2.7.4 → 2.8.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 (519) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +67 -2
  3. package/dist/cli/commands/agent/spawn.d.ts +12 -1
  4. package/dist/cli/commands/agent/spawn.d.ts.map +1 -1
  5. package/dist/cli/commands/agent/spawn.js +95 -8
  6. package/dist/cli/commands/agent/spawn.js.map +1 -1
  7. package/dist/cli/index.js +91 -0
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  10. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts +134 -0
  11. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts.map +1 -0
  12. package/dist/edge/adapters/BrowserHNSWAdapter.js +484 -0
  13. package/dist/edge/adapters/BrowserHNSWAdapter.js.map +1 -0
  14. package/dist/edge/adapters/IndexedDBStorage.d.ts +114 -0
  15. package/dist/edge/adapters/IndexedDBStorage.d.ts.map +1 -0
  16. package/dist/edge/adapters/IndexedDBStorage.js +478 -0
  17. package/dist/edge/adapters/IndexedDBStorage.js.map +1 -0
  18. package/dist/edge/adapters/index.d.ts +12 -0
  19. package/dist/edge/adapters/index.d.ts.map +1 -0
  20. package/dist/edge/adapters/index.js +22 -0
  21. package/dist/edge/adapters/index.js.map +1 -0
  22. package/dist/edge/browser/BrowserAgent.d.ts +241 -0
  23. package/dist/edge/browser/BrowserAgent.d.ts.map +1 -0
  24. package/dist/edge/browser/BrowserAgent.js +743 -0
  25. package/dist/edge/browser/BrowserAgent.js.map +1 -0
  26. package/dist/edge/index.d.ts +34 -0
  27. package/dist/edge/index.d.ts.map +1 -0
  28. package/dist/edge/index.js +114 -0
  29. package/dist/edge/index.js.map +1 -0
  30. package/dist/edge/p2p/coordination/CoordinationManager.d.ts +181 -0
  31. package/dist/edge/p2p/coordination/CoordinationManager.d.ts.map +1 -0
  32. package/dist/edge/p2p/coordination/CoordinationManager.js +851 -0
  33. package/dist/edge/p2p/coordination/CoordinationManager.js.map +1 -0
  34. package/dist/edge/p2p/coordination/HealthMonitor.d.ts +143 -0
  35. package/dist/edge/p2p/coordination/HealthMonitor.d.ts.map +1 -0
  36. package/dist/edge/p2p/coordination/HealthMonitor.js +432 -0
  37. package/dist/edge/p2p/coordination/HealthMonitor.js.map +1 -0
  38. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts +146 -0
  39. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts.map +1 -0
  40. package/dist/edge/p2p/coordination/SyncOrchestrator.js +783 -0
  41. package/dist/edge/p2p/coordination/SyncOrchestrator.js.map +1 -0
  42. package/dist/edge/p2p/coordination/index.d.ts +70 -0
  43. package/dist/edge/p2p/coordination/index.d.ts.map +1 -0
  44. package/dist/edge/p2p/coordination/index.js +107 -0
  45. package/dist/edge/p2p/coordination/index.js.map +1 -0
  46. package/dist/edge/p2p/coordination/types.d.ts +572 -0
  47. package/dist/edge/p2p/coordination/types.d.ts.map +1 -0
  48. package/dist/edge/p2p/coordination/types.js +366 -0
  49. package/dist/edge/p2p/coordination/types.js.map +1 -0
  50. package/dist/edge/p2p/crdt/CRDTStore.d.ts +324 -0
  51. package/dist/edge/p2p/crdt/CRDTStore.d.ts.map +1 -0
  52. package/dist/edge/p2p/crdt/CRDTStore.js +839 -0
  53. package/dist/edge/p2p/crdt/CRDTStore.js.map +1 -0
  54. package/dist/edge/p2p/crdt/GCounter.d.ts +173 -0
  55. package/dist/edge/p2p/crdt/GCounter.d.ts.map +1 -0
  56. package/dist/edge/p2p/crdt/GCounter.js +394 -0
  57. package/dist/edge/p2p/crdt/GCounter.js.map +1 -0
  58. package/dist/edge/p2p/crdt/LWWRegister.d.ts +200 -0
  59. package/dist/edge/p2p/crdt/LWWRegister.d.ts.map +1 -0
  60. package/dist/edge/p2p/crdt/LWWRegister.js +456 -0
  61. package/dist/edge/p2p/crdt/LWWRegister.js.map +1 -0
  62. package/dist/edge/p2p/crdt/ORSet.d.ts +232 -0
  63. package/dist/edge/p2p/crdt/ORSet.d.ts.map +1 -0
  64. package/dist/edge/p2p/crdt/ORSet.js +723 -0
  65. package/dist/edge/p2p/crdt/ORSet.js.map +1 -0
  66. package/dist/edge/p2p/crdt/PatternCRDT.d.ts +366 -0
  67. package/dist/edge/p2p/crdt/PatternCRDT.d.ts.map +1 -0
  68. package/dist/edge/p2p/crdt/PatternCRDT.js +838 -0
  69. package/dist/edge/p2p/crdt/PatternCRDT.js.map +1 -0
  70. package/dist/edge/p2p/crdt/VectorClock.d.ts +274 -0
  71. package/dist/edge/p2p/crdt/VectorClock.d.ts.map +1 -0
  72. package/dist/edge/p2p/crdt/VectorClock.js +499 -0
  73. package/dist/edge/p2p/crdt/VectorClock.js.map +1 -0
  74. package/dist/edge/p2p/crdt/index.d.ts +87 -0
  75. package/dist/edge/p2p/crdt/index.d.ts.map +1 -0
  76. package/dist/edge/p2p/crdt/index.js +120 -0
  77. package/dist/edge/p2p/crdt/index.js.map +1 -0
  78. package/dist/edge/p2p/crdt/types.d.ts +667 -0
  79. package/dist/edge/p2p/crdt/types.d.ts.map +1 -0
  80. package/dist/edge/p2p/crdt/types.js +208 -0
  81. package/dist/edge/p2p/crdt/types.js.map +1 -0
  82. package/dist/edge/p2p/crypto/Identity.d.ts +139 -0
  83. package/dist/edge/p2p/crypto/Identity.d.ts.map +1 -0
  84. package/dist/edge/p2p/crypto/Identity.js +449 -0
  85. package/dist/edge/p2p/crypto/Identity.js.map +1 -0
  86. package/dist/edge/p2p/crypto/KeyManager.d.ts +196 -0
  87. package/dist/edge/p2p/crypto/KeyManager.d.ts.map +1 -0
  88. package/dist/edge/p2p/crypto/KeyManager.js +576 -0
  89. package/dist/edge/p2p/crypto/KeyManager.js.map +1 -0
  90. package/dist/edge/p2p/crypto/Signer.d.ts +164 -0
  91. package/dist/edge/p2p/crypto/Signer.d.ts.map +1 -0
  92. package/dist/edge/p2p/crypto/Signer.js +357 -0
  93. package/dist/edge/p2p/crypto/Signer.js.map +1 -0
  94. package/dist/edge/p2p/crypto/index.d.ts +90 -0
  95. package/dist/edge/p2p/crypto/index.d.ts.map +1 -0
  96. package/dist/edge/p2p/crypto/index.js +158 -0
  97. package/dist/edge/p2p/crypto/index.js.map +1 -0
  98. package/dist/edge/p2p/crypto/types.d.ts +217 -0
  99. package/dist/edge/p2p/crypto/types.d.ts.map +1 -0
  100. package/dist/edge/p2p/crypto/types.js +42 -0
  101. package/dist/edge/p2p/crypto/types.js.map +1 -0
  102. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts +270 -0
  103. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts.map +1 -0
  104. package/dist/edge/p2p/federated/FederatedCoordinator.js +824 -0
  105. package/dist/edge/p2p/federated/FederatedCoordinator.js.map +1 -0
  106. package/dist/edge/p2p/federated/FederatedRound.d.ts +295 -0
  107. package/dist/edge/p2p/federated/FederatedRound.d.ts.map +1 -0
  108. package/dist/edge/p2p/federated/FederatedRound.js +819 -0
  109. package/dist/edge/p2p/federated/FederatedRound.js.map +1 -0
  110. package/dist/edge/p2p/federated/GradientAggregator.d.ts +226 -0
  111. package/dist/edge/p2p/federated/GradientAggregator.d.ts.map +1 -0
  112. package/dist/edge/p2p/federated/GradientAggregator.js +826 -0
  113. package/dist/edge/p2p/federated/GradientAggregator.js.map +1 -0
  114. package/dist/edge/p2p/federated/ModelManager.d.ts +248 -0
  115. package/dist/edge/p2p/federated/ModelManager.d.ts.map +1 -0
  116. package/dist/edge/p2p/federated/ModelManager.js +724 -0
  117. package/dist/edge/p2p/federated/ModelManager.js.map +1 -0
  118. package/dist/edge/p2p/federated/index.d.ts +65 -0
  119. package/dist/edge/p2p/federated/index.d.ts.map +1 -0
  120. package/dist/edge/p2p/federated/index.js +110 -0
  121. package/dist/edge/p2p/federated/index.js.map +1 -0
  122. package/dist/edge/p2p/federated/types.d.ts +905 -0
  123. package/dist/edge/p2p/federated/types.d.ts.map +1 -0
  124. package/dist/edge/p2p/federated/types.js +339 -0
  125. package/dist/edge/p2p/federated/types.js.map +1 -0
  126. package/dist/edge/p2p/index.d.ts +156 -0
  127. package/dist/edge/p2p/index.d.ts.map +1 -0
  128. package/dist/edge/p2p/index.js +242 -0
  129. package/dist/edge/p2p/index.js.map +1 -0
  130. package/dist/edge/p2p/nat/ConnectivityTester.d.ts +128 -0
  131. package/dist/edge/p2p/nat/ConnectivityTester.d.ts.map +1 -0
  132. package/dist/edge/p2p/nat/ConnectivityTester.js +560 -0
  133. package/dist/edge/p2p/nat/ConnectivityTester.js.map +1 -0
  134. package/dist/edge/p2p/nat/HolePuncher.d.ts +159 -0
  135. package/dist/edge/p2p/nat/HolePuncher.d.ts.map +1 -0
  136. package/dist/edge/p2p/nat/HolePuncher.js +569 -0
  137. package/dist/edge/p2p/nat/HolePuncher.js.map +1 -0
  138. package/dist/edge/p2p/nat/NATDetector.d.ts +109 -0
  139. package/dist/edge/p2p/nat/NATDetector.d.ts.map +1 -0
  140. package/dist/edge/p2p/nat/NATDetector.js +472 -0
  141. package/dist/edge/p2p/nat/NATDetector.js.map +1 -0
  142. package/dist/edge/p2p/nat/TURNManager.d.ts +158 -0
  143. package/dist/edge/p2p/nat/TURNManager.d.ts.map +1 -0
  144. package/dist/edge/p2p/nat/TURNManager.js +547 -0
  145. package/dist/edge/p2p/nat/TURNManager.js.map +1 -0
  146. package/dist/edge/p2p/nat/index.d.ts +74 -0
  147. package/dist/edge/p2p/nat/index.d.ts.map +1 -0
  148. package/dist/edge/p2p/nat/index.js +104 -0
  149. package/dist/edge/p2p/nat/index.js.map +1 -0
  150. package/dist/edge/p2p/nat/types.d.ts +583 -0
  151. package/dist/edge/p2p/nat/types.d.ts.map +1 -0
  152. package/dist/edge/p2p/nat/types.js +267 -0
  153. package/dist/edge/p2p/nat/types.js.map +1 -0
  154. package/dist/edge/p2p/protocol/AgentChannel.d.ts +333 -0
  155. package/dist/edge/p2p/protocol/AgentChannel.d.ts.map +1 -0
  156. package/dist/edge/p2p/protocol/AgentChannel.js +914 -0
  157. package/dist/edge/p2p/protocol/AgentChannel.js.map +1 -0
  158. package/dist/edge/p2p/protocol/MessageEncoder.d.ts +147 -0
  159. package/dist/edge/p2p/protocol/MessageEncoder.d.ts.map +1 -0
  160. package/dist/edge/p2p/protocol/MessageEncoder.js +738 -0
  161. package/dist/edge/p2p/protocol/MessageEncoder.js.map +1 -0
  162. package/dist/edge/p2p/protocol/MessageRouter.d.ts +266 -0
  163. package/dist/edge/p2p/protocol/MessageRouter.d.ts.map +1 -0
  164. package/dist/edge/p2p/protocol/MessageRouter.js +808 -0
  165. package/dist/edge/p2p/protocol/MessageRouter.js.map +1 -0
  166. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts +309 -0
  167. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts.map +1 -0
  168. package/dist/edge/p2p/protocol/ProtocolHandler.js +930 -0
  169. package/dist/edge/p2p/protocol/ProtocolHandler.js.map +1 -0
  170. package/dist/edge/p2p/protocol/index.d.ts +114 -0
  171. package/dist/edge/p2p/protocol/index.d.ts.map +1 -0
  172. package/dist/edge/p2p/protocol/index.js +206 -0
  173. package/dist/edge/p2p/protocol/index.js.map +1 -0
  174. package/dist/edge/p2p/protocol/types.d.ts +737 -0
  175. package/dist/edge/p2p/protocol/types.d.ts.map +1 -0
  176. package/dist/edge/p2p/protocol/types.js +490 -0
  177. package/dist/edge/p2p/protocol/types.js.map +1 -0
  178. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts +284 -0
  179. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts.map +1 -0
  180. package/dist/edge/p2p/sharing/PatternBroadcaster.js +644 -0
  181. package/dist/edge/p2p/sharing/PatternBroadcaster.js.map +1 -0
  182. package/dist/edge/p2p/sharing/PatternIndex.d.ts +168 -0
  183. package/dist/edge/p2p/sharing/PatternIndex.d.ts.map +1 -0
  184. package/dist/edge/p2p/sharing/PatternIndex.js +781 -0
  185. package/dist/edge/p2p/sharing/PatternIndex.js.map +1 -0
  186. package/dist/edge/p2p/sharing/PatternSerializer.d.ts +163 -0
  187. package/dist/edge/p2p/sharing/PatternSerializer.d.ts.map +1 -0
  188. package/dist/edge/p2p/sharing/PatternSerializer.js +696 -0
  189. package/dist/edge/p2p/sharing/PatternSerializer.js.map +1 -0
  190. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts +242 -0
  191. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts.map +1 -0
  192. package/dist/edge/p2p/sharing/PatternSyncManager.js +859 -0
  193. package/dist/edge/p2p/sharing/PatternSyncManager.js.map +1 -0
  194. package/dist/edge/p2p/sharing/index.d.ts +90 -0
  195. package/dist/edge/p2p/sharing/index.d.ts.map +1 -0
  196. package/dist/edge/p2p/sharing/index.js +152 -0
  197. package/dist/edge/p2p/sharing/index.js.map +1 -0
  198. package/dist/edge/p2p/sharing/types.d.ts +796 -0
  199. package/dist/edge/p2p/sharing/types.d.ts.map +1 -0
  200. package/dist/edge/p2p/sharing/types.js +264 -0
  201. package/dist/edge/p2p/sharing/types.js.map +1 -0
  202. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts +218 -0
  203. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts.map +1 -0
  204. package/dist/edge/p2p/webrtc/ConnectionPool.js +562 -0
  205. package/dist/edge/p2p/webrtc/ConnectionPool.js.map +1 -0
  206. package/dist/edge/p2p/webrtc/ICEManager.d.ts +171 -0
  207. package/dist/edge/p2p/webrtc/ICEManager.d.ts.map +1 -0
  208. package/dist/edge/p2p/webrtc/ICEManager.js +490 -0
  209. package/dist/edge/p2p/webrtc/ICEManager.js.map +1 -0
  210. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts +159 -0
  211. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts.map +1 -0
  212. package/dist/edge/p2p/webrtc/PeerConnectionManager.js +735 -0
  213. package/dist/edge/p2p/webrtc/PeerConnectionManager.js.map +1 -0
  214. package/dist/edge/p2p/webrtc/SignalingClient.d.ts +191 -0
  215. package/dist/edge/p2p/webrtc/SignalingClient.d.ts.map +1 -0
  216. package/dist/edge/p2p/webrtc/SignalingClient.js +608 -0
  217. package/dist/edge/p2p/webrtc/SignalingClient.js.map +1 -0
  218. package/dist/edge/p2p/webrtc/index.d.ts +158 -0
  219. package/dist/edge/p2p/webrtc/index.d.ts.map +1 -0
  220. package/dist/edge/p2p/webrtc/index.js +164 -0
  221. package/dist/edge/p2p/webrtc/index.js.map +1 -0
  222. package/dist/edge/p2p/webrtc/types.d.ts +665 -0
  223. package/dist/edge/p2p/webrtc/types.d.ts.map +1 -0
  224. package/dist/edge/p2p/webrtc/types.js +245 -0
  225. package/dist/edge/p2p/webrtc/types.js.map +1 -0
  226. package/dist/edge/server/AgentSpawnAPI.d.ts +98 -0
  227. package/dist/edge/server/AgentSpawnAPI.d.ts.map +1 -0
  228. package/dist/edge/server/AgentSpawnAPI.js +264 -0
  229. package/dist/edge/server/AgentSpawnAPI.js.map +1 -0
  230. package/dist/edge/server/SignalingServer.d.ts +71 -0
  231. package/dist/edge/server/SignalingServer.d.ts.map +1 -0
  232. package/dist/edge/server/SignalingServer.js +429 -0
  233. package/dist/edge/server/SignalingServer.js.map +1 -0
  234. package/dist/edge/server/index.d.ts +64 -0
  235. package/dist/edge/server/index.d.ts.map +1 -0
  236. package/dist/edge/server/index.js +318 -0
  237. package/dist/edge/server/index.js.map +1 -0
  238. package/dist/edge/types/browser-agent.types.d.ts +455 -0
  239. package/dist/edge/types/browser-agent.types.d.ts.map +1 -0
  240. package/dist/edge/types/browser-agent.types.js +116 -0
  241. package/dist/edge/types/browser-agent.types.js.map +1 -0
  242. package/dist/edge/types/index.d.ts +11 -0
  243. package/dist/edge/types/index.d.ts.map +1 -0
  244. package/dist/edge/types/index.js +17 -0
  245. package/dist/edge/types/index.js.map +1 -0
  246. package/dist/edge/types/storage.types.d.ts +207 -0
  247. package/dist/edge/types/storage.types.d.ts.map +1 -0
  248. package/dist/edge/types/storage.types.js +47 -0
  249. package/dist/edge/types/storage.types.js.map +1 -0
  250. package/dist/edge/wasm/shims.d.ts +224 -0
  251. package/dist/edge/wasm/shims.d.ts.map +1 -0
  252. package/dist/edge/wasm/shims.js +667 -0
  253. package/dist/edge/wasm/shims.js.map +1 -0
  254. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +33 -0
  255. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -0
  256. package/dist/mcp/handlers/NewDomainToolsHandler.js +305 -0
  257. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -0
  258. package/dist/mcp/handlers/filtered/index.d.ts +15 -19
  259. package/dist/mcp/handlers/filtered/index.d.ts.map +1 -1
  260. package/dist/mcp/handlers/filtered/index.js +16 -27
  261. package/dist/mcp/handlers/filtered/index.js.map +1 -1
  262. package/dist/mcp/handlers/integration/index.d.ts +5 -4
  263. package/dist/mcp/handlers/integration/index.d.ts.map +1 -1
  264. package/dist/mcp/handlers/integration/index.js +7 -7
  265. package/dist/mcp/handlers/integration/index.js.map +1 -1
  266. package/dist/mcp/server-instructions.d.ts +1 -1
  267. package/dist/mcp/server-instructions.js +1 -1
  268. package/dist/mcp/server.d.ts.map +1 -1
  269. package/dist/mcp/server.js +14 -0
  270. package/dist/mcp/server.js.map +1 -1
  271. package/dist/mcp/tools.d.ts +8 -0
  272. package/dist/mcp/tools.d.ts.map +1 -1
  273. package/dist/mcp/tools.js +412 -1
  274. package/dist/mcp/tools.js.map +1 -1
  275. package/dist/planning/GOAPPlanner.d.ts +1 -0
  276. package/dist/planning/GOAPPlanner.d.ts.map +1 -1
  277. package/dist/planning/GOAPPlanner.js +12 -0
  278. package/dist/planning/GOAPPlanner.js.map +1 -1
  279. package/package.json +29 -8
  280. package/dist/alerting/AlertManager.d.ts +0 -120
  281. package/dist/alerting/AlertManager.d.ts.map +0 -1
  282. package/dist/alerting/AlertManager.js +0 -345
  283. package/dist/alerting/AlertManager.js.map +0 -1
  284. package/dist/alerting/FeedbackRouter.d.ts +0 -98
  285. package/dist/alerting/FeedbackRouter.d.ts.map +0 -1
  286. package/dist/alerting/FeedbackRouter.js +0 -331
  287. package/dist/alerting/FeedbackRouter.js.map +0 -1
  288. package/dist/alerting/StrategyApplicator.d.ts +0 -120
  289. package/dist/alerting/StrategyApplicator.d.ts.map +0 -1
  290. package/dist/alerting/StrategyApplicator.js +0 -299
  291. package/dist/alerting/StrategyApplicator.js.map +0 -1
  292. package/dist/alerting/index.d.ts +0 -68
  293. package/dist/alerting/index.d.ts.map +0 -1
  294. package/dist/alerting/index.js +0 -112
  295. package/dist/alerting/index.js.map +0 -1
  296. package/dist/alerting/types.d.ts +0 -118
  297. package/dist/alerting/types.d.ts.map +0 -1
  298. package/dist/alerting/types.js +0 -11
  299. package/dist/alerting/types.js.map +0 -1
  300. package/dist/cli/commands/fleet/backup.d.ts +0 -49
  301. package/dist/cli/commands/fleet/backup.d.ts.map +0 -1
  302. package/dist/cli/commands/fleet/backup.js +0 -88
  303. package/dist/cli/commands/fleet/backup.js.map +0 -1
  304. package/dist/cli/commands/fleet/health.d.ts +0 -154
  305. package/dist/cli/commands/fleet/health.d.ts.map +0 -1
  306. package/dist/cli/commands/fleet/health.js +0 -483
  307. package/dist/cli/commands/fleet/health.js.map +0 -1
  308. package/dist/cli/commands/fleet/init.d.ts +0 -11
  309. package/dist/cli/commands/fleet/init.d.ts.map +0 -1
  310. package/dist/cli/commands/fleet/init.js +0 -91
  311. package/dist/cli/commands/fleet/init.js.map +0 -1
  312. package/dist/cli/commands/fleet/logs.d.ts +0 -21
  313. package/dist/cli/commands/fleet/logs.d.ts.map +0 -1
  314. package/dist/cli/commands/fleet/logs.js +0 -267
  315. package/dist/cli/commands/fleet/logs.js.map +0 -1
  316. package/dist/cli/commands/fleet/metrics.d.ts +0 -27
  317. package/dist/cli/commands/fleet/metrics.d.ts.map +0 -1
  318. package/dist/cli/commands/fleet/metrics.js +0 -369
  319. package/dist/cli/commands/fleet/metrics.js.map +0 -1
  320. package/dist/cli/commands/fleet/monitor.d.ts +0 -18
  321. package/dist/cli/commands/fleet/monitor.d.ts.map +0 -1
  322. package/dist/cli/commands/fleet/monitor.js +0 -237
  323. package/dist/cli/commands/fleet/monitor.js.map +0 -1
  324. package/dist/cli/commands/fleet/optimize.d.ts +0 -42
  325. package/dist/cli/commands/fleet/optimize.d.ts.map +0 -1
  326. package/dist/cli/commands/fleet/optimize.js +0 -135
  327. package/dist/cli/commands/fleet/optimize.js.map +0 -1
  328. package/dist/cli/commands/fleet/recover.d.ts +0 -22
  329. package/dist/cli/commands/fleet/recover.d.ts.map +0 -1
  330. package/dist/cli/commands/fleet/recover.js +0 -99
  331. package/dist/cli/commands/fleet/recover.js.map +0 -1
  332. package/dist/cli/commands/fleet/restart.d.ts +0 -18
  333. package/dist/cli/commands/fleet/restart.d.ts.map +0 -1
  334. package/dist/cli/commands/fleet/restart.js +0 -290
  335. package/dist/cli/commands/fleet/restart.js.map +0 -1
  336. package/dist/cli/commands/fleet/scale.d.ts +0 -9
  337. package/dist/cli/commands/fleet/scale.d.ts.map +0 -1
  338. package/dist/cli/commands/fleet/scale.js +0 -77
  339. package/dist/cli/commands/fleet/scale.js.map +0 -1
  340. package/dist/cli/commands/fleet/shutdown.d.ts +0 -19
  341. package/dist/cli/commands/fleet/shutdown.d.ts.map +0 -1
  342. package/dist/cli/commands/fleet/shutdown.js +0 -307
  343. package/dist/cli/commands/fleet/shutdown.js.map +0 -1
  344. package/dist/cli/commands/fleet/status.d.ts +0 -10
  345. package/dist/cli/commands/fleet/status.d.ts.map +0 -1
  346. package/dist/cli/commands/fleet/status.js +0 -97
  347. package/dist/cli/commands/fleet/status.js.map +0 -1
  348. package/dist/cli/commands/fleet/topology.d.ts +0 -23
  349. package/dist/cli/commands/fleet/topology.d.ts.map +0 -1
  350. package/dist/cli/commands/fleet/topology.js +0 -376
  351. package/dist/cli/commands/fleet/topology.js.map +0 -1
  352. package/dist/cli/commands/monitor/alerts.d.ts +0 -45
  353. package/dist/cli/commands/monitor/alerts.d.ts.map +0 -1
  354. package/dist/cli/commands/monitor/alerts.js +0 -168
  355. package/dist/cli/commands/monitor/alerts.js.map +0 -1
  356. package/dist/cli/commands/monitor/analyze.d.ts +0 -49
  357. package/dist/cli/commands/monitor/analyze.d.ts.map +0 -1
  358. package/dist/cli/commands/monitor/analyze.js +0 -209
  359. package/dist/cli/commands/monitor/analyze.js.map +0 -1
  360. package/dist/cli/commands/monitor/compare.d.ts +0 -38
  361. package/dist/cli/commands/monitor/compare.d.ts.map +0 -1
  362. package/dist/cli/commands/monitor/compare.js +0 -177
  363. package/dist/cli/commands/monitor/compare.js.map +0 -1
  364. package/dist/cli/commands/monitor/dashboard.d.ts +0 -34
  365. package/dist/cli/commands/monitor/dashboard.d.ts.map +0 -1
  366. package/dist/cli/commands/monitor/dashboard.js +0 -157
  367. package/dist/cli/commands/monitor/dashboard.js.map +0 -1
  368. package/dist/cli/commands/monitor/export.d.ts +0 -36
  369. package/dist/cli/commands/monitor/export.d.ts.map +0 -1
  370. package/dist/cli/commands/monitor/export.js +0 -157
  371. package/dist/cli/commands/monitor/export.js.map +0 -1
  372. package/dist/cli/commands/monitor/index.d.ts +0 -11
  373. package/dist/cli/commands/monitor/index.d.ts.map +0 -1
  374. package/dist/cli/commands/monitor/index.js +0 -14
  375. package/dist/cli/commands/monitor/index.js.map +0 -1
  376. package/dist/cli/commands/quality/baseline.d.ts +0 -27
  377. package/dist/cli/commands/quality/baseline.d.ts.map +0 -1
  378. package/dist/cli/commands/quality/baseline.js +0 -124
  379. package/dist/cli/commands/quality/baseline.js.map +0 -1
  380. package/dist/cli/commands/quality/compare.d.ts +0 -36
  381. package/dist/cli/commands/quality/compare.d.ts.map +0 -1
  382. package/dist/cli/commands/quality/compare.js +0 -136
  383. package/dist/cli/commands/quality/compare.js.map +0 -1
  384. package/dist/cli/commands/quality/decision.d.ts +0 -81
  385. package/dist/cli/commands/quality/decision.d.ts.map +0 -1
  386. package/dist/cli/commands/quality/decision.js +0 -319
  387. package/dist/cli/commands/quality/decision.js.map +0 -1
  388. package/dist/cli/commands/quality/gate.d.ts +0 -47
  389. package/dist/cli/commands/quality/gate.d.ts.map +0 -1
  390. package/dist/cli/commands/quality/gate.js +0 -205
  391. package/dist/cli/commands/quality/gate.js.map +0 -1
  392. package/dist/cli/commands/quality/index.d.ts +0 -17
  393. package/dist/cli/commands/quality/index.d.ts.map +0 -1
  394. package/dist/cli/commands/quality/index.js +0 -41
  395. package/dist/cli/commands/quality/index.js.map +0 -1
  396. package/dist/cli/commands/quality/policy.d.ts +0 -57
  397. package/dist/cli/commands/quality/policy.d.ts.map +0 -1
  398. package/dist/cli/commands/quality/policy.js +0 -359
  399. package/dist/cli/commands/quality/policy.js.map +0 -1
  400. package/dist/cli/commands/quality/risk.d.ts +0 -41
  401. package/dist/cli/commands/quality/risk.d.ts.map +0 -1
  402. package/dist/cli/commands/quality/risk.js +0 -255
  403. package/dist/cli/commands/quality/risk.js.map +0 -1
  404. package/dist/cli/commands/quality/trends.d.ts +0 -40
  405. package/dist/cli/commands/quality/trends.d.ts.map +0 -1
  406. package/dist/cli/commands/quality/trends.js +0 -122
  407. package/dist/cli/commands/quality/trends.js.map +0 -1
  408. package/dist/cli/commands/quality/validate.d.ts +0 -44
  409. package/dist/cli/commands/quality/validate.d.ts.map +0 -1
  410. package/dist/cli/commands/quality/validate.js +0 -234
  411. package/dist/cli/commands/quality/validate.js.map +0 -1
  412. package/dist/cli/commands/test/analyze-failures.d.ts +0 -39
  413. package/dist/cli/commands/test/analyze-failures.d.ts.map +0 -1
  414. package/dist/cli/commands/test/analyze-failures.js +0 -113
  415. package/dist/cli/commands/test/analyze-failures.js.map +0 -1
  416. package/dist/cli/commands/test/clean.d.ts +0 -3
  417. package/dist/cli/commands/test/clean.d.ts.map +0 -1
  418. package/dist/cli/commands/test/clean.js +0 -148
  419. package/dist/cli/commands/test/clean.js.map +0 -1
  420. package/dist/cli/commands/test/debug.d.ts +0 -3
  421. package/dist/cli/commands/test/debug.d.ts.map +0 -1
  422. package/dist/cli/commands/test/debug.js +0 -167
  423. package/dist/cli/commands/test/debug.js.map +0 -1
  424. package/dist/cli/commands/test/diff.d.ts +0 -3
  425. package/dist/cli/commands/test/diff.d.ts.map +0 -1
  426. package/dist/cli/commands/test/diff.js +0 -195
  427. package/dist/cli/commands/test/diff.js.map +0 -1
  428. package/dist/cli/commands/test/flakiness.d.ts +0 -32
  429. package/dist/cli/commands/test/flakiness.d.ts.map +0 -1
  430. package/dist/cli/commands/test/flakiness.js +0 -121
  431. package/dist/cli/commands/test/flakiness.js.map +0 -1
  432. package/dist/cli/commands/test/index.d.ts +0 -17
  433. package/dist/cli/commands/test/index.d.ts.map +0 -1
  434. package/dist/cli/commands/test/index.js +0 -45
  435. package/dist/cli/commands/test/index.js.map +0 -1
  436. package/dist/cli/commands/test/mutate.d.ts +0 -29
  437. package/dist/cli/commands/test/mutate.d.ts.map +0 -1
  438. package/dist/cli/commands/test/mutate.js +0 -163
  439. package/dist/cli/commands/test/mutate.js.map +0 -1
  440. package/dist/cli/commands/test/parallel.d.ts +0 -3
  441. package/dist/cli/commands/test/parallel.d.ts.map +0 -1
  442. package/dist/cli/commands/test/parallel.js +0 -117
  443. package/dist/cli/commands/test/parallel.js.map +0 -1
  444. package/dist/cli/commands/test/profile.d.ts +0 -3
  445. package/dist/cli/commands/test/profile.d.ts.map +0 -1
  446. package/dist/cli/commands/test/profile.js +0 -156
  447. package/dist/cli/commands/test/profile.js.map +0 -1
  448. package/dist/cli/commands/test/queue.d.ts +0 -3
  449. package/dist/cli/commands/test/queue.d.ts.map +0 -1
  450. package/dist/cli/commands/test/queue.js +0 -140
  451. package/dist/cli/commands/test/queue.js.map +0 -1
  452. package/dist/cli/commands/test/retry.d.ts +0 -3
  453. package/dist/cli/commands/test/retry.d.ts.map +0 -1
  454. package/dist/cli/commands/test/retry.js +0 -105
  455. package/dist/cli/commands/test/retry.js.map +0 -1
  456. package/dist/cli/commands/test/snapshot.d.ts +0 -3
  457. package/dist/cli/commands/test/snapshot.d.ts.map +0 -1
  458. package/dist/cli/commands/test/snapshot.js +0 -176
  459. package/dist/cli/commands/test/snapshot.js.map +0 -1
  460. package/dist/cli/commands/test/trace.d.ts +0 -3
  461. package/dist/cli/commands/test/trace.d.ts.map +0 -1
  462. package/dist/cli/commands/test/trace.js +0 -137
  463. package/dist/cli/commands/test/trace.js.map +0 -1
  464. package/dist/cli/commands/test/watch.d.ts +0 -3
  465. package/dist/cli/commands/test/watch.d.ts.map +0 -1
  466. package/dist/cli/commands/test/watch.js +0 -130
  467. package/dist/cli/commands/test/watch.js.map +0 -1
  468. package/dist/cli/index-spec.d.ts +0 -3
  469. package/dist/cli/index-spec.d.ts.map +0 -1
  470. package/dist/cli/index-spec.js +0 -154
  471. package/dist/cli/index-spec.js.map +0 -1
  472. package/dist/cli/index-working.d.ts +0 -7
  473. package/dist/cli/index-working.d.ts.map +0 -1
  474. package/dist/cli/index-working.js +0 -617
  475. package/dist/cli/index-working.js.map +0 -1
  476. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts +0 -83
  477. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts.map +0 -1
  478. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js +0 -130
  479. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js.map +0 -1
  480. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts +0 -58
  481. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts.map +0 -1
  482. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js +0 -84
  483. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js.map +0 -1
  484. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts +0 -54
  485. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts.map +0 -1
  486. package/dist/mcp/handlers/filtered/security-scanner-filtered.js +0 -73
  487. package/dist/mcp/handlers/filtered/security-scanner-filtered.js.map +0 -1
  488. package/dist/mcp/handlers/integration/contract-validate.d.ts +0 -10
  489. package/dist/mcp/handlers/integration/contract-validate.d.ts.map +0 -1
  490. package/dist/mcp/handlers/integration/contract-validate.js +0 -348
  491. package/dist/mcp/handlers/integration/contract-validate.js.map +0 -1
  492. package/dist/reporting/ResultAggregator.d.ts +0 -107
  493. package/dist/reporting/ResultAggregator.d.ts.map +0 -1
  494. package/dist/reporting/ResultAggregator.js +0 -435
  495. package/dist/reporting/ResultAggregator.js.map +0 -1
  496. package/dist/reporting/index.d.ts +0 -48
  497. package/dist/reporting/index.d.ts.map +0 -1
  498. package/dist/reporting/index.js +0 -154
  499. package/dist/reporting/index.js.map +0 -1
  500. package/dist/reporting/reporters/ControlLoopReporter.d.ts +0 -128
  501. package/dist/reporting/reporters/ControlLoopReporter.d.ts.map +0 -1
  502. package/dist/reporting/reporters/ControlLoopReporter.js +0 -417
  503. package/dist/reporting/reporters/ControlLoopReporter.js.map +0 -1
  504. package/dist/reporting/reporters/HumanReadableReporter.d.ts +0 -140
  505. package/dist/reporting/reporters/HumanReadableReporter.d.ts.map +0 -1
  506. package/dist/reporting/reporters/HumanReadableReporter.js +0 -524
  507. package/dist/reporting/reporters/HumanReadableReporter.js.map +0 -1
  508. package/dist/reporting/reporters/JSONReporter.d.ts +0 -251
  509. package/dist/reporting/reporters/JSONReporter.d.ts.map +0 -1
  510. package/dist/reporting/reporters/JSONReporter.js +0 -325
  511. package/dist/reporting/reporters/JSONReporter.js.map +0 -1
  512. package/dist/reporting/reporters/index.d.ts +0 -14
  513. package/dist/reporting/reporters/index.d.ts.map +0 -1
  514. package/dist/reporting/reporters/index.js +0 -19
  515. package/dist/reporting/reporters/index.js.map +0 -1
  516. package/dist/reporting/types.d.ts +0 -427
  517. package/dist/reporting/types.d.ts.map +0 -1
  518. package/dist/reporting/types.js +0 -12
  519. package/dist/reporting/types.js.map +0 -1
@@ -0,0 +1,484 @@
1
+ "use strict";
2
+ /**
3
+ * Browser HNSW Adapter - Browser-Compatible Vector Memory
4
+ *
5
+ * Provides HNSW vector search in browser environments using:
6
+ * - @ruvector/edge WasmHnswIndex for vector operations
7
+ * - IndexedDB for persistent storage
8
+ *
9
+ * Implements the same IPatternStore interface as HNSWVectorMemory
10
+ * for seamless interoperability between Node.js and browser.
11
+ *
12
+ * @module edge/adapters/BrowserHNSWAdapter
13
+ * @version 1.1.0
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.BrowserHNSWAdapter = void 0;
50
+ exports.createBrowserHNSWAdapter = createBrowserHNSWAdapter;
51
+ exports.isBrowserHNSWSupported = isBrowserHNSWSupported;
52
+ const storage_types_1 = require("../types/storage.types");
53
+ const IndexedDBStorage_1 = require("./IndexedDBStorage");
54
+ /**
55
+ * Default configuration for browser HNSW
56
+ */
57
+ const DEFAULT_CONFIG = {
58
+ hnsw: {
59
+ dimension: 384,
60
+ m: 32,
61
+ efConstruction: 200,
62
+ efSearch: 100,
63
+ metric: 'cosine',
64
+ },
65
+ storage: {
66
+ dbName: 'agentic-qe-vectors',
67
+ dbVersion: 1,
68
+ vectorStoreName: 'vectors',
69
+ indexStoreName: 'hnsw-index',
70
+ },
71
+ autoPersistIndex: true,
72
+ persistAfterInserts: 100,
73
+ enableMetrics: true,
74
+ batchSize: 100,
75
+ };
76
+ /**
77
+ * Browser HNSW Adapter
78
+ *
79
+ * Implements IPatternStore interface for browser environments,
80
+ * using the actual @ruvector/edge WasmHnswIndex.
81
+ */
82
+ class BrowserHNSWAdapter {
83
+ constructor(config = {}) {
84
+ this.index = null;
85
+ this.initialized = false;
86
+ // Performance tracking
87
+ this.searchLatencies = [];
88
+ this.totalSearches = 0;
89
+ this.insertsSinceLastPersist = 0;
90
+ this.config = this.mergeConfig(config);
91
+ this.storage = new IndexedDBStorage_1.IndexedDBStorage(this.config.storage);
92
+ }
93
+ /**
94
+ * Merge user config with defaults
95
+ */
96
+ mergeConfig(config) {
97
+ return {
98
+ hnsw: { ...DEFAULT_CONFIG.hnsw, ...config.hnsw },
99
+ storage: { ...DEFAULT_CONFIG.storage, ...config.storage },
100
+ autoPersistIndex: config.autoPersistIndex ?? DEFAULT_CONFIG.autoPersistIndex,
101
+ persistAfterInserts: config.persistAfterInserts ?? DEFAULT_CONFIG.persistAfterInserts,
102
+ enableMetrics: config.enableMetrics ?? DEFAULT_CONFIG.enableMetrics,
103
+ batchSize: config.batchSize ?? DEFAULT_CONFIG.batchSize,
104
+ };
105
+ }
106
+ /**
107
+ * Initialize the browser HNSW adapter
108
+ */
109
+ async initialize() {
110
+ if (this.initialized) {
111
+ return;
112
+ }
113
+ if (!(0, storage_types_1.isBrowserEnvironment)()) {
114
+ throw new Error('BrowserHNSWAdapter requires a browser environment with IndexedDB');
115
+ }
116
+ // Initialize IndexedDB storage
117
+ await this.storage.initialize();
118
+ // Load WasmHnswIndex from @ruvector/edge
119
+ await this.loadWasmModule();
120
+ this.initialized = true;
121
+ console.log('[BrowserHNSW] Initialized with @ruvector/edge');
122
+ }
123
+ /**
124
+ * Load the WASM HNSW module from @ruvector/edge
125
+ */
126
+ async loadWasmModule() {
127
+ try {
128
+ // Dynamic import of @ruvector/edge
129
+ const ruvectorEdge = await Promise.resolve().then(() => __importStar(require('@ruvector/edge')));
130
+ // Create index with custom parameters
131
+ const { m, efConstruction } = this.config.hnsw;
132
+ this.index = ruvectorEdge.WasmHnswIndex.withParams(m, efConstruction);
133
+ console.log(`[BrowserHNSW] WasmHnswIndex created (m=${m}, ef=${efConstruction})`);
134
+ }
135
+ catch (error) {
136
+ throw new Error(`Failed to load @ruvector/edge: ${error instanceof Error ? error.message : 'Unknown error'}. ` +
137
+ 'Ensure @ruvector/edge is installed: npm install @ruvector/edge');
138
+ }
139
+ }
140
+ /**
141
+ * Store a pattern with its embedding
142
+ */
143
+ async storePattern(pattern) {
144
+ this.ensureInitialized();
145
+ const startTime = performance.now();
146
+ // Convert embedding to Float32Array
147
+ const vector = (0, storage_types_1.toFloat32Array)(pattern.embedding);
148
+ // Store in IndexedDB for persistence
149
+ const entry = {
150
+ id: pattern.id,
151
+ vector: (0, storage_types_1.float32ToArrayBuffer)(vector),
152
+ metadata: {
153
+ type: pattern.type,
154
+ domain: pattern.domain,
155
+ content: pattern.content,
156
+ framework: pattern.framework,
157
+ coverage: pattern.coverage,
158
+ flakinessScore: pattern.flakinessScore,
159
+ verdict: pattern.verdict,
160
+ custom: pattern.metadata,
161
+ },
162
+ createdAt: pattern.createdAt ?? Date.now(),
163
+ lastUsed: pattern.lastUsed ?? Date.now(),
164
+ usageCount: pattern.usageCount ?? 0,
165
+ };
166
+ await this.storage.storeVector(entry);
167
+ // Insert into HNSW index (uses string ID directly)
168
+ this.index.insert(pattern.id, vector);
169
+ this.insertsSinceLastPersist++;
170
+ if (this.config.enableMetrics) {
171
+ const duration = performance.now() - startTime;
172
+ console.log(`[BrowserHNSW] Stored pattern ${pattern.id} in ${duration.toFixed(2)}ms`);
173
+ }
174
+ }
175
+ /**
176
+ * Store multiple patterns in batch
177
+ */
178
+ async storeBatch(patterns) {
179
+ this.ensureInitialized();
180
+ // Process in batches
181
+ for (let i = 0; i < patterns.length; i += this.config.batchSize) {
182
+ const batch = patterns.slice(i, i + this.config.batchSize);
183
+ // Store vectors in IndexedDB
184
+ const entries = batch.map((pattern) => {
185
+ const vector = (0, storage_types_1.toFloat32Array)(pattern.embedding);
186
+ return {
187
+ id: pattern.id,
188
+ vector: (0, storage_types_1.float32ToArrayBuffer)(vector),
189
+ metadata: {
190
+ type: pattern.type,
191
+ domain: pattern.domain,
192
+ content: pattern.content,
193
+ framework: pattern.framework,
194
+ coverage: pattern.coverage,
195
+ flakinessScore: pattern.flakinessScore,
196
+ verdict: pattern.verdict,
197
+ custom: pattern.metadata,
198
+ },
199
+ createdAt: pattern.createdAt ?? Date.now(),
200
+ lastUsed: pattern.lastUsed ?? Date.now(),
201
+ usageCount: pattern.usageCount ?? 0,
202
+ };
203
+ });
204
+ await this.storage.storeVectorBatch(entries);
205
+ // Insert into HNSW index
206
+ for (const pattern of batch) {
207
+ const vector = (0, storage_types_1.toFloat32Array)(pattern.embedding);
208
+ this.index.insert(pattern.id, vector);
209
+ }
210
+ }
211
+ console.log(`[BrowserHNSW] Stored ${patterns.length} patterns in batch`);
212
+ }
213
+ /**
214
+ * Search for similar patterns
215
+ */
216
+ async searchSimilar(queryEmbedding, options = {}) {
217
+ this.ensureInitialized();
218
+ const startTime = performance.now();
219
+ const k = options.k ?? 10;
220
+ const threshold = options.threshold ?? 0;
221
+ // Convert query to Float32Array
222
+ const queryVector = (0, storage_types_1.toFloat32Array)(queryEmbedding);
223
+ // Search HNSW index - returns JSON array
224
+ const searchResultsJson = this.index.search(queryVector, k * 2);
225
+ const searchResults = typeof searchResultsJson === 'string'
226
+ ? JSON.parse(searchResultsJson)
227
+ : searchResultsJson;
228
+ // Map results to patterns
229
+ const results = [];
230
+ for (const result of searchResults) {
231
+ // Convert distance to similarity score
232
+ // For cosine distance: similarity = 1 - distance/2 (distance range [0, 2])
233
+ const score = this.config.hnsw.metric === 'cosine'
234
+ ? 1 - result.distance / 2
235
+ : 1 / (1 + result.distance);
236
+ if (score < threshold)
237
+ continue;
238
+ // Get full pattern from storage
239
+ const entry = await this.storage.getVector(result.id);
240
+ if (!entry)
241
+ continue;
242
+ // Apply domain/type filters
243
+ if (options.domain && entry.metadata.domain !== options.domain)
244
+ continue;
245
+ if (options.type && entry.metadata.type !== options.type)
246
+ continue;
247
+ if (options.framework && entry.metadata.framework !== options.framework)
248
+ continue;
249
+ const pattern = {
250
+ id: entry.id,
251
+ type: entry.metadata.type,
252
+ domain: entry.metadata.domain,
253
+ embedding: Array.from((0, storage_types_1.arrayBufferToFloat32)(entry.vector)),
254
+ content: entry.metadata.content,
255
+ framework: entry.metadata.framework,
256
+ coverage: entry.metadata.coverage,
257
+ flakinessScore: entry.metadata.flakinessScore,
258
+ verdict: entry.metadata.verdict,
259
+ createdAt: entry.createdAt,
260
+ lastUsed: entry.lastUsed,
261
+ usageCount: entry.usageCount,
262
+ metadata: entry.metadata.custom,
263
+ };
264
+ results.push({ pattern, score });
265
+ if (results.length >= k)
266
+ break;
267
+ }
268
+ if (this.config.enableMetrics) {
269
+ this.recordSearchLatency(performance.now() - startTime);
270
+ }
271
+ return results;
272
+ }
273
+ /**
274
+ * Get a pattern by ID
275
+ */
276
+ async getPattern(id) {
277
+ this.ensureInitialized();
278
+ const entry = await this.storage.getVector(id);
279
+ if (!entry)
280
+ return null;
281
+ return {
282
+ id: entry.id,
283
+ type: entry.metadata.type,
284
+ domain: entry.metadata.domain,
285
+ embedding: Array.from((0, storage_types_1.arrayBufferToFloat32)(entry.vector)),
286
+ content: entry.metadata.content,
287
+ framework: entry.metadata.framework,
288
+ coverage: entry.metadata.coverage,
289
+ flakinessScore: entry.metadata.flakinessScore,
290
+ verdict: entry.metadata.verdict,
291
+ createdAt: entry.createdAt,
292
+ lastUsed: entry.lastUsed,
293
+ usageCount: entry.usageCount,
294
+ metadata: entry.metadata.custom,
295
+ };
296
+ }
297
+ /**
298
+ * Delete a pattern by ID
299
+ */
300
+ async deletePattern(id) {
301
+ this.ensureInitialized();
302
+ // Note: @ruvector/edge WasmHnswIndex doesn't support deletion
303
+ // We only delete from storage, pattern remains in index until rebuild
304
+ return this.storage.deleteVector(id);
305
+ }
306
+ /**
307
+ * Record pattern usage
308
+ */
309
+ async recordUsage(id) {
310
+ this.ensureInitialized();
311
+ const entry = await this.storage.getVector(id);
312
+ if (entry) {
313
+ await this.storage.updateVectorMetadata(id, {
314
+ lastUsed: Date.now(),
315
+ usageCount: entry.usageCount + 1,
316
+ });
317
+ }
318
+ }
319
+ /**
320
+ * Build or rebuild the HNSW index from stored vectors
321
+ */
322
+ async buildIndex() {
323
+ this.ensureInitialized();
324
+ // Create fresh index
325
+ const ruvectorEdge = await Promise.resolve().then(() => __importStar(require('@ruvector/edge')));
326
+ const { m, efConstruction } = this.config.hnsw;
327
+ this.index = ruvectorEdge.WasmHnswIndex.withParams(m, efConstruction);
328
+ // Load all vectors from storage and insert
329
+ const vectors = await this.storage.getAllVectors();
330
+ for (const entry of vectors) {
331
+ const vector = (0, storage_types_1.arrayBufferToFloat32)(entry.vector);
332
+ this.index.insert(entry.id, vector);
333
+ }
334
+ console.log(`[BrowserHNSW] Index rebuilt with ${vectors.length} vectors`);
335
+ }
336
+ /**
337
+ * Optimize the index
338
+ */
339
+ async optimize() {
340
+ // @ruvector/edge doesn't require explicit optimization
341
+ console.log('[BrowserHNSW] Index optimized');
342
+ }
343
+ /**
344
+ * Get database statistics
345
+ */
346
+ async getStats() {
347
+ this.ensureInitialized();
348
+ const count = this.index?.len() ?? 0;
349
+ const metrics = this.getSearchMetrics();
350
+ return {
351
+ count,
352
+ dimension: this.config.hnsw.dimension,
353
+ metric: this.config.hnsw.metric,
354
+ implementation: 'ruvector',
355
+ indexType: 'HNSW',
356
+ qps: metrics.avgLatency > 0 ? 1000 / metrics.avgLatency : 0,
357
+ p50Latency: metrics.p50Latency,
358
+ p99Latency: metrics.p99Latency,
359
+ };
360
+ }
361
+ /**
362
+ * Clear all patterns
363
+ */
364
+ async clear() {
365
+ this.ensureInitialized();
366
+ await this.storage.clear();
367
+ // Create fresh index
368
+ const ruvectorEdge = await Promise.resolve().then(() => __importStar(require('@ruvector/edge')));
369
+ const { m, efConstruction } = this.config.hnsw;
370
+ this.index = ruvectorEdge.WasmHnswIndex.withParams(m, efConstruction);
371
+ this.searchLatencies = [];
372
+ this.totalSearches = 0;
373
+ this.insertsSinceLastPersist = 0;
374
+ }
375
+ /**
376
+ * Shutdown and cleanup
377
+ */
378
+ async shutdown() {
379
+ if (!this.initialized)
380
+ return;
381
+ await this.storage.close();
382
+ // Free WASM resources
383
+ if (this.index) {
384
+ this.index.free();
385
+ this.index = null;
386
+ }
387
+ this.initialized = false;
388
+ }
389
+ /**
390
+ * Get implementation info
391
+ */
392
+ getImplementationInfo() {
393
+ return {
394
+ type: 'ruvector',
395
+ version: '1.1.0-edge',
396
+ features: [
397
+ 'hnsw',
398
+ 'vector-search',
399
+ 'browser',
400
+ 'indexeddb',
401
+ 'wasm',
402
+ '@ruvector/edge',
403
+ ],
404
+ };
405
+ }
406
+ /**
407
+ * Get browser storage statistics
408
+ */
409
+ async getStorageStats() {
410
+ this.ensureInitialized();
411
+ const storageStats = await this.storage.getStorageStats();
412
+ return {
413
+ vectorCount: storageStats.vectorCount,
414
+ storageSize: storageStats.estimatedSize,
415
+ indexInfo: {
416
+ isBuilt: this.index !== null && !this.index.isEmpty(),
417
+ builtAt: Date.now(),
418
+ vectorsIndexed: this.index?.len() ?? 0,
419
+ },
420
+ };
421
+ }
422
+ /**
423
+ * Get HNSW configuration
424
+ */
425
+ getConfig() {
426
+ return { ...this.config.hnsw };
427
+ }
428
+ /**
429
+ * Get search performance metrics
430
+ */
431
+ getSearchMetrics() {
432
+ if (this.searchLatencies.length === 0) {
433
+ return {
434
+ totalSearches: this.totalSearches,
435
+ avgLatency: 0,
436
+ p50Latency: 0,
437
+ p99Latency: 0,
438
+ };
439
+ }
440
+ const sorted = [...this.searchLatencies].sort((a, b) => a - b);
441
+ const p50Index = Math.floor(sorted.length * 0.5);
442
+ const p99Index = Math.floor(sorted.length * 0.99);
443
+ const avgLatency = this.searchLatencies.reduce((a, b) => a + b, 0) / this.searchLatencies.length;
444
+ return {
445
+ totalSearches: this.totalSearches,
446
+ avgLatency,
447
+ p50Latency: sorted[p50Index] || 0,
448
+ p99Latency: sorted[p99Index] || 0,
449
+ };
450
+ }
451
+ /**
452
+ * Record search latency
453
+ */
454
+ recordSearchLatency(latency) {
455
+ this.searchLatencies.push(latency);
456
+ this.totalSearches++;
457
+ // Keep only last 1000 measurements
458
+ if (this.searchLatencies.length > 1000) {
459
+ this.searchLatencies.shift();
460
+ }
461
+ }
462
+ /**
463
+ * Ensure adapter is initialized
464
+ */
465
+ ensureInitialized() {
466
+ if (!this.initialized) {
467
+ throw new Error('BrowserHNSWAdapter not initialized. Call initialize() first.');
468
+ }
469
+ }
470
+ }
471
+ exports.BrowserHNSWAdapter = BrowserHNSWAdapter;
472
+ /**
473
+ * Create BrowserHNSWAdapter with default configuration
474
+ */
475
+ function createBrowserHNSWAdapter(config) {
476
+ return new BrowserHNSWAdapter(config);
477
+ }
478
+ /**
479
+ * Check if browser environment supports HNSW adapter
480
+ */
481
+ function isBrowserHNSWSupported() {
482
+ return (0, storage_types_1.isBrowserEnvironment)();
483
+ }
484
+ //# sourceMappingURL=BrowserHNSWAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserHNSWAdapter.js","sourceRoot":"","sources":["../../../src/edge/adapters/BrowserHNSWAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * IndexedDB Storage Adapter for Browser HNSW Vector Memory
3
+ *
4
+ * Provides persistent vector storage in browsers using IndexedDB.
5
+ * Handles transactions, CRUD operations, and index state persistence.
6
+ *
7
+ * Features:
8
+ * - Transactional CRUD operations for vectors
9
+ * - HNSW index state persistence and restoration
10
+ * - Automatic schema migration
11
+ * - Batch operations for performance
12
+ * - Storage quota management
13
+ *
14
+ * @module edge/adapters/IndexedDBStorage
15
+ * @version 1.0.0
16
+ */
17
+ import type { IBrowserStorage, StoredVectorEntry, HNSWIndexState, IndexedDBStoreConfig } from '../types/storage.types';
18
+ /**
19
+ * IndexedDB Storage Implementation
20
+ *
21
+ * Provides a clean abstraction over IndexedDB for storing vectors
22
+ * and HNSW index state in the browser.
23
+ */
24
+ export declare class IndexedDBStorage implements IBrowserStorage {
25
+ private config;
26
+ private db;
27
+ private initialized;
28
+ constructor(config?: Partial<IndexedDBStoreConfig>);
29
+ /**
30
+ * Initialize IndexedDB connection and create object stores if needed
31
+ */
32
+ initialize(): Promise<void>;
33
+ /**
34
+ * Create object stores for vectors and index state
35
+ */
36
+ private createObjectStores;
37
+ /**
38
+ * Store a single vector entry
39
+ */
40
+ storeVector(entry: StoredVectorEntry): Promise<void>;
41
+ /**
42
+ * Store multiple vectors in a single transaction
43
+ */
44
+ storeVectorBatch(entries: StoredVectorEntry[]): Promise<void>;
45
+ /**
46
+ * Get a vector by ID
47
+ */
48
+ getVector(id: string): Promise<StoredVectorEntry | null>;
49
+ /**
50
+ * Get multiple vectors by IDs
51
+ */
52
+ getVectorBatch(ids: string[]): Promise<(StoredVectorEntry | null)[]>;
53
+ /**
54
+ * Get all vectors (for index rebuilding)
55
+ */
56
+ getAllVectors(): Promise<StoredVectorEntry[]>;
57
+ /**
58
+ * Delete a vector by ID
59
+ */
60
+ deleteVector(id: string): Promise<boolean>;
61
+ /**
62
+ * Update vector metadata (for recording usage)
63
+ */
64
+ updateVectorMetadata(id: string, updates: Partial<Pick<StoredVectorEntry, 'lastUsed' | 'usageCount'>>): Promise<void>;
65
+ /**
66
+ * Get vector count
67
+ */
68
+ getCount(): Promise<number>;
69
+ /**
70
+ * Clear all vectors
71
+ */
72
+ clear(): Promise<void>;
73
+ /**
74
+ * Store HNSW index state for persistence
75
+ */
76
+ storeIndexState(state: HNSWIndexState): Promise<void>;
77
+ /**
78
+ * Load HNSW index state
79
+ */
80
+ loadIndexState(): Promise<HNSWIndexState | null>;
81
+ /**
82
+ * Close the database connection
83
+ */
84
+ close(): Promise<void>;
85
+ /**
86
+ * Check if IndexedDB is available
87
+ */
88
+ isAvailable(): boolean;
89
+ /**
90
+ * Get storage statistics
91
+ */
92
+ getStorageStats(): Promise<{
93
+ vectorCount: number;
94
+ hasIndexState: boolean;
95
+ estimatedSize: number;
96
+ }>;
97
+ /**
98
+ * Get vectors by domain (using index)
99
+ */
100
+ getVectorsByDomain(domain: string): Promise<StoredVectorEntry[]>;
101
+ /**
102
+ * Ensure database is initialized
103
+ */
104
+ private ensureInitialized;
105
+ /**
106
+ * Delete the entire database (for testing/cleanup)
107
+ */
108
+ static deleteDatabase(dbName?: string): Promise<void>;
109
+ }
110
+ /**
111
+ * Create IndexedDB storage with default configuration
112
+ */
113
+ export declare function createIndexedDBStorage(config?: Partial<IndexedDBStoreConfig>): IndexedDBStorage;
114
+ //# sourceMappingURL=IndexedDBStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBStorage.d.ts","sourceRoot":"","sources":["../../../src/edge/adapters/IndexedDBStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAchC;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IACtD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAItD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDnE;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAqB9D;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC;IA8C1E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqBnD;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoChD;;OAEG;IACG,oBAAoB,CACxB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC,GACnE,OAAO,CAAC,IAAI,CAAC;IA2ChB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAqBjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD5B;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3D;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA4BtD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACH,WAAW,IAAI,OAAO;IAQtB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAiBF;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsBtE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;WACU,cAAc,CAAC,MAAM,GAAE,MAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,gBAAgB,CAElB"}