agentic-qe 1.0.1 → 1.0.3

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 (330) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +51 -11
  2. package/.claude/agents/qe-chaos-engineer.md +95 -43
  3. package/.claude/agents/qe-coverage-analyzer.md +134 -57
  4. package/.claude/agents/qe-deployment-readiness.md +48 -11
  5. package/.claude/agents/qe-flaky-test-hunter.md +57 -11
  6. package/.claude/agents/qe-fleet-commander.md +106 -49
  7. package/.claude/agents/qe-performance-tester.md +98 -45
  8. package/.claude/agents/qe-production-intelligence.md +48 -11
  9. package/.claude/agents/qe-quality-gate.md +160 -28
  10. package/.claude/agents/qe-regression-risk-analyzer.md +53 -11
  11. package/.claude/agents/qe-requirements-validator.md +48 -11
  12. package/.claude/agents/qe-security-scanner.md +230 -47
  13. package/.claude/agents/qe-test-data-architect.md +49 -11
  14. package/.claude/agents/qe-test-executor.md +59 -55
  15. package/.claude/agents/qe-test-generator.md +222 -48
  16. package/.claude/agents/qe-visual-tester.md +66 -65
  17. package/CHANGELOG.md +162 -0
  18. package/README.md +33 -2
  19. package/dist/adapters/MemoryStoreAdapter.d.ts +157 -0
  20. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -0
  21. package/dist/adapters/MemoryStoreAdapter.js +433 -0
  22. package/dist/adapters/MemoryStoreAdapter.js.map +1 -0
  23. package/dist/adapters/index.d.ts +8 -0
  24. package/dist/adapters/index.d.ts.map +1 -0
  25. package/dist/adapters/index.js +12 -0
  26. package/dist/adapters/index.js.map +1 -0
  27. package/dist/agents/BaseAgent.d.ts +22 -3
  28. package/dist/agents/BaseAgent.d.ts.map +1 -1
  29. package/dist/agents/BaseAgent.js +110 -6
  30. package/dist/agents/BaseAgent.js.map +1 -1
  31. package/dist/agents/CoverageAnalyzerAgent.d.ts +0 -1
  32. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  33. package/dist/agents/QualityAnalyzerAgent.d.ts +0 -1
  34. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  35. package/dist/agents/QualityGateAgent.d.ts +0 -1
  36. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  37. package/dist/agents/RegressionRiskAnalyzerAgent.js +17 -7
  38. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  39. package/dist/agents/TestExecutorAgent.js +17 -7
  40. package/dist/agents/TestExecutorAgent.js.map +1 -1
  41. package/dist/agents/index.js +2 -2
  42. package/dist/agents/index.js.map +1 -1
  43. package/dist/cli/commands/agent/assign.js +17 -7
  44. package/dist/cli/commands/agent/assign.js.map +1 -1
  45. package/dist/cli/commands/agent/attach.d.ts +0 -1
  46. package/dist/cli/commands/agent/attach.d.ts.map +1 -1
  47. package/dist/cli/commands/agent/attach.js +17 -7
  48. package/dist/cli/commands/agent/attach.js.map +1 -1
  49. package/dist/cli/commands/agent/benchmark.js +1 -2
  50. package/dist/cli/commands/agent/benchmark.js.map +1 -1
  51. package/dist/cli/commands/agent/clone.js +1 -2
  52. package/dist/cli/commands/agent/clone.js.map +1 -1
  53. package/dist/cli/commands/agent/detach.js +17 -7
  54. package/dist/cli/commands/agent/detach.js.map +1 -1
  55. package/dist/cli/commands/agent/index.js +3 -3
  56. package/dist/cli/commands/agent/index.js.map +1 -1
  57. package/dist/cli/commands/agent/inspect.js +17 -7
  58. package/dist/cli/commands/agent/inspect.js.map +1 -1
  59. package/dist/cli/commands/agent/migrate.js +1 -2
  60. package/dist/cli/commands/agent/migrate.js.map +1 -1
  61. package/dist/cli/commands/agent/restart.js +17 -7
  62. package/dist/cli/commands/agent/restart.js.map +1 -1
  63. package/dist/cli/commands/analyze.js +17 -7
  64. package/dist/cli/commands/analyze.js.map +1 -1
  65. package/dist/cli/commands/config/export.js +17 -7
  66. package/dist/cli/commands/config/export.js.map +1 -1
  67. package/dist/cli/commands/config/get.js +19 -9
  68. package/dist/cli/commands/config/get.js.map +1 -1
  69. package/dist/cli/commands/config/import.js +17 -7
  70. package/dist/cli/commands/config/import.js.map +1 -1
  71. package/dist/cli/commands/config/init.js +19 -9
  72. package/dist/cli/commands/config/init.js.map +1 -1
  73. package/dist/cli/commands/config/list.js +1 -2
  74. package/dist/cli/commands/config/list.js.map +1 -1
  75. package/dist/cli/commands/config/reset.js +1 -2
  76. package/dist/cli/commands/config/reset.js.map +1 -1
  77. package/dist/cli/commands/config/set.js +19 -9
  78. package/dist/cli/commands/config/set.js.map +1 -1
  79. package/dist/cli/commands/config/validate.js +19 -9
  80. package/dist/cli/commands/config/validate.js.map +1 -1
  81. package/dist/cli/commands/debug/agent.js +18 -9
  82. package/dist/cli/commands/debug/agent.js.map +1 -1
  83. package/dist/cli/commands/debug/diagnostics.js +18 -9
  84. package/dist/cli/commands/debug/diagnostics.js.map +1 -1
  85. package/dist/cli/commands/debug/health-check.js +18 -9
  86. package/dist/cli/commands/debug/health-check.js.map +1 -1
  87. package/dist/cli/commands/debug/profile.js +18 -9
  88. package/dist/cli/commands/debug/profile.js.map +1 -1
  89. package/dist/cli/commands/debug/trace.js +18 -9
  90. package/dist/cli/commands/debug/trace.js.map +1 -1
  91. package/dist/cli/commands/debug/troubleshoot.js +18 -9
  92. package/dist/cli/commands/debug/troubleshoot.js.map +1 -1
  93. package/dist/cli/commands/fleet/backup.js +1 -2
  94. package/dist/cli/commands/fleet/backup.js.map +1 -1
  95. package/dist/cli/commands/fleet/health.js +17 -7
  96. package/dist/cli/commands/fleet/health.js.map +1 -1
  97. package/dist/cli/commands/fleet/init.js +17 -7
  98. package/dist/cli/commands/fleet/init.js.map +1 -1
  99. package/dist/cli/commands/fleet/logs.js +17 -7
  100. package/dist/cli/commands/fleet/logs.js.map +1 -1
  101. package/dist/cli/commands/fleet/metrics.js +17 -7
  102. package/dist/cli/commands/fleet/metrics.js.map +1 -1
  103. package/dist/cli/commands/fleet/monitor.js +17 -7
  104. package/dist/cli/commands/fleet/monitor.js.map +1 -1
  105. package/dist/cli/commands/fleet/optimize.js +1 -2
  106. package/dist/cli/commands/fleet/optimize.js.map +1 -1
  107. package/dist/cli/commands/fleet/recover.js +1 -2
  108. package/dist/cli/commands/fleet/recover.js.map +1 -1
  109. package/dist/cli/commands/fleet/restart.js +17 -7
  110. package/dist/cli/commands/fleet/restart.js.map +1 -1
  111. package/dist/cli/commands/fleet/scale.js +17 -7
  112. package/dist/cli/commands/fleet/scale.js.map +1 -1
  113. package/dist/cli/commands/fleet/shutdown.js +17 -7
  114. package/dist/cli/commands/fleet/shutdown.js.map +1 -1
  115. package/dist/cli/commands/fleet/status.js +17 -7
  116. package/dist/cli/commands/fleet/status.js.map +1 -1
  117. package/dist/cli/commands/fleet/topology.js +17 -7
  118. package/dist/cli/commands/fleet/topology.js.map +1 -1
  119. package/dist/cli/commands/fleet.d.ts +0 -1
  120. package/dist/cli/commands/fleet.d.ts.map +1 -1
  121. package/dist/cli/commands/fleet.js +37 -60
  122. package/dist/cli/commands/fleet.js.map +1 -1
  123. package/dist/cli/commands/generate.js +17 -7
  124. package/dist/cli/commands/generate.js.map +1 -1
  125. package/dist/cli/commands/init.d.ts.map +1 -1
  126. package/dist/cli/commands/init.js +250 -82
  127. package/dist/cli/commands/init.js.map +1 -1
  128. package/dist/cli/commands/memory/compact.js +1 -2
  129. package/dist/cli/commands/memory/compact.js.map +1 -1
  130. package/dist/cli/commands/memory/index.js +4 -5
  131. package/dist/cli/commands/memory/index.js.map +1 -1
  132. package/dist/cli/commands/memory/stats.js +1 -2
  133. package/dist/cli/commands/memory/stats.js.map +1 -1
  134. package/dist/cli/commands/memory/vacuum.js +1 -2
  135. package/dist/cli/commands/memory/vacuum.js.map +1 -1
  136. package/dist/cli/commands/monitor/alerts.js +17 -7
  137. package/dist/cli/commands/monitor/alerts.js.map +1 -1
  138. package/dist/cli/commands/monitor/analyze.js +17 -7
  139. package/dist/cli/commands/monitor/analyze.js.map +1 -1
  140. package/dist/cli/commands/monitor/compare.js +17 -7
  141. package/dist/cli/commands/monitor/compare.js.map +1 -1
  142. package/dist/cli/commands/monitor/dashboard.js +17 -7
  143. package/dist/cli/commands/monitor/dashboard.js.map +1 -1
  144. package/dist/cli/commands/monitor/export.js +17 -7
  145. package/dist/cli/commands/monitor/export.js.map +1 -1
  146. package/dist/cli/commands/quality/baseline.js +1 -2
  147. package/dist/cli/commands/quality/baseline.js.map +1 -1
  148. package/dist/cli/commands/quality/compare.js +1 -2
  149. package/dist/cli/commands/quality/compare.js.map +1 -1
  150. package/dist/cli/commands/quality/decision.js +2 -2
  151. package/dist/cli/commands/quality/decision.js.map +1 -1
  152. package/dist/cli/commands/quality/gate.js +2 -2
  153. package/dist/cli/commands/quality/gate.js.map +1 -1
  154. package/dist/cli/commands/quality/index.js +2 -2
  155. package/dist/cli/commands/quality/index.js.map +1 -1
  156. package/dist/cli/commands/quality/policy.js +19 -9
  157. package/dist/cli/commands/quality/policy.js.map +1 -1
  158. package/dist/cli/commands/quality/risk.js +2 -2
  159. package/dist/cli/commands/quality/risk.js.map +1 -1
  160. package/dist/cli/commands/quality/trends.js +1 -2
  161. package/dist/cli/commands/quality/trends.js.map +1 -1
  162. package/dist/cli/commands/quality/validate.js +19 -9
  163. package/dist/cli/commands/quality/validate.js.map +1 -1
  164. package/dist/cli/commands/run.js +17 -7
  165. package/dist/cli/commands/run.js.map +1 -1
  166. package/dist/cli/commands/test/analyze-failures.js +1 -2
  167. package/dist/cli/commands/test/analyze-failures.js.map +1 -1
  168. package/dist/cli/commands/test/clean.js +18 -9
  169. package/dist/cli/commands/test/clean.js.map +1 -1
  170. package/dist/cli/commands/test/debug.js +18 -9
  171. package/dist/cli/commands/test/debug.js.map +1 -1
  172. package/dist/cli/commands/test/diff.js +18 -9
  173. package/dist/cli/commands/test/diff.js.map +1 -1
  174. package/dist/cli/commands/test/flakiness.js +1 -2
  175. package/dist/cli/commands/test/flakiness.js.map +1 -1
  176. package/dist/cli/commands/test/index.js +2 -2
  177. package/dist/cli/commands/test/index.js.map +1 -1
  178. package/dist/cli/commands/test/mutate.js +1 -2
  179. package/dist/cli/commands/test/mutate.js.map +1 -1
  180. package/dist/cli/commands/test/parallel.js +1 -2
  181. package/dist/cli/commands/test/parallel.js.map +1 -1
  182. package/dist/cli/commands/test/profile.js +18 -9
  183. package/dist/cli/commands/test/profile.js.map +1 -1
  184. package/dist/cli/commands/test/queue.js +1 -2
  185. package/dist/cli/commands/test/queue.js.map +1 -1
  186. package/dist/cli/commands/test/retry.js +1 -2
  187. package/dist/cli/commands/test/retry.js.map +1 -1
  188. package/dist/cli/commands/test/snapshot.js +1 -2
  189. package/dist/cli/commands/test/snapshot.js.map +1 -1
  190. package/dist/cli/commands/test/trace.js +18 -9
  191. package/dist/cli/commands/test/trace.js.map +1 -1
  192. package/dist/cli/commands/test/watch.js +1 -2
  193. package/dist/cli/commands/test/watch.js.map +1 -1
  194. package/dist/cli/commands/workflow/cancel.js +2 -3
  195. package/dist/cli/commands/workflow/cancel.js.map +1 -1
  196. package/dist/cli/commands/workflow/list.js +2 -3
  197. package/dist/cli/commands/workflow/list.js.map +1 -1
  198. package/dist/cli/commands/workflow/pause.js +2 -3
  199. package/dist/cli/commands/workflow/pause.js.map +1 -1
  200. package/dist/cli/index-working.js +17 -7
  201. package/dist/cli/index-working.js.map +1 -1
  202. package/dist/cli/index.js +17 -7
  203. package/dist/cli/index.js.map +1 -1
  204. package/dist/core/Agent.d.ts +0 -1
  205. package/dist/core/Agent.d.ts.map +1 -1
  206. package/dist/core/ArtifactWorkflow.js +17 -7
  207. package/dist/core/ArtifactWorkflow.js.map +1 -1
  208. package/dist/core/EventBus.d.ts +0 -1
  209. package/dist/core/EventBus.d.ts.map +1 -1
  210. package/dist/core/FleetManager.d.ts +0 -1
  211. package/dist/core/FleetManager.d.ts.map +1 -1
  212. package/dist/core/FleetManager.js +17 -7
  213. package/dist/core/FleetManager.js.map +1 -1
  214. package/dist/core/MemoryManager.d.ts +0 -1
  215. package/dist/core/MemoryManager.d.ts.map +1 -1
  216. package/dist/core/Task.d.ts +0 -1
  217. package/dist/core/Task.d.ts.map +1 -1
  218. package/dist/core/coordination/BlackboardCoordination.d.ts +0 -1
  219. package/dist/core/coordination/BlackboardCoordination.d.ts.map +1 -1
  220. package/dist/core/coordination/ConsensusGating.d.ts +0 -1
  221. package/dist/core/coordination/ConsensusGating.d.ts.map +1 -1
  222. package/dist/core/coordination/GOAPCoordination.d.ts +0 -1
  223. package/dist/core/coordination/GOAPCoordination.d.ts.map +1 -1
  224. package/dist/core/coordination/OODACoordination.d.ts +0 -1
  225. package/dist/core/coordination/OODACoordination.d.ts.map +1 -1
  226. package/dist/core/events/QEEventBus.d.ts +0 -1
  227. package/dist/core/events/QEEventBus.d.ts.map +1 -1
  228. package/dist/core/hooks/RollbackManager.d.ts +2 -2
  229. package/dist/core/hooks/RollbackManager.d.ts.map +1 -1
  230. package/dist/core/hooks/RollbackManager.js +17 -7
  231. package/dist/core/hooks/RollbackManager.js.map +1 -1
  232. package/dist/core/hooks/VerificationHookManager.d.ts +2 -3
  233. package/dist/core/hooks/VerificationHookManager.d.ts.map +1 -1
  234. package/dist/core/hooks/VerificationHookManager.js.map +1 -1
  235. package/dist/core/hooks/checkers/ConfigurationChecker.d.ts +2 -2
  236. package/dist/core/hooks/checkers/ConfigurationChecker.d.ts.map +1 -1
  237. package/dist/core/hooks/checkers/ConfigurationChecker.js.map +1 -1
  238. package/dist/core/hooks/checkers/EnvironmentChecker.js +17 -7
  239. package/dist/core/hooks/checkers/EnvironmentChecker.js.map +1 -1
  240. package/dist/core/hooks/checkers/PermissionChecker.js +17 -7
  241. package/dist/core/hooks/checkers/PermissionChecker.js.map +1 -1
  242. package/dist/core/hooks/checkers/ResourceChecker.js +17 -7
  243. package/dist/core/hooks/checkers/ResourceChecker.js.map +1 -1
  244. package/dist/core/memory/CompressionManager.js +17 -7
  245. package/dist/core/memory/CompressionManager.js.map +1 -1
  246. package/dist/core/memory/EncryptionManager.js +17 -7
  247. package/dist/core/memory/EncryptionManager.js.map +1 -1
  248. package/dist/core/memory/EnhancedSwarmMemoryManager.js +17 -7
  249. package/dist/core/memory/EnhancedSwarmMemoryManager.js.map +1 -1
  250. package/dist/core/memory/SwarmMemoryManager.js +17 -7
  251. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  252. package/dist/core/memory/VersionHistory.js +17 -7
  253. package/dist/core/memory/VersionHistory.js.map +1 -1
  254. package/dist/coverage/coverage-collector.js +17 -7
  255. package/dist/coverage/coverage-collector.js.map +1 -1
  256. package/dist/coverage/coverage-reporter.js +17 -7
  257. package/dist/coverage/coverage-reporter.js.map +1 -1
  258. package/dist/mcp/handlers/advanced/api-breaking-changes.js +1 -2
  259. package/dist/mcp/handlers/advanced/api-breaking-changes.js.map +1 -1
  260. package/dist/mcp/handlers/advanced/mutation-test-execute.js +1 -2
  261. package/dist/mcp/handlers/advanced/mutation-test-execute.js.map +1 -1
  262. package/dist/mcp/handlers/advanced/production-incident-replay.js +1 -2
  263. package/dist/mcp/handlers/advanced/production-incident-replay.js.map +1 -1
  264. package/dist/mcp/handlers/advanced/production-rum-analyze.js +1 -2
  265. package/dist/mcp/handlers/advanced/production-rum-analyze.js.map +1 -1
  266. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +1 -2
  267. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +1 -1
  268. package/dist/mcp/handlers/advanced/requirements-validate.js +1 -2
  269. package/dist/mcp/handlers/advanced/requirements-validate.js.map +1 -1
  270. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js +1 -2
  271. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js.map +1 -1
  272. package/dist/mcp/handlers/analysis/coverageGapsDetect.js +1 -2
  273. package/dist/mcp/handlers/analysis/coverageGapsDetect.js.map +1 -1
  274. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +1 -2
  275. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +1 -1
  276. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js +1 -2
  277. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js.map +1 -1
  278. package/dist/mcp/handlers/analysis/securityScanComprehensive.js +1 -2
  279. package/dist/mcp/handlers/analysis/securityScanComprehensive.js.map +1 -1
  280. package/dist/mcp/handlers/chaos/chaos-inject-failure.js +3 -4
  281. package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
  282. package/dist/mcp/handlers/chaos/chaos-inject-latency.js +3 -4
  283. package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
  284. package/dist/mcp/handlers/chaos/chaos-resilience-test.js +3 -4
  285. package/dist/mcp/handlers/chaos/chaos-resilience-test.js.map +1 -1
  286. package/dist/mcp/handlers/integration/contract-validate.js +1 -2
  287. package/dist/mcp/handlers/integration/contract-validate.js.map +1 -1
  288. package/dist/mcp/handlers/integration/dependency-check.js +1 -2
  289. package/dist/mcp/handlers/integration/dependency-check.js.map +1 -1
  290. package/dist/mcp/handlers/integration/integration-test-orchestrate.js +1 -2
  291. package/dist/mcp/handlers/integration/integration-test-orchestrate.js.map +1 -1
  292. package/dist/mcp/handlers/test-execute.js +17 -7
  293. package/dist/mcp/handlers/test-execute.js.map +1 -1
  294. package/dist/mcp/server.js +3 -3
  295. package/dist/mcp/server.js.map +1 -1
  296. package/dist/mcp/services/AgentRegistry.js +3 -3
  297. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  298. package/dist/mcp/services/HookExecutor.d.ts +79 -6
  299. package/dist/mcp/services/HookExecutor.d.ts.map +1 -1
  300. package/dist/mcp/services/HookExecutor.js +313 -17
  301. package/dist/mcp/services/HookExecutor.js.map +1 -1
  302. package/dist/types/api-contract.types.js +1 -2
  303. package/dist/types/api-contract.types.js.map +1 -1
  304. package/dist/types/errors.d.ts.map +1 -1
  305. package/dist/types/errors.js +5 -5
  306. package/dist/types/errors.js.map +1 -1
  307. package/dist/types/hook.types.d.ts +147 -0
  308. package/dist/types/hook.types.d.ts.map +1 -0
  309. package/dist/types/hook.types.js +7 -0
  310. package/dist/types/hook.types.js.map +1 -0
  311. package/dist/types/index.d.ts +1 -0
  312. package/dist/types/index.d.ts.map +1 -1
  313. package/dist/types/index.js +16 -0
  314. package/dist/types/index.js.map +1 -1
  315. package/dist/types/memory-interfaces.d.ts +104 -0
  316. package/dist/types/memory-interfaces.d.ts.map +1 -0
  317. package/dist/types/memory-interfaces.js +9 -0
  318. package/dist/types/memory-interfaces.js.map +1 -0
  319. package/dist/utils/Config.d.ts +2 -2
  320. package/dist/utils/Config.d.ts.map +1 -1
  321. package/dist/utils/Config.js +17 -7
  322. package/dist/utils/Config.js.map +1 -1
  323. package/dist/utils/FakerDataGenerator.d.ts.map +1 -1
  324. package/dist/utils/SecurityScanner.js +17 -7
  325. package/dist/utils/SecurityScanner.js.map +1 -1
  326. package/dist/utils/TestFrameworkExecutor.js +17 -7
  327. package/dist/utils/TestFrameworkExecutor.js.map +1 -1
  328. package/dist/utils/validation.js +6 -7
  329. package/dist/utils/validation.js.map +1 -1
  330. package/package.json +19 -15
package/README.md CHANGED
@@ -21,9 +21,11 @@ A distributed fleet of specialized AI agents for comprehensive software testing,
21
21
 
22
22
  ### Autonomous Agent Fleet
23
23
  - **16 Specialized QE Agents**: Each agent is an expert in specific quality engineering domains
24
+ - **AQE Hooks System**: 100-500x faster coordination with zero external dependencies
24
25
  - **Intelligent Coordination**: Event-driven architecture with automatic task distribution
25
26
  - **Scalable**: From single developer projects to enterprise-scale testing infrastructure
26
27
  - **Self-Organizing**: Agents autonomously coordinate testing strategies
28
+ - **Type-Safe**: Full TypeScript type checking and IntelliSense support
27
29
 
28
30
  ### Comprehensive Testing
29
31
  - **AI-Powered Test Generation**: Generate comprehensive test suites automatically
@@ -69,13 +71,15 @@ Before using Agentic QE, you must have:
69
71
  - **npm**: 8.0 or higher
70
72
 
71
73
  #### Optional (Advanced Features)
72
- - **Claude Flow**: For advanced coordination
74
+ - **Claude Flow**: For optional MCP coordination features
73
75
  ```bash
74
76
  npm install -g @claude/flow
75
77
  # or
76
78
  npx claude-flow@alpha init --force
77
79
  ```
78
80
 
81
+ **Note**: AQE hooks system requires NO external dependencies. All coordination features are built-in with TypeScript.
82
+
79
83
  ### Installation Steps
80
84
 
81
85
  1. **Install Claude Code** globally or in your workspace
@@ -287,9 +291,36 @@ const tests = await testGen.execute({
287
291
 
288
292
  - **EventBus**: Real-time communication between agents
289
293
  - **Task Queue**: Priority-based task scheduling
290
- - **Memory Store**: Shared context and learning
294
+ - **Memory Store**: Shared context and learning (SwarmMemoryManager)
291
295
  - **Persistence**: SQLite for state, metrics, and audit trails
292
296
 
297
+ ### AQE Hooks System
298
+
299
+ **Zero Dependencies** - Built-in TypeScript hooks for agent coordination:
300
+
301
+ ```typescript
302
+ // Automatic lifecycle hooks in every agent (aqe-hooks protocol)
303
+ class QEAgent extends BaseAgent {
304
+ protected async onPreTask(data): Promise<void> { /* prepare */ }
305
+ protected async onPostTask(data): Promise<void> { /* validate */ }
306
+ protected async onTaskError(data): Promise<void> { /* recover */ }
307
+ }
308
+
309
+ // Advanced verification hooks
310
+ const hookManager = new VerificationHookManager(memoryStore);
311
+ await hookManager.executePreTaskVerification({ task, context });
312
+ await hookManager.executePostTaskValidation({ task, result });
313
+ ```
314
+
315
+ **Performance**: 100-500x faster than external hooks (<1ms vs 100-500ms)
316
+
317
+ **Features**:
318
+ - Full TypeScript type safety
319
+ - Direct SwarmMemoryManager integration
320
+ - Built-in RollbackManager support
321
+ - EventBus coordination
322
+ - Context engineering (pre/post tool-use bundles)
323
+
293
324
  ---
294
325
 
295
326
  ## 📖 Documentation
@@ -0,0 +1,157 @@
1
+ /**
2
+ * MemoryStoreAdapter - Bridges MemoryStore interface to SwarmMemoryManager
3
+ *
4
+ * This adapter provides type-safe compatibility between the MemoryStore interface
5
+ * used by BaseAgent and the SwarmMemoryManager expected by VerificationHookManager.
6
+ *
7
+ * Key Features:
8
+ * - Runtime validation of MemoryStore compatibility
9
+ * - Type-safe method delegation
10
+ * - Clear error messages for incompatible implementations
11
+ * - Full SwarmMemoryManager interface implementation
12
+ */
13
+ import { MemoryStore } from '../types';
14
+ import { ISwarmMemoryManager } from '../types/memory-interfaces';
15
+ import { StoreOptions, RetrieveOptions, DeleteOptions, MemoryEntry, Hint, Event, WorkflowState, Pattern, ConsensusProposal, PerformanceMetric, Artifact, Session, Checkpoint, AgentRegistration, GOAPGoal, GOAPAction, GOAPPlan, OODACycle } from '../core/memory/SwarmMemoryManager';
16
+ /**
17
+ * Adapter that wraps MemoryStore to provide ISwarmMemoryManager interface
18
+ */
19
+ export declare class MemoryStoreAdapter implements ISwarmMemoryManager {
20
+ private memoryStore;
21
+ private initialized;
22
+ constructor(memoryStore: MemoryStore);
23
+ /**
24
+ * Validates that MemoryStore has all required methods
25
+ * Throws clear error if incompatible
26
+ */
27
+ private validateCompatibility;
28
+ /**
29
+ * Initialize adapter (no-op, delegates to underlying MemoryStore)
30
+ */
31
+ initialize(): Promise<void>;
32
+ /**
33
+ * Store value with options
34
+ * Maps to MemoryStore.store() with TTL and partition support
35
+ */
36
+ store(key: string, value: any, options?: StoreOptions): Promise<void>;
37
+ /**
38
+ * Retrieve value with options
39
+ * Maps to MemoryStore.retrieve() with partition support
40
+ */
41
+ retrieve(key: string, options?: RetrieveOptions): Promise<any>;
42
+ /**
43
+ * Query entries matching pattern
44
+ * Note: MemoryStore doesn't have native pattern matching,
45
+ * so this returns empty array as safe fallback
46
+ */
47
+ query(pattern: string, options?: RetrieveOptions): Promise<MemoryEntry[]>;
48
+ /**
49
+ * Delete entry
50
+ * Maps to MemoryStore.delete() with partition support
51
+ */
52
+ delete(key: string, partition?: string, options?: DeleteOptions): Promise<void>;
53
+ /**
54
+ * Clear partition
55
+ * Maps to MemoryStore.clear() with namespace support
56
+ */
57
+ clear(partition?: string): Promise<void>;
58
+ /**
59
+ * Post hint to blackboard
60
+ * Stores as regular entry with hint: prefix
61
+ */
62
+ postHint(hint: {
63
+ key: string;
64
+ value: any;
65
+ ttl?: number;
66
+ }): Promise<void>;
67
+ /**
68
+ * Read hints matching pattern
69
+ * Returns empty array as MemoryStore doesn't support pattern matching
70
+ */
71
+ readHints(pattern: string): Promise<Hint[]>;
72
+ /**
73
+ * Clean expired entries
74
+ * No-op for basic MemoryStore (relies on TTL)
75
+ */
76
+ cleanExpired(): Promise<number>;
77
+ /**
78
+ * Close connection
79
+ * No-op for basic MemoryStore
80
+ */
81
+ close(): Promise<void>;
82
+ /**
83
+ * Get memory statistics
84
+ * Returns basic stats structure
85
+ */
86
+ stats(): Promise<{
87
+ totalEntries: number;
88
+ totalHints: number;
89
+ totalEvents: number;
90
+ totalWorkflows: number;
91
+ totalPatterns: number;
92
+ totalConsensus: number;
93
+ totalMetrics: number;
94
+ totalArtifacts: number;
95
+ totalSessions: number;
96
+ totalAgents: number;
97
+ totalGOAPGoals: number;
98
+ totalGOAPActions: number;
99
+ totalGOAPPlans: number;
100
+ totalOODACycles: number;
101
+ partitions: string[];
102
+ accessLevels: Record<string, number>;
103
+ }>;
104
+ storeEvent(event: Event): Promise<string>;
105
+ queryEvents(type: string): Promise<Event[]>;
106
+ getEventsBySource(source: string): Promise<Event[]>;
107
+ storeWorkflowState(workflow: WorkflowState): Promise<void>;
108
+ getWorkflowState(id: string): Promise<WorkflowState>;
109
+ updateWorkflowState(id: string, updates: Partial<WorkflowState>): Promise<void>;
110
+ queryWorkflowsByStatus(status: string): Promise<WorkflowState[]>;
111
+ storePattern(pattern: Pattern): Promise<string>;
112
+ getPattern(patternName: string): Promise<Pattern>;
113
+ incrementPatternUsage(patternName: string): Promise<void>;
114
+ queryPatternsByConfidence(threshold: number): Promise<Pattern[]>;
115
+ createConsensusProposal(proposal: ConsensusProposal): Promise<void>;
116
+ getConsensusProposal(id: string): Promise<ConsensusProposal>;
117
+ voteOnConsensus(proposalId: string, agentId: string): Promise<boolean>;
118
+ queryConsensusProposals(status: string): Promise<ConsensusProposal[]>;
119
+ storePerformanceMetric(metric: PerformanceMetric): Promise<string>;
120
+ queryPerformanceMetrics(metricName: string): Promise<PerformanceMetric[]>;
121
+ getMetricsByAgent(agentId: string): Promise<PerformanceMetric[]>;
122
+ getAverageMetric(metricName: string): Promise<number>;
123
+ createArtifact(artifact: Artifact): Promise<void>;
124
+ getArtifact(id: string): Promise<Artifact>;
125
+ queryArtifactsByKind(kind: string): Promise<Artifact[]>;
126
+ queryArtifactsByTag(tag: string): Promise<Artifact[]>;
127
+ createSession(session: Session): Promise<void>;
128
+ getSession(id: string): Promise<Session>;
129
+ addSessionCheckpoint(sessionId: string, checkpoint: Checkpoint): Promise<void>;
130
+ getLatestCheckpoint(sessionId: string): Promise<Checkpoint | undefined>;
131
+ markSessionResumed(sessionId: string): Promise<void>;
132
+ registerAgent(agent: AgentRegistration): Promise<void>;
133
+ getAgent(id: string): Promise<AgentRegistration>;
134
+ updateAgentStatus(agentId: string, status: 'active' | 'idle' | 'terminated'): Promise<void>;
135
+ queryAgentsByStatus(status: string): Promise<AgentRegistration[]>;
136
+ updateAgentPerformance(agentId: string, performance: any): Promise<void>;
137
+ storeGOAPGoal(goal: GOAPGoal): Promise<void>;
138
+ getGOAPGoal(id: string): Promise<GOAPGoal>;
139
+ storeGOAPAction(action: GOAPAction): Promise<void>;
140
+ getGOAPAction(id: string): Promise<GOAPAction>;
141
+ storeGOAPPlan(plan: GOAPPlan): Promise<void>;
142
+ getGOAPPlan(id: string): Promise<GOAPPlan>;
143
+ storeOODACycle(cycle: OODACycle): Promise<void>;
144
+ getOODACycle(id: string): Promise<OODACycle>;
145
+ updateOODAPhase(cycleId: string, phase: OODACycle['phase'], data: any): Promise<void>;
146
+ completeOODACycle(cycleId: string, result: any): Promise<void>;
147
+ queryOODACyclesByPhase(phase: string): Promise<OODACycle[]>;
148
+ storeACL(acl: any): Promise<void>;
149
+ getACL(resourceId: string): Promise<any | null>;
150
+ updateACL(resourceId: string, updates: any): Promise<void>;
151
+ grantPermission(resourceId: string, agentId: string, permissions: any[]): Promise<void>;
152
+ revokePermission(resourceId: string, agentId: string, permissions: any[]): Promise<void>;
153
+ blockAgent(resourceId: string, agentId: string): Promise<void>;
154
+ unblockAgent(resourceId: string, agentId: string): Promise<void>;
155
+ getAccessControl(): any;
156
+ }
157
+ //# sourceMappingURL=MemoryStoreAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStoreAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/MemoryStoreAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,433 @@
1
+ "use strict";
2
+ /**
3
+ * MemoryStoreAdapter - Bridges MemoryStore interface to SwarmMemoryManager
4
+ *
5
+ * This adapter provides type-safe compatibility between the MemoryStore interface
6
+ * used by BaseAgent and the SwarmMemoryManager expected by VerificationHookManager.
7
+ *
8
+ * Key Features:
9
+ * - Runtime validation of MemoryStore compatibility
10
+ * - Type-safe method delegation
11
+ * - Clear error messages for incompatible implementations
12
+ * - Full SwarmMemoryManager interface implementation
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MemoryStoreAdapter = void 0;
16
+ /**
17
+ * Adapter that wraps MemoryStore to provide ISwarmMemoryManager interface
18
+ */
19
+ class MemoryStoreAdapter {
20
+ constructor(memoryStore) {
21
+ this.memoryStore = memoryStore;
22
+ this.initialized = false;
23
+ this.validateCompatibility();
24
+ }
25
+ /**
26
+ * Validates that MemoryStore has all required methods
27
+ * Throws clear error if incompatible
28
+ */
29
+ validateCompatibility() {
30
+ const requiredMethods = ['store', 'retrieve', 'set', 'get', 'delete', 'clear'];
31
+ const missingMethods = [];
32
+ for (const method of requiredMethods) {
33
+ if (typeof this.memoryStore[method] !== 'function') {
34
+ missingMethods.push(method);
35
+ }
36
+ }
37
+ if (missingMethods.length > 0) {
38
+ throw new Error(`MemoryStore is missing required methods: ${missingMethods.join(', ')}. ` +
39
+ `Cannot create VerificationHookManager with incompatible MemoryStore.`);
40
+ }
41
+ }
42
+ /**
43
+ * Initialize adapter (no-op, delegates to underlying MemoryStore)
44
+ */
45
+ async initialize() {
46
+ this.initialized = true;
47
+ }
48
+ /**
49
+ * Store value with options
50
+ * Maps to MemoryStore.store() with TTL and partition support
51
+ */
52
+ async store(key, value, options = {}) {
53
+ const partition = options.partition || 'default';
54
+ const namespacedKey = partition !== 'default' ? `${partition}:${key}` : key;
55
+ await this.memoryStore.store(namespacedKey, value, options.ttl);
56
+ }
57
+ /**
58
+ * Retrieve value with options
59
+ * Maps to MemoryStore.retrieve() with partition support
60
+ */
61
+ async retrieve(key, options = {}) {
62
+ const partition = options.partition || 'default';
63
+ const namespacedKey = partition !== 'default' ? `${partition}:${key}` : key;
64
+ return await this.memoryStore.retrieve(namespacedKey);
65
+ }
66
+ /**
67
+ * Query entries matching pattern
68
+ * Note: MemoryStore doesn't have native pattern matching,
69
+ * so this returns empty array as safe fallback
70
+ */
71
+ async query(pattern, options = {}) {
72
+ // MemoryStore doesn't support pattern queries
73
+ // Return empty array as safe fallback
74
+ return [];
75
+ }
76
+ /**
77
+ * Delete entry
78
+ * Maps to MemoryStore.delete() with partition support
79
+ */
80
+ async delete(key, partition = 'default', options = {}) {
81
+ const namespacedKey = partition !== 'default' ? `${partition}:${key}` : key;
82
+ await this.memoryStore.delete(namespacedKey);
83
+ }
84
+ /**
85
+ * Clear partition
86
+ * Maps to MemoryStore.clear() with namespace support
87
+ */
88
+ async clear(partition = 'default') {
89
+ await this.memoryStore.clear(partition);
90
+ }
91
+ /**
92
+ * Post hint to blackboard
93
+ * Stores as regular entry with hint: prefix
94
+ */
95
+ async postHint(hint) {
96
+ await this.memoryStore.store(`hint:${hint.key}`, hint.value, hint.ttl);
97
+ }
98
+ /**
99
+ * Read hints matching pattern
100
+ * Returns empty array as MemoryStore doesn't support pattern matching
101
+ */
102
+ async readHints(pattern) {
103
+ // MemoryStore doesn't support pattern queries
104
+ return [];
105
+ }
106
+ /**
107
+ * Clean expired entries
108
+ * No-op for basic MemoryStore (relies on TTL)
109
+ */
110
+ async cleanExpired() {
111
+ return 0;
112
+ }
113
+ /**
114
+ * Close connection
115
+ * No-op for basic MemoryStore
116
+ */
117
+ async close() {
118
+ // No-op
119
+ }
120
+ /**
121
+ * Get memory statistics
122
+ * Returns basic stats structure
123
+ */
124
+ async stats() {
125
+ return {
126
+ totalEntries: 0,
127
+ totalHints: 0,
128
+ totalEvents: 0,
129
+ totalWorkflows: 0,
130
+ totalPatterns: 0,
131
+ totalConsensus: 0,
132
+ totalMetrics: 0,
133
+ totalArtifacts: 0,
134
+ totalSessions: 0,
135
+ totalAgents: 0,
136
+ totalGOAPGoals: 0,
137
+ totalGOAPActions: 0,
138
+ totalGOAPPlans: 0,
139
+ totalOODACycles: 0,
140
+ partitions: ['default'],
141
+ accessLevels: {}
142
+ };
143
+ }
144
+ // ============================================================================
145
+ // Table-specific methods (delegated with basic implementation)
146
+ // ============================================================================
147
+ async storeEvent(event) {
148
+ const id = event.id || `event-${Date.now()}`;
149
+ await this.store(`events:${id}`, event, { partition: 'events', ttl: event.ttl });
150
+ return id;
151
+ }
152
+ async queryEvents(type) {
153
+ return [];
154
+ }
155
+ async getEventsBySource(source) {
156
+ return [];
157
+ }
158
+ async storeWorkflowState(workflow) {
159
+ await this.store(`workflow:${workflow.id}`, workflow, { partition: 'workflow_state' });
160
+ }
161
+ async getWorkflowState(id) {
162
+ const data = await this.retrieve(`workflow:${id}`, { partition: 'workflow_state' });
163
+ if (!data) {
164
+ throw new Error(`Workflow state not found: ${id}`);
165
+ }
166
+ return data;
167
+ }
168
+ async updateWorkflowState(id, updates) {
169
+ const current = await this.getWorkflowState(id);
170
+ await this.storeWorkflowState({ ...current, ...updates });
171
+ }
172
+ async queryWorkflowsByStatus(status) {
173
+ return [];
174
+ }
175
+ async storePattern(pattern) {
176
+ const id = pattern.id || `pattern-${Date.now()}`;
177
+ await this.store(`patterns:${id}`, pattern, { partition: 'patterns', ttl: pattern.ttl });
178
+ return id;
179
+ }
180
+ async getPattern(patternName) {
181
+ const data = await this.retrieve(`patterns:${patternName}`, { partition: 'patterns' });
182
+ if (!data) {
183
+ throw new Error(`Pattern not found: ${patternName}`);
184
+ }
185
+ return data;
186
+ }
187
+ async incrementPatternUsage(patternName) {
188
+ try {
189
+ const pattern = await this.getPattern(patternName);
190
+ pattern.usageCount++;
191
+ await this.storePattern(pattern);
192
+ }
193
+ catch {
194
+ // Pattern doesn't exist, ignore
195
+ }
196
+ }
197
+ async queryPatternsByConfidence(threshold) {
198
+ return [];
199
+ }
200
+ async createConsensusProposal(proposal) {
201
+ await this.store(`consensus:${proposal.id}`, proposal, { partition: 'consensus', ttl: proposal.ttl });
202
+ }
203
+ async getConsensusProposal(id) {
204
+ const data = await this.retrieve(`consensus:${id}`, { partition: 'consensus' });
205
+ if (!data) {
206
+ throw new Error(`Consensus proposal not found: ${id}`);
207
+ }
208
+ return data;
209
+ }
210
+ async voteOnConsensus(proposalId, agentId) {
211
+ const proposal = await this.getConsensusProposal(proposalId);
212
+ if (!proposal.votes.includes(agentId)) {
213
+ proposal.votes.push(agentId);
214
+ }
215
+ const approved = proposal.votes.length >= proposal.quorum;
216
+ if (approved) {
217
+ proposal.status = 'approved';
218
+ }
219
+ await this.createConsensusProposal(proposal);
220
+ return approved;
221
+ }
222
+ async queryConsensusProposals(status) {
223
+ return [];
224
+ }
225
+ async storePerformanceMetric(metric) {
226
+ const id = metric.id || `metric-${Date.now()}`;
227
+ await this.store(`metrics:${id}`, metric, { partition: 'performance_metrics' });
228
+ return id;
229
+ }
230
+ async queryPerformanceMetrics(metricName) {
231
+ return [];
232
+ }
233
+ async getMetricsByAgent(agentId) {
234
+ return [];
235
+ }
236
+ async getAverageMetric(metricName) {
237
+ return 0;
238
+ }
239
+ async createArtifact(artifact) {
240
+ await this.store(`artifact:${artifact.id}`, artifact, { partition: 'artifacts' });
241
+ }
242
+ async getArtifact(id) {
243
+ const data = await this.retrieve(`artifact:${id}`, { partition: 'artifacts' });
244
+ if (!data) {
245
+ throw new Error(`Artifact not found: ${id}`);
246
+ }
247
+ return data;
248
+ }
249
+ async queryArtifactsByKind(kind) {
250
+ return [];
251
+ }
252
+ async queryArtifactsByTag(tag) {
253
+ return [];
254
+ }
255
+ async createSession(session) {
256
+ await this.store(`session:${session.id}`, session, { partition: 'sessions' });
257
+ }
258
+ async getSession(id) {
259
+ const data = await this.retrieve(`session:${id}`, { partition: 'sessions' });
260
+ if (!data) {
261
+ throw new Error(`Session not found: ${id}`);
262
+ }
263
+ return data;
264
+ }
265
+ async addSessionCheckpoint(sessionId, checkpoint) {
266
+ const session = await this.getSession(sessionId);
267
+ session.checkpoints.push(checkpoint);
268
+ await this.createSession(session);
269
+ }
270
+ async getLatestCheckpoint(sessionId) {
271
+ const session = await this.getSession(sessionId);
272
+ return session.checkpoints.length > 0
273
+ ? session.checkpoints[session.checkpoints.length - 1]
274
+ : undefined;
275
+ }
276
+ async markSessionResumed(sessionId) {
277
+ const session = await this.getSession(sessionId);
278
+ session.lastResumed = Date.now();
279
+ await this.createSession(session);
280
+ }
281
+ async registerAgent(agent) {
282
+ await this.store(`agent:${agent.id}`, agent, { partition: 'agent_registry' });
283
+ }
284
+ async getAgent(id) {
285
+ const data = await this.retrieve(`agent:${id}`, { partition: 'agent_registry' });
286
+ if (!data) {
287
+ throw new Error(`Agent not found: ${id}`);
288
+ }
289
+ return data;
290
+ }
291
+ async updateAgentStatus(agentId, status) {
292
+ const agent = await this.getAgent(agentId);
293
+ agent.status = status;
294
+ agent.updatedAt = Date.now();
295
+ await this.registerAgent(agent);
296
+ }
297
+ async queryAgentsByStatus(status) {
298
+ return [];
299
+ }
300
+ async updateAgentPerformance(agentId, performance) {
301
+ const agent = await this.getAgent(agentId);
302
+ agent.performance = performance;
303
+ agent.updatedAt = Date.now();
304
+ await this.registerAgent(agent);
305
+ }
306
+ async storeGOAPGoal(goal) {
307
+ await this.store(`goap_goal:${goal.id}`, goal, { partition: 'goap_goals' });
308
+ }
309
+ async getGOAPGoal(id) {
310
+ const data = await this.retrieve(`goap_goal:${id}`, { partition: 'goap_goals' });
311
+ if (!data) {
312
+ throw new Error(`GOAP goal not found: ${id}`);
313
+ }
314
+ return data;
315
+ }
316
+ async storeGOAPAction(action) {
317
+ await this.store(`goap_action:${action.id}`, action, { partition: 'goap_actions' });
318
+ }
319
+ async getGOAPAction(id) {
320
+ const data = await this.retrieve(`goap_action:${id}`, { partition: 'goap_actions' });
321
+ if (!data) {
322
+ throw new Error(`GOAP action not found: ${id}`);
323
+ }
324
+ return data;
325
+ }
326
+ async storeGOAPPlan(plan) {
327
+ await this.store(`goap_plan:${plan.id}`, plan, { partition: 'goap_plans' });
328
+ }
329
+ async getGOAPPlan(id) {
330
+ const data = await this.retrieve(`goap_plan:${id}`, { partition: 'goap_plans' });
331
+ if (!data) {
332
+ throw new Error(`GOAP plan not found: ${id}`);
333
+ }
334
+ return data;
335
+ }
336
+ async storeOODACycle(cycle) {
337
+ await this.store(`ooda_cycle:${cycle.id}`, cycle, { partition: 'ooda_cycles' });
338
+ }
339
+ async getOODACycle(id) {
340
+ const data = await this.retrieve(`ooda_cycle:${id}`, { partition: 'ooda_cycles' });
341
+ if (!data) {
342
+ throw new Error(`OODA cycle not found: ${id}`);
343
+ }
344
+ return data;
345
+ }
346
+ async updateOODAPhase(cycleId, phase, data) {
347
+ const cycle = await this.getOODACycle(cycleId);
348
+ cycle.phase = phase;
349
+ switch (phase) {
350
+ case 'observe':
351
+ cycle.observations = data;
352
+ break;
353
+ case 'orient':
354
+ cycle.orientation = data;
355
+ break;
356
+ case 'decide':
357
+ cycle.decision = data;
358
+ break;
359
+ case 'act':
360
+ cycle.action = data;
361
+ break;
362
+ }
363
+ await this.storeOODACycle(cycle);
364
+ }
365
+ async completeOODACycle(cycleId, result) {
366
+ const cycle = await this.getOODACycle(cycleId);
367
+ cycle.completed = true;
368
+ cycle.result = result;
369
+ await this.storeOODACycle(cycle);
370
+ }
371
+ async queryOODACyclesByPhase(phase) {
372
+ return [];
373
+ }
374
+ // ACL methods (basic implementation)
375
+ async storeACL(acl) {
376
+ await this.store(`acl:${acl.resourceId}`, acl, { partition: 'acl' });
377
+ }
378
+ async getACL(resourceId) {
379
+ return await this.retrieve(`acl:${resourceId}`, { partition: 'acl' });
380
+ }
381
+ async updateACL(resourceId, updates) {
382
+ const existing = await this.getACL(resourceId);
383
+ if (!existing) {
384
+ throw new Error(`ACL not found for resource: ${resourceId}`);
385
+ }
386
+ await this.storeACL({ ...existing, ...updates });
387
+ }
388
+ async grantPermission(resourceId, agentId, permissions) {
389
+ const acl = await this.getACL(resourceId);
390
+ if (!acl) {
391
+ throw new Error(`ACL not found for resource: ${resourceId}`);
392
+ }
393
+ acl.grantedPermissions = acl.grantedPermissions || {};
394
+ acl.grantedPermissions[agentId] = permissions;
395
+ await this.storeACL(acl);
396
+ }
397
+ async revokePermission(resourceId, agentId, permissions) {
398
+ const acl = await this.getACL(resourceId);
399
+ if (!acl) {
400
+ throw new Error(`ACL not found for resource: ${resourceId}`);
401
+ }
402
+ if (acl.grantedPermissions && acl.grantedPermissions[agentId]) {
403
+ delete acl.grantedPermissions[agentId];
404
+ }
405
+ await this.storeACL(acl);
406
+ }
407
+ async blockAgent(resourceId, agentId) {
408
+ const acl = await this.getACL(resourceId);
409
+ if (!acl) {
410
+ throw new Error(`ACL not found for resource: ${resourceId}`);
411
+ }
412
+ acl.blockedAgents = acl.blockedAgents || [];
413
+ if (!acl.blockedAgents.includes(agentId)) {
414
+ acl.blockedAgents.push(agentId);
415
+ }
416
+ await this.storeACL(acl);
417
+ }
418
+ async unblockAgent(resourceId, agentId) {
419
+ const acl = await this.getACL(resourceId);
420
+ if (!acl) {
421
+ throw new Error(`ACL not found for resource: ${resourceId}`);
422
+ }
423
+ if (acl.blockedAgents) {
424
+ acl.blockedAgents = acl.blockedAgents.filter((id) => id !== agentId);
425
+ }
426
+ await this.storeACL(acl);
427
+ }
428
+ getAccessControl() {
429
+ return null; // Not implemented in basic adapter
430
+ }
431
+ }
432
+ exports.MemoryStoreAdapter = MemoryStoreAdapter;
433
+ //# sourceMappingURL=MemoryStoreAdapter.js.map