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,373 +1,289 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Performance Test Suite for Hive Mind Optimizations
|
|
3
3
|
* Tests the performance improvements implemented
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import { PerformanceOptimizer } from './performance-optimizer.js';
|
|
8
|
-
import { performance } from 'perf_hooks';
|
|
9
|
-
|
|
4
|
+
*/ import { HiveMindCore } from "./core.js";
|
|
5
|
+
import { PerformanceOptimizer } from "./performance-optimizer.js";
|
|
6
|
+
import { performance } from "perf_hooks";
|
|
10
7
|
/**
|
|
11
8
|
* Performance test runner
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
15
|
-
this.results = [];
|
|
16
|
-
this.baseline = null;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
9
|
+
*/ export class PerformanceTest {
|
|
10
|
+
/**
|
|
20
11
|
* Run complete performance test suite
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
12
|
+
*/ async runTestSuite() {
|
|
13
|
+
console.log('🔬 Starting Hive Mind Performance Test Suite...\n');
|
|
14
|
+
const tests = [
|
|
15
|
+
this.testBatchAgentSpawning,
|
|
16
|
+
this.testAsyncOperationQueue,
|
|
17
|
+
this.testMemoryOperations,
|
|
18
|
+
this.testConcurrentTaskExecution,
|
|
19
|
+
this.testPerformanceOptimizer
|
|
20
|
+
];
|
|
21
|
+
for (const test of tests){
|
|
22
|
+
try {
|
|
23
|
+
await test.call(this);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
console.error(`Test failed: ${test.name}`, error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
this.generateReport();
|
|
39
29
|
}
|
|
40
|
-
|
|
41
|
-
this.generateReport();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
30
|
+
/**
|
|
45
31
|
* Test batch agent spawning performance
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
32
|
+
*/ async testBatchAgentSpawning() {
|
|
33
|
+
console.log('🚀 Testing Batch Agent Spawning...');
|
|
34
|
+
const hiveMind = new HiveMindCore({
|
|
35
|
+
name: 'test-batch-spawn',
|
|
36
|
+
maxWorkers: 10
|
|
37
|
+
});
|
|
38
|
+
await hiveMind.initialize();
|
|
39
|
+
// Test batch spawning vs sequential spawning
|
|
40
|
+
const agentTypes = [
|
|
41
|
+
'coder',
|
|
42
|
+
'tester',
|
|
43
|
+
'analyst',
|
|
44
|
+
'researcher',
|
|
45
|
+
'architect',
|
|
46
|
+
'optimizer'
|
|
47
|
+
];
|
|
48
|
+
// Batch spawning test
|
|
49
|
+
const batchStart = performance.now();
|
|
50
|
+
const batchResults = await hiveMind.spawnWorkers(agentTypes);
|
|
51
|
+
const batchTime = performance.now() - batchStart;
|
|
52
|
+
// Simulate sequential spawning for comparison
|
|
53
|
+
const sequentialStart = performance.now();
|
|
54
|
+
for(let i = 0; i < agentTypes.length; i++){
|
|
55
|
+
// Simulate individual spawning time
|
|
56
|
+
await new Promise((resolve)=>setTimeout(resolve, 200));
|
|
57
|
+
}
|
|
58
|
+
const sequentialTime = performance.now() - sequentialStart;
|
|
59
|
+
const improvement = ((sequentialTime - batchTime) / sequentialTime * 100).toFixed(2);
|
|
60
|
+
this.results.push({
|
|
61
|
+
test: 'Batch Agent Spawning',
|
|
62
|
+
batchTime: batchTime.toFixed(2) + 'ms',
|
|
63
|
+
sequentialTime: sequentialTime.toFixed(2) + 'ms',
|
|
64
|
+
improvement: improvement + '%',
|
|
65
|
+
agentsSpawned: batchResults.length,
|
|
66
|
+
status: improvement > 50 ? 'PASS' : 'WARN'
|
|
67
|
+
});
|
|
68
|
+
console.log(` ✅ Batch: ${batchTime.toFixed(2)}ms | Sequential: ${sequentialTime.toFixed(2)}ms | Improvement: ${improvement}%\n`);
|
|
69
|
+
await hiveMind.shutdown();
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const improvement = (((sequentialTime - batchTime) / sequentialTime) * 100).toFixed(2);
|
|
74
|
-
|
|
75
|
-
this.results.push({
|
|
76
|
-
test: 'Batch Agent Spawning',
|
|
77
|
-
batchTime: batchTime.toFixed(2) + 'ms',
|
|
78
|
-
sequentialTime: sequentialTime.toFixed(2) + 'ms',
|
|
79
|
-
improvement: improvement + '%',
|
|
80
|
-
agentsSpawned: batchResults.length,
|
|
81
|
-
status: improvement > 50 ? 'PASS' : 'WARN',
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
console.log(
|
|
85
|
-
` ✅ Batch: ${batchTime.toFixed(2)}ms | Sequential: ${sequentialTime.toFixed(2)}ms | Improvement: ${improvement}%\n`,
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
await hiveMind.shutdown();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
71
|
+
/**
|
|
92
72
|
* Test async operation queue performance
|
|
93
|
-
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
73
|
+
*/ async testAsyncOperationQueue() {
|
|
74
|
+
console.log('⚡ Testing Async Operation Queue...');
|
|
75
|
+
const optimizer = new PerformanceOptimizer({
|
|
76
|
+
asyncQueueConcurrency: 5
|
|
77
|
+
});
|
|
78
|
+
const operations = [];
|
|
79
|
+
for(let i = 0; i < 20; i++){
|
|
80
|
+
operations.push(async ()=>{
|
|
81
|
+
await new Promise((resolve)=>setTimeout(resolve, Math.random() * 100 + 50));
|
|
82
|
+
return `Operation ${i} completed`;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// Test parallel execution
|
|
86
|
+
const parallelStart = performance.now();
|
|
87
|
+
const parallelResults = await Promise.all(operations.map((op)=>optimizer.optimizeAsyncOperation(op)));
|
|
88
|
+
const parallelTime = performance.now() - parallelStart;
|
|
89
|
+
// Test sequential execution for comparison
|
|
90
|
+
const sequentialStart = performance.now();
|
|
91
|
+
const sequentialResults = [];
|
|
92
|
+
for (const op of operations){
|
|
93
|
+
sequentialResults.push(await op());
|
|
94
|
+
}
|
|
95
|
+
const sequentialTime = performance.now() - sequentialStart;
|
|
96
|
+
const improvement = ((sequentialTime - parallelTime) / sequentialTime * 100).toFixed(2);
|
|
97
|
+
this.results.push({
|
|
98
|
+
test: 'Async Operation Queue',
|
|
99
|
+
parallelTime: parallelTime.toFixed(2) + 'ms',
|
|
100
|
+
sequentialTime: sequentialTime.toFixed(2) + 'ms',
|
|
101
|
+
improvement: improvement + '%',
|
|
102
|
+
operationsProcessed: operations.length,
|
|
103
|
+
status: improvement > 60 ? 'PASS' : 'WARN'
|
|
104
|
+
});
|
|
105
|
+
console.log(` ✅ Parallel: ${parallelTime.toFixed(2)}ms | Sequential: ${sequentialTime.toFixed(2)}ms | Improvement: ${improvement}%\n`);
|
|
106
|
+
await optimizer.close();
|
|
121
107
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const improvement = (((sequentialTime - parallelTime) / sequentialTime) * 100).toFixed(2);
|
|
125
|
-
|
|
126
|
-
this.results.push({
|
|
127
|
-
test: 'Async Operation Queue',
|
|
128
|
-
parallelTime: parallelTime.toFixed(2) + 'ms',
|
|
129
|
-
sequentialTime: sequentialTime.toFixed(2) + 'ms',
|
|
130
|
-
improvement: improvement + '%',
|
|
131
|
-
operationsProcessed: operations.length,
|
|
132
|
-
status: improvement > 60 ? 'PASS' : 'WARN',
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
console.log(
|
|
136
|
-
` ✅ Parallel: ${parallelTime.toFixed(2)}ms | Sequential: ${sequentialTime.toFixed(2)}ms | Improvement: ${improvement}%\n`,
|
|
137
|
-
);
|
|
138
|
-
|
|
139
|
-
await optimizer.close();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
108
|
+
/**
|
|
143
109
|
* Test memory operations with connection pooling
|
|
144
|
-
*/
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
110
|
+
*/ async testMemoryOperations() {
|
|
111
|
+
console.log('💾 Testing Memory Operations...');
|
|
112
|
+
// This would test the CollectiveMemory optimizations
|
|
113
|
+
// For now, we'll simulate the test
|
|
114
|
+
const pooledStart = performance.now();
|
|
115
|
+
// Simulate 100 memory operations with connection pooling
|
|
116
|
+
const operations = Array(100).fill(null).map(async (_, i)=>{
|
|
117
|
+
await new Promise((resolve)=>setTimeout(resolve, Math.random() * 10));
|
|
118
|
+
return {
|
|
119
|
+
key: `test-${i}`,
|
|
120
|
+
value: `data-${i}`
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
await Promise.all(operations);
|
|
124
|
+
const pooledTime = performance.now() - pooledStart;
|
|
125
|
+
// Simulate without pooling
|
|
126
|
+
const serialStart = performance.now();
|
|
127
|
+
for(let i = 0; i < 100; i++){
|
|
128
|
+
await new Promise((resolve)=>setTimeout(resolve, Math.random() * 15 + 5));
|
|
129
|
+
}
|
|
130
|
+
const serialTime = performance.now() - serialStart;
|
|
131
|
+
const improvement = ((serialTime - pooledTime) / serialTime * 100).toFixed(2);
|
|
132
|
+
this.results.push({
|
|
133
|
+
test: 'Memory Operations',
|
|
134
|
+
pooledTime: pooledTime.toFixed(2) + 'ms',
|
|
135
|
+
serialTime: serialTime.toFixed(2) + 'ms',
|
|
136
|
+
improvement: improvement + '%',
|
|
137
|
+
operationsProcessed: 100,
|
|
138
|
+
status: improvement > 25 ? 'PASS' : 'WARN'
|
|
139
|
+
});
|
|
140
|
+
console.log(` ✅ Pooled: ${pooledTime.toFixed(2)}ms | Serial: ${serialTime.toFixed(2)}ms | Improvement: ${improvement}%\n`);
|
|
167
141
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const improvement = (((serialTime - pooledTime) / serialTime) * 100).toFixed(2);
|
|
171
|
-
|
|
172
|
-
this.results.push({
|
|
173
|
-
test: 'Memory Operations',
|
|
174
|
-
pooledTime: pooledTime.toFixed(2) + 'ms',
|
|
175
|
-
serialTime: serialTime.toFixed(2) + 'ms',
|
|
176
|
-
improvement: improvement + '%',
|
|
177
|
-
operationsProcessed: 100,
|
|
178
|
-
status: improvement > 25 ? 'PASS' : 'WARN',
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
console.log(
|
|
182
|
-
` ✅ Pooled: ${pooledTime.toFixed(2)}ms | Serial: ${serialTime.toFixed(2)}ms | Improvement: ${improvement}%\n`,
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
142
|
+
/**
|
|
187
143
|
* Test concurrent task execution
|
|
188
|
-
*/
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
executionTime: concurrentTime.toFixed(2) + 'ms',
|
|
230
|
-
tasksCreated: status.tasks.total,
|
|
231
|
-
workersActive: status.workers.length,
|
|
232
|
-
throughput: (status.tasks.total / (concurrentTime / 1000)).toFixed(2) + ' tasks/sec',
|
|
233
|
-
status: status.tasks.total === tasks.length ? 'PASS' : 'WARN',
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
console.log(
|
|
237
|
-
` ✅ Tasks: ${status.tasks.total} | Workers: ${status.workers.length} | Time: ${concurrentTime.toFixed(2)}ms\n`,
|
|
238
|
-
);
|
|
239
|
-
|
|
240
|
-
await hiveMind.shutdown();
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Test performance optimizer functionality
|
|
245
|
-
*/
|
|
246
|
-
async testPerformanceOptimizer() {
|
|
247
|
-
console.log('📊 Testing Performance Optimizer...');
|
|
248
|
-
|
|
249
|
-
const optimizer = new PerformanceOptimizer({
|
|
250
|
-
enableAsyncQueue: true,
|
|
251
|
-
enableBatchProcessing: true,
|
|
252
|
-
enableAutoTuning: true,
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
// Test cache optimization
|
|
256
|
-
const cacheKey = 'test-cache-key';
|
|
257
|
-
let cacheHits = 0;
|
|
258
|
-
let cacheMisses = 0;
|
|
259
|
-
|
|
260
|
-
// First call should be a miss
|
|
261
|
-
const cacheStart = performance.now();
|
|
262
|
-
await optimizer.optimizeWithCache(cacheKey, async () => {
|
|
263
|
-
cacheMisses++;
|
|
264
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
265
|
-
return 'cached-value';
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
// Subsequent calls should be hits
|
|
269
|
-
for (let i = 0; i < 5; i++) {
|
|
270
|
-
await optimizer.optimizeWithCache(cacheKey, async () => {
|
|
271
|
-
cacheMisses++;
|
|
272
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
273
|
-
return 'cached-value';
|
|
274
|
-
});
|
|
275
|
-
cacheHits++;
|
|
144
|
+
*/ async testConcurrentTaskExecution() {
|
|
145
|
+
console.log('🔄 Testing Concurrent Task Execution...');
|
|
146
|
+
const hiveMind = new HiveMindCore({
|
|
147
|
+
name: 'test-concurrent-tasks',
|
|
148
|
+
maxWorkers: 8
|
|
149
|
+
});
|
|
150
|
+
await hiveMind.initialize();
|
|
151
|
+
// Spawn workers
|
|
152
|
+
await hiveMind.spawnWorkers([
|
|
153
|
+
'coder',
|
|
154
|
+
'tester',
|
|
155
|
+
'analyst',
|
|
156
|
+
'researcher'
|
|
157
|
+
]);
|
|
158
|
+
const tasks = [
|
|
159
|
+
'Implement user authentication',
|
|
160
|
+
'Write unit tests',
|
|
161
|
+
'Analyze performance metrics',
|
|
162
|
+
'Research best practices',
|
|
163
|
+
'Optimize database queries',
|
|
164
|
+
'Document API endpoints'
|
|
165
|
+
];
|
|
166
|
+
// Test concurrent task creation and execution
|
|
167
|
+
const concurrentStart = performance.now();
|
|
168
|
+
const taskPromises = tasks.map((description)=>hiveMind.createTask(description, Math.floor(Math.random() * 10) + 1));
|
|
169
|
+
await Promise.all(taskPromises);
|
|
170
|
+
// Wait for tasks to complete (simulated)
|
|
171
|
+
await new Promise((resolve)=>setTimeout(resolve, 2000));
|
|
172
|
+
const concurrentTime = performance.now() - concurrentStart;
|
|
173
|
+
// Get final status
|
|
174
|
+
const status = hiveMind.getStatus();
|
|
175
|
+
this.results.push({
|
|
176
|
+
test: 'Concurrent Task Execution',
|
|
177
|
+
executionTime: concurrentTime.toFixed(2) + 'ms',
|
|
178
|
+
tasksCreated: status.tasks.total,
|
|
179
|
+
workersActive: status.workers.length,
|
|
180
|
+
throughput: (status.tasks.total / (concurrentTime / 1000)).toFixed(2) + ' tasks/sec',
|
|
181
|
+
status: status.tasks.total === tasks.length ? 'PASS' : 'WARN'
|
|
182
|
+
});
|
|
183
|
+
console.log(` ✅ Tasks: ${status.tasks.total} | Workers: ${status.workers.length} | Time: ${concurrentTime.toFixed(2)}ms\n`);
|
|
184
|
+
await hiveMind.shutdown();
|
|
276
185
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
)
|
|
293
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Test performance optimizer functionality
|
|
188
|
+
*/ async testPerformanceOptimizer() {
|
|
189
|
+
console.log('📊 Testing Performance Optimizer...');
|
|
190
|
+
const optimizer = new PerformanceOptimizer({
|
|
191
|
+
enableAsyncQueue: true,
|
|
192
|
+
enableBatchProcessing: true,
|
|
193
|
+
enableAutoTuning: true
|
|
194
|
+
});
|
|
195
|
+
// Test cache optimization
|
|
196
|
+
const cacheKey = 'test-cache-key';
|
|
197
|
+
let cacheHits = 0;
|
|
198
|
+
let cacheMisses = 0;
|
|
199
|
+
// First call should be a miss
|
|
200
|
+
const cacheStart = performance.now();
|
|
201
|
+
await optimizer.optimizeWithCache(cacheKey, async ()=>{
|
|
202
|
+
cacheMisses++;
|
|
203
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
204
|
+
return 'cached-value';
|
|
205
|
+
});
|
|
206
|
+
// Subsequent calls should be hits
|
|
207
|
+
for(let i = 0; i < 5; i++){
|
|
208
|
+
await optimizer.optimizeWithCache(cacheKey, async ()=>{
|
|
209
|
+
cacheMisses++;
|
|
210
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
211
|
+
return 'cached-value';
|
|
212
|
+
});
|
|
213
|
+
cacheHits++;
|
|
214
|
+
}
|
|
215
|
+
const cacheTime = performance.now() - cacheStart;
|
|
216
|
+
// Test batch processing
|
|
217
|
+
const batchStart = performance.now();
|
|
218
|
+
const batchPromises = [];
|
|
219
|
+
for(let i = 0; i < 10; i++){
|
|
220
|
+
batchPromises.push(optimizer.optimizeBatchOperation('test-batch', {
|
|
221
|
+
id: i,
|
|
222
|
+
data: `test-${i}`
|
|
223
|
+
}, async (items)=>{
|
|
224
|
+
await new Promise((resolve)=>setTimeout(resolve, 50));
|
|
225
|
+
return items.map((item)=>({
|
|
226
|
+
processed: item.id
|
|
227
|
+
}));
|
|
228
|
+
}));
|
|
229
|
+
}
|
|
230
|
+
await Promise.all(batchPromises);
|
|
231
|
+
const batchTime = performance.now() - batchStart;
|
|
232
|
+
const stats = optimizer.getPerformanceStats();
|
|
233
|
+
this.results.push({
|
|
234
|
+
test: 'Performance Optimizer',
|
|
235
|
+
cacheTime: cacheTime.toFixed(2) + 'ms',
|
|
236
|
+
cacheHitRate: (cacheHits / (cacheHits + cacheMisses) * 100).toFixed(2) + '%',
|
|
237
|
+
batchTime: batchTime.toFixed(2) + 'ms',
|
|
238
|
+
batchesProcessed: stats.batchProcessor.batchesProcessed,
|
|
239
|
+
status: stats.cache.hitRate > 50 ? 'PASS' : 'WARN'
|
|
240
|
+
});
|
|
241
|
+
console.log(` ✅ Cache Hit Rate: ${(cacheHits / (cacheHits + cacheMisses) * 100).toFixed(2)}% | Batches: ${stats.batchProcessor.batchesProcessed}\n`);
|
|
242
|
+
await optimizer.close();
|
|
294
243
|
}
|
|
295
|
-
|
|
296
|
-
await Promise.all(batchPromises);
|
|
297
|
-
const batchTime = performance.now() - batchStart;
|
|
298
|
-
|
|
299
|
-
const stats = optimizer.getPerformanceStats();
|
|
300
|
-
|
|
301
|
-
this.results.push({
|
|
302
|
-
test: 'Performance Optimizer',
|
|
303
|
-
cacheTime: cacheTime.toFixed(2) + 'ms',
|
|
304
|
-
cacheHitRate: ((cacheHits / (cacheHits + cacheMisses)) * 100).toFixed(2) + '%',
|
|
305
|
-
batchTime: batchTime.toFixed(2) + 'ms',
|
|
306
|
-
batchesProcessed: stats.batchProcessor.batchesProcessed,
|
|
307
|
-
status: stats.cache.hitRate > 50 ? 'PASS' : 'WARN',
|
|
308
|
-
});
|
|
309
|
-
|
|
310
|
-
console.log(
|
|
311
|
-
` ✅ Cache Hit Rate: ${((cacheHits / (cacheHits + cacheMisses)) * 100).toFixed(2)}% | Batches: ${stats.batchProcessor.batchesProcessed}\n`,
|
|
312
|
-
);
|
|
313
|
-
|
|
314
|
-
await optimizer.close();
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/**
|
|
244
|
+
/**
|
|
318
245
|
* Generate comprehensive performance report
|
|
319
|
-
*/
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
246
|
+
*/ generateReport() {
|
|
247
|
+
console.log('📊 Performance Test Results');
|
|
248
|
+
console.log('='.repeat(80));
|
|
249
|
+
let totalPassed = 0;
|
|
250
|
+
let totalTests = this.results.length;
|
|
251
|
+
this.results.forEach((result, index)=>{
|
|
252
|
+
console.log(`\n${index + 1}. ${result.test}`);
|
|
253
|
+
console.log('-'.repeat(40));
|
|
254
|
+
Object.entries(result).forEach(([key, value])=>{
|
|
255
|
+
if (key !== 'test' && key !== 'status') {
|
|
256
|
+
console.log(` ${key.charAt(0).toUpperCase() + key.slice(1)}: ${value}`);
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
const statusIcon = result.status === 'PASS' ? '✅' : '⚠️';
|
|
260
|
+
console.log(` Status: ${statusIcon} ${result.status}`);
|
|
261
|
+
if (result.status === 'PASS') totalPassed++;
|
|
262
|
+
});
|
|
263
|
+
console.log('\n' + '='.repeat(80));
|
|
264
|
+
console.log(`📈 Overall Results: ${totalPassed}/${totalTests} tests passed`);
|
|
265
|
+
if (totalPassed === totalTests) {
|
|
266
|
+
console.log('🎉 All performance optimizations are working correctly!');
|
|
267
|
+
} else {
|
|
268
|
+
console.log('⚠️ Some optimizations may need attention.');
|
|
269
|
+
}
|
|
270
|
+
// Performance summary
|
|
271
|
+
const improvements = this.results.filter((r)=>r.improvement).map((r)=>parseFloat(r.improvement));
|
|
272
|
+
if (improvements.length > 0) {
|
|
273
|
+
const avgImprovement = improvements.reduce((a, b)=>a + b, 0) / improvements.length;
|
|
274
|
+
console.log(`🚀 Average Performance Improvement: ${avgImprovement.toFixed(2)}%`);
|
|
334
275
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
const statusIcon = result.status === 'PASS' ? '✅' : '⚠️';
|
|
338
|
-
console.log(` Status: ${statusIcon} ${result.status}`);
|
|
339
|
-
|
|
340
|
-
if (result.status === 'PASS') totalPassed++;
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
console.log('\n' + '='.repeat(80));
|
|
344
|
-
console.log(`📈 Overall Results: ${totalPassed}/${totalTests} tests passed`);
|
|
345
|
-
|
|
346
|
-
if (totalPassed === totalTests) {
|
|
347
|
-
console.log('🎉 All performance optimizations are working correctly!');
|
|
348
|
-
} else {
|
|
349
|
-
console.log('⚠️ Some optimizations may need attention.');
|
|
276
|
+
console.log('\n🔧 Performance optimization implementation complete!');
|
|
350
277
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
.filter((r) => r.improvement)
|
|
355
|
-
.map((r) => parseFloat(r.improvement));
|
|
356
|
-
|
|
357
|
-
if (improvements.length > 0) {
|
|
358
|
-
const avgImprovement = improvements.reduce((a, b) => a + b, 0) / improvements.length;
|
|
359
|
-
console.log(`🚀 Average Performance Improvement: ${avgImprovement.toFixed(2)}%`);
|
|
278
|
+
constructor(){
|
|
279
|
+
this.results = [];
|
|
280
|
+
this.baseline = null;
|
|
360
281
|
}
|
|
361
|
-
|
|
362
|
-
console.log('\n🔧 Performance optimization implementation complete!');
|
|
363
|
-
}
|
|
364
282
|
}
|
|
365
|
-
|
|
366
283
|
// Export for use in tests
|
|
367
284
|
export default PerformanceTest;
|
|
368
|
-
|
|
369
285
|
// Run tests if executed directly
|
|
370
286
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
371
|
-
|
|
372
|
-
|
|
287
|
+
const testRunner = new PerformanceTest();
|
|
288
|
+
testRunner.runTestSuite().catch(console.error);
|
|
373
289
|
}
|