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,361 @@
1
+ /**
2
+ * Hive Mind Database Optimization Command
3
+ *
4
+ * Safe optimization of existing hive mind databases without breaking compatibility
5
+ */
6
+
7
+ import { cwd, exit } from '../node-compat.js';
8
+ import path from 'path';
9
+ import { existsSync } from 'fs';
10
+ import chalk from 'chalk';
11
+ import inquirer from 'inquirer';
12
+ import {
13
+ optimizeHiveMindDatabase,
14
+ performMaintenance,
15
+ generateOptimizationReport,
16
+ } from './hive-mind/db-optimizer.js';
17
+
18
+ /**
19
+ * Show help for hive-mind-optimize command
20
+ */
21
+ function showOptimizeHelp() {
22
+ console.log(`
23
+ ${chalk.yellow('🔧 Hive Mind Database Optimization')}
24
+
25
+ ${chalk.bold('USAGE:')}
26
+ claude-flow hive-mind-optimize [options]
27
+
28
+ ${chalk.bold('OPTIONS:')}
29
+ --auto Run optimization without prompts
30
+ --vacuum Vacuum database (requires exclusive access)
31
+ --clean-memory Clean old memory entries
32
+ --archive-tasks Archive completed tasks
33
+ --check-integrity Run integrity check
34
+ --report Generate optimization report only
35
+ --memory-days <n> Memory retention days (default: 30)
36
+ --task-days <n> Task retention days (default: 7)
37
+ --verbose Show detailed output
38
+
39
+ ${chalk.bold('EXAMPLES:')}
40
+ ${chalk.gray('# Interactive optimization')}
41
+ claude-flow hive-mind-optimize
42
+
43
+ ${chalk.gray('# Auto-optimize with all features')}
44
+ claude-flow hive-mind-optimize --auto --vacuum --clean-memory --archive-tasks
45
+
46
+ ${chalk.gray('# Generate report only')}
47
+ claude-flow hive-mind-optimize --report
48
+
49
+ ${chalk.gray('# Custom retention periods')}
50
+ claude-flow hive-mind-optimize --clean-memory --memory-days 60 --task-days 14
51
+
52
+ ${chalk.bold('FEATURES:')}
53
+ ${chalk.cyan('🚀')} Performance indexes for faster queries
54
+ ${chalk.cyan('📊')} Query optimization and statistics
55
+ ${chalk.cyan('🧹')} Memory cleanup and archiving
56
+ ${chalk.cyan('📈')} Performance tracking tables
57
+ ${chalk.cyan('🔍')} Behavioral pattern analysis
58
+ ${chalk.cyan('💾')} Backward-compatible upgrades
59
+
60
+ ${chalk.bold('SAFETY:')}
61
+ • All changes are backward-compatible
62
+ • Existing data is preserved
63
+ • Automatic backups before major operations
64
+ • Rollback capability on errors
65
+ `);
66
+ }
67
+
68
+ /**
69
+ * Main optimization command handler
70
+ */
71
+ export async function hiveMindOptimizeCommand(args, flags) {
72
+ // Show help if requested
73
+ if (flags.help || flags.h) {
74
+ showOptimizeHelp();
75
+ return;
76
+ }
77
+
78
+ // Check if hive mind is initialized
79
+ const hiveMindDir = path.join(cwd(), '.hive-mind');
80
+ const dbPath = path.join(hiveMindDir, 'hive.db');
81
+
82
+ if (!existsSync(dbPath)) {
83
+ console.error(chalk.red('Error: Hive Mind database not found'));
84
+ console.log('Run "claude-flow hive-mind init" first');
85
+ exit(1);
86
+ }
87
+
88
+ // Generate report only
89
+ if (flags.report) {
90
+ await generateReport(dbPath);
91
+ return;
92
+ }
93
+
94
+ // Auto mode or interactive
95
+ if (flags.auto) {
96
+ await runOptimization(dbPath, {
97
+ vacuum: flags.vacuum || false,
98
+ cleanMemory: flags['clean-memory'] || false,
99
+ archiveTasks: flags['archive-tasks'] || false,
100
+ checkIntegrity: flags['check-integrity'] || false,
101
+ memoryRetentionDays: flags['memory-days'] || 30,
102
+ taskRetentionDays: flags['task-days'] || 7,
103
+ verbose: flags.verbose || false,
104
+ });
105
+ } else {
106
+ await interactiveOptimization(dbPath, flags);
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Interactive optimization wizard
112
+ */
113
+ async function interactiveOptimization(dbPath, flags) {
114
+ console.log(chalk.yellow('\n🔧 Hive Mind Database Optimization Wizard\n'));
115
+
116
+ // Generate current report
117
+ const report = await generateOptimizationReport(dbPath);
118
+
119
+ if (report) {
120
+ console.log(chalk.cyan('Current Database Status:'));
121
+ console.log(` Schema Version: ${report.schemaVersion}`);
122
+ console.log(` Tables: ${Object.keys(report.tables).length}`);
123
+ console.log(` Indexes: ${report.indexes.length}`);
124
+
125
+ let totalSize = 0;
126
+ let totalRows = 0;
127
+ Object.entries(report.tables).forEach(([name, stats]) => {
128
+ totalSize += stats.sizeBytes;
129
+ totalRows += stats.rowCount;
130
+ });
131
+
132
+ console.log(` Total Size: ${(totalSize / 1024 / 1024).toFixed(2)} MB`);
133
+ console.log(` Total Rows: ${totalRows.toLocaleString()}`);
134
+ console.log('');
135
+ }
136
+
137
+ // Check what optimizations are needed
138
+ const schemaVersion = report?.schemaVersion || 1.0;
139
+ const needsOptimization = schemaVersion < 1.5;
140
+
141
+ if (!needsOptimization) {
142
+ console.log(chalk.green('✓ Database is already fully optimized!\n'));
143
+
144
+ const { maintenance } = await inquirer.prompt([
145
+ {
146
+ type: 'confirm',
147
+ name: 'maintenance',
148
+ message: 'Would you like to perform maintenance tasks?',
149
+ default: true,
150
+ },
151
+ ]);
152
+
153
+ if (!maintenance) {
154
+ console.log(chalk.gray('No changes made.'));
155
+ return;
156
+ }
157
+ } else {
158
+ console.log(
159
+ chalk.yellow(`⚠ Database can be optimized from version ${schemaVersion} to 1.5\n`),
160
+ );
161
+ }
162
+
163
+ // Ask for optimization options
164
+ const answers = await inquirer.prompt([
165
+ {
166
+ type: 'checkbox',
167
+ name: 'operations',
168
+ message: 'Select operations to perform:',
169
+ choices: [
170
+ {
171
+ name: 'Apply performance optimizations',
172
+ value: 'optimize',
173
+ checked: needsOptimization,
174
+ disabled: !needsOptimization,
175
+ },
176
+ {
177
+ name: 'Clean old memory entries',
178
+ value: 'cleanMemory',
179
+ checked: true,
180
+ },
181
+ {
182
+ name: 'Archive completed tasks',
183
+ value: 'archiveTasks',
184
+ checked: true,
185
+ },
186
+ {
187
+ name: 'Vacuum database (requires exclusive access)',
188
+ value: 'vacuum',
189
+ checked: false,
190
+ },
191
+ {
192
+ name: 'Check database integrity',
193
+ value: 'checkIntegrity',
194
+ checked: true,
195
+ },
196
+ ],
197
+ },
198
+ {
199
+ type: 'number',
200
+ name: 'memoryDays',
201
+ message: 'Memory retention days:',
202
+ default: 30,
203
+ when: (answers) => answers.operations.includes('cleanMemory'),
204
+ },
205
+ {
206
+ type: 'number',
207
+ name: 'taskDays',
208
+ message: 'Task retention days:',
209
+ default: 7,
210
+ when: (answers) => answers.operations.includes('archiveTasks'),
211
+ },
212
+ {
213
+ type: 'confirm',
214
+ name: 'confirm',
215
+ message: 'Proceed with optimization?',
216
+ default: true,
217
+ },
218
+ ]);
219
+
220
+ if (!answers.confirm) {
221
+ console.log(chalk.gray('Optimization cancelled.'));
222
+ return;
223
+ }
224
+
225
+ // Create backup if doing major operations
226
+ if (answers.operations.includes('optimize') || answers.operations.includes('vacuum')) {
227
+ console.log(chalk.blue('\n📦 Creating backup...'));
228
+ await createBackup(dbPath);
229
+ }
230
+
231
+ // Run optimization
232
+ const options = {
233
+ vacuum: answers.operations.includes('vacuum'),
234
+ cleanMemory: answers.operations.includes('cleanMemory'),
235
+ archiveTasks: answers.operations.includes('archiveTasks'),
236
+ checkIntegrity: answers.operations.includes('checkIntegrity'),
237
+ memoryRetentionDays: answers.memoryDays || 30,
238
+ taskRetentionDays: answers.taskDays || 7,
239
+ verbose: flags.verbose || false,
240
+ };
241
+
242
+ await runOptimization(dbPath, options);
243
+ }
244
+
245
+ /**
246
+ * Run database optimization
247
+ */
248
+ async function runOptimization(dbPath, options) {
249
+ console.log(chalk.blue('\n🚀 Starting optimization...\n'));
250
+
251
+ // Run schema optimization
252
+ const result = await optimizeHiveMindDatabase(dbPath, options);
253
+
254
+ if (!result.success) {
255
+ console.error(chalk.red('\n❌ Optimization failed:', result.error));
256
+ exit(1);
257
+ }
258
+
259
+ // Run maintenance tasks
260
+ if (options.cleanMemory || options.archiveTasks || options.checkIntegrity) {
261
+ console.log(chalk.blue('\n🧹 Running maintenance tasks...\n'));
262
+ await performMaintenance(dbPath, options);
263
+ }
264
+
265
+ // Generate final report
266
+ console.log(chalk.blue('\n📊 Generating optimization report...\n'));
267
+ await generateReport(dbPath);
268
+
269
+ console.log(chalk.green('\n✅ Optimization complete!\n'));
270
+
271
+ // Show tips
272
+ console.log(chalk.bold('💡 Tips:'));
273
+ console.log(' • Monitor performance with: claude-flow hive-mind metrics');
274
+ console.log(' • Schedule regular maintenance: claude-flow hive-mind-optimize --auto');
275
+ console.log(' • Check swarm status: claude-flow hive-mind status');
276
+ }
277
+
278
+ /**
279
+ * Generate and display optimization report
280
+ */
281
+ async function generateReport(dbPath) {
282
+ const report = await generateOptimizationReport(dbPath);
283
+
284
+ if (!report) {
285
+ console.error(chalk.red('Failed to generate report'));
286
+ return;
287
+ }
288
+
289
+ console.log(chalk.bold('\n📊 Database Optimization Report\n'));
290
+ console.log(chalk.cyan('Schema Version:'), report.schemaVersion);
291
+ console.log(chalk.cyan('Indexes:'), report.indexes.length);
292
+
293
+ console.log(chalk.cyan('\nTable Statistics:'));
294
+ Object.entries(report.tables).forEach(([name, stats]) => {
295
+ const sizeMB = (stats.sizeBytes / 1024 / 1024).toFixed(2);
296
+ console.log(` ${name}: ${stats.rowCount.toLocaleString()} rows (${sizeMB} MB)`);
297
+ });
298
+
299
+ if (report.performance.avgTaskCompletionMinutes > 0) {
300
+ console.log(chalk.cyan('\nPerformance Metrics:'));
301
+ console.log(
302
+ ` Avg Task Completion: ${report.performance.avgTaskCompletionMinutes.toFixed(1)} minutes`,
303
+ );
304
+ }
305
+
306
+ // Optimization suggestions
307
+ console.log(chalk.cyan('\nOptimization Status:'));
308
+ if (report.schemaVersion >= 1.5) {
309
+ console.log(chalk.green(' ✓ Database is fully optimized'));
310
+ } else {
311
+ console.log(chalk.yellow(` ⚠ Can be upgraded from v${report.schemaVersion} to v1.5`));
312
+ console.log(chalk.gray(' Run: claude-flow hive-mind-optimize'));
313
+ }
314
+
315
+ // Check for large tables
316
+ const largeMemoryTable = report.tables.collective_memory?.rowCount > 10000;
317
+ const largeTaskTable = report.tables.tasks?.rowCount > 50000;
318
+
319
+ if (largeMemoryTable || largeTaskTable) {
320
+ console.log(chalk.cyan('\nMaintenance Recommendations:'));
321
+ if (largeMemoryTable) {
322
+ console.log(chalk.yellow(' • Consider cleaning old memory entries'));
323
+ }
324
+ if (largeTaskTable) {
325
+ console.log(chalk.yellow(' • Consider archiving completed tasks'));
326
+ }
327
+ }
328
+ }
329
+
330
+ /**
331
+ * Create database backup
332
+ */
333
+ async function createBackup(dbPath) {
334
+ try {
335
+ const { execSync } = await import('child_process');
336
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
337
+ const backupPath = dbPath.replace('.db', `-backup-${timestamp}.db`);
338
+
339
+ execSync(`cp "${dbPath}" "${backupPath}"`);
340
+ console.log(chalk.green(`✓ Backup created: ${path.basename(backupPath)}`));
341
+
342
+ return backupPath;
343
+ } catch (error) {
344
+ console.error(chalk.yellow('⚠ Backup failed:', error.message));
345
+ const { proceed } = await inquirer.prompt([
346
+ {
347
+ type: 'confirm',
348
+ name: 'proceed',
349
+ message: 'Continue without backup?',
350
+ default: false,
351
+ },
352
+ ]);
353
+
354
+ if (!proceed) {
355
+ exit(1);
356
+ }
357
+ }
358
+ }
359
+
360
+ // Export for CLI
361
+ export default hiveMindOptimizeCommand;
@@ -0,0 +1,281 @@
1
+ const chalk = require('chalk');
2
+ const path = require('path');
3
+ const fs = require('fs');
4
+ const Database = require('better-sqlite3');
5
+
6
+ // Interactive Wizard Implementation
7
+ async function runInteractiveWizard() {
8
+ console.log(chalk.blue.bold('🐝 Welcome to the Hive Mind Setup Wizard!'));
9
+ console.log(chalk.gray('This wizard will help you create your first intelligent AI swarm.\n'));
10
+
11
+ try {
12
+ // Check if system is initialized
13
+ const configPath = path.join(process.cwd(), '.hive-mind', 'config.json');
14
+ let config = { initialized: false };
15
+
16
+ if (fs.existsSync(configPath)) {
17
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
18
+ }
19
+
20
+ if (!config.initialized) {
21
+ console.log(chalk.yellow('📋 Step 1: Initializing Hive Mind System...'));
22
+ await initializeHiveMind();
23
+ console.log(chalk.green('✅ Hive Mind system initialized!\n'));
24
+ } else {
25
+ console.log(chalk.green('✅ Hive Mind system already initialized!\n'));
26
+ }
27
+
28
+ // Guided objective input
29
+ console.log(chalk.blue('📋 Step 2: Define Your Objective'));
30
+ console.log(chalk.gray('What would you like your Hive Mind swarm to accomplish?'));
31
+ console.log(chalk.gray('Examples:'));
32
+ console.log(chalk.gray(' • "Build a REST API for user management"'));
33
+ console.log(chalk.gray(' • "Research and analyze market trends"'));
34
+ console.log(chalk.gray(' • "Optimize database performance"'));
35
+ console.log(chalk.gray(' • "Create comprehensive test suite"\n'));
36
+
37
+ const objective = 'Build a modern web application'; // Placeholder for demo
38
+ console.log(chalk.cyan(`💡 Using example objective: "${objective}"`));
39
+ console.log(chalk.gray('(In full wizard, this would be interactive input)\n'));
40
+
41
+ // Configuration selection
42
+ console.log(chalk.blue('📋 Step 3: Choose Configuration'));
43
+ console.log(chalk.gray('Based on your objective, here are recommended settings:\n'));
44
+
45
+ const swarmConfig = {
46
+ topology: 'hierarchical',
47
+ coordination: 'queen',
48
+ agents: 5,
49
+ complexity: 'medium',
50
+ };
51
+
52
+ console.log(chalk.cyan('📊 Recommended Configuration:'));
53
+ console.log(chalk.gray(` • Topology: ${swarmConfig.topology} (best for structured tasks)`));
54
+ console.log(
55
+ chalk.gray(` • Coordination: ${swarmConfig.coordination} (fastest decision making)`),
56
+ );
57
+ console.log(
58
+ chalk.gray(` • Agent Count: ${swarmConfig.agents} (optimal for medium complexity)`),
59
+ );
60
+ console.log(chalk.gray(` • Complexity: ${swarmConfig.complexity}\n`));
61
+
62
+ // Create the swarm
63
+ console.log(chalk.blue('📋 Step 4: Creating Your Swarm...'));
64
+ console.log(chalk.gray('🔄 Spawning intelligent agents...'));
65
+
66
+ const result = await createSwarm(objective, swarmConfig);
67
+
68
+ if (result.success) {
69
+ console.log(chalk.green('🎉 Swarm created successfully!\n'));
70
+
71
+ console.log(chalk.blue.bold('🐝 Your Hive Mind is Ready!'));
72
+ console.log(chalk.gray('Your intelligent swarm has been created and is ready to work.\n'));
73
+
74
+ console.log(chalk.cyan('📱 Next Steps:'));
75
+ console.log(chalk.gray(' • View status: claude-flow hive-mind status'));
76
+ console.log(chalk.gray(' • Monitor progress: claude-flow hive-mind metrics'));
77
+ console.log(chalk.gray(' • Create another swarm: claude-flow hive-mind wizard'));
78
+ console.log(chalk.gray(' • Learn more: claude-flow help hive-mind\n'));
79
+
80
+ console.log(chalk.green.bold('🚀 Happy swarming!'));
81
+ } else {
82
+ console.log(chalk.red('❌ Failed to create swarm. Please try again.'));
83
+ }
84
+ } catch (error) {
85
+ console.log(chalk.red(`❌ Wizard error: ${error.message}`));
86
+ console.log(chalk.gray('You can try manual setup with: claude-flow hive-mind init'));
87
+ }
88
+ }
89
+
90
+ // Initialize Hive Mind system
91
+ async function initializeHiveMind() {
92
+ const hiveMindDir = path.join(process.cwd(), '.hive-mind');
93
+
94
+ // Create directory if it doesn't exist
95
+ if (!fs.existsSync(hiveMindDir)) {
96
+ fs.mkdirSync(hiveMindDir, { recursive: true });
97
+ }
98
+
99
+ // Create configuration file
100
+ const config = {
101
+ version: '2.0.0',
102
+ initialized: new Date().toISOString(),
103
+ defaults: {
104
+ queenType: 'strategic',
105
+ maxWorkers: 8,
106
+ consensusAlgorithm: 'majority',
107
+ memorySize: 100,
108
+ autoScale: true,
109
+ encryption: false,
110
+ },
111
+ mcpTools: {
112
+ enabled: true,
113
+ parallel: true,
114
+ timeout: 60000,
115
+ },
116
+ };
117
+
118
+ const configPath = path.join(hiveMindDir, 'config.json');
119
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
120
+
121
+ // Initialize SQLite database
122
+ const dbPath = path.join(hiveMindDir, 'hive.db');
123
+ const db = new sqlite3.Database(dbPath);
124
+
125
+ await new Promise((resolve, reject) => {
126
+ db.serialize(() => {
127
+ // Create tables
128
+ db.run(`
129
+ CREATE TABLE IF NOT EXISTS swarms (
130
+ id TEXT PRIMARY KEY,
131
+ name TEXT NOT NULL,
132
+ objective TEXT,
133
+ status TEXT DEFAULT 'active',
134
+ queen_type TEXT DEFAULT 'strategic',
135
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
136
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
137
+ )
138
+ `);
139
+
140
+ db.run(`
141
+ CREATE TABLE IF NOT EXISTS agents (
142
+ id TEXT PRIMARY KEY,
143
+ swarm_id TEXT,
144
+ name TEXT NOT NULL,
145
+ type TEXT NOT NULL,
146
+ role TEXT,
147
+ status TEXT DEFAULT 'idle',
148
+ capabilities TEXT,
149
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
150
+ FOREIGN KEY (swarm_id) REFERENCES swarms(id)
151
+ )
152
+ `);
153
+
154
+ db.run(`
155
+ CREATE TABLE IF NOT EXISTS tasks (
156
+ id TEXT PRIMARY KEY,
157
+ swarm_id TEXT,
158
+ description TEXT,
159
+ status TEXT DEFAULT 'pending',
160
+ result TEXT,
161
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
162
+ FOREIGN KEY (swarm_id) REFERENCES swarms(id)
163
+ )
164
+ `);
165
+
166
+ db.run(`
167
+ CREATE TABLE IF NOT EXISTS collective_memory (
168
+ id TEXT PRIMARY KEY,
169
+ swarm_id TEXT,
170
+ key TEXT NOT NULL,
171
+ value TEXT,
172
+ ttl INTEGER,
173
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
174
+ FOREIGN KEY (swarm_id) REFERENCES swarms(id)
175
+ )
176
+ `);
177
+
178
+ db.close((err) => {
179
+ if (err) reject(err);
180
+ else resolve();
181
+ });
182
+ });
183
+ });
184
+ }
185
+
186
+ // Enhanced swarm creation with better UX
187
+ async function createSwarm(objective, config) {
188
+ try {
189
+ // Simulate swarm creation with progress indication
190
+ const steps = [
191
+ 'Initializing swarm topology...',
192
+ 'Spawning Queen coordinator...',
193
+ 'Creating worker agents...',
194
+ 'Establishing communication protocols...',
195
+ 'Setting up collective memory...',
196
+ 'Activating swarm intelligence...',
197
+ ];
198
+
199
+ for (let i = 0; i < steps.length; i++) {
200
+ process.stdout.write(chalk.gray(` ${steps[i]} `));
201
+ await new Promise((resolve) => setTimeout(resolve, 500)); // Simulate work
202
+ console.log(chalk.green('✓'));
203
+ }
204
+
205
+ const swarmId = `swarm-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
206
+ const queenId = `queen-${Date.now()}`;
207
+
208
+ // Open database
209
+ const dbPath = path.join(process.cwd(), '.hive-mind', 'hive.db');
210
+ const db = new sqlite3.Database(dbPath);
211
+
212
+ await new Promise((resolve, reject) => {
213
+ db.serialize(() => {
214
+ // Create swarm record
215
+ const insertSwarm = db.prepare(`
216
+ INSERT INTO swarms (id, name, objective, status, queen_type, created_at, updated_at)
217
+ VALUES (?, ?, ?, ?, ?, ?, ?)
218
+ `);
219
+
220
+ insertSwarm.run(
221
+ swarmId,
222
+ `hive-${Date.now()}`,
223
+ objective,
224
+ 'active',
225
+ config.coordination,
226
+ new Date().toISOString(),
227
+ new Date().toISOString(),
228
+ );
229
+
230
+ // Create agents
231
+ const insertAgent = db.prepare(`
232
+ INSERT INTO agents (id, swarm_id, name, type, role, status, capabilities, created_at)
233
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
234
+ `);
235
+
236
+ // Create Queen
237
+ insertAgent.run(
238
+ queenId,
239
+ swarmId,
240
+ 'Queen Coordinator',
241
+ 'coordinator',
242
+ 'queen',
243
+ 'active',
244
+ JSON.stringify(['orchestration', 'strategy', 'coordination']),
245
+ new Date().toISOString(),
246
+ );
247
+
248
+ // Create worker agents
249
+ const workerTypes = ['researcher', 'coder', 'analyst', 'tester'];
250
+ for (let i = 0; i < config.agents - 1; i++) {
251
+ const agentType = workerTypes[i % workerTypes.length];
252
+ insertAgent.run(
253
+ `agent-${Date.now()}-${i}`,
254
+ swarmId,
255
+ `${agentType.charAt(0).toUpperCase() + agentType.slice(1)} Worker ${i + 1}`,
256
+ agentType,
257
+ 'worker',
258
+ 'idle',
259
+ JSON.stringify([agentType, 'collaboration']),
260
+ new Date().toISOString(),
261
+ );
262
+ }
263
+
264
+ insertSwarm.finalize();
265
+ insertAgent.finalize();
266
+
267
+ db.close((err) => {
268
+ if (err) reject(err);
269
+ else resolve();
270
+ });
271
+ });
272
+ });
273
+
274
+ return { success: true, swarmId, queenId };
275
+ } catch (error) {
276
+ console.error('Error creating swarm:', error);
277
+ return { success: false, error: error.message };
278
+ }
279
+ }
280
+
281
+ module.exports = { runInteractiveWizard };