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,851 @@
1
+ "use strict";
2
+ /**
3
+ * Coordination Manager for Two-Machine Coordination
4
+ *
5
+ * Manages coordination between two or more peers in the P2P network.
6
+ * Handles connection establishment, authentication, pattern synchronization,
7
+ * and connection health monitoring.
8
+ *
9
+ * @module edge/p2p/coordination/CoordinationManager
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CoordinationManager = void 0;
14
+ exports.createCoordinationManager = createCoordinationManager;
15
+ const types_1 = require("./types");
16
+ const HealthMonitor_1 = require("./HealthMonitor");
17
+ const SyncOrchestrator_1 = require("./SyncOrchestrator");
18
+ // ============================================
19
+ // Coordination Manager Class
20
+ // ============================================
21
+ /**
22
+ * CoordinationManager - Manages two-machine coordination
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const manager = new CoordinationManager({
27
+ * localIdentity: myIdentity,
28
+ * localKeyPair: myKeyPair,
29
+ * autoReconnect: true,
30
+ * });
31
+ *
32
+ * // Set up message transport
33
+ * manager.setMessageSender(async (peerId, message) => {
34
+ * await dataChannel.send(peerId, JSON.stringify(message));
35
+ * });
36
+ *
37
+ * // Connect to peer
38
+ * await manager.connect('peer-123');
39
+ *
40
+ * // Start synchronization
41
+ * await manager.syncPatterns('peer-123');
42
+ *
43
+ * // Listen for events
44
+ * manager.on(CoordinationEventType.SYNC_COMPLETED, (event) => {
45
+ * console.log('Sync completed with', event.peerId);
46
+ * });
47
+ * ```
48
+ */
49
+ class CoordinationManager {
50
+ /**
51
+ * Create a new CoordinationManager
52
+ *
53
+ * @param config - Coordination configuration
54
+ */
55
+ constructor(config) {
56
+ this.peers = new Map();
57
+ this.eventHandlers = new Map();
58
+ this.isDestroyed = false;
59
+ this.config = {
60
+ ...types_1.DEFAULT_COORDINATION_CONFIG,
61
+ ...config,
62
+ syncConfig: {
63
+ ...types_1.DEFAULT_COORDINATION_CONFIG.syncConfig,
64
+ ...config.syncConfig,
65
+ },
66
+ };
67
+ this.localCapabilities = (0, types_1.createDefaultCapabilities)();
68
+ // Setup logging
69
+ this.setupLogging();
70
+ }
71
+ // ============================================
72
+ // Public API - Connection Management
73
+ // ============================================
74
+ /**
75
+ * Set the message sender callback for transport
76
+ */
77
+ setMessageSender(sender) {
78
+ this.messageSender = sender;
79
+ }
80
+ /**
81
+ * Connect to a peer
82
+ *
83
+ * @param peerId - Peer to connect to
84
+ * @param role - Role in the connection
85
+ * @returns Promise resolving when connected
86
+ */
87
+ async connect(peerId, role) {
88
+ this.ensureNotDestroyed();
89
+ // Check if already connected
90
+ const existing = this.peers.get(peerId);
91
+ if (existing && existing.info.state === 'synchronized') {
92
+ return existing.info;
93
+ }
94
+ const connectionRole = role ?? this.config.defaultRole;
95
+ this.log(`Connecting to peer: ${peerId} with role: ${connectionRole}`);
96
+ // Create peer state
97
+ const peerState = this.createPeerState(peerId, connectionRole);
98
+ this.peers.set(peerId, peerState);
99
+ // Update state to connecting
100
+ this.updatePeerState(peerId, types_1.CoordinationState.CONNECTING);
101
+ try {
102
+ // If initiator, send auth challenge
103
+ if (connectionRole === 'initiator' || connectionRole === 'bidirectional') {
104
+ await this.sendAuthChallenge(peerId, peerState);
105
+ }
106
+ return peerState.info;
107
+ }
108
+ catch (error) {
109
+ this.updatePeerState(peerId, types_1.CoordinationState.ERROR);
110
+ throw error;
111
+ }
112
+ }
113
+ /**
114
+ * Disconnect from a peer
115
+ *
116
+ * @param peerId - Peer to disconnect from
117
+ * @param reason - Reason for disconnection
118
+ */
119
+ async disconnect(peerId, reason) {
120
+ const peerState = this.peers.get(peerId);
121
+ if (!peerState) {
122
+ return;
123
+ }
124
+ this.log(`Disconnecting from peer: ${peerId}, reason: ${reason ?? 'user requested'}`);
125
+ try {
126
+ // Send disconnect message
127
+ await this.sendMessage(peerId, {
128
+ type: types_1.CoordinationMessageType.DISCONNECT,
129
+ messageId: (0, types_1.generateMessageId)(),
130
+ senderId: this.config.localIdentity.agentId,
131
+ payload: { reason: reason ?? 'disconnect requested' },
132
+ timestamp: Date.now(),
133
+ });
134
+ }
135
+ catch {
136
+ // Ignore send errors during disconnect
137
+ }
138
+ // Cleanup peer state
139
+ this.cleanupPeer(peerId);
140
+ this.emit(types_1.CoordinationEventType.PEER_DISCONNECTED, peerId, { reason });
141
+ }
142
+ /**
143
+ * Handle incoming message from a peer
144
+ *
145
+ * @param peerId - Sender peer ID
146
+ * @param message - Received message
147
+ */
148
+ async handleMessage(peerId, message) {
149
+ this.ensureNotDestroyed();
150
+ let peerState = this.peers.get(peerId);
151
+ // Create peer state if this is a new incoming connection
152
+ if (!peerState) {
153
+ peerState = this.createPeerState(peerId, types_1.CoordinationRole.RESPONDER);
154
+ this.peers.set(peerId, peerState);
155
+ }
156
+ // Update metrics
157
+ peerState.info.metrics.messagesReceived++;
158
+ peerState.info.lastSeenAt = Date.now();
159
+ this.logDebug(`Received message from ${peerId}: ${message.type}`);
160
+ try {
161
+ switch (message.type) {
162
+ case types_1.CoordinationMessageType.AUTH_CHALLENGE:
163
+ await this.handleAuthChallenge(peerId, peerState, message.payload, message.messageId);
164
+ break;
165
+ case types_1.CoordinationMessageType.AUTH_RESPONSE:
166
+ await this.handleAuthResponse(peerId, peerState, message.payload, message.correlationId);
167
+ break;
168
+ case types_1.CoordinationMessageType.AUTH_RESULT:
169
+ await this.handleAuthResult(peerId, peerState, message.payload);
170
+ break;
171
+ case types_1.CoordinationMessageType.CAPABILITIES:
172
+ await this.handleCapabilities(peerId, peerState, message.payload);
173
+ break;
174
+ case types_1.CoordinationMessageType.PING:
175
+ await this.handlePing(peerId, peerState, message.payload);
176
+ break;
177
+ case types_1.CoordinationMessageType.PONG:
178
+ await this.handlePong(peerId, peerState, message.payload);
179
+ break;
180
+ case types_1.CoordinationMessageType.SYNC_REQUEST:
181
+ case types_1.CoordinationMessageType.SYNC_RESPONSE:
182
+ case types_1.CoordinationMessageType.SYNC_COMPLETE:
183
+ case types_1.CoordinationMessageType.PATTERN_BATCH:
184
+ await peerState.syncOrchestrator.handleMessage(message);
185
+ break;
186
+ case types_1.CoordinationMessageType.CONFLICT:
187
+ await this.handleConflict(peerId, peerState, message.payload);
188
+ break;
189
+ case types_1.CoordinationMessageType.ERROR:
190
+ await this.handleError(peerId, peerState, message.payload);
191
+ break;
192
+ case types_1.CoordinationMessageType.DISCONNECT:
193
+ await this.handleDisconnect(peerId, peerState, message.payload);
194
+ break;
195
+ default:
196
+ this.logWarn(`Unknown message type: ${message.type}`);
197
+ }
198
+ // Resolve pending response if this is a response
199
+ if (message.correlationId) {
200
+ const pending = peerState.pendingResponses.get(message.correlationId);
201
+ if (pending) {
202
+ clearTimeout(pending.timeout);
203
+ pending.resolve(message.payload);
204
+ peerState.pendingResponses.delete(message.correlationId);
205
+ }
206
+ }
207
+ }
208
+ catch (error) {
209
+ this.logError(`Error handling message from ${peerId}:`, error);
210
+ this.emit(types_1.CoordinationEventType.ERROR, peerId, { error, message });
211
+ }
212
+ }
213
+ // ============================================
214
+ // Public API - Synchronization
215
+ // ============================================
216
+ /**
217
+ * Start pattern synchronization with a peer
218
+ *
219
+ * @param peerId - Peer to sync with
220
+ * @param patterns - Local patterns to sync
221
+ * @returns Sync result
222
+ */
223
+ async syncPatterns(peerId, patterns) {
224
+ const peerState = this.getPeerStateOrThrow(peerId);
225
+ if (!peerState.info.isAuthenticated) {
226
+ throw new types_1.CoordinationError('Peer not authenticated', types_1.CoordinationErrorCode.PEER_NOT_AUTHENTICATED, peerId);
227
+ }
228
+ this.log(`Starting pattern sync with peer: ${peerId}`);
229
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCING);
230
+ this.emit(types_1.CoordinationEventType.SYNC_STARTED, peerId, {
231
+ patternCount: patterns?.length ?? 0,
232
+ });
233
+ try {
234
+ const result = await peerState.syncOrchestrator.startSync(patterns);
235
+ if (result.state === 'completed') {
236
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCHRONIZED);
237
+ peerState.info.metrics.successfulSyncs++;
238
+ this.emit(types_1.CoordinationEventType.SYNC_COMPLETED, peerId, result);
239
+ }
240
+ else if (result.state === 'failed') {
241
+ peerState.info.metrics.failedSyncs++;
242
+ this.emit(types_1.CoordinationEventType.SYNC_FAILED, peerId, result);
243
+ }
244
+ return result;
245
+ }
246
+ catch (error) {
247
+ peerState.info.metrics.failedSyncs++;
248
+ this.emit(types_1.CoordinationEventType.SYNC_FAILED, peerId, { error });
249
+ throw error;
250
+ }
251
+ }
252
+ /**
253
+ * Get sync status for a peer
254
+ */
255
+ getSyncStatus(peerId) {
256
+ return this.peers.get(peerId)?.info.syncStatus;
257
+ }
258
+ // ============================================
259
+ // Public API - Health & Metrics
260
+ // ============================================
261
+ /**
262
+ * Get health status for a peer
263
+ */
264
+ getHealthStatus(peerId) {
265
+ return this.peers.get(peerId)?.info.health;
266
+ }
267
+ /**
268
+ * Get coordination metrics for a peer
269
+ */
270
+ getMetrics(peerId) {
271
+ return this.peers.get(peerId)?.info.metrics;
272
+ }
273
+ /**
274
+ * Get peer information
275
+ */
276
+ getPeerInfo(peerId) {
277
+ return this.peers.get(peerId)?.info;
278
+ }
279
+ /**
280
+ * Get all connected peers
281
+ */
282
+ getConnectedPeers() {
283
+ return Array.from(this.peers.values())
284
+ .filter((state) => state.info.state !== types_1.CoordinationState.DISCONNECTED &&
285
+ state.info.state !== types_1.CoordinationState.ERROR)
286
+ .map((state) => state.info);
287
+ }
288
+ /**
289
+ * Get all authenticated peers
290
+ */
291
+ getAuthenticatedPeers() {
292
+ return Array.from(this.peers.values())
293
+ .filter((state) => state.info.isAuthenticated)
294
+ .map((state) => state.info);
295
+ }
296
+ /**
297
+ * Get coordination state for a peer
298
+ */
299
+ getState(peerId) {
300
+ return this.peers.get(peerId)?.info.state;
301
+ }
302
+ /**
303
+ * Get local identity
304
+ */
305
+ getLocalIdentity() {
306
+ return this.config.localIdentity;
307
+ }
308
+ // ============================================
309
+ // Public API - Events
310
+ // ============================================
311
+ /**
312
+ * Register event handler
313
+ *
314
+ * @param event - Event type to handle
315
+ * @param handler - Event handler function
316
+ * @returns Unsubscribe function
317
+ */
318
+ on(event, handler) {
319
+ if (!this.eventHandlers.has(event)) {
320
+ this.eventHandlers.set(event, new Set());
321
+ }
322
+ this.eventHandlers.get(event).add(handler);
323
+ return () => {
324
+ this.eventHandlers.get(event)?.delete(handler);
325
+ };
326
+ }
327
+ /**
328
+ * Remove event handler
329
+ */
330
+ off(event, handler) {
331
+ this.eventHandlers.get(event)?.delete(handler);
332
+ }
333
+ // ============================================
334
+ // Public API - Lifecycle
335
+ // ============================================
336
+ /**
337
+ * Destroy the coordination manager
338
+ */
339
+ async destroy() {
340
+ this.isDestroyed = true;
341
+ // Disconnect all peers
342
+ const disconnectPromises = Array.from(this.peers.keys()).map((peerId) => this.disconnect(peerId, 'manager destroyed'));
343
+ await Promise.all(disconnectPromises);
344
+ // Clear event handlers
345
+ this.eventHandlers.clear();
346
+ this.log('CoordinationManager destroyed');
347
+ }
348
+ // ============================================
349
+ // Private - Authentication
350
+ // ============================================
351
+ async sendAuthChallenge(peerId, peerState) {
352
+ const challenge = (0, types_1.generateChallenge)();
353
+ const timestamp = Date.now();
354
+ const expiresIn = this.config.authTimeout;
355
+ // Store pending challenge
356
+ peerState.pendingChallenge = {
357
+ challenge,
358
+ timestamp,
359
+ expiresAt: timestamp + expiresIn,
360
+ };
361
+ this.updatePeerState(peerId, types_1.CoordinationState.AUTHENTICATING);
362
+ const payload = {
363
+ challenge,
364
+ timestamp: new Date(timestamp).toISOString(),
365
+ expiresIn,
366
+ capabilities: this.localCapabilities,
367
+ };
368
+ await this.sendMessage(peerId, {
369
+ type: types_1.CoordinationMessageType.AUTH_CHALLENGE,
370
+ messageId: (0, types_1.generateMessageId)(),
371
+ senderId: this.config.localIdentity.agentId,
372
+ payload,
373
+ timestamp,
374
+ });
375
+ }
376
+ async handleAuthChallenge(peerId, peerState, payload, messageId) {
377
+ this.log(`Received auth challenge from ${peerId}`);
378
+ this.updatePeerState(peerId, types_1.CoordinationState.AUTHENTICATING);
379
+ // Update peer capabilities
380
+ peerState.info.capabilities = payload.capabilities;
381
+ // Create identity proof by signing the challenge
382
+ const identityProof = await this.createIdentityProof(payload.challenge, payload.expiresIn);
383
+ const response = {
384
+ identityProof,
385
+ capabilities: this.localCapabilities,
386
+ };
387
+ await this.sendMessage(peerId, {
388
+ type: types_1.CoordinationMessageType.AUTH_RESPONSE,
389
+ messageId: (0, types_1.generateMessageId)(),
390
+ correlationId: messageId,
391
+ senderId: this.config.localIdentity.agentId,
392
+ payload: response,
393
+ timestamp: Date.now(),
394
+ });
395
+ }
396
+ async handleAuthResponse(peerId, peerState, payload, correlationId) {
397
+ this.log(`Received auth response from ${peerId}`);
398
+ // Verify we have a pending challenge
399
+ if (!peerState.pendingChallenge) {
400
+ throw new types_1.CoordinationError('No pending challenge', types_1.CoordinationErrorCode.AUTH_FAILED, peerId);
401
+ }
402
+ // Check challenge hasn't expired
403
+ if (Date.now() > peerState.pendingChallenge.expiresAt) {
404
+ throw new types_1.CoordinationError('Challenge expired', types_1.CoordinationErrorCode.AUTH_TIMEOUT, peerId);
405
+ }
406
+ // Verify the identity proof
407
+ const isValid = await this.verifyIdentityProof(payload.identityProof, peerState.pendingChallenge.challenge);
408
+ // Clear pending challenge
409
+ peerState.pendingChallenge = undefined;
410
+ if (!isValid) {
411
+ peerState.info.isAuthenticated = false;
412
+ this.emit(types_1.CoordinationEventType.AUTH_FAILED, peerId, { reason: 'Invalid signature' });
413
+ await this.sendMessage(peerId, {
414
+ type: types_1.CoordinationMessageType.AUTH_RESULT,
415
+ messageId: (0, types_1.generateMessageId)(),
416
+ correlationId,
417
+ senderId: this.config.localIdentity.agentId,
418
+ payload: { success: false, error: 'Invalid signature' },
419
+ timestamp: Date.now(),
420
+ });
421
+ return;
422
+ }
423
+ // Check trust if callback provided
424
+ if (this.config.onVerifyTrust) {
425
+ const identity = {
426
+ agentId: payload.identityProof.agentId,
427
+ publicKey: payload.identityProof.publicKey,
428
+ createdAt: new Date().toISOString(),
429
+ };
430
+ const isTrusted = await this.config.onVerifyTrust(identity);
431
+ peerState.info.isTrusted = isTrusted;
432
+ }
433
+ // Update peer info
434
+ peerState.info.identity = {
435
+ agentId: payload.identityProof.agentId,
436
+ publicKey: payload.identityProof.publicKey,
437
+ createdAt: new Date().toISOString(),
438
+ };
439
+ peerState.info.publicKey = payload.identityProof.publicKey;
440
+ peerState.info.capabilities = payload.capabilities;
441
+ peerState.info.isAuthenticated = true;
442
+ // Generate session ID using cryptographically secure random
443
+ const randomBytes = new Uint8Array(4);
444
+ crypto.getRandomValues(randomBytes);
445
+ const randomPart = Array.from(randomBytes).map(b => b.toString(36)).join('').substring(0, 6);
446
+ const sessionId = `session-${Date.now().toString(36)}-${randomPart}`;
447
+ peerState.sessionId = sessionId;
448
+ // Send success result
449
+ await this.sendMessage(peerId, {
450
+ type: types_1.CoordinationMessageType.AUTH_RESULT,
451
+ messageId: (0, types_1.generateMessageId)(),
452
+ correlationId,
453
+ senderId: this.config.localIdentity.agentId,
454
+ payload: {
455
+ success: true,
456
+ sessionId,
457
+ capabilities: this.localCapabilities,
458
+ },
459
+ timestamp: Date.now(),
460
+ });
461
+ this.log(`Peer ${peerId} authenticated successfully`);
462
+ this.emit(types_1.CoordinationEventType.PEER_AUTHENTICATED, peerId, {
463
+ identity: peerState.info.identity,
464
+ sessionId,
465
+ });
466
+ // Update state based on sync config
467
+ if (this.config.syncConfig.autoSyncOnConnect) {
468
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCING);
469
+ }
470
+ else {
471
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCHRONIZED);
472
+ }
473
+ }
474
+ async handleAuthResult(peerId, peerState, payload) {
475
+ if (!payload.success) {
476
+ this.logError(`Authentication failed with ${peerId}: ${payload.error}`);
477
+ peerState.info.isAuthenticated = false;
478
+ this.updatePeerState(peerId, types_1.CoordinationState.ERROR);
479
+ this.emit(types_1.CoordinationEventType.AUTH_FAILED, peerId, { error: payload.error });
480
+ return;
481
+ }
482
+ this.log(`Authentication successful with ${peerId}`);
483
+ peerState.info.isAuthenticated = true;
484
+ peerState.sessionId = payload.sessionId;
485
+ if (payload.capabilities) {
486
+ peerState.info.capabilities = payload.capabilities;
487
+ }
488
+ peerState.info.connectedAt = Date.now();
489
+ this.emit(types_1.CoordinationEventType.PEER_AUTHENTICATED, peerId, {
490
+ sessionId: payload.sessionId,
491
+ });
492
+ this.emit(types_1.CoordinationEventType.PEER_CONNECTED, peerId, {
493
+ capabilities: peerState.info.capabilities,
494
+ });
495
+ // Update state
496
+ if (this.config.syncConfig.autoSyncOnConnect) {
497
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCING);
498
+ }
499
+ else {
500
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCHRONIZED);
501
+ }
502
+ }
503
+ async createIdentityProof(challenge, expiresIn) {
504
+ // Sign the challenge with our private key
505
+ const encoder = new TextEncoder();
506
+ const data = encoder.encode(challenge);
507
+ // Import private key and sign
508
+ // In a real implementation, use proper Ed25519 signing via @noble/ed25519
509
+ // For browser compatibility, we use a simplified approach
510
+ const signature = await this.signData(data);
511
+ return {
512
+ agentId: this.config.localIdentity.agentId,
513
+ publicKey: this.config.localKeyPair.publicKey,
514
+ challenge,
515
+ signature: this.arrayToBase64(signature),
516
+ timestamp: new Date().toISOString(),
517
+ expiresIn,
518
+ };
519
+ }
520
+ async verifyIdentityProof(proof, expectedChallenge) {
521
+ // Verify challenge matches
522
+ if (proof.challenge !== expectedChallenge) {
523
+ return false;
524
+ }
525
+ // Check expiration
526
+ const proofTime = new Date(proof.timestamp).getTime();
527
+ if (Date.now() > proofTime + proof.expiresIn) {
528
+ return false;
529
+ }
530
+ // Verify signature
531
+ // In a real implementation, use proper Ed25519 verification
532
+ try {
533
+ const encoder = new TextEncoder();
534
+ const data = encoder.encode(proof.challenge);
535
+ const signature = this.base64ToArray(proof.signature);
536
+ const publicKey = this.base64ToArray(proof.publicKey);
537
+ return await this.verifySignature(data, signature, publicKey);
538
+ }
539
+ catch {
540
+ return false;
541
+ }
542
+ }
543
+ // ============================================
544
+ // Private - Health Monitoring
545
+ // ============================================
546
+ async handlePing(peerId, peerState, payload) {
547
+ const pong = {
548
+ sequence: payload.sequence,
549
+ originalTimestamp: payload.timestamp,
550
+ timestamp: Date.now(),
551
+ };
552
+ await this.sendMessage(peerId, {
553
+ type: types_1.CoordinationMessageType.PONG,
554
+ messageId: (0, types_1.generateMessageId)(),
555
+ senderId: this.config.localIdentity.agentId,
556
+ payload: pong,
557
+ timestamp: Date.now(),
558
+ });
559
+ }
560
+ async handlePong(_peerId, peerState, payload) {
561
+ peerState.healthMonitor.recordPong(payload.sequence, payload.originalTimestamp, payload.timestamp);
562
+ }
563
+ async handleCapabilities(peerId, peerState, capabilities) {
564
+ peerState.info.capabilities = capabilities;
565
+ this.log(`Updated capabilities for ${peerId}`);
566
+ }
567
+ async handleConflict(peerId, peerState, payload) {
568
+ peerState.info.metrics.conflictsDetected++;
569
+ this.emit(types_1.CoordinationEventType.CONFLICT_DETECTED, peerId, payload);
570
+ }
571
+ async handleError(peerId, _peerState, payload) {
572
+ this.logError(`Received error from ${peerId}:`, payload);
573
+ this.emit(types_1.CoordinationEventType.ERROR, peerId, payload);
574
+ }
575
+ async handleDisconnect(peerId, _peerState, payload) {
576
+ this.log(`Peer ${peerId} disconnected: ${payload.reason ?? 'no reason given'}`);
577
+ this.cleanupPeer(peerId);
578
+ this.emit(types_1.CoordinationEventType.PEER_DISCONNECTED, peerId, payload);
579
+ }
580
+ // ============================================
581
+ // Private - Peer State Management
582
+ // ============================================
583
+ createPeerState(peerId, role) {
584
+ const info = {
585
+ peerId,
586
+ state: types_1.CoordinationState.DISCONNECTED,
587
+ role,
588
+ health: (0, types_1.createDefaultHealthStatus)(),
589
+ metrics: (0, types_1.createDefaultMetrics)(),
590
+ syncStatus: (0, types_1.createDefaultSyncStatus)(),
591
+ isAuthenticated: false,
592
+ isTrusted: false,
593
+ capabilities: (0, types_1.createDefaultCapabilities)(),
594
+ lastSeenAt: Date.now(),
595
+ reconnectAttempts: 0,
596
+ };
597
+ const healthMonitor = new HealthMonitor_1.HealthMonitor({
598
+ peerId,
599
+ pingInterval: this.config.pingInterval,
600
+ onPing: async (sequence) => {
601
+ await this.sendPing(peerId, sequence);
602
+ },
603
+ onHealthChange: (health) => {
604
+ const peerState = this.peers.get(peerId);
605
+ if (peerState) {
606
+ peerState.info.health = health;
607
+ this.handleHealthChange(peerId, health);
608
+ }
609
+ },
610
+ });
611
+ const syncOrchestrator = new SyncOrchestrator_1.SyncOrchestrator({
612
+ localAgentId: this.config.localIdentity.agentId,
613
+ peerId,
614
+ config: this.config.syncConfig,
615
+ sendMessage: async (message) => {
616
+ await this.sendMessage(peerId, message);
617
+ },
618
+ onSyncProgress: (status) => {
619
+ const peerState = this.peers.get(peerId);
620
+ if (peerState) {
621
+ peerState.info.syncStatus = status;
622
+ this.emit(types_1.CoordinationEventType.SYNC_PROGRESS, peerId, status);
623
+ }
624
+ },
625
+ });
626
+ return {
627
+ info,
628
+ healthMonitor,
629
+ syncOrchestrator,
630
+ pendingResponses: new Map(),
631
+ lastSequence: 0,
632
+ };
633
+ }
634
+ updatePeerState(peerId, newState) {
635
+ const peerState = this.peers.get(peerId);
636
+ if (!peerState) {
637
+ return;
638
+ }
639
+ const previousState = peerState.info.state;
640
+ peerState.info.state = newState;
641
+ this.emit(types_1.CoordinationEventType.STATE_CHANGED, peerId, {
642
+ previousState,
643
+ newState,
644
+ });
645
+ }
646
+ handleHealthChange(peerId, health) {
647
+ if (health.level === types_1.HealthLevel.WARNING) {
648
+ this.emit(types_1.CoordinationEventType.HEALTH_WARNING, peerId, health);
649
+ // Update state to degraded if currently synchronized
650
+ const peerState = this.peers.get(peerId);
651
+ if (peerState?.info.state === types_1.CoordinationState.SYNCHRONIZED) {
652
+ this.updatePeerState(peerId, types_1.CoordinationState.DEGRADED);
653
+ }
654
+ }
655
+ else if (health.level === types_1.HealthLevel.CRITICAL || health.level === types_1.HealthLevel.UNHEALTHY) {
656
+ this.emit(types_1.CoordinationEventType.HEALTH_CRITICAL, peerId, health);
657
+ // Trigger reconnection if configured
658
+ if (this.config.autoReconnect) {
659
+ this.attemptReconnection(peerId);
660
+ }
661
+ }
662
+ else if (health.level === types_1.HealthLevel.HEALTHY) {
663
+ // Recover from degraded state
664
+ const peerState = this.peers.get(peerId);
665
+ if (peerState?.info.state === types_1.CoordinationState.DEGRADED) {
666
+ this.updatePeerState(peerId, types_1.CoordinationState.SYNCHRONIZED);
667
+ this.emit(types_1.CoordinationEventType.HEALTH_RECOVERED, peerId, health);
668
+ }
669
+ }
670
+ }
671
+ async attemptReconnection(peerId) {
672
+ const peerState = this.peers.get(peerId);
673
+ if (!peerState) {
674
+ return;
675
+ }
676
+ if (peerState.info.reconnectAttempts >= this.config.maxReconnectAttempts) {
677
+ this.logError(`Max reconnection attempts reached for ${peerId}`);
678
+ this.updatePeerState(peerId, types_1.CoordinationState.ERROR);
679
+ this.emit(types_1.CoordinationEventType.RECONNECT_FAILED, peerId, {
680
+ attempts: peerState.info.reconnectAttempts,
681
+ });
682
+ return;
683
+ }
684
+ peerState.info.reconnectAttempts++;
685
+ peerState.info.metrics.reconnectionAttempts++;
686
+ this.updatePeerState(peerId, types_1.CoordinationState.RECONNECTING);
687
+ this.emit(types_1.CoordinationEventType.RECONNECTING, peerId, {
688
+ attempt: peerState.info.reconnectAttempts,
689
+ maxAttempts: this.config.maxReconnectAttempts,
690
+ });
691
+ // Exponential backoff
692
+ const delay = Math.min(1000 * Math.pow(2, peerState.info.reconnectAttempts - 1), this.config.reconnectTimeout);
693
+ await this.delay(delay);
694
+ try {
695
+ // Reset authentication state
696
+ peerState.info.isAuthenticated = false;
697
+ peerState.pendingChallenge = undefined;
698
+ peerState.sessionId = undefined;
699
+ // Attempt to reconnect
700
+ await this.sendAuthChallenge(peerId, peerState);
701
+ }
702
+ catch (error) {
703
+ this.logError(`Reconnection attempt ${peerState.info.reconnectAttempts} failed:`, error);
704
+ await this.attemptReconnection(peerId);
705
+ }
706
+ }
707
+ cleanupPeer(peerId) {
708
+ const peerState = this.peers.get(peerId);
709
+ if (!peerState) {
710
+ return;
711
+ }
712
+ // Stop health monitoring
713
+ peerState.healthMonitor.stop();
714
+ // Stop sync orchestrator
715
+ peerState.syncOrchestrator.stop();
716
+ // Clear pending responses
717
+ peerState.pendingResponses.forEach((pending) => {
718
+ clearTimeout(pending.timeout);
719
+ pending.reject(new Error('Peer disconnected'));
720
+ });
721
+ peerState.pendingResponses.clear();
722
+ // Remove from peers map
723
+ this.peers.delete(peerId);
724
+ }
725
+ getPeerStateOrThrow(peerId) {
726
+ const peerState = this.peers.get(peerId);
727
+ if (!peerState) {
728
+ throw new types_1.CoordinationError(`Peer not found: ${peerId}`, types_1.CoordinationErrorCode.PEER_NOT_FOUND, peerId);
729
+ }
730
+ return peerState;
731
+ }
732
+ // ============================================
733
+ // Private - Messaging
734
+ // ============================================
735
+ async sendMessage(peerId, message) {
736
+ if (!this.messageSender) {
737
+ throw new types_1.CoordinationError('No message sender configured', types_1.CoordinationErrorCode.CONNECTION_FAILED, peerId);
738
+ }
739
+ const peerState = this.peers.get(peerId);
740
+ if (peerState) {
741
+ peerState.info.metrics.messagesSent++;
742
+ }
743
+ await this.messageSender(peerId, message);
744
+ }
745
+ async sendPing(peerId, sequence) {
746
+ const payload = {
747
+ sequence,
748
+ timestamp: Date.now(),
749
+ };
750
+ await this.sendMessage(peerId, {
751
+ type: types_1.CoordinationMessageType.PING,
752
+ messageId: (0, types_1.generateMessageId)(),
753
+ senderId: this.config.localIdentity.agentId,
754
+ payload,
755
+ timestamp: Date.now(),
756
+ });
757
+ }
758
+ // ============================================
759
+ // Private - Crypto Helpers
760
+ // ============================================
761
+ async signData(data) {
762
+ // Simplified signing using Web Crypto API
763
+ // In production, use proper Ed25519 signing via @noble/ed25519
764
+ const keyData = this.base64ToArray(this.config.localKeyPair.privateKey);
765
+ // Use HMAC as a placeholder for Ed25519 signing
766
+ // This is for demonstration - use proper Ed25519 in production
767
+ const key = await crypto.subtle.importKey('raw', keyData.slice(0, 32).buffer, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
768
+ const signature = await crypto.subtle.sign('HMAC', key, data.buffer);
769
+ return new Uint8Array(signature);
770
+ }
771
+ async verifySignature(data, signature, publicKey) {
772
+ // Simplified verification using Web Crypto API
773
+ // In production, use proper Ed25519 verification
774
+ try {
775
+ const key = await crypto.subtle.importKey('raw', publicKey.buffer, { name: 'HMAC', hash: 'SHA-256' }, false, ['verify']);
776
+ return await crypto.subtle.verify('HMAC', key, signature.buffer, data.buffer);
777
+ }
778
+ catch {
779
+ return false;
780
+ }
781
+ }
782
+ arrayToBase64(array) {
783
+ return btoa(Array.from(array).map((b) => String.fromCharCode(b)).join(''));
784
+ }
785
+ base64ToArray(base64) {
786
+ const binary = atob(base64);
787
+ const array = new Uint8Array(binary.length);
788
+ for (let i = 0; i < binary.length; i++) {
789
+ array[i] = binary.charCodeAt(i);
790
+ }
791
+ return array;
792
+ }
793
+ // ============================================
794
+ // Private - Utilities
795
+ // ============================================
796
+ emit(type, peerId, data) {
797
+ const event = {
798
+ type,
799
+ timestamp: Date.now(),
800
+ peerId,
801
+ data,
802
+ };
803
+ const handlers = this.eventHandlers.get(type);
804
+ handlers?.forEach((handler) => {
805
+ try {
806
+ handler(event);
807
+ }
808
+ catch (error) {
809
+ this.logError(`Event handler error for ${type}:`, error);
810
+ }
811
+ });
812
+ }
813
+ ensureNotDestroyed() {
814
+ if (this.isDestroyed) {
815
+ throw new types_1.CoordinationError('CoordinationManager has been destroyed', types_1.CoordinationErrorCode.CONNECTION_CLOSED);
816
+ }
817
+ }
818
+ delay(ms) {
819
+ return new Promise((resolve) => setTimeout(resolve, ms));
820
+ }
821
+ setupLogging() {
822
+ const noop = () => { };
823
+ if (!this.config.enableLogging) {
824
+ this.log = noop;
825
+ this.logDebug = noop;
826
+ this.logWarn = noop;
827
+ this.logError = noop;
828
+ return;
829
+ }
830
+ const prefix = '[CoordinationManager]';
831
+ this.log = (...args) => console.log(prefix, ...args);
832
+ this.logDebug = this.config.logLevel === 'debug'
833
+ ? (...args) => console.debug(prefix, ...args)
834
+ : noop;
835
+ this.logWarn = ['debug', 'info', 'warn'].includes(this.config.logLevel)
836
+ ? (...args) => console.warn(prefix, ...args)
837
+ : noop;
838
+ this.logError = (...args) => console.error(prefix, ...args);
839
+ }
840
+ }
841
+ exports.CoordinationManager = CoordinationManager;
842
+ // ============================================
843
+ // Factory Functions
844
+ // ============================================
845
+ /**
846
+ * Create a new CoordinationManager instance
847
+ */
848
+ function createCoordinationManager(config) {
849
+ return new CoordinationManager(config);
850
+ }
851
+ //# sourceMappingURL=CoordinationManager.js.map