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,839 @@
1
+ "use strict";
2
+ /**
3
+ * CRDT Store - Storage and Management for Multiple CRDTs
4
+ *
5
+ * Provides a centralized store for managing multiple CRDT instances,
6
+ * applying remote updates, generating deltas for synchronization,
7
+ * and garbage collecting tombstones.
8
+ *
9
+ * @module edge/p2p/crdt/CRDTStore
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CRDTStore = void 0;
14
+ const types_1 = require("./types");
15
+ const VectorClock_1 = require("./VectorClock");
16
+ const GCounter_1 = require("./GCounter");
17
+ const LWWRegister_1 = require("./LWWRegister");
18
+ const ORSet_1 = require("./ORSet");
19
+ const PatternCRDT_1 = require("./PatternCRDT");
20
+ // ============================================
21
+ // CRDTStore Class
22
+ // ============================================
23
+ /**
24
+ * Store for managing multiple CRDT instances.
25
+ *
26
+ * Features:
27
+ * - Create and retrieve CRDTs by ID
28
+ * - Apply remote updates and merge states
29
+ * - Generate delta updates for synchronization
30
+ * - Automatic garbage collection of tombstones
31
+ * - Event emission for monitoring
32
+ * - Conflict tracking
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const store = new CRDTStore({
37
+ * replicaId: 'replica-1',
38
+ * autoGC: true,
39
+ * });
40
+ *
41
+ * // Create CRDTs
42
+ * const counter = store.createGCounter('page-views');
43
+ * const tags = store.createORSet<string>('user-tags');
44
+ * const pattern = store.createPattern({
45
+ * id: 'pattern-1',
46
+ * content: '...',
47
+ * type: 'test',
48
+ * category: 'unit',
49
+ * domain: 'api',
50
+ * });
51
+ *
52
+ * // Apply remote state
53
+ * store.applyState(remoteState);
54
+ *
55
+ * // Generate deltas for sync
56
+ * const deltas = store.generateDeltas(lastSyncClock);
57
+ *
58
+ * // Get stats
59
+ * const stats = store.getStats();
60
+ * ```
61
+ */
62
+ class CRDTStore {
63
+ /**
64
+ * Create a new CRDT store
65
+ *
66
+ * @param config - Store configuration
67
+ */
68
+ constructor(config = {}) {
69
+ this.config = { ...types_1.DEFAULT_STORE_CONFIG, ...config };
70
+ if (!this.config.replicaId) {
71
+ throw new types_1.CRDTError('Replica ID is required for CRDTStore', types_1.CRDTErrorCode.InvalidState);
72
+ }
73
+ this.instances = new Map();
74
+ this.types = new Map();
75
+ this.vectorClock = new VectorClock_1.VectorClock(this.config.replicaId);
76
+ this.deltaBuffer = new Map();
77
+ this.conflicts = [];
78
+ this.eventHandlers = new Set();
79
+ // Start auto GC if enabled
80
+ if (this.config.autoGC) {
81
+ this.startAutoGC();
82
+ }
83
+ }
84
+ // ============================================
85
+ // CRDT Creation
86
+ // ============================================
87
+ /**
88
+ * Create a new G-Counter
89
+ *
90
+ * @param id - Counter identifier
91
+ * @param initialValue - Initial value
92
+ * @returns Created counter
93
+ */
94
+ createGCounter(id, initialValue = 0) {
95
+ this.checkCapacity();
96
+ this.checkIdAvailable(id);
97
+ const counter = new GCounter_1.GCounter(this.config.replicaId, id, initialValue);
98
+ this.instances.set(id, counter);
99
+ this.types.set(id, types_1.CRDTType.GCounter);
100
+ this.vectorClock.increment();
101
+ this.emit({
102
+ type: types_1.CRDTEventType.Created,
103
+ crdtId: id,
104
+ crdtType: types_1.CRDTType.GCounter,
105
+ timestamp: Date.now(),
106
+ details: { initialValue },
107
+ });
108
+ return counter;
109
+ }
110
+ /**
111
+ * Create a new LWW-Register
112
+ *
113
+ * @param id - Register identifier
114
+ * @param initialValue - Initial value
115
+ * @returns Created register
116
+ */
117
+ createLWWRegister(id, initialValue) {
118
+ this.checkCapacity();
119
+ this.checkIdAvailable(id);
120
+ const register = new LWWRegister_1.LWWRegister(this.config.replicaId, id, initialValue);
121
+ this.instances.set(id, register);
122
+ this.types.set(id, types_1.CRDTType.LWWRegister);
123
+ this.vectorClock.increment();
124
+ this.emit({
125
+ type: types_1.CRDTEventType.Created,
126
+ crdtId: id,
127
+ crdtType: types_1.CRDTType.LWWRegister,
128
+ timestamp: Date.now(),
129
+ details: { hasInitialValue: initialValue !== undefined },
130
+ });
131
+ return register;
132
+ }
133
+ /**
134
+ * Create a new OR-Set
135
+ *
136
+ * @param id - Set identifier
137
+ * @returns Created set
138
+ */
139
+ createORSet(id) {
140
+ this.checkCapacity();
141
+ this.checkIdAvailable(id);
142
+ const set = new ORSet_1.ORSet(this.config.replicaId, id, {
143
+ tombstoneTtl: this.config.tombstoneTtl,
144
+ });
145
+ this.instances.set(id, set);
146
+ this.types.set(id, types_1.CRDTType.ORSet);
147
+ this.vectorClock.increment();
148
+ this.emit({
149
+ type: types_1.CRDTEventType.Created,
150
+ crdtId: id,
151
+ crdtType: types_1.CRDTType.ORSet,
152
+ timestamp: Date.now(),
153
+ details: {},
154
+ });
155
+ return set;
156
+ }
157
+ /**
158
+ * Create a new Pattern CRDT
159
+ *
160
+ * @param input - Pattern input data
161
+ * @returns Created PatternCRDT
162
+ */
163
+ createPattern(input) {
164
+ this.checkCapacity();
165
+ this.checkIdAvailable(input.id);
166
+ const pattern = new PatternCRDT_1.PatternCRDT(this.config.replicaId, input);
167
+ this.instances.set(input.id, pattern);
168
+ this.types.set(input.id, types_1.CRDTType.PatternCRDT);
169
+ this.vectorClock.increment();
170
+ this.emit({
171
+ type: types_1.CRDTEventType.Created,
172
+ crdtId: input.id,
173
+ crdtType: types_1.CRDTType.PatternCRDT,
174
+ timestamp: Date.now(),
175
+ details: { type: input.type, category: input.category },
176
+ });
177
+ return pattern;
178
+ }
179
+ // ============================================
180
+ // CRDT Retrieval
181
+ // ============================================
182
+ /**
183
+ * Get a CRDT by ID
184
+ *
185
+ * @param id - CRDT identifier
186
+ * @returns CRDT instance or undefined
187
+ */
188
+ get(id) {
189
+ return this.instances.get(id);
190
+ }
191
+ /**
192
+ * Get a G-Counter by ID
193
+ *
194
+ * @param id - Counter identifier
195
+ * @returns Counter or undefined
196
+ */
197
+ getGCounter(id) {
198
+ const instance = this.instances.get(id);
199
+ if (instance && this.types.get(id) === types_1.CRDTType.GCounter) {
200
+ return instance;
201
+ }
202
+ return undefined;
203
+ }
204
+ /**
205
+ * Get an LWW-Register by ID
206
+ *
207
+ * @param id - Register identifier
208
+ * @returns Register or undefined
209
+ */
210
+ getLWWRegister(id) {
211
+ const instance = this.instances.get(id);
212
+ if (instance && this.types.get(id) === types_1.CRDTType.LWWRegister) {
213
+ return instance;
214
+ }
215
+ return undefined;
216
+ }
217
+ /**
218
+ * Get an OR-Set by ID
219
+ *
220
+ * @param id - Set identifier
221
+ * @returns Set or undefined
222
+ */
223
+ getORSet(id) {
224
+ const instance = this.instances.get(id);
225
+ if (instance && this.types.get(id) === types_1.CRDTType.ORSet) {
226
+ return instance;
227
+ }
228
+ return undefined;
229
+ }
230
+ /**
231
+ * Get a PatternCRDT by ID
232
+ *
233
+ * @param id - Pattern identifier
234
+ * @returns Pattern or undefined
235
+ */
236
+ getPattern(id) {
237
+ const instance = this.instances.get(id);
238
+ if (instance && this.types.get(id) === types_1.CRDTType.PatternCRDT) {
239
+ return instance;
240
+ }
241
+ return undefined;
242
+ }
243
+ /**
244
+ * Check if a CRDT exists
245
+ *
246
+ * @param id - CRDT identifier
247
+ * @returns True if exists
248
+ */
249
+ has(id) {
250
+ return this.instances.has(id);
251
+ }
252
+ /**
253
+ * Get all CRDT IDs
254
+ *
255
+ * @returns Array of IDs
256
+ */
257
+ getIds() {
258
+ return Array.from(this.instances.keys());
259
+ }
260
+ /**
261
+ * Get IDs by type
262
+ *
263
+ * @param type - CRDT type to filter by
264
+ * @returns Array of matching IDs
265
+ */
266
+ getIdsByType(type) {
267
+ const ids = [];
268
+ for (const [id, t] of this.types) {
269
+ if (t === type) {
270
+ ids.push(id);
271
+ }
272
+ }
273
+ return ids;
274
+ }
275
+ /**
276
+ * Get the type of a CRDT
277
+ *
278
+ * @param id - CRDT identifier
279
+ * @returns CRDT type or undefined
280
+ */
281
+ getType(id) {
282
+ return this.types.get(id);
283
+ }
284
+ // ============================================
285
+ // State Application
286
+ // ============================================
287
+ /**
288
+ * Apply a remote CRDT state
289
+ *
290
+ * If the CRDT doesn't exist locally, it will be created.
291
+ * If it exists, the states will be merged.
292
+ *
293
+ * @param state - Remote CRDT state
294
+ * @returns Merge result
295
+ */
296
+ applyState(state) {
297
+ const startTime = Date.now();
298
+ let result;
299
+ const existing = this.instances.get(state.id);
300
+ if (existing) {
301
+ // Merge with existing
302
+ result = this.mergeExisting(state);
303
+ }
304
+ else {
305
+ // Create new from state
306
+ result = this.createFromState(state);
307
+ }
308
+ // Track conflicts
309
+ if (this.config.trackConflicts) {
310
+ this.addConflicts(result.conflicts);
311
+ }
312
+ // Emit event
313
+ if (result.localChanged) {
314
+ this.emit({
315
+ type: types_1.CRDTEventType.Merge,
316
+ crdtId: state.id,
317
+ crdtType: state.type,
318
+ timestamp: Date.now(),
319
+ details: {
320
+ origin: state.origin,
321
+ conflicts: result.conflicts.length,
322
+ duration: Date.now() - startTime,
323
+ },
324
+ });
325
+ }
326
+ this.vectorClock.increment();
327
+ return result;
328
+ }
329
+ /**
330
+ * Merge state with existing CRDT
331
+ */
332
+ mergeExisting(state) {
333
+ const instance = this.instances.get(state.id);
334
+ const type = this.types.get(state.id);
335
+ if (type !== state.type) {
336
+ throw new types_1.CRDTError(`Type mismatch: local is ${type}, remote is ${state.type}`, types_1.CRDTErrorCode.InvalidType, state.id);
337
+ }
338
+ switch (type) {
339
+ case types_1.CRDTType.GCounter:
340
+ return instance.merge(state);
341
+ case types_1.CRDTType.LWWRegister:
342
+ return instance.merge(state);
343
+ case types_1.CRDTType.ORSet:
344
+ return instance.merge(state);
345
+ case types_1.CRDTType.PatternCRDT:
346
+ return instance.merge(state);
347
+ default:
348
+ throw new types_1.CRDTError(`Unknown CRDT type: ${type}`, types_1.CRDTErrorCode.InvalidType, state.id);
349
+ }
350
+ }
351
+ /**
352
+ * Create a new CRDT from remote state
353
+ */
354
+ createFromState(state) {
355
+ this.checkCapacity();
356
+ let instance;
357
+ switch (state.type) {
358
+ case types_1.CRDTType.GCounter:
359
+ instance = GCounter_1.GCounter.fromState(state, this.config.replicaId);
360
+ break;
361
+ case types_1.CRDTType.LWWRegister:
362
+ instance = LWWRegister_1.LWWRegister.fromState(state, this.config.replicaId);
363
+ break;
364
+ case types_1.CRDTType.ORSet:
365
+ instance = ORSet_1.ORSet.fromState(state, this.config.replicaId);
366
+ break;
367
+ case types_1.CRDTType.PatternCRDT:
368
+ instance = PatternCRDT_1.PatternCRDT.fromState(state, this.config.replicaId);
369
+ break;
370
+ default:
371
+ throw new types_1.CRDTError(`Unknown CRDT type: ${state.type}`, types_1.CRDTErrorCode.InvalidType, state.id);
372
+ }
373
+ this.instances.set(state.id, instance);
374
+ this.types.set(state.id, state.type);
375
+ this.emit({
376
+ type: types_1.CRDTEventType.Created,
377
+ crdtId: state.id,
378
+ crdtType: state.type,
379
+ timestamp: Date.now(),
380
+ details: { fromRemote: true, origin: state.origin },
381
+ });
382
+ return {
383
+ success: true,
384
+ mergedState: state,
385
+ localChanged: true,
386
+ conflicts: [],
387
+ stats: {
388
+ duration: 0,
389
+ entriesMerged: 1,
390
+ autoResolved: 0,
391
+ tombstonesProcessed: 0,
392
+ memoryDelta: 0,
393
+ },
394
+ };
395
+ }
396
+ /**
397
+ * Apply a delta update
398
+ *
399
+ * @param delta - Delta to apply
400
+ * @returns True if applied successfully
401
+ */
402
+ applyDelta(delta) {
403
+ const instance = this.instances.get(delta.crdtId);
404
+ if (!instance) {
405
+ // Buffer delta for later if CRDT doesn't exist yet
406
+ if (this.config.enableDeltas) {
407
+ this.bufferDelta(delta);
408
+ }
409
+ return false;
410
+ }
411
+ const type = this.types.get(delta.crdtId);
412
+ if (type !== delta.type) {
413
+ return false;
414
+ }
415
+ let applied = false;
416
+ switch (type) {
417
+ case types_1.CRDTType.GCounter:
418
+ applied = instance.applyDelta(delta);
419
+ break;
420
+ case types_1.CRDTType.LWWRegister:
421
+ applied = instance.applyDelta(delta);
422
+ break;
423
+ case types_1.CRDTType.ORSet:
424
+ applied = instance.applyDelta(delta);
425
+ break;
426
+ case types_1.CRDTType.PatternCRDT:
427
+ applied = instance.applyDelta(delta);
428
+ break;
429
+ }
430
+ if (applied) {
431
+ this.vectorClock.increment();
432
+ this.emit({
433
+ type: types_1.CRDTEventType.Update,
434
+ crdtId: delta.crdtId,
435
+ crdtType: delta.type,
436
+ timestamp: Date.now(),
437
+ details: { deltaOrigin: delta.origin },
438
+ });
439
+ }
440
+ return applied;
441
+ }
442
+ // ============================================
443
+ // Delta Generation
444
+ // ============================================
445
+ /**
446
+ * Generate deltas for all CRDTs since a given clock
447
+ *
448
+ * @param since - Vector clock of last sync
449
+ * @returns Array of deltas
450
+ */
451
+ generateDeltas(since) {
452
+ const deltas = [];
453
+ for (const [id, instance] of this.instances) {
454
+ const type = this.types.get(id);
455
+ let delta = null;
456
+ switch (type) {
457
+ case types_1.CRDTType.GCounter:
458
+ delta = instance.generateDelta(since);
459
+ break;
460
+ case types_1.CRDTType.LWWRegister:
461
+ delta = instance.generateDelta(since);
462
+ break;
463
+ case types_1.CRDTType.ORSet:
464
+ delta = instance.generateDelta(since);
465
+ break;
466
+ case types_1.CRDTType.PatternCRDT:
467
+ delta = instance.generateDelta(since);
468
+ break;
469
+ }
470
+ if (delta) {
471
+ deltas.push(delta);
472
+ this.emit({
473
+ type: types_1.CRDTEventType.DeltaGenerated,
474
+ crdtId: id,
475
+ crdtType: type,
476
+ timestamp: Date.now(),
477
+ details: { sequenceNumber: delta.sequenceNumber },
478
+ });
479
+ }
480
+ }
481
+ this.lastSync = Date.now();
482
+ return deltas;
483
+ }
484
+ /**
485
+ * Get all states for full sync
486
+ *
487
+ * @returns Array of all CRDT states
488
+ */
489
+ getAllStates() {
490
+ const states = [];
491
+ for (const [id, instance] of this.instances) {
492
+ const type = this.types.get(id);
493
+ switch (type) {
494
+ case types_1.CRDTType.GCounter:
495
+ states.push(instance.state());
496
+ break;
497
+ case types_1.CRDTType.LWWRegister:
498
+ states.push(instance.state());
499
+ break;
500
+ case types_1.CRDTType.ORSet:
501
+ states.push(instance.state());
502
+ break;
503
+ case types_1.CRDTType.PatternCRDT:
504
+ states.push(instance.state());
505
+ break;
506
+ }
507
+ }
508
+ return states;
509
+ }
510
+ // ============================================
511
+ // Delta Buffering
512
+ // ============================================
513
+ /**
514
+ * Buffer a delta for later application
515
+ */
516
+ bufferDelta(delta) {
517
+ if (!this.deltaBuffer.has(delta.crdtId)) {
518
+ this.deltaBuffer.set(delta.crdtId, []);
519
+ }
520
+ const buffer = this.deltaBuffer.get(delta.crdtId);
521
+ // Check buffer size limit
522
+ if (buffer.length >= this.config.maxDeltaBuffer) {
523
+ buffer.shift(); // Remove oldest
524
+ }
525
+ buffer.push({
526
+ delta,
527
+ timestamp: Date.now(),
528
+ applied: false,
529
+ });
530
+ }
531
+ /**
532
+ * Apply buffered deltas for a CRDT
533
+ *
534
+ * @param id - CRDT identifier
535
+ * @returns Number of deltas applied
536
+ */
537
+ applyBufferedDeltas(id) {
538
+ const buffer = this.deltaBuffer.get(id);
539
+ if (!buffer || buffer.length === 0) {
540
+ return 0;
541
+ }
542
+ let applied = 0;
543
+ for (const entry of buffer) {
544
+ if (!entry.applied && this.applyDelta(entry.delta)) {
545
+ entry.applied = true;
546
+ applied++;
547
+ }
548
+ }
549
+ // Clean up applied deltas
550
+ this.deltaBuffer.set(id, buffer.filter(e => !e.applied));
551
+ return applied;
552
+ }
553
+ // ============================================
554
+ // Garbage Collection
555
+ // ============================================
556
+ /**
557
+ * Run garbage collection on all ORSets
558
+ *
559
+ * @returns GC result
560
+ */
561
+ gc() {
562
+ const startTime = Date.now();
563
+ let totalCollected = 0;
564
+ let totalRetained = 0;
565
+ for (const [id, instance] of this.instances) {
566
+ if (this.types.get(id) === types_1.CRDTType.ORSet) {
567
+ const orset = instance;
568
+ const collected = orset.gcTombstones();
569
+ totalCollected += collected;
570
+ totalRetained += orset.getTombstoneCount();
571
+ }
572
+ }
573
+ // Clean up old conflicts
574
+ const conflictCutoff = Date.now() - this.config.tombstoneTtl;
575
+ this.conflicts = this.conflicts.filter(c => c.detectedAt > conflictCutoff);
576
+ // Clean up old buffered deltas
577
+ for (const [id, buffer] of this.deltaBuffer) {
578
+ const freshDeltas = buffer.filter(e => e.timestamp > conflictCutoff);
579
+ if (freshDeltas.length !== buffer.length) {
580
+ this.deltaBuffer.set(id, freshDeltas);
581
+ }
582
+ }
583
+ this.lastGC = Date.now();
584
+ const result = {
585
+ collected: totalCollected,
586
+ retained: totalRetained,
587
+ memoryFreed: totalCollected * 64, // Approximate
588
+ duration: Date.now() - startTime,
589
+ };
590
+ this.emit({
591
+ type: types_1.CRDTEventType.GarbageCollected,
592
+ crdtId: '*',
593
+ crdtType: types_1.CRDTType.ORSet,
594
+ timestamp: Date.now(),
595
+ details: result,
596
+ });
597
+ return result;
598
+ }
599
+ /**
600
+ * Start automatic garbage collection
601
+ */
602
+ startAutoGC() {
603
+ if (this.gcIntervalHandle) {
604
+ return;
605
+ }
606
+ this.gcIntervalHandle = setInterval(() => {
607
+ this.gc();
608
+ }, this.config.gcInterval);
609
+ }
610
+ /**
611
+ * Stop automatic garbage collection
612
+ */
613
+ stopAutoGC() {
614
+ if (this.gcIntervalHandle) {
615
+ clearInterval(this.gcIntervalHandle);
616
+ this.gcIntervalHandle = undefined;
617
+ }
618
+ }
619
+ // ============================================
620
+ // Conflict Tracking
621
+ // ============================================
622
+ /**
623
+ * Add conflicts to history
624
+ */
625
+ addConflicts(conflicts) {
626
+ for (const conflict of conflicts) {
627
+ this.conflicts.push(conflict);
628
+ // Trim if too many
629
+ if (this.conflicts.length > this.config.maxConflicts) {
630
+ this.conflicts.shift();
631
+ }
632
+ this.emit({
633
+ type: types_1.CRDTEventType.Conflict,
634
+ crdtId: conflict.crdtId,
635
+ crdtType: types_1.CRDTType.LWWRegister, // Generic
636
+ timestamp: Date.now(),
637
+ details: conflict,
638
+ });
639
+ }
640
+ }
641
+ /**
642
+ * Get recent conflicts
643
+ *
644
+ * @param limit - Maximum conflicts to return
645
+ * @returns Array of conflicts
646
+ */
647
+ getConflicts(limit) {
648
+ const l = limit ?? this.conflicts.length;
649
+ return this.conflicts.slice(-l);
650
+ }
651
+ /**
652
+ * Clear conflict history
653
+ */
654
+ clearConflicts() {
655
+ this.conflicts = [];
656
+ }
657
+ // ============================================
658
+ // CRDT Deletion
659
+ // ============================================
660
+ /**
661
+ * Delete a CRDT from the store
662
+ *
663
+ * @param id - CRDT identifier
664
+ * @returns True if deleted
665
+ */
666
+ delete(id) {
667
+ const instance = this.instances.get(id);
668
+ if (!instance) {
669
+ return false;
670
+ }
671
+ const type = this.types.get(id);
672
+ this.instances.delete(id);
673
+ this.types.delete(id);
674
+ this.deltaBuffer.delete(id);
675
+ this.vectorClock.increment();
676
+ this.emit({
677
+ type: types_1.CRDTEventType.Deleted,
678
+ crdtId: id,
679
+ crdtType: type,
680
+ timestamp: Date.now(),
681
+ details: {},
682
+ });
683
+ return true;
684
+ }
685
+ /**
686
+ * Clear all CRDTs from the store
687
+ */
688
+ clear() {
689
+ const ids = Array.from(this.instances.keys());
690
+ for (const id of ids) {
691
+ this.delete(id);
692
+ }
693
+ }
694
+ // ============================================
695
+ // Events
696
+ // ============================================
697
+ /**
698
+ * Add an event handler
699
+ *
700
+ * @param handler - Event handler function
701
+ */
702
+ on(handler) {
703
+ this.eventHandlers.add(handler);
704
+ }
705
+ /**
706
+ * Remove an event handler
707
+ *
708
+ * @param handler - Handler to remove
709
+ */
710
+ off(handler) {
711
+ this.eventHandlers.delete(handler);
712
+ }
713
+ /**
714
+ * Emit an event
715
+ */
716
+ emit(event) {
717
+ for (const handler of this.eventHandlers) {
718
+ try {
719
+ handler(event);
720
+ }
721
+ catch (error) {
722
+ console.error('CRDT event handler error:', error);
723
+ }
724
+ }
725
+ }
726
+ // ============================================
727
+ // Validation
728
+ // ============================================
729
+ /**
730
+ * Check if store has capacity for new CRDT
731
+ */
732
+ checkCapacity() {
733
+ if (this.instances.size >= this.config.maxInstances) {
734
+ throw new types_1.CRDTError(`Store is full (max ${this.config.maxInstances} instances)`, types_1.CRDTErrorCode.StoreFull);
735
+ }
736
+ }
737
+ /**
738
+ * Check if ID is available
739
+ */
740
+ checkIdAvailable(id) {
741
+ if (this.instances.has(id)) {
742
+ throw new types_1.CRDTError(`CRDT with ID '${id}' already exists`, types_1.CRDTErrorCode.InvalidState, id);
743
+ }
744
+ }
745
+ // ============================================
746
+ // Statistics
747
+ // ============================================
748
+ /**
749
+ * Get store statistics
750
+ *
751
+ * @returns Store stats
752
+ */
753
+ getStats() {
754
+ const byType = {
755
+ [types_1.CRDTType.GCounter]: 0,
756
+ [types_1.CRDTType.PNCounter]: 0,
757
+ [types_1.CRDTType.LWWRegister]: 0,
758
+ [types_1.CRDTType.ORSet]: 0,
759
+ [types_1.CRDTType.MVRegister]: 0,
760
+ [types_1.CRDTType.LWWMap]: 0,
761
+ [types_1.CRDTType.PatternCRDT]: 0,
762
+ };
763
+ let totalTombstones = 0;
764
+ let pendingDeltas = 0;
765
+ for (const [id, instance] of this.instances) {
766
+ const type = this.types.get(id);
767
+ byType[type]++;
768
+ if (type === types_1.CRDTType.ORSet) {
769
+ totalTombstones += instance.getTombstoneCount();
770
+ }
771
+ }
772
+ for (const buffer of this.deltaBuffer.values()) {
773
+ pendingDeltas += buffer.filter(e => !e.applied).length;
774
+ }
775
+ return {
776
+ totalInstances: this.instances.size,
777
+ byType,
778
+ totalTombstones,
779
+ pendingDeltas,
780
+ totalConflicts: this.conflicts.length,
781
+ memoryUsage: this.estimateMemoryUsage(),
782
+ lastGC: this.lastGC,
783
+ lastSync: this.lastSync,
784
+ };
785
+ }
786
+ /**
787
+ * Estimate memory usage in bytes
788
+ */
789
+ estimateMemoryUsage() {
790
+ let total = 0;
791
+ for (const [id, instance] of this.instances) {
792
+ const type = this.types.get(id);
793
+ switch (type) {
794
+ case types_1.CRDTType.GCounter:
795
+ total += 64 * instance.getReplicas().length;
796
+ break;
797
+ case types_1.CRDTType.LWWRegister:
798
+ total += 128; // Base + value estimate
799
+ break;
800
+ case types_1.CRDTType.ORSet:
801
+ total += 64 * instance.size();
802
+ total += 32 * instance.getTombstoneCount();
803
+ break;
804
+ case types_1.CRDTType.PatternCRDT:
805
+ total += 1024; // Rough estimate
806
+ break;
807
+ }
808
+ }
809
+ return total;
810
+ }
811
+ /**
812
+ * Get the replica ID
813
+ *
814
+ * @returns Replica ID
815
+ */
816
+ getReplicaId() {
817
+ return this.config.replicaId;
818
+ }
819
+ /**
820
+ * Get the vector clock
821
+ *
822
+ * @returns Vector clock copy
823
+ */
824
+ getVectorClock() {
825
+ return this.vectorClock.clone();
826
+ }
827
+ /**
828
+ * Dispose the store
829
+ */
830
+ dispose() {
831
+ this.stopAutoGC();
832
+ this.clear();
833
+ this.eventHandlers.clear();
834
+ this.conflicts = [];
835
+ this.deltaBuffer.clear();
836
+ }
837
+ }
838
+ exports.CRDTStore = CRDTStore;
839
+ //# sourceMappingURL=CRDTStore.js.map