claude-flow-novice 2.3.5 ā 2.3.6
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/booster/performance-benchmark.js +1 -1
- package/dist/src/booster/wasm-demo.js +1 -1
- package/dist/src/cli/command-registry.js +2 -2
- package/dist/src/cli/help-formatter.js +137 -109
- package/dist/src/cli/simple-cli.js +2528 -2121
- package/dist/src/cli/simple-commands/sparc/refinement.js +3 -3
- package/dist/src/cli/validation-helper.js +98 -49
- package/dist/src/commands/suggest-templates.js +4 -4
- package/dist/src/core/version.js +23 -15
- package/dist/src/memory/swarm-memory.js +603 -470
- package/dist/src/slash-commands/fullstack.js +2 -2
- package/dist/src/slash-commands/parse-epic.js +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +40 -6
- package/dist/scripts/.claude-flow/metrics/agent-metrics.json +0 -1
- package/dist/scripts/.claude-flow/metrics/performance.json +0 -9
- package/dist/scripts/.claude-flow/metrics/task-metrics.json +0 -10
- package/dist/scripts/CLEANUP_OPTIMIZATION_REPORT.json +0 -312
- package/dist/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +0 -387
- package/dist/scripts/CLEANUP_QUICK_START.md +0 -268
- package/dist/scripts/CLEANUP_TEST_RESULTS.md +0 -205
- package/dist/scripts/README.md +0 -339
- package/dist/scripts/ace-query.sh +0 -384
- package/dist/scripts/agent-token-analysis.js +0 -430
- package/dist/scripts/auto-setup.js +0 -332
- package/dist/scripts/build/README.md +0 -167
- package/dist/scripts/build/build-config.js +0 -27
- package/dist/scripts/build/build-prompt-copier.sh +0 -30
- package/dist/scripts/build/performance-monitor.js +0 -869
- package/dist/scripts/build/prepare-publish.js +0 -150
- package/dist/scripts/build/typescript-fixer.js +0 -621
- package/dist/scripts/build/unified-builder.sh +0 -428
- package/dist/scripts/build/update-bin-version.js +0 -32
- package/dist/scripts/build/validate-agents.js +0 -238
- package/dist/scripts/build-index.js +0 -43
- package/dist/scripts/build-orchestrator.js +0 -320
- package/dist/scripts/check-routing-stats.cjs +0 -122
- package/dist/scripts/ci-validation.js +0 -375
- package/dist/scripts/cleanup-blocking-coordination.sh +0 -420
- package/dist/scripts/cleanup-idle-sessions.sh +0 -118
- package/dist/scripts/collect-build-metrics.js +0 -65
- package/dist/scripts/demo/README.md +0 -79
- package/dist/scripts/demo/autoscaling-demo-simplified.js +0 -963
- package/dist/scripts/demo/comprehensive-dashboard-test.js +0 -693
- package/dist/scripts/demo/confidence-log.js +0 -87
- package/dist/scripts/demo/confidence-report.js +0 -82
- package/dist/scripts/demo/demo-multi-swarm-coordination.js +0 -325
- package/dist/scripts/demo/demo-production-deployment.js +0 -399
- package/dist/scripts/demo/demo-visualization-system.js +0 -149
- package/dist/scripts/demo/performance-analysis.cjs +0 -71
- package/dist/scripts/demo/performance-analysis.js +0 -71
- package/dist/scripts/demo/test-autoscaling-demo.js +0 -314
- package/dist/scripts/dependency-optimizer.js +0 -349
- package/dist/scripts/dependency-security-assessment.js +0 -331
- package/dist/scripts/deploy-sdk.sh +0 -176
- package/dist/scripts/deployment-readiness-report.json +0 -179
- package/dist/scripts/dev/README.md +0 -264
- package/dist/scripts/dev/claude-flow-wrapper.sh +0 -35
- package/dist/scripts/dev/claude-monitor.py +0 -419
- package/dist/scripts/dev/claude-sparc.sh +0 -562
- package/dist/scripts/dev/claude-wrapper.sh +0 -17
- package/dist/scripts/dev/demo-phase3-compliance.js +0 -172
- package/dist/scripts/dev/demo-task-system.ts +0 -224
- package/dist/scripts/dev/deployment-validator.js +0 -315
- package/dist/scripts/dev/spawn-claude-terminal.sh +0 -32
- package/dist/scripts/dev/start-portal.sh +0 -506
- package/dist/scripts/dev/start-web-ui.js +0 -15
- package/dist/scripts/dev/stop-portal.sh +0 -311
- package/dist/scripts/dev/validate-examples.ts +0 -288
- package/dist/scripts/dev/validate-phase2.cjs +0 -451
- package/dist/scripts/dev/validate-phase2.js +0 -785
- package/dist/scripts/dev/validate-phase3.cjs +0 -208
- package/dist/scripts/dev/validate-security-remediation.js +0 -1
- package/dist/scripts/ecosystem.config.cjs +0 -90
- package/dist/scripts/enhanced-memory-spiral-killer.sh +0 -221
- package/dist/scripts/fix-js-extensions.js +0 -167
- package/dist/scripts/generate-basic-types.js +0 -73
- package/dist/scripts/generate-changelog.js +0 -318
- package/dist/scripts/git-hooks/pre-commit.sh +0 -143
- package/dist/scripts/health-checks.js +0 -634
- package/dist/scripts/hook-wrapper.sh +0 -54
- package/dist/scripts/install/README.md +0 -375
- package/dist/scripts/install/REDIS_SETUP_VALIDATION.json +0 -245
- package/dist/scripts/install/check-prerequisites.js +0 -303
- package/dist/scripts/install/config-wizard.js +0 -606
- package/dist/scripts/install/dependency-checker.js +0 -385
- package/dist/scripts/install/health-check.js +0 -765
- package/dist/scripts/install/install.js +0 -256
- package/dist/scripts/install/installation-benchmark.js +0 -461
- package/dist/scripts/install/quick-install.js +0 -720
- package/dist/scripts/install/quick-start-wizard.js +0 -295
- package/dist/scripts/install/redis-cli.js +0 -289
- package/dist/scripts/install/redis-install-guides.md +0 -407
- package/dist/scripts/install/redis-setup.js +0 -559
- package/dist/scripts/install/redis-test.js +0 -278
- package/dist/scripts/install/service-manager.js +0 -672
- package/dist/scripts/install/setup.js +0 -832
- package/dist/scripts/install/uninstall.js +0 -526
- package/dist/scripts/install/update.js +0 -461
- package/dist/scripts/install-pre-commit-hook.sh +0 -127
- package/dist/scripts/legacy/README.md +0 -272
- package/dist/scripts/legacy/batch-fix-ts.sh +0 -54
- package/dist/scripts/legacy/build-migration.sh +0 -105
- package/dist/scripts/legacy/build-monitor.js +0 -209
- package/dist/scripts/legacy/build-with-filter.sh +0 -84
- package/dist/scripts/legacy/build-workaround.sh +0 -71
- package/dist/scripts/legacy/fix-ts-advanced.js +0 -358
- package/dist/scripts/legacy/fix-ts-final.sh +0 -50
- package/dist/scripts/legacy/fix-ts-targeted.sh +0 -49
- package/dist/scripts/legacy/fix-typescript-errors.js +0 -305
- package/dist/scripts/legacy/force-build.sh +0 -63
- package/dist/scripts/legacy/optimize-performance.js +0 -400
- package/dist/scripts/legacy/performance-monitor.js +0 -263
- package/dist/scripts/legacy/performance-monitoring.js +0 -532
- package/dist/scripts/legacy/performance-test-runner.js +0 -645
- package/dist/scripts/legacy/quick-fix-ts.js +0 -281
- package/dist/scripts/legacy/safe-build.sh +0 -63
- package/dist/scripts/memory-monitor-coordinator.js +0 -451
- package/dist/scripts/migrate-to-sdk.sh +0 -520
- package/dist/scripts/migration/QUICK-START.md +0 -189
- package/dist/scripts/migration/QUICK-START.md.backup-1760135091363 +0 -189
- package/dist/scripts/migration/README.md +0 -464
- package/dist/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +0 -500
- package/dist/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +0 -500
- package/dist/scripts/migration/UPDATE-PATHS-README.md +0 -464
- package/dist/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +0 -464
- package/dist/scripts/migration/example-patterns.json +0 -19
- package/dist/scripts/migration/install-arm64.js +0 -78
- package/dist/scripts/migration/install.js +0 -83
- package/dist/scripts/migration/migrate-hooks.js +0 -173
- package/dist/scripts/migration/migration-examples.ts +0 -318
- package/dist/scripts/migration/reorganize-workspace.js +0 -504
- package/dist/scripts/migration/test-update-paths.js +0 -359
- package/dist/scripts/migration/update-paths.js +0 -664
- package/dist/scripts/migration/validate-migration.js +0 -647
- package/dist/scripts/monitor-loop.sh +0 -65
- package/dist/scripts/monitor-memory.sh +0 -47
- package/dist/scripts/monitor-migration.js +0 -339
- package/dist/scripts/monitor.py +0 -43
- package/dist/scripts/monitoring/README.md +0 -178
- package/dist/scripts/monitoring/alert-monitor.sh +0 -220
- package/dist/scripts/monitoring/analyze-resources.sh +0 -199
- package/dist/scripts/monitoring/dashboards/rate-limiting-dashboard.json +0 -211
- package/dist/scripts/monitoring/dynamic-monitor.sh +0 -85
- package/dist/scripts/monitoring/launch-stability-test.sh +0 -184
- package/dist/scripts/monitoring/monitor-test.sh +0 -93
- package/dist/scripts/monitoring/pre-test-validation.sh +0 -208
- package/dist/scripts/monitoring/quick-test-alerting.sh +0 -118
- package/dist/scripts/monitoring/quick-test-rate-limiting.sh +0 -206
- package/dist/scripts/monitoring/rate-limiting-monitor.sh +0 -380
- package/dist/scripts/monitoring/resource-monitor.sh +0 -126
- package/dist/scripts/monitoring/stability-monitor.js +0 -429
- package/dist/scripts/monitoring/test-monitor-quick.sh +0 -54
- package/dist/scripts/monitoring/view-alerts.sh +0 -307
- package/dist/scripts/npm-metrics-collector.js +0 -482
- package/dist/scripts/npm-package-validation.cjs +0 -299
- package/dist/scripts/optimization/build-optimizer.js +0 -438
- package/dist/scripts/optimization/config-validator.js +0 -761
- package/dist/scripts/optimization/test-optimization.js +0 -432
- package/dist/scripts/optimization/unified-activation.js +0 -839
- package/dist/scripts/optimize-package-swarm.js +0 -54
- package/dist/scripts/performance/ACTIVATION_COMMANDS.md +0 -292
- package/dist/scripts/performance/sqlite-enhanced-activation.sh +0 -583
- package/dist/scripts/performance/test-enhanced-backend.sh +0 -504
- package/dist/scripts/performance-monitor.js +0 -644
- package/dist/scripts/performance-test-runner.js +0 -698
- package/dist/scripts/post-deployment-monitoring.js +0 -350
- package/dist/scripts/post-edit-pipeline.js +0 -2091
- package/dist/scripts/post-install-claude-md.js +0 -78
- package/dist/scripts/postinstall.js +0 -60
- package/dist/scripts/pre-publish-validation.cjs +0 -212
- package/dist/scripts/pre-publish-validation.js +0 -429
- package/dist/scripts/redis-lua/cleanup-blocking-coordination.lua +0 -198
- package/dist/scripts/release-announcement.js +0 -425
- package/dist/scripts/release-notification.js +0 -248
- package/dist/scripts/release-rollback.js +0 -376
- package/dist/scripts/release-validation.js +0 -460
- package/dist/scripts/rollback-sdk.sh +0 -66
- package/dist/scripts/run-production-validation.ts +0 -590
- package/dist/scripts/run-stability-validation.sh +0 -687
- package/dist/scripts/security/README.md +0 -339
- package/dist/scripts/security/deployment-validation.cjs +0 -279
- package/dist/scripts/security/envelope-encryption-confidence-report.cjs +0 -422
- package/dist/scripts/security/install-git-hooks.sh +0 -132
- package/dist/scripts/security/install-git-secrets.sh +0 -295
- package/dist/scripts/security/rotate-api-keys.js +0 -469
- package/dist/scripts/security/ruv-swarm-safe.js +0 -74
- package/dist/scripts/security/security-audit.cjs +0 -538
- package/dist/scripts/security/setup-redis-auth.sh +0 -397
- package/dist/scripts/security/validate-envelope-encryption.cjs +0 -340
- package/dist/scripts/security-scan.js +0 -492
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +0 -1
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/performance.json +0 -9
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +0 -10
- package/dist/scripts/switch-api.sh +0 -159
- package/dist/scripts/sync-agents.js +0 -290
- package/dist/scripts/test/50-agent-test.js +0 -625
- package/dist/scripts/test/NEW_STABILITY_TEST_GUIDE.md +0 -407
- package/dist/scripts/test/README.md +0 -236
- package/dist/scripts/test/STABILITY_TEST_EXAMPLE.md +0 -347
- package/dist/scripts/test/STABILITY_TEST_README.md +0 -480
- package/dist/scripts/test/agent-worker.js +0 -309
- package/dist/scripts/test/ai-coordination-test.js +0 -650
- package/dist/scripts/test/ai-mesh-coordination-test.js +0 -416
- package/dist/scripts/test/check-links.ts +0 -274
- package/dist/scripts/test/check-performance-regression.ts +0 -168
- package/dist/scripts/test/cli-agent-coordination-test.js +0 -313
- package/dist/scripts/test/coordinator-multilingual-test.js +0 -396
- package/dist/scripts/test/coordinator-transparency-demo.js +0 -585
- package/dist/scripts/test/coverage-report.ts +0 -692
- package/dist/scripts/test/generate-swarm-tests.js +0 -633
- package/dist/scripts/test/integration-test-validation.cjs +0 -253
- package/dist/scripts/test/load-test-swarm.js +0 -576
- package/dist/scripts/test/mesh-coordination-zero-overlap-test.js +0 -740
- package/dist/scripts/test/multilingual-hello-world-test.js +0 -390
- package/dist/scripts/test/quick-multilingual-demo.js +0 -464
- package/dist/scripts/test/real-agent-test.js +0 -312
- package/dist/scripts/test/run-phase3-compliance-tests.js +0 -427
- package/dist/scripts/test/run-stability-test-examples.sh +0 -292
- package/dist/scripts/test/stability-results/stability-metrics.jsonl +0 -83
- package/dist/scripts/test/stability-results/stability-test-report.json +0 -128
- package/dist/scripts/test/stability-results/stability-test.log +0 -1827
- package/dist/scripts/test/stability-test-50-agents.js +0 -734
- package/dist/scripts/test/test-batch-tasks.ts +0 -29
- package/dist/scripts/test/test-byzantine-resolution.js +0 -246
- package/dist/scripts/test/test-claude-spawn-options.sh +0 -63
- package/dist/scripts/test/test-cli-wizard.js +0 -331
- package/dist/scripts/test/test-comprehensive.js +0 -401
- package/dist/scripts/test/test-coordination-features.ts +0 -238
- package/dist/scripts/test/test-fallback-systems.js +0 -276
- package/dist/scripts/test/test-init-command.ts +0 -302
- package/dist/scripts/test/test-mcp.ts +0 -251
- package/dist/scripts/test/test-runner.ts +0 -568
- package/dist/scripts/test/test-swarm-integration.sh +0 -92
- package/dist/scripts/test/test-swarm.ts +0 -142
- package/dist/scripts/test/validation-summary.ts +0 -408
- package/dist/scripts/test-cleanup-performance.sh +0 -416
- package/dist/scripts/test-dashboard-auth.cjs +0 -203
- package/dist/scripts/test-docker-deployment.sh +0 -207
- package/dist/scripts/test-npm-package.cjs +0 -167
- package/dist/scripts/test-provider-routing.cjs +0 -226
- package/dist/scripts/test-routing-telemetry.cjs +0 -147
- package/dist/scripts/test-runner.cjs +0 -154
- package/dist/scripts/test-zai-10k.cjs +0 -81
- package/dist/scripts/test-zai-api.cjs +0 -191
- package/dist/scripts/test-zai-diagnostic.cjs +0 -151
- package/dist/scripts/test-zai-final.cjs +0 -128
- package/dist/scripts/test-zai-with-env.cjs +0 -85
- package/dist/scripts/toggle-cost-savings.cjs +0 -302
- package/dist/scripts/unified-memory-monitor.js +0 -526
- package/dist/scripts/utils/README.md +0 -261
- package/dist/scripts/utils/clean-build-artifacts.sh +0 -94
- package/dist/scripts/utils/cleanup-root.sh +0 -69
- package/dist/scripts/utils/fix-cliffy-imports.js +0 -307
- package/dist/scripts/utils/fix-duplicate-imports.js +0 -114
- package/dist/scripts/utils/fix-error-handling.cjs +0 -70
- package/dist/scripts/utils/fix-import-paths.js +0 -104
- package/dist/scripts/utils/fix-imports.js +0 -116
- package/dist/scripts/utils/fix-shebang.js +0 -78
- package/dist/scripts/utils/fix-test-modules.js +0 -27
- package/dist/scripts/utils/fix-timezone-issue-246.js +0 -200
- package/dist/scripts/utils/fix-ts-comprehensive.py +0 -182
- package/dist/scripts/utils/fix-ts-targeted-batch.js +0 -250
- package/dist/scripts/utils/remove-benchmark-conflicts.sh +0 -140
- package/dist/scripts/utils/simple-test-fixer.js +0 -190
- package/dist/scripts/utils/validate-metrics-structure.cjs +0 -144
- package/dist/scripts/validate-agent-hooks.js +0 -506
- package/dist/scripts/validate-changelog.js +0 -241
- package/dist/scripts/validate-coordination-cli.js +0 -69
- package/dist/scripts/validate-coordination-toggle-integration.cjs +0 -501
- package/dist/scripts/validate-docker-infrastructure.sh +0 -502
- package/dist/scripts/validate-entry-points.js +0 -300
- package/dist/scripts/validate-memory-monitoring.sh +0 -225
- package/dist/scripts/validate-stage3-performance.ts +0 -377
- package/dist/scripts/validate-template-bundling.js +0 -180
- package/dist/scripts/validation/README.md +0 -33
- package/dist/scripts/validation/acl-security-validation.cjs +0 -214
- package/dist/scripts/validation/acl-security-validation.js +0 -402
- package/dist/scripts/validation/byzantine-verification.js +0 -407
- package/dist/scripts/validation/final-phase-2-consensus.cjs +0 -219
- package/dist/scripts/validation/final-security-validation.js +0 -791
- package/dist/scripts/validation/final-wasm-validation.cjs +0 -840
- package/dist/scripts/validation/integration-test-analysis.js +0 -105
- package/dist/scripts/validation/phase-0-comprehensive-validation.js +0 -474
- package/dist/scripts/validation/phase-0-consensus-report.js +0 -139
- package/dist/scripts/validation/phase-0-final-report.js +0 -112
- package/dist/scripts/validation/phase-0-redis-consensus-report.js +0 -129
- package/dist/scripts/validation/phase-0-validation-improved.js +0 -490
- package/dist/scripts/validation/phase-0-validation-test.js +0 -65
- package/dist/scripts/validation/phase-1-consensus-report.cjs +0 -342
- package/dist/scripts/validation/phase-1-consensus-validation.cjs +0 -551
- package/dist/scripts/validation/phase-1-consensus-validation.js +0 -551
- package/dist/scripts/validation/phase-2-consensus-report.cjs +0 -186
- package/dist/scripts/validation/phase-2-validation.cjs +0 -171
- package/dist/scripts/validation/phase-2-validation.js +0 -171
- package/dist/scripts/validation/phase-4-consensus-report.js +0 -181
- package/dist/scripts/validation/phase-4-final-validation.js +0 -351
- package/dist/scripts/validation/phase-5-consensus-report.cjs +0 -113
- package/dist/scripts/validation/phase-5-consensus-report.js +0 -113
- package/dist/scripts/validation/security-analysis.js +0 -49
- package/dist/scripts/validation/security-validation.js +0 -492
- package/dist/scripts/validation/simple-security-validation.js +0 -464
- package/dist/scripts/verify-installation.js +0 -112
- package/dist/scripts/verify-mcp-server.js +0 -86
- package/dist/scripts/verify-sdk-phase1.cjs +0 -293
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S deno run --allow-all
|
|
2
|
-
/**
|
|
3
|
-
* Test script for Claude Swarm Mode functionality
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { colors } from 'https://deno.land/x/cliffy@v1.0.0-rc.3/ansi/colors.ts';
|
|
7
|
-
|
|
8
|
-
async function runTest(name: string, command: string[], expectedPatterns: string[]): Promise<boolean> {
|
|
9
|
-
console.log(colors.blue(`\nTesting: ${name}`));
|
|
10
|
-
console.log(colors.gray(`Command: ${command.join(' ')}`));
|
|
11
|
-
|
|
12
|
-
try {
|
|
13
|
-
const cmd = new Deno.Command(command[0], {
|
|
14
|
-
args: command.slice(1),
|
|
15
|
-
stdout: 'piped',
|
|
16
|
-
stderr: 'piped',
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
const { code, stdout, stderr } = await cmd.output();
|
|
20
|
-
const output = new TextDecoder().decode(stdout);
|
|
21
|
-
const errorOutput = new TextDecoder().decode(stderr);
|
|
22
|
-
|
|
23
|
-
if (code !== 0 && !name.includes("dry-run")) {
|
|
24
|
-
console.log(colors.red(`ā Command failed with code ${code}`));
|
|
25
|
-
if (errorOutput) {
|
|
26
|
-
console.log(colors.red(`Error: ${errorOutput}`));
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Check for expected patterns in output
|
|
32
|
-
let allPatternsFound = true;
|
|
33
|
-
for (const pattern of expectedPatterns) {
|
|
34
|
-
if (!output.includes(pattern)) {
|
|
35
|
-
console.log(colors.red(`ā Expected pattern not found: "${pattern}"`));
|
|
36
|
-
allPatternsFound = false;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (allPatternsFound) {
|
|
41
|
-
console.log(colors.green(`ā
Test passed`));
|
|
42
|
-
return true;
|
|
43
|
-
} else {
|
|
44
|
-
console.log(colors.red(`ā Test failed`));
|
|
45
|
-
console.log(colors.gray(`Output: ${output.substring(0, 200)}...`));
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
} catch (error) {
|
|
50
|
-
console.log(colors.red(`ā Error running test: ${(error as Error).message}`));
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
async function main() {
|
|
56
|
-
console.log(colors.bold('Claude-Flow Swarm Mode Test Suite'));
|
|
57
|
-
console.log('='.repeat(50));
|
|
58
|
-
|
|
59
|
-
const tests = [
|
|
60
|
-
{
|
|
61
|
-
name: "Swarm demo dry-run",
|
|
62
|
-
command: ["./swarm-demo.ts", "Build a REST API", "--dry-run"],
|
|
63
|
-
patterns: ["DRY RUN", "Swarm ID:", "Objective: Build a REST API"],
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "CLI swarm command dry-run",
|
|
67
|
-
command: ["deno", "run", "--allow-all", "./src/cli/main.ts", "swarm", "Test objective", "--dry-run"],
|
|
68
|
-
patterns: ["DRY RUN", "Swarm ID:", "Objective: Test objective"],
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
name: "CLI swarm help",
|
|
72
|
-
command: ["deno", "run", "--allow-all", "./src/cli/main.ts", "help", "swarm"],
|
|
73
|
-
patterns: ["Claude Swarm Mode", "self-orchestrating Claude agent swarms"],
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
name: "Swarm with research strategy",
|
|
77
|
-
command: ["./swarm-demo.ts", "Research test", "--strategy", "research", "--dry-run"],
|
|
78
|
-
patterns: ["Strategy: research", "DRY RUN"],
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: "Swarm with all options",
|
|
82
|
-
command: [
|
|
83
|
-
"./swarm-demo.ts",
|
|
84
|
-
"Complex task",
|
|
85
|
-
"--max-agents", "10",
|
|
86
|
-
"--max-depth", "4",
|
|
87
|
-
"--research",
|
|
88
|
-
"--parallel",
|
|
89
|
-
"--review",
|
|
90
|
-
"--coordinator",
|
|
91
|
-
"--dry-run"
|
|
92
|
-
],
|
|
93
|
-
patterns: [
|
|
94
|
-
"Max Agents: 10",
|
|
95
|
-
"Max Depth: 4",
|
|
96
|
-
"Research: true",
|
|
97
|
-
"Parallel: true",
|
|
98
|
-
"Review Mode: true",
|
|
99
|
-
"Coordinator: true"
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
];
|
|
103
|
-
|
|
104
|
-
let passedTests = 0;
|
|
105
|
-
let failedTests = 0;
|
|
106
|
-
|
|
107
|
-
for (const test of tests) {
|
|
108
|
-
const passed = await runTest(test.name, test.command, test.patterns);
|
|
109
|
-
if (passed) {
|
|
110
|
-
passedTests++;
|
|
111
|
-
} else {
|
|
112
|
-
failedTests++;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
console.log('\n' + '='.repeat(50));
|
|
117
|
-
console.log(colors.bold('Test Summary:'));
|
|
118
|
-
console.log(colors.green(`ā
Passed: ${passedTests}`));
|
|
119
|
-
console.log(colors.red(`ā Failed: ${failedTests}`));
|
|
120
|
-
console.log(colors.blue(`š Total: ${tests.length}`));
|
|
121
|
-
|
|
122
|
-
if (failedTests === 0) {
|
|
123
|
-
console.log(colors.green('\nš All tests passed!'));
|
|
124
|
-
} else {
|
|
125
|
-
console.log(colors.red('\nā ļø Some tests failed'));
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Additional manual test instructions
|
|
129
|
-
console.log('\n' + colors.bold('Manual Testing Instructions:'));
|
|
130
|
-
console.log('1. Test with actual Claude CLI (if available):');
|
|
131
|
-
console.log(' ./swarm-demo.ts "Build a simple calculator"');
|
|
132
|
-
console.log(' ./bin/claude-flow swarm "Create a REST API"');
|
|
133
|
-
console.log('\n2. Test various strategies:');
|
|
134
|
-
console.log(' ./swarm-demo.ts "Research best practices" --strategy research');
|
|
135
|
-
console.log(' ./swarm-demo.ts "Implement feature" --strategy development');
|
|
136
|
-
console.log('\n3. Test complex scenarios:');
|
|
137
|
-
console.log(' ./swarm-demo.ts "Migrate to microservices" --coordinator --review --parallel');
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (import.meta.main) {
|
|
141
|
-
await main();
|
|
142
|
-
}
|
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env tsx
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Production Validation Summary Script
|
|
5
|
-
*
|
|
6
|
-
* Runs comprehensive validation checks and generates summary report
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import * as fs from 'fs-extra';
|
|
10
|
-
import * as path from 'path';
|
|
11
|
-
import { execSync } from 'child_process';
|
|
12
|
-
|
|
13
|
-
interface ValidationResult {
|
|
14
|
-
category: string;
|
|
15
|
-
status: 'pass' | 'fail' | 'warning';
|
|
16
|
-
message: string;
|
|
17
|
-
details?: string[];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
class ProductionValidator {
|
|
21
|
-
private results: ValidationResult[] = [];
|
|
22
|
-
|
|
23
|
-
async runAllValidations(): Promise<void> {
|
|
24
|
-
console.log('š Starting comprehensive production validation...\n');
|
|
25
|
-
|
|
26
|
-
await this.validateBuildSystem();
|
|
27
|
-
await this.validateTestInfrastructure();
|
|
28
|
-
await this.validateMockImplementations();
|
|
29
|
-
await this.validateSecurityConfiguration();
|
|
30
|
-
await this.validateEnvironmentSetup();
|
|
31
|
-
await this.validateDeploymentReadiness();
|
|
32
|
-
|
|
33
|
-
this.generateSummaryReport();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
private async validateBuildSystem(): Promise<void> {
|
|
37
|
-
console.log('š¦ Validating build system...');
|
|
38
|
-
|
|
39
|
-
try {
|
|
40
|
-
// Check TypeScript compilation
|
|
41
|
-
execSync('npx tsc --noEmit', { stdio: 'pipe' });
|
|
42
|
-
this.addResult('Build System', 'pass', 'TypeScript compilation successful');
|
|
43
|
-
} catch (error) {
|
|
44
|
-
this.addResult('Build System', 'fail', 'TypeScript compilation failed', [
|
|
45
|
-
'TypeScript compiler errors detected',
|
|
46
|
-
'Build artifacts cannot be generated',
|
|
47
|
-
'Deployment blocked'
|
|
48
|
-
]);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Check package.json integrity
|
|
52
|
-
try {
|
|
53
|
-
const packageJson = await fs.readJson('package.json');
|
|
54
|
-
if (packageJson.scripts?.build && packageJson.scripts?.test) {
|
|
55
|
-
this.addResult('Build Scripts', 'pass', 'Build and test scripts configured');
|
|
56
|
-
} else {
|
|
57
|
-
this.addResult('Build Scripts', 'warning', 'Some build scripts missing');
|
|
58
|
-
}
|
|
59
|
-
} catch (error) {
|
|
60
|
-
this.addResult('Build Scripts', 'fail', 'package.json validation failed');
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Check dependencies
|
|
64
|
-
try {
|
|
65
|
-
const lockExists = await fs.pathExists('package-lock.json') || await fs.pathExists('pnpm-lock.yaml');
|
|
66
|
-
if (lockExists) {
|
|
67
|
-
this.addResult('Dependencies', 'pass', 'Lock file present for reproducible builds');
|
|
68
|
-
} else {
|
|
69
|
-
this.addResult('Dependencies', 'warning', 'No lock file found');
|
|
70
|
-
}
|
|
71
|
-
} catch (error) {
|
|
72
|
-
this.addResult('Dependencies', 'fail', 'Dependency validation failed');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
private async validateTestInfrastructure(): Promise<void> {
|
|
77
|
-
console.log('š§Ŗ Validating test infrastructure...');
|
|
78
|
-
|
|
79
|
-
// Check Jest configuration
|
|
80
|
-
try {
|
|
81
|
-
const jestConfig = await fs.pathExists('jest.config.js');
|
|
82
|
-
if (jestConfig) {
|
|
83
|
-
this.addResult('Test Configuration', 'pass', 'Jest configuration found');
|
|
84
|
-
} else {
|
|
85
|
-
this.addResult('Test Configuration', 'fail', 'Jest configuration missing');
|
|
86
|
-
}
|
|
87
|
-
} catch (error) {
|
|
88
|
-
this.addResult('Test Configuration', 'fail', 'Test configuration validation failed');
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Check production test files
|
|
92
|
-
try {
|
|
93
|
-
const productionTestsDir = 'tests/production';
|
|
94
|
-
const testFiles = await fs.readdir(productionTestsDir).catch(() => []);
|
|
95
|
-
|
|
96
|
-
if (testFiles.length >= 5) {
|
|
97
|
-
this.addResult('Production Tests', 'pass', `Found ${testFiles.length} production test files`);
|
|
98
|
-
} else if (testFiles.length > 0) {
|
|
99
|
-
this.addResult('Production Tests', 'warning', `Only ${testFiles.length} production test files found`);
|
|
100
|
-
} else {
|
|
101
|
-
this.addResult('Production Tests', 'fail', 'No production test files found');
|
|
102
|
-
}
|
|
103
|
-
} catch (error) {
|
|
104
|
-
this.addResult('Production Tests', 'fail', 'Production test validation failed');
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Try to run tests
|
|
108
|
-
try {
|
|
109
|
-
execSync('npm test -- --passWithNoTests --silent', { stdio: 'pipe' });
|
|
110
|
-
this.addResult('Test Execution', 'pass', 'Test runner functional');
|
|
111
|
-
} catch (error) {
|
|
112
|
-
this.addResult('Test Execution', 'warning', 'Test runner has issues', [
|
|
113
|
-
'Some tests may be failing',
|
|
114
|
-
'Test configuration may need adjustment'
|
|
115
|
-
]);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
private async validateMockImplementations(): Promise<void> {
|
|
120
|
-
console.log('š Validating mock implementations...');
|
|
121
|
-
|
|
122
|
-
const mockPatterns = [
|
|
123
|
-
/mock[A-Z]\w+/g,
|
|
124
|
-
/fake[A-Z]\w+/g,
|
|
125
|
-
/stub[A-Z]\w+/g,
|
|
126
|
-
/TODO.*implementation/gi,
|
|
127
|
-
/FIXME.*mock/gi
|
|
128
|
-
];
|
|
129
|
-
|
|
130
|
-
const srcFiles = await this.getSourceFiles('src');
|
|
131
|
-
let mockCount = 0;
|
|
132
|
-
const mockFiles: string[] = [];
|
|
133
|
-
|
|
134
|
-
for (const file of srcFiles) {
|
|
135
|
-
if (file.includes('test') || file.includes('spec') || file.includes('mock-components.ts')) {
|
|
136
|
-
continue; // Skip test files and known mock files
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
try {
|
|
140
|
-
const content = await fs.readFile(file, 'utf8');
|
|
141
|
-
const hasMocks = mockPatterns.some(pattern => pattern.test(content));
|
|
142
|
-
|
|
143
|
-
if (hasMocks) {
|
|
144
|
-
mockCount++;
|
|
145
|
-
mockFiles.push(file);
|
|
146
|
-
}
|
|
147
|
-
} catch (error) {
|
|
148
|
-
// Skip files that can't be read
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (mockCount === 0) {
|
|
153
|
-
this.addResult('Mock Implementations', 'pass', 'No mock implementations found in production code');
|
|
154
|
-
} else if (mockCount <= 3) {
|
|
155
|
-
this.addResult('Mock Implementations', 'warning', `${mockCount} files with mock implementations found`, mockFiles);
|
|
156
|
-
} else {
|
|
157
|
-
this.addResult('Mock Implementations', 'fail', `${mockCount} files with mock implementations found`, mockFiles);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
private async validateSecurityConfiguration(): Promise<void> {
|
|
162
|
-
console.log('š Validating security configuration...');
|
|
163
|
-
|
|
164
|
-
// Check for security-related environment variables
|
|
165
|
-
const securityEnvVars = ['JWT_SECRET', 'API_KEY', 'ENCRYPTION_KEY'];
|
|
166
|
-
const presentVars = securityEnvVars.filter(varName => process.env[varName]);
|
|
167
|
-
|
|
168
|
-
if (presentVars.length > 0) {
|
|
169
|
-
this.addResult('Security Environment', 'pass', `${presentVars.length} security environment variables configured`);
|
|
170
|
-
} else {
|
|
171
|
-
this.addResult('Security Environment', 'warning', 'No security environment variables found', [
|
|
172
|
-
'This may be expected in development',
|
|
173
|
-
'Ensure production deployment has proper secrets'
|
|
174
|
-
]);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// Check for HTTPS enforcement
|
|
178
|
-
const nodeEnv = process.env.NODE_ENV || 'development';
|
|
179
|
-
if (nodeEnv === 'production') {
|
|
180
|
-
const httpsEnforced = process.env.FORCE_HTTPS === 'true';
|
|
181
|
-
if (httpsEnforced) {
|
|
182
|
-
this.addResult('HTTPS Enforcement', 'pass', 'HTTPS enforcement enabled for production');
|
|
183
|
-
} else {
|
|
184
|
-
this.addResult('HTTPS Enforcement', 'fail', 'HTTPS enforcement not configured for production');
|
|
185
|
-
}
|
|
186
|
-
} else {
|
|
187
|
-
this.addResult('HTTPS Enforcement', 'pass', 'HTTPS enforcement not required in development');
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// Check for security headers configuration
|
|
191
|
-
try {
|
|
192
|
-
const securityConfigExists = await this.checkForSecurityConfig();
|
|
193
|
-
if (securityConfigExists) {
|
|
194
|
-
this.addResult('Security Headers', 'pass', 'Security configuration found');
|
|
195
|
-
} else {
|
|
196
|
-
this.addResult('Security Headers', 'warning', 'Security configuration not found');
|
|
197
|
-
}
|
|
198
|
-
} catch (error) {
|
|
199
|
-
this.addResult('Security Headers', 'fail', 'Security configuration validation failed');
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
private async validateEnvironmentSetup(): Promise<void> {
|
|
204
|
-
console.log('š Validating environment setup...');
|
|
205
|
-
|
|
206
|
-
// Check Node.js version
|
|
207
|
-
const nodeVersion = process.version;
|
|
208
|
-
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0], 10);
|
|
209
|
-
|
|
210
|
-
if (majorVersion >= 20) {
|
|
211
|
-
this.addResult('Node.js Version', 'pass', `Node.js ${nodeVersion} (compatible)`);
|
|
212
|
-
} else if (majorVersion >= 18) {
|
|
213
|
-
this.addResult('Node.js Version', 'warning', `Node.js ${nodeVersion} (minimum supported)`);
|
|
214
|
-
} else {
|
|
215
|
-
this.addResult('Node.js Version', 'fail', `Node.js ${nodeVersion} (unsupported)`);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
// Check environment variables
|
|
219
|
-
const requiredEnvVars = ['NODE_ENV'];
|
|
220
|
-
const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
|
|
221
|
-
|
|
222
|
-
if (missingVars.length === 0) {
|
|
223
|
-
this.addResult('Environment Variables', 'pass', 'Required environment variables present');
|
|
224
|
-
} else {
|
|
225
|
-
this.addResult('Environment Variables', 'warning', `Missing: ${missingVars.join(', ')}`);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Check file system permissions
|
|
229
|
-
try {
|
|
230
|
-
const tempFile = path.join(process.cwd(), 'temp-permission-test.txt');
|
|
231
|
-
await fs.writeFile(tempFile, 'test');
|
|
232
|
-
await fs.remove(tempFile);
|
|
233
|
-
this.addResult('File Permissions', 'pass', 'File system permissions adequate');
|
|
234
|
-
} catch (error) {
|
|
235
|
-
this.addResult('File Permissions', 'fail', 'File system permission issues detected');
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
private async validateDeploymentReadiness(): Promise<void> {
|
|
240
|
-
console.log('š Validating deployment readiness...');
|
|
241
|
-
|
|
242
|
-
// Check for required directories
|
|
243
|
-
const requiredDirs = ['src', 'tests', 'docs'];
|
|
244
|
-
const missingDirs = [];
|
|
245
|
-
|
|
246
|
-
for (const dir of requiredDirs) {
|
|
247
|
-
const exists = await fs.pathExists(dir);
|
|
248
|
-
if (!exists) {
|
|
249
|
-
missingDirs.push(dir);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
if (missingDirs.length === 0) {
|
|
254
|
-
this.addResult('Directory Structure', 'pass', 'Required directories present');
|
|
255
|
-
} else {
|
|
256
|
-
this.addResult('Directory Structure', 'fail', `Missing directories: ${missingDirs.join(', ')}`);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// Check for health check implementation
|
|
260
|
-
const healthCheckFiles = await this.findHealthCheckFiles();
|
|
261
|
-
if (healthCheckFiles.length > 0) {
|
|
262
|
-
this.addResult('Health Checks', 'pass', `${healthCheckFiles.length} health check files found`);
|
|
263
|
-
} else {
|
|
264
|
-
this.addResult('Health Checks', 'warning', 'No health check implementation found');
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// Check for deployment configuration
|
|
268
|
-
const deploymentConfigs = ['Dockerfile', 'docker-compose.yml', '.github/workflows'];
|
|
269
|
-
const foundConfigs = [];
|
|
270
|
-
|
|
271
|
-
for (const config of deploymentConfigs) {
|
|
272
|
-
const exists = await fs.pathExists(config);
|
|
273
|
-
if (exists) {
|
|
274
|
-
foundConfigs.push(config);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
if (foundConfigs.length > 0) {
|
|
279
|
-
this.addResult('Deployment Configuration', 'pass', `Found: ${foundConfigs.join(', ')}`);
|
|
280
|
-
} else {
|
|
281
|
-
this.addResult('Deployment Configuration', 'warning', 'No deployment configuration found');
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
private addResult(category: string, status: 'pass' | 'fail' | 'warning', message: string, details?: string[]): void {
|
|
286
|
-
this.results.push({ category, status, message, details });
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
private generateSummaryReport(): void {
|
|
290
|
-
console.log('\nš PRODUCTION VALIDATION SUMMARY REPORT');
|
|
291
|
-
console.log('==========================================\n');
|
|
292
|
-
|
|
293
|
-
const passes = this.results.filter(r => r.status === 'pass').length;
|
|
294
|
-
const warnings = this.results.filter(r => r.status === 'warning').length;
|
|
295
|
-
const failures = this.results.filter(r => r.status === 'fail').length;
|
|
296
|
-
const total = this.results.length;
|
|
297
|
-
|
|
298
|
-
console.log(`Total Checks: ${total}`);
|
|
299
|
-
console.log(`ā
Passed: ${passes}`);
|
|
300
|
-
console.log(`ā ļø Warnings: ${warnings}`);
|
|
301
|
-
console.log(`ā Failed: ${failures}\n`);
|
|
302
|
-
|
|
303
|
-
// Overall recommendation
|
|
304
|
-
if (failures === 0 && warnings <= 2) {
|
|
305
|
-
console.log('š¢ RECOMMENDATION: READY FOR PRODUCTION DEPLOYMENT');
|
|
306
|
-
} else if (failures <= 2 && warnings <= 5) {
|
|
307
|
-
console.log('š” RECOMMENDATION: READY FOR STAGING, REQUIRES FIXES FOR PRODUCTION');
|
|
308
|
-
} else {
|
|
309
|
-
console.log('š“ RECOMMENDATION: NOT READY FOR PRODUCTION DEPLOYMENT');
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
console.log('\nDetailed Results:');
|
|
313
|
-
console.log('-----------------');
|
|
314
|
-
|
|
315
|
-
this.results.forEach(result => {
|
|
316
|
-
const icon = result.status === 'pass' ? 'ā
' : result.status === 'warning' ? 'ā ļø' : 'ā';
|
|
317
|
-
console.log(`${icon} ${result.category}: ${result.message}`);
|
|
318
|
-
|
|
319
|
-
if (result.details && result.details.length > 0) {
|
|
320
|
-
result.details.forEach(detail => {
|
|
321
|
-
console.log(` ⢠${detail}`);
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
// Save report to file
|
|
327
|
-
this.saveReportToFile();
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
private async saveReportToFile(): Promise<void> {
|
|
331
|
-
const reportData = {
|
|
332
|
-
timestamp: new Date().toISOString(),
|
|
333
|
-
summary: {
|
|
334
|
-
total: this.results.length,
|
|
335
|
-
passed: this.results.filter(r => r.status === 'pass').length,
|
|
336
|
-
warnings: this.results.filter(r => r.status === 'warning').length,
|
|
337
|
-
failed: this.results.filter(r => r.status === 'fail').length
|
|
338
|
-
},
|
|
339
|
-
results: this.results
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
const reportPath = path.join('docs', 'validation-summary-report.json');
|
|
343
|
-
await fs.ensureDir(path.dirname(reportPath));
|
|
344
|
-
await fs.writeJson(reportPath, reportData, { spaces: 2 });
|
|
345
|
-
|
|
346
|
-
console.log(`\nš Detailed report saved to: ${reportPath}`);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
private async getSourceFiles(dir: string): Promise<string[]> {
|
|
350
|
-
const files: string[] = [];
|
|
351
|
-
|
|
352
|
-
try {
|
|
353
|
-
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
354
|
-
|
|
355
|
-
for (const entry of entries) {
|
|
356
|
-
const fullPath = path.join(dir, entry.name);
|
|
357
|
-
|
|
358
|
-
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
|
|
359
|
-
const subFiles = await this.getSourceFiles(fullPath);
|
|
360
|
-
files.push(...subFiles);
|
|
361
|
-
} else if (entry.isFile() && (entry.name.endsWith('.ts') || entry.name.endsWith('.js'))) {
|
|
362
|
-
files.push(fullPath);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
} catch (error) {
|
|
366
|
-
// Skip directories that can't be read
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
return files;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
private async checkForSecurityConfig(): Promise<boolean> {
|
|
373
|
-
const securityFiles = [
|
|
374
|
-
'src/enterprise/security-manager.ts',
|
|
375
|
-
'src/config/security.ts',
|
|
376
|
-
'config/security.json'
|
|
377
|
-
];
|
|
378
|
-
|
|
379
|
-
for (const file of securityFiles) {
|
|
380
|
-
if (await fs.pathExists(file)) {
|
|
381
|
-
return true;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
return false;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
private async findHealthCheckFiles(): Promise<string[]> {
|
|
389
|
-
const healthCheckFiles: string[] = [];
|
|
390
|
-
const files = await this.getSourceFiles('src');
|
|
391
|
-
|
|
392
|
-
for (const file of files) {
|
|
393
|
-
if (file.includes('health') || file.includes('monitoring')) {
|
|
394
|
-
healthCheckFiles.push(file);
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
return healthCheckFiles;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
// Run validation if script is executed directly
|
|
403
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
404
|
-
const validator = new ProductionValidator();
|
|
405
|
-
validator.runAllValidations().catch(console.error);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
export { ProductionValidator };
|