claude-flow-novice 2.3.5 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/booster/performance-benchmark.js +1 -1
- package/dist/src/booster/wasm-demo.js +1 -1
- package/dist/src/cli/command-registry.js +2 -2
- package/dist/src/cli/help-formatter.js +137 -109
- package/dist/src/cli/simple-cli.js +2528 -2121
- package/dist/src/cli/simple-commands/sparc/refinement.js +3 -3
- package/dist/src/cli/validation-helper.js +98 -49
- package/dist/src/commands/suggest-templates.js +4 -4
- package/dist/src/core/version.js +23 -15
- package/dist/src/memory/swarm-memory.js +603 -470
- package/dist/src/slash-commands/fullstack.js +2 -2
- package/dist/src/slash-commands/parse-epic.js +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +40 -6
- package/dist/scripts/.claude-flow/metrics/agent-metrics.json +0 -1
- package/dist/scripts/.claude-flow/metrics/performance.json +0 -9
- package/dist/scripts/.claude-flow/metrics/task-metrics.json +0 -10
- package/dist/scripts/CLEANUP_OPTIMIZATION_REPORT.json +0 -312
- package/dist/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +0 -387
- package/dist/scripts/CLEANUP_QUICK_START.md +0 -268
- package/dist/scripts/CLEANUP_TEST_RESULTS.md +0 -205
- package/dist/scripts/README.md +0 -339
- package/dist/scripts/ace-query.sh +0 -384
- package/dist/scripts/agent-token-analysis.js +0 -430
- package/dist/scripts/auto-setup.js +0 -332
- package/dist/scripts/build/README.md +0 -167
- package/dist/scripts/build/build-config.js +0 -27
- package/dist/scripts/build/build-prompt-copier.sh +0 -30
- package/dist/scripts/build/performance-monitor.js +0 -869
- package/dist/scripts/build/prepare-publish.js +0 -150
- package/dist/scripts/build/typescript-fixer.js +0 -621
- package/dist/scripts/build/unified-builder.sh +0 -428
- package/dist/scripts/build/update-bin-version.js +0 -32
- package/dist/scripts/build/validate-agents.js +0 -238
- package/dist/scripts/build-index.js +0 -43
- package/dist/scripts/build-orchestrator.js +0 -320
- package/dist/scripts/check-routing-stats.cjs +0 -122
- package/dist/scripts/ci-validation.js +0 -375
- package/dist/scripts/cleanup-blocking-coordination.sh +0 -420
- package/dist/scripts/cleanup-idle-sessions.sh +0 -118
- package/dist/scripts/collect-build-metrics.js +0 -65
- package/dist/scripts/demo/README.md +0 -79
- package/dist/scripts/demo/autoscaling-demo-simplified.js +0 -963
- package/dist/scripts/demo/comprehensive-dashboard-test.js +0 -693
- package/dist/scripts/demo/confidence-log.js +0 -87
- package/dist/scripts/demo/confidence-report.js +0 -82
- package/dist/scripts/demo/demo-multi-swarm-coordination.js +0 -325
- package/dist/scripts/demo/demo-production-deployment.js +0 -399
- package/dist/scripts/demo/demo-visualization-system.js +0 -149
- package/dist/scripts/demo/performance-analysis.cjs +0 -71
- package/dist/scripts/demo/performance-analysis.js +0 -71
- package/dist/scripts/demo/test-autoscaling-demo.js +0 -314
- package/dist/scripts/dependency-optimizer.js +0 -349
- package/dist/scripts/dependency-security-assessment.js +0 -331
- package/dist/scripts/deploy-sdk.sh +0 -176
- package/dist/scripts/deployment-readiness-report.json +0 -179
- package/dist/scripts/dev/README.md +0 -264
- package/dist/scripts/dev/claude-flow-wrapper.sh +0 -35
- package/dist/scripts/dev/claude-monitor.py +0 -419
- package/dist/scripts/dev/claude-sparc.sh +0 -562
- package/dist/scripts/dev/claude-wrapper.sh +0 -17
- package/dist/scripts/dev/demo-phase3-compliance.js +0 -172
- package/dist/scripts/dev/demo-task-system.ts +0 -224
- package/dist/scripts/dev/deployment-validator.js +0 -315
- package/dist/scripts/dev/spawn-claude-terminal.sh +0 -32
- package/dist/scripts/dev/start-portal.sh +0 -506
- package/dist/scripts/dev/start-web-ui.js +0 -15
- package/dist/scripts/dev/stop-portal.sh +0 -311
- package/dist/scripts/dev/validate-examples.ts +0 -288
- package/dist/scripts/dev/validate-phase2.cjs +0 -451
- package/dist/scripts/dev/validate-phase2.js +0 -785
- package/dist/scripts/dev/validate-phase3.cjs +0 -208
- package/dist/scripts/dev/validate-security-remediation.js +0 -1
- package/dist/scripts/ecosystem.config.cjs +0 -90
- package/dist/scripts/enhanced-memory-spiral-killer.sh +0 -221
- package/dist/scripts/fix-js-extensions.js +0 -167
- package/dist/scripts/generate-basic-types.js +0 -73
- package/dist/scripts/generate-changelog.js +0 -318
- package/dist/scripts/git-hooks/pre-commit.sh +0 -143
- package/dist/scripts/health-checks.js +0 -634
- package/dist/scripts/hook-wrapper.sh +0 -54
- package/dist/scripts/install/README.md +0 -375
- package/dist/scripts/install/REDIS_SETUP_VALIDATION.json +0 -245
- package/dist/scripts/install/check-prerequisites.js +0 -303
- package/dist/scripts/install/config-wizard.js +0 -606
- package/dist/scripts/install/dependency-checker.js +0 -385
- package/dist/scripts/install/health-check.js +0 -765
- package/dist/scripts/install/install.js +0 -256
- package/dist/scripts/install/installation-benchmark.js +0 -461
- package/dist/scripts/install/quick-install.js +0 -720
- package/dist/scripts/install/quick-start-wizard.js +0 -295
- package/dist/scripts/install/redis-cli.js +0 -289
- package/dist/scripts/install/redis-install-guides.md +0 -407
- package/dist/scripts/install/redis-setup.js +0 -559
- package/dist/scripts/install/redis-test.js +0 -278
- package/dist/scripts/install/service-manager.js +0 -672
- package/dist/scripts/install/setup.js +0 -832
- package/dist/scripts/install/uninstall.js +0 -526
- package/dist/scripts/install/update.js +0 -461
- package/dist/scripts/install-pre-commit-hook.sh +0 -127
- package/dist/scripts/legacy/README.md +0 -272
- package/dist/scripts/legacy/batch-fix-ts.sh +0 -54
- package/dist/scripts/legacy/build-migration.sh +0 -105
- package/dist/scripts/legacy/build-monitor.js +0 -209
- package/dist/scripts/legacy/build-with-filter.sh +0 -84
- package/dist/scripts/legacy/build-workaround.sh +0 -71
- package/dist/scripts/legacy/fix-ts-advanced.js +0 -358
- package/dist/scripts/legacy/fix-ts-final.sh +0 -50
- package/dist/scripts/legacy/fix-ts-targeted.sh +0 -49
- package/dist/scripts/legacy/fix-typescript-errors.js +0 -305
- package/dist/scripts/legacy/force-build.sh +0 -63
- package/dist/scripts/legacy/optimize-performance.js +0 -400
- package/dist/scripts/legacy/performance-monitor.js +0 -263
- package/dist/scripts/legacy/performance-monitoring.js +0 -532
- package/dist/scripts/legacy/performance-test-runner.js +0 -645
- package/dist/scripts/legacy/quick-fix-ts.js +0 -281
- package/dist/scripts/legacy/safe-build.sh +0 -63
- package/dist/scripts/memory-monitor-coordinator.js +0 -451
- package/dist/scripts/migrate-to-sdk.sh +0 -520
- package/dist/scripts/migration/QUICK-START.md +0 -189
- package/dist/scripts/migration/QUICK-START.md.backup-1760135091363 +0 -189
- package/dist/scripts/migration/README.md +0 -464
- package/dist/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +0 -500
- package/dist/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +0 -500
- package/dist/scripts/migration/UPDATE-PATHS-README.md +0 -464
- package/dist/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +0 -464
- package/dist/scripts/migration/example-patterns.json +0 -19
- package/dist/scripts/migration/install-arm64.js +0 -78
- package/dist/scripts/migration/install.js +0 -83
- package/dist/scripts/migration/migrate-hooks.js +0 -173
- package/dist/scripts/migration/migration-examples.ts +0 -318
- package/dist/scripts/migration/reorganize-workspace.js +0 -504
- package/dist/scripts/migration/test-update-paths.js +0 -359
- package/dist/scripts/migration/update-paths.js +0 -664
- package/dist/scripts/migration/validate-migration.js +0 -647
- package/dist/scripts/monitor-loop.sh +0 -65
- package/dist/scripts/monitor-memory.sh +0 -47
- package/dist/scripts/monitor-migration.js +0 -339
- package/dist/scripts/monitor.py +0 -43
- package/dist/scripts/monitoring/README.md +0 -178
- package/dist/scripts/monitoring/alert-monitor.sh +0 -220
- package/dist/scripts/monitoring/analyze-resources.sh +0 -199
- package/dist/scripts/monitoring/dashboards/rate-limiting-dashboard.json +0 -211
- package/dist/scripts/monitoring/dynamic-monitor.sh +0 -85
- package/dist/scripts/monitoring/launch-stability-test.sh +0 -184
- package/dist/scripts/monitoring/monitor-test.sh +0 -93
- package/dist/scripts/monitoring/pre-test-validation.sh +0 -208
- package/dist/scripts/monitoring/quick-test-alerting.sh +0 -118
- package/dist/scripts/monitoring/quick-test-rate-limiting.sh +0 -206
- package/dist/scripts/monitoring/rate-limiting-monitor.sh +0 -380
- package/dist/scripts/monitoring/resource-monitor.sh +0 -126
- package/dist/scripts/monitoring/stability-monitor.js +0 -429
- package/dist/scripts/monitoring/test-monitor-quick.sh +0 -54
- package/dist/scripts/monitoring/view-alerts.sh +0 -307
- package/dist/scripts/npm-metrics-collector.js +0 -482
- package/dist/scripts/npm-package-validation.cjs +0 -299
- package/dist/scripts/optimization/build-optimizer.js +0 -438
- package/dist/scripts/optimization/config-validator.js +0 -761
- package/dist/scripts/optimization/test-optimization.js +0 -432
- package/dist/scripts/optimization/unified-activation.js +0 -839
- package/dist/scripts/optimize-package-swarm.js +0 -54
- package/dist/scripts/performance/ACTIVATION_COMMANDS.md +0 -292
- package/dist/scripts/performance/sqlite-enhanced-activation.sh +0 -583
- package/dist/scripts/performance/test-enhanced-backend.sh +0 -504
- package/dist/scripts/performance-monitor.js +0 -644
- package/dist/scripts/performance-test-runner.js +0 -698
- package/dist/scripts/post-deployment-monitoring.js +0 -350
- package/dist/scripts/post-edit-pipeline.js +0 -2091
- package/dist/scripts/post-install-claude-md.js +0 -78
- package/dist/scripts/postinstall.js +0 -60
- package/dist/scripts/pre-publish-validation.cjs +0 -212
- package/dist/scripts/pre-publish-validation.js +0 -429
- package/dist/scripts/redis-lua/cleanup-blocking-coordination.lua +0 -198
- package/dist/scripts/release-announcement.js +0 -425
- package/dist/scripts/release-notification.js +0 -248
- package/dist/scripts/release-rollback.js +0 -376
- package/dist/scripts/release-validation.js +0 -460
- package/dist/scripts/rollback-sdk.sh +0 -66
- package/dist/scripts/run-production-validation.ts +0 -590
- package/dist/scripts/run-stability-validation.sh +0 -687
- package/dist/scripts/security/README.md +0 -339
- package/dist/scripts/security/deployment-validation.cjs +0 -279
- package/dist/scripts/security/envelope-encryption-confidence-report.cjs +0 -422
- package/dist/scripts/security/install-git-hooks.sh +0 -132
- package/dist/scripts/security/install-git-secrets.sh +0 -295
- package/dist/scripts/security/rotate-api-keys.js +0 -469
- package/dist/scripts/security/ruv-swarm-safe.js +0 -74
- package/dist/scripts/security/security-audit.cjs +0 -538
- package/dist/scripts/security/setup-redis-auth.sh +0 -397
- package/dist/scripts/security/validate-envelope-encryption.cjs +0 -340
- package/dist/scripts/security-scan.js +0 -492
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +0 -1
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/performance.json +0 -9
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +0 -10
- package/dist/scripts/switch-api.sh +0 -159
- package/dist/scripts/sync-agents.js +0 -290
- package/dist/scripts/test/50-agent-test.js +0 -625
- package/dist/scripts/test/NEW_STABILITY_TEST_GUIDE.md +0 -407
- package/dist/scripts/test/README.md +0 -236
- package/dist/scripts/test/STABILITY_TEST_EXAMPLE.md +0 -347
- package/dist/scripts/test/STABILITY_TEST_README.md +0 -480
- package/dist/scripts/test/agent-worker.js +0 -309
- package/dist/scripts/test/ai-coordination-test.js +0 -650
- package/dist/scripts/test/ai-mesh-coordination-test.js +0 -416
- package/dist/scripts/test/check-links.ts +0 -274
- package/dist/scripts/test/check-performance-regression.ts +0 -168
- package/dist/scripts/test/cli-agent-coordination-test.js +0 -313
- package/dist/scripts/test/coordinator-multilingual-test.js +0 -396
- package/dist/scripts/test/coordinator-transparency-demo.js +0 -585
- package/dist/scripts/test/coverage-report.ts +0 -692
- package/dist/scripts/test/generate-swarm-tests.js +0 -633
- package/dist/scripts/test/integration-test-validation.cjs +0 -253
- package/dist/scripts/test/load-test-swarm.js +0 -576
- package/dist/scripts/test/mesh-coordination-zero-overlap-test.js +0 -740
- package/dist/scripts/test/multilingual-hello-world-test.js +0 -390
- package/dist/scripts/test/quick-multilingual-demo.js +0 -464
- package/dist/scripts/test/real-agent-test.js +0 -312
- package/dist/scripts/test/run-phase3-compliance-tests.js +0 -427
- package/dist/scripts/test/run-stability-test-examples.sh +0 -292
- package/dist/scripts/test/stability-results/stability-metrics.jsonl +0 -83
- package/dist/scripts/test/stability-results/stability-test-report.json +0 -128
- package/dist/scripts/test/stability-results/stability-test.log +0 -1827
- package/dist/scripts/test/stability-test-50-agents.js +0 -734
- package/dist/scripts/test/test-batch-tasks.ts +0 -29
- package/dist/scripts/test/test-byzantine-resolution.js +0 -246
- package/dist/scripts/test/test-claude-spawn-options.sh +0 -63
- package/dist/scripts/test/test-cli-wizard.js +0 -331
- package/dist/scripts/test/test-comprehensive.js +0 -401
- package/dist/scripts/test/test-coordination-features.ts +0 -238
- package/dist/scripts/test/test-fallback-systems.js +0 -276
- package/dist/scripts/test/test-init-command.ts +0 -302
- package/dist/scripts/test/test-mcp.ts +0 -251
- package/dist/scripts/test/test-runner.ts +0 -568
- package/dist/scripts/test/test-swarm-integration.sh +0 -92
- package/dist/scripts/test/test-swarm.ts +0 -142
- package/dist/scripts/test/validation-summary.ts +0 -408
- package/dist/scripts/test-cleanup-performance.sh +0 -416
- package/dist/scripts/test-dashboard-auth.cjs +0 -203
- package/dist/scripts/test-docker-deployment.sh +0 -207
- package/dist/scripts/test-npm-package.cjs +0 -167
- package/dist/scripts/test-provider-routing.cjs +0 -226
- package/dist/scripts/test-routing-telemetry.cjs +0 -147
- package/dist/scripts/test-runner.cjs +0 -154
- package/dist/scripts/test-zai-10k.cjs +0 -81
- package/dist/scripts/test-zai-api.cjs +0 -191
- package/dist/scripts/test-zai-diagnostic.cjs +0 -151
- package/dist/scripts/test-zai-final.cjs +0 -128
- package/dist/scripts/test-zai-with-env.cjs +0 -85
- package/dist/scripts/toggle-cost-savings.cjs +0 -302
- package/dist/scripts/unified-memory-monitor.js +0 -526
- package/dist/scripts/utils/README.md +0 -261
- package/dist/scripts/utils/clean-build-artifacts.sh +0 -94
- package/dist/scripts/utils/cleanup-root.sh +0 -69
- package/dist/scripts/utils/fix-cliffy-imports.js +0 -307
- package/dist/scripts/utils/fix-duplicate-imports.js +0 -114
- package/dist/scripts/utils/fix-error-handling.cjs +0 -70
- package/dist/scripts/utils/fix-import-paths.js +0 -104
- package/dist/scripts/utils/fix-imports.js +0 -116
- package/dist/scripts/utils/fix-shebang.js +0 -78
- package/dist/scripts/utils/fix-test-modules.js +0 -27
- package/dist/scripts/utils/fix-timezone-issue-246.js +0 -200
- package/dist/scripts/utils/fix-ts-comprehensive.py +0 -182
- package/dist/scripts/utils/fix-ts-targeted-batch.js +0 -250
- package/dist/scripts/utils/remove-benchmark-conflicts.sh +0 -140
- package/dist/scripts/utils/simple-test-fixer.js +0 -190
- package/dist/scripts/utils/validate-metrics-structure.cjs +0 -144
- package/dist/scripts/validate-agent-hooks.js +0 -506
- package/dist/scripts/validate-changelog.js +0 -241
- package/dist/scripts/validate-coordination-cli.js +0 -69
- package/dist/scripts/validate-coordination-toggle-integration.cjs +0 -501
- package/dist/scripts/validate-docker-infrastructure.sh +0 -502
- package/dist/scripts/validate-entry-points.js +0 -300
- package/dist/scripts/validate-memory-monitoring.sh +0 -225
- package/dist/scripts/validate-stage3-performance.ts +0 -377
- package/dist/scripts/validate-template-bundling.js +0 -180
- package/dist/scripts/validation/README.md +0 -33
- package/dist/scripts/validation/acl-security-validation.cjs +0 -214
- package/dist/scripts/validation/acl-security-validation.js +0 -402
- package/dist/scripts/validation/byzantine-verification.js +0 -407
- package/dist/scripts/validation/final-phase-2-consensus.cjs +0 -219
- package/dist/scripts/validation/final-security-validation.js +0 -791
- package/dist/scripts/validation/final-wasm-validation.cjs +0 -840
- package/dist/scripts/validation/integration-test-analysis.js +0 -105
- package/dist/scripts/validation/phase-0-comprehensive-validation.js +0 -474
- package/dist/scripts/validation/phase-0-consensus-report.js +0 -139
- package/dist/scripts/validation/phase-0-final-report.js +0 -112
- package/dist/scripts/validation/phase-0-redis-consensus-report.js +0 -129
- package/dist/scripts/validation/phase-0-validation-improved.js +0 -490
- package/dist/scripts/validation/phase-0-validation-test.js +0 -65
- package/dist/scripts/validation/phase-1-consensus-report.cjs +0 -342
- package/dist/scripts/validation/phase-1-consensus-validation.cjs +0 -551
- package/dist/scripts/validation/phase-1-consensus-validation.js +0 -551
- package/dist/scripts/validation/phase-2-consensus-report.cjs +0 -186
- package/dist/scripts/validation/phase-2-validation.cjs +0 -171
- package/dist/scripts/validation/phase-2-validation.js +0 -171
- package/dist/scripts/validation/phase-4-consensus-report.js +0 -181
- package/dist/scripts/validation/phase-4-final-validation.js +0 -351
- package/dist/scripts/validation/phase-5-consensus-report.cjs +0 -113
- package/dist/scripts/validation/phase-5-consensus-report.js +0 -113
- package/dist/scripts/validation/security-analysis.js +0 -49
- package/dist/scripts/validation/security-validation.js +0 -492
- package/dist/scripts/validation/simple-security-validation.js +0 -464
- package/dist/scripts/verify-installation.js +0 -112
- package/dist/scripts/verify-mcp-server.js +0 -86
- package/dist/scripts/verify-sdk-phase1.cjs +0 -293
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* API Key Rotation Script
|
|
5
|
-
* Automates the process of rotating API keys and updating configuration
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* node scripts/security/rotate-api-keys.js [--key=KEY_NAME] [--new-value=VALUE] [--auto]
|
|
9
|
-
*
|
|
10
|
-
* @security Phase 0 Debt Resolution
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
const fs = require('fs');
|
|
14
|
-
const path = require('path');
|
|
15
|
-
const readline = require('readline');
|
|
16
|
-
const crypto = require('crypto');
|
|
17
|
-
|
|
18
|
-
// Load SecretsManager
|
|
19
|
-
const { getSecretsManager } = require('../../src/security/SecretsManager.cjs');
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* CLI Arguments Parser
|
|
23
|
-
*/
|
|
24
|
-
function parseArgs() {
|
|
25
|
-
const args = {
|
|
26
|
-
key: null,
|
|
27
|
-
newValue: null,
|
|
28
|
-
auto: false,
|
|
29
|
-
interactive: true,
|
|
30
|
-
dryRun: false,
|
|
31
|
-
force: false
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
for (let i = 2; i < process.argv.length; i++) {
|
|
35
|
-
const arg = process.argv[i];
|
|
36
|
-
|
|
37
|
-
if (arg.startsWith('--key=')) {
|
|
38
|
-
args.key = arg.split('=')[1];
|
|
39
|
-
} else if (arg.startsWith('--new-value=')) {
|
|
40
|
-
args.newValue = arg.split('=')[1];
|
|
41
|
-
} else if (arg === '--auto') {
|
|
42
|
-
args.auto = true;
|
|
43
|
-
args.interactive = false;
|
|
44
|
-
} else if (arg === '--dry-run') {
|
|
45
|
-
args.dryRun = true;
|
|
46
|
-
} else if (arg === '--force') {
|
|
47
|
-
args.force = true;
|
|
48
|
-
} else if (arg === '--help' || arg === '-h') {
|
|
49
|
-
printHelp();
|
|
50
|
-
process.exit(0);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return args;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Print help message
|
|
59
|
-
*/
|
|
60
|
-
function printHelp() {
|
|
61
|
-
console.log(`
|
|
62
|
-
API Key Rotation Script
|
|
63
|
-
========================
|
|
64
|
-
|
|
65
|
-
Usage:
|
|
66
|
-
node scripts/security/rotate-api-keys.js [OPTIONS]
|
|
67
|
-
|
|
68
|
-
Options:
|
|
69
|
-
--key=KEY_NAME Specific key to rotate (e.g., ANTHROPIC_API_KEY)
|
|
70
|
-
--new-value=VALUE New value for the key
|
|
71
|
-
--auto Auto-generate values for supported keys
|
|
72
|
-
--dry-run Show what would be done without making changes
|
|
73
|
-
--force Force rotation even if key was recently rotated
|
|
74
|
-
--help, -h Show this help message
|
|
75
|
-
|
|
76
|
-
Examples:
|
|
77
|
-
# Interactive rotation (prompts for all inputs)
|
|
78
|
-
node scripts/security/rotate-api-keys.js
|
|
79
|
-
|
|
80
|
-
# Rotate specific key
|
|
81
|
-
node scripts/security/rotate-api-keys.js --key=REDIS_PASSWORD --auto
|
|
82
|
-
|
|
83
|
-
# Rotate with new value
|
|
84
|
-
node scripts/security/rotate-api-keys.js --key=REDIS_PASSWORD --new-value=new-secure-password
|
|
85
|
-
|
|
86
|
-
# Dry run to see what would happen
|
|
87
|
-
node scripts/security/rotate-api-keys.js --key=REDIS_PASSWORD --dry-run
|
|
88
|
-
|
|
89
|
-
Security Notes:
|
|
90
|
-
- API keys should be rotated every 90 days
|
|
91
|
-
- Always test the new key before fully committing
|
|
92
|
-
- Keep a backup of old keys for rollback
|
|
93
|
-
- Update all services using the rotated key
|
|
94
|
-
`);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Prompt user for input
|
|
99
|
-
*/
|
|
100
|
-
async function prompt(question) {
|
|
101
|
-
const rl = readline.createInterface({
|
|
102
|
-
input: process.stdin,
|
|
103
|
-
output: process.stdout
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
return new Promise((resolve) => {
|
|
107
|
-
rl.question(question, (answer) => {
|
|
108
|
-
rl.close();
|
|
109
|
-
resolve(answer);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Validate key format
|
|
116
|
-
*/
|
|
117
|
-
function validateKeyFormat(key, value) {
|
|
118
|
-
const patterns = {
|
|
119
|
-
ANTHROPIC_API_KEY: /^sk-ant-api03-[a-zA-Z0-9\-_]{95}$/,
|
|
120
|
-
Z_AI_API_KEY: /^[a-f0-9]{32}\.[a-zA-Z0-9]{16}$/,
|
|
121
|
-
ZAI_API_KEY: /^[a-f0-9]{32}\.[a-zA-Z0-9]{16}$/,
|
|
122
|
-
NPM_API_KEY: /^npm_[a-zA-Z0-9]{36}$/,
|
|
123
|
-
REDIS_PASSWORD: /^.{32,}$/
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
if (patterns[key]) {
|
|
127
|
-
return patterns[key].test(value);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// Generic validation for other keys
|
|
131
|
-
return value && value.length >= 20;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Auto-generate secure value for supported keys
|
|
136
|
-
*/
|
|
137
|
-
function autoGenerateValue(key) {
|
|
138
|
-
switch (key) {
|
|
139
|
-
case 'REDIS_PASSWORD': {
|
|
140
|
-
const length = 64;
|
|
141
|
-
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?';
|
|
142
|
-
let password = '';
|
|
143
|
-
const randomBytes = crypto.randomBytes(length);
|
|
144
|
-
for (let i = 0; i < length; i++) {
|
|
145
|
-
password += chars[randomBytes[i] % chars.length];
|
|
146
|
-
}
|
|
147
|
-
return password;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
case 'JWT_SECRET':
|
|
151
|
-
case 'SESSION_SECRET': {
|
|
152
|
-
return crypto.randomBytes(64).toString('hex');
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
default:
|
|
156
|
-
return null;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Check if key was recently rotated
|
|
162
|
-
*/
|
|
163
|
-
async function checkRecentRotation(key, secretsManager) {
|
|
164
|
-
const rotationLogPath = path.join(process.cwd(), 'memory', 'security', 'key-rotations.json');
|
|
165
|
-
|
|
166
|
-
if (!fs.existsSync(rotationLogPath)) {
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const rotations = JSON.parse(fs.readFileSync(rotationLogPath, 'utf8'));
|
|
171
|
-
const recentRotation = rotations
|
|
172
|
-
.filter(r => r.key === key)
|
|
173
|
-
.sort((a, b) => new Date(b.timestamp) - new Date(a.timestamp))[0];
|
|
174
|
-
|
|
175
|
-
if (!recentRotation) {
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const rotationDate = new Date(recentRotation.timestamp);
|
|
180
|
-
const daysSinceRotation = Math.floor((Date.now() - rotationDate) / (1000 * 60 * 60 * 24));
|
|
181
|
-
|
|
182
|
-
return daysSinceRotation < 7; // Recently rotated if within 7 days
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Backup current .env file
|
|
187
|
-
*/
|
|
188
|
-
function backupEnvFile() {
|
|
189
|
-
const envPath = path.join(process.cwd(), '.env');
|
|
190
|
-
if (!fs.existsSync(envPath)) {
|
|
191
|
-
return null;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
195
|
-
const backupPath = path.join(process.cwd(), 'memory', 'security', `env-backup-${timestamp}.txt`);
|
|
196
|
-
const backupDir = path.dirname(backupPath);
|
|
197
|
-
|
|
198
|
-
if (!fs.existsSync(backupDir)) {
|
|
199
|
-
fs.mkdirSync(backupDir, { recursive: true, mode: 0o700 });
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
fs.copyFileSync(envPath, backupPath);
|
|
203
|
-
fs.chmodSync(backupPath, 0o600);
|
|
204
|
-
|
|
205
|
-
return backupPath;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Rotate a single API key
|
|
210
|
-
*/
|
|
211
|
-
async function rotateKey(key, newValue, args) {
|
|
212
|
-
const secretsManager = getSecretsManager();
|
|
213
|
-
await secretsManager.initialize();
|
|
214
|
-
|
|
215
|
-
console.log(`\n🔄 Rotating: ${key}`);
|
|
216
|
-
|
|
217
|
-
// Check if recently rotated
|
|
218
|
-
if (!args.force && await checkRecentRotation(key, secretsManager)) {
|
|
219
|
-
console.log(`⚠️ ${key} was recently rotated (within 7 days)`);
|
|
220
|
-
if (args.interactive) {
|
|
221
|
-
const proceed = await prompt('Continue anyway? (yes/no): ');
|
|
222
|
-
if (proceed.toLowerCase() !== 'yes') {
|
|
223
|
-
console.log('❌ Rotation cancelled');
|
|
224
|
-
return false;
|
|
225
|
-
}
|
|
226
|
-
} else {
|
|
227
|
-
console.log('❌ Use --force to override');
|
|
228
|
-
return false;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// Get current value
|
|
233
|
-
const currentValue = secretsManager.getSecret(key);
|
|
234
|
-
if (!currentValue) {
|
|
235
|
-
console.log(`⚠️ ${key} is not currently set`);
|
|
236
|
-
} else {
|
|
237
|
-
console.log(`✅ Current value found (will be backed up)`);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// Validate new value
|
|
241
|
-
if (!validateKeyFormat(key, newValue)) {
|
|
242
|
-
console.log(`❌ Invalid format for ${key}`);
|
|
243
|
-
console.log(` Value: ${newValue.substring(0, 20)}...`);
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
console.log(`✅ New value validated`);
|
|
248
|
-
|
|
249
|
-
// Dry run check
|
|
250
|
-
if (args.dryRun) {
|
|
251
|
-
console.log(`\n🔍 DRY RUN - Would rotate ${key}`);
|
|
252
|
-
console.log(` Old value: ${currentValue ? currentValue.substring(0, 10) + '...' : 'not set'}`);
|
|
253
|
-
console.log(` New value: ${newValue.substring(0, 10)}...`);
|
|
254
|
-
return true;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// Backup .env file
|
|
258
|
-
const backupPath = backupEnvFile();
|
|
259
|
-
if (backupPath) {
|
|
260
|
-
console.log(`💾 Backed up .env to: ${backupPath}`);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
try {
|
|
264
|
-
// Perform rotation
|
|
265
|
-
await secretsManager.rotateApiKey(key, newValue);
|
|
266
|
-
console.log(`✅ Successfully rotated ${key}`);
|
|
267
|
-
|
|
268
|
-
// Additional actions based on key type
|
|
269
|
-
switch (key) {
|
|
270
|
-
case 'REDIS_PASSWORD':
|
|
271
|
-
console.log(`\n⚠️ IMPORTANT: Update Redis configuration:`);
|
|
272
|
-
console.log(` 1. Update redis.conf: requirepass ${newValue}`);
|
|
273
|
-
console.log(` 2. Restart Redis server`);
|
|
274
|
-
console.log(` 3. Test connection with new password`);
|
|
275
|
-
break;
|
|
276
|
-
|
|
277
|
-
case 'ANTHROPIC_API_KEY':
|
|
278
|
-
console.log(`\n⚠️ IMPORTANT: Update Anthropic dashboard:`);
|
|
279
|
-
console.log(` 1. Revoke old API key in Anthropic console`);
|
|
280
|
-
console.log(` 2. Test new key with a simple request`);
|
|
281
|
-
break;
|
|
282
|
-
|
|
283
|
-
case 'NPM_API_KEY':
|
|
284
|
-
console.log(`\n⚠️ IMPORTANT: Update npm configuration:`);
|
|
285
|
-
console.log(` 1. Verify token in npm: npm whoami`);
|
|
286
|
-
console.log(` 2. Revoke old token in npm website`);
|
|
287
|
-
break;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
return true;
|
|
291
|
-
} catch (error) {
|
|
292
|
-
console.error(`❌ Rotation failed: ${error.message}`);
|
|
293
|
-
|
|
294
|
-
// Rollback from backup if available
|
|
295
|
-
if (backupPath && fs.existsSync(backupPath)) {
|
|
296
|
-
console.log(`🔄 Rolling back from backup...`);
|
|
297
|
-
fs.copyFileSync(backupPath, path.join(process.cwd(), '.env'));
|
|
298
|
-
console.log(`✅ Rolled back to previous state`);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Interactive rotation workflow
|
|
307
|
-
*/
|
|
308
|
-
async function interactiveRotation() {
|
|
309
|
-
console.log(`
|
|
310
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
311
|
-
║ API Key Rotation - Interactive Mode ║
|
|
312
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
313
|
-
`);
|
|
314
|
-
|
|
315
|
-
const secretsManager = getSecretsManager();
|
|
316
|
-
await secretsManager.initialize();
|
|
317
|
-
|
|
318
|
-
// Check which keys need rotation
|
|
319
|
-
const needRotation = await secretsManager.checkRotationRequired();
|
|
320
|
-
|
|
321
|
-
if (needRotation.length > 0) {
|
|
322
|
-
console.log(`\n⚠️ The following keys need rotation (90+ days):`);
|
|
323
|
-
needRotation.forEach((key, i) => {
|
|
324
|
-
console.log(` ${i + 1}. ${key}`);
|
|
325
|
-
});
|
|
326
|
-
} else {
|
|
327
|
-
console.log(`\n✅ All keys are up to date (rotated within 90 days)`);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Ask which key to rotate
|
|
331
|
-
console.log(`\nAvailable keys to rotate:`);
|
|
332
|
-
const allKeys = ['ANTHROPIC_API_KEY', 'Z_AI_API_KEY', 'NPM_API_KEY', 'REDIS_PASSWORD'];
|
|
333
|
-
allKeys.forEach((key, i) => {
|
|
334
|
-
const current = secretsManager.getSecret(key);
|
|
335
|
-
const status = current ? '✅ set' : '❌ not set';
|
|
336
|
-
const needsRotation = needRotation.includes(key) ? '⚠️ rotation needed' : '';
|
|
337
|
-
console.log(` ${i + 1}. ${key} (${status}) ${needsRotation}`);
|
|
338
|
-
});
|
|
339
|
-
|
|
340
|
-
const keyChoice = await prompt('\nEnter key number to rotate (or "q" to quit): ');
|
|
341
|
-
if (keyChoice.toLowerCase() === 'q') {
|
|
342
|
-
console.log('👋 Goodbye!');
|
|
343
|
-
process.exit(0);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
const keyIndex = parseInt(keyChoice) - 1;
|
|
347
|
-
if (keyIndex < 0 || keyIndex >= allKeys.length) {
|
|
348
|
-
console.log('❌ Invalid selection');
|
|
349
|
-
process.exit(1);
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
const selectedKey = allKeys[keyIndex];
|
|
353
|
-
|
|
354
|
-
// Check if auto-generate is available
|
|
355
|
-
const canAutoGenerate = autoGenerateValue(selectedKey) !== null;
|
|
356
|
-
let newValue;
|
|
357
|
-
|
|
358
|
-
if (canAutoGenerate) {
|
|
359
|
-
const autoGen = await prompt(`Auto-generate secure value? (yes/no): `);
|
|
360
|
-
if (autoGen.toLowerCase() === 'yes') {
|
|
361
|
-
newValue = autoGenerateValue(selectedKey);
|
|
362
|
-
console.log(`✅ Generated secure value`);
|
|
363
|
-
} else {
|
|
364
|
-
newValue = await prompt(`Enter new value for ${selectedKey}: `);
|
|
365
|
-
}
|
|
366
|
-
} else {
|
|
367
|
-
newValue = await prompt(`Enter new value for ${selectedKey}: `);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
// Confirm rotation
|
|
371
|
-
console.log(`\n📋 Rotation Summary:`);
|
|
372
|
-
console.log(` Key: ${selectedKey}`);
|
|
373
|
-
console.log(` New value: ${newValue.substring(0, 20)}...`);
|
|
374
|
-
|
|
375
|
-
const confirm = await prompt('\nProceed with rotation? (yes/no): ');
|
|
376
|
-
if (confirm.toLowerCase() !== 'yes') {
|
|
377
|
-
console.log('❌ Rotation cancelled');
|
|
378
|
-
process.exit(0);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
// Perform rotation
|
|
382
|
-
const args = { interactive: true, dryRun: false, force: false };
|
|
383
|
-
const success = await rotateKey(selectedKey, newValue, args);
|
|
384
|
-
|
|
385
|
-
if (success) {
|
|
386
|
-
console.log(`\n✅ Rotation complete!`);
|
|
387
|
-
|
|
388
|
-
// Generate security audit
|
|
389
|
-
console.log(`\n📊 Generating security audit...`);
|
|
390
|
-
const audit = await secretsManager.generateSecurityAudit();
|
|
391
|
-
console.log(`\nSecurity Status:`);
|
|
392
|
-
console.log(` Total secrets: ${audit.secrets.total}`);
|
|
393
|
-
console.log(` Missing required: ${audit.secrets.missing.length}`);
|
|
394
|
-
console.log(` Keys needing rotation: ${audit.rotation.needRotation.length}`);
|
|
395
|
-
|
|
396
|
-
if (audit.recommendations.length > 0) {
|
|
397
|
-
console.log(`\n⚠️ Recommendations:`);
|
|
398
|
-
audit.recommendations.forEach((rec, i) => {
|
|
399
|
-
console.log(` ${i + 1}. [${rec.severity}] ${rec.message}`);
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
} else {
|
|
403
|
-
console.log(`\n❌ Rotation failed`);
|
|
404
|
-
process.exit(1);
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/**
|
|
409
|
-
* Main function
|
|
410
|
-
*/
|
|
411
|
-
async function main() {
|
|
412
|
-
const args = parseArgs();
|
|
413
|
-
|
|
414
|
-
console.log(`
|
|
415
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
416
|
-
║ Claude Flow Novice - API Key Rotation ║
|
|
417
|
-
║ Phase 0 Security Debt ║
|
|
418
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
419
|
-
`);
|
|
420
|
-
|
|
421
|
-
// Interactive mode
|
|
422
|
-
if (args.interactive && !args.key) {
|
|
423
|
-
await interactiveRotation();
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
// Command-line mode
|
|
428
|
-
if (!args.key) {
|
|
429
|
-
console.log('❌ --key parameter required in non-interactive mode');
|
|
430
|
-
console.log(' Use --help for usage information');
|
|
431
|
-
process.exit(1);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
let newValue = args.newValue;
|
|
435
|
-
|
|
436
|
-
// Auto-generate if requested
|
|
437
|
-
if (args.auto) {
|
|
438
|
-
newValue = autoGenerateValue(args.key);
|
|
439
|
-
if (!newValue) {
|
|
440
|
-
console.log(`❌ Auto-generation not supported for ${args.key}`);
|
|
441
|
-
console.log(' Provide --new-value instead');
|
|
442
|
-
process.exit(1);
|
|
443
|
-
}
|
|
444
|
-
console.log(`✅ Auto-generated secure value for ${args.key}`);
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
if (!newValue) {
|
|
448
|
-
console.log('❌ --new-value or --auto required');
|
|
449
|
-
process.exit(1);
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
// Perform rotation
|
|
453
|
-
const success = await rotateKey(args.key, newValue, args);
|
|
454
|
-
|
|
455
|
-
if (success) {
|
|
456
|
-
console.log(`\n✅ Rotation complete!`);
|
|
457
|
-
process.exit(0);
|
|
458
|
-
} else {
|
|
459
|
-
console.log(`\n❌ Rotation failed`);
|
|
460
|
-
process.exit(1);
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
// Run main function
|
|
465
|
-
main().catch((error) => {
|
|
466
|
-
console.error('❌ Fatal error:', error.message);
|
|
467
|
-
console.error(error.stack);
|
|
468
|
-
process.exit(1);
|
|
469
|
-
});
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Safe wrapper for ruv-swarm MCP server
|
|
5
|
-
* Handles known logger issue in v1.0.8
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { spawn } from 'child_process';
|
|
9
|
-
import { createInterface } from 'readline';
|
|
10
|
-
|
|
11
|
-
console.log('🚀 Starting ruv-swarm MCP server with error handling...');
|
|
12
|
-
|
|
13
|
-
const ruvSwarmProcess = spawn('npx', ['ruv-swarm', 'mcp', 'start'], {
|
|
14
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
15
|
-
env: {
|
|
16
|
-
...process.env,
|
|
17
|
-
MCP_MODE: 'stdio',
|
|
18
|
-
LOG_LEVEL: 'WARN'
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
// Forward stdin to ruv-swarm
|
|
23
|
-
process.stdin.pipe(ruvSwarmProcess.stdin);
|
|
24
|
-
|
|
25
|
-
// Handle stdout (JSON-RPC messages)
|
|
26
|
-
ruvSwarmProcess.stdout.pipe(process.stdout);
|
|
27
|
-
|
|
28
|
-
// Handle stderr with filtering
|
|
29
|
-
const rlErr = createInterface({
|
|
30
|
-
input: ruvSwarmProcess.stderr,
|
|
31
|
-
crlfDelay: Infinity
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
let errorHandled = false;
|
|
35
|
-
|
|
36
|
-
rlErr.on('line', (line) => {
|
|
37
|
-
// Filter out the known logger error
|
|
38
|
-
if (line.includes('logger.logMemoryUsage is not a function')) {
|
|
39
|
-
if (!errorHandled) {
|
|
40
|
-
console.error('⚠️ Known ruv-swarm v1.0.8 logger issue detected - continuing normally');
|
|
41
|
-
console.error('💡 This error does not affect functionality');
|
|
42
|
-
errorHandled = true;
|
|
43
|
-
}
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Forward other stderr output
|
|
48
|
-
process.stderr.write(line + '\n');
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// Handle process exit
|
|
52
|
-
ruvSwarmProcess.on('exit', (code, signal) => {
|
|
53
|
-
if (code !== null && code !== 0) {
|
|
54
|
-
console.error(`\n❌ ruv-swarm exited with code ${code}`);
|
|
55
|
-
console.error('💡 Try using: npx claude-flow@alpha mcp start');
|
|
56
|
-
}
|
|
57
|
-
process.exit(code || 0);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// Handle errors
|
|
61
|
-
ruvSwarmProcess.on('error', (error) => {
|
|
62
|
-
console.error('❌ Failed to start ruv-swarm:', error.message);
|
|
63
|
-
console.error('💡 Try using: npx claude-flow@alpha mcp start');
|
|
64
|
-
process.exit(1);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
// Handle termination signals
|
|
68
|
-
process.on('SIGTERM', () => {
|
|
69
|
-
ruvSwarmProcess.kill('SIGTERM');
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
process.on('SIGINT', () => {
|
|
73
|
-
ruvSwarmProcess.kill('SIGINT');
|
|
74
|
-
});
|