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,633 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Dynamic E2E Test Generator for Swarm Activities
|
|
5
|
-
* Generates Playwright tests based on swarm coordination patterns and agent behaviors
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import fs from 'fs-extra';
|
|
9
|
-
import path from 'path';
|
|
10
|
-
import { fileURLToPath } from 'url';
|
|
11
|
-
import yargs from 'yargs';
|
|
12
|
-
import { hideBin } from 'yargs/helpers';
|
|
13
|
-
|
|
14
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
-
const __dirname = path.dirname(__filename);
|
|
16
|
-
|
|
17
|
-
// Test generation configuration
|
|
18
|
-
const TEST_TEMPLATES = {
|
|
19
|
-
SWARM_COORDINATION: 'swarm-coordination-template.js',
|
|
20
|
-
AGENT_INTERACTION: 'agent-interaction-template.js',
|
|
21
|
-
PERFORMANCE_MONITORING: 'performance-monitoring-template.js',
|
|
22
|
-
ERROR_HANDLING: 'error-handling-template.js',
|
|
23
|
-
BYZANTINE_CONSENSUS: 'byzantine-consensus-template.js'
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const SWARM_PATTERNS = {
|
|
27
|
-
hierarchical: {
|
|
28
|
-
agents: ['coordinator', 'worker', 'monitor'],
|
|
29
|
-
interactions: ['command-dispatch', 'status-report', 'error-escalation'],
|
|
30
|
-
validations: ['hierarchy-integrity', 'task-distribution', 'failure-recovery']
|
|
31
|
-
},
|
|
32
|
-
mesh: {
|
|
33
|
-
agents: ['peer', 'coordinator', 'observer'],
|
|
34
|
-
interactions: ['peer-to-peer', 'broadcast', 'consensus'],
|
|
35
|
-
validations: ['network-connectivity', 'message-delivery', 'consensus-achievement']
|
|
36
|
-
},
|
|
37
|
-
ring: {
|
|
38
|
-
agents: ['node', 'predecessor', 'successor'],
|
|
39
|
-
interactions: ['token-passing', 'message-forwarding', 'ring-maintenance'],
|
|
40
|
-
validations: ['ring-integrity', 'token-circulation', 'fault-tolerance']
|
|
41
|
-
},
|
|
42
|
-
star: {
|
|
43
|
-
agents: ['hub', 'spoke', 'monitor'],
|
|
44
|
-
interactions: ['hub-to-spoke', 'spoke-to-hub', 'monitoring'],
|
|
45
|
-
validations: ['hub-availability', 'spoke-connectivity', 'load-distribution']
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
class SwarmTestGenerator {
|
|
50
|
-
constructor(options = {}) {
|
|
51
|
-
this.outputDir = options.output || 'tests/generated';
|
|
52
|
-
this.format = options.format || 'playwright';
|
|
53
|
-
this.components = options.components || [];
|
|
54
|
-
this.verbose = options.verbose || false;
|
|
55
|
-
|
|
56
|
-
this.templateDir = path.join(__dirname, '../templates/test-templates');
|
|
57
|
-
this.generatedTests = [];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async generate() {
|
|
61
|
-
console.log('🤖 Starting swarm test generation...');
|
|
62
|
-
|
|
63
|
-
await this.ensureDirectories();
|
|
64
|
-
await this.loadTemplates();
|
|
65
|
-
|
|
66
|
-
// Generate tests based on detected components and patterns
|
|
67
|
-
for (const component of this.components) {
|
|
68
|
-
await this.generateComponentTests(component);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Generate swarm topology tests
|
|
72
|
-
await this.generateTopologyTests();
|
|
73
|
-
|
|
74
|
-
// Generate integration tests
|
|
75
|
-
await this.generateIntegrationTests();
|
|
76
|
-
|
|
77
|
-
// Generate performance tests
|
|
78
|
-
await this.generatePerformanceTests();
|
|
79
|
-
|
|
80
|
-
// Generate browser interaction tests
|
|
81
|
-
await this.generateBrowserTests();
|
|
82
|
-
|
|
83
|
-
await this.generateTestIndex();
|
|
84
|
-
|
|
85
|
-
console.log(`✅ Generated ${this.generatedTests.length} test files`);
|
|
86
|
-
return this.generatedTests;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
async ensureDirectories() {
|
|
90
|
-
const dirs = [
|
|
91
|
-
this.outputDir,
|
|
92
|
-
path.join(this.outputDir, 'swarm'),
|
|
93
|
-
path.join(this.outputDir, 'browser'),
|
|
94
|
-
path.join(this.outputDir, 'performance'),
|
|
95
|
-
path.join(this.outputDir, 'integration'),
|
|
96
|
-
path.join(this.outputDir, 'regression')
|
|
97
|
-
];
|
|
98
|
-
|
|
99
|
-
for (const dir of dirs) {
|
|
100
|
-
await fs.ensureDir(dir);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
async loadTemplates() {
|
|
105
|
-
this.templates = {};
|
|
106
|
-
|
|
107
|
-
for (const [name, filename] of Object.entries(TEST_TEMPLATES)) {
|
|
108
|
-
const templatePath = path.join(this.templateDir, filename);
|
|
109
|
-
if (await fs.pathExists(templatePath)) {
|
|
110
|
-
this.templates[name] = await fs.readFile(templatePath, 'utf8');
|
|
111
|
-
} else {
|
|
112
|
-
// Create default template if not exists
|
|
113
|
-
this.templates[name] = await this.createDefaultTemplate(name);
|
|
114
|
-
await fs.writeFile(templatePath, this.templates[name]);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
async generateComponentTests(component) {
|
|
120
|
-
console.log(`📋 Generating tests for component: ${component.name}`);
|
|
121
|
-
|
|
122
|
-
const testCases = await this.analyzeComponent(component);
|
|
123
|
-
|
|
124
|
-
for (const testCase of testCases) {
|
|
125
|
-
const testContent = await this.generateTestFromTemplate(testCase);
|
|
126
|
-
const filename = `${component.name}-${testCase.type}.spec.js`;
|
|
127
|
-
const filepath = path.join(this.outputDir, testCase.category, filename);
|
|
128
|
-
|
|
129
|
-
await fs.writeFile(filepath, testContent);
|
|
130
|
-
this.generatedTests.push({ file: filepath, type: testCase.type, component: component.name });
|
|
131
|
-
|
|
132
|
-
if (this.verbose) {
|
|
133
|
-
console.log(` ✓ Generated: ${filename}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
async generateTopologyTests() {
|
|
139
|
-
console.log('🕸️ Generating swarm topology tests...');
|
|
140
|
-
|
|
141
|
-
for (const [topology, config] of Object.entries(SWARM_PATTERNS)) {
|
|
142
|
-
const testContent = await this.generateTopologyTest(topology, config);
|
|
143
|
-
const filename = `${topology}-topology.spec.js`;
|
|
144
|
-
const filepath = path.join(this.outputDir, 'swarm', filename);
|
|
145
|
-
|
|
146
|
-
await fs.writeFile(filepath, testContent);
|
|
147
|
-
this.generatedTests.push({ file: filepath, type: 'topology', topology });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
async generateIntegrationTests() {
|
|
152
|
-
console.log('🔗 Generating integration tests...');
|
|
153
|
-
|
|
154
|
-
const integrationScenarios = [
|
|
155
|
-
'swarm-initialization',
|
|
156
|
-
'agent-spawning',
|
|
157
|
-
'task-orchestration',
|
|
158
|
-
'error-recovery',
|
|
159
|
-
'performance-monitoring'
|
|
160
|
-
];
|
|
161
|
-
|
|
162
|
-
for (const scenario of integrationScenarios) {
|
|
163
|
-
const testContent = await this.generateIntegrationTest(scenario);
|
|
164
|
-
const filename = `${scenario}-integration.spec.js`;
|
|
165
|
-
const filepath = path.join(this.outputDir, 'integration', filename);
|
|
166
|
-
|
|
167
|
-
await fs.writeFile(filepath, testContent);
|
|
168
|
-
this.generatedTests.push({ file: filepath, type: 'integration', scenario });
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
async generatePerformanceTests() {
|
|
173
|
-
console.log('⚡ Generating performance tests...');
|
|
174
|
-
|
|
175
|
-
const performanceTests = [
|
|
176
|
-
'swarm-scalability',
|
|
177
|
-
'coordination-latency',
|
|
178
|
-
'memory-usage',
|
|
179
|
-
'cpu-utilization',
|
|
180
|
-
'throughput-benchmarks'
|
|
181
|
-
];
|
|
182
|
-
|
|
183
|
-
for (const perfTest of performanceTests) {
|
|
184
|
-
const testContent = await this.generatePerformanceTest(perfTest);
|
|
185
|
-
const filename = `${perfTest}-performance.spec.js`;
|
|
186
|
-
const filepath = path.join(this.outputDir, 'performance', filename);
|
|
187
|
-
|
|
188
|
-
await fs.writeFile(filepath, testContent);
|
|
189
|
-
this.generatedTests.push({ file: filepath, type: 'performance', test: perfTest });
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
async generateBrowserTests() {
|
|
194
|
-
console.log('🌐 Generating browser interaction tests...');
|
|
195
|
-
|
|
196
|
-
const browserTests = [
|
|
197
|
-
'swarm-dashboard-ui',
|
|
198
|
-
'real-time-monitoring',
|
|
199
|
-
'agent-visualization',
|
|
200
|
-
'task-progress-tracking',
|
|
201
|
-
'error-notifications'
|
|
202
|
-
];
|
|
203
|
-
|
|
204
|
-
for (const browserTest of browserTests) {
|
|
205
|
-
const testContent = await this.generateBrowserTest(browserTest);
|
|
206
|
-
const filename = `${browserTest}-browser.spec.js`;
|
|
207
|
-
const filepath = path.join(this.outputDir, 'browser', filename);
|
|
208
|
-
|
|
209
|
-
await fs.writeFile(filepath, testContent);
|
|
210
|
-
this.generatedTests.push({ file: filepath, type: 'browser', test: browserTest });
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
async analyzeComponent(component) {
|
|
215
|
-
// Analyze component to determine test cases
|
|
216
|
-
const testCases = [];
|
|
217
|
-
|
|
218
|
-
// Basic functionality tests
|
|
219
|
-
testCases.push({
|
|
220
|
-
type: 'basic-functionality',
|
|
221
|
-
category: 'integration',
|
|
222
|
-
description: `Test basic functionality of ${component.name}`,
|
|
223
|
-
actions: component.actions || ['initialize', 'execute', 'cleanup'],
|
|
224
|
-
validations: component.validations || ['state-consistency', 'output-correctness']
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
// Error handling tests
|
|
228
|
-
testCases.push({
|
|
229
|
-
type: 'error-handling',
|
|
230
|
-
category: 'integration',
|
|
231
|
-
description: `Test error handling in ${component.name}`,
|
|
232
|
-
actions: ['trigger-error', 'verify-recovery'],
|
|
233
|
-
validations: ['error-propagation', 'recovery-mechanism']
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
// Performance tests if component is performance-critical
|
|
237
|
-
if (component.performanceCritical) {
|
|
238
|
-
testCases.push({
|
|
239
|
-
type: 'performance',
|
|
240
|
-
category: 'performance',
|
|
241
|
-
description: `Performance test for ${component.name}`,
|
|
242
|
-
actions: ['load-test', 'measure-metrics'],
|
|
243
|
-
validations: ['response-time', 'throughput', 'resource-usage']
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
return testCases;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
async generateTestFromTemplate(testCase) {
|
|
251
|
-
let template = this.templates.SWARM_COORDINATION;
|
|
252
|
-
|
|
253
|
-
switch (testCase.type) {
|
|
254
|
-
case 'performance':
|
|
255
|
-
template = this.templates.PERFORMANCE_MONITORING;
|
|
256
|
-
break;
|
|
257
|
-
case 'error-handling':
|
|
258
|
-
template = this.templates.ERROR_HANDLING;
|
|
259
|
-
break;
|
|
260
|
-
case 'byzantine-consensus':
|
|
261
|
-
template = this.templates.BYZANTINE_CONSENSUS;
|
|
262
|
-
break;
|
|
263
|
-
default:
|
|
264
|
-
template = this.templates.AGENT_INTERACTION;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
return this.substituteTemplate(template, testCase);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
async generateTopologyTest(topology, config) {
|
|
271
|
-
const template = `
|
|
272
|
-
import { test, expect } from '@playwright/test';
|
|
273
|
-
import { SwarmTestHelper } from '../helpers/swarm-test-helper.js';
|
|
274
|
-
|
|
275
|
-
test.describe('${topology.charAt(0).toUpperCase() + topology.slice(1)} Topology Tests', () => {
|
|
276
|
-
let swarmHelper;
|
|
277
|
-
|
|
278
|
-
test.beforeEach(async ({ page }) => {
|
|
279
|
-
swarmHelper = new SwarmTestHelper(page);
|
|
280
|
-
await swarmHelper.initializeSwarm('${topology}', ${config.agents.length});
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
test.afterEach(async () => {
|
|
284
|
-
await swarmHelper.cleanup();
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
test('should initialize ${topology} topology correctly', async ({ page }) => {
|
|
288
|
-
// Initialize swarm with ${topology} topology
|
|
289
|
-
const result = await swarmHelper.createSwarm({
|
|
290
|
-
topology: '${topology}',
|
|
291
|
-
agents: ${JSON.stringify(config.agents)},
|
|
292
|
-
maxAgents: ${config.agents.length}
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
expect(result.success).toBe(true);
|
|
296
|
-
expect(result.topology).toBe('${topology}');
|
|
297
|
-
expect(result.agentCount).toBe(${config.agents.length});
|
|
298
|
-
});
|
|
299
|
-
|
|
300
|
-
${config.interactions.map(interaction => `
|
|
301
|
-
test('should handle ${interaction} interaction', async ({ page }) => {
|
|
302
|
-
await swarmHelper.testInteraction('${interaction}');
|
|
303
|
-
const result = await swarmHelper.getInteractionResult();
|
|
304
|
-
expect(result.success).toBe(true);
|
|
305
|
-
});`).join('\n')}
|
|
306
|
-
|
|
307
|
-
${config.validations.map(validation => `
|
|
308
|
-
test('should validate ${validation}', async ({ page }) => {
|
|
309
|
-
const isValid = await swarmHelper.validateTopology('${validation}');
|
|
310
|
-
expect(isValid).toBe(true);
|
|
311
|
-
});`).join('\n')}
|
|
312
|
-
|
|
313
|
-
test('should recover from node failure in ${topology} topology', async ({ page }) => {
|
|
314
|
-
// Simulate node failure
|
|
315
|
-
await swarmHelper.simulateNodeFailure(0);
|
|
316
|
-
|
|
317
|
-
// Verify recovery
|
|
318
|
-
const recovered = await swarmHelper.waitForRecovery(30000);
|
|
319
|
-
expect(recovered).toBe(true);
|
|
320
|
-
|
|
321
|
-
// Verify topology integrity
|
|
322
|
-
const isValid = await swarmHelper.validateTopology('fault-tolerance');
|
|
323
|
-
expect(isValid).toBe(true);
|
|
324
|
-
});
|
|
325
|
-
});`;
|
|
326
|
-
|
|
327
|
-
return template;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
async generateIntegrationTest(scenario) {
|
|
331
|
-
const template = `
|
|
332
|
-
import { test, expect } from '@playwright/test';
|
|
333
|
-
import { SwarmTestHelper } from '../helpers/swarm-test-helper.js';
|
|
334
|
-
import { performanceMonitor } from '../helpers/performance-monitor.js';
|
|
335
|
-
|
|
336
|
-
test.describe('${scenario.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase())} Integration Tests', () => {
|
|
337
|
-
let swarmHelper;
|
|
338
|
-
|
|
339
|
-
test.beforeEach(async ({ page }) => {
|
|
340
|
-
swarmHelper = new SwarmTestHelper(page);
|
|
341
|
-
await performanceMonitor.start();
|
|
342
|
-
});
|
|
343
|
-
|
|
344
|
-
test.afterEach(async () => {
|
|
345
|
-
await swarmHelper.cleanup();
|
|
346
|
-
await performanceMonitor.stop();
|
|
347
|
-
});
|
|
348
|
-
|
|
349
|
-
test('should execute ${scenario} successfully', async ({ page }) => {
|
|
350
|
-
// Setup scenario
|
|
351
|
-
await swarmHelper.setupScenario('${scenario}');
|
|
352
|
-
|
|
353
|
-
// Execute scenario
|
|
354
|
-
const result = await swarmHelper.executeScenario('${scenario}');
|
|
355
|
-
|
|
356
|
-
// Validate results
|
|
357
|
-
expect(result.success).toBe(true);
|
|
358
|
-
expect(result.errors).toHaveLength(0);
|
|
359
|
-
|
|
360
|
-
// Check performance metrics
|
|
361
|
-
const metrics = await performanceMonitor.getMetrics();
|
|
362
|
-
expect(metrics.executionTime).toBeLessThan(30000); // 30 seconds max
|
|
363
|
-
});
|
|
364
|
-
|
|
365
|
-
test('should handle ${scenario} errors gracefully', async ({ page }) => {
|
|
366
|
-
// Inject error condition
|
|
367
|
-
await swarmHelper.injectError('${scenario}');
|
|
368
|
-
|
|
369
|
-
// Execute scenario with error
|
|
370
|
-
const result = await swarmHelper.executeScenario('${scenario}');
|
|
371
|
-
|
|
372
|
-
// Verify error handling
|
|
373
|
-
expect(result.errorHandled).toBe(true);
|
|
374
|
-
expect(result.recovered).toBe(true);
|
|
375
|
-
});
|
|
376
|
-
});`;
|
|
377
|
-
|
|
378
|
-
return template;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
async generatePerformanceTest(perfTest) {
|
|
382
|
-
const template = `
|
|
383
|
-
import { test, expect } from '@playwright/test';
|
|
384
|
-
import { SwarmTestHelper } from '../helpers/swarm-test-helper.js';
|
|
385
|
-
import { PerformanceMonitor } from '../helpers/performance-monitor.js';
|
|
386
|
-
|
|
387
|
-
test.describe('${perfTest.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase())} Performance Tests', () => {
|
|
388
|
-
let swarmHelper;
|
|
389
|
-
let perfMonitor;
|
|
390
|
-
|
|
391
|
-
test.beforeEach(async ({ page }) => {
|
|
392
|
-
swarmHelper = new SwarmTestHelper(page);
|
|
393
|
-
perfMonitor = new PerformanceMonitor();
|
|
394
|
-
await perfMonitor.initialize();
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
test.afterEach(async () => {
|
|
398
|
-
await swarmHelper.cleanup();
|
|
399
|
-
await perfMonitor.cleanup();
|
|
400
|
-
});
|
|
401
|
-
|
|
402
|
-
test('should meet performance requirements for ${perfTest}', async ({ page }) => {
|
|
403
|
-
await perfMonitor.startMeasurement('${perfTest}');
|
|
404
|
-
|
|
405
|
-
// Execute performance test
|
|
406
|
-
const result = await swarmHelper.runPerformanceTest('${perfTest}', {
|
|
407
|
-
duration: 60000, // 1 minute
|
|
408
|
-
concurrency: 10,
|
|
409
|
-
rampUp: 5000 // 5 seconds
|
|
410
|
-
});
|
|
411
|
-
|
|
412
|
-
const metrics = await perfMonitor.stopMeasurement();
|
|
413
|
-
|
|
414
|
-
// Performance assertions
|
|
415
|
-
expect(metrics.averageResponseTime).toBeLessThan(1000); // 1 second
|
|
416
|
-
expect(metrics.throughput).toBeGreaterThan(10); // 10 ops/sec
|
|
417
|
-
expect(metrics.errorRate).toBeLessThan(0.01); // < 1% errors
|
|
418
|
-
|
|
419
|
-
// Memory and CPU usage
|
|
420
|
-
expect(metrics.memoryUsage.peak).toBeLessThan(512 * 1024 * 1024); // 512MB
|
|
421
|
-
expect(metrics.cpuUsage.average).toBeLessThan(80); // 80% CPU
|
|
422
|
-
});
|
|
423
|
-
|
|
424
|
-
test('should handle load spikes for ${perfTest}', async ({ page }) => {
|
|
425
|
-
// Gradual load increase
|
|
426
|
-
for (let load = 1; load <= 50; load += 10) {
|
|
427
|
-
await perfMonitor.startMeasurement(\`${perfTest}-load-\${load}\`);
|
|
428
|
-
|
|
429
|
-
const result = await swarmHelper.runLoadTest({
|
|
430
|
-
concurrency: load,
|
|
431
|
-
duration: 10000 // 10 seconds
|
|
432
|
-
});
|
|
433
|
-
|
|
434
|
-
const metrics = await perfMonitor.stopMeasurement();
|
|
435
|
-
|
|
436
|
-
// Should maintain acceptable performance under load
|
|
437
|
-
expect(metrics.averageResponseTime).toBeLessThan(5000); // 5 seconds max
|
|
438
|
-
expect(result.errors).toHaveLength(0);
|
|
439
|
-
}
|
|
440
|
-
});
|
|
441
|
-
});`;
|
|
442
|
-
|
|
443
|
-
return template;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
async generateBrowserTest(browserTest) {
|
|
447
|
-
const template = `
|
|
448
|
-
import { test, expect } from '@playwright/test';
|
|
449
|
-
|
|
450
|
-
test.describe('${browserTest.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase())} Browser Tests', () => {
|
|
451
|
-
test.beforeEach(async ({ page }) => {
|
|
452
|
-
await page.goto('/');
|
|
453
|
-
await page.waitForLoadState('networkidle');
|
|
454
|
-
});
|
|
455
|
-
|
|
456
|
-
test('should display ${browserTest} interface correctly', async ({ page }) => {
|
|
457
|
-
// Navigate to ${browserTest} section
|
|
458
|
-
await page.click('[data-testid="${browserTest}-nav"]');
|
|
459
|
-
|
|
460
|
-
// Verify UI elements are visible
|
|
461
|
-
await expect(page.locator('[data-testid="${browserTest}-container"]')).toBeVisible();
|
|
462
|
-
await expect(page.locator('[data-testid="${browserTest}-header"]')).toContainText('${browserTest.replace(/-/g, ' ')}');
|
|
463
|
-
});
|
|
464
|
-
|
|
465
|
-
test('should update ${browserTest} data in real-time', async ({ page }) => {
|
|
466
|
-
// Navigate to ${browserTest}
|
|
467
|
-
await page.click('[data-testid="${browserTest}-nav"]');
|
|
468
|
-
|
|
469
|
-
// Wait for initial data load
|
|
470
|
-
await page.waitForSelector('[data-testid="${browserTest}-data"]');
|
|
471
|
-
|
|
472
|
-
// Capture initial state
|
|
473
|
-
const initialData = await page.textContent('[data-testid="${browserTest}-data"]');
|
|
474
|
-
|
|
475
|
-
// Trigger update (simulate backend change)
|
|
476
|
-
await page.evaluate(() => {
|
|
477
|
-
window.simulateDataUpdate && window.simulateDataUpdate('${browserTest}');
|
|
478
|
-
});
|
|
479
|
-
|
|
480
|
-
// Wait for update
|
|
481
|
-
await page.waitForFunction(
|
|
482
|
-
(initial) => document.querySelector('[data-testid="${browserTest}-data"]').textContent !== initial,
|
|
483
|
-
initialData,
|
|
484
|
-
{ timeout: 10000 }
|
|
485
|
-
);
|
|
486
|
-
|
|
487
|
-
// Verify data changed
|
|
488
|
-
const updatedData = await page.textContent('[data-testid="${browserTest}-data"]');
|
|
489
|
-
expect(updatedData).not.toBe(initialData);
|
|
490
|
-
});
|
|
491
|
-
|
|
492
|
-
test('should handle ${browserTest} user interactions', async ({ page }) => {
|
|
493
|
-
await page.click('[data-testid="${browserTest}-nav"]');
|
|
494
|
-
|
|
495
|
-
// Test interactive elements
|
|
496
|
-
const actionButton = page.locator('[data-testid="${browserTest}-action"]');
|
|
497
|
-
if (await actionButton.count() > 0) {
|
|
498
|
-
await actionButton.click();
|
|
499
|
-
|
|
500
|
-
// Verify action result
|
|
501
|
-
await expect(page.locator('[data-testid="${browserTest}-result"]')).toBeVisible();
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
// Test form inputs if present
|
|
505
|
-
const inputField = page.locator('[data-testid="${browserTest}-input"]');
|
|
506
|
-
if (await inputField.count() > 0) {
|
|
507
|
-
await inputField.fill('test input');
|
|
508
|
-
await page.keyboard.press('Enter');
|
|
509
|
-
|
|
510
|
-
// Verify input was processed
|
|
511
|
-
await expect(page.locator('[data-testid="${browserTest}-feedback"]')).toContainText('success');
|
|
512
|
-
}
|
|
513
|
-
});
|
|
514
|
-
});`;
|
|
515
|
-
|
|
516
|
-
return template;
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
async createDefaultTemplate(templateName) {
|
|
520
|
-
return `
|
|
521
|
-
// Default template for ${templateName}
|
|
522
|
-
import { test, expect } from '@playwright/test';
|
|
523
|
-
|
|
524
|
-
test.describe('${templateName} Tests', () => {
|
|
525
|
-
test('should execute successfully', async ({ page }) => {
|
|
526
|
-
// TODO: Implement test logic for ${templateName}
|
|
527
|
-
expect(true).toBe(true);
|
|
528
|
-
});
|
|
529
|
-
});`;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
substituteTemplate(template, variables) {
|
|
533
|
-
let result = template;
|
|
534
|
-
|
|
535
|
-
for (const [key, value] of Object.entries(variables)) {
|
|
536
|
-
const regex = new RegExp(`{{${key}}}`, 'g');
|
|
537
|
-
result = result.replace(regex, value);
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
return result;
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
async generateTestIndex() {
|
|
544
|
-
const indexContent = `
|
|
545
|
-
// Generated test index
|
|
546
|
-
// This file exports all generated tests for easy importing
|
|
547
|
-
|
|
548
|
-
export const generatedTests = ${JSON.stringify(this.generatedTests, null, 2)};
|
|
549
|
-
|
|
550
|
-
export const testsByType = {
|
|
551
|
-
topology: generatedTests.filter(t => t.type === 'topology'),
|
|
552
|
-
integration: generatedTests.filter(t => t.type === 'integration'),
|
|
553
|
-
performance: generatedTests.filter(t => t.type === 'performance'),
|
|
554
|
-
browser: generatedTests.filter(t => t.type === 'browser')
|
|
555
|
-
};
|
|
556
|
-
|
|
557
|
-
export const testsByComponent = {};
|
|
558
|
-
for (const test of generatedTests) {
|
|
559
|
-
if (test.component) {
|
|
560
|
-
if (!testsByComponent[test.component]) {
|
|
561
|
-
testsByComponent[test.component] = [];
|
|
562
|
-
}
|
|
563
|
-
testsByComponent[test.component].push(test);
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
`;
|
|
567
|
-
|
|
568
|
-
await fs.writeFile(path.join(this.outputDir, 'index.js'), indexContent);
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
// CLI interface
|
|
573
|
-
const argv = yargs(hideBin(process.argv))
|
|
574
|
-
.option('components', {
|
|
575
|
-
type: 'string',
|
|
576
|
-
description: 'Components to generate tests for (JSON string)'
|
|
577
|
-
})
|
|
578
|
-
.option('output', {
|
|
579
|
-
type: 'string',
|
|
580
|
-
default: 'tests/generated',
|
|
581
|
-
description: 'Output directory for generated tests'
|
|
582
|
-
})
|
|
583
|
-
.option('format', {
|
|
584
|
-
type: 'string',
|
|
585
|
-
default: 'playwright',
|
|
586
|
-
description: 'Test format (playwright, jest, etc.)'
|
|
587
|
-
})
|
|
588
|
-
.option('verbose', {
|
|
589
|
-
type: 'boolean',
|
|
590
|
-
default: false,
|
|
591
|
-
description: 'Verbose output'
|
|
592
|
-
})
|
|
593
|
-
.help()
|
|
594
|
-
.argv;
|
|
595
|
-
|
|
596
|
-
// Main execution
|
|
597
|
-
async function main() {
|
|
598
|
-
try {
|
|
599
|
-
const components = argv.components ? JSON.parse(argv.components) : [];
|
|
600
|
-
|
|
601
|
-
const generator = new SwarmTestGenerator({
|
|
602
|
-
output: argv.output,
|
|
603
|
-
format: argv.format,
|
|
604
|
-
components,
|
|
605
|
-
verbose: argv.verbose
|
|
606
|
-
});
|
|
607
|
-
|
|
608
|
-
const generatedTests = await generator.generate();
|
|
609
|
-
|
|
610
|
-
console.log('📊 Test Generation Summary:');
|
|
611
|
-
console.log(`Total tests generated: ${generatedTests.length}`);
|
|
612
|
-
console.log(`Output directory: ${argv.output}`);
|
|
613
|
-
|
|
614
|
-
const testsByType = generatedTests.reduce((acc, test) => {
|
|
615
|
-
acc[test.type] = (acc[test.type] || 0) + 1;
|
|
616
|
-
return acc;
|
|
617
|
-
}, {});
|
|
618
|
-
|
|
619
|
-
for (const [type, count] of Object.entries(testsByType)) {
|
|
620
|
-
console.log(` ${type}: ${count} tests`);
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
} catch (error) {
|
|
624
|
-
console.error('❌ Test generation failed:', error);
|
|
625
|
-
process.exit(1);
|
|
626
|
-
}
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
630
|
-
main();
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
export default SwarmTestGenerator;
|