agentic-qe 2.7.4 → 2.8.1

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 (647) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/README.md +67 -2
  3. package/dist/agents/BaseAgent.d.ts +128 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +256 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/agent/spawn.d.ts +12 -1
  8. package/dist/cli/commands/agent/spawn.d.ts.map +1 -1
  9. package/dist/cli/commands/agent/spawn.js +95 -8
  10. package/dist/cli/commands/agent/spawn.js.map +1 -1
  11. package/dist/cli/commands/supabase/index.d.ts +20 -0
  12. package/dist/cli/commands/supabase/index.d.ts.map +1 -0
  13. package/dist/cli/commands/supabase/index.js +632 -0
  14. package/dist/cli/commands/supabase/index.js.map +1 -0
  15. package/dist/cli/index.js +94 -0
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  18. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts +134 -0
  19. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts.map +1 -0
  20. package/dist/edge/adapters/BrowserHNSWAdapter.js +484 -0
  21. package/dist/edge/adapters/BrowserHNSWAdapter.js.map +1 -0
  22. package/dist/edge/adapters/IndexedDBStorage.d.ts +114 -0
  23. package/dist/edge/adapters/IndexedDBStorage.d.ts.map +1 -0
  24. package/dist/edge/adapters/IndexedDBStorage.js +478 -0
  25. package/dist/edge/adapters/IndexedDBStorage.js.map +1 -0
  26. package/dist/edge/adapters/index.d.ts +12 -0
  27. package/dist/edge/adapters/index.d.ts.map +1 -0
  28. package/dist/edge/adapters/index.js +22 -0
  29. package/dist/edge/adapters/index.js.map +1 -0
  30. package/dist/edge/browser/BrowserAgent.d.ts +241 -0
  31. package/dist/edge/browser/BrowserAgent.d.ts.map +1 -0
  32. package/dist/edge/browser/BrowserAgent.js +743 -0
  33. package/dist/edge/browser/BrowserAgent.js.map +1 -0
  34. package/dist/edge/index.d.ts +34 -0
  35. package/dist/edge/index.d.ts.map +1 -0
  36. package/dist/edge/index.js +114 -0
  37. package/dist/edge/index.js.map +1 -0
  38. package/dist/edge/p2p/coordination/CoordinationManager.d.ts +181 -0
  39. package/dist/edge/p2p/coordination/CoordinationManager.d.ts.map +1 -0
  40. package/dist/edge/p2p/coordination/CoordinationManager.js +851 -0
  41. package/dist/edge/p2p/coordination/CoordinationManager.js.map +1 -0
  42. package/dist/edge/p2p/coordination/HealthMonitor.d.ts +143 -0
  43. package/dist/edge/p2p/coordination/HealthMonitor.d.ts.map +1 -0
  44. package/dist/edge/p2p/coordination/HealthMonitor.js +432 -0
  45. package/dist/edge/p2p/coordination/HealthMonitor.js.map +1 -0
  46. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts +146 -0
  47. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts.map +1 -0
  48. package/dist/edge/p2p/coordination/SyncOrchestrator.js +783 -0
  49. package/dist/edge/p2p/coordination/SyncOrchestrator.js.map +1 -0
  50. package/dist/edge/p2p/coordination/index.d.ts +70 -0
  51. package/dist/edge/p2p/coordination/index.d.ts.map +1 -0
  52. package/dist/edge/p2p/coordination/index.js +107 -0
  53. package/dist/edge/p2p/coordination/index.js.map +1 -0
  54. package/dist/edge/p2p/coordination/types.d.ts +572 -0
  55. package/dist/edge/p2p/coordination/types.d.ts.map +1 -0
  56. package/dist/edge/p2p/coordination/types.js +366 -0
  57. package/dist/edge/p2p/coordination/types.js.map +1 -0
  58. package/dist/edge/p2p/crdt/CRDTStore.d.ts +324 -0
  59. package/dist/edge/p2p/crdt/CRDTStore.d.ts.map +1 -0
  60. package/dist/edge/p2p/crdt/CRDTStore.js +839 -0
  61. package/dist/edge/p2p/crdt/CRDTStore.js.map +1 -0
  62. package/dist/edge/p2p/crdt/GCounter.d.ts +173 -0
  63. package/dist/edge/p2p/crdt/GCounter.d.ts.map +1 -0
  64. package/dist/edge/p2p/crdt/GCounter.js +394 -0
  65. package/dist/edge/p2p/crdt/GCounter.js.map +1 -0
  66. package/dist/edge/p2p/crdt/LWWRegister.d.ts +200 -0
  67. package/dist/edge/p2p/crdt/LWWRegister.d.ts.map +1 -0
  68. package/dist/edge/p2p/crdt/LWWRegister.js +456 -0
  69. package/dist/edge/p2p/crdt/LWWRegister.js.map +1 -0
  70. package/dist/edge/p2p/crdt/ORSet.d.ts +232 -0
  71. package/dist/edge/p2p/crdt/ORSet.d.ts.map +1 -0
  72. package/dist/edge/p2p/crdt/ORSet.js +723 -0
  73. package/dist/edge/p2p/crdt/ORSet.js.map +1 -0
  74. package/dist/edge/p2p/crdt/PatternCRDT.d.ts +366 -0
  75. package/dist/edge/p2p/crdt/PatternCRDT.d.ts.map +1 -0
  76. package/dist/edge/p2p/crdt/PatternCRDT.js +838 -0
  77. package/dist/edge/p2p/crdt/PatternCRDT.js.map +1 -0
  78. package/dist/edge/p2p/crdt/VectorClock.d.ts +274 -0
  79. package/dist/edge/p2p/crdt/VectorClock.d.ts.map +1 -0
  80. package/dist/edge/p2p/crdt/VectorClock.js +499 -0
  81. package/dist/edge/p2p/crdt/VectorClock.js.map +1 -0
  82. package/dist/edge/p2p/crdt/index.d.ts +87 -0
  83. package/dist/edge/p2p/crdt/index.d.ts.map +1 -0
  84. package/dist/edge/p2p/crdt/index.js +120 -0
  85. package/dist/edge/p2p/crdt/index.js.map +1 -0
  86. package/dist/edge/p2p/crdt/types.d.ts +667 -0
  87. package/dist/edge/p2p/crdt/types.d.ts.map +1 -0
  88. package/dist/edge/p2p/crdt/types.js +208 -0
  89. package/dist/edge/p2p/crdt/types.js.map +1 -0
  90. package/dist/edge/p2p/crypto/Identity.d.ts +139 -0
  91. package/dist/edge/p2p/crypto/Identity.d.ts.map +1 -0
  92. package/dist/edge/p2p/crypto/Identity.js +449 -0
  93. package/dist/edge/p2p/crypto/Identity.js.map +1 -0
  94. package/dist/edge/p2p/crypto/KeyManager.d.ts +196 -0
  95. package/dist/edge/p2p/crypto/KeyManager.d.ts.map +1 -0
  96. package/dist/edge/p2p/crypto/KeyManager.js +576 -0
  97. package/dist/edge/p2p/crypto/KeyManager.js.map +1 -0
  98. package/dist/edge/p2p/crypto/Signer.d.ts +164 -0
  99. package/dist/edge/p2p/crypto/Signer.d.ts.map +1 -0
  100. package/dist/edge/p2p/crypto/Signer.js +357 -0
  101. package/dist/edge/p2p/crypto/Signer.js.map +1 -0
  102. package/dist/edge/p2p/crypto/index.d.ts +90 -0
  103. package/dist/edge/p2p/crypto/index.d.ts.map +1 -0
  104. package/dist/edge/p2p/crypto/index.js +158 -0
  105. package/dist/edge/p2p/crypto/index.js.map +1 -0
  106. package/dist/edge/p2p/crypto/types.d.ts +217 -0
  107. package/dist/edge/p2p/crypto/types.d.ts.map +1 -0
  108. package/dist/edge/p2p/crypto/types.js +42 -0
  109. package/dist/edge/p2p/crypto/types.js.map +1 -0
  110. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts +270 -0
  111. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts.map +1 -0
  112. package/dist/edge/p2p/federated/FederatedCoordinator.js +824 -0
  113. package/dist/edge/p2p/federated/FederatedCoordinator.js.map +1 -0
  114. package/dist/edge/p2p/federated/FederatedRound.d.ts +295 -0
  115. package/dist/edge/p2p/federated/FederatedRound.d.ts.map +1 -0
  116. package/dist/edge/p2p/federated/FederatedRound.js +819 -0
  117. package/dist/edge/p2p/federated/FederatedRound.js.map +1 -0
  118. package/dist/edge/p2p/federated/GradientAggregator.d.ts +226 -0
  119. package/dist/edge/p2p/federated/GradientAggregator.d.ts.map +1 -0
  120. package/dist/edge/p2p/federated/GradientAggregator.js +826 -0
  121. package/dist/edge/p2p/federated/GradientAggregator.js.map +1 -0
  122. package/dist/edge/p2p/federated/ModelManager.d.ts +248 -0
  123. package/dist/edge/p2p/federated/ModelManager.d.ts.map +1 -0
  124. package/dist/edge/p2p/federated/ModelManager.js +724 -0
  125. package/dist/edge/p2p/federated/ModelManager.js.map +1 -0
  126. package/dist/edge/p2p/federated/index.d.ts +65 -0
  127. package/dist/edge/p2p/federated/index.d.ts.map +1 -0
  128. package/dist/edge/p2p/federated/index.js +110 -0
  129. package/dist/edge/p2p/federated/index.js.map +1 -0
  130. package/dist/edge/p2p/federated/types.d.ts +905 -0
  131. package/dist/edge/p2p/federated/types.d.ts.map +1 -0
  132. package/dist/edge/p2p/federated/types.js +339 -0
  133. package/dist/edge/p2p/federated/types.js.map +1 -0
  134. package/dist/edge/p2p/index.d.ts +156 -0
  135. package/dist/edge/p2p/index.d.ts.map +1 -0
  136. package/dist/edge/p2p/index.js +242 -0
  137. package/dist/edge/p2p/index.js.map +1 -0
  138. package/dist/edge/p2p/nat/ConnectivityTester.d.ts +128 -0
  139. package/dist/edge/p2p/nat/ConnectivityTester.d.ts.map +1 -0
  140. package/dist/edge/p2p/nat/ConnectivityTester.js +560 -0
  141. package/dist/edge/p2p/nat/ConnectivityTester.js.map +1 -0
  142. package/dist/edge/p2p/nat/HolePuncher.d.ts +159 -0
  143. package/dist/edge/p2p/nat/HolePuncher.d.ts.map +1 -0
  144. package/dist/edge/p2p/nat/HolePuncher.js +569 -0
  145. package/dist/edge/p2p/nat/HolePuncher.js.map +1 -0
  146. package/dist/edge/p2p/nat/NATDetector.d.ts +109 -0
  147. package/dist/edge/p2p/nat/NATDetector.d.ts.map +1 -0
  148. package/dist/edge/p2p/nat/NATDetector.js +472 -0
  149. package/dist/edge/p2p/nat/NATDetector.js.map +1 -0
  150. package/dist/edge/p2p/nat/TURNManager.d.ts +158 -0
  151. package/dist/edge/p2p/nat/TURNManager.d.ts.map +1 -0
  152. package/dist/edge/p2p/nat/TURNManager.js +547 -0
  153. package/dist/edge/p2p/nat/TURNManager.js.map +1 -0
  154. package/dist/edge/p2p/nat/index.d.ts +74 -0
  155. package/dist/edge/p2p/nat/index.d.ts.map +1 -0
  156. package/dist/edge/p2p/nat/index.js +104 -0
  157. package/dist/edge/p2p/nat/index.js.map +1 -0
  158. package/dist/edge/p2p/nat/types.d.ts +583 -0
  159. package/dist/edge/p2p/nat/types.d.ts.map +1 -0
  160. package/dist/edge/p2p/nat/types.js +267 -0
  161. package/dist/edge/p2p/nat/types.js.map +1 -0
  162. package/dist/edge/p2p/protocol/AgentChannel.d.ts +333 -0
  163. package/dist/edge/p2p/protocol/AgentChannel.d.ts.map +1 -0
  164. package/dist/edge/p2p/protocol/AgentChannel.js +914 -0
  165. package/dist/edge/p2p/protocol/AgentChannel.js.map +1 -0
  166. package/dist/edge/p2p/protocol/MessageEncoder.d.ts +147 -0
  167. package/dist/edge/p2p/protocol/MessageEncoder.d.ts.map +1 -0
  168. package/dist/edge/p2p/protocol/MessageEncoder.js +738 -0
  169. package/dist/edge/p2p/protocol/MessageEncoder.js.map +1 -0
  170. package/dist/edge/p2p/protocol/MessageRouter.d.ts +266 -0
  171. package/dist/edge/p2p/protocol/MessageRouter.d.ts.map +1 -0
  172. package/dist/edge/p2p/protocol/MessageRouter.js +808 -0
  173. package/dist/edge/p2p/protocol/MessageRouter.js.map +1 -0
  174. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts +309 -0
  175. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts.map +1 -0
  176. package/dist/edge/p2p/protocol/ProtocolHandler.js +930 -0
  177. package/dist/edge/p2p/protocol/ProtocolHandler.js.map +1 -0
  178. package/dist/edge/p2p/protocol/index.d.ts +114 -0
  179. package/dist/edge/p2p/protocol/index.d.ts.map +1 -0
  180. package/dist/edge/p2p/protocol/index.js +206 -0
  181. package/dist/edge/p2p/protocol/index.js.map +1 -0
  182. package/dist/edge/p2p/protocol/types.d.ts +737 -0
  183. package/dist/edge/p2p/protocol/types.d.ts.map +1 -0
  184. package/dist/edge/p2p/protocol/types.js +490 -0
  185. package/dist/edge/p2p/protocol/types.js.map +1 -0
  186. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts +284 -0
  187. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts.map +1 -0
  188. package/dist/edge/p2p/sharing/PatternBroadcaster.js +644 -0
  189. package/dist/edge/p2p/sharing/PatternBroadcaster.js.map +1 -0
  190. package/dist/edge/p2p/sharing/PatternIndex.d.ts +168 -0
  191. package/dist/edge/p2p/sharing/PatternIndex.d.ts.map +1 -0
  192. package/dist/edge/p2p/sharing/PatternIndex.js +781 -0
  193. package/dist/edge/p2p/sharing/PatternIndex.js.map +1 -0
  194. package/dist/edge/p2p/sharing/PatternSerializer.d.ts +163 -0
  195. package/dist/edge/p2p/sharing/PatternSerializer.d.ts.map +1 -0
  196. package/dist/edge/p2p/sharing/PatternSerializer.js +696 -0
  197. package/dist/edge/p2p/sharing/PatternSerializer.js.map +1 -0
  198. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts +242 -0
  199. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts.map +1 -0
  200. package/dist/edge/p2p/sharing/PatternSyncManager.js +859 -0
  201. package/dist/edge/p2p/sharing/PatternSyncManager.js.map +1 -0
  202. package/dist/edge/p2p/sharing/index.d.ts +90 -0
  203. package/dist/edge/p2p/sharing/index.d.ts.map +1 -0
  204. package/dist/edge/p2p/sharing/index.js +152 -0
  205. package/dist/edge/p2p/sharing/index.js.map +1 -0
  206. package/dist/edge/p2p/sharing/types.d.ts +796 -0
  207. package/dist/edge/p2p/sharing/types.d.ts.map +1 -0
  208. package/dist/edge/p2p/sharing/types.js +264 -0
  209. package/dist/edge/p2p/sharing/types.js.map +1 -0
  210. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts +218 -0
  211. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts.map +1 -0
  212. package/dist/edge/p2p/webrtc/ConnectionPool.js +562 -0
  213. package/dist/edge/p2p/webrtc/ConnectionPool.js.map +1 -0
  214. package/dist/edge/p2p/webrtc/ICEManager.d.ts +171 -0
  215. package/dist/edge/p2p/webrtc/ICEManager.d.ts.map +1 -0
  216. package/dist/edge/p2p/webrtc/ICEManager.js +490 -0
  217. package/dist/edge/p2p/webrtc/ICEManager.js.map +1 -0
  218. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts +159 -0
  219. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts.map +1 -0
  220. package/dist/edge/p2p/webrtc/PeerConnectionManager.js +735 -0
  221. package/dist/edge/p2p/webrtc/PeerConnectionManager.js.map +1 -0
  222. package/dist/edge/p2p/webrtc/SignalingClient.d.ts +191 -0
  223. package/dist/edge/p2p/webrtc/SignalingClient.d.ts.map +1 -0
  224. package/dist/edge/p2p/webrtc/SignalingClient.js +608 -0
  225. package/dist/edge/p2p/webrtc/SignalingClient.js.map +1 -0
  226. package/dist/edge/p2p/webrtc/index.d.ts +158 -0
  227. package/dist/edge/p2p/webrtc/index.d.ts.map +1 -0
  228. package/dist/edge/p2p/webrtc/index.js +164 -0
  229. package/dist/edge/p2p/webrtc/index.js.map +1 -0
  230. package/dist/edge/p2p/webrtc/types.d.ts +665 -0
  231. package/dist/edge/p2p/webrtc/types.d.ts.map +1 -0
  232. package/dist/edge/p2p/webrtc/types.js +245 -0
  233. package/dist/edge/p2p/webrtc/types.js.map +1 -0
  234. package/dist/edge/server/AgentSpawnAPI.d.ts +98 -0
  235. package/dist/edge/server/AgentSpawnAPI.d.ts.map +1 -0
  236. package/dist/edge/server/AgentSpawnAPI.js +264 -0
  237. package/dist/edge/server/AgentSpawnAPI.js.map +1 -0
  238. package/dist/edge/server/SignalingServer.d.ts +71 -0
  239. package/dist/edge/server/SignalingServer.d.ts.map +1 -0
  240. package/dist/edge/server/SignalingServer.js +429 -0
  241. package/dist/edge/server/SignalingServer.js.map +1 -0
  242. package/dist/edge/server/index.d.ts +64 -0
  243. package/dist/edge/server/index.d.ts.map +1 -0
  244. package/dist/edge/server/index.js +318 -0
  245. package/dist/edge/server/index.js.map +1 -0
  246. package/dist/edge/types/browser-agent.types.d.ts +455 -0
  247. package/dist/edge/types/browser-agent.types.d.ts.map +1 -0
  248. package/dist/edge/types/browser-agent.types.js +116 -0
  249. package/dist/edge/types/browser-agent.types.js.map +1 -0
  250. package/dist/edge/types/index.d.ts +11 -0
  251. package/dist/edge/types/index.d.ts.map +1 -0
  252. package/dist/edge/types/index.js +17 -0
  253. package/dist/edge/types/index.js.map +1 -0
  254. package/dist/edge/types/storage.types.d.ts +207 -0
  255. package/dist/edge/types/storage.types.d.ts.map +1 -0
  256. package/dist/edge/types/storage.types.js +47 -0
  257. package/dist/edge/types/storage.types.js.map +1 -0
  258. package/dist/edge/wasm/shims.d.ts +224 -0
  259. package/dist/edge/wasm/shims.d.ts.map +1 -0
  260. package/dist/edge/wasm/shims.js +667 -0
  261. package/dist/edge/wasm/shims.js.map +1 -0
  262. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +33 -0
  263. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -0
  264. package/dist/mcp/handlers/NewDomainToolsHandler.js +305 -0
  265. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -0
  266. package/dist/mcp/handlers/filtered/index.d.ts +15 -19
  267. package/dist/mcp/handlers/filtered/index.d.ts.map +1 -1
  268. package/dist/mcp/handlers/filtered/index.js +16 -27
  269. package/dist/mcp/handlers/filtered/index.js.map +1 -1
  270. package/dist/mcp/handlers/integration/index.d.ts +5 -4
  271. package/dist/mcp/handlers/integration/index.d.ts.map +1 -1
  272. package/dist/mcp/handlers/integration/index.js +7 -7
  273. package/dist/mcp/handlers/integration/index.js.map +1 -1
  274. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  275. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  276. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  277. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  278. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  279. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  280. package/dist/mcp/handlers/ruvector/index.js +9 -0
  281. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  282. package/dist/mcp/server-instructions.d.ts +1 -1
  283. package/dist/mcp/server-instructions.js +1 -1
  284. package/dist/mcp/server.d.ts.map +1 -1
  285. package/dist/mcp/server.js +114 -22
  286. package/dist/mcp/server.js.map +1 -1
  287. package/dist/mcp/tools.d.ts +8 -0
  288. package/dist/mcp/tools.d.ts.map +1 -1
  289. package/dist/mcp/tools.js +412 -1
  290. package/dist/mcp/tools.js.map +1 -1
  291. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  292. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  293. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  294. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  295. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  296. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  297. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  298. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  299. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  300. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  301. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  302. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  303. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  304. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  305. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  306. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  307. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  308. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  309. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  310. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  311. package/dist/nervous-system/index.d.ts +25 -0
  312. package/dist/nervous-system/index.d.ts.map +1 -0
  313. package/dist/nervous-system/index.js +80 -0
  314. package/dist/nervous-system/index.js.map +1 -0
  315. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  316. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  317. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  318. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  319. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  320. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  321. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  322. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  323. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  324. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  325. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  326. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  327. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  328. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  329. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  330. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  331. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  332. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  333. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  334. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  335. package/dist/nervous-system/integration/index.d.ts +22 -0
  336. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  337. package/dist/nervous-system/integration/index.js +44 -0
  338. package/dist/nervous-system/integration/index.js.map +1 -0
  339. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  340. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  341. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  342. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  343. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  344. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  345. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  346. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  347. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  348. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  349. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  350. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  351. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  352. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  353. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  354. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  355. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  356. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  357. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  358. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  359. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  360. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  361. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  362. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  363. package/dist/nervous-system/persistence/index.d.ts +22 -0
  364. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  365. package/dist/nervous-system/persistence/index.js +45 -0
  366. package/dist/nervous-system/persistence/index.js.map +1 -0
  367. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  368. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  369. package/dist/nervous-system/wasm-loader.js +188 -0
  370. package/dist/nervous-system/wasm-loader.js.map +1 -0
  371. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  372. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  373. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  374. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  375. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  376. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  377. package/dist/persistence/IPersistenceProvider.js +11 -0
  378. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  379. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  380. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  381. package/dist/persistence/SupabaseConfig.js +277 -0
  382. package/dist/persistence/SupabaseConfig.js.map +1 -0
  383. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  384. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  385. package/dist/persistence/SupabasePersistenceProvider.js +955 -0
  386. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  387. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  388. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  389. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  390. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  391. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  392. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  393. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  394. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  395. package/dist/persistence/adapters/index.d.ts +11 -0
  396. package/dist/persistence/adapters/index.d.ts.map +1 -0
  397. package/dist/persistence/adapters/index.js +20 -0
  398. package/dist/persistence/adapters/index.js.map +1 -0
  399. package/dist/persistence/index.d.ts +14 -0
  400. package/dist/persistence/index.d.ts.map +1 -1
  401. package/dist/persistence/index.js +36 -1
  402. package/dist/persistence/index.js.map +1 -1
  403. package/dist/planning/GOAPPlanner.d.ts +1 -0
  404. package/dist/planning/GOAPPlanner.d.ts.map +1 -1
  405. package/dist/planning/GOAPPlanner.js +12 -0
  406. package/dist/planning/GOAPPlanner.js.map +1 -1
  407. package/package.json +31 -8
  408. package/dist/alerting/AlertManager.d.ts +0 -120
  409. package/dist/alerting/AlertManager.d.ts.map +0 -1
  410. package/dist/alerting/AlertManager.js +0 -345
  411. package/dist/alerting/AlertManager.js.map +0 -1
  412. package/dist/alerting/FeedbackRouter.d.ts +0 -98
  413. package/dist/alerting/FeedbackRouter.d.ts.map +0 -1
  414. package/dist/alerting/FeedbackRouter.js +0 -331
  415. package/dist/alerting/FeedbackRouter.js.map +0 -1
  416. package/dist/alerting/StrategyApplicator.d.ts +0 -120
  417. package/dist/alerting/StrategyApplicator.d.ts.map +0 -1
  418. package/dist/alerting/StrategyApplicator.js +0 -299
  419. package/dist/alerting/StrategyApplicator.js.map +0 -1
  420. package/dist/alerting/index.d.ts +0 -68
  421. package/dist/alerting/index.d.ts.map +0 -1
  422. package/dist/alerting/index.js +0 -112
  423. package/dist/alerting/index.js.map +0 -1
  424. package/dist/alerting/types.d.ts +0 -118
  425. package/dist/alerting/types.d.ts.map +0 -1
  426. package/dist/alerting/types.js +0 -11
  427. package/dist/alerting/types.js.map +0 -1
  428. package/dist/cli/commands/fleet/backup.d.ts +0 -49
  429. package/dist/cli/commands/fleet/backup.d.ts.map +0 -1
  430. package/dist/cli/commands/fleet/backup.js +0 -88
  431. package/dist/cli/commands/fleet/backup.js.map +0 -1
  432. package/dist/cli/commands/fleet/health.d.ts +0 -154
  433. package/dist/cli/commands/fleet/health.d.ts.map +0 -1
  434. package/dist/cli/commands/fleet/health.js +0 -483
  435. package/dist/cli/commands/fleet/health.js.map +0 -1
  436. package/dist/cli/commands/fleet/init.d.ts +0 -11
  437. package/dist/cli/commands/fleet/init.d.ts.map +0 -1
  438. package/dist/cli/commands/fleet/init.js +0 -91
  439. package/dist/cli/commands/fleet/init.js.map +0 -1
  440. package/dist/cli/commands/fleet/logs.d.ts +0 -21
  441. package/dist/cli/commands/fleet/logs.d.ts.map +0 -1
  442. package/dist/cli/commands/fleet/logs.js +0 -267
  443. package/dist/cli/commands/fleet/logs.js.map +0 -1
  444. package/dist/cli/commands/fleet/metrics.d.ts +0 -27
  445. package/dist/cli/commands/fleet/metrics.d.ts.map +0 -1
  446. package/dist/cli/commands/fleet/metrics.js +0 -369
  447. package/dist/cli/commands/fleet/metrics.js.map +0 -1
  448. package/dist/cli/commands/fleet/monitor.d.ts +0 -18
  449. package/dist/cli/commands/fleet/monitor.d.ts.map +0 -1
  450. package/dist/cli/commands/fleet/monitor.js +0 -237
  451. package/dist/cli/commands/fleet/monitor.js.map +0 -1
  452. package/dist/cli/commands/fleet/optimize.d.ts +0 -42
  453. package/dist/cli/commands/fleet/optimize.d.ts.map +0 -1
  454. package/dist/cli/commands/fleet/optimize.js +0 -135
  455. package/dist/cli/commands/fleet/optimize.js.map +0 -1
  456. package/dist/cli/commands/fleet/recover.d.ts +0 -22
  457. package/dist/cli/commands/fleet/recover.d.ts.map +0 -1
  458. package/dist/cli/commands/fleet/recover.js +0 -99
  459. package/dist/cli/commands/fleet/recover.js.map +0 -1
  460. package/dist/cli/commands/fleet/restart.d.ts +0 -18
  461. package/dist/cli/commands/fleet/restart.d.ts.map +0 -1
  462. package/dist/cli/commands/fleet/restart.js +0 -290
  463. package/dist/cli/commands/fleet/restart.js.map +0 -1
  464. package/dist/cli/commands/fleet/scale.d.ts +0 -9
  465. package/dist/cli/commands/fleet/scale.d.ts.map +0 -1
  466. package/dist/cli/commands/fleet/scale.js +0 -77
  467. package/dist/cli/commands/fleet/scale.js.map +0 -1
  468. package/dist/cli/commands/fleet/shutdown.d.ts +0 -19
  469. package/dist/cli/commands/fleet/shutdown.d.ts.map +0 -1
  470. package/dist/cli/commands/fleet/shutdown.js +0 -307
  471. package/dist/cli/commands/fleet/shutdown.js.map +0 -1
  472. package/dist/cli/commands/fleet/status.d.ts +0 -10
  473. package/dist/cli/commands/fleet/status.d.ts.map +0 -1
  474. package/dist/cli/commands/fleet/status.js +0 -97
  475. package/dist/cli/commands/fleet/status.js.map +0 -1
  476. package/dist/cli/commands/fleet/topology.d.ts +0 -23
  477. package/dist/cli/commands/fleet/topology.d.ts.map +0 -1
  478. package/dist/cli/commands/fleet/topology.js +0 -376
  479. package/dist/cli/commands/fleet/topology.js.map +0 -1
  480. package/dist/cli/commands/monitor/alerts.d.ts +0 -45
  481. package/dist/cli/commands/monitor/alerts.d.ts.map +0 -1
  482. package/dist/cli/commands/monitor/alerts.js +0 -168
  483. package/dist/cli/commands/monitor/alerts.js.map +0 -1
  484. package/dist/cli/commands/monitor/analyze.d.ts +0 -49
  485. package/dist/cli/commands/monitor/analyze.d.ts.map +0 -1
  486. package/dist/cli/commands/monitor/analyze.js +0 -209
  487. package/dist/cli/commands/monitor/analyze.js.map +0 -1
  488. package/dist/cli/commands/monitor/compare.d.ts +0 -38
  489. package/dist/cli/commands/monitor/compare.d.ts.map +0 -1
  490. package/dist/cli/commands/monitor/compare.js +0 -177
  491. package/dist/cli/commands/monitor/compare.js.map +0 -1
  492. package/dist/cli/commands/monitor/dashboard.d.ts +0 -34
  493. package/dist/cli/commands/monitor/dashboard.d.ts.map +0 -1
  494. package/dist/cli/commands/monitor/dashboard.js +0 -157
  495. package/dist/cli/commands/monitor/dashboard.js.map +0 -1
  496. package/dist/cli/commands/monitor/export.d.ts +0 -36
  497. package/dist/cli/commands/monitor/export.d.ts.map +0 -1
  498. package/dist/cli/commands/monitor/export.js +0 -157
  499. package/dist/cli/commands/monitor/export.js.map +0 -1
  500. package/dist/cli/commands/monitor/index.d.ts +0 -11
  501. package/dist/cli/commands/monitor/index.d.ts.map +0 -1
  502. package/dist/cli/commands/monitor/index.js +0 -14
  503. package/dist/cli/commands/monitor/index.js.map +0 -1
  504. package/dist/cli/commands/quality/baseline.d.ts +0 -27
  505. package/dist/cli/commands/quality/baseline.d.ts.map +0 -1
  506. package/dist/cli/commands/quality/baseline.js +0 -124
  507. package/dist/cli/commands/quality/baseline.js.map +0 -1
  508. package/dist/cli/commands/quality/compare.d.ts +0 -36
  509. package/dist/cli/commands/quality/compare.d.ts.map +0 -1
  510. package/dist/cli/commands/quality/compare.js +0 -136
  511. package/dist/cli/commands/quality/compare.js.map +0 -1
  512. package/dist/cli/commands/quality/decision.d.ts +0 -81
  513. package/dist/cli/commands/quality/decision.d.ts.map +0 -1
  514. package/dist/cli/commands/quality/decision.js +0 -319
  515. package/dist/cli/commands/quality/decision.js.map +0 -1
  516. package/dist/cli/commands/quality/gate.d.ts +0 -47
  517. package/dist/cli/commands/quality/gate.d.ts.map +0 -1
  518. package/dist/cli/commands/quality/gate.js +0 -205
  519. package/dist/cli/commands/quality/gate.js.map +0 -1
  520. package/dist/cli/commands/quality/index.d.ts +0 -17
  521. package/dist/cli/commands/quality/index.d.ts.map +0 -1
  522. package/dist/cli/commands/quality/index.js +0 -41
  523. package/dist/cli/commands/quality/index.js.map +0 -1
  524. package/dist/cli/commands/quality/policy.d.ts +0 -57
  525. package/dist/cli/commands/quality/policy.d.ts.map +0 -1
  526. package/dist/cli/commands/quality/policy.js +0 -359
  527. package/dist/cli/commands/quality/policy.js.map +0 -1
  528. package/dist/cli/commands/quality/risk.d.ts +0 -41
  529. package/dist/cli/commands/quality/risk.d.ts.map +0 -1
  530. package/dist/cli/commands/quality/risk.js +0 -255
  531. package/dist/cli/commands/quality/risk.js.map +0 -1
  532. package/dist/cli/commands/quality/trends.d.ts +0 -40
  533. package/dist/cli/commands/quality/trends.d.ts.map +0 -1
  534. package/dist/cli/commands/quality/trends.js +0 -122
  535. package/dist/cli/commands/quality/trends.js.map +0 -1
  536. package/dist/cli/commands/quality/validate.d.ts +0 -44
  537. package/dist/cli/commands/quality/validate.d.ts.map +0 -1
  538. package/dist/cli/commands/quality/validate.js +0 -234
  539. package/dist/cli/commands/quality/validate.js.map +0 -1
  540. package/dist/cli/commands/test/analyze-failures.d.ts +0 -39
  541. package/dist/cli/commands/test/analyze-failures.d.ts.map +0 -1
  542. package/dist/cli/commands/test/analyze-failures.js +0 -113
  543. package/dist/cli/commands/test/analyze-failures.js.map +0 -1
  544. package/dist/cli/commands/test/clean.d.ts +0 -3
  545. package/dist/cli/commands/test/clean.d.ts.map +0 -1
  546. package/dist/cli/commands/test/clean.js +0 -148
  547. package/dist/cli/commands/test/clean.js.map +0 -1
  548. package/dist/cli/commands/test/debug.d.ts +0 -3
  549. package/dist/cli/commands/test/debug.d.ts.map +0 -1
  550. package/dist/cli/commands/test/debug.js +0 -167
  551. package/dist/cli/commands/test/debug.js.map +0 -1
  552. package/dist/cli/commands/test/diff.d.ts +0 -3
  553. package/dist/cli/commands/test/diff.d.ts.map +0 -1
  554. package/dist/cli/commands/test/diff.js +0 -195
  555. package/dist/cli/commands/test/diff.js.map +0 -1
  556. package/dist/cli/commands/test/flakiness.d.ts +0 -32
  557. package/dist/cli/commands/test/flakiness.d.ts.map +0 -1
  558. package/dist/cli/commands/test/flakiness.js +0 -121
  559. package/dist/cli/commands/test/flakiness.js.map +0 -1
  560. package/dist/cli/commands/test/index.d.ts +0 -17
  561. package/dist/cli/commands/test/index.d.ts.map +0 -1
  562. package/dist/cli/commands/test/index.js +0 -45
  563. package/dist/cli/commands/test/index.js.map +0 -1
  564. package/dist/cli/commands/test/mutate.d.ts +0 -29
  565. package/dist/cli/commands/test/mutate.d.ts.map +0 -1
  566. package/dist/cli/commands/test/mutate.js +0 -163
  567. package/dist/cli/commands/test/mutate.js.map +0 -1
  568. package/dist/cli/commands/test/parallel.d.ts +0 -3
  569. package/dist/cli/commands/test/parallel.d.ts.map +0 -1
  570. package/dist/cli/commands/test/parallel.js +0 -117
  571. package/dist/cli/commands/test/parallel.js.map +0 -1
  572. package/dist/cli/commands/test/profile.d.ts +0 -3
  573. package/dist/cli/commands/test/profile.d.ts.map +0 -1
  574. package/dist/cli/commands/test/profile.js +0 -156
  575. package/dist/cli/commands/test/profile.js.map +0 -1
  576. package/dist/cli/commands/test/queue.d.ts +0 -3
  577. package/dist/cli/commands/test/queue.d.ts.map +0 -1
  578. package/dist/cli/commands/test/queue.js +0 -140
  579. package/dist/cli/commands/test/queue.js.map +0 -1
  580. package/dist/cli/commands/test/retry.d.ts +0 -3
  581. package/dist/cli/commands/test/retry.d.ts.map +0 -1
  582. package/dist/cli/commands/test/retry.js +0 -105
  583. package/dist/cli/commands/test/retry.js.map +0 -1
  584. package/dist/cli/commands/test/snapshot.d.ts +0 -3
  585. package/dist/cli/commands/test/snapshot.d.ts.map +0 -1
  586. package/dist/cli/commands/test/snapshot.js +0 -176
  587. package/dist/cli/commands/test/snapshot.js.map +0 -1
  588. package/dist/cli/commands/test/trace.d.ts +0 -3
  589. package/dist/cli/commands/test/trace.d.ts.map +0 -1
  590. package/dist/cli/commands/test/trace.js +0 -137
  591. package/dist/cli/commands/test/trace.js.map +0 -1
  592. package/dist/cli/commands/test/watch.d.ts +0 -3
  593. package/dist/cli/commands/test/watch.d.ts.map +0 -1
  594. package/dist/cli/commands/test/watch.js +0 -130
  595. package/dist/cli/commands/test/watch.js.map +0 -1
  596. package/dist/cli/index-spec.d.ts +0 -3
  597. package/dist/cli/index-spec.d.ts.map +0 -1
  598. package/dist/cli/index-spec.js +0 -154
  599. package/dist/cli/index-spec.js.map +0 -1
  600. package/dist/cli/index-working.d.ts +0 -7
  601. package/dist/cli/index-working.d.ts.map +0 -1
  602. package/dist/cli/index-working.js +0 -617
  603. package/dist/cli/index-working.js.map +0 -1
  604. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts +0 -83
  605. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts.map +0 -1
  606. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js +0 -130
  607. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js.map +0 -1
  608. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts +0 -58
  609. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts.map +0 -1
  610. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js +0 -84
  611. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js.map +0 -1
  612. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts +0 -54
  613. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts.map +0 -1
  614. package/dist/mcp/handlers/filtered/security-scanner-filtered.js +0 -73
  615. package/dist/mcp/handlers/filtered/security-scanner-filtered.js.map +0 -1
  616. package/dist/mcp/handlers/integration/contract-validate.d.ts +0 -10
  617. package/dist/mcp/handlers/integration/contract-validate.d.ts.map +0 -1
  618. package/dist/mcp/handlers/integration/contract-validate.js +0 -348
  619. package/dist/mcp/handlers/integration/contract-validate.js.map +0 -1
  620. package/dist/reporting/ResultAggregator.d.ts +0 -107
  621. package/dist/reporting/ResultAggregator.d.ts.map +0 -1
  622. package/dist/reporting/ResultAggregator.js +0 -435
  623. package/dist/reporting/ResultAggregator.js.map +0 -1
  624. package/dist/reporting/index.d.ts +0 -48
  625. package/dist/reporting/index.d.ts.map +0 -1
  626. package/dist/reporting/index.js +0 -154
  627. package/dist/reporting/index.js.map +0 -1
  628. package/dist/reporting/reporters/ControlLoopReporter.d.ts +0 -128
  629. package/dist/reporting/reporters/ControlLoopReporter.d.ts.map +0 -1
  630. package/dist/reporting/reporters/ControlLoopReporter.js +0 -417
  631. package/dist/reporting/reporters/ControlLoopReporter.js.map +0 -1
  632. package/dist/reporting/reporters/HumanReadableReporter.d.ts +0 -140
  633. package/dist/reporting/reporters/HumanReadableReporter.d.ts.map +0 -1
  634. package/dist/reporting/reporters/HumanReadableReporter.js +0 -524
  635. package/dist/reporting/reporters/HumanReadableReporter.js.map +0 -1
  636. package/dist/reporting/reporters/JSONReporter.d.ts +0 -251
  637. package/dist/reporting/reporters/JSONReporter.d.ts.map +0 -1
  638. package/dist/reporting/reporters/JSONReporter.js +0 -325
  639. package/dist/reporting/reporters/JSONReporter.js.map +0 -1
  640. package/dist/reporting/reporters/index.d.ts +0 -14
  641. package/dist/reporting/reporters/index.d.ts.map +0 -1
  642. package/dist/reporting/reporters/index.js +0 -19
  643. package/dist/reporting/reporters/index.js.map +0 -1
  644. package/dist/reporting/types.d.ts +0 -427
  645. package/dist/reporting/types.d.ts.map +0 -1
  646. package/dist/reporting/types.js +0 -12
  647. package/dist/reporting/types.js.map +0 -1
@@ -0,0 +1,783 @@
1
+ "use strict";
2
+ /**
3
+ * Sync Orchestrator for Pattern Synchronization
4
+ *
5
+ * Orchestrates pattern synchronization between peers including
6
+ * initial sync, incremental updates, conflict resolution, and progress tracking.
7
+ *
8
+ * @module edge/p2p/coordination/SyncOrchestrator
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SyncOrchestrator = void 0;
13
+ exports.createSyncOrchestrator = createSyncOrchestrator;
14
+ const types_1 = require("./types");
15
+ // ============================================
16
+ // Sync Orchestrator Class
17
+ // ============================================
18
+ /**
19
+ * SyncOrchestrator - Orchestrates pattern synchronization
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const orchestrator = new SyncOrchestrator({
24
+ * localAgentId: 'local',
25
+ * peerId: 'peer-123',
26
+ * config: syncConfig,
27
+ * sendMessage: async (msg) => await channel.send(msg),
28
+ * onSyncProgress: (status) => console.log('Progress:', status.progressPercent),
29
+ * });
30
+ *
31
+ * // Start sync with local patterns
32
+ * const result = await orchestrator.startSync(localPatterns);
33
+ * console.log('Synced:', result.syncedPatterns);
34
+ *
35
+ * // Handle incoming sync messages
36
+ * orchestrator.handleMessage(message);
37
+ * ```
38
+ */
39
+ class SyncOrchestrator {
40
+ /**
41
+ * Create a new SyncOrchestrator
42
+ */
43
+ constructor(config) {
44
+ // Local pattern storage for sync
45
+ this.localPatterns = new Map();
46
+ this.localVectorClocks = new Map();
47
+ this.pendingRequests = new Map();
48
+ this.isRunning = false;
49
+ this.localAgentId = config.localAgentId;
50
+ this.peerId = config.peerId;
51
+ this.config = config.config;
52
+ this.sendMessage = config.sendMessage;
53
+ this.onSyncProgress = config.onSyncProgress;
54
+ this.onConflict = config.onConflict;
55
+ this.onPatternReceived = config.onPatternReceived;
56
+ this.currentStatus = (0, types_1.createDefaultSyncStatus)();
57
+ this.log = config.enableLogging
58
+ ? (...args) => console.log(`[SyncOrchestrator:${this.peerId}]`, ...args)
59
+ : () => { };
60
+ }
61
+ // ============================================
62
+ // Public API
63
+ // ============================================
64
+ /**
65
+ * Start a sync operation
66
+ *
67
+ * @param patterns - Local patterns to sync
68
+ * @returns Promise resolving to final sync status
69
+ */
70
+ async startSync(patterns) {
71
+ if (this.activeSession) {
72
+ throw new types_1.CoordinationError('Sync already in progress', types_1.CoordinationErrorCode.SYNC_FAILED, this.peerId);
73
+ }
74
+ // Store local patterns
75
+ if (patterns) {
76
+ for (const pattern of patterns) {
77
+ this.localPatterns.set(pattern.id, pattern);
78
+ this.localVectorClocks.set(pattern.id, pattern.version.vectorClock);
79
+ }
80
+ }
81
+ this.log(`Starting sync with ${this.localPatterns.size} local patterns`);
82
+ // Create sync session
83
+ const sessionId = (0, types_1.generateMessageId)();
84
+ const startedAt = Date.now();
85
+ this.currentStatus = {
86
+ state: 'syncing',
87
+ totalPatterns: this.localPatterns.size,
88
+ syncedPatterns: 0,
89
+ pendingPatterns: this.localPatterns.size,
90
+ conflicts: 0,
91
+ conflictsResolved: 0,
92
+ startedAt: new Date(startedAt).toISOString(),
93
+ progressPercent: 0,
94
+ direction: 'bidirectional',
95
+ bytesTransferred: 0,
96
+ patternsPerSecond: 0,
97
+ };
98
+ this.onSyncProgress(this.currentStatus);
99
+ return new Promise((resolve, reject) => {
100
+ const timeout = setTimeout(() => {
101
+ this.handleSyncTimeout(sessionId);
102
+ }, this.config.syncTimeout);
103
+ this.activeSession = {
104
+ sessionId,
105
+ direction: 'pull',
106
+ startedAt,
107
+ patterns: patterns ?? [],
108
+ syncedPatterns: [],
109
+ currentBatch: 0,
110
+ totalBatches: 0,
111
+ conflicts: [],
112
+ resolvedConflicts: 0,
113
+ resolve,
114
+ reject,
115
+ timeout,
116
+ };
117
+ // Send sync request
118
+ this.sendSyncRequest(sessionId).catch((error) => {
119
+ this.log('Failed to send sync request:', error);
120
+ this.completeSync(false, error.message);
121
+ });
122
+ });
123
+ }
124
+ /**
125
+ * Request specific patterns
126
+ */
127
+ async requestPatterns(patternIds) {
128
+ const sessionId = (0, types_1.generateMessageId)();
129
+ const payload = {
130
+ requestId: sessionId,
131
+ patternIds,
132
+ includeContent: true,
133
+ batchSize: this.config.batchSize,
134
+ };
135
+ await this.sendMessage({
136
+ type: types_1.CoordinationMessageType.SYNC_REQUEST,
137
+ messageId: (0, types_1.generateMessageId)(),
138
+ senderId: this.localAgentId,
139
+ payload,
140
+ timestamp: Date.now(),
141
+ });
142
+ return new Promise((resolve, reject) => {
143
+ const timeout = setTimeout(() => {
144
+ this.pendingRequests.delete(sessionId);
145
+ reject(new Error('Pattern request timeout'));
146
+ }, this.config.syncTimeout);
147
+ const session = {
148
+ sessionId,
149
+ direction: 'pull',
150
+ startedAt: Date.now(),
151
+ patterns: [],
152
+ syncedPatterns: [],
153
+ currentBatch: 0,
154
+ totalBatches: 0,
155
+ conflicts: [],
156
+ resolvedConflicts: 0,
157
+ resolve: (status) => {
158
+ const receivedPatterns = Array.from(this.localPatterns.values())
159
+ .filter((p) => patternIds.includes(p.id));
160
+ resolve(receivedPatterns);
161
+ },
162
+ reject,
163
+ timeout,
164
+ };
165
+ this.pendingRequests.set(sessionId, session);
166
+ });
167
+ }
168
+ /**
169
+ * Push patterns to peer
170
+ */
171
+ async pushPatterns(patterns) {
172
+ if (patterns.length === 0) {
173
+ return;
174
+ }
175
+ this.log(`Pushing ${patterns.length} patterns`);
176
+ const batchSize = this.config.batchSize;
177
+ const totalBatches = Math.ceil(patterns.length / batchSize);
178
+ const requestId = (0, types_1.generateMessageId)();
179
+ for (let i = 0; i < totalBatches; i++) {
180
+ const start = i * batchSize;
181
+ const end = Math.min(start + batchSize, patterns.length);
182
+ const batch = patterns.slice(start, end);
183
+ const payload = {
184
+ batchId: (0, types_1.generateMessageId)(),
185
+ requestId,
186
+ patterns: batch,
187
+ batchNumber: i + 1,
188
+ totalBatches,
189
+ isFinal: i === totalBatches - 1,
190
+ };
191
+ await this.sendMessage({
192
+ type: types_1.CoordinationMessageType.PATTERN_BATCH,
193
+ messageId: (0, types_1.generateMessageId)(),
194
+ senderId: this.localAgentId,
195
+ payload,
196
+ timestamp: Date.now(),
197
+ });
198
+ // Update status
199
+ this.updateProgress({
200
+ syncedPatterns: this.currentStatus.syncedPatterns + batch.length,
201
+ bytesTransferred: this.currentStatus.bytesTransferred + JSON.stringify(batch).length,
202
+ direction: 'push',
203
+ });
204
+ }
205
+ }
206
+ /**
207
+ * Handle incoming sync message
208
+ */
209
+ async handleMessage(message) {
210
+ switch (message.type) {
211
+ case types_1.CoordinationMessageType.SYNC_REQUEST:
212
+ await this.handleSyncRequest(message.payload);
213
+ break;
214
+ case types_1.CoordinationMessageType.SYNC_RESPONSE:
215
+ await this.handleSyncResponse(message.payload);
216
+ break;
217
+ case types_1.CoordinationMessageType.PATTERN_BATCH:
218
+ await this.handlePatternBatch(message.payload);
219
+ break;
220
+ case types_1.CoordinationMessageType.SYNC_COMPLETE:
221
+ await this.handleSyncComplete(message.payload);
222
+ break;
223
+ case types_1.CoordinationMessageType.CONFLICT:
224
+ await this.handleConflictMessage(message.payload);
225
+ break;
226
+ }
227
+ }
228
+ /**
229
+ * Get current sync status
230
+ */
231
+ getStatus() {
232
+ return { ...this.currentStatus };
233
+ }
234
+ /**
235
+ * Check if sync is in progress
236
+ */
237
+ isSyncing() {
238
+ return this.currentStatus.state === 'syncing';
239
+ }
240
+ /**
241
+ * Start periodic sync
242
+ */
243
+ startPeriodicSync(patterns) {
244
+ if (this.config.syncInterval <= 0) {
245
+ return;
246
+ }
247
+ this.isRunning = true;
248
+ // Store patterns for periodic sync
249
+ for (const pattern of patterns) {
250
+ this.localPatterns.set(pattern.id, pattern);
251
+ }
252
+ this.syncInterval = setInterval(async () => {
253
+ if (!this.activeSession && this.isRunning) {
254
+ try {
255
+ await this.startSync(Array.from(this.localPatterns.values()));
256
+ }
257
+ catch (error) {
258
+ this.log('Periodic sync failed:', error);
259
+ }
260
+ }
261
+ }, this.config.syncInterval);
262
+ }
263
+ /**
264
+ * Stop the orchestrator
265
+ */
266
+ stop() {
267
+ this.isRunning = false;
268
+ if (this.syncInterval) {
269
+ clearInterval(this.syncInterval);
270
+ this.syncInterval = undefined;
271
+ }
272
+ // Cancel active session
273
+ if (this.activeSession) {
274
+ clearTimeout(this.activeSession.timeout);
275
+ this.activeSession.reject(new Error('Sync cancelled'));
276
+ this.activeSession = undefined;
277
+ }
278
+ // Cancel pending requests
279
+ this.pendingRequests.forEach((session) => {
280
+ clearTimeout(session.timeout);
281
+ session.reject(new Error('Sync cancelled'));
282
+ });
283
+ this.pendingRequests.clear();
284
+ }
285
+ /**
286
+ * Add or update local pattern
287
+ */
288
+ addLocalPattern(pattern) {
289
+ this.localPatterns.set(pattern.id, pattern);
290
+ this.localVectorClocks.set(pattern.id, pattern.version.vectorClock);
291
+ }
292
+ /**
293
+ * Remove local pattern
294
+ */
295
+ removeLocalPattern(patternId) {
296
+ this.localPatterns.delete(patternId);
297
+ this.localVectorClocks.delete(patternId);
298
+ }
299
+ /**
300
+ * Get received patterns
301
+ */
302
+ getReceivedPatterns() {
303
+ return this.activeSession?.syncedPatterns ?? [];
304
+ }
305
+ // ============================================
306
+ // Private - Message Handlers
307
+ // ============================================
308
+ async handleSyncRequest(payload) {
309
+ this.log(`Received sync request: ${payload.requestId}`);
310
+ // Determine patterns to send
311
+ let patternsToSend = [];
312
+ const conflicts = [];
313
+ if (payload.patternIds) {
314
+ // Specific patterns requested
315
+ patternsToSend = payload.patternIds
316
+ .map((id) => this.localPatterns.get(id))
317
+ .filter((p) => p !== undefined);
318
+ }
319
+ else {
320
+ // All patterns or query-based
321
+ patternsToSend = Array.from(this.localPatterns.values());
322
+ // Apply query filters if provided
323
+ if (payload.query) {
324
+ patternsToSend = this.applyQueryFilters(patternsToSend, payload.query);
325
+ }
326
+ // Check for conflicts using vector clocks
327
+ if (payload.vectorClocks && this.config.incrementalSync) {
328
+ const { toSend, conflictsFound } = this.checkForConflicts(patternsToSend, payload.vectorClocks);
329
+ patternsToSend = toSend;
330
+ conflicts.push(...conflictsFound);
331
+ }
332
+ }
333
+ // Limit patterns
334
+ if (patternsToSend.length > this.config.maxPatternsPerSync) {
335
+ patternsToSend = patternsToSend.slice(0, this.config.maxPatternsPerSync);
336
+ }
337
+ // Collect vector clocks
338
+ const vectorClocks = {};
339
+ for (const pattern of patternsToSend) {
340
+ vectorClocks[pattern.id] = pattern.version.vectorClock;
341
+ }
342
+ // Calculate batches
343
+ const batchSize = Math.min(payload.batchSize, this.config.batchSize);
344
+ const totalBatches = Math.ceil(patternsToSend.length / batchSize);
345
+ // Send first batch as response
346
+ const firstBatch = patternsToSend.slice(0, batchSize);
347
+ const hasMore = patternsToSend.length > batchSize;
348
+ const response = {
349
+ requestId: payload.requestId,
350
+ patterns: firstBatch,
351
+ conflicts: conflicts.length > 0 ? conflicts : undefined,
352
+ vectorClocks,
353
+ totalPatterns: patternsToSend.length,
354
+ hasMore,
355
+ continuationToken: hasMore ? this.generateContinuationToken(payload.requestId, 1) : undefined,
356
+ batchNumber: 1,
357
+ totalBatches,
358
+ };
359
+ await this.sendMessage({
360
+ type: types_1.CoordinationMessageType.SYNC_RESPONSE,
361
+ messageId: (0, types_1.generateMessageId)(),
362
+ correlationId: payload.requestId,
363
+ senderId: this.localAgentId,
364
+ payload: response,
365
+ timestamp: Date.now(),
366
+ });
367
+ // Send remaining batches
368
+ if (hasMore) {
369
+ await this.sendRemainingBatches(payload.requestId, patternsToSend.slice(batchSize), 2, totalBatches);
370
+ }
371
+ }
372
+ async handleSyncResponse(payload) {
373
+ const session = this.activeSession ?? this.pendingRequests.get(payload.requestId);
374
+ if (!session) {
375
+ this.log(`Received response for unknown request: ${payload.requestId}`);
376
+ return;
377
+ }
378
+ this.log(`Received sync response: batch ${payload.batchNumber}/${payload.totalBatches}`);
379
+ // Process received patterns
380
+ for (const pattern of payload.patterns) {
381
+ if (this.config.validatePatterns && !this.validatePattern(pattern)) {
382
+ this.log(`Invalid pattern received: ${pattern.id}`);
383
+ continue;
384
+ }
385
+ session.syncedPatterns.push(pattern);
386
+ this.localPatterns.set(pattern.id, pattern);
387
+ this.localVectorClocks.set(pattern.id, pattern.version.vectorClock);
388
+ this.onPatternReceived?.(pattern);
389
+ }
390
+ // Track conflicts
391
+ if (payload.conflicts) {
392
+ session.conflicts.push(...payload.conflicts);
393
+ for (const conflict of payload.conflicts) {
394
+ this.onConflict?.(conflict);
395
+ }
396
+ }
397
+ session.currentBatch = payload.batchNumber;
398
+ session.totalBatches = payload.totalBatches;
399
+ // Update progress
400
+ this.updateProgress({
401
+ syncedPatterns: session.syncedPatterns.length,
402
+ pendingPatterns: payload.totalPatterns - session.syncedPatterns.length,
403
+ conflicts: session.conflicts.length,
404
+ totalPatterns: payload.totalPatterns,
405
+ bytesTransferred: this.currentStatus.bytesTransferred + JSON.stringify(payload.patterns).length,
406
+ });
407
+ // Check if sync is complete
408
+ if (!payload.hasMore && payload.batchNumber === payload.totalBatches) {
409
+ // Resolve conflicts
410
+ await this.resolveConflicts(session);
411
+ // Send sync complete
412
+ await this.sendSyncComplete(session, true);
413
+ this.completeSync(true);
414
+ }
415
+ }
416
+ async handlePatternBatch(payload) {
417
+ this.log(`Received pattern batch: ${payload.batchNumber}/${payload.totalBatches}`);
418
+ // Process patterns
419
+ for (const pattern of payload.patterns) {
420
+ if (this.config.validatePatterns && !this.validatePattern(pattern)) {
421
+ continue;
422
+ }
423
+ // Check for conflicts
424
+ const existingPattern = this.localPatterns.get(pattern.id);
425
+ if (existingPattern) {
426
+ const conflict = this.detectConflict(existingPattern, pattern);
427
+ if (conflict) {
428
+ const resolution = this.resolveConflict(conflict);
429
+ if (resolution.resolvedPattern) {
430
+ this.localPatterns.set(pattern.id, resolution.resolvedPattern);
431
+ }
432
+ this.onConflict?.(conflict);
433
+ continue;
434
+ }
435
+ }
436
+ this.localPatterns.set(pattern.id, pattern);
437
+ this.localVectorClocks.set(pattern.id, pattern.version.vectorClock);
438
+ this.onPatternReceived?.(pattern);
439
+ }
440
+ // Update progress
441
+ this.updateProgress({
442
+ syncedPatterns: this.currentStatus.syncedPatterns + payload.patterns.length,
443
+ bytesTransferred: this.currentStatus.bytesTransferred + JSON.stringify(payload.patterns).length,
444
+ });
445
+ // Check if this is the final batch
446
+ if (payload.isFinal) {
447
+ if (this.activeSession) {
448
+ await this.sendSyncComplete(this.activeSession, true);
449
+ this.completeSync(true);
450
+ }
451
+ }
452
+ }
453
+ async handleSyncComplete(payload) {
454
+ this.log(`Sync complete: ${payload.success ? 'success' : 'failed'}`);
455
+ if (!payload.success && this.activeSession) {
456
+ this.completeSync(false, payload.error);
457
+ return;
458
+ }
459
+ // If we were the responder, sync is now complete
460
+ const session = this.pendingRequests.get(payload.requestId);
461
+ if (session) {
462
+ clearTimeout(session.timeout);
463
+ this.pendingRequests.delete(payload.requestId);
464
+ const finalStatus = {
465
+ ...this.currentStatus,
466
+ state: 'completed',
467
+ completedAt: new Date().toISOString(),
468
+ conflictsResolved: session.resolvedConflicts,
469
+ };
470
+ session.resolve(finalStatus);
471
+ }
472
+ }
473
+ async handleConflictMessage(conflict) {
474
+ this.log(`Received conflict notification: ${conflict.patternId}`);
475
+ if (this.activeSession) {
476
+ this.activeSession.conflicts.push(conflict);
477
+ }
478
+ this.onConflict?.(conflict);
479
+ // Resolve conflict
480
+ const resolution = this.resolveConflict(conflict);
481
+ if (resolution.resolvedPattern) {
482
+ this.localPatterns.set(conflict.patternId, resolution.resolvedPattern);
483
+ }
484
+ }
485
+ // ============================================
486
+ // Private - Sync Operations
487
+ // ============================================
488
+ async sendSyncRequest(sessionId) {
489
+ const vectorClocks = {};
490
+ if (this.config.incrementalSync) {
491
+ this.localVectorClocks.forEach((clock, id) => {
492
+ vectorClocks[id] = clock;
493
+ });
494
+ }
495
+ const payload = {
496
+ requestId: sessionId,
497
+ vectorClocks: Object.keys(vectorClocks).length > 0 ? vectorClocks : undefined,
498
+ includeContent: true,
499
+ batchSize: this.config.batchSize,
500
+ };
501
+ await this.sendMessage({
502
+ type: types_1.CoordinationMessageType.SYNC_REQUEST,
503
+ messageId: (0, types_1.generateMessageId)(),
504
+ senderId: this.localAgentId,
505
+ payload,
506
+ timestamp: Date.now(),
507
+ });
508
+ }
509
+ async sendRemainingBatches(requestId, patterns, startBatch, totalBatches) {
510
+ const batchSize = this.config.batchSize;
511
+ let batchNumber = startBatch;
512
+ for (let i = 0; i < patterns.length; i += batchSize) {
513
+ const batch = patterns.slice(i, i + batchSize);
514
+ const isFinal = batchNumber === totalBatches;
515
+ const payload = {
516
+ batchId: (0, types_1.generateMessageId)(),
517
+ requestId,
518
+ patterns: batch,
519
+ batchNumber,
520
+ totalBatches,
521
+ isFinal,
522
+ };
523
+ await this.sendMessage({
524
+ type: types_1.CoordinationMessageType.PATTERN_BATCH,
525
+ messageId: (0, types_1.generateMessageId)(),
526
+ senderId: this.localAgentId,
527
+ payload,
528
+ timestamp: Date.now(),
529
+ });
530
+ batchNumber++;
531
+ }
532
+ }
533
+ async sendSyncComplete(session, success) {
534
+ const durationMs = Date.now() - session.startedAt;
535
+ const payload = {
536
+ requestId: session.sessionId,
537
+ totalPatterns: session.syncedPatterns.length,
538
+ conflictsResolved: session.resolvedConflicts,
539
+ durationMs,
540
+ success,
541
+ };
542
+ await this.sendMessage({
543
+ type: types_1.CoordinationMessageType.SYNC_COMPLETE,
544
+ messageId: (0, types_1.generateMessageId)(),
545
+ senderId: this.localAgentId,
546
+ payload,
547
+ timestamp: Date.now(),
548
+ });
549
+ }
550
+ completeSync(success, error) {
551
+ if (!this.activeSession) {
552
+ return;
553
+ }
554
+ clearTimeout(this.activeSession.timeout);
555
+ const durationMs = Date.now() - this.activeSession.startedAt;
556
+ const patternsPerSecond = durationMs > 0
557
+ ? (this.activeSession.syncedPatterns.length / durationMs) * 1000
558
+ : 0;
559
+ const finalStatus = {
560
+ state: success ? 'completed' : 'failed',
561
+ totalPatterns: this.activeSession.syncedPatterns.length + this.activeSession.conflicts.length,
562
+ syncedPatterns: this.activeSession.syncedPatterns.length,
563
+ pendingPatterns: 0,
564
+ conflicts: this.activeSession.conflicts.length,
565
+ conflictsResolved: this.activeSession.resolvedConflicts,
566
+ startedAt: new Date(this.activeSession.startedAt).toISOString(),
567
+ completedAt: new Date().toISOString(),
568
+ progressPercent: 100,
569
+ estimatedTimeRemaining: 0,
570
+ lastError: error,
571
+ direction: this.activeSession.direction,
572
+ bytesTransferred: this.currentStatus.bytesTransferred,
573
+ patternsPerSecond,
574
+ };
575
+ this.currentStatus = finalStatus;
576
+ this.onSyncProgress(finalStatus);
577
+ if (success) {
578
+ this.activeSession.resolve(finalStatus);
579
+ }
580
+ else {
581
+ this.activeSession.reject(new Error(error ?? 'Sync failed'));
582
+ }
583
+ this.activeSession = undefined;
584
+ }
585
+ handleSyncTimeout(sessionId) {
586
+ if (this.activeSession?.sessionId === sessionId) {
587
+ this.log('Sync timeout');
588
+ this.completeSync(false, 'Sync timeout');
589
+ }
590
+ }
591
+ // ============================================
592
+ // Private - Conflict Resolution
593
+ // ============================================
594
+ checkForConflicts(patterns, remoteClocks) {
595
+ const toSend = [];
596
+ const conflictsFound = [];
597
+ for (const pattern of patterns) {
598
+ const remoteClock = remoteClocks[pattern.id];
599
+ if (!remoteClock) {
600
+ // Remote doesn't have this pattern, send it
601
+ toSend.push(pattern);
602
+ continue;
603
+ }
604
+ const comparison = this.compareVectorClocks(pattern.version.vectorClock, remoteClock);
605
+ if (comparison === 'after') {
606
+ // Local is newer, send it
607
+ toSend.push(pattern);
608
+ }
609
+ else if (comparison === 'concurrent') {
610
+ // Conflict detected
611
+ conflictsFound.push({
612
+ patternId: pattern.id,
613
+ localVersion: pattern.version,
614
+ remoteVersion: { ...pattern.version, vectorClock: remoteClock },
615
+ conflictType: 'concurrent_update',
616
+ });
617
+ // Still send local version, let receiver resolve
618
+ toSend.push(pattern);
619
+ }
620
+ // If 'before' or 'equal', don't send (remote has same or newer)
621
+ }
622
+ return { toSend, conflictsFound };
623
+ }
624
+ detectConflict(local, remote) {
625
+ const comparison = this.compareVectorClocks(local.version.vectorClock, remote.version.vectorClock);
626
+ if (comparison === 'concurrent') {
627
+ return {
628
+ patternId: local.id,
629
+ localVersion: local.version,
630
+ remoteVersion: remote.version,
631
+ conflictType: 'concurrent_update',
632
+ };
633
+ }
634
+ return null;
635
+ }
636
+ async resolveConflicts(session) {
637
+ for (const conflict of session.conflicts) {
638
+ const resolution = this.resolveConflict(conflict);
639
+ if (resolution.resolvedPattern) {
640
+ this.localPatterns.set(conflict.patternId, resolution.resolvedPattern);
641
+ session.resolvedConflicts++;
642
+ }
643
+ }
644
+ }
645
+ resolveConflict(conflict) {
646
+ const localPattern = this.localPatterns.get(conflict.patternId);
647
+ switch (this.config.conflictStrategy) {
648
+ case 'latest_wins': {
649
+ // Compare update timestamps
650
+ if (localPattern) {
651
+ const localTime = new Date(localPattern.updatedAt).getTime();
652
+ // For remote, we don't have full pattern, use vector clock logic
653
+ // Prefer local in case of concurrent updates with same timestamp
654
+ return {
655
+ strategy: 'latest_wins',
656
+ resolvedPattern: localPattern,
657
+ resolvedAt: new Date().toISOString(),
658
+ };
659
+ }
660
+ break;
661
+ }
662
+ case 'prefer_local':
663
+ return {
664
+ strategy: 'prefer_local',
665
+ resolvedPattern: localPattern,
666
+ resolvedAt: new Date().toISOString(),
667
+ };
668
+ case 'prefer_remote':
669
+ return {
670
+ strategy: 'prefer_remote',
671
+ // We would need the remote pattern here
672
+ resolvedAt: new Date().toISOString(),
673
+ };
674
+ case 'merge':
675
+ // Merge requires both patterns, fall back to latest_wins for now
676
+ return {
677
+ strategy: 'merge',
678
+ resolvedPattern: localPattern,
679
+ resolvedAt: new Date().toISOString(),
680
+ };
681
+ }
682
+ return {
683
+ strategy: 'latest_wins',
684
+ resolvedAt: new Date().toISOString(),
685
+ };
686
+ }
687
+ compareVectorClocks(a, b) {
688
+ const allAgents = Array.from(new Set([...Object.keys(a.clock), ...Object.keys(b.clock)]));
689
+ let aBeforeB = false;
690
+ let bBeforeA = false;
691
+ for (let i = 0; i < allAgents.length; i++) {
692
+ const agent = allAgents[i];
693
+ const aVal = a.clock[agent] ?? 0;
694
+ const bVal = b.clock[agent] ?? 0;
695
+ if (aVal < bVal) {
696
+ aBeforeB = true;
697
+ }
698
+ if (bVal < aVal) {
699
+ bBeforeA = true;
700
+ }
701
+ }
702
+ if (aBeforeB && bBeforeA) {
703
+ return 'concurrent';
704
+ }
705
+ if (aBeforeB) {
706
+ return 'before';
707
+ }
708
+ if (bBeforeA) {
709
+ return 'after';
710
+ }
711
+ return 'equal';
712
+ }
713
+ // ============================================
714
+ // Private - Utilities
715
+ // ============================================
716
+ applyQueryFilters(patterns, query) {
717
+ let filtered = patterns;
718
+ if (query.categories && query.categories.length > 0) {
719
+ filtered = filtered.filter((p) => query.categories.includes(p.category));
720
+ }
721
+ if (query.tags && query.tags.length > 0) {
722
+ filtered = filtered.filter((p) => p.metadata.tags?.some((t) => query.tags.includes(t)));
723
+ }
724
+ if (query.limit && query.limit > 0) {
725
+ filtered = filtered.slice(0, query.limit);
726
+ }
727
+ return filtered;
728
+ }
729
+ validatePattern(pattern) {
730
+ // Basic validation
731
+ if (!pattern.id || !pattern.category || !pattern.content) {
732
+ return false;
733
+ }
734
+ if (!pattern.version?.vectorClock) {
735
+ return false;
736
+ }
737
+ if (!Array.isArray(pattern.embedding) && !(pattern.embedding instanceof Float32Array)) {
738
+ return false;
739
+ }
740
+ return true;
741
+ }
742
+ updateProgress(updates) {
743
+ const now = Date.now();
744
+ const startTime = this.activeSession?.startedAt ?? now;
745
+ const elapsed = now - startTime;
746
+ const totalPatterns = updates.totalPatterns ?? this.currentStatus.totalPatterns;
747
+ const syncedPatterns = updates.syncedPatterns ?? this.currentStatus.syncedPatterns;
748
+ const pendingPatterns = updates.pendingPatterns ?? Math.max(0, totalPatterns - syncedPatterns);
749
+ const progressPercent = totalPatterns > 0
750
+ ? Math.min(100, Math.round((syncedPatterns / totalPatterns) * 100))
751
+ : 0;
752
+ const patternsPerSecond = elapsed > 0 ? (syncedPatterns / elapsed) * 1000 : 0;
753
+ const estimatedTimeRemaining = patternsPerSecond > 0
754
+ ? Math.round((pendingPatterns / patternsPerSecond) * 1000)
755
+ : undefined;
756
+ this.currentStatus = {
757
+ ...this.currentStatus,
758
+ ...updates,
759
+ syncedPatterns,
760
+ pendingPatterns,
761
+ progressPercent,
762
+ patternsPerSecond,
763
+ estimatedTimeRemaining,
764
+ };
765
+ this.onSyncProgress(this.currentStatus);
766
+ }
767
+ generateContinuationToken(requestId, nextBatch) {
768
+ const data = JSON.stringify({ requestId, nextBatch, timestamp: Date.now() });
769
+ // Simple base64 encoding - in production, use signed tokens
770
+ return btoa(data);
771
+ }
772
+ }
773
+ exports.SyncOrchestrator = SyncOrchestrator;
774
+ // ============================================
775
+ // Factory Functions
776
+ // ============================================
777
+ /**
778
+ * Create a new SyncOrchestrator instance
779
+ */
780
+ function createSyncOrchestrator(config) {
781
+ return new SyncOrchestrator(config);
782
+ }
783
+ //# sourceMappingURL=SyncOrchestrator.js.map