claude-flow-novice 2.0.3 ā 2.0.4
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.
- package/dist/src/cli/commands/guidance.js +487 -668
- package/dist/src/cli/commands/index-validate.js +18 -29
- package/dist/src/cli/commands/mcp-troubleshoot.js +230 -282
- package/dist/src/cli/commands/neural-goal-init.js +92 -125
- package/dist/src/cli/commands/swarm-exec.js +317 -393
- package/dist/src/cli/commands/swarm.js +1 -1
- package/dist/src/cli/commands/validate-framework.js +983 -1100
- package/dist/src/cli/commands/validate.js +144 -223
- package/dist/src/cli/simple-commands/__tests__/agent.test.js +265 -277
- package/dist/src/cli/simple-commands/__tests__/memory.test.js +6 -7
- package/dist/src/cli/simple-commands/__tests__/swarm.test.js +373 -356
- package/dist/src/cli/simple-commands/__tests__/task.test.js +6 -7
- package/dist/src/cli/simple-commands/agent.js +157 -193
- package/dist/src/cli/simple-commands/analysis.js +336 -446
- package/dist/src/cli/simple-commands/automation-executor.js +1095 -1339
- package/dist/src/cli/simple-commands/automation.js +481 -469
- package/dist/src/cli/simple-commands/batch-manager.js +261 -313
- package/dist/src/cli/simple-commands/claude-telemetry.js +241 -267
- package/dist/src/cli/simple-commands/claude-track.js +68 -90
- package/dist/src/cli/simple-commands/concurrent-display.js +266 -320
- package/dist/src/cli/simple-commands/config.js +245 -290
- package/dist/src/cli/simple-commands/coordination.js +182 -234
- package/dist/src/cli/simple-commands/enhanced-ui-views.js +812 -615
- package/dist/src/cli/simple-commands/enhanced-webui-complete.js +922 -981
- package/dist/src/cli/simple-commands/fix-hook-variables.js +274 -294
- package/dist/src/cli/simple-commands/github/gh-coordinator.js +378 -457
- package/dist/src/cli/simple-commands/github/github-api.js +535 -574
- package/dist/src/cli/simple-commands/github/init.js +276 -303
- package/dist/src/cli/simple-commands/github.js +222 -247
- package/dist/src/cli/simple-commands/goal.js +51 -63
- package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +208 -278
- package/dist/src/cli/simple-commands/hive-mind/communication.js +601 -696
- package/dist/src/cli/simple-commands/hive-mind/core.js +907 -979
- package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +406 -655
- package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1125 -1245
- package/dist/src/cli/simple-commands/hive-mind/memory.js +854 -1090
- package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +459 -574
- package/dist/src/cli/simple-commands/hive-mind/performance-test.js +263 -347
- package/dist/src/cli/simple-commands/hive-mind/queen.js +727 -768
- package/dist/src/cli/simple-commands/hive-mind/session-manager.js +745 -1049
- package/dist/src/cli/simple-commands/hive-mind-optimize.js +227 -283
- package/dist/src/cli/simple-commands/hive-mind-wizard.js +174 -217
- package/dist/src/cli/simple-commands/hive-mind.js +1842 -2283
- package/dist/src/cli/simple-commands/hive.js +90 -79
- package/dist/src/cli/simple-commands/hook-safety.js +431 -521
- package/dist/src/cli/simple-commands/hooks/session-start-soul.js +203 -254
- package/dist/src/cli/simple-commands/hooks.js +1064 -1204
- package/dist/src/cli/simple-commands/init/agent-copier.js +294 -319
- package/dist/src/cli/simple-commands/init/batch-init.js +496 -562
- package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +13 -19
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +13 -19
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +61 -88
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +125 -150
- package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +42 -49
- package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +43 -61
- package/dist/src/cli/simple-commands/init/copy-revised-templates.js +141 -147
- package/dist/src/cli/simple-commands/init/executable-wrapper.js +31 -44
- package/dist/src/cli/simple-commands/init/gitignore-updater.js +64 -90
- package/dist/src/cli/simple-commands/init/help.js +104 -107
- package/dist/src/cli/simple-commands/init/hive-mind-init.js +509 -528
- package/dist/src/cli/simple-commands/init/index.js +1510 -1759
- package/dist/src/cli/simple-commands/init/performance-monitor.js +234 -317
- package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +441 -504
- package/dist/src/cli/simple-commands/init/rollback/index.js +289 -364
- package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +652 -728
- package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +416 -481
- package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +369 -448
- package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +1 -2
- package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +122 -99
- package/dist/src/cli/simple-commands/init/sparc/workflows.js +32 -37
- package/dist/src/cli/simple-commands/init/sparc-structure.js +55 -62
- package/dist/src/cli/simple-commands/init/template-copier.js +421 -533
- package/dist/src/cli/simple-commands/init/templates/coordination-md.js +3 -6
- package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +344 -318
- package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +173 -218
- package/dist/src/cli/simple-commands/init/templates/github-safe.js +65 -75
- package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +3 -6
- package/dist/src/cli/simple-commands/init/templates/readme-files.js +2 -4
- package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +187 -230
- package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +53 -80
- package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +101 -85
- package/dist/src/cli/simple-commands/init/validation/config-validator.js +283 -330
- package/dist/src/cli/simple-commands/init/validation/health-checker.js +495 -561
- package/dist/src/cli/simple-commands/init/validation/index.js +302 -358
- package/dist/src/cli/simple-commands/init/validation/mode-validator.js +308 -359
- package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +389 -366
- package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +270 -268
- package/dist/src/cli/simple-commands/init/validation/test-runner.js +427 -447
- package/dist/src/cli/simple-commands/init.js +1 -2
- package/dist/src/cli/simple-commands/mcp-health.js +131 -158
- package/dist/src/cli/simple-commands/mcp-integration-layer.js +533 -634
- package/dist/src/cli/simple-commands/mcp.js +345 -400
- package/dist/src/cli/simple-commands/memory-consolidation.js +426 -537
- package/dist/src/cli/simple-commands/memory.js +247 -311
- package/dist/src/cli/simple-commands/migrate-hooks.js +39 -46
- package/dist/src/cli/simple-commands/monitor.js +294 -363
- package/dist/src/cli/simple-commands/neural.js +51 -65
- package/dist/src/cli/simple-commands/pair-autofix-only.js +538 -662
- package/dist/src/cli/simple-commands/pair-basic.js +528 -656
- package/dist/src/cli/simple-commands/pair-old.js +430 -543
- package/dist/src/cli/simple-commands/pair-working.js +615 -751
- package/dist/src/cli/simple-commands/pair.js +615 -751
- package/dist/src/cli/simple-commands/performance-hooks.js +83 -111
- package/dist/src/cli/simple-commands/performance-metrics.js +348 -433
- package/dist/src/cli/simple-commands/process-ui-enhanced.js +708 -787
- package/dist/src/cli/simple-commands/process-ui.js +230 -254
- package/dist/src/cli/simple-commands/realtime-update-system.js +525 -611
- package/dist/src/cli/simple-commands/sparc/architecture.js +1704 -1530
- package/dist/src/cli/simple-commands/sparc/commands.js +438 -516
- package/dist/src/cli/simple-commands/sparc/completion.js +1224 -1481
- package/dist/src/cli/simple-commands/sparc/coordinator.js +913 -978
- package/dist/src/cli/simple-commands/sparc/index.js +241 -298
- package/dist/src/cli/simple-commands/sparc/phase-base.js +314 -390
- package/dist/src/cli/simple-commands/sparc/pseudocode.js +965 -869
- package/dist/src/cli/simple-commands/sparc/refinement.js +980 -1273
- package/dist/src/cli/simple-commands/sparc/specification.js +559 -645
- package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/index.js +47 -55
- package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/swarm.js +101 -87
- package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
- package/dist/src/cli/simple-commands/sparc.js +465 -493
- package/dist/src/cli/simple-commands/start-ui.js +108 -132
- package/dist/src/cli/simple-commands/start-wrapper.js +240 -268
- package/dist/src/cli/simple-commands/start.js +1 -1
- package/dist/src/cli/simple-commands/status.js +254 -275
- package/dist/src/cli/simple-commands/stream-chain-clean.js +128 -171
- package/dist/src/cli/simple-commands/stream-chain-fixed.js +61 -82
- package/dist/src/cli/simple-commands/stream-chain-real.js +267 -331
- package/dist/src/cli/simple-commands/stream-chain-working.js +211 -263
- package/dist/src/cli/simple-commands/stream-chain.js +260 -318
- package/dist/src/cli/simple-commands/stream-processor.js +290 -315
- package/dist/src/cli/simple-commands/swarm-executor.js +189 -222
- package/dist/src/cli/simple-commands/swarm-metrics-integration.js +208 -300
- package/dist/src/cli/simple-commands/swarm-ui.js +623 -703
- package/dist/src/cli/simple-commands/swarm-webui-integration.js +258 -286
- package/dist/src/cli/simple-commands/swarm.js +887 -1082
- package/dist/src/cli/simple-commands/task.js +161 -206
- package/dist/src/cli/simple-commands/timestamp-fix.js +59 -89
- package/dist/src/cli/simple-commands/token-tracker.js +258 -316
- package/dist/src/cli/simple-commands/tool-execution-framework.js +433 -519
- package/dist/src/cli/simple-commands/train-and-stream.js +275 -331
- package/dist/src/cli/simple-commands/training-pipeline.js +619 -725
- package/dist/src/cli/simple-commands/training.js +170 -227
- package/dist/src/cli/simple-commands/verification-hooks.js +261 -284
- package/dist/src/cli/simple-commands/verification-integration.js +389 -417
- package/dist/src/cli/simple-commands/verification-training-integration.js +486 -606
- package/dist/src/cli/simple-commands/verification.js +493 -513
- package/dist/src/cli/simple-commands/web-server.js +766 -836
- package/dist/src/cli/simple-commands/webui-validator.js +106 -124
- package/dist/src/coordination/event-bus/demo-wasm-integration.js +212 -251
- package/dist/src/coordination/event-bus/qe-event-bus.js +608 -748
- package/dist/src/coordination/event-bus/qe-event-bus.test.js +379 -454
- package/dist/src/coordination/iteration-tracker.js +363 -454
- package/dist/src/enterprise/analytics-manager.js +1135 -0
- package/dist/src/enterprise/audit-manager.js +1115 -0
- package/dist/src/enterprise/cloud-manager.js +891 -0
- package/dist/src/enterprise/deployment-manager.js +966 -0
- package/dist/src/enterprise/index.js +6 -0
- package/dist/src/enterprise/project-manager.js +584 -0
- package/dist/src/enterprise/security-manager.js +991 -0
- package/dist/src/index.js +1 -1
- package/dist/src/mcp/DEPRECATED.js +46 -60
- package/dist/src/mcp/fixes/mcp-error-fixes.js +115 -134
- package/dist/src/mcp/implementations/agent-tracker.js +114 -128
- package/dist/src/mcp/implementations/daa-tools.js +292 -350
- package/dist/src/mcp/implementations/workflow-tools.js +329 -361
- package/dist/src/mcp/mcp-config-manager.js +1183 -1331
- package/dist/src/mcp/mcp-server-novice-simplified.js +11 -17
- package/dist/src/mcp/mcp-server-novice.js +11 -17
- package/dist/src/mcp/mcp-server-sdk.js +11 -17
- package/dist/src/mcp/mcp-server.js +1620 -1484
- package/dist/src/mcp/ruv-swarm-wrapper.js +209 -239
- package/dist/src/memory/advanced-serializer.js +609 -589
- package/dist/src/memory/enhanced-examples.js +220 -305
- package/dist/src/memory/enhanced-memory.js +295 -336
- package/dist/src/memory/enhanced-session-serializer.js +408 -492
- package/dist/src/memory/fallback-memory-system.js +900 -1021
- package/dist/src/memory/fallback-store.js +93 -131
- package/dist/src/memory/high-performance-serialization.js +592 -730
- package/dist/src/memory/in-memory-store.js +161 -213
- package/dist/src/memory/index.js +123 -157
- package/dist/src/memory/lock-free-structures.js +578 -764
- package/dist/src/memory/memory-mapped-persistence.js +585 -766
- package/dist/src/memory/memory-pressure-manager.js +569 -707
- package/dist/src/memory/migration.js +358 -445
- package/dist/src/memory/shared-memory.js +641 -768
- package/dist/src/memory/sqlite-store.js +245 -325
- package/dist/src/memory/sqlite-wrapper.js +122 -151
- package/dist/src/memory/swarm-memory.js +470 -603
- package/dist/src/memory/test-example.js +126 -134
- package/dist/src/memory/ultra-fast-memory-store.js +622 -821
- package/dist/src/memory/unified-memory-manager.js +356 -437
- package/dist/src/migration/index.js +92 -0
- package/dist/src/migration/logger.js +121 -0
- package/dist/src/migration/migration-analyzer.js +268 -0
- package/dist/src/migration/migration-runner.js +522 -0
- package/dist/src/migration/migration-validator.js +285 -0
- package/dist/src/migration/progress-reporter.js +150 -0
- package/dist/src/migration/rollback-manager.js +321 -0
- package/dist/src/migration/tests/migration-system.test.js +7 -0
- package/dist/src/migration/types.js +3 -0
- package/dist/src/swarm/CodeRefactoringSwarm.js +777 -952
- package/dist/src/swarm/__tests__/integration.test.js +227 -0
- package/dist/src/swarm/__tests__/prompt-copier.test.js +344 -0
- package/dist/src/swarm/advanced-orchestrator.js +1095 -0
- package/dist/src/swarm/claude-code-interface.js +961 -0
- package/dist/src/swarm/claude-flow-executor.js +229 -0
- package/dist/src/swarm/consensus-coordinator.js +475 -0
- package/dist/src/swarm/coordinator.js +2993 -0
- package/dist/src/swarm/direct-executor.js +1180 -0
- package/dist/src/swarm/error-recovery/advanced-error-detection.js +691 -0
- package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +998 -0
- package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +1197 -0
- package/dist/src/swarm/error-recovery/recovery-monitoring.js +772 -0
- package/dist/src/swarm/error-recovery/resilience-architecture.js +714 -0
- package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +1319 -0
- package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +808 -0
- package/dist/src/swarm/executor-v2.js +322 -0
- package/dist/src/swarm/executor.js +815 -0
- package/dist/src/swarm/hive-mind-integration.js +703 -0
- package/dist/src/swarm/index.js +41 -0
- package/dist/src/swarm/json-output-aggregator.js +267 -0
- package/dist/src/swarm/large-scale-coordinator.js +542 -0
- package/dist/src/swarm/mcp-integration-wrapper.js +628 -0
- package/dist/src/swarm/memory.js +1117 -0
- package/dist/src/swarm/optimizations/__tests__/optimization.test.js +348 -0
- package/dist/src/swarm/optimizations/async-file-manager.js +285 -0
- package/dist/src/swarm/optimizations/circular-buffer.js +162 -0
- package/dist/src/swarm/optimizations/connection-pool.js +244 -0
- package/dist/src/swarm/optimizations/index.js +28 -0
- package/dist/src/swarm/optimizations/optimized-executor.js +320 -0
- package/dist/src/swarm/optimizations/ttl-map.js +234 -0
- package/dist/src/swarm/prompt-cli.js +200 -0
- package/dist/src/swarm/prompt-copier-enhanced.js +202 -0
- package/dist/src/swarm/prompt-copier.js +381 -0
- package/dist/src/swarm/prompt-manager.js +295 -0
- package/dist/src/swarm/prompt-utils.js +310 -0
- package/dist/src/swarm/result-aggregator.js +718 -0
- package/dist/src/swarm/sparc-executor.js +1568 -0
- package/dist/src/swarm/strategies/auto.js +758 -0
- package/dist/src/swarm/strategies/base.js +128 -0
- package/dist/src/swarm/strategies/research.js +914 -0
- package/dist/src/swarm/strategies/strategy-metrics-patch.js +2 -0
- package/dist/src/swarm/types.js +52 -0
- package/dist/src/swarm/workers/copy-worker.js +56 -0
- package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +332 -400
- package/dist/src/utils/github-cli-safe.js +56 -64
- package/dist/src/utils/github-cli-safety-wrapper.js +451 -546
- package/dist/src/utils/npx-isolated-cache.js +104 -119
- package/dist/src/utils/preference-manager.js +622 -652
- package/dist/src/utils/timezone-utils.js +86 -105
- package/dist/src/validators/epic-config-schema.js +214 -0
- package/dist/src/validators/index.js +10 -0
- package/dist/src/validators/swarm-init-validator.js +259 -0
- package/dist/src/validators/todowrite-batching-validator.js +215 -0
- package/dist/src/validators/todowrite-integration.js +187 -0
- package/package.json +2 -2
|
@@ -2,24 +2,16 @@
|
|
|
2
2
|
* Hive Mind Database Optimization Command
|
|
3
3
|
*
|
|
4
4
|
* Safe optimization of existing hive mind databases without breaking compatibility
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import inquirer from 'inquirer';
|
|
12
|
-
import {
|
|
13
|
-
optimizeHiveMindDatabase,
|
|
14
|
-
performMaintenance,
|
|
15
|
-
generateOptimizationReport,
|
|
16
|
-
} from './hive-mind/db-optimizer.js';
|
|
17
|
-
|
|
5
|
+
*/ import { cwd, exit } from "../node-compat.js";
|
|
6
|
+
import path from "path";
|
|
7
|
+
import { existsSync } from "fs";
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
import inquirer from "inquirer";
|
|
10
|
+
import { optimizeHiveMindDatabase, performMaintenance, generateOptimizationReport } from "./hive-mind/db-optimizer.js";
|
|
18
11
|
/**
|
|
19
12
|
* Show help for hive-mind-optimize command
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
console.log(`
|
|
13
|
+
*/ function showOptimizeHelp() {
|
|
14
|
+
console.log(`
|
|
23
15
|
${chalk.yellow('š§ Hive Mind Database Optimization')}
|
|
24
16
|
|
|
25
17
|
${chalk.bold('USAGE:')}
|
|
@@ -64,298 +56,250 @@ ${chalk.bold('SAFETY:')}
|
|
|
64
56
|
⢠Rollback capability on errors
|
|
65
57
|
`);
|
|
66
58
|
}
|
|
67
|
-
|
|
68
59
|
/**
|
|
69
60
|
* Main optimization command handler
|
|
70
|
-
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
verbose: flags.verbose || false,
|
|
104
|
-
});
|
|
105
|
-
} else {
|
|
106
|
-
await interactiveOptimization(dbPath, flags);
|
|
107
|
-
}
|
|
61
|
+
*/ export async function hiveMindOptimizeCommand(args, flags) {
|
|
62
|
+
// Show help if requested
|
|
63
|
+
if (flags.help || flags.h) {
|
|
64
|
+
showOptimizeHelp();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// Check if hive mind is initialized
|
|
68
|
+
const hiveMindDir = path.join(cwd(), '.hive-mind');
|
|
69
|
+
const dbPath = path.join(hiveMindDir, 'hive.db');
|
|
70
|
+
if (!existsSync(dbPath)) {
|
|
71
|
+
console.error(chalk.red('Error: Hive Mind database not found'));
|
|
72
|
+
console.log('Run "claude-flow-novice hive-mind init" first');
|
|
73
|
+
exit(1);
|
|
74
|
+
}
|
|
75
|
+
// Generate report only
|
|
76
|
+
if (flags.report) {
|
|
77
|
+
await generateReport(dbPath);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// Auto mode or interactive
|
|
81
|
+
if (flags.auto) {
|
|
82
|
+
await runOptimization(dbPath, {
|
|
83
|
+
vacuum: flags.vacuum || false,
|
|
84
|
+
cleanMemory: flags['clean-memory'] || false,
|
|
85
|
+
archiveTasks: flags['archive-tasks'] || false,
|
|
86
|
+
checkIntegrity: flags['check-integrity'] || false,
|
|
87
|
+
memoryRetentionDays: flags['memory-days'] || 30,
|
|
88
|
+
taskRetentionDays: flags['task-days'] || 7,
|
|
89
|
+
verbose: flags.verbose || false
|
|
90
|
+
});
|
|
91
|
+
} else {
|
|
92
|
+
await interactiveOptimization(dbPath, flags);
|
|
93
|
+
}
|
|
108
94
|
}
|
|
109
|
-
|
|
110
95
|
/**
|
|
111
96
|
* Interactive optimization wizard
|
|
112
|
-
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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;
|
|
97
|
+
*/ async function interactiveOptimization(dbPath, flags) {
|
|
98
|
+
console.log(chalk.yellow('\nš§ Hive Mind Database Optimization Wizard\n'));
|
|
99
|
+
// Generate current report
|
|
100
|
+
const report = await generateOptimizationReport(dbPath);
|
|
101
|
+
if (report) {
|
|
102
|
+
console.log(chalk.cyan('Current Database Status:'));
|
|
103
|
+
console.log(` Schema Version: ${report.schemaVersion}`);
|
|
104
|
+
console.log(` Tables: ${Object.keys(report.tables).length}`);
|
|
105
|
+
console.log(` Indexes: ${report.indexes.length}`);
|
|
106
|
+
let totalSize = 0;
|
|
107
|
+
let totalRows = 0;
|
|
108
|
+
Object.entries(report.tables).forEach(([name, stats])=>{
|
|
109
|
+
totalSize += stats.sizeBytes;
|
|
110
|
+
totalRows += stats.rowCount;
|
|
111
|
+
});
|
|
112
|
+
console.log(` Total Size: ${(totalSize / 1024 / 1024).toFixed(2)} MB`);
|
|
113
|
+
console.log(` Total Rows: ${totalRows.toLocaleString()}`);
|
|
114
|
+
console.log('');
|
|
156
115
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
{
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
116
|
+
// Check what optimizations are needed
|
|
117
|
+
const schemaVersion = report?.schemaVersion || 1.0;
|
|
118
|
+
const needsOptimization = schemaVersion < 1.5;
|
|
119
|
+
if (!needsOptimization) {
|
|
120
|
+
console.log(chalk.green('ā Database is already fully optimized!\n'));
|
|
121
|
+
const { maintenance } = await inquirer.prompt([
|
|
122
|
+
{
|
|
123
|
+
type: 'confirm',
|
|
124
|
+
name: 'maintenance',
|
|
125
|
+
message: 'Would you like to perform maintenance tasks?',
|
|
126
|
+
default: true
|
|
127
|
+
}
|
|
128
|
+
]);
|
|
129
|
+
if (!maintenance) {
|
|
130
|
+
console.log(chalk.gray('No changes made.'));
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
} else {
|
|
134
|
+
console.log(chalk.yellow(`ā Database can be optimized from version ${schemaVersion} to 1.5\n`));
|
|
135
|
+
}
|
|
136
|
+
// Ask for optimization options
|
|
137
|
+
const answers = await inquirer.prompt([
|
|
176
138
|
{
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
139
|
+
type: 'checkbox',
|
|
140
|
+
name: 'operations',
|
|
141
|
+
message: 'Select operations to perform:',
|
|
142
|
+
choices: [
|
|
143
|
+
{
|
|
144
|
+
name: 'Apply performance optimizations',
|
|
145
|
+
value: 'optimize',
|
|
146
|
+
checked: needsOptimization,
|
|
147
|
+
disabled: !needsOptimization
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'Clean old memory entries',
|
|
151
|
+
value: 'cleanMemory',
|
|
152
|
+
checked: true
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'Archive completed tasks',
|
|
156
|
+
value: 'archiveTasks',
|
|
157
|
+
checked: true
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: 'Vacuum database (requires exclusive access)',
|
|
161
|
+
value: 'vacuum',
|
|
162
|
+
checked: false
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Check database integrity',
|
|
166
|
+
value: 'checkIntegrity',
|
|
167
|
+
checked: true
|
|
168
|
+
}
|
|
169
|
+
]
|
|
180
170
|
},
|
|
181
171
|
{
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
172
|
+
type: 'number',
|
|
173
|
+
name: 'memoryDays',
|
|
174
|
+
message: 'Memory retention days:',
|
|
175
|
+
default: 30,
|
|
176
|
+
when: (answers)=>answers.operations.includes('cleanMemory')
|
|
185
177
|
},
|
|
186
178
|
{
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
179
|
+
type: 'number',
|
|
180
|
+
name: 'taskDays',
|
|
181
|
+
message: 'Task retention days:',
|
|
182
|
+
default: 7,
|
|
183
|
+
when: (answers)=>answers.operations.includes('archiveTasks')
|
|
190
184
|
},
|
|
191
185
|
{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
{
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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);
|
|
186
|
+
type: 'confirm',
|
|
187
|
+
name: 'confirm',
|
|
188
|
+
message: 'Proceed with optimization?',
|
|
189
|
+
default: true
|
|
190
|
+
}
|
|
191
|
+
]);
|
|
192
|
+
if (!answers.confirm) {
|
|
193
|
+
console.log(chalk.gray('Optimization cancelled.'));
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
// Create backup if doing major operations
|
|
197
|
+
if (answers.operations.includes('optimize') || answers.operations.includes('vacuum')) {
|
|
198
|
+
console.log(chalk.blue('\nš¦ Creating backup...'));
|
|
199
|
+
await createBackup(dbPath);
|
|
200
|
+
}
|
|
201
|
+
// Run optimization
|
|
202
|
+
const options = {
|
|
203
|
+
vacuum: answers.operations.includes('vacuum'),
|
|
204
|
+
cleanMemory: answers.operations.includes('cleanMemory'),
|
|
205
|
+
archiveTasks: answers.operations.includes('archiveTasks'),
|
|
206
|
+
checkIntegrity: answers.operations.includes('checkIntegrity'),
|
|
207
|
+
memoryRetentionDays: answers.memoryDays || 30,
|
|
208
|
+
taskRetentionDays: answers.taskDays || 7,
|
|
209
|
+
verbose: flags.verbose || false
|
|
210
|
+
};
|
|
211
|
+
await runOptimization(dbPath, options);
|
|
243
212
|
}
|
|
244
|
-
|
|
245
213
|
/**
|
|
246
214
|
* Run database optimization
|
|
247
|
-
*/
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
console.log(chalk.blue('\n
|
|
262
|
-
await
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
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-novice hive-mind metrics');
|
|
274
|
-
console.log(' ⢠Schedule regular maintenance: claude-flow-novice hive-mind-optimize --auto');
|
|
275
|
-
console.log(' ⢠Check swarm status: claude-flow-novice hive-mind status');
|
|
215
|
+
*/ async function runOptimization(dbPath, options) {
|
|
216
|
+
console.log(chalk.blue('\nš Starting optimization...\n'));
|
|
217
|
+
// Run schema optimization
|
|
218
|
+
const result = await optimizeHiveMindDatabase(dbPath, options);
|
|
219
|
+
if (!result.success) {
|
|
220
|
+
console.error(chalk.red('\nā Optimization failed:', result.error));
|
|
221
|
+
exit(1);
|
|
222
|
+
}
|
|
223
|
+
// Run maintenance tasks
|
|
224
|
+
if (options.cleanMemory || options.archiveTasks || options.checkIntegrity) {
|
|
225
|
+
console.log(chalk.blue('\nš§¹ Running maintenance tasks...\n'));
|
|
226
|
+
await performMaintenance(dbPath, options);
|
|
227
|
+
}
|
|
228
|
+
// Generate final report
|
|
229
|
+
console.log(chalk.blue('\nš Generating optimization report...\n'));
|
|
230
|
+
await generateReport(dbPath);
|
|
231
|
+
console.log(chalk.green('\nā
Optimization complete!\n'));
|
|
232
|
+
// Show tips
|
|
233
|
+
console.log(chalk.bold('š” Tips:'));
|
|
234
|
+
console.log(' ⢠Monitor performance with: claude-flow-novice hive-mind metrics');
|
|
235
|
+
console.log(' ⢠Schedule regular maintenance: claude-flow-novice hive-mind-optimize --auto');
|
|
236
|
+
console.log(' ⢠Check swarm status: claude-flow-novice hive-mind status');
|
|
276
237
|
}
|
|
277
|
-
|
|
278
238
|
/**
|
|
279
239
|
* Generate and display optimization report
|
|
280
|
-
*/
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
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-novice 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'));
|
|
240
|
+
*/ async function generateReport(dbPath) {
|
|
241
|
+
const report = await generateOptimizationReport(dbPath);
|
|
242
|
+
if (!report) {
|
|
243
|
+
console.error(chalk.red('Failed to generate report'));
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
console.log(chalk.bold('\nš Database Optimization Report\n'));
|
|
247
|
+
console.log(chalk.cyan('Schema Version:'), report.schemaVersion);
|
|
248
|
+
console.log(chalk.cyan('Indexes:'), report.indexes.length);
|
|
249
|
+
console.log(chalk.cyan('\nTable Statistics:'));
|
|
250
|
+
Object.entries(report.tables).forEach(([name, stats])=>{
|
|
251
|
+
const sizeMB = (stats.sizeBytes / 1024 / 1024).toFixed(2);
|
|
252
|
+
console.log(` ${name}: ${stats.rowCount.toLocaleString()} rows (${sizeMB} MB)`);
|
|
253
|
+
});
|
|
254
|
+
if (report.performance.avgTaskCompletionMinutes > 0) {
|
|
255
|
+
console.log(chalk.cyan('\nPerformance Metrics:'));
|
|
256
|
+
console.log(` Avg Task Completion: ${report.performance.avgTaskCompletionMinutes.toFixed(1)} minutes`);
|
|
323
257
|
}
|
|
324
|
-
|
|
325
|
-
|
|
258
|
+
// Optimization suggestions
|
|
259
|
+
console.log(chalk.cyan('\nOptimization Status:'));
|
|
260
|
+
if (report.schemaVersion >= 1.5) {
|
|
261
|
+
console.log(chalk.green(' ā Database is fully optimized'));
|
|
262
|
+
} else {
|
|
263
|
+
console.log(chalk.yellow(` ā Can be upgraded from v${report.schemaVersion} to v1.5`));
|
|
264
|
+
console.log(chalk.gray(' Run: claude-flow-novice hive-mind-optimize'));
|
|
265
|
+
}
|
|
266
|
+
// Check for large tables
|
|
267
|
+
const largeMemoryTable = report.tables.collective_memory?.rowCount > 10000;
|
|
268
|
+
const largeTaskTable = report.tables.tasks?.rowCount > 50000;
|
|
269
|
+
if (largeMemoryTable || largeTaskTable) {
|
|
270
|
+
console.log(chalk.cyan('\nMaintenance Recommendations:'));
|
|
271
|
+
if (largeMemoryTable) {
|
|
272
|
+
console.log(chalk.yellow(' ⢠Consider cleaning old memory entries'));
|
|
273
|
+
}
|
|
274
|
+
if (largeTaskTable) {
|
|
275
|
+
console.log(chalk.yellow(' ⢠Consider archiving completed tasks'));
|
|
276
|
+
}
|
|
326
277
|
}
|
|
327
|
-
}
|
|
328
278
|
}
|
|
329
|
-
|
|
330
279
|
/**
|
|
331
280
|
* Create database backup
|
|
332
|
-
*/
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
if (!proceed) {
|
|
355
|
-
exit(1);
|
|
281
|
+
*/ async function createBackup(dbPath) {
|
|
282
|
+
try {
|
|
283
|
+
const { execSync } = await import("child_process");
|
|
284
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
285
|
+
const backupPath = dbPath.replace('.db', `-backup-${timestamp}.db`);
|
|
286
|
+
execSync(`cp "${dbPath}" "${backupPath}"`);
|
|
287
|
+
console.log(chalk.green(`ā Backup created: ${path.basename(backupPath)}`));
|
|
288
|
+
return backupPath;
|
|
289
|
+
} catch (error) {
|
|
290
|
+
console.error(chalk.yellow('ā Backup failed:', error.message));
|
|
291
|
+
const { proceed } = await inquirer.prompt([
|
|
292
|
+
{
|
|
293
|
+
type: 'confirm',
|
|
294
|
+
name: 'proceed',
|
|
295
|
+
message: 'Continue without backup?',
|
|
296
|
+
default: false
|
|
297
|
+
}
|
|
298
|
+
]);
|
|
299
|
+
if (!proceed) {
|
|
300
|
+
exit(1);
|
|
301
|
+
}
|
|
356
302
|
}
|
|
357
|
-
}
|
|
358
303
|
}
|
|
359
|
-
|
|
360
304
|
// Export for CLI
|
|
361
305
|
export default hiveMindOptimizeCommand;
|