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,724 @@
1
+ "use strict";
2
+ /**
3
+ * Model Manager for Federated Learning
4
+ *
5
+ * Tracks local model state, applies aggregated updates, handles model
6
+ * checkpointing, rollback on divergence, and provides gradient computation helpers.
7
+ *
8
+ * @module edge/p2p/federated/ModelManager
9
+ * @version 1.0.0
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ModelManager = void 0;
13
+ exports.createModelManager = createModelManager;
14
+ exports.createModelArchitecture = createModelArchitecture;
15
+ const types_1 = require("./types");
16
+ // ============================================
17
+ // ModelManager Class
18
+ // ============================================
19
+ /**
20
+ * Manages local model state for federated learning
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const manager = new ModelManager({
25
+ * architecture: modelArchitecture,
26
+ * optimizer: { type: 'adam', learningRate: 0.001 },
27
+ * checkpointInterval: 10,
28
+ * });
29
+ *
30
+ * // Initialize with weights
31
+ * manager.setWeights(globalModel);
32
+ *
33
+ * // Perform local training
34
+ * const update = await manager.trainLocal({
35
+ * epochs: 5,
36
+ * batchSize: 32,
37
+ * learningRate: 0.01,
38
+ * updateType: UpdateType.GRADIENTS,
39
+ * data: trainingData,
40
+ * labels: trainingLabels,
41
+ * });
42
+ *
43
+ * // Apply aggregated update
44
+ * manager.applyUpdate(aggregatedWeights);
45
+ *
46
+ * // Create checkpoint
47
+ * const checkpoint = manager.checkpoint('session-1', 10, trainingMetrics);
48
+ * ```
49
+ */
50
+ class ModelManager {
51
+ constructor(config) {
52
+ this.weights = null;
53
+ this.previousWeights = null;
54
+ this.checkpoints = new Map();
55
+ this.trainingHistory = [];
56
+ this.roundNumber = 0;
57
+ this.config = {
58
+ ...config,
59
+ checkpointInterval: config.checkpointInterval ?? types_1.DEFAULT_CHECKPOINT_INTERVAL,
60
+ maxCheckpoints: config.maxCheckpoints ?? 5,
61
+ autoRollback: config.autoRollback ?? true,
62
+ divergenceThreshold: config.divergenceThreshold ?? 2.0,
63
+ };
64
+ // Initialize optimizer state
65
+ this.optimizerState = {
66
+ m: new Map(),
67
+ v: new Map(),
68
+ t: 0,
69
+ };
70
+ // Initialize optimizer state for each layer
71
+ for (const layer of config.architecture.layers) {
72
+ if (layer.trainable) {
73
+ const size = layer.shape.reduce((a, b) => a * b, 1);
74
+ this.optimizerState.m.set(layer.name, new Float32Array(size));
75
+ this.optimizerState.v.set(layer.name, new Float32Array(size));
76
+ }
77
+ }
78
+ }
79
+ // ============================================
80
+ // Weight Management
81
+ // ============================================
82
+ /**
83
+ * Set model weights
84
+ */
85
+ setWeights(weights) {
86
+ this.validateWeights(weights);
87
+ this.previousWeights = this.weights;
88
+ this.weights = this.cloneWeights(weights);
89
+ }
90
+ /**
91
+ * Get current model weights
92
+ */
93
+ getWeights() {
94
+ return this.weights ? this.cloneWeights(this.weights) : null;
95
+ }
96
+ /**
97
+ * Get previous model weights
98
+ */
99
+ getPreviousWeights() {
100
+ return this.previousWeights ? this.cloneWeights(this.previousWeights) : null;
101
+ }
102
+ /**
103
+ * Validate weights against architecture
104
+ */
105
+ validateWeights(weights) {
106
+ for (const layer of this.config.architecture.layers) {
107
+ const layerWeights = weights.weights.get(layer.name);
108
+ if (!layerWeights && layer.trainable) {
109
+ throw new types_1.FederatedError(`Missing weights for layer: ${layer.name}`, types_1.FederatedErrorCode.INVALID_UPDATE);
110
+ }
111
+ if (layerWeights) {
112
+ const expectedSize = layer.shape.reduce((a, b) => a * b, 1);
113
+ if (layerWeights.length !== expectedSize) {
114
+ throw new types_1.FederatedError(`Weight size mismatch for ${layer.name}: ${layerWeights.length} vs ${expectedSize}`, types_1.FederatedErrorCode.INVALID_UPDATE);
115
+ }
116
+ }
117
+ }
118
+ if (weights.totalBytes > types_1.MAX_MODEL_SIZE) {
119
+ throw new types_1.FederatedError(`Model too large: ${weights.totalBytes} > ${types_1.MAX_MODEL_SIZE}`, types_1.FederatedErrorCode.MODEL_TOO_LARGE);
120
+ }
121
+ }
122
+ /**
123
+ * Clone weights object
124
+ */
125
+ cloneWeights(weights) {
126
+ const clonedWeights = new Map();
127
+ for (const [name, data] of weights.weights) {
128
+ clonedWeights.set(name, new Float32Array(data));
129
+ }
130
+ const clonedShapes = new Map();
131
+ for (const [name, shape] of weights.shapes) {
132
+ clonedShapes.set(name, [...shape]);
133
+ }
134
+ return {
135
+ ...weights,
136
+ weights: clonedWeights,
137
+ shapes: clonedShapes,
138
+ biases: weights.biases ? this.cloneBiases(weights.biases) : undefined,
139
+ };
140
+ }
141
+ /**
142
+ * Clone biases map
143
+ */
144
+ cloneBiases(biases) {
145
+ const cloned = new Map();
146
+ for (const [name, data] of biases) {
147
+ cloned.set(name, new Float32Array(data));
148
+ }
149
+ return cloned;
150
+ }
151
+ // ============================================
152
+ // Local Training
153
+ // ============================================
154
+ /**
155
+ * Perform local training and generate model update
156
+ */
157
+ async trainLocal(options) {
158
+ if (!this.weights) {
159
+ throw new types_1.FederatedError('No model weights set', types_1.FederatedErrorCode.INVALID_UPDATE);
160
+ }
161
+ const startTime = Date.now();
162
+ const lossHistory = [];
163
+ const gradientNorms = [];
164
+ // Clone weights for training
165
+ const trainableWeights = this.cloneWeights(this.weights);
166
+ let sampleCount = 0;
167
+ // Training loop
168
+ for (let epoch = 0; epoch < options.epochs; epoch++) {
169
+ // Compute gradients for this epoch
170
+ const gradients = this.computeGradients(trainableWeights, options.data, options.labels, options.gradientFn);
171
+ // Track gradient norms
172
+ const norm = this.computeGradientNorm(gradients);
173
+ gradientNorms.push(norm);
174
+ // Apply gradients with optimizer
175
+ this.applyGradients(trainableWeights, gradients, options.learningRate);
176
+ // Compute loss (simulated)
177
+ const loss = this.computeLoss(trainableWeights, options.data, options.labels);
178
+ lossHistory.push(loss);
179
+ // Count samples processed
180
+ if (options.data) {
181
+ sampleCount += options.data.length;
182
+ }
183
+ }
184
+ // Compute deltas (difference from original weights)
185
+ const deltas = this.computeDeltas(this.weights, trainableWeights);
186
+ // Apply compression if configured
187
+ let compressedDeltas = deltas;
188
+ let compressionInfo;
189
+ if (this.config.compression?.enabled) {
190
+ const compressed = this.compressDeltas(deltas);
191
+ compressedDeltas = compressed.deltas;
192
+ compressionInfo = compressed.info;
193
+ }
194
+ // Build training metrics
195
+ const metrics = {
196
+ lossHistory,
197
+ finalLoss: lossHistory[lossHistory.length - 1] ?? 0,
198
+ accuracy: undefined, // Would need actual validation
199
+ trainingTime: Date.now() - startTime,
200
+ gradientSteps: options.epochs * (options.data?.length ?? 1),
201
+ gradientNorms,
202
+ };
203
+ this.trainingHistory.push(metrics);
204
+ // Generate update
205
+ const update = {
206
+ updateId: `update-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
207
+ participantId: '', // Will be set by caller
208
+ roundId: '', // Will be set by caller
209
+ updateType: options.updateType,
210
+ deltas: compressedDeltas,
211
+ sampleCount: Math.max(sampleCount, 1),
212
+ localLoss: metrics.finalLoss,
213
+ localEpochs: options.epochs,
214
+ metrics,
215
+ compressed: this.config.compression?.enabled,
216
+ compressionInfo,
217
+ timestamp: Date.now(),
218
+ };
219
+ return update;
220
+ }
221
+ /**
222
+ * Compute gradients
223
+ */
224
+ computeGradients(weights, data, labels, gradientFn) {
225
+ // Use custom gradient function if provided
226
+ if (gradientFn && data && labels) {
227
+ return gradientFn(weights, data, labels);
228
+ }
229
+ // Otherwise, generate synthetic gradients for demonstration
230
+ // In production, this would integrate with actual ML framework
231
+ const gradients = new Map();
232
+ for (const layer of this.config.architecture.layers) {
233
+ if (!layer.trainable)
234
+ continue;
235
+ const layerWeights = weights.weights.get(layer.name);
236
+ if (!layerWeights)
237
+ continue;
238
+ // Generate random gradients (for demonstration)
239
+ // Real implementation would compute actual gradients
240
+ const grad = new Float32Array(layerWeights.length);
241
+ for (let i = 0; i < grad.length; i++) {
242
+ // Simulate gradient with small random values
243
+ grad[i] = (Math.random() - 0.5) * 0.01;
244
+ }
245
+ gradients.set(layer.name, grad);
246
+ }
247
+ return gradients;
248
+ }
249
+ /**
250
+ * Apply gradients to weights using configured optimizer
251
+ */
252
+ applyGradients(weights, gradients, learningRate) {
253
+ const optimizer = this.config.optimizer ?? { type: 'sgd', learningRate };
254
+ this.optimizerState.t++;
255
+ for (const [layerName, grad] of gradients) {
256
+ const layerWeights = weights.weights.get(layerName);
257
+ if (!layerWeights)
258
+ continue;
259
+ switch (optimizer.type) {
260
+ case 'sgd':
261
+ this.applySGD(layerWeights, grad, learningRate, optimizer.momentum);
262
+ break;
263
+ case 'adam':
264
+ case 'adamw':
265
+ this.applyAdam(layerName, layerWeights, grad, learningRate, optimizer.beta1 ?? 0.9, optimizer.beta2 ?? 0.999, optimizer.weightDecay ?? 0);
266
+ break;
267
+ case 'rmsprop':
268
+ this.applyRMSprop(layerName, layerWeights, grad, learningRate, optimizer.beta1 ?? 0.9);
269
+ break;
270
+ }
271
+ }
272
+ }
273
+ /**
274
+ * Apply SGD update
275
+ */
276
+ applySGD(weights, gradients, lr, momentum) {
277
+ for (let i = 0; i < weights.length; i++) {
278
+ weights[i] -= lr * gradients[i];
279
+ }
280
+ }
281
+ /**
282
+ * Apply Adam update
283
+ */
284
+ applyAdam(layerName, weights, gradients, lr, beta1, beta2, weightDecay) {
285
+ const m = this.optimizerState.m.get(layerName);
286
+ const v = this.optimizerState.v.get(layerName);
287
+ const t = this.optimizerState.t;
288
+ const eps = 1e-8;
289
+ const biasCorrection1 = 1 - Math.pow(beta1, t);
290
+ const biasCorrection2 = 1 - Math.pow(beta2, t);
291
+ for (let i = 0; i < weights.length; i++) {
292
+ // Update biased first moment estimate
293
+ m[i] = beta1 * m[i] + (1 - beta1) * gradients[i];
294
+ // Update biased second moment estimate
295
+ v[i] = beta2 * v[i] + (1 - beta2) * gradients[i] * gradients[i];
296
+ // Compute bias-corrected estimates
297
+ const mHat = m[i] / biasCorrection1;
298
+ const vHat = v[i] / biasCorrection2;
299
+ // Update weights
300
+ const update = lr * mHat / (Math.sqrt(vHat) + eps);
301
+ weights[i] -= update;
302
+ // Weight decay (for AdamW)
303
+ if (weightDecay > 0) {
304
+ weights[i] -= lr * weightDecay * weights[i];
305
+ }
306
+ }
307
+ }
308
+ /**
309
+ * Apply RMSprop update
310
+ */
311
+ applyRMSprop(layerName, weights, gradients, lr, rho) {
312
+ const v = this.optimizerState.v.get(layerName);
313
+ const eps = 1e-8;
314
+ for (let i = 0; i < weights.length; i++) {
315
+ // Update running average of squared gradients
316
+ v[i] = rho * v[i] + (1 - rho) * gradients[i] * gradients[i];
317
+ // Update weights
318
+ weights[i] -= lr * gradients[i] / (Math.sqrt(v[i]) + eps);
319
+ }
320
+ }
321
+ /**
322
+ * Compute loss (placeholder implementation)
323
+ */
324
+ computeLoss(weights, data, labels) {
325
+ // Placeholder: compute simple L2 norm of weights as proxy for loss
326
+ // Real implementation would compute actual loss on data
327
+ let sum = 0;
328
+ for (const layerWeights of weights.weights.values()) {
329
+ for (let i = 0; i < layerWeights.length; i++) {
330
+ sum += layerWeights[i] * layerWeights[i];
331
+ }
332
+ }
333
+ return Math.sqrt(sum) / 1000; // Normalize
334
+ }
335
+ /**
336
+ * Compute gradient norm
337
+ */
338
+ computeGradientNorm(gradients) {
339
+ let sum = 0;
340
+ for (const grad of gradients.values()) {
341
+ for (let i = 0; i < grad.length; i++) {
342
+ sum += grad[i] * grad[i];
343
+ }
344
+ }
345
+ return Math.sqrt(sum);
346
+ }
347
+ /**
348
+ * Compute deltas between old and new weights
349
+ */
350
+ computeDeltas(oldWeights, newWeights) {
351
+ const deltas = new Map();
352
+ for (const [layerName, newData] of newWeights.weights) {
353
+ const oldData = oldWeights.weights.get(layerName);
354
+ if (!oldData)
355
+ continue;
356
+ const delta = new Float32Array(newData.length);
357
+ for (let i = 0; i < newData.length; i++) {
358
+ delta[i] = newData[i] - oldData[i];
359
+ }
360
+ deltas.set(layerName, delta);
361
+ }
362
+ return deltas;
363
+ }
364
+ // ============================================
365
+ // Update Application
366
+ // ============================================
367
+ /**
368
+ * Apply aggregated model weights
369
+ */
370
+ applyUpdate(newWeights) {
371
+ if (!this.weights) {
372
+ this.setWeights(newWeights);
373
+ return;
374
+ }
375
+ // Check for divergence
376
+ if (this.config.autoRollback && this.checkDivergence(newWeights)) {
377
+ console.warn('Model divergence detected, consider rollback');
378
+ }
379
+ // Save previous weights before update
380
+ this.previousWeights = this.cloneWeights(this.weights);
381
+ // Apply new weights
382
+ this.weights = this.cloneWeights(newWeights);
383
+ this.roundNumber++;
384
+ // Auto-checkpoint if interval reached
385
+ if (this.roundNumber % this.config.checkpointInterval === 0) {
386
+ // Would need session ID and metrics from caller
387
+ }
388
+ }
389
+ /**
390
+ * Apply delta update to current weights
391
+ */
392
+ applyDeltaUpdate(deltas) {
393
+ if (!this.weights) {
394
+ throw new types_1.FederatedError('No model weights set', types_1.FederatedErrorCode.INVALID_UPDATE);
395
+ }
396
+ this.previousWeights = this.cloneWeights(this.weights);
397
+ for (const [layerName, delta] of deltas) {
398
+ const layerWeights = this.weights.weights.get(layerName);
399
+ if (!layerWeights)
400
+ continue;
401
+ for (let i = 0; i < layerWeights.length; i++) {
402
+ layerWeights[i] += delta[i];
403
+ }
404
+ }
405
+ // Update checksum and timestamp
406
+ this.weights.checksum = this.computeChecksum(this.weights.weights);
407
+ this.weights.timestamp = Date.now();
408
+ this.weights.version = this.incrementVersion(this.weights.version);
409
+ this.roundNumber++;
410
+ }
411
+ /**
412
+ * Check if model is diverging
413
+ */
414
+ checkDivergence(newWeights) {
415
+ if (this.trainingHistory.length < 2)
416
+ return false;
417
+ const recentLosses = this.trainingHistory.slice(-5).map((m) => m.finalLoss);
418
+ const avgRecentLoss = recentLosses.reduce((a, b) => a + b, 0) / recentLosses.length;
419
+ const latestLoss = this.trainingHistory[this.trainingHistory.length - 1].finalLoss;
420
+ return latestLoss > avgRecentLoss * this.config.divergenceThreshold;
421
+ }
422
+ // ============================================
423
+ // Checkpointing
424
+ // ============================================
425
+ /**
426
+ * Create a checkpoint of current model state
427
+ */
428
+ checkpoint(sessionId, roundNumber, metrics) {
429
+ if (!this.weights) {
430
+ throw new types_1.FederatedError('No model weights to checkpoint', types_1.FederatedErrorCode.CHECKPOINT_ERROR);
431
+ }
432
+ const checkpointId = `checkpoint-${sessionId}-${roundNumber}`;
433
+ const checkpoint = {
434
+ checkpointId,
435
+ sessionId,
436
+ roundNumber,
437
+ weights: this.cloneWeights(this.weights),
438
+ optimizerState: this.serializeOptimizerState(),
439
+ metrics,
440
+ timestamp: Date.now(),
441
+ size: this.weights.totalBytes,
442
+ };
443
+ // Store checkpoint
444
+ this.checkpoints.set(checkpointId, checkpoint);
445
+ // Prune old checkpoints
446
+ this.pruneCheckpoints();
447
+ return checkpoint;
448
+ }
449
+ /**
450
+ * Restore from checkpoint
451
+ */
452
+ restoreCheckpoint(checkpointId) {
453
+ const checkpoint = this.checkpoints.get(checkpointId);
454
+ if (!checkpoint) {
455
+ throw new types_1.FederatedError(`Checkpoint not found: ${checkpointId}`, types_1.FederatedErrorCode.CHECKPOINT_ERROR);
456
+ }
457
+ this.weights = this.cloneWeights(checkpoint.weights);
458
+ this.previousWeights = null;
459
+ if (checkpoint.optimizerState) {
460
+ this.deserializeOptimizerState(checkpoint.optimizerState);
461
+ }
462
+ this.roundNumber = checkpoint.roundNumber;
463
+ }
464
+ /**
465
+ * Rollback to previous weights
466
+ */
467
+ rollback() {
468
+ if (!this.previousWeights) {
469
+ return false;
470
+ }
471
+ this.weights = this.cloneWeights(this.previousWeights);
472
+ this.previousWeights = null;
473
+ this.roundNumber = Math.max(0, this.roundNumber - 1);
474
+ return true;
475
+ }
476
+ /**
477
+ * Get available checkpoints
478
+ */
479
+ getCheckpoints() {
480
+ return Array.from(this.checkpoints.values()).sort((a, b) => b.roundNumber - a.roundNumber);
481
+ }
482
+ /**
483
+ * Delete a checkpoint
484
+ */
485
+ deleteCheckpoint(checkpointId) {
486
+ return this.checkpoints.delete(checkpointId);
487
+ }
488
+ /**
489
+ * Prune old checkpoints to keep within limit
490
+ */
491
+ pruneCheckpoints() {
492
+ const maxCheckpoints = this.config.maxCheckpoints ?? 5;
493
+ if (this.checkpoints.size <= maxCheckpoints)
494
+ return;
495
+ const sorted = Array.from(this.checkpoints.entries()).sort((a, b) => b[1].roundNumber - a[1].roundNumber);
496
+ for (let i = maxCheckpoints; i < sorted.length; i++) {
497
+ this.checkpoints.delete(sorted[i][0]);
498
+ }
499
+ }
500
+ /**
501
+ * Serialize optimizer state for checkpointing
502
+ */
503
+ serializeOptimizerState() {
504
+ const state = {};
505
+ for (const [name, data] of this.optimizerState.m) {
506
+ state[`m_${name}`] = new Float32Array(data);
507
+ }
508
+ for (const [name, data] of this.optimizerState.v) {
509
+ state[`v_${name}`] = new Float32Array(data);
510
+ }
511
+ return state;
512
+ }
513
+ /**
514
+ * Deserialize optimizer state from checkpoint
515
+ */
516
+ deserializeOptimizerState(state) {
517
+ for (const [key, data] of Object.entries(state)) {
518
+ if (key.startsWith('m_')) {
519
+ const name = key.slice(2);
520
+ this.optimizerState.m.set(name, new Float32Array(data));
521
+ }
522
+ else if (key.startsWith('v_')) {
523
+ const name = key.slice(2);
524
+ this.optimizerState.v.set(name, new Float32Array(data));
525
+ }
526
+ }
527
+ }
528
+ // ============================================
529
+ // Compression
530
+ // ============================================
531
+ /**
532
+ * Compress deltas according to configuration
533
+ */
534
+ compressDeltas(deltas) {
535
+ const compression = this.config.compression;
536
+ let originalSize = 0;
537
+ let compressedSize = 0;
538
+ const compressedDeltas = new Map();
539
+ const sparseIndices = new Map();
540
+ for (const [layerName, delta] of deltas) {
541
+ originalSize += delta.byteLength;
542
+ switch (compression.type) {
543
+ case 'quantization':
544
+ const quantized = this.quantize(delta, compression.quantizationBits ?? 8);
545
+ compressedDeltas.set(layerName, quantized);
546
+ compressedSize += quantized.byteLength;
547
+ break;
548
+ case 'sparsification':
549
+ const { sparse, indices } = this.sparsify(delta, compression.sparsificationRatio ?? 0.1);
550
+ compressedDeltas.set(layerName, sparse);
551
+ sparseIndices.set(layerName, indices);
552
+ compressedSize += sparse.byteLength + indices.byteLength;
553
+ break;
554
+ case 'low_rank':
555
+ // Low-rank approximation would require matrix operations
556
+ // Simplified: just pass through
557
+ compressedDeltas.set(layerName, delta);
558
+ compressedSize += delta.byteLength;
559
+ break;
560
+ default:
561
+ compressedDeltas.set(layerName, delta);
562
+ compressedSize += delta.byteLength;
563
+ }
564
+ }
565
+ return {
566
+ deltas: compressedDeltas,
567
+ info: {
568
+ originalSize,
569
+ compressedSize,
570
+ compressionRatio: originalSize / compressedSize,
571
+ compressionType: compression.type,
572
+ sparseIndices: sparseIndices.size > 0 ? sparseIndices : undefined,
573
+ },
574
+ };
575
+ }
576
+ /**
577
+ * Quantize values to specified bit depth
578
+ */
579
+ quantize(data, bits) {
580
+ // Find min/max for quantization
581
+ let min = Infinity;
582
+ let max = -Infinity;
583
+ for (let i = 0; i < data.length; i++) {
584
+ if (data[i] < min)
585
+ min = data[i];
586
+ if (data[i] > max)
587
+ max = data[i];
588
+ }
589
+ const levels = (1 << bits) - 1;
590
+ const range = max - min || 1;
591
+ const scale = levels / range;
592
+ // Quantize and dequantize
593
+ const quantized = new Float32Array(data.length);
594
+ for (let i = 0; i < data.length; i++) {
595
+ const q = Math.round((data[i] - min) * scale);
596
+ quantized[i] = (q / scale) + min;
597
+ }
598
+ return quantized;
599
+ }
600
+ /**
601
+ * Sparsify by keeping top-k values
602
+ */
603
+ sparsify(data, ratio) {
604
+ const k = Math.max(1, Math.floor(data.length * ratio));
605
+ // Find top-k indices by absolute value
606
+ const indexed = Array.from(data).map((v, i) => ({ value: Math.abs(v), index: i }));
607
+ indexed.sort((a, b) => b.value - a.value);
608
+ const topK = indexed.slice(0, k);
609
+ const indices = new Uint32Array(k);
610
+ const sparse = new Float32Array(k);
611
+ for (let i = 0; i < k; i++) {
612
+ indices[i] = topK[i].index;
613
+ sparse[i] = data[topK[i].index];
614
+ }
615
+ return { sparse, indices };
616
+ }
617
+ // ============================================
618
+ // Utility Methods
619
+ // ============================================
620
+ /**
621
+ * Compute checksum for weights
622
+ */
623
+ computeChecksum(weights) {
624
+ let sum = 0;
625
+ let count = 0;
626
+ for (const layerWeights of weights.values()) {
627
+ for (let i = 0; i < layerWeights.length; i++) {
628
+ sum += layerWeights[i];
629
+ count++;
630
+ }
631
+ }
632
+ return `${count}:${sum.toFixed(6)}`;
633
+ }
634
+ /**
635
+ * Increment version string
636
+ */
637
+ incrementVersion(version) {
638
+ const parts = version.split('.');
639
+ if (parts.length >= 3) {
640
+ parts[2] = String(parseInt(parts[2]) + 1);
641
+ return parts.join('.');
642
+ }
643
+ return `${version}.1`;
644
+ }
645
+ /**
646
+ * Get model architecture
647
+ */
648
+ getArchitecture() {
649
+ return this.config.architecture;
650
+ }
651
+ /**
652
+ * Get current round number
653
+ */
654
+ getRoundNumber() {
655
+ return this.roundNumber;
656
+ }
657
+ /**
658
+ * Get training history
659
+ */
660
+ getTrainingHistory() {
661
+ return [...this.trainingHistory];
662
+ }
663
+ /**
664
+ * Reset optimizer state
665
+ */
666
+ resetOptimizer() {
667
+ for (const m of this.optimizerState.m.values()) {
668
+ m.fill(0);
669
+ }
670
+ for (const v of this.optimizerState.v.values()) {
671
+ v.fill(0);
672
+ }
673
+ this.optimizerState.t = 0;
674
+ }
675
+ /**
676
+ * Clear all state
677
+ */
678
+ reset() {
679
+ this.weights = null;
680
+ this.previousWeights = null;
681
+ this.checkpoints.clear();
682
+ this.trainingHistory = [];
683
+ this.roundNumber = 0;
684
+ this.resetOptimizer();
685
+ }
686
+ }
687
+ exports.ModelManager = ModelManager;
688
+ // ============================================
689
+ // Factory Function
690
+ // ============================================
691
+ /**
692
+ * Create a new model manager
693
+ */
694
+ function createModelManager(config) {
695
+ return new ModelManager(config);
696
+ }
697
+ /**
698
+ * Create a simple model architecture definition
699
+ */
700
+ function createModelArchitecture(modelId, layers) {
701
+ const modelLayers = layers.map((l) => ({
702
+ name: l.name,
703
+ type: l.type,
704
+ shape: l.shape,
705
+ parameterCount: l.shape.reduce((a, b) => a * b, 1),
706
+ dtype: 'float32',
707
+ trainable: l.trainable ?? true,
708
+ }));
709
+ const totalParams = modelLayers.reduce((sum, l) => sum + l.parameterCount, 0);
710
+ const trainableParams = modelLayers
711
+ .filter((l) => l.trainable)
712
+ .reduce((sum, l) => sum + l.parameterCount, 0);
713
+ return {
714
+ modelId,
715
+ name: modelId,
716
+ version: '1.0.0',
717
+ layers: modelLayers,
718
+ totalParameters: totalParams,
719
+ trainableParameters: trainableParams,
720
+ inputShape: layers[0]?.shape ?? [],
721
+ outputShape: layers[layers.length - 1]?.shape ?? [],
722
+ };
723
+ }
724
+ //# sourceMappingURL=ModelManager.js.map