claude-flow-novice 1.3.0 โ 1.3.2
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/.claude-flow-novice/preferences/generation.json +147 -0
- package/.claude-flow-novice/preferences/language-configs/javascript.json +51 -0
- package/.claude-flow-novice/preferences/language-configs/python.json +50 -0
- package/.claude-flow-novice/preferences/language-configs/rust.json +237 -0
- package/.claude-flow-novice/preferences/language-configs/typescript.json +54 -0
- package/.claude-flow-novice/preferences/project-local.json +91 -0
- package/.claude-flow-novice/preferences/resource-delegation.json +120 -0
- package/.claude-flow-novice/preferences/team-shared.json +195 -0
- package/.claude-flow-novice/preferences/user-global.json +247 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-JAVASCRIPT.md +769 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-PYTHON.md +1214 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-RUST.md +475 -0
- package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-TYPESCRIPT.md +851 -0
- package/.claude-flow-novice/templates/claude-md-templates/README.md +263 -0
- package/CLAUDE.md +81 -0
- package/README-NPM.md +0 -0
- package/package.json +11 -7
- package/scripts/build/README.md +167 -0
- package/scripts/build/build-config.js +27 -0
- package/scripts/build/build-prompt-copier.sh +30 -0
- package/scripts/build/performance-monitor.js +869 -0
- package/scripts/build/prepare-publish.js +150 -0
- package/scripts/build/typescript-fixer.js +621 -0
- package/scripts/build/unified-builder.sh +428 -0
- package/scripts/build/update-bin-version.js +32 -0
- package/scripts/dev/README.md +264 -0
- package/scripts/dev/claude-flow-wrapper.sh +35 -0
- package/scripts/dev/claude-monitor.py +419 -0
- package/scripts/dev/claude-sparc.sh +562 -0
- package/scripts/dev/claude-wrapper.sh +17 -0
- package/scripts/dev/demo-phase3-compliance.js +172 -0
- package/scripts/dev/demo-task-system.ts +224 -0
- package/scripts/dev/deployment-validator.js +315 -0
- package/scripts/dev/spawn-claude-terminal.sh +32 -0
- package/scripts/dev/start-portal.sh +506 -0
- package/scripts/dev/start-web-ui.js +15 -0
- package/scripts/dev/stop-portal.sh +311 -0
- package/scripts/dev/validate-examples.ts +288 -0
- package/scripts/dev/validate-phase2.cjs +451 -0
- package/scripts/dev/validate-phase2.js +785 -0
- package/scripts/dev/validate-phase3.cjs +208 -0
- package/scripts/dev/validate-security-remediation.js +1 -0
- package/scripts/legacy/README.md +272 -0
- package/scripts/legacy/batch-fix-ts.sh +54 -0
- package/scripts/legacy/build-migration.sh +105 -0
- package/scripts/legacy/build-monitor.js +209 -0
- package/scripts/legacy/build-with-filter.sh +84 -0
- package/scripts/legacy/build-workaround.sh +71 -0
- package/scripts/legacy/fix-ts-advanced.js +358 -0
- package/scripts/legacy/fix-ts-final.sh +50 -0
- package/scripts/legacy/fix-ts-targeted.sh +49 -0
- package/scripts/legacy/fix-typescript-errors.js +305 -0
- package/scripts/legacy/force-build.sh +63 -0
- package/scripts/legacy/optimize-performance.js +400 -0
- package/scripts/legacy/performance-monitor.js +263 -0
- package/scripts/legacy/performance-monitoring.js +532 -0
- package/scripts/legacy/performance-test-runner.js +645 -0
- package/scripts/legacy/quick-fix-ts.js +281 -0
- package/scripts/legacy/safe-build.sh +63 -0
- package/scripts/migration/README.md +434 -0
- package/scripts/migration/install-arm64.js +78 -0
- package/scripts/migration/install.js +83 -0
- package/scripts/migration/migrate-hooks.js +173 -0
- package/scripts/migration/migration-examples.ts +318 -0
- package/scripts/optimization/build-optimizer.js +438 -0
- package/scripts/optimization/config-validator.js +761 -0
- package/scripts/optimization/test-optimization.js +432 -0
- package/scripts/optimization/unified-activation.js +839 -0
- package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
- package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
- package/scripts/performance/test-enhanced-backend.sh +504 -0
- package/scripts/performance-test-runner.js +698 -0
- package/scripts/security/README.md +339 -0
- package/scripts/security/install-git-hooks.sh +132 -0
- package/scripts/security/ruv-swarm-safe.js +74 -0
- package/scripts/test/README.md +236 -0
- package/scripts/test/check-links.ts +274 -0
- package/scripts/test/check-performance-regression.ts +168 -0
- package/scripts/test/coverage-report.ts +692 -0
- package/scripts/test/generate-swarm-tests.js +633 -0
- package/scripts/test/integration-test-validation.cjs +253 -0
- package/scripts/test/load-test-swarm.js +576 -0
- package/scripts/test/run-phase3-compliance-tests.js +427 -0
- package/scripts/test/test-batch-tasks.ts +29 -0
- package/scripts/test/test-byzantine-resolution.js +246 -0
- package/scripts/test/test-claude-spawn-options.sh +63 -0
- package/scripts/test/test-cli-wizard.js +331 -0
- package/scripts/test/test-comprehensive.js +401 -0
- package/scripts/test/test-coordination-features.ts +238 -0
- package/scripts/test/test-fallback-systems.js +276 -0
- package/scripts/test/test-init-command.ts +302 -0
- package/scripts/test/test-mcp.ts +251 -0
- package/scripts/test/test-runner.ts +568 -0
- package/scripts/test/test-swarm-integration.sh +92 -0
- package/scripts/test/test-swarm.ts +142 -0
- package/scripts/test/validation-summary.ts +408 -0
- package/scripts/utils/README.md +261 -0
- package/scripts/utils/clean-build-artifacts.sh +94 -0
- package/scripts/utils/cleanup-root.sh +69 -0
- package/scripts/utils/fix-cliffy-imports.js +307 -0
- package/scripts/utils/fix-duplicate-imports.js +114 -0
- package/scripts/utils/fix-error-handling.cjs +70 -0
- package/scripts/utils/fix-import-paths.js +104 -0
- package/scripts/utils/fix-imports.js +116 -0
- package/scripts/utils/fix-shebang.js +78 -0
- package/scripts/utils/fix-test-modules.js +27 -0
- package/scripts/utils/fix-timezone-issue-246.js +200 -0
- package/scripts/utils/fix-ts-comprehensive.py +182 -0
- package/scripts/utils/fix-ts-targeted-batch.js +250 -0
- package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
- package/scripts/utils/simple-test-fixer.js +190 -0
- package/scripts/utils/validate-metrics-structure.cjs +144 -0
- package/scripts/verify-mcp-server.js +86 -0
- package/src/cli/simple-commands/__tests__/agent.test.js +291 -0
- package/src/cli/simple-commands/__tests__/memory.test.js +8 -0
- package/src/cli/simple-commands/__tests__/swarm.test.js +371 -0
- package/src/cli/simple-commands/__tests__/task.test.js +8 -0
- package/src/cli/simple-commands/agent.js +216 -0
- package/src/cli/simple-commands/analysis.js +570 -0
- package/src/cli/simple-commands/automation-executor.js +1603 -0
- package/src/cli/simple-commands/automation.js +627 -0
- package/src/cli/simple-commands/batch-manager.js +338 -0
- package/src/cli/simple-commands/claude-telemetry.js +311 -0
- package/src/cli/simple-commands/claude-track.js +102 -0
- package/src/cli/simple-commands/concurrent-display.js +348 -0
- package/src/cli/simple-commands/config.js +319 -0
- package/src/cli/simple-commands/coordination.js +307 -0
- package/src/cli/simple-commands/enhanced-ui-views.js +654 -0
- package/src/cli/simple-commands/enhanced-webui-complete.js +1038 -0
- package/src/cli/simple-commands/fix-hook-variables.js +363 -0
- package/src/cli/simple-commands/github/gh-coordinator.js +605 -0
- package/src/cli/simple-commands/github/github-api.js +624 -0
- package/src/cli/simple-commands/github/init.js +543 -0
- package/src/cli/simple-commands/github.js +377 -0
- package/src/cli/simple-commands/goal.js +145 -0
- package/src/cli/simple-commands/hive-mind/auto-save-middleware.js +311 -0
- package/src/cli/simple-commands/hive-mind/communication.js +740 -0
- package/src/cli/simple-commands/hive-mind/core.js +1031 -0
- package/src/cli/simple-commands/hive-mind/db-optimizer.js +872 -0
- package/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1364 -0
- package/src/cli/simple-commands/hive-mind/memory.js +1292 -0
- package/src/cli/simple-commands/hive-mind/performance-optimizer.js +618 -0
- package/src/cli/simple-commands/hive-mind/performance-test.js +373 -0
- package/src/cli/simple-commands/hive-mind/queen.js +809 -0
- package/src/cli/simple-commands/hive-mind/session-manager.js +1223 -0
- package/src/cli/simple-commands/hive-mind-optimize.js +361 -0
- package/src/cli/simple-commands/hive-mind-wizard.js +281 -0
- package/src/cli/simple-commands/hive-mind.js +3112 -0
- package/src/cli/simple-commands/hive.js +140 -0
- package/src/cli/simple-commands/hook-safety.js +671 -0
- package/src/cli/simple-commands/hooks.js +1268 -0
- package/src/cli/simple-commands/init/.claude/checkpoints/1756224542.json +7 -0
- package/src/cli/simple-commands/init/.claude/checkpoints/1756224544.json +8 -0
- package/src/cli/simple-commands/init/README.md +106 -0
- package/src/cli/simple-commands/init/VALIDATION_ROLLBACK.md +488 -0
- package/src/cli/simple-commands/init/agent-copier.js +347 -0
- package/src/cli/simple-commands/init/batch-init.js +663 -0
- package/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +438 -0
- package/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +876 -0
- package/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +356 -0
- package/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +501 -0
- package/src/cli/simple-commands/init/claude-commands/slash-commands.js +57 -0
- package/src/cli/simple-commands/init/claude-commands/sparc-commands.js +296 -0
- package/src/cli/simple-commands/init/copy-revised-templates.js +175 -0
- package/src/cli/simple-commands/init/executable-wrapper.js +122 -0
- package/src/cli/simple-commands/init/gitignore-updater.js +137 -0
- package/src/cli/simple-commands/init/help.js +110 -0
- package/src/cli/simple-commands/init/hive-mind-init.js +749 -0
- package/src/cli/simple-commands/init/index.js +1953 -0
- package/src/cli/simple-commands/init/performance-monitor.js +344 -0
- package/src/cli/simple-commands/init/rollback/backup-manager.js +542 -0
- package/src/cli/simple-commands/init/rollback/index.js +399 -0
- package/src/cli/simple-commands/init/rollback/recovery-manager.js +778 -0
- package/src/cli/simple-commands/init/rollback/rollback-executor.js +521 -0
- package/src/cli/simple-commands/init/rollback/state-tracker.js +486 -0
- package/src/cli/simple-commands/init/sparc/roo-readme.js +61 -0
- package/src/cli/simple-commands/init/sparc/roomodes-config.js +102 -0
- package/src/cli/simple-commands/init/sparc/workflows.js +40 -0
- package/src/cli/simple-commands/init/sparc-structure.js +68 -0
- package/src/cli/simple-commands/init/template-copier.js +640 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md +1185 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +265 -0
- package/src/cli/simple-commands/init/templates/claude-flow-universal +81 -0
- package/src/cli/simple-commands/init/templates/claude-flow.bat +18 -0
- package/src/cli/simple-commands/init/templates/claude-flow.ps1 +24 -0
- package/src/cli/simple-commands/init/templates/claude-md.js +1101 -0
- package/src/cli/simple-commands/init/templates/commands/analysis/bottleneck-detect.md +162 -0
- package/src/cli/simple-commands/init/templates/commands/automation/auto-agent.md +122 -0
- package/src/cli/simple-commands/init/templates/commands/coordination/swarm-init.md +85 -0
- package/src/cli/simple-commands/init/templates/commands/github/github-swarm.md +121 -0
- package/src/cli/simple-commands/init/templates/commands/helpers/standard-checkpoint-hooks.sh +179 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/notification.md +113 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/post-command.md +116 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/post-edit.md +117 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/post-task.md +112 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-command.md +113 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-edit.md +113 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-search.md +112 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/pre-task.md +111 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/session-end.md +118 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/session-restore.md +118 -0
- package/src/cli/simple-commands/init/templates/commands/hooks/session-start.md +117 -0
- package/src/cli/simple-commands/init/templates/coordination-md.js +340 -0
- package/src/cli/simple-commands/init/templates/coordination.md +16 -0
- package/src/cli/simple-commands/init/templates/enhanced-templates.js +2347 -0
- package/src/cli/simple-commands/init/templates/github-safe-enhanced.js +331 -0
- package/src/cli/simple-commands/init/templates/github-safe.js +106 -0
- package/src/cli/simple-commands/init/templates/memory-bank-md.js +259 -0
- package/src/cli/simple-commands/init/templates/memory-bank.md +16 -0
- package/src/cli/simple-commands/init/templates/readme-files.js +72 -0
- package/src/cli/simple-commands/init/templates/safe-hook-patterns.js +430 -0
- package/src/cli/simple-commands/init/templates/settings.json +109 -0
- package/src/cli/simple-commands/init/templates/settings.json.enhanced +35 -0
- package/src/cli/simple-commands/init/templates/sparc-modes.js +1401 -0
- package/src/cli/simple-commands/init/templates/verification-claude-md.js +432 -0
- package/src/cli/simple-commands/init/validation/config-validator.js +354 -0
- package/src/cli/simple-commands/init/validation/health-checker.js +599 -0
- package/src/cli/simple-commands/init/validation/index.js +388 -0
- package/src/cli/simple-commands/init/validation/mode-validator.js +387 -0
- package/src/cli/simple-commands/init/validation/post-init-validator.js +390 -0
- package/src/cli/simple-commands/init/validation/pre-init-validator.js +290 -0
- package/src/cli/simple-commands/init/validation/test-runner.js +488 -0
- package/src/cli/simple-commands/init.js +4 -0
- package/src/cli/simple-commands/mcp-health.js +163 -0
- package/src/cli/simple-commands/mcp-integration-layer.js +689 -0
- package/src/cli/simple-commands/mcp.js +420 -0
- package/src/cli/simple-commands/memory-consolidation.js +631 -0
- package/src/cli/simple-commands/memory.js +345 -0
- package/src/cli/simple-commands/migrate-hooks.js +63 -0
- package/src/cli/simple-commands/monitor.js +417 -0
- package/src/cli/simple-commands/neural.js +148 -0
- package/src/cli/simple-commands/pair-autofix-only.js +755 -0
- package/src/cli/simple-commands/pair-basic.js +751 -0
- package/src/cli/simple-commands/pair-old.js +623 -0
- package/src/cli/simple-commands/pair-working.js +849 -0
- package/src/cli/simple-commands/pair.js +849 -0
- package/src/cli/simple-commands/performance-hooks.js +149 -0
- package/src/cli/simple-commands/performance-metrics.js +601 -0
- package/src/cli/simple-commands/process-ui-enhanced.js +821 -0
- package/src/cli/simple-commands/process-ui.js +274 -0
- package/src/cli/simple-commands/realtime-update-system.js +659 -0
- package/src/cli/simple-commands/sparc/architecture.js +1750 -0
- package/src/cli/simple-commands/sparc/commands.js +575 -0
- package/src/cli/simple-commands/sparc/completion.js +1831 -0
- package/src/cli/simple-commands/sparc/coordinator.js +1045 -0
- package/src/cli/simple-commands/sparc/index.js +321 -0
- package/src/cli/simple-commands/sparc/phase-base.js +430 -0
- package/src/cli/simple-commands/sparc/pseudocode.js +984 -0
- package/src/cli/simple-commands/sparc/refinement.js +1856 -0
- package/src/cli/simple-commands/sparc/specification.js +736 -0
- package/src/cli/simple-commands/sparc-modes/architect.js +125 -0
- package/src/cli/simple-commands/sparc-modes/ask.js +126 -0
- package/src/cli/simple-commands/sparc-modes/code.js +148 -0
- package/src/cli/simple-commands/sparc-modes/debug.js +112 -0
- package/src/cli/simple-commands/sparc-modes/devops.js +137 -0
- package/src/cli/simple-commands/sparc-modes/docs-writer.js +38 -0
- package/src/cli/simple-commands/sparc-modes/generic.js +34 -0
- package/src/cli/simple-commands/sparc-modes/index.js +201 -0
- package/src/cli/simple-commands/sparc-modes/integration.js +55 -0
- package/src/cli/simple-commands/sparc-modes/mcp.js +38 -0
- package/src/cli/simple-commands/sparc-modes/monitoring.js +38 -0
- package/src/cli/simple-commands/sparc-modes/optimization.js +38 -0
- package/src/cli/simple-commands/sparc-modes/security-review.js +130 -0
- package/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +167 -0
- package/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +38 -0
- package/src/cli/simple-commands/sparc-modes/supabase-admin.js +149 -0
- package/src/cli/simple-commands/sparc-modes/swarm.js +436 -0
- package/src/cli/simple-commands/sparc-modes/tdd.js +112 -0
- package/src/cli/simple-commands/sparc-modes/tutorial.js +277 -0
- package/src/cli/simple-commands/sparc.js +530 -0
- package/src/cli/simple-commands/start-ui.js +147 -0
- package/src/cli/simple-commands/start-wrapper.js +285 -0
- package/src/cli/simple-commands/start.js +2 -0
- package/src/cli/simple-commands/status.js +303 -0
- package/src/cli/simple-commands/stream-chain-clean.js +221 -0
- package/src/cli/simple-commands/stream-chain-fixed.js +89 -0
- package/src/cli/simple-commands/stream-chain-real.js +408 -0
- package/src/cli/simple-commands/stream-chain-working.js +323 -0
- package/src/cli/simple-commands/stream-chain.js +491 -0
- package/src/cli/simple-commands/stream-processor.js +340 -0
- package/src/cli/simple-commands/swarm-executor.js +253 -0
- package/src/cli/simple-commands/swarm-metrics-integration.js +371 -0
- package/src/cli/simple-commands/swarm-ui.js +741 -0
- package/src/cli/simple-commands/swarm-webui-integration.js +311 -0
- package/src/cli/simple-commands/swarm.js +2277 -0
- package/src/cli/simple-commands/task.js +228 -0
- package/src/cli/simple-commands/templates/mle-star-workflow.json +294 -0
- package/src/cli/simple-commands/timestamp-fix.js +104 -0
- package/src/cli/simple-commands/token-tracker.js +372 -0
- package/src/cli/simple-commands/tool-execution-framework.js +555 -0
- package/src/cli/simple-commands/train-and-stream.js +354 -0
- package/src/cli/simple-commands/training-pipeline.js +874 -0
- package/src/cli/simple-commands/training.js +288 -0
- package/src/cli/simple-commands/verification-hooks.js +336 -0
- package/src/cli/simple-commands/verification-integration.js +464 -0
- package/src/cli/simple-commands/verification-training-integration.js +646 -0
- package/src/cli/simple-commands/verification.js +551 -0
- package/src/cli/simple-commands/web-server.js +929 -0
- package/src/cli/simple-commands/webui-validator.js +136 -0
- package/src/language/README.md +503 -0
- package/src/language/claude-md-generator.js +618 -0
- package/src/language/cli.js +422 -0
- package/src/language/example.js +347 -0
- package/src/language/integration-system.js +619 -0
- package/src/language/language-detector.js +581 -0
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Optimization Testing Script
|
|
5
|
+
*
|
|
6
|
+
* Tests the complete activation script with rollback scenarios
|
|
7
|
+
* Validates all optimization components work correctly
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
import { dirname, join } from 'path';
|
|
12
|
+
import { performance } from 'perf_hooks';
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
import ora from 'ora';
|
|
15
|
+
|
|
16
|
+
// Import our optimization modules
|
|
17
|
+
import { UnifiedOptimizationManager } from './unified-activation.js';
|
|
18
|
+
import { ConfigurationValidator } from './config-validator.js';
|
|
19
|
+
|
|
20
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
21
|
+
const __dirname = dirname(__filename);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Optimization Test Suite
|
|
25
|
+
*/
|
|
26
|
+
class OptimizationTestSuite {
|
|
27
|
+
constructor(options = {}) {
|
|
28
|
+
this.options = {
|
|
29
|
+
skipActualActivation: false,
|
|
30
|
+
testRollback: true,
|
|
31
|
+
validateConfigurations: true,
|
|
32
|
+
...options
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
this.testResults = {
|
|
36
|
+
preValidation: null,
|
|
37
|
+
activation: null,
|
|
38
|
+
postValidation: null,
|
|
39
|
+
rollback: null,
|
|
40
|
+
finalValidation: null
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Run complete test suite
|
|
46
|
+
*/
|
|
47
|
+
async runTests() {
|
|
48
|
+
const testStart = performance.now();
|
|
49
|
+
const spinner = ora('๐งช Starting Optimization Test Suite...').start();
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
// Test 1: Pre-activation validation
|
|
53
|
+
await this._testPreActivationValidation(spinner);
|
|
54
|
+
|
|
55
|
+
// Test 2: Activation process (optional)
|
|
56
|
+
if (!this.options.skipActualActivation) {
|
|
57
|
+
await this._testActivationProcess(spinner);
|
|
58
|
+
|
|
59
|
+
// Test 3: Post-activation validation
|
|
60
|
+
await this._testPostActivationValidation(spinner);
|
|
61
|
+
|
|
62
|
+
// Test 4: Rollback functionality
|
|
63
|
+
if (this.options.testRollback) {
|
|
64
|
+
await this._testRollbackProcess(spinner);
|
|
65
|
+
|
|
66
|
+
// Test 5: Final validation after rollback
|
|
67
|
+
await this._testFinalValidation(spinner);
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
await this._testDryRunActivation(spinner);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const testTime = performance.now() - testStart;
|
|
74
|
+
spinner.succeed(`โ
Optimization Test Suite Completed (${testTime.toFixed(0)}ms)`);
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
success: true,
|
|
78
|
+
testTime,
|
|
79
|
+
results: this.testResults,
|
|
80
|
+
summary: this._generateTestSummary()
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
} catch (error) {
|
|
84
|
+
spinner.fail('โ Optimization Test Suite Failed');
|
|
85
|
+
return {
|
|
86
|
+
success: false,
|
|
87
|
+
error: error.message,
|
|
88
|
+
results: this.testResults
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Private test methods
|
|
94
|
+
|
|
95
|
+
async _testPreActivationValidation(spinner) {
|
|
96
|
+
spinner.text = '๐ Testing pre-activation validation...';
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
const validator = new ConfigurationValidator();
|
|
100
|
+
const validationResult = await validator.validate();
|
|
101
|
+
|
|
102
|
+
this.testResults.preValidation = {
|
|
103
|
+
success: true,
|
|
104
|
+
...validationResult
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
console.log(chalk.blue(`โ Pre-activation validation: ${validationResult.success ? 'PASS' : 'CONDITIONAL'}`));
|
|
108
|
+
|
|
109
|
+
} catch (error) {
|
|
110
|
+
this.testResults.preValidation = {
|
|
111
|
+
success: false,
|
|
112
|
+
error: error.message
|
|
113
|
+
};
|
|
114
|
+
console.log(chalk.red('โ Pre-activation validation: FAIL'));
|
|
115
|
+
throw error;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
async _testActivationProcess(spinner) {
|
|
120
|
+
spinner.text = '๐ Testing activation process...';
|
|
121
|
+
|
|
122
|
+
try {
|
|
123
|
+
const manager = new UnifiedOptimizationManager({
|
|
124
|
+
enableRollback: true,
|
|
125
|
+
enableMonitoring: true,
|
|
126
|
+
enableValidation: true,
|
|
127
|
+
backupEnabled: true
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
const activationResult = await manager.activate();
|
|
131
|
+
|
|
132
|
+
this.testResults.activation = {
|
|
133
|
+
success: activationResult.success,
|
|
134
|
+
...activationResult
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
if (activationResult.success) {
|
|
138
|
+
console.log(chalk.green(`โ Activation process: PASS (${activationResult.activationTime}ms)`));
|
|
139
|
+
} else {
|
|
140
|
+
console.log(chalk.red('โ Activation process: FAIL'));
|
|
141
|
+
throw new Error(`Activation failed: ${activationResult.error}`);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
} catch (error) {
|
|
145
|
+
this.testResults.activation = {
|
|
146
|
+
success: false,
|
|
147
|
+
error: error.message
|
|
148
|
+
};
|
|
149
|
+
console.log(chalk.red('โ Activation process: FAIL'));
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async _testPostActivationValidation(spinner) {
|
|
155
|
+
spinner.text = 'โ
Testing post-activation validation...';
|
|
156
|
+
|
|
157
|
+
try {
|
|
158
|
+
const validator = new ConfigurationValidator();
|
|
159
|
+
const validationResult = await validator.validate();
|
|
160
|
+
|
|
161
|
+
this.testResults.postValidation = {
|
|
162
|
+
success: true,
|
|
163
|
+
...validationResult
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// Check if activation improved configuration
|
|
167
|
+
const preValidation = this.testResults.preValidation;
|
|
168
|
+
const improvement = this._calculateImprovement(preValidation, validationResult);
|
|
169
|
+
|
|
170
|
+
console.log(chalk.green(`โ Post-activation validation: PASS`));
|
|
171
|
+
console.log(chalk.blue(` Improvement: ${improvement.passRateIncrease.toFixed(1)}% better pass rate`));
|
|
172
|
+
|
|
173
|
+
} catch (error) {
|
|
174
|
+
this.testResults.postValidation = {
|
|
175
|
+
success: false,
|
|
176
|
+
error: error.message
|
|
177
|
+
};
|
|
178
|
+
console.log(chalk.red('โ Post-activation validation: FAIL'));
|
|
179
|
+
throw error;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
async _testRollbackProcess(spinner) {
|
|
184
|
+
spinner.text = '๐ Testing rollback process...';
|
|
185
|
+
|
|
186
|
+
try {
|
|
187
|
+
const manager = new UnifiedOptimizationManager();
|
|
188
|
+
const rollbackResult = await manager.rollback();
|
|
189
|
+
|
|
190
|
+
this.testResults.rollback = {
|
|
191
|
+
success: rollbackResult.success,
|
|
192
|
+
...rollbackResult
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
if (rollbackResult.success) {
|
|
196
|
+
console.log(chalk.green('โ Rollback process: PASS'));
|
|
197
|
+
} else {
|
|
198
|
+
console.log(chalk.yellow('โ Rollback process: PARTIAL'));
|
|
199
|
+
console.log(chalk.yellow(` Warning: ${rollbackResult.error}`));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
} catch (error) {
|
|
203
|
+
this.testResults.rollback = {
|
|
204
|
+
success: false,
|
|
205
|
+
error: error.message
|
|
206
|
+
};
|
|
207
|
+
console.log(chalk.red('โ Rollback process: FAIL'));
|
|
208
|
+
// Don't throw here - rollback failure is not critical for testing
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
async _testFinalValidation(spinner) {
|
|
213
|
+
spinner.text = '๐ Testing final validation after rollback...';
|
|
214
|
+
|
|
215
|
+
try {
|
|
216
|
+
const validator = new ConfigurationValidator();
|
|
217
|
+
const validationResult = await validator.validate();
|
|
218
|
+
|
|
219
|
+
this.testResults.finalValidation = {
|
|
220
|
+
success: true,
|
|
221
|
+
...validationResult
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// Check if rollback restored original state
|
|
225
|
+
const preValidation = this.testResults.preValidation;
|
|
226
|
+
const consistency = this._calculateConsistency(preValidation, validationResult);
|
|
227
|
+
|
|
228
|
+
console.log(chalk.green('โ Final validation: PASS'));
|
|
229
|
+
console.log(chalk.blue(` Rollback consistency: ${consistency.consistencyRate.toFixed(1)}%`));
|
|
230
|
+
|
|
231
|
+
} catch (error) {
|
|
232
|
+
this.testResults.finalValidation = {
|
|
233
|
+
success: false,
|
|
234
|
+
error: error.message
|
|
235
|
+
};
|
|
236
|
+
console.log(chalk.red('โ Final validation: FAIL'));
|
|
237
|
+
throw error;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
async _testDryRunActivation(spinner) {
|
|
242
|
+
spinner.text = '๐งช Testing dry-run activation...';
|
|
243
|
+
|
|
244
|
+
try {
|
|
245
|
+
// Create manager but don't actually activate
|
|
246
|
+
const manager = new UnifiedOptimizationManager({
|
|
247
|
+
enableRollback: true,
|
|
248
|
+
enableMonitoring: false, // Disable to avoid actual changes
|
|
249
|
+
enableValidation: true,
|
|
250
|
+
backupEnabled: false // Disable to avoid creating backups
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// Test manager initialization and validation
|
|
254
|
+
const status = await manager.getStatus();
|
|
255
|
+
|
|
256
|
+
this.testResults.activation = {
|
|
257
|
+
success: true,
|
|
258
|
+
dryRun: true,
|
|
259
|
+
status
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
console.log(chalk.blue('โ Dry-run activation: PASS'));
|
|
263
|
+
|
|
264
|
+
} catch (error) {
|
|
265
|
+
this.testResults.activation = {
|
|
266
|
+
success: false,
|
|
267
|
+
error: error.message,
|
|
268
|
+
dryRun: true
|
|
269
|
+
};
|
|
270
|
+
console.log(chalk.red('โ Dry-run activation: FAIL'));
|
|
271
|
+
throw error;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Helper methods
|
|
276
|
+
|
|
277
|
+
_calculateImprovement(preValidation, postValidation) {
|
|
278
|
+
const prePassRate = preValidation?.report?.summary?.passRate || 0;
|
|
279
|
+
const postPassRate = postValidation?.report?.summary?.passRate || 0;
|
|
280
|
+
|
|
281
|
+
return {
|
|
282
|
+
passRateIncrease: (postPassRate - prePassRate) * 100,
|
|
283
|
+
errorReduction: (preValidation?.report?.overall?.failed || 0) -
|
|
284
|
+
(postValidation?.report?.overall?.failed || 0),
|
|
285
|
+
warningReduction: (preValidation?.report?.overall?.warnings || 0) -
|
|
286
|
+
(postValidation?.report?.overall?.warnings || 0)
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
_calculateConsistency(preValidation, finalValidation) {
|
|
291
|
+
const prePassRate = preValidation?.report?.summary?.passRate || 0;
|
|
292
|
+
const finalPassRate = finalValidation?.report?.summary?.passRate || 0;
|
|
293
|
+
|
|
294
|
+
const consistencyRate = 100 - Math.abs((prePassRate - finalPassRate) * 100);
|
|
295
|
+
|
|
296
|
+
return {
|
|
297
|
+
consistencyRate,
|
|
298
|
+
passDifference: Math.abs(prePassRate - finalPassRate),
|
|
299
|
+
rollbackEffective: consistencyRate > 90
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
_generateTestSummary() {
|
|
304
|
+
const tests = Object.keys(this.testResults);
|
|
305
|
+
const passed = tests.filter(test => this.testResults[test]?.success).length;
|
|
306
|
+
const failed = tests.filter(test => this.testResults[test] && !this.testResults[test].success).length;
|
|
307
|
+
const skipped = tests.filter(test => !this.testResults[test]).length;
|
|
308
|
+
|
|
309
|
+
return {
|
|
310
|
+
total: tests.length,
|
|
311
|
+
passed,
|
|
312
|
+
failed,
|
|
313
|
+
skipped,
|
|
314
|
+
passRate: passed / (tests.length - skipped),
|
|
315
|
+
allPassed: failed === 0,
|
|
316
|
+
recommendations: this._generateRecommendations()
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
_generateRecommendations() {
|
|
321
|
+
const recommendations = [];
|
|
322
|
+
|
|
323
|
+
// Analyze test results to generate recommendations
|
|
324
|
+
if (this.testResults.preValidation && !this.testResults.preValidation.success) {
|
|
325
|
+
recommendations.push({
|
|
326
|
+
type: 'CRITICAL',
|
|
327
|
+
message: 'Pre-activation validation failed',
|
|
328
|
+
action: 'Fix configuration issues before running optimizations'
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
if (this.testResults.activation && !this.testResults.activation.success) {
|
|
333
|
+
recommendations.push({
|
|
334
|
+
type: 'CRITICAL',
|
|
335
|
+
message: 'Activation process failed',
|
|
336
|
+
action: 'Review activation logs and fix underlying issues'
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
if (this.testResults.rollback && !this.testResults.rollback.success) {
|
|
341
|
+
recommendations.push({
|
|
342
|
+
type: 'HIGH',
|
|
343
|
+
message: 'Rollback process failed',
|
|
344
|
+
action: 'Manually restore system state from backups'
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
if (this.testResults.postValidation && this.testResults.preValidation) {
|
|
349
|
+
const improvement = this._calculateImprovement(
|
|
350
|
+
this.testResults.preValidation,
|
|
351
|
+
this.testResults.postValidation
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
if (improvement.passRateIncrease < 5) {
|
|
355
|
+
recommendations.push({
|
|
356
|
+
type: 'MEDIUM',
|
|
357
|
+
message: 'Low optimization improvement detected',
|
|
358
|
+
action: 'Review optimization strategies for better results'
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (recommendations.length === 0) {
|
|
364
|
+
recommendations.push({
|
|
365
|
+
type: 'SUCCESS',
|
|
366
|
+
message: 'All tests passed successfully',
|
|
367
|
+
action: 'Optimization system is ready for production use'
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
return recommendations;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* CLI Interface
|
|
377
|
+
*/
|
|
378
|
+
async function main() {
|
|
379
|
+
const args = process.argv.slice(2);
|
|
380
|
+
|
|
381
|
+
const testSuite = new OptimizationTestSuite({
|
|
382
|
+
skipActualActivation: args.includes('--dry-run'),
|
|
383
|
+
testRollback: !args.includes('--no-rollback'),
|
|
384
|
+
validateConfigurations: !args.includes('--no-validation')
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
try {
|
|
388
|
+
console.log(chalk.blue('๐งช Running Optimization Test Suite...'));
|
|
389
|
+
console.log(chalk.gray('This will test activation, validation, and rollback processes\n'));
|
|
390
|
+
|
|
391
|
+
const result = await testSuite.runTests();
|
|
392
|
+
|
|
393
|
+
console.log(chalk.blue('\n๐ Test Summary:'));
|
|
394
|
+
console.log(` Total Tests: ${result.summary.total}`);
|
|
395
|
+
console.log(` Passed: ${chalk.green(result.summary.passed)}`);
|
|
396
|
+
console.log(` Failed: ${chalk.red(result.summary.failed)}`);
|
|
397
|
+
console.log(` Skipped: ${chalk.yellow(result.summary.skipped)}`);
|
|
398
|
+
console.log(` Pass Rate: ${chalk.blue((result.summary.passRate * 100).toFixed(1))}%`);
|
|
399
|
+
console.log(` Test Time: ${result.testTime.toFixed(0)}ms`);
|
|
400
|
+
|
|
401
|
+
if (result.summary.recommendations.length > 0) {
|
|
402
|
+
console.log(chalk.yellow('\n๐ Recommendations:'));
|
|
403
|
+
result.summary.recommendations.forEach(rec => {
|
|
404
|
+
const color = rec.type === 'CRITICAL' ? chalk.red :
|
|
405
|
+
rec.type === 'HIGH' ? chalk.yellow :
|
|
406
|
+
rec.type === 'SUCCESS' ? chalk.green : chalk.blue;
|
|
407
|
+
console.log(color(` ${rec.type}: ${rec.message}`));
|
|
408
|
+
console.log(` Action: ${rec.action}`);
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
if (result.success) {
|
|
413
|
+
console.log(chalk.green('\nโ
All optimization tests completed successfully!'));
|
|
414
|
+
process.exit(0);
|
|
415
|
+
} else {
|
|
416
|
+
console.log(chalk.red('\nโ Some optimization tests failed'));
|
|
417
|
+
process.exit(1);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
} catch (error) {
|
|
421
|
+
console.error(chalk.red('โ Test suite failed:'), error.message);
|
|
422
|
+
process.exit(1);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// Export for programmatic use
|
|
427
|
+
export { OptimizationTestSuite };
|
|
428
|
+
|
|
429
|
+
// Run if called directly
|
|
430
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
431
|
+
main().catch(console.error);
|
|
432
|
+
}
|