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
|
@@ -1,117 +1,127 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hive Mind Initialization Module for Claude Flow v2.0.0
|
|
3
3
|
* Provides comprehensive hive-mind system setup for the init process
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import path from 'path';
|
|
9
|
-
import { printSuccess, printError, printWarning } from '../../utils.js';
|
|
10
|
-
|
|
4
|
+
*/ import { promises as fs } from "fs";
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import path from "path";
|
|
7
|
+
import { printSuccess, printError } from "../../utils.js";
|
|
11
8
|
/**
|
|
12
9
|
* Default hive-mind configuration
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
adaptiveLearning: true,
|
|
35
|
-
},
|
|
36
|
-
workers: {
|
|
37
|
-
maxWorkers: 8,
|
|
38
|
-
defaultCapabilities: ['code-analysis', 'implementation', 'testing', 'documentation'],
|
|
39
|
-
autoScale: true,
|
|
40
|
-
scaleThreshold: 0.8,
|
|
41
|
-
specializedRoles: ['architect', 'researcher', 'implementer', 'tester', 'reviewer'],
|
|
42
|
-
},
|
|
43
|
-
consensus: {
|
|
44
|
-
algorithm: 'weighted-majority',
|
|
45
|
-
minimumParticipants: 3,
|
|
46
|
-
timeoutMs: 30000,
|
|
47
|
-
requiredConsensus: 0.67,
|
|
48
|
-
votingMethods: ['majority', 'weighted', 'unanimous', 'quorum'],
|
|
49
|
-
},
|
|
50
|
-
memory: {
|
|
51
|
-
enabled: true,
|
|
52
|
-
size: 100,
|
|
53
|
-
persistenceMode: 'database',
|
|
54
|
-
sharedMemoryNamespace: 'hive-collective',
|
|
55
|
-
retentionDays: 30,
|
|
56
|
-
compressionEnabled: true,
|
|
57
|
-
encryptionEnabled: false,
|
|
58
|
-
},
|
|
59
|
-
communication: {
|
|
60
|
-
protocol: 'secure-messaging',
|
|
61
|
-
encryption: false,
|
|
62
|
-
messageQueue: {
|
|
63
|
-
maxSize: 1000,
|
|
64
|
-
priorityLevels: 5,
|
|
65
|
-
batchProcessing: true,
|
|
10
|
+
*/ export const DEFAULT_HIVE_CONFIG = {
|
|
11
|
+
version: '2.0.0',
|
|
12
|
+
initialized: new Date().toISOString(),
|
|
13
|
+
system: {
|
|
14
|
+
enabled: true,
|
|
15
|
+
autoStart: false,
|
|
16
|
+
maxRetries: 3,
|
|
17
|
+
healthCheckInterval: 30000
|
|
18
|
+
},
|
|
19
|
+
queen: {
|
|
20
|
+
type: 'strategic',
|
|
21
|
+
name: 'Queen-Genesis',
|
|
22
|
+
capabilities: [
|
|
23
|
+
'task-decomposition',
|
|
24
|
+
'consensus-building',
|
|
25
|
+
'resource-allocation',
|
|
26
|
+
'quality-assessment',
|
|
27
|
+
'conflict-resolution'
|
|
28
|
+
],
|
|
29
|
+
decisionThreshold: 0.75,
|
|
30
|
+
adaptiveLearning: true
|
|
66
31
|
},
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
32
|
+
workers: {
|
|
33
|
+
maxWorkers: 8,
|
|
34
|
+
defaultCapabilities: [
|
|
35
|
+
'code-analysis',
|
|
36
|
+
'implementation',
|
|
37
|
+
'testing',
|
|
38
|
+
'documentation'
|
|
39
|
+
],
|
|
40
|
+
autoScale: true,
|
|
41
|
+
scaleThreshold: 0.8,
|
|
42
|
+
specializedRoles: [
|
|
43
|
+
'architect',
|
|
44
|
+
'researcher',
|
|
45
|
+
'implementer',
|
|
46
|
+
'tester',
|
|
47
|
+
'reviewer'
|
|
48
|
+
]
|
|
81
49
|
},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
50
|
+
consensus: {
|
|
51
|
+
algorithm: 'weighted-majority',
|
|
52
|
+
minimumParticipants: 3,
|
|
53
|
+
timeoutMs: 30000,
|
|
54
|
+
requiredConsensus: 0.67,
|
|
55
|
+
votingMethods: [
|
|
56
|
+
'majority',
|
|
57
|
+
'weighted',
|
|
58
|
+
'unanimous',
|
|
59
|
+
'quorum'
|
|
60
|
+
]
|
|
87
61
|
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
62
|
+
memory: {
|
|
63
|
+
enabled: true,
|
|
64
|
+
size: 100,
|
|
65
|
+
persistenceMode: 'database',
|
|
66
|
+
sharedMemoryNamespace: 'hive-collective',
|
|
67
|
+
retentionDays: 30,
|
|
68
|
+
compressionEnabled: true,
|
|
69
|
+
encryptionEnabled: false
|
|
92
70
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
71
|
+
communication: {
|
|
72
|
+
protocol: 'secure-messaging',
|
|
73
|
+
encryption: false,
|
|
74
|
+
messageQueue: {
|
|
75
|
+
maxSize: 1000,
|
|
76
|
+
priorityLevels: 5,
|
|
77
|
+
batchProcessing: true
|
|
78
|
+
},
|
|
79
|
+
channels: [
|
|
80
|
+
'task-coordination',
|
|
81
|
+
'knowledge-sharing',
|
|
82
|
+
'consensus-voting',
|
|
83
|
+
'error-reporting',
|
|
84
|
+
'performance-metrics'
|
|
85
|
+
]
|
|
106
86
|
},
|
|
107
|
-
|
|
87
|
+
integration: {
|
|
88
|
+
mcpTools: {
|
|
89
|
+
enabled: true,
|
|
90
|
+
parallel: true,
|
|
91
|
+
timeout: 60000,
|
|
92
|
+
fallbackMode: 'sequential'
|
|
93
|
+
},
|
|
94
|
+
claudeCode: {
|
|
95
|
+
enabled: true,
|
|
96
|
+
autoSpawn: true,
|
|
97
|
+
coordination: true,
|
|
98
|
+
sharedContext: true
|
|
99
|
+
},
|
|
100
|
+
github: {
|
|
101
|
+
enabled: false,
|
|
102
|
+
autoCommit: false,
|
|
103
|
+
branchStrategy: 'feature'
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
monitoring: {
|
|
107
|
+
enabled: true,
|
|
108
|
+
metricsCollection: true,
|
|
109
|
+
performanceTracking: true,
|
|
110
|
+
healthChecks: true,
|
|
111
|
+
alerting: {
|
|
112
|
+
enabled: false,
|
|
113
|
+
thresholds: {
|
|
114
|
+
errorRate: 0.1,
|
|
115
|
+
responseTime: 5000,
|
|
116
|
+
consensusFailures: 3
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
108
120
|
};
|
|
109
|
-
|
|
110
121
|
/**
|
|
111
122
|
* Database schema for hive-mind system
|
|
112
|
-
*/
|
|
113
|
-
|
|
114
|
-
swarms: `
|
|
123
|
+
*/ export const HIVE_DB_SCHEMA = {
|
|
124
|
+
swarms: `
|
|
115
125
|
CREATE TABLE IF NOT EXISTS swarms (
|
|
116
126
|
id TEXT PRIMARY KEY,
|
|
117
127
|
name TEXT NOT NULL,
|
|
@@ -125,7 +135,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
125
135
|
metadata TEXT DEFAULT '{}'
|
|
126
136
|
);
|
|
127
137
|
`,
|
|
128
|
-
|
|
138
|
+
agents: `
|
|
129
139
|
CREATE TABLE IF NOT EXISTS agents (
|
|
130
140
|
id TEXT PRIMARY KEY,
|
|
131
141
|
swarm_id TEXT,
|
|
@@ -143,7 +153,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
143
153
|
FOREIGN KEY (swarm_id) REFERENCES swarms (id)
|
|
144
154
|
);
|
|
145
155
|
`,
|
|
146
|
-
|
|
156
|
+
tasks: `
|
|
147
157
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
148
158
|
id TEXT PRIMARY KEY,
|
|
149
159
|
swarm_id TEXT,
|
|
@@ -163,7 +173,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
163
173
|
FOREIGN KEY (agent_id) REFERENCES agents (id)
|
|
164
174
|
);
|
|
165
175
|
`,
|
|
166
|
-
|
|
176
|
+
messages: `
|
|
167
177
|
CREATE TABLE IF NOT EXISTS messages (
|
|
168
178
|
id TEXT PRIMARY KEY,
|
|
169
179
|
swarm_id TEXT,
|
|
@@ -182,7 +192,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
182
192
|
FOREIGN KEY (recipient_id) REFERENCES agents (id)
|
|
183
193
|
);
|
|
184
194
|
`,
|
|
185
|
-
|
|
195
|
+
consensus_votes: `
|
|
186
196
|
CREATE TABLE IF NOT EXISTS consensus_votes (
|
|
187
197
|
id TEXT PRIMARY KEY,
|
|
188
198
|
swarm_id TEXT,
|
|
@@ -196,7 +206,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
196
206
|
FOREIGN KEY (agent_id) REFERENCES agents (id)
|
|
197
207
|
);
|
|
198
208
|
`,
|
|
199
|
-
|
|
209
|
+
knowledge_base: `
|
|
200
210
|
CREATE TABLE IF NOT EXISTS knowledge_base (
|
|
201
211
|
id TEXT PRIMARY KEY,
|
|
202
212
|
swarm_id TEXT,
|
|
@@ -213,7 +223,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
213
223
|
FOREIGN KEY (source_agent_id) REFERENCES agents (id)
|
|
214
224
|
);
|
|
215
225
|
`,
|
|
216
|
-
|
|
226
|
+
performance_metrics: `
|
|
217
227
|
CREATE TABLE IF NOT EXISTS performance_metrics (
|
|
218
228
|
id TEXT PRIMARY KEY,
|
|
219
229
|
entity_type TEXT NOT NULL,
|
|
@@ -224,7 +234,7 @@ export const HIVE_DB_SCHEMA = {
|
|
|
224
234
|
metadata TEXT DEFAULT '{}'
|
|
225
235
|
);
|
|
226
236
|
`,
|
|
227
|
-
|
|
237
|
+
sessions: `
|
|
228
238
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
229
239
|
id TEXT PRIMARY KEY,
|
|
230
240
|
swarm_id TEXT NOT NULL,
|
|
@@ -242,356 +252,337 @@ export const HIVE_DB_SCHEMA = {
|
|
|
242
252
|
child_pids TEXT,
|
|
243
253
|
FOREIGN KEY (swarm_id) REFERENCES swarms (id)
|
|
244
254
|
);
|
|
245
|
-
|
|
255
|
+
`
|
|
246
256
|
};
|
|
247
|
-
|
|
248
257
|
/**
|
|
249
258
|
* Create hive-mind directory structure
|
|
250
|
-
*/
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
259
|
+
*/ export async function createHiveMindDirectories(workingDir, dryRun = false) {
|
|
260
|
+
const directories = [
|
|
261
|
+
'.hive-mind',
|
|
262
|
+
'.hive-mind/sessions',
|
|
263
|
+
'.hive-mind/memory',
|
|
264
|
+
'.hive-mind/logs',
|
|
265
|
+
'.hive-mind/backups',
|
|
266
|
+
'.hive-mind/config',
|
|
267
|
+
'.hive-mind/templates',
|
|
268
|
+
'.hive-mind/exports'
|
|
269
|
+
];
|
|
270
|
+
console.log(' 📁 Creating hive-mind directory structure...');
|
|
271
|
+
for (const dir of directories){
|
|
272
|
+
const fullPath = path.join(workingDir, dir);
|
|
273
|
+
if (!dryRun) {
|
|
274
|
+
await fs.mkdir(fullPath, {
|
|
275
|
+
recursive: true
|
|
276
|
+
});
|
|
277
|
+
} else {
|
|
278
|
+
console.log(` [DRY RUN] Would create: ${dir}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
267
281
|
if (!dryRun) {
|
|
268
|
-
|
|
269
|
-
} else {
|
|
270
|
-
console.log(` [DRY RUN] Would create: ${dir}`);
|
|
282
|
+
console.log(' ✅ Hive-mind directories created');
|
|
271
283
|
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
if (!dryRun) {
|
|
275
|
-
console.log(' ✅ Hive-mind directories created');
|
|
276
|
-
}
|
|
277
284
|
}
|
|
278
|
-
|
|
279
285
|
/**
|
|
280
286
|
* Initialize collective memory database
|
|
281
|
-
*/
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
console.log(' [DRY RUN] Would insert default data and configurations');
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
try {
|
|
293
|
-
// Dynamic import for better-sqlite3 with proper error handling
|
|
294
|
-
let Database;
|
|
295
|
-
try {
|
|
296
|
-
Database = (await import('better-sqlite3')).default;
|
|
297
|
-
} catch (err) {
|
|
298
|
-
console.log(' ⚠️ better-sqlite3 not available, using fallback memory database');
|
|
299
|
-
return await createFallbackMemoryDatabase(workingDir);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
const hivePath = path.join(workingDir, '.hive-mind', 'hive.db');
|
|
303
|
-
const hiveDb = new Database(hivePath);
|
|
304
|
-
|
|
305
|
-
// Enable WAL mode for better concurrency
|
|
306
|
-
hiveDb.pragma('journal_mode = WAL');
|
|
307
|
-
hiveDb.pragma('synchronous = NORMAL');
|
|
308
|
-
hiveDb.pragma('cache_size = 1000');
|
|
309
|
-
hiveDb.pragma('temp_store = MEMORY');
|
|
310
|
-
|
|
311
|
-
// Create all tables
|
|
312
|
-
console.log(' 📋 Creating database schema...');
|
|
313
|
-
for (const [tableName, schema] of Object.entries(HIVE_DB_SCHEMA)) {
|
|
314
|
-
hiveDb.exec(schema);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
// Create indexes for performance
|
|
318
|
-
console.log(' 🔍 Creating performance indexes...');
|
|
319
|
-
const indexes = [
|
|
320
|
-
'CREATE INDEX IF NOT EXISTS idx_agents_swarm_id ON agents(swarm_id);',
|
|
321
|
-
'CREATE INDEX IF NOT EXISTS idx_agents_status ON agents(status);',
|
|
322
|
-
'CREATE INDEX IF NOT EXISTS idx_tasks_swarm_id ON tasks(swarm_id);',
|
|
323
|
-
'CREATE INDEX IF NOT EXISTS idx_tasks_agent_id ON tasks(agent_id);',
|
|
324
|
-
'CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);',
|
|
325
|
-
'CREATE INDEX IF NOT EXISTS idx_messages_swarm_id ON messages(swarm_id);',
|
|
326
|
-
'CREATE INDEX IF NOT EXISTS idx_messages_timestamp ON messages(timestamp);',
|
|
327
|
-
'CREATE INDEX IF NOT EXISTS idx_consensus_votes_swarm_id ON consensus_votes(swarm_id);',
|
|
328
|
-
'CREATE INDEX IF NOT EXISTS idx_knowledge_base_swarm_id ON knowledge_base(swarm_id);',
|
|
329
|
-
'CREATE INDEX IF NOT EXISTS idx_knowledge_base_category ON knowledge_base(category);',
|
|
330
|
-
'CREATE INDEX IF NOT EXISTS idx_performance_metrics_entity ON performance_metrics(entity_type, entity_id);',
|
|
331
|
-
'CREATE INDEX IF NOT EXISTS idx_sessions_swarm_id ON sessions(swarm_id);',
|
|
332
|
-
];
|
|
333
|
-
|
|
334
|
-
for (const index of indexes) {
|
|
335
|
-
hiveDb.exec(index);
|
|
287
|
+
*/ export async function initializeCollectiveMemoryDatabase(workingDir, dryRun = false) {
|
|
288
|
+
console.log(' 🧠 Initializing collective memory database...');
|
|
289
|
+
if (dryRun) {
|
|
290
|
+
console.log(' [DRY RUN] Would initialize hive.db with full schema');
|
|
291
|
+
console.log(' [DRY RUN] Would create indexes for performance optimization');
|
|
292
|
+
console.log(' [DRY RUN] Would insert default data and configurations');
|
|
293
|
+
return;
|
|
336
294
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
295
|
+
try {
|
|
296
|
+
// Dynamic import for better-sqlite3 with proper error handling
|
|
297
|
+
let Database;
|
|
298
|
+
try {
|
|
299
|
+
Database = (await import("better-sqlite3")).default;
|
|
300
|
+
} catch (err) {
|
|
301
|
+
console.log(' ⚠️ better-sqlite3 not available, using fallback memory database');
|
|
302
|
+
return await createFallbackMemoryDatabase(workingDir);
|
|
303
|
+
}
|
|
304
|
+
const hivePath = path.join(workingDir, '.hive-mind', 'hive.db');
|
|
305
|
+
const hiveDb = new Database(hivePath);
|
|
306
|
+
// Enable WAL mode for better concurrency
|
|
307
|
+
hiveDb.pragma('journal_mode = WAL');
|
|
308
|
+
hiveDb.pragma('synchronous = NORMAL');
|
|
309
|
+
hiveDb.pragma('cache_size = 1000');
|
|
310
|
+
hiveDb.pragma('temp_store = MEMORY');
|
|
311
|
+
// Create all tables
|
|
312
|
+
console.log(' 📋 Creating database schema...');
|
|
313
|
+
for (const [tableName, schema] of Object.entries(HIVE_DB_SCHEMA)){
|
|
314
|
+
hiveDb.exec(schema);
|
|
315
|
+
}
|
|
316
|
+
// Create indexes for performance
|
|
317
|
+
console.log(' 🔍 Creating performance indexes...');
|
|
318
|
+
const indexes = [
|
|
319
|
+
'CREATE INDEX IF NOT EXISTS idx_agents_swarm_id ON agents(swarm_id);',
|
|
320
|
+
'CREATE INDEX IF NOT EXISTS idx_agents_status ON agents(status);',
|
|
321
|
+
'CREATE INDEX IF NOT EXISTS idx_tasks_swarm_id ON tasks(swarm_id);',
|
|
322
|
+
'CREATE INDEX IF NOT EXISTS idx_tasks_agent_id ON tasks(agent_id);',
|
|
323
|
+
'CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);',
|
|
324
|
+
'CREATE INDEX IF NOT EXISTS idx_messages_swarm_id ON messages(swarm_id);',
|
|
325
|
+
'CREATE INDEX IF NOT EXISTS idx_messages_timestamp ON messages(timestamp);',
|
|
326
|
+
'CREATE INDEX IF NOT EXISTS idx_consensus_votes_swarm_id ON consensus_votes(swarm_id);',
|
|
327
|
+
'CREATE INDEX IF NOT EXISTS idx_knowledge_base_swarm_id ON knowledge_base(swarm_id);',
|
|
328
|
+
'CREATE INDEX IF NOT EXISTS idx_knowledge_base_category ON knowledge_base(category);',
|
|
329
|
+
'CREATE INDEX IF NOT EXISTS idx_performance_metrics_entity ON performance_metrics(entity_type, entity_id);',
|
|
330
|
+
'CREATE INDEX IF NOT EXISTS idx_sessions_swarm_id ON sessions(swarm_id);'
|
|
331
|
+
];
|
|
332
|
+
for (const index of indexes){
|
|
333
|
+
hiveDb.exec(index);
|
|
334
|
+
}
|
|
335
|
+
// Insert initial metadata
|
|
336
|
+
const insertInitialData = hiveDb.prepare(`
|
|
340
337
|
INSERT OR IGNORE INTO knowledge_base (id, category, title, content, confidence)
|
|
341
338
|
VALUES (?, ?, ?, ?, ?)
|
|
342
339
|
`);
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
340
|
+
const initialKnowledge = [
|
|
341
|
+
[
|
|
342
|
+
'init-1',
|
|
343
|
+
'system',
|
|
344
|
+
'Hive Mind System Initialization',
|
|
345
|
+
'Hive mind system successfully initialized with full database schema and configuration.',
|
|
346
|
+
1.0
|
|
347
|
+
],
|
|
348
|
+
[
|
|
349
|
+
'init-2',
|
|
350
|
+
'capabilities',
|
|
351
|
+
'Default Agent Capabilities',
|
|
352
|
+
JSON.stringify(DEFAULT_HIVE_CONFIG.workers.defaultCapabilities),
|
|
353
|
+
0.9
|
|
354
|
+
],
|
|
355
|
+
[
|
|
356
|
+
'init-3',
|
|
357
|
+
'consensus',
|
|
358
|
+
'Consensus Algorithms',
|
|
359
|
+
JSON.stringify(DEFAULT_HIVE_CONFIG.consensus),
|
|
360
|
+
1.0
|
|
361
|
+
],
|
|
362
|
+
[
|
|
363
|
+
'init-4',
|
|
364
|
+
'queen',
|
|
365
|
+
'Queen Configuration',
|
|
366
|
+
JSON.stringify(DEFAULT_HIVE_CONFIG.queen),
|
|
367
|
+
1.0
|
|
368
|
+
]
|
|
369
|
+
];
|
|
370
|
+
for (const knowledge of initialKnowledge){
|
|
371
|
+
insertInitialData.run(...knowledge);
|
|
372
|
+
}
|
|
373
|
+
hiveDb.close();
|
|
374
|
+
console.log(' ✅ Collective memory database initialized with full schema');
|
|
375
|
+
} catch (err) {
|
|
376
|
+
console.log(` ⚠️ Could not initialize hive database: ${err.message}`);
|
|
377
|
+
return await createFallbackMemoryDatabase(workingDir);
|
|
371
378
|
}
|
|
372
|
-
|
|
373
|
-
hiveDb.close();
|
|
374
|
-
console.log(' ✅ Collective memory database initialized with full schema');
|
|
375
|
-
} catch (err) {
|
|
376
|
-
console.log(` ⚠️ Could not initialize hive database: ${err.message}`);
|
|
377
|
-
return await createFallbackMemoryDatabase(workingDir);
|
|
378
|
-
}
|
|
379
379
|
}
|
|
380
|
-
|
|
381
380
|
/**
|
|
382
381
|
* Create fallback memory database when SQLite is not available
|
|
383
|
-
*/
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
const fallbackPath = path.join(workingDir, '.hive-mind', 'memory.json');
|
|
414
|
-
await fs.writeFile(fallbackPath, JSON.stringify(fallbackDb, null, 2), 'utf8');
|
|
415
|
-
|
|
416
|
-
console.log(' ✅ Fallback memory database created');
|
|
417
|
-
return true;
|
|
382
|
+
*/ async function createFallbackMemoryDatabase(workingDir) {
|
|
383
|
+
console.log(' 📄 Creating fallback JSON memory database...');
|
|
384
|
+
const fallbackDb = {
|
|
385
|
+
metadata: {
|
|
386
|
+
type: 'fallback',
|
|
387
|
+
initialized: new Date().toISOString(),
|
|
388
|
+
warning: 'Using JSON fallback - install better-sqlite3 for full database features'
|
|
389
|
+
},
|
|
390
|
+
swarms: [],
|
|
391
|
+
agents: [],
|
|
392
|
+
tasks: [],
|
|
393
|
+
messages: [],
|
|
394
|
+
consensus_votes: [],
|
|
395
|
+
knowledge_base: [
|
|
396
|
+
{
|
|
397
|
+
id: 'init-1',
|
|
398
|
+
category: 'system',
|
|
399
|
+
title: 'Fallback Memory System',
|
|
400
|
+
content: 'Using JSON-based fallback memory system. Install better-sqlite3 for full database features.',
|
|
401
|
+
confidence: 1.0,
|
|
402
|
+
created_at: new Date().toISOString()
|
|
403
|
+
}
|
|
404
|
+
],
|
|
405
|
+
performance_metrics: [],
|
|
406
|
+
sessions: []
|
|
407
|
+
};
|
|
408
|
+
const fallbackPath = path.join(workingDir, '.hive-mind', 'memory.json');
|
|
409
|
+
await fs.writeFile(fallbackPath, JSON.stringify(fallbackDb, null, 2), 'utf8');
|
|
410
|
+
console.log(' ✅ Fallback memory database created');
|
|
411
|
+
return true;
|
|
418
412
|
}
|
|
419
|
-
|
|
420
413
|
/**
|
|
421
414
|
* Create default queen and worker configurations
|
|
422
|
-
*/
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
415
|
+
*/ export async function createDefaultConfigurations(workingDir, dryRun = false) {
|
|
416
|
+
console.log(' 👑 Creating default queen and worker configurations...');
|
|
417
|
+
if (dryRun) {
|
|
418
|
+
console.log(' [DRY RUN] Would create queen configurations');
|
|
419
|
+
console.log(' [DRY RUN] Would create worker configurations');
|
|
420
|
+
console.log(' [DRY RUN] Would create role templates');
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
const configDir = path.join(workingDir, '.hive-mind', 'config');
|
|
424
|
+
// Queen configurations
|
|
425
|
+
const queenConfigs = {
|
|
426
|
+
strategic: {
|
|
427
|
+
name: 'Strategic Queen',
|
|
428
|
+
description: 'Focuses on long-term planning and high-level coordination',
|
|
429
|
+
capabilities: [
|
|
430
|
+
'strategic-planning',
|
|
431
|
+
'resource-optimization',
|
|
432
|
+
'risk-assessment',
|
|
433
|
+
'quality-oversight',
|
|
434
|
+
'team-coordination'
|
|
435
|
+
],
|
|
436
|
+
decisionStyle: 'analytical',
|
|
437
|
+
planningHorizon: 'long-term',
|
|
438
|
+
adaptability: 0.7,
|
|
439
|
+
specialties: [
|
|
440
|
+
'architecture',
|
|
441
|
+
'planning',
|
|
442
|
+
'coordination'
|
|
443
|
+
]
|
|
444
|
+
},
|
|
445
|
+
tactical: {
|
|
446
|
+
name: 'Tactical Queen',
|
|
447
|
+
description: 'Focuses on execution efficiency and immediate problem-solving',
|
|
448
|
+
capabilities: [
|
|
449
|
+
'task-optimization',
|
|
450
|
+
'rapid-response',
|
|
451
|
+
'resource-allocation',
|
|
452
|
+
'performance-monitoring',
|
|
453
|
+
'conflict-resolution'
|
|
454
|
+
],
|
|
455
|
+
decisionStyle: 'pragmatic',
|
|
456
|
+
planningHorizon: 'short-term',
|
|
457
|
+
adaptability: 0.9,
|
|
458
|
+
specialties: [
|
|
459
|
+
'execution',
|
|
460
|
+
'optimization',
|
|
461
|
+
'troubleshooting'
|
|
462
|
+
]
|
|
463
|
+
},
|
|
464
|
+
adaptive: {
|
|
465
|
+
name: 'Adaptive Queen',
|
|
466
|
+
description: 'Dynamically adjusts approach based on context and feedback',
|
|
467
|
+
capabilities: [
|
|
468
|
+
'pattern-recognition',
|
|
469
|
+
'adaptive-learning',
|
|
470
|
+
'context-switching',
|
|
471
|
+
'feedback-integration',
|
|
472
|
+
'dynamic-planning'
|
|
473
|
+
],
|
|
474
|
+
decisionStyle: 'flexible',
|
|
475
|
+
planningHorizon: 'adaptive',
|
|
476
|
+
adaptability: 1.0,
|
|
477
|
+
specialties: [
|
|
478
|
+
'learning',
|
|
479
|
+
'adaptation',
|
|
480
|
+
'context-awareness'
|
|
481
|
+
]
|
|
482
|
+
}
|
|
483
|
+
};
|
|
484
|
+
// Worker role templates
|
|
485
|
+
const workerTemplates = {
|
|
486
|
+
architect: {
|
|
487
|
+
name: 'System Architect',
|
|
488
|
+
description: 'Designs system architecture and technical specifications',
|
|
489
|
+
capabilities: [
|
|
490
|
+
'system-design',
|
|
491
|
+
'architecture-patterns',
|
|
492
|
+
'scalability-planning',
|
|
493
|
+
'technology-selection',
|
|
494
|
+
'documentation'
|
|
495
|
+
],
|
|
496
|
+
complexity: 0.9,
|
|
497
|
+
autonomy: 0.8,
|
|
498
|
+
collaboration: 0.7
|
|
499
|
+
},
|
|
500
|
+
researcher: {
|
|
501
|
+
name: 'Research Specialist',
|
|
502
|
+
description: 'Conducts research and gathers information for informed decisions',
|
|
503
|
+
capabilities: [
|
|
504
|
+
'information-gathering',
|
|
505
|
+
'analysis',
|
|
506
|
+
'trend-identification',
|
|
507
|
+
'competitive-research',
|
|
508
|
+
'reporting'
|
|
509
|
+
],
|
|
510
|
+
complexity: 0.7,
|
|
511
|
+
autonomy: 0.9,
|
|
512
|
+
collaboration: 0.6
|
|
513
|
+
},
|
|
514
|
+
implementer: {
|
|
515
|
+
name: 'Implementation Specialist',
|
|
516
|
+
description: 'Translates designs into working code and solutions',
|
|
517
|
+
capabilities: [
|
|
518
|
+
'coding',
|
|
519
|
+
'debugging',
|
|
520
|
+
'integration',
|
|
521
|
+
'optimization',
|
|
522
|
+
'deployment'
|
|
523
|
+
],
|
|
524
|
+
complexity: 0.8,
|
|
525
|
+
autonomy: 0.7,
|
|
526
|
+
collaboration: 0.8
|
|
527
|
+
},
|
|
528
|
+
tester: {
|
|
529
|
+
name: 'Quality Assurance Specialist',
|
|
530
|
+
description: 'Ensures quality through testing and validation',
|
|
531
|
+
capabilities: [
|
|
532
|
+
'testing',
|
|
533
|
+
'validation',
|
|
534
|
+
'quality-assurance',
|
|
535
|
+
'automation',
|
|
536
|
+
'reporting'
|
|
537
|
+
],
|
|
538
|
+
complexity: 0.6,
|
|
539
|
+
autonomy: 0.8,
|
|
540
|
+
collaboration: 0.7
|
|
541
|
+
},
|
|
542
|
+
reviewer: {
|
|
543
|
+
name: 'Code Review Specialist',
|
|
544
|
+
description: 'Reviews code quality and provides improvement suggestions',
|
|
545
|
+
capabilities: [
|
|
546
|
+
'code-review',
|
|
547
|
+
'quality-assessment',
|
|
548
|
+
'best-practices',
|
|
549
|
+
'mentoring',
|
|
550
|
+
'documentation-review'
|
|
551
|
+
],
|
|
552
|
+
complexity: 0.8,
|
|
553
|
+
autonomy: 0.8,
|
|
554
|
+
collaboration: 0.9
|
|
555
|
+
}
|
|
556
|
+
};
|
|
557
|
+
// Save configurations
|
|
558
|
+
await fs.writeFile(path.join(configDir, 'queens.json'), JSON.stringify(queenConfigs, null, 2), 'utf8');
|
|
559
|
+
await fs.writeFile(path.join(configDir, 'workers.json'), JSON.stringify(workerTemplates, null, 2), 'utf8');
|
|
560
|
+
console.log(' ✅ Default configurations created');
|
|
560
561
|
}
|
|
561
|
-
|
|
562
562
|
/**
|
|
563
563
|
* Create hive-mind config file with sensible defaults
|
|
564
|
-
*/
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
const configPath = path.join(workingDir, '.hive-mind', 'config.json');
|
|
577
|
-
await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf8');
|
|
578
|
-
|
|
579
|
-
console.log(' ✅ Hive-mind configuration created');
|
|
580
|
-
return config;
|
|
564
|
+
*/ export async function createHiveMindConfig(workingDir, customConfig = {}, dryRun = false) {
|
|
565
|
+
console.log(' ⚙️ Creating hive-mind configuration file...');
|
|
566
|
+
if (dryRun) {
|
|
567
|
+
console.log(' [DRY RUN] Would create config.json with merged settings');
|
|
568
|
+
return;
|
|
569
|
+
}
|
|
570
|
+
// Merge custom config with defaults
|
|
571
|
+
const config = mergeDeep(DEFAULT_HIVE_CONFIG, customConfig);
|
|
572
|
+
const configPath = path.join(workingDir, '.hive-mind', 'config.json');
|
|
573
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf8');
|
|
574
|
+
console.log(' ✅ Hive-mind configuration created');
|
|
575
|
+
return config;
|
|
581
576
|
}
|
|
582
|
-
|
|
583
577
|
/**
|
|
584
578
|
* Create initial README and documentation files
|
|
585
|
-
*/
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
const readmeContent = `# Hive Mind System
|
|
579
|
+
*/ export async function createHiveMindDocumentation(workingDir, dryRun = false) {
|
|
580
|
+
console.log(' 📚 Creating hive-mind documentation...');
|
|
581
|
+
if (dryRun) {
|
|
582
|
+
console.log(' [DRY RUN] Would create README.md and documentation files');
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
const readmeContent = `# Hive Mind System
|
|
595
586
|
|
|
596
587
|
This directory contains the Claude Flow Hive Mind system configuration and data.
|
|
597
588
|
|
|
@@ -635,115 +626,105 @@ Edit \`.hive-mind/config.json\` to customize:
|
|
|
635
626
|
|
|
636
627
|
For more information, see the [Hive Mind Documentation](https://github.com/ruvnet/claude-flow/docs/hive-mind.md).
|
|
637
628
|
`;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
console.log(' ✅ Hive-mind documentation created');
|
|
629
|
+
await fs.writeFile(path.join(workingDir, '.hive-mind', 'README.md'), readmeContent, 'utf8');
|
|
630
|
+
console.log(' ✅ Hive-mind documentation created');
|
|
642
631
|
}
|
|
643
|
-
|
|
644
632
|
/**
|
|
645
633
|
* Complete hive-mind initialization
|
|
646
|
-
*/
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
634
|
+
*/ export async function initializeHiveMind(workingDir, options = {}, dryRun = false) {
|
|
635
|
+
console.log('🧠 Initializing Hive Mind System...');
|
|
636
|
+
try {
|
|
637
|
+
// Create directory structure
|
|
638
|
+
await createHiveMindDirectories(workingDir, dryRun);
|
|
639
|
+
// Initialize collective memory database
|
|
640
|
+
await initializeCollectiveMemoryDatabase(workingDir, dryRun);
|
|
641
|
+
// Create default configurations
|
|
642
|
+
await createDefaultConfigurations(workingDir, dryRun);
|
|
643
|
+
// Create main config file
|
|
644
|
+
await createHiveMindConfig(workingDir, options.config || {}, dryRun);
|
|
645
|
+
// Create documentation
|
|
646
|
+
await createHiveMindDocumentation(workingDir, dryRun);
|
|
647
|
+
if (!dryRun) {
|
|
648
|
+
printSuccess('🧠 Hive Mind System initialized successfully');
|
|
649
|
+
} else {
|
|
650
|
+
console.log('[DRY RUN] Hive Mind System would be fully initialized');
|
|
651
|
+
}
|
|
652
|
+
return {
|
|
653
|
+
success: true,
|
|
654
|
+
features: [
|
|
655
|
+
'Collective memory database',
|
|
656
|
+
'Queen and worker configurations',
|
|
657
|
+
'Consensus mechanisms',
|
|
658
|
+
'Performance monitoring',
|
|
659
|
+
'Session management',
|
|
660
|
+
'Knowledge base'
|
|
661
|
+
]
|
|
662
|
+
};
|
|
663
|
+
} catch (error) {
|
|
664
|
+
printError(`Failed to initialize Hive Mind System: ${error.message}`);
|
|
665
|
+
return {
|
|
666
|
+
success: false,
|
|
667
|
+
error: error.message,
|
|
668
|
+
rollbackRequired: true
|
|
669
|
+
};
|
|
670
670
|
}
|
|
671
|
-
|
|
672
|
-
return {
|
|
673
|
-
success: true,
|
|
674
|
-
features: [
|
|
675
|
-
'Collective memory database',
|
|
676
|
-
'Queen and worker configurations',
|
|
677
|
-
'Consensus mechanisms',
|
|
678
|
-
'Performance monitoring',
|
|
679
|
-
'Session management',
|
|
680
|
-
'Knowledge base',
|
|
681
|
-
],
|
|
682
|
-
};
|
|
683
|
-
} catch (error) {
|
|
684
|
-
printError(`Failed to initialize Hive Mind System: ${error.message}`);
|
|
685
|
-
return {
|
|
686
|
-
success: false,
|
|
687
|
-
error: error.message,
|
|
688
|
-
rollbackRequired: true,
|
|
689
|
-
};
|
|
690
|
-
}
|
|
691
671
|
}
|
|
692
|
-
|
|
693
672
|
/**
|
|
694
673
|
* Get hive-mind initialization status for init summary
|
|
695
|
-
*/
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
};
|
|
706
|
-
|
|
707
|
-
return status;
|
|
674
|
+
*/ export function getHiveMindStatus(workingDir) {
|
|
675
|
+
const configPath = path.join(workingDir, '.hive-mind', 'config.json');
|
|
676
|
+
const dbPath = path.join(workingDir, '.hive-mind', 'hive.db');
|
|
677
|
+
const fallbackPath = path.join(workingDir, '.hive-mind', 'memory.json');
|
|
678
|
+
const status = {
|
|
679
|
+
configured: existsSync(configPath),
|
|
680
|
+
database: existsSync(dbPath) ? 'sqlite' : existsSync(fallbackPath) ? 'fallback' : 'none',
|
|
681
|
+
directories: existsSync(path.join(workingDir, '.hive-mind'))
|
|
682
|
+
};
|
|
683
|
+
return status;
|
|
708
684
|
}
|
|
709
|
-
|
|
710
685
|
/**
|
|
711
686
|
* Rollback hive-mind initialization (cleanup on failure)
|
|
712
|
-
*/
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
687
|
+
*/ export async function rollbackHiveMindInit(workingDir) {
|
|
688
|
+
console.log('🔄 Rolling back hive-mind initialization...');
|
|
689
|
+
try {
|
|
690
|
+
const hiveMindDir = path.join(workingDir, '.hive-mind');
|
|
691
|
+
if (existsSync(hiveMindDir)) {
|
|
692
|
+
await fs.rmdir(hiveMindDir, {
|
|
693
|
+
recursive: true
|
|
694
|
+
});
|
|
695
|
+
console.log(' ✅ Hive-mind directory removed');
|
|
696
|
+
}
|
|
697
|
+
return {
|
|
698
|
+
success: true
|
|
699
|
+
};
|
|
700
|
+
} catch (error) {
|
|
701
|
+
printError(`Failed to rollback hive-mind initialization: ${error.message}`);
|
|
702
|
+
return {
|
|
703
|
+
success: false,
|
|
704
|
+
error: error.message
|
|
705
|
+
};
|
|
721
706
|
}
|
|
722
|
-
return { success: true };
|
|
723
|
-
} catch (error) {
|
|
724
|
-
printError(`Failed to rollback hive-mind initialization: ${error.message}`);
|
|
725
|
-
return { success: false, error: error.message };
|
|
726
|
-
}
|
|
727
707
|
}
|
|
728
|
-
|
|
729
708
|
/**
|
|
730
709
|
* Deep merge utility for configuration objects
|
|
731
|
-
*/
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
710
|
+
*/ function mergeDeep(target, source) {
|
|
711
|
+
const output = Object.assign({}, target);
|
|
712
|
+
if (isObject(target) && isObject(source)) {
|
|
713
|
+
Object.keys(source).forEach((key)=>{
|
|
714
|
+
if (isObject(source[key])) {
|
|
715
|
+
if (!(key in target)) Object.assign(output, {
|
|
716
|
+
[key]: source[key]
|
|
717
|
+
});
|
|
718
|
+
else output[key] = mergeDeep(target[key], source[key]);
|
|
719
|
+
} else {
|
|
720
|
+
Object.assign(output, {
|
|
721
|
+
[key]: source[key]
|
|
722
|
+
});
|
|
723
|
+
}
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
return output;
|
|
745
727
|
}
|
|
746
|
-
|
|
747
728
|
function isObject(item) {
|
|
748
|
-
|
|
729
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
749
730
|
}
|