claude-flow-novice 2.3.4 ā 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 +41 -31
- 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 -84
- 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,526 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Unified Memory Monitor with Shared Configuration
|
|
5
|
-
*
|
|
6
|
-
* This script uses the shared memory monitoring configuration to ensure
|
|
7
|
-
* consistent behavior across all CFN-distributed systems.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { spawn } from 'child_process';
|
|
11
|
-
import fs from 'fs/promises';
|
|
12
|
-
import path from 'path';
|
|
13
|
-
import { fileURLToPath } from 'url';
|
|
14
|
-
import { MEMORY_THRESHOLDS, MEMORY_MONITOR_DEFAULTS, getProcessThreshold, isMemoryLeakPattern } from '../config/memory-monitoring-config.js';
|
|
15
|
-
|
|
16
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
-
const __dirname = path.dirname(__filename);
|
|
18
|
-
|
|
19
|
-
class UnifiedMemoryMonitor {
|
|
20
|
-
constructor(options = {}) {
|
|
21
|
-
// Merge user options with defaults
|
|
22
|
-
this.options = {
|
|
23
|
-
...MEMORY_MONITOR_DEFAULTS,
|
|
24
|
-
...options
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
this.interval = this.options.interval;
|
|
28
|
-
this.maxDuration = this.options.maxDuration;
|
|
29
|
-
this.logFile = this.options.logFile;
|
|
30
|
-
this.targetPid = this.options.targetPid || null;
|
|
31
|
-
this.processName = this.options.processName || 'node';
|
|
32
|
-
this.monitoring = false;
|
|
33
|
-
this.samples = [];
|
|
34
|
-
this.startTime = Date.now();
|
|
35
|
-
|
|
36
|
-
// Process-specific memory history for growth rate analysis
|
|
37
|
-
this.processHistory = {};
|
|
38
|
-
|
|
39
|
-
console.log('š§ Unified Memory Monitor initialized');
|
|
40
|
-
console.log(` Using shared configuration from: ${path.join(__dirname, '../config/memory-monitoring-config.js')}`);
|
|
41
|
-
console.log(` Leak detection: ${this.options.enableLeakDetection ? 'ENABLED' : 'DISABLED'}`);
|
|
42
|
-
console.log(` Growth analysis: ${this.options.enableGrowthAnalysis ? 'ENABLED' : 'DISABLED'}`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Start memory monitoring
|
|
47
|
-
*/
|
|
48
|
-
async start() {
|
|
49
|
-
console.log('\nš Starting Unified Memory Monitor');
|
|
50
|
-
console.log(`š Interval: ${this.interval}ms`);
|
|
51
|
-
console.log(`ā±ļø Max Duration: ${this.maxDuration}ms`);
|
|
52
|
-
console.log(`š Log File: ${this.logFile}`);
|
|
53
|
-
|
|
54
|
-
this.monitoring = true;
|
|
55
|
-
|
|
56
|
-
// Initialize log file
|
|
57
|
-
await this.writeLog('=== Unified Memory Monitor Started ===');
|
|
58
|
-
await this.writeLog(`Timestamp,PID,ProcessName,CPU%,MEM%,RSS(MB),VSZ(MB),Elapsed(ms),Threshold(MB),Status`);
|
|
59
|
-
|
|
60
|
-
// Start monitoring loop
|
|
61
|
-
this.monitorInterval = setInterval(() => {
|
|
62
|
-
this.collectSample();
|
|
63
|
-
}, this.interval);
|
|
64
|
-
|
|
65
|
-
// Set timeout to stop monitoring
|
|
66
|
-
setTimeout(() => {
|
|
67
|
-
this.stop();
|
|
68
|
-
}, this.maxDuration);
|
|
69
|
-
|
|
70
|
-
return new Promise((resolve) => {
|
|
71
|
-
this.onStop = resolve;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Collect memory sample with enhanced analysis
|
|
77
|
-
*/
|
|
78
|
-
async collectSample() {
|
|
79
|
-
try {
|
|
80
|
-
const now = Date.now();
|
|
81
|
-
const elapsed = now - this.startTime;
|
|
82
|
-
|
|
83
|
-
// Get process information
|
|
84
|
-
const processes = await this.getProcessInfo();
|
|
85
|
-
|
|
86
|
-
for (const proc of processes) {
|
|
87
|
-
const sample = {
|
|
88
|
-
timestamp: new Date().toISOString(),
|
|
89
|
-
pid: proc.pid,
|
|
90
|
-
name: proc.name,
|
|
91
|
-
cpu: proc.cpu,
|
|
92
|
-
mem: proc.mem,
|
|
93
|
-
rss: proc.rss,
|
|
94
|
-
vsz: proc.vsz,
|
|
95
|
-
elapsed: elapsed
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
this.samples.push(sample);
|
|
99
|
-
|
|
100
|
-
// Get process-specific threshold
|
|
101
|
-
const cmdline = this.getProcessCmdline(proc.pid);
|
|
102
|
-
const threshold = getProcessThreshold(proc.name, proc.pid, cmdline);
|
|
103
|
-
const warningThreshold = threshold.memory * MEMORY_THRESHOLDS.analysis.warningThreshold;
|
|
104
|
-
const criticalThreshold = threshold.memory;
|
|
105
|
-
|
|
106
|
-
// Determine status
|
|
107
|
-
let status = 'NORMAL';
|
|
108
|
-
if (proc.rss > criticalThreshold) {
|
|
109
|
-
status = 'CRITICAL';
|
|
110
|
-
} else if (proc.rss > warningThreshold) {
|
|
111
|
-
status = 'WARNING';
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Log to file with enhanced information
|
|
115
|
-
const logLine = `${sample.timestamp},${sample.pid},${sample.name},${sample.cpu},${sample.mem},${sample.rss},${sample.vsz},${sample.elapsed},${threshold.memory},${status}`;
|
|
116
|
-
await this.writeLog(logLine);
|
|
117
|
-
|
|
118
|
-
// Track process-specific memory history
|
|
119
|
-
if (this.options.enableGrowthAnalysis) {
|
|
120
|
-
this.trackProcessHistory(proc, now, threshold);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Console output with context-aware warnings
|
|
124
|
-
this.outputMemoryWarning(proc, threshold, status);
|
|
125
|
-
|
|
126
|
-
// Advanced leak detection if enabled
|
|
127
|
-
if (this.options.enableLeakDetection && this.options.enableGrowthAnalysis) {
|
|
128
|
-
await this.analyzeForMemoryLeaks(proc, threshold);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
} catch (error) {
|
|
133
|
-
console.error('ā Error collecting sample:', error.message);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Track process-specific memory history
|
|
139
|
-
*/
|
|
140
|
-
trackProcessHistory(proc, timestamp, threshold) {
|
|
141
|
-
const processKey = `${proc.pid}-${proc.name}`;
|
|
142
|
-
|
|
143
|
-
if (!this.processHistory[processKey]) {
|
|
144
|
-
this.processHistory[processKey] = [];
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
this.processHistory[processKey].push({
|
|
148
|
-
timestamp,
|
|
149
|
-
memory: proc.rss,
|
|
150
|
-
cpu: proc.cpu,
|
|
151
|
-
threshold: threshold.memory
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
// Keep only recent samples
|
|
155
|
-
const maxSamples = MEMORY_THRESHOLDS.analysis.maxHistorySamples;
|
|
156
|
-
if (this.processHistory[processKey].length > maxSamples) {
|
|
157
|
-
this.processHistory[processKey] = this.processHistory[processKey].slice(-maxSamples);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Output memory warnings with context
|
|
163
|
-
*/
|
|
164
|
-
outputMemoryWarning(proc, threshold, status) {
|
|
165
|
-
const { analysis } = MEMORY_THRESHOLDS;
|
|
166
|
-
|
|
167
|
-
if (status === 'WARNING') {
|
|
168
|
-
console.log(`ā ļø Moderate memory usage: PID ${proc.pid} (${proc.name}) - ${proc.rss}MB RSS (threshold: ${threshold.memory}MB)`);
|
|
169
|
-
} else if (status === 'CRITICAL') {
|
|
170
|
-
console.log(`šØ High memory detected: PID ${proc.pid} (${proc.name}) - ${proc.rss}MB RSS (exceeds threshold: ${threshold.memory}MB)`);
|
|
171
|
-
|
|
172
|
-
// Show percentage over threshold
|
|
173
|
-
const overThreshold = ((proc.rss / threshold.memory) - 1) * 100;
|
|
174
|
-
console.log(` š Over threshold by: ${overThreshold.toFixed(1)}%`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Analyze for memory leaks using historical data
|
|
180
|
-
*/
|
|
181
|
-
async analyzeForMemoryLeaks(proc, threshold) {
|
|
182
|
-
const processKey = `${proc.pid}-${proc.name}`;
|
|
183
|
-
const history = this.processHistory[processKey];
|
|
184
|
-
|
|
185
|
-
if (!history || history.length < MEMORY_THRESHOLDS.analysis.minSamplesForAnalysis) {
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Calculate growth metrics
|
|
190
|
-
const recent = history.slice(-10);
|
|
191
|
-
const timeSpan = recent[recent.length - 1].timestamp - recent[0].timestamp;
|
|
192
|
-
const memoryGrowth = recent[recent.length - 1].memory - recent[0].memory;
|
|
193
|
-
const growthRate = timeSpan > 0 ? (memoryGrowth / (timeSpan / 1000)) : 0; // MB/second
|
|
194
|
-
|
|
195
|
-
// Calculate consistent growth ratio
|
|
196
|
-
let increasingSegments = 0;
|
|
197
|
-
let totalSegments = 0;
|
|
198
|
-
|
|
199
|
-
for (let i = 1; i < recent.length; i++) {
|
|
200
|
-
totalSegments++;
|
|
201
|
-
if (recent[i].memory > recent[i - 1].memory) {
|
|
202
|
-
increasingSegments++;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
const consistentRatio = totalSegments > 0 ? increasingSegments / totalSegments : 0;
|
|
207
|
-
|
|
208
|
-
// Check for memory leak pattern
|
|
209
|
-
if (isMemoryLeakPattern(growthRate, memoryGrowth, consistentRatio)) {
|
|
210
|
-
console.log(`šØ POTENTIAL MEMORY LEAK: PID ${proc.pid} (${proc.name})`);
|
|
211
|
-
console.log(` š Growth rate: ${growthRate.toFixed(2)}MB/s`);
|
|
212
|
-
console.log(` š Total growth: ${memoryGrowth}MB`);
|
|
213
|
-
console.log(` š Consistency: ${(consistentRatio * 100).toFixed(1)}%`);
|
|
214
|
-
console.log(` š” Based on sustained growth pattern, not temporary spikes`);
|
|
215
|
-
console.log(` ā° Process age: ${((Date.now() - history[0].timestamp) / 1000).toFixed(0)}s`);
|
|
216
|
-
|
|
217
|
-
// Log to file with leak detection details
|
|
218
|
-
await this.writeLog(`MEMORY_LEAK_DETECTED: PID ${proc.pid} (${proc.name}) - Growth: ${growthRate.toFixed(2)}MB/s, Consistency: ${(consistentRatio * 100).toFixed(1)}%`);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Get process information for target processes
|
|
224
|
-
*/
|
|
225
|
-
async getProcessInfo() {
|
|
226
|
-
return new Promise((resolve, reject) => {
|
|
227
|
-
const ps = spawn('ps', ['eo', 'pid,%cpu,%mem,rss,vsz,comm'], {
|
|
228
|
-
stdio: ['ignore', 'pipe', 'pipe']
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
let output = '';
|
|
232
|
-
let error = '';
|
|
233
|
-
|
|
234
|
-
ps.stdout.on('data', (data) => {
|
|
235
|
-
output += data.toString();
|
|
236
|
-
});
|
|
237
|
-
|
|
238
|
-
ps.stderr.on('data', (data) => {
|
|
239
|
-
error += data.toString();
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
ps.on('close', (code) => {
|
|
243
|
-
if (code !== 0) {
|
|
244
|
-
reject(new Error(`ps command failed: ${error}`));
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
const processes = [];
|
|
249
|
-
const lines = output.trim().split('\n');
|
|
250
|
-
|
|
251
|
-
for (const line of lines) {
|
|
252
|
-
const parts = line.trim().split(/\s+/);
|
|
253
|
-
if (parts.length >= 6) {
|
|
254
|
-
const pid = parseInt(parts[0]);
|
|
255
|
-
const cpu = parseFloat(parts[1]);
|
|
256
|
-
const mem = parseFloat(parts[2]);
|
|
257
|
-
const rss = Math.round(parseInt(parts[3]) / 1024); // Convert KB to MB
|
|
258
|
-
const vsz = Math.round(parseInt(parts[4]) / 1024); // Convert KB to MB
|
|
259
|
-
const name = parts.slice(5).join(' ');
|
|
260
|
-
|
|
261
|
-
// Filter for target processes
|
|
262
|
-
if (this.isTargetProcess(pid, name)) {
|
|
263
|
-
processes.push({ pid, cpu, mem, rss, vsz, name });
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
resolve(processes);
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
ps.on('error', (error) => {
|
|
272
|
-
reject(error);
|
|
273
|
-
});
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Get command line for a process
|
|
279
|
-
*/
|
|
280
|
-
getProcessCmdline(pid) {
|
|
281
|
-
try {
|
|
282
|
-
const cmdlineFile = `/proc/${pid}/cmdline`;
|
|
283
|
-
return require('fs').readFileSync(cmdlineFile, 'utf8');
|
|
284
|
-
} catch (error) {
|
|
285
|
-
return '';
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Check if process should be monitored
|
|
291
|
-
*/
|
|
292
|
-
isTargetProcess(pid, name) {
|
|
293
|
-
// Monitor specific PID if provided
|
|
294
|
-
if (this.targetPid && pid === this.targetPid) {
|
|
295
|
-
return true;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
// Extended process list for comprehensive monitoring
|
|
299
|
-
const targetNames = [
|
|
300
|
-
'spawn-coordinator',
|
|
301
|
-
'spawn-workers',
|
|
302
|
-
'node',
|
|
303
|
-
'claude',
|
|
304
|
-
'rust',
|
|
305
|
-
'cargo',
|
|
306
|
-
'python',
|
|
307
|
-
'python3'
|
|
308
|
-
];
|
|
309
|
-
|
|
310
|
-
return targetNames.some(targetName =>
|
|
311
|
-
name.includes(targetName) ||
|
|
312
|
-
(name === 'node' && this.hasCoordinatorArgs(pid))
|
|
313
|
-
);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Check if node process has coordinator-related arguments
|
|
318
|
-
*/
|
|
319
|
-
hasCoordinatorArgs(pid) {
|
|
320
|
-
try {
|
|
321
|
-
const cmdline = this.getProcessCmdline(pid);
|
|
322
|
-
return cmdline.includes('spawn-coordinator') ||
|
|
323
|
-
cmdline.includes('spawn-workers') ||
|
|
324
|
-
cmdline.includes('hybrid-routing') ||
|
|
325
|
-
cmdline.includes('cfn-coordinator');
|
|
326
|
-
} catch (error) {
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Write to log file
|
|
333
|
-
*/
|
|
334
|
-
async writeLog(line) {
|
|
335
|
-
try {
|
|
336
|
-
await fs.appendFile(this.logFile, line + '\n');
|
|
337
|
-
} catch (error) {
|
|
338
|
-
console.error('ā Error writing to log:', error.message);
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Stop monitoring and generate comprehensive report
|
|
344
|
-
*/
|
|
345
|
-
async stop() {
|
|
346
|
-
if (!this.monitoring) return;
|
|
347
|
-
|
|
348
|
-
console.log('\nš Stopping Unified Memory Monitor');
|
|
349
|
-
this.monitoring = false;
|
|
350
|
-
|
|
351
|
-
if (this.monitorInterval) {
|
|
352
|
-
clearInterval(this.monitorInterval);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
// Generate comprehensive analysis report
|
|
356
|
-
await this.generateEnhancedReport();
|
|
357
|
-
|
|
358
|
-
if (this.onStop) {
|
|
359
|
-
this.onStop();
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Generate enhanced memory analysis report
|
|
365
|
-
*/
|
|
366
|
-
async generateEnhancedReport() {
|
|
367
|
-
console.log('\nš Unified Memory Analysis Report');
|
|
368
|
-
console.log('='.repeat(60));
|
|
369
|
-
|
|
370
|
-
if (this.samples.length === 0) {
|
|
371
|
-
console.log('ā No samples collected');
|
|
372
|
-
return;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
// Group samples by process
|
|
376
|
-
const processGroups = {};
|
|
377
|
-
for (const sample of this.samples) {
|
|
378
|
-
const key = `${sample.pid}-${sample.name}`;
|
|
379
|
-
if (!processGroups[key]) {
|
|
380
|
-
processGroups[key] = [];
|
|
381
|
-
}
|
|
382
|
-
processGroups[key].push(sample);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
console.log(`\nš Summary: ${Object.keys(processGroups).length} processes monitored`);
|
|
386
|
-
console.log(`ā±ļø Duration: ${((Date.now() - this.startTime) / 1000).toFixed(1)} seconds`);
|
|
387
|
-
console.log(`š Total samples: ${this.samples.length}`);
|
|
388
|
-
|
|
389
|
-
// Analyze each process
|
|
390
|
-
for (const [processKey, samples] of Object.entries(processGroups)) {
|
|
391
|
-
const [pid, name] = processKey.split('-');
|
|
392
|
-
console.log(`\nš Process: ${name} (PID: ${pid})`);
|
|
393
|
-
|
|
394
|
-
const memoryValues = samples.map(s => s.rss);
|
|
395
|
-
const cpuValues = samples.map(s => s.cpu);
|
|
396
|
-
|
|
397
|
-
const minMemory = Math.min(...memoryValues);
|
|
398
|
-
const maxMemory = Math.max(...memoryValues);
|
|
399
|
-
const avgMemory = memoryValues.reduce((a, b) => a + b, 0) / memoryValues.length;
|
|
400
|
-
|
|
401
|
-
const minCpu = Math.min(...cpuValues);
|
|
402
|
-
const maxCpu = Math.max(...cpuValues);
|
|
403
|
-
const avgCpu = cpuValues.reduce((a, b) => a + b, 0) / cpuValues.length;
|
|
404
|
-
|
|
405
|
-
console.log(` Memory: ${minMemory}MB ā ${maxMemory}MB (avg: ${avgMemory.toFixed(1)}MB)`);
|
|
406
|
-
console.log(` CPU: ${minCpu}% ā ${maxCpu}% (avg: ${avgCpu.toFixed(1)}%)`);
|
|
407
|
-
console.log(` Samples: ${samples.length}`);
|
|
408
|
-
|
|
409
|
-
// Get threshold for this process
|
|
410
|
-
const cmdline = this.getProcessCmdline(parseInt(pid));
|
|
411
|
-
const threshold = getProcessThreshold(name, parseInt(pid), cmdline);
|
|
412
|
-
console.log(` Threshold: ${threshold.memory}MB (${threshold.description})`);
|
|
413
|
-
|
|
414
|
-
// Check threshold compliance
|
|
415
|
-
const thresholdCompliance = ((maxMemory / threshold.memory) * 100).toFixed(1);
|
|
416
|
-
if (maxMemory > threshold.memory) {
|
|
417
|
-
console.log(` šØ EXCEEDED THRESHOLD by ${thresholdCompliance}%`);
|
|
418
|
-
} else {
|
|
419
|
-
console.log(` ā
Within threshold (${thresholdCompliance}% of max)`);
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
// Memory growth analysis
|
|
423
|
-
const memoryGrowth = maxMemory - minMemory;
|
|
424
|
-
const memoryGrowthRate = memoryGrowth / (samples.length * this.interval / 1000);
|
|
425
|
-
|
|
426
|
-
if (memoryGrowth > MEMORY_THRESHOLDS.analysis.totalGrowthThreshold) {
|
|
427
|
-
console.log(` ā ļø Memory growth: ${memoryGrowth}MB (${memoryGrowthRate.toFixed(2)}MB/s)`);
|
|
428
|
-
|
|
429
|
-
if (memoryGrowthRate > MEMORY_THRESHOLDS.analysis.growthRateThreshold) {
|
|
430
|
-
console.log(` šØ HIGH GROWTH RATE detected!`);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
// CPU spikes
|
|
435
|
-
if (maxCpu > 80) {
|
|
436
|
-
console.log(` ā ļø High CPU usage detected: ${maxCpu}%`);
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
// Write detailed report to file
|
|
441
|
-
const reportFile = this.logFile.replace('.log', '-enhanced-report.json');
|
|
442
|
-
await fs.writeFile(reportFile, JSON.stringify({
|
|
443
|
-
summary: {
|
|
444
|
-
totalSamples: this.samples.length,
|
|
445
|
-
duration: Date.now() - this.startTime,
|
|
446
|
-
processesAnalyzed: Object.keys(processGroups).length,
|
|
447
|
-
configuration: {
|
|
448
|
-
thresholds: MEMORY_THRESHOLDS,
|
|
449
|
-
options: this.options
|
|
450
|
-
}
|
|
451
|
-
},
|
|
452
|
-
processGroups,
|
|
453
|
-
samples: this.samples
|
|
454
|
-
}, null, 2));
|
|
455
|
-
|
|
456
|
-
console.log(`\nš Enhanced report saved to: ${reportFile}`);
|
|
457
|
-
console.log(`š§ Configuration: ${path.join(__dirname, '../config/memory-monitoring-config.js')}`);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
/**
|
|
462
|
-
* Main execution function
|
|
463
|
-
*/
|
|
464
|
-
async function main() {
|
|
465
|
-
const args = process.argv.slice(2);
|
|
466
|
-
const options = {};
|
|
467
|
-
|
|
468
|
-
// Parse command line arguments
|
|
469
|
-
for (let i = 0; i < args.length; i++) {
|
|
470
|
-
if (args[i] === '--pid' && args[i + 1]) {
|
|
471
|
-
options.targetPid = parseInt(args[i + 1]);
|
|
472
|
-
i++;
|
|
473
|
-
} else if (args[i] === '--interval' && args[i + 1]) {
|
|
474
|
-
options.interval = parseInt(args[i + 1]);
|
|
475
|
-
i++;
|
|
476
|
-
} else if (args[i] === '--duration' && args[i + 1]) {
|
|
477
|
-
options.maxDuration = parseInt(args[i + 1]);
|
|
478
|
-
i++;
|
|
479
|
-
} else if (args[i] === '--log-file' && args[i + 1]) {
|
|
480
|
-
options.logFile = args[i + 1];
|
|
481
|
-
i++;
|
|
482
|
-
} else if (args[i] === '--disable-leak-detection') {
|
|
483
|
-
options.enableLeakDetection = false;
|
|
484
|
-
} else if (args[i] === '--disable-growth-analysis') {
|
|
485
|
-
options.enableGrowthAnalysis = false;
|
|
486
|
-
} else if (args[i] === '--help' || args[i] === '-h') {
|
|
487
|
-
console.log(`
|
|
488
|
-
Unified Memory Monitor - CFN Distributed Systems
|
|
489
|
-
|
|
490
|
-
Usage: node unified-memory-monitor.js [options]
|
|
491
|
-
|
|
492
|
-
Options:
|
|
493
|
-
--pid <number> Monitor specific process ID
|
|
494
|
-
--interval <ms> Monitoring interval (default: 2000ms)
|
|
495
|
-
--duration <ms> Maximum monitoring duration (default: 300000ms)
|
|
496
|
-
--log-file <path> Log file path (default: ./memory-monitor.log)
|
|
497
|
-
--disable-leak-detection Disable memory leak detection
|
|
498
|
-
--disable-growth-analysis Disable growth pattern analysis
|
|
499
|
-
--help, -h Show this help
|
|
500
|
-
|
|
501
|
-
Examples:
|
|
502
|
-
node unified-memory-monitor.js --pid 12345
|
|
503
|
-
node unified-memory-monitor.js --interval 5000 --duration 600000
|
|
504
|
-
node unified-memory-monitor.js --log-file ./custom-monitor.log
|
|
505
|
-
|
|
506
|
-
Configuration:
|
|
507
|
-
Uses shared configuration from ../config/memory-monitoring-config.js
|
|
508
|
-
Process thresholds and analysis parameters are centrally managed.
|
|
509
|
-
`);
|
|
510
|
-
process.exit(0);
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
const monitor = new UnifiedMemoryMonitor(options);
|
|
515
|
-
await monitor.start();
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
// Run if executed directly
|
|
519
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
520
|
-
main().catch(error => {
|
|
521
|
-
console.error('ā Memory monitor error:', error);
|
|
522
|
-
process.exit(1);
|
|
523
|
-
});
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
export { UnifiedMemoryMonitor };
|