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
|
@@ -0,0 +1,703 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hive-Mind System Integration Interface
|
|
3
|
+
*
|
|
4
|
+
* This module provides seamless integration with the existing hive-mind system,
|
|
5
|
+
* enabling swarms to leverage collective intelligence, shared memory, and
|
|
6
|
+
* distributed coordination capabilities while maintaining compatibility
|
|
7
|
+
* with the current claude-flow-novice architecture.
|
|
8
|
+
*/ function _define_property(obj, key, value) {
|
|
9
|
+
if (key in obj) {
|
|
10
|
+
Object.defineProperty(obj, key, {
|
|
11
|
+
value: value,
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true
|
|
15
|
+
});
|
|
16
|
+
} else {
|
|
17
|
+
obj[key] = value;
|
|
18
|
+
}
|
|
19
|
+
return obj;
|
|
20
|
+
}
|
|
21
|
+
import { EventEmitter } from "node:events";
|
|
22
|
+
import { Logger } from "../core/logger.js";
|
|
23
|
+
import { generateId } from "../utils/helpers.js";
|
|
24
|
+
export class HiveMindIntegration extends EventEmitter {
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the hive-mind integration
|
|
27
|
+
*/ async initialize() {
|
|
28
|
+
if (this.isInitialized) {
|
|
29
|
+
this.logger.warn('Hive-mind integration already initialized');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.logger.info('Initializing hive-mind integration...');
|
|
33
|
+
try {
|
|
34
|
+
// Load existing knowledge base from memory
|
|
35
|
+
await this.loadKnowledgeBase();
|
|
36
|
+
// Load collective intelligence data
|
|
37
|
+
await this.loadCollectiveIntelligence();
|
|
38
|
+
// Start synchronization if enabled
|
|
39
|
+
if (this.config.syncInterval > 0) {
|
|
40
|
+
this.startPeriodicSync();
|
|
41
|
+
}
|
|
42
|
+
this.isInitialized = true;
|
|
43
|
+
this.logger.info('Hive-mind integration initialized successfully');
|
|
44
|
+
this.emit('initialized');
|
|
45
|
+
} catch (error) {
|
|
46
|
+
this.logger.error('Failed to initialize hive-mind integration', error);
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Shutdown the integration gracefully
|
|
52
|
+
*/ async shutdown() {
|
|
53
|
+
if (!this.isInitialized) return;
|
|
54
|
+
this.logger.info('Shutting down hive-mind integration...');
|
|
55
|
+
try {
|
|
56
|
+
// Stop synchronization
|
|
57
|
+
if (this.syncInterval) {
|
|
58
|
+
clearInterval(this.syncInterval);
|
|
59
|
+
}
|
|
60
|
+
// Save current state
|
|
61
|
+
await this.saveKnowledgeBase();
|
|
62
|
+
await this.saveCollectiveIntelligence();
|
|
63
|
+
// Terminate active sessions
|
|
64
|
+
const terminationPromises = Array.from(this.activeSessions.keys()).map((sessionId)=>this.terminateSession(sessionId));
|
|
65
|
+
await Promise.allSettled(terminationPromises);
|
|
66
|
+
this.isInitialized = false;
|
|
67
|
+
this.logger.info('Hive-mind integration shut down successfully');
|
|
68
|
+
this.emit('shutdown');
|
|
69
|
+
} catch (error) {
|
|
70
|
+
this.logger.error('Error during hive-mind integration shutdown', error);
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a new hive-mind session for a swarm
|
|
76
|
+
*/ async createSession(swarmId, orchestrator) {
|
|
77
|
+
const sessionId = generateId('hive-session');
|
|
78
|
+
this.logger.info('Creating hive-mind session', {
|
|
79
|
+
sessionId,
|
|
80
|
+
swarmId
|
|
81
|
+
});
|
|
82
|
+
const session = {
|
|
83
|
+
id: sessionId,
|
|
84
|
+
swarmId,
|
|
85
|
+
participants: [],
|
|
86
|
+
sharedMemory: new Map(),
|
|
87
|
+
collectiveIntelligence: this.initializeCollectiveIntelligence(),
|
|
88
|
+
knowledgeBase: this.initializeKnowledgeBase(),
|
|
89
|
+
distributedLearning: this.initializeDistributedLearning(),
|
|
90
|
+
status: 'active',
|
|
91
|
+
startTime: new Date(),
|
|
92
|
+
lastSync: new Date()
|
|
93
|
+
};
|
|
94
|
+
this.activeSessions.set(sessionId, session);
|
|
95
|
+
// Initialize session with global knowledge
|
|
96
|
+
await this.initializeSessionWithGlobalKnowledge(session);
|
|
97
|
+
this.emit('session:created', {
|
|
98
|
+
sessionId,
|
|
99
|
+
swarmId
|
|
100
|
+
});
|
|
101
|
+
return sessionId;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Add an agent to a hive-mind session
|
|
105
|
+
*/ async addAgentToSession(sessionId, agentId, agent) {
|
|
106
|
+
const session = this.activeSessions.get(sessionId);
|
|
107
|
+
if (!session) {
|
|
108
|
+
throw new Error(`Hive-mind session not found: ${sessionId}`);
|
|
109
|
+
}
|
|
110
|
+
if (!session.participants.includes(agentId)) {
|
|
111
|
+
session.participants.push(agentId);
|
|
112
|
+
this.logger.info('Agent added to hive-mind session', {
|
|
113
|
+
sessionId,
|
|
114
|
+
agentId,
|
|
115
|
+
participantCount: session.participants.length
|
|
116
|
+
});
|
|
117
|
+
// Share relevant knowledge with the agent
|
|
118
|
+
await this.shareKnowledgeWithAgent(session, agentId, agent);
|
|
119
|
+
this.emit('agent:joined', {
|
|
120
|
+
sessionId,
|
|
121
|
+
agentId,
|
|
122
|
+
participantCount: session.participants.length
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Remove an agent from a hive-mind session
|
|
128
|
+
*/ async removeAgentFromSession(sessionId, agentId) {
|
|
129
|
+
const session = this.activeSessions.get(sessionId);
|
|
130
|
+
if (!session) {
|
|
131
|
+
throw new Error(`Hive-mind session not found: ${sessionId}`);
|
|
132
|
+
}
|
|
133
|
+
const index = session.participants.indexOf(agentId);
|
|
134
|
+
if (index !== -1) {
|
|
135
|
+
session.participants.splice(index, 1);
|
|
136
|
+
this.logger.info('Agent removed from hive-mind session', {
|
|
137
|
+
sessionId,
|
|
138
|
+
agentId,
|
|
139
|
+
participantCount: session.participants.length
|
|
140
|
+
});
|
|
141
|
+
this.emit('agent:left', {
|
|
142
|
+
sessionId,
|
|
143
|
+
agentId,
|
|
144
|
+
participantCount: session.participants.length
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Share knowledge or experience with the hive-mind
|
|
150
|
+
*/ async shareWithHive(sessionId, agentId, type, data) {
|
|
151
|
+
const session = this.activeSessions.get(sessionId);
|
|
152
|
+
if (!session) {
|
|
153
|
+
throw new Error(`Hive-mind session not found: ${sessionId}`);
|
|
154
|
+
}
|
|
155
|
+
this.logger.debug('Sharing with hive-mind', {
|
|
156
|
+
sessionId,
|
|
157
|
+
agentId,
|
|
158
|
+
type
|
|
159
|
+
});
|
|
160
|
+
switch(type){
|
|
161
|
+
case 'knowledge':
|
|
162
|
+
await this.addKnowledge(session, agentId, data);
|
|
163
|
+
break;
|
|
164
|
+
case 'experience':
|
|
165
|
+
await this.addExperience(session, agentId, data);
|
|
166
|
+
break;
|
|
167
|
+
case 'insight':
|
|
168
|
+
await this.addInsight(session, agentId, data);
|
|
169
|
+
break;
|
|
170
|
+
case 'pattern':
|
|
171
|
+
await this.addPattern(session, agentId, data);
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
this.emit('knowledge:shared', {
|
|
175
|
+
sessionId,
|
|
176
|
+
agentId,
|
|
177
|
+
type
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Request collective decision making
|
|
182
|
+
*/ async requestCollectiveDecision(sessionId, question, options, requesterAgentId) {
|
|
183
|
+
const session = this.activeSessions.get(sessionId);
|
|
184
|
+
if (!session) {
|
|
185
|
+
throw new Error(`Hive-mind session not found: ${sessionId}`);
|
|
186
|
+
}
|
|
187
|
+
const decisionId = generateId('decision');
|
|
188
|
+
this.logger.info('Requesting collective decision', {
|
|
189
|
+
sessionId,
|
|
190
|
+
decisionId,
|
|
191
|
+
question,
|
|
192
|
+
optionCount: options.length,
|
|
193
|
+
requesterAgentId
|
|
194
|
+
});
|
|
195
|
+
const decision = {
|
|
196
|
+
id: decisionId,
|
|
197
|
+
question,
|
|
198
|
+
options,
|
|
199
|
+
votingResults: new Map(),
|
|
200
|
+
consensus: '',
|
|
201
|
+
confidence: 0,
|
|
202
|
+
reasoning: '',
|
|
203
|
+
participants: [
|
|
204
|
+
...session.participants
|
|
205
|
+
],
|
|
206
|
+
timestamp: new Date()
|
|
207
|
+
};
|
|
208
|
+
session.collectiveIntelligence.decisions.set(decisionId, decision);
|
|
209
|
+
// Initiate voting process
|
|
210
|
+
await this.initiateVoting(session, decision);
|
|
211
|
+
this.emit('decision:requested', {
|
|
212
|
+
sessionId,
|
|
213
|
+
decisionId,
|
|
214
|
+
question
|
|
215
|
+
});
|
|
216
|
+
return decisionId;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get collective decision result
|
|
220
|
+
*/ getCollectiveDecision(sessionId, decisionId) {
|
|
221
|
+
const session = this.activeSessions.get(sessionId);
|
|
222
|
+
if (!session) return null;
|
|
223
|
+
return session.collectiveIntelligence.decisions.get(decisionId) || null;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Query the hive-mind knowledge base
|
|
227
|
+
*/ async queryKnowledge(sessionId, query) {
|
|
228
|
+
const session = this.activeSessions.get(sessionId);
|
|
229
|
+
if (!session) {
|
|
230
|
+
throw new Error(`Hive-mind session not found: ${sessionId}`);
|
|
231
|
+
}
|
|
232
|
+
this.logger.debug('Querying hive-mind knowledge', {
|
|
233
|
+
sessionId,
|
|
234
|
+
query
|
|
235
|
+
});
|
|
236
|
+
let results = [];
|
|
237
|
+
switch(query.type){
|
|
238
|
+
case 'fact':
|
|
239
|
+
results = this.queryFacts(session, query);
|
|
240
|
+
break;
|
|
241
|
+
case 'procedure':
|
|
242
|
+
results = this.queryProcedures(session, query);
|
|
243
|
+
break;
|
|
244
|
+
case 'bestPractice':
|
|
245
|
+
results = this.queryBestPractices(session, query);
|
|
246
|
+
break;
|
|
247
|
+
case 'lesson':
|
|
248
|
+
results = this.queryLessons(session, query);
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
this.emit('knowledge:queried', {
|
|
252
|
+
sessionId,
|
|
253
|
+
query,
|
|
254
|
+
resultCount: results.length
|
|
255
|
+
});
|
|
256
|
+
return results;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Get collective insights for a swarm
|
|
260
|
+
*/ getCollectiveInsights(sessionId) {
|
|
261
|
+
const session = this.activeSessions.get(sessionId);
|
|
262
|
+
if (!session) return [];
|
|
263
|
+
return Array.from(session.collectiveIntelligence.insights.values());
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get identified patterns
|
|
267
|
+
*/ getIdentifiedPatterns(sessionId) {
|
|
268
|
+
const session = this.activeSessions.get(sessionId);
|
|
269
|
+
if (!session) return [];
|
|
270
|
+
return Array.from(session.collectiveIntelligence.patterns.values());
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get performance predictions
|
|
274
|
+
*/ getPerformancePredictions(sessionId) {
|
|
275
|
+
const session = this.activeSessions.get(sessionId);
|
|
276
|
+
if (!session) return [];
|
|
277
|
+
return Array.from(session.collectiveIntelligence.predictions.values());
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Terminate a hive-mind session
|
|
281
|
+
*/ async terminateSession(sessionId) {
|
|
282
|
+
const session = this.activeSessions.get(sessionId);
|
|
283
|
+
if (!session) return;
|
|
284
|
+
this.logger.info('Terminating hive-mind session', {
|
|
285
|
+
sessionId,
|
|
286
|
+
participantCount: session.participants.length,
|
|
287
|
+
duration: Date.now() - session.startTime.getTime()
|
|
288
|
+
});
|
|
289
|
+
// Save session knowledge to global knowledge base
|
|
290
|
+
await this.consolidateSessionKnowledge(session);
|
|
291
|
+
// Update status and cleanup
|
|
292
|
+
session.status = 'terminated';
|
|
293
|
+
this.activeSessions.delete(sessionId);
|
|
294
|
+
this.emit('session:terminated', {
|
|
295
|
+
sessionId,
|
|
296
|
+
duration: Date.now() - session.startTime.getTime()
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Get hive-mind session status
|
|
301
|
+
*/ getSessionStatus(sessionId) {
|
|
302
|
+
return this.activeSessions.get(sessionId) || null;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Get integration metrics
|
|
306
|
+
*/ getIntegrationMetrics() {
|
|
307
|
+
const sessions = Array.from(this.activeSessions.values());
|
|
308
|
+
return {
|
|
309
|
+
activeSessions: sessions.length,
|
|
310
|
+
totalParticipants: sessions.reduce((sum, s)=>sum + s.participants.length, 0),
|
|
311
|
+
knowledgeItems: this.countKnowledgeItems(),
|
|
312
|
+
insights: this.globalIntelligence.insights.size,
|
|
313
|
+
patterns: this.globalIntelligence.patterns.size,
|
|
314
|
+
decisions: this.globalIntelligence.decisions.size,
|
|
315
|
+
predictions: this.globalIntelligence.predictions.size,
|
|
316
|
+
learningModels: sessions.reduce((sum, s)=>sum + s.distributedLearning.models.size, 0)
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
// Private methods
|
|
320
|
+
async loadKnowledgeBase() {
|
|
321
|
+
try {
|
|
322
|
+
const knowledgeEntries = await this.memoryManager.retrieve({
|
|
323
|
+
namespace: 'hive-mind-knowledge',
|
|
324
|
+
type: 'knowledge-base'
|
|
325
|
+
});
|
|
326
|
+
for (const entry of knowledgeEntries){
|
|
327
|
+
const data = JSON.parse(entry.content);
|
|
328
|
+
// Load facts, procedures, best practices, and lessons
|
|
329
|
+
this.loadKnowledgeData(data);
|
|
330
|
+
}
|
|
331
|
+
this.logger.debug('Knowledge base loaded', {
|
|
332
|
+
factsCount: this.globalKnowledgeBase.facts.size,
|
|
333
|
+
proceduresCount: this.globalKnowledgeBase.procedures.size,
|
|
334
|
+
bestPracticesCount: this.globalKnowledgeBase.bestPractices.size,
|
|
335
|
+
lessonsCount: this.globalKnowledgeBase.lessons.size
|
|
336
|
+
});
|
|
337
|
+
} catch (error) {
|
|
338
|
+
this.logger.warn('Failed to load knowledge base, starting fresh', error);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
async loadCollectiveIntelligence() {
|
|
342
|
+
try {
|
|
343
|
+
const intelligenceEntries = await this.memoryManager.retrieve({
|
|
344
|
+
namespace: 'hive-mind-intelligence',
|
|
345
|
+
type: 'collective-intelligence'
|
|
346
|
+
});
|
|
347
|
+
for (const entry of intelligenceEntries){
|
|
348
|
+
const data = JSON.parse(entry.content);
|
|
349
|
+
this.loadIntelligenceData(data);
|
|
350
|
+
}
|
|
351
|
+
this.logger.debug('Collective intelligence loaded', {
|
|
352
|
+
patternsCount: this.globalIntelligence.patterns.size,
|
|
353
|
+
insightsCount: this.globalIntelligence.insights.size,
|
|
354
|
+
decisionsCount: this.globalIntelligence.decisions.size,
|
|
355
|
+
predictionsCount: this.globalIntelligence.predictions.size
|
|
356
|
+
});
|
|
357
|
+
} catch (error) {
|
|
358
|
+
this.logger.warn('Failed to load collective intelligence, starting fresh', error);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
async saveKnowledgeBase() {
|
|
362
|
+
try {
|
|
363
|
+
const knowledgeData = {
|
|
364
|
+
facts: Array.from(this.globalKnowledgeBase.facts.entries()),
|
|
365
|
+
procedures: Array.from(this.globalKnowledgeBase.procedures.entries()),
|
|
366
|
+
bestPractices: Array.from(this.globalKnowledgeBase.bestPractices.entries()),
|
|
367
|
+
lessons: Array.from(this.globalKnowledgeBase.lessons.entries())
|
|
368
|
+
};
|
|
369
|
+
await this.memoryManager.store({
|
|
370
|
+
id: `knowledge-base-${Date.now()}`,
|
|
371
|
+
agentId: 'hive-mind-integration',
|
|
372
|
+
type: 'knowledge-base',
|
|
373
|
+
content: JSON.stringify(knowledgeData),
|
|
374
|
+
namespace: 'hive-mind-knowledge',
|
|
375
|
+
timestamp: new Date(),
|
|
376
|
+
metadata: {
|
|
377
|
+
type: 'knowledge-base-snapshot',
|
|
378
|
+
itemCount: this.countKnowledgeItems()
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
} catch (error) {
|
|
382
|
+
this.logger.error('Failed to save knowledge base', error);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
async saveCollectiveIntelligence() {
|
|
386
|
+
try {
|
|
387
|
+
const intelligenceData = {
|
|
388
|
+
patterns: Array.from(this.globalIntelligence.patterns.entries()),
|
|
389
|
+
insights: Array.from(this.globalIntelligence.insights.entries()),
|
|
390
|
+
decisions: Array.from(this.globalIntelligence.decisions.entries()),
|
|
391
|
+
predictions: Array.from(this.globalIntelligence.predictions.entries())
|
|
392
|
+
};
|
|
393
|
+
await this.memoryManager.store({
|
|
394
|
+
id: `collective-intelligence-${Date.now()}`,
|
|
395
|
+
agentId: 'hive-mind-integration',
|
|
396
|
+
type: 'collective-intelligence',
|
|
397
|
+
content: JSON.stringify(intelligenceData),
|
|
398
|
+
namespace: 'hive-mind-intelligence',
|
|
399
|
+
timestamp: new Date(),
|
|
400
|
+
metadata: {
|
|
401
|
+
type: 'intelligence-snapshot',
|
|
402
|
+
itemCount: this.globalIntelligence.patterns.size + this.globalIntelligence.insights.size + this.globalIntelligence.decisions.size + this.globalIntelligence.predictions.size
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
} catch (error) {
|
|
406
|
+
this.logger.error('Failed to save collective intelligence', error);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
startPeriodicSync() {
|
|
410
|
+
this.syncInterval = setInterval(async ()=>{
|
|
411
|
+
try {
|
|
412
|
+
await this.performPeriodicSync();
|
|
413
|
+
} catch (error) {
|
|
414
|
+
this.logger.error('Error during periodic sync', error);
|
|
415
|
+
}
|
|
416
|
+
}, this.config.syncInterval);
|
|
417
|
+
}
|
|
418
|
+
async performPeriodicSync() {
|
|
419
|
+
// Sync with external hive-mind endpoint if configured
|
|
420
|
+
if (this.config.hiveMindEndpoint) {
|
|
421
|
+
// Implementation would sync with external system
|
|
422
|
+
this.logger.debug('Performing external hive-mind sync');
|
|
423
|
+
}
|
|
424
|
+
// Update session knowledge bases
|
|
425
|
+
for (const session of this.activeSessions.values()){
|
|
426
|
+
await this.syncSessionKnowledge(session);
|
|
427
|
+
session.lastSync = new Date();
|
|
428
|
+
}
|
|
429
|
+
this.emit('sync:completed', {
|
|
430
|
+
sessionsSynced: this.activeSessions.size,
|
|
431
|
+
timestamp: new Date()
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
async initializeSessionWithGlobalKnowledge(session) {
|
|
435
|
+
// Copy relevant global knowledge to session
|
|
436
|
+
for (const [id, fact] of this.globalKnowledgeBase.facts){
|
|
437
|
+
session.knowledgeBase.facts.set(id, fact);
|
|
438
|
+
}
|
|
439
|
+
for (const [id, insight] of this.globalIntelligence.insights){
|
|
440
|
+
session.collectiveIntelligence.insights.set(id, insight);
|
|
441
|
+
}
|
|
442
|
+
for (const [id, pattern] of this.globalIntelligence.patterns){
|
|
443
|
+
session.collectiveIntelligence.patterns.set(id, pattern);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
async shareKnowledgeWithAgent(session, agentId, agent) {
|
|
447
|
+
// Share relevant knowledge based on agent capabilities
|
|
448
|
+
const relevantKnowledge = this.getRelevantKnowledge(session, agent.capabilities);
|
|
449
|
+
this.logger.debug('Sharing knowledge with agent', {
|
|
450
|
+
sessionId: session.id,
|
|
451
|
+
agentId,
|
|
452
|
+
knowledgeItems: relevantKnowledge.length
|
|
453
|
+
});
|
|
454
|
+
// Implementation would send knowledge to agent through MCP tools
|
|
455
|
+
}
|
|
456
|
+
getRelevantKnowledge(session, capabilities) {
|
|
457
|
+
const relevantItems = [];
|
|
458
|
+
// Filter facts by capabilities
|
|
459
|
+
for (const fact of session.knowledgeBase.facts.values()){
|
|
460
|
+
if (capabilities.some((cap)=>fact.category.includes(cap))) {
|
|
461
|
+
relevantItems.push(fact);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
// Filter procedures by capabilities
|
|
465
|
+
for (const procedure of session.knowledgeBase.procedures.values()){
|
|
466
|
+
if (capabilities.some((cap)=>procedure.contexts.includes(cap))) {
|
|
467
|
+
relevantItems.push(procedure);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
return relevantItems;
|
|
471
|
+
}
|
|
472
|
+
async addKnowledge(session, agentId, data) {
|
|
473
|
+
// Add new knowledge item to session
|
|
474
|
+
if (data.type === 'fact') {
|
|
475
|
+
const fact = {
|
|
476
|
+
id: generateId('fact'),
|
|
477
|
+
statement: data.statement,
|
|
478
|
+
category: data.category || 'general',
|
|
479
|
+
confidence: data.confidence || 0.8,
|
|
480
|
+
sources: [
|
|
481
|
+
agentId
|
|
482
|
+
],
|
|
483
|
+
validatedBy: [
|
|
484
|
+
agentId
|
|
485
|
+
],
|
|
486
|
+
contexts: data.contexts || [],
|
|
487
|
+
timestamp: new Date()
|
|
488
|
+
};
|
|
489
|
+
session.knowledgeBase.facts.set(fact.id, fact);
|
|
490
|
+
}
|
|
491
|
+
// Similar implementations for procedures, best practices, and lessons
|
|
492
|
+
}
|
|
493
|
+
async addExperience(session, agentId, data) {
|
|
494
|
+
const experience = {
|
|
495
|
+
id: generateId('experience'),
|
|
496
|
+
context: data.context || 'general',
|
|
497
|
+
situation: data.situation,
|
|
498
|
+
actions: data.actions || [],
|
|
499
|
+
results: data.results || [],
|
|
500
|
+
feedback: data.feedback || 0,
|
|
501
|
+
tags: data.tags || [],
|
|
502
|
+
agentId,
|
|
503
|
+
timestamp: new Date()
|
|
504
|
+
};
|
|
505
|
+
session.distributedLearning.experiences.set(experience.id, experience);
|
|
506
|
+
}
|
|
507
|
+
async addInsight(session, agentId, data) {
|
|
508
|
+
const insight = {
|
|
509
|
+
id: generateId('insight'),
|
|
510
|
+
category: data.category || 'optimization',
|
|
511
|
+
title: data.title,
|
|
512
|
+
description: data.description,
|
|
513
|
+
evidence: data.evidence || [],
|
|
514
|
+
confidence: data.confidence || 0.7,
|
|
515
|
+
applicability: data.applicability || [],
|
|
516
|
+
contributingAgents: [
|
|
517
|
+
agentId
|
|
518
|
+
],
|
|
519
|
+
timestamp: new Date()
|
|
520
|
+
};
|
|
521
|
+
session.collectiveIntelligence.insights.set(insight.id, insight);
|
|
522
|
+
}
|
|
523
|
+
async addPattern(session, agentId, data) {
|
|
524
|
+
const pattern = {
|
|
525
|
+
id: generateId('pattern'),
|
|
526
|
+
type: data.type || 'behavioral',
|
|
527
|
+
description: data.description,
|
|
528
|
+
frequency: data.frequency || 1,
|
|
529
|
+
confidence: data.confidence || 0.7,
|
|
530
|
+
contexts: data.contexts || [],
|
|
531
|
+
impact: data.impact || 'medium',
|
|
532
|
+
discoveredBy: [
|
|
533
|
+
agentId
|
|
534
|
+
],
|
|
535
|
+
lastSeen: new Date()
|
|
536
|
+
};
|
|
537
|
+
session.collectiveIntelligence.patterns.set(pattern.id, pattern);
|
|
538
|
+
}
|
|
539
|
+
async initiateVoting(session, decision) {
|
|
540
|
+
// Implementation would send voting request to all participants
|
|
541
|
+
// For now, simulate consensus building
|
|
542
|
+
this.logger.debug('Initiating collective voting', {
|
|
543
|
+
sessionId: session.id,
|
|
544
|
+
decisionId: decision.id,
|
|
545
|
+
participantCount: decision.participants.length
|
|
546
|
+
});
|
|
547
|
+
// Placeholder implementation - in reality, this would involve
|
|
548
|
+
// sophisticated consensus algorithms
|
|
549
|
+
setTimeout(()=>{
|
|
550
|
+
this.processVotingResults(session, decision);
|
|
551
|
+
}, 5000);
|
|
552
|
+
}
|
|
553
|
+
processVotingResults(session, decision) {
|
|
554
|
+
// Placeholder implementation
|
|
555
|
+
decision.consensus = decision.options[0].id;
|
|
556
|
+
decision.confidence = 0.8;
|
|
557
|
+
decision.reasoning = 'Consensus reached through collective voting';
|
|
558
|
+
this.emit('decision:completed', {
|
|
559
|
+
sessionId: session.id,
|
|
560
|
+
decisionId: decision.id,
|
|
561
|
+
consensus: decision.consensus,
|
|
562
|
+
confidence: decision.confidence
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
queryFacts(session, query) {
|
|
566
|
+
const results = [];
|
|
567
|
+
for (const fact of session.knowledgeBase.facts.values()){
|
|
568
|
+
let matches = true;
|
|
569
|
+
if (query.category && !fact.category.includes(query.category)) {
|
|
570
|
+
matches = false;
|
|
571
|
+
}
|
|
572
|
+
if (query.keywords && !query.keywords.some((keyword)=>fact.statement.toLowerCase().includes(keyword.toLowerCase()))) {
|
|
573
|
+
matches = false;
|
|
574
|
+
}
|
|
575
|
+
if (query.context && !fact.contexts.includes(query.context)) {
|
|
576
|
+
matches = false;
|
|
577
|
+
}
|
|
578
|
+
if (matches) {
|
|
579
|
+
results.push(fact);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
return results;
|
|
583
|
+
}
|
|
584
|
+
queryProcedures(session, query) {
|
|
585
|
+
// Similar implementation to queryFacts but for procedures
|
|
586
|
+
return Array.from(session.knowledgeBase.procedures.values());
|
|
587
|
+
}
|
|
588
|
+
queryBestPractices(session, query) {
|
|
589
|
+
// Similar implementation to queryFacts but for best practices
|
|
590
|
+
return Array.from(session.knowledgeBase.bestPractices.values());
|
|
591
|
+
}
|
|
592
|
+
queryLessons(session, query) {
|
|
593
|
+
// Similar implementation to queryFacts but for lessons
|
|
594
|
+
return Array.from(session.knowledgeBase.lessons.values());
|
|
595
|
+
}
|
|
596
|
+
async consolidateSessionKnowledge(session) {
|
|
597
|
+
// Merge session knowledge into global knowledge base
|
|
598
|
+
for (const [id, fact] of session.knowledgeBase.facts){
|
|
599
|
+
if (!this.globalKnowledgeBase.facts.has(id)) {
|
|
600
|
+
this.globalKnowledgeBase.facts.set(id, fact);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
for (const [id, insight] of session.collectiveIntelligence.insights){
|
|
604
|
+
if (!this.globalIntelligence.insights.has(id)) {
|
|
605
|
+
this.globalIntelligence.insights.set(id, insight);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
// Similar consolidation for other knowledge types
|
|
609
|
+
}
|
|
610
|
+
async syncSessionKnowledge(session) {
|
|
611
|
+
// Sync session with global knowledge base
|
|
612
|
+
// Implementation would handle bidirectional sync
|
|
613
|
+
}
|
|
614
|
+
loadKnowledgeData(data) {
|
|
615
|
+
// Load knowledge data from stored format
|
|
616
|
+
if (data.facts) {
|
|
617
|
+
for (const [id, fact] of data.facts){
|
|
618
|
+
this.globalKnowledgeBase.facts.set(id, fact);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
// Similar loading for other knowledge types
|
|
622
|
+
}
|
|
623
|
+
loadIntelligenceData(data) {
|
|
624
|
+
// Load intelligence data from stored format
|
|
625
|
+
if (data.patterns) {
|
|
626
|
+
for (const [id, pattern] of data.patterns){
|
|
627
|
+
this.globalIntelligence.patterns.set(id, pattern);
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
// Similar loading for other intelligence types
|
|
631
|
+
}
|
|
632
|
+
countKnowledgeItems() {
|
|
633
|
+
return this.globalKnowledgeBase.facts.size + this.globalKnowledgeBase.procedures.size + this.globalKnowledgeBase.bestPractices.size + this.globalKnowledgeBase.lessons.size;
|
|
634
|
+
}
|
|
635
|
+
initializeKnowledgeBase() {
|
|
636
|
+
return {
|
|
637
|
+
facts: new Map(),
|
|
638
|
+
procedures: new Map(),
|
|
639
|
+
bestPractices: new Map(),
|
|
640
|
+
lessons: new Map()
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
initializeCollectiveIntelligence() {
|
|
644
|
+
return {
|
|
645
|
+
patterns: new Map(),
|
|
646
|
+
insights: new Map(),
|
|
647
|
+
decisions: new Map(),
|
|
648
|
+
predictions: new Map()
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
initializeDistributedLearning() {
|
|
652
|
+
return {
|
|
653
|
+
models: new Map(),
|
|
654
|
+
experiences: new Map(),
|
|
655
|
+
adaptations: new Map(),
|
|
656
|
+
performance: {
|
|
657
|
+
metrics: new Map(),
|
|
658
|
+
improvements: [],
|
|
659
|
+
degradations: [],
|
|
660
|
+
stability: 1.0,
|
|
661
|
+
trends: []
|
|
662
|
+
}
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
createDefaultConfig(config) {
|
|
666
|
+
return {
|
|
667
|
+
enableSharedIntelligence: true,
|
|
668
|
+
enableCollectiveMemory: true,
|
|
669
|
+
enableDistributedLearning: true,
|
|
670
|
+
enableKnowledgeSharing: true,
|
|
671
|
+
syncInterval: 30000,
|
|
672
|
+
maxSharedMemorySize: 100 * 1024 * 1024,
|
|
673
|
+
intelligencePoolSize: 1000,
|
|
674
|
+
learningRate: 0.1,
|
|
675
|
+
knowledgeRetentionPeriod: 7 * 24 * 60 * 60 * 1000,
|
|
676
|
+
...config
|
|
677
|
+
};
|
|
678
|
+
}
|
|
679
|
+
setupEventHandlers() {
|
|
680
|
+
this.on('session:created', (data)=>{
|
|
681
|
+
this.logger.info('Hive-mind session created', data);
|
|
682
|
+
});
|
|
683
|
+
this.on('agent:joined', (data)=>{
|
|
684
|
+
this.logger.info('Agent joined hive-mind', data);
|
|
685
|
+
});
|
|
686
|
+
this.on('knowledge:shared', (data)=>{
|
|
687
|
+
this.logger.debug('Knowledge shared with hive-mind', data);
|
|
688
|
+
});
|
|
689
|
+
this.on('decision:completed', (data)=>{
|
|
690
|
+
this.logger.info('Collective decision completed', data);
|
|
691
|
+
});
|
|
692
|
+
}
|
|
693
|
+
constructor(config = {}, memoryManager){
|
|
694
|
+
super(), _define_property(this, "logger", void 0), _define_property(this, "config", void 0), _define_property(this, "memoryManager", void 0), _define_property(this, "activeSessions", new Map()), _define_property(this, "globalKnowledgeBase", void 0), _define_property(this, "globalIntelligence", void 0), _define_property(this, "syncInterval", void 0), _define_property(this, "isInitialized", false);
|
|
695
|
+
this.logger = new Logger('HiveMindIntegration');
|
|
696
|
+
this.config = this.createDefaultConfig(config);
|
|
697
|
+
this.memoryManager = memoryManager;
|
|
698
|
+
this.globalKnowledgeBase = this.initializeKnowledgeBase();
|
|
699
|
+
this.globalIntelligence = this.initializeCollectiveIntelligence();
|
|
700
|
+
this.setupEventHandlers();
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
export default HiveMindIntegration;
|