claude-flow-novice 2.0.4 → 2.0.5

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 (496) hide show
  1. package/dist/src/cli/commands/guidance.js +668 -487
  2. package/dist/src/cli/commands/index-validate.js +29 -18
  3. package/dist/src/cli/commands/mcp-troubleshoot.js +282 -230
  4. package/dist/src/cli/commands/neural-goal-init.js +125 -92
  5. package/dist/src/cli/commands/swarm-exec.js +393 -317
  6. package/dist/src/cli/commands/validate-framework.js +1100 -983
  7. package/dist/src/cli/commands/validate.js +223 -144
  8. package/dist/src/cli/main.js +1 -1
  9. package/dist/src/cli/simple-commands/__tests__/agent.test.js +277 -265
  10. package/dist/src/cli/simple-commands/__tests__/memory.test.js +7 -6
  11. package/dist/src/cli/simple-commands/__tests__/swarm.test.js +356 -373
  12. package/dist/src/cli/simple-commands/__tests__/task.test.js +7 -6
  13. package/dist/src/cli/simple-commands/agent.js +193 -157
  14. package/dist/src/cli/simple-commands/analysis.js +446 -336
  15. package/dist/src/cli/simple-commands/automation-executor.js +1339 -1095
  16. package/dist/src/cli/simple-commands/automation.js +469 -481
  17. package/dist/src/cli/simple-commands/batch-manager.js +313 -261
  18. package/dist/src/cli/simple-commands/claude-telemetry.js +267 -241
  19. package/dist/src/cli/simple-commands/claude-track.js +90 -68
  20. package/dist/src/cli/simple-commands/concurrent-display.js +320 -266
  21. package/dist/src/cli/simple-commands/config.js +290 -245
  22. package/dist/src/cli/simple-commands/coordination.js +234 -182
  23. package/dist/src/cli/simple-commands/enhanced-ui-views.js +615 -812
  24. package/dist/src/cli/simple-commands/enhanced-webui-complete.js +981 -922
  25. package/dist/src/cli/simple-commands/fix-hook-variables.js +294 -274
  26. package/dist/src/cli/simple-commands/github/gh-coordinator.js +457 -378
  27. package/dist/src/cli/simple-commands/github/github-api.js +574 -535
  28. package/dist/src/cli/simple-commands/github/init.js +303 -276
  29. package/dist/src/cli/simple-commands/github.js +247 -222
  30. package/dist/src/cli/simple-commands/goal.js +63 -51
  31. package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +278 -208
  32. package/dist/src/cli/simple-commands/hive-mind/communication.js +696 -601
  33. package/dist/src/cli/simple-commands/hive-mind/core.js +979 -907
  34. package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +655 -406
  35. package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1245 -1125
  36. package/dist/src/cli/simple-commands/hive-mind/memory.js +1090 -854
  37. package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +574 -459
  38. package/dist/src/cli/simple-commands/hive-mind/performance-test.js +347 -263
  39. package/dist/src/cli/simple-commands/hive-mind/queen.js +768 -727
  40. package/dist/src/cli/simple-commands/hive-mind/session-manager.js +1049 -745
  41. package/dist/src/cli/simple-commands/hive-mind-optimize.js +283 -227
  42. package/dist/src/cli/simple-commands/hive-mind-wizard.js +217 -174
  43. package/dist/src/cli/simple-commands/hive-mind.js +2282 -1841
  44. package/dist/src/cli/simple-commands/hive.js +79 -90
  45. package/dist/src/cli/simple-commands/hook-safety.js +521 -431
  46. package/dist/src/cli/simple-commands/hooks/session-start-soul.js +254 -203
  47. package/dist/src/cli/simple-commands/hooks.js +1204 -1064
  48. package/dist/src/cli/simple-commands/init/agent-copier.js +319 -294
  49. package/dist/src/cli/simple-commands/init/batch-init.js +562 -496
  50. package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +19 -13
  51. package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +19 -13
  52. package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +88 -61
  53. package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +150 -125
  54. package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +49 -42
  55. package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +61 -43
  56. package/dist/src/cli/simple-commands/init/copy-revised-templates.js +147 -141
  57. package/dist/src/cli/simple-commands/init/executable-wrapper.js +44 -31
  58. package/dist/src/cli/simple-commands/init/gitignore-updater.js +90 -64
  59. package/dist/src/cli/simple-commands/init/help.js +107 -104
  60. package/dist/src/cli/simple-commands/init/hive-mind-init.js +528 -509
  61. package/dist/src/cli/simple-commands/init/index.js +1759 -1510
  62. package/dist/src/cli/simple-commands/init/performance-monitor.js +317 -234
  63. package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +504 -441
  64. package/dist/src/cli/simple-commands/init/rollback/index.js +364 -289
  65. package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +728 -652
  66. package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +481 -416
  67. package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +448 -369
  68. package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +2 -1
  69. package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +99 -122
  70. package/dist/src/cli/simple-commands/init/sparc/workflows.js +37 -32
  71. package/dist/src/cli/simple-commands/init/sparc-structure.js +62 -55
  72. package/dist/src/cli/simple-commands/init/template-copier.js +533 -421
  73. package/dist/src/cli/simple-commands/init/templates/coordination-md.js +6 -3
  74. package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +318 -344
  75. package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +218 -173
  76. package/dist/src/cli/simple-commands/init/templates/github-safe.js +75 -65
  77. package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +6 -3
  78. package/dist/src/cli/simple-commands/init/templates/readme-files.js +4 -2
  79. package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +230 -187
  80. package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +80 -53
  81. package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +85 -101
  82. package/dist/src/cli/simple-commands/init/validation/config-validator.js +330 -283
  83. package/dist/src/cli/simple-commands/init/validation/health-checker.js +561 -495
  84. package/dist/src/cli/simple-commands/init/validation/index.js +358 -302
  85. package/dist/src/cli/simple-commands/init/validation/mode-validator.js +359 -308
  86. package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +366 -389
  87. package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +268 -270
  88. package/dist/src/cli/simple-commands/init/validation/test-runner.js +447 -427
  89. package/dist/src/cli/simple-commands/init.js +2 -1
  90. package/dist/src/cli/simple-commands/mcp-health.js +158 -131
  91. package/dist/src/cli/simple-commands/mcp-integration-layer.js +634 -533
  92. package/dist/src/cli/simple-commands/mcp.js +400 -345
  93. package/dist/src/cli/simple-commands/memory-consolidation.js +537 -426
  94. package/dist/src/cli/simple-commands/memory.js +311 -247
  95. package/dist/src/cli/simple-commands/migrate-hooks.js +46 -39
  96. package/dist/src/cli/simple-commands/monitor.js +363 -294
  97. package/dist/src/cli/simple-commands/neural.js +65 -51
  98. package/dist/src/cli/simple-commands/pair-autofix-only.js +662 -538
  99. package/dist/src/cli/simple-commands/pair-basic.js +656 -528
  100. package/dist/src/cli/simple-commands/pair-old.js +543 -430
  101. package/dist/src/cli/simple-commands/pair-working.js +751 -615
  102. package/dist/src/cli/simple-commands/pair.js +751 -615
  103. package/dist/src/cli/simple-commands/performance-hooks.js +111 -83
  104. package/dist/src/cli/simple-commands/performance-metrics.js +433 -348
  105. package/dist/src/cli/simple-commands/process-ui-enhanced.js +787 -708
  106. package/dist/src/cli/simple-commands/process-ui.js +254 -230
  107. package/dist/src/cli/simple-commands/realtime-update-system.js +611 -525
  108. package/dist/src/cli/simple-commands/sparc/architecture.js +1530 -1704
  109. package/dist/src/cli/simple-commands/sparc/commands.js +516 -438
  110. package/dist/src/cli/simple-commands/sparc/completion.js +1481 -1224
  111. package/dist/src/cli/simple-commands/sparc/coordinator.js +978 -913
  112. package/dist/src/cli/simple-commands/sparc/index.js +298 -241
  113. package/dist/src/cli/simple-commands/sparc/phase-base.js +390 -314
  114. package/dist/src/cli/simple-commands/sparc/pseudocode.js +869 -965
  115. package/dist/src/cli/simple-commands/sparc/refinement.js +1273 -980
  116. package/dist/src/cli/simple-commands/sparc/specification.js +645 -559
  117. package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
  118. package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
  119. package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
  120. package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
  121. package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
  122. package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
  123. package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
  124. package/dist/src/cli/simple-commands/sparc-modes/index.js +55 -47
  125. package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
  126. package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
  127. package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
  128. package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
  129. package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
  130. package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
  131. package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
  132. package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
  133. package/dist/src/cli/simple-commands/sparc-modes/swarm.js +87 -101
  134. package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
  135. package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
  136. package/dist/src/cli/simple-commands/sparc.js +493 -465
  137. package/dist/src/cli/simple-commands/start-ui.js +132 -108
  138. package/dist/src/cli/simple-commands/start-wrapper.js +268 -240
  139. package/dist/src/cli/simple-commands/start.js +1 -1
  140. package/dist/src/cli/simple-commands/status.js +275 -254
  141. package/dist/src/cli/simple-commands/stream-chain-clean.js +171 -128
  142. package/dist/src/cli/simple-commands/stream-chain-fixed.js +82 -61
  143. package/dist/src/cli/simple-commands/stream-chain-real.js +331 -267
  144. package/dist/src/cli/simple-commands/stream-chain-working.js +263 -211
  145. package/dist/src/cli/simple-commands/stream-chain.js +318 -260
  146. package/dist/src/cli/simple-commands/stream-processor.js +315 -290
  147. package/dist/src/cli/simple-commands/swarm-executor.js +222 -189
  148. package/dist/src/cli/simple-commands/swarm-metrics-integration.js +300 -208
  149. package/dist/src/cli/simple-commands/swarm-ui.js +703 -623
  150. package/dist/src/cli/simple-commands/swarm-webui-integration.js +286 -258
  151. package/dist/src/cli/simple-commands/swarm.js +1082 -887
  152. package/dist/src/cli/simple-commands/task.js +206 -161
  153. package/dist/src/cli/simple-commands/timestamp-fix.js +89 -59
  154. package/dist/src/cli/simple-commands/token-tracker.js +316 -258
  155. package/dist/src/cli/simple-commands/tool-execution-framework.js +519 -433
  156. package/dist/src/cli/simple-commands/train-and-stream.js +331 -275
  157. package/dist/src/cli/simple-commands/training-pipeline.js +725 -619
  158. package/dist/src/cli/simple-commands/training.js +227 -170
  159. package/dist/src/cli/simple-commands/verification-hooks.js +284 -261
  160. package/dist/src/cli/simple-commands/verification-integration.js +417 -389
  161. package/dist/src/cli/simple-commands/verification-training-integration.js +606 -486
  162. package/dist/src/cli/simple-commands/verification.js +513 -493
  163. package/dist/src/cli/simple-commands/web-server.js +836 -766
  164. package/dist/src/cli/simple-commands/webui-validator.js +124 -106
  165. package/dist/src/coordination/byzantine-memory-channels.js +25 -1
  166. package/dist/src/coordination/event-bus/demo-wasm-integration.js +251 -212
  167. package/dist/src/coordination/event-bus/qe-event-bus.js +748 -608
  168. package/dist/src/coordination/event-bus/qe-event-bus.test.js +454 -379
  169. package/dist/src/coordination/iteration-tracker.js +454 -363
  170. package/dist/src/index.js +384 -35
  171. package/dist/src/mcp/DEPRECATED.js +60 -46
  172. package/dist/src/mcp/fixes/mcp-error-fixes.js +134 -115
  173. package/dist/src/mcp/implementations/agent-tracker.js +128 -114
  174. package/dist/src/mcp/implementations/daa-tools.js +350 -292
  175. package/dist/src/mcp/implementations/workflow-tools.js +361 -329
  176. package/dist/src/mcp/mcp-config-manager.js +1331 -1183
  177. package/dist/src/mcp/mcp-server-novice-simplified.js +17 -11
  178. package/dist/src/mcp/mcp-server-novice.js +17 -11
  179. package/dist/src/mcp/mcp-server-sdk.js +17 -11
  180. package/dist/src/mcp/mcp-server.js +1484 -1620
  181. package/dist/src/mcp/ruv-swarm-wrapper.js +239 -209
  182. package/dist/src/memory/advanced-serializer.js +589 -609
  183. package/dist/src/memory/enhanced-examples.js +305 -220
  184. package/dist/src/memory/enhanced-memory.js +336 -295
  185. package/dist/src/memory/enhanced-session-serializer.js +492 -408
  186. package/dist/src/memory/fallback-memory-system.js +1021 -900
  187. package/dist/src/memory/fallback-store.js +131 -93
  188. package/dist/src/memory/high-performance-serialization.js +730 -592
  189. package/dist/src/memory/in-memory-store.js +213 -161
  190. package/dist/src/memory/index.js +157 -123
  191. package/dist/src/memory/lock-free-structures.js +764 -578
  192. package/dist/src/memory/memory-mapped-persistence.js +766 -585
  193. package/dist/src/memory/memory-pressure-manager.js +707 -569
  194. package/dist/src/memory/migration.js +445 -358
  195. package/dist/src/memory/shared-memory.js +768 -641
  196. package/dist/src/memory/sqlite-store.js +325 -245
  197. package/dist/src/memory/sqlite-wrapper.js +151 -122
  198. package/dist/src/memory/swarm-memory.js +603 -470
  199. package/dist/src/memory/test-example.js +134 -126
  200. package/dist/src/memory/ultra-fast-memory-store.js +821 -622
  201. package/dist/src/memory/unified-memory-manager.js +437 -356
  202. package/dist/src/swarm/CodeRefactoringSwarm.js +952 -777
  203. package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +400 -332
  204. package/dist/src/utils/error-handler.js +2 -36
  205. package/dist/src/utils/github-cli-safe.js +64 -56
  206. package/dist/src/utils/github-cli-safety-wrapper.js +546 -451
  207. package/dist/src/utils/npx-isolated-cache.js +119 -104
  208. package/dist/src/utils/preference-manager.js +652 -622
  209. package/dist/src/utils/timezone-utils.js +105 -86
  210. package/dist/src/web/api/apm-routes.js +353 -0
  211. package/dist/src/web/api/config/api-config.js +184 -0
  212. package/dist/src/web/api/middleware/auth.js +203 -0
  213. package/dist/src/web/api/middleware/cache.js +273 -0
  214. package/dist/src/web/api/middleware/error-handler.js +257 -0
  215. package/dist/src/web/api/middleware/request-logger.js +215 -0
  216. package/dist/src/web/api/middleware/validation.js +323 -0
  217. package/dist/src/web/api/routes/events.js +463 -0
  218. package/dist/src/web/api/routes/hierarchy.js +300 -0
  219. package/dist/src/web/api/routes/index.js +12 -0
  220. package/dist/src/web/api/routes/metrics.js +559 -0
  221. package/dist/src/web/api/routes/parallel-status.js +359 -0
  222. package/dist/src/web/api/routes/status.js +448 -0
  223. package/dist/src/web/api/server.js +462 -0
  224. package/dist/src/web/dashboard/hooks/useWebSocket.js +383 -0
  225. package/dist/src/web/dashboard/index.js +85 -0
  226. package/dist/src/web/dashboard/realtime/CustomSyncManager.js +439 -0
  227. package/dist/src/web/dashboard/realtime/NativeWebSocketManager.js +323 -0
  228. package/dist/src/web/dashboard/realtime/PerformanceBenchmark.js +527 -0
  229. package/dist/src/web/dashboard/realtime/RealtimeCommunicationManager.js +474 -0
  230. package/dist/src/web/dashboard/realtime/RealtimeServer.js +666 -0
  231. package/dist/src/web/dashboard/realtime/SSEManager.js +426 -0
  232. package/dist/src/web/dashboard/types.js +4 -0
  233. package/dist/src/web/messaging/agent-status-tracker.js +453 -0
  234. package/dist/src/web/messaging/human-intervention-system.js +305 -0
  235. package/dist/src/web/messaging/message-filter.js +302 -0
  236. package/dist/src/web/messaging/swarm-message-router.js +324 -0
  237. package/dist/src/web/messaging/transparency-logger.js +421 -0
  238. package/dist/src/web/portal-server.js +460 -0
  239. package/dist/src/web/server.js +322 -0
  240. package/dist/src/web/websocket/apm-websocket-handler.js +453 -0
  241. package/dist/src/web/websocket/websocket-manager.js +780 -0
  242. package/package.json +5 -3
  243. package/dist/src/cli/minimal-main.js +0 -22
  244. package/dist/src/enterprise/analytics-manager.js +0 -1135
  245. package/dist/src/enterprise/audit-manager.js +0 -1115
  246. package/dist/src/enterprise/cloud-manager.js +0 -891
  247. package/dist/src/enterprise/deployment-manager.js +0 -966
  248. package/dist/src/enterprise/index.js +0 -6
  249. package/dist/src/enterprise/project-manager.js +0 -584
  250. package/dist/src/enterprise/security-manager.js +0 -991
  251. package/dist/src/migration/index.js +0 -92
  252. package/dist/src/migration/logger.js +0 -121
  253. package/dist/src/migration/migration-analyzer.js +0 -268
  254. package/dist/src/migration/migration-runner.js +0 -522
  255. package/dist/src/migration/migration-validator.js +0 -285
  256. package/dist/src/migration/progress-reporter.js +0 -150
  257. package/dist/src/migration/rollback-manager.js +0 -321
  258. package/dist/src/migration/tests/migration-system.test.js +0 -7
  259. package/dist/src/migration/types.js +0 -3
  260. package/dist/src/swarm/__tests__/integration.test.js +0 -227
  261. package/dist/src/swarm/__tests__/prompt-copier.test.js +0 -344
  262. package/dist/src/swarm/advanced-orchestrator.js +0 -1095
  263. package/dist/src/swarm/claude-code-interface.js +0 -961
  264. package/dist/src/swarm/claude-flow-executor.js +0 -229
  265. package/dist/src/swarm/consensus-coordinator.js +0 -475
  266. package/dist/src/swarm/coordinator.js +0 -2993
  267. package/dist/src/swarm/direct-executor.js +0 -1180
  268. package/dist/src/swarm/error-recovery/advanced-error-detection.js +0 -691
  269. package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +0 -998
  270. package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +0 -1197
  271. package/dist/src/swarm/error-recovery/recovery-monitoring.js +0 -772
  272. package/dist/src/swarm/error-recovery/resilience-architecture.js +0 -714
  273. package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +0 -1319
  274. package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +0 -808
  275. package/dist/src/swarm/executor-v2.js +0 -322
  276. package/dist/src/swarm/executor.js +0 -815
  277. package/dist/src/swarm/hive-mind-integration.js +0 -703
  278. package/dist/src/swarm/index.js +0 -41
  279. package/dist/src/swarm/json-output-aggregator.js +0 -267
  280. package/dist/src/swarm/large-scale-coordinator.js +0 -542
  281. package/dist/src/swarm/mcp-integration-wrapper.js +0 -628
  282. package/dist/src/swarm/memory.js +0 -1117
  283. package/dist/src/swarm/optimizations/__tests__/optimization.test.js +0 -348
  284. package/dist/src/swarm/optimizations/async-file-manager.js +0 -285
  285. package/dist/src/swarm/optimizations/circular-buffer.js +0 -162
  286. package/dist/src/swarm/optimizations/connection-pool.js +0 -244
  287. package/dist/src/swarm/optimizations/index.js +0 -28
  288. package/dist/src/swarm/optimizations/optimized-executor.js +0 -320
  289. package/dist/src/swarm/optimizations/ttl-map.js +0 -234
  290. package/dist/src/swarm/prompt-cli.js +0 -200
  291. package/dist/src/swarm/prompt-copier-enhanced.js +0 -202
  292. package/dist/src/swarm/prompt-copier.js +0 -381
  293. package/dist/src/swarm/prompt-manager.js +0 -295
  294. package/dist/src/swarm/prompt-utils.js +0 -310
  295. package/dist/src/swarm/result-aggregator.js +0 -718
  296. package/dist/src/swarm/sparc-executor.js +0 -1568
  297. package/dist/src/swarm/strategies/auto.js +0 -758
  298. package/dist/src/swarm/strategies/base.js +0 -128
  299. package/dist/src/swarm/strategies/research.js +0 -914
  300. package/dist/src/swarm/strategies/strategy-metrics-patch.js +0 -2
  301. package/dist/src/swarm/types.js +0 -52
  302. package/dist/src/swarm/workers/copy-worker.js +0 -56
  303. package/dist/src/validators/epic-config-schema.js +0 -214
  304. package/dist/src/validators/index.js +0 -10
  305. package/dist/src/validators/swarm-init-validator.js +0 -259
  306. package/dist/src/validators/todowrite-batching-validator.js +0 -215
  307. package/dist/src/validators/todowrite-integration.js +0 -187
  308. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js +0 -23
  309. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +0 -57
  310. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +0 -401
  311. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +0 -181
  312. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js +0 -44
  313. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +0 -157
  314. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js +0 -71
  315. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/editorState/browser/editorState.js +0 -112
  316. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findController.js +0 -990
  317. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findDecorations.js +0 -296
  318. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findModel.js +0 -488
  319. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findOptionsWidget.js +0 -138
  320. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findState.js +0 -243
  321. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findWidget.js +0 -1177
  322. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/folding.js +0 -1093
  323. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +0 -133
  324. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingModel.js +0 -538
  325. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingRanges.js +0 -351
  326. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +0 -49
  327. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/format.js +0 -360
  328. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formatActions.js +0 -263
  329. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formattingEdit.js +0 -54
  330. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +0 -149
  331. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/hover/browser/contentHover.js +0 -874
  332. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commandIds.js +0 -7
  333. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commands.js +0 -199
  334. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js +0 -70
  335. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -26
  336. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +0 -153
  337. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +0 -33
  338. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +0 -354
  339. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js +0 -146
  340. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/suggest/browser/completionModel.js +0 -224
  341. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +0 -119
  342. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/edcore.main.js +0 -14
  343. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.all.js +0 -63
  344. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.api.js +0 -55
  345. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.main.js +0 -7
  346. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.worker.js +0 -25
  347. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/standalone/browser/colorizer.js +0 -118
  348. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/css.worker.js +0 -36869
  349. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/cssMode.js +0 -2035
  350. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
  351. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
  352. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
  353. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
  354. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
  355. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
  356. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
  357. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
  358. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
  359. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
  360. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
  361. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
  362. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
  363. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
  364. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
  365. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
  366. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
  367. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
  368. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
  369. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
  370. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
  371. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
  372. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
  373. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
  374. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
  375. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
  376. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
  377. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
  378. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
  379. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
  380. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
  381. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
  382. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
  383. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
  384. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
  385. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
  386. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
  387. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
  388. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
  389. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
  390. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
  391. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
  392. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cameligo/cameligo.js +0 -10
  393. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/clojure/clojure.js +0 -10
  394. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/coffee/coffee.js +0 -10
  395. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cpp/cpp.js +0 -10
  396. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csharp/csharp.js +0 -10
  397. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csp/csp.js +0 -10
  398. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/css/css.js +0 -12
  399. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cypher/cypher.js +0 -10
  400. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dart/dart.js +0 -10
  401. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dockerfile/dockerfile.js +0 -10
  402. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/ecl/ecl.js +0 -10
  403. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/elixir/elixir.js +0 -10
  404. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/flow9/flow9.js +0 -10
  405. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.js +0 -745
  406. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.de.js +0 -31
  407. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.es.js +0 -31
  408. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.fr.js +0 -29
  409. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.it.js +0 -29
  410. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ja.js +0 -31
  411. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.js +0 -29
  412. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ko.js +0 -29
  413. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ru.js +0 -31
  414. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-cn.js +0 -31
  415. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-tw.js +0 -29
  416. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssMode.js +0 -13
  417. package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssWorker.js +0 -81
  418. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/cli.js +0 -64
  419. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/example.js +0 -36
  420. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/index.js +0 -205
  421. package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/test.js +0 -260
  422. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.browser.js +0 -34
  423. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.js +0 -35
  424. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.native.js +0 -26
  425. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.browser.js +0 -34
  426. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.js +0 -45
  427. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/nanoid.js +0 -1
  428. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/non-secure/index.js +0 -21
  429. package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/url-alphabet/index.js +0 -3
  430. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/bin/nodemon.js +0 -16
  431. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/index.js +0 -49
  432. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/parse.js +0 -230
  433. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/command.js +0 -43
  434. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/defaults.js +0 -34
  435. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/exec.js +0 -234
  436. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/index.js +0 -93
  437. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/load.js +0 -225
  438. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/help/index.js +0 -27
  439. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/index.js +0 -1
  440. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/index.js +0 -4
  441. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/match.js +0 -287
  442. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/run.js +0 -562
  443. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/signals.js +0 -34
  444. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/watch.js +0 -244
  445. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/nodemon.js +0 -317
  446. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/add.js +0 -89
  447. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/index.js +0 -53
  448. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/parse.js +0 -43
  449. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/spawn.js +0 -74
  450. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/bus.js +0 -44
  451. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/clone.js +0 -40
  452. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/colour.js +0 -26
  453. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/index.js +0 -103
  454. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/log.js +0 -82
  455. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/merge.js +0 -47
  456. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/version.js +0 -100
  457. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/brace-expansion/index.js +0 -201
  458. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/has-flag/index.js +0 -8
  459. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/minimatch/minimatch.js +0 -947
  460. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/browser.js +0 -5
  461. package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/index.js +0 -131
  462. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/bin/pidtree.js +0 -128
  463. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/index.js +0 -49
  464. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/bin.js +0 -61
  465. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/get.js +0 -45
  466. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/pidtree.js +0 -104
  467. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/ps.js +0 -47
  468. package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/wmic.js +0 -49
  469. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/doc.js +0 -1270
  470. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/acorn.js +0 -15
  471. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/angular.js +0 -2
  472. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/babel.js +0 -15
  473. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/estree.js +0 -36
  474. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/flow.js +0 -19
  475. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/glimmer.js +0 -29
  476. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/graphql.js +0 -29
  477. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/html.js +0 -22
  478. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/markdown.js +0 -63
  479. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/meriyah.js +0 -4
  480. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/postcss.js +0 -54
  481. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/typescript.js +0 -20
  482. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/yaml.js +0 -160
  483. package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/standalone.js +0 -34
  484. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/bin/react-scripts.js +0 -58
  485. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/env.js +0 -112
  486. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/getHttpsConfig.js +0 -74
  487. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/babelTransform.js +0 -37
  488. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/cssTransform.js +0 -22
  489. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/fileTransform.js +0 -40
  490. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/modules.js +0 -142
  491. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/paths.js +0 -153
  492. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack/persistentCache/createEnvironmentHash.js +0 -9
  493. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack.config.js +0 -796
  494. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpackDevServer.config.js +0 -135
  495. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/build.js +0 -225
  496. package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/eject.js +0 -340
@@ -1,144 +1,173 @@
1
1
  /**
2
2
  * MCP Tool Wrapper for Hive Mind System
3
3
  * Wraps all 87 MCP tools for coordinated swarm usage
4
- */ /**
4
+ */
5
+
6
+ import { spawn } from 'child_process';
7
+
8
+ /**
5
9
  * MCP Tool categories and their methods
6
- */ const MCP_TOOLS = {
7
- swarm: [
8
- 'swarm_init',
9
- 'agent_spawn',
10
- 'task_orchestrate',
11
- 'swarm_status',
12
- 'agent_list',
13
- 'agent_metrics',
14
- 'swarm_monitor',
15
- 'topology_optimize',
16
- 'load_balance',
17
- 'coordination_sync',
18
- 'swarm_scale',
19
- 'swarm_destroy'
20
- ],
21
- neural: [
22
- 'neural_status',
23
- 'neural_train',
24
- 'neural_patterns',
25
- 'neural_predict',
26
- 'model_load',
27
- 'model_save',
28
- 'wasm_optimize',
29
- 'inference_run',
30
- 'pattern_recognize',
31
- 'cognitive_analyze',
32
- 'learning_adapt',
33
- 'neural_compress',
34
- 'ensemble_create',
35
- 'transfer_learn',
36
- 'neural_explain'
37
- ],
38
- memory: [
39
- 'memory_usage',
40
- 'memory_search',
41
- 'memory_persist',
42
- 'memory_namespace',
43
- 'memory_backup',
44
- 'memory_restore',
45
- 'memory_compress',
46
- 'memory_sync',
47
- 'cache_manage',
48
- 'state_snapshot',
49
- 'context_restore',
50
- 'memory_analytics'
51
- ],
52
- performance: [
53
- 'performance_report',
54
- 'bottleneck_analyze',
55
- 'token_usage',
56
- 'benchmark_run',
57
- 'metrics_collect',
58
- 'trend_analysis',
59
- 'cost_analysis',
60
- 'quality_assess',
61
- 'error_analysis',
62
- 'usage_stats',
63
- 'health_check'
64
- ],
65
- github: [
66
- 'github_repo_analyze',
67
- 'github_pr_manage',
68
- 'github_issue_track',
69
- 'github_release_coord',
70
- 'github_workflow_auto',
71
- 'github_code_review',
72
- 'github_sync_coord',
73
- 'github_metrics'
74
- ],
75
- workflow: [
76
- 'workflow_create',
77
- 'workflow_execute',
78
- 'workflow_export',
79
- 'automation_setup',
80
- 'pipeline_create',
81
- 'scheduler_manage',
82
- 'trigger_setup',
83
- 'workflow_template',
84
- 'batch_process',
85
- 'parallel_execute'
86
- ],
87
- daa: [
88
- 'daa_agent_create',
89
- 'daa_capability_match',
90
- 'daa_resource_alloc',
91
- 'daa_lifecycle_manage',
92
- 'daa_communication',
93
- 'daa_consensus',
94
- 'daa_fault_tolerance',
95
- 'daa_optimization'
96
- ],
97
- system: [
98
- 'terminal_execute',
99
- 'config_manage',
100
- 'features_detect',
101
- 'security_scan',
102
- 'backup_create',
103
- 'restore_system',
104
- 'log_analysis',
105
- 'diagnostic_run'
106
- ],
107
- sparc: [
108
- 'sparc_mode'
109
- ],
110
- task: [
111
- 'task_status',
112
- 'task_results'
113
- ]
10
+ */
11
+ const MCP_TOOLS = {
12
+ swarm: [
13
+ 'swarm_init',
14
+ 'agent_spawn',
15
+ 'task_orchestrate',
16
+ 'swarm_status',
17
+ 'agent_list',
18
+ 'agent_metrics',
19
+ 'swarm_monitor',
20
+ 'topology_optimize',
21
+ 'load_balance',
22
+ 'coordination_sync',
23
+ 'swarm_scale',
24
+ 'swarm_destroy',
25
+ ],
26
+ neural: [
27
+ 'neural_status',
28
+ 'neural_train',
29
+ 'neural_patterns',
30
+ 'neural_predict',
31
+ 'model_load',
32
+ 'model_save',
33
+ 'wasm_optimize',
34
+ 'inference_run',
35
+ 'pattern_recognize',
36
+ 'cognitive_analyze',
37
+ 'learning_adapt',
38
+ 'neural_compress',
39
+ 'ensemble_create',
40
+ 'transfer_learn',
41
+ 'neural_explain',
42
+ ],
43
+ memory: [
44
+ 'memory_usage',
45
+ 'memory_search',
46
+ 'memory_persist',
47
+ 'memory_namespace',
48
+ 'memory_backup',
49
+ 'memory_restore',
50
+ 'memory_compress',
51
+ 'memory_sync',
52
+ 'cache_manage',
53
+ 'state_snapshot',
54
+ 'context_restore',
55
+ 'memory_analytics',
56
+ ],
57
+ performance: [
58
+ 'performance_report',
59
+ 'bottleneck_analyze',
60
+ 'token_usage',
61
+ 'benchmark_run',
62
+ 'metrics_collect',
63
+ 'trend_analysis',
64
+ 'cost_analysis',
65
+ 'quality_assess',
66
+ 'error_analysis',
67
+ 'usage_stats',
68
+ 'health_check',
69
+ ],
70
+ github: [
71
+ 'github_repo_analyze',
72
+ 'github_pr_manage',
73
+ 'github_issue_track',
74
+ 'github_release_coord',
75
+ 'github_workflow_auto',
76
+ 'github_code_review',
77
+ 'github_sync_coord',
78
+ 'github_metrics',
79
+ ],
80
+ workflow: [
81
+ 'workflow_create',
82
+ 'workflow_execute',
83
+ 'workflow_export',
84
+ 'automation_setup',
85
+ 'pipeline_create',
86
+ 'scheduler_manage',
87
+ 'trigger_setup',
88
+ 'workflow_template',
89
+ 'batch_process',
90
+ 'parallel_execute',
91
+ ],
92
+ daa: [
93
+ 'daa_agent_create',
94
+ 'daa_capability_match',
95
+ 'daa_resource_alloc',
96
+ 'daa_lifecycle_manage',
97
+ 'daa_communication',
98
+ 'daa_consensus',
99
+ 'daa_fault_tolerance',
100
+ 'daa_optimization',
101
+ ],
102
+ system: [
103
+ 'terminal_execute',
104
+ 'config_manage',
105
+ 'features_detect',
106
+ 'security_scan',
107
+ 'backup_create',
108
+ 'restore_system',
109
+ 'log_analysis',
110
+ 'diagnostic_run',
111
+ ],
112
+ sparc: ['sparc_mode'],
113
+ task: ['task_status', 'task_results'],
114
114
  };
115
+
115
116
  /**
116
117
  * MCPToolWrapper class for unified MCP tool access
117
- */ export class MCPToolWrapper {
118
- /**
118
+ */
119
+ export class MCPToolWrapper {
120
+ constructor(config = {}) {
121
+ this.config = {
122
+ parallel: true,
123
+ timeout: 60000,
124
+ retryCount: 3,
125
+ ...config,
126
+ };
127
+
128
+ this.toolStats = new Map();
129
+ this.parallelQueue = [];
130
+ this.executing = false;
131
+
132
+ /** @type {import('better-sqlite3').Database | null} */
133
+ this.memoryDb = null;
134
+
135
+ // Initialize memory store for fallback
136
+ this.memoryStore = new Map();
137
+
138
+ // Initialize real memory storage
139
+ this.initializeMemoryStorage();
140
+ }
141
+
142
+ /**
119
143
  * Initialize real memory storage using SQLite
120
- */ async initializeMemoryStorage() {
121
- try {
122
- const { createDatabase, isSQLiteAvailable } = await import("../../../memory/sqlite-wrapper.js");
123
- const path = await import("path");
124
- const fs = await import("fs");
125
- // Check if SQLite is available
126
- const sqliteAvailable = await isSQLiteAvailable();
127
- if (!sqliteAvailable) {
128
- throw new Error('SQLite not available');
129
- }
130
- // Create .hive-mind directory if it doesn't exist
131
- const hiveMindDir = path.join(process.cwd(), '.hive-mind');
132
- if (!fs.existsSync(hiveMindDir)) {
133
- fs.mkdirSync(hiveMindDir, {
134
- recursive: true
135
- });
136
- }
137
- // Initialize SQLite database
138
- const dbPath = path.join(hiveMindDir, 'memory.db');
139
- this.memoryDb = await createDatabase(dbPath);
140
- // Create memories table
141
- this.memoryDb.exec(`
144
+ */
145
+ async initializeMemoryStorage() {
146
+ try {
147
+ const { createDatabase, isSQLiteAvailable } = await import(
148
+ '../../../memory/sqlite-wrapper.js'
149
+ );
150
+ const path = await import('path');
151
+ const fs = await import('fs');
152
+
153
+ // Check if SQLite is available
154
+ const sqliteAvailable = await isSQLiteAvailable();
155
+ if (!sqliteAvailable) {
156
+ throw new Error('SQLite not available');
157
+ }
158
+
159
+ // Create .hive-mind directory if it doesn't exist
160
+ const hiveMindDir = path.join(process.cwd(), '.hive-mind');
161
+ if (!fs.existsSync(hiveMindDir)) {
162
+ fs.mkdirSync(hiveMindDir, { recursive: true });
163
+ }
164
+
165
+ // Initialize SQLite database
166
+ const dbPath = path.join(hiveMindDir, 'memory.db');
167
+ this.memoryDb = await createDatabase(dbPath);
168
+
169
+ // Create memories table
170
+ this.memoryDb.exec(`
142
171
  CREATE TABLE IF NOT EXISTS memories (
143
172
  id INTEGER PRIMARY KEY AUTOINCREMENT,
144
173
  namespace TEXT NOT NULL,
@@ -150,890 +179,989 @@
150
179
  UNIQUE(namespace, key)
151
180
  )
152
181
  `);
153
- // Real memory storage initialized with SQLite
154
- } catch (error) {
155
- console.warn('Failed to initialize SQLite storage, falling back to in-memory:', error.message);
156
- this.memoryDb = null;
157
- this.memoryStore = new Map(); // Fallback to in-memory storage
158
- // Log Windows-specific help if applicable
159
- if (process.platform === 'win32') {
160
- console.info(`
182
+
183
+ // Real memory storage initialized with SQLite
184
+ } catch (error) {
185
+ console.warn(
186
+ 'Failed to initialize SQLite storage, falling back to in-memory:',
187
+ error.message,
188
+ );
189
+ this.memoryDb = null;
190
+ this.memoryStore = new Map(); // Fallback to in-memory storage
191
+
192
+ // Log Windows-specific help if applicable
193
+ if (process.platform === 'win32') {
194
+ console.info(`
161
195
  Windows users: For persistent storage, please see installation guide:
162
196
  https://github.com/ruvnet/claude-code-flow/docs/windows-installation.md
163
197
  `);
164
- }
165
- }
198
+ }
166
199
  }
167
- /**
200
+ }
201
+
202
+ /**
168
203
  * Execute MCP tool with automatic retry and error handling
169
- */ async executeTool(toolName, params = {}) {
170
- const startTime = Date.now();
171
- let lastError = null;
172
- for(let attempt = 1; attempt <= this.config.retryCount; attempt++){
173
- try {
174
- const result = await this._executeToolInternal(toolName, params);
175
- // Track statistics
176
- this._trackToolUsage(toolName, Date.now() - startTime, true);
177
- return result;
178
- } catch (error) {
179
- lastError = error;
180
- console.error(`Attempt ${attempt} failed for ${toolName}:`, error.message);
181
- if (attempt < this.config.retryCount) {
182
- // Exponential backoff
183
- await new Promise((resolve)=>setTimeout(resolve, Math.pow(2, attempt) * 1000));
184
- }
185
- }
204
+ */
205
+ async executeTool(toolName, params = {}) {
206
+ const startTime = Date.now();
207
+ let lastError = null;
208
+
209
+ for (let attempt = 1; attempt <= this.config.retryCount; attempt++) {
210
+ try {
211
+ const result = await this._executeToolInternal(toolName, params);
212
+
213
+ // Track statistics
214
+ this._trackToolUsage(toolName, Date.now() - startTime, true);
215
+
216
+ return result;
217
+ } catch (error) {
218
+ lastError = error;
219
+ console.error(`Attempt ${attempt} failed for ${toolName}:`, error.message);
220
+
221
+ if (attempt < this.config.retryCount) {
222
+ // Exponential backoff
223
+ await new Promise((resolve) => setTimeout(resolve, Math.pow(2, attempt) * 1000));
186
224
  }
187
- // Track failure
188
- this._trackToolUsage(toolName, Date.now() - startTime, false);
189
- throw new Error(`Failed to execute ${toolName} after ${this.config.retryCount} attempts: ${lastError.message}`);
225
+ }
190
226
  }
191
- /**
227
+
228
+ // Track failure
229
+ this._trackToolUsage(toolName, Date.now() - startTime, false);
230
+
231
+ throw new Error(
232
+ `Failed to execute ${toolName} after ${this.config.retryCount} attempts: ${lastError.message}`,
233
+ );
234
+ }
235
+
236
+ /**
192
237
  * Execute multiple tools in parallel with optimized batching
193
- */ async executeParallel(toolCalls) {
194
- if (!this.config.parallel) {
195
- // Execute sequentially if parallel is disabled
196
- const results = [];
197
- for (const call of toolCalls){
198
- results.push(await this.executeTool(call.tool, call.params));
199
- }
200
- return results;
201
- }
202
- if (!Array.isArray(toolCalls) || toolCalls.length === 0) {
203
- return [];
204
- }
205
- const startTime = Date.now();
206
- // Intelligent concurrency limit based on tool types
207
- const concurrencyLimit = this._calculateOptimalConcurrency(toolCalls);
208
- // Group tools by priority and dependency
209
- const toolGroups = this._groupToolsByPriority(toolCalls);
210
- const allResults = [];
211
- try {
212
- // Execute high-priority tools first
213
- for (const group of toolGroups){
214
- const groupResults = [];
215
- for(let i = 0; i < group.length; i += concurrencyLimit){
216
- const batch = group.slice(i, i + concurrencyLimit);
217
- // Execute batch with timeout and retry logic
218
- const batchPromises = batch.map((call)=>this._executeWithTimeout(call, this.config.timeout));
219
- const batchResults = await Promise.allSettled(batchPromises);
220
- // Process results and handle failures
221
- for(let j = 0; j < batchResults.length; j++){
222
- const result = batchResults[j];
223
- if (result.status === 'fulfilled') {
224
- groupResults.push(result.value);
225
- } else {
226
- console.warn(`Tool execution failed: ${batch[j].tool}`, result.reason);
227
- groupResults.push({
228
- error: result.reason.message,
229
- tool: batch[j].tool
230
- });
231
- }
232
- }
233
- }
234
- allResults.push(...groupResults);
238
+ */
239
+ async executeParallel(toolCalls) {
240
+ if (!this.config.parallel) {
241
+ // Execute sequentially if parallel is disabled
242
+ const results = [];
243
+ for (const call of toolCalls) {
244
+ results.push(await this.executeTool(call.tool, call.params));
245
+ }
246
+ return results;
247
+ }
248
+
249
+ if (!Array.isArray(toolCalls) || toolCalls.length === 0) {
250
+ return [];
251
+ }
252
+
253
+ const startTime = Date.now();
254
+
255
+ // Intelligent concurrency limit based on tool types
256
+ const concurrencyLimit = this._calculateOptimalConcurrency(toolCalls);
257
+
258
+ // Group tools by priority and dependency
259
+ const toolGroups = this._groupToolsByPriority(toolCalls);
260
+ const allResults = [];
261
+
262
+ try {
263
+ // Execute high-priority tools first
264
+ for (const group of toolGroups) {
265
+ const groupResults = [];
266
+
267
+ for (let i = 0; i < group.length; i += concurrencyLimit) {
268
+ const batch = group.slice(i, i + concurrencyLimit);
269
+
270
+ // Execute batch with timeout and retry logic
271
+ const batchPromises = batch.map((call) =>
272
+ this._executeWithTimeout(call, this.config.timeout),
273
+ );
274
+
275
+ const batchResults = await Promise.allSettled(batchPromises);
276
+
277
+ // Process results and handle failures
278
+ for (let j = 0; j < batchResults.length; j++) {
279
+ const result = batchResults[j];
280
+ if (result.status === 'fulfilled') {
281
+ groupResults.push(result.value);
282
+ } else {
283
+ console.warn(`Tool execution failed: ${batch[j].tool}`, result.reason);
284
+ groupResults.push({ error: result.reason.message, tool: batch[j].tool });
235
285
  }
236
- // Track performance metrics
237
- const executionTime = Date.now() - startTime;
238
- this._trackBatchPerformance(toolCalls.length, executionTime, concurrencyLimit);
239
- return allResults;
240
- } catch (error) {
241
- console.error('Parallel execution failed:', error);
242
- throw error;
286
+ }
243
287
  }
288
+
289
+ allResults.push(...groupResults);
290
+ }
291
+
292
+ // Track performance metrics
293
+ const executionTime = Date.now() - startTime;
294
+ this._trackBatchPerformance(toolCalls.length, executionTime, concurrencyLimit);
295
+
296
+ return allResults;
297
+ } catch (error) {
298
+ console.error('Parallel execution failed:', error);
299
+ throw error;
244
300
  }
245
- /**
301
+ }
302
+
303
+ /**
246
304
  * Calculate optimal concurrency based on tool types
247
- */ _calculateOptimalConcurrency(toolCalls) {
248
- const toolTypes = toolCalls.map((call)=>this._getToolCategory(call.tool));
249
- const uniqueTypes = new Set(toolTypes);
250
- // Heavy operations (neural, github) need lower concurrency
251
- const heavyTypes = [
252
- 'neural',
253
- 'github',
254
- 'workflow'
255
- ];
256
- const hasHeavyOps = toolTypes.some((type)=>heavyTypes.includes(type));
257
- if (hasHeavyOps) {
258
- return Math.min(3, Math.max(1, Math.floor(toolCalls.length / 2)));
259
- }
260
- // Light operations (memory, performance) can handle higher concurrency
261
- return Math.min(8, Math.max(2, Math.floor(toolCalls.length / 1.5)));
305
+ */
306
+ _calculateOptimalConcurrency(toolCalls) {
307
+ const toolTypes = toolCalls.map((call) => this._getToolCategory(call.tool));
308
+ const uniqueTypes = new Set(toolTypes);
309
+
310
+ // Heavy operations (neural, github) need lower concurrency
311
+ const heavyTypes = ['neural', 'github', 'workflow'];
312
+ const hasHeavyOps = toolTypes.some((type) => heavyTypes.includes(type));
313
+
314
+ if (hasHeavyOps) {
315
+ return Math.min(3, Math.max(1, Math.floor(toolCalls.length / 2)));
262
316
  }
263
- /**
317
+
318
+ // Light operations (memory, performance) can handle higher concurrency
319
+ return Math.min(8, Math.max(2, Math.floor(toolCalls.length / 1.5)));
320
+ }
321
+
322
+ /**
264
323
  * Group tools by execution priority
265
- */ _groupToolsByPriority(toolCalls) {
266
- const priorities = {
267
- critical: [],
268
- high: [],
269
- medium: [],
270
- low: []
271
- };
272
- toolCalls.forEach((call)=>{
273
- const category = this._getToolCategory(call.tool);
274
- const tool = call.tool;
275
- if ([
276
- 'swarm_init',
277
- 'swarm_destroy',
278
- 'memory_backup'
279
- ].includes(tool)) {
280
- priorities.critical.push(call);
281
- } else if ([
282
- 'agent_spawn',
283
- 'memory_usage',
284
- 'neural_train'
285
- ].includes(tool)) {
286
- priorities.high.push(call);
287
- } else if (category === 'performance' || tool.includes('report')) {
288
- priorities.low.push(call);
289
- } else {
290
- priorities.medium.push(call);
291
- }
292
- });
293
- // Return groups in priority order, filtering empty groups
294
- return [
295
- priorities.critical,
296
- priorities.high,
297
- priorities.medium,
298
- priorities.low
299
- ].filter((group)=>group.length > 0);
300
- }
301
- /**
324
+ */
325
+ _groupToolsByPriority(toolCalls) {
326
+ const priorities = {
327
+ critical: [], // swarm_init, swarm_destroy
328
+ high: [], // agent_spawn, memory operations
329
+ medium: [], // task operations, monitoring
330
+ low: [], // analytics, reporting
331
+ };
332
+
333
+ toolCalls.forEach((call) => {
334
+ const category = this._getToolCategory(call.tool);
335
+ const tool = call.tool;
336
+
337
+ if (['swarm_init', 'swarm_destroy', 'memory_backup'].includes(tool)) {
338
+ priorities.critical.push(call);
339
+ } else if (['agent_spawn', 'memory_usage', 'neural_train'].includes(tool)) {
340
+ priorities.high.push(call);
341
+ } else if (category === 'performance' || tool.includes('report')) {
342
+ priorities.low.push(call);
343
+ } else {
344
+ priorities.medium.push(call);
345
+ }
346
+ });
347
+
348
+ // Return groups in priority order, filtering empty groups
349
+ return [priorities.critical, priorities.high, priorities.medium, priorities.low].filter(
350
+ (group) => group.length > 0,
351
+ );
352
+ }
353
+
354
+ /**
302
355
  * Execute tool with timeout wrapper
303
- */ async _executeWithTimeout(call, timeout) {
304
- return new Promise((resolve, reject)=>{
305
- const timer = setTimeout(()=>{
306
- reject(new Error(`Tool ${call.tool} timed out after ${timeout}ms`));
307
- }, timeout);
308
- this.executeTool(call.tool, call.params).then((result)=>{
309
- clearTimeout(timer);
310
- resolve(result);
311
- }).catch((error)=>{
312
- clearTimeout(timer);
313
- reject(error);
314
- });
356
+ */
357
+ async _executeWithTimeout(call, timeout) {
358
+ return new Promise((resolve, reject) => {
359
+ const timer = setTimeout(() => {
360
+ reject(new Error(`Tool ${call.tool} timed out after ${timeout}ms`));
361
+ }, timeout);
362
+
363
+ this.executeTool(call.tool, call.params)
364
+ .then((result) => {
365
+ clearTimeout(timer);
366
+ resolve(result);
367
+ })
368
+ .catch((error) => {
369
+ clearTimeout(timer);
370
+ reject(error);
315
371
  });
316
- }
317
- /**
372
+ });
373
+ }
374
+
375
+ /**
318
376
  * Track batch execution performance
319
- */ _trackBatchPerformance(toolCount, executionTime, concurrency) {
320
- if (!this.batchStats) {
321
- this.batchStats = {
322
- totalBatches: 0,
323
- totalTools: 0,
324
- totalTime: 0,
325
- avgConcurrency: 0,
326
- avgToolsPerBatch: 0,
327
- avgTimePerTool: 0
328
- };
329
- }
330
- this.batchStats.totalBatches++;
331
- this.batchStats.totalTools += toolCount;
332
- this.batchStats.totalTime += executionTime;
333
- this.batchStats.avgConcurrency = (this.batchStats.avgConcurrency * (this.batchStats.totalBatches - 1) + concurrency) / this.batchStats.totalBatches;
334
- this.batchStats.avgToolsPerBatch = this.batchStats.totalTools / this.batchStats.totalBatches;
335
- this.batchStats.avgTimePerTool = this.batchStats.totalTime / this.batchStats.totalTools;
377
+ */
378
+ _trackBatchPerformance(toolCount, executionTime, concurrency) {
379
+ if (!this.batchStats) {
380
+ this.batchStats = {
381
+ totalBatches: 0,
382
+ totalTools: 0,
383
+ totalTime: 0,
384
+ avgConcurrency: 0,
385
+ avgToolsPerBatch: 0,
386
+ avgTimePerTool: 0,
387
+ };
336
388
  }
337
- /**
389
+
390
+ this.batchStats.totalBatches++;
391
+ this.batchStats.totalTools += toolCount;
392
+ this.batchStats.totalTime += executionTime;
393
+ this.batchStats.avgConcurrency =
394
+ (this.batchStats.avgConcurrency * (this.batchStats.totalBatches - 1) + concurrency) /
395
+ this.batchStats.totalBatches;
396
+ this.batchStats.avgToolsPerBatch = this.batchStats.totalTools / this.batchStats.totalBatches;
397
+ this.batchStats.avgTimePerTool = this.batchStats.totalTime / this.batchStats.totalTools;
398
+ }
399
+
400
+ /**
338
401
  * Internal tool execution
339
- */ async _executeToolInternal(toolName, params) {
340
- const toolCategory = this._getToolCategory(toolName);
341
- if (!toolCategory) {
342
- throw new Error(`Unknown MCP tool: ${toolName}`);
343
- }
344
- // Handle memory operations with real storage
345
- if (toolName === 'memory_usage') {
346
- if (params.action === 'store') {
347
- return await this.storeMemory(params.namespace, params.key, params.value, params.type);
348
- } else if (params.action === 'retrieve') {
349
- return await this.retrieveMemory(params.namespace, params.key);
350
- }
351
- } else if (toolName === 'memory_search') {
352
- return await this.searchMemory(params.namespace, params.pattern);
353
- } else if (toolName === 'swarm_status') {
354
- return await this.getSwarmStatus(params);
355
- }
356
- // For other tools, use mock responses
357
- console.log(`Executing MCP tool: mcp__claude-flow__${toolName} with params:`, params);
358
- // Simulate async execution for non-memory tools
359
- await new Promise((resolve)=>setTimeout(resolve, Math.random() * 500));
360
- // Mock response based on tool type
361
- const mockResponse = this._getMockResponse(toolName, params);
362
- return mockResponse;
402
+ */
403
+ async _executeToolInternal(toolName, params) {
404
+ const toolCategory = this._getToolCategory(toolName);
405
+ if (!toolCategory) {
406
+ throw new Error(`Unknown MCP tool: ${toolName}`);
407
+ }
408
+
409
+ // Handle memory operations with real storage
410
+ if (toolName === 'memory_usage') {
411
+ if (params.action === 'store') {
412
+ return await this.storeMemory(params.namespace, params.key, params.value, params.type);
413
+ } else if (params.action === 'retrieve') {
414
+ return await this.retrieveMemory(params.namespace, params.key);
415
+ }
416
+ } else if (toolName === 'memory_search') {
417
+ return await this.searchMemory(params.namespace, params.pattern);
418
+ } else if (toolName === 'swarm_status') {
419
+ return await this.getSwarmStatus(params);
363
420
  }
364
- /**
421
+
422
+ // For other tools, use mock responses
423
+ console.log(`Executing MCP tool: mcp__claude-flow__${toolName} with params:`, params);
424
+
425
+ // Simulate async execution for non-memory tools
426
+ await new Promise((resolve) => setTimeout(resolve, Math.random() * 500));
427
+
428
+ // Mock response based on tool type
429
+ const mockResponse = this._getMockResponse(toolName, params);
430
+ return mockResponse;
431
+ }
432
+
433
+ /**
365
434
  * Get tool category
366
- */ _getToolCategory(toolName) {
367
- for (const [category, tools] of Object.entries(MCP_TOOLS)){
368
- if (tools.includes(toolName)) {
369
- return category;
370
- }
371
- }
372
- return null;
435
+ */
436
+ _getToolCategory(toolName) {
437
+ for (const [category, tools] of Object.entries(MCP_TOOLS)) {
438
+ if (tools.includes(toolName)) {
439
+ return category;
440
+ }
373
441
  }
374
- /**
442
+ return null;
443
+ }
444
+
445
+ /**
375
446
  * Get mock response for demonstration
376
- */ _getMockResponse(toolName, params) {
377
- // Mock responses for different tool types
378
- const mockResponses = {
379
- swarm_init: {
380
- swarmId: `swarm-${Date.now()}`,
381
- topology: params.topology || 'hierarchical',
382
- status: 'initialized'
383
- },
384
- agent_spawn: {
385
- agentId: `agent-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`,
386
- type: params.type,
387
- status: 'active'
388
- },
389
- task_orchestrate: {
390
- taskId: `task-${Date.now()}`,
391
- status: 'orchestrated',
392
- strategy: params.strategy || 'parallel'
393
- },
394
- memory_usage: {
395
- action: params.action,
396
- result: params.action === 'store' ? 'stored' : 'retrieved',
397
- data: params.value || null
398
- },
399
- neural_status: {
400
- status: 'ready',
401
- models: 27,
402
- accuracy: 0.848
403
- }
404
- };
405
- return mockResponses[toolName] || {
406
- status: 'success',
407
- toolName
408
- };
409
- }
410
- /**
447
+ */
448
+ _getMockResponse(toolName, params) {
449
+ // Mock responses for different tool types
450
+ const mockResponses = {
451
+ swarm_init: {
452
+ swarmId: `swarm-${Date.now()}`,
453
+ topology: params.topology || 'hierarchical',
454
+ status: 'initialized',
455
+ },
456
+ agent_spawn: {
457
+ agentId: `agent-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`,
458
+ type: params.type,
459
+ status: 'active',
460
+ },
461
+ task_orchestrate: {
462
+ taskId: `task-${Date.now()}`,
463
+ status: 'orchestrated',
464
+ strategy: params.strategy || 'parallel',
465
+ },
466
+ memory_usage: {
467
+ action: params.action,
468
+ result: params.action === 'store' ? 'stored' : 'retrieved',
469
+ data: params.value || null,
470
+ },
471
+ neural_status: {
472
+ status: 'ready',
473
+ models: 27,
474
+ accuracy: 0.848,
475
+ },
476
+ };
477
+
478
+ return mockResponses[toolName] || { status: 'success', toolName };
479
+ }
480
+
481
+ /**
411
482
  * Track tool usage statistics
412
- */ _trackToolUsage(toolName, duration, success) {
413
- if (!this.toolStats.has(toolName)) {
414
- this.toolStats.set(toolName, {
415
- calls: 0,
416
- successes: 0,
417
- failures: 0,
418
- totalDuration: 0,
419
- avgDuration: 0
420
- });
421
- }
422
- const stats = this.toolStats.get(toolName);
423
- stats.calls++;
424
- if (success) {
425
- stats.successes++;
426
- } else {
427
- stats.failures++;
428
- }
429
- stats.totalDuration += duration;
430
- stats.avgDuration = stats.totalDuration / stats.calls;
483
+ */
484
+ _trackToolUsage(toolName, duration, success) {
485
+ if (!this.toolStats.has(toolName)) {
486
+ this.toolStats.set(toolName, {
487
+ calls: 0,
488
+ successes: 0,
489
+ failures: 0,
490
+ totalDuration: 0,
491
+ avgDuration: 0,
492
+ });
431
493
  }
432
- /**
433
- * Get comprehensive tool statistics
434
- */ getStatistics() {
435
- const toolStats = {};
436
- this.toolStats.forEach((value, key)=>{
437
- toolStats[key] = {
438
- ...value
439
- };
440
- });
441
- return {
442
- tools: toolStats,
443
- batch: this.batchStats || {
444
- totalBatches: 0,
445
- totalTools: 0,
446
- totalTime: 0,
447
- avgConcurrency: 0,
448
- avgToolsPerBatch: 0,
449
- avgTimePerTool: 0
450
- },
451
- spawn: this.spawnStats || {
452
- totalSpawns: 0,
453
- totalAgents: 0,
454
- totalTime: 0,
455
- avgTimePerAgent: 0,
456
- bestTime: 0,
457
- worstTime: 0
458
- },
459
- performance: {
460
- totalCalls: Array.from(this.toolStats.values()).reduce((sum, stat)=>sum + stat.calls, 0),
461
- successRate: this._calculateOverallSuccessRate(),
462
- avgLatency: this._calculateAvgLatency(),
463
- throughput: this._calculateThroughput()
464
- }
465
- };
494
+
495
+ const stats = this.toolStats.get(toolName);
496
+ stats.calls++;
497
+ if (success) {
498
+ stats.successes++;
499
+ } else {
500
+ stats.failures++;
466
501
  }
467
- /**
502
+ stats.totalDuration += duration;
503
+ stats.avgDuration = stats.totalDuration / stats.calls;
504
+ }
505
+
506
+ /**
507
+ * Get comprehensive tool statistics
508
+ */
509
+ getStatistics() {
510
+ const toolStats = {};
511
+ this.toolStats.forEach((value, key) => {
512
+ toolStats[key] = { ...value };
513
+ });
514
+
515
+ return {
516
+ tools: toolStats,
517
+ batch: this.batchStats || {
518
+ totalBatches: 0,
519
+ totalTools: 0,
520
+ totalTime: 0,
521
+ avgConcurrency: 0,
522
+ avgToolsPerBatch: 0,
523
+ avgTimePerTool: 0,
524
+ },
525
+ spawn: this.spawnStats || {
526
+ totalSpawns: 0,
527
+ totalAgents: 0,
528
+ totalTime: 0,
529
+ avgTimePerAgent: 0,
530
+ bestTime: 0,
531
+ worstTime: 0,
532
+ },
533
+ performance: {
534
+ totalCalls: Array.from(this.toolStats.values()).reduce((sum, stat) => sum + stat.calls, 0),
535
+ successRate: this._calculateOverallSuccessRate(),
536
+ avgLatency: this._calculateAvgLatency(),
537
+ throughput: this._calculateThroughput(),
538
+ },
539
+ };
540
+ }
541
+
542
+ /**
468
543
  * Calculate overall success rate
469
- */ _calculateOverallSuccessRate() {
470
- const total = Array.from(this.toolStats.values()).reduce((sum, stat)=>sum + stat.calls, 0);
471
- const successes = Array.from(this.toolStats.values()).reduce((sum, stat)=>sum + stat.successes, 0);
472
- return total > 0 ? (successes / total * 100).toFixed(2) : 100;
473
- }
474
- /**
544
+ */
545
+ _calculateOverallSuccessRate() {
546
+ const total = Array.from(this.toolStats.values()).reduce((sum, stat) => sum + stat.calls, 0);
547
+ const successes = Array.from(this.toolStats.values()).reduce(
548
+ (sum, stat) => sum + stat.successes,
549
+ 0,
550
+ );
551
+
552
+ return total > 0 ? ((successes / total) * 100).toFixed(2) : 100;
553
+ }
554
+
555
+ /**
475
556
  * Calculate average latency
476
- */ _calculateAvgLatency() {
477
- const stats = Array.from(this.toolStats.values()).filter((stat)=>stat.calls > 0);
478
- if (stats.length === 0) return 0;
479
- const totalLatency = stats.reduce((sum, stat)=>sum + stat.avgDuration, 0);
480
- return (totalLatency / stats.length).toFixed(2);
481
- }
482
- /**
557
+ */
558
+ _calculateAvgLatency() {
559
+ const stats = Array.from(this.toolStats.values()).filter((stat) => stat.calls > 0);
560
+ if (stats.length === 0) return 0;
561
+
562
+ const totalLatency = stats.reduce((sum, stat) => sum + stat.avgDuration, 0);
563
+ return (totalLatency / stats.length).toFixed(2);
564
+ }
565
+
566
+ /**
483
567
  * Calculate throughput (operations per second)
484
- */ _calculateThroughput() {
485
- const batchStats = this.batchStats;
486
- if (!batchStats || batchStats.totalTime === 0) return 0;
487
- return (batchStats.totalTools / (batchStats.totalTime / 1000)).toFixed(2);
488
- }
489
- /**
568
+ */
569
+ _calculateThroughput() {
570
+ const batchStats = this.batchStats;
571
+ if (!batchStats || batchStats.totalTime === 0) return 0;
572
+
573
+ return (batchStats.totalTools / (batchStats.totalTime / 1000)).toFixed(2);
574
+ }
575
+
576
+ /**
490
577
  * Create batch of tool calls for parallel execution
491
- */ createBatch(calls) {
492
- return calls.map((call)=>({
493
- tool: call.tool,
494
- params: call.params || {}
495
- }));
496
- }
497
- /**
578
+ */
579
+ createBatch(calls) {
580
+ return calls.map((call) => ({
581
+ tool: call.tool,
582
+ params: call.params || {},
583
+ }));
584
+ }
585
+
586
+ /**
498
587
  * Execute swarm initialization sequence with optimization
499
- */ async initializeSwarm(config) {
500
- const swarmId = config.swarmId || `swarm-${Date.now()}`;
501
- const startTime = Date.now();
502
- try {
503
- // Phase 1: Critical initialization (sequential)
504
- const criticalOps = [
505
- {
506
- tool: 'swarm_init',
507
- params: {
508
- topology: config.topology || 'hierarchical',
509
- maxAgents: config.maxAgents || 8,
510
- strategy: 'auto',
511
- swarmId
512
- }
513
- }
514
- ];
515
- const [swarmInitResult] = await this.executeParallel(criticalOps);
516
- // Phase 2: Supporting services (parallel)
517
- const supportingOps = [
518
- {
519
- tool: 'memory_namespace',
520
- params: {
521
- action: 'create',
522
- namespace: swarmId,
523
- maxSize: config.memorySize || 100
524
- }
525
- },
526
- {
527
- tool: 'neural_status',
528
- params: {}
529
- },
530
- {
531
- tool: 'performance_report',
532
- params: {
533
- format: 'summary'
534
- }
535
- },
536
- {
537
- tool: 'features_detect',
538
- params: {
539
- component: 'swarm'
540
- }
541
- }
542
- ];
543
- const supportingResults = await this.executeParallel(supportingOps);
544
- // Store initialization metadata
545
- const initTime = Date.now() - startTime;
546
- await this.storeMemory(swarmId, 'init_performance', {
547
- initTime,
548
- topology: config.topology || 'hierarchical',
549
- maxAgents: config.maxAgents || 8,
550
- timestamp: Date.now()
551
- }, 'metrics');
552
- // Store swarm status
553
- await this.storeMemory(swarmId, 'status', 'active', 'status');
554
- // Store swarm config
555
- await this.storeMemory(swarmId, 'config', {
556
- topology: config.topology || 'hierarchical',
557
- maxAgents: config.maxAgents || 8,
558
- strategy: config.strategy || 'auto',
559
- createdAt: Date.now()
560
- }, 'config');
561
- return [
562
- swarmInitResult,
563
- ...supportingResults
564
- ];
565
- } catch (error) {
566
- console.error('Swarm initialization failed:', error);
567
- throw error;
568
- }
588
+ */
589
+ async initializeSwarm(config) {
590
+ const swarmId = config.swarmId || `swarm-${Date.now()}`;
591
+ const startTime = Date.now();
592
+
593
+ try {
594
+ // Phase 1: Critical initialization (sequential)
595
+ const criticalOps = [
596
+ {
597
+ tool: 'swarm_init',
598
+ params: {
599
+ topology: config.topology || 'hierarchical',
600
+ maxAgents: config.maxAgents || 8,
601
+ strategy: 'auto',
602
+ swarmId,
603
+ },
604
+ },
605
+ ];
606
+
607
+ const [swarmInitResult] = await this.executeParallel(criticalOps);
608
+
609
+ // Phase 2: Supporting services (parallel)
610
+ const supportingOps = [
611
+ {
612
+ tool: 'memory_namespace',
613
+ params: {
614
+ action: 'create',
615
+ namespace: swarmId,
616
+ maxSize: config.memorySize || 100,
617
+ },
618
+ },
619
+ { tool: 'neural_status', params: {} },
620
+ { tool: 'performance_report', params: { format: 'summary' } },
621
+ { tool: 'features_detect', params: { component: 'swarm' } },
622
+ ];
623
+
624
+ const supportingResults = await this.executeParallel(supportingOps);
625
+
626
+ // Store initialization metadata
627
+ const initTime = Date.now() - startTime;
628
+ await this.storeMemory(
629
+ swarmId,
630
+ 'init_performance',
631
+ {
632
+ initTime,
633
+ topology: config.topology || 'hierarchical',
634
+ maxAgents: config.maxAgents || 8,
635
+ timestamp: Date.now(),
636
+ },
637
+ 'metrics',
638
+ );
639
+
640
+ // Store swarm status
641
+ await this.storeMemory(swarmId, 'status', 'active', 'status');
642
+
643
+ // Store swarm config
644
+ await this.storeMemory(
645
+ swarmId,
646
+ 'config',
647
+ {
648
+ topology: config.topology || 'hierarchical',
649
+ maxAgents: config.maxAgents || 8,
650
+ strategy: config.strategy || 'auto',
651
+ createdAt: Date.now(),
652
+ },
653
+ 'config',
654
+ );
655
+
656
+ return [swarmInitResult, ...supportingResults];
657
+ } catch (error) {
658
+ console.error('Swarm initialization failed:', error);
659
+ throw error;
569
660
  }
570
- /**
661
+ }
662
+
663
+ /**
571
664
  * Spawn multiple agents in parallel with optimization
572
- */ async spawnAgents(types, swarmId) {
573
- if (!Array.isArray(types) || types.length === 0) {
574
- return [];
575
- }
576
- const startTime = Date.now();
577
- // Optimize agent spawning by grouping similar types
578
- const groupedTypes = this._groupAgentTypes(types);
579
- const allResults = [];
580
- try {
581
- // Spawn each group in parallel
582
- for (const group of groupedTypes){
583
- const batch = group.map((type)=>({
584
- tool: 'agent_spawn',
585
- params: {
586
- type,
587
- swarmId,
588
- timestamp: Date.now(),
589
- batchId: `batch-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`
590
- }
591
- }));
592
- const groupResults = await this.executeParallel(batch);
593
- allResults.push(...groupResults);
594
- // Store agent information in memory
595
- for (const result of groupResults){
596
- if (result && result.agentId && !result.error) {
597
- await this.storeMemory(swarmId, `agent-${result.agentId}`, {
598
- id: result.agentId,
599
- type: result.type,
600
- status: result.status || 'active',
601
- createdAt: Date.now()
602
- }, 'agent');
603
- }
604
- }
605
- }
606
- // Track spawn performance
607
- const spawnTime = Date.now() - startTime;
608
- this._trackSpawnPerformance(types.length, spawnTime);
609
- return allResults;
610
- } catch (error) {
611
- console.error('Agent spawning failed:', error);
612
- throw error;
665
+ */
666
+ async spawnAgents(types, swarmId) {
667
+ if (!Array.isArray(types) || types.length === 0) {
668
+ return [];
669
+ }
670
+
671
+ const startTime = Date.now();
672
+
673
+ // Optimize agent spawning by grouping similar types
674
+ const groupedTypes = this._groupAgentTypes(types);
675
+ const allResults = [];
676
+
677
+ try {
678
+ // Spawn each group in parallel
679
+ for (const group of groupedTypes) {
680
+ const batch = group.map((type) => ({
681
+ tool: 'agent_spawn',
682
+ params: {
683
+ type,
684
+ swarmId,
685
+ timestamp: Date.now(),
686
+ batchId: `batch-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
687
+ },
688
+ }));
689
+
690
+ const groupResults = await this.executeParallel(batch);
691
+ allResults.push(...groupResults);
692
+
693
+ // Store agent information in memory
694
+ for (const result of groupResults) {
695
+ if (result && result.agentId && !result.error) {
696
+ await this.storeMemory(
697
+ swarmId,
698
+ `agent-${result.agentId}`,
699
+ {
700
+ id: result.agentId,
701
+ type: result.type,
702
+ status: result.status || 'active',
703
+ createdAt: Date.now(),
704
+ },
705
+ 'agent',
706
+ );
707
+ }
613
708
  }
709
+ }
710
+
711
+ // Track spawn performance
712
+ const spawnTime = Date.now() - startTime;
713
+ this._trackSpawnPerformance(types.length, spawnTime);
714
+
715
+ return allResults;
716
+ } catch (error) {
717
+ console.error('Agent spawning failed:', error);
718
+ throw error;
614
719
  }
615
- /**
720
+ }
721
+
722
+ /**
616
723
  * Group agent types for optimized spawning
617
- */ _groupAgentTypes(types) {
618
- // Group complementary agent types that work well together
619
- const groups = {
620
- development: [
621
- 'coder',
622
- 'architect',
623
- 'reviewer'
624
- ],
625
- analysis: [
626
- 'researcher',
627
- 'analyst',
628
- 'optimizer'
629
- ],
630
- quality: [
631
- 'tester',
632
- 'documenter'
633
- ],
634
- coordination: [
635
- 'coordinator'
636
- ]
637
- };
638
- const result = [];
639
- const remaining = [
640
- ...types
641
- ];
642
- // Create groups of complementary agents
643
- Object.values(groups).forEach((groupTypes)=>{
644
- const groupAgents = remaining.filter((type)=>groupTypes.includes(type));
645
- if (groupAgents.length > 0) {
646
- result.push(groupAgents);
647
- groupAgents.forEach((type)=>{
648
- const index = remaining.indexOf(type);
649
- if (index > -1) remaining.splice(index, 1);
650
- });
651
- }
724
+ */
725
+ _groupAgentTypes(types) {
726
+ // Group complementary agent types that work well together
727
+ const groups = {
728
+ development: ['coder', 'architect', 'reviewer'],
729
+ analysis: ['researcher', 'analyst', 'optimizer'],
730
+ quality: ['tester', 'documenter'],
731
+ coordination: ['coordinator'],
732
+ };
733
+
734
+ const result = [];
735
+ const remaining = [...types];
736
+
737
+ // Create groups of complementary agents
738
+ Object.values(groups).forEach((groupTypes) => {
739
+ const groupAgents = remaining.filter((type) => groupTypes.includes(type));
740
+ if (groupAgents.length > 0) {
741
+ result.push(groupAgents);
742
+ groupAgents.forEach((type) => {
743
+ const index = remaining.indexOf(type);
744
+ if (index > -1) remaining.splice(index, 1);
652
745
  });
653
- // Add remaining agents as individual groups
654
- remaining.forEach((type)=>result.push([
655
- type
656
- ]));
657
- return result;
658
- }
659
- /**
746
+ }
747
+ });
748
+
749
+ // Add remaining agents as individual groups
750
+ remaining.forEach((type) => result.push([type]));
751
+
752
+ return result;
753
+ }
754
+
755
+ /**
660
756
  * Track agent spawn performance
661
- */ _trackSpawnPerformance(agentCount, spawnTime) {
662
- if (!this.spawnStats) {
663
- this.spawnStats = {
664
- totalSpawns: 0,
665
- totalAgents: 0,
666
- totalTime: 0,
667
- avgTimePerAgent: 0,
668
- bestTime: Infinity,
669
- worstTime: 0
670
- };
671
- }
672
- this.spawnStats.totalSpawns++;
673
- this.spawnStats.totalAgents += agentCount;
674
- this.spawnStats.totalTime += spawnTime;
675
- this.spawnStats.avgTimePerAgent = this.spawnStats.totalTime / this.spawnStats.totalAgents;
676
- this.spawnStats.bestTime = Math.min(this.spawnStats.bestTime, spawnTime);
677
- this.spawnStats.worstTime = Math.max(this.spawnStats.worstTime, spawnTime);
757
+ */
758
+ _trackSpawnPerformance(agentCount, spawnTime) {
759
+ if (!this.spawnStats) {
760
+ this.spawnStats = {
761
+ totalSpawns: 0,
762
+ totalAgents: 0,
763
+ totalTime: 0,
764
+ avgTimePerAgent: 0,
765
+ bestTime: Infinity,
766
+ worstTime: 0,
767
+ };
678
768
  }
679
- /**
769
+
770
+ this.spawnStats.totalSpawns++;
771
+ this.spawnStats.totalAgents += agentCount;
772
+ this.spawnStats.totalTime += spawnTime;
773
+ this.spawnStats.avgTimePerAgent = this.spawnStats.totalTime / this.spawnStats.totalAgents;
774
+ this.spawnStats.bestTime = Math.min(this.spawnStats.bestTime, spawnTime);
775
+ this.spawnStats.worstTime = Math.max(this.spawnStats.worstTime, spawnTime);
776
+ }
777
+
778
+ /**
680
779
  * Store data in collective memory (REAL IMPLEMENTATION)
681
- */ async storeMemory(swarmId, key, value, type = 'knowledge') {
682
- try {
683
- // Don't reinitialize if we already have storage
684
- if (!this.memoryDb && !this.memoryStore) {
685
- await this.initializeMemoryStorage();
686
- }
687
- const timestamp = Date.now();
688
- const valueStr = typeof value === 'string' ? value : JSON.stringify(value);
689
- if (this.memoryDb) {
690
- // SQLite storage
691
- const stmt = this.memoryDb.prepare(`
780
+ */
781
+ async storeMemory(swarmId, key, value, type = 'knowledge') {
782
+ try {
783
+ // Don't reinitialize if we already have storage
784
+ if (!this.memoryDb && !this.memoryStore) {
785
+ await this.initializeMemoryStorage();
786
+ }
787
+
788
+ const timestamp = Date.now();
789
+ const valueStr = typeof value === 'string' ? value : JSON.stringify(value);
790
+
791
+ if (this.memoryDb) {
792
+ // SQLite storage
793
+ const stmt = this.memoryDb.prepare(`
692
794
  INSERT OR REPLACE INTO memories (namespace, key, value, type, timestamp)
693
795
  VALUES (?, ?, ?, ?, ?)
694
796
  `);
695
- const result = stmt.run(swarmId, key, valueStr, type, timestamp);
696
- return {
697
- success: true,
698
- action: 'store',
699
- namespace: swarmId,
700
- key,
701
- type,
702
- timestamp,
703
- id: result.lastInsertRowid
704
- };
705
- } else {
706
- // Fallback in-memory storage
707
- const memoryKey = `${swarmId}:${key}`;
708
- this.memoryStore.set(memoryKey, {
709
- namespace: swarmId,
710
- key,
711
- value: valueStr,
712
- type,
713
- timestamp
714
- });
715
- return {
716
- success: true,
717
- action: 'store',
718
- namespace: swarmId,
719
- key,
720
- type,
721
- timestamp
722
- };
723
- }
724
- } catch (error) {
725
- console.error('Error storing memory:', error);
726
- throw error;
727
- }
797
+
798
+ const result = stmt.run(swarmId, key, valueStr, type, timestamp);
799
+
800
+ return {
801
+ success: true,
802
+ action: 'store',
803
+ namespace: swarmId,
804
+ key,
805
+ type,
806
+ timestamp,
807
+ id: result.lastInsertRowid,
808
+ };
809
+ } else {
810
+ // Fallback in-memory storage
811
+ const memoryKey = `${swarmId}:${key}`;
812
+ this.memoryStore.set(memoryKey, {
813
+ namespace: swarmId,
814
+ key,
815
+ value: valueStr,
816
+ type,
817
+ timestamp,
818
+ });
819
+
820
+ return {
821
+ success: true,
822
+ action: 'store',
823
+ namespace: swarmId,
824
+ key,
825
+ type,
826
+ timestamp,
827
+ };
828
+ }
829
+ } catch (error) {
830
+ console.error('Error storing memory:', error);
831
+ throw error;
728
832
  }
729
- /**
833
+ }
834
+
835
+ /**
730
836
  * Retrieve data from collective memory (REAL IMPLEMENTATION)
731
- */ async retrieveMemory(swarmId, key) {
732
- try {
733
- // Don't reinitialize if we already have storage
734
- if (!this.memoryDb && !this.memoryStore) {
735
- await this.initializeMemoryStorage();
736
- }
737
- if (this.memoryDb) {
738
- // SQLite retrieval
739
- const stmt = this.memoryDb.prepare(`
837
+ */
838
+ async retrieveMemory(swarmId, key) {
839
+ try {
840
+ // Don't reinitialize if we already have storage
841
+ if (!this.memoryDb && !this.memoryStore) {
842
+ await this.initializeMemoryStorage();
843
+ }
844
+
845
+ if (this.memoryDb) {
846
+ // SQLite retrieval
847
+ const stmt = this.memoryDb.prepare(`
740
848
  SELECT * FROM memories WHERE namespace = ? AND key = ?
741
849
  `);
742
- const row = stmt.get(swarmId, key);
743
- if (row) {
744
- try {
745
- return {
746
- ...row,
747
- value: JSON.parse(row.value)
748
- };
749
- } catch {
750
- return row;
751
- }
752
- }
753
- } else {
754
- // Fallback in-memory retrieval
755
- const memoryKey = `${swarmId}:${key}`;
756
- const memory = this.memoryStore.get(memoryKey);
757
- if (memory) {
758
- try {
759
- return {
760
- ...memory,
761
- value: JSON.parse(memory.value)
762
- };
763
- } catch {
764
- return memory;
765
- }
766
- }
767
- }
768
- return null;
769
- } catch (error) {
770
- console.error('Error retrieving memory:', error);
771
- throw error;
850
+
851
+ const row = stmt.get(swarmId, key);
852
+ if (row) {
853
+ try {
854
+ return {
855
+ ...row,
856
+ value: JSON.parse(row.value),
857
+ };
858
+ } catch {
859
+ return row;
860
+ }
772
861
  }
862
+ } else {
863
+ // Fallback in-memory retrieval
864
+ const memoryKey = `${swarmId}:${key}`;
865
+ const memory = this.memoryStore.get(memoryKey);
866
+ if (memory) {
867
+ try {
868
+ return {
869
+ ...memory,
870
+ value: JSON.parse(memory.value),
871
+ };
872
+ } catch {
873
+ return memory;
874
+ }
875
+ }
876
+ }
877
+
878
+ return null;
879
+ } catch (error) {
880
+ console.error('Error retrieving memory:', error);
881
+ throw error;
773
882
  }
774
- /**
883
+ }
884
+
885
+ /**
775
886
  * Search collective memory (REAL IMPLEMENTATION)
776
- */ async searchMemory(swarmId, pattern) {
777
- try {
778
- // Don't reinitialize if we already have storage
779
- if (!this.memoryDb && !this.memoryStore) {
780
- await this.initializeMemoryStorage();
781
- }
782
- let results = [];
783
- if (this.memoryDb) {
784
- // SQLite search
785
- let query, params;
786
- if (pattern && pattern.trim()) {
787
- // Search with pattern
788
- query = `
887
+ */
888
+ async searchMemory(swarmId, pattern) {
889
+ try {
890
+ // Don't reinitialize if we already have storage
891
+ if (!this.memoryDb && !this.memoryStore) {
892
+ await this.initializeMemoryStorage();
893
+ }
894
+
895
+ let results = [];
896
+
897
+ if (this.memoryDb) {
898
+ // SQLite search
899
+ let query, params;
900
+
901
+ if (pattern && pattern.trim()) {
902
+ // Search with pattern
903
+ query = `
789
904
  SELECT * FROM memories
790
905
  WHERE namespace = ? AND (key LIKE ? OR value LIKE ? OR type LIKE ?)
791
906
  ORDER BY timestamp DESC
792
907
  LIMIT 50
793
908
  `;
794
- const searchPattern = `%${pattern}%`;
795
- params = [
796
- swarmId,
797
- searchPattern,
798
- searchPattern,
799
- searchPattern
800
- ];
801
- } else {
802
- // Get all memories for namespace
803
- query = `
909
+ const searchPattern = `%${pattern}%`;
910
+ params = [swarmId, searchPattern, searchPattern, searchPattern];
911
+ } else {
912
+ // Get all memories for namespace
913
+ query = `
804
914
  SELECT * FROM memories
805
915
  WHERE namespace = ?
806
916
  ORDER BY timestamp DESC
807
917
  LIMIT 50
808
918
  `;
809
- params = [
810
- swarmId
811
- ];
812
- }
813
- const stmt = this.memoryDb.prepare(query);
814
- results = stmt.all(...params);
815
- // Parse JSON values where possible
816
- results = results.map((row)=>{
817
- try {
818
- return {
819
- ...row,
820
- value: JSON.parse(row.value)
821
- };
822
- } catch {
823
- return row;
824
- }
825
- });
826
- } else {
827
- // Fallback in-memory search
828
- for (const [memKey, memory] of this.memoryStore){
829
- if (memory.namespace === swarmId) {
830
- if (!pattern || memory.key.includes(pattern) || memory.value.includes(pattern) || memory.type.includes(pattern)) {
831
- try {
832
- results.push({
833
- ...memory,
834
- value: JSON.parse(memory.value)
835
- });
836
- } catch {
837
- results.push(memory);
838
- }
839
- }
840
- }
841
- }
842
- // Sort by timestamp descending
843
- results.sort((a, b)=>b.timestamp - a.timestamp);
844
- results = results.slice(0, 50);
845
- }
919
+ params = [swarmId];
920
+ }
921
+
922
+ const stmt = this.memoryDb.prepare(query);
923
+ results = stmt.all(...params);
924
+
925
+ // Parse JSON values where possible
926
+ results = results.map((row) => {
927
+ try {
846
928
  return {
847
- success: true,
848
- namespace: swarmId,
849
- pattern: pattern || '',
850
- total: results.length,
851
- results: results
929
+ ...row,
930
+ value: JSON.parse(row.value),
852
931
  };
853
- } catch (error) {
854
- console.error('Error searching memory:', error);
855
- throw error;
932
+ } catch {
933
+ return row;
934
+ }
935
+ });
936
+ } else {
937
+ // Fallback in-memory search
938
+ for (const [memKey, memory] of this.memoryStore) {
939
+ if (memory.namespace === swarmId) {
940
+ if (
941
+ !pattern ||
942
+ memory.key.includes(pattern) ||
943
+ memory.value.includes(pattern) ||
944
+ memory.type.includes(pattern)
945
+ ) {
946
+ try {
947
+ results.push({
948
+ ...memory,
949
+ value: JSON.parse(memory.value),
950
+ });
951
+ } catch {
952
+ results.push(memory);
953
+ }
954
+ }
955
+ }
856
956
  }
957
+
958
+ // Sort by timestamp descending
959
+ results.sort((a, b) => b.timestamp - a.timestamp);
960
+ results = results.slice(0, 50);
961
+ }
962
+
963
+ return {
964
+ success: true,
965
+ namespace: swarmId,
966
+ pattern: pattern || '',
967
+ total: results.length,
968
+ results: results,
969
+ };
970
+ } catch (error) {
971
+ console.error('Error searching memory:', error);
972
+ throw error;
857
973
  }
858
- /**
974
+ }
975
+
976
+ /**
859
977
  * Orchestrate task with monitoring and optimization
860
- */ async orchestrateTask(task, strategy = 'parallel', metadata = {}) {
861
- const taskId = metadata.taskId || `task-${Date.now()}`;
862
- const swarmId = metadata.swarmId || 'default-swarm';
863
- const complexity = metadata.complexity || 'medium';
864
- // Store task information
865
- await this.storeMemory(swarmId, `task-${taskId}`, {
866
- id: taskId,
867
- task,
868
- strategy,
869
- status: 'pending',
870
- priority: metadata.priority || 5,
871
- complexity,
872
- createdAt: Date.now()
873
- }, 'task');
874
- // Adjust monitoring frequency based on task complexity
875
- const monitoringInterval = {
876
- low: 10000,
877
- medium: 5000,
878
- high: 2000
879
- }[complexity] || 5000;
880
- const batch = [
881
- {
882
- tool: 'task_orchestrate',
883
- params: {
884
- task,
885
- strategy,
886
- taskId,
887
- priority: metadata.priority || 5,
888
- estimatedDuration: metadata.estimatedDuration || 30000
889
- }
890
- },
978
+ */
979
+ async orchestrateTask(task, strategy = 'parallel', metadata = {}) {
980
+ const taskId = metadata.taskId || `task-${Date.now()}`;
981
+ const swarmId = metadata.swarmId || 'default-swarm';
982
+ const complexity = metadata.complexity || 'medium';
983
+
984
+ // Store task information
985
+ await this.storeMemory(
986
+ swarmId,
987
+ `task-${taskId}`,
988
+ {
989
+ id: taskId,
990
+ task,
991
+ strategy,
992
+ status: 'pending',
993
+ priority: metadata.priority || 5,
994
+ complexity,
995
+ createdAt: Date.now(),
996
+ },
997
+ 'task',
998
+ );
999
+
1000
+ // Adjust monitoring frequency based on task complexity
1001
+ const monitoringInterval =
1002
+ {
1003
+ low: 10000,
1004
+ medium: 5000,
1005
+ high: 2000,
1006
+ }[complexity] || 5000;
1007
+
1008
+ const batch = [
1009
+ {
1010
+ tool: 'task_orchestrate',
1011
+ params: {
1012
+ task,
1013
+ strategy,
1014
+ taskId,
1015
+ priority: metadata.priority || 5,
1016
+ estimatedDuration: metadata.estimatedDuration || 30000,
1017
+ },
1018
+ },
1019
+ {
1020
+ tool: 'swarm_monitor',
1021
+ params: {
1022
+ interval: monitoringInterval,
1023
+ taskId,
1024
+ metrics: ['performance', 'progress', 'bottlenecks'],
1025
+ },
1026
+ },
1027
+ // Add performance tracking for high-priority tasks
1028
+ ...(metadata.priority > 7
1029
+ ? [
891
1030
  {
892
- tool: 'swarm_monitor',
893
- params: {
894
- interval: monitoringInterval,
895
- taskId,
896
- metrics: [
897
- 'performance',
898
- 'progress',
899
- 'bottlenecks'
900
- ]
901
- }
1031
+ tool: 'performance_report',
1032
+ params: { format: 'detailed', taskId },
902
1033
  },
903
- // Add performance tracking for high-priority tasks
904
- ...metadata.priority > 7 ? [
905
- {
906
- tool: 'performance_report',
907
- params: {
908
- format: 'detailed',
909
- taskId
910
- }
911
- }
912
- ] : []
913
- ];
914
- const results = await this.executeParallel(batch);
915
- // Update task status
916
- await this.storeMemory(swarmId, `task-${taskId}`, {
917
- id: taskId,
918
- task,
919
- strategy,
920
- status: 'in_progress',
921
- priority: metadata.priority || 5,
922
- complexity,
923
- createdAt: Date.now()
924
- }, 'task');
925
- return results;
926
- }
927
- /**
1034
+ ]
1035
+ : []),
1036
+ ];
1037
+
1038
+ const results = await this.executeParallel(batch);
1039
+
1040
+ // Update task status
1041
+ await this.storeMemory(
1042
+ swarmId,
1043
+ `task-${taskId}`,
1044
+ {
1045
+ id: taskId,
1046
+ task,
1047
+ strategy,
1048
+ status: 'in_progress',
1049
+ priority: metadata.priority || 5,
1050
+ complexity,
1051
+ createdAt: Date.now(),
1052
+ },
1053
+ 'task',
1054
+ );
1055
+
1056
+ return results;
1057
+ }
1058
+
1059
+ /**
928
1060
  * Analyze performance bottlenecks
929
- */ async analyzePerformance(swarmId) {
930
- const batch = [
931
- {
932
- tool: 'bottleneck_analyze',
933
- params: {
934
- component: swarmId
935
- }
936
- },
937
- {
938
- tool: 'performance_report',
939
- params: {
940
- format: 'detailed'
941
- }
942
- },
943
- {
944
- tool: 'token_usage',
945
- params: {
946
- operation: swarmId
947
- }
948
- }
949
- ];
950
- return await this.executeParallel(batch);
951
- }
952
- /**
1061
+ */
1062
+ async analyzePerformance(swarmId) {
1063
+ const batch = [
1064
+ { tool: 'bottleneck_analyze', params: { component: swarmId } },
1065
+ { tool: 'performance_report', params: { format: 'detailed' } },
1066
+ { tool: 'token_usage', params: { operation: swarmId } },
1067
+ ];
1068
+
1069
+ return await this.executeParallel(batch);
1070
+ }
1071
+
1072
+ /**
953
1073
  * GitHub integration for code operations
954
- */ async githubOperations(repo, operation, params = {}) {
955
- const githubTools = {
956
- analyze: 'github_repo_analyze',
957
- pr: 'github_pr_manage',
958
- issue: 'github_issue_track',
959
- review: 'github_code_review'
960
- };
961
- const tool = githubTools[operation];
962
- if (!tool) {
963
- throw new Error(`Unknown GitHub operation: ${operation}`);
964
- }
965
- return await this.executeTool(tool, {
966
- repo,
967
- ...params
968
- });
1074
+ */
1075
+ async githubOperations(repo, operation, params = {}) {
1076
+ const githubTools = {
1077
+ analyze: 'github_repo_analyze',
1078
+ pr: 'github_pr_manage',
1079
+ issue: 'github_issue_track',
1080
+ review: 'github_code_review',
1081
+ };
1082
+
1083
+ const tool = githubTools[operation];
1084
+ if (!tool) {
1085
+ throw new Error(`Unknown GitHub operation: ${operation}`);
969
1086
  }
970
- /**
1087
+
1088
+ return await this.executeTool(tool, { repo, ...params });
1089
+ }
1090
+
1091
+ /**
971
1092
  * Neural network operations
972
- */ async neuralOperation(operation, params = {}) {
973
- const neuralTools = {
974
- train: 'neural_train',
975
- predict: 'neural_predict',
976
- analyze: 'neural_patterns',
977
- optimize: 'wasm_optimize'
978
- };
979
- const tool = neuralTools[operation];
980
- if (!tool) {
981
- throw new Error(`Unknown neural operation: ${operation}`);
982
- }
983
- return await this.executeTool(tool, params);
1093
+ */
1094
+ async neuralOperation(operation, params = {}) {
1095
+ const neuralTools = {
1096
+ train: 'neural_train',
1097
+ predict: 'neural_predict',
1098
+ analyze: 'neural_patterns',
1099
+ optimize: 'wasm_optimize',
1100
+ };
1101
+
1102
+ const tool = neuralTools[operation];
1103
+ if (!tool) {
1104
+ throw new Error(`Unknown neural operation: ${operation}`);
984
1105
  }
985
- /**
1106
+
1107
+ return await this.executeTool(tool, params);
1108
+ }
1109
+
1110
+ /**
986
1111
  * Clean up and destroy swarm
987
- */ async destroySwarm(swarmId) {
988
- const batch = [
989
- {
990
- tool: 'swarm_destroy',
991
- params: {
992
- swarmId
993
- }
994
- },
995
- {
996
- tool: 'memory_namespace',
997
- params: {
998
- action: 'delete',
999
- namespace: swarmId
1000
- }
1001
- },
1002
- {
1003
- tool: 'cache_manage',
1004
- params: {
1005
- action: 'clear',
1006
- key: `swarm-${swarmId}`
1007
- }
1008
- }
1009
- ];
1010
- return await this.executeParallel(batch);
1011
- }
1012
- /**
1112
+ */
1113
+ async destroySwarm(swarmId) {
1114
+ const batch = [
1115
+ { tool: 'swarm_destroy', params: { swarmId } },
1116
+ {
1117
+ tool: 'memory_namespace',
1118
+ params: {
1119
+ action: 'delete',
1120
+ namespace: swarmId,
1121
+ },
1122
+ },
1123
+ {
1124
+ tool: 'cache_manage',
1125
+ params: {
1126
+ action: 'clear',
1127
+ key: `swarm-${swarmId}`,
1128
+ },
1129
+ },
1130
+ ];
1131
+
1132
+ return await this.executeParallel(batch);
1133
+ }
1134
+
1135
+ /**
1013
1136
  * Get real swarm status from memory storage
1014
- */ async getSwarmStatus(params = {}) {
1015
- try {
1016
- // Don't reinitialize if we already have storage
1017
- if (!this.memoryDb && !this.memoryStore) {
1018
- await this.initializeMemoryStorage();
1019
- }
1020
- const swarms = [];
1021
- let activeAgents = 0;
1022
- let totalTasks = 0;
1023
- let completedTasks = 0;
1024
- if (this.memoryDb) {
1025
- // Get all unique swarm namespaces
1026
- const namespacesQuery = this.memoryDb.prepare(`
1137
+ */
1138
+ async getSwarmStatus(params = {}) {
1139
+ try {
1140
+ // Don't reinitialize if we already have storage
1141
+ if (!this.memoryDb && !this.memoryStore) {
1142
+ await this.initializeMemoryStorage();
1143
+ }
1144
+
1145
+ const swarms = [];
1146
+ let activeAgents = 0;
1147
+ let totalTasks = 0;
1148
+ let completedTasks = 0;
1149
+
1150
+ if (this.memoryDb) {
1151
+ // Get all unique swarm namespaces
1152
+ const namespacesQuery = this.memoryDb.prepare(`
1027
1153
  SELECT DISTINCT namespace FROM memories
1028
1154
  WHERE namespace LIKE 'swarm-%' OR namespace LIKE 'hive-%'
1029
1155
  ORDER BY timestamp DESC
1030
1156
  `);
1031
- const namespaces = namespacesQuery.all();
1032
- // For each swarm, gather its information
1033
- for (const { namespace } of namespaces){
1034
- const swarmId = namespace;
1035
- // Get swarm metadata
1036
- const metadataQuery = this.memoryDb.prepare(`
1157
+ const namespaces = namespacesQuery.all();
1158
+
1159
+ // For each swarm, gather its information
1160
+ for (const { namespace } of namespaces) {
1161
+ const swarmId = namespace;
1162
+
1163
+ // Get swarm metadata
1164
+ const metadataQuery = this.memoryDb.prepare(`
1037
1165
  SELECT key, value, type, timestamp FROM memories
1038
1166
  WHERE namespace = ? AND (
1039
1167
  key IN ('init_performance', 'config', 'status', 'agents', 'tasks', 'topology')
@@ -1041,204 +1169,196 @@ https://github.com/ruvnet/claude-code-flow/docs/windows-installation.md
1041
1169
  OR key LIKE 'task-%'
1042
1170
  )
1043
1171
  `);
1044
- const swarmData = metadataQuery.all(swarmId);
1045
- // Parse swarm information
1046
- let swarmInfo = {
1047
- id: swarmId,
1048
- name: swarmId,
1049
- status: 'unknown',
1050
- agents: 0,
1051
- tasks: {
1052
- total: 0,
1053
- completed: 0,
1054
- pending: 0,
1055
- failed: 0
1056
- },
1057
- topology: 'hierarchical',
1058
- createdAt: null,
1059
- lastActivity: null,
1060
- memoryUsage: swarmData.length
1061
- };
1062
- // Process swarm data
1063
- for (const record of swarmData){
1064
- try {
1065
- const value = typeof record.value === 'string' ? JSON.parse(record.value) : record.value;
1066
- switch(record.key){
1067
- case 'init_performance':
1068
- swarmInfo.createdAt = value.timestamp;
1069
- swarmInfo.topology = value.topology || 'hierarchical';
1070
- break;
1071
- case 'status':
1072
- swarmInfo.status = value;
1073
- break;
1074
- case 'config':
1075
- swarmInfo.topology = value.topology || swarmInfo.topology;
1076
- break;
1077
- }
1078
- // Count agents
1079
- if (record.key.startsWith('agent-')) {
1080
- swarmInfo.agents++;
1081
- activeAgents++;
1082
- }
1083
- // Count tasks
1084
- if (record.key.startsWith('task-')) {
1085
- swarmInfo.tasks.total++;
1086
- totalTasks++;
1087
- if (value.status === 'completed') {
1088
- swarmInfo.tasks.completed++;
1089
- completedTasks++;
1090
- } else if (value.status === 'failed') {
1091
- swarmInfo.tasks.failed++;
1092
- } else if (value.status === 'pending' || value.status === 'in_progress') {
1093
- swarmInfo.tasks.pending++;
1094
- }
1095
- }
1096
- // Track last activity
1097
- if (record.timestamp > (swarmInfo.lastActivity || 0)) {
1098
- swarmInfo.lastActivity = record.timestamp;
1099
- }
1100
- } catch (e) {
1101
- // Skip invalid JSON values
1102
- }
1103
- }
1104
- // Determine swarm status based on activity
1105
- if (swarmInfo.status === 'unknown') {
1106
- const now = Date.now();
1107
- const lastActivityAge = now - (swarmInfo.lastActivity || 0);
1108
- if (lastActivityAge < 60000) {
1109
- // Active within last minute
1110
- swarmInfo.status = 'active';
1111
- } else if (lastActivityAge < 300000) {
1112
- // Active within last 5 minutes
1113
- swarmInfo.status = 'idle';
1114
- } else {
1115
- swarmInfo.status = 'inactive';
1116
- }
1117
- }
1118
- swarms.push(swarmInfo);
1172
+ const swarmData = metadataQuery.all(swarmId);
1173
+
1174
+ // Parse swarm information
1175
+ let swarmInfo = {
1176
+ id: swarmId,
1177
+ name: swarmId,
1178
+ status: 'unknown',
1179
+ agents: 0,
1180
+ tasks: { total: 0, completed: 0, pending: 0, failed: 0 },
1181
+ topology: 'hierarchical',
1182
+ createdAt: null,
1183
+ lastActivity: null,
1184
+ memoryUsage: swarmData.length,
1185
+ };
1186
+
1187
+ // Process swarm data
1188
+ for (const record of swarmData) {
1189
+ try {
1190
+ const value =
1191
+ typeof record.value === 'string' ? JSON.parse(record.value) : record.value;
1192
+
1193
+ switch (record.key) {
1194
+ case 'init_performance':
1195
+ swarmInfo.createdAt = value.timestamp;
1196
+ swarmInfo.topology = value.topology || 'hierarchical';
1197
+ break;
1198
+ case 'status':
1199
+ swarmInfo.status = value;
1200
+ break;
1201
+ case 'config':
1202
+ swarmInfo.topology = value.topology || swarmInfo.topology;
1203
+ break;
1204
+ }
1205
+
1206
+ // Count agents
1207
+ if (record.key.startsWith('agent-')) {
1208
+ swarmInfo.agents++;
1209
+ activeAgents++;
1210
+ }
1211
+
1212
+ // Count tasks
1213
+ if (record.key.startsWith('task-')) {
1214
+ swarmInfo.tasks.total++;
1215
+ totalTasks++;
1216
+ if (value.status === 'completed') {
1217
+ swarmInfo.tasks.completed++;
1218
+ completedTasks++;
1219
+ } else if (value.status === 'failed') {
1220
+ swarmInfo.tasks.failed++;
1221
+ } else if (value.status === 'pending' || value.status === 'in_progress') {
1222
+ swarmInfo.tasks.pending++;
1119
1223
  }
1120
- // Get recent activity logs
1121
- const activityQuery = this.memoryDb.prepare(`
1224
+ }
1225
+
1226
+ // Track last activity
1227
+ if (record.timestamp > (swarmInfo.lastActivity || 0)) {
1228
+ swarmInfo.lastActivity = record.timestamp;
1229
+ }
1230
+ } catch (e) {
1231
+ // Skip invalid JSON values
1232
+ }
1233
+ }
1234
+
1235
+ // Determine swarm status based on activity
1236
+ if (swarmInfo.status === 'unknown') {
1237
+ const now = Date.now();
1238
+ const lastActivityAge = now - (swarmInfo.lastActivity || 0);
1239
+
1240
+ if (lastActivityAge < 60000) {
1241
+ // Active within last minute
1242
+ swarmInfo.status = 'active';
1243
+ } else if (lastActivityAge < 300000) {
1244
+ // Active within last 5 minutes
1245
+ swarmInfo.status = 'idle';
1246
+ } else {
1247
+ swarmInfo.status = 'inactive';
1248
+ }
1249
+ }
1250
+
1251
+ swarms.push(swarmInfo);
1252
+ }
1253
+
1254
+ // Get recent activity logs
1255
+ const activityQuery = this.memoryDb.prepare(`
1122
1256
  SELECT namespace, key, type, timestamp FROM memories
1123
1257
  WHERE (namespace LIKE 'swarm-%' OR namespace LIKE 'hive-%')
1124
1258
  AND timestamp > ?
1125
1259
  ORDER BY timestamp DESC
1126
1260
  LIMIT 10
1127
1261
  `);
1128
- const recentActivity = activityQuery.all(Date.now() - 300000); // Last 5 minutes
1129
- return {
1130
- swarms,
1131
- activeAgents,
1132
- totalTasks,
1133
- completedTasks,
1134
- pendingTasks: totalTasks - completedTasks,
1135
- recentActivity: recentActivity.map((r)=>({
1136
- swarmId: r.namespace,
1137
- action: r.key,
1138
- type: r.type,
1139
- timestamp: r.timestamp
1140
- })),
1141
- summary: {
1142
- totalSwarms: swarms.length,
1143
- activeSwarms: swarms.filter((s)=>s.status === 'active').length,
1144
- idleSwarms: swarms.filter((s)=>s.status === 'idle').length,
1145
- inactiveSwarms: swarms.filter((s)=>s.status === 'inactive').length
1146
- }
1147
- };
1148
- } else {
1149
- // Fallback to in-memory storage
1150
- const swarmMap = new Map();
1151
- for (const [key, memory] of this.memoryStore){
1152
- const namespace = memory.namespace;
1153
- if (namespace && (namespace.startsWith('swarm-') || namespace.startsWith('hive-'))) {
1154
- if (!swarmMap.has(namespace)) {
1155
- swarmMap.set(namespace, {
1156
- id: namespace,
1157
- name: namespace,
1158
- status: 'active',
1159
- agents: 0,
1160
- tasks: {
1161
- total: 0,
1162
- completed: 0,
1163
- pending: 0,
1164
- failed: 0
1165
- },
1166
- memoryUsage: 0
1167
- });
1168
- }
1169
- const swarm = swarmMap.get(namespace);
1170
- swarm.memoryUsage++;
1171
- if (memory.key.startsWith('agent-')) {
1172
- swarm.agents++;
1173
- activeAgents++;
1174
- }
1175
- if (memory.key.startsWith('task-')) {
1176
- swarm.tasks.total++;
1177
- totalTasks++;
1178
- try {
1179
- const taskData = JSON.parse(memory.value);
1180
- if (taskData.status === 'completed') {
1181
- swarm.tasks.completed++;
1182
- completedTasks++;
1183
- } else if (taskData.status === 'failed') {
1184
- swarm.tasks.failed++;
1185
- } else if (taskData.status === 'pending' || taskData.status === 'in_progress') {
1186
- swarm.tasks.pending++;
1187
- }
1188
- } catch (e) {
1189
- // Skip invalid JSON
1190
- }
1191
- }
1192
- }
1262
+ const recentActivity = activityQuery.all(Date.now() - 300000); // Last 5 minutes
1263
+
1264
+ return {
1265
+ swarms,
1266
+ activeAgents,
1267
+ totalTasks,
1268
+ completedTasks,
1269
+ pendingTasks: totalTasks - completedTasks,
1270
+ recentActivity: recentActivity.map((r) => ({
1271
+ swarmId: r.namespace,
1272
+ action: r.key,
1273
+ type: r.type,
1274
+ timestamp: r.timestamp,
1275
+ })),
1276
+ summary: {
1277
+ totalSwarms: swarms.length,
1278
+ activeSwarms: swarms.filter((s) => s.status === 'active').length,
1279
+ idleSwarms: swarms.filter((s) => s.status === 'idle').length,
1280
+ inactiveSwarms: swarms.filter((s) => s.status === 'inactive').length,
1281
+ },
1282
+ };
1283
+ } else {
1284
+ // Fallback to in-memory storage
1285
+ const swarmMap = new Map();
1286
+
1287
+ for (const [key, memory] of this.memoryStore) {
1288
+ const namespace = memory.namespace;
1289
+ if (namespace && (namespace.startsWith('swarm-') || namespace.startsWith('hive-'))) {
1290
+ if (!swarmMap.has(namespace)) {
1291
+ swarmMap.set(namespace, {
1292
+ id: namespace,
1293
+ name: namespace,
1294
+ status: 'active',
1295
+ agents: 0,
1296
+ tasks: { total: 0, completed: 0, pending: 0, failed: 0 },
1297
+ memoryUsage: 0,
1298
+ });
1299
+ }
1300
+
1301
+ const swarm = swarmMap.get(namespace);
1302
+ swarm.memoryUsage++;
1303
+
1304
+ if (memory.key.startsWith('agent-')) {
1305
+ swarm.agents++;
1306
+ activeAgents++;
1307
+ }
1308
+
1309
+ if (memory.key.startsWith('task-')) {
1310
+ swarm.tasks.total++;
1311
+ totalTasks++;
1312
+ try {
1313
+ const taskData = JSON.parse(memory.value);
1314
+ if (taskData.status === 'completed') {
1315
+ swarm.tasks.completed++;
1316
+ completedTasks++;
1317
+ } else if (taskData.status === 'failed') {
1318
+ swarm.tasks.failed++;
1319
+ } else if (taskData.status === 'pending' || taskData.status === 'in_progress') {
1320
+ swarm.tasks.pending++;
1193
1321
  }
1194
- return {
1195
- swarms: Array.from(swarmMap.values()),
1196
- activeAgents,
1197
- totalTasks,
1198
- completedTasks,
1199
- pendingTasks: totalTasks - completedTasks,
1200
- summary: {
1201
- totalSwarms: swarmMap.size,
1202
- activeSwarms: swarmMap.size
1203
- }
1204
- };
1322
+ } catch (e) {
1323
+ // Skip invalid JSON
1324
+ }
1205
1325
  }
1206
- } catch (error) {
1207
- console.error('Error getting swarm status:', error);
1208
- // Return empty status on error
1209
- return {
1210
- swarms: [],
1211
- activeAgents: 0,
1212
- totalTasks: 0,
1213
- completedTasks: 0,
1214
- pendingTasks: 0,
1215
- recentActivity: [],
1216
- summary: {
1217
- totalSwarms: 0,
1218
- activeSwarms: 0,
1219
- idleSwarms: 0,
1220
- inactiveSwarms: 0
1221
- },
1222
- error: error.message
1223
- };
1326
+ }
1224
1327
  }
1225
- }
1226
- constructor(config = {}){
1227
- this.config = {
1228
- parallel: true,
1229
- timeout: 60000,
1230
- retryCount: 3,
1231
- ...config
1328
+
1329
+ return {
1330
+ swarms: Array.from(swarmMap.values()),
1331
+ activeAgents,
1332
+ totalTasks,
1333
+ completedTasks,
1334
+ pendingTasks: totalTasks - completedTasks,
1335
+ summary: {
1336
+ totalSwarms: swarmMap.size,
1337
+ activeSwarms: swarmMap.size,
1338
+ },
1232
1339
  };
1233
- this.toolStats = new Map();
1234
- this.parallelQueue = [];
1235
- this.executing = false;
1236
- /** @type {import('better-sqlite3').Database | null} */ this.memoryDb = null;
1237
- // Initialize memory store for fallback
1238
- this.memoryStore = new Map();
1239
- // Initialize real memory storage
1240
- this.initializeMemoryStorage();
1340
+ }
1341
+ } catch (error) {
1342
+ console.error('Error getting swarm status:', error);
1343
+ // Return empty status on error
1344
+ return {
1345
+ swarms: [],
1346
+ activeAgents: 0,
1347
+ totalTasks: 0,
1348
+ completedTasks: 0,
1349
+ pendingTasks: 0,
1350
+ recentActivity: [],
1351
+ summary: {
1352
+ totalSwarms: 0,
1353
+ activeSwarms: 0,
1354
+ idleSwarms: 0,
1355
+ inactiveSwarms: 0,
1356
+ },
1357
+ error: error.message,
1358
+ };
1241
1359
  }
1360
+ }
1242
1361
  }
1362
+
1243
1363
  // Export tool categories for reference
1244
1364
  export { MCP_TOOLS };