claude-flow 2.0.0-alpha.2 → 2.0.0-alpha.21

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 (1018) hide show
  1. package/.claude/settings.json +30 -110
  2. package/README.md +301 -605
  3. package/bin/claude-flow +26 -2
  4. package/cli.mjs +2 -19
  5. package/package.json +3 -2
  6. package/scripts/claude-flow-wrapper.sh +35 -0
  7. package/src/cli/cli-core.ts +1 -1
  8. package/src/cli/command-registry.js +1 -1
  9. package/src/cli/commands/hook-types.ts +126 -0
  10. package/src/cli/commands/hook-validator.ts +191 -0
  11. package/src/cli/commands/hook.ts +346 -0
  12. package/src/cli/commands/index.ts +37 -0
  13. package/src/cli/commands/start/start-command.ts +3 -3
  14. package/src/cli/commands/swarm-new.ts +763 -353
  15. package/src/cli/commands/swarm-spawn.ts +8 -13
  16. package/src/cli/commands/swarm.ts +1 -1
  17. package/src/cli/commands/task.ts +51 -7
  18. package/src/cli/commands/workflow.ts +746 -10
  19. package/src/cli/index-remote.ts +1 -1
  20. package/src/cli/index.ts +35 -29
  21. package/src/cli/node-compat.js +2 -71
  22. package/src/cli/node-repl.ts +3 -5
  23. package/src/cli/repl.ts +33 -57
  24. package/src/cli/simple-cli.ts +27 -85
  25. package/src/cli/simple-commands/hive-mind/core.js +3 -1
  26. package/src/cli/simple-commands/hive-mind/mcp-wrapper.js +4 -1
  27. package/src/cli/simple-commands/hive-mind/memory.js +19 -5
  28. package/src/cli/simple-commands/hive-mind.js +390 -636
  29. package/src/cli/simple-commands/init/executable-wrapper.js +8 -5
  30. package/src/cli/simple-commands/init/help.js +6 -2
  31. package/src/cli/simple-commands/init/index.js +201 -168
  32. package/src/cli/simple-commands/init/templates/claude-flow-universal +78 -0
  33. package/src/cli/simple-commands/init/templates/commands/hooks/notification.md +102 -0
  34. package/src/cli/simple-commands/init/templates/commands/hooks/post-command.md +105 -0
  35. package/src/cli/simple-commands/init/templates/commands/hooks/post-edit.md +106 -0
  36. package/src/cli/simple-commands/init/templates/commands/hooks/post-task.md +101 -0
  37. package/src/cli/simple-commands/init/templates/commands/hooks/pre-command.md +102 -0
  38. package/src/cli/simple-commands/init/templates/commands/hooks/pre-edit.md +102 -0
  39. package/src/cli/simple-commands/init/templates/commands/hooks/pre-search.md +105 -0
  40. package/src/cli/simple-commands/init/templates/commands/hooks/pre-task.md +8 -8
  41. package/src/cli/simple-commands/init/templates/commands/hooks/session-end.md +107 -0
  42. package/src/cli/simple-commands/init/templates/commands/hooks/session-restore.md +110 -0
  43. package/src/cli/simple-commands/init/templates/commands/hooks/session-start.md +106 -0
  44. package/src/cli/simple-commands/init/templates/enhanced-templates.js +170 -222
  45. package/src/cli/simple-commands/init/templates/settings.json +30 -110
  46. package/src/cli/simple-commands/swarm.js +9 -6
  47. package/src/cli/ui/compatible-ui.ts +1 -14
  48. package/src/cli/ui/fallback-handler.ts +2 -2
  49. package/src/cli/utils/environment-detector.ts +6 -6
  50. package/src/cli/utils/interactive-detector.js +126 -0
  51. package/src/communication/message-bus.ts +7 -3
  52. package/src/coordination/advanced-task-executor.ts +11 -8
  53. package/src/coordination/load-balancer.ts +19 -33
  54. package/src/coordination/work-stealing.ts +1 -1
  55. package/src/core/event-bus.ts +2 -2
  56. package/src/core/logger.ts +1 -1
  57. package/src/hive-mind/core/Agent.ts +2 -3
  58. package/src/hive-mind/core/Communication.ts +3 -16
  59. package/src/hive-mind/core/DatabaseManager.ts +3 -18
  60. package/src/hive-mind/core/HiveMind.ts +6 -8
  61. package/src/hive-mind/core/Memory.ts +35 -29
  62. package/src/hive-mind/integration/ConsensusEngine.ts +19 -4
  63. package/src/hive-mind/integration/MCPToolWrapper.ts +2 -1
  64. package/src/hive-mind/integration/SwarmOrchestrator.ts +4 -7
  65. package/src/integration/mock-components.ts +8 -8
  66. package/src/integration/system-integration.ts +20 -33
  67. package/src/mcp/index.ts +17 -20
  68. package/src/mcp/ruv-swarm-tools.ts +2 -12
  69. package/src/swarm/coordinator.ts +46 -97
  70. package/src/swarm/executor-v2.ts +18 -23
  71. package/src/swarm/executor.ts +9 -9
  72. package/src/swarm/optimizations/optimized-executor.ts +26 -79
  73. package/src/swarm/prompt-copier-enhanced.ts +9 -27
  74. package/src/swarm/prompt-copier.ts +12 -13
  75. package/src/swarm/types.ts +1 -7
  76. package/src/utils/error-handler.ts +6 -23
  77. package/src/utils/type-guards.ts +188 -0
  78. package/.claude/commands/analysis/README.md +0 -9
  79. package/.claude/commands/analysis/bottleneck-detect.md +0 -150
  80. package/.claude/commands/analysis/performance-report.md +0 -25
  81. package/.claude/commands/analysis/token-usage.md +0 -25
  82. package/.claude/commands/automation/README.md +0 -9
  83. package/.claude/commands/automation/auto-agent.md +0 -112
  84. package/.claude/commands/automation/smart-spawn.md +0 -25
  85. package/.claude/commands/automation/workflow-select.md +0 -25
  86. package/.claude/commands/coordination/README.md +0 -9
  87. package/.claude/commands/coordination/agent-spawn.md +0 -25
  88. package/.claude/commands/coordination/swarm-init.md +0 -76
  89. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  90. package/.claude/commands/github/README.md +0 -11
  91. package/.claude/commands/github/code-review.md +0 -25
  92. package/.claude/commands/github/github-swarm.md +0 -108
  93. package/.claude/commands/github/issue-tracker-enhanced.md +0 -358
  94. package/.claude/commands/github/issue-triage.md +0 -25
  95. package/.claude/commands/github/pr-enhance.md +0 -26
  96. package/.claude/commands/github/repo-analyze.md +0 -25
  97. package/.claude/commands/hooks/README.md +0 -11
  98. package/.claude/commands/hooks/post-edit.md +0 -25
  99. package/.claude/commands/hooks/post-task.md +0 -25
  100. package/.claude/commands/hooks/pre-edit.md +0 -25
  101. package/.claude/commands/hooks/pre-task.md +0 -100
  102. package/.claude/commands/hooks/session-end.md +0 -25
  103. package/.claude/commands/hooks-overview.md +0 -245
  104. package/.claude/commands/memory/README.md +0 -9
  105. package/.claude/commands/memory/memory-persist.md +0 -25
  106. package/.claude/commands/memory/memory-search.md +0 -25
  107. package/.claude/commands/memory/memory-usage.md +0 -25
  108. package/.claude/commands/monitoring/README.md +0 -9
  109. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  110. package/.claude/commands/monitoring/real-time-view.md +0 -25
  111. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  112. package/.claude/commands/optimization/README.md +0 -9
  113. package/.claude/commands/optimization/cache-manage.md +0 -25
  114. package/.claude/commands/optimization/parallel-execute.md +0 -25
  115. package/.claude/commands/optimization/topology-optimize.md +0 -25
  116. package/.claude/commands/training/README.md +0 -9
  117. package/.claude/commands/training/model-update.md +0 -25
  118. package/.claude/commands/training/neural-train.md +0 -25
  119. package/.claude/commands/training/pattern-learn.md +0 -25
  120. package/.claude/commands/workflows/README.md +0 -9
  121. package/.claude/commands/workflows/workflow-create.md +0 -25
  122. package/.claude/commands/workflows/workflow-execute.md +0 -25
  123. package/.claude/commands/workflows/workflow-export.md +0 -25
  124. package/.claude/helpers/github-setup.sh +0 -28
  125. package/.claude/helpers/quick-start.sh +0 -19
  126. package/.claude/helpers/setup-mcp.sh +0 -18
  127. package/dist/adapters/cliffy-node.d.ts +0 -45
  128. package/dist/adapters/cliffy-node.d.ts.map +0 -1
  129. package/dist/adapters/cliffy-node.js +0 -61
  130. package/dist/adapters/cliffy-node.js.map +0 -1
  131. package/dist/agents/agent-manager.d.ts +0 -191
  132. package/dist/agents/agent-manager.d.ts.map +0 -1
  133. package/dist/agents/agent-manager.js +0 -969
  134. package/dist/agents/agent-manager.js.map +0 -1
  135. package/dist/agents/agent-registry.d.ts +0 -112
  136. package/dist/agents/agent-registry.d.ts.map +0 -1
  137. package/dist/agents/agent-registry.js +0 -341
  138. package/dist/agents/agent-registry.js.map +0 -1
  139. package/dist/cli/agents/analyst.d.ts +0 -28
  140. package/dist/cli/agents/analyst.d.ts.map +0 -1
  141. package/dist/cli/agents/analyst.js +0 -718
  142. package/dist/cli/agents/analyst.js.map +0 -1
  143. package/dist/cli/agents/architect.d.ts +0 -27
  144. package/dist/cli/agents/architect.d.ts.map +0 -1
  145. package/dist/cli/agents/architect.js +0 -729
  146. package/dist/cli/agents/architect.js.map +0 -1
  147. package/dist/cli/agents/base-agent.d.ts +0 -80
  148. package/dist/cli/agents/base-agent.d.ts.map +0 -1
  149. package/dist/cli/agents/base-agent.js +0 -385
  150. package/dist/cli/agents/base-agent.js.map +0 -1
  151. package/dist/cli/agents/capabilities.d.ts +0 -106
  152. package/dist/cli/agents/capabilities.d.ts.map +0 -1
  153. package/dist/cli/agents/capabilities.js +0 -556
  154. package/dist/cli/agents/capabilities.js.map +0 -1
  155. package/dist/cli/agents/coder.d.ts +0 -34
  156. package/dist/cli/agents/coder.d.ts.map +0 -1
  157. package/dist/cli/agents/coder.js +0 -806
  158. package/dist/cli/agents/coder.js.map +0 -1
  159. package/dist/cli/agents/coordinator.d.ts +0 -25
  160. package/dist/cli/agents/coordinator.d.ts.map +0 -1
  161. package/dist/cli/agents/coordinator.js +0 -454
  162. package/dist/cli/agents/coordinator.js.map +0 -1
  163. package/dist/cli/agents/hive-agents.d.ts +0 -85
  164. package/dist/cli/agents/hive-agents.d.ts.map +0 -1
  165. package/dist/cli/agents/hive-agents.js +0 -549
  166. package/dist/cli/agents/hive-agents.js.map +0 -1
  167. package/dist/cli/agents/index.d.ts +0 -111
  168. package/dist/cli/agents/index.d.ts.map +0 -1
  169. package/dist/cli/agents/index.js +0 -276
  170. package/dist/cli/agents/index.js.map +0 -1
  171. package/dist/cli/agents/researcher.d.ts +0 -24
  172. package/dist/cli/agents/researcher.d.ts.map +0 -1
  173. package/dist/cli/agents/researcher.js +0 -356
  174. package/dist/cli/agents/researcher.js.map +0 -1
  175. package/dist/cli/agents/tester.d.ts +0 -27
  176. package/dist/cli/agents/tester.d.ts.map +0 -1
  177. package/dist/cli/agents/tester.js +0 -594
  178. package/dist/cli/agents/tester.js.map +0 -1
  179. package/dist/cli/cli-core.d.ts +0 -49
  180. package/dist/cli/cli-core.d.ts.map +0 -1
  181. package/dist/cli/cli-core.js +0 -263
  182. package/dist/cli/cli-core.js.map +0 -1
  183. package/dist/cli/commands/advanced-memory-commands.d.ts +0 -2
  184. package/dist/cli/commands/advanced-memory-commands.d.ts.map +0 -1
  185. package/dist/cli/commands/advanced-memory-commands.js +0 -849
  186. package/dist/cli/commands/advanced-memory-commands.js.map +0 -1
  187. package/dist/cli/commands/agent-simple.d.ts +0 -12
  188. package/dist/cli/commands/agent-simple.d.ts.map +0 -1
  189. package/dist/cli/commands/agent-simple.js +0 -353
  190. package/dist/cli/commands/agent-simple.js.map +0 -1
  191. package/dist/cli/commands/agent.d.ts +0 -7
  192. package/dist/cli/commands/agent.d.ts.map +0 -1
  193. package/dist/cli/commands/agent.js +0 -369
  194. package/dist/cli/commands/agent.js.map +0 -1
  195. package/dist/cli/commands/claude.d.ts +0 -3
  196. package/dist/cli/commands/claude.d.ts.map +0 -1
  197. package/dist/cli/commands/claude.js +0 -154
  198. package/dist/cli/commands/claude.js.map +0 -1
  199. package/dist/cli/commands/config-integration.d.ts +0 -10
  200. package/dist/cli/commands/config-integration.d.ts.map +0 -1
  201. package/dist/cli/commands/config-integration.js +0 -416
  202. package/dist/cli/commands/config-integration.js.map +0 -1
  203. package/dist/cli/commands/config.d.ts +0 -5
  204. package/dist/cli/commands/config.d.ts.map +0 -1
  205. package/dist/cli/commands/config.js +0 -89
  206. package/dist/cli/commands/config.js.map +0 -1
  207. package/dist/cli/commands/enterprise.d.ts +0 -3
  208. package/dist/cli/commands/enterprise.d.ts.map +0 -1
  209. package/dist/cli/commands/enterprise.js +0 -1486
  210. package/dist/cli/commands/enterprise.js.map +0 -1
  211. package/dist/cli/commands/help.d.ts +0 -6
  212. package/dist/cli/commands/help.d.ts.map +0 -1
  213. package/dist/cli/commands/help.js +0 -786
  214. package/dist/cli/commands/help.js.map +0 -1
  215. package/dist/cli/commands/hive-mind/index.d.ts +0 -15
  216. package/dist/cli/commands/hive-mind/index.d.ts.map +0 -1
  217. package/dist/cli/commands/hive-mind/index.js +0 -22
  218. package/dist/cli/commands/hive-mind/index.js.map +0 -1
  219. package/dist/cli/commands/hive-mind/init.d.ts +0 -10
  220. package/dist/cli/commands/hive-mind/init.d.ts.map +0 -1
  221. package/dist/cli/commands/hive-mind/init.js +0 -68
  222. package/dist/cli/commands/hive-mind/init.js.map +0 -1
  223. package/dist/cli/commands/hive-mind/optimize-memory.d.ts +0 -8
  224. package/dist/cli/commands/hive-mind/optimize-memory.d.ts.map +0 -1
  225. package/dist/cli/commands/hive-mind/optimize-memory.js +0 -391
  226. package/dist/cli/commands/hive-mind/optimize-memory.js.map +0 -1
  227. package/dist/cli/commands/hive-mind/spawn.d.ts +0 -10
  228. package/dist/cli/commands/hive-mind/spawn.d.ts.map +0 -1
  229. package/dist/cli/commands/hive-mind/spawn.js +0 -147
  230. package/dist/cli/commands/hive-mind/spawn.js.map +0 -1
  231. package/dist/cli/commands/hive-mind/status.d.ts +0 -10
  232. package/dist/cli/commands/hive-mind/status.d.ts.map +0 -1
  233. package/dist/cli/commands/hive-mind/status.js +0 -209
  234. package/dist/cli/commands/hive-mind/status.js.map +0 -1
  235. package/dist/cli/commands/hive-mind/task.d.ts +0 -10
  236. package/dist/cli/commands/hive-mind/task.d.ts.map +0 -1
  237. package/dist/cli/commands/hive-mind/task.js +0 -288
  238. package/dist/cli/commands/hive-mind/task.js.map +0 -1
  239. package/dist/cli/commands/hive-mind/wizard.d.ts +0 -10
  240. package/dist/cli/commands/hive-mind/wizard.d.ts.map +0 -1
  241. package/dist/cli/commands/hive-mind/wizard.js +0 -513
  242. package/dist/cli/commands/hive-mind/wizard.js.map +0 -1
  243. package/dist/cli/commands/hive.d.ts +0 -6
  244. package/dist/cli/commands/hive.d.ts.map +0 -1
  245. package/dist/cli/commands/hive.js +0 -374
  246. package/dist/cli/commands/hive.js.map +0 -1
  247. package/dist/cli/commands/index.d.ts +0 -3
  248. package/dist/cli/commands/index.d.ts.map +0 -1
  249. package/dist/cli/commands/index.js +0 -2416
  250. package/dist/cli/commands/index.js.map +0 -1
  251. package/dist/cli/commands/mcp.d.ts +0 -6
  252. package/dist/cli/commands/mcp.d.ts.map +0 -1
  253. package/dist/cli/commands/mcp.js +0 -177
  254. package/dist/cli/commands/mcp.js.map +0 -1
  255. package/dist/cli/commands/memory.d.ts +0 -30
  256. package/dist/cli/commands/memory.d.ts.map +0 -1
  257. package/dist/cli/commands/memory.js +0 -225
  258. package/dist/cli/commands/memory.js.map +0 -1
  259. package/dist/cli/commands/migrate.d.ts +0 -6
  260. package/dist/cli/commands/migrate.d.ts.map +0 -1
  261. package/dist/cli/commands/migrate.js +0 -139
  262. package/dist/cli/commands/migrate.js.map +0 -1
  263. package/dist/cli/commands/monitor.d.ts +0 -6
  264. package/dist/cli/commands/monitor.d.ts.map +0 -1
  265. package/dist/cli/commands/monitor.js +0 -477
  266. package/dist/cli/commands/monitor.js.map +0 -1
  267. package/dist/cli/commands/ruv-swarm.d.ts +0 -10
  268. package/dist/cli/commands/ruv-swarm.d.ts.map +0 -1
  269. package/dist/cli/commands/ruv-swarm.js +0 -563
  270. package/dist/cli/commands/ruv-swarm.js.map +0 -1
  271. package/dist/cli/commands/session.d.ts +0 -6
  272. package/dist/cli/commands/session.d.ts.map +0 -1
  273. package/dist/cli/commands/session.js +0 -543
  274. package/dist/cli/commands/session.js.map +0 -1
  275. package/dist/cli/commands/sparc.d.ts +0 -3
  276. package/dist/cli/commands/sparc.d.ts.map +0 -1
  277. package/dist/cli/commands/sparc.js +0 -452
  278. package/dist/cli/commands/sparc.js.map +0 -1
  279. package/dist/cli/commands/start/event-emitter.d.ts +0 -13
  280. package/dist/cli/commands/start/event-emitter.d.ts.map +0 -1
  281. package/dist/cli/commands/start/event-emitter.js +0 -35
  282. package/dist/cli/commands/start/event-emitter.js.map +0 -1
  283. package/dist/cli/commands/start/index.d.ts +0 -10
  284. package/dist/cli/commands/start/index.d.ts.map +0 -1
  285. package/dist/cli/commands/start/index.js +0 -9
  286. package/dist/cli/commands/start/index.js.map +0 -1
  287. package/dist/cli/commands/start/process-manager.d.ts +0 -31
  288. package/dist/cli/commands/start/process-manager.d.ts.map +0 -1
  289. package/dist/cli/commands/start/process-manager.js +0 -281
  290. package/dist/cli/commands/start/process-manager.js.map +0 -1
  291. package/dist/cli/commands/start/process-ui-simple.d.ts +0 -25
  292. package/dist/cli/commands/start/process-ui-simple.d.ts.map +0 -1
  293. package/dist/cli/commands/start/process-ui-simple.js +0 -334
  294. package/dist/cli/commands/start/process-ui-simple.js.map +0 -1
  295. package/dist/cli/commands/start/process-ui.d.ts +0 -5
  296. package/dist/cli/commands/start/process-ui.d.ts.map +0 -1
  297. package/dist/cli/commands/start/process-ui.js +0 -5
  298. package/dist/cli/commands/start/process-ui.js.map +0 -1
  299. package/dist/cli/commands/start/start-command.d.ts +0 -6
  300. package/dist/cli/commands/start/start-command.d.ts.map +0 -1
  301. package/dist/cli/commands/start/start-command.js +0 -450
  302. package/dist/cli/commands/start/start-command.js.map +0 -1
  303. package/dist/cli/commands/start/system-monitor.d.ts +0 -22
  304. package/dist/cli/commands/start/system-monitor.d.ts.map +0 -1
  305. package/dist/cli/commands/start/system-monitor.js +0 -267
  306. package/dist/cli/commands/start/system-monitor.js.map +0 -1
  307. package/dist/cli/commands/start/types.d.ts +0 -64
  308. package/dist/cli/commands/start/types.d.ts.map +0 -1
  309. package/dist/cli/commands/start/types.js +0 -22
  310. package/dist/cli/commands/start/types.js.map +0 -1
  311. package/dist/cli/commands/start.d.ts +0 -6
  312. package/dist/cli/commands/start.d.ts.map +0 -1
  313. package/dist/cli/commands/start.js +0 -6
  314. package/dist/cli/commands/start.js.map +0 -1
  315. package/dist/cli/commands/status.d.ts +0 -6
  316. package/dist/cli/commands/status.d.ts.map +0 -1
  317. package/dist/cli/commands/status.js +0 -312
  318. package/dist/cli/commands/status.js.map +0 -1
  319. package/dist/cli/commands/swarm-new.d.ts +0 -3
  320. package/dist/cli/commands/swarm-new.d.ts.map +0 -1
  321. package/dist/cli/commands/swarm-new.js +0 -989
  322. package/dist/cli/commands/swarm-new.js.map +0 -1
  323. package/dist/cli/commands/swarm-spawn.d.ts +0 -24
  324. package/dist/cli/commands/swarm-spawn.d.ts.map +0 -1
  325. package/dist/cli/commands/swarm-spawn.js +0 -61
  326. package/dist/cli/commands/swarm-spawn.js.map +0 -1
  327. package/dist/cli/commands/swarm.d.ts +0 -3
  328. package/dist/cli/commands/swarm.d.ts.map +0 -1
  329. package/dist/cli/commands/swarm.js +0 -460
  330. package/dist/cli/commands/swarm.js.map +0 -1
  331. package/dist/cli/commands/task.d.ts +0 -3
  332. package/dist/cli/commands/task.d.ts.map +0 -1
  333. package/dist/cli/commands/task.js +0 -29
  334. package/dist/cli/commands/task.js.map +0 -1
  335. package/dist/cli/commands/workflow.d.ts +0 -3
  336. package/dist/cli/commands/workflow.d.ts.map +0 -1
  337. package/dist/cli/commands/workflow.js +0 -23
  338. package/dist/cli/commands/workflow.js.map +0 -1
  339. package/dist/cli/completion.d.ts +0 -16
  340. package/dist/cli/completion.d.ts.map +0 -1
  341. package/dist/cli/completion.js +0 -535
  342. package/dist/cli/completion.js.map +0 -1
  343. package/dist/cli/formatter.d.ts +0 -66
  344. package/dist/cli/formatter.d.ts.map +0 -1
  345. package/dist/cli/formatter.js +0 -277
  346. package/dist/cli/formatter.js.map +0 -1
  347. package/dist/cli/index-remote.d.ts +0 -3
  348. package/dist/cli/index-remote.d.ts.map +0 -1
  349. package/dist/cli/index-remote.js +0 -126
  350. package/dist/cli/index-remote.js.map +0 -1
  351. package/dist/cli/index.d.ts +0 -7
  352. package/dist/cli/index.d.ts.map +0 -1
  353. package/dist/cli/index.js +0 -197
  354. package/dist/cli/index.js.map +0 -1
  355. package/dist/cli/init/batch-tools.d.ts +0 -2
  356. package/dist/cli/init/batch-tools.d.ts.map +0 -1
  357. package/dist/cli/init/batch-tools.js +0 -387
  358. package/dist/cli/init/batch-tools.js.map +0 -1
  359. package/dist/cli/init/claude-config.d.ts +0 -3
  360. package/dist/cli/init/claude-config.d.ts.map +0 -1
  361. package/dist/cli/init/claude-config.js +0 -289
  362. package/dist/cli/init/claude-config.js.map +0 -1
  363. package/dist/cli/init/directory-structure.d.ts +0 -2
  364. package/dist/cli/init/directory-structure.d.ts.map +0 -1
  365. package/dist/cli/init/directory-structure.js +0 -144
  366. package/dist/cli/init/directory-structure.js.map +0 -1
  367. package/dist/cli/init/index.d.ts +0 -6
  368. package/dist/cli/init/index.d.ts.map +0 -1
  369. package/dist/cli/init/index.js +0 -52
  370. package/dist/cli/init/index.js.map +0 -1
  371. package/dist/cli/init/sparc-environment.d.ts +0 -2
  372. package/dist/cli/init/sparc-environment.d.ts.map +0 -1
  373. package/dist/cli/init/sparc-environment.js +0 -426
  374. package/dist/cli/init/sparc-environment.js.map +0 -1
  375. package/dist/cli/init/swarm-commands.d.ts +0 -2
  376. package/dist/cli/init/swarm-commands.d.ts.map +0 -1
  377. package/dist/cli/init/swarm-commands.js +0 -795
  378. package/dist/cli/init/swarm-commands.js.map +0 -1
  379. package/dist/cli/init/utils.d.ts +0 -5
  380. package/dist/cli/init/utils.d.ts.map +0 -1
  381. package/dist/cli/init/utils.js +0 -14
  382. package/dist/cli/init/utils.js.map +0 -1
  383. package/dist/cli/main.d.ts +0 -3
  384. package/dist/cli/main.d.ts.map +0 -1
  385. package/dist/cli/main.js +0 -26
  386. package/dist/cli/main.js.map +0 -1
  387. package/dist/cli/node-repl.d.ts +0 -5
  388. package/dist/cli/node-repl.d.ts.map +0 -1
  389. package/dist/cli/node-repl.js +0 -677
  390. package/dist/cli/node-repl.js.map +0 -1
  391. package/dist/cli/repl.d.ts +0 -5
  392. package/dist/cli/repl.d.ts.map +0 -1
  393. package/dist/cli/repl.js +0 -909
  394. package/dist/cli/repl.js.map +0 -1
  395. package/dist/cli/simple-cli.d.ts +0 -3
  396. package/dist/cli/simple-cli.d.ts.map +0 -1
  397. package/dist/cli/simple-cli.js +0 -3059
  398. package/dist/cli/simple-cli.js.map +0 -1
  399. package/dist/cli/simple-mcp.d.ts +0 -6
  400. package/dist/cli/simple-mcp.d.ts.map +0 -1
  401. package/dist/cli/simple-mcp.js +0 -107
  402. package/dist/cli/simple-mcp.js.map +0 -1
  403. package/dist/cli/simple-orchestrator.d.ts +0 -16
  404. package/dist/cli/simple-orchestrator.d.ts.map +0 -1
  405. package/dist/cli/simple-orchestrator.js +0 -833
  406. package/dist/cli/simple-orchestrator.js.map +0 -1
  407. package/dist/cli/ui/compatible-ui.d.ts +0 -45
  408. package/dist/cli/ui/compatible-ui.d.ts.map +0 -1
  409. package/dist/cli/ui/compatible-ui.js +0 -318
  410. package/dist/cli/ui/compatible-ui.js.map +0 -1
  411. package/dist/cli/ui/fallback-handler.d.ts +0 -26
  412. package/dist/cli/ui/fallback-handler.d.ts.map +0 -1
  413. package/dist/cli/ui/fallback-handler.js +0 -163
  414. package/dist/cli/ui/fallback-handler.js.map +0 -1
  415. package/dist/cli/ui/index.d.ts +0 -11
  416. package/dist/cli/ui/index.d.ts.map +0 -1
  417. package/dist/cli/ui/index.js +0 -33
  418. package/dist/cli/ui/index.js.map +0 -1
  419. package/dist/cli/utils/environment-detector.d.ts +0 -52
  420. package/dist/cli/utils/environment-detector.d.ts.map +0 -1
  421. package/dist/cli/utils/environment-detector.js +0 -238
  422. package/dist/cli/utils/environment-detector.js.map +0 -1
  423. package/dist/cli/utils/prompt-defaults.d.ts +0 -82
  424. package/dist/cli/utils/prompt-defaults.d.ts.map +0 -1
  425. package/dist/cli/utils/prompt-defaults.js +0 -253
  426. package/dist/cli/utils/prompt-defaults.js.map +0 -1
  427. package/dist/communication/message-bus.d.ts +0 -283
  428. package/dist/communication/message-bus.d.ts.map +0 -1
  429. package/dist/communication/message-bus.js +0 -954
  430. package/dist/communication/message-bus.js.map +0 -1
  431. package/dist/config/config-manager.d.ts +0 -174
  432. package/dist/config/config-manager.d.ts.map +0 -1
  433. package/dist/config/config-manager.js +0 -443
  434. package/dist/config/config-manager.js.map +0 -1
  435. package/dist/config/ruv-swarm-config.d.ts +0 -167
  436. package/dist/config/ruv-swarm-config.d.ts.map +0 -1
  437. package/dist/config/ruv-swarm-config.js +0 -274
  438. package/dist/config/ruv-swarm-config.js.map +0 -1
  439. package/dist/config/ruv-swarm-integration.d.ts +0 -93
  440. package/dist/config/ruv-swarm-integration.d.ts.map +0 -1
  441. package/dist/config/ruv-swarm-integration.js +0 -292
  442. package/dist/config/ruv-swarm-integration.js.map +0 -1
  443. package/dist/constants/agent-types.d.ts +0 -46
  444. package/dist/constants/agent-types.d.ts.map +0 -1
  445. package/dist/constants/agent-types.js +0 -50
  446. package/dist/constants/agent-types.js.map +0 -1
  447. package/dist/coordination/advanced-scheduler.d.ts +0 -121
  448. package/dist/coordination/advanced-scheduler.d.ts.map +0 -1
  449. package/dist/coordination/advanced-scheduler.js +0 -386
  450. package/dist/coordination/advanced-scheduler.js.map +0 -1
  451. package/dist/coordination/advanced-task-executor.d.ts +0 -100
  452. package/dist/coordination/advanced-task-executor.d.ts.map +0 -1
  453. package/dist/coordination/advanced-task-executor.js +0 -459
  454. package/dist/coordination/advanced-task-executor.js.map +0 -1
  455. package/dist/coordination/background-executor.d.ts +0 -69
  456. package/dist/coordination/background-executor.d.ts.map +0 -1
  457. package/dist/coordination/background-executor.js +0 -362
  458. package/dist/coordination/background-executor.js.map +0 -1
  459. package/dist/coordination/circuit-breaker.d.ts +0 -124
  460. package/dist/coordination/circuit-breaker.d.ts.map +0 -1
  461. package/dist/coordination/circuit-breaker.js +0 -298
  462. package/dist/coordination/circuit-breaker.js.map +0 -1
  463. package/dist/coordination/conflict-resolution.d.ts +0 -133
  464. package/dist/coordination/conflict-resolution.d.ts.map +0 -1
  465. package/dist/coordination/conflict-resolution.js +0 -358
  466. package/dist/coordination/conflict-resolution.js.map +0 -1
  467. package/dist/coordination/dependency-graph.d.ts +0 -78
  468. package/dist/coordination/dependency-graph.d.ts.map +0 -1
  469. package/dist/coordination/dependency-graph.js +0 -386
  470. package/dist/coordination/dependency-graph.js.map +0 -1
  471. package/dist/coordination/hive-orchestrator.d.ts +0 -118
  472. package/dist/coordination/hive-orchestrator.d.ts.map +0 -1
  473. package/dist/coordination/hive-orchestrator.js +0 -321
  474. package/dist/coordination/hive-orchestrator.js.map +0 -1
  475. package/dist/coordination/hive-protocol.d.ts +0 -117
  476. package/dist/coordination/hive-protocol.d.ts.map +0 -1
  477. package/dist/coordination/hive-protocol.js +0 -373
  478. package/dist/coordination/hive-protocol.js.map +0 -1
  479. package/dist/coordination/index.d.ts +0 -14
  480. package/dist/coordination/index.d.ts.map +0 -1
  481. package/dist/coordination/index.js +0 -21
  482. package/dist/coordination/index.js.map +0 -1
  483. package/dist/coordination/load-balancer.d.ts +0 -139
  484. package/dist/coordination/load-balancer.d.ts.map +0 -1
  485. package/dist/coordination/load-balancer.js +0 -691
  486. package/dist/coordination/load-balancer.js.map +0 -1
  487. package/dist/coordination/manager.d.ts +0 -66
  488. package/dist/coordination/manager.d.ts.map +0 -1
  489. package/dist/coordination/manager.js +0 -360
  490. package/dist/coordination/manager.js.map +0 -1
  491. package/dist/coordination/messaging.d.ts +0 -37
  492. package/dist/coordination/messaging.d.ts.map +0 -1
  493. package/dist/coordination/messaging.js +0 -219
  494. package/dist/coordination/messaging.js.map +0 -1
  495. package/dist/coordination/metrics.d.ts +0 -153
  496. package/dist/coordination/metrics.d.ts.map +0 -1
  497. package/dist/coordination/metrics.js +0 -434
  498. package/dist/coordination/metrics.js.map +0 -1
  499. package/dist/coordination/resources.d.ts +0 -36
  500. package/dist/coordination/resources.d.ts.map +0 -1
  501. package/dist/coordination/resources.js +0 -250
  502. package/dist/coordination/resources.js.map +0 -1
  503. package/dist/coordination/scheduler.d.ts +0 -48
  504. package/dist/coordination/scheduler.d.ts.map +0 -1
  505. package/dist/coordination/scheduler.js +0 -308
  506. package/dist/coordination/scheduler.js.map +0 -1
  507. package/dist/coordination/swarm-coordinator.d.ts +0 -116
  508. package/dist/coordination/swarm-coordinator.d.ts.map +0 -1
  509. package/dist/coordination/swarm-coordinator.js +0 -565
  510. package/dist/coordination/swarm-coordinator.js.map +0 -1
  511. package/dist/coordination/swarm-monitor.d.ts +0 -101
  512. package/dist/coordination/swarm-monitor.d.ts.map +0 -1
  513. package/dist/coordination/swarm-monitor.js +0 -340
  514. package/dist/coordination/swarm-monitor.js.map +0 -1
  515. package/dist/coordination/work-stealing.d.ts +0 -44
  516. package/dist/coordination/work-stealing.d.ts.map +0 -1
  517. package/dist/coordination/work-stealing.js +0 -155
  518. package/dist/coordination/work-stealing.js.map +0 -1
  519. package/dist/core/config.d.ts +0 -239
  520. package/dist/core/config.d.ts.map +0 -1
  521. package/dist/core/config.js +0 -1128
  522. package/dist/core/config.js.map +0 -1
  523. package/dist/core/event-bus.d.ts +0 -60
  524. package/dist/core/event-bus.d.ts.map +0 -1
  525. package/dist/core/event-bus.js +0 -153
  526. package/dist/core/event-bus.js.map +0 -1
  527. package/dist/core/json-persistence.d.ts +0 -52
  528. package/dist/core/json-persistence.d.ts.map +0 -1
  529. package/dist/core/json-persistence.js +0 -115
  530. package/dist/core/json-persistence.js.map +0 -1
  531. package/dist/core/logger.d.ts +0 -57
  532. package/dist/core/logger.d.ts.map +0 -1
  533. package/dist/core/logger.js +0 -253
  534. package/dist/core/logger.js.map +0 -1
  535. package/dist/core/orchestrator-fixed.d.ts +0 -81
  536. package/dist/core/orchestrator-fixed.d.ts.map +0 -1
  537. package/dist/core/orchestrator-fixed.js +0 -210
  538. package/dist/core/orchestrator-fixed.js.map +0 -1
  539. package/dist/core/orchestrator.d.ts +0 -103
  540. package/dist/core/orchestrator.d.ts.map +0 -1
  541. package/dist/core/orchestrator.js +0 -965
  542. package/dist/core/orchestrator.js.map +0 -1
  543. package/dist/core/persistence.d.ts +0 -50
  544. package/dist/core/persistence.d.ts.map +0 -1
  545. package/dist/core/persistence.js +0 -186
  546. package/dist/core/persistence.js.map +0 -1
  547. package/dist/enterprise/analytics-manager.d.ts +0 -489
  548. package/dist/enterprise/analytics-manager.d.ts.map +0 -1
  549. package/dist/enterprise/analytics-manager.js +0 -949
  550. package/dist/enterprise/analytics-manager.js.map +0 -1
  551. package/dist/enterprise/audit-manager.d.ts +0 -459
  552. package/dist/enterprise/audit-manager.d.ts.map +0 -1
  553. package/dist/enterprise/audit-manager.js +0 -992
  554. package/dist/enterprise/audit-manager.js.map +0 -1
  555. package/dist/enterprise/cloud-manager.d.ts +0 -435
  556. package/dist/enterprise/cloud-manager.d.ts.map +0 -1
  557. package/dist/enterprise/cloud-manager.js +0 -784
  558. package/dist/enterprise/cloud-manager.js.map +0 -1
  559. package/dist/enterprise/deployment-manager.d.ts +0 -328
  560. package/dist/enterprise/deployment-manager.d.ts.map +0 -1
  561. package/dist/enterprise/deployment-manager.js +0 -823
  562. package/dist/enterprise/deployment-manager.js.map +0 -1
  563. package/dist/enterprise/index.d.ts +0 -13
  564. package/dist/enterprise/index.d.ts.map +0 -1
  565. package/dist/enterprise/index.js +0 -7
  566. package/dist/enterprise/index.js.map +0 -1
  567. package/dist/enterprise/project-manager.d.ts +0 -228
  568. package/dist/enterprise/project-manager.d.ts.map +0 -1
  569. package/dist/enterprise/project-manager.js +0 -529
  570. package/dist/enterprise/project-manager.js.map +0 -1
  571. package/dist/enterprise/security-manager.d.ts +0 -422
  572. package/dist/enterprise/security-manager.d.ts.map +0 -1
  573. package/dist/enterprise/security-manager.js +0 -902
  574. package/dist/enterprise/security-manager.js.map +0 -1
  575. package/dist/hive-mind/core/Agent.d.ts +0 -137
  576. package/dist/hive-mind/core/Agent.d.ts.map +0 -1
  577. package/dist/hive-mind/core/Agent.js +0 -567
  578. package/dist/hive-mind/core/Agent.js.map +0 -1
  579. package/dist/hive-mind/core/Communication.d.ts +0 -116
  580. package/dist/hive-mind/core/Communication.d.ts.map +0 -1
  581. package/dist/hive-mind/core/Communication.js +0 -407
  582. package/dist/hive-mind/core/Communication.js.map +0 -1
  583. package/dist/hive-mind/core/DatabaseManager.d.ts +0 -93
  584. package/dist/hive-mind/core/DatabaseManager.d.ts.map +0 -1
  585. package/dist/hive-mind/core/DatabaseManager.js +0 -551
  586. package/dist/hive-mind/core/DatabaseManager.js.map +0 -1
  587. package/dist/hive-mind/core/HiveMind.d.ts +0 -90
  588. package/dist/hive-mind/core/HiveMind.d.ts.map +0 -1
  589. package/dist/hive-mind/core/HiveMind.js +0 -439
  590. package/dist/hive-mind/core/HiveMind.js.map +0 -1
  591. package/dist/hive-mind/core/Memory.d.ts +0 -235
  592. package/dist/hive-mind/core/Memory.d.ts.map +0 -1
  593. package/dist/hive-mind/core/Memory.js +0 -1185
  594. package/dist/hive-mind/core/Memory.js.map +0 -1
  595. package/dist/hive-mind/core/MemoryMonitor.d.ts +0 -183
  596. package/dist/hive-mind/core/MemoryMonitor.d.ts.map +0 -1
  597. package/dist/hive-mind/core/MemoryMonitor.js +0 -547
  598. package/dist/hive-mind/core/MemoryMonitor.js.map +0 -1
  599. package/dist/hive-mind/core/Queen.d.ts +0 -115
  600. package/dist/hive-mind/core/Queen.d.ts.map +0 -1
  601. package/dist/hive-mind/core/Queen.js +0 -586
  602. package/dist/hive-mind/core/Queen.js.map +0 -1
  603. package/dist/hive-mind/index.d.ts +0 -17
  604. package/dist/hive-mind/index.d.ts.map +0 -1
  605. package/dist/hive-mind/index.js +0 -21
  606. package/dist/hive-mind/index.js.map +0 -1
  607. package/dist/hive-mind/integration/ConsensusEngine.d.ts +0 -117
  608. package/dist/hive-mind/integration/ConsensusEngine.d.ts.map +0 -1
  609. package/dist/hive-mind/integration/ConsensusEngine.js +0 -476
  610. package/dist/hive-mind/integration/ConsensusEngine.js.map +0 -1
  611. package/dist/hive-mind/integration/MCPToolWrapper.d.ts +0 -172
  612. package/dist/hive-mind/integration/MCPToolWrapper.d.ts.map +0 -1
  613. package/dist/hive-mind/integration/MCPToolWrapper.js +0 -216
  614. package/dist/hive-mind/integration/MCPToolWrapper.js.map +0 -1
  615. package/dist/hive-mind/integration/SwarmOrchestrator.d.ts +0 -172
  616. package/dist/hive-mind/integration/SwarmOrchestrator.d.ts.map +0 -1
  617. package/dist/hive-mind/integration/SwarmOrchestrator.js +0 -746
  618. package/dist/hive-mind/integration/SwarmOrchestrator.js.map +0 -1
  619. package/dist/hive-mind/types.d.ts +0 -298
  620. package/dist/hive-mind/types.d.ts.map +0 -1
  621. package/dist/hive-mind/types.js +0 -7
  622. package/dist/hive-mind/types.js.map +0 -1
  623. package/dist/integration/mock-components.d.ts +0 -107
  624. package/dist/integration/mock-components.d.ts.map +0 -1
  625. package/dist/integration/mock-components.js +0 -357
  626. package/dist/integration/mock-components.js.map +0 -1
  627. package/dist/integration/system-integration.d.ts +0 -84
  628. package/dist/integration/system-integration.d.ts.map +0 -1
  629. package/dist/integration/system-integration.js +0 -429
  630. package/dist/integration/system-integration.js.map +0 -1
  631. package/dist/integration/types.d.ts +0 -119
  632. package/dist/integration/types.d.ts.map +0 -1
  633. package/dist/integration/types.js +0 -5
  634. package/dist/integration/types.js.map +0 -1
  635. package/dist/mcp/auth.d.ts +0 -80
  636. package/dist/mcp/auth.d.ts.map +0 -1
  637. package/dist/mcp/auth.js +0 -343
  638. package/dist/mcp/auth.js.map +0 -1
  639. package/dist/mcp/claude-code-wrapper.d.ts +0 -26
  640. package/dist/mcp/claude-code-wrapper.d.ts.map +0 -1
  641. package/dist/mcp/claude-code-wrapper.js +0 -598
  642. package/dist/mcp/claude-code-wrapper.js.map +0 -1
  643. package/dist/mcp/claude-flow-tools.d.ts +0 -13
  644. package/dist/mcp/claude-flow-tools.d.ts.map +0 -1
  645. package/dist/mcp/claude-flow-tools.js +0 -1142
  646. package/dist/mcp/claude-flow-tools.js.map +0 -1
  647. package/dist/mcp/client.d.ts +0 -41
  648. package/dist/mcp/client.d.ts.map +0 -1
  649. package/dist/mcp/client.js +0 -194
  650. package/dist/mcp/client.js.map +0 -1
  651. package/dist/mcp/index.d.ts +0 -134
  652. package/dist/mcp/index.d.ts.map +0 -1
  653. package/dist/mcp/index.js +0 -212
  654. package/dist/mcp/index.js.map +0 -1
  655. package/dist/mcp/integrate-wrapper.d.ts +0 -16
  656. package/dist/mcp/integrate-wrapper.d.ts.map +0 -1
  657. package/dist/mcp/integrate-wrapper.js +0 -77
  658. package/dist/mcp/integrate-wrapper.js.map +0 -1
  659. package/dist/mcp/lifecycle-manager.d.ts +0 -121
  660. package/dist/mcp/lifecycle-manager.d.ts.map +0 -1
  661. package/dist/mcp/lifecycle-manager.js +0 -365
  662. package/dist/mcp/lifecycle-manager.js.map +0 -1
  663. package/dist/mcp/load-balancer.d.ts +0 -88
  664. package/dist/mcp/load-balancer.d.ts.map +0 -1
  665. package/dist/mcp/load-balancer.js +0 -389
  666. package/dist/mcp/load-balancer.js.map +0 -1
  667. package/dist/mcp/orchestration-integration.d.ts +0 -135
  668. package/dist/mcp/orchestration-integration.d.ts.map +0 -1
  669. package/dist/mcp/orchestration-integration.js +0 -722
  670. package/dist/mcp/orchestration-integration.js.map +0 -1
  671. package/dist/mcp/performance-monitor.d.ts +0 -164
  672. package/dist/mcp/performance-monitor.d.ts.map +0 -1
  673. package/dist/mcp/performance-monitor.js +0 -478
  674. package/dist/mcp/performance-monitor.js.map +0 -1
  675. package/dist/mcp/protocol-manager.d.ts +0 -88
  676. package/dist/mcp/protocol-manager.d.ts.map +0 -1
  677. package/dist/mcp/protocol-manager.js +0 -358
  678. package/dist/mcp/protocol-manager.js.map +0 -1
  679. package/dist/mcp/recovery/connection-health-monitor.d.ts +0 -69
  680. package/dist/mcp/recovery/connection-health-monitor.d.ts.map +0 -1
  681. package/dist/mcp/recovery/connection-health-monitor.js +0 -241
  682. package/dist/mcp/recovery/connection-health-monitor.js.map +0 -1
  683. package/dist/mcp/recovery/connection-state-manager.d.ts +0 -102
  684. package/dist/mcp/recovery/connection-state-manager.d.ts.map +0 -1
  685. package/dist/mcp/recovery/connection-state-manager.js +0 -318
  686. package/dist/mcp/recovery/connection-state-manager.js.map +0 -1
  687. package/dist/mcp/recovery/fallback-coordinator.d.ts +0 -79
  688. package/dist/mcp/recovery/fallback-coordinator.d.ts.map +0 -1
  689. package/dist/mcp/recovery/fallback-coordinator.js +0 -278
  690. package/dist/mcp/recovery/fallback-coordinator.js.map +0 -1
  691. package/dist/mcp/recovery/index.d.ts +0 -10
  692. package/dist/mcp/recovery/index.d.ts.map +0 -1
  693. package/dist/mcp/recovery/index.js +0 -10
  694. package/dist/mcp/recovery/index.js.map +0 -1
  695. package/dist/mcp/recovery/reconnection-manager.d.ts +0 -69
  696. package/dist/mcp/recovery/reconnection-manager.d.ts.map +0 -1
  697. package/dist/mcp/recovery/reconnection-manager.js +0 -226
  698. package/dist/mcp/recovery/reconnection-manager.js.map +0 -1
  699. package/dist/mcp/recovery/recovery-manager.d.ts +0 -93
  700. package/dist/mcp/recovery/recovery-manager.d.ts.map +0 -1
  701. package/dist/mcp/recovery/recovery-manager.js +0 -250
  702. package/dist/mcp/recovery/recovery-manager.js.map +0 -1
  703. package/dist/mcp/router.d.ts +0 -54
  704. package/dist/mcp/router.d.ts.map +0 -1
  705. package/dist/mcp/router.js +0 -201
  706. package/dist/mcp/router.js.map +0 -1
  707. package/dist/mcp/ruv-swarm-tools.d.ts +0 -58
  708. package/dist/mcp/ruv-swarm-tools.d.ts.map +0 -1
  709. package/dist/mcp/ruv-swarm-tools.js +0 -518
  710. package/dist/mcp/ruv-swarm-tools.js.map +0 -1
  711. package/dist/mcp/server-with-wrapper.d.ts +0 -3
  712. package/dist/mcp/server-with-wrapper.d.ts.map +0 -1
  713. package/dist/mcp/server-with-wrapper.js +0 -36
  714. package/dist/mcp/server-with-wrapper.js.map +0 -1
  715. package/dist/mcp/server-wrapper-mode.d.ts +0 -3
  716. package/dist/mcp/server-wrapper-mode.d.ts.map +0 -1
  717. package/dist/mcp/server-wrapper-mode.js +0 -28
  718. package/dist/mcp/server-wrapper-mode.js.map +0 -1
  719. package/dist/mcp/server.d.ts +0 -75
  720. package/dist/mcp/server.d.ts.map +0 -1
  721. package/dist/mcp/server.js +0 -533
  722. package/dist/mcp/server.js.map +0 -1
  723. package/dist/mcp/session-manager.d.ts +0 -60
  724. package/dist/mcp/session-manager.d.ts.map +0 -1
  725. package/dist/mcp/session-manager.js +0 -322
  726. package/dist/mcp/session-manager.js.map +0 -1
  727. package/dist/mcp/sparc-modes.d.ts +0 -12
  728. package/dist/mcp/sparc-modes.d.ts.map +0 -1
  729. package/dist/mcp/sparc-modes.js +0 -370
  730. package/dist/mcp/sparc-modes.js.map +0 -1
  731. package/dist/mcp/swarm-tools.d.ts +0 -87
  732. package/dist/mcp/swarm-tools.d.ts.map +0 -1
  733. package/dist/mcp/swarm-tools.js +0 -711
  734. package/dist/mcp/swarm-tools.js.map +0 -1
  735. package/dist/mcp/tools.d.ts +0 -145
  736. package/dist/mcp/tools.d.ts.map +0 -1
  737. package/dist/mcp/tools.js +0 -418
  738. package/dist/mcp/tools.js.map +0 -1
  739. package/dist/mcp/transports/base.d.ts +0 -22
  740. package/dist/mcp/transports/base.d.ts.map +0 -1
  741. package/dist/mcp/transports/base.js +0 -2
  742. package/dist/mcp/transports/base.js.map +0 -1
  743. package/dist/mcp/transports/http.d.ts +0 -45
  744. package/dist/mcp/transports/http.d.ts.map +0 -1
  745. package/dist/mcp/transports/http.js +0 -400
  746. package/dist/mcp/transports/http.js.map +0 -1
  747. package/dist/mcp/transports/stdio.d.ts +0 -34
  748. package/dist/mcp/transports/stdio.d.ts.map +0 -1
  749. package/dist/mcp/transports/stdio.js +0 -203
  750. package/dist/mcp/transports/stdio.js.map +0 -1
  751. package/dist/memory/advanced-memory-manager.d.ts +0 -303
  752. package/dist/memory/advanced-memory-manager.d.ts.map +0 -1
  753. package/dist/memory/advanced-memory-manager.js +0 -1458
  754. package/dist/memory/advanced-memory-manager.js.map +0 -1
  755. package/dist/memory/backends/base.d.ts +0 -21
  756. package/dist/memory/backends/base.d.ts.map +0 -1
  757. package/dist/memory/backends/base.js +0 -2
  758. package/dist/memory/backends/base.js.map +0 -1
  759. package/dist/memory/backends/markdown.d.ts +0 -32
  760. package/dist/memory/backends/markdown.d.ts.map +0 -1
  761. package/dist/memory/backends/markdown.js +0 -223
  762. package/dist/memory/backends/markdown.js.map +0 -1
  763. package/dist/memory/backends/sqlite.d.ts +0 -29
  764. package/dist/memory/backends/sqlite.d.ts.map +0 -1
  765. package/dist/memory/backends/sqlite.js +0 -272
  766. package/dist/memory/backends/sqlite.js.map +0 -1
  767. package/dist/memory/cache.d.ts +0 -65
  768. package/dist/memory/cache.d.ts.map +0 -1
  769. package/dist/memory/cache.js +0 -186
  770. package/dist/memory/cache.js.map +0 -1
  771. package/dist/memory/distributed-memory.d.ts +0 -188
  772. package/dist/memory/distributed-memory.d.ts.map +0 -1
  773. package/dist/memory/distributed-memory.js +0 -711
  774. package/dist/memory/distributed-memory.js.map +0 -1
  775. package/dist/memory/indexer.d.ts +0 -52
  776. package/dist/memory/indexer.d.ts.map +0 -1
  777. package/dist/memory/indexer.js +0 -188
  778. package/dist/memory/indexer.js.map +0 -1
  779. package/dist/memory/manager.d.ts +0 -58
  780. package/dist/memory/manager.d.ts.map +0 -1
  781. package/dist/memory/manager.js +0 -426
  782. package/dist/memory/manager.js.map +0 -1
  783. package/dist/memory/swarm-memory.d.ts +0 -91
  784. package/dist/memory/swarm-memory.d.ts.map +0 -1
  785. package/dist/memory/swarm-memory.js +0 -461
  786. package/dist/memory/swarm-memory.js.map +0 -1
  787. package/dist/migration/index.d.ts +0 -3
  788. package/dist/migration/index.d.ts.map +0 -1
  789. package/dist/migration/index.js +0 -166
  790. package/dist/migration/index.js.map +0 -1
  791. package/dist/migration/logger.d.ts +0 -26
  792. package/dist/migration/logger.d.ts.map +0 -1
  793. package/dist/migration/logger.js +0 -145
  794. package/dist/migration/logger.js.map +0 -1
  795. package/dist/migration/migration-analyzer.d.ts +0 -15
  796. package/dist/migration/migration-analyzer.d.ts.map +0 -1
  797. package/dist/migration/migration-analyzer.js +0 -279
  798. package/dist/migration/migration-analyzer.js.map +0 -1
  799. package/dist/migration/migration-runner.d.ts +0 -26
  800. package/dist/migration/migration-runner.d.ts.map +0 -1
  801. package/dist/migration/migration-runner.js +0 -499
  802. package/dist/migration/migration-runner.js.map +0 -1
  803. package/dist/migration/migration-validator.d.ts +0 -14
  804. package/dist/migration/migration-validator.d.ts.map +0 -1
  805. package/dist/migration/migration-validator.js +0 -313
  806. package/dist/migration/migration-validator.js.map +0 -1
  807. package/dist/migration/progress-reporter.d.ts +0 -25
  808. package/dist/migration/progress-reporter.d.ts.map +0 -1
  809. package/dist/migration/progress-reporter.js +0 -163
  810. package/dist/migration/progress-reporter.js.map +0 -1
  811. package/dist/migration/rollback-manager.d.ts +0 -21
  812. package/dist/migration/rollback-manager.d.ts.map +0 -1
  813. package/dist/migration/rollback-manager.js +0 -348
  814. package/dist/migration/rollback-manager.js.map +0 -1
  815. package/dist/migration/types.d.ts +0 -103
  816. package/dist/migration/types.d.ts.map +0 -1
  817. package/dist/migration/types.js +0 -6
  818. package/dist/migration/types.js.map +0 -1
  819. package/dist/monitoring/diagnostics.d.ts +0 -109
  820. package/dist/monitoring/diagnostics.d.ts.map +0 -1
  821. package/dist/monitoring/diagnostics.js +0 -545
  822. package/dist/monitoring/diagnostics.js.map +0 -1
  823. package/dist/monitoring/health-check.d.ts +0 -91
  824. package/dist/monitoring/health-check.d.ts.map +0 -1
  825. package/dist/monitoring/health-check.js +0 -371
  826. package/dist/monitoring/health-check.js.map +0 -1
  827. package/dist/monitoring/real-time-monitor.d.ts +0 -230
  828. package/dist/monitoring/real-time-monitor.d.ts.map +0 -1
  829. package/dist/monitoring/real-time-monitor.js +0 -839
  830. package/dist/monitoring/real-time-monitor.js.map +0 -1
  831. package/dist/resources/resource-manager.d.ts +0 -390
  832. package/dist/resources/resource-manager.d.ts.map +0 -1
  833. package/dist/resources/resource-manager.js +0 -1220
  834. package/dist/resources/resource-manager.js.map +0 -1
  835. package/dist/swarm/claude-flow-executor.d.ts +0 -28
  836. package/dist/swarm/claude-flow-executor.d.ts.map +0 -1
  837. package/dist/swarm/claude-flow-executor.js +0 -210
  838. package/dist/swarm/claude-flow-executor.js.map +0 -1
  839. package/dist/swarm/coordinator.d.ts +0 -134
  840. package/dist/swarm/coordinator.d.ts.map +0 -1
  841. package/dist/swarm/coordinator.js +0 -2607
  842. package/dist/swarm/coordinator.js.map +0 -1
  843. package/dist/swarm/direct-executor.d.ts +0 -48
  844. package/dist/swarm/direct-executor.d.ts.map +0 -1
  845. package/dist/swarm/direct-executor.js +0 -1113
  846. package/dist/swarm/direct-executor.js.map +0 -1
  847. package/dist/swarm/executor-v2.d.ts +0 -23
  848. package/dist/swarm/executor-v2.d.ts.map +0 -1
  849. package/dist/swarm/executor-v2.js +0 -320
  850. package/dist/swarm/executor-v2.js.map +0 -1
  851. package/dist/swarm/executor.d.ts +0 -117
  852. package/dist/swarm/executor.d.ts.map +0 -1
  853. package/dist/swarm/executor.js +0 -791
  854. package/dist/swarm/executor.js.map +0 -1
  855. package/dist/swarm/index.d.ts +0 -31
  856. package/dist/swarm/index.d.ts.map +0 -1
  857. package/dist/swarm/index.js +0 -42
  858. package/dist/swarm/index.js.map +0 -1
  859. package/dist/swarm/memory.d.ts +0 -176
  860. package/dist/swarm/memory.d.ts.map +0 -1
  861. package/dist/swarm/memory.js +0 -1068
  862. package/dist/swarm/memory.js.map +0 -1
  863. package/dist/swarm/optimizations/async-file-manager.d.ts +0 -49
  864. package/dist/swarm/optimizations/async-file-manager.d.ts.map +0 -1
  865. package/dist/swarm/optimizations/async-file-manager.js +0 -248
  866. package/dist/swarm/optimizations/async-file-manager.js.map +0 -1
  867. package/dist/swarm/optimizations/circular-buffer.d.ts +0 -46
  868. package/dist/swarm/optimizations/circular-buffer.d.ts.map +0 -1
  869. package/dist/swarm/optimizations/circular-buffer.js +0 -159
  870. package/dist/swarm/optimizations/circular-buffer.js.map +0 -1
  871. package/dist/swarm/optimizations/connection-pool.d.ts +0 -54
  872. package/dist/swarm/optimizations/connection-pool.d.ts.map +0 -1
  873. package/dist/swarm/optimizations/connection-pool.js +0 -227
  874. package/dist/swarm/optimizations/connection-pool.js.map +0 -1
  875. package/dist/swarm/optimizations/index.d.ts +0 -24
  876. package/dist/swarm/optimizations/index.d.ts.map +0 -1
  877. package/dist/swarm/optimizations/index.js +0 -30
  878. package/dist/swarm/optimizations/index.js.map +0 -1
  879. package/dist/swarm/optimizations/optimized-executor.d.ts +0 -109
  880. package/dist/swarm/optimizations/optimized-executor.d.ts.map +0 -1
  881. package/dist/swarm/optimizations/optimized-executor.js +0 -321
  882. package/dist/swarm/optimizations/optimized-executor.js.map +0 -1
  883. package/dist/swarm/optimizations/ttl-map.d.ts +0 -78
  884. package/dist/swarm/optimizations/ttl-map.d.ts.map +0 -1
  885. package/dist/swarm/optimizations/ttl-map.js +0 -229
  886. package/dist/swarm/optimizations/ttl-map.js.map +0 -1
  887. package/dist/swarm/prompt-cli.d.ts +0 -5
  888. package/dist/swarm/prompt-cli.d.ts.map +0 -1
  889. package/dist/swarm/prompt-cli.js +0 -256
  890. package/dist/swarm/prompt-cli.js.map +0 -1
  891. package/dist/swarm/prompt-copier-enhanced.d.ts +0 -17
  892. package/dist/swarm/prompt-copier-enhanced.d.ts.map +0 -1
  893. package/dist/swarm/prompt-copier-enhanced.js +0 -190
  894. package/dist/swarm/prompt-copier-enhanced.js.map +0 -1
  895. package/dist/swarm/prompt-copier.d.ts +0 -76
  896. package/dist/swarm/prompt-copier.d.ts.map +0 -1
  897. package/dist/swarm/prompt-copier.js +0 -379
  898. package/dist/swarm/prompt-copier.js.map +0 -1
  899. package/dist/swarm/prompt-manager.d.ts +0 -72
  900. package/dist/swarm/prompt-manager.d.ts.map +0 -1
  901. package/dist/swarm/prompt-manager.js +0 -270
  902. package/dist/swarm/prompt-manager.js.map +0 -1
  903. package/dist/swarm/prompt-utils.d.ts +0 -52
  904. package/dist/swarm/prompt-utils.d.ts.map +0 -1
  905. package/dist/swarm/prompt-utils.js +0 -265
  906. package/dist/swarm/prompt-utils.js.map +0 -1
  907. package/dist/swarm/sparc-executor.d.ts +0 -105
  908. package/dist/swarm/sparc-executor.d.ts.map +0 -1
  909. package/dist/swarm/sparc-executor.js +0 -1364
  910. package/dist/swarm/sparc-executor.js.map +0 -1
  911. package/dist/swarm/strategies/auto.d.ts +0 -57
  912. package/dist/swarm/strategies/auto.d.ts.map +0 -1
  913. package/dist/swarm/strategies/auto.js +0 -623
  914. package/dist/swarm/strategies/auto.js.map +0 -1
  915. package/dist/swarm/strategies/base.d.ts +0 -78
  916. package/dist/swarm/strategies/base.d.ts.map +0 -1
  917. package/dist/swarm/strategies/base.js +0 -108
  918. package/dist/swarm/strategies/base.js.map +0 -1
  919. package/dist/swarm/strategies/research.d.ts +0 -75
  920. package/dist/swarm/strategies/research.d.ts.map +0 -1
  921. package/dist/swarm/strategies/research.js +0 -841
  922. package/dist/swarm/strategies/research.js.map +0 -1
  923. package/dist/swarm/strategies/strategy-metrics-patch.d.ts +0 -11
  924. package/dist/swarm/strategies/strategy-metrics-patch.d.ts.map +0 -1
  925. package/dist/swarm/strategies/strategy-metrics-patch.js +0 -2
  926. package/dist/swarm/strategies/strategy-metrics-patch.js.map +0 -1
  927. package/dist/swarm/types.d.ts +0 -578
  928. package/dist/swarm/types.d.ts.map +0 -1
  929. package/dist/swarm/types.js +0 -51
  930. package/dist/swarm/types.js.map +0 -1
  931. package/dist/swarm/workers/copy-worker.d.ts +0 -2
  932. package/dist/swarm/workers/copy-worker.d.ts.map +0 -1
  933. package/dist/swarm/workers/copy-worker.js +0 -56
  934. package/dist/swarm/workers/copy-worker.js.map +0 -1
  935. package/dist/task/commands.d.ts +0 -60
  936. package/dist/task/commands.d.ts.map +0 -1
  937. package/dist/task/commands.js +0 -107
  938. package/dist/task/commands.js.map +0 -1
  939. package/dist/task/coordination.d.ts +0 -109
  940. package/dist/task/coordination.d.ts.map +0 -1
  941. package/dist/task/coordination.js +0 -629
  942. package/dist/task/coordination.js.map +0 -1
  943. package/dist/task/engine.d.ts +0 -198
  944. package/dist/task/engine.d.ts.map +0 -1
  945. package/dist/task/engine.js +0 -498
  946. package/dist/task/engine.js.map +0 -1
  947. package/dist/task/index.d.ts +0 -103
  948. package/dist/task/index.d.ts.map +0 -1
  949. package/dist/task/index.js +0 -276
  950. package/dist/task/index.js.map +0 -1
  951. package/dist/task/types.d.ts +0 -56
  952. package/dist/task/types.d.ts.map +0 -1
  953. package/dist/task/types.js +0 -2
  954. package/dist/task/types.js.map +0 -1
  955. package/dist/terminal/adapters/base.d.ts +0 -40
  956. package/dist/terminal/adapters/base.d.ts.map +0 -1
  957. package/dist/terminal/adapters/base.js +0 -5
  958. package/dist/terminal/adapters/base.js.map +0 -1
  959. package/dist/terminal/adapters/native.d.ts +0 -19
  960. package/dist/terminal/adapters/native.d.ts.map +0 -1
  961. package/dist/terminal/adapters/native.js +0 -414
  962. package/dist/terminal/adapters/native.js.map +0 -1
  963. package/dist/terminal/adapters/vscode.d.ts +0 -20
  964. package/dist/terminal/adapters/vscode.d.ts.map +0 -1
  965. package/dist/terminal/adapters/vscode.js +0 -265
  966. package/dist/terminal/adapters/vscode.js.map +0 -1
  967. package/dist/terminal/manager.d.ts +0 -59
  968. package/dist/terminal/manager.d.ts.map +0 -1
  969. package/dist/terminal/manager.js +0 -237
  970. package/dist/terminal/manager.js.map +0 -1
  971. package/dist/terminal/pool.d.ts +0 -32
  972. package/dist/terminal/pool.d.ts.map +0 -1
  973. package/dist/terminal/pool.js +0 -205
  974. package/dist/terminal/pool.js.map +0 -1
  975. package/dist/terminal/session.d.ts +0 -41
  976. package/dist/terminal/session.d.ts.map +0 -1
  977. package/dist/terminal/session.js +0 -206
  978. package/dist/terminal/session.js.map +0 -1
  979. package/dist/types/index.d.ts +0 -28
  980. package/dist/types/index.d.ts.map +0 -1
  981. package/dist/types/index.js +0 -15
  982. package/dist/types/index.js.map +0 -1
  983. package/dist/ui/hive-dashboard.d.ts +0 -140
  984. package/dist/ui/hive-dashboard.d.ts.map +0 -1
  985. package/dist/ui/hive-dashboard.js +0 -281
  986. package/dist/ui/hive-dashboard.js.map +0 -1
  987. package/dist/utils/error-handler.d.ts +0 -13
  988. package/dist/utils/error-handler.d.ts.map +0 -1
  989. package/dist/utils/error-handler.js +0 -45
  990. package/dist/utils/error-handler.js.map +0 -1
  991. package/dist/utils/errors.d.ts +0 -121
  992. package/dist/utils/errors.d.ts.map +0 -1
  993. package/dist/utils/errors.js +0 -194
  994. package/dist/utils/errors.js.map +0 -1
  995. package/dist/utils/formatters.d.ts +0 -15
  996. package/dist/utils/formatters.d.ts.map +0 -1
  997. package/dist/utils/formatters.js +0 -75
  998. package/dist/utils/formatters.js.map +0 -1
  999. package/dist/utils/helpers.d.ts +0 -131
  1000. package/dist/utils/helpers.d.ts.map +0 -1
  1001. package/dist/utils/helpers.js +0 -447
  1002. package/dist/utils/helpers.js.map +0 -1
  1003. package/dist/utils/paths.d.ts +0 -4
  1004. package/dist/utils/paths.d.ts.map +0 -1
  1005. package/dist/utils/paths.js +0 -39
  1006. package/dist/utils/paths.js.map +0 -1
  1007. package/dist/utils/types.d.ts +0 -512
  1008. package/dist/utils/types.d.ts.map +0 -1
  1009. package/dist/utils/types.js +0 -37
  1010. package/dist/utils/types.js.map +0 -1
  1011. package/src/cli/simple-commands/hive-mind/memory.d.ts +0 -37
  1012. package/src/cli/simple-commands/init/templates/CLAUDE-FLOW-SPECIFIC.md +0 -238
  1013. package/src/cli/simple-commands/init/templates/all-commands.js +0 -1355
  1014. package/src/cli/simple-commands/init/templates/commands/hooks/hooks-documentation.md +0 -272
  1015. package/src/cli/simple-commands/init/templates/github-enhanced.js +0 -505
  1016. package/src/cli/simple-commands/init/templates/hooks-documentation.md +0 -272
  1017. package/src/cli/simple-commands/web-server.d.ts +0 -22
  1018. package/src/cli/utils.d.ts +0 -8
@@ -1,1458 +0,0 @@
1
- /**
2
- * Advanced Memory Management System with comprehensive capabilities
3
- * Includes indexing, compression, cross-agent sharing, and intelligent cleanup
4
- */
5
- import { EventEmitter } from 'node:events';
6
- import { promises as fs } from 'node:fs';
7
- import { createHash } from 'node:crypto';
8
- import { join, dirname } from 'node:path';
9
- import { fileURLToPath } from 'node:url';
10
- import { generateId } from '../utils/helpers.js';
11
- // === MAIN CLASS ===
12
- export class AdvancedMemoryManager extends EventEmitter {
13
- dataPath;
14
- indexPath;
15
- backupPath;
16
- archivePath;
17
- entries = new Map();
18
- index;
19
- cache = new Map();
20
- retentionPolicies = new Map();
21
- logger;
22
- config;
23
- statistics;
24
- operationMetrics = new Map();
25
- cleanupInterval;
26
- constructor(config = {}, logger) {
27
- super();
28
- this.logger = logger;
29
- this.config = {
30
- maxMemorySize: 1024 * 1024 * 1024, // 1GB
31
- cacheSize: 10000,
32
- cacheTtl: 300000, // 5 minutes
33
- autoCompress: true,
34
- autoCleanup: true,
35
- cleanupInterval: 3600000, // 1 hour
36
- indexingEnabled: true,
37
- persistenceEnabled: true,
38
- compressionThreshold: 1024, // 1KB
39
- backupRetention: 7, // days
40
- ...config
41
- };
42
- // Setup file paths
43
- const __dirname = dirname(fileURLToPath(import.meta.url));
44
- this.dataPath = join(process.cwd(), 'memory', 'data');
45
- this.indexPath = join(process.cwd(), 'memory', 'index');
46
- this.backupPath = join(process.cwd(), 'memory', 'backups');
47
- this.archivePath = join(process.cwd(), 'memory', 'archive');
48
- this.index = this.createEmptyIndex();
49
- this.statistics = this.initializeStatistics();
50
- }
51
- // === INITIALIZATION ===
52
- async initialize() {
53
- this.logger.info('Initializing Advanced Memory Manager');
54
- // Create directories
55
- await Promise.all([
56
- fs.mkdir(this.dataPath, { recursive: true }),
57
- fs.mkdir(this.indexPath, { recursive: true }),
58
- fs.mkdir(this.backupPath, { recursive: true }),
59
- fs.mkdir(this.archivePath, { recursive: true })
60
- ]);
61
- // Load persisted data
62
- if (this.config.persistenceEnabled) {
63
- await this.loadPersistedData();
64
- }
65
- // Start automatic cleanup if enabled
66
- if (this.config.autoCleanup) {
67
- this.startAutoCleanup();
68
- }
69
- this.emit('memory:initialized');
70
- this.logger.info('Advanced Memory Manager initialized successfully');
71
- }
72
- async shutdown() {
73
- this.logger.info('Shutting down Advanced Memory Manager');
74
- // Stop cleanup interval
75
- if (this.cleanupInterval) {
76
- clearInterval(this.cleanupInterval);
77
- }
78
- // Persist data
79
- if (this.config.persistenceEnabled) {
80
- await this.persistData();
81
- }
82
- // Create backup
83
- await this.createBackup();
84
- this.emit('memory:shutdown');
85
- }
86
- // === CORE OPERATIONS ===
87
- async store(key, value, options = {}) {
88
- const startTime = Date.now();
89
- try {
90
- const entryId = generateId('entry');
91
- const now = new Date();
92
- // Process value (compression, serialization)
93
- const processedValue = await this.processValue(value, options.compress);
94
- const size = this.calculateSize(processedValue);
95
- // Create entry
96
- const entry = {
97
- id: entryId,
98
- key,
99
- value: processedValue.value,
100
- type: options.type || this.inferType(value),
101
- namespace: options.namespace || 'default',
102
- tags: options.tags || [],
103
- metadata: options.metadata || {},
104
- owner: options.owner || 'system',
105
- accessLevel: options.accessLevel || 'shared',
106
- createdAt: now,
107
- updatedAt: now,
108
- lastAccessedAt: now,
109
- expiresAt: options.ttl ? new Date(now.getTime() + options.ttl) : undefined,
110
- version: 1,
111
- size,
112
- compressed: processedValue.compressed,
113
- checksum: this.calculateChecksum(processedValue.value),
114
- references: [],
115
- dependencies: []
116
- };
117
- // Store entry
118
- this.entries.set(entryId, entry);
119
- // Update index
120
- if (this.config.indexingEnabled) {
121
- this.updateIndex(entry, 'create');
122
- }
123
- // Update cache
124
- this.updateCache(key, entry);
125
- // Apply retention policies
126
- await this.applyRetentionPolicies(entry);
127
- this.logger.debug('Memory entry stored', { entryId, key, namespace: entry.namespace });
128
- this.emit('memory:entry-stored', { entry });
129
- this.recordMetric('store', Date.now() - startTime);
130
- return entryId;
131
- }
132
- catch (error) {
133
- this.recordMetric('store-error', Date.now() - startTime);
134
- throw error;
135
- }
136
- }
137
- async retrieve(key, options = {}) {
138
- const startTime = Date.now();
139
- try {
140
- // Check cache first
141
- const cached = this.cache.get(key);
142
- if (cached && cached.expiry > Date.now()) {
143
- this.recordMetric('retrieve-cache', Date.now() - startTime);
144
- return cached.entry;
145
- }
146
- // Search in entries
147
- const entry = this.findEntryByKey(key, options.namespace);
148
- if (!entry) {
149
- this.recordMetric('retrieve-miss', Date.now() - startTime);
150
- return null;
151
- }
152
- // Check if expired
153
- if (entry.expiresAt && entry.expiresAt < new Date()) {
154
- await this.deleteEntry(entry.id);
155
- this.recordMetric('retrieve-expired', Date.now() - startTime);
156
- return null;
157
- }
158
- // Update last accessed
159
- if (options.updateLastAccessed !== false) {
160
- entry.lastAccessedAt = new Date();
161
- }
162
- // Decompress if needed
163
- if (entry.compressed) {
164
- entry.value = await this.decompressValue(entry.value);
165
- }
166
- // Update cache
167
- this.updateCache(key, entry);
168
- this.recordMetric('retrieve', Date.now() - startTime);
169
- return entry;
170
- }
171
- catch (error) {
172
- this.recordMetric('retrieve-error', Date.now() - startTime);
173
- throw error;
174
- }
175
- }
176
- async update(key, value, options = {}) {
177
- const startTime = Date.now();
178
- try {
179
- const entry = await this.retrieve(key, { namespace: options.namespace });
180
- if (!entry) {
181
- this.recordMetric('update-not-found', Date.now() - startTime);
182
- return false;
183
- }
184
- // Process new value
185
- const processedValue = await this.processValue(value, entry.compressed);
186
- // Update entry
187
- if (options.merge && typeof entry.value === 'object' && typeof value === 'object') {
188
- entry.value = { ...entry.value, ...processedValue.value };
189
- }
190
- else {
191
- entry.value = processedValue.value;
192
- }
193
- entry.updatedAt = new Date();
194
- entry.lastAccessedAt = new Date();
195
- entry.version++;
196
- entry.size = this.calculateSize(entry.value);
197
- entry.checksum = this.calculateChecksum(entry.value);
198
- if (options.updateMetadata) {
199
- entry.metadata = { ...entry.metadata, ...options.updateMetadata };
200
- }
201
- // Update index
202
- if (this.config.indexingEnabled) {
203
- this.updateIndex(entry, 'update');
204
- }
205
- // Update cache
206
- this.updateCache(key, entry);
207
- this.logger.debug('Memory entry updated', { entryId: entry.id, key });
208
- this.emit('memory:entry-updated', { entry });
209
- this.recordMetric('update', Date.now() - startTime);
210
- return true;
211
- }
212
- catch (error) {
213
- this.recordMetric('update-error', Date.now() - startTime);
214
- throw error;
215
- }
216
- }
217
- async deleteEntry(entryId) {
218
- const startTime = Date.now();
219
- try {
220
- const entry = this.entries.get(entryId);
221
- if (!entry) {
222
- this.recordMetric('delete-not-found', Date.now() - startTime);
223
- return false;
224
- }
225
- // Remove from storage
226
- this.entries.delete(entryId);
227
- // Update index
228
- if (this.config.indexingEnabled) {
229
- this.updateIndex(entry, 'delete');
230
- }
231
- // Remove from cache
232
- this.cache.delete(entry.key);
233
- this.logger.debug('Memory entry deleted', { entryId, key: entry.key });
234
- this.emit('memory:entry-deleted', { entryId });
235
- this.recordMetric('delete', Date.now() - startTime);
236
- return true;
237
- }
238
- catch (error) {
239
- this.recordMetric('delete-error', Date.now() - startTime);
240
- throw error;
241
- }
242
- }
243
- // === ADVANCED QUERY OPERATIONS ===
244
- async query(options = {}) {
245
- const startTime = Date.now();
246
- try {
247
- let candidateEntries = [];
248
- // Use index for efficient querying if enabled
249
- if (this.config.indexingEnabled) {
250
- candidateEntries = this.queryWithIndex(options);
251
- }
252
- else {
253
- candidateEntries = Array.from(this.entries.values());
254
- }
255
- // Apply filters
256
- let filteredEntries = candidateEntries.filter(entry => {
257
- return this.matchesQuery(entry, options);
258
- });
259
- // Remove expired entries
260
- if (!options.includeExpired) {
261
- filteredEntries = filteredEntries.filter(entry => {
262
- if (entry.expiresAt && entry.expiresAt < new Date()) {
263
- // Schedule for deletion
264
- setTimeout(() => this.deleteEntry(entry.id), 0);
265
- return false;
266
- }
267
- return true;
268
- });
269
- }
270
- const total = filteredEntries.length;
271
- // Apply sorting
272
- if (options.sortBy) {
273
- filteredEntries.sort((a, b) => {
274
- const aVal = this.getPropertyValue(a, options.sortBy);
275
- const bVal = this.getPropertyValue(b, options.sortBy);
276
- const multiplier = options.sortOrder === 'desc' ? -1 : 1;
277
- if (aVal < bVal)
278
- return -1 * multiplier;
279
- if (aVal > bVal)
280
- return 1 * multiplier;
281
- return 0;
282
- });
283
- }
284
- // Apply pagination
285
- const offset = options.offset || 0;
286
- const limit = options.limit || filteredEntries.length;
287
- const paginatedEntries = filteredEntries.slice(offset, offset + limit);
288
- // Update last accessed times
289
- paginatedEntries.forEach(entry => {
290
- entry.lastAccessedAt = new Date();
291
- });
292
- // Generate aggregations if requested
293
- let aggregations;
294
- if (options.aggregateBy) {
295
- aggregations = this.generateAggregations(filteredEntries, options.aggregateBy);
296
- }
297
- this.recordMetric('query', Date.now() - startTime);
298
- return {
299
- entries: paginatedEntries,
300
- total,
301
- aggregations
302
- };
303
- }
304
- catch (error) {
305
- this.recordMetric('query-error', Date.now() - startTime);
306
- throw error;
307
- }
308
- }
309
- // === EXPORT OPERATIONS ===
310
- async export(filePath, options) {
311
- const startTime = Date.now();
312
- try {
313
- this.logger.info('Starting memory export', { filePath, format: options.format });
314
- // Query entries to export
315
- const queryResult = await this.query(options.filtering || {});
316
- const entries = queryResult.entries;
317
- if (entries.length === 0) {
318
- throw new Error('No entries found matching export criteria');
319
- }
320
- // Prepare export data
321
- let exportData;
322
- switch (options.format) {
323
- case 'json':
324
- exportData = this.prepareJsonExport(entries, options);
325
- break;
326
- case 'csv':
327
- exportData = this.prepareCsvExport(entries, options);
328
- break;
329
- case 'xml':
330
- exportData = this.prepareXmlExport(entries, options);
331
- break;
332
- case 'yaml':
333
- exportData = this.prepareYamlExport(entries, options);
334
- break;
335
- default:
336
- throw new Error(`Unsupported export format: ${options.format}`);
337
- }
338
- // Apply compression if requested
339
- if (options.compression) {
340
- exportData = await this.compressData(exportData);
341
- }
342
- // Apply encryption if requested
343
- if (options.encryption?.enabled) {
344
- exportData = await this.encryptData(exportData, options.encryption);
345
- }
346
- // Write to file
347
- await fs.mkdir(dirname(filePath), { recursive: true });
348
- await fs.writeFile(filePath, exportData);
349
- // Calculate file stats
350
- const stats = await fs.stat(filePath);
351
- const checksum = this.calculateChecksum(exportData);
352
- this.logger.info('Memory export completed', {
353
- entriesExported: entries.length,
354
- fileSize: stats.size,
355
- checksum
356
- });
357
- this.emit('memory:exported', {
358
- filePath,
359
- entriesExported: entries.length,
360
- fileSize: stats.size
361
- });
362
- this.recordMetric('export', Date.now() - startTime);
363
- return {
364
- entriesExported: entries.length,
365
- fileSize: stats.size,
366
- checksum
367
- };
368
- }
369
- catch (error) {
370
- this.recordMetric('export-error', Date.now() - startTime);
371
- throw error;
372
- }
373
- }
374
- // === IMPORT OPERATIONS ===
375
- async import(filePath, options) {
376
- const startTime = Date.now();
377
- try {
378
- this.logger.info('Starting memory import', { filePath, format: options.format });
379
- // Read and parse file
380
- const fileContent = await fs.readFile(filePath, 'utf-8');
381
- let importData;
382
- switch (options.format) {
383
- case 'json':
384
- importData = this.parseJsonImport(fileContent);
385
- break;
386
- case 'csv':
387
- importData = this.parseCsvImport(fileContent);
388
- break;
389
- case 'xml':
390
- importData = this.parseXmlImport(fileContent);
391
- break;
392
- case 'yaml':
393
- importData = this.parseYamlImport(fileContent);
394
- break;
395
- default:
396
- throw new Error(`Unsupported import format: ${options.format}`);
397
- }
398
- // Validate data if requested
399
- if (options.validation) {
400
- importData = this.validateImportData(importData);
401
- }
402
- // Apply transformations if provided
403
- if (options.transformation) {
404
- importData = this.transformImportData(importData, options.transformation);
405
- }
406
- // Process imports
407
- const results = {
408
- entriesImported: 0,
409
- entriesSkipped: 0,
410
- entriesUpdated: 0,
411
- conflicts: []
412
- };
413
- for (const item of importData) {
414
- if (options.dryRun) {
415
- // Dry run - just check for conflicts
416
- const existing = this.findEntryByKey(item.key, item.namespace);
417
- if (existing) {
418
- results.conflicts.push(`Key '${item.key}' already exists in namespace '${item.namespace}'`);
419
- }
420
- continue;
421
- }
422
- try {
423
- const result = await this.importSingleEntry(item, options);
424
- switch (result.action) {
425
- case 'imported':
426
- results.entriesImported++;
427
- break;
428
- case 'updated':
429
- results.entriesUpdated++;
430
- break;
431
- case 'skipped':
432
- results.entriesSkipped++;
433
- break;
434
- case 'conflict':
435
- results.conflicts.push(result.message || 'Unknown conflict');
436
- break;
437
- }
438
- }
439
- catch (error) {
440
- results.conflicts.push(`Error importing '${item.key}': ${(error instanceof Error ? error.message : String(error))}`);
441
- }
442
- }
443
- this.logger.info('Memory import completed', results);
444
- this.emit('memory:imported', results);
445
- this.recordMetric('import', Date.now() - startTime);
446
- return results;
447
- }
448
- catch (error) {
449
- this.recordMetric('import-error', Date.now() - startTime);
450
- throw error;
451
- }
452
- }
453
- // === STATISTICS AND ANALYTICS ===
454
- async getStatistics() {
455
- const startTime = Date.now();
456
- try {
457
- const stats = this.calculateStatistics();
458
- this.recordMetric('stats', Date.now() - startTime);
459
- return stats;
460
- }
461
- catch (error) {
462
- this.recordMetric('stats-error', Date.now() - startTime);
463
- throw error;
464
- }
465
- }
466
- // === CLEANUP OPERATIONS ===
467
- async cleanup(options = {}) {
468
- const startTime = Date.now();
469
- try {
470
- this.logger.info('Starting memory cleanup', options);
471
- const results = {
472
- entriesRemoved: 0,
473
- entriesArchived: 0,
474
- entriesCompressed: 0,
475
- spaceSaved: 0,
476
- actions: []
477
- };
478
- // Get all entries for processing
479
- const allEntries = Array.from(this.entries.values());
480
- const now = new Date();
481
- // Phase 1: Remove expired entries
482
- if (options.removeExpired !== false) {
483
- const expiredEntries = allEntries.filter(entry => entry.expiresAt && entry.expiresAt < now);
484
- for (const entry of expiredEntries) {
485
- if (!options.dryRun) {
486
- await this.deleteEntry(entry.id);
487
- }
488
- results.entriesRemoved++;
489
- results.spaceSaved += entry.size;
490
- }
491
- if (expiredEntries.length > 0) {
492
- results.actions.push(`Removed ${expiredEntries.length} expired entries`);
493
- }
494
- }
495
- // Phase 2: Remove old entries
496
- if (options.removeOlderThan) {
497
- const cutoffDate = new Date(now.getTime() - (options.removeOlderThan * 24 * 60 * 60 * 1000));
498
- const oldEntries = allEntries.filter(entry => entry.createdAt < cutoffDate);
499
- for (const entry of oldEntries) {
500
- if (!options.dryRun) {
501
- await this.deleteEntry(entry.id);
502
- }
503
- results.entriesRemoved++;
504
- results.spaceSaved += entry.size;
505
- }
506
- if (oldEntries.length > 0) {
507
- results.actions.push(`Removed ${oldEntries.length} entries older than ${options.removeOlderThan} days`);
508
- }
509
- }
510
- // Phase 3: Remove unaccessed entries
511
- if (options.removeUnaccessed) {
512
- const cutoffDate = new Date(now.getTime() - (options.removeUnaccessed * 24 * 60 * 60 * 1000));
513
- const unaccessedEntries = allEntries.filter(entry => entry.lastAccessedAt < cutoffDate);
514
- for (const entry of unaccessedEntries) {
515
- if (!options.dryRun) {
516
- await this.deleteEntry(entry.id);
517
- }
518
- results.entriesRemoved++;
519
- results.spaceSaved += entry.size;
520
- }
521
- if (unaccessedEntries.length > 0) {
522
- results.actions.push(`Removed ${unaccessedEntries.length} entries not accessed in ${options.removeUnaccessed} days`);
523
- }
524
- }
525
- // Phase 4: Archive old entries
526
- if (options.archiveOld?.enabled) {
527
- const cutoffDate = new Date(now.getTime() - (options.archiveOld.olderThan * 24 * 60 * 60 * 1000));
528
- const archiveEntries = allEntries.filter(entry => entry.createdAt < cutoffDate &&
529
- !entry.expiresAt // Don't archive entries that will expire
530
- );
531
- if (archiveEntries.length > 0 && !options.dryRun) {
532
- await this.archiveEntries(archiveEntries, options.archiveOld.archivePath);
533
- }
534
- results.entriesArchived = archiveEntries.length;
535
- if (archiveEntries.length > 0) {
536
- results.actions.push(`Archived ${archiveEntries.length} old entries`);
537
- }
538
- }
539
- // Phase 5: Compress eligible entries
540
- if (options.compressEligible !== false && this.config.autoCompress) {
541
- const uncompressedEntries = allEntries.filter(entry => !entry.compressed && entry.size > this.config.compressionThreshold);
542
- for (const entry of uncompressedEntries) {
543
- if (!options.dryRun) {
544
- const originalSize = entry.size;
545
- const compressedValue = await this.compressValue(entry.value);
546
- entry.value = compressedValue;
547
- entry.compressed = true;
548
- entry.size = this.calculateSize(compressedValue);
549
- results.spaceSaved += originalSize - entry.size;
550
- }
551
- results.entriesCompressed++;
552
- }
553
- if (uncompressedEntries.length > 0) {
554
- results.actions.push(`Compressed ${uncompressedEntries.length} entries`);
555
- }
556
- }
557
- // Phase 6: Apply retention policies
558
- if (options.retentionPolicies) {
559
- for (const policy of options.retentionPolicies) {
560
- const policyResults = await this.applyRetentionPolicy(policy, options.dryRun);
561
- results.entriesRemoved += policyResults.removed;
562
- results.spaceSaved += policyResults.spaceSaved;
563
- if (policyResults.removed > 0) {
564
- results.actions.push(`Retention policy '${policy.namespace}': removed ${policyResults.removed} entries`);
565
- }
566
- }
567
- }
568
- // Phase 7: Remove orphaned references
569
- if (options.removeOrphaned !== false) {
570
- const orphanedCount = await this.cleanupOrphanedReferences(options.dryRun);
571
- if (orphanedCount > 0) {
572
- results.actions.push(`Cleaned up ${orphanedCount} orphaned references`);
573
- }
574
- }
575
- // Phase 8: Remove duplicates
576
- if (options.removeDuplicates) {
577
- const duplicatesResults = await this.removeDuplicateEntries(options.dryRun);
578
- results.entriesRemoved += duplicatesResults.removed;
579
- results.spaceSaved += duplicatesResults.spaceSaved;
580
- if (duplicatesResults.removed > 0) {
581
- results.actions.push(`Removed ${duplicatesResults.removed} duplicate entries`);
582
- }
583
- }
584
- // Rebuild index if significant changes
585
- if ((results.entriesRemoved + results.entriesArchived) > 100 && !options.dryRun) {
586
- await this.rebuildIndex();
587
- results.actions.push('Rebuilt search index');
588
- }
589
- this.logger.info('Memory cleanup completed', results);
590
- this.emit('memory:cleanup-completed', results);
591
- this.recordMetric('cleanup', Date.now() - startTime);
592
- return results;
593
- }
594
- catch (error) {
595
- this.recordMetric('cleanup-error', Date.now() - startTime);
596
- throw error;
597
- }
598
- }
599
- // === UTILITY METHODS ===
600
- createEmptyIndex() {
601
- return {
602
- keys: new Map(),
603
- tags: new Map(),
604
- types: new Map(),
605
- namespaces: new Map(),
606
- owners: new Map(),
607
- fullText: new Map()
608
- };
609
- }
610
- async processValue(value, compress) {
611
- let processedValue = value;
612
- let isCompressed = false;
613
- // Auto-compress if enabled and value is large enough
614
- if ((compress || this.config.autoCompress) && this.calculateSize(value) > this.config.compressionThreshold) {
615
- processedValue = await this.compressValue(value);
616
- isCompressed = true;
617
- }
618
- return { value: processedValue, compressed: isCompressed };
619
- }
620
- async compressValue(value) {
621
- // Placeholder for compression implementation
622
- // In a real implementation, you would use a compression library like zlib
623
- return JSON.stringify(value);
624
- }
625
- async decompressValue(value) {
626
- // Placeholder for decompression implementation
627
- try {
628
- return JSON.parse(value);
629
- }
630
- catch {
631
- return value;
632
- }
633
- }
634
- calculateSize(value) {
635
- return JSON.stringify(value).length;
636
- }
637
- calculateChecksum(value) {
638
- return createHash('sha256').update(JSON.stringify(value)).digest('hex');
639
- }
640
- inferType(value) {
641
- if (Array.isArray(value))
642
- return 'array';
643
- if (value === null)
644
- return 'null';
645
- return typeof value;
646
- }
647
- findEntryByKey(key, namespace) {
648
- for (const entry of this.entries.values()) {
649
- if (entry.key === key && (!namespace || entry.namespace === namespace)) {
650
- return entry;
651
- }
652
- }
653
- return undefined;
654
- }
655
- updateIndex(entry, operation) {
656
- if (!this.config.indexingEnabled)
657
- return;
658
- const { id, key, tags, type, namespace, owner, value } = entry;
659
- if (operation === 'delete') {
660
- // Remove from all indices
661
- this.removeFromIndex(this.index.keys, key, id);
662
- tags.forEach(tag => this.removeFromIndex(this.index.tags, tag, id));
663
- this.removeFromIndex(this.index.types, type, id);
664
- this.removeFromIndex(this.index.namespaces, namespace, id);
665
- this.removeFromIndex(this.index.owners, owner, id);
666
- // Remove from full-text index
667
- const words = this.extractWords(value);
668
- words.forEach(word => this.removeFromIndex(this.index.fullText, word, id));
669
- }
670
- else {
671
- // Add to indices
672
- this.addToIndex(this.index.keys, key, id);
673
- tags.forEach(tag => this.addToIndex(this.index.tags, tag, id));
674
- this.addToIndex(this.index.types, type, id);
675
- this.addToIndex(this.index.namespaces, namespace, id);
676
- this.addToIndex(this.index.owners, owner, id);
677
- // Add to full-text index
678
- const words = this.extractWords(value);
679
- words.forEach(word => this.addToIndex(this.index.fullText, word, id));
680
- }
681
- }
682
- addToIndex(indexMap, key, entryId) {
683
- if (!indexMap.has(key)) {
684
- indexMap.set(key, []);
685
- }
686
- const entries = indexMap.get(key);
687
- if (!entries.includes(entryId)) {
688
- entries.push(entryId);
689
- }
690
- }
691
- removeFromIndex(indexMap, key, entryId) {
692
- const entries = indexMap.get(key);
693
- if (entries) {
694
- const index = entries.indexOf(entryId);
695
- if (index > -1) {
696
- entries.splice(index, 1);
697
- }
698
- if (entries.length === 0) {
699
- indexMap.delete(key);
700
- }
701
- }
702
- }
703
- extractWords(value) {
704
- const text = typeof value === 'string' ? value : JSON.stringify(value);
705
- return text.toLowerCase()
706
- .replace(/[^\w\s]/g, ' ')
707
- .split(/\s+/)
708
- .filter(word => word.length > 2);
709
- }
710
- updateCache(key, entry) {
711
- if (this.cache.size >= this.config.cacheSize) {
712
- this.evictCache();
713
- }
714
- this.cache.set(key, {
715
- entry: { ...entry },
716
- expiry: Date.now() + this.config.cacheTtl
717
- });
718
- }
719
- evictCache() {
720
- const entries = Array.from(this.cache.entries());
721
- entries.sort((a, b) => a[1].expiry - b[1].expiry);
722
- const toRemove = entries.slice(0, Math.floor(this.config.cacheSize * 0.1));
723
- toRemove.forEach(([key]) => this.cache.delete(key));
724
- }
725
- recordMetric(operation, duration) {
726
- const current = this.operationMetrics.get(operation) || { count: 0, totalTime: 0 };
727
- current.count++;
728
- current.totalTime += duration;
729
- this.operationMetrics.set(operation, current);
730
- }
731
- initializeStatistics() {
732
- return {
733
- overview: {
734
- totalEntries: 0,
735
- totalSize: 0,
736
- compressedEntries: 0,
737
- compressionRatio: 0,
738
- indexSize: 0,
739
- memoryUsage: 0,
740
- diskUsage: 0
741
- },
742
- distribution: {
743
- byNamespace: {},
744
- byType: {},
745
- byOwner: {},
746
- byAccessLevel: {}
747
- },
748
- temporal: {
749
- entriesCreatedLast24h: 0,
750
- entriesUpdatedLast24h: 0,
751
- entriesAccessedLast24h: 0
752
- },
753
- performance: {
754
- averageQueryTime: 0,
755
- averageWriteTime: 0,
756
- cacheHitRatio: 0,
757
- indexEfficiency: 0
758
- },
759
- health: {
760
- expiredEntries: 0,
761
- orphanedReferences: 0,
762
- duplicateKeys: 0,
763
- corruptedEntries: 0,
764
- recommendedCleanup: false
765
- },
766
- optimization: {
767
- suggestions: [],
768
- potentialSavings: {
769
- compression: 0,
770
- cleanup: 0,
771
- deduplication: 0
772
- },
773
- indexOptimization: []
774
- }
775
- };
776
- }
777
- // === COMPLEX IMPLEMENTATION METHODS ===
778
- // These would be fully implemented in a production system
779
- queryWithIndex(options) {
780
- // Implementation would use the index for efficient querying
781
- return Array.from(this.entries.values());
782
- }
783
- matchesQuery(entry, options) {
784
- // Comprehensive query matching logic
785
- if (options.namespace && entry.namespace !== options.namespace)
786
- return false;
787
- if (options.type && entry.type !== options.type)
788
- return false;
789
- if (options.owner && entry.owner !== options.owner)
790
- return false;
791
- if (options.accessLevel && entry.accessLevel !== options.accessLevel)
792
- return false;
793
- if (options.tags && options.tags.length > 0) {
794
- const hasAllTags = options.tags.every(tag => entry.tags.includes(tag));
795
- if (!hasAllTags)
796
- return false;
797
- }
798
- if (options.keyPattern) {
799
- const regex = new RegExp(options.keyPattern, 'i');
800
- if (!regex.test(entry.key))
801
- return false;
802
- }
803
- if (options.valueSearch) {
804
- const valueStr = JSON.stringify(entry.value).toLowerCase();
805
- if (!valueStr.includes(options.valueSearch.toLowerCase()))
806
- return false;
807
- }
808
- // Date range checks
809
- if (options.createdAfter && entry.createdAt < options.createdAfter)
810
- return false;
811
- if (options.createdBefore && entry.createdAt > options.createdBefore)
812
- return false;
813
- if (options.updatedAfter && entry.updatedAt < options.updatedAfter)
814
- return false;
815
- if (options.updatedBefore && entry.updatedAt > options.updatedBefore)
816
- return false;
817
- // Size checks
818
- if (options.sizeGreaterThan && entry.size <= options.sizeGreaterThan)
819
- return false;
820
- if (options.sizeLessThan && entry.size >= options.sizeLessThan)
821
- return false;
822
- return true;
823
- }
824
- getPropertyValue(entry, property) {
825
- switch (property) {
826
- case 'key': return entry.key;
827
- case 'createdAt': return entry.createdAt.getTime();
828
- case 'updatedAt': return entry.updatedAt.getTime();
829
- case 'lastAccessedAt': return entry.lastAccessedAt.getTime();
830
- case 'size': return entry.size;
831
- case 'type': return entry.type;
832
- default: return entry.key;
833
- }
834
- }
835
- generateAggregations(entries, aggregateBy) {
836
- const aggregations = {};
837
- switch (aggregateBy) {
838
- case 'namespace':
839
- aggregations.namespaces = this.aggregateByProperty(entries, 'namespace');
840
- break;
841
- case 'type':
842
- aggregations.types = this.aggregateByProperty(entries, 'type');
843
- break;
844
- case 'owner':
845
- aggregations.owners = this.aggregateByProperty(entries, 'owner');
846
- break;
847
- case 'tags':
848
- aggregations.tags = this.aggregateByTags(entries);
849
- break;
850
- }
851
- return aggregations;
852
- }
853
- aggregateByProperty(entries, property) {
854
- const result = {};
855
- for (const entry of entries) {
856
- const value = String(entry[property]);
857
- if (!result[value]) {
858
- result[value] = { count: 0, totalSize: 0 };
859
- }
860
- result[value].count++;
861
- result[value].totalSize += entry.size;
862
- }
863
- return result;
864
- }
865
- aggregateByTags(entries) {
866
- const result = {};
867
- for (const entry of entries) {
868
- for (const tag of entry.tags) {
869
- if (!result[tag]) {
870
- result[tag] = { count: 0, totalSize: 0 };
871
- }
872
- result[tag].count++;
873
- result[tag].totalSize += entry.size;
874
- }
875
- }
876
- return result;
877
- }
878
- // === EXPORT/IMPORT HELPERS ===
879
- prepareJsonExport(entries, options) {
880
- const exportData = {
881
- metadata: {
882
- exportedAt: new Date().toISOString(),
883
- version: '1.0',
884
- totalEntries: entries.length,
885
- format: 'json'
886
- },
887
- entries: options.includeMetadata
888
- ? entries
889
- : entries.map(entry => ({
890
- key: entry.key,
891
- value: entry.value,
892
- type: entry.type,
893
- namespace: entry.namespace,
894
- tags: entry.tags
895
- }))
896
- };
897
- return JSON.stringify(exportData, null, 2);
898
- }
899
- prepareCsvExport(entries, options) {
900
- // CSV export implementation
901
- const headers = ['key', 'value', 'type', 'namespace', 'tags'];
902
- const rows = entries.map(entry => [
903
- entry.key,
904
- JSON.stringify(entry.value),
905
- entry.type,
906
- entry.namespace,
907
- entry.tags.join(';')
908
- ]);
909
- return [headers, ...rows].map(row => row.join(',')).join('\n');
910
- }
911
- prepareXmlExport(entries, options) {
912
- // XML export implementation
913
- let xml = '<?xml version="1.0" encoding="UTF-8"?>\n<memory>\n';
914
- for (const entry of entries) {
915
- xml += ` <entry>\n`;
916
- xml += ` <key>${this.escapeXml(entry.key)}</key>\n`;
917
- xml += ` <value>${this.escapeXml(JSON.stringify(entry.value))}</value>\n`;
918
- xml += ` <type>${this.escapeXml(entry.type)}</type>\n`;
919
- xml += ` <namespace>${this.escapeXml(entry.namespace)}</namespace>\n`;
920
- xml += ` <tags>${this.escapeXml(entry.tags.join(','))}</tags>\n`;
921
- xml += ` </entry>\n`;
922
- }
923
- xml += '</memory>';
924
- return xml;
925
- }
926
- prepareYamlExport(entries, options) {
927
- // YAML export implementation - simplified
928
- let yaml = 'memory:\n';
929
- for (const entry of entries) {
930
- yaml += ` - key: "${entry.key}"\n`;
931
- yaml += ` value: ${JSON.stringify(entry.value)}\n`;
932
- yaml += ` type: "${entry.type}"\n`;
933
- yaml += ` namespace: "${entry.namespace}"\n`;
934
- yaml += ` tags: [${entry.tags.map(t => `"${t}"`).join(', ')}]\n`;
935
- }
936
- return yaml;
937
- }
938
- escapeXml(str) {
939
- return str
940
- .replace(/&/g, '&amp;')
941
- .replace(/</g, '&lt;')
942
- .replace(/>/g, '&gt;')
943
- .replace(/"/g, '&quot;')
944
- .replace(/'/g, '&apos;');
945
- }
946
- parseJsonImport(content) {
947
- const data = JSON.parse(content);
948
- return data.entries || data;
949
- }
950
- parseCsvImport(content) {
951
- // Simple CSV parsing
952
- const lines = content.split('\n');
953
- const headers = lines[0].split(',');
954
- const entries = [];
955
- for (let i = 1; i < lines.length; i++) {
956
- const values = lines[i].split(',');
957
- const entry = {};
958
- for (let j = 0; j < headers.length; j++) {
959
- entry[headers[j]] = values[j];
960
- }
961
- entries.push(entry);
962
- }
963
- return entries;
964
- }
965
- parseXmlImport(content) {
966
- // XML parsing would require a proper XML parser
967
- throw new Error('XML import not implemented in this example');
968
- }
969
- parseYamlImport(content) {
970
- // YAML parsing would require a YAML parser
971
- throw new Error('YAML import not implemented in this example');
972
- }
973
- validateImportData(data) {
974
- return data.filter(item => {
975
- return item.key && item.value !== undefined;
976
- });
977
- }
978
- transformImportData(data, transformation) {
979
- return data.map(item => {
980
- const transformed = { ...item };
981
- // Apply key mapping
982
- if (transformation.keyMapping) {
983
- for (const [oldKey, newKey] of Object.entries(transformation.keyMapping)) {
984
- if (transformed[oldKey] !== undefined) {
985
- transformed[newKey] = transformed[oldKey];
986
- delete transformed[oldKey];
987
- }
988
- }
989
- }
990
- // Apply value transformation
991
- if (transformation.valueTransformation) {
992
- transformed.value = transformation.valueTransformation(transformed.value);
993
- }
994
- // Extract metadata
995
- if (transformation.metadataExtraction) {
996
- transformed.metadata = transformation.metadataExtraction(transformed);
997
- }
998
- return transformed;
999
- });
1000
- }
1001
- async importSingleEntry(item, options) {
1002
- const existing = this.findEntryByKey(item.key, item.namespace || options.namespace);
1003
- if (existing) {
1004
- switch (options.conflictResolution) {
1005
- case 'skip':
1006
- return { action: 'skipped' };
1007
- case 'overwrite':
1008
- await this.update(item.key, item.value, { namespace: item.namespace });
1009
- return { action: 'updated' };
1010
- case 'merge':
1011
- await this.update(item.key, item.value, {
1012
- namespace: item.namespace,
1013
- merge: true
1014
- });
1015
- return { action: 'updated' };
1016
- case 'rename':
1017
- const newKey = `${item.key}_imported_${Date.now()}`;
1018
- await this.store(newKey, item.value, {
1019
- namespace: item.namespace,
1020
- type: item.type,
1021
- tags: item.tags,
1022
- metadata: item.metadata
1023
- });
1024
- return { action: 'imported' };
1025
- default:
1026
- return {
1027
- action: 'conflict',
1028
- message: `Key '${item.key}' already exists`
1029
- };
1030
- }
1031
- }
1032
- else {
1033
- await this.store(item.key, item.value, {
1034
- namespace: item.namespace || options.namespace,
1035
- type: item.type,
1036
- tags: item.tags,
1037
- metadata: item.metadata
1038
- });
1039
- return { action: 'imported' };
1040
- }
1041
- }
1042
- // === STATISTICS CALCULATION ===
1043
- calculateStatistics() {
1044
- const entries = Array.from(this.entries.values());
1045
- const now = new Date();
1046
- const last24h = new Date(now.getTime() - (24 * 60 * 60 * 1000));
1047
- const stats = {
1048
- overview: {
1049
- totalEntries: entries.length,
1050
- totalSize: entries.reduce((sum, entry) => sum + entry.size, 0),
1051
- compressedEntries: entries.filter(entry => entry.compressed).length,
1052
- compressionRatio: 0,
1053
- indexSize: this.calculateIndexSize(),
1054
- memoryUsage: process.memoryUsage().heapUsed,
1055
- diskUsage: 0 // Would be calculated from actual file system
1056
- },
1057
- distribution: {
1058
- byNamespace: this.calculateDistribution(entries, 'namespace'),
1059
- byType: this.calculateDistribution(entries, 'type'),
1060
- byOwner: this.calculateDistribution(entries, 'owner'),
1061
- byAccessLevel: this.calculateDistribution(entries, 'accessLevel')
1062
- },
1063
- temporal: {
1064
- entriesCreatedLast24h: entries.filter(e => e.createdAt >= last24h).length,
1065
- entriesUpdatedLast24h: entries.filter(e => e.updatedAt >= last24h).length,
1066
- entriesAccessedLast24h: entries.filter(e => e.lastAccessedAt >= last24h).length,
1067
- oldestEntry: entries.length > 0 ?
1068
- entries.reduce((oldest, entry) => entry.createdAt < oldest.createdAt ? entry : oldest).createdAt : undefined,
1069
- newestEntry: entries.length > 0 ?
1070
- entries.reduce((newest, entry) => entry.createdAt > newest.createdAt ? entry : newest).createdAt : undefined
1071
- },
1072
- performance: this.calculatePerformanceMetrics(),
1073
- health: this.calculateHealthMetrics(entries, now),
1074
- optimization: this.generateOptimizationSuggestions(entries)
1075
- };
1076
- // Calculate compression ratio
1077
- const uncompressedSize = entries.filter(e => !e.compressed).reduce((sum, e) => sum + e.size, 0);
1078
- const compressedSize = entries.filter(e => e.compressed).reduce((sum, e) => sum + e.size, 0);
1079
- stats.overview.compressionRatio = uncompressedSize > 0 ?
1080
- (uncompressedSize - compressedSize) / uncompressedSize : 0;
1081
- return stats;
1082
- }
1083
- calculateDistribution(entries, property) {
1084
- const distribution = {};
1085
- for (const entry of entries) {
1086
- const value = String(entry[property]);
1087
- if (!distribution[value]) {
1088
- distribution[value] = { count: 0, size: 0 };
1089
- }
1090
- distribution[value].count++;
1091
- distribution[value].size += entry.size;
1092
- }
1093
- return distribution;
1094
- }
1095
- calculateIndexSize() {
1096
- let size = 0;
1097
- for (const [, entries] of this.index.keys) {
1098
- size += entries.length * 50; // Rough estimate
1099
- }
1100
- return size;
1101
- }
1102
- calculatePerformanceMetrics() {
1103
- const queryMetrics = this.operationMetrics.get('query') || { count: 0, totalTime: 0 };
1104
- const writeMetrics = this.operationMetrics.get('store') || { count: 0, totalTime: 0 };
1105
- const cacheMetrics = this.operationMetrics.get('retrieve-cache') || { count: 0, totalTime: 0 };
1106
- const totalRetrieves = (this.operationMetrics.get('retrieve') || { count: 0 }).count + cacheMetrics.count;
1107
- return {
1108
- averageQueryTime: queryMetrics.count > 0 ? queryMetrics.totalTime / queryMetrics.count : 0,
1109
- averageWriteTime: writeMetrics.count > 0 ? writeMetrics.totalTime / writeMetrics.count : 0,
1110
- cacheHitRatio: totalRetrieves > 0 ? cacheMetrics.count / totalRetrieves : 0,
1111
- indexEfficiency: this.config.indexingEnabled ? 0.95 : 0 // Placeholder
1112
- };
1113
- }
1114
- calculateHealthMetrics(entries, now) {
1115
- const expiredEntries = entries.filter(e => e.expiresAt && e.expiresAt < now).length;
1116
- const duplicateKeys = this.findDuplicateKeys(entries);
1117
- return {
1118
- expiredEntries,
1119
- orphanedReferences: 0, // Would be calculated by checking references
1120
- duplicateKeys: duplicateKeys.length,
1121
- corruptedEntries: 0, // Would be calculated by validating checksums
1122
- recommendedCleanup: expiredEntries > 10 || duplicateKeys.length > 5
1123
- };
1124
- }
1125
- generateOptimizationSuggestions(entries) {
1126
- const suggestions = [];
1127
- const potentialSavings = { compression: 0, cleanup: 0, deduplication: 0 };
1128
- // Compression suggestions
1129
- const uncompressedLarge = entries.filter(e => !e.compressed && e.size > this.config.compressionThreshold);
1130
- if (uncompressedLarge.length > 0) {
1131
- suggestions.push(`${uncompressedLarge.length} entries could benefit from compression`);
1132
- potentialSavings.compression = uncompressedLarge.reduce((sum, e) => sum + e.size * 0.6, 0);
1133
- }
1134
- // Cleanup suggestions
1135
- const now = new Date();
1136
- const oldEntries = entries.filter(e => now.getTime() - e.lastAccessedAt.getTime() > (30 * 24 * 60 * 60 * 1000));
1137
- if (oldEntries.length > 0) {
1138
- suggestions.push(`${oldEntries.length} entries haven't been accessed in 30+ days`);
1139
- potentialSavings.cleanup = oldEntries.reduce((sum, e) => sum + e.size, 0);
1140
- }
1141
- // Deduplication suggestions
1142
- const duplicates = this.findDuplicateKeys(entries);
1143
- if (duplicates.length > 0) {
1144
- suggestions.push(`${duplicates.length} duplicate keys found`);
1145
- potentialSavings.deduplication = duplicates.reduce((sum, group) => sum + group.entries.slice(1).reduce((s, e) => s + e.size, 0), 0);
1146
- }
1147
- return {
1148
- suggestions,
1149
- potentialSavings,
1150
- indexOptimization: this.config.indexingEnabled ?
1151
- ['Consider periodic index rebuilding for optimal performance'] :
1152
- ['Enable indexing for better query performance']
1153
- };
1154
- }
1155
- findDuplicateKeys(entries) {
1156
- const keyMap = new Map();
1157
- for (const entry of entries) {
1158
- const compositeKey = `${entry.namespace}:${entry.key}`;
1159
- if (!keyMap.has(compositeKey)) {
1160
- keyMap.set(compositeKey, []);
1161
- }
1162
- keyMap.get(compositeKey).push(entry);
1163
- }
1164
- const duplicates = [];
1165
- for (const [compositeKey, entryList] of keyMap) {
1166
- if (entryList.length > 1) {
1167
- const [namespace, key] = compositeKey.split(':', 2);
1168
- duplicates.push({ key, namespace, entries: entryList });
1169
- }
1170
- }
1171
- return duplicates;
1172
- }
1173
- // === CLEANUP IMPLEMENTATION ===
1174
- async applyRetentionPolicies(entry) {
1175
- // Apply matching retention policies to the entry
1176
- for (const policy of this.retentionPolicies.values()) {
1177
- if (this.policyMatches(policy, entry)) {
1178
- await this.enforceRetentionPolicy(policy, entry);
1179
- }
1180
- }
1181
- }
1182
- policyMatches(policy, entry) {
1183
- if (policy.namespace && entry.namespace !== policy.namespace)
1184
- return false;
1185
- if (policy.type && entry.type !== policy.type)
1186
- return false;
1187
- if (policy.tags && !policy.tags.every(tag => entry.tags.includes(tag)))
1188
- return false;
1189
- return true;
1190
- }
1191
- async enforceRetentionPolicy(policy, entry) {
1192
- const now = new Date();
1193
- // Check age limit
1194
- if (policy.maxAge) {
1195
- const ageInDays = (now.getTime() - entry.createdAt.getTime()) / (24 * 60 * 60 * 1000);
1196
- if (ageInDays > policy.maxAge) {
1197
- await this.deleteEntry(entry.id);
1198
- return;
1199
- }
1200
- }
1201
- // Count and size limits would require more complex logic
1202
- // This is a simplified implementation
1203
- }
1204
- async applyRetentionPolicy(policy, dryRun) {
1205
- const matchingEntries = Array.from(this.entries.values()).filter(entry => {
1206
- if (policy.namespace && entry.namespace !== policy.namespace)
1207
- return false;
1208
- return true;
1209
- });
1210
- let toRemove = [];
1211
- const now = new Date();
1212
- // Apply age limit
1213
- if (policy.maxAge) {
1214
- const cutoffDate = new Date(now.getTime() - (policy.maxAge * 24 * 60 * 60 * 1000));
1215
- toRemove = matchingEntries.filter(entry => entry.createdAt < cutoffDate);
1216
- }
1217
- // Apply count limit
1218
- if (policy.maxCount && matchingEntries.length > policy.maxCount) {
1219
- const sorted = matchingEntries.sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
1220
- toRemove = sorted.slice(0, matchingEntries.length - policy.maxCount);
1221
- }
1222
- // Apply size limit
1223
- if (policy.sizeLimit) {
1224
- const totalSize = matchingEntries.reduce((sum, entry) => sum + entry.size, 0);
1225
- if (totalSize > policy.sizeLimit) {
1226
- const sorted = matchingEntries.sort((a, b) => a.lastAccessedAt.getTime() - b.lastAccessedAt.getTime());
1227
- let currentSize = totalSize;
1228
- toRemove = [];
1229
- for (const entry of sorted) {
1230
- if (currentSize <= policy.sizeLimit)
1231
- break;
1232
- toRemove.push(entry);
1233
- currentSize -= entry.size;
1234
- }
1235
- }
1236
- }
1237
- const spaceSaved = toRemove.reduce((sum, entry) => sum + entry.size, 0);
1238
- if (!dryRun) {
1239
- for (const entry of toRemove) {
1240
- await this.deleteEntry(entry.id);
1241
- }
1242
- }
1243
- return { removed: toRemove.length, spaceSaved };
1244
- }
1245
- async cleanupOrphanedReferences(dryRun) {
1246
- // Implementation would check for broken references between entries
1247
- return 0;
1248
- }
1249
- async removeDuplicateEntries(dryRun) {
1250
- const duplicates = this.findDuplicateKeys(Array.from(this.entries.values()));
1251
- let removed = 0;
1252
- let spaceSaved = 0;
1253
- for (const duplicate of duplicates) {
1254
- // Keep the newest entry, remove others
1255
- const sorted = duplicate.entries.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
1256
- const toRemove = sorted.slice(1);
1257
- for (const entry of toRemove) {
1258
- spaceSaved += entry.size;
1259
- removed++;
1260
- if (!dryRun) {
1261
- await this.deleteEntry(entry.id);
1262
- }
1263
- }
1264
- }
1265
- return { removed, spaceSaved };
1266
- }
1267
- async archiveEntries(entries, archivePath) {
1268
- const archiveData = {
1269
- archivedAt: new Date().toISOString(),
1270
- entries: entries
1271
- };
1272
- const archiveFile = join(archivePath, `archive-${Date.now()}.json`);
1273
- await fs.mkdir(dirname(archiveFile), { recursive: true });
1274
- await fs.writeFile(archiveFile, JSON.stringify(archiveData, null, 2));
1275
- // Remove archived entries from active memory
1276
- for (const entry of entries) {
1277
- await this.deleteEntry(entry.id);
1278
- }
1279
- }
1280
- async rebuildIndex() {
1281
- this.logger.info('Rebuilding memory index');
1282
- this.index = this.createEmptyIndex();
1283
- for (const entry of this.entries.values()) {
1284
- this.updateIndex(entry, 'create');
1285
- }
1286
- this.logger.info('Memory index rebuilt successfully');
1287
- }
1288
- startAutoCleanup() {
1289
- this.cleanupInterval = setInterval(async () => {
1290
- try {
1291
- await this.cleanup({
1292
- removeExpired: true,
1293
- removeUnaccessed: 7, // Remove entries not accessed in 7 days
1294
- compressEligible: true
1295
- });
1296
- }
1297
- catch (error) {
1298
- this.logger.error('Auto cleanup failed', error);
1299
- }
1300
- }, this.config.cleanupInterval);
1301
- }
1302
- // === PERSISTENCE ===
1303
- async loadPersistedData() {
1304
- try {
1305
- const dataFile = join(this.dataPath, 'entries.json');
1306
- const indexFile = join(this.indexPath, 'index.json');
1307
- // Load entries
1308
- try {
1309
- const entriesData = await fs.readFile(dataFile, 'utf-8');
1310
- const entriesArray = JSON.parse(entriesData);
1311
- for (const entryData of entriesArray) {
1312
- // Convert date strings back to Date objects
1313
- entryData.createdAt = new Date(entryData.createdAt);
1314
- entryData.updatedAt = new Date(entryData.updatedAt);
1315
- entryData.lastAccessedAt = new Date(entryData.lastAccessedAt);
1316
- if (entryData.expiresAt) {
1317
- entryData.expiresAt = new Date(entryData.expiresAt);
1318
- }
1319
- this.entries.set(entryData.id, entryData);
1320
- }
1321
- this.logger.info(`Loaded ${entriesArray.length} entries from persistence`);
1322
- }
1323
- catch (error) {
1324
- // File doesn't exist or is corrupted
1325
- this.logger.info('No persisted entries found, starting fresh');
1326
- }
1327
- // Rebuild index
1328
- if (this.config.indexingEnabled) {
1329
- await this.rebuildIndex();
1330
- }
1331
- }
1332
- catch (error) {
1333
- this.logger.error('Failed to load persisted data', error);
1334
- }
1335
- }
1336
- async persistData() {
1337
- try {
1338
- const dataFile = join(this.dataPath, 'entries.json');
1339
- const entriesArray = Array.from(this.entries.values());
1340
- await fs.writeFile(dataFile, JSON.stringify(entriesArray, null, 2));
1341
- this.logger.info(`Persisted ${entriesArray.length} entries`);
1342
- }
1343
- catch (error) {
1344
- this.logger.error('Failed to persist data', error);
1345
- }
1346
- }
1347
- async createBackup() {
1348
- try {
1349
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
1350
- const backupFile = join(this.backupPath, `backup-${timestamp}.json`);
1351
- const backup = {
1352
- timestamp: new Date().toISOString(),
1353
- version: '1.0',
1354
- entries: Array.from(this.entries.values()),
1355
- statistics: await this.getStatistics()
1356
- };
1357
- await fs.writeFile(backupFile, JSON.stringify(backup, null, 2));
1358
- this.logger.info(`Created backup: ${backupFile}`);
1359
- // Clean old backups
1360
- await this.cleanOldBackups();
1361
- }
1362
- catch (error) {
1363
- this.logger.error('Failed to create backup', error);
1364
- }
1365
- }
1366
- async cleanOldBackups() {
1367
- try {
1368
- const files = await fs.readdir(this.backupPath);
1369
- const backupFiles = files.filter(f => f.startsWith('backup-') && f.endsWith('.json'));
1370
- if (backupFiles.length <= this.config.backupRetention) {
1371
- return;
1372
- }
1373
- // Sort by creation time and remove oldest
1374
- const fileStats = await Promise.all(backupFiles.map(async (file) => ({
1375
- file,
1376
- stat: await fs.stat(join(this.backupPath, file))
1377
- })));
1378
- fileStats.sort((a, b) => a.stat.mtime.getTime() - b.stat.mtime.getTime());
1379
- const toDelete = fileStats.slice(0, fileStats.length - this.config.backupRetention);
1380
- for (const { file } of toDelete) {
1381
- await fs.unlink(join(this.backupPath, file));
1382
- this.logger.debug(`Deleted old backup: ${file}`);
1383
- }
1384
- }
1385
- catch (error) {
1386
- this.logger.error('Failed to clean old backups', error);
1387
- }
1388
- }
1389
- // === UTILITY METHODS ===
1390
- async compressData(data) {
1391
- // In a real implementation, you would use a compression library
1392
- return data;
1393
- }
1394
- async encryptData(data, encryption) {
1395
- // In a real implementation, you would use a proper encryption library
1396
- return data;
1397
- }
1398
- // === PUBLIC API ===
1399
- async listNamespaces() {
1400
- const namespaces = new Set();
1401
- for (const entry of this.entries.values()) {
1402
- namespaces.add(entry.namespace);
1403
- }
1404
- return Array.from(namespaces).sort();
1405
- }
1406
- async listTypes() {
1407
- const types = new Set();
1408
- for (const entry of this.entries.values()) {
1409
- types.add(entry.type);
1410
- }
1411
- return Array.from(types).sort();
1412
- }
1413
- async listTags() {
1414
- const tags = new Set();
1415
- for (const entry of this.entries.values()) {
1416
- entry.tags.forEach(tag => tags.add(tag));
1417
- }
1418
- return Array.from(tags).sort();
1419
- }
1420
- async getEntryById(id) {
1421
- return this.entries.get(id) || null;
1422
- }
1423
- async exists(key, namespace) {
1424
- return this.findEntryByKey(key, namespace) !== undefined;
1425
- }
1426
- async count(options = {}) {
1427
- const result = await this.query({ ...options, limit: 0 });
1428
- return result.total;
1429
- }
1430
- async clear(namespace) {
1431
- const entries = Array.from(this.entries.values());
1432
- const toDelete = namespace
1433
- ? entries.filter(entry => entry.namespace === namespace)
1434
- : entries;
1435
- for (const entry of toDelete) {
1436
- await this.deleteEntry(entry.id);
1437
- }
1438
- return toDelete.length;
1439
- }
1440
- getConfiguration() {
1441
- return { ...this.config };
1442
- }
1443
- async updateConfiguration(updates) {
1444
- this.config = { ...this.config, ...updates };
1445
- // Apply configuration changes
1446
- if (updates.autoCleanup !== undefined) {
1447
- if (updates.autoCleanup && !this.cleanupInterval) {
1448
- this.startAutoCleanup();
1449
- }
1450
- else if (!updates.autoCleanup && this.cleanupInterval) {
1451
- clearInterval(this.cleanupInterval);
1452
- this.cleanupInterval = undefined;
1453
- }
1454
- }
1455
- this.emit('memory:configuration-updated', { config: this.config });
1456
- }
1457
- }
1458
- //# sourceMappingURL=advanced-memory-manager.js.map