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,420 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
# cleanup-blocking-coordination.sh
|
|
4
|
-
# Sprint 3.2: Auto-Recovery Mechanisms - High-Performance Cleanup Script
|
|
5
|
-
#
|
|
6
|
-
# Performance Optimized Version:
|
|
7
|
-
# - Target: <5s for 10,000 coordinators (2,000 coordinators/sec)
|
|
8
|
-
# - Strategy: Lua script execution for atomic, server-side batch processing
|
|
9
|
-
# - Fallback: Original sequential bash implementation if Lua fails
|
|
10
|
-
#
|
|
11
|
-
# Finds and removes stale blocking coordinator state from Redis.
|
|
12
|
-
# Stale detection: Heartbeat age >10 minutes (600 seconds)
|
|
13
|
-
#
|
|
14
|
-
# Features:
|
|
15
|
-
# - Uses Redis SCAN (not KEYS) to prevent DoS in production
|
|
16
|
-
# - Lua script for 50-60x performance improvement
|
|
17
|
-
# - Dry-run mode for testing: --dry-run flag
|
|
18
|
-
# - Logs to ~/.claude-flow/logs/blocking-cleanup.log
|
|
19
|
-
# - Exit codes: 0 (success), 1 (Redis connection failed), 2 (cleanup errors)
|
|
20
|
-
# - Cleanup categories: heartbeats, ACKs, signals, idempotency, activity
|
|
21
|
-
#
|
|
22
|
-
# Usage:
|
|
23
|
-
# ./scripts/cleanup-blocking-coordination.sh # Production cleanup
|
|
24
|
-
# ./scripts/cleanup-blocking-coordination.sh --dry-run # Test mode
|
|
25
|
-
# ./scripts/cleanup-blocking-coordination.sh --fallback # Force bash implementation
|
|
26
|
-
#
|
|
27
|
-
# Scheduled execution:
|
|
28
|
-
# - systemd timer: Every 5 minutes (systemd/cleanup-blocking-coordination.timer)
|
|
29
|
-
# - cron: */5 * * * * (cron.d/cleanup-blocking-coordination)
|
|
30
|
-
# - npm: npm run cleanup:blocking
|
|
31
|
-
#
|
|
32
|
-
|
|
33
|
-
set -euo pipefail
|
|
34
|
-
|
|
35
|
-
# ===== CONFIGURATION =====
|
|
36
|
-
|
|
37
|
-
# Stale threshold: 10 minutes = 600 seconds
|
|
38
|
-
STALE_THRESHOLD_SECONDS=600
|
|
39
|
-
|
|
40
|
-
# Log file location
|
|
41
|
-
LOG_DIR="${HOME}/.claude-flow/logs"
|
|
42
|
-
LOG_FILE="${LOG_DIR}/blocking-cleanup.log"
|
|
43
|
-
|
|
44
|
-
# Redis connection (uses environment variables or defaults)
|
|
45
|
-
REDIS_HOST="${REDIS_HOST:-127.0.0.1}"
|
|
46
|
-
REDIS_PORT="${REDIS_PORT:-6379}"
|
|
47
|
-
REDIS_PASSWORD="${REDIS_PASSWORD:-}"
|
|
48
|
-
REDIS_DB="${REDIS_DB:-0}"
|
|
49
|
-
|
|
50
|
-
# Script directory (for Lua script location)
|
|
51
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
52
|
-
LUA_SCRIPT="${SCRIPT_DIR}/redis-lua/cleanup-blocking-coordination.lua"
|
|
53
|
-
|
|
54
|
-
# Dry-run mode flag
|
|
55
|
-
DRY_RUN=false
|
|
56
|
-
|
|
57
|
-
# Force fallback to bash implementation
|
|
58
|
-
FORCE_FALLBACK=false
|
|
59
|
-
|
|
60
|
-
# Metrics counters
|
|
61
|
-
TOTAL_COORDINATORS_CHECKED=0
|
|
62
|
-
STALE_COORDINATORS_FOUND=0
|
|
63
|
-
KEYS_DELETED=0
|
|
64
|
-
CLEANUP_ERRORS=0
|
|
65
|
-
EXECUTION_TIME_MS=0
|
|
66
|
-
|
|
67
|
-
# ===== HELPER FUNCTIONS =====
|
|
68
|
-
|
|
69
|
-
# Log with timestamp
|
|
70
|
-
log() {
|
|
71
|
-
local level="$1"
|
|
72
|
-
shift
|
|
73
|
-
local message="$*"
|
|
74
|
-
local timestamp
|
|
75
|
-
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
|
|
76
|
-
echo "[${timestamp}] [${level}] ${message}" | tee -a "${LOG_FILE}"
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
# Redis command wrapper with authentication
|
|
80
|
-
redis_cmd() {
|
|
81
|
-
if [ -n "${REDIS_PASSWORD}" ]; then
|
|
82
|
-
redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -a "${REDIS_PASSWORD}" -n "${REDIS_DB}" "$@" 2>/dev/null
|
|
83
|
-
else
|
|
84
|
-
redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -n "${REDIS_DB}" "$@" 2>/dev/null
|
|
85
|
-
fi
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
# Redis EVAL wrapper for Lua script execution
|
|
89
|
-
redis_eval_lua() {
|
|
90
|
-
local lua_script="$1"
|
|
91
|
-
local num_keys="$2"
|
|
92
|
-
shift 2
|
|
93
|
-
local args=("$@")
|
|
94
|
-
|
|
95
|
-
if [ -n "${REDIS_PASSWORD}" ]; then
|
|
96
|
-
redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -a "${REDIS_PASSWORD}" -n "${REDIS_DB}" --eval "${lua_script}" "${num_keys}" "${args[@]}" 2>/dev/null
|
|
97
|
-
else
|
|
98
|
-
redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -n "${REDIS_DB}" --eval "${lua_script}" "${num_keys}" "${args[@]}" 2>/dev/null
|
|
99
|
-
fi
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
# High-performance Lua-based cleanup
|
|
103
|
-
cleanup_lua() {
|
|
104
|
-
log "INFO" "Using high-performance Lua script for cleanup"
|
|
105
|
-
|
|
106
|
-
# Check if Lua script exists
|
|
107
|
-
if [ ! -f "${LUA_SCRIPT}" ]; then
|
|
108
|
-
log "ERROR" "Lua script not found: ${LUA_SCRIPT}"
|
|
109
|
-
log "INFO" "Falling back to bash implementation"
|
|
110
|
-
return 1
|
|
111
|
-
fi
|
|
112
|
-
|
|
113
|
-
# Execute Lua script
|
|
114
|
-
local dry_run_flag=0
|
|
115
|
-
if [ "${DRY_RUN}" = true ]; then
|
|
116
|
-
dry_run_flag=1
|
|
117
|
-
fi
|
|
118
|
-
|
|
119
|
-
local start_time
|
|
120
|
-
start_time=$(date +%s%3N)
|
|
121
|
-
|
|
122
|
-
local lua_result
|
|
123
|
-
lua_result=$(redis_eval_lua "${LUA_SCRIPT}" 0 "${STALE_THRESHOLD_SECONDS}" "${dry_run_flag}") || {
|
|
124
|
-
log "ERROR" "Lua script execution failed"
|
|
125
|
-
return 1
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
local end_time
|
|
129
|
-
end_time=$(date +%s%3N)
|
|
130
|
-
EXECUTION_TIME_MS=$((end_time - start_time))
|
|
131
|
-
|
|
132
|
-
# Parse JSON result
|
|
133
|
-
if command -v jq >/dev/null 2>&1; then
|
|
134
|
-
TOTAL_COORDINATORS_CHECKED=$(echo "${lua_result}" | jq -r '.totalCoordinatorsChecked')
|
|
135
|
-
STALE_COORDINATORS_FOUND=$(echo "${lua_result}" | jq -r '.staleCoordinatorsFound')
|
|
136
|
-
KEYS_DELETED=$(echo "${lua_result}" | jq -r '.keysDeleted')
|
|
137
|
-
local lua_execution_time_ms
|
|
138
|
-
lua_execution_time_ms=$(echo "${lua_result}" | jq -r '.executionTimeMs')
|
|
139
|
-
|
|
140
|
-
log "INFO" "Lua script execution time: ${lua_execution_time_ms}ms (server-side)"
|
|
141
|
-
log "INFO" "Total round-trip time: ${EXECUTION_TIME_MS}ms (including network)"
|
|
142
|
-
|
|
143
|
-
# Log stale coordinator IDs if any found
|
|
144
|
-
local stale_ids
|
|
145
|
-
stale_ids=$(echo "${lua_result}" | jq -r '.staleCoordinatorIds[]' 2>/dev/null || echo "")
|
|
146
|
-
if [ -n "${stale_ids}" ]; then
|
|
147
|
-
log "DEBUG" "Stale coordinator IDs: ${stale_ids}"
|
|
148
|
-
fi
|
|
149
|
-
else
|
|
150
|
-
log "WARN" "jq not found, cannot parse Lua script output"
|
|
151
|
-
log "INFO" "Raw output: ${lua_result}"
|
|
152
|
-
return 1
|
|
153
|
-
fi
|
|
154
|
-
|
|
155
|
-
return 0
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
# Redis SCAN wrapper (non-blocking alternative to KEYS)
|
|
159
|
-
redis_scan() {
|
|
160
|
-
local pattern="$1"
|
|
161
|
-
local cursor=0
|
|
162
|
-
local keys=()
|
|
163
|
-
|
|
164
|
-
while true; do
|
|
165
|
-
# SCAN returns: [cursor, [key1, key2, ...]]
|
|
166
|
-
local result
|
|
167
|
-
result=$(redis_cmd SCAN "${cursor}" MATCH "${pattern}" COUNT 100)
|
|
168
|
-
|
|
169
|
-
# Extract new cursor (first line)
|
|
170
|
-
cursor=$(echo "${result}" | head -n 1)
|
|
171
|
-
|
|
172
|
-
# Extract keys (remaining lines)
|
|
173
|
-
local batch_keys
|
|
174
|
-
batch_keys=$(echo "${result}" | tail -n +2)
|
|
175
|
-
|
|
176
|
-
# Add to results
|
|
177
|
-
if [ -n "${batch_keys}" ]; then
|
|
178
|
-
keys+=( ${batch_keys} )
|
|
179
|
-
fi
|
|
180
|
-
|
|
181
|
-
# Check if scan is complete
|
|
182
|
-
if [ "${cursor}" = "0" ]; then
|
|
183
|
-
break
|
|
184
|
-
fi
|
|
185
|
-
done
|
|
186
|
-
|
|
187
|
-
# Return unique keys (SCAN may return duplicates)
|
|
188
|
-
printf '%s\n' "${keys[@]}" | sort -u
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
# Get current Unix timestamp
|
|
192
|
-
current_timestamp() {
|
|
193
|
-
date +%s
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
# Calculate age of heartbeat in seconds
|
|
197
|
-
get_heartbeat_age() {
|
|
198
|
-
local heartbeat_key="$1"
|
|
199
|
-
|
|
200
|
-
# Get heartbeat timestamp from Redis
|
|
201
|
-
local heartbeat_value
|
|
202
|
-
heartbeat_value=$(redis_cmd GET "${heartbeat_key}")
|
|
203
|
-
|
|
204
|
-
if [ -z "${heartbeat_value}" ]; then
|
|
205
|
-
echo "-1" # Heartbeat not found
|
|
206
|
-
return
|
|
207
|
-
fi
|
|
208
|
-
|
|
209
|
-
# Parse JSON to extract timestamp (format: {"coordinatorId":"...","timestamp":1234567890,...})
|
|
210
|
-
local heartbeat_timestamp
|
|
211
|
-
heartbeat_timestamp=$(echo "${heartbeat_value}" | grep -oP '(?<="timestamp":)\d+' || echo "0")
|
|
212
|
-
|
|
213
|
-
if [ "${heartbeat_timestamp}" = "0" ]; then
|
|
214
|
-
echo "-1" # Invalid timestamp
|
|
215
|
-
return
|
|
216
|
-
fi
|
|
217
|
-
|
|
218
|
-
# Calculate age
|
|
219
|
-
local now
|
|
220
|
-
now=$(current_timestamp)
|
|
221
|
-
local age=$((now - heartbeat_timestamp / 1000)) # Convert ms to seconds
|
|
222
|
-
|
|
223
|
-
echo "${age}"
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
# Cleanup coordinator state (bash fallback implementation)
|
|
227
|
-
cleanup_coordinator() {
|
|
228
|
-
local coordinator_id="$1"
|
|
229
|
-
local age_seconds="$2"
|
|
230
|
-
|
|
231
|
-
log "INFO" "Cleaning up stale coordinator: ${coordinator_id} (age: ${age_seconds}s, threshold: ${STALE_THRESHOLD_SECONDS}s)"
|
|
232
|
-
|
|
233
|
-
local keys_to_delete=()
|
|
234
|
-
|
|
235
|
-
# 1. Heartbeat key
|
|
236
|
-
keys_to_delete+=( "blocking:heartbeat:${coordinator_id}" )
|
|
237
|
-
|
|
238
|
-
# 2. Signal ACK keys (blocking:ack:coordinatorId:*)
|
|
239
|
-
local ack_keys
|
|
240
|
-
ack_keys=$(redis_scan "blocking:ack:${coordinator_id}:*")
|
|
241
|
-
if [ -n "${ack_keys}" ]; then
|
|
242
|
-
while IFS= read -r key; do
|
|
243
|
-
keys_to_delete+=( "${key}" )
|
|
244
|
-
done <<< "${ack_keys}"
|
|
245
|
-
fi
|
|
246
|
-
|
|
247
|
-
# 3. Signal key (blocking:signal:coordinatorId)
|
|
248
|
-
keys_to_delete+=( "blocking:signal:${coordinator_id}" )
|
|
249
|
-
|
|
250
|
-
# 4. Idempotency keys (blocking:idempotency:*coordinatorId*)
|
|
251
|
-
local idempotency_keys
|
|
252
|
-
idempotency_keys=$(redis_scan "blocking:idempotency:*${coordinator_id}*")
|
|
253
|
-
if [ -n "${idempotency_keys}" ]; then
|
|
254
|
-
while IFS= read -r key; do
|
|
255
|
-
keys_to_delete+=( "${key}" )
|
|
256
|
-
done <<< "${idempotency_keys}"
|
|
257
|
-
fi
|
|
258
|
-
|
|
259
|
-
# 5. Activity tracking key
|
|
260
|
-
keys_to_delete+=( "coordinator:activity:${coordinator_id}" )
|
|
261
|
-
|
|
262
|
-
# Log keys to delete
|
|
263
|
-
local key_count=${#keys_to_delete[@]}
|
|
264
|
-
log "DEBUG" "Found ${key_count} keys to delete for coordinator ${coordinator_id}"
|
|
265
|
-
|
|
266
|
-
if [ "${DRY_RUN}" = true ]; then
|
|
267
|
-
log "INFO" "[DRY-RUN] Would delete ${key_count} keys for coordinator ${coordinator_id}"
|
|
268
|
-
for key in "${keys_to_delete[@]}"; do
|
|
269
|
-
log "DEBUG" "[DRY-RUN] Would delete: ${key}"
|
|
270
|
-
done
|
|
271
|
-
else
|
|
272
|
-
# Delete keys in batch
|
|
273
|
-
if [ ${key_count} -gt 0 ]; then
|
|
274
|
-
redis_cmd DEL "${keys_to_delete[@]}" >/dev/null || {
|
|
275
|
-
log "ERROR" "Failed to delete keys for coordinator ${coordinator_id}"
|
|
276
|
-
CLEANUP_ERRORS=$((CLEANUP_ERRORS + 1))
|
|
277
|
-
return 1
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
KEYS_DELETED=$((KEYS_DELETED + key_count))
|
|
281
|
-
log "INFO" "Deleted ${key_count} keys for coordinator ${coordinator_id}"
|
|
282
|
-
fi
|
|
283
|
-
fi
|
|
284
|
-
|
|
285
|
-
STALE_COORDINATORS_FOUND=$((STALE_COORDINATORS_FOUND + 1))
|
|
286
|
-
return 0
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
# Bash fallback cleanup implementation
|
|
290
|
-
cleanup_bash() {
|
|
291
|
-
log "INFO" "Using bash fallback implementation for cleanup"
|
|
292
|
-
|
|
293
|
-
local start_time
|
|
294
|
-
start_time=$(date +%s%3N)
|
|
295
|
-
|
|
296
|
-
# Find all blocking:heartbeat:* keys using SCAN
|
|
297
|
-
log "INFO" "Scanning for blocking coordinator heartbeats..."
|
|
298
|
-
|
|
299
|
-
local heartbeat_keys
|
|
300
|
-
heartbeat_keys=$(redis_scan "blocking:heartbeat:*")
|
|
301
|
-
|
|
302
|
-
if [ -z "${heartbeat_keys}" ]; then
|
|
303
|
-
log "INFO" "No coordinator heartbeats found"
|
|
304
|
-
log "INFO" "Cleanup complete (nothing to do)"
|
|
305
|
-
return 0
|
|
306
|
-
fi
|
|
307
|
-
|
|
308
|
-
# Process each heartbeat
|
|
309
|
-
while IFS= read -r heartbeat_key; do
|
|
310
|
-
TOTAL_COORDINATORS_CHECKED=$((TOTAL_COORDINATORS_CHECKED + 1))
|
|
311
|
-
|
|
312
|
-
# Extract coordinator ID from key: blocking:heartbeat:{coordinatorId}
|
|
313
|
-
local coordinator_id
|
|
314
|
-
coordinator_id=$(echo "${heartbeat_key}" | sed 's/^blocking:heartbeat://')
|
|
315
|
-
|
|
316
|
-
log "DEBUG" "Checking coordinator: ${coordinator_id}"
|
|
317
|
-
|
|
318
|
-
# Get heartbeat age
|
|
319
|
-
local age_seconds
|
|
320
|
-
age_seconds=$(get_heartbeat_age "${heartbeat_key}")
|
|
321
|
-
|
|
322
|
-
if [ "${age_seconds}" = "-1" ]; then
|
|
323
|
-
log "WARN" "Invalid or missing heartbeat for coordinator: ${coordinator_id}"
|
|
324
|
-
continue
|
|
325
|
-
fi
|
|
326
|
-
|
|
327
|
-
# Check if stale
|
|
328
|
-
if [ "${age_seconds}" -gt "${STALE_THRESHOLD_SECONDS}" ]; then
|
|
329
|
-
log "WARN" "Stale coordinator detected: ${coordinator_id} (age: ${age_seconds}s)"
|
|
330
|
-
cleanup_coordinator "${coordinator_id}" "${age_seconds}" || true
|
|
331
|
-
else
|
|
332
|
-
log "DEBUG" "Coordinator active: ${coordinator_id} (age: ${age_seconds}s)"
|
|
333
|
-
fi
|
|
334
|
-
done <<< "${heartbeat_keys}"
|
|
335
|
-
|
|
336
|
-
local end_time
|
|
337
|
-
end_time=$(date +%s%3N)
|
|
338
|
-
EXECUTION_TIME_MS=$((end_time - start_time))
|
|
339
|
-
|
|
340
|
-
log "INFO" "Bash fallback execution time: ${EXECUTION_TIME_MS}ms"
|
|
341
|
-
|
|
342
|
-
return 0
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
# ===== MAIN EXECUTION =====
|
|
346
|
-
|
|
347
|
-
main() {
|
|
348
|
-
# Parse command line arguments
|
|
349
|
-
while [[ $# -gt 0 ]]; do
|
|
350
|
-
case $1 in
|
|
351
|
-
--dry-run)
|
|
352
|
-
DRY_RUN=true
|
|
353
|
-
shift
|
|
354
|
-
;;
|
|
355
|
-
--fallback)
|
|
356
|
-
FORCE_FALLBACK=true
|
|
357
|
-
shift
|
|
358
|
-
;;
|
|
359
|
-
*)
|
|
360
|
-
echo "Unknown option: $1"
|
|
361
|
-
echo "Usage: $0 [--dry-run] [--fallback]"
|
|
362
|
-
exit 2
|
|
363
|
-
;;
|
|
364
|
-
esac
|
|
365
|
-
done
|
|
366
|
-
|
|
367
|
-
# Create log directory if it doesn't exist
|
|
368
|
-
mkdir -p "${LOG_DIR}"
|
|
369
|
-
|
|
370
|
-
# Start cleanup
|
|
371
|
-
log "INFO" "========================================"
|
|
372
|
-
log "INFO" "Blocking Coordination Cleanup Started"
|
|
373
|
-
log "INFO" "Dry-run mode: ${DRY_RUN}"
|
|
374
|
-
log "INFO" "Stale threshold: ${STALE_THRESHOLD_SECONDS}s"
|
|
375
|
-
log "INFO" "Force fallback: ${FORCE_FALLBACK}"
|
|
376
|
-
log "INFO" "========================================"
|
|
377
|
-
|
|
378
|
-
# Check Redis connection
|
|
379
|
-
if ! redis_cmd PING >/dev/null 2>&1; then
|
|
380
|
-
log "ERROR" "Redis connection failed (host: ${REDIS_HOST}, port: ${REDIS_PORT})"
|
|
381
|
-
log "ERROR" "Cleanup aborted"
|
|
382
|
-
exit 1
|
|
383
|
-
fi
|
|
384
|
-
|
|
385
|
-
log "INFO" "Redis connection established"
|
|
386
|
-
|
|
387
|
-
# Execute cleanup: Try Lua first, fallback to bash if needed
|
|
388
|
-
if [ "${FORCE_FALLBACK}" = true ]; then
|
|
389
|
-
log "INFO" "Fallback mode forced via --fallback flag"
|
|
390
|
-
cleanup_bash
|
|
391
|
-
else
|
|
392
|
-
if ! cleanup_lua; then
|
|
393
|
-
log "WARN" "Lua cleanup failed, falling back to bash implementation"
|
|
394
|
-
cleanup_bash
|
|
395
|
-
fi
|
|
396
|
-
fi
|
|
397
|
-
|
|
398
|
-
# Log summary
|
|
399
|
-
log "INFO" "========================================"
|
|
400
|
-
log "INFO" "Cleanup Summary:"
|
|
401
|
-
log "INFO" " Total coordinators checked: ${TOTAL_COORDINATORS_CHECKED}"
|
|
402
|
-
log "INFO" " Stale coordinators found: ${STALE_COORDINATORS_FOUND}"
|
|
403
|
-
log "INFO" " Keys deleted: ${KEYS_DELETED}"
|
|
404
|
-
log "INFO" " Cleanup errors: ${CLEANUP_ERRORS}"
|
|
405
|
-
log "INFO" " Execution time: ${EXECUTION_TIME_MS}ms"
|
|
406
|
-
log "INFO" " Performance: $(awk "BEGIN {printf \"%.2f\", ${TOTAL_COORDINATORS_CHECKED} / (${EXECUTION_TIME_MS} / 1000.0)}" 2>/dev/null || echo "N/A") coordinators/sec"
|
|
407
|
-
log "INFO" "========================================"
|
|
408
|
-
|
|
409
|
-
# Exit code based on errors
|
|
410
|
-
if [ ${CLEANUP_ERRORS} -gt 0 ]; then
|
|
411
|
-
log "ERROR" "Cleanup completed with ${CLEANUP_ERRORS} errors"
|
|
412
|
-
exit 2
|
|
413
|
-
else
|
|
414
|
-
log "INFO" "Cleanup completed successfully"
|
|
415
|
-
exit 0
|
|
416
|
-
fi
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
# Execute main function
|
|
420
|
-
main "$@"
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Cleanup Idle Claude Sessions
|
|
3
|
-
# Kills Claude processes with 0% CPU (idle/orphaned) older than 30 minutes
|
|
4
|
-
# Safe for automated execution - preserves active sessions
|
|
5
|
-
# FIXED: Now checks process age to avoid killing long-running agents
|
|
6
|
-
|
|
7
|
-
set -e
|
|
8
|
-
|
|
9
|
-
LOGFILE="${HOME}/.claude-flow/logs/session-cleanup.log"
|
|
10
|
-
mkdir -p "$(dirname "$LOGFILE")"
|
|
11
|
-
|
|
12
|
-
log() {
|
|
13
|
-
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOGFILE"
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
log "=== Starting Idle Session Cleanup ==="
|
|
17
|
-
|
|
18
|
-
# Get list of idle Claude sessions (0% CPU) that are OLDER than 30 minutes
|
|
19
|
-
# Format: PID CPU_TIME ELAPSED_TIME COMMAND
|
|
20
|
-
# ELAPSED_TIME format: MM:SS or HH:MM:SS - we need to convert to minutes
|
|
21
|
-
IDLE_PIDS=$(ps -eo pid,%cpu,etime,cmd | \
|
|
22
|
-
grep claude | \
|
|
23
|
-
grep -v grep | \
|
|
24
|
-
grep -v "cleanup-idle-sessions" | \
|
|
25
|
-
grep -v "^[[:space:]]*[0-9]*[[:space:]]*0.0.*bash" | \
|
|
26
|
-
awk '
|
|
27
|
-
function elapsed_minutes(elapsed) {
|
|
28
|
-
if (match(elapsed, /^([0-9]+):([0-9]{2}):([0-9]{2})$/)) {
|
|
29
|
-
# HH:MM:SS format
|
|
30
|
-
hours = substr(elapsed, RSTART, RLENGTH);
|
|
31
|
-
h = substr(hours, 1, index(hours, ":") - 1);
|
|
32
|
-
rest = substr(hours, index(hours, ":") + 1);
|
|
33
|
-
m = substr(rest, 1, index(rest, ":") - 1);
|
|
34
|
-
return h * 60 + m;
|
|
35
|
-
} else if (match(elapsed, /^([0-9]+):([0-9]{2})$/)) {
|
|
36
|
-
# MM:SS format
|
|
37
|
-
return substr(elapsed, 1, index(elapsed, ":") - 1);
|
|
38
|
-
}
|
|
39
|
-
return 0;
|
|
40
|
-
}
|
|
41
|
-
$2 == 0.0 && elapsed_minutes($3) >= 30 {print $1}
|
|
42
|
-
' || true)
|
|
43
|
-
|
|
44
|
-
# Log all Claude processes for debugging (before filtering)
|
|
45
|
-
ALL_CLAUDE=$(ps -eo pid,%cpu,etime,cmd | grep claude | grep -v grep | grep -v "cleanup-idle-sessions" || true)
|
|
46
|
-
if [ -n "$ALL_CLAUDE" ]; then
|
|
47
|
-
log "DEBUG: All Claude processes found:"
|
|
48
|
-
echo "$ALL_CLAUDE" | while IFS= read -r line; do
|
|
49
|
-
log " $line"
|
|
50
|
-
done
|
|
51
|
-
else
|
|
52
|
-
log "DEBUG: No Claude processes found"
|
|
53
|
-
fi
|
|
54
|
-
|
|
55
|
-
if [ -z "$IDLE_PIDS" ]; then
|
|
56
|
-
log "No idle sessions older than 30 minutes found. All sessions active or recent."
|
|
57
|
-
exit 0
|
|
58
|
-
fi
|
|
59
|
-
|
|
60
|
-
# Count idle sessions
|
|
61
|
-
IDLE_COUNT=$(echo "$IDLE_PIDS" | wc -l)
|
|
62
|
-
log "Found $IDLE_COUNT idle Claude session(s) older than 30 minutes"
|
|
63
|
-
|
|
64
|
-
# Get memory before cleanup
|
|
65
|
-
BEFORE_MEM=$(ps aux | grep -E '(claude|node)' | grep -v grep | grep -v snapfuse | awk '{sum+=$6} END {printf "%.1f", sum/1024/1024}')
|
|
66
|
-
log "Memory before cleanup: ${BEFORE_MEM}GB"
|
|
67
|
-
|
|
68
|
-
# Kill idle sessions (with protection for known long-running agents)
|
|
69
|
-
for PID in $IDLE_PIDS; do
|
|
70
|
-
# Get process details before killing
|
|
71
|
-
DETAILS=$(ps -eo pid,etime,cputime,%cpu,%mem,rss,cmd | grep "^${PID}" | head -1 || echo "N/A")
|
|
72
|
-
|
|
73
|
-
# Check if this is a known long-running agent process that should be protected
|
|
74
|
-
CMD=$(ps -o cmd -p "$PID" --no-headers 2>/dev/null || echo "")
|
|
75
|
-
PROTECTED=false
|
|
76
|
-
|
|
77
|
-
case "$CMD" in
|
|
78
|
-
*cfn-coordinator*|*coordinator*|*product-owner*|*system-architect*|*refinement*)
|
|
79
|
-
PROTECTED=true
|
|
80
|
-
log "PROTECTED: Skipping known long-running agent: $DETAILS"
|
|
81
|
-
;;
|
|
82
|
-
*agent*|*swarm*|*task*)
|
|
83
|
-
# Check if process has been running less than 2 hours (might still be working)
|
|
84
|
-
ELAPSED=$(ps -o etime -p "$PID" --no-headers 2>/dev/null | tr -d ' ')
|
|
85
|
-
if [ -n "$ELAPSED" ]; then
|
|
86
|
-
MINUTES=$(echo "$ELAPSED" | awk -F: '{if(NF==2) print $1; else print $1*60 + $2}')
|
|
87
|
-
if [ "$MINUTES" -lt 120 ]; then
|
|
88
|
-
PROTECTED=true
|
|
89
|
-
log "PROTECTED: Skip recent agent process (${MINUTES}min old): $DETAILS"
|
|
90
|
-
fi
|
|
91
|
-
fi
|
|
92
|
-
;;
|
|
93
|
-
esac
|
|
94
|
-
|
|
95
|
-
if [ "$PROTECTED" = false ]; then
|
|
96
|
-
log "Killing idle session: $DETAILS"
|
|
97
|
-
kill -9 "$PID" 2>/dev/null || log " Warning: Could not kill PID $PID (already terminated?)"
|
|
98
|
-
fi
|
|
99
|
-
done
|
|
100
|
-
|
|
101
|
-
# Wait for processes to terminate
|
|
102
|
-
sleep 2
|
|
103
|
-
|
|
104
|
-
# Get memory after cleanup
|
|
105
|
-
AFTER_MEM=$(ps aux | grep -E '(claude|node)' | grep -v grep | grep -v snapfuse | awk '{sum+=$6} END {printf "%.1f", sum/1024/1024}')
|
|
106
|
-
FREED_MEM=$(echo "$BEFORE_MEM - $AFTER_MEM" | bc)
|
|
107
|
-
log "Memory after cleanup: ${AFTER_MEM}GB"
|
|
108
|
-
log "Memory freed: ${FREED_MEM}GB"
|
|
109
|
-
|
|
110
|
-
# Get remaining active sessions
|
|
111
|
-
ACTIVE_COUNT=$(ps aux | grep claude | grep -v grep | wc -l)
|
|
112
|
-
log "Active sessions remaining: $ACTIVE_COUNT"
|
|
113
|
-
|
|
114
|
-
log "=== Cleanup Complete ==="
|
|
115
|
-
log ""
|
|
116
|
-
|
|
117
|
-
# Return summary
|
|
118
|
-
echo "{\"idle_killed\": $IDLE_COUNT, \"active_remaining\": $ACTIVE_COUNT, \"memory_freed_gb\": $FREED_MEM}"
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Standardized build metrics collection
|
|
4
|
-
* Usage: node scripts/collect-build-metrics.js [--json]
|
|
5
|
-
*
|
|
6
|
-
* Prevents ambiguous metrics like Sprint 7.1's "691 files compiled"
|
|
7
|
-
* See CLAUDE.md Section 11 for reporting standards
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { execSync } from 'child_process';
|
|
11
|
-
import { existsSync } from 'fs';
|
|
12
|
-
|
|
13
|
-
function countFiles(pattern, dir = 'src') {
|
|
14
|
-
try {
|
|
15
|
-
const cmd = `find ${dir} -name "${pattern}" 2>/dev/null | wc -l`;
|
|
16
|
-
return parseInt(execSync(cmd, { encoding: 'utf8' }).trim());
|
|
17
|
-
} catch {
|
|
18
|
-
return 0;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function collectMetrics() {
|
|
23
|
-
const metrics = {
|
|
24
|
-
source_files: {
|
|
25
|
-
typescript: countFiles('*.ts') + countFiles('*.tsx'),
|
|
26
|
-
javascript: countFiles('*.js'),
|
|
27
|
-
jsx: countFiles('*.jsx')
|
|
28
|
-
},
|
|
29
|
-
output_files: {
|
|
30
|
-
javascript: countFiles('*.js', '.claude-flow-novice/dist') || countFiles('*.js', 'dist'),
|
|
31
|
-
sourcemaps: countFiles('*.map', '.claude-flow-novice/dist') || countFiles('*.map', 'dist')
|
|
32
|
-
},
|
|
33
|
-
dist_exists: existsSync('.claude-flow-novice/dist') || existsSync('dist')
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
if (metrics.source_files.typescript > 0 && metrics.output_files.javascript > 0) {
|
|
37
|
-
metrics.compilation_ratio =
|
|
38
|
-
((metrics.output_files.javascript * 100) / metrics.source_files.typescript).toFixed(1) + '%';
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return metrics;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const metrics = collectMetrics();
|
|
45
|
-
|
|
46
|
-
if (process.argv.includes('--json')) {
|
|
47
|
-
console.log(JSON.stringify(metrics, null, 2));
|
|
48
|
-
} else {
|
|
49
|
-
console.log('š Build Metrics Report');
|
|
50
|
-
console.log('ā'.repeat(50));
|
|
51
|
-
console.log(`\nSource Files:`);
|
|
52
|
-
console.log(` TypeScript: ${metrics.source_files.typescript} files`);
|
|
53
|
-
console.log(` JavaScript: ${metrics.source_files.javascript} files`);
|
|
54
|
-
console.log(`\nOutput Files (dist/):`);
|
|
55
|
-
console.log(` JavaScript: ${metrics.output_files.javascript} files`);
|
|
56
|
-
console.log(` Source Maps: ${metrics.output_files.sourcemaps} files`);
|
|
57
|
-
if (metrics.compilation_ratio) {
|
|
58
|
-
console.log(`\nCompilation Ratio: ${metrics.compilation_ratio}`);
|
|
59
|
-
console.log(`(Lower ratio = better tree-shaking)`);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (!metrics.dist_exists) {
|
|
63
|
-
console.log('\nā ļø Warning: dist/ directory not found. Run build first.');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Demo and Performance Scripts
|
|
2
|
-
|
|
3
|
-
This directory contains demonstration and performance analysis scripts for the claude-flow-novice framework.
|
|
4
|
-
|
|
5
|
-
## Demo Scripts
|
|
6
|
-
|
|
7
|
-
### Swarm Coordination Demos
|
|
8
|
-
- **autoscaling-demo-simplified.js** - Simplified autoscaling demonstration
|
|
9
|
-
- **test-autoscaling-demo.js** - Autoscaling test scenarios
|
|
10
|
-
- **demo-multi-swarm-coordination.js** - Multi-swarm coordination patterns
|
|
11
|
-
- **demo-production-deployment.js** - Production deployment workflows
|
|
12
|
-
- **demo-visualization-system.js** - Visualization system capabilities
|
|
13
|
-
|
|
14
|
-
### Dashboard and Monitoring
|
|
15
|
-
- **comprehensive-dashboard-test.js** - Complete dashboard functionality test
|
|
16
|
-
|
|
17
|
-
## Performance Analysis
|
|
18
|
-
|
|
19
|
-
### Analysis Tools
|
|
20
|
-
- **performance-analysis.js** - Main performance analysis tool (ES modules)
|
|
21
|
-
- **performance-analysis.cjs** - Performance analysis tool (CommonJS)
|
|
22
|
-
|
|
23
|
-
### Confidence Metrics
|
|
24
|
-
- **confidence-log.js** - Confidence metric logging
|
|
25
|
-
- **confidence-report.js** - Confidence report generation
|
|
26
|
-
|
|
27
|
-
## Usage
|
|
28
|
-
|
|
29
|
-
### Running Demo Scripts
|
|
30
|
-
```bash
|
|
31
|
-
# Swarm coordination demo
|
|
32
|
-
node scripts/demo/demo-multi-swarm-coordination.js
|
|
33
|
-
|
|
34
|
-
# Production deployment demo
|
|
35
|
-
node scripts/demo/demo-production-deployment.js
|
|
36
|
-
|
|
37
|
-
# Visualization system demo
|
|
38
|
-
node scripts/demo/demo-visualization-system.js
|
|
39
|
-
|
|
40
|
-
# Autoscaling demo
|
|
41
|
-
node scripts/demo/autoscaling-demo-simplified.js
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Running Performance Analysis
|
|
45
|
-
```bash
|
|
46
|
-
# ES module version
|
|
47
|
-
node scripts/demo/performance-analysis.js
|
|
48
|
-
|
|
49
|
-
# CommonJS version
|
|
50
|
-
node scripts/demo/performance-analysis.cjs
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Monitoring and Confidence
|
|
54
|
-
```bash
|
|
55
|
-
# Generate confidence logs
|
|
56
|
-
node scripts/demo/confidence-log.js
|
|
57
|
-
|
|
58
|
-
# Generate confidence reports
|
|
59
|
-
node scripts/demo/confidence-report.js
|
|
60
|
-
|
|
61
|
-
# Dashboard test
|
|
62
|
-
node scripts/demo/comprehensive-dashboard-test.js
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Purpose
|
|
66
|
-
|
|
67
|
-
These scripts demonstrate:
|
|
68
|
-
1. **Swarm Orchestration** - Multi-agent coordination patterns
|
|
69
|
-
2. **Performance Profiling** - System performance analysis
|
|
70
|
-
3. **Confidence Metrics** - Agent confidence tracking and reporting
|
|
71
|
-
4. **Visualization** - Dashboard and monitoring capabilities
|
|
72
|
-
5. **Production Workflows** - Deployment and scaling patterns
|
|
73
|
-
|
|
74
|
-
## Notes
|
|
75
|
-
|
|
76
|
-
- Demo scripts are for demonstration and testing purposes
|
|
77
|
-
- Performance scripts analyze system metrics and agent efficiency
|
|
78
|
-
- Confidence scripts track and report agent confidence scores
|
|
79
|
-
- All scripts use the production swarm infrastructure
|