agentic-qe 1.0.0

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 (528) hide show
  1. package/.claude/agents/analysis/code-analyzer.md +209 -0
  2. package/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  3. package/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  4. package/.claude/agents/base-template-generator.md +42 -0
  5. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  6. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  7. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  8. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  9. package/.claude/agents/consensus/quorum-manager.md +823 -0
  10. package/.claude/agents/consensus/raft-manager.md +63 -0
  11. package/.claude/agents/consensus/security-manager.md +622 -0
  12. package/.claude/agents/core/coder.md +266 -0
  13. package/.claude/agents/core/planner.md +168 -0
  14. package/.claude/agents/core/researcher.md +190 -0
  15. package/.claude/agents/core/reviewer.md +326 -0
  16. package/.claude/agents/core/tester.md +319 -0
  17. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  18. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  19. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  20. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  21. package/.claude/agents/flow-nexus/app-store.md +88 -0
  22. package/.claude/agents/flow-nexus/authentication.md +69 -0
  23. package/.claude/agents/flow-nexus/challenges.md +81 -0
  24. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  25. package/.claude/agents/flow-nexus/payments.md +83 -0
  26. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  27. package/.claude/agents/flow-nexus/swarm.md +76 -0
  28. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  29. package/.claude/agents/flow-nexus/workflow.md +84 -0
  30. package/.claude/agents/github/code-review-swarm.md +538 -0
  31. package/.claude/agents/github/github-modes.md +173 -0
  32. package/.claude/agents/github/issue-tracker.md +319 -0
  33. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  34. package/.claude/agents/github/pr-manager.md +191 -0
  35. package/.claude/agents/github/project-board-sync.md +509 -0
  36. package/.claude/agents/github/release-manager.md +367 -0
  37. package/.claude/agents/github/release-swarm.md +583 -0
  38. package/.claude/agents/github/repo-architect.md +398 -0
  39. package/.claude/agents/github/swarm-issue.md +573 -0
  40. package/.claude/agents/github/swarm-pr.md +428 -0
  41. package/.claude/agents/github/sync-coordinator.md +452 -0
  42. package/.claude/agents/github/workflow-automation.md +635 -0
  43. package/.claude/agents/goal/code-goal-planner.md +446 -0
  44. package/.claude/agents/goal/goal-planner.md +168 -0
  45. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +130 -0
  46. package/.claude/agents/hive-mind/queen-coordinator.md +203 -0
  47. package/.claude/agents/hive-mind/scout-explorer.md +242 -0
  48. package/.claude/agents/hive-mind/swarm-memory-manager.md +193 -0
  49. package/.claude/agents/hive-mind/worker-specialist.md +217 -0
  50. package/.claude/agents/neural/safla-neural.md +74 -0
  51. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  52. package/.claude/agents/optimization/load-balancer.md +431 -0
  53. package/.claude/agents/optimization/performance-monitor.md +672 -0
  54. package/.claude/agents/optimization/resource-allocator.md +674 -0
  55. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  56. package/.claude/agents/qe-api-contract-validator.md +1088 -0
  57. package/.claude/agents/qe-chaos-engineer.md +736 -0
  58. package/.claude/agents/qe-coverage-analyzer.md +282 -0
  59. package/.claude/agents/qe-deployment-readiness.md +1109 -0
  60. package/.claude/agents/qe-flaky-test-hunter.md +1121 -0
  61. package/.claude/agents/qe-fleet-commander.md +641 -0
  62. package/.claude/agents/qe-performance-tester.md +354 -0
  63. package/.claude/agents/qe-production-intelligence.md +1162 -0
  64. package/.claude/agents/qe-quality-gate.md +294 -0
  65. package/.claude/agents/qe-regression-risk-analyzer.md +947 -0
  66. package/.claude/agents/qe-requirements-validator.md +691 -0
  67. package/.claude/agents/qe-security-scanner.md +430 -0
  68. package/.claude/agents/qe-test-data-architect.md +1007 -0
  69. package/.claude/agents/qe-test-executor.md +365 -0
  70. package/.claude/agents/qe-test-generator.md +332 -0
  71. package/.claude/agents/qe-visual-tester.md +754 -0
  72. package/.claude/agents/sparc/architecture.md +472 -0
  73. package/.claude/agents/sparc/pseudocode.md +318 -0
  74. package/.claude/agents/sparc/refinement.md +525 -0
  75. package/.claude/agents/sparc/specification.md +276 -0
  76. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  77. package/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  78. package/.claude/agents/swarm/hierarchical-coordinator.md +327 -0
  79. package/.claude/agents/swarm/mesh-coordinator.md +392 -0
  80. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  81. package/.claude/agents/templates/coordinator-swarm-init.md +105 -0
  82. package/.claude/agents/templates/github-pr-manager.md +177 -0
  83. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  84. package/.claude/agents/templates/memory-coordinator.md +187 -0
  85. package/.claude/agents/templates/migration-plan.md +746 -0
  86. package/.claude/agents/templates/orchestrator-task.md +139 -0
  87. package/.claude/agents/templates/performance-analyzer.md +199 -0
  88. package/.claude/agents/templates/sparc-coordinator.md +183 -0
  89. package/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  90. package/.claude/agents/testing/validation/production-validator.md +395 -0
  91. package/.claude/aqe-fleet.json +47 -0
  92. package/.claude/commands/README.md +106 -0
  93. package/.claude/commands/agents/README.md +10 -0
  94. package/.claude/commands/agents/agent-capabilities.md +21 -0
  95. package/.claude/commands/agents/agent-coordination.md +28 -0
  96. package/.claude/commands/agents/agent-spawning.md +28 -0
  97. package/.claude/commands/agents/agent-types.md +26 -0
  98. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  99. package/.claude/commands/analysis/README.md +9 -0
  100. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  101. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  102. package/.claude/commands/analysis/performance-report.md +25 -0
  103. package/.claude/commands/analysis/token-efficiency.md +45 -0
  104. package/.claude/commands/analysis/token-usage.md +25 -0
  105. package/.claude/commands/aqe-analyze.md +344 -0
  106. package/.claude/commands/aqe-benchmark.md +466 -0
  107. package/.claude/commands/aqe-chaos.md +443 -0
  108. package/.claude/commands/aqe-execute.md +322 -0
  109. package/.claude/commands/aqe-fleet-status.md +431 -0
  110. package/.claude/commands/aqe-generate.md +301 -0
  111. package/.claude/commands/aqe-optimize.md +361 -0
  112. package/.claude/commands/aqe-report.md +411 -0
  113. package/.claude/commands/automation/README.md +9 -0
  114. package/.claude/commands/automation/auto-agent.md +122 -0
  115. package/.claude/commands/automation/self-healing.md +106 -0
  116. package/.claude/commands/automation/session-memory.md +90 -0
  117. package/.claude/commands/automation/smart-agents.md +73 -0
  118. package/.claude/commands/automation/smart-spawn.md +25 -0
  119. package/.claude/commands/automation/workflow-select.md +25 -0
  120. package/.claude/commands/coordination/README.md +9 -0
  121. package/.claude/commands/coordination/agent-spawn.md +25 -0
  122. package/.claude/commands/coordination/init.md +44 -0
  123. package/.claude/commands/coordination/orchestrate.md +43 -0
  124. package/.claude/commands/coordination/spawn.md +45 -0
  125. package/.claude/commands/coordination/swarm-init.md +85 -0
  126. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  127. package/.claude/commands/flow-nexus/app-store.md +124 -0
  128. package/.claude/commands/flow-nexus/challenges.md +120 -0
  129. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  130. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  131. package/.claude/commands/flow-nexus/payments.md +116 -0
  132. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  133. package/.claude/commands/flow-nexus/swarm.md +87 -0
  134. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  135. package/.claude/commands/flow-nexus/workflow.md +115 -0
  136. package/.claude/commands/github/README.md +11 -0
  137. package/.claude/commands/github/code-review-swarm.md +514 -0
  138. package/.claude/commands/github/code-review.md +25 -0
  139. package/.claude/commands/github/github-modes.md +147 -0
  140. package/.claude/commands/github/github-swarm.md +121 -0
  141. package/.claude/commands/github/issue-tracker.md +292 -0
  142. package/.claude/commands/github/issue-triage.md +25 -0
  143. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  144. package/.claude/commands/github/pr-enhance.md +26 -0
  145. package/.claude/commands/github/pr-manager.md +170 -0
  146. package/.claude/commands/github/project-board-sync.md +471 -0
  147. package/.claude/commands/github/release-manager.md +338 -0
  148. package/.claude/commands/github/release-swarm.md +544 -0
  149. package/.claude/commands/github/repo-analyze.md +25 -0
  150. package/.claude/commands/github/repo-architect.md +367 -0
  151. package/.claude/commands/github/swarm-issue.md +482 -0
  152. package/.claude/commands/github/swarm-pr.md +285 -0
  153. package/.claude/commands/github/sync-coordinator.md +301 -0
  154. package/.claude/commands/github/workflow-automation.md +442 -0
  155. package/.claude/commands/hive-mind/README.md +17 -0
  156. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  157. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  158. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  159. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  160. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  161. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  162. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  163. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  164. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  165. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  166. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  167. package/.claude/commands/hooks/README.md +11 -0
  168. package/.claude/commands/hooks/overview.md +132 -0
  169. package/.claude/commands/hooks/post-edit.md +117 -0
  170. package/.claude/commands/hooks/post-task.md +112 -0
  171. package/.claude/commands/hooks/pre-edit.md +113 -0
  172. package/.claude/commands/hooks/pre-task.md +111 -0
  173. package/.claude/commands/hooks/session-end.md +118 -0
  174. package/.claude/commands/hooks/setup.md +103 -0
  175. package/.claude/commands/memory/README.md +9 -0
  176. package/.claude/commands/memory/memory-persist.md +25 -0
  177. package/.claude/commands/memory/memory-search.md +25 -0
  178. package/.claude/commands/memory/memory-usage.md +25 -0
  179. package/.claude/commands/memory/neural.md +47 -0
  180. package/.claude/commands/memory/usage.md +46 -0
  181. package/.claude/commands/monitoring/README.md +9 -0
  182. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  183. package/.claude/commands/monitoring/agents.md +44 -0
  184. package/.claude/commands/monitoring/real-time-view.md +25 -0
  185. package/.claude/commands/monitoring/status.md +46 -0
  186. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  187. package/.claude/commands/optimization/README.md +9 -0
  188. package/.claude/commands/optimization/auto-topology.md +62 -0
  189. package/.claude/commands/optimization/cache-manage.md +25 -0
  190. package/.claude/commands/optimization/parallel-execute.md +25 -0
  191. package/.claude/commands/optimization/parallel-execution.md +50 -0
  192. package/.claude/commands/optimization/topology-optimize.md +25 -0
  193. package/.claude/commands/pair/commands.md +546 -0
  194. package/.claude/commands/pair/config.md +510 -0
  195. package/.claude/commands/pair/examples.md +512 -0
  196. package/.claude/commands/pair/modes.md +348 -0
  197. package/.claude/commands/pair/session.md +407 -0
  198. package/.claude/commands/pair/start.md +209 -0
  199. package/.claude/commands/sparc/analyzer.md +52 -0
  200. package/.claude/commands/sparc/architect.md +53 -0
  201. package/.claude/commands/sparc/batch-executor.md +54 -0
  202. package/.claude/commands/sparc/coder.md +54 -0
  203. package/.claude/commands/sparc/debugger.md +54 -0
  204. package/.claude/commands/sparc/designer.md +53 -0
  205. package/.claude/commands/sparc/documenter.md +54 -0
  206. package/.claude/commands/sparc/innovator.md +54 -0
  207. package/.claude/commands/sparc/memory-manager.md +54 -0
  208. package/.claude/commands/sparc/optimizer.md +54 -0
  209. package/.claude/commands/sparc/orchestrator.md +132 -0
  210. package/.claude/commands/sparc/researcher.md +54 -0
  211. package/.claude/commands/sparc/reviewer.md +54 -0
  212. package/.claude/commands/sparc/sparc-modes.md +174 -0
  213. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  214. package/.claude/commands/sparc/tdd.md +54 -0
  215. package/.claude/commands/sparc/tester.md +54 -0
  216. package/.claude/commands/sparc/workflow-manager.md +54 -0
  217. package/.claude/commands/stream-chain/pipeline.md +121 -0
  218. package/.claude/commands/stream-chain/run.md +70 -0
  219. package/.claude/commands/swarm/README.md +15 -0
  220. package/.claude/commands/swarm/analysis.md +95 -0
  221. package/.claude/commands/swarm/development.md +96 -0
  222. package/.claude/commands/swarm/examples.md +168 -0
  223. package/.claude/commands/swarm/maintenance.md +102 -0
  224. package/.claude/commands/swarm/optimization.md +117 -0
  225. package/.claude/commands/swarm/research.md +136 -0
  226. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  227. package/.claude/commands/swarm/swarm-background.md +8 -0
  228. package/.claude/commands/swarm/swarm-init.md +19 -0
  229. package/.claude/commands/swarm/swarm-modes.md +8 -0
  230. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  231. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  232. package/.claude/commands/swarm/swarm-status.md +8 -0
  233. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  234. package/.claude/commands/swarm/swarm.md +27 -0
  235. package/.claude/commands/swarm/testing.md +131 -0
  236. package/.claude/commands/training/README.md +9 -0
  237. package/.claude/commands/training/model-update.md +25 -0
  238. package/.claude/commands/training/neural-patterns.md +74 -0
  239. package/.claude/commands/training/neural-train.md +25 -0
  240. package/.claude/commands/training/pattern-learn.md +25 -0
  241. package/.claude/commands/training/specialization.md +63 -0
  242. package/.claude/commands/truth/start.md +143 -0
  243. package/.claude/commands/verify/check.md +50 -0
  244. package/.claude/commands/verify/start.md +128 -0
  245. package/.claude/commands/workflows/README.md +9 -0
  246. package/.claude/commands/workflows/development.md +78 -0
  247. package/.claude/commands/workflows/research.md +63 -0
  248. package/.claude/commands/workflows/workflow-create.md +25 -0
  249. package/.claude/commands/workflows/workflow-execute.md +25 -0
  250. package/.claude/commands/workflows/workflow-export.md +25 -0
  251. package/.claude/helpers/checkpoint-manager.sh +251 -0
  252. package/.claude/helpers/github-safe.js +106 -0
  253. package/.claude/helpers/github-setup.sh +28 -0
  254. package/.claude/helpers/quick-start.sh +19 -0
  255. package/.claude/helpers/setup-mcp.sh +18 -0
  256. package/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
  257. package/.claude/settings.json +114 -0
  258. package/.claude/settings.local.json +10 -0
  259. package/CONTRIBUTING.md +897 -0
  260. package/LICENSE +21 -0
  261. package/README.md +632 -0
  262. package/bin/aqe +959 -0
  263. package/config/fleet.yaml +50 -0
  264. package/dist/agents/ApiContractValidatorAgent.d.ts +222 -0
  265. package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -0
  266. package/dist/agents/ApiContractValidatorAgent.js +787 -0
  267. package/dist/agents/ApiContractValidatorAgent.js.map +1 -0
  268. package/dist/agents/BaseAgent.d.ts +147 -0
  269. package/dist/agents/BaseAgent.d.ts.map +1 -0
  270. package/dist/agents/BaseAgent.js +374 -0
  271. package/dist/agents/BaseAgent.js.map +1 -0
  272. package/dist/agents/CoverageAnalyzerAgent.d.ts +103 -0
  273. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -0
  274. package/dist/agents/CoverageAnalyzerAgent.js +466 -0
  275. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -0
  276. package/dist/agents/DeploymentReadinessAgent.d.ts +244 -0
  277. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -0
  278. package/dist/agents/DeploymentReadinessAgent.js +974 -0
  279. package/dist/agents/DeploymentReadinessAgent.js.map +1 -0
  280. package/dist/agents/FlakyTestHunterAgent.d.ts +172 -0
  281. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -0
  282. package/dist/agents/FlakyTestHunterAgent.js +867 -0
  283. package/dist/agents/FlakyTestHunterAgent.js.map +1 -0
  284. package/dist/agents/FleetCommanderAgent.d.ts +154 -0
  285. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -0
  286. package/dist/agents/FleetCommanderAgent.js +924 -0
  287. package/dist/agents/FleetCommanderAgent.js.map +1 -0
  288. package/dist/agents/PerformanceTesterAgent.d.ts +194 -0
  289. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -0
  290. package/dist/agents/PerformanceTesterAgent.js +972 -0
  291. package/dist/agents/PerformanceTesterAgent.js.map +1 -0
  292. package/dist/agents/ProductionIntelligenceAgent.d.ts +224 -0
  293. package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -0
  294. package/dist/agents/ProductionIntelligenceAgent.js +856 -0
  295. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -0
  296. package/dist/agents/QualityAnalyzerAgent.d.ts +67 -0
  297. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -0
  298. package/dist/agents/QualityAnalyzerAgent.js +453 -0
  299. package/dist/agents/QualityAnalyzerAgent.js.map +1 -0
  300. package/dist/agents/QualityGateAgent.d.ts +104 -0
  301. package/dist/agents/QualityGateAgent.d.ts.map +1 -0
  302. package/dist/agents/QualityGateAgent.js +522 -0
  303. package/dist/agents/QualityGateAgent.js.map +1 -0
  304. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +274 -0
  305. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -0
  306. package/dist/agents/RegressionRiskAnalyzerAgent.js +1076 -0
  307. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -0
  308. package/dist/agents/RequirementsValidatorAgent.d.ts +195 -0
  309. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -0
  310. package/dist/agents/RequirementsValidatorAgent.js +992 -0
  311. package/dist/agents/RequirementsValidatorAgent.js.map +1 -0
  312. package/dist/agents/SecurityScannerAgent.d.ts +126 -0
  313. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -0
  314. package/dist/agents/SecurityScannerAgent.js +695 -0
  315. package/dist/agents/SecurityScannerAgent.js.map +1 -0
  316. package/dist/agents/TestDataArchitectAgent.d.ts +452 -0
  317. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -0
  318. package/dist/agents/TestDataArchitectAgent.js +1346 -0
  319. package/dist/agents/TestDataArchitectAgent.js.map +1 -0
  320. package/dist/agents/TestExecutorAgent.d.ts +101 -0
  321. package/dist/agents/TestExecutorAgent.d.ts.map +1 -0
  322. package/dist/agents/TestExecutorAgent.js +730 -0
  323. package/dist/agents/TestExecutorAgent.js.map +1 -0
  324. package/dist/agents/TestGeneratorAgent.d.ts +109 -0
  325. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -0
  326. package/dist/agents/TestGeneratorAgent.js +450 -0
  327. package/dist/agents/TestGeneratorAgent.js.map +1 -0
  328. package/dist/agents/index.d.ts +51 -0
  329. package/dist/agents/index.d.ts.map +1 -0
  330. package/dist/agents/index.js +738 -0
  331. package/dist/agents/index.js.map +1 -0
  332. package/dist/cli/commands/analyze.d.ts +32 -0
  333. package/dist/cli/commands/analyze.d.ts.map +1 -0
  334. package/dist/cli/commands/analyze.js +764 -0
  335. package/dist/cli/commands/analyze.js.map +1 -0
  336. package/dist/cli/commands/fleet.d.ts +36 -0
  337. package/dist/cli/commands/fleet.d.ts.map +1 -0
  338. package/dist/cli/commands/fleet.js +745 -0
  339. package/dist/cli/commands/fleet.js.map +1 -0
  340. package/dist/cli/commands/generate.d.ts +24 -0
  341. package/dist/cli/commands/generate.d.ts.map +1 -0
  342. package/dist/cli/commands/generate.js +424 -0
  343. package/dist/cli/commands/generate.js.map +1 -0
  344. package/dist/cli/commands/init.d.ts +17 -0
  345. package/dist/cli/commands/init.d.ts.map +1 -0
  346. package/dist/cli/commands/init.js +570 -0
  347. package/dist/cli/commands/init.js.map +1 -0
  348. package/dist/cli/commands/run.d.ts +25 -0
  349. package/dist/cli/commands/run.d.ts.map +1 -0
  350. package/dist/cli/commands/run.js +558 -0
  351. package/dist/cli/commands/run.js.map +1 -0
  352. package/dist/cli/index-spec.d.ts +3 -0
  353. package/dist/cli/index-spec.d.ts.map +1 -0
  354. package/dist/cli/index-spec.js +154 -0
  355. package/dist/cli/index-spec.js.map +1 -0
  356. package/dist/cli/index-working.d.ts +7 -0
  357. package/dist/cli/index-working.d.ts.map +1 -0
  358. package/dist/cli/index-working.js +470 -0
  359. package/dist/cli/index-working.js.map +1 -0
  360. package/dist/cli/index.d.ts +9 -0
  361. package/dist/cli/index.d.ts.map +1 -0
  362. package/dist/cli/index.js +174 -0
  363. package/dist/cli/index.js.map +1 -0
  364. package/dist/core/Agent.d.ts +189 -0
  365. package/dist/core/Agent.d.ts.map +1 -0
  366. package/dist/core/Agent.js +288 -0
  367. package/dist/core/Agent.js.map +1 -0
  368. package/dist/core/EventBus.d.ts +40 -0
  369. package/dist/core/EventBus.d.ts.map +1 -0
  370. package/dist/core/EventBus.js +114 -0
  371. package/dist/core/EventBus.js.map +1 -0
  372. package/dist/core/FleetManager.d.ts +219 -0
  373. package/dist/core/FleetManager.d.ts.map +1 -0
  374. package/dist/core/FleetManager.js +354 -0
  375. package/dist/core/FleetManager.js.map +1 -0
  376. package/dist/core/MemoryManager.d.ts +119 -0
  377. package/dist/core/MemoryManager.d.ts.map +1 -0
  378. package/dist/core/MemoryManager.js +460 -0
  379. package/dist/core/MemoryManager.js.map +1 -0
  380. package/dist/core/Task.d.ts +264 -0
  381. package/dist/core/Task.d.ts.map +1 -0
  382. package/dist/core/Task.js +397 -0
  383. package/dist/core/Task.js.map +1 -0
  384. package/dist/core/coverage-analyzer.d.ts +50 -0
  385. package/dist/core/coverage-analyzer.d.ts.map +1 -0
  386. package/dist/core/coverage-analyzer.js +146 -0
  387. package/dist/core/coverage-analyzer.js.map +1 -0
  388. package/dist/core/index.d.ts +14 -0
  389. package/dist/core/index.d.ts.map +1 -0
  390. package/dist/core/index.js +20 -0
  391. package/dist/core/index.js.map +1 -0
  392. package/dist/core/quality-gate.d.ts +81 -0
  393. package/dist/core/quality-gate.d.ts.map +1 -0
  394. package/dist/core/quality-gate.js +254 -0
  395. package/dist/core/quality-gate.js.map +1 -0
  396. package/dist/coverage/coverage-collector.d.ts +62 -0
  397. package/dist/coverage/coverage-collector.d.ts.map +1 -0
  398. package/dist/coverage/coverage-collector.js +61 -0
  399. package/dist/coverage/coverage-collector.js.map +1 -0
  400. package/dist/coverage/coverage-reporter.d.ts +42 -0
  401. package/dist/coverage/coverage-reporter.d.ts.map +1 -0
  402. package/dist/coverage/coverage-reporter.js +53 -0
  403. package/dist/coverage/coverage-reporter.js.map +1 -0
  404. package/dist/index.d.ts +89 -0
  405. package/dist/index.d.ts.map +1 -0
  406. package/dist/index.js +142 -0
  407. package/dist/index.js.map +1 -0
  408. package/dist/mcp/handlers/agent-spawn.d.ts +72 -0
  409. package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -0
  410. package/dist/mcp/handlers/agent-spawn.js +255 -0
  411. package/dist/mcp/handlers/agent-spawn.js.map +1 -0
  412. package/dist/mcp/handlers/base-handler.d.ts +53 -0
  413. package/dist/mcp/handlers/base-handler.d.ts.map +1 -0
  414. package/dist/mcp/handlers/base-handler.js +77 -0
  415. package/dist/mcp/handlers/base-handler.js.map +1 -0
  416. package/dist/mcp/handlers/fleet-init.d.ts +55 -0
  417. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -0
  418. package/dist/mcp/handlers/fleet-init.js +149 -0
  419. package/dist/mcp/handlers/fleet-init.js.map +1 -0
  420. package/dist/mcp/handlers/fleet-status.d.ts +103 -0
  421. package/dist/mcp/handlers/fleet-status.d.ts.map +1 -0
  422. package/dist/mcp/handlers/fleet-status.js +244 -0
  423. package/dist/mcp/handlers/fleet-status.js.map +1 -0
  424. package/dist/mcp/handlers/optimize-tests.d.ts +219 -0
  425. package/dist/mcp/handlers/optimize-tests.d.ts.map +1 -0
  426. package/dist/mcp/handlers/optimize-tests.js +532 -0
  427. package/dist/mcp/handlers/optimize-tests.js.map +1 -0
  428. package/dist/mcp/handlers/predict-defects.d.ts +194 -0
  429. package/dist/mcp/handlers/predict-defects.d.ts.map +1 -0
  430. package/dist/mcp/handlers/predict-defects.js +721 -0
  431. package/dist/mcp/handlers/predict-defects.js.map +1 -0
  432. package/dist/mcp/handlers/quality-analyze.d.ts +273 -0
  433. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -0
  434. package/dist/mcp/handlers/quality-analyze.js +702 -0
  435. package/dist/mcp/handlers/quality-analyze.js.map +1 -0
  436. package/dist/mcp/handlers/task-orchestrate.d.ts +152 -0
  437. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -0
  438. package/dist/mcp/handlers/task-orchestrate.js +629 -0
  439. package/dist/mcp/handlers/task-orchestrate.js.map +1 -0
  440. package/dist/mcp/handlers/test-execute.d.ts +132 -0
  441. package/dist/mcp/handlers/test-execute.d.ts.map +1 -0
  442. package/dist/mcp/handlers/test-execute.js +436 -0
  443. package/dist/mcp/handlers/test-execute.js.map +1 -0
  444. package/dist/mcp/handlers/test-generate.d.ts +107 -0
  445. package/dist/mcp/handlers/test-generate.d.ts.map +1 -0
  446. package/dist/mcp/handlers/test-generate.js +437 -0
  447. package/dist/mcp/handlers/test-generate.js.map +1 -0
  448. package/dist/mcp/server.d.ts +99 -0
  449. package/dist/mcp/server.d.ts.map +1 -0
  450. package/dist/mcp/server.js +214 -0
  451. package/dist/mcp/server.js.map +1 -0
  452. package/dist/mcp/services/AgentRegistry.d.ts +191 -0
  453. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -0
  454. package/dist/mcp/services/AgentRegistry.js +403 -0
  455. package/dist/mcp/services/AgentRegistry.js.map +1 -0
  456. package/dist/mcp/services/HookExecutor.d.ts +165 -0
  457. package/dist/mcp/services/HookExecutor.d.ts.map +1 -0
  458. package/dist/mcp/services/HookExecutor.js +327 -0
  459. package/dist/mcp/services/HookExecutor.js.map +1 -0
  460. package/dist/mcp/start.d.ts +7 -0
  461. package/dist/mcp/start.d.ts.map +1 -0
  462. package/dist/mcp/start.js +35 -0
  463. package/dist/mcp/start.js.map +1 -0
  464. package/dist/mcp/tools.d.ts +81 -0
  465. package/dist/mcp/tools.d.ts.map +1 -0
  466. package/dist/mcp/tools.js +471 -0
  467. package/dist/mcp/tools.js.map +1 -0
  468. package/dist/optimization/sublinear-solver.d.ts +72 -0
  469. package/dist/optimization/sublinear-solver.d.ts.map +1 -0
  470. package/dist/optimization/sublinear-solver.js +263 -0
  471. package/dist/optimization/sublinear-solver.js.map +1 -0
  472. package/dist/scripts/verifyComplexity.d.ts +8 -0
  473. package/dist/scripts/verifyComplexity.d.ts.map +1 -0
  474. package/dist/scripts/verifyComplexity.js +56 -0
  475. package/dist/scripts/verifyComplexity.js.map +1 -0
  476. package/dist/types/api-contract.types.d.ts +273 -0
  477. package/dist/types/api-contract.types.d.ts.map +1 -0
  478. package/dist/types/api-contract.types.js +18 -0
  479. package/dist/types/api-contract.types.js.map +1 -0
  480. package/dist/types/errors.d.ts +104 -0
  481. package/dist/types/errors.d.ts.map +1 -0
  482. package/dist/types/errors.js +226 -0
  483. package/dist/types/errors.js.map +1 -0
  484. package/dist/types/events.d.ts +101 -0
  485. package/dist/types/events.d.ts.map +1 -0
  486. package/dist/types/events.js +6 -0
  487. package/dist/types/events.js.map +1 -0
  488. package/dist/types/index.d.ts +570 -0
  489. package/dist/types/index.d.ts.map +1 -0
  490. package/dist/types/index.js +131 -0
  491. package/dist/types/index.js.map +1 -0
  492. package/dist/utils/Config.d.ts +128 -0
  493. package/dist/utils/Config.d.ts.map +1 -0
  494. package/dist/utils/Config.js +232 -0
  495. package/dist/utils/Config.js.map +1 -0
  496. package/dist/utils/Database.d.ts +112 -0
  497. package/dist/utils/Database.d.ts.map +1 -0
  498. package/dist/utils/Database.js +352 -0
  499. package/dist/utils/Database.js.map +1 -0
  500. package/dist/utils/Logger.d.ts +58 -0
  501. package/dist/utils/Logger.d.ts.map +1 -0
  502. package/dist/utils/Logger.js +125 -0
  503. package/dist/utils/Logger.js.map +1 -0
  504. package/dist/utils/index.d.ts +9 -0
  505. package/dist/utils/index.d.ts.map +1 -0
  506. package/dist/utils/index.js +14 -0
  507. package/dist/utils/index.js.map +1 -0
  508. package/dist/utils/sublinear/coverageOptimizer.d.ts +84 -0
  509. package/dist/utils/sublinear/coverageOptimizer.d.ts.map +1 -0
  510. package/dist/utils/sublinear/coverageOptimizer.js +415 -0
  511. package/dist/utils/sublinear/coverageOptimizer.js.map +1 -0
  512. package/dist/utils/sublinear/index.d.ts +50 -0
  513. package/dist/utils/sublinear/index.d.ts.map +1 -0
  514. package/dist/utils/sublinear/index.js +390 -0
  515. package/dist/utils/sublinear/index.js.map +1 -0
  516. package/dist/utils/sublinear/matrixSolver.d.ts +132 -0
  517. package/dist/utils/sublinear/matrixSolver.d.ts.map +1 -0
  518. package/dist/utils/sublinear/matrixSolver.js +642 -0
  519. package/dist/utils/sublinear/matrixSolver.js.map +1 -0
  520. package/dist/utils/sublinear/temporalPredictor.d.ts +195 -0
  521. package/dist/utils/sublinear/temporalPredictor.d.ts.map +1 -0
  522. package/dist/utils/sublinear/temporalPredictor.js +474 -0
  523. package/dist/utils/sublinear/temporalPredictor.js.map +1 -0
  524. package/dist/utils/sublinear/testSelector.d.ts +81 -0
  525. package/dist/utils/sublinear/testSelector.d.ts.map +1 -0
  526. package/dist/utils/sublinear/testSelector.js +303 -0
  527. package/dist/utils/sublinear/testSelector.js.map +1 -0
  528. package/package.json +131 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * QualityGateAgent - Intelligent quality gate evaluation with decision trees
3
+ * Implements SPARC Phase 2 Section 7.1 - Intelligent Quality Gate Algorithm
4
+ */
5
+ /// <reference types="node" />
6
+ import { EventEmitter } from 'events';
7
+ import { AgentId, AgentStatus, TaskSpec, QualityMetrics, QETestResult, MemoryStore } from '../types';
8
+ export interface QualityGateRequest {
9
+ testResults: QETestResult[];
10
+ metrics: QualityMetrics;
11
+ context: {
12
+ deploymentTarget: 'development' | 'staging' | 'production';
13
+ criticality: 'low' | 'medium' | 'high' | 'critical';
14
+ changes: Array<{
15
+ file: string;
16
+ type: 'added' | 'modified' | 'deleted';
17
+ complexity: number;
18
+ }>;
19
+ environment: string;
20
+ };
21
+ customCriteria?: QualityCriterion[];
22
+ }
23
+ export interface QualityCriterion {
24
+ name: string;
25
+ threshold: number;
26
+ weight: number;
27
+ type: 'minimum_threshold' | 'maximum_threshold' | 'range' | 'trend';
28
+ critical: boolean;
29
+ }
30
+ export interface QualityGateDecision {
31
+ decision: 'PASS' | 'FAIL' | 'ESCALATE';
32
+ score: number;
33
+ threshold: number;
34
+ criteriaEvaluations: CriterionEvaluation[];
35
+ riskFactors: RiskFactor[];
36
+ explanation: string;
37
+ recommendations: string[];
38
+ confidence: number;
39
+ metadata: {
40
+ evaluationTime: Date;
41
+ context: any;
42
+ decisionTreeVersion: string;
43
+ };
44
+ }
45
+ export interface CriterionEvaluation {
46
+ criterion: QualityCriterion;
47
+ value: number;
48
+ passed: boolean;
49
+ score: number;
50
+ impact: string;
51
+ }
52
+ export interface RiskFactor {
53
+ type: string;
54
+ severity: 'low' | 'medium' | 'high' | 'critical';
55
+ probability: number;
56
+ impact: string;
57
+ mitigation: string[];
58
+ }
59
+ export declare class QualityGateAgent extends EventEmitter {
60
+ private id;
61
+ private status;
62
+ private memoryStore?;
63
+ private decisionEngine;
64
+ private consciousnessEngine;
65
+ private psychoSymbolicReasoner;
66
+ private riskAnalyzer;
67
+ private readonly defaultCriteria;
68
+ constructor(id: AgentId, memoryStore?: MemoryStore);
69
+ initialize(): Promise<void>;
70
+ executeTask(task: TaskSpec): Promise<QualityGateDecision>;
71
+ terminate(): Promise<void>;
72
+ getStatus(): {
73
+ agentId: AgentId;
74
+ status: AgentStatus;
75
+ capabilities: string[];
76
+ performance: any;
77
+ };
78
+ /**
79
+ * Evaluate quality gate using intelligent decision tree
80
+ * Based on SPARC Phase 2 Algorithm: EvaluateQualityGate
81
+ */
82
+ private evaluateQualityGate;
83
+ private evaluateCriterion;
84
+ private calculateCriterionScore;
85
+ private calculateDynamicThreshold;
86
+ private analyzeRiskFactors;
87
+ private applyRiskBasedLogic;
88
+ private normalizeQualityMetrics;
89
+ private getMetricValue;
90
+ private detectComplexityIndicators;
91
+ private generateDecisionExplanation;
92
+ private generateQualityRecommendations;
93
+ private calculateDecisionConfidence;
94
+ private storeLearningData;
95
+ private loadDecisionPatterns;
96
+ private saveDecisionPatterns;
97
+ private storeDecisionResult;
98
+ private getHistoricalGateDecisions;
99
+ private evaluateTrendCriterion;
100
+ private calculateImpact;
101
+ private getHistoricalPerformance;
102
+ private calculateChangeMagnitude;
103
+ }
104
+ //# sourceMappingURL=QualityGateAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QualityGateAgent.d.ts","sourceRoot":"","sources":["../../src/agents/QualityGateAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,522 @@
1
+ "use strict";
2
+ /**
3
+ * QualityGateAgent - Intelligent quality gate evaluation with decision trees
4
+ * Implements SPARC Phase 2 Section 7.1 - Intelligent Quality Gate Algorithm
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.QualityGateAgent = void 0;
8
+ const events_1 = require("events");
9
+ const types_1 = require("../types");
10
+ class QualityGateAgent extends events_1.EventEmitter {
11
+ constructor(id, memoryStore) {
12
+ super();
13
+ this.status = types_1.AgentStatus.INITIALIZING;
14
+ // Default quality criteria based on industry standards
15
+ this.defaultCriteria = [
16
+ { name: 'test_coverage', threshold: 0.85, weight: 0.25, type: 'minimum_threshold', critical: true },
17
+ { name: 'test_success_rate', threshold: 0.95, weight: 0.30, type: 'minimum_threshold', critical: true },
18
+ { name: 'security_vulnerabilities', threshold: 0, weight: 0.20, type: 'maximum_threshold', critical: true },
19
+ { name: 'performance_regression', threshold: 0.10, weight: 0.15, type: 'maximum_threshold', critical: false },
20
+ { name: 'code_quality_score', threshold: 0.80, weight: 0.10, type: 'minimum_threshold', critical: false }
21
+ ];
22
+ this.id = id;
23
+ this.memoryStore = memoryStore;
24
+ this.decisionEngine = new DecisionEngine();
25
+ this.consciousnessEngine = new ConsciousnessEngine();
26
+ this.psychoSymbolicReasoner = new PsychoSymbolicReasoner();
27
+ this.riskAnalyzer = new RiskAnalyzer();
28
+ }
29
+ // ============================================================================
30
+ // Agent Lifecycle
31
+ // ============================================================================
32
+ async initialize() {
33
+ try {
34
+ this.status = types_1.AgentStatus.INITIALIZING;
35
+ // Initialize decision engines
36
+ await this.decisionEngine.initialize();
37
+ await this.consciousnessEngine.initialize();
38
+ await this.psychoSymbolicReasoner.initialize();
39
+ await this.riskAnalyzer.initialize();
40
+ // Load historical decision patterns
41
+ await this.loadDecisionPatterns();
42
+ // Store initialization state
43
+ if (this.memoryStore) {
44
+ await this.memoryStore.set('quality-gate-initialized', true, 'agents');
45
+ }
46
+ this.status = types_1.AgentStatus.IDLE;
47
+ this.emit('agent.initialized', { agentId: this.id });
48
+ }
49
+ catch (error) {
50
+ this.status = types_1.AgentStatus.ERROR;
51
+ this.emit('agent.error', { agentId: this.id, error });
52
+ throw error;
53
+ }
54
+ }
55
+ async executeTask(task) {
56
+ const request = task.payload;
57
+ return await this.evaluateQualityGate(request);
58
+ }
59
+ async terminate() {
60
+ try {
61
+ this.status = types_1.AgentStatus.STOPPING;
62
+ // Save learned decision patterns
63
+ await this.saveDecisionPatterns();
64
+ // Cleanup resources
65
+ await this.decisionEngine.cleanup();
66
+ await this.consciousnessEngine.cleanup();
67
+ await this.psychoSymbolicReasoner.cleanup();
68
+ await this.riskAnalyzer.cleanup();
69
+ this.status = types_1.AgentStatus.STOPPED;
70
+ this.emit('agent.terminated', { agentId: this.id });
71
+ }
72
+ catch (error) {
73
+ this.status = types_1.AgentStatus.ERROR;
74
+ throw error;
75
+ }
76
+ }
77
+ getStatus() {
78
+ return {
79
+ agentId: this.id,
80
+ status: this.status,
81
+ capabilities: ['quality-evaluation', 'risk-analysis', 'decision-making'],
82
+ performance: {
83
+ decisionsEvaluated: this.decisionEngine.getDecisionCount(),
84
+ averageDecisionTime: this.decisionEngine.getAverageTime(),
85
+ lastDecisionConfidence: this.decisionEngine.getLastConfidence()
86
+ }
87
+ };
88
+ }
89
+ // ============================================================================
90
+ // Core Quality Gate Evaluation - SPARC Algorithm 7.1
91
+ // ============================================================================
92
+ /**
93
+ * Evaluate quality gate using intelligent decision tree
94
+ * Based on SPARC Phase 2 Algorithm: EvaluateQualityGate
95
+ */
96
+ async evaluateQualityGate(request) {
97
+ const startTime = Date.now();
98
+ try {
99
+ this.status = types_1.AgentStatus.ACTIVE;
100
+ // Phase 1: Initialize Decision Tree using Consciousness Framework
101
+ const decisionTree = await this.consciousnessEngine.buildDecisionTree({
102
+ context: request.context,
103
+ historicalDecisions: await this.getHistoricalGateDecisions(),
104
+ adaptationLevel: 0.8
105
+ });
106
+ // Phase 2: Collect and Normalize Metrics
107
+ const normalizedMetrics = await this.normalizeQualityMetrics(request.metrics);
108
+ // Phase 3: Apply Psycho-Symbolic Reasoning for Complex Cases
109
+ const complexityIndicators = await this.detectComplexityIndicators(request.testResults, request.metrics);
110
+ if (complexityIndicators.high) {
111
+ const reasoningResult = await this.psychoSymbolicReasoner.reason({
112
+ query: 'Should deployment proceed given complex quality state?',
113
+ context: {
114
+ testResults: request.testResults,
115
+ metrics: normalizedMetrics,
116
+ deploymentContext: request.context,
117
+ complexityFactors: complexityIndicators
118
+ },
119
+ depth: 5
120
+ });
121
+ if (reasoningResult.confidence < 0.7) {
122
+ // Escalate to human review
123
+ return {
124
+ decision: 'ESCALATE',
125
+ score: reasoningResult.confidence,
126
+ threshold: 0.7,
127
+ criteriaEvaluations: [],
128
+ riskFactors: await this.analyzeRiskFactors(request.context, []),
129
+ explanation: reasoningResult.reasoning,
130
+ recommendations: ['Human review required due to complex quality state'],
131
+ confidence: reasoningResult.confidence,
132
+ metadata: {
133
+ evaluationTime: new Date(),
134
+ context: request.context,
135
+ decisionTreeVersion: decisionTree.version
136
+ }
137
+ };
138
+ }
139
+ }
140
+ // Phase 4: Evaluate Core Quality Criteria
141
+ const criteria = request.customCriteria || this.defaultCriteria;
142
+ const evaluationResults = [];
143
+ let totalScore = 0.0;
144
+ for (const criterion of criteria) {
145
+ const metricValue = await this.getMetricValue(normalizedMetrics, criterion.name);
146
+ const passed = await this.evaluateCriterion(criterion, metricValue);
147
+ const score = await this.calculateCriterionScore(criterion, metricValue);
148
+ const evaluationResult = {
149
+ criterion,
150
+ value: metricValue,
151
+ passed,
152
+ score,
153
+ impact: await this.calculateImpact(criterion, metricValue, request.context)
154
+ };
155
+ evaluationResults.push(evaluationResult);
156
+ totalScore += score * criterion.weight;
157
+ }
158
+ // Phase 5: Apply Dynamic Threshold Adjustment
159
+ const adjustedThreshold = await this.calculateDynamicThreshold(request.context, normalizedMetrics);
160
+ // Phase 6: Make Final Decision
161
+ const baseDecision = totalScore >= adjustedThreshold ? 'PASS' : 'FAIL';
162
+ // Phase 7: Apply Risk-Based Overrides
163
+ const riskFactors = await this.analyzeRiskFactors(request.context, evaluationResults);
164
+ const finalDecision = await this.applyRiskBasedLogic(baseDecision, riskFactors);
165
+ // Phase 8: Generate Explanation and Recommendations
166
+ const explanation = await this.generateDecisionExplanation(evaluationResults, finalDecision);
167
+ const recommendations = await this.generateQualityRecommendations(evaluationResults, request.context);
168
+ const gateDecision = {
169
+ decision: finalDecision,
170
+ score: totalScore,
171
+ threshold: adjustedThreshold,
172
+ criteriaEvaluations: evaluationResults,
173
+ riskFactors,
174
+ explanation,
175
+ recommendations,
176
+ confidence: await this.calculateDecisionConfidence(evaluationResults),
177
+ metadata: {
178
+ evaluationTime: new Date(),
179
+ context: request.context,
180
+ decisionTreeVersion: decisionTree.version
181
+ }
182
+ };
183
+ // Phase 9: Learn from Decision
184
+ await this.storeLearningData(gateDecision, request.testResults, request.metrics);
185
+ // Store decision for future learning
186
+ await this.storeDecisionResult(gateDecision, Date.now() - startTime);
187
+ this.status = types_1.AgentStatus.IDLE;
188
+ return gateDecision;
189
+ }
190
+ catch (error) {
191
+ this.status = types_1.AgentStatus.ERROR;
192
+ throw error;
193
+ }
194
+ }
195
+ // ============================================================================
196
+ // Criterion Evaluation Methods
197
+ // ============================================================================
198
+ async evaluateCriterion(criterion, value) {
199
+ switch (criterion.type) {
200
+ case 'minimum_threshold':
201
+ return value >= criterion.threshold;
202
+ case 'maximum_threshold':
203
+ return value <= criterion.threshold;
204
+ case 'range':
205
+ // Range criteria would have minThreshold and maxThreshold
206
+ return value >= criterion.threshold; // Simplified
207
+ case 'trend':
208
+ return await this.evaluateTrendCriterion(criterion, value);
209
+ default:
210
+ return false;
211
+ }
212
+ }
213
+ async calculateCriterionScore(criterion, value) {
214
+ switch (criterion.type) {
215
+ case 'minimum_threshold':
216
+ return Math.min(1.0, value / criterion.threshold);
217
+ case 'maximum_threshold':
218
+ return value <= criterion.threshold ? 1.0 : Math.max(0.0, 1.0 - (value - criterion.threshold));
219
+ default:
220
+ return value >= criterion.threshold ? 1.0 : 0.0;
221
+ }
222
+ }
223
+ async calculateDynamicThreshold(context, metrics) {
224
+ let baseThreshold = 0.8; // Default threshold
225
+ // Adjust based on deployment criticality
226
+ if (context.criticality === 'critical') {
227
+ baseThreshold += 0.1;
228
+ }
229
+ else if (context.criticality === 'low') {
230
+ baseThreshold -= 0.05;
231
+ }
232
+ // Adjust based on historical performance
233
+ const historicalPerformance = await this.getHistoricalPerformance(context.environment);
234
+ if (historicalPerformance > 0.9) {
235
+ baseThreshold -= 0.02; // Slight relaxation for stable systems
236
+ }
237
+ // Adjust based on change magnitude
238
+ const changeMagnitude = await this.calculateChangeMagnitude(context.changes);
239
+ if (changeMagnitude > 0.5) {
240
+ baseThreshold += 0.05; // Higher standards for large changes
241
+ }
242
+ // Ensure threshold stays within bounds
243
+ return Math.max(0.5, Math.min(0.95, baseThreshold));
244
+ }
245
+ // ============================================================================
246
+ // Risk Analysis
247
+ // ============================================================================
248
+ async analyzeRiskFactors(context, evaluations) {
249
+ const riskFactors = [];
250
+ // Analyze deployment risk
251
+ if (context.deploymentTarget === 'production' && context.criticality === 'critical') {
252
+ riskFactors.push({
253
+ type: 'deployment-risk',
254
+ severity: 'high',
255
+ probability: 0.3,
256
+ impact: 'Production outage potential',
257
+ mitigation: ['Additional testing', 'Staged deployment', 'Rollback plan']
258
+ });
259
+ }
260
+ // Analyze change risk
261
+ const highComplexityChanges = context.changes.filter((c) => c.complexity > 8);
262
+ if (highComplexityChanges.length > 0) {
263
+ riskFactors.push({
264
+ type: 'complexity-risk',
265
+ severity: 'medium',
266
+ probability: 0.4,
267
+ impact: 'Increased defect probability',
268
+ mitigation: ['Code review', 'Additional testing', 'Monitoring']
269
+ });
270
+ }
271
+ // Analyze test quality risk
272
+ const failedTests = evaluations.filter(e => !e.passed && e.criterion.critical);
273
+ if (failedTests.length > 0) {
274
+ riskFactors.push({
275
+ type: 'test-quality-risk',
276
+ severity: 'high',
277
+ probability: 0.7,
278
+ impact: 'Critical quality criteria not met',
279
+ mitigation: ['Fix failing tests', 'Increase coverage', 'Review test strategy']
280
+ });
281
+ }
282
+ return riskFactors;
283
+ }
284
+ async applyRiskBasedLogic(baseDecision, riskFactors) {
285
+ // High-risk scenarios override positive decisions
286
+ const criticalRisks = riskFactors.filter(rf => rf.severity === 'critical');
287
+ const highRisks = riskFactors.filter(rf => rf.severity === 'high');
288
+ if (criticalRisks.length > 0) {
289
+ return 'FAIL';
290
+ }
291
+ if (highRisks.length > 1 && baseDecision === 'PASS') {
292
+ return 'ESCALATE'; // Multiple high risks require human judgment
293
+ }
294
+ return baseDecision;
295
+ }
296
+ // ============================================================================
297
+ // Metrics and Analysis
298
+ // ============================================================================
299
+ async normalizeQualityMetrics(metrics) {
300
+ return {
301
+ test_coverage: (metrics.coverage.line + metrics.coverage.branch + metrics.coverage.function) / 300, // Normalize to 0-1
302
+ test_success_rate: metrics.testResults.passed / Math.max(1, metrics.testResults.total),
303
+ security_vulnerabilities: metrics.security.vulnerabilities,
304
+ performance_regression: Math.max(0, metrics.performance.averageResponseTime - 1000) / 5000, // Normalize response time
305
+ code_quality_score: Math.min(1, metrics.performance.throughput / 1000) // Normalize throughput
306
+ };
307
+ }
308
+ async getMetricValue(normalizedMetrics, metricName) {
309
+ return normalizedMetrics[metricName] || 0;
310
+ }
311
+ async detectComplexityIndicators(testResults, metrics) {
312
+ // Detect if the quality state is complex enough to require special reasoning
313
+ const failureRate = 1 - (metrics.testResults.passed / Math.max(1, metrics.testResults.total));
314
+ const vulnerabilityCount = metrics.security.vulnerabilities;
315
+ const performanceIssues = metrics.performance.errorRate > 0.05;
316
+ const complexityScore = failureRate * 0.4 +
317
+ (vulnerabilityCount > 0 ? 0.3 : 0) +
318
+ (performanceIssues ? 0.3 : 0);
319
+ return {
320
+ high: complexityScore > 0.6,
321
+ score: complexityScore,
322
+ factors: {
323
+ highFailureRate: failureRate > 0.1,
324
+ securityVulnerabilities: vulnerabilityCount > 0,
325
+ performanceIssues
326
+ }
327
+ };
328
+ }
329
+ // ============================================================================
330
+ // Decision Support Methods
331
+ // ============================================================================
332
+ async generateDecisionExplanation(evaluations, decision) {
333
+ const passedCriteria = evaluations.filter(e => e.passed).length;
334
+ const totalCriteria = evaluations.length;
335
+ const criticalFailures = evaluations.filter(e => !e.passed && e.criterion.critical);
336
+ let explanation = `Quality gate evaluation completed. ${passedCriteria}/${totalCriteria} criteria passed. `;
337
+ if (decision === 'PASS') {
338
+ explanation += 'All critical quality criteria met. Deployment approved.';
339
+ }
340
+ else if (decision === 'FAIL') {
341
+ if (criticalFailures.length > 0) {
342
+ explanation += `Critical failures in: ${criticalFailures.map(cf => cf.criterion.name).join(', ')}. `;
343
+ }
344
+ explanation += 'Quality standards not met. Deployment blocked.';
345
+ }
346
+ else if (decision === 'ESCALATE') {
347
+ explanation += 'Complex quality state detected. Human review required.';
348
+ }
349
+ return explanation;
350
+ }
351
+ async generateQualityRecommendations(evaluations, context) {
352
+ const recommendations = [];
353
+ // Analyze failed criteria
354
+ const failedEvaluations = evaluations.filter(e => !e.passed);
355
+ for (const failed of failedEvaluations) {
356
+ switch (failed.criterion.name) {
357
+ case 'test_coverage':
358
+ recommendations.push('Increase test coverage by adding unit tests for uncovered code paths');
359
+ break;
360
+ case 'test_success_rate':
361
+ recommendations.push('Fix failing tests before deployment');
362
+ break;
363
+ case 'security_vulnerabilities':
364
+ recommendations.push('Address security vulnerabilities identified in scan');
365
+ break;
366
+ case 'performance_regression':
367
+ recommendations.push('Optimize performance or investigate regression causes');
368
+ break;
369
+ case 'code_quality_score':
370
+ recommendations.push('Improve code quality through refactoring and linting');
371
+ break;
372
+ }
373
+ }
374
+ // Context-specific recommendations
375
+ if (context.criticality === 'critical' && failedEvaluations.length > 0) {
376
+ recommendations.push('Consider additional manual testing for critical deployment');
377
+ }
378
+ if (context.changes.length > 10) {
379
+ recommendations.push('Large changeset detected - consider breaking into smaller deployments');
380
+ }
381
+ return recommendations;
382
+ }
383
+ async calculateDecisionConfidence(evaluations) {
384
+ // Calculate confidence based on how clearly criteria are met or failed
385
+ let confidenceSum = 0;
386
+ let weightSum = 0;
387
+ for (const evaluation of evaluations) {
388
+ // Higher confidence when values are clearly above/below thresholds
389
+ const distance = Math.abs(evaluation.value - evaluation.criterion.threshold);
390
+ const normalizedDistance = Math.min(1, distance / evaluation.criterion.threshold);
391
+ const confidence = 0.5 + (normalizedDistance * 0.5);
392
+ confidenceSum += confidence * evaluation.criterion.weight;
393
+ weightSum += evaluation.criterion.weight;
394
+ }
395
+ return weightSum > 0 ? confidenceSum / weightSum : 0.5;
396
+ }
397
+ // ============================================================================
398
+ // Learning and Storage
399
+ // ============================================================================
400
+ async storeLearningData(decision, testResults, metrics) {
401
+ if (this.memoryStore) {
402
+ const learningData = {
403
+ decision: decision.decision,
404
+ score: decision.score,
405
+ confidence: decision.confidence,
406
+ testResultsSummary: {
407
+ total: testResults.length,
408
+ passed: testResults.filter(t => t.status === 'passed').length,
409
+ failed: testResults.filter(t => t.status === 'failed').length
410
+ },
411
+ metricsSummary: {
412
+ coverage: metrics.coverage,
413
+ testResults: metrics.testResults,
414
+ performance: metrics.performance,
415
+ security: metrics.security
416
+ },
417
+ timestamp: new Date()
418
+ };
419
+ await this.memoryStore.set(`learning-${Date.now()}`, learningData, 'quality-gate-learning');
420
+ }
421
+ }
422
+ // Placeholder implementations for complex methods
423
+ async loadDecisionPatterns() {
424
+ if (this.memoryStore) {
425
+ const patterns = await this.memoryStore.get('decision-patterns', 'agents');
426
+ // Apply loaded patterns
427
+ }
428
+ }
429
+ async saveDecisionPatterns() {
430
+ if (this.memoryStore) {
431
+ await this.memoryStore.set('decision-patterns', {
432
+ timestamp: new Date(),
433
+ patterns: []
434
+ }, 'agents');
435
+ }
436
+ }
437
+ async storeDecisionResult(decision, duration) {
438
+ if (this.memoryStore) {
439
+ await this.memoryStore.set(`decision-${Date.now()}`, {
440
+ decision: decision.decision,
441
+ score: decision.score,
442
+ confidence: decision.confidence,
443
+ duration,
444
+ timestamp: new Date()
445
+ }, 'decisions');
446
+ }
447
+ }
448
+ async getHistoricalGateDecisions() {
449
+ return []; // Placeholder for historical data
450
+ }
451
+ async evaluateTrendCriterion(criterion, value) {
452
+ // Evaluate trend-based criteria (requires historical data)
453
+ return value >= criterion.threshold;
454
+ }
455
+ async calculateImpact(criterion, value, context) {
456
+ if (criterion.critical && value < criterion.threshold) {
457
+ return 'High impact - critical criterion not met';
458
+ }
459
+ else if (value < criterion.threshold) {
460
+ return 'Medium impact - quality standard not met';
461
+ }
462
+ else {
463
+ return 'Low impact - criterion satisfied';
464
+ }
465
+ }
466
+ async getHistoricalPerformance(environment) {
467
+ return 0.85; // Placeholder for historical performance data
468
+ }
469
+ async calculateChangeMagnitude(changes) {
470
+ return changes.reduce((sum, change) => sum + change.complexity, 0) / Math.max(1, changes.length * 10);
471
+ }
472
+ }
473
+ exports.QualityGateAgent = QualityGateAgent;
474
+ // ============================================================================
475
+ // Supporting Classes (Placeholder Implementations)
476
+ // ============================================================================
477
+ class DecisionEngine {
478
+ constructor() {
479
+ this.decisionCount = 0;
480
+ this.totalTime = 0;
481
+ this.lastConfidence = 0.8;
482
+ }
483
+ async initialize() { }
484
+ getDecisionCount() {
485
+ return this.decisionCount;
486
+ }
487
+ getAverageTime() {
488
+ return this.decisionCount > 0 ? this.totalTime / this.decisionCount : 0;
489
+ }
490
+ getLastConfidence() {
491
+ return this.lastConfidence;
492
+ }
493
+ async cleanup() { }
494
+ }
495
+ class ConsciousnessEngine {
496
+ async initialize() { }
497
+ async buildDecisionTree(params) {
498
+ return {
499
+ version: '1.0.0',
500
+ structure: 'binary',
501
+ adaptationLevel: params.adaptationLevel
502
+ };
503
+ }
504
+ async cleanup() { }
505
+ }
506
+ class PsychoSymbolicReasoner {
507
+ async initialize() { }
508
+ async reason(params) {
509
+ // Simulate reasoning
510
+ return {
511
+ reasoning: 'Complex quality state analysis completed',
512
+ confidence: Math.random() * 0.5 + 0.5,
513
+ recommendations: ['Consider additional testing']
514
+ };
515
+ }
516
+ async cleanup() { }
517
+ }
518
+ class RiskAnalyzer {
519
+ async initialize() { }
520
+ async cleanup() { }
521
+ }
522
+ //# sourceMappingURL=QualityGateAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QualityGateAgent.js","sourceRoot":"","sources":["../../src/agents/QualityGateAgent.ts"],"names":[],"mappings":"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"}