claude-flow-novice 1.3.0 → 1.3.2

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 (305) hide show
  1. package/.claude-flow-novice/preferences/generation.json +147 -0
  2. package/.claude-flow-novice/preferences/language-configs/javascript.json +51 -0
  3. package/.claude-flow-novice/preferences/language-configs/python.json +50 -0
  4. package/.claude-flow-novice/preferences/language-configs/rust.json +237 -0
  5. package/.claude-flow-novice/preferences/language-configs/typescript.json +54 -0
  6. package/.claude-flow-novice/preferences/project-local.json +91 -0
  7. package/.claude-flow-novice/preferences/resource-delegation.json +120 -0
  8. package/.claude-flow-novice/preferences/team-shared.json +195 -0
  9. package/.claude-flow-novice/preferences/user-global.json +247 -0
  10. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-JAVASCRIPT.md +769 -0
  11. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-PYTHON.md +1214 -0
  12. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-RUST.md +475 -0
  13. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-TYPESCRIPT.md +851 -0
  14. package/.claude-flow-novice/templates/claude-md-templates/README.md +263 -0
  15. package/CLAUDE.md +81 -0
  16. package/README-NPM.md +0 -0
  17. package/package.json +11 -7
  18. package/scripts/build/README.md +167 -0
  19. package/scripts/build/build-config.js +27 -0
  20. package/scripts/build/build-prompt-copier.sh +30 -0
  21. package/scripts/build/performance-monitor.js +869 -0
  22. package/scripts/build/prepare-publish.js +150 -0
  23. package/scripts/build/typescript-fixer.js +621 -0
  24. package/scripts/build/unified-builder.sh +428 -0
  25. package/scripts/build/update-bin-version.js +32 -0
  26. package/scripts/dev/README.md +264 -0
  27. package/scripts/dev/claude-flow-wrapper.sh +35 -0
  28. package/scripts/dev/claude-monitor.py +419 -0
  29. package/scripts/dev/claude-sparc.sh +562 -0
  30. package/scripts/dev/claude-wrapper.sh +17 -0
  31. package/scripts/dev/demo-phase3-compliance.js +172 -0
  32. package/scripts/dev/demo-task-system.ts +224 -0
  33. package/scripts/dev/deployment-validator.js +315 -0
  34. package/scripts/dev/spawn-claude-terminal.sh +32 -0
  35. package/scripts/dev/start-portal.sh +506 -0
  36. package/scripts/dev/start-web-ui.js +15 -0
  37. package/scripts/dev/stop-portal.sh +311 -0
  38. package/scripts/dev/validate-examples.ts +288 -0
  39. package/scripts/dev/validate-phase2.cjs +451 -0
  40. package/scripts/dev/validate-phase2.js +785 -0
  41. package/scripts/dev/validate-phase3.cjs +208 -0
  42. package/scripts/dev/validate-security-remediation.js +1 -0
  43. package/scripts/legacy/README.md +272 -0
  44. package/scripts/legacy/batch-fix-ts.sh +54 -0
  45. package/scripts/legacy/build-migration.sh +105 -0
  46. package/scripts/legacy/build-monitor.js +209 -0
  47. package/scripts/legacy/build-with-filter.sh +84 -0
  48. package/scripts/legacy/build-workaround.sh +71 -0
  49. package/scripts/legacy/fix-ts-advanced.js +358 -0
  50. package/scripts/legacy/fix-ts-final.sh +50 -0
  51. package/scripts/legacy/fix-ts-targeted.sh +49 -0
  52. package/scripts/legacy/fix-typescript-errors.js +305 -0
  53. package/scripts/legacy/force-build.sh +63 -0
  54. package/scripts/legacy/optimize-performance.js +400 -0
  55. package/scripts/legacy/performance-monitor.js +263 -0
  56. package/scripts/legacy/performance-monitoring.js +532 -0
  57. package/scripts/legacy/performance-test-runner.js +645 -0
  58. package/scripts/legacy/quick-fix-ts.js +281 -0
  59. package/scripts/legacy/safe-build.sh +63 -0
  60. package/scripts/migration/README.md +434 -0
  61. package/scripts/migration/install-arm64.js +78 -0
  62. package/scripts/migration/install.js +83 -0
  63. package/scripts/migration/migrate-hooks.js +173 -0
  64. package/scripts/migration/migration-examples.ts +318 -0
  65. package/scripts/optimization/build-optimizer.js +438 -0
  66. package/scripts/optimization/config-validator.js +761 -0
  67. package/scripts/optimization/test-optimization.js +432 -0
  68. package/scripts/optimization/unified-activation.js +839 -0
  69. package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
  70. package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
  71. package/scripts/performance/test-enhanced-backend.sh +504 -0
  72. package/scripts/performance-test-runner.js +698 -0
  73. package/scripts/security/README.md +339 -0
  74. package/scripts/security/install-git-hooks.sh +132 -0
  75. package/scripts/security/ruv-swarm-safe.js +74 -0
  76. package/scripts/test/README.md +236 -0
  77. package/scripts/test/check-links.ts +274 -0
  78. package/scripts/test/check-performance-regression.ts +168 -0
  79. package/scripts/test/coverage-report.ts +692 -0
  80. package/scripts/test/generate-swarm-tests.js +633 -0
  81. package/scripts/test/integration-test-validation.cjs +253 -0
  82. package/scripts/test/load-test-swarm.js +576 -0
  83. package/scripts/test/run-phase3-compliance-tests.js +427 -0
  84. package/scripts/test/test-batch-tasks.ts +29 -0
  85. package/scripts/test/test-byzantine-resolution.js +246 -0
  86. package/scripts/test/test-claude-spawn-options.sh +63 -0
  87. package/scripts/test/test-cli-wizard.js +331 -0
  88. package/scripts/test/test-comprehensive.js +401 -0
  89. package/scripts/test/test-coordination-features.ts +238 -0
  90. package/scripts/test/test-fallback-systems.js +276 -0
  91. package/scripts/test/test-init-command.ts +302 -0
  92. package/scripts/test/test-mcp.ts +251 -0
  93. package/scripts/test/test-runner.ts +568 -0
  94. package/scripts/test/test-swarm-integration.sh +92 -0
  95. package/scripts/test/test-swarm.ts +142 -0
  96. package/scripts/test/validation-summary.ts +408 -0
  97. package/scripts/utils/README.md +261 -0
  98. package/scripts/utils/clean-build-artifacts.sh +94 -0
  99. package/scripts/utils/cleanup-root.sh +69 -0
  100. package/scripts/utils/fix-cliffy-imports.js +307 -0
  101. package/scripts/utils/fix-duplicate-imports.js +114 -0
  102. package/scripts/utils/fix-error-handling.cjs +70 -0
  103. package/scripts/utils/fix-import-paths.js +104 -0
  104. package/scripts/utils/fix-imports.js +116 -0
  105. package/scripts/utils/fix-shebang.js +78 -0
  106. package/scripts/utils/fix-test-modules.js +27 -0
  107. package/scripts/utils/fix-timezone-issue-246.js +200 -0
  108. package/scripts/utils/fix-ts-comprehensive.py +182 -0
  109. package/scripts/utils/fix-ts-targeted-batch.js +250 -0
  110. package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
  111. package/scripts/utils/simple-test-fixer.js +190 -0
  112. package/scripts/utils/validate-metrics-structure.cjs +144 -0
  113. package/scripts/verify-mcp-server.js +86 -0
  114. package/src/cli/simple-commands/__tests__/agent.test.js +291 -0
  115. package/src/cli/simple-commands/__tests__/memory.test.js +8 -0
  116. package/src/cli/simple-commands/__tests__/swarm.test.js +371 -0
  117. package/src/cli/simple-commands/__tests__/task.test.js +8 -0
  118. package/src/cli/simple-commands/agent.js +216 -0
  119. package/src/cli/simple-commands/analysis.js +570 -0
  120. package/src/cli/simple-commands/automation-executor.js +1603 -0
  121. package/src/cli/simple-commands/automation.js +627 -0
  122. package/src/cli/simple-commands/batch-manager.js +338 -0
  123. package/src/cli/simple-commands/claude-telemetry.js +311 -0
  124. package/src/cli/simple-commands/claude-track.js +102 -0
  125. package/src/cli/simple-commands/concurrent-display.js +348 -0
  126. package/src/cli/simple-commands/config.js +319 -0
  127. package/src/cli/simple-commands/coordination.js +307 -0
  128. package/src/cli/simple-commands/enhanced-ui-views.js +654 -0
  129. package/src/cli/simple-commands/enhanced-webui-complete.js +1038 -0
  130. package/src/cli/simple-commands/fix-hook-variables.js +363 -0
  131. package/src/cli/simple-commands/github/gh-coordinator.js +605 -0
  132. package/src/cli/simple-commands/github/github-api.js +624 -0
  133. package/src/cli/simple-commands/github/init.js +543 -0
  134. package/src/cli/simple-commands/github.js +377 -0
  135. package/src/cli/simple-commands/goal.js +145 -0
  136. package/src/cli/simple-commands/hive-mind/auto-save-middleware.js +311 -0
  137. package/src/cli/simple-commands/hive-mind/communication.js +740 -0
  138. package/src/cli/simple-commands/hive-mind/core.js +1031 -0
  139. package/src/cli/simple-commands/hive-mind/db-optimizer.js +872 -0
  140. package/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1364 -0
  141. package/src/cli/simple-commands/hive-mind/memory.js +1292 -0
  142. package/src/cli/simple-commands/hive-mind/performance-optimizer.js +618 -0
  143. package/src/cli/simple-commands/hive-mind/performance-test.js +373 -0
  144. package/src/cli/simple-commands/hive-mind/queen.js +809 -0
  145. package/src/cli/simple-commands/hive-mind/session-manager.js +1223 -0
  146. package/src/cli/simple-commands/hive-mind-optimize.js +361 -0
  147. package/src/cli/simple-commands/hive-mind-wizard.js +281 -0
  148. package/src/cli/simple-commands/hive-mind.js +3112 -0
  149. package/src/cli/simple-commands/hive.js +140 -0
  150. package/src/cli/simple-commands/hook-safety.js +671 -0
  151. package/src/cli/simple-commands/hooks.js +1268 -0
  152. package/src/cli/simple-commands/init/.claude/checkpoints/1756224542.json +7 -0
  153. package/src/cli/simple-commands/init/.claude/checkpoints/1756224544.json +8 -0
  154. package/src/cli/simple-commands/init/README.md +106 -0
  155. package/src/cli/simple-commands/init/VALIDATION_ROLLBACK.md +488 -0
  156. package/src/cli/simple-commands/init/agent-copier.js +347 -0
  157. package/src/cli/simple-commands/init/batch-init.js +663 -0
  158. package/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +438 -0
  159. package/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +876 -0
  160. package/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +356 -0
  161. package/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +501 -0
  162. package/src/cli/simple-commands/init/claude-commands/slash-commands.js +57 -0
  163. package/src/cli/simple-commands/init/claude-commands/sparc-commands.js +296 -0
  164. package/src/cli/simple-commands/init/copy-revised-templates.js +175 -0
  165. package/src/cli/simple-commands/init/executable-wrapper.js +122 -0
  166. package/src/cli/simple-commands/init/gitignore-updater.js +137 -0
  167. package/src/cli/simple-commands/init/help.js +110 -0
  168. package/src/cli/simple-commands/init/hive-mind-init.js +749 -0
  169. package/src/cli/simple-commands/init/index.js +1953 -0
  170. package/src/cli/simple-commands/init/performance-monitor.js +344 -0
  171. package/src/cli/simple-commands/init/rollback/backup-manager.js +542 -0
  172. package/src/cli/simple-commands/init/rollback/index.js +399 -0
  173. package/src/cli/simple-commands/init/rollback/recovery-manager.js +778 -0
  174. package/src/cli/simple-commands/init/rollback/rollback-executor.js +521 -0
  175. package/src/cli/simple-commands/init/rollback/state-tracker.js +486 -0
  176. package/src/cli/simple-commands/init/sparc/roo-readme.js +61 -0
  177. package/src/cli/simple-commands/init/sparc/roomodes-config.js +102 -0
  178. package/src/cli/simple-commands/init/sparc/workflows.js +40 -0
  179. package/src/cli/simple-commands/init/sparc-structure.js +68 -0
  180. package/src/cli/simple-commands/init/template-copier.js +640 -0
  181. package/src/cli/simple-commands/init/templates/CLAUDE.md +1185 -0
  182. package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +265 -0
  183. package/src/cli/simple-commands/init/templates/claude-flow-universal +81 -0
  184. package/src/cli/simple-commands/init/templates/claude-flow.bat +18 -0
  185. package/src/cli/simple-commands/init/templates/claude-flow.ps1 +24 -0
  186. package/src/cli/simple-commands/init/templates/claude-md.js +1101 -0
  187. package/src/cli/simple-commands/init/templates/commands/analysis/bottleneck-detect.md +162 -0
  188. package/src/cli/simple-commands/init/templates/commands/automation/auto-agent.md +122 -0
  189. package/src/cli/simple-commands/init/templates/commands/coordination/swarm-init.md +85 -0
  190. package/src/cli/simple-commands/init/templates/commands/github/github-swarm.md +121 -0
  191. package/src/cli/simple-commands/init/templates/commands/helpers/standard-checkpoint-hooks.sh +179 -0
  192. package/src/cli/simple-commands/init/templates/commands/hooks/notification.md +113 -0
  193. package/src/cli/simple-commands/init/templates/commands/hooks/post-command.md +116 -0
  194. package/src/cli/simple-commands/init/templates/commands/hooks/post-edit.md +117 -0
  195. package/src/cli/simple-commands/init/templates/commands/hooks/post-task.md +112 -0
  196. package/src/cli/simple-commands/init/templates/commands/hooks/pre-command.md +113 -0
  197. package/src/cli/simple-commands/init/templates/commands/hooks/pre-edit.md +113 -0
  198. package/src/cli/simple-commands/init/templates/commands/hooks/pre-search.md +112 -0
  199. package/src/cli/simple-commands/init/templates/commands/hooks/pre-task.md +111 -0
  200. package/src/cli/simple-commands/init/templates/commands/hooks/session-end.md +118 -0
  201. package/src/cli/simple-commands/init/templates/commands/hooks/session-restore.md +118 -0
  202. package/src/cli/simple-commands/init/templates/commands/hooks/session-start.md +117 -0
  203. package/src/cli/simple-commands/init/templates/coordination-md.js +340 -0
  204. package/src/cli/simple-commands/init/templates/coordination.md +16 -0
  205. package/src/cli/simple-commands/init/templates/enhanced-templates.js +2347 -0
  206. package/src/cli/simple-commands/init/templates/github-safe-enhanced.js +331 -0
  207. package/src/cli/simple-commands/init/templates/github-safe.js +106 -0
  208. package/src/cli/simple-commands/init/templates/memory-bank-md.js +259 -0
  209. package/src/cli/simple-commands/init/templates/memory-bank.md +16 -0
  210. package/src/cli/simple-commands/init/templates/readme-files.js +72 -0
  211. package/src/cli/simple-commands/init/templates/safe-hook-patterns.js +430 -0
  212. package/src/cli/simple-commands/init/templates/settings.json +109 -0
  213. package/src/cli/simple-commands/init/templates/settings.json.enhanced +35 -0
  214. package/src/cli/simple-commands/init/templates/sparc-modes.js +1401 -0
  215. package/src/cli/simple-commands/init/templates/verification-claude-md.js +432 -0
  216. package/src/cli/simple-commands/init/validation/config-validator.js +354 -0
  217. package/src/cli/simple-commands/init/validation/health-checker.js +599 -0
  218. package/src/cli/simple-commands/init/validation/index.js +388 -0
  219. package/src/cli/simple-commands/init/validation/mode-validator.js +387 -0
  220. package/src/cli/simple-commands/init/validation/post-init-validator.js +390 -0
  221. package/src/cli/simple-commands/init/validation/pre-init-validator.js +290 -0
  222. package/src/cli/simple-commands/init/validation/test-runner.js +488 -0
  223. package/src/cli/simple-commands/init.js +4 -0
  224. package/src/cli/simple-commands/mcp-health.js +163 -0
  225. package/src/cli/simple-commands/mcp-integration-layer.js +689 -0
  226. package/src/cli/simple-commands/mcp.js +420 -0
  227. package/src/cli/simple-commands/memory-consolidation.js +631 -0
  228. package/src/cli/simple-commands/memory.js +345 -0
  229. package/src/cli/simple-commands/migrate-hooks.js +63 -0
  230. package/src/cli/simple-commands/monitor.js +417 -0
  231. package/src/cli/simple-commands/neural.js +148 -0
  232. package/src/cli/simple-commands/pair-autofix-only.js +755 -0
  233. package/src/cli/simple-commands/pair-basic.js +751 -0
  234. package/src/cli/simple-commands/pair-old.js +623 -0
  235. package/src/cli/simple-commands/pair-working.js +849 -0
  236. package/src/cli/simple-commands/pair.js +849 -0
  237. package/src/cli/simple-commands/performance-hooks.js +149 -0
  238. package/src/cli/simple-commands/performance-metrics.js +601 -0
  239. package/src/cli/simple-commands/process-ui-enhanced.js +821 -0
  240. package/src/cli/simple-commands/process-ui.js +274 -0
  241. package/src/cli/simple-commands/realtime-update-system.js +659 -0
  242. package/src/cli/simple-commands/sparc/architecture.js +1750 -0
  243. package/src/cli/simple-commands/sparc/commands.js +575 -0
  244. package/src/cli/simple-commands/sparc/completion.js +1831 -0
  245. package/src/cli/simple-commands/sparc/coordinator.js +1045 -0
  246. package/src/cli/simple-commands/sparc/index.js +321 -0
  247. package/src/cli/simple-commands/sparc/phase-base.js +430 -0
  248. package/src/cli/simple-commands/sparc/pseudocode.js +984 -0
  249. package/src/cli/simple-commands/sparc/refinement.js +1856 -0
  250. package/src/cli/simple-commands/sparc/specification.js +736 -0
  251. package/src/cli/simple-commands/sparc-modes/architect.js +125 -0
  252. package/src/cli/simple-commands/sparc-modes/ask.js +126 -0
  253. package/src/cli/simple-commands/sparc-modes/code.js +148 -0
  254. package/src/cli/simple-commands/sparc-modes/debug.js +112 -0
  255. package/src/cli/simple-commands/sparc-modes/devops.js +137 -0
  256. package/src/cli/simple-commands/sparc-modes/docs-writer.js +38 -0
  257. package/src/cli/simple-commands/sparc-modes/generic.js +34 -0
  258. package/src/cli/simple-commands/sparc-modes/index.js +201 -0
  259. package/src/cli/simple-commands/sparc-modes/integration.js +55 -0
  260. package/src/cli/simple-commands/sparc-modes/mcp.js +38 -0
  261. package/src/cli/simple-commands/sparc-modes/monitoring.js +38 -0
  262. package/src/cli/simple-commands/sparc-modes/optimization.js +38 -0
  263. package/src/cli/simple-commands/sparc-modes/security-review.js +130 -0
  264. package/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +167 -0
  265. package/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +38 -0
  266. package/src/cli/simple-commands/sparc-modes/supabase-admin.js +149 -0
  267. package/src/cli/simple-commands/sparc-modes/swarm.js +436 -0
  268. package/src/cli/simple-commands/sparc-modes/tdd.js +112 -0
  269. package/src/cli/simple-commands/sparc-modes/tutorial.js +277 -0
  270. package/src/cli/simple-commands/sparc.js +530 -0
  271. package/src/cli/simple-commands/start-ui.js +147 -0
  272. package/src/cli/simple-commands/start-wrapper.js +285 -0
  273. package/src/cli/simple-commands/start.js +2 -0
  274. package/src/cli/simple-commands/status.js +303 -0
  275. package/src/cli/simple-commands/stream-chain-clean.js +221 -0
  276. package/src/cli/simple-commands/stream-chain-fixed.js +89 -0
  277. package/src/cli/simple-commands/stream-chain-real.js +408 -0
  278. package/src/cli/simple-commands/stream-chain-working.js +323 -0
  279. package/src/cli/simple-commands/stream-chain.js +491 -0
  280. package/src/cli/simple-commands/stream-processor.js +340 -0
  281. package/src/cli/simple-commands/swarm-executor.js +253 -0
  282. package/src/cli/simple-commands/swarm-metrics-integration.js +371 -0
  283. package/src/cli/simple-commands/swarm-ui.js +741 -0
  284. package/src/cli/simple-commands/swarm-webui-integration.js +311 -0
  285. package/src/cli/simple-commands/swarm.js +2277 -0
  286. package/src/cli/simple-commands/task.js +228 -0
  287. package/src/cli/simple-commands/templates/mle-star-workflow.json +294 -0
  288. package/src/cli/simple-commands/timestamp-fix.js +104 -0
  289. package/src/cli/simple-commands/token-tracker.js +372 -0
  290. package/src/cli/simple-commands/tool-execution-framework.js +555 -0
  291. package/src/cli/simple-commands/train-and-stream.js +354 -0
  292. package/src/cli/simple-commands/training-pipeline.js +874 -0
  293. package/src/cli/simple-commands/training.js +288 -0
  294. package/src/cli/simple-commands/verification-hooks.js +336 -0
  295. package/src/cli/simple-commands/verification-integration.js +464 -0
  296. package/src/cli/simple-commands/verification-training-integration.js +646 -0
  297. package/src/cli/simple-commands/verification.js +551 -0
  298. package/src/cli/simple-commands/web-server.js +929 -0
  299. package/src/cli/simple-commands/webui-validator.js +136 -0
  300. package/src/language/README.md +503 -0
  301. package/src/language/claude-md-generator.js +618 -0
  302. package/src/language/cli.js +422 -0
  303. package/src/language/example.js +347 -0
  304. package/src/language/integration-system.js +619 -0
  305. package/src/language/language-detector.js +581 -0
@@ -0,0 +1,809 @@
1
+ /**
2
+ * Queen Coordinator for Hive Mind System
3
+ * Strategic decision-making and swarm coordination
4
+ */
5
+
6
+ import EventEmitter from 'events';
7
+
8
+ /**
9
+ * Queen types and their characteristics
10
+ */
11
+ const QUEEN_TYPES = {
12
+ strategic: {
13
+ name: 'Strategic Queen',
14
+ traits: ['long-term planning', 'resource optimization', 'goal alignment'],
15
+ decisionWeight: 3,
16
+ consensusThreshold: 0.6,
17
+ },
18
+ tactical: {
19
+ name: 'Tactical Queen',
20
+ traits: ['task prioritization', 'workflow optimization', 'rapid response'],
21
+ decisionWeight: 2,
22
+ consensusThreshold: 0.5,
23
+ },
24
+ adaptive: {
25
+ name: 'Adaptive Queen',
26
+ traits: ['learning', 'pattern recognition', 'strategy evolution'],
27
+ decisionWeight: 2.5,
28
+ consensusThreshold: 0.55,
29
+ },
30
+ };
31
+
32
+ /**
33
+ * QueenCoordinator class
34
+ */
35
+ export class QueenCoordinator extends EventEmitter {
36
+ constructor(config = {}) {
37
+ super();
38
+
39
+ this.config = {
40
+ swarmId: config.swarmId,
41
+ type: config.type || 'strategic',
42
+ objective: config.objective || '',
43
+ ...QUEEN_TYPES[config.type || 'strategic'],
44
+ };
45
+
46
+ this.state = {
47
+ status: 'initializing',
48
+ decisionsCount: 0,
49
+ strategiesExecuted: 0,
50
+ learningData: new Map(),
51
+ currentStrategy: null,
52
+ taskQueue: [],
53
+ workerAssignments: new Map(),
54
+ };
55
+
56
+ this.strategies = {
57
+ divide_and_conquer: this._divideAndConquerStrategy.bind(this),
58
+ parallel_execution: this._parallelExecutionStrategy.bind(this),
59
+ sequential_refinement: this._sequentialRefinementStrategy.bind(this),
60
+ consensus_driven: this._consensusDrivenStrategy.bind(this),
61
+ adaptive_learning: this._adaptiveLearningStrategy.bind(this),
62
+ };
63
+
64
+ this._initialize();
65
+ }
66
+
67
+ /**
68
+ * Initialize queen coordinator
69
+ */
70
+ _initialize() {
71
+ this.state.status = 'active';
72
+ this.emit('queen:initialized', {
73
+ type: this.config.type,
74
+ traits: this.config.traits,
75
+ });
76
+ }
77
+
78
+ /**
79
+ * Analyze objective and create strategic plan
80
+ */
81
+ async analyzeObjective(objective) {
82
+ const analysis = {
83
+ objective,
84
+ complexity: this._assessComplexity(objective),
85
+ requiredCapabilities: this._identifyRequiredCapabilities(objective),
86
+ estimatedTasks: this._estimateTaskCount(objective),
87
+ recommendedStrategy: this._selectStrategy(objective),
88
+ resourceRequirements: this._estimateResources(objective),
89
+ };
90
+
91
+ // Store analysis for learning
92
+ this.state.learningData.set('objective_analysis', analysis);
93
+
94
+ this.emit('objective:analyzed', analysis);
95
+ return analysis;
96
+ }
97
+
98
+ /**
99
+ * Assess complexity of objective
100
+ */
101
+ _assessComplexity(objective) {
102
+ const complexityFactors = {
103
+ length: objective.length > 100 ? 2 : 1,
104
+ keywords: this._countComplexityKeywords(objective),
105
+ components: this._identifyComponents(objective).length,
106
+ };
107
+
108
+ const score = Object.values(complexityFactors).reduce((a, b) => a + b, 0);
109
+
110
+ if (score <= 3) return 'low';
111
+ if (score <= 6) return 'medium';
112
+ if (score <= 9) return 'high';
113
+ return 'very_high';
114
+ }
115
+
116
+ /**
117
+ * Count complexity keywords
118
+ */
119
+ _countComplexityKeywords(text) {
120
+ const complexKeywords = [
121
+ 'complex',
122
+ 'advanced',
123
+ 'enterprise',
124
+ 'distributed',
125
+ 'scalable',
126
+ 'microservices',
127
+ 'architecture',
128
+ 'integration',
129
+ 'optimization',
130
+ 'security',
131
+ 'performance',
132
+ 'concurrent',
133
+ 'real-time',
134
+ ];
135
+
136
+ const lowerText = text.toLowerCase();
137
+ return complexKeywords.filter((keyword) => lowerText.includes(keyword)).length;
138
+ }
139
+
140
+ /**
141
+ * Identify components in objective
142
+ */
143
+ _identifyComponents(objective) {
144
+ const components = [];
145
+ const componentKeywords = {
146
+ backend: ['api', 'server', 'backend', 'database', 'service'],
147
+ frontend: ['ui', 'frontend', 'interface', 'client', 'web'],
148
+ data: ['database', 'data', 'storage', 'cache', 'persistence'],
149
+ auth: ['auth', 'security', 'login', 'permission', 'access'],
150
+ testing: ['test', 'quality', 'validation', 'verify'],
151
+ deployment: ['deploy', 'ci/cd', 'docker', 'kubernetes'],
152
+ monitoring: ['monitor', 'logging', 'metrics', 'observability'],
153
+ };
154
+
155
+ const lowerObjective = objective.toLowerCase();
156
+
157
+ Object.entries(componentKeywords).forEach(([component, keywords]) => {
158
+ if (keywords.some((keyword) => lowerObjective.includes(keyword))) {
159
+ components.push(component);
160
+ }
161
+ });
162
+
163
+ return components;
164
+ }
165
+
166
+ /**
167
+ * Identify required capabilities
168
+ */
169
+ _identifyRequiredCapabilities(objective) {
170
+ const capabilities = new Set();
171
+ const components = this._identifyComponents(objective);
172
+
173
+ // Map components to capabilities
174
+ const capabilityMap = {
175
+ backend: ['coder', 'architect', 'tester'],
176
+ frontend: ['coder', 'tester', 'reviewer'],
177
+ data: ['architect', 'analyst', 'optimizer'],
178
+ auth: ['architect', 'coder', 'tester'],
179
+ testing: ['tester', 'reviewer'],
180
+ deployment: ['architect', 'optimizer'],
181
+ monitoring: ['analyst', 'optimizer'],
182
+ };
183
+
184
+ components.forEach((component) => {
185
+ const caps = capabilityMap[component] || [];
186
+ caps.forEach((cap) => capabilities.add(cap));
187
+ });
188
+
189
+ // Always include researcher for initial analysis
190
+ capabilities.add('researcher');
191
+
192
+ return Array.from(capabilities);
193
+ }
194
+
195
+ /**
196
+ * Estimate number of tasks
197
+ */
198
+ _estimateTaskCount(objective) {
199
+ const complexity = this._assessComplexity(objective);
200
+ const components = this._identifyComponents(objective).length;
201
+
202
+ const baseTaskCount = {
203
+ low: 5,
204
+ medium: 10,
205
+ high: 20,
206
+ very_high: 30,
207
+ };
208
+
209
+ return baseTaskCount[complexity] + components * 3;
210
+ }
211
+
212
+ /**
213
+ * Select optimal strategy
214
+ */
215
+ _selectStrategy(objective) {
216
+ const complexity = this._assessComplexity(objective);
217
+ const components = this._identifyComponents(objective);
218
+
219
+ // Strategy selection heuristics
220
+ if (components.length > 3 && complexity !== 'low') {
221
+ return 'divide_and_conquer';
222
+ }
223
+
224
+ if (objective.toLowerCase().includes('parallel') || components.length > 5) {
225
+ return 'parallel_execution';
226
+ }
227
+
228
+ if (
229
+ objective.toLowerCase().includes('iterative') ||
230
+ objective.toLowerCase().includes('refine')
231
+ ) {
232
+ return 'sequential_refinement';
233
+ }
234
+
235
+ if (this.config.type === 'adaptive') {
236
+ return 'adaptive_learning';
237
+ }
238
+
239
+ return 'consensus_driven'; // Default
240
+ }
241
+
242
+ /**
243
+ * Estimate resource requirements
244
+ */
245
+ _estimateResources(objective) {
246
+ const complexity = this._assessComplexity(objective);
247
+ const taskCount = this._estimateTaskCount(objective);
248
+
249
+ return {
250
+ minWorkers: Math.min(3, Math.ceil(taskCount / 10)),
251
+ optimalWorkers: Math.min(8, Math.ceil(taskCount / 5)),
252
+ estimatedTime: taskCount * 5, // minutes
253
+ memoryRequirement: complexity === 'very_high' ? 'high' : 'medium',
254
+ };
255
+ }
256
+
257
+ /**
258
+ * Create execution plan
259
+ */
260
+ async createExecutionPlan(analysis, workers) {
261
+ const strategy = this.strategies[analysis.recommendedStrategy];
262
+ if (!strategy) {
263
+ throw new Error(`Unknown strategy: ${analysis.recommendedStrategy}`);
264
+ }
265
+
266
+ const plan = await strategy(analysis, workers);
267
+
268
+ this.state.currentStrategy = analysis.recommendedStrategy;
269
+ this.state.strategiesExecuted++;
270
+
271
+ this.emit('plan:created', plan);
272
+ return plan;
273
+ }
274
+
275
+ /**
276
+ * Divide and conquer strategy
277
+ */
278
+ async _divideAndConquerStrategy(analysis, workers) {
279
+ const components = this._identifyComponents(analysis.objective);
280
+ const phases = [];
281
+
282
+ // Phase 1: Research and planning
283
+ phases.push({
284
+ name: 'Research and Planning',
285
+ tasks: [
286
+ 'Research best practices and patterns',
287
+ 'Analyze requirements and constraints',
288
+ 'Create high-level architecture design',
289
+ ],
290
+ workers: workers.filter((w) => ['researcher', 'architect'].includes(w.type)),
291
+ parallel: true,
292
+ });
293
+
294
+ // Phase 2: Component development
295
+ components.forEach((component) => {
296
+ phases.push({
297
+ name: `Develop ${component}`,
298
+ tasks: this._generateComponentTasks(component),
299
+ workers: workers.filter((w) => ['coder', 'architect'].includes(w.type)),
300
+ parallel: true,
301
+ });
302
+ });
303
+
304
+ // Phase 3: Integration and testing
305
+ phases.push({
306
+ name: 'Integration and Testing',
307
+ tasks: [
308
+ 'Integrate components',
309
+ 'Write integration tests',
310
+ 'Perform end-to-end testing',
311
+ 'Fix integration issues',
312
+ ],
313
+ workers: workers.filter((w) => ['coder', 'tester'].includes(w.type)),
314
+ parallel: false,
315
+ });
316
+
317
+ // Phase 4: Optimization and documentation
318
+ phases.push({
319
+ name: 'Optimization and Documentation',
320
+ tasks: [
321
+ 'Optimize performance',
322
+ 'Document architecture',
323
+ 'Create user documentation',
324
+ 'Prepare deployment guide',
325
+ ],
326
+ workers: workers.filter((w) => ['optimizer', 'documenter'].includes(w.type)),
327
+ parallel: true,
328
+ });
329
+
330
+ return {
331
+ strategy: 'divide_and_conquer',
332
+ phases,
333
+ estimatedDuration: phases.length * 15, // minutes
334
+ parallelism: 'high',
335
+ };
336
+ }
337
+
338
+ /**
339
+ * Parallel execution strategy
340
+ */
341
+ async _parallelExecutionStrategy(analysis, workers) {
342
+ const tasks = this._generateAllTasks(analysis);
343
+ const workerGroups = this._groupWorkersByType(workers);
344
+
345
+ return {
346
+ strategy: 'parallel_execution',
347
+ phases: [
348
+ {
349
+ name: 'Parallel Execution',
350
+ tasks: tasks,
351
+ workers: workers,
352
+ parallel: true,
353
+ workerAssignment: this._optimizeWorkerAssignment(tasks, workerGroups),
354
+ },
355
+ ],
356
+ estimatedDuration: Math.ceil(tasks.length / workers.length) * 10,
357
+ parallelism: 'maximum',
358
+ };
359
+ }
360
+
361
+ /**
362
+ * Sequential refinement strategy
363
+ */
364
+ async _sequentialRefinementStrategy(analysis, workers) {
365
+ const iterations = 3;
366
+ const phases = [];
367
+
368
+ for (let i = 0; i < iterations; i++) {
369
+ phases.push({
370
+ name: `Iteration ${i + 1}`,
371
+ tasks: [
372
+ `Design iteration ${i + 1}`,
373
+ `Implement features for iteration ${i + 1}`,
374
+ `Test iteration ${i + 1}`,
375
+ `Review and refine iteration ${i + 1}`,
376
+ ],
377
+ workers: workers,
378
+ parallel: false,
379
+ requiresConsensus: true,
380
+ });
381
+ }
382
+
383
+ return {
384
+ strategy: 'sequential_refinement',
385
+ phases,
386
+ estimatedDuration: phases.length * 20,
387
+ parallelism: 'low',
388
+ iterative: true,
389
+ };
390
+ }
391
+
392
+ /**
393
+ * Consensus-driven strategy
394
+ */
395
+ async _consensusDrivenStrategy(analysis, workers) {
396
+ const decisionPoints = this._identifyDecisionPoints(analysis);
397
+ const phases = [];
398
+
399
+ decisionPoints.forEach((decision, index) => {
400
+ phases.push({
401
+ name: `Decision Phase ${index + 1}: ${decision}`,
402
+ tasks: [
403
+ `Research options for ${decision}`,
404
+ `Analyze trade-offs`,
405
+ `Build consensus on approach`,
406
+ `Implement chosen solution`,
407
+ ],
408
+ workers: workers,
409
+ parallel: index === 0, // Only first phase in parallel
410
+ requiresConsensus: true,
411
+ consensusThreshold: this.config.consensusThreshold,
412
+ });
413
+ });
414
+
415
+ return {
416
+ strategy: 'consensus_driven',
417
+ phases,
418
+ estimatedDuration: phases.length * 25,
419
+ parallelism: 'medium',
420
+ consensusRequired: true,
421
+ };
422
+ }
423
+
424
+ /**
425
+ * Adaptive learning strategy
426
+ */
427
+ async _adaptiveLearningStrategy(analysis, workers) {
428
+ const learningPhases = [
429
+ {
430
+ name: 'Exploration Phase',
431
+ tasks: [
432
+ 'Explore multiple approaches',
433
+ 'Experiment with different solutions',
434
+ 'Collect performance metrics',
435
+ ],
436
+ workers: workers,
437
+ parallel: true,
438
+ learning: true,
439
+ },
440
+ {
441
+ name: 'Analysis Phase',
442
+ tasks: ['Analyze results', 'Identify patterns', 'Select best approaches'],
443
+ workers: workers.filter((w) => ['analyst', 'researcher'].includes(w.type)),
444
+ parallel: false,
445
+ learning: true,
446
+ },
447
+ {
448
+ name: 'Implementation Phase',
449
+ tasks: ['Implement optimized solution', 'Apply learned patterns', 'Validate improvements'],
450
+ workers: workers,
451
+ parallel: true,
452
+ applyLearning: true,
453
+ },
454
+ ];
455
+
456
+ return {
457
+ strategy: 'adaptive_learning',
458
+ phases: learningPhases,
459
+ estimatedDuration: 45,
460
+ parallelism: 'adaptive',
461
+ learningEnabled: true,
462
+ };
463
+ }
464
+
465
+ /**
466
+ * Generate component-specific tasks
467
+ */
468
+ _generateComponentTasks(component) {
469
+ const taskTemplates = {
470
+ backend: [
471
+ 'Design API endpoints',
472
+ 'Implement business logic',
473
+ 'Set up database models',
474
+ 'Create API tests',
475
+ ],
476
+ frontend: [
477
+ 'Design UI components',
478
+ 'Implement user interface',
479
+ 'Add interactivity',
480
+ 'Create UI tests',
481
+ ],
482
+ data: [
483
+ 'Design data schema',
484
+ 'Implement data access layer',
485
+ 'Set up caching',
486
+ 'Optimize queries',
487
+ ],
488
+ auth: [
489
+ 'Design authentication flow',
490
+ 'Implement auth middleware',
491
+ 'Add authorization checks',
492
+ 'Test security',
493
+ ],
494
+ };
495
+
496
+ return (
497
+ taskTemplates[component] || [
498
+ `Design ${component}`,
499
+ `Implement ${component}`,
500
+ `Test ${component}`,
501
+ ]
502
+ );
503
+ }
504
+
505
+ /**
506
+ * Generate all tasks based on analysis
507
+ */
508
+ _generateAllTasks(analysis) {
509
+ const tasks = [];
510
+ const components = this._identifyComponents(analysis.objective);
511
+
512
+ // Add general tasks
513
+ tasks.push('Analyze requirements', 'Design architecture', 'Set up project structure');
514
+
515
+ // Add component tasks
516
+ components.forEach((component) => {
517
+ tasks.push(...this._generateComponentTasks(component));
518
+ });
519
+
520
+ // Add integration tasks
521
+ tasks.push('Integrate components', 'Write tests', 'Document solution');
522
+
523
+ return tasks;
524
+ }
525
+
526
+ /**
527
+ * Group workers by type
528
+ */
529
+ _groupWorkersByType(workers) {
530
+ const groups = {};
531
+
532
+ workers.forEach((worker) => {
533
+ if (!groups[worker.type]) {
534
+ groups[worker.type] = [];
535
+ }
536
+ groups[worker.type].push(worker);
537
+ });
538
+
539
+ return groups;
540
+ }
541
+
542
+ /**
543
+ * Optimize worker assignment for tasks
544
+ */
545
+ _optimizeWorkerAssignment(tasks, workerGroups) {
546
+ const assignments = {};
547
+
548
+ tasks.forEach((task) => {
549
+ const bestWorkerType = this._findBestWorkerType(task);
550
+ const availableWorkers = workerGroups[bestWorkerType] || [];
551
+
552
+ if (availableWorkers.length > 0) {
553
+ // Round-robin assignment within type
554
+ const workerIndex =
555
+ Object.keys(assignments).filter((t) => assignments[t].type === bestWorkerType).length %
556
+ availableWorkers.length;
557
+
558
+ assignments[task] = availableWorkers[workerIndex];
559
+ }
560
+ });
561
+
562
+ return assignments;
563
+ }
564
+
565
+ /**
566
+ * Find best worker type for task
567
+ */
568
+ _findBestWorkerType(task) {
569
+ const taskLower = task.toLowerCase();
570
+
571
+ if (taskLower.includes('research') || taskLower.includes('analyze')) {
572
+ return 'researcher';
573
+ }
574
+ if (taskLower.includes('design') || taskLower.includes('architect')) {
575
+ return 'architect';
576
+ }
577
+ if (taskLower.includes('implement') || taskLower.includes('code')) {
578
+ return 'coder';
579
+ }
580
+ if (taskLower.includes('test') || taskLower.includes('validate')) {
581
+ return 'tester';
582
+ }
583
+ if (taskLower.includes('optimize') || taskLower.includes('performance')) {
584
+ return 'optimizer';
585
+ }
586
+ if (taskLower.includes('document') || taskLower.includes('write')) {
587
+ return 'documenter';
588
+ }
589
+
590
+ return 'coder'; // Default
591
+ }
592
+
593
+ /**
594
+ * Identify decision points in objective
595
+ */
596
+ _identifyDecisionPoints(analysis) {
597
+ const decisionKeywords = [
598
+ 'choose',
599
+ 'select',
600
+ 'decide',
601
+ 'option',
602
+ 'approach',
603
+ 'strategy',
604
+ 'method',
605
+ 'solution',
606
+ 'alternative',
607
+ ];
608
+
609
+ const decisions = [];
610
+ const components = this._identifyComponents(analysis.objective);
611
+
612
+ // Architecture decisions
613
+ if (components.length > 2) {
614
+ decisions.push('Architecture pattern selection');
615
+ }
616
+
617
+ // Technology decisions
618
+ components.forEach((component) => {
619
+ decisions.push(`Technology stack for ${component}`);
620
+ });
621
+
622
+ // Implementation decisions
623
+ if (analysis.complexity !== 'low') {
624
+ decisions.push('Implementation approach');
625
+ }
626
+
627
+ return decisions;
628
+ }
629
+
630
+ /**
631
+ * Make strategic decision
632
+ */
633
+ async makeDecision(topic, options, workerVotes = {}) {
634
+ const decision = {
635
+ topic,
636
+ options,
637
+ workerVotes,
638
+ queenVote: this._calculateQueenVote(topic, options, workerVotes),
639
+ timestamp: Date.now(),
640
+ };
641
+
642
+ // Calculate final decision with queen's weighted vote
643
+ const finalDecision = this._calculateFinalDecision(decision);
644
+
645
+ decision.result = finalDecision;
646
+ this.state.decisionsCount++;
647
+
648
+ // Learn from decision
649
+ if (this.config.type === 'adaptive') {
650
+ this._learnFromDecision(decision);
651
+ }
652
+
653
+ this.emit('decision:made', decision);
654
+ return decision;
655
+ }
656
+
657
+ /**
658
+ * Calculate queen's vote
659
+ */
660
+ _calculateQueenVote(topic, options, workerVotes) {
661
+ // Strategic queen focuses on long-term impact
662
+ if (this.config.type === 'strategic') {
663
+ return this._strategicVote(topic, options);
664
+ }
665
+
666
+ // Tactical queen focuses on immediate efficiency
667
+ if (this.config.type === 'tactical') {
668
+ return this._tacticalVote(topic, options, workerVotes);
669
+ }
670
+
671
+ // Adaptive queen learns from past decisions
672
+ if (this.config.type === 'adaptive') {
673
+ return this._adaptiveVote(topic, options, workerVotes);
674
+ }
675
+
676
+ return options[0]; // Default
677
+ }
678
+
679
+ /**
680
+ * Strategic voting logic
681
+ */
682
+ _strategicVote(topic, options) {
683
+ // Prefer options that mention long-term benefits
684
+ const strategicKeywords = ['scalable', 'maintainable', 'extensible', 'future'];
685
+
686
+ for (const option of options) {
687
+ const optionLower = option.toLowerCase();
688
+ if (strategicKeywords.some((keyword) => optionLower.includes(keyword))) {
689
+ return option;
690
+ }
691
+ }
692
+
693
+ return options[0];
694
+ }
695
+
696
+ /**
697
+ * Tactical voting logic
698
+ */
699
+ _tacticalVote(topic, options, workerVotes) {
700
+ // Follow majority if consensus is strong
701
+ const voteCounts = {};
702
+ Object.values(workerVotes).forEach((vote) => {
703
+ voteCounts[vote] = (voteCounts[vote] || 0) + 1;
704
+ });
705
+
706
+ const sorted = Object.entries(voteCounts).sort((a, b) => b[1] - a[1]);
707
+ if (sorted.length > 0 && sorted[0][1] > Object.keys(workerVotes).length * 0.6) {
708
+ return sorted[0][0];
709
+ }
710
+
711
+ // Otherwise, prefer quick implementation
712
+ const tacticalKeywords = ['simple', 'quick', 'fast', 'efficient'];
713
+
714
+ for (const option of options) {
715
+ const optionLower = option.toLowerCase();
716
+ if (tacticalKeywords.some((keyword) => optionLower.includes(keyword))) {
717
+ return option;
718
+ }
719
+ }
720
+
721
+ return options[0];
722
+ }
723
+
724
+ /**
725
+ * Adaptive voting logic
726
+ */
727
+ _adaptiveVote(topic, options, workerVotes) {
728
+ // Check if we've seen similar decisions before
729
+ const similarDecisions = Array.from(this.state.learningData.entries()).filter(
730
+ ([key, value]) => key.includes('decision') && value.topic.includes(topic),
731
+ );
732
+
733
+ if (similarDecisions.length > 0) {
734
+ // Use learned preferences
735
+ const successfulOptions = similarDecisions
736
+ .filter(([_, decision]) => decision.success)
737
+ .map(([_, decision]) => decision.result);
738
+
739
+ for (const option of options) {
740
+ if (successfulOptions.includes(option)) {
741
+ return option;
742
+ }
743
+ }
744
+ }
745
+
746
+ // Otherwise, explore new option
747
+ return options[Math.floor(Math.random() * options.length)];
748
+ }
749
+
750
+ /**
751
+ * Calculate final decision with weighted votes
752
+ */
753
+ _calculateFinalDecision(decision) {
754
+ const voteCounts = {};
755
+
756
+ // Count worker votes
757
+ Object.values(decision.workerVotes).forEach((vote) => {
758
+ voteCounts[vote] = (voteCounts[vote] || 0) + 1;
759
+ });
760
+
761
+ // Add queen's weighted vote
762
+ voteCounts[decision.queenVote] =
763
+ (voteCounts[decision.queenVote] || 0) + this.config.decisionWeight;
764
+
765
+ // Find winner
766
+ const sorted = Object.entries(voteCounts).sort((a, b) => b[1] - a[1]);
767
+ return sorted[0][0];
768
+ }
769
+
770
+ /**
771
+ * Learn from decision outcomes
772
+ */
773
+ _learnFromDecision(decision) {
774
+ const key = `decision-${this.state.decisionsCount}`;
775
+ this.state.learningData.set(key, {
776
+ ...decision,
777
+ success: true, // Will be updated based on outcome
778
+ });
779
+ }
780
+
781
+ /**
782
+ * Update decision outcome
783
+ */
784
+ updateDecisionOutcome(decisionId, success, metrics = {}) {
785
+ const key = `decision-${decisionId}`;
786
+ const decision = this.state.learningData.get(key);
787
+
788
+ if (decision) {
789
+ decision.success = success;
790
+ decision.metrics = metrics;
791
+ this.emit('learning:updated', { decisionId, success, metrics });
792
+ }
793
+ }
794
+
795
+ /**
796
+ * Get queen status
797
+ */
798
+ getStatus() {
799
+ return {
800
+ type: this.config.type,
801
+ name: this.config.name,
802
+ status: this.state.status,
803
+ decisionsCount: this.state.decisionsCount,
804
+ strategiesExecuted: this.state.strategiesExecuted,
805
+ currentStrategy: this.state.currentStrategy,
806
+ learningDataSize: this.state.learningData.size,
807
+ };
808
+ }
809
+ }