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,311 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Claude Flow Personal Web Portal Stop Script
|
|
4
|
-
# Graceful shutdown script for the web portal system
|
|
5
|
-
|
|
6
|
-
set -euo pipefail
|
|
7
|
-
|
|
8
|
-
# Configuration
|
|
9
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
10
|
-
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
11
|
-
PID_FILE="$PROJECT_ROOT/.portal.pid"
|
|
12
|
-
FRONTEND_PID_FILE="$PROJECT_ROOT/.frontend.pid"
|
|
13
|
-
|
|
14
|
-
# Colors for output
|
|
15
|
-
RED='\033[0;31m'
|
|
16
|
-
GREEN='\033[0;32m'
|
|
17
|
-
YELLOW='\033[1;33m'
|
|
18
|
-
BLUE='\033[0;34m'
|
|
19
|
-
NC='\033[0m' # No Color
|
|
20
|
-
|
|
21
|
-
# Logging
|
|
22
|
-
log() {
|
|
23
|
-
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
warn() {
|
|
27
|
-
echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')] WARNING:${NC} $1"
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
error() {
|
|
31
|
-
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] ERROR:${NC} $1"
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
info() {
|
|
35
|
-
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')] INFO:${NC} $1"
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
# Function to check if a command exists
|
|
39
|
-
command_exists() {
|
|
40
|
-
command -v "$1" >/dev/null 2>&1
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
# Function to stop portal processes
|
|
44
|
-
stop_portal() {
|
|
45
|
-
log "🛑 Stopping Claude Flow Personal Web Portal..."
|
|
46
|
-
|
|
47
|
-
local processes_stopped=false
|
|
48
|
-
|
|
49
|
-
# Stop PM2 processes first
|
|
50
|
-
if command_exists pm2; then
|
|
51
|
-
if pm2 list 2>/dev/null | grep -q "claude-flow-portal"; then
|
|
52
|
-
info "Stopping PM2 process: claude-flow-portal"
|
|
53
|
-
pm2 stop claude-flow-portal 2>/dev/null || warn "Failed to stop PM2 process"
|
|
54
|
-
pm2 delete claude-flow-portal 2>/dev/null || warn "Failed to delete PM2 process"
|
|
55
|
-
processes_stopped=true
|
|
56
|
-
fi
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
# Stop main portal server process
|
|
60
|
-
if [[ -f "$PID_FILE" ]]; then
|
|
61
|
-
local portal_pid
|
|
62
|
-
portal_pid=$(cat "$PID_FILE")
|
|
63
|
-
|
|
64
|
-
if kill -0 "$portal_pid" 2>/dev/null; then
|
|
65
|
-
info "Stopping portal server process (PID: $portal_pid)..."
|
|
66
|
-
kill -TERM "$portal_pid" 2>/dev/null || kill -KILL "$portal_pid" 2>/dev/null || true
|
|
67
|
-
|
|
68
|
-
# Wait for graceful shutdown
|
|
69
|
-
for i in {1..10}; do
|
|
70
|
-
if ! kill -0 "$portal_pid" 2>/dev/null; then
|
|
71
|
-
break
|
|
72
|
-
fi
|
|
73
|
-
sleep 1
|
|
74
|
-
done
|
|
75
|
-
|
|
76
|
-
# Force kill if still running
|
|
77
|
-
if kill -0 "$portal_pid" 2>/dev/null; then
|
|
78
|
-
warn "Force killing portal server process..."
|
|
79
|
-
kill -KILL "$portal_pid" 2>/dev/null || true
|
|
80
|
-
fi
|
|
81
|
-
|
|
82
|
-
processes_stopped=true
|
|
83
|
-
fi
|
|
84
|
-
|
|
85
|
-
rm -f "$PID_FILE"
|
|
86
|
-
fi
|
|
87
|
-
|
|
88
|
-
# Stop frontend development server
|
|
89
|
-
if [[ -f "$FRONTEND_PID_FILE" ]]; then
|
|
90
|
-
local frontend_pid
|
|
91
|
-
frontend_pid=$(cat "$FRONTEND_PID_FILE")
|
|
92
|
-
|
|
93
|
-
if kill -0 "$frontend_pid" 2>/dev/null; then
|
|
94
|
-
info "Stopping frontend development server (PID: $frontend_pid)..."
|
|
95
|
-
kill -TERM "$frontend_pid" 2>/dev/null || kill -KILL "$frontend_pid" 2>/dev/null || true
|
|
96
|
-
processes_stopped=true
|
|
97
|
-
fi
|
|
98
|
-
|
|
99
|
-
rm -f "$FRONTEND_PID_FILE"
|
|
100
|
-
fi
|
|
101
|
-
|
|
102
|
-
# Kill any remaining processes by name
|
|
103
|
-
local portal_processes
|
|
104
|
-
portal_processes=$(pgrep -f "portal-server" 2>/dev/null || true)
|
|
105
|
-
if [[ -n "$portal_processes" ]]; then
|
|
106
|
-
info "Stopping remaining portal server processes..."
|
|
107
|
-
echo "$portal_processes" | xargs -r kill -TERM 2>/dev/null || true
|
|
108
|
-
sleep 2
|
|
109
|
-
echo "$portal_processes" | xargs -r kill -KILL 2>/dev/null || true
|
|
110
|
-
processes_stopped=true
|
|
111
|
-
fi
|
|
112
|
-
|
|
113
|
-
# Kill any remaining React development servers
|
|
114
|
-
local react_processes
|
|
115
|
-
react_processes=$(pgrep -f "react-scripts" 2>/dev/null || true)
|
|
116
|
-
if [[ -n "$react_processes" ]]; then
|
|
117
|
-
info "Stopping React development servers..."
|
|
118
|
-
echo "$react_processes" | xargs -r kill -TERM 2>/dev/null || true
|
|
119
|
-
sleep 2
|
|
120
|
-
echo "$react_processes" | xargs -r kill -KILL 2>/dev/null || true
|
|
121
|
-
processes_stopped=true
|
|
122
|
-
fi
|
|
123
|
-
|
|
124
|
-
if [[ "$processes_stopped" == true ]]; then
|
|
125
|
-
log "✅ Portal processes stopped successfully"
|
|
126
|
-
else
|
|
127
|
-
warn "No running portal processes found"
|
|
128
|
-
fi
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
# Function to execute coordination hooks
|
|
132
|
-
execute_shutdown_hooks() {
|
|
133
|
-
log "🪝 Executing shutdown coordination hooks..."
|
|
134
|
-
|
|
135
|
-
# Session-end hook for portal shutdown
|
|
136
|
-
if command_exists npx && npx claude-flow@alpha --version >/dev/null 2>&1; then
|
|
137
|
-
info "Executing Claude Flow session-end hook..."
|
|
138
|
-
npx claude-flow@alpha hooks session-end \
|
|
139
|
-
--export-metrics true \
|
|
140
|
-
--save-state true \
|
|
141
|
-
--reason "manual-shutdown" || warn "Session-end hook failed"
|
|
142
|
-
else
|
|
143
|
-
warn "Claude Flow not available, skipping coordination hooks"
|
|
144
|
-
fi
|
|
145
|
-
|
|
146
|
-
log "✅ Shutdown hooks complete"
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
# Function to cleanup temporary files
|
|
150
|
-
cleanup_files() {
|
|
151
|
-
log "🧹 Cleaning up temporary files..."
|
|
152
|
-
|
|
153
|
-
# Remove PID files
|
|
154
|
-
rm -f "$PID_FILE" "$FRONTEND_PID_FILE"
|
|
155
|
-
|
|
156
|
-
# Clean up temporary directories if they exist and are empty
|
|
157
|
-
local temp_dirs=("$PROJECT_ROOT/.tmp" "$PROJECT_ROOT/tmp")
|
|
158
|
-
for dir in "${temp_dirs[@]}"; do
|
|
159
|
-
if [[ -d "$dir" ]] && [[ -z "$(ls -A "$dir" 2>/dev/null)" ]]; then
|
|
160
|
-
rmdir "$dir" 2>/dev/null || true
|
|
161
|
-
fi
|
|
162
|
-
done
|
|
163
|
-
|
|
164
|
-
log "✅ Cleanup complete"
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
# Function to show status
|
|
168
|
-
show_status() {
|
|
169
|
-
log "📊 Portal Status Check"
|
|
170
|
-
echo ""
|
|
171
|
-
|
|
172
|
-
# Check for running processes
|
|
173
|
-
local portal_running=false
|
|
174
|
-
local frontend_running=false
|
|
175
|
-
|
|
176
|
-
if [[ -f "$PID_FILE" ]]; then
|
|
177
|
-
local portal_pid
|
|
178
|
-
portal_pid=$(cat "$PID_FILE")
|
|
179
|
-
if kill -0 "$portal_pid" 2>/dev/null; then
|
|
180
|
-
info "✅ Portal server running (PID: $portal_pid)"
|
|
181
|
-
portal_running=true
|
|
182
|
-
else
|
|
183
|
-
warn "❌ Portal server not running (stale PID file)"
|
|
184
|
-
rm -f "$PID_FILE"
|
|
185
|
-
fi
|
|
186
|
-
fi
|
|
187
|
-
|
|
188
|
-
if [[ -f "$FRONTEND_PID_FILE" ]]; then
|
|
189
|
-
local frontend_pid
|
|
190
|
-
frontend_pid=$(cat "$FRONTEND_PID_FILE")
|
|
191
|
-
if kill -0 "$frontend_pid" 2>/dev/null; then
|
|
192
|
-
info "✅ Frontend dev server running (PID: $frontend_pid)"
|
|
193
|
-
frontend_running=true
|
|
194
|
-
else
|
|
195
|
-
warn "❌ Frontend dev server not running (stale PID file)"
|
|
196
|
-
rm -f "$FRONTEND_PID_FILE"
|
|
197
|
-
fi
|
|
198
|
-
fi
|
|
199
|
-
|
|
200
|
-
# Check PM2 processes
|
|
201
|
-
if command_exists pm2; then
|
|
202
|
-
if pm2 list 2>/dev/null | grep -q "claude-flow-portal"; then
|
|
203
|
-
info "✅ PM2 process running"
|
|
204
|
-
portal_running=true
|
|
205
|
-
fi
|
|
206
|
-
fi
|
|
207
|
-
|
|
208
|
-
# Check by process name
|
|
209
|
-
if pgrep -f "portal-server" >/dev/null 2>&1; then
|
|
210
|
-
info "✅ Portal server process found"
|
|
211
|
-
portal_running=true
|
|
212
|
-
fi
|
|
213
|
-
|
|
214
|
-
if pgrep -f "react-scripts" >/dev/null 2>&1; then
|
|
215
|
-
info "✅ React dev server process found"
|
|
216
|
-
frontend_running=true
|
|
217
|
-
fi
|
|
218
|
-
|
|
219
|
-
echo ""
|
|
220
|
-
if [[ "$portal_running" == false ]] && [[ "$frontend_running" == false ]]; then
|
|
221
|
-
log "🔴 No portal processes running"
|
|
222
|
-
else
|
|
223
|
-
log "🟢 Portal processes are running"
|
|
224
|
-
fi
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
# Function to show help
|
|
228
|
-
show_help() {
|
|
229
|
-
cat << EOF
|
|
230
|
-
Claude Flow Personal Web Portal Stop Script
|
|
231
|
-
|
|
232
|
-
Usage: $0 [OPTIONS]
|
|
233
|
-
|
|
234
|
-
Options:
|
|
235
|
-
-h, --help Show this help message
|
|
236
|
-
-s, --status Show portal status without stopping
|
|
237
|
-
-f, --force Force kill all processes
|
|
238
|
-
--skip-hooks Skip coordination hooks
|
|
239
|
-
--verbose Enable verbose logging
|
|
240
|
-
|
|
241
|
-
Examples:
|
|
242
|
-
$0 # Stop portal gracefully
|
|
243
|
-
$0 --status # Check portal status
|
|
244
|
-
$0 --force # Force stop all processes
|
|
245
|
-
|
|
246
|
-
For more information, visit:
|
|
247
|
-
https://github.com/ruvnet/claude-flow
|
|
248
|
-
EOF
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
# Parse command line arguments
|
|
252
|
-
FORCE_STOP=false
|
|
253
|
-
SKIP_HOOKS=false
|
|
254
|
-
VERBOSE=false
|
|
255
|
-
STATUS_ONLY=false
|
|
256
|
-
|
|
257
|
-
while [[ $# -gt 0 ]]; do
|
|
258
|
-
case $1 in
|
|
259
|
-
-h|--help)
|
|
260
|
-
show_help
|
|
261
|
-
exit 0
|
|
262
|
-
;;
|
|
263
|
-
-s|--status)
|
|
264
|
-
STATUS_ONLY=true
|
|
265
|
-
shift
|
|
266
|
-
;;
|
|
267
|
-
-f|--force)
|
|
268
|
-
FORCE_STOP=true
|
|
269
|
-
shift
|
|
270
|
-
;;
|
|
271
|
-
--skip-hooks)
|
|
272
|
-
SKIP_HOOKS=true
|
|
273
|
-
shift
|
|
274
|
-
;;
|
|
275
|
-
--verbose)
|
|
276
|
-
VERBOSE=true
|
|
277
|
-
set -x
|
|
278
|
-
shift
|
|
279
|
-
;;
|
|
280
|
-
*)
|
|
281
|
-
error "Unknown option: $1"
|
|
282
|
-
show_help
|
|
283
|
-
exit 1
|
|
284
|
-
;;
|
|
285
|
-
esac
|
|
286
|
-
done
|
|
287
|
-
|
|
288
|
-
# Main execution
|
|
289
|
-
main() {
|
|
290
|
-
if [[ "$STATUS_ONLY" == true ]]; then
|
|
291
|
-
show_status
|
|
292
|
-
exit 0
|
|
293
|
-
fi
|
|
294
|
-
|
|
295
|
-
log "🛑 Claude Flow Personal Web Portal Shutdown"
|
|
296
|
-
echo ""
|
|
297
|
-
|
|
298
|
-
if [[ "$SKIP_HOOKS" != true ]]; then
|
|
299
|
-
execute_shutdown_hooks
|
|
300
|
-
else
|
|
301
|
-
warn "Skipping coordination hooks as requested"
|
|
302
|
-
fi
|
|
303
|
-
|
|
304
|
-
stop_portal
|
|
305
|
-
cleanup_files
|
|
306
|
-
|
|
307
|
-
log "✅ Claude Flow Personal Web Portal stopped successfully"
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
# Run main function
|
|
311
|
-
main "$@"
|
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env deno run --allow-read
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Example Configuration Validator
|
|
5
|
-
* Validates all example configuration files for correctness
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { walk } from "https://deno.land/std@0.220.0/fs/mod.ts";
|
|
9
|
-
|
|
10
|
-
interface ValidationResult {
|
|
11
|
-
file: string;
|
|
12
|
-
valid: boolean;
|
|
13
|
-
errors: string[];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
interface ConfigSchema {
|
|
17
|
-
[key: string]: {
|
|
18
|
-
type: string;
|
|
19
|
-
required?: boolean;
|
|
20
|
-
properties?: ConfigSchema;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const CLAUDE_FLOW_CONFIG_SCHEMA: ConfigSchema = {
|
|
25
|
-
orchestrator: {
|
|
26
|
-
type: 'object',
|
|
27
|
-
required: true,
|
|
28
|
-
properties: {
|
|
29
|
-
maxConcurrentAgents: { type: 'number' },
|
|
30
|
-
taskQueueSize: { type: 'number' },
|
|
31
|
-
healthCheckInterval: { type: 'number' },
|
|
32
|
-
shutdownTimeout: { type: 'number' },
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
terminal: {
|
|
36
|
-
type: 'object',
|
|
37
|
-
properties: {
|
|
38
|
-
type: { type: 'string' },
|
|
39
|
-
poolSize: { type: 'number' },
|
|
40
|
-
recycleAfter: { type: 'number' },
|
|
41
|
-
healthCheckInterval: { type: 'number' },
|
|
42
|
-
commandTimeout: { type: 'number' },
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
memory: {
|
|
46
|
-
type: 'object',
|
|
47
|
-
properties: {
|
|
48
|
-
backend: { type: 'string' },
|
|
49
|
-
cacheSizeMB: { type: 'number' },
|
|
50
|
-
syncInterval: { type: 'number' },
|
|
51
|
-
conflictResolution: { type: 'string' },
|
|
52
|
-
retentionDays: { type: 'number' },
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
coordination: {
|
|
56
|
-
type: 'object',
|
|
57
|
-
properties: {
|
|
58
|
-
maxRetries: { type: 'number' },
|
|
59
|
-
retryDelay: { type: 'number' },
|
|
60
|
-
deadlockDetection: { type: 'boolean' },
|
|
61
|
-
resourceTimeout: { type: 'number' },
|
|
62
|
-
messageTimeout: { type: 'number' },
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
mcp: {
|
|
66
|
-
type: 'object',
|
|
67
|
-
properties: {
|
|
68
|
-
transport: { type: 'string' },
|
|
69
|
-
port: { type: 'number' },
|
|
70
|
-
tlsEnabled: { type: 'boolean' },
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
logging: {
|
|
74
|
-
type: 'object',
|
|
75
|
-
properties: {
|
|
76
|
-
level: { type: 'string' },
|
|
77
|
-
format: { type: 'string' },
|
|
78
|
-
destination: { type: 'string' },
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const WORKFLOW_SCHEMA: ConfigSchema = {
|
|
84
|
-
name: { type: 'string', required: true },
|
|
85
|
-
description: { type: 'string' },
|
|
86
|
-
tasks: {
|
|
87
|
-
type: 'array',
|
|
88
|
-
required: true,
|
|
89
|
-
properties: {
|
|
90
|
-
id: { type: 'string', required: true },
|
|
91
|
-
type: { type: 'string', required: true },
|
|
92
|
-
description: { type: 'string', required: true },
|
|
93
|
-
dependencies: { type: 'array' },
|
|
94
|
-
assignTo: { type: 'string' },
|
|
95
|
-
priority: { type: 'string' },
|
|
96
|
-
timeout: { type: 'number' },
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
function validateType(value: any, expectedType: string): boolean {
|
|
102
|
-
switch (expectedType) {
|
|
103
|
-
case 'string':
|
|
104
|
-
return typeof value === 'string';
|
|
105
|
-
case 'number':
|
|
106
|
-
return typeof value === 'number';
|
|
107
|
-
case 'boolean':
|
|
108
|
-
return typeof value === 'boolean';
|
|
109
|
-
case 'array':
|
|
110
|
-
return Array.isArray(value);
|
|
111
|
-
case 'object':
|
|
112
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
113
|
-
default:
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function validateObject(obj: any, schema: ConfigSchema, path = ''): string[] {
|
|
119
|
-
const errors: string[] = [];
|
|
120
|
-
|
|
121
|
-
// Check required fields
|
|
122
|
-
for (const [key, spec] of Object.entries(schema)) {
|
|
123
|
-
if (spec.required && !(key in obj)) {
|
|
124
|
-
errors.push(`${path}${key} is required but missing`);
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (key in obj) {
|
|
129
|
-
const value = obj[key];
|
|
130
|
-
const currentPath = path ? `${path}${key}.` : `${key}.`;
|
|
131
|
-
|
|
132
|
-
if (!validateType(value, spec.type)) {
|
|
133
|
-
errors.push(`${path}${key} should be of type ${spec.type}, got ${typeof value}`);
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Validate nested objects
|
|
138
|
-
if (spec.type === 'object' && spec.properties) {
|
|
139
|
-
errors.push(...validateObject(value, spec.properties, currentPath));
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Validate array items
|
|
143
|
-
if (spec.type === 'array' && spec.properties && Array.isArray(value)) {
|
|
144
|
-
value.forEach((item, index) => {
|
|
145
|
-
if (typeof item === 'object') {
|
|
146
|
-
errors.push(...validateObject(item, spec.properties!, `${currentPath}[${index}].`));
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return errors;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function validateClaudeFlowConfig(config: any): string[] {
|
|
157
|
-
return validateObject(config, CLAUDE_FLOW_CONFIG_SCHEMA);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function validateWorkflow(workflow: any): string[] {
|
|
161
|
-
const errors = validateObject(workflow, WORKFLOW_SCHEMA);
|
|
162
|
-
|
|
163
|
-
// Additional workflow-specific validations
|
|
164
|
-
if (workflow.tasks && Array.isArray(workflow.tasks)) {
|
|
165
|
-
const taskIds = new Set<string>();
|
|
166
|
-
|
|
167
|
-
for (const [index, task] of workflow.tasks.entries()) {
|
|
168
|
-
// Check for duplicate task IDs
|
|
169
|
-
if (taskIds.has(task.id)) {
|
|
170
|
-
errors.push(`Duplicate task ID "${task.id}" found at index ${index}`);
|
|
171
|
-
} else {
|
|
172
|
-
taskIds.add(task.id);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Validate dependencies reference existing tasks
|
|
176
|
-
if (task.dependencies && Array.isArray(task.dependencies)) {
|
|
177
|
-
for (const dep of task.dependencies) {
|
|
178
|
-
if (!taskIds.has(dep) && !workflow.tasks.slice(0, index).some((t: any) => t.id === dep)) {
|
|
179
|
-
errors.push(`Task "${task.id}" depends on non-existent task "${dep}"`);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Validate priority values
|
|
185
|
-
if (task.priority && !['low', 'medium', 'high', 'critical'].includes(task.priority)) {
|
|
186
|
-
errors.push(`Task "${task.id}" has invalid priority "${task.priority}"`);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Validate timeout is positive
|
|
190
|
-
if (task.timeout && task.timeout <= 0) {
|
|
191
|
-
errors.push(`Task "${task.id}" has invalid timeout ${task.timeout}`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return errors;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
async function validateFile(filePath: string): Promise<ValidationResult> {
|
|
200
|
-
const result: ValidationResult = {
|
|
201
|
-
file: filePath,
|
|
202
|
-
valid: false,
|
|
203
|
-
errors: [],
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
try {
|
|
207
|
-
const content = await Deno.readTextFile(filePath);
|
|
208
|
-
const config = JSON.parse(content);
|
|
209
|
-
|
|
210
|
-
// Determine validation type based on file name/content
|
|
211
|
-
if (filePath.includes('workflow') || config.tasks) {
|
|
212
|
-
result.errors = validateWorkflow(config);
|
|
213
|
-
} else if (filePath.includes('config') || config.orchestrator) {
|
|
214
|
-
result.errors = validateClaudeFlowConfig(config);
|
|
215
|
-
} else {
|
|
216
|
-
result.errors.push('Unknown configuration file type');
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
result.valid = result.errors.length === 0;
|
|
220
|
-
} catch (error) {
|
|
221
|
-
if (error instanceof SyntaxError) {
|
|
222
|
-
result.errors.push(`Invalid JSON: ${error.message}`);
|
|
223
|
-
} else {
|
|
224
|
-
result.errors.push(`Failed to read file: ${error.message}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return result;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
async function main(): Promise<void> {
|
|
232
|
-
console.log('Validating example configurations...\n');
|
|
233
|
-
|
|
234
|
-
const results: ValidationResult[] = [];
|
|
235
|
-
|
|
236
|
-
// Find all JSON files in examples directory
|
|
237
|
-
for await (const entry of walk('./examples', { exts: ['.json'] })) {
|
|
238
|
-
if (entry.isFile) {
|
|
239
|
-
const result = await validateFile(entry.path);
|
|
240
|
-
results.push(result);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// Also check any config files in the root
|
|
245
|
-
const rootConfigFiles = ['claude-flow.config.json', 'config.json'];
|
|
246
|
-
for (const filename of rootConfigFiles) {
|
|
247
|
-
try {
|
|
248
|
-
await Deno.stat(filename);
|
|
249
|
-
const result = await validateFile(filename);
|
|
250
|
-
results.push(result);
|
|
251
|
-
} catch {
|
|
252
|
-
// File doesn't exist, skip
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
if (results.length === 0) {
|
|
257
|
-
console.log('No configuration files found to validate.');
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
// Report results
|
|
262
|
-
let hasErrors = false;
|
|
263
|
-
|
|
264
|
-
for (const result of results) {
|
|
265
|
-
if (result.valid) {
|
|
266
|
-
console.log(`✅ ${result.file}: Valid`);
|
|
267
|
-
} else {
|
|
268
|
-
console.log(`❌ ${result.file}: Invalid`);
|
|
269
|
-
for (const error of result.errors) {
|
|
270
|
-
console.log(` - ${error}`);
|
|
271
|
-
}
|
|
272
|
-
hasErrors = true;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
console.log(`\nValidated ${results.length} configuration files.`);
|
|
277
|
-
|
|
278
|
-
if (hasErrors) {
|
|
279
|
-
console.error('❌ Some configuration files have errors!');
|
|
280
|
-
Deno.exit(1);
|
|
281
|
-
} else {
|
|
282
|
-
console.log('✅ All configuration files are valid!');
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
if (import.meta.main) {
|
|
287
|
-
await main();
|
|
288
|
-
}
|