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,402 @@
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
+ * 1. private - Only accessible by the specific agent
7
+ * 2. team - Accessible by agents in the same team
8
+ * 3. swarm - Accessible by all agents in the swarm
9
+ * 4. project - Accessible by agents in the same project (CRITICAL)
10
+ * 5. public - Accessible by all authenticated agents
11
+ * 6. system - System-level access (administrative)
12
+ */
13
+
14
+ const SwarmMemoryManagerModule = await import('./src/sqlite/SwarmMemoryManager.js');
15
+ const SwarmMemoryManager = SwarmMemoryManagerModule.default || SwarmMemoryManagerModule.SwarmMemoryManager;
16
+ import fs from 'fs';
17
+ import path from 'path';
18
+ import { fileURLToPath } from 'url';
19
+
20
+ const __filename = fileURLToPath(import.meta.url);
21
+ const __dirname = path.dirname(__filename);
22
+
23
+ class ACLSecurityValidator {
24
+ constructor() {
25
+ this.testResults = [];
26
+ this.memoryManager = null;
27
+ this.testDbPath = path.join(__dirname, 'test-acl-validation.db');
28
+ }
29
+
30
+ async setup() {
31
+ // Clean up any existing test database
32
+ if (fs.existsSync(this.testDbPath)) {
33
+ fs.unlinkSync(this.testDbPath);
34
+ }
35
+
36
+ // Initialize memory manager with test database
37
+ this.memoryManager = new SwarmMemoryManager({
38
+ dbPath: this.testDbPath,
39
+ encryptionKey: Buffer.from('test-encryption-key-32-bytes-long', 'utf8'),
40
+ aclCacheTimeout: 1000 // Short cache for testing
41
+ });
42
+
43
+ await this.memoryManager.initialize();
44
+ }
45
+
46
+ async cleanup() {
47
+ if (this.memoryManager) {
48
+ await this.memoryManager.close();
49
+ }
50
+ if (fs.existsSync(this.testDbPath)) {
51
+ fs.unlinkSync(this.testDbPath);
52
+ }
53
+ }
54
+
55
+ logResult(testName, passed, details = '') {
56
+ const result = {
57
+ test: testName,
58
+ passed,
59
+ details,
60
+ timestamp: new Date().toISOString()
61
+ };
62
+ this.testResults.push(result);
63
+
64
+ const status = passed ? 'āœ… PASS' : 'āŒ FAIL';
65
+ console.log(`${status}: ${testName}`);
66
+ if (details) {
67
+ console.log(` ${details}`);
68
+ }
69
+ }
70
+
71
+ async testPrivateLevelACL() {
72
+ const agent1 = 'agent-private-1';
73
+ const agent2 = 'agent-private-2';
74
+ const secretData = { secret: 'confidential-data' };
75
+
76
+ try {
77
+ // Store private data
78
+ await this.memoryManager.set('private-key', secretData, {
79
+ agentId: agent1,
80
+ aclLevel: 1,
81
+ namespace: 'test'
82
+ });
83
+
84
+ // Owner should access
85
+ const ownerAccess = await this.memoryManager.get('private-key', {
86
+ agentId: agent1,
87
+ namespace: 'test'
88
+ });
89
+
90
+ // Other agent should be denied
91
+ const otherAccess = await this.memoryManager.get('private-key', {
92
+ agentId: agent2,
93
+ namespace: 'test'
94
+ });
95
+
96
+ const passed = JSON.stringify(ownerAccess) === JSON.stringify(secretData) &&
97
+ otherAccess === null;
98
+
99
+ this.logResult('Private Level (1) ACL', passed,
100
+ passed ? 'Private data properly isolated' : 'Private data leak detected');
101
+ } catch (error) {
102
+ this.logResult('Private Level (1) ACL', false, `Error: ${error.message}`);
103
+ }
104
+ }
105
+
106
+ async testProjectLevelACL() {
107
+ const projectId1 = 'project-alpha';
108
+ const projectId2 = 'project-beta';
109
+ const agent1 = 'agent-project-1';
110
+ const agent2 = 'agent-project-2';
111
+ const agent3 = 'agent-project-3';
112
+
113
+ const projectData1 = { confidential: 'project-alpha-secret' };
114
+ const projectData2 = { confidential: 'project-beta-secret' };
115
+
116
+ try {
117
+ // Store project-specific data
118
+ await this.memoryManager.set('project-key-1', projectData1, {
119
+ agentId: agent1,
120
+ projectId: projectId1,
121
+ aclLevel: 4, // Project level
122
+ namespace: 'test'
123
+ });
124
+
125
+ await this.memoryManager.set('project-key-2', projectData2, {
126
+ agentId: agent2,
127
+ projectId: projectId2,
128
+ aclLevel: 4, // Project level
129
+ namespace: 'test'
130
+ });
131
+
132
+ // Same project agent should access data from their project
133
+ const sameProjectAccess = await this.memoryManager.get('project-key-1', {
134
+ agentId: agent3,
135
+ projectId: projectId1,
136
+ namespace: 'test'
137
+ });
138
+
139
+ // Different project agent should be DENIED access - SECURITY CRITICAL
140
+ const crossProjectAccess = await this.memoryManager.get('project-key-1', {
141
+ agentId: agent2,
142
+ projectId: projectId2,
143
+ namespace: 'test'
144
+ });
145
+
146
+ const passed = JSON.stringify(sameProjectAccess) === JSON.stringify(projectData1) &&
147
+ crossProjectAccess === null;
148
+
149
+ this.logResult('Project Level (4) ACL - CRITICAL SECURITY', passed,
150
+ passed ? 'Project isolation working correctly' : 'CROSS-PROJECT DATA LEAK DETECTED');
151
+ } catch (error) {
152
+ this.logResult('Project Level (4) ACL - CRITICAL SECURITY', false, `Error: ${error.message}`);
153
+ }
154
+ }
155
+
156
+ async testSystemLevelACL() {
157
+ const systemAgent = 'system-agent';
158
+ const regularAgent = 'regular-agent';
159
+ const systemData = { config: 'system-critical-config' };
160
+
161
+ try {
162
+ // Store system data
163
+ await this.memoryManager.set('system-key', systemData, {
164
+ agentId: systemAgent,
165
+ aclLevel: 6,
166
+ namespace: 'test'
167
+ });
168
+
169
+ // System agent should access
170
+ const systemAccess = await this.memoryManager.get('system-key', {
171
+ agentId: systemAgent,
172
+ namespace: 'test'
173
+ });
174
+
175
+ // Regular agent should be denied
176
+ const regularAccess = await this.memoryManager.get('system-key', {
177
+ agentId: regularAgent,
178
+ namespace: 'test'
179
+ });
180
+
181
+ const passed = JSON.stringify(systemAccess) === JSON.stringify(systemData) &&
182
+ regularAccess === null;
183
+
184
+ this.logResult('System Level (6) ACL', passed,
185
+ passed ? 'System access properly restricted' : 'System access breach detected');
186
+ } catch (error) {
187
+ this.logResult('System Level (6) ACL', false, `Error: ${error.message}`);
188
+ }
189
+ }
190
+
191
+ async testProjectIsolationEdgeCases() {
192
+ const projectId1 = 'edge-project-1';
193
+ const projectId2 = 'edge-project-2';
194
+ const agent1 = 'edge-agent-1';
195
+ const agent2 = 'edge-agent-2';
196
+
197
+ const sensitiveData = { api_keys: 'critical-api-credentials' };
198
+
199
+ try {
200
+ // Store sensitive project data
201
+ await this.memoryManager.set('credentials', sensitiveData, {
202
+ agentId: agent1,
203
+ projectId: projectId1,
204
+ aclLevel: 4,
205
+ namespace: 'secure'
206
+ });
207
+
208
+ // Attempt cross-project access
209
+ const crossProjectAccess = await this.memoryManager.get('credentials', {
210
+ agentId: agent2,
211
+ projectId: projectId2,
212
+ namespace: 'secure'
213
+ });
214
+
215
+ // Attempt with no project context
216
+ const noProjectAccess = await this.memoryManager.get('credentials', {
217
+ agentId: agent2,
218
+ namespace: 'secure'
219
+ });
220
+
221
+ // Attempt with manipulated project context
222
+ const manipulatedAccess = await this.memoryManager.get('credentials', {
223
+ agentId: agent2,
224
+ projectId: projectId1 + '-manipulated',
225
+ namespace: 'secure'
226
+ });
227
+
228
+ const passed = crossProjectAccess === null &&
229
+ noProjectAccess === null &&
230
+ manipulatedAccess === null;
231
+
232
+ this.logResult('Project Isolation Edge Cases', passed,
233
+ passed ? 'All cross-project attempts blocked' : 'Project isolation vulnerabilities found');
234
+ } catch (error) {
235
+ this.logResult('Project Isolation Edge Cases', false, `Error: ${error.message}`);
236
+ }
237
+ }
238
+
239
+ async testConcurrentProjectAccess() {
240
+ const project1 = 'concurrent-project-1';
241
+ const project2 = 'concurrent-project-2';
242
+ const agent1 = 'concurrent-agent-1';
243
+ const agent2 = 'concurrent-agent-2';
244
+
245
+ const data1 = { project: 'data-1', timestamp: Date.now() };
246
+ const data2 = { project: 'data-2', timestamp: Date.now() };
247
+
248
+ try {
249
+ // Concurrent store operations
250
+ const storePromises = [
251
+ this.memoryManager.set('concurrent-key', data1, {
252
+ agentId: agent1,
253
+ projectId: project1,
254
+ aclLevel: 4,
255
+ namespace: 'concurrent-test'
256
+ }),
257
+ this.memoryManager.set('concurrent-key', data2, {
258
+ agentId: agent2,
259
+ projectId: project2,
260
+ aclLevel: 4,
261
+ namespace: 'concurrent-test'
262
+ })
263
+ ];
264
+
265
+ await Promise.all(storePromises);
266
+
267
+ // Verify isolation is maintained
268
+ const access1 = await this.memoryManager.get('concurrent-key', {
269
+ agentId: agent1,
270
+ projectId: project1,
271
+ namespace: 'concurrent-test'
272
+ });
273
+
274
+ const access2 = await this.memoryManager.get('concurrent-key', {
275
+ agentId: agent2,
276
+ projectId: project2,
277
+ namespace: 'concurrent-test'
278
+ });
279
+
280
+ const passed = JSON.stringify(access1) === JSON.stringify(data1) &&
281
+ JSON.stringify(access2) === JSON.stringify(data2);
282
+
283
+ this.logResult('Concurrent Project Access', passed,
284
+ passed ? 'Concurrent project isolation maintained' : 'Concurrent access isolation failed');
285
+ } catch (error) {
286
+ this.logResult('Concurrent Project Access', false, `Error: ${error.message}`);
287
+ }
288
+ }
289
+
290
+ async testCacheSecurity() {
291
+ const projectId = 'cache-test-project';
292
+ const authorizedAgent = 'cache-auth-agent';
293
+ const unauthorizedAgent = 'cache-unauth-agent';
294
+
295
+ const sensitiveData = { token: 'jwt-access-token' };
296
+
297
+ try {
298
+ // Store project data
299
+ await this.memoryManager.set('cache-key', sensitiveData, {
300
+ agentId: authorizedAgent,
301
+ projectId,
302
+ aclLevel: 4,
303
+ namespace: 'cache-test'
304
+ });
305
+
306
+ // First unauthorized access attempt
307
+ const unauthorizedAccess1 = await this.memoryManager.get('cache-key', {
308
+ agentId: unauthorizedAgent,
309
+ projectId: 'different-project',
310
+ namespace: 'cache-test'
311
+ });
312
+
313
+ // Second unauthorized access (should hit cache if not properly isolated)
314
+ const unauthorizedAccess2 = await this.memoryManager.get('cache-key', {
315
+ agentId: unauthorizedAgent,
316
+ projectId: 'different-project',
317
+ namespace: 'cache-test'
318
+ });
319
+
320
+ const passed = unauthorizedAccess1 === null && unauthorizedAccess2 === null;
321
+
322
+ this.logResult('Cache Security', passed,
323
+ passed ? 'Cache properly isolates unauthorized access' : 'Cache allows unauthorized access');
324
+ } catch (error) {
325
+ this.logResult('Cache Security', false, `Error: ${error.message}`);
326
+ }
327
+ }
328
+
329
+ async generateSecurityReport() {
330
+ const totalTests = this.testResults.length;
331
+ const passedTests = this.testResults.filter(r => r.passed).length;
332
+ const failedTests = totalTests - passedTests;
333
+ const passRate = ((passedTests / totalTests) * 100).toFixed(1);
334
+
335
+ const report = {
336
+ summary: {
337
+ totalTests,
338
+ passedTests,
339
+ failedTests,
340
+ passRate: `${passRate}%`,
341
+ timestamp: new Date().toISOString()
342
+ },
343
+ criticalFindings: this.testResults.filter(r =>
344
+ !r.passed && r.test.includes('CRITICAL')
345
+ ),
346
+ details: this.testResults
347
+ };
348
+
349
+ // Write security report
350
+ const reportPath = path.join(__dirname, 'acl-security-report.json');
351
+ fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
352
+
353
+ console.log('\n' + '='.repeat(60));
354
+ console.log('šŸ”’ ACL SECURITY VALIDATION REPORT');
355
+ console.log('='.repeat(60));
356
+ console.log(`Total Tests: ${totalTests}`);
357
+ console.log(`Passed: ${passedTests} āœ…`);
358
+ console.log(`Failed: ${failedTests} āŒ`);
359
+ console.log(`Pass Rate: ${passRate}%`);
360
+
361
+ if (report.criticalFindings.length > 0) {
362
+ console.log('\n🚨 CRITICAL SECURITY ISSUES:');
363
+ report.criticalFindings.forEach(finding => {
364
+ console.log(` āŒ ${finding.test}: ${finding.details}`);
365
+ });
366
+ }
367
+
368
+ console.log(`\nšŸ“„ Full report saved to: ${reportPath}`);
369
+ console.log('='.repeat(60));
370
+
371
+ return report;
372
+ }
373
+
374
+ async runAllTests() {
375
+ console.log('šŸ”’ Starting ACL Security Validation...');
376
+ console.log('Testing 6-level ACL system with project isolation\n');
377
+
378
+ await this.setup();
379
+
380
+ // Run all security tests
381
+ await this.testPrivateLevelACL();
382
+ await this.testProjectLevelACL();
383
+ await this.testSystemLevelACL();
384
+ await this.testProjectIsolationEdgeCases();
385
+ await this.testConcurrentProjectAccess();
386
+ await this.testCacheSecurity();
387
+
388
+ const report = await this.generateSecurityReport();
389
+
390
+ await this.cleanup();
391
+
392
+ return report;
393
+ }
394
+ }
395
+
396
+ // Run validation if called directly
397
+ if (import.meta.url === `file://${process.argv[1]}`) {
398
+ const validator = new ACLSecurityValidator();
399
+ validator.runAllTests().catch(console.error);
400
+ }
401
+
402
+ export default ACLSecurityValidator;