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,959 +1,1031 @@
1
1
  /**
2
2
  * Hive Mind Core System
3
3
  * Central orchestration and coordination logic
4
- */ import EventEmitter from "events";
5
- import { MCPToolWrapper } from "./mcp-wrapper.js";
6
- import { PerformanceOptimizer } from "./performance-optimizer.js";
4
+ */
5
+
6
+ import EventEmitter from 'events';
7
+ import { MCPToolWrapper } from './mcp-wrapper.js';
8
+ import { PerformanceOptimizer } from './performance-optimizer.js';
9
+
7
10
  /**
8
11
  * HiveMindCore - Main orchestration class
9
- */ export class HiveMindCore extends EventEmitter {
10
- /**
12
+ */
13
+ export class HiveMindCore extends EventEmitter {
14
+ constructor(config = {}) {
15
+ super();
16
+
17
+ this.config = {
18
+ objective: '',
19
+ name: `hive-${Date.now()}`,
20
+ queenType: 'strategic',
21
+ maxWorkers: 8,
22
+ consensusAlgorithm: 'majority',
23
+ autoScale: true,
24
+ encryption: false,
25
+ memorySize: 100, // MB
26
+ taskTimeout: 60, // minutes
27
+ ...config,
28
+ };
29
+
30
+ this.state = {
31
+ status: 'initializing',
32
+ swarmId: null,
33
+ queen: null,
34
+ workers: new Map(),
35
+ tasks: new Map(),
36
+ memory: new Map(),
37
+ decisions: new Map(),
38
+ metrics: {
39
+ tasksCreated: 0,
40
+ tasksCompleted: 0,
41
+ decisionsReached: 0,
42
+ memoryUsage: 0,
43
+ },
44
+ };
45
+
46
+ this.mcpWrapper = new MCPToolWrapper({
47
+ parallel: true,
48
+ timeout: this.config.taskTimeout * 60 * 1000,
49
+ });
50
+
51
+ // Initialize performance optimizer
52
+ this.performanceOptimizer = new PerformanceOptimizer({
53
+ enableAsyncQueue: true,
54
+ enableBatchProcessing: true,
55
+ enableAutoTuning: true,
56
+ asyncQueueConcurrency: Math.min(this.config.maxWorkers * 2, 20),
57
+ batchMaxSize: 50,
58
+ metricsInterval: 30000,
59
+ });
60
+
61
+ this._initializeEventHandlers();
62
+ this._initializePerformanceMonitoring();
63
+ }
64
+
65
+ /**
11
66
  * Initialize event handlers
12
- */ _initializeEventHandlers() {
13
- this.on('task:created', (task)=>{
14
- this.state.metrics.tasksCreated++;
15
- this._checkAutoScale();
16
- });
17
- this.on('task:completed', (task)=>{
18
- this.state.metrics.tasksCompleted++;
19
- this._updatePerformanceMetrics();
20
- });
21
- this.on('task:failed', (data)=>{
22
- console.warn(`Task failed: ${data.task.id}`, data.error);
23
- this._handleTaskFailure(data.task, data.error);
24
- });
25
- this.on('decision:reached', (decision)=>{
26
- this.state.metrics.decisionsReached++;
27
- });
28
- this.on('worker:idle', (workerId)=>{
29
- this._assignNextTask(workerId);
30
- });
31
- this.on('error', (error)=>{
32
- console.error('Hive Mind Error:', error);
33
- this._handleError(error);
34
- });
35
- }
36
- /**
67
+ */
68
+ _initializeEventHandlers() {
69
+ this.on('task:created', (task) => {
70
+ this.state.metrics.tasksCreated++;
71
+ this._checkAutoScale();
72
+ });
73
+
74
+ this.on('task:completed', (task) => {
75
+ this.state.metrics.tasksCompleted++;
76
+ this._updatePerformanceMetrics();
77
+ });
78
+
79
+ this.on('task:failed', (data) => {
80
+ console.warn(`Task failed: ${data.task.id}`, data.error);
81
+ this._handleTaskFailure(data.task, data.error);
82
+ });
83
+
84
+ this.on('decision:reached', (decision) => {
85
+ this.state.metrics.decisionsReached++;
86
+ });
87
+
88
+ this.on('worker:idle', (workerId) => {
89
+ this._assignNextTask(workerId);
90
+ });
91
+
92
+ this.on('error', (error) => {
93
+ console.error('Hive Mind Error:', error);
94
+ this._handleError(error);
95
+ });
96
+ }
97
+
98
+ /**
37
99
  * Initialize performance monitoring
38
- */ _initializePerformanceMonitoring() {
39
- // Listen to performance optimizer events
40
- this.performanceOptimizer.on('auto_tune', (data)=>{
41
- console.log(`Performance auto-tuned: ${data.type} = ${data.newValue}`);
42
- this.emit('performance:auto_tuned', data);
43
- });
44
- this.performanceOptimizer.on('error', (error)=>{
45
- console.error('Performance optimizer error:', error);
46
- this.emit('error', {
47
- type: 'performance_optimizer_error',
48
- error
49
- });
50
- });
51
- // Periodic performance reporting
52
- setInterval(()=>{
53
- const stats = this.performanceOptimizer.getPerformanceStats();
54
- this.emit('performance:stats', stats);
55
- // Log performance warnings
56
- if (parseFloat(stats.asyncQueue.utilization) > 90) {
57
- console.warn('High async queue utilization:', stats.asyncQueue.utilization + '%');
58
- }
59
- if (parseFloat(stats.asyncQueue.successRate) < 95) {
60
- console.warn('Low async operation success rate:', stats.asyncQueue.successRate + '%');
61
- }
62
- }, 60000); // Every minute
63
- }
64
- /**
100
+ */
101
+ _initializePerformanceMonitoring() {
102
+ // Listen to performance optimizer events
103
+ this.performanceOptimizer.on('auto_tune', (data) => {
104
+ console.log(`Performance auto-tuned: ${data.type} = ${data.newValue}`);
105
+ this.emit('performance:auto_tuned', data);
106
+ });
107
+
108
+ this.performanceOptimizer.on('error', (error) => {
109
+ console.error('Performance optimizer error:', error);
110
+ this.emit('error', { type: 'performance_optimizer_error', error });
111
+ });
112
+
113
+ // Periodic performance reporting
114
+ setInterval(() => {
115
+ const stats = this.performanceOptimizer.getPerformanceStats();
116
+ this.emit('performance:stats', stats);
117
+
118
+ // Log performance warnings
119
+ if (parseFloat(stats.asyncQueue.utilization) > 90) {
120
+ console.warn('High async queue utilization:', stats.asyncQueue.utilization + '%');
121
+ }
122
+
123
+ if (parseFloat(stats.asyncQueue.successRate) < 95) {
124
+ console.warn('Low async operation success rate:', stats.asyncQueue.successRate + '%');
125
+ }
126
+ }, 60000); // Every minute
127
+ }
128
+
129
+ /**
65
130
  * Handle task failure with recovery logic
66
- */ _handleTaskFailure(task, error) {
67
- // Update metrics
68
- this.state.metrics.tasksFailed = (this.state.metrics.tasksFailed || 0) + 1;
69
- // Attempt task retry for recoverable failures
70
- if (task.retryCount < 2 && this._isRecoverableError(error)) {
71
- task.retryCount = (task.retryCount || 0) + 1;
72
- task.status = 'pending';
73
- // Find another worker for retry
74
- setTimeout(()=>{
75
- const worker = this._findBestWorker(task);
76
- if (worker) {
77
- this._assignTask(worker.id, task.id);
78
- }
79
- }, 5000); // Wait 5 seconds before retry
80
- console.log(`Retrying task ${task.id} (attempt ${task.retryCount})`);
131
+ */
132
+ _handleTaskFailure(task, error) {
133
+ // Update metrics
134
+ this.state.metrics.tasksFailed = (this.state.metrics.tasksFailed || 0) + 1;
135
+
136
+ // Attempt task retry for recoverable failures
137
+ if (task.retryCount < 2 && this._isRecoverableError(error)) {
138
+ task.retryCount = (task.retryCount || 0) + 1;
139
+ task.status = 'pending';
140
+
141
+ // Find another worker for retry
142
+ setTimeout(() => {
143
+ const worker = this._findBestWorker(task);
144
+ if (worker) {
145
+ this._assignTask(worker.id, task.id);
81
146
  }
147
+ }, 5000); // Wait 5 seconds before retry
148
+
149
+ console.log(`Retrying task ${task.id} (attempt ${task.retryCount})`);
82
150
  }
83
- /**
151
+ }
152
+
153
+ /**
84
154
  * Check if error is recoverable
85
- */ _isRecoverableError(error) {
86
- const recoverableErrors = [
87
- 'timeout',
88
- 'network',
89
- 'temporary',
90
- 'connection'
91
- ];
92
- return recoverableErrors.some((type)=>error.message.toLowerCase().includes(type));
93
- }
94
- /**
155
+ */
156
+ _isRecoverableError(error) {
157
+ const recoverableErrors = ['timeout', 'network', 'temporary', 'connection'];
158
+
159
+ return recoverableErrors.some((type) => error.message.toLowerCase().includes(type));
160
+ }
161
+
162
+ /**
95
163
  * Initialize the hive mind swarm
96
- */ async initialize() {
97
- try {
98
- this.state.status = 'initializing';
99
- // Initialize swarm with MCP tools
100
- const [swarmInit, memoryInit, neuralInit] = await this.mcpWrapper.initializeSwarm({
101
- topology: this._determineTopology(),
102
- maxAgents: this.config.maxWorkers + 1,
103
- swarmId: this.config.name
104
- });
105
- this.state.swarmId = swarmInit.swarmId;
106
- // Store initial configuration in memory
107
- await this.mcpWrapper.storeMemory(this.state.swarmId, 'config', this.config, 'system');
108
- this.state.status = 'ready';
109
- this.emit('initialized', {
110
- swarmId: this.state.swarmId
111
- });
112
- return this.state.swarmId;
113
- } catch (error) {
114
- this.state.status = 'error';
115
- this.emit('error', error);
116
- throw error;
117
- }
164
+ */
165
+ async initialize() {
166
+ try {
167
+ this.state.status = 'initializing';
168
+
169
+ // Initialize swarm with MCP tools
170
+ const [swarmInit, memoryInit, neuralInit] = await this.mcpWrapper.initializeSwarm({
171
+ topology: this._determineTopology(),
172
+ maxAgents: this.config.maxWorkers + 1, // +1 for queen
173
+ swarmId: this.config.name,
174
+ });
175
+
176
+ this.state.swarmId = swarmInit.swarmId;
177
+
178
+ // Store initial configuration in memory
179
+ await this.mcpWrapper.storeMemory(this.state.swarmId, 'config', this.config, 'system');
180
+
181
+ this.state.status = 'ready';
182
+ this.emit('initialized', { swarmId: this.state.swarmId });
183
+
184
+ return this.state.swarmId;
185
+ } catch (error) {
186
+ this.state.status = 'error';
187
+ this.emit('error', error);
188
+ throw error;
118
189
  }
119
- /**
190
+ }
191
+
192
+ /**
120
193
  * Determine optimal topology based on objective
121
- */ _determineTopology() {
122
- const objective = this.config.objective.toLowerCase();
123
- // Heuristic topology selection
124
- if (objective.includes('research') || objective.includes('analysis')) {
125
- return 'mesh'; // Peer-to-peer for collaborative research
126
- } else if (objective.includes('build') || objective.includes('develop')) {
127
- return 'hierarchical'; // Clear command structure for development
128
- } else if (objective.includes('monitor') || objective.includes('maintain')) {
129
- return 'ring'; // Circular for continuous monitoring
130
- } else if (objective.includes('coordinate') || objective.includes('orchestrate')) {
131
- return 'star'; // Centralized for coordination
132
- }
133
- return 'hierarchical'; // Default
194
+ */
195
+ _determineTopology() {
196
+ const objective = this.config.objective.toLowerCase();
197
+
198
+ // Heuristic topology selection
199
+ if (objective.includes('research') || objective.includes('analysis')) {
200
+ return 'mesh'; // Peer-to-peer for collaborative research
201
+ } else if (objective.includes('build') || objective.includes('develop')) {
202
+ return 'hierarchical'; // Clear command structure for development
203
+ } else if (objective.includes('monitor') || objective.includes('maintain')) {
204
+ return 'ring'; // Circular for continuous monitoring
205
+ } else if (objective.includes('coordinate') || objective.includes('orchestrate')) {
206
+ return 'star'; // Centralized for coordination
134
207
  }
135
- /**
208
+
209
+ return 'hierarchical'; // Default
210
+ }
211
+
212
+ /**
136
213
  * Spawn the queen coordinator
137
- */ async spawnQueen(queenData) {
138
- const [spawnResult] = await this.mcpWrapper.spawnAgents([
139
- 'coordinator'
140
- ], this.state.swarmId);
141
- this.state.queen = {
142
- id: queenData.id,
143
- agentId: spawnResult.agentId,
144
- type: this.config.queenType,
145
- status: 'active',
146
- decisions: 0,
147
- tasks: 0
148
- };
149
- // Store queen info in memory
150
- await this.mcpWrapper.storeMemory(this.state.swarmId, 'queen', this.state.queen, 'system');
151
- this.emit('queen:spawned', this.state.queen);
152
- return this.state.queen;
153
- }
154
- /**
214
+ */
215
+ async spawnQueen(queenData) {
216
+ const [spawnResult] = await this.mcpWrapper.spawnAgents(['coordinator'], this.state.swarmId);
217
+
218
+ this.state.queen = {
219
+ id: queenData.id,
220
+ agentId: spawnResult.agentId,
221
+ type: this.config.queenType,
222
+ status: 'active',
223
+ decisions: 0,
224
+ tasks: 0,
225
+ };
226
+
227
+ // Store queen info in memory
228
+ await this.mcpWrapper.storeMemory(this.state.swarmId, 'queen', this.state.queen, 'system');
229
+
230
+ this.emit('queen:spawned', this.state.queen);
231
+ return this.state.queen;
232
+ }
233
+
234
+ /**
155
235
  * Spawn worker agents with batch optimization
156
- */ async spawnWorkers(workerTypes) {
157
- const startTime = Date.now();
158
- try {
159
- // Batch spawn agents in parallel with optimized chunking
160
- const chunkSize = Math.min(workerTypes.length, 5); // Optimal batch size
161
- const chunks = [];
162
- for(let i = 0; i < workerTypes.length; i += chunkSize){
163
- chunks.push(workerTypes.slice(i, i + chunkSize));
164
- }
165
- // Process chunks in parallel with Promise.all
166
- const allResults = await Promise.all(chunks.map((chunk)=>this.mcpWrapper.spawnAgents(chunk, this.state.swarmId)));
167
- // Flatten results
168
- const spawnResults = allResults.flat();
169
- // Batch create worker objects
170
- const workers = [];
171
- const workerUpdates = [];
172
- spawnResults.forEach((result, index)=>{
173
- const worker = {
174
- id: `worker-${index}`,
175
- agentId: result.agentId,
176
- type: workerTypes[index],
177
- status: 'idle',
178
- tasksCompleted: 0,
179
- currentTask: null,
180
- spawnedAt: Date.now(),
181
- performance: {
182
- avgTaskTime: 0,
183
- successRate: 1.0
184
- }
185
- };
186
- workers.push(worker);
187
- this.state.workers.set(worker.id, worker);
188
- workerUpdates.push({
189
- type: 'worker_spawned',
190
- workerId: worker.id,
191
- workerType: worker.type,
192
- timestamp: worker.spawnedAt
193
- });
194
- });
195
- // Batch memory operations
196
- await Promise.all([
197
- this.mcpWrapper.storeMemory(this.state.swarmId, 'workers', workers, 'system'),
198
- this.mcpWrapper.storeMemory(this.state.swarmId, 'worker_spawn_batch', {
199
- count: workers.length,
200
- types: workerTypes,
201
- spawnTime: Date.now() - startTime,
202
- updates: workerUpdates
203
- }, 'metrics')
204
- ]);
205
- // Emit batch completion event
206
- this.emit('workers:spawned', {
207
- count: this.state.workers.size,
208
- batchSize: workers.length,
209
- spawnTime: Date.now() - startTime,
210
- workers: workers
211
- });
212
- return workers;
213
- } catch (error) {
214
- this.emit('error', {
215
- type: 'spawn_batch_failed',
216
- error,
217
- workerTypes,
218
- spawnTime: Date.now() - startTime
219
- });
220
- throw error;
221
- }
236
+ */
237
+ async spawnWorkers(workerTypes) {
238
+ const startTime = Date.now();
239
+
240
+ try {
241
+ // Batch spawn agents in parallel with optimized chunking
242
+ const chunkSize = Math.min(workerTypes.length, 5); // Optimal batch size
243
+ const chunks = [];
244
+
245
+ for (let i = 0; i < workerTypes.length; i += chunkSize) {
246
+ chunks.push(workerTypes.slice(i, i + chunkSize));
247
+ }
248
+
249
+ // Process chunks in parallel with Promise.all
250
+ const allResults = await Promise.all(
251
+ chunks.map((chunk) => this.mcpWrapper.spawnAgents(chunk, this.state.swarmId)),
252
+ );
253
+
254
+ // Flatten results
255
+ const spawnResults = allResults.flat();
256
+
257
+ // Batch create worker objects
258
+ const workers = [];
259
+ const workerUpdates = [];
260
+
261
+ spawnResults.forEach((result, index) => {
262
+ const worker = {
263
+ id: `worker-${index}`,
264
+ agentId: result.agentId,
265
+ type: workerTypes[index],
266
+ status: 'idle',
267
+ tasksCompleted: 0,
268
+ currentTask: null,
269
+ spawnedAt: Date.now(),
270
+ performance: {
271
+ avgTaskTime: 0,
272
+ successRate: 1.0,
273
+ },
274
+ };
275
+
276
+ workers.push(worker);
277
+ this.state.workers.set(worker.id, worker);
278
+
279
+ workerUpdates.push({
280
+ type: 'worker_spawned',
281
+ workerId: worker.id,
282
+ workerType: worker.type,
283
+ timestamp: worker.spawnedAt,
284
+ });
285
+ });
286
+
287
+ // Batch memory operations
288
+ await Promise.all([
289
+ this.mcpWrapper.storeMemory(this.state.swarmId, 'workers', workers, 'system'),
290
+ this.mcpWrapper.storeMemory(
291
+ this.state.swarmId,
292
+ 'worker_spawn_batch',
293
+ {
294
+ count: workers.length,
295
+ types: workerTypes,
296
+ spawnTime: Date.now() - startTime,
297
+ updates: workerUpdates,
298
+ },
299
+ 'metrics',
300
+ ),
301
+ ]);
302
+
303
+ // Emit batch completion event
304
+ this.emit('workers:spawned', {
305
+ count: this.state.workers.size,
306
+ batchSize: workers.length,
307
+ spawnTime: Date.now() - startTime,
308
+ workers: workers,
309
+ });
310
+
311
+ return workers;
312
+ } catch (error) {
313
+ this.emit('error', {
314
+ type: 'spawn_batch_failed',
315
+ error,
316
+ workerTypes,
317
+ spawnTime: Date.now() - startTime,
318
+ });
319
+ throw error;
222
320
  }
223
- /**
321
+ }
322
+
323
+ /**
224
324
  * Create and distribute task with performance optimization
225
- */ async createTask(description, priority = 5, metadata = {}) {
226
- const timestamp = Date.now();
227
- const randomPart = Math.random().toString(36).substring(2, 11); // Use substring instead of substr
228
- const taskId = `task-${timestamp}-${randomPart}`;
229
- const createdAt = Date.now();
230
- const task = {
231
- id: taskId,
232
- swarmId: this.state.swarmId,
233
- description,
234
- priority,
235
- status: 'pending',
236
- createdAt: new Date(createdAt).toISOString(),
237
- assignedTo: null,
238
- result: null,
239
- metadata: {
240
- estimatedDuration: this._estimateTaskDuration(description),
241
- complexity: this._analyzeTaskComplexity(description),
242
- ...metadata
243
- }
244
- };
245
- // Parallel operations: task storage, orchestration, and worker finding
246
- const [orchestrateResult, bestWorker] = await Promise.all([
247
- this.mcpWrapper.orchestrateTask(description, 'adaptive'),
248
- this._findBestWorkerAsync(task),
249
- // Store task immediately in parallel
250
- (async ()=>{
251
- this.state.tasks.set(task.id, task);
252
- await this.mcpWrapper.storeMemory(this.state.swarmId, `task-${task.id}`, task, 'task');
253
- })()
254
- ]);
255
- task.orchestrationId = orchestrateResult[0].taskId;
256
- this.emit('task:created', task);
257
- // Assign task if worker available
258
- if (bestWorker) {
259
- // Use non-blocking assignment
260
- setImmediate(()=>this._assignTask(bestWorker.id, task.id));
261
- }
262
- return task;
325
+ */
326
+ async createTask(description, priority = 5, metadata = {}) {
327
+ const timestamp = Date.now();
328
+ const randomPart = Math.random().toString(36).substring(2, 11); // Use substring instead of substr
329
+ const taskId = `task-${timestamp}-${randomPart}`;
330
+ const createdAt = Date.now();
331
+
332
+ const task = {
333
+ id: taskId,
334
+ swarmId: this.state.swarmId,
335
+ description,
336
+ priority,
337
+ status: 'pending',
338
+ createdAt: new Date(createdAt).toISOString(),
339
+ assignedTo: null,
340
+ result: null,
341
+ metadata: {
342
+ estimatedDuration: this._estimateTaskDuration(description),
343
+ complexity: this._analyzeTaskComplexity(description),
344
+ ...metadata,
345
+ },
346
+ };
347
+
348
+ // Parallel operations: task storage, orchestration, and worker finding
349
+ const [orchestrateResult, bestWorker] = await Promise.all([
350
+ this.mcpWrapper.orchestrateTask(description, 'adaptive'),
351
+ this._findBestWorkerAsync(task),
352
+ // Store task immediately in parallel
353
+ (async () => {
354
+ this.state.tasks.set(task.id, task);
355
+ await this.mcpWrapper.storeMemory(this.state.swarmId, `task-${task.id}`, task, 'task');
356
+ })(),
357
+ ]);
358
+
359
+ task.orchestrationId = orchestrateResult[0].taskId;
360
+
361
+ this.emit('task:created', task);
362
+
363
+ // Assign task if worker available
364
+ if (bestWorker) {
365
+ // Use non-blocking assignment
366
+ setImmediate(() => this._assignTask(bestWorker.id, task.id));
263
367
  }
264
- /**
368
+
369
+ return task;
370
+ }
371
+
372
+ /**
265
373
  * Estimate task duration based on description analysis
266
- */ _estimateTaskDuration(description) {
267
- const words = description.toLowerCase().split(/\s+/);
268
- const complexityKeywords = {
269
- simple: [
270
- 'list',
271
- 'show',
272
- 'display',
273
- 'get',
274
- 'read'
275
- ],
276
- medium: [
277
- 'create',
278
- 'update',
279
- 'modify',
280
- 'change',
281
- 'build'
282
- ],
283
- complex: [
284
- 'analyze',
285
- 'optimize',
286
- 'refactor',
287
- 'implement',
288
- 'design'
289
- ]
290
- };
291
- let score = 1;
292
- for (const word of words){
293
- if (complexityKeywords.complex.includes(word)) score += 3;
294
- else if (complexityKeywords.medium.includes(word)) score += 2;
295
- else if (complexityKeywords.simple.includes(word)) score += 1;
296
- }
297
- return Math.min(score * 5000, 60000); // Cap at 1 minute
374
+ */
375
+ _estimateTaskDuration(description) {
376
+ const words = description.toLowerCase().split(/\s+/);
377
+ const complexityKeywords = {
378
+ simple: ['list', 'show', 'display', 'get', 'read'],
379
+ medium: ['create', 'update', 'modify', 'change', 'build'],
380
+ complex: ['analyze', 'optimize', 'refactor', 'implement', 'design'],
381
+ };
382
+
383
+ let score = 1;
384
+ for (const word of words) {
385
+ if (complexityKeywords.complex.includes(word)) score += 3;
386
+ else if (complexityKeywords.medium.includes(word)) score += 2;
387
+ else if (complexityKeywords.simple.includes(word)) score += 1;
298
388
  }
299
- /**
389
+
390
+ return Math.min(score * 5000, 60000); // Cap at 1 minute
391
+ }
392
+
393
+ /**
300
394
  * Analyze task complexity
301
- */ _analyzeTaskComplexity(description) {
302
- const words = description.toLowerCase().split(/\s+/);
303
- const indicators = {
304
- high: [
305
- 'optimize',
306
- 'refactor',
307
- 'architecture',
308
- 'design',
309
- 'algorithm'
310
- ],
311
- medium: [
312
- 'implement',
313
- 'build',
314
- 'create',
315
- 'develop',
316
- 'integrate'
317
- ],
318
- low: [
319
- 'list',
320
- 'show',
321
- 'get',
322
- 'read',
323
- 'display'
324
- ]
325
- };
326
- for (const [level, keywords] of Object.entries(indicators)){
327
- if (keywords.some((keyword)=>words.includes(keyword))) {
328
- return level;
329
- }
330
- }
331
- return 'medium';
395
+ */
396
+ _analyzeTaskComplexity(description) {
397
+ const words = description.toLowerCase().split(/\s+/);
398
+ const indicators = {
399
+ high: ['optimize', 'refactor', 'architecture', 'design', 'algorithm'],
400
+ medium: ['implement', 'build', 'create', 'develop', 'integrate'],
401
+ low: ['list', 'show', 'get', 'read', 'display'],
402
+ };
403
+
404
+ for (const [level, keywords] of Object.entries(indicators)) {
405
+ if (keywords.some((keyword) => words.includes(keyword))) {
406
+ return level;
407
+ }
332
408
  }
333
- /**
409
+
410
+ return 'medium';
411
+ }
412
+
413
+ /**
334
414
  * Find best worker for task (optimized async version)
335
- */ async _findBestWorkerAsync(task) {
336
- const availableWorkers = Array.from(this.state.workers.values()).filter((w)=>w.status === 'idle');
337
- if (availableWorkers.length === 0) {
338
- return null;
339
- }
340
- // Use cached analysis if available
341
- const cacheKey = `worker_match_${task.description.substring(0, 50)}`;
342
- const cachedMatch = await this.mcpWrapper.retrieveMemory(this.state.swarmId, cacheKey);
343
- if (cachedMatch && cachedMatch.timestamp > Date.now() - 300000) {
344
- // 5 min cache
345
- const cachedWorker = availableWorkers.find((w)=>w.type === cachedMatch.workerType);
346
- if (cachedWorker) return cachedWorker;
347
- }
348
- // Enhanced matching algorithm with performance scoring
349
- const taskLower = task.description.toLowerCase();
350
- const taskWords = taskLower.split(/\s+/);
351
- // Enhanced priority mapping with weights
352
- const priorityMap = {
353
- researcher: {
354
- keywords: [
355
- 'research',
356
- 'investigate',
357
- 'analyze',
358
- 'study',
359
- 'explore'
360
- ],
361
- weight: 1.2
362
- },
363
- coder: {
364
- keywords: [
365
- 'code',
366
- 'implement',
367
- 'build',
368
- 'develop',
369
- 'fix',
370
- 'create',
371
- 'program'
372
- ],
373
- weight: 1.0
374
- },
375
- analyst: {
376
- keywords: [
377
- 'analyze',
378
- 'data',
379
- 'metrics',
380
- 'performance',
381
- 'report',
382
- 'statistics'
383
- ],
384
- weight: 1.1
385
- },
386
- tester: {
387
- keywords: [
388
- 'test',
389
- 'validate',
390
- 'check',
391
- 'verify',
392
- 'quality',
393
- 'qa'
394
- ],
395
- weight: 1.0
396
- },
397
- architect: {
398
- keywords: [
399
- 'design',
400
- 'architecture',
401
- 'structure',
402
- 'plan',
403
- 'system'
404
- ],
405
- weight: 1.3
406
- },
407
- reviewer: {
408
- keywords: [
409
- 'review',
410
- 'feedback',
411
- 'improve',
412
- 'refactor',
413
- 'audit'
414
- ],
415
- weight: 1.0
416
- },
417
- optimizer: {
418
- keywords: [
419
- 'optimize',
420
- 'performance',
421
- 'speed',
422
- 'efficiency',
423
- 'enhance'
424
- ],
425
- weight: 1.4
426
- },
427
- documenter: {
428
- keywords: [
429
- 'document',
430
- 'explain',
431
- 'write',
432
- 'describe',
433
- 'manual'
434
- ],
435
- weight: 0.9
436
- }
437
- };
438
- // Calculate scores for each worker
439
- const workerScores = availableWorkers.map((worker)=>{
440
- const typeInfo = priorityMap[worker.type] || {
441
- keywords: [],
442
- weight: 1.0
443
- };
444
- // Keyword matching score
445
- const keywordScore = typeInfo.keywords.reduce((score, keyword)=>{
446
- return score + (taskWords.includes(keyword) ? 1 : 0);
447
- }, 0);
448
- // Performance history score
449
- const performanceScore = worker.performance ? worker.performance.successRate * 0.5 + 1 / (worker.performance.avgTaskTime + 1) * 0.5 : 0.5;
450
- // Task completion rate
451
- const completionScore = worker.tasksCompleted > 0 ? Math.min(worker.tasksCompleted / 10, 1) : 0;
452
- // Combined score
453
- const totalScore = (keywordScore * 2 + // Keyword relevance
454
- performanceScore * 1.5 + // Historical performance
455
- completionScore * 1.0) * // Experience
456
- typeInfo.weight;
457
- return {
458
- worker,
459
- score: totalScore,
460
- breakdown: {
461
- keyword: keywordScore,
462
- performance: performanceScore,
463
- completion: completionScore,
464
- weight: typeInfo.weight
465
- }
466
- };
467
- });
468
- // Sort by score and select best
469
- workerScores.sort((a, b)=>b.score - a.score);
470
- const bestMatch = workerScores[0];
471
- // Cache the result for future use
472
- if (bestMatch.score > 0) {
473
- setImmediate(async ()=>{
474
- await this.mcpWrapper.storeMemory(this.state.swarmId, cacheKey, {
475
- workerType: bestMatch.worker.type,
476
- score: bestMatch.score,
477
- timestamp: Date.now()
478
- }, 'cache');
479
- });
480
- }
481
- return bestMatch ? bestMatch.worker : availableWorkers[0];
415
+ */
416
+ async _findBestWorkerAsync(task) {
417
+ const availableWorkers = Array.from(this.state.workers.values()).filter(
418
+ (w) => w.status === 'idle',
419
+ );
420
+
421
+ if (availableWorkers.length === 0) {
422
+ return null;
423
+ }
424
+
425
+ // Use cached analysis if available
426
+ const cacheKey = `worker_match_${task.description.substring(0, 50)}`;
427
+ const cachedMatch = await this.mcpWrapper.retrieveMemory(this.state.swarmId, cacheKey);
428
+
429
+ if (cachedMatch && cachedMatch.timestamp > Date.now() - 300000) {
430
+ // 5 min cache
431
+ const cachedWorker = availableWorkers.find((w) => w.type === cachedMatch.workerType);
432
+ if (cachedWorker) return cachedWorker;
482
433
  }
483
- /**
434
+
435
+ // Enhanced matching algorithm with performance scoring
436
+ const taskLower = task.description.toLowerCase();
437
+ const taskWords = taskLower.split(/\s+/);
438
+
439
+ // Enhanced priority mapping with weights
440
+ const priorityMap = {
441
+ researcher: {
442
+ keywords: ['research', 'investigate', 'analyze', 'study', 'explore'],
443
+ weight: 1.2,
444
+ },
445
+ coder: {
446
+ keywords: ['code', 'implement', 'build', 'develop', 'fix', 'create', 'program'],
447
+ weight: 1.0,
448
+ },
449
+ analyst: {
450
+ keywords: ['analyze', 'data', 'metrics', 'performance', 'report', 'statistics'],
451
+ weight: 1.1,
452
+ },
453
+ tester: { keywords: ['test', 'validate', 'check', 'verify', 'quality', 'qa'], weight: 1.0 },
454
+ architect: {
455
+ keywords: ['design', 'architecture', 'structure', 'plan', 'system'],
456
+ weight: 1.3,
457
+ },
458
+ reviewer: { keywords: ['review', 'feedback', 'improve', 'refactor', 'audit'], weight: 1.0 },
459
+ optimizer: {
460
+ keywords: ['optimize', 'performance', 'speed', 'efficiency', 'enhance'],
461
+ weight: 1.4,
462
+ },
463
+ documenter: { keywords: ['document', 'explain', 'write', 'describe', 'manual'], weight: 0.9 },
464
+ };
465
+
466
+ // Calculate scores for each worker
467
+ const workerScores = availableWorkers.map((worker) => {
468
+ const typeInfo = priorityMap[worker.type] || { keywords: [], weight: 1.0 };
469
+
470
+ // Keyword matching score
471
+ const keywordScore = typeInfo.keywords.reduce((score, keyword) => {
472
+ return score + (taskWords.includes(keyword) ? 1 : 0);
473
+ }, 0);
474
+
475
+ // Performance history score
476
+ const performanceScore = worker.performance
477
+ ? worker.performance.successRate * 0.5 + (1 / (worker.performance.avgTaskTime + 1)) * 0.5
478
+ : 0.5;
479
+
480
+ // Task completion rate
481
+ const completionScore =
482
+ worker.tasksCompleted > 0 ? Math.min(worker.tasksCompleted / 10, 1) : 0;
483
+
484
+ // Combined score
485
+ const totalScore =
486
+ (keywordScore * 2 + // Keyword relevance
487
+ performanceScore * 1.5 + // Historical performance
488
+ completionScore * 1.0) * // Experience
489
+ typeInfo.weight;
490
+
491
+ return {
492
+ worker,
493
+ score: totalScore,
494
+ breakdown: {
495
+ keyword: keywordScore,
496
+ performance: performanceScore,
497
+ completion: completionScore,
498
+ weight: typeInfo.weight,
499
+ },
500
+ };
501
+ });
502
+
503
+ // Sort by score and select best
504
+ workerScores.sort((a, b) => b.score - a.score);
505
+ const bestMatch = workerScores[0];
506
+
507
+ // Cache the result for future use
508
+ if (bestMatch.score > 0) {
509
+ setImmediate(async () => {
510
+ await this.mcpWrapper.storeMemory(
511
+ this.state.swarmId,
512
+ cacheKey,
513
+ {
514
+ workerType: bestMatch.worker.type,
515
+ score: bestMatch.score,
516
+ timestamp: Date.now(),
517
+ },
518
+ 'cache',
519
+ );
520
+ });
521
+ }
522
+
523
+ return bestMatch ? bestMatch.worker : availableWorkers[0];
524
+ }
525
+
526
+ /**
484
527
  * Synchronous version for backward compatibility
485
- */ _findBestWorker(task) {
486
- const availableWorkers = Array.from(this.state.workers.values()).filter((w)=>w.status === 'idle');
487
- if (availableWorkers.length === 0) {
488
- return null;
489
- }
490
- // Simplified scoring for sync version
491
- const taskLower = task.description.toLowerCase();
492
- const priorityMap = {
493
- researcher: [
494
- 'research',
495
- 'investigate',
496
- 'analyze',
497
- 'study'
498
- ],
499
- coder: [
500
- 'code',
501
- 'implement',
502
- 'build',
503
- 'develop',
504
- 'fix',
505
- 'create'
506
- ],
507
- analyst: [
508
- 'analyze',
509
- 'data',
510
- 'metrics',
511
- 'performance',
512
- 'report'
513
- ],
514
- tester: [
515
- 'test',
516
- 'validate',
517
- 'check',
518
- 'verify',
519
- 'quality'
520
- ],
521
- architect: [
522
- 'design',
523
- 'architecture',
524
- 'structure',
525
- 'plan'
526
- ],
527
- reviewer: [
528
- 'review',
529
- 'feedback',
530
- 'improve',
531
- 'refactor'
532
- ],
533
- optimizer: [
534
- 'optimize',
535
- 'performance',
536
- 'speed',
537
- 'efficiency'
538
- ],
539
- documenter: [
540
- 'document',
541
- 'explain',
542
- 'write',
543
- 'describe'
544
- ]
545
- };
546
- let bestWorker = null;
547
- let bestScore = 0;
548
- for (const worker of availableWorkers){
549
- const keywords = priorityMap[worker.type] || [];
550
- const keywordScore = keywords.filter((k)=>taskLower.includes(k)).length;
551
- const performanceBonus = worker.performance ? worker.performance.successRate * 0.5 : 0;
552
- const totalScore = keywordScore + performanceBonus;
553
- if (totalScore > bestScore) {
554
- bestScore = totalScore;
555
- bestWorker = worker;
556
- }
557
- }
558
- return bestWorker || availableWorkers[0];
528
+ */
529
+ _findBestWorker(task) {
530
+ const availableWorkers = Array.from(this.state.workers.values()).filter(
531
+ (w) => w.status === 'idle',
532
+ );
533
+
534
+ if (availableWorkers.length === 0) {
535
+ return null;
559
536
  }
560
- /**
561
- * Assign task to worker
562
- */ async _assignTask(workerId, taskId) {
563
- const worker = this.state.workers.get(workerId);
564
- const task = this.state.tasks.get(taskId);
565
- if (!worker || !task) return;
566
- worker.status = 'busy';
567
- worker.currentTask = taskId;
568
- task.status = 'in_progress';
569
- task.assignedTo = workerId;
570
- // Store assignment in memory
571
- await this.mcpWrapper.storeMemory(this.state.swarmId, `assignment-${taskId}`, {
572
- workerId,
573
- taskId,
574
- timestamp: Date.now()
575
- }, 'task');
576
- this.emit('task:assigned', {
577
- workerId,
578
- taskId
579
- });
580
- // Simulate task execution
581
- this._executeTask(workerId, taskId);
537
+
538
+ // Simplified scoring for sync version
539
+ const taskLower = task.description.toLowerCase();
540
+ const priorityMap = {
541
+ researcher: ['research', 'investigate', 'analyze', 'study'],
542
+ coder: ['code', 'implement', 'build', 'develop', 'fix', 'create'],
543
+ analyst: ['analyze', 'data', 'metrics', 'performance', 'report'],
544
+ tester: ['test', 'validate', 'check', 'verify', 'quality'],
545
+ architect: ['design', 'architecture', 'structure', 'plan'],
546
+ reviewer: ['review', 'feedback', 'improve', 'refactor'],
547
+ optimizer: ['optimize', 'performance', 'speed', 'efficiency'],
548
+ documenter: ['document', 'explain', 'write', 'describe'],
549
+ };
550
+
551
+ let bestWorker = null;
552
+ let bestScore = 0;
553
+
554
+ for (const worker of availableWorkers) {
555
+ const keywords = priorityMap[worker.type] || [];
556
+ const keywordScore = keywords.filter((k) => taskLower.includes(k)).length;
557
+ const performanceBonus = worker.performance ? worker.performance.successRate * 0.5 : 0;
558
+ const totalScore = keywordScore + performanceBonus;
559
+
560
+ if (totalScore > bestScore) {
561
+ bestScore = totalScore;
562
+ bestWorker = worker;
563
+ }
582
564
  }
583
- /**
565
+
566
+ return bestWorker || availableWorkers[0];
567
+ }
568
+
569
+ /**
570
+ * Assign task to worker
571
+ */
572
+ async _assignTask(workerId, taskId) {
573
+ const worker = this.state.workers.get(workerId);
574
+ const task = this.state.tasks.get(taskId);
575
+
576
+ if (!worker || !task) return;
577
+
578
+ worker.status = 'busy';
579
+ worker.currentTask = taskId;
580
+ task.status = 'in_progress';
581
+ task.assignedTo = workerId;
582
+
583
+ // Store assignment in memory
584
+ await this.mcpWrapper.storeMemory(
585
+ this.state.swarmId,
586
+ `assignment-${taskId}`,
587
+ { workerId, taskId, timestamp: Date.now() },
588
+ 'task',
589
+ );
590
+
591
+ this.emit('task:assigned', { workerId, taskId });
592
+
593
+ // Simulate task execution
594
+ this._executeTask(workerId, taskId);
595
+ }
596
+
597
+ /**
584
598
  * Execute task with performance optimization
585
- */ async _executeTask(workerId, taskId) {
586
- const worker = this.state.workers.get(workerId);
587
- const task = this.state.tasks.get(taskId);
588
- const startTime = Date.now();
589
- try {
590
- // Use performance optimizer for async execution
591
- const result = await this.performanceOptimizer.optimizeAsyncOperation(async ()=>{
592
- // Simulate task execution based on complexity
593
- const baseDuration = {
594
- low: 5000,
595
- medium: 15000,
596
- high: 30000
597
- }[task.metadata?.complexity || 'medium'];
598
- const duration = baseDuration + Math.random() * baseDuration * 0.5;
599
- return new Promise((resolve)=>{
600
- setTimeout(()=>{
601
- resolve({
602
- status: 'completed',
603
- result: `Task completed by ${worker.type} worker`,
604
- processingTime: Date.now() - startTime,
605
- complexity: task.metadata?.complexity || 'medium'
606
- });
607
- }, duration);
608
- });
609
- }, {
610
- priority: task.priority
611
- });
612
- // Update task and worker
613
- task.status = 'completed';
614
- task.completedAt = new Date().toISOString();
615
- task.result = result.result;
616
- task.actualDuration = result.processingTime;
617
- worker.status = 'idle';
618
- worker.currentTask = null;
619
- worker.tasksCompleted++;
620
- // Update worker performance metrics
621
- if (!worker.performance.avgTaskTime) {
622
- worker.performance.avgTaskTime = result.processingTime;
623
- } else {
624
- worker.performance.avgTaskTime = (worker.performance.avgTaskTime * (worker.tasksCompleted - 1) + result.processingTime) / worker.tasksCompleted;
625
- }
626
- // Batch store results for better performance
627
- await this.performanceOptimizer.optimizeBatchOperation('task_results', {
628
- key: `result-${taskId}`,
629
- value: task,
630
- type: 'result'
631
- }, async (items)=>{
632
- // Batch store all results
633
- await Promise.all(items.map((item)=>this.mcpWrapper.storeMemory(this.state.swarmId, item.key, item.value, item.type)));
634
- return items.map(()=>({
635
- success: true
636
- }));
637
- });
638
- this.emit('task:completed', task);
639
- this.emit('worker:idle', workerId);
640
- } catch (error) {
641
- // Handle task failure
642
- task.status = 'failed';
643
- task.error = error.message;
644
- task.failedAt = new Date().toISOString();
645
- worker.status = 'idle';
646
- worker.currentTask = null;
647
- worker.performance.successRate = worker.performance.successRate * worker.tasksCompleted / (worker.tasksCompleted + 1);
648
- this.emit('task:failed', {
649
- task,
650
- error
651
- });
652
- this.emit('worker:idle', workerId);
653
- }
599
+ */
600
+ async _executeTask(workerId, taskId) {
601
+ const worker = this.state.workers.get(workerId);
602
+ const task = this.state.tasks.get(taskId);
603
+ const startTime = Date.now();
604
+
605
+ try {
606
+ // Use performance optimizer for async execution
607
+ const result = await this.performanceOptimizer.optimizeAsyncOperation(
608
+ async () => {
609
+ // Simulate task execution based on complexity
610
+ const baseDuration = {
611
+ low: 5000,
612
+ medium: 15000,
613
+ high: 30000,
614
+ }[task.metadata?.complexity || 'medium'];
615
+
616
+ const duration = baseDuration + Math.random() * baseDuration * 0.5;
617
+
618
+ return new Promise((resolve) => {
619
+ setTimeout(() => {
620
+ resolve({
621
+ status: 'completed',
622
+ result: `Task completed by ${worker.type} worker`,
623
+ processingTime: Date.now() - startTime,
624
+ complexity: task.metadata?.complexity || 'medium',
625
+ });
626
+ }, duration);
627
+ });
628
+ },
629
+ { priority: task.priority },
630
+ );
631
+
632
+ // Update task and worker
633
+ task.status = 'completed';
634
+ task.completedAt = new Date().toISOString();
635
+ task.result = result.result;
636
+ task.actualDuration = result.processingTime;
637
+
638
+ worker.status = 'idle';
639
+ worker.currentTask = null;
640
+ worker.tasksCompleted++;
641
+
642
+ // Update worker performance metrics
643
+ if (!worker.performance.avgTaskTime) {
644
+ worker.performance.avgTaskTime = result.processingTime;
645
+ } else {
646
+ worker.performance.avgTaskTime =
647
+ (worker.performance.avgTaskTime * (worker.tasksCompleted - 1) + result.processingTime) /
648
+ worker.tasksCompleted;
649
+ }
650
+
651
+ // Batch store results for better performance
652
+ await this.performanceOptimizer.optimizeBatchOperation(
653
+ 'task_results',
654
+ {
655
+ key: `result-${taskId}`,
656
+ value: task,
657
+ type: 'result',
658
+ },
659
+ async (items) => {
660
+ // Batch store all results
661
+ await Promise.all(
662
+ items.map((item) =>
663
+ this.mcpWrapper.storeMemory(this.state.swarmId, item.key, item.value, item.type),
664
+ ),
665
+ );
666
+ return items.map(() => ({ success: true }));
667
+ },
668
+ );
669
+
670
+ this.emit('task:completed', task);
671
+ this.emit('worker:idle', workerId);
672
+ } catch (error) {
673
+ // Handle task failure
674
+ task.status = 'failed';
675
+ task.error = error.message;
676
+ task.failedAt = new Date().toISOString();
677
+
678
+ worker.status = 'idle';
679
+ worker.currentTask = null;
680
+ worker.performance.successRate =
681
+ (worker.performance.successRate * worker.tasksCompleted) / (worker.tasksCompleted + 1);
682
+
683
+ this.emit('task:failed', { task, error });
684
+ this.emit('worker:idle', workerId);
654
685
  }
655
- /**
686
+ }
687
+
688
+ /**
656
689
  * Assign next task to idle worker
657
- */ _assignNextTask(workerId) {
658
- const pendingTasks = Array.from(this.state.tasks.values()).filter((t)=>t.status === 'pending').sort((a, b)=>b.priority - a.priority);
659
- if (pendingTasks.length > 0) {
660
- this._assignTask(workerId, pendingTasks[0].id);
661
- }
690
+ */
691
+ _assignNextTask(workerId) {
692
+ const pendingTasks = Array.from(this.state.tasks.values())
693
+ .filter((t) => t.status === 'pending')
694
+ .sort((a, b) => b.priority - a.priority);
695
+
696
+ if (pendingTasks.length > 0) {
697
+ this._assignTask(workerId, pendingTasks[0].id);
662
698
  }
663
- /**
699
+ }
700
+
701
+ /**
664
702
  * Build consensus for decision
665
- */ async buildConsensus(topic, options) {
666
- const decision = {
667
- id: `decision-${Date.now()}`,
668
- swarmId: this.state.swarmId,
669
- topic,
670
- options,
671
- votes: new Map(),
672
- algorithm: this.config.consensusAlgorithm,
673
- status: 'voting',
674
- createdAt: new Date().toISOString()
703
+ */
704
+ async buildConsensus(topic, options) {
705
+ const decision = {
706
+ id: `decision-${Date.now()}`,
707
+ swarmId: this.state.swarmId,
708
+ topic,
709
+ options,
710
+ votes: new Map(),
711
+ algorithm: this.config.consensusAlgorithm,
712
+ status: 'voting',
713
+ createdAt: new Date().toISOString(),
714
+ };
715
+
716
+ this.state.decisions.set(decision.id, decision);
717
+
718
+ // Simulate voting process
719
+ const workers = Array.from(this.state.workers.values());
720
+ const votes = {};
721
+
722
+ // Each worker votes
723
+ workers.forEach((worker) => {
724
+ const vote = options[Math.floor(Math.random() * options.length)];
725
+ votes[worker.id] = vote;
726
+ decision.votes.set(worker.id, vote);
727
+ });
728
+
729
+ // Queen gets weighted vote
730
+ const queenVote = options[Math.floor(Math.random() * options.length)];
731
+ votes['queen'] = queenVote;
732
+ decision.votes.set('queen', queenVote);
733
+
734
+ // Calculate consensus
735
+ const result = this._calculateConsensus(decision);
736
+ decision.result = result.decision;
737
+ decision.confidence = result.confidence;
738
+ decision.status = 'completed';
739
+
740
+ // Convert Map to plain object for proper JSON serialization
741
+ const decisionForStorage = {
742
+ ...decision,
743
+ votes: decision.votes instanceof Map ? Object.fromEntries(decision.votes) : decision.votes,
744
+ };
745
+
746
+ // Store decision in memory
747
+ await this.mcpWrapper.storeMemory(
748
+ this.state.swarmId,
749
+ `decision-${decision.id}`,
750
+ decisionForStorage,
751
+ 'consensus',
752
+ );
753
+
754
+ this.emit('decision:reached', decision);
755
+ return decision;
756
+ }
757
+
758
+ /**
759
+ * Calculate consensus based on algorithm
760
+ */
761
+ _calculateConsensus(decision) {
762
+ const votes = Array.from(decision.votes.values());
763
+ const voteCount = {};
764
+
765
+ // Count votes
766
+ votes.forEach((vote) => {
767
+ voteCount[vote] = (voteCount[vote] || 0) + 1;
768
+ });
769
+
770
+ switch (decision.algorithm) {
771
+ case 'majority':
772
+ // Simple majority
773
+ const sorted = Object.entries(voteCount).sort((a, b) => b[1] - a[1]);
774
+ const winner = sorted[0];
775
+ return {
776
+ decision: winner[0],
777
+ confidence: winner[1] / votes.length,
675
778
  };
676
- this.state.decisions.set(decision.id, decision);
677
- // Simulate voting process
678
- const workers = Array.from(this.state.workers.values());
679
- const votes = {};
680
- // Each worker votes
681
- workers.forEach((worker)=>{
682
- const vote = options[Math.floor(Math.random() * options.length)];
683
- votes[worker.id] = vote;
684
- decision.votes.set(worker.id, vote);
685
- });
686
- // Queen gets weighted vote
687
- const queenVote = options[Math.floor(Math.random() * options.length)];
688
- votes['queen'] = queenVote;
689
- decision.votes.set('queen', queenVote);
690
- // Calculate consensus
691
- const result = this._calculateConsensus(decision);
692
- decision.result = result.decision;
693
- decision.confidence = result.confidence;
694
- decision.status = 'completed';
695
- // Convert Map to plain object for proper JSON serialization
696
- const decisionForStorage = {
697
- ...decision,
698
- votes: decision.votes instanceof Map ? Object.fromEntries(decision.votes) : decision.votes
779
+
780
+ case 'weighted':
781
+ // Weight queen vote more heavily
782
+ const queenVote = decision.votes.get('queen');
783
+ voteCount[queenVote] = (voteCount[queenVote] || 0) + 2; // Queen counts as 3 votes
784
+
785
+ const weightedSorted = Object.entries(voteCount).sort((a, b) => b[1] - a[1]);
786
+ const weightedWinner = weightedSorted[0];
787
+ return {
788
+ decision: weightedWinner[0],
789
+ confidence: weightedWinner[1] / (votes.length + 2),
699
790
  };
700
- // Store decision in memory
701
- await this.mcpWrapper.storeMemory(this.state.swarmId, `decision-${decision.id}`, decisionForStorage, 'consensus');
702
- this.emit('decision:reached', decision);
703
- return decision;
704
- }
705
- /**
706
- * Calculate consensus based on algorithm
707
- */ _calculateConsensus(decision) {
708
- const votes = Array.from(decision.votes.values());
709
- const voteCount = {};
710
- // Count votes
711
- votes.forEach((vote)=>{
712
- voteCount[vote] = (voteCount[vote] || 0) + 1;
713
- });
714
- switch(decision.algorithm){
715
- case 'majority':
716
- // Simple majority
717
- const sorted = Object.entries(voteCount).sort((a, b)=>b[1] - a[1]);
718
- const winner = sorted[0];
719
- return {
720
- decision: winner[0],
721
- confidence: winner[1] / votes.length
722
- };
723
- case 'weighted':
724
- // Weight queen vote more heavily
725
- const queenVote = decision.votes.get('queen');
726
- voteCount[queenVote] = (voteCount[queenVote] || 0) + 2; // Queen counts as 3 votes
727
- const weightedSorted = Object.entries(voteCount).sort((a, b)=>b[1] - a[1]);
728
- const weightedWinner = weightedSorted[0];
729
- return {
730
- decision: weightedWinner[0],
731
- confidence: weightedWinner[1] / (votes.length + 2)
732
- };
733
- case 'byzantine':
734
- // Requires 2/3 majority
735
- const byzantineSorted = Object.entries(voteCount).sort((a, b)=>b[1] - a[1]);
736
- const byzantineWinner = byzantineSorted[0];
737
- const byzantineConfidence = byzantineWinner[1] / votes.length;
738
- if (byzantineConfidence >= 0.67) {
739
- return {
740
- decision: byzantineWinner[0],
741
- confidence: byzantineConfidence
742
- };
743
- } else {
744
- return {
745
- decision: 'no_consensus',
746
- confidence: 0
747
- };
748
- }
749
- default:
750
- return {
751
- decision: 'unknown',
752
- confidence: 0
753
- };
791
+
792
+ case 'byzantine':
793
+ // Requires 2/3 majority
794
+ const byzantineSorted = Object.entries(voteCount).sort((a, b) => b[1] - a[1]);
795
+ const byzantineWinner = byzantineSorted[0];
796
+ const byzantineConfidence = byzantineWinner[1] / votes.length;
797
+
798
+ if (byzantineConfidence >= 0.67) {
799
+ return {
800
+ decision: byzantineWinner[0],
801
+ confidence: byzantineConfidence,
802
+ };
803
+ } else {
804
+ return {
805
+ decision: 'no_consensus',
806
+ confidence: 0,
807
+ };
754
808
  }
809
+
810
+ default:
811
+ return {
812
+ decision: 'unknown',
813
+ confidence: 0,
814
+ };
755
815
  }
756
- /**
816
+ }
817
+
818
+ /**
757
819
  * Check if auto-scaling is needed
758
- */ async _checkAutoScale() {
759
- if (!this.config.autoScale) return;
760
- const pendingTasks = Array.from(this.state.tasks.values()).filter((t)=>t.status === 'pending').length;
761
- const idleWorkers = Array.from(this.state.workers.values()).filter((w)=>w.status === 'idle').length;
762
- // Scale up if too many pending tasks
763
- if (pendingTasks > idleWorkers * 2 && this.state.workers.size < this.config.maxWorkers) {
764
- const newWorkerType = this._determineWorkerType();
765
- await this.spawnWorkers([
766
- newWorkerType
767
- ]);
768
- console.log(`Auto-scaled: Added ${newWorkerType} worker`);
769
- }
770
- // Scale down if too many idle workers
771
- if (idleWorkers > pendingTasks + 2 && this.state.workers.size > 2) {
772
- // TODO: Implement worker removal
773
- }
820
+ */
821
+ async _checkAutoScale() {
822
+ if (!this.config.autoScale) return;
823
+
824
+ const pendingTasks = Array.from(this.state.tasks.values()).filter(
825
+ (t) => t.status === 'pending',
826
+ ).length;
827
+
828
+ const idleWorkers = Array.from(this.state.workers.values()).filter(
829
+ (w) => w.status === 'idle',
830
+ ).length;
831
+
832
+ // Scale up if too many pending tasks
833
+ if (pendingTasks > idleWorkers * 2 && this.state.workers.size < this.config.maxWorkers) {
834
+ const newWorkerType = this._determineWorkerType();
835
+ await this.spawnWorkers([newWorkerType]);
836
+ console.log(`Auto-scaled: Added ${newWorkerType} worker`);
774
837
  }
775
- /**
776
- * Determine worker type for auto-scaling
777
- */ _determineWorkerType() {
778
- // Analyze pending tasks to determine needed worker type
779
- const pendingTasks = Array.from(this.state.tasks.values()).filter((t)=>t.status === 'pending');
780
- // Simple heuristic based on task descriptions
781
- const typeScores = {};
782
- pendingTasks.forEach((task)=>{
783
- const taskLower = task.description.toLowerCase();
784
- if (taskLower.includes('code') || taskLower.includes('implement')) {
785
- typeScores.coder = (typeScores.coder || 0) + 1;
786
- }
787
- if (taskLower.includes('test') || taskLower.includes('validate')) {
788
- typeScores.tester = (typeScores.tester || 0) + 1;
789
- }
790
- if (taskLower.includes('analyze') || taskLower.includes('data')) {
791
- typeScores.analyst = (typeScores.analyst || 0) + 1;
792
- }
793
- if (taskLower.includes('research') || taskLower.includes('investigate')) {
794
- typeScores.researcher = (typeScores.researcher || 0) + 1;
795
- }
796
- });
797
- // Return type with highest score
798
- const sorted = Object.entries(typeScores).sort((a, b)=>b[1] - a[1]);
799
- return sorted.length > 0 ? sorted[0][0] : 'coder'; // Default to coder
838
+
839
+ // Scale down if too many idle workers
840
+ if (idleWorkers > pendingTasks + 2 && this.state.workers.size > 2) {
841
+ // TODO: Implement worker removal
800
842
  }
801
- /**
843
+ }
844
+
845
+ /**
846
+ * Determine worker type for auto-scaling
847
+ */
848
+ _determineWorkerType() {
849
+ // Analyze pending tasks to determine needed worker type
850
+ const pendingTasks = Array.from(this.state.tasks.values()).filter(
851
+ (t) => t.status === 'pending',
852
+ );
853
+
854
+ // Simple heuristic based on task descriptions
855
+ const typeScores = {};
856
+
857
+ pendingTasks.forEach((task) => {
858
+ const taskLower = task.description.toLowerCase();
859
+
860
+ if (taskLower.includes('code') || taskLower.includes('implement')) {
861
+ typeScores.coder = (typeScores.coder || 0) + 1;
862
+ }
863
+ if (taskLower.includes('test') || taskLower.includes('validate')) {
864
+ typeScores.tester = (typeScores.tester || 0) + 1;
865
+ }
866
+ if (taskLower.includes('analyze') || taskLower.includes('data')) {
867
+ typeScores.analyst = (typeScores.analyst || 0) + 1;
868
+ }
869
+ if (taskLower.includes('research') || taskLower.includes('investigate')) {
870
+ typeScores.researcher = (typeScores.researcher || 0) + 1;
871
+ }
872
+ });
873
+
874
+ // Return type with highest score
875
+ const sorted = Object.entries(typeScores).sort((a, b) => b[1] - a[1]);
876
+ return sorted.length > 0 ? sorted[0][0] : 'coder'; // Default to coder
877
+ }
878
+
879
+ /**
802
880
  * Update performance metrics
803
- */ async _updatePerformanceMetrics() {
804
- // Calculate performance metrics
805
- const completionRate = this.state.metrics.tasksCompleted / this.state.metrics.tasksCreated;
806
- const avgTasksPerWorker = this.state.metrics.tasksCompleted / this.state.workers.size;
807
- // Store metrics in memory
808
- await this.mcpWrapper.storeMemory(this.state.swarmId, 'metrics', {
809
- ...this.state.metrics,
810
- completionRate,
811
- avgTasksPerWorker,
812
- timestamp: Date.now()
813
- }, 'metrics');
814
- // Analyze performance if needed
815
- if (this.state.metrics.tasksCompleted % 10 === 0) {
816
- await this.mcpWrapper.analyzePerformance(this.state.swarmId);
817
- }
881
+ */
882
+ async _updatePerformanceMetrics() {
883
+ // Calculate performance metrics
884
+ const completionRate = this.state.metrics.tasksCompleted / this.state.metrics.tasksCreated;
885
+ const avgTasksPerWorker = this.state.metrics.tasksCompleted / this.state.workers.size;
886
+
887
+ // Store metrics in memory
888
+ await this.mcpWrapper.storeMemory(
889
+ this.state.swarmId,
890
+ 'metrics',
891
+ {
892
+ ...this.state.metrics,
893
+ completionRate,
894
+ avgTasksPerWorker,
895
+ timestamp: Date.now(),
896
+ },
897
+ 'metrics',
898
+ );
899
+
900
+ // Analyze performance if needed
901
+ if (this.state.metrics.tasksCompleted % 10 === 0) {
902
+ await this.mcpWrapper.analyzePerformance(this.state.swarmId);
818
903
  }
819
- /**
904
+ }
905
+
906
+ /**
820
907
  * Handle errors
821
- */ _handleError(error) {
822
- // Log error to memory
823
- this.mcpWrapper.storeMemory(this.state.swarmId, `error-${Date.now()}`, {
824
- message: error.message,
825
- stack: error.stack,
826
- timestamp: Date.now()
827
- }, 'error').catch(console.error);
828
- }
829
- /**
908
+ */
909
+ _handleError(error) {
910
+ // Log error to memory
911
+ this.mcpWrapper
912
+ .storeMemory(
913
+ this.state.swarmId,
914
+ `error-${Date.now()}`,
915
+ {
916
+ message: error.message,
917
+ stack: error.stack,
918
+ timestamp: Date.now(),
919
+ },
920
+ 'error',
921
+ )
922
+ .catch(console.error);
923
+ }
924
+
925
+ /**
830
926
  * Get current status with performance metrics
831
- */ getStatus() {
832
- const tasks = Array.from(this.state.tasks.values());
833
- const workers = Array.from(this.state.workers.values());
834
- return {
835
- swarmId: this.state.swarmId,
836
- status: this.state.status,
837
- queen: this.state.queen,
838
- workers: workers,
839
- tasks: {
840
- total: this.state.tasks.size,
841
- pending: tasks.filter((t)=>t.status === 'pending').length,
842
- inProgress: tasks.filter((t)=>t.status === 'in_progress').length,
843
- completed: tasks.filter((t)=>t.status === 'completed').length,
844
- failed: tasks.filter((t)=>t.status === 'failed').length
845
- },
846
- metrics: {
847
- ...this.state.metrics,
848
- averageTaskTime: this._calculateAverageTaskTime(tasks),
849
- workerEfficiency: this._calculateWorkerEfficiency(workers),
850
- throughput: this._calculateThroughput(tasks)
851
- },
852
- decisions: this.state.decisions.size,
853
- performance: this.performanceOptimizer.getPerformanceStats()
854
- };
855
- }
856
- /**
927
+ */
928
+ getStatus() {
929
+ const tasks = Array.from(this.state.tasks.values());
930
+ const workers = Array.from(this.state.workers.values());
931
+
932
+ return {
933
+ swarmId: this.state.swarmId,
934
+ status: this.state.status,
935
+ queen: this.state.queen,
936
+ workers: workers,
937
+ tasks: {
938
+ total: this.state.tasks.size,
939
+ pending: tasks.filter((t) => t.status === 'pending').length,
940
+ inProgress: tasks.filter((t) => t.status === 'in_progress').length,
941
+ completed: tasks.filter((t) => t.status === 'completed').length,
942
+ failed: tasks.filter((t) => t.status === 'failed').length,
943
+ },
944
+ metrics: {
945
+ ...this.state.metrics,
946
+ averageTaskTime: this._calculateAverageTaskTime(tasks),
947
+ workerEfficiency: this._calculateWorkerEfficiency(workers),
948
+ throughput: this._calculateThroughput(tasks),
949
+ },
950
+ decisions: this.state.decisions.size,
951
+ performance: this.performanceOptimizer.getPerformanceStats(),
952
+ };
953
+ }
954
+
955
+ /**
857
956
  * Calculate average task completion time
858
- */ _calculateAverageTaskTime(tasks) {
859
- const completedTasks = tasks.filter((t)=>t.status === 'completed' && t.actualDuration);
860
- if (completedTasks.length === 0) return 0;
861
- const totalTime = completedTasks.reduce((sum, task)=>sum + task.actualDuration, 0);
862
- return Math.round(totalTime / completedTasks.length);
863
- }
864
- /**
957
+ */
958
+ _calculateAverageTaskTime(tasks) {
959
+ const completedTasks = tasks.filter((t) => t.status === 'completed' && t.actualDuration);
960
+ if (completedTasks.length === 0) return 0;
961
+
962
+ const totalTime = completedTasks.reduce((sum, task) => sum + task.actualDuration, 0);
963
+ return Math.round(totalTime / completedTasks.length);
964
+ }
965
+
966
+ /**
865
967
  * Calculate worker efficiency
866
- */ _calculateWorkerEfficiency(workers) {
867
- if (workers.length === 0) return 0;
868
- const efficiencies = workers.map((worker)=>worker.performance?.successRate || 1.0);
869
- return (efficiencies.reduce((sum, eff)=>sum + eff, 0) / workers.length * 100).toFixed(2);
870
- }
871
- /**
968
+ */
969
+ _calculateWorkerEfficiency(workers) {
970
+ if (workers.length === 0) return 0;
971
+
972
+ const efficiencies = workers.map((worker) => worker.performance?.successRate || 1.0);
973
+ return ((efficiencies.reduce((sum, eff) => sum + eff, 0) / workers.length) * 100).toFixed(2);
974
+ }
975
+
976
+ /**
872
977
  * Calculate system throughput (tasks per minute)
873
- */ _calculateThroughput(tasks) {
874
- const completedTasks = tasks.filter((t)=>t.status === 'completed' && t.completedAt);
875
- if (completedTasks.length < 2) return 0;
876
- const firstCompleted = new Date(completedTasks[0].completedAt).getTime();
877
- const lastCompleted = new Date(completedTasks[completedTasks.length - 1].completedAt).getTime();
878
- const timeSpanMinutes = (lastCompleted - firstCompleted) / (1000 * 60);
879
- return timeSpanMinutes > 0 ? (completedTasks.length / timeSpanMinutes).toFixed(2) : 0;
880
- }
881
- /**
978
+ */
979
+ _calculateThroughput(tasks) {
980
+ const completedTasks = tasks.filter((t) => t.status === 'completed' && t.completedAt);
981
+ if (completedTasks.length < 2) return 0;
982
+
983
+ const firstCompleted = new Date(completedTasks[0].completedAt).getTime();
984
+ const lastCompleted = new Date(completedTasks[completedTasks.length - 1].completedAt).getTime();
985
+ const timeSpanMinutes = (lastCompleted - firstCompleted) / (1000 * 60);
986
+
987
+ return timeSpanMinutes > 0 ? (completedTasks.length / timeSpanMinutes).toFixed(2) : 0;
988
+ }
989
+
990
+ /**
882
991
  * Shutdown hive mind with cleanup
883
- */ async shutdown() {
884
- this.state.status = 'shutting_down';
885
- try {
886
- // Generate final performance report
887
- const performanceReport = this.performanceOptimizer.generatePerformanceReport();
888
- // Save final state and performance report
889
- await Promise.all([
890
- this.mcpWrapper.storeMemory(this.state.swarmId, 'final_state', this.getStatus(), 'system'),
891
- this.mcpWrapper.storeMemory(this.state.swarmId, 'final_performance_report', performanceReport, 'metrics')
892
- ]);
893
- // Close performance optimizer
894
- await this.performanceOptimizer.close();
895
- // Destroy swarm
896
- await this.mcpWrapper.destroySwarm(this.state.swarmId);
897
- this.state.status = 'shutdown';
898
- this.emit('shutdown', {
899
- performanceReport
900
- });
901
- } catch (error) {
902
- this.emit('error', {
903
- type: 'shutdown_failed',
904
- error
905
- });
906
- throw error;
907
- }
992
+ */
993
+ async shutdown() {
994
+ this.state.status = 'shutting_down';
995
+
996
+ try {
997
+ // Generate final performance report
998
+ const performanceReport = this.performanceOptimizer.generatePerformanceReport();
999
+
1000
+ // Save final state and performance report
1001
+ await Promise.all([
1002
+ this.mcpWrapper.storeMemory(this.state.swarmId, 'final_state', this.getStatus(), 'system'),
1003
+ this.mcpWrapper.storeMemory(
1004
+ this.state.swarmId,
1005
+ 'final_performance_report',
1006
+ performanceReport,
1007
+ 'metrics',
1008
+ ),
1009
+ ]);
1010
+
1011
+ // Close performance optimizer
1012
+ await this.performanceOptimizer.close();
1013
+
1014
+ // Destroy swarm
1015
+ await this.mcpWrapper.destroySwarm(this.state.swarmId);
1016
+
1017
+ this.state.status = 'shutdown';
1018
+ this.emit('shutdown', { performanceReport });
1019
+ } catch (error) {
1020
+ this.emit('error', { type: 'shutdown_failed', error });
1021
+ throw error;
908
1022
  }
909
- /**
1023
+ }
1024
+
1025
+ /**
910
1026
  * Get performance insights and recommendations
911
- */ getPerformanceInsights() {
912
- return this.performanceOptimizer.generatePerformanceReport();
913
- }
914
- constructor(config = {}){
915
- super();
916
- this.config = {
917
- objective: '',
918
- name: `hive-${Date.now()}`,
919
- queenType: 'strategic',
920
- maxWorkers: 8,
921
- consensusAlgorithm: 'majority',
922
- autoScale: true,
923
- encryption: false,
924
- memorySize: 100,
925
- taskTimeout: 60,
926
- ...config
927
- };
928
- this.state = {
929
- status: 'initializing',
930
- swarmId: null,
931
- queen: null,
932
- workers: new Map(),
933
- tasks: new Map(),
934
- memory: new Map(),
935
- decisions: new Map(),
936
- metrics: {
937
- tasksCreated: 0,
938
- tasksCompleted: 0,
939
- decisionsReached: 0,
940
- memoryUsage: 0
941
- }
942
- };
943
- this.mcpWrapper = new MCPToolWrapper({
944
- parallel: true,
945
- timeout: this.config.taskTimeout * 60 * 1000
946
- });
947
- // Initialize performance optimizer
948
- this.performanceOptimizer = new PerformanceOptimizer({
949
- enableAsyncQueue: true,
950
- enableBatchProcessing: true,
951
- enableAutoTuning: true,
952
- asyncQueueConcurrency: Math.min(this.config.maxWorkers * 2, 20),
953
- batchMaxSize: 50,
954
- metricsInterval: 30000
955
- });
956
- this._initializeEventHandlers();
957
- this._initializePerformanceMonitoring();
958
- }
1027
+ */
1028
+ getPerformanceInsights() {
1029
+ return this.performanceOptimizer.generatePerformanceReport();
1030
+ }
959
1031
  }