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,180 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Validate Template Bundling
4
+ *
5
+ * Verifies that:
6
+ * 1. All template directories exist
7
+ * 2. Required files are present in each template
8
+ * 3. Templates can be read and parsed
9
+ * 4. Package.json includes templates/ directory
10
+ */
11
+
12
+ import { promises as fs } from 'fs';
13
+ import { join } from 'path';
14
+ import { fileURLToPath } from 'url';
15
+ import { dirname } from 'path';
16
+
17
+ const __filename = fileURLToPath(import.meta.url);
18
+ const __dirname = dirname(__filename);
19
+ const projectRoot = join(__dirname, '..');
20
+
21
+ const REQUIRED_TEMPLATES = [
22
+ 'basic-swarm',
23
+ 'fleet-manager',
24
+ 'event-bus',
25
+ 'custom-agent'
26
+ ];
27
+
28
+ const REQUIRED_FILES = {
29
+ 'basic-swarm': ['CLAUDE.md', 'package.json', '.claude/settings.json', 'coordination.md', 'memory-bank.md'],
30
+ 'fleet-manager': ['CLAUDE.md', 'package.json', '.claude/settings.json'],
31
+ 'event-bus': ['CLAUDE.md', 'package.json', '.claude/settings.json'],
32
+ 'custom-agent': ['CLAUDE.md', 'package.json', '.claude/settings.json']
33
+ };
34
+
35
+ async function validateTemplates() {
36
+ const results = {
37
+ success: true,
38
+ templatesChecked: 0,
39
+ filesChecked: 0,
40
+ errors: [],
41
+ warnings: []
42
+ };
43
+
44
+ console.log('šŸ” Validating Template Bundling...\n');
45
+
46
+ // Check templates directory exists
47
+ const templatesDir = join(projectRoot, 'templates');
48
+ try {
49
+ await fs.access(templatesDir);
50
+ console.log('āœ… Templates directory exists:', templatesDir);
51
+ } catch (err) {
52
+ results.success = false;
53
+ results.errors.push('Templates directory not found');
54
+ console.log('āŒ Templates directory not found:', templatesDir);
55
+ return results;
56
+ }
57
+
58
+ // Check each required template
59
+ for (const template of REQUIRED_TEMPLATES) {
60
+ const templateDir = join(templatesDir, template);
61
+
62
+ try {
63
+ await fs.access(templateDir);
64
+ console.log(`\nāœ… Template directory exists: ${template}/`);
65
+ results.templatesChecked++;
66
+
67
+ // Check required files
68
+ const requiredFiles = REQUIRED_FILES[template] || [];
69
+ for (const file of requiredFiles) {
70
+ const filePath = join(templateDir, file);
71
+
72
+ try {
73
+ const stats = await fs.stat(filePath);
74
+
75
+ if (stats.size === 0) {
76
+ results.warnings.push(`${template}/${file} is empty`);
77
+ console.log(` āš ļø ${file} (EMPTY)`);
78
+ } else {
79
+ console.log(` āœ… ${file} (${stats.size} bytes)`);
80
+ }
81
+
82
+ results.filesChecked++;
83
+
84
+ // Validate JSON files can be parsed
85
+ if (file.endsWith('.json')) {
86
+ try {
87
+ const content = await fs.readFile(filePath, 'utf8');
88
+ JSON.parse(content);
89
+ console.log(` āœ“ Valid JSON`);
90
+ } catch (err) {
91
+ results.errors.push(`${template}/${file} contains invalid JSON`);
92
+ console.log(` āŒ Invalid JSON: ${err.message}`);
93
+ results.success = false;
94
+ }
95
+ }
96
+
97
+ // Validate Markdown files are not empty
98
+ if (file.endsWith('.md')) {
99
+ try {
100
+ const content = await fs.readFile(filePath, 'utf8');
101
+ if (content.trim().length < 10) {
102
+ results.warnings.push(`${template}/${file} appears to be empty or too short`);
103
+ console.log(` āš ļø Content too short (${content.length} chars)`);
104
+ } else {
105
+ console.log(` āœ“ ${content.length} characters`);
106
+ }
107
+ } catch (err) {
108
+ results.errors.push(`Failed to read ${template}/${file}`);
109
+ console.log(` āŒ Failed to read: ${err.message}`);
110
+ }
111
+ }
112
+ } catch (err) {
113
+ results.errors.push(`${template}/${file} not found`);
114
+ console.log(` āŒ ${file} not found`);
115
+ results.success = false;
116
+ }
117
+ }
118
+ } catch (err) {
119
+ results.success = false;
120
+ results.errors.push(`Template directory ${template} not found`);
121
+ console.log(`āŒ Template directory not found: ${template}/`);
122
+ }
123
+ }
124
+
125
+ // Check package.json includes templates
126
+ console.log('\nšŸ” Checking package.json...');
127
+ try {
128
+ const packagePath = join(projectRoot, 'package.json');
129
+ const packageContent = await fs.readFile(packagePath, 'utf8');
130
+ const packageJson = JSON.parse(packageContent);
131
+
132
+ if (packageJson.files && packageJson.files.includes('templates/')) {
133
+ console.log('āœ… package.json includes "templates/" in files array');
134
+ } else {
135
+ results.success = false;
136
+ results.errors.push('package.json does not include "templates/" in files array');
137
+ console.log('āŒ package.json does not include "templates/" in files array');
138
+ }
139
+ } catch (err) {
140
+ results.warnings.push(`Failed to validate package.json: ${err.message}`);
141
+ console.log(`āš ļø Failed to validate package.json: ${err.message}`);
142
+ }
143
+
144
+ // Summary
145
+ console.log('\n' + '='.repeat(60));
146
+ console.log('šŸ“Š VALIDATION SUMMARY');
147
+ console.log('='.repeat(60));
148
+ console.log(`Templates checked: ${results.templatesChecked}/${REQUIRED_TEMPLATES.length}`);
149
+ console.log(`Files validated: ${results.filesChecked}`);
150
+ console.log(`Errors: ${results.errors.length}`);
151
+ console.log(`Warnings: ${results.warnings.length}`);
152
+
153
+ if (results.errors.length > 0) {
154
+ console.log('\nāŒ ERRORS:');
155
+ results.errors.forEach(err => console.log(` • ${err}`));
156
+ }
157
+
158
+ if (results.warnings.length > 0) {
159
+ console.log('\nāš ļø WARNINGS:');
160
+ results.warnings.forEach(warn => console.log(` • ${warn}`));
161
+ }
162
+
163
+ console.log('\n' + '='.repeat(60));
164
+ if (results.success) {
165
+ console.log('āœ… VALIDATION PASSED');
166
+ console.log('\nTemplates are ready for bundling with npm package!');
167
+ } else {
168
+ console.log('āŒ VALIDATION FAILED');
169
+ console.log('\nFix errors before publishing.');
170
+ process.exit(1);
171
+ }
172
+
173
+ return results;
174
+ }
175
+
176
+ // Run validation
177
+ validateTemplates().catch(err => {
178
+ console.error('āŒ Validation failed:', err);
179
+ process.exit(1);
180
+ });
@@ -0,0 +1,33 @@
1
+ # Validation Scripts
2
+
3
+ ## Purpose
4
+
5
+ This directory contains validation and consensus scripts for the Claude Flow Novice project. Scripts have been moved from the project root to improve organization and maintainability.
6
+
7
+ ## Script Types
8
+
9
+ ### Security Validation
10
+ - Security audit and vulnerability scanning scripts
11
+ - Code security analysis tools
12
+ - Dependency security validation
13
+
14
+ ### Phase Validation
15
+ - CFN Loop phase validation scripts
16
+ - Sprint completion validation
17
+ - Epic milestone verification
18
+
19
+ ### Consensus Reports
20
+ - Consensus score calculation and reporting
21
+ - Validator team coordination scripts
22
+ - Confidence metric aggregation
23
+
24
+ ## Usage
25
+
26
+ All validation scripts should be executed from the project root directory to ensure proper path resolution and access to project resources.
27
+
28
+ ## Organization
29
+
30
+ Scripts in this directory follow the project's organizational standards:
31
+ - No working files stored in root
32
+ - Validation logic separated by concern
33
+ - Clear naming conventions for script purpose
@@ -0,0 +1,214 @@
1
+ /**
2
+ * ACL Security Validation Script
3
+ * Phase 1 Foundation Infrastructure Security Validation
4
+ *
5
+ * Validates the 6-level ACL system with project-level isolation
6
+ */
7
+
8
+ const SwarmMemoryManager = require('./src/sqlite/SwarmMemoryManager.cjs');
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+
12
+ class ACLSecurityValidator {
13
+ constructor() {
14
+ this.testResults = [];
15
+ this.memoryManager = null;
16
+ this.testDbPath = path.join(__dirname, 'test-acl-validation.db');
17
+ }
18
+
19
+ async setup() {
20
+ // Clean up any existing test database
21
+ if (fs.existsSync(this.testDbPath)) {
22
+ fs.unlinkSync(this.testDbPath);
23
+ }
24
+
25
+ // Initialize memory manager with test database
26
+ this.memoryManager = new SwarmMemoryManager({
27
+ dbPath: this.testDbPath,
28
+ encryptionKey: Buffer.from('test-encryption-key-32-bytes-long', 'utf8'),
29
+ aclCacheTimeout: 1000 // Short cache for testing
30
+ });
31
+
32
+ await this.memoryManager.initialize();
33
+ }
34
+
35
+ async cleanup() {
36
+ if (this.memoryManager) {
37
+ await this.memoryManager.close();
38
+ }
39
+ if (fs.existsSync(this.testDbPath)) {
40
+ fs.unlinkSync(this.testDbPath);
41
+ }
42
+ }
43
+
44
+ logResult(testName, passed, details = '') {
45
+ const result = {
46
+ test: testName,
47
+ passed,
48
+ details,
49
+ timestamp: new Date().toISOString()
50
+ };
51
+ this.testResults.push(result);
52
+
53
+ const status = passed ? 'āœ… PASS' : 'āŒ FAIL';
54
+ console.log(`${status}: ${testName}`);
55
+ if (details) {
56
+ console.log(` ${details}`);
57
+ }
58
+ }
59
+
60
+ async testProjectLevelACL() {
61
+ const projectId1 = 'project-alpha';
62
+ const projectId2 = 'project-beta';
63
+ const agent1 = 'agent-project-1';
64
+ const agent2 = 'agent-project-2';
65
+ const agent3 = 'agent-project-3';
66
+
67
+ const projectData1 = { confidential: 'project-alpha-secret' };
68
+ const projectData2 = { confidential: 'project-beta-secret' };
69
+
70
+ try {
71
+ // Store project-specific data
72
+ await this.memoryManager.set('project-key-1', projectData1, {
73
+ agentId: agent1,
74
+ projectId: projectId1,
75
+ aclLevel: 4, // Project level
76
+ namespace: 'test'
77
+ });
78
+
79
+ await this.memoryManager.set('project-key-2', projectData2, {
80
+ agentId: agent2,
81
+ projectId: projectId2,
82
+ aclLevel: 4, // Project level
83
+ namespace: 'test'
84
+ });
85
+
86
+ // Same project agent should access data from their project
87
+ const sameProjectAccess = await this.memoryManager.get('project-key-1', {
88
+ agentId: agent3,
89
+ projectId: projectId1,
90
+ namespace: 'test'
91
+ });
92
+
93
+ // Different project agent should be DENIED access - SECURITY CRITICAL
94
+ const crossProjectAccess = await this.memoryManager.get('project-key-1', {
95
+ agentId: agent2,
96
+ projectId: projectId2,
97
+ namespace: 'test'
98
+ });
99
+
100
+ const passed = JSON.stringify(sameProjectAccess) === JSON.stringify(projectData1) &&
101
+ crossProjectAccess === null;
102
+
103
+ this.logResult('Project Level (4) ACL - CRITICAL SECURITY', passed,
104
+ passed ? 'Project isolation working correctly' : 'CROSS-PROJECT DATA LEAK DETECTED');
105
+ } catch (error) {
106
+ this.logResult('Project Level (4) ACL - CRITICAL SECURITY', false, `Error: ${error.message}`);
107
+ }
108
+ }
109
+
110
+ async testBasicACL() {
111
+ const agent1 = 'agent-basic-1';
112
+ const agent2 = 'agent-basic-2';
113
+ const data = { test: 'basic-data' };
114
+
115
+ try {
116
+ // Store private data
117
+ await this.memoryManager.set('basic-key', data, {
118
+ agentId: agent1,
119
+ aclLevel: 1,
120
+ namespace: 'test'
121
+ });
122
+
123
+ // Owner should access
124
+ const ownerAccess = await this.memoryManager.get('basic-key', {
125
+ agentId: agent1,
126
+ namespace: 'test'
127
+ });
128
+
129
+ // Other agent should be denied
130
+ const otherAccess = await this.memoryManager.get('basic-key', {
131
+ agentId: agent2,
132
+ namespace: 'test'
133
+ });
134
+
135
+ const passed = JSON.stringify(ownerAccess) === JSON.stringify(data) &&
136
+ otherAccess === null;
137
+
138
+ this.logResult('Basic Private ACL', passed,
139
+ passed ? 'Private access working' : 'Private access failure');
140
+ } catch (error) {
141
+ this.logResult('Basic Private ACL', false, `Error: ${error.message}`);
142
+ }
143
+ }
144
+
145
+ async generateSecurityReport() {
146
+ const totalTests = this.testResults.length;
147
+ const passedTests = this.testResults.filter(r => r.passed).length;
148
+ const failedTests = totalTests - passedTests;
149
+ const passRate = ((passedTests / totalTests) * 100).toFixed(1);
150
+
151
+ const report = {
152
+ summary: {
153
+ totalTests,
154
+ passedTests,
155
+ failedTests,
156
+ passRate: `${passRate}%`,
157
+ timestamp: new Date().toISOString()
158
+ },
159
+ criticalFindings: this.testResults.filter(r =>
160
+ !r.passed && r.test.includes('CRITICAL')
161
+ ),
162
+ details: this.testResults
163
+ };
164
+
165
+ // Write security report
166
+ const reportPath = path.join(__dirname, 'acl-security-report.json');
167
+ fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
168
+
169
+ console.log('\n' + '='.repeat(60));
170
+ console.log('šŸ”’ ACL SECURITY VALIDATION REPORT');
171
+ console.log('='.repeat(60));
172
+ console.log(`Total Tests: ${totalTests}`);
173
+ console.log(`Passed: ${passedTests} āœ…`);
174
+ console.log(`Failed: ${failedTests} āŒ`);
175
+ console.log(`Pass Rate: ${passRate}%`);
176
+
177
+ if (report.criticalFindings.length > 0) {
178
+ console.log('\n🚨 CRITICAL SECURITY ISSUES:');
179
+ report.criticalFindings.forEach(finding => {
180
+ console.log(` āŒ ${finding.test}: ${finding.details}`);
181
+ });
182
+ }
183
+
184
+ console.log(`\nšŸ“„ Full report saved to: ${reportPath}`);
185
+ console.log('='.repeat(60));
186
+
187
+ return report;
188
+ }
189
+
190
+ async runAllTests() {
191
+ console.log('šŸ”’ Starting ACL Security Validation...');
192
+ console.log('Testing 6-level ACL system with project isolation\n');
193
+
194
+ await this.setup();
195
+
196
+ // Run security tests
197
+ await this.testBasicACL();
198
+ await this.testProjectLevelACL();
199
+
200
+ const report = await this.generateSecurityReport();
201
+
202
+ await this.cleanup();
203
+
204
+ return report;
205
+ }
206
+ }
207
+
208
+ // Run validation if called directly
209
+ if (require.main === module) {
210
+ const validator = new ACLSecurityValidator();
211
+ validator.runAllTests().catch(console.error);
212
+ }
213
+
214
+ module.exports = ACLSecurityValidator;