claude-flow-novice 2.2.4 → 2.2.5

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.
Files changed (288) hide show
  1. package/package.json +9 -8
  2. package/scripts/.claude-flow/metrics/agent-metrics.json +1 -0
  3. package/scripts/.claude-flow/metrics/performance.json +9 -0
  4. package/scripts/.claude-flow/metrics/task-metrics.json +10 -0
  5. package/scripts/CLEANUP_OPTIMIZATION_REPORT.json +312 -0
  6. package/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +387 -0
  7. package/scripts/CLEANUP_QUICK_START.md +268 -0
  8. package/scripts/CLEANUP_TEST_RESULTS.md +205 -0
  9. package/scripts/README.md +339 -0
  10. package/scripts/ace-query.sh +384 -0
  11. package/scripts/agent-token-analysis.js +430 -0
  12. package/scripts/auto-setup.js +332 -0
  13. package/scripts/build/README.md +167 -0
  14. package/scripts/build/build-config.js +27 -0
  15. package/scripts/build/build-prompt-copier.sh +30 -0
  16. package/scripts/build/performance-monitor.js +869 -0
  17. package/scripts/build/prepare-publish.js +150 -0
  18. package/scripts/build/typescript-fixer.js +621 -0
  19. package/scripts/build/unified-builder.sh +428 -0
  20. package/scripts/build/update-bin-version.js +32 -0
  21. package/scripts/build/validate-agents.js +238 -0
  22. package/scripts/build-index.js +43 -0
  23. package/scripts/build-orchestrator.js +320 -0
  24. package/scripts/check-routing-stats.cjs +122 -0
  25. package/scripts/ci-validation.js +375 -0
  26. package/scripts/cleanup-blocking-coordination.sh +420 -0
  27. package/scripts/cleanup-idle-sessions.sh +59 -0
  28. package/scripts/collect-build-metrics.js +65 -0
  29. package/scripts/demo/README.md +79 -0
  30. package/scripts/demo/autoscaling-demo-simplified.js +963 -0
  31. package/scripts/demo/comprehensive-dashboard-test.js +693 -0
  32. package/scripts/demo/confidence-log.js +87 -0
  33. package/scripts/demo/confidence-report.js +82 -0
  34. package/scripts/demo/demo-multi-swarm-coordination.js +325 -0
  35. package/scripts/demo/demo-production-deployment.js +399 -0
  36. package/scripts/demo/demo-visualization-system.js +149 -0
  37. package/scripts/demo/performance-analysis.cjs +71 -0
  38. package/scripts/demo/performance-analysis.js +71 -0
  39. package/scripts/demo/test-autoscaling-demo.js +314 -0
  40. package/scripts/dependency-optimizer.js +349 -0
  41. package/scripts/dependency-security-assessment.js +331 -0
  42. package/scripts/deploy-sdk.sh +176 -0
  43. package/scripts/deployment-readiness-report.json +179 -0
  44. package/scripts/dev/README.md +264 -0
  45. package/scripts/dev/claude-flow-wrapper.sh +35 -0
  46. package/scripts/dev/claude-monitor.py +419 -0
  47. package/scripts/dev/claude-sparc.sh +562 -0
  48. package/scripts/dev/claude-wrapper.sh +17 -0
  49. package/scripts/dev/demo-phase3-compliance.js +172 -0
  50. package/scripts/dev/demo-task-system.ts +224 -0
  51. package/scripts/dev/deployment-validator.js +315 -0
  52. package/scripts/dev/spawn-claude-terminal.sh +32 -0
  53. package/scripts/dev/start-portal.sh +506 -0
  54. package/scripts/dev/start-web-ui.js +15 -0
  55. package/scripts/dev/stop-portal.sh +311 -0
  56. package/scripts/dev/validate-examples.ts +288 -0
  57. package/scripts/dev/validate-phase2.cjs +451 -0
  58. package/scripts/dev/validate-phase2.js +785 -0
  59. package/scripts/dev/validate-phase3.cjs +208 -0
  60. package/scripts/dev/validate-security-remediation.js +1 -0
  61. package/scripts/ecosystem.config.cjs +90 -0
  62. package/scripts/fix-js-extensions.js +167 -0
  63. package/scripts/generate-basic-types.js +73 -0
  64. package/scripts/generate-changelog.js +318 -0
  65. package/scripts/git-hooks/pre-commit.sh +143 -0
  66. package/scripts/health-checks.js +634 -0
  67. package/scripts/hook-wrapper.sh +54 -0
  68. package/scripts/install/README.md +375 -0
  69. package/scripts/install/REDIS_SETUP_VALIDATION.json +245 -0
  70. package/scripts/install/check-prerequisites.js +303 -0
  71. package/scripts/install/config-wizard.js +606 -0
  72. package/scripts/install/dependency-checker.js +385 -0
  73. package/scripts/install/health-check.js +765 -0
  74. package/scripts/install/install.js +256 -0
  75. package/scripts/install/installation-benchmark.js +461 -0
  76. package/scripts/install/quick-install.js +720 -0
  77. package/scripts/install/quick-start-wizard.js +295 -0
  78. package/scripts/install/redis-cli.js +289 -0
  79. package/scripts/install/redis-install-guides.md +407 -0
  80. package/scripts/install/redis-setup.js +559 -0
  81. package/scripts/install/redis-test.js +278 -0
  82. package/scripts/install/service-manager.js +672 -0
  83. package/scripts/install/setup.js +832 -0
  84. package/scripts/install/uninstall.js +526 -0
  85. package/scripts/install/update.js +461 -0
  86. package/scripts/install-pre-commit-hook.sh +127 -0
  87. package/scripts/legacy/README.md +272 -0
  88. package/scripts/legacy/batch-fix-ts.sh +54 -0
  89. package/scripts/legacy/build-migration.sh +105 -0
  90. package/scripts/legacy/build-monitor.js +209 -0
  91. package/scripts/legacy/build-with-filter.sh +84 -0
  92. package/scripts/legacy/build-workaround.sh +71 -0
  93. package/scripts/legacy/fix-ts-advanced.js +358 -0
  94. package/scripts/legacy/fix-ts-final.sh +50 -0
  95. package/scripts/legacy/fix-ts-targeted.sh +49 -0
  96. package/scripts/legacy/fix-typescript-errors.js +305 -0
  97. package/scripts/legacy/force-build.sh +63 -0
  98. package/scripts/legacy/optimize-performance.js +400 -0
  99. package/scripts/legacy/performance-monitor.js +263 -0
  100. package/scripts/legacy/performance-monitoring.js +532 -0
  101. package/scripts/legacy/performance-test-runner.js +645 -0
  102. package/scripts/legacy/quick-fix-ts.js +281 -0
  103. package/scripts/legacy/safe-build.sh +63 -0
  104. package/scripts/memory-monitor-coordinator.js +322 -0
  105. package/scripts/migrate-to-sdk.sh +520 -0
  106. package/scripts/migration/QUICK-START.md +189 -0
  107. package/scripts/migration/QUICK-START.md.backup-1760135091363 +189 -0
  108. package/scripts/migration/README.md +464 -0
  109. package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +500 -0
  110. package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +500 -0
  111. package/scripts/migration/UPDATE-PATHS-README.md +464 -0
  112. package/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +464 -0
  113. package/scripts/migration/example-patterns.json +19 -0
  114. package/scripts/migration/install-arm64.js +78 -0
  115. package/scripts/migration/install.js +83 -0
  116. package/scripts/migration/migrate-hooks.js +173 -0
  117. package/scripts/migration/migration-examples.ts +318 -0
  118. package/scripts/migration/reorganize-workspace.js +504 -0
  119. package/scripts/migration/test-update-paths.js +359 -0
  120. package/scripts/migration/update-paths.js +664 -0
  121. package/scripts/migration/validate-migration.js +647 -0
  122. package/scripts/monitor-loop.sh +65 -0
  123. package/scripts/monitor-memory.sh +47 -0
  124. package/scripts/monitor-migration.js +339 -0
  125. package/scripts/monitor.py +43 -0
  126. package/scripts/monitoring/README.md +178 -0
  127. package/scripts/monitoring/alert-monitor.sh +220 -0
  128. package/scripts/monitoring/analyze-resources.sh +199 -0
  129. package/scripts/monitoring/dashboards/rate-limiting-dashboard.json +211 -0
  130. package/scripts/monitoring/dynamic-monitor.sh +85 -0
  131. package/scripts/monitoring/launch-stability-test.sh +184 -0
  132. package/scripts/monitoring/monitor-test.sh +93 -0
  133. package/scripts/monitoring/pre-test-validation.sh +208 -0
  134. package/scripts/monitoring/quick-test-alerting.sh +118 -0
  135. package/scripts/monitoring/quick-test-rate-limiting.sh +206 -0
  136. package/scripts/monitoring/rate-limiting-monitor.sh +380 -0
  137. package/scripts/monitoring/resource-monitor.sh +126 -0
  138. package/scripts/monitoring/stability-monitor.js +429 -0
  139. package/scripts/monitoring/test-monitor-quick.sh +54 -0
  140. package/scripts/monitoring/view-alerts.sh +307 -0
  141. package/scripts/npm-metrics-collector.js +482 -0
  142. package/scripts/npm-package-validation.cjs +299 -0
  143. package/scripts/optimization/build-optimizer.js +438 -0
  144. package/scripts/optimization/config-validator.js +761 -0
  145. package/scripts/optimization/test-optimization.js +432 -0
  146. package/scripts/optimization/unified-activation.js +839 -0
  147. package/scripts/optimize-package-swarm.js +54 -0
  148. package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
  149. package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
  150. package/scripts/performance/test-enhanced-backend.sh +504 -0
  151. package/scripts/performance-monitor.js +644 -0
  152. package/scripts/performance-test-runner.js +698 -0
  153. package/scripts/post-deployment-monitoring.js +350 -0
  154. package/scripts/post-edit-pipeline.js +2091 -0
  155. package/scripts/post-install-claude-md.js +78 -0
  156. package/scripts/postinstall.js +79 -0
  157. package/scripts/pre-publish-validation.cjs +212 -0
  158. package/scripts/pre-publish-validation.js +429 -0
  159. package/scripts/redis-lua/cleanup-blocking-coordination.lua +198 -0
  160. package/scripts/release-announcement.js +425 -0
  161. package/scripts/release-notification.js +248 -0
  162. package/scripts/release-rollback.js +376 -0
  163. package/scripts/release-validation.js +460 -0
  164. package/scripts/rollback-sdk.sh +66 -0
  165. package/scripts/run-production-validation.ts +590 -0
  166. package/scripts/run-stability-validation.sh +687 -0
  167. package/scripts/security/README.md +339 -0
  168. package/scripts/security/deployment-validation.cjs +279 -0
  169. package/scripts/security/envelope-encryption-confidence-report.cjs +422 -0
  170. package/scripts/security/install-git-hooks.sh +132 -0
  171. package/scripts/security/install-git-secrets.sh +295 -0
  172. package/scripts/security/rotate-api-keys.js +469 -0
  173. package/scripts/security/ruv-swarm-safe.js +74 -0
  174. package/scripts/security/security-audit.cjs +538 -0
  175. package/scripts/security/setup-redis-auth.sh +397 -0
  176. package/scripts/security/validate-envelope-encryption.cjs +340 -0
  177. package/scripts/security-scan.js +492 -0
  178. package/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +1 -0
  179. package/scripts/src/web/frontend/.claude-flow/metrics/performance.json +9 -0
  180. package/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +10 -0
  181. package/scripts/switch-api.sh +158 -0
  182. package/scripts/sync-agents.js +290 -0
  183. package/scripts/test/50-agent-test.js +625 -0
  184. package/scripts/test/NEW_STABILITY_TEST_GUIDE.md +407 -0
  185. package/scripts/test/README.md +236 -0
  186. package/scripts/test/STABILITY_TEST_EXAMPLE.md +347 -0
  187. package/scripts/test/STABILITY_TEST_README.md +480 -0
  188. package/scripts/test/agent-worker.js +309 -0
  189. package/scripts/test/ai-coordination-test.js +650 -0
  190. package/scripts/test/ai-mesh-coordination-test.js +416 -0
  191. package/scripts/test/check-links.ts +274 -0
  192. package/scripts/test/check-performance-regression.ts +168 -0
  193. package/scripts/test/cli-agent-coordination-test.js +313 -0
  194. package/scripts/test/coordinator-multilingual-test.js +396 -0
  195. package/scripts/test/coordinator-transparency-demo.js +585 -0
  196. package/scripts/test/coverage-report.ts +692 -0
  197. package/scripts/test/generate-swarm-tests.js +633 -0
  198. package/scripts/test/integration-test-validation.cjs +253 -0
  199. package/scripts/test/load-test-swarm.js +576 -0
  200. package/scripts/test/mesh-coordination-zero-overlap-test.js +740 -0
  201. package/scripts/test/multilingual-hello-world-test.js +390 -0
  202. package/scripts/test/quick-multilingual-demo.js +464 -0
  203. package/scripts/test/real-agent-test.js +312 -0
  204. package/scripts/test/run-phase3-compliance-tests.js +427 -0
  205. package/scripts/test/run-stability-test-examples.sh +292 -0
  206. package/scripts/test/stability-results/stability-metrics.jsonl +83 -0
  207. package/scripts/test/stability-results/stability-test-report.json +128 -0
  208. package/scripts/test/stability-results/stability-test.log +1827 -0
  209. package/scripts/test/stability-test-50-agents.js +734 -0
  210. package/scripts/test/test-batch-tasks.ts +29 -0
  211. package/scripts/test/test-byzantine-resolution.js +246 -0
  212. package/scripts/test/test-claude-spawn-options.sh +63 -0
  213. package/scripts/test/test-cli-wizard.js +331 -0
  214. package/scripts/test/test-comprehensive.js +401 -0
  215. package/scripts/test/test-coordination-features.ts +238 -0
  216. package/scripts/test/test-fallback-systems.js +276 -0
  217. package/scripts/test/test-init-command.ts +302 -0
  218. package/scripts/test/test-mcp.ts +251 -0
  219. package/scripts/test/test-runner.ts +568 -0
  220. package/scripts/test/test-swarm-integration.sh +92 -0
  221. package/scripts/test/test-swarm.ts +142 -0
  222. package/scripts/test/validation-summary.ts +408 -0
  223. package/scripts/test-cleanup-performance.sh +416 -0
  224. package/scripts/test-dashboard-auth.cjs +203 -0
  225. package/scripts/test-docker-deployment.sh +207 -0
  226. package/scripts/test-npm-package.cjs +167 -0
  227. package/scripts/test-provider-routing.cjs +226 -0
  228. package/scripts/test-routing-telemetry.cjs +147 -0
  229. package/scripts/test-runner.cjs +154 -0
  230. package/scripts/test-zai-10k.cjs +81 -0
  231. package/scripts/test-zai-api.cjs +191 -0
  232. package/scripts/test-zai-diagnostic.cjs +151 -0
  233. package/scripts/test-zai-final.cjs +128 -0
  234. package/scripts/test-zai-with-env.cjs +85 -0
  235. package/scripts/utils/README.md +261 -0
  236. package/scripts/utils/clean-build-artifacts.sh +94 -0
  237. package/scripts/utils/cleanup-root.sh +69 -0
  238. package/scripts/utils/fix-cliffy-imports.js +307 -0
  239. package/scripts/utils/fix-duplicate-imports.js +114 -0
  240. package/scripts/utils/fix-error-handling.cjs +70 -0
  241. package/scripts/utils/fix-import-paths.js +104 -0
  242. package/scripts/utils/fix-imports.js +116 -0
  243. package/scripts/utils/fix-shebang.js +78 -0
  244. package/scripts/utils/fix-test-modules.js +27 -0
  245. package/scripts/utils/fix-timezone-issue-246.js +200 -0
  246. package/scripts/utils/fix-ts-comprehensive.py +182 -0
  247. package/scripts/utils/fix-ts-targeted-batch.js +250 -0
  248. package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
  249. package/scripts/utils/simple-test-fixer.js +190 -0
  250. package/scripts/utils/validate-metrics-structure.cjs +144 -0
  251. package/scripts/validate-agent-hooks.js +506 -0
  252. package/scripts/validate-changelog.js +241 -0
  253. package/scripts/validate-coordination-cli.js +69 -0
  254. package/scripts/validate-coordination-toggle-integration.cjs +501 -0
  255. package/scripts/validate-docker-infrastructure.sh +502 -0
  256. package/scripts/validate-entry-points.js +300 -0
  257. package/scripts/validate-stage3-performance.ts +377 -0
  258. package/scripts/validate-template-bundling.js +180 -0
  259. package/scripts/validation/README.md +33 -0
  260. package/scripts/validation/acl-security-validation.cjs +214 -0
  261. package/scripts/validation/acl-security-validation.js +402 -0
  262. package/scripts/validation/byzantine-verification.js +407 -0
  263. package/scripts/validation/final-phase-2-consensus.cjs +219 -0
  264. package/scripts/validation/final-security-validation.js +791 -0
  265. package/scripts/validation/final-wasm-validation.cjs +840 -0
  266. package/scripts/validation/integration-test-analysis.js +105 -0
  267. package/scripts/validation/phase-0-comprehensive-validation.js +474 -0
  268. package/scripts/validation/phase-0-consensus-report.js +139 -0
  269. package/scripts/validation/phase-0-final-report.js +112 -0
  270. package/scripts/validation/phase-0-redis-consensus-report.js +129 -0
  271. package/scripts/validation/phase-0-validation-improved.js +490 -0
  272. package/scripts/validation/phase-0-validation-test.js +65 -0
  273. package/scripts/validation/phase-1-consensus-report.cjs +342 -0
  274. package/scripts/validation/phase-1-consensus-validation.cjs +551 -0
  275. package/scripts/validation/phase-1-consensus-validation.js +551 -0
  276. package/scripts/validation/phase-2-consensus-report.cjs +186 -0
  277. package/scripts/validation/phase-2-validation.cjs +171 -0
  278. package/scripts/validation/phase-2-validation.js +171 -0
  279. package/scripts/validation/phase-4-consensus-report.js +181 -0
  280. package/scripts/validation/phase-4-final-validation.js +351 -0
  281. package/scripts/validation/phase-5-consensus-report.cjs +113 -0
  282. package/scripts/validation/phase-5-consensus-report.js +113 -0
  283. package/scripts/validation/security-analysis.js +49 -0
  284. package/scripts/validation/security-validation.js +492 -0
  285. package/scripts/validation/simple-security-validation.js +464 -0
  286. package/scripts/verify-installation.js +112 -0
  287. package/scripts/verify-mcp-server.js +86 -0
  288. package/scripts/verify-sdk-phase1.cjs +293 -0
@@ -0,0 +1,428 @@
1
+ #!/bin/bash
2
+ # Unified Build Script - Consolidates 7+ build workaround scripts
3
+ # Phase 12: Script Consolidation - Build Operations
4
+ # Usage: ./unified-builder.sh [mode] [options]
5
+
6
+ set -euo pipefail
7
+
8
+ # Script metadata
9
+ SCRIPT_VERSION="1.0.0"
10
+ SCRIPT_NAME="unified-builder"
11
+ PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
12
+
13
+ # Configuration
14
+ BIN_DIR="${PROJECT_ROOT}/bin"
15
+ TEMP_DIR="${PROJECT_ROOT}/.tmp-build"
16
+ BACKUP_DIR="${PROJECT_ROOT}/.build-backups"
17
+ LOG_FILE="${PROJECT_ROOT}/.build-logs/$(date +%Y%m%d-%H%M%S).log"
18
+
19
+ # Build modes
20
+ declare -A BUILD_MODES=(
21
+ ["workaround"]="Build with deprecation warning workarounds"
22
+ ["filter"]="Build with filtered output (removes warnings)"
23
+ ["safe"]="Build with automatic backup and rollback"
24
+ ["force"]="Force build ignoring errors"
25
+ ["migration"]="Build with migration compatibility"
26
+ ["clean"]="Clean build artifacts before building"
27
+ ["monitor"]="Build with continuous monitoring"
28
+ )
29
+
30
+ # Colors and formatting
31
+ RED='\033[0;31m'
32
+ GREEN='\033[0;32m'
33
+ YELLOW='\033[1;33m'
34
+ BLUE='\033[0;34m'
35
+ PURPLE='\033[0;35m'
36
+ CYAN='\033[0;36m'
37
+ NC='\033[0m' # No Color
38
+
39
+ # Initialize logging
40
+ init_logging() {
41
+ mkdir -p "$(dirname "$LOG_FILE")"
42
+ echo "$(date '+%Y-%m-%d %H:%M:%S') - Starting unified build: $*" | tee "$LOG_FILE"
43
+ }
44
+
45
+ # Print usage information
46
+ print_usage() {
47
+ echo -e "${CYAN}Unified Builder v${SCRIPT_VERSION}${NC}"
48
+ echo -e "${BLUE}Consolidates multiple build scripts into mode-based operations${NC}"
49
+ echo ""
50
+ echo "Usage: $0 [mode] [options]"
51
+ echo ""
52
+ echo -e "${YELLOW}Available Modes:${NC}"
53
+ for mode in "${!BUILD_MODES[@]}"; do
54
+ printf " %-12s %s\n" "$mode" "${BUILD_MODES[$mode]}"
55
+ done
56
+ echo ""
57
+ echo -e "${YELLOW}Options:${NC}"
58
+ echo " --dry-run Show commands without executing"
59
+ echo " --verbose Show detailed output"
60
+ echo " --no-backup Skip backup creation"
61
+ echo " --timeout N Set timeout in seconds (default: 300)"
62
+ echo " --help Show this help"
63
+ echo ""
64
+ echo -e "${YELLOW}Examples:${NC}"
65
+ echo " $0 workaround # Build with deprecation workarounds"
66
+ echo " $0 safe --verbose # Safe build with detailed output"
67
+ echo " $0 clean filter # Clean then filter build"
68
+ echo ""
69
+ }
70
+
71
+ # Setup build environment
72
+ setup_environment() {
73
+ echo -e "${BLUE}šŸ”§ Setting up build environment...${NC}"
74
+
75
+ # Create necessary directories
76
+ mkdir -p "$BIN_DIR" "$TEMP_DIR" "$BACKUP_DIR"
77
+
78
+ # Set environment variables - check for Deno in multiple locations
79
+ if [[ -d "/home/codespace/.deno/bin" ]]; then
80
+ export PATH="/home/codespace/.deno/bin:$PATH"
81
+ elif [[ -d "$HOME/.deno/bin" ]]; then
82
+ export PATH="$HOME/.deno/bin:$PATH"
83
+ fi
84
+ export NODE_OPTIONS="${NODE_OPTIONS:-}"
85
+
86
+ # Clear any existing build artifacts if clean mode
87
+ if [[ "$1" == "clean" ]]; then
88
+ echo -e "${YELLOW}🧹 Cleaning build artifacts...${NC}"
89
+ rm -rf "$BIN_DIR"/* "$TEMP_DIR"/* 2>/dev/null || true
90
+ fi
91
+ }
92
+
93
+ # Create backup of working binary
94
+ create_backup() {
95
+ if [[ "${NO_BACKUP:-false}" == "true" ]]; then
96
+ return 0
97
+ fi
98
+
99
+ if [[ -f "$BIN_DIR/claude-flow" ]]; then
100
+ local backup_file="${BACKUP_DIR}/claude-flow-$(date +%Y%m%d-%H%M%S).backup"
101
+ echo -e "${CYAN}šŸ’¾ Creating backup: $(basename "$backup_file")${NC}"
102
+ cp "$BIN_DIR/claude-flow" "$backup_file"
103
+ ln -sf "$backup_file" "$BACKUP_DIR/claude-flow.latest-backup"
104
+ fi
105
+ }
106
+
107
+ # Restore from backup if build fails
108
+ restore_backup() {
109
+ local latest_backup="${BACKUP_DIR}/claude-flow.latest-backup"
110
+ if [[ -L "$latest_backup" && -f "$(readlink "$latest_backup")" ]]; then
111
+ echo -e "${YELLOW}šŸ”„ Restoring from backup...${NC}"
112
+ cp "$(readlink "$latest_backup")" "$BIN_DIR/claude-flow"
113
+ chmod +x "$BIN_DIR/claude-flow"
114
+ echo -e "${GREEN}āœ… Backup restored${NC}"
115
+ return 0
116
+ else
117
+ echo -e "${RED}āŒ No backup available${NC}"
118
+ return 1
119
+ fi
120
+ }
121
+
122
+ # Test binary functionality
123
+ test_binary() {
124
+ local binary_path="$1"
125
+
126
+ if [[ ! -f "$binary_path" ]]; then
127
+ return 1
128
+ fi
129
+
130
+ chmod +x "$binary_path"
131
+
132
+ # Test basic functionality
133
+ if timeout 10 "$binary_path" --version &>/dev/null; then
134
+ return 0
135
+ else
136
+ return 1
137
+ fi
138
+ }
139
+
140
+ # Build mode: workaround (handles deprecation warnings)
141
+ build_workaround() {
142
+ echo -e "${PURPLE}šŸ”Ø Building with deprecation workarounds...${NC}"
143
+
144
+ # Ensure dist directory exists
145
+ mkdir -p dist
146
+
147
+ # Try SWC with ignored warnings
148
+ echo -e "${CYAN}Trying SWC with warning suppression...${NC}"
149
+ local build_output
150
+ build_output=$(npm run build:swc 2>&1 || true)
151
+
152
+ # Filter out deprecation warnings from output
153
+ echo "$build_output" | grep -v "Import assertions are deprecated" | grep -v "^$" || true
154
+
155
+ # Check if build was successful by checking for compiled files
156
+ if [[ -d ".claude-flow-novice/dist" ]] && [[ $(find .claude-flow-novice/dist -name "*.js" | wc -l) -gt 0 ]]; then
157
+ echo -e "${GREEN}āœ… Build successful (workaround mode)${NC}"
158
+ return 0
159
+ else
160
+ echo -e "${RED}āŒ Build failed in workaround mode${NC}"
161
+ return 1
162
+ fi
163
+ }
164
+
165
+ # Build mode: filter (filters output warnings)
166
+ build_filter() {
167
+ echo -e "${PURPLE}šŸ”Ø Building with filtered output...${NC}"
168
+
169
+ local temp_script="${TEMP_DIR}/build-script.sh"
170
+
171
+ # Create temporary build script
172
+ cat > "$temp_script" << 'EOF'
173
+ #!/bin/bash
174
+ deno compile --allow-all --no-check --output bin/claude-flow src/cli/main.ts 2>&1
175
+ EOF
176
+ chmod +x "$temp_script"
177
+
178
+ # Run build and capture output
179
+ local build_output exit_code
180
+ build_output=$("$temp_script")
181
+ exit_code=$?
182
+
183
+ # Check if binary was created despite warnings
184
+ if [[ -f "$BIN_DIR/claude-flow" ]] && test_binary "$BIN_DIR/claude-flow"; then
185
+ echo -e "${GREEN}āœ… Binary created successfully (filter mode)${NC}"
186
+ return 0
187
+ else
188
+ # Show filtered output on failure
189
+ echo "$build_output" | grep -v "Import assertions are deprecated" | head -20
190
+ return 1
191
+ fi
192
+ }
193
+
194
+ # Build mode: safe (with backup and rollback)
195
+ build_safe() {
196
+ echo -e "${PURPLE}šŸ”Ø Safe build with backup...${NC}"
197
+
198
+ create_backup
199
+
200
+ # Ensure dist directory exists
201
+ mkdir -p dist
202
+
203
+ # Try SWC build first (most reliable for TypeScript)
204
+ echo -e "${CYAN}Trying SWC build...${NC}"
205
+ if npm run build:swc &>>"$LOG_FILE"; then
206
+ echo -e "${GREEN}āœ… Safe build successful with SWC${NC}"
207
+ return 0
208
+ else
209
+ echo -e "${YELLOW}āš ļø SWC build failed, trying alternative builds...${NC}"
210
+
211
+ # Try TypeScript compiler
212
+ echo -e "${CYAN}Trying TypeScript build...${NC}"
213
+ if npm run build:esm &>>"$LOG_FILE"; then
214
+ echo -e "${GREEN}āœ… Safe build successful with TypeScript${NC}"
215
+ return 0
216
+ else
217
+ echo -e "${YELLOW}āš ļø TypeScript build failed, trying workaround...${NC}"
218
+ if build_workaround; then
219
+ return 0
220
+ else
221
+ echo -e "${RED}āŒ All build attempts failed${NC}"
222
+ restore_backup
223
+ return 1
224
+ fi
225
+ fi
226
+ fi
227
+ }
228
+
229
+ # Build mode: force (ignores errors)
230
+ build_force() {
231
+ echo -e "${PURPLE}šŸ”Ø Force build (ignoring errors)...${NC}"
232
+
233
+ # Try multiple build strategies
234
+ local strategies=("npm run build:swc" "npm run build:legacy" "build_workaround")
235
+
236
+ for strategy in "${strategies[@]}"; do
237
+ echo -e "${CYAN}Trying: $strategy${NC}"
238
+
239
+ if [[ "$strategy" == "build_workaround" ]]; then
240
+ if build_workaround; then
241
+ echo -e "${GREEN}āœ… Force build successful with workaround${NC}"
242
+ return 0
243
+ fi
244
+ else
245
+ if $strategy &>>"$LOG_FILE"; then
246
+ echo -e "${GREEN}āœ… Force build successful with: $strategy${NC}"
247
+ return 0
248
+ fi
249
+ fi
250
+ done
251
+
252
+ echo -e "${RED}āŒ All force build attempts failed${NC}"
253
+ return 1
254
+ }
255
+
256
+ # Build mode: migration (compatibility mode)
257
+ build_migration() {
258
+ echo -e "${PURPLE}šŸ”Ø Migration compatibility build...${NC}"
259
+
260
+ # Ensure legacy compatibility
261
+ if [[ ! -f "config/typescript/tsconfig.json" ]]; then
262
+ echo -e "${YELLOW}āš ļø Missing TypeScript config, using defaults${NC}"
263
+ fi
264
+
265
+ # Run legacy build
266
+ if npm run build:legacy &>>"$LOG_FILE"; then
267
+ echo -e "${GREEN}āœ… Migration build successful${NC}"
268
+ return 0
269
+ else
270
+ echo -e "${YELLOW}āš ļø Legacy build failed, trying modern build${NC}"
271
+ return build_safe
272
+ fi
273
+ }
274
+
275
+ # Build mode: monitor (with continuous monitoring)
276
+ build_monitor() {
277
+ echo -e "${PURPLE}šŸ”Ø Build with monitoring...${NC}"
278
+
279
+ # Start monitoring in background
280
+ {
281
+ while true; do
282
+ sleep 30
283
+ if [[ -f "$BIN_DIR/claude-flow" ]]; then
284
+ echo "$(date '+%H:%M:%S') - Binary status: OK" >> "$LOG_FILE"
285
+ else
286
+ echo "$(date '+%H:%M:%S') - Binary status: MISSING" >> "$LOG_FILE"
287
+ fi
288
+ done
289
+ } &
290
+ local monitor_pid=$!
291
+
292
+ # Cleanup function
293
+ cleanup_monitor() {
294
+ kill $monitor_pid 2>/dev/null || true
295
+ }
296
+ trap cleanup_monitor EXIT
297
+
298
+ # Run build
299
+ if build_safe; then
300
+ echo -e "${GREEN}āœ… Monitored build successful${NC}"
301
+ echo -e "${CYAN}šŸ“Š Monitor log: $LOG_FILE${NC}"
302
+ return 0
303
+ else
304
+ return 1
305
+ fi
306
+ }
307
+
308
+ # Main execution function
309
+ main() {
310
+ local modes=()
311
+ local dry_run=false
312
+ local verbose=false
313
+ local timeout=300
314
+
315
+ # Parse arguments
316
+ while [[ $# -gt 0 ]]; do
317
+ case $1 in
318
+ --dry-run)
319
+ dry_run=true
320
+ shift
321
+ ;;
322
+ --verbose)
323
+ verbose=true
324
+ shift
325
+ ;;
326
+ --no-backup)
327
+ export NO_BACKUP=true
328
+ shift
329
+ ;;
330
+ --timeout)
331
+ timeout="$2"
332
+ shift 2
333
+ ;;
334
+ --help|-h)
335
+ print_usage
336
+ exit 0
337
+ ;;
338
+ *)
339
+ if [[ "${BUILD_MODES[$1]:-}" ]]; then
340
+ modes+=("$1")
341
+ else
342
+ echo -e "${RED}āŒ Unknown mode: $1${NC}"
343
+ print_usage
344
+ exit 1
345
+ fi
346
+ shift
347
+ ;;
348
+ esac
349
+ done
350
+
351
+ # Default mode if none specified
352
+ if [[ ${#modes[@]} -eq 0 ]]; then
353
+ modes=("safe")
354
+ fi
355
+
356
+ # Initialize
357
+ init_logging "${modes[@]}"
358
+
359
+ if [[ "$verbose" == "true" ]]; then
360
+ set -x
361
+ fi
362
+
363
+ # Dry run mode
364
+ if [[ "$dry_run" == "true" ]]; then
365
+ echo -e "${CYAN}šŸ” Dry run mode - showing planned operations:${NC}"
366
+ for mode in "${modes[@]}"; do
367
+ echo -e "${YELLOW}Would execute: build_${mode}${NC}"
368
+ done
369
+ exit 0
370
+ fi
371
+
372
+ # Setup environment
373
+ setup_environment "${modes[0]}"
374
+
375
+ # Execute build modes in sequence
376
+ for mode in "${modes[@]}"; do
377
+ echo -e "\n${BLUE}šŸš€ Executing build mode: $mode${NC}"
378
+
379
+ # Execute build mode (remove timeout functionality that's causing issues)
380
+ case $mode in
381
+ workaround) build_workaround ;;
382
+ filter) build_filter ;;
383
+ safe) build_safe ;;
384
+ force) build_force ;;
385
+ migration) build_migration ;;
386
+ clean) setup_environment clean ;;
387
+ monitor) build_monitor ;;
388
+ *)
389
+ echo -e "${RED}āŒ Unknown mode: $mode${NC}"
390
+ exit 1
391
+ ;;
392
+ esac
393
+
394
+ local exit_code=$?
395
+ if [[ $exit_code -ne 0 ]]; then
396
+ echo -e "${RED}āŒ Build mode '$mode' failed with exit code $exit_code${NC}"
397
+ echo -e "${CYAN}šŸ“Š Build log: $LOG_FILE${NC}"
398
+ exit $exit_code
399
+ fi
400
+ done
401
+
402
+ # Final verification - check for compiled JavaScript modules instead of binary
403
+ if [[ -d ".claude-flow-novice/dist" ]] && [[ $(find .claude-flow-novice/dist -name "*.js" | wc -l) -gt 0 ]]; then
404
+ echo -e "\n${GREEN}šŸŽ‰ All build operations completed successfully!${NC}"
405
+ echo -e "${CYAN}šŸ“ Compiled modules: .claude-flow-novice/dist/src/cli/main.js${NC}"
406
+ echo -e "${CYAN}šŸ“Š Build log: $LOG_FILE${NC}"
407
+
408
+ # Count compiled files
409
+ local js_files=$(find .claude-flow-novice/dist -name "*.js" | wc -l)
410
+ echo -e "${CYAN}šŸ“ˆ Generated $js_files JavaScript files${NC}"
411
+
412
+ # Show main entry point
413
+ if [[ -f ".claude-flow-novice/dist/src/cli/main.js" ]]; then
414
+ echo -e "${GREEN}āœ… Main CLI entry point: .claude-flow-novice/dist/src/cli/main.js${NC}"
415
+ fi
416
+
417
+ # Coordination hook
418
+ if command -v npx >/dev/null; then
419
+ npx claude-flow@alpha hooks post-edit --file "unified-builder" --memory-key "swarm/phase12/build-success" 2>/dev/null || true
420
+ fi
421
+ else
422
+ echo -e "\n${RED}āŒ Build verification failed - no compiled JavaScript files found${NC}"
423
+ exit 1
424
+ fi
425
+ }
426
+
427
+ # Execute main function with all arguments
428
+ main "$@"
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Updates the VERSION in bin/claude-flow shell script to match package.json
5
+ */
6
+
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+ import { fileURLToPath } from 'url';
10
+
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+
14
+ // Read package.json
15
+ const packagePath = path.join(__dirname, '..', 'package.json');
16
+ const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
17
+ const version = packageJson.version;
18
+
19
+ // Read bin/claude-flow
20
+ const binPath = path.join(__dirname, '..', 'bin', 'claude-flow');
21
+ let binContent = fs.readFileSync(binPath, 'utf8');
22
+
23
+ // Update VERSION line
24
+ binContent = binContent.replace(
25
+ /^VERSION=".*"$/m,
26
+ `VERSION="${version}"`
27
+ );
28
+
29
+ // Write back
30
+ fs.writeFileSync(binPath, binContent);
31
+
32
+ console.log(`āœ… Updated bin/claude-flow VERSION to ${version}`);
@@ -0,0 +1,238 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Agent Validation Script
5
+ * Validates Claude Code agent definitions before package distribution
6
+ */
7
+
8
+ import fs from 'fs-extra';
9
+ import path from 'path';
10
+ import yaml from 'yaml';
11
+ import { glob } from 'glob';
12
+
13
+ const VALID_TOOLS = [
14
+ 'Read', 'Write', 'Edit', 'MultiEdit', 'Bash', 'Glob', 'Grep',
15
+ 'WebSearch', 'WebFetch', 'TodoWrite', 'Task', 'SlashCommand',
16
+ // MCP coordination tools
17
+ 'mcp__claude-flow-novice__swarm_init', 'mcp__claude-flow-novice__agent_spawn',
18
+ 'mcp__claude-flow-novice__task_orchestrate', 'mcp__claude-flow-novice__memory_usage'
19
+ ];
20
+
21
+ const VALID_MODELS = ['sonnet', 'haiku', 'opus', 'inherit'];
22
+
23
+ class AgentValidator {
24
+ constructor() {
25
+ this.errors = [];
26
+ this.warnings = [];
27
+ this.agentCount = 0;
28
+ }
29
+
30
+ log(message, type = 'info') {
31
+ const timestamp = new Date().toISOString();
32
+ const prefix = type === 'error' ? 'āŒ' : type === 'warning' ? 'āš ļø' : 'ā„¹ļø';
33
+ console.log(`${prefix} [${timestamp}] ${message}`);
34
+ }
35
+
36
+ addError(file, message) {
37
+ this.errors.push({ file, message });
38
+ this.log(`Error in ${file}: ${message}`, 'error');
39
+ }
40
+
41
+ addWarning(file, message) {
42
+ this.warnings.push({ file, message });
43
+ this.log(`Warning in ${file}: ${message}`, 'warning');
44
+ }
45
+
46
+ validateAgentFile(filePath) {
47
+ const relativePath = path.relative(process.cwd(), filePath);
48
+
49
+ try {
50
+ const content = fs.readFileSync(filePath, 'utf8');
51
+
52
+ // Check if file has YAML frontmatter
53
+ if (!content.startsWith('---')) {
54
+ this.addError(relativePath, 'Missing YAML frontmatter (should start with ---)');
55
+ return false;
56
+ }
57
+
58
+ // Extract frontmatter
59
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
60
+ if (!frontmatterMatch) {
61
+ this.addError(relativePath, 'Invalid YAML frontmatter format');
62
+ return false;
63
+ }
64
+
65
+ let frontmatter;
66
+ try {
67
+ frontmatter = yaml.parse(frontmatterMatch[1]);
68
+ } catch (error) {
69
+ this.addError(relativePath, `Invalid YAML syntax: ${error.message}`);
70
+ return false;
71
+ }
72
+
73
+ // Validate required fields
74
+ this.validateRequiredFields(relativePath, frontmatter);
75
+ this.validateTools(relativePath, frontmatter);
76
+ this.validateModel(relativePath, frontmatter);
77
+ this.validateNaming(relativePath, frontmatter, filePath);
78
+ this.validateSystemPrompt(relativePath, content);
79
+
80
+ this.agentCount++;
81
+ return true;
82
+
83
+ } catch (error) {
84
+ this.addError(relativePath, `Failed to read file: ${error.message}`);
85
+ return false;
86
+ }
87
+ }
88
+
89
+ validateRequiredFields(file, frontmatter) {
90
+ const required = ['name', 'description'];
91
+
92
+ for (const field of required) {
93
+ if (!frontmatter[field]) {
94
+ this.addError(file, `Missing required field: ${field}`);
95
+ } else if (typeof frontmatter[field] !== 'string') {
96
+ this.addError(file, `Field '${field}' must be a string`);
97
+ }
98
+ }
99
+
100
+ // Validate description is meaningful
101
+ if (frontmatter.description && frontmatter.description.length < 20) {
102
+ this.addWarning(file, 'Description should be more descriptive (at least 20 characters)');
103
+ }
104
+ }
105
+
106
+ validateTools(file, frontmatter) {
107
+ if (frontmatter.tools) {
108
+ if (typeof frontmatter.tools === 'string') {
109
+ // Convert comma-separated string to array
110
+ const tools = frontmatter.tools.split(',').map(t => t.trim());
111
+ this.validateToolArray(file, tools);
112
+ } else if (Array.isArray(frontmatter.tools)) {
113
+ this.validateToolArray(file, frontmatter.tools);
114
+ } else {
115
+ this.addError(file, 'Tools field must be a string or array');
116
+ }
117
+ } else {
118
+ this.addWarning(file, 'No tools specified - agent will inherit all tools');
119
+ }
120
+ }
121
+
122
+ validateToolArray(file, tools) {
123
+ for (const tool of tools) {
124
+ if (!VALID_TOOLS.includes(tool)) {
125
+ this.addWarning(file, `Unknown tool: ${tool}. Valid tools: ${VALID_TOOLS.join(', ')}`);
126
+ }
127
+ }
128
+ }
129
+
130
+ validateModel(file, frontmatter) {
131
+ if (frontmatter.model && !VALID_MODELS.includes(frontmatter.model)) {
132
+ this.addWarning(file, `Unknown model: ${frontmatter.model}. Valid models: ${VALID_MODELS.join(', ')}`);
133
+ }
134
+ }
135
+
136
+ validateNaming(file, frontmatter, filePath) {
137
+ const fileName = path.basename(filePath, '.md');
138
+
139
+ // Check naming convention
140
+ if (!/^[a-z]+(-[a-z]+)*$/.test(fileName)) {
141
+ this.addError(file, 'File name should use lowercase-with-hyphens format');
142
+ }
143
+
144
+ // Check name matches file name
145
+ if (frontmatter.name && frontmatter.name !== fileName) {
146
+ this.addWarning(file, `Agent name '${frontmatter.name}' doesn't match file name '${fileName}'`);
147
+ }
148
+ }
149
+
150
+ validateSystemPrompt(file, content) {
151
+ // Extract system prompt (everything after frontmatter)
152
+ const promptMatch = content.match(/^---\n[\s\S]*?\n---\n\n?([\s\S]*)$/);
153
+ if (!promptMatch || !promptMatch[1].trim()) {
154
+ this.addError(file, 'Missing system prompt after YAML frontmatter');
155
+ return;
156
+ }
157
+
158
+ const prompt = promptMatch[1].trim();
159
+
160
+ // Check prompt length
161
+ if (prompt.length < 100) {
162
+ this.addWarning(file, 'System prompt should be more detailed (at least 100 characters)');
163
+ }
164
+
165
+ // Check for key elements
166
+ const hasExpertise = /expertise|expert|specialist|specializ/i.test(prompt);
167
+ const hasMethodology = /methodology|approach|process|workflow/i.test(prompt);
168
+ const hasUsage = /use this|when to|should be used/i.test(prompt);
169
+
170
+ if (!hasExpertise) {
171
+ this.addWarning(file, 'System prompt should define agent expertise');
172
+ }
173
+ if (!hasMethodology) {
174
+ this.addWarning(file, 'System prompt should describe methodology or approach');
175
+ }
176
+ if (!hasUsage) {
177
+ this.addWarning(file, 'System prompt should explain when to use this agent');
178
+ }
179
+ }
180
+
181
+ async validateAll() {
182
+ this.log('Starting agent validation...');
183
+
184
+ try {
185
+ // Find all agent files
186
+ const agentFiles = await glob('.claude/agents/**/*.md');
187
+
188
+ if (agentFiles.length === 0) {
189
+ this.addError('validation', 'No agent files found in .claude/agents/');
190
+ return false;
191
+ }
192
+
193
+ this.log(`Found ${agentFiles.length} agent files to validate`);
194
+
195
+ // Validate each file
196
+ for (const file of agentFiles) {
197
+ this.validateAgentFile(file);
198
+ }
199
+
200
+ // Summary
201
+ this.log(`\nšŸ“Š Validation Summary:`);
202
+ this.log(` Agents validated: ${this.agentCount}`);
203
+ this.log(` Errors: ${this.errors.length}`);
204
+ this.log(` Warnings: ${this.warnings.length}`);
205
+
206
+ if (this.errors.length > 0) {
207
+ this.log('\nāŒ Validation failed with errors:', 'error');
208
+ return false;
209
+ }
210
+
211
+ if (this.warnings.length > 0) {
212
+ this.log('\nāš ļø Validation passed with warnings', 'warning');
213
+ } else {
214
+ this.log('\nāœ… All agents passed validation!');
215
+ }
216
+
217
+ return true;
218
+
219
+ } catch (error) {
220
+ this.addError('validation', `Validation failed: ${error.message}`);
221
+ return false;
222
+ }
223
+ }
224
+ }
225
+
226
+ // CLI usage
227
+ if (import.meta.url === `file://${process.argv[1]}`) {
228
+ const validator = new AgentValidator();
229
+
230
+ validator.validateAll().then(success => {
231
+ process.exit(success ? 0 : 1);
232
+ }).catch(error => {
233
+ console.error('āŒ Validation crashed:', error);
234
+ process.exit(1);
235
+ });
236
+ }
237
+
238
+ export default AgentValidator;