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,78 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Post-Install Script for CLAUDE.md Protection
5
+ *
6
+ * This script runs after NPX install to safely handle CLAUDE.md generation
7
+ * without overwriting user customizations
8
+ */
9
+
10
+ import { NpxClaudeMdProtection } from '../src/npx/claude-md-protection.js';
11
+ import { execSync } from 'child_process';
12
+ import path from 'path';
13
+
14
+ async function postInstall() {
15
+ try {
16
+ // Determine the target project path
17
+ // When running via NPX, we want to affect the user's current directory
18
+ const targetPath = process.env.INIT_CWD || process.cwd();
19
+
20
+ console.log('🚀 Claude Flow Novice post-install...');
21
+ console.log(`📁 Target directory: ${targetPath}`);
22
+
23
+ // Run the protection system
24
+ const protection = new NpxClaudeMdProtection(targetPath);
25
+ const result = await protection.protectAndGenerate();
26
+
27
+ if (result.success) {
28
+ console.log('✅ CLAUDE.md setup completed successfully');
29
+
30
+ if (result.action === 'npx-protection') {
31
+ console.log('🛡️ Protection mode: Your existing CLAUDE.md is safe');
32
+ } else {
33
+ console.log('📄 New CLAUDE.md created for your project');
34
+ }
35
+ } else {
36
+ console.warn('⚠️ CLAUDE.md setup encountered issues:', result.error);
37
+ }
38
+
39
+ // Auto-setup MCP server if Claude Code is installed
40
+ await setupMcpIfAvailable();
41
+
42
+ } catch (error) {
43
+ console.error('❌ Post-install failed:', error.message);
44
+ // Don't fail the entire install if this fails
45
+ process.exit(0);
46
+ }
47
+ }
48
+
49
+ async function setupMcpIfAvailable() {
50
+ try {
51
+ // Check if Claude Code CLI is available
52
+ execSync('which claude', { stdio: 'ignore' });
53
+
54
+ console.log('\n🔧 Claude Code detected - setting up MCP server...');
55
+
56
+ // Add claude-flow-novice MCP server
57
+ execSync('claude mcp add claude-flow-novice npx claude-flow-novice mcp start', {
58
+ stdio: 'inherit'
59
+ });
60
+
61
+ console.log('✅ MCP server added successfully!');
62
+ console.log('🎯 You can now use claude-flow-novice tools in Claude Code');
63
+
64
+ } catch (error) {
65
+ // Claude Code not installed or MCP add failed - that's fine
66
+ console.log('\n💡 To use claude-flow-novice with Claude Code:');
67
+ console.log(' 1. Install Claude Code if you haven\'t: npm install -g @anthropic-ai/claude-code');
68
+ console.log(' 2. Add MCP server: claude mcp add claude-flow-novice npx claude-flow-novice mcp start');
69
+ console.log(' 3. Or run: npx claude-flow-novice init');
70
+ }
71
+ }
72
+
73
+ // Execute if called directly
74
+ if (import.meta.url === `file://${process.argv[1]}`) {
75
+ postInstall();
76
+ }
77
+
78
+ export default postInstall;
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Post-installation script for claude-flow-novice
5
+ * Copies .claude directory from node_modules to project root
6
+ */
7
+
8
+ import { existsSync, copySync, mkdirSync } from 'fs';
9
+ import { dirname, join } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+
15
+ /**
16
+ * Copy .claude directory from node_modules to project root
17
+ */
18
+ function copyClaudeDirectory() {
19
+ try {
20
+ const projectRoot = process.cwd();
21
+ const sourceDir = join(__dirname, '../dist/.claude');
22
+ const targetDir = join(projectRoot, '.claude');
23
+
24
+ console.log('🚀 claude-flow-novice post-install: Setting up .claude directory...');
25
+
26
+ // Check if source directory exists
27
+ if (!existsSync(sourceDir)) {
28
+ console.error('❌ Source .claude directory not found at:', sourceDir);
29
+ console.log(' This indicates a broken npm package installation.');
30
+ process.exit(1);
31
+ }
32
+
33
+ // Create target directory if it doesn't exist
34
+ if (!existsSync(targetDir)) {
35
+ mkdirSync(targetDir, { recursive: true });
36
+ console.log('✅ Created .claude directory in project root');
37
+ }
38
+
39
+ // Copy all contents from source to target
40
+ copySync(sourceDir, targetDir, {
41
+ overwrite: true,
42
+ recursive: true
43
+ });
44
+
45
+ console.log('✅ Successfully copied .claude directory to project root');
46
+ console.log('📁 Location:', targetDir);
47
+ console.log('🎯 Ready to use: npx claude-flow-novice --help');
48
+
49
+ // Verify key components were copied
50
+ const agentsDir = join(targetDir, 'agents');
51
+ const commandsDir = join(targetDir, 'commands');
52
+ const coreDir = join(targetDir, 'core');
53
+
54
+ if (existsSync(agentsDir)) {
55
+ const agentFiles = require('fs').readdirSync(agentsDir).length;
56
+ console.log(`📋 Agents: ${agentFiles} files copied`);
57
+ }
58
+
59
+ if (existsSync(commandsDir)) {
60
+ const commandFiles = require('fs').readdirSync(commandsDir).length;
61
+ console.log(`⚡ Commands: ${commandFiles} files copied`);
62
+ }
63
+
64
+ if (existsSync(coreDir)) {
65
+ const coreFiles = require('fs').readdirSync(coreDir).length;
66
+ console.log(`🔧 Core: ${coreFiles} files copied`);
67
+ }
68
+
69
+ console.log('🎉 Installation complete! claude-flow-novice is ready to use.');
70
+
71
+ } catch (error) {
72
+ console.error('❌ Post-install script failed:', error.message);
73
+ console.error(' Please run manually: cp -r node_modules/.claude-flow-novice/dist/.claude .claude');
74
+ process.exit(1);
75
+ }
76
+ }
77
+
78
+ // Run the installation
79
+ copyClaudeDirectory();
@@ -0,0 +1,212 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Pre-Publish Validation Suite
5
+ * Validates all critical functionality before npm package publication
6
+ */
7
+
8
+ const { execSync } = require('child_process');
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+
12
+ const TIMEOUT = 60000; // 60 seconds per test suite
13
+
14
+ const TEST_SUITES = [
15
+ {
16
+ name: '1. Post-Edit Pipeline Functionality',
17
+ type: 'manual',
18
+ validate: () => {
19
+ const pipelinePath = 'config/hooks/post-edit-pipeline.js';
20
+ if (!fs.existsSync(pipelinePath)) {
21
+ throw new Error(`Post-edit pipeline not found at ${pipelinePath}`);
22
+ }
23
+
24
+ // Test basic execution (create test file first)
25
+ const testFile = 'test-validation-temp.js';
26
+ fs.writeFileSync(testFile, 'console.log("test");');
27
+
28
+ try {
29
+ execSync(`node ${pipelinePath} ${testFile}`, {
30
+ timeout: 30000,
31
+ stdio: 'pipe'
32
+ });
33
+ fs.unlinkSync(testFile);
34
+ return { status: 'PASS', message: 'Pipeline executable and functional' };
35
+ } catch (error) {
36
+ if (fs.existsSync(testFile)) fs.unlinkSync(testFile);
37
+ return { status: 'WARN', message: `Pipeline execution failed: ${error.message.substring(0, 100)}` };
38
+ }
39
+ }
40
+ },
41
+ {
42
+ name: '2. Full-Stack Swarm Tests',
43
+ type: 'jest',
44
+ tests: [
45
+ 'tests/swarm-fullstack/backend-integration.test.ts',
46
+ 'tests/swarm-fullstack/frontend-integration.test.ts',
47
+ 'tests/swarm-fullstack/workflows/iterative-workflow.test.ts'
48
+ ]
49
+ },
50
+ {
51
+ name: '3. CFN Loop Core Tests',
52
+ type: 'jest',
53
+ tests: [
54
+ 'tests/unit/cfn-loop/epic-iteration-limits.test.ts',
55
+ 'tests/unit/cfn-loop/retry-todo-manager.test.ts',
56
+ 'tests/integration/cfn-loop/cfn-loop-orchestrator.test.ts'
57
+ ]
58
+ },
59
+ {
60
+ name: '4. CFN Loop Slash Commands',
61
+ type: 'jest',
62
+ tests: [
63
+ 'tests/integration/slash-commands/cfn-loop-commands.test.ts',
64
+ 'tests/integration/slash-commands/cfn-loop-integration.test.js'
65
+ ]
66
+ },
67
+ {
68
+ name: '5. Tiered Structure with z.ai',
69
+ type: 'manual',
70
+ validate: () => {
71
+ const required = [
72
+ 'src/providers/tiered-router.ts',
73
+ 'src/providers/zai-provider.ts'
74
+ ];
75
+
76
+ const missing = required.filter(file => !fs.existsSync(file));
77
+ if (missing.length > 0) {
78
+ return { status: 'FAIL', message: `Missing files: ${missing.join(', ')}` };
79
+ }
80
+
81
+ // Check test file exists
82
+ const testFile = 'tests/providers/tiered-routing.test.ts';
83
+ if (!fs.existsSync(testFile)) {
84
+ return { status: 'WARN', message: `Test file not found: ${testFile}` };
85
+ }
86
+
87
+ return { status: 'PASS', message: 'Tiered routing files present' };
88
+ }
89
+ },
90
+ {
91
+ name: '6. SDK Process with Agents',
92
+ type: 'manual',
93
+ validate: () => {
94
+ const sdkTests = 'tests/coordination/v2/unit/sdk';
95
+ if (!fs.existsSync(sdkTests)) {
96
+ return { status: 'WARN', message: 'SDK tests directory not found (still in development)' };
97
+ }
98
+
99
+ const testFiles = fs.readdirSync(sdkTests, { recursive: true })
100
+ .filter(file => file.endsWith('.test.ts') || file.endsWith('.test.js'));
101
+
102
+ return {
103
+ status: 'INFO',
104
+ message: `SDK in development - ${testFiles.length} test files found`
105
+ };
106
+ }
107
+ }
108
+ ];
109
+
110
+ function runJestTest(testPath) {
111
+ if (!fs.existsSync(testPath)) {
112
+ return { status: 'SKIP', message: 'Test file not found' };
113
+ }
114
+
115
+ try {
116
+ execSync(
117
+ `NODE_OPTIONS='--experimental-vm-modules' npm test -- ${testPath} --bail --maxWorkers=1 --forceExit --testTimeout=30000`,
118
+ {
119
+ timeout: TIMEOUT,
120
+ stdio: 'pipe'
121
+ }
122
+ );
123
+ return { status: 'PASS', message: 'All tests passed' };
124
+ } catch (error) {
125
+ const output = error.stdout?.toString() || error.stderr?.toString() || error.message;
126
+ const hasTests = output.includes('Test Suites:') || output.includes('Tests:');
127
+
128
+ if (!hasTests) {
129
+ return { status: 'SKIP', message: 'No executable tests found' };
130
+ }
131
+
132
+ return { status: 'FAIL', message: output.substring(0, 200) };
133
+ }
134
+ }
135
+
136
+ function formatResult(status) {
137
+ const colors = {
138
+ PASS: '\x1b[32m✓\x1b[0m',
139
+ FAIL: '\x1b[31m✗\x1b[0m',
140
+ WARN: '\x1b[33m⚠\x1b[0m',
141
+ INFO: '\x1b[36mℹ\x1b[0m',
142
+ SKIP: '\x1b[90m−\x1b[0m'
143
+ };
144
+ return colors[status] || status;
145
+ }
146
+
147
+ async function main() {
148
+ console.log('\n🚀 Pre-Publish Validation Suite\n');
149
+ console.log('=' .repeat(80) + '\n');
150
+
151
+ const results = [];
152
+
153
+ for (const suite of TEST_SUITES) {
154
+ console.log(`\n${suite.name}`);
155
+ console.log('-'.repeat(80));
156
+
157
+ if (suite.type === 'manual') {
158
+ const result = suite.validate();
159
+ console.log(`${formatResult(result.status)} ${result.message}`);
160
+ results.push({ suite: suite.name, ...result });
161
+ } else if (suite.type === 'jest') {
162
+ for (const testPath of suite.tests) {
163
+ const filename = path.basename(testPath);
164
+ const result = runJestTest(testPath);
165
+ console.log(` ${formatResult(result.status)} ${filename}`);
166
+ if (result.message && result.status !== 'PASS') {
167
+ console.log(` ${result.message.split('\n')[0]}`);
168
+ }
169
+ results.push({ suite: suite.name, test: filename, ...result });
170
+ }
171
+ }
172
+ }
173
+
174
+ // Summary
175
+ console.log('\n' + '='.repeat(80));
176
+ console.log('\n📊 SUMMARY\n');
177
+
178
+ const summary = {
179
+ PASS: results.filter(r => r.status === 'PASS').length,
180
+ FAIL: results.filter(r => r.status === 'FAIL').length,
181
+ WARN: results.filter(r => r.status === 'WARN').length,
182
+ INFO: results.filter(r => r.status === 'INFO').length,
183
+ SKIP: results.filter(r => r.status === 'SKIP').length
184
+ };
185
+
186
+ console.log(`${formatResult('PASS')} Passed: ${summary.PASS}`);
187
+ console.log(`${formatResult('FAIL')} Failed: ${summary.FAIL}`);
188
+ console.log(`${formatResult('WARN')} Warnings: ${summary.WARN}`);
189
+ console.log(`${formatResult('INFO')} Info: ${summary.INFO}`);
190
+ console.log(`${formatResult('SKIP')} Skipped: ${summary.SKIP}`);
191
+
192
+ console.log('\n' + '='.repeat(80));
193
+
194
+ // Critical failures block publication
195
+ if (summary.FAIL > 0) {
196
+ console.log('\n❌ CRITICAL: Tests failed. Fix before publishing.\n');
197
+ process.exit(1);
198
+ }
199
+
200
+ if (summary.PASS === 0 && summary.WARN > 0) {
201
+ console.log('\n⚠️ WARNING: No tests passed, only warnings. Review before publishing.\n');
202
+ process.exit(1);
203
+ }
204
+
205
+ console.log('\n✅ Validation complete. Ready for publication.\n');
206
+ process.exit(0);
207
+ }
208
+
209
+ main().catch(error => {
210
+ console.error('\n❌ Validation suite failed:', error.message);
211
+ process.exit(1);
212
+ });