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,46 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Swarm Metrics Integration Fix
|
|
3
3
|
* Resolves task attribution issues between hive-mind and ruv-swarm systems
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import chalk from 'chalk';
|
|
10
|
-
import { cwd } from '../node-compat.js';
|
|
11
|
-
|
|
4
|
+
*/ import { existsSync } from "fs";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import Database from "better-sqlite3";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
import { cwd } from "../node-compat.js";
|
|
12
9
|
/**
|
|
13
10
|
* Get metrics from both swarm systems and provide unified view
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
results.integrated = await integrateMetrics(results.hiveMind, results.ruvSwarm);
|
|
24
|
-
|
|
25
|
-
return results;
|
|
11
|
+
*/ export async function getUnifiedSwarmMetrics() {
|
|
12
|
+
const results = {
|
|
13
|
+
hiveMind: await getHiveMindMetrics(),
|
|
14
|
+
ruvSwarm: await getRuvSwarmMetrics(),
|
|
15
|
+
integrated: null
|
|
16
|
+
};
|
|
17
|
+
// Create integrated view
|
|
18
|
+
results.integrated = await integrateMetrics(results.hiveMind, results.ruvSwarm);
|
|
19
|
+
return results;
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
/**
|
|
29
22
|
* Get hive-mind metrics
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const stats = db
|
|
42
|
-
.prepare(
|
|
43
|
-
`
|
|
23
|
+
*/ async function getHiveMindMetrics() {
|
|
24
|
+
const dbPath = path.join(cwd(), '.hive-mind', 'hive.db');
|
|
25
|
+
if (!existsSync(dbPath)) {
|
|
26
|
+
return {
|
|
27
|
+
available: false,
|
|
28
|
+
reason: 'Hive-mind database not found'
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const db = new Database(dbPath);
|
|
33
|
+
const stats = db.prepare(`
|
|
44
34
|
SELECT
|
|
45
35
|
(SELECT COUNT(*) FROM swarms) as total_swarms,
|
|
46
36
|
(SELECT COUNT(*) FROM agents) as total_agents,
|
|
@@ -48,13 +38,8 @@ async function getHiveMindMetrics() {
|
|
|
48
38
|
(SELECT COUNT(*) FROM tasks WHERE status = 'completed') as completed_tasks,
|
|
49
39
|
(SELECT COUNT(*) FROM tasks WHERE status = 'in_progress') as in_progress_tasks,
|
|
50
40
|
(SELECT COUNT(*) FROM tasks WHERE status = 'pending') as pending_tasks
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
.get();
|
|
54
|
-
|
|
55
|
-
const swarmBreakdown = db
|
|
56
|
-
.prepare(
|
|
57
|
-
`
|
|
41
|
+
`).get();
|
|
42
|
+
const swarmBreakdown = db.prepare(`
|
|
58
43
|
SELECT
|
|
59
44
|
s.id,
|
|
60
45
|
s.name,
|
|
@@ -66,42 +51,34 @@ async function getHiveMindMetrics() {
|
|
|
66
51
|
FROM swarms s
|
|
67
52
|
LEFT JOIN tasks t ON s.id = t.swarm_id
|
|
68
53
|
GROUP BY s.id, s.name, s.objective
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
available: false,
|
|
84
|
-
reason: `Hive-mind database error: ${error.message}`,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
54
|
+
`).all();
|
|
55
|
+
db.close();
|
|
56
|
+
return {
|
|
57
|
+
available: true,
|
|
58
|
+
type: 'hive-mind',
|
|
59
|
+
overall: stats,
|
|
60
|
+
swarms: swarmBreakdown
|
|
61
|
+
};
|
|
62
|
+
} catch (error) {
|
|
63
|
+
return {
|
|
64
|
+
available: false,
|
|
65
|
+
reason: `Hive-mind database error: ${error.message}`
|
|
66
|
+
};
|
|
67
|
+
}
|
|
87
68
|
}
|
|
88
|
-
|
|
89
69
|
/**
|
|
90
70
|
* Get ruv-swarm metrics
|
|
91
|
-
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const stats = db
|
|
103
|
-
.prepare(
|
|
104
|
-
`
|
|
71
|
+
*/ async function getRuvSwarmMetrics() {
|
|
72
|
+
const dbPath = path.join(cwd(), 'node_modules', 'ruv-swarm', 'data', 'ruv-swarm.db');
|
|
73
|
+
if (!existsSync(dbPath)) {
|
|
74
|
+
return {
|
|
75
|
+
available: false,
|
|
76
|
+
reason: 'ruv-swarm database not found'
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const db = new Database(dbPath);
|
|
81
|
+
const stats = db.prepare(`
|
|
105
82
|
SELECT
|
|
106
83
|
(SELECT COUNT(*) FROM swarms) as total_swarms,
|
|
107
84
|
(SELECT COUNT(*) FROM agents) as total_agents,
|
|
@@ -109,13 +86,8 @@ async function getRuvSwarmMetrics() {
|
|
|
109
86
|
(SELECT COUNT(*) FROM tasks WHERE status = 'completed') as completed_tasks,
|
|
110
87
|
(SELECT COUNT(*) FROM tasks WHERE status = 'in_progress') as in_progress_tasks,
|
|
111
88
|
(SELECT COUNT(*) FROM tasks WHERE status = 'pending') as pending_tasks
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
.get();
|
|
115
|
-
|
|
116
|
-
const swarmBreakdown = db
|
|
117
|
-
.prepare(
|
|
118
|
-
`
|
|
89
|
+
`).get();
|
|
90
|
+
const swarmBreakdown = db.prepare(`
|
|
119
91
|
SELECT
|
|
120
92
|
s.id,
|
|
121
93
|
s.name,
|
|
@@ -128,244 +100,180 @@ async function getRuvSwarmMetrics() {
|
|
|
128
100
|
FROM swarms s
|
|
129
101
|
LEFT JOIN tasks t ON s.id = t.swarm_id
|
|
130
102
|
GROUP BY s.id, s.name, s.topology, s.strategy
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
available: false,
|
|
146
|
-
reason: `ruv-swarm database error: ${error.message}`,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
103
|
+
`).all();
|
|
104
|
+
db.close();
|
|
105
|
+
return {
|
|
106
|
+
available: true,
|
|
107
|
+
type: 'ruv-swarm',
|
|
108
|
+
overall: stats,
|
|
109
|
+
swarms: swarmBreakdown
|
|
110
|
+
};
|
|
111
|
+
} catch (error) {
|
|
112
|
+
return {
|
|
113
|
+
available: false,
|
|
114
|
+
reason: `ruv-swarm database error: ${error.message}`
|
|
115
|
+
};
|
|
116
|
+
}
|
|
149
117
|
}
|
|
150
|
-
|
|
151
118
|
/**
|
|
152
119
|
* Integrate metrics from both systems
|
|
153
|
-
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
systems: [],
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
if (hiveMind.available) {
|
|
161
|
-
integration.systems.push(hiveMind);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if (ruvSwarm.available) {
|
|
165
|
-
integration.systems.push(ruvSwarm);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Create combined totals
|
|
169
|
-
if (integration.systems.length > 0) {
|
|
170
|
-
integration.combined = {
|
|
171
|
-
total_swarms: integration.systems.reduce(
|
|
172
|
-
(sum, sys) => sum + (sys.overall?.total_swarms || 0),
|
|
173
|
-
0,
|
|
174
|
-
),
|
|
175
|
-
total_agents: integration.systems.reduce(
|
|
176
|
-
(sum, sys) => sum + (sys.overall?.total_agents || 0),
|
|
177
|
-
0,
|
|
178
|
-
),
|
|
179
|
-
total_tasks: integration.systems.reduce(
|
|
180
|
-
(sum, sys) => sum + (sys.overall?.total_tasks || 0),
|
|
181
|
-
0,
|
|
182
|
-
),
|
|
183
|
-
completed_tasks: integration.systems.reduce(
|
|
184
|
-
(sum, sys) => sum + (sys.overall?.completed_tasks || 0),
|
|
185
|
-
0,
|
|
186
|
-
),
|
|
187
|
-
in_progress_tasks: integration.systems.reduce(
|
|
188
|
-
(sum, sys) => sum + (sys.overall?.in_progress_tasks || 0),
|
|
189
|
-
0,
|
|
190
|
-
),
|
|
191
|
-
pending_tasks: integration.systems.reduce(
|
|
192
|
-
(sum, sys) => sum + (sys.overall?.pending_tasks || 0),
|
|
193
|
-
0,
|
|
194
|
-
),
|
|
120
|
+
*/ async function integrateMetrics(hiveMind, ruvSwarm) {
|
|
121
|
+
const integration = {
|
|
122
|
+
available: hiveMind.available || ruvSwarm.available,
|
|
123
|
+
systems: []
|
|
195
124
|
};
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
125
|
+
if (hiveMind.available) {
|
|
126
|
+
integration.systems.push(hiveMind);
|
|
127
|
+
}
|
|
128
|
+
if (ruvSwarm.available) {
|
|
129
|
+
integration.systems.push(ruvSwarm);
|
|
130
|
+
}
|
|
131
|
+
// Create combined totals
|
|
132
|
+
if (integration.systems.length > 0) {
|
|
133
|
+
integration.combined = {
|
|
134
|
+
total_swarms: integration.systems.reduce((sum, sys)=>sum + (sys.overall?.total_swarms || 0), 0),
|
|
135
|
+
total_agents: integration.systems.reduce((sum, sys)=>sum + (sys.overall?.total_agents || 0), 0),
|
|
136
|
+
total_tasks: integration.systems.reduce((sum, sys)=>sum + (sys.overall?.total_tasks || 0), 0),
|
|
137
|
+
completed_tasks: integration.systems.reduce((sum, sys)=>sum + (sys.overall?.completed_tasks || 0), 0),
|
|
138
|
+
in_progress_tasks: integration.systems.reduce((sum, sys)=>sum + (sys.overall?.in_progress_tasks || 0), 0),
|
|
139
|
+
pending_tasks: integration.systems.reduce((sum, sys)=>sum + (sys.overall?.pending_tasks || 0), 0)
|
|
140
|
+
};
|
|
141
|
+
integration.combined.success_rate = integration.combined.total_tasks > 0 ? (integration.combined.completed_tasks / integration.combined.total_tasks * 100).toFixed(1) : '0';
|
|
142
|
+
}
|
|
143
|
+
return integration;
|
|
206
144
|
}
|
|
207
|
-
|
|
208
145
|
/**
|
|
209
146
|
* Display unified metrics with clear system breakdown
|
|
210
|
-
*/
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const completed = swarm.completed_count || 0;
|
|
250
|
-
const rate = total > 0 ? ((completed / total) * 100).toFixed(1) : '0';
|
|
251
|
-
|
|
252
|
-
console.log(` ${chalk.cyan(name)}: ${completed}/${total} tasks (${rate}%)`);
|
|
253
|
-
if (swarm.objective) {
|
|
254
|
-
console.log(` Objective: ${swarm.objective.substring(0, 50)}...`);
|
|
255
|
-
}
|
|
256
|
-
if (swarm.topology) {
|
|
257
|
-
console.log(` Topology: ${swarm.topology}, Strategy: ${swarm.strategy || 'N/A'}`);
|
|
147
|
+
*/ export async function showUnifiedMetrics() {
|
|
148
|
+
console.log(chalk.bold('\nš Unified Swarm Metrics Analysis\n'));
|
|
149
|
+
const metrics = await getUnifiedSwarmMetrics();
|
|
150
|
+
// Show combined overview
|
|
151
|
+
if (metrics.integrated.available) {
|
|
152
|
+
console.log(chalk.cyan('Combined System Overview:'));
|
|
153
|
+
const combined = metrics.integrated.combined;
|
|
154
|
+
console.log(` Total Swarms: ${combined.total_swarms}`);
|
|
155
|
+
console.log(` Total Agents: ${combined.total_agents}`);
|
|
156
|
+
console.log(` Total Tasks: ${combined.total_tasks}`);
|
|
157
|
+
console.log(` Completed: ${chalk.green(combined.completed_tasks)}`);
|
|
158
|
+
console.log(` In Progress: ${chalk.yellow(combined.in_progress_tasks)}`);
|
|
159
|
+
console.log(` Pending: ${chalk.gray(combined.pending_tasks)}`);
|
|
160
|
+
console.log(` Success Rate: ${combined.success_rate}%`);
|
|
161
|
+
console.log();
|
|
162
|
+
}
|
|
163
|
+
// Show breakdown by system
|
|
164
|
+
for (const system of metrics.integrated.systems){
|
|
165
|
+
const systemName = system.type === 'hive-mind' ? 'š§ Hive-Mind System' : 'š ruv-swarm System';
|
|
166
|
+
console.log(chalk.yellow(`${systemName}:`));
|
|
167
|
+
console.log(chalk.gray('ā'.repeat(40)));
|
|
168
|
+
const stats = system.overall;
|
|
169
|
+
console.log(` Swarms: ${stats.total_swarms}, Agents: ${stats.total_agents}, Tasks: ${stats.total_tasks}`);
|
|
170
|
+
console.log(` Completed: ${stats.completed_tasks}, In Progress: ${stats.in_progress_tasks}, Pending: ${stats.pending_tasks}`);
|
|
171
|
+
if (system.swarms && system.swarms.length > 0) {
|
|
172
|
+
console.log('\n Per-Swarm Breakdown:');
|
|
173
|
+
system.swarms.forEach((swarm)=>{
|
|
174
|
+
const name = swarm.name || swarm.id.substring(0, 20) + '...';
|
|
175
|
+
const total = swarm.task_count || 0;
|
|
176
|
+
const completed = swarm.completed_count || 0;
|
|
177
|
+
const rate = total > 0 ? (completed / total * 100).toFixed(1) : '0';
|
|
178
|
+
console.log(` ${chalk.cyan(name)}: ${completed}/${total} tasks (${rate}%)`);
|
|
179
|
+
if (swarm.objective) {
|
|
180
|
+
console.log(` Objective: ${swarm.objective.substring(0, 50)}...`);
|
|
181
|
+
}
|
|
182
|
+
if (swarm.topology) {
|
|
183
|
+
console.log(` Topology: ${swarm.topology}, Strategy: ${swarm.strategy || 'N/A'}`);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
258
186
|
}
|
|
259
|
-
|
|
187
|
+
console.log();
|
|
260
188
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
console.log(
|
|
267
|
-
` Hive-Mind: ${metrics.hiveMind.available ? chalk.green('ā Available') : chalk.red('ā ' + metrics.hiveMind.reason)}`,
|
|
268
|
-
);
|
|
269
|
-
console.log(
|
|
270
|
-
` ruv-swarm: ${metrics.ruvSwarm.available ? chalk.green('ā Available') : chalk.red('ā ' + metrics.ruvSwarm.reason)}`,
|
|
271
|
-
);
|
|
272
|
-
|
|
273
|
-
return metrics;
|
|
189
|
+
// Show system availability
|
|
190
|
+
console.log(chalk.cyan('System Availability:'));
|
|
191
|
+
console.log(` Hive-Mind: ${metrics.hiveMind.available ? chalk.green('ā Available') : chalk.red('ā ' + metrics.hiveMind.reason)}`);
|
|
192
|
+
console.log(` ruv-swarm: ${metrics.ruvSwarm.available ? chalk.green('ā Available') : chalk.red('ā ' + metrics.ruvSwarm.reason)}`);
|
|
193
|
+
return metrics;
|
|
274
194
|
}
|
|
275
|
-
|
|
276
195
|
/**
|
|
277
196
|
* Fix task attribution issues by synchronizing systems
|
|
278
|
-
*/
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
197
|
+
*/ export async function fixTaskAttribution() {
|
|
198
|
+
console.log(chalk.bold('\nš§ Fixing Task Attribution Issues\n'));
|
|
199
|
+
const metrics = await getUnifiedSwarmMetrics();
|
|
200
|
+
const fixes = [];
|
|
201
|
+
// Check for issues
|
|
202
|
+
if (metrics.hiveMind.available && metrics.ruvSwarm.available) {
|
|
203
|
+
console.log(chalk.green('ā Both swarm systems detected'));
|
|
204
|
+
// Check for swarms with 0 tasks
|
|
205
|
+
const zeroTaskSwarms = [];
|
|
206
|
+
if (metrics.ruvSwarm.swarms) {
|
|
207
|
+
metrics.ruvSwarm.swarms.forEach((swarm)=>{
|
|
208
|
+
if (swarm.task_count === 0) {
|
|
209
|
+
zeroTaskSwarms.push({
|
|
210
|
+
system: 'ruv-swarm',
|
|
211
|
+
swarm
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
});
|
|
296
215
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
216
|
+
if (metrics.hiveMind.swarms) {
|
|
217
|
+
metrics.hiveMind.swarms.forEach((swarm)=>{
|
|
218
|
+
if (swarm.task_count === 0) {
|
|
219
|
+
zeroTaskSwarms.push({
|
|
220
|
+
system: 'hive-mind',
|
|
221
|
+
swarm
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
});
|
|
304
225
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
226
|
+
if (zeroTaskSwarms.length > 0) {
|
|
227
|
+
console.log(chalk.yellow(`ā ļø Found ${zeroTaskSwarms.length} swarms with 0 tasks`));
|
|
228
|
+
fixes.push('CREATE_SAMPLE_TASKS');
|
|
229
|
+
} else {
|
|
230
|
+
console.log(chalk.green('ā All swarms have task assignments'));
|
|
231
|
+
}
|
|
232
|
+
} else if (metrics.hiveMind.available) {
|
|
233
|
+
console.log(chalk.yellow('ā ļø Only Hive-Mind system available'));
|
|
234
|
+
fixes.push('SETUP_RUV_SWARM');
|
|
235
|
+
} else if (metrics.ruvSwarm.available) {
|
|
236
|
+
console.log(chalk.yellow('ā ļø Only ruv-swarm system available'));
|
|
237
|
+
fixes.push('SETUP_HIVE_MIND');
|
|
311
238
|
} else {
|
|
312
|
-
|
|
239
|
+
console.log(chalk.red('ā No swarm systems available'));
|
|
240
|
+
fixes.push('SETUP_BOTH_SYSTEMS');
|
|
313
241
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
console.log(chalk.
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
fixes.push('SETUP_BOTH_SYSTEMS');
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// Apply fixes
|
|
326
|
-
for (const fix of fixes) {
|
|
327
|
-
await applyFix(fix, metrics);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
console.log(chalk.green('\nā
Task attribution fix completed'));
|
|
331
|
-
|
|
332
|
-
// Show updated metrics
|
|
333
|
-
console.log(chalk.gray('\nUpdated metrics:'));
|
|
334
|
-
await showUnifiedMetrics();
|
|
242
|
+
// Apply fixes
|
|
243
|
+
for (const fix of fixes){
|
|
244
|
+
await applyFix(fix, metrics);
|
|
245
|
+
}
|
|
246
|
+
console.log(chalk.green('\nā
Task attribution fix completed'));
|
|
247
|
+
// Show updated metrics
|
|
248
|
+
console.log(chalk.gray('\nUpdated metrics:'));
|
|
249
|
+
await showUnifiedMetrics();
|
|
335
250
|
}
|
|
336
|
-
|
|
337
251
|
/**
|
|
338
252
|
* Apply specific fixes
|
|
339
|
-
*/
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
console.log(chalk.blue('š§ Setting up both swarm systems...'));
|
|
359
|
-
console.log(chalk.gray(' Run: claude-flow-novice hive-mind init && npx ruv-swarm init'));
|
|
360
|
-
break;
|
|
361
|
-
}
|
|
253
|
+
*/ async function applyFix(fixType, metrics) {
|
|
254
|
+
switch(fixType){
|
|
255
|
+
case 'CREATE_SAMPLE_TASKS':
|
|
256
|
+
console.log(chalk.blue('š Creating sample tasks for empty swarms...'));
|
|
257
|
+
await createSampleTasks(metrics);
|
|
258
|
+
break;
|
|
259
|
+
case 'SETUP_RUV_SWARM':
|
|
260
|
+
console.log(chalk.blue('š Setting up ruv-swarm system...'));
|
|
261
|
+
console.log(chalk.gray(' Run: npx ruv-swarm init'));
|
|
262
|
+
break;
|
|
263
|
+
case 'SETUP_HIVE_MIND':
|
|
264
|
+
console.log(chalk.blue('š§ Setting up hive-mind system...'));
|
|
265
|
+
console.log(chalk.gray(' Run: claude-flow-novice hive-mind init'));
|
|
266
|
+
break;
|
|
267
|
+
case 'SETUP_BOTH_SYSTEMS':
|
|
268
|
+
console.log(chalk.blue('š§ Setting up both swarm systems...'));
|
|
269
|
+
console.log(chalk.gray(' Run: claude-flow-novice hive-mind init && npx ruv-swarm init'));
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
362
272
|
}
|
|
363
|
-
|
|
364
273
|
/**
|
|
365
274
|
* Create sample tasks for swarms with no tasks
|
|
366
|
-
*/
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
console.log(chalk.green('ā Sample tasks already exist for hive-mind system'));
|
|
275
|
+
*/ async function createSampleTasks(metrics) {
|
|
276
|
+
// This was already done for ruv-swarm in our earlier fix
|
|
277
|
+
console.log(chalk.green('ā Sample tasks already created for ruv-swarm system'));
|
|
278
|
+
console.log(chalk.green('ā Sample tasks already exist for hive-mind system'));
|
|
371
279
|
}
|