agentic-qe 3.6.7 → 3.6.9

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 (1265) hide show
  1. package/.claude/skills/README.md +1 -1
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/package.json +5 -2
  4. package/scripts/benchmark-aqe-baseline.ts +614 -0
  5. package/v3/CHANGELOG.md +33 -0
  6. package/v3/dist/adapters/a2a/agent-cards/generator.d.ts.map +1 -1
  7. package/v3/dist/adapters/a2a/agent-cards/generator.js +2 -1
  8. package/v3/dist/adapters/a2a/agent-cards/generator.js.map +1 -1
  9. package/v3/dist/adapters/a2a/auth/jwt-utils.d.ts.map +1 -1
  10. package/v3/dist/adapters/a2a/auth/jwt-utils.js +3 -2
  11. package/v3/dist/adapters/a2a/auth/jwt-utils.js.map +1 -1
  12. package/v3/dist/adapters/a2a/auth/middleware.d.ts.map +1 -1
  13. package/v3/dist/adapters/a2a/auth/middleware.js +3 -0
  14. package/v3/dist/adapters/a2a/auth/middleware.js.map +1 -1
  15. package/v3/dist/adapters/a2a/discovery/agent-health.d.ts.map +1 -1
  16. package/v3/dist/adapters/a2a/discovery/agent-health.js +4 -3
  17. package/v3/dist/adapters/a2a/discovery/agent-health.js.map +1 -1
  18. package/v3/dist/adapters/a2a/discovery/file-watcher.d.ts.map +1 -1
  19. package/v3/dist/adapters/a2a/discovery/file-watcher.js +3 -2
  20. package/v3/dist/adapters/a2a/discovery/file-watcher.js.map +1 -1
  21. package/v3/dist/adapters/a2a/discovery/hot-reload-service.d.ts.map +1 -1
  22. package/v3/dist/adapters/a2a/discovery/hot-reload-service.js +6 -5
  23. package/v3/dist/adapters/a2a/discovery/hot-reload-service.js.map +1 -1
  24. package/v3/dist/adapters/a2a/jsonrpc/envelope.d.ts.map +1 -1
  25. package/v3/dist/adapters/a2a/jsonrpc/envelope.js +5 -4
  26. package/v3/dist/adapters/a2a/jsonrpc/envelope.js.map +1 -1
  27. package/v3/dist/adapters/ag-ui/event-adapter.d.ts.map +1 -1
  28. package/v3/dist/adapters/ag-ui/event-adapter.js +2 -1
  29. package/v3/dist/adapters/ag-ui/event-adapter.js.map +1 -1
  30. package/v3/dist/adapters/ag-ui/event-batcher.d.ts.map +1 -1
  31. package/v3/dist/adapters/ag-ui/event-batcher.js +2 -1
  32. package/v3/dist/adapters/ag-ui/event-batcher.js.map +1 -1
  33. package/v3/dist/adapters/ag-ui/json-patch-utils.d.ts.map +1 -1
  34. package/v3/dist/adapters/ag-ui/json-patch-utils.js +2 -1
  35. package/v3/dist/adapters/ag-ui/json-patch-utils.js.map +1 -1
  36. package/v3/dist/adapters/ag-ui/json-patch.d.ts +1 -1
  37. package/v3/dist/adapters/ag-ui/json-patch.d.ts.map +1 -1
  38. package/v3/dist/adapters/ag-ui/json-patch.js +4 -6
  39. package/v3/dist/adapters/ag-ui/json-patch.js.map +1 -1
  40. package/v3/dist/adapters/ag-ui/stream-controller.d.ts.map +1 -1
  41. package/v3/dist/adapters/ag-ui/stream-controller.js +3 -0
  42. package/v3/dist/adapters/ag-ui/stream-controller.js.map +1 -1
  43. package/v3/dist/adapters/claude-flow/detect.d.ts.map +1 -1
  44. package/v3/dist/adapters/claude-flow/detect.js +4 -3
  45. package/v3/dist/adapters/claude-flow/detect.js.map +1 -1
  46. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -1
  47. package/v3/dist/adapters/claude-flow/pretrain-bridge.js +7 -5
  48. package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -1
  49. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -1
  50. package/v3/dist/adapters/claude-flow/trajectory-bridge.js +2 -14
  51. package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -1
  52. package/v3/dist/adapters/trajectory-adapter.d.ts.map +1 -1
  53. package/v3/dist/adapters/trajectory-adapter.js +5 -3
  54. package/v3/dist/adapters/trajectory-adapter.js.map +1 -1
  55. package/v3/dist/agents/claim-verifier/verifiers/test-verifier.d.ts.map +1 -1
  56. package/v3/dist/agents/claim-verifier/verifiers/test-verifier.js +2 -1
  57. package/v3/dist/agents/claim-verifier/verifiers/test-verifier.js.map +1 -1
  58. package/v3/dist/benchmarks/performance-benchmarks.d.ts.map +1 -1
  59. package/v3/dist/benchmarks/performance-benchmarks.js +4 -3
  60. package/v3/dist/benchmarks/performance-benchmarks.js.map +1 -1
  61. package/v3/dist/benchmarks/run-benchmarks.js +27 -45
  62. package/v3/dist/benchmarks/run-benchmarks.js.map +1 -1
  63. package/v3/dist/cli/bundle.js +13395 -14755
  64. package/v3/dist/cli/commands/claude-flow-setup.d.ts.map +1 -1
  65. package/v3/dist/cli/commands/claude-flow-setup.js +7 -5
  66. package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -1
  67. package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
  68. package/v3/dist/cli/commands/hooks.js +2 -1
  69. package/v3/dist/cli/commands/hooks.js.map +1 -1
  70. package/v3/dist/cli/commands/init.d.ts.map +1 -1
  71. package/v3/dist/cli/commands/init.js +2 -1
  72. package/v3/dist/cli/commands/init.js.map +1 -1
  73. package/v3/dist/cli/commands/learning-helpers.d.ts +101 -0
  74. package/v3/dist/cli/commands/learning-helpers.d.ts.map +1 -0
  75. package/v3/dist/cli/commands/learning-helpers.js +294 -0
  76. package/v3/dist/cli/commands/learning-helpers.js.map +1 -0
  77. package/v3/dist/cli/commands/learning.d.ts +1 -6
  78. package/v3/dist/cli/commands/learning.d.ts.map +1 -1
  79. package/v3/dist/cli/commands/learning.js +230 -839
  80. package/v3/dist/cli/commands/learning.js.map +1 -1
  81. package/v3/dist/cli/commands/qe-tools.d.ts.map +1 -1
  82. package/v3/dist/cli/commands/qe-tools.js +2 -1
  83. package/v3/dist/cli/commands/qe-tools.js.map +1 -1
  84. package/v3/dist/cli/commands/sync.d.ts.map +1 -1
  85. package/v3/dist/cli/commands/sync.js +5 -4
  86. package/v3/dist/cli/commands/sync.js.map +1 -1
  87. package/v3/dist/cli/commands/token-usage.d.ts.map +1 -1
  88. package/v3/dist/cli/commands/token-usage.js +2 -1
  89. package/v3/dist/cli/commands/token-usage.js.map +1 -1
  90. package/v3/dist/cli/commands/validate.d.ts.map +1 -1
  91. package/v3/dist/cli/commands/validate.js +3 -2
  92. package/v3/dist/cli/commands/validate.js.map +1 -1
  93. package/v3/dist/cli/config/cli-config.d.ts.map +1 -1
  94. package/v3/dist/cli/config/cli-config.js +2 -1
  95. package/v3/dist/cli/config/cli-config.js.map +1 -1
  96. package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -1
  97. package/v3/dist/cli/handlers/init-handler.js +3 -2
  98. package/v3/dist/cli/handlers/init-handler.js.map +1 -1
  99. package/v3/dist/cli/helpers/safe-json.d.ts +4 -48
  100. package/v3/dist/cli/helpers/safe-json.d.ts.map +1 -1
  101. package/v3/dist/cli/helpers/safe-json.js +4 -68
  102. package/v3/dist/cli/helpers/safe-json.js.map +1 -1
  103. package/v3/dist/cli/index.js +3 -2
  104. package/v3/dist/cli/index.js.map +1 -1
  105. package/v3/dist/cli/scheduler/persistent-scheduler.d.ts.map +1 -1
  106. package/v3/dist/cli/scheduler/persistent-scheduler.js +4 -2
  107. package/v3/dist/cli/scheduler/persistent-scheduler.js.map +1 -1
  108. package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
  109. package/v3/dist/cli/wizards/test-wizard.js +2 -1
  110. package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
  111. package/v3/dist/coordination/agent-teams/tracing.d.ts.map +1 -1
  112. package/v3/dist/coordination/agent-teams/tracing.js +2 -1
  113. package/v3/dist/coordination/agent-teams/tracing.js.map +1 -1
  114. package/v3/dist/coordination/circuit-breaker/breaker-registry.d.ts.map +1 -1
  115. package/v3/dist/coordination/circuit-breaker/breaker-registry.js +3 -2
  116. package/v3/dist/coordination/circuit-breaker/breaker-registry.js.map +1 -1
  117. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.d.ts.map +1 -1
  118. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.js +3 -2
  119. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.js.map +1 -1
  120. package/v3/dist/coordination/consensus/consensus-engine.d.ts.map +1 -1
  121. package/v3/dist/coordination/consensus/consensus-engine.js +7 -6
  122. package/v3/dist/coordination/consensus/consensus-engine.js.map +1 -1
  123. package/v3/dist/coordination/consensus/model-provider.d.ts.map +1 -1
  124. package/v3/dist/coordination/consensus/model-provider.js +2 -1
  125. package/v3/dist/coordination/consensus/model-provider.js.map +1 -1
  126. package/v3/dist/coordination/consensus/providers/claude-provider.d.ts.map +1 -1
  127. package/v3/dist/coordination/consensus/providers/claude-provider.js +13 -12
  128. package/v3/dist/coordination/consensus/providers/claude-provider.js.map +1 -1
  129. package/v3/dist/coordination/consensus/providers/gemini-provider.d.ts.map +1 -1
  130. package/v3/dist/coordination/consensus/providers/gemini-provider.js +13 -12
  131. package/v3/dist/coordination/consensus/providers/gemini-provider.js.map +1 -1
  132. package/v3/dist/coordination/consensus/providers/native-learning-provider.d.ts.map +1 -1
  133. package/v3/dist/coordination/consensus/providers/native-learning-provider.js +3 -2
  134. package/v3/dist/coordination/consensus/providers/native-learning-provider.js.map +1 -1
  135. package/v3/dist/coordination/consensus/providers/ollama-provider.d.ts.map +1 -1
  136. package/v3/dist/coordination/consensus/providers/ollama-provider.js +3 -2
  137. package/v3/dist/coordination/consensus/providers/ollama-provider.js.map +1 -1
  138. package/v3/dist/coordination/consensus/providers/openai-provider.d.ts.map +1 -1
  139. package/v3/dist/coordination/consensus/providers/openai-provider.js +3 -2
  140. package/v3/dist/coordination/consensus/providers/openai-provider.js.map +1 -1
  141. package/v3/dist/coordination/consensus/providers/openrouter-provider.d.ts.map +1 -1
  142. package/v3/dist/coordination/consensus/providers/openrouter-provider.js +3 -2
  143. package/v3/dist/coordination/consensus/providers/openrouter-provider.js.map +1 -1
  144. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.d.ts.map +1 -1
  145. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.js +5 -4
  146. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.js.map +1 -1
  147. package/v3/dist/coordination/mincut/dream-integration.d.ts.map +1 -1
  148. package/v3/dist/coordination/mincut/dream-integration.js.map +1 -1
  149. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts +4 -2
  150. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts.map +1 -1
  151. package/v3/dist/coordination/mincut/mincut-health-monitor.js +13 -3
  152. package/v3/dist/coordination/mincut/mincut-health-monitor.js.map +1 -1
  153. package/v3/dist/coordination/mincut/mincut-persistence.d.ts.map +1 -1
  154. package/v3/dist/coordination/mincut/mincut-persistence.js +5 -4
  155. package/v3/dist/coordination/mincut/mincut-persistence.js.map +1 -1
  156. package/v3/dist/coordination/mincut/neural-goap.d.ts.map +1 -1
  157. package/v3/dist/coordination/mincut/neural-goap.js +2 -1
  158. package/v3/dist/coordination/mincut/neural-goap.js.map +1 -1
  159. package/v3/dist/coordination/mincut/queen-integration.d.ts.map +1 -1
  160. package/v3/dist/coordination/mincut/queen-integration.js +7 -2
  161. package/v3/dist/coordination/mincut/queen-integration.js.map +1 -1
  162. package/v3/dist/coordination/mincut/strange-loop.d.ts.map +1 -1
  163. package/v3/dist/coordination/mincut/strange-loop.js +10 -2
  164. package/v3/dist/coordination/mincut/strange-loop.js.map +1 -1
  165. package/v3/dist/coordination/mincut/time-crystal.d.ts.map +1 -1
  166. package/v3/dist/coordination/mincut/time-crystal.js +2 -1
  167. package/v3/dist/coordination/mincut/time-crystal.js.map +1 -1
  168. package/v3/dist/coordination/mixins/consensus-enabled-domain.d.ts +19 -3
  169. package/v3/dist/coordination/mixins/consensus-enabled-domain.d.ts.map +1 -1
  170. package/v3/dist/coordination/mixins/consensus-enabled-domain.js +6 -2
  171. package/v3/dist/coordination/mixins/consensus-enabled-domain.js.map +1 -1
  172. package/v3/dist/coordination/plugin.d.ts +1 -1
  173. package/v3/dist/coordination/plugin.d.ts.map +1 -1
  174. package/v3/dist/coordination/plugin.js +1 -1
  175. package/v3/dist/coordination/plugin.js.map +1 -1
  176. package/v3/dist/coordination/protocol-executor.d.ts.map +1 -1
  177. package/v3/dist/coordination/protocol-executor.js +4 -3
  178. package/v3/dist/coordination/protocol-executor.js.map +1 -1
  179. package/v3/dist/coordination/protocols/code-intelligence-index.d.ts +1 -1
  180. package/v3/dist/coordination/protocols/code-intelligence-index.d.ts.map +1 -1
  181. package/v3/dist/coordination/protocols/code-intelligence-index.js +22 -10
  182. package/v3/dist/coordination/protocols/code-intelligence-index.js.map +1 -1
  183. package/v3/dist/coordination/protocols/defect-investigation.d.ts +2 -2
  184. package/v3/dist/coordination/protocols/defect-investigation.d.ts.map +1 -1
  185. package/v3/dist/coordination/protocols/defect-investigation.js +16 -7
  186. package/v3/dist/coordination/protocols/defect-investigation.js.map +1 -1
  187. package/v3/dist/coordination/protocols/learning-consolidation.d.ts +1 -1
  188. package/v3/dist/coordination/protocols/learning-consolidation.d.ts.map +1 -1
  189. package/v3/dist/coordination/protocols/learning-consolidation.js +6 -5
  190. package/v3/dist/coordination/protocols/learning-consolidation.js.map +1 -1
  191. package/v3/dist/coordination/protocols/morning-sync.d.ts.map +1 -1
  192. package/v3/dist/coordination/protocols/morning-sync.js +2 -1
  193. package/v3/dist/coordination/protocols/morning-sync.js.map +1 -1
  194. package/v3/dist/coordination/protocols/quality-gate.d.ts.map +1 -1
  195. package/v3/dist/coordination/protocols/quality-gate.js +6 -5
  196. package/v3/dist/coordination/protocols/quality-gate.js.map +1 -1
  197. package/v3/dist/coordination/protocols/security-audit.d.ts +1 -1
  198. package/v3/dist/coordination/protocols/security-audit.d.ts.map +1 -1
  199. package/v3/dist/coordination/protocols/security-audit.js +35 -13
  200. package/v3/dist/coordination/protocols/security-audit.js.map +1 -1
  201. package/v3/dist/coordination/queen-coordinator.d.ts +26 -257
  202. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  203. package/v3/dist/coordination/queen-coordinator.js +282 -1175
  204. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  205. package/v3/dist/coordination/queen-event-handlers.d.ts +61 -0
  206. package/v3/dist/coordination/queen-event-handlers.d.ts.map +1 -0
  207. package/v3/dist/coordination/queen-event-handlers.js +311 -0
  208. package/v3/dist/coordination/queen-event-handlers.js.map +1 -0
  209. package/v3/dist/coordination/queen-lifecycle.d.ts +61 -0
  210. package/v3/dist/coordination/queen-lifecycle.d.ts.map +1 -0
  211. package/v3/dist/coordination/queen-lifecycle.js +162 -0
  212. package/v3/dist/coordination/queen-lifecycle.js.map +1 -0
  213. package/v3/dist/coordination/queen-task-management.d.ts +84 -0
  214. package/v3/dist/coordination/queen-task-management.d.ts.map +1 -0
  215. package/v3/dist/coordination/queen-task-management.js +333 -0
  216. package/v3/dist/coordination/queen-task-management.js.map +1 -0
  217. package/v3/dist/coordination/queen-types.d.ts +175 -0
  218. package/v3/dist/coordination/queen-types.d.ts.map +1 -0
  219. package/v3/dist/coordination/queen-types.js +80 -0
  220. package/v3/dist/coordination/queen-types.js.map +1 -0
  221. package/v3/dist/coordination/queen-work-stealing.d.ts +33 -0
  222. package/v3/dist/coordination/queen-work-stealing.d.ts.map +1 -0
  223. package/v3/dist/coordination/queen-work-stealing.js +78 -0
  224. package/v3/dist/coordination/queen-work-stealing.js.map +1 -0
  225. package/v3/dist/coordination/result-saver.d.ts.map +1 -1
  226. package/v3/dist/coordination/result-saver.js +2 -1
  227. package/v3/dist/coordination/result-saver.js.map +1 -1
  228. package/v3/dist/coordination/task-executor.d.ts +45 -2
  229. package/v3/dist/coordination/task-executor.d.ts.map +1 -1
  230. package/v3/dist/coordination/task-executor.js +643 -570
  231. package/v3/dist/coordination/task-executor.js.map +1 -1
  232. package/v3/dist/coordination/workflow-builtin.d.ts +17 -0
  233. package/v3/dist/coordination/workflow-builtin.d.ts.map +1 -0
  234. package/v3/dist/coordination/workflow-builtin.js +648 -0
  235. package/v3/dist/coordination/workflow-builtin.js.map +1 -0
  236. package/v3/dist/coordination/workflow-orchestrator.d.ts +13 -300
  237. package/v3/dist/coordination/workflow-orchestrator.d.ts.map +1 -1
  238. package/v3/dist/coordination/workflow-orchestrator.js +142 -1009
  239. package/v3/dist/coordination/workflow-orchestrator.js.map +1 -1
  240. package/v3/dist/coordination/workflow-types.d.ts +250 -0
  241. package/v3/dist/coordination/workflow-types.d.ts.map +1 -0
  242. package/v3/dist/coordination/workflow-types.js +27 -0
  243. package/v3/dist/coordination/workflow-types.js.map +1 -0
  244. package/v3/dist/domains/base-domain-coordinator.d.ts +119 -0
  245. package/v3/dist/domains/base-domain-coordinator.d.ts.map +1 -0
  246. package/v3/dist/domains/base-domain-coordinator.js +200 -0
  247. package/v3/dist/domains/base-domain-coordinator.js.map +1 -0
  248. package/v3/dist/domains/chaos-resilience/coordinator.d.ts +12 -70
  249. package/v3/dist/domains/chaos-resilience/coordinator.d.ts.map +1 -1
  250. package/v3/dist/domains/chaos-resilience/coordinator.js +25 -181
  251. package/v3/dist/domains/chaos-resilience/coordinator.js.map +1 -1
  252. package/v3/dist/domains/chaos-resilience/plugin.d.ts.map +1 -1
  253. package/v3/dist/domains/chaos-resilience/plugin.js +2 -1
  254. package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
  255. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.d.ts.map +1 -1
  256. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.js +15 -13
  257. package/v3/dist/domains/chaos-resilience/services/chaos-engineer.js.map +1 -1
  258. package/v3/dist/domains/chaos-resilience/services/load-tester.d.ts.map +1 -1
  259. package/v3/dist/domains/chaos-resilience/services/load-tester.js +8 -7
  260. package/v3/dist/domains/chaos-resilience/services/load-tester.js.map +1 -1
  261. package/v3/dist/domains/chaos-resilience/services/performance-profiler.d.ts.map +1 -1
  262. package/v3/dist/domains/chaos-resilience/services/performance-profiler.js +7 -5
  263. package/v3/dist/domains/chaos-resilience/services/performance-profiler.js.map +1 -1
  264. package/v3/dist/domains/code-intelligence/coordinator-consensus.d.ts +33 -0
  265. package/v3/dist/domains/code-intelligence/coordinator-consensus.d.ts.map +1 -0
  266. package/v3/dist/domains/code-intelligence/coordinator-consensus.js +81 -0
  267. package/v3/dist/domains/code-intelligence/coordinator-consensus.js.map +1 -0
  268. package/v3/dist/domains/code-intelligence/coordinator-gnn.d.ts +44 -0
  269. package/v3/dist/domains/code-intelligence/coordinator-gnn.d.ts.map +1 -0
  270. package/v3/dist/domains/code-intelligence/coordinator-gnn.js +183 -0
  271. package/v3/dist/domains/code-intelligence/coordinator-gnn.js.map +1 -0
  272. package/v3/dist/domains/code-intelligence/coordinator-hypergraph.d.ts +40 -0
  273. package/v3/dist/domains/code-intelligence/coordinator-hypergraph.d.ts.map +1 -0
  274. package/v3/dist/domains/code-intelligence/coordinator-hypergraph.js +191 -0
  275. package/v3/dist/domains/code-intelligence/coordinator-hypergraph.js.map +1 -0
  276. package/v3/dist/domains/code-intelligence/coordinator.d.ts +17 -93
  277. package/v3/dist/domains/code-intelligence/coordinator.d.ts.map +1 -1
  278. package/v3/dist/domains/code-intelligence/coordinator.js +46 -565
  279. package/v3/dist/domains/code-intelligence/coordinator.js.map +1 -1
  280. package/v3/dist/domains/code-intelligence/index.d.ts.map +1 -1
  281. package/v3/dist/domains/code-intelligence/index.js +10 -0
  282. package/v3/dist/domains/code-intelligence/index.js.map +1 -1
  283. package/v3/dist/domains/code-intelligence/plugin.d.ts.map +1 -1
  284. package/v3/dist/domains/code-intelligence/plugin.js +2 -1
  285. package/v3/dist/domains/code-intelligence/plugin.js.map +1 -1
  286. package/v3/dist/domains/code-intelligence/services/c4-model/index.d.ts +3 -3
  287. package/v3/dist/domains/code-intelligence/services/c4-model/index.d.ts.map +1 -1
  288. package/v3/dist/domains/code-intelligence/services/c4-model/index.js +2 -2
  289. package/v3/dist/domains/code-intelligence/services/c4-model/index.js.map +1 -1
  290. package/v3/dist/domains/code-intelligence/services/c4-model/types.d.ts +1 -1
  291. package/v3/dist/domains/code-intelligence/services/c4-model/types.d.ts.map +1 -1
  292. package/v3/dist/domains/code-intelligence/services/impact-analyzer.d.ts.map +1 -1
  293. package/v3/dist/domains/code-intelligence/services/impact-analyzer.js +3 -2
  294. package/v3/dist/domains/code-intelligence/services/impact-analyzer.js.map +1 -1
  295. package/v3/dist/domains/code-intelligence/services/knowledge-graph.d.ts.map +1 -1
  296. package/v3/dist/domains/code-intelligence/services/knowledge-graph.js +8 -6
  297. package/v3/dist/domains/code-intelligence/services/knowledge-graph.js.map +1 -1
  298. package/v3/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts.map +1 -1
  299. package/v3/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +3 -2
  300. package/v3/dist/domains/code-intelligence/services/metric-collector/loc-counter.js.map +1 -1
  301. package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts.map +1 -1
  302. package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.js +3 -2
  303. package/v3/dist/domains/code-intelligence/services/metric-collector/test-counter.js.map +1 -1
  304. package/v3/dist/domains/code-intelligence/services/product-factors-bridge.d.ts.map +1 -1
  305. package/v3/dist/domains/code-intelligence/services/product-factors-bridge.js +8 -6
  306. package/v3/dist/domains/code-intelligence/services/product-factors-bridge.js.map +1 -1
  307. package/v3/dist/domains/code-intelligence/services/semantic-analyzer.d.ts.map +1 -1
  308. package/v3/dist/domains/code-intelligence/services/semantic-analyzer.js +5 -4
  309. package/v3/dist/domains/code-intelligence/services/semantic-analyzer.js.map +1 -1
  310. package/v3/dist/domains/contract-testing/coordinator.d.ts +13 -89
  311. package/v3/dist/domains/contract-testing/coordinator.d.ts.map +1 -1
  312. package/v3/dist/domains/contract-testing/coordinator.js +43 -215
  313. package/v3/dist/domains/contract-testing/coordinator.js.map +1 -1
  314. package/v3/dist/domains/contract-testing/plugin.d.ts.map +1 -1
  315. package/v3/dist/domains/contract-testing/plugin.js +5 -4
  316. package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
  317. package/v3/dist/domains/contract-testing/services/api-compatibility.d.ts.map +1 -1
  318. package/v3/dist/domains/contract-testing/services/api-compatibility.js +7 -5
  319. package/v3/dist/domains/contract-testing/services/api-compatibility.js.map +1 -1
  320. package/v3/dist/domains/contract-testing/services/contract-validator.d.ts.map +1 -1
  321. package/v3/dist/domains/contract-testing/services/contract-validator.js +10 -8
  322. package/v3/dist/domains/contract-testing/services/contract-validator.js.map +1 -1
  323. package/v3/dist/domains/contract-testing/services/schema-validator.d.ts.map +1 -1
  324. package/v3/dist/domains/contract-testing/services/schema-validator.js +10 -8
  325. package/v3/dist/domains/contract-testing/services/schema-validator.js.map +1 -1
  326. package/v3/dist/domains/coverage-analysis/coordinator.d.ts +8 -59
  327. package/v3/dist/domains/coverage-analysis/coordinator.d.ts.map +1 -1
  328. package/v3/dist/domains/coverage-analysis/coordinator.js +30 -138
  329. package/v3/dist/domains/coverage-analysis/coordinator.js.map +1 -1
  330. package/v3/dist/domains/coverage-analysis/index.js +7 -0
  331. package/v3/dist/domains/coverage-analysis/index.js.map +1 -1
  332. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.d.ts.map +1 -1
  333. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.js +5 -3
  334. package/v3/dist/domains/coverage-analysis/services/coverage-analyzer.js.map +1 -1
  335. package/v3/dist/domains/coverage-analysis/services/coverage-parser.d.ts.map +1 -1
  336. package/v3/dist/domains/coverage-analysis/services/coverage-parser.js +2 -1
  337. package/v3/dist/domains/coverage-analysis/services/coverage-parser.js.map +1 -1
  338. package/v3/dist/domains/coverage-analysis/services/gap-detector.d.ts.map +1 -1
  339. package/v3/dist/domains/coverage-analysis/services/gap-detector.js +6 -4
  340. package/v3/dist/domains/coverage-analysis/services/gap-detector.js.map +1 -1
  341. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.d.ts.map +1 -1
  342. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +5 -4
  343. package/v3/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js.map +1 -1
  344. package/v3/dist/domains/coverage-analysis/services/risk-scorer.d.ts.map +1 -1
  345. package/v3/dist/domains/coverage-analysis/services/risk-scorer.js +3 -2
  346. package/v3/dist/domains/coverage-analysis/services/risk-scorer.js.map +1 -1
  347. package/v3/dist/domains/coverage-analysis/services/sublinear-analyzer.d.ts.map +1 -1
  348. package/v3/dist/domains/coverage-analysis/services/sublinear-analyzer.js +4 -3
  349. package/v3/dist/domains/coverage-analysis/services/sublinear-analyzer.js.map +1 -1
  350. package/v3/dist/domains/defect-intelligence/coordinator.d.ts +10 -58
  351. package/v3/dist/domains/defect-intelligence/coordinator.d.ts.map +1 -1
  352. package/v3/dist/domains/defect-intelligence/coordinator.js +50 -171
  353. package/v3/dist/domains/defect-intelligence/coordinator.js.map +1 -1
  354. package/v3/dist/domains/defect-intelligence/plugin.d.ts.map +1 -1
  355. package/v3/dist/domains/defect-intelligence/plugin.js +2 -1
  356. package/v3/dist/domains/defect-intelligence/plugin.js.map +1 -1
  357. package/v3/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.d.ts.map +1 -1
  358. package/v3/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.js +4 -3
  359. package/v3/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.js.map +1 -1
  360. package/v3/dist/domains/defect-intelligence/services/defect-predictor.d.ts.map +1 -1
  361. package/v3/dist/domains/defect-intelligence/services/defect-predictor.js +6 -4
  362. package/v3/dist/domains/defect-intelligence/services/defect-predictor.js.map +1 -1
  363. package/v3/dist/domains/defect-intelligence/services/pattern-learner.d.ts.map +1 -1
  364. package/v3/dist/domains/defect-intelligence/services/pattern-learner.js +4 -3
  365. package/v3/dist/domains/defect-intelligence/services/pattern-learner.js.map +1 -1
  366. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.d.ts.map +1 -1
  367. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.js +6 -4
  368. package/v3/dist/domains/defect-intelligence/services/root-cause-analyzer.js.map +1 -1
  369. package/v3/dist/domains/domain-interface.d.ts +6 -219
  370. package/v3/dist/domains/domain-interface.d.ts.map +1 -1
  371. package/v3/dist/domains/domain-interface.js +6 -312
  372. package/v3/dist/domains/domain-interface.js.map +1 -1
  373. package/v3/dist/domains/enterprise-integration/coordinator.d.ts +11 -37
  374. package/v3/dist/domains/enterprise-integration/coordinator.d.ts.map +1 -1
  375. package/v3/dist/domains/enterprise-integration/coordinator.js +39 -148
  376. package/v3/dist/domains/enterprise-integration/coordinator.js.map +1 -1
  377. package/v3/dist/domains/enterprise-integration/plugin.d.ts.map +1 -1
  378. package/v3/dist/domains/enterprise-integration/plugin.js +2 -1
  379. package/v3/dist/domains/enterprise-integration/plugin.js.map +1 -1
  380. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.d.ts.map +1 -1
  381. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.js +7 -5
  382. package/v3/dist/domains/enterprise-integration/services/esb-middleware-service.js.map +1 -1
  383. package/v3/dist/domains/enterprise-integration/services/message-broker-service.d.ts.map +1 -1
  384. package/v3/dist/domains/enterprise-integration/services/message-broker-service.js +11 -9
  385. package/v3/dist/domains/enterprise-integration/services/message-broker-service.js.map +1 -1
  386. package/v3/dist/domains/enterprise-integration/services/odata-service.d.ts.map +1 -1
  387. package/v3/dist/domains/enterprise-integration/services/odata-service.js +4 -3
  388. package/v3/dist/domains/enterprise-integration/services/odata-service.js.map +1 -1
  389. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.d.ts.map +1 -1
  390. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.js +5 -3
  391. package/v3/dist/domains/enterprise-integration/services/sap-integration-service.js.map +1 -1
  392. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.d.ts.map +1 -1
  393. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js +4 -3
  394. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js.map +1 -1
  395. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.d.ts.map +1 -1
  396. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.js +3 -2
  397. package/v3/dist/domains/enterprise-integration/services/sod-analysis-service.js.map +1 -1
  398. package/v3/dist/domains/learning-optimization/coordinator-consensus.d.ts +37 -0
  399. package/v3/dist/domains/learning-optimization/coordinator-consensus.d.ts.map +1 -0
  400. package/v3/dist/domains/learning-optimization/coordinator-consensus.js +82 -0
  401. package/v3/dist/domains/learning-optimization/coordinator-consensus.js.map +1 -0
  402. package/v3/dist/domains/learning-optimization/coordinator-dream.d.ts +32 -0
  403. package/v3/dist/domains/learning-optimization/coordinator-dream.d.ts.map +1 -0
  404. package/v3/dist/domains/learning-optimization/coordinator-dream.js +43 -0
  405. package/v3/dist/domains/learning-optimization/coordinator-dream.js.map +1 -0
  406. package/v3/dist/domains/learning-optimization/coordinator-helpers.d.ts +56 -0
  407. package/v3/dist/domains/learning-optimization/coordinator-helpers.d.ts.map +1 -0
  408. package/v3/dist/domains/learning-optimization/coordinator-helpers.js +142 -0
  409. package/v3/dist/domains/learning-optimization/coordinator-helpers.js.map +1 -0
  410. package/v3/dist/domains/learning-optimization/coordinator-sona-methods.d.ts +64 -0
  411. package/v3/dist/domains/learning-optimization/coordinator-sona-methods.d.ts.map +1 -0
  412. package/v3/dist/domains/learning-optimization/coordinator-sona-methods.js +73 -0
  413. package/v3/dist/domains/learning-optimization/coordinator-sona-methods.js.map +1 -0
  414. package/v3/dist/domains/learning-optimization/coordinator.d.ts +17 -82
  415. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  416. package/v3/dist/domains/learning-optimization/coordinator.js +36 -320
  417. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  418. package/v3/dist/domains/learning-optimization/plugin.d.ts.map +1 -1
  419. package/v3/dist/domains/learning-optimization/plugin.js +2 -1
  420. package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
  421. package/v3/dist/domains/learning-optimization/services/learning-coordinator.d.ts.map +1 -1
  422. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js +11 -10
  423. package/v3/dist/domains/learning-optimization/services/learning-coordinator.js.map +1 -1
  424. package/v3/dist/domains/learning-optimization/services/metrics-optimizer.d.ts.map +1 -1
  425. package/v3/dist/domains/learning-optimization/services/metrics-optimizer.js +8 -7
  426. package/v3/dist/domains/learning-optimization/services/metrics-optimizer.js.map +1 -1
  427. package/v3/dist/domains/learning-optimization/services/production-intel.d.ts.map +1 -1
  428. package/v3/dist/domains/learning-optimization/services/production-intel.js +11 -10
  429. package/v3/dist/domains/learning-optimization/services/production-intel.js.map +1 -1
  430. package/v3/dist/domains/learning-optimization/services/transfer-specialist.d.ts.map +1 -1
  431. package/v3/dist/domains/learning-optimization/services/transfer-specialist.js +8 -7
  432. package/v3/dist/domains/learning-optimization/services/transfer-specialist.js.map +1 -1
  433. package/v3/dist/domains/quality-assessment/coordinator-claim-verifier.d.ts +41 -0
  434. package/v3/dist/domains/quality-assessment/coordinator-claim-verifier.d.ts.map +1 -0
  435. package/v3/dist/domains/quality-assessment/coordinator-claim-verifier.js +157 -0
  436. package/v3/dist/domains/quality-assessment/coordinator-claim-verifier.js.map +1 -0
  437. package/v3/dist/domains/quality-assessment/coordinator-gate-evaluation.d.ts +26 -0
  438. package/v3/dist/domains/quality-assessment/coordinator-gate-evaluation.d.ts.map +1 -0
  439. package/v3/dist/domains/quality-assessment/coordinator-gate-evaluation.js +135 -0
  440. package/v3/dist/domains/quality-assessment/coordinator-gate-evaluation.js.map +1 -0
  441. package/v3/dist/domains/quality-assessment/coordinator-reports.d.ts +90 -0
  442. package/v3/dist/domains/quality-assessment/coordinator-reports.d.ts.map +1 -0
  443. package/v3/dist/domains/quality-assessment/coordinator-reports.js +265 -0
  444. package/v3/dist/domains/quality-assessment/coordinator-reports.js.map +1 -0
  445. package/v3/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +92 -0
  446. package/v3/dist/domains/quality-assessment/coordinator-rl-integration.d.ts.map +1 -0
  447. package/v3/dist/domains/quality-assessment/coordinator-rl-integration.js +321 -0
  448. package/v3/dist/domains/quality-assessment/coordinator-rl-integration.js.map +1 -0
  449. package/v3/dist/domains/quality-assessment/coordinator.d.ts +18 -127
  450. package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
  451. package/v3/dist/domains/quality-assessment/coordinator.js +58 -1022
  452. package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
  453. package/v3/dist/domains/quality-assessment/index.d.ts.map +1 -1
  454. package/v3/dist/domains/quality-assessment/index.js +10 -0
  455. package/v3/dist/domains/quality-assessment/index.js.map +1 -1
  456. package/v3/dist/domains/quality-assessment/plugin.d.ts.map +1 -1
  457. package/v3/dist/domains/quality-assessment/plugin.js +2 -1
  458. package/v3/dist/domains/quality-assessment/plugin.js.map +1 -1
  459. package/v3/dist/domains/quality-assessment/services/coherence-gate.d.ts.map +1 -1
  460. package/v3/dist/domains/quality-assessment/services/coherence-gate.js +2 -1
  461. package/v3/dist/domains/quality-assessment/services/coherence-gate.js.map +1 -1
  462. package/v3/dist/domains/quality-assessment/services/deployment-advisor.d.ts.map +1 -1
  463. package/v3/dist/domains/quality-assessment/services/deployment-advisor.js +5 -3
  464. package/v3/dist/domains/quality-assessment/services/deployment-advisor.js.map +1 -1
  465. package/v3/dist/domains/quality-assessment/services/quality-analyzer.d.ts.map +1 -1
  466. package/v3/dist/domains/quality-assessment/services/quality-analyzer.js +6 -4
  467. package/v3/dist/domains/quality-assessment/services/quality-analyzer.js.map +1 -1
  468. package/v3/dist/domains/quality-assessment/services/quality-gate.d.ts.map +1 -1
  469. package/v3/dist/domains/quality-assessment/services/quality-gate.js +3 -2
  470. package/v3/dist/domains/quality-assessment/services/quality-gate.js.map +1 -1
  471. package/v3/dist/domains/requirements-validation/coordinator.d.ts +17 -61
  472. package/v3/dist/domains/requirements-validation/coordinator.d.ts.map +1 -1
  473. package/v3/dist/domains/requirements-validation/coordinator.js +25 -175
  474. package/v3/dist/domains/requirements-validation/coordinator.js.map +1 -1
  475. package/v3/dist/domains/requirements-validation/plugin.d.ts.map +1 -1
  476. package/v3/dist/domains/requirements-validation/plugin.js +2 -1
  477. package/v3/dist/domains/requirements-validation/plugin.js.map +1 -1
  478. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.d.ts.map +1 -1
  479. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.js +12 -11
  480. package/v3/dist/domains/requirements-validation/qcsd-ideation-plugin.js.map +1 -1
  481. package/v3/dist/domains/requirements-validation/qcsd-refinement-plugin.d.ts.map +1 -1
  482. package/v3/dist/domains/requirements-validation/qcsd-refinement-plugin.js +11 -10
  483. package/v3/dist/domains/requirements-validation/qcsd-refinement-plugin.js.map +1 -1
  484. package/v3/dist/domains/requirements-validation/services/bdd-scenario-writer.d.ts.map +1 -1
  485. package/v3/dist/domains/requirements-validation/services/bdd-scenario-writer.js +4 -3
  486. package/v3/dist/domains/requirements-validation/services/bdd-scenario-writer.js.map +1 -1
  487. package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.d.ts.map +1 -1
  488. package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js +3 -2
  489. package/v3/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js.map +1 -1
  490. package/v3/dist/domains/requirements-validation/services/requirements-validator.d.ts.map +1 -1
  491. package/v3/dist/domains/requirements-validation/services/requirements-validator.js +7 -5
  492. package/v3/dist/domains/requirements-validation/services/requirements-validator.js.map +1 -1
  493. package/v3/dist/domains/requirements-validation/services/testability-scorer.d.ts.map +1 -1
  494. package/v3/dist/domains/requirements-validation/services/testability-scorer.js +4 -3
  495. package/v3/dist/domains/requirements-validation/services/testability-scorer.js.map +1 -1
  496. package/v3/dist/domains/security-compliance/coordinator.d.ts +12 -58
  497. package/v3/dist/domains/security-compliance/coordinator.d.ts.map +1 -1
  498. package/v3/dist/domains/security-compliance/coordinator.js +22 -164
  499. package/v3/dist/domains/security-compliance/coordinator.js.map +1 -1
  500. package/v3/dist/domains/security-compliance/index.d.ts.map +1 -1
  501. package/v3/dist/domains/security-compliance/index.js +14 -0
  502. package/v3/dist/domains/security-compliance/index.js.map +1 -1
  503. package/v3/dist/domains/security-compliance/plugin.d.ts.map +1 -1
  504. package/v3/dist/domains/security-compliance/plugin.js +2 -1
  505. package/v3/dist/domains/security-compliance/plugin.js.map +1 -1
  506. package/v3/dist/domains/security-compliance/services/compliance-validator.d.ts.map +1 -1
  507. package/v3/dist/domains/security-compliance/services/compliance-validator.js +6 -5
  508. package/v3/dist/domains/security-compliance/services/compliance-validator.js.map +1 -1
  509. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts.map +1 -1
  510. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.js +2 -1
  511. package/v3/dist/domains/security-compliance/services/scanners/dast-helpers.js.map +1 -1
  512. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +1 -1
  513. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts.map +1 -1
  514. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.js +4 -3
  515. package/v3/dist/domains/security-compliance/services/scanners/dast-scanner.js.map +1 -1
  516. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts +1 -1
  517. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts.map +1 -1
  518. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.js +7 -5
  519. package/v3/dist/domains/security-compliance/services/scanners/dependency-scanner.js.map +1 -1
  520. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +2 -2
  521. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts.map +1 -1
  522. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js +6 -4
  523. package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js.map +1 -1
  524. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.d.ts +2 -2
  525. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.d.ts.map +1 -1
  526. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +3 -2
  527. package/v3/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js.map +1 -1
  528. package/v3/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
  529. package/v3/dist/domains/security-compliance/services/scanners/scanner-types.d.ts.map +1 -1
  530. package/v3/dist/domains/security-compliance/services/security-auditor-dast.d.ts +11 -0
  531. package/v3/dist/domains/security-compliance/services/security-auditor-dast.d.ts.map +1 -0
  532. package/v3/dist/domains/security-compliance/services/security-auditor-dast.js +284 -0
  533. package/v3/dist/domains/security-compliance/services/security-auditor-dast.js.map +1 -0
  534. package/v3/dist/domains/security-compliance/services/security-auditor-reports.d.ts +44 -0
  535. package/v3/dist/domains/security-compliance/services/security-auditor-reports.d.ts.map +1 -0
  536. package/v3/dist/domains/security-compliance/services/security-auditor-reports.js +193 -0
  537. package/v3/dist/domains/security-compliance/services/security-auditor-reports.js.map +1 -0
  538. package/v3/dist/domains/security-compliance/services/security-auditor-sast.d.ts +27 -0
  539. package/v3/dist/domains/security-compliance/services/security-auditor-sast.d.ts.map +1 -0
  540. package/v3/dist/domains/security-compliance/services/security-auditor-sast.js +279 -0
  541. package/v3/dist/domains/security-compliance/services/security-auditor-sast.js.map +1 -0
  542. package/v3/dist/domains/security-compliance/services/security-auditor-secrets.d.ts +34 -0
  543. package/v3/dist/domains/security-compliance/services/security-auditor-secrets.d.ts.map +1 -0
  544. package/v3/dist/domains/security-compliance/services/security-auditor-secrets.js +236 -0
  545. package/v3/dist/domains/security-compliance/services/security-auditor-secrets.js.map +1 -0
  546. package/v3/dist/domains/security-compliance/services/security-auditor-types.d.ts +93 -0
  547. package/v3/dist/domains/security-compliance/services/security-auditor-types.d.ts.map +1 -0
  548. package/v3/dist/domains/security-compliance/services/security-auditor-types.js +50 -0
  549. package/v3/dist/domains/security-compliance/services/security-auditor-types.js.map +1 -0
  550. package/v3/dist/domains/security-compliance/services/security-auditor.d.ts +12 -132
  551. package/v3/dist/domains/security-compliance/services/security-auditor.d.ts.map +1 -1
  552. package/v3/dist/domains/security-compliance/services/security-auditor.js +71 -1188
  553. package/v3/dist/domains/security-compliance/services/security-auditor.js.map +1 -1
  554. package/v3/dist/domains/security-compliance/services/semgrep-integration.d.ts.map +1 -1
  555. package/v3/dist/domains/security-compliance/services/semgrep-integration.js +4 -2
  556. package/v3/dist/domains/security-compliance/services/semgrep-integration.js.map +1 -1
  557. package/v3/dist/domains/test-execution/coordinator.d.ts +8 -60
  558. package/v3/dist/domains/test-execution/coordinator.d.ts.map +1 -1
  559. package/v3/dist/domains/test-execution/coordinator.js +19 -132
  560. package/v3/dist/domains/test-execution/coordinator.js.map +1 -1
  561. package/v3/dist/domains/test-execution/services/auth-state-manager.d.ts.map +1 -1
  562. package/v3/dist/domains/test-execution/services/auth-state-manager.js +2 -1
  563. package/v3/dist/domains/test-execution/services/auth-state-manager.js.map +1 -1
  564. package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.d.ts +2 -2
  565. package/v3/dist/domains/test-execution/services/e2e/assertion-handlers.d.ts.map +1 -1
  566. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts +2 -2
  567. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts.map +1 -1
  568. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.js +2 -1
  569. package/v3/dist/domains/test-execution/services/e2e/browser-orchestrator.js.map +1 -1
  570. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts +2 -2
  571. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.d.ts.map +1 -1
  572. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.js +3 -2
  573. package/v3/dist/domains/test-execution/services/e2e/e2e-coordinator.js.map +1 -1
  574. package/v3/dist/domains/test-execution/services/e2e/result-collector.d.ts +1 -1
  575. package/v3/dist/domains/test-execution/services/e2e/result-collector.d.ts.map +1 -1
  576. package/v3/dist/domains/test-execution/services/e2e/step-executors.d.ts.map +1 -1
  577. package/v3/dist/domains/test-execution/services/e2e/step-executors.js +2 -1
  578. package/v3/dist/domains/test-execution/services/e2e/step-executors.js.map +1 -1
  579. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.d.ts.map +1 -1
  580. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.js +3 -2
  581. package/v3/dist/domains/test-execution/services/e2e/step-retry-handler.js.map +1 -1
  582. package/v3/dist/domains/test-execution/services/e2e/types.d.ts +2 -2
  583. package/v3/dist/domains/test-execution/services/e2e/types.d.ts.map +1 -1
  584. package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.d.ts +1 -1
  585. package/v3/dist/domains/test-execution/services/e2e/wait-condition-handler.d.ts.map +1 -1
  586. package/v3/dist/domains/test-execution/services/flaky-detector.d.ts.map +1 -1
  587. package/v3/dist/domains/test-execution/services/flaky-detector.js +7 -5
  588. package/v3/dist/domains/test-execution/services/flaky-detector.js.map +1 -1
  589. package/v3/dist/domains/test-execution/services/retry-handler.d.ts.map +1 -1
  590. package/v3/dist/domains/test-execution/services/retry-handler.js +8 -6
  591. package/v3/dist/domains/test-execution/services/retry-handler.js.map +1 -1
  592. package/v3/dist/domains/test-execution/services/test-executor.d.ts.map +1 -1
  593. package/v3/dist/domains/test-execution/services/test-executor.js +8 -6
  594. package/v3/dist/domains/test-execution/services/test-executor.js.map +1 -1
  595. package/v3/dist/domains/test-execution/services/test-prioritizer.d.ts.map +1 -1
  596. package/v3/dist/domains/test-execution/services/test-prioritizer.js +2 -1
  597. package/v3/dist/domains/test-execution/services/test-prioritizer.js.map +1 -1
  598. package/v3/dist/domains/test-execution/services/user-flow-generator.d.ts +28 -0
  599. package/v3/dist/domains/test-execution/services/user-flow-generator.d.ts.map +1 -1
  600. package/v3/dist/domains/test-execution/services/user-flow-generator.js +156 -189
  601. package/v3/dist/domains/test-execution/services/user-flow-generator.js.map +1 -1
  602. package/v3/dist/domains/test-generation/coordinator.d.ts +14 -78
  603. package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
  604. package/v3/dist/domains/test-generation/coordinator.js +58 -202
  605. package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
  606. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts +10 -0
  607. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -1
  608. package/v3/dist/domains/test-generation/generators/base-test-generator.js +37 -30
  609. package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -1
  610. package/v3/dist/domains/test-generation/index.d.ts.map +1 -1
  611. package/v3/dist/domains/test-generation/index.js +10 -0
  612. package/v3/dist/domains/test-generation/index.js.map +1 -1
  613. package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
  614. package/v3/dist/domains/test-generation/plugin.js +2 -1
  615. package/v3/dist/domains/test-generation/plugin.js.map +1 -1
  616. package/v3/dist/domains/test-generation/services/code-transform-integration.d.ts.map +1 -1
  617. package/v3/dist/domains/test-generation/services/code-transform-integration.js +2 -1
  618. package/v3/dist/domains/test-generation/services/code-transform-integration.js.map +1 -1
  619. package/v3/dist/domains/test-generation/services/pattern-matcher.d.ts +10 -0
  620. package/v3/dist/domains/test-generation/services/pattern-matcher.d.ts.map +1 -1
  621. package/v3/dist/domains/test-generation/services/pattern-matcher.js +43 -41
  622. package/v3/dist/domains/test-generation/services/pattern-matcher.js.map +1 -1
  623. package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  624. package/v3/dist/domains/test-generation/services/test-generator.js +47 -17
  625. package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
  626. package/v3/dist/domains/visual-accessibility/coordinator.d.ts +17 -60
  627. package/v3/dist/domains/visual-accessibility/coordinator.d.ts.map +1 -1
  628. package/v3/dist/domains/visual-accessibility/coordinator.js +32 -183
  629. package/v3/dist/domains/visual-accessibility/coordinator.js.map +1 -1
  630. package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
  631. package/v3/dist/domains/visual-accessibility/plugin.js +4 -3
  632. package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
  633. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-browser.d.ts +114 -0
  634. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-browser.d.ts.map +1 -0
  635. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-browser.js +578 -0
  636. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-browser.js.map +1 -0
  637. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +54 -0
  638. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts.map +1 -0
  639. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +403 -0
  640. package/v3/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js.map +1 -0
  641. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +1 -314
  642. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts.map +1 -1
  643. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js +79 -1467
  644. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js.map +1 -1
  645. package/v3/dist/domains/visual-accessibility/services/axe-core-audit.d.ts.map +1 -1
  646. package/v3/dist/domains/visual-accessibility/services/axe-core-audit.js +2 -1
  647. package/v3/dist/domains/visual-accessibility/services/axe-core-audit.js.map +1 -1
  648. package/v3/dist/domains/visual-accessibility/services/axe-core-integration.d.ts.map +1 -1
  649. package/v3/dist/domains/visual-accessibility/services/axe-core-integration.js +5 -4
  650. package/v3/dist/domains/visual-accessibility/services/axe-core-integration.js.map +1 -1
  651. package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.d.ts.map +1 -1
  652. package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.js +5 -4
  653. package/v3/dist/domains/visual-accessibility/services/browser-security-scanner.js.map +1 -1
  654. package/v3/dist/domains/visual-accessibility/services/browser-swarm-coordinator.d.ts.map +1 -1
  655. package/v3/dist/domains/visual-accessibility/services/browser-swarm-coordinator.js +8 -7
  656. package/v3/dist/domains/visual-accessibility/services/browser-swarm-coordinator.js.map +1 -1
  657. package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts.map +1 -1
  658. package/v3/dist/domains/visual-accessibility/services/eu-compliance.js +2 -1
  659. package/v3/dist/domains/visual-accessibility/services/eu-compliance.js.map +1 -1
  660. package/v3/dist/domains/visual-accessibility/services/responsive-tester.d.ts.map +1 -1
  661. package/v3/dist/domains/visual-accessibility/services/responsive-tester.js +5 -4
  662. package/v3/dist/domains/visual-accessibility/services/responsive-tester.js.map +1 -1
  663. package/v3/dist/domains/visual-accessibility/services/viewport-capture.d.ts.map +1 -1
  664. package/v3/dist/domains/visual-accessibility/services/viewport-capture.js +7 -6
  665. package/v3/dist/domains/visual-accessibility/services/viewport-capture.js.map +1 -1
  666. package/v3/dist/domains/visual-accessibility/services/visual-regression.d.ts.map +1 -1
  667. package/v3/dist/domains/visual-accessibility/services/visual-regression.js +11 -10
  668. package/v3/dist/domains/visual-accessibility/services/visual-regression.js.map +1 -1
  669. package/v3/dist/domains/visual-accessibility/services/visual-tester.d.ts.map +1 -1
  670. package/v3/dist/domains/visual-accessibility/services/visual-tester.js +7 -6
  671. package/v3/dist/domains/visual-accessibility/services/visual-tester.js.map +1 -1
  672. package/v3/dist/early-exit/early-exit-controller.d.ts.map +1 -1
  673. package/v3/dist/early-exit/early-exit-controller.js +4 -3
  674. package/v3/dist/early-exit/early-exit-controller.js.map +1 -1
  675. package/v3/dist/feedback/coverage-learner.d.ts.map +1 -1
  676. package/v3/dist/feedback/coverage-learner.js +7 -5
  677. package/v3/dist/feedback/coverage-learner.js.map +1 -1
  678. package/v3/dist/feedback/test-outcome-tracker.d.ts.map +1 -1
  679. package/v3/dist/feedback/test-outcome-tracker.js +6 -4
  680. package/v3/dist/feedback/test-outcome-tracker.js.map +1 -1
  681. package/v3/dist/governance/adversarial-defense-integration.d.ts +0 -18
  682. package/v3/dist/governance/adversarial-defense-integration.d.ts.map +1 -1
  683. package/v3/dist/governance/adversarial-defense-integration.js +2 -1
  684. package/v3/dist/governance/adversarial-defense-integration.js.map +1 -1
  685. package/v3/dist/governance/compliance-reporter.d.ts +0 -16
  686. package/v3/dist/governance/compliance-reporter.d.ts.map +1 -1
  687. package/v3/dist/governance/compliance-reporter.js +6 -8
  688. package/v3/dist/governance/compliance-reporter.js.map +1 -1
  689. package/v3/dist/governance/continue-gate-integration.d.ts.map +1 -1
  690. package/v3/dist/governance/continue-gate-integration.js +3 -2
  691. package/v3/dist/governance/continue-gate-integration.js.map +1 -1
  692. package/v3/dist/governance/evolution-pipeline-integration.d.ts.map +1 -1
  693. package/v3/dist/governance/evolution-pipeline-integration.js +3 -2
  694. package/v3/dist/governance/evolution-pipeline-integration.js.map +1 -1
  695. package/v3/dist/governance/proof-envelope-integration.d.ts.map +1 -1
  696. package/v3/dist/governance/proof-envelope-integration.js +4 -4
  697. package/v3/dist/governance/proof-envelope-integration.js.map +1 -1
  698. package/v3/dist/governance/shard-embeddings.d.ts.map +1 -1
  699. package/v3/dist/governance/shard-embeddings.js +16 -2
  700. package/v3/dist/governance/shard-embeddings.js.map +1 -1
  701. package/v3/dist/governance/shard-retriever-integration.d.ts.map +1 -1
  702. package/v3/dist/governance/shard-retriever-integration.js +4 -3
  703. package/v3/dist/governance/shard-retriever-integration.js.map +1 -1
  704. package/v3/dist/governance/wasm-kernel-integration.d.ts.map +1 -1
  705. package/v3/dist/governance/wasm-kernel-integration.js +4 -2
  706. package/v3/dist/governance/wasm-kernel-integration.js.map +1 -1
  707. package/v3/dist/hooks/reasoning-bank-pattern-store.d.ts.map +1 -1
  708. package/v3/dist/hooks/reasoning-bank-pattern-store.js +3 -2
  709. package/v3/dist/hooks/reasoning-bank-pattern-store.js.map +1 -1
  710. package/v3/dist/hooks/task-completed-hook.d.ts.map +1 -1
  711. package/v3/dist/hooks/task-completed-hook.js +3 -2
  712. package/v3/dist/hooks/task-completed-hook.js.map +1 -1
  713. package/v3/dist/init/agents-installer.d.ts.map +1 -1
  714. package/v3/dist/init/agents-installer.js +2 -1
  715. package/v3/dist/init/agents-installer.js.map +1 -1
  716. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -1
  717. package/v3/dist/init/enhancements/claude-flow-adapter.js +3 -2
  718. package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -1
  719. package/v3/dist/init/fleet-integration.d.ts.map +1 -1
  720. package/v3/dist/init/fleet-integration.js +2 -1
  721. package/v3/dist/init/fleet-integration.js.map +1 -1
  722. package/v3/dist/init/governance-installer.d.ts.map +1 -1
  723. package/v3/dist/init/governance-installer.js +5 -4
  724. package/v3/dist/init/governance-installer.js.map +1 -1
  725. package/v3/dist/init/init-wizard-hooks.d.ts +26 -0
  726. package/v3/dist/init/init-wizard-hooks.d.ts.map +1 -0
  727. package/v3/dist/init/init-wizard-hooks.js +555 -0
  728. package/v3/dist/init/init-wizard-hooks.js.map +1 -0
  729. package/v3/dist/init/init-wizard-migration.d.ts +52 -0
  730. package/v3/dist/init/init-wizard-migration.d.ts.map +1 -0
  731. package/v3/dist/init/init-wizard-migration.js +349 -0
  732. package/v3/dist/init/init-wizard-migration.js.map +1 -0
  733. package/v3/dist/init/init-wizard-steps.d.ts +68 -0
  734. package/v3/dist/init/init-wizard-steps.d.ts.map +1 -0
  735. package/v3/dist/init/init-wizard-steps.js +457 -0
  736. package/v3/dist/init/init-wizard-steps.js.map +1 -0
  737. package/v3/dist/init/init-wizard.d.ts +8 -130
  738. package/v3/dist/init/init-wizard.d.ts.map +1 -1
  739. package/v3/dist/init/init-wizard.js +108 -1528
  740. package/v3/dist/init/init-wizard.js.map +1 -1
  741. package/v3/dist/init/migration/config-migrator.d.ts.map +1 -1
  742. package/v3/dist/init/migration/config-migrator.js +2 -1
  743. package/v3/dist/init/migration/config-migrator.js.map +1 -1
  744. package/v3/dist/init/migration/data-migrator.d.ts.map +1 -1
  745. package/v3/dist/init/migration/data-migrator.js +10 -9
  746. package/v3/dist/init/migration/data-migrator.js.map +1 -1
  747. package/v3/dist/init/migration/detector.d.ts.map +1 -1
  748. package/v3/dist/init/migration/detector.js +2 -1
  749. package/v3/dist/init/migration/detector.js.map +1 -1
  750. package/v3/dist/init/n8n-installer.d.ts.map +1 -1
  751. package/v3/dist/init/n8n-installer.js +4 -3
  752. package/v3/dist/init/n8n-installer.js.map +1 -1
  753. package/v3/dist/init/orchestrator.d.ts.map +1 -1
  754. package/v3/dist/init/orchestrator.js +2 -1
  755. package/v3/dist/init/orchestrator.js.map +1 -1
  756. package/v3/dist/init/phases/01-detection.d.ts.map +1 -1
  757. package/v3/dist/init/phases/01-detection.js +2 -1
  758. package/v3/dist/init/phases/01-detection.js.map +1 -1
  759. package/v3/dist/init/phases/06-code-intelligence.d.ts.map +1 -1
  760. package/v3/dist/init/phases/06-code-intelligence.js +2 -1
  761. package/v3/dist/init/phases/06-code-intelligence.js.map +1 -1
  762. package/v3/dist/init/phases/07-hooks.d.ts.map +1 -1
  763. package/v3/dist/init/phases/07-hooks.js +2 -1
  764. package/v3/dist/init/phases/07-hooks.js.map +1 -1
  765. package/v3/dist/init/phases/08-mcp.d.ts.map +1 -1
  766. package/v3/dist/init/phases/08-mcp.js +3 -2
  767. package/v3/dist/init/phases/08-mcp.js.map +1 -1
  768. package/v3/dist/init/phases/phase-interface.d.ts.map +1 -1
  769. package/v3/dist/init/phases/phase-interface.js +3 -2
  770. package/v3/dist/init/phases/phase-interface.js.map +1 -1
  771. package/v3/dist/init/project-analyzer.d.ts.map +1 -1
  772. package/v3/dist/init/project-analyzer.js +3 -2
  773. package/v3/dist/init/project-analyzer.js.map +1 -1
  774. package/v3/dist/init/skills-installer.d.ts.map +1 -1
  775. package/v3/dist/init/skills-installer.js +2 -1
  776. package/v3/dist/init/skills-installer.js.map +1 -1
  777. package/v3/dist/integrations/agent-booster-wasm/index.d.ts.map +1 -1
  778. package/v3/dist/integrations/agent-booster-wasm/index.js +4 -1
  779. package/v3/dist/integrations/agent-booster-wasm/index.js.map +1 -1
  780. package/v3/dist/integrations/agentic-flow/metrics/pattern-updater.d.ts.map +1 -1
  781. package/v3/dist/integrations/agentic-flow/metrics/pattern-updater.js +6 -4
  782. package/v3/dist/integrations/agentic-flow/metrics/pattern-updater.js.map +1 -1
  783. package/v3/dist/integrations/agentic-flow/onnx-embeddings/adapter.d.ts.map +1 -1
  784. package/v3/dist/integrations/agentic-flow/onnx-embeddings/adapter.js +10 -0
  785. package/v3/dist/integrations/agentic-flow/onnx-embeddings/adapter.js.map +1 -1
  786. package/v3/dist/integrations/agentic-flow/pattern-loader.d.ts.map +1 -1
  787. package/v3/dist/integrations/agentic-flow/pattern-loader.js +4 -2
  788. package/v3/dist/integrations/agentic-flow/pattern-loader.js.map +1 -1
  789. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +4 -2
  790. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts.map +1 -1
  791. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +70 -43
  792. package/v3/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js.map +1 -1
  793. package/v3/dist/integrations/agentic-flow/reasoning-bank/index.d.ts.map +1 -1
  794. package/v3/dist/integrations/agentic-flow/reasoning-bank/index.js +2 -1
  795. package/v3/dist/integrations/agentic-flow/reasoning-bank/index.js.map +1 -1
  796. package/v3/dist/integrations/agentic-flow/reasoning-bank/pattern-evolution.d.ts.map +1 -1
  797. package/v3/dist/integrations/agentic-flow/reasoning-bank/pattern-evolution.js +6 -5
  798. package/v3/dist/integrations/agentic-flow/reasoning-bank/pattern-evolution.js.map +1 -1
  799. package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.d.ts.map +1 -1
  800. package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js +7 -6
  801. package/v3/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js.map +1 -1
  802. package/v3/dist/integrations/browser/agent-browser/client.d.ts.map +1 -1
  803. package/v3/dist/integrations/browser/agent-browser/client.js +33 -31
  804. package/v3/dist/integrations/browser/agent-browser/client.js.map +1 -1
  805. package/v3/dist/integrations/browser/agent-browser/command-executor.d.ts.map +1 -1
  806. package/v3/dist/integrations/browser/agent-browser/command-executor.js +42 -22
  807. package/v3/dist/integrations/browser/agent-browser/command-executor.js.map +1 -1
  808. package/v3/dist/integrations/browser/agent-browser/snapshot-parser.d.ts.map +1 -1
  809. package/v3/dist/integrations/browser/agent-browser/snapshot-parser.js +2 -1
  810. package/v3/dist/integrations/browser/agent-browser/snapshot-parser.js.map +1 -1
  811. package/v3/dist/integrations/browser/web-content-fetcher.d.ts.map +1 -1
  812. package/v3/dist/integrations/browser/web-content-fetcher.js +4 -2
  813. package/v3/dist/integrations/browser/web-content-fetcher.js.map +1 -1
  814. package/v3/dist/integrations/coherence/coherence-service.d.ts.map +1 -1
  815. package/v3/dist/integrations/coherence/coherence-service.js +4 -3
  816. package/v3/dist/integrations/coherence/coherence-service.js.map +1 -1
  817. package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts.map +1 -1
  818. package/v3/dist/integrations/coherence/engines/spectral-adapter.js +4 -3
  819. package/v3/dist/integrations/coherence/engines/spectral-adapter.js.map +1 -1
  820. package/v3/dist/integrations/coherence/wasm-loader.d.ts.map +1 -1
  821. package/v3/dist/integrations/coherence/wasm-loader.js +4 -3
  822. package/v3/dist/integrations/coherence/wasm-loader.js.map +1 -1
  823. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.d.ts +6 -0
  824. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.d.ts.map +1 -1
  825. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.js +35 -6
  826. package/v3/dist/integrations/embeddings/cache/EmbeddingCache.js.map +1 -1
  827. package/v3/dist/integrations/n8n/agent-factory.d.ts.map +1 -1
  828. package/v3/dist/integrations/n8n/agent-factory.js +2 -1
  829. package/v3/dist/integrations/n8n/agent-factory.js.map +1 -1
  830. package/v3/dist/integrations/rl-suite/base-algorithm.d.ts.map +1 -1
  831. package/v3/dist/integrations/rl-suite/base-algorithm.js +8 -3
  832. package/v3/dist/integrations/rl-suite/base-algorithm.js.map +1 -1
  833. package/v3/dist/integrations/rl-suite/persistence/q-value-store.d.ts.map +1 -1
  834. package/v3/dist/integrations/rl-suite/persistence/q-value-store.js +2 -1
  835. package/v3/dist/integrations/rl-suite/persistence/q-value-store.js.map +1 -1
  836. package/v3/dist/integrations/ruvector/ast-complexity.d.ts.map +1 -1
  837. package/v3/dist/integrations/ruvector/ast-complexity.js +3 -2
  838. package/v3/dist/integrations/ruvector/ast-complexity.js.map +1 -1
  839. package/v3/dist/integrations/ruvector/attention-wrapper.d.ts.map +1 -1
  840. package/v3/dist/integrations/ruvector/attention-wrapper.js +2 -1
  841. package/v3/dist/integrations/ruvector/attention-wrapper.js.map +1 -1
  842. package/v3/dist/integrations/ruvector/coverage-router.d.ts.map +1 -1
  843. package/v3/dist/integrations/ruvector/coverage-router.js +3 -2
  844. package/v3/dist/integrations/ruvector/coverage-router.js.map +1 -1
  845. package/v3/dist/integrations/ruvector/diff-risk-classifier.d.ts.map +1 -1
  846. package/v3/dist/integrations/ruvector/diff-risk-classifier.js +3 -2
  847. package/v3/dist/integrations/ruvector/diff-risk-classifier.js.map +1 -1
  848. package/v3/dist/integrations/ruvector/gnn-wrapper.d.ts.map +1 -1
  849. package/v3/dist/integrations/ruvector/gnn-wrapper.js +2 -1
  850. package/v3/dist/integrations/ruvector/gnn-wrapper.js.map +1 -1
  851. package/v3/dist/integrations/ruvector/graph-boundaries.d.ts.map +1 -1
  852. package/v3/dist/integrations/ruvector/graph-boundaries.js +3 -2
  853. package/v3/dist/integrations/ruvector/graph-boundaries.js.map +1 -1
  854. package/v3/dist/integrations/ruvector/hypergraph-engine.d.ts.map +1 -1
  855. package/v3/dist/integrations/ruvector/hypergraph-engine.js +68 -67
  856. package/v3/dist/integrations/ruvector/hypergraph-engine.js.map +1 -1
  857. package/v3/dist/integrations/ruvector/hypergraph-schema.d.ts.map +1 -1
  858. package/v3/dist/integrations/ruvector/hypergraph-schema.js +3 -2
  859. package/v3/dist/integrations/ruvector/hypergraph-schema.js.map +1 -1
  860. package/v3/dist/integrations/ruvector/persistent-q-router.d.ts.map +1 -1
  861. package/v3/dist/integrations/ruvector/persistent-q-router.js +35 -11
  862. package/v3/dist/integrations/ruvector/persistent-q-router.js.map +1 -1
  863. package/v3/dist/integrations/ruvector/q-learning-router.d.ts.map +1 -1
  864. package/v3/dist/integrations/ruvector/q-learning-router.js +3 -2
  865. package/v3/dist/integrations/ruvector/q-learning-router.js.map +1 -1
  866. package/v3/dist/integrations/ruvector/server-client.d.ts.map +1 -1
  867. package/v3/dist/integrations/ruvector/server-client.js +23 -10
  868. package/v3/dist/integrations/ruvector/server-client.js.map +1 -1
  869. package/v3/dist/integrations/ruvector/sona-persistence.d.ts.map +1 -1
  870. package/v3/dist/integrations/ruvector/sona-persistence.js +11 -6
  871. package/v3/dist/integrations/ruvector/sona-persistence.js.map +1 -1
  872. package/v3/dist/integrations/vibium/client.d.ts.map +1 -1
  873. package/v3/dist/integrations/vibium/client.js +11 -10
  874. package/v3/dist/integrations/vibium/client.js.map +1 -1
  875. package/v3/dist/kernel/anti-drift-middleware.d.ts.map +1 -1
  876. package/v3/dist/kernel/anti-drift-middleware.js +8 -3
  877. package/v3/dist/kernel/anti-drift-middleware.js.map +1 -1
  878. package/v3/dist/kernel/hybrid-backend.d.ts.map +1 -1
  879. package/v3/dist/kernel/hybrid-backend.js +4 -0
  880. package/v3/dist/kernel/hybrid-backend.js.map +1 -1
  881. package/v3/dist/kernel/index.d.ts +1 -1
  882. package/v3/dist/kernel/index.d.ts.map +1 -1
  883. package/v3/dist/kernel/index.js +1 -1
  884. package/v3/dist/kernel/index.js.map +1 -1
  885. package/v3/dist/kernel/kernel.d.ts +5 -0
  886. package/v3/dist/kernel/kernel.d.ts.map +1 -1
  887. package/v3/dist/kernel/kernel.js +43 -22
  888. package/v3/dist/kernel/kernel.js.map +1 -1
  889. package/v3/dist/kernel/memory-factory.d.ts.map +1 -1
  890. package/v3/dist/kernel/memory-factory.js +12 -4
  891. package/v3/dist/kernel/memory-factory.js.map +1 -1
  892. package/v3/dist/kernel/plugin-loader.d.ts.map +1 -1
  893. package/v3/dist/kernel/plugin-loader.js +4 -1
  894. package/v3/dist/kernel/plugin-loader.js.map +1 -1
  895. package/v3/dist/kernel/unified-memory-hnsw.d.ts +101 -0
  896. package/v3/dist/kernel/unified-memory-hnsw.d.ts.map +1 -0
  897. package/v3/dist/kernel/unified-memory-hnsw.js +411 -0
  898. package/v3/dist/kernel/unified-memory-hnsw.js.map +1 -0
  899. package/v3/dist/kernel/unified-memory-migration.d.ts.map +1 -1
  900. package/v3/dist/kernel/unified-memory-migration.js +14 -15
  901. package/v3/dist/kernel/unified-memory-migration.js.map +1 -1
  902. package/v3/dist/kernel/unified-memory-schemas.d.ts +21 -0
  903. package/v3/dist/kernel/unified-memory-schemas.d.ts.map +1 -0
  904. package/v3/dist/kernel/unified-memory-schemas.js +581 -0
  905. package/v3/dist/kernel/unified-memory-schemas.js.map +1 -0
  906. package/v3/dist/kernel/unified-memory.d.ts +13 -197
  907. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  908. package/v3/dist/kernel/unified-memory.js +117 -1379
  909. package/v3/dist/kernel/unified-memory.js.map +1 -1
  910. package/v3/dist/kernel/unified-persistence.d.ts.map +1 -1
  911. package/v3/dist/kernel/unified-persistence.js +6 -4
  912. package/v3/dist/kernel/unified-persistence.js.map +1 -1
  913. package/v3/dist/learning/aqe-learning-engine.d.ts.map +1 -1
  914. package/v3/dist/learning/aqe-learning-engine.js +11 -9
  915. package/v3/dist/learning/aqe-learning-engine.js.map +1 -1
  916. package/v3/dist/learning/dream/concept-graph.d.ts.map +1 -1
  917. package/v3/dist/learning/dream/concept-graph.js +6 -4
  918. package/v3/dist/learning/dream/concept-graph.js.map +1 -1
  919. package/v3/dist/learning/dream/dream-engine.d.ts +8 -0
  920. package/v3/dist/learning/dream/dream-engine.d.ts.map +1 -1
  921. package/v3/dist/learning/dream/dream-engine.js +35 -5
  922. package/v3/dist/learning/dream/dream-engine.js.map +1 -1
  923. package/v3/dist/learning/dream/dream-scheduler.d.ts.map +1 -1
  924. package/v3/dist/learning/dream/dream-scheduler.js +34 -22
  925. package/v3/dist/learning/dream/dream-scheduler.js.map +1 -1
  926. package/v3/dist/learning/experience-capture-middleware.d.ts.map +1 -1
  927. package/v3/dist/learning/experience-capture-middleware.js +2 -1
  928. package/v3/dist/learning/experience-capture-middleware.js.map +1 -1
  929. package/v3/dist/learning/experience-capture.d.ts.map +1 -1
  930. package/v3/dist/learning/experience-capture.js +4 -1
  931. package/v3/dist/learning/experience-capture.js.map +1 -1
  932. package/v3/dist/learning/memory-auditor.d.ts.map +1 -1
  933. package/v3/dist/learning/memory-auditor.js +3 -2
  934. package/v3/dist/learning/memory-auditor.js.map +1 -1
  935. package/v3/dist/learning/metrics-tracker.d.ts.map +1 -1
  936. package/v3/dist/learning/metrics-tracker.js +6 -2
  937. package/v3/dist/learning/metrics-tracker.js.map +1 -1
  938. package/v3/dist/learning/pattern-lifecycle.d.ts.map +1 -1
  939. package/v3/dist/learning/pattern-lifecycle.js +11 -5
  940. package/v3/dist/learning/pattern-lifecycle.js.map +1 -1
  941. package/v3/dist/learning/pattern-store.d.ts +7 -0
  942. package/v3/dist/learning/pattern-store.d.ts.map +1 -1
  943. package/v3/dist/learning/pattern-store.js +32 -4
  944. package/v3/dist/learning/pattern-store.js.map +1 -1
  945. package/v3/dist/learning/qe-hooks.d.ts.map +1 -1
  946. package/v3/dist/learning/qe-hooks.js +55 -10
  947. package/v3/dist/learning/qe-hooks.js.map +1 -1
  948. package/v3/dist/learning/qe-reasoning-bank.d.ts +13 -0
  949. package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
  950. package/v3/dist/learning/qe-reasoning-bank.js +64 -24
  951. package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
  952. package/v3/dist/learning/qe-unified-memory.d.ts.map +1 -1
  953. package/v3/dist/learning/qe-unified-memory.js +31 -21
  954. package/v3/dist/learning/qe-unified-memory.js.map +1 -1
  955. package/v3/dist/learning/real-embeddings.d.ts.map +1 -1
  956. package/v3/dist/learning/real-embeddings.js +2 -1
  957. package/v3/dist/learning/real-embeddings.js.map +1 -1
  958. package/v3/dist/learning/real-qe-reasoning-bank.d.ts.map +1 -1
  959. package/v3/dist/learning/real-qe-reasoning-bank.js +47 -34
  960. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  961. package/v3/dist/learning/skill-validation-learner.d.ts.map +1 -1
  962. package/v3/dist/learning/skill-validation-learner.js +21 -12
  963. package/v3/dist/learning/skill-validation-learner.js.map +1 -1
  964. package/v3/dist/learning/sqlite-persistence.d.ts +9 -0
  965. package/v3/dist/learning/sqlite-persistence.d.ts.map +1 -1
  966. package/v3/dist/learning/sqlite-persistence.js +65 -6
  967. package/v3/dist/learning/sqlite-persistence.js.map +1 -1
  968. package/v3/dist/learning/token-tracker.d.ts.map +1 -1
  969. package/v3/dist/learning/token-tracker.js +4 -2
  970. package/v3/dist/learning/token-tracker.js.map +1 -1
  971. package/v3/dist/learning/v2-to-v3-migration.d.ts.map +1 -1
  972. package/v3/dist/learning/v2-to-v3-migration.js +9 -4
  973. package/v3/dist/learning/v2-to-v3-migration.js.map +1 -1
  974. package/v3/dist/mcp/bundle.js +15199 -13931
  975. package/v3/dist/mcp/entry.js +21 -1
  976. package/v3/dist/mcp/entry.js.map +1 -1
  977. package/v3/dist/mcp/handlers/agent-handlers.d.ts.map +1 -1
  978. package/v3/dist/mcp/handlers/agent-handlers.js +5 -4
  979. package/v3/dist/mcp/handlers/agent-handlers.js.map +1 -1
  980. package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
  981. package/v3/dist/mcp/handlers/core-handlers.js +4 -3
  982. package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
  983. package/v3/dist/mcp/handlers/handler-factory.d.ts.map +1 -1
  984. package/v3/dist/mcp/handlers/handler-factory.js +12 -3
  985. package/v3/dist/mcp/handlers/handler-factory.js.map +1 -1
  986. package/v3/dist/mcp/handlers/memory-handlers.d.ts.map +1 -1
  987. package/v3/dist/mcp/handlers/memory-handlers.js +8 -8
  988. package/v3/dist/mcp/handlers/memory-handlers.js.map +1 -1
  989. package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
  990. package/v3/dist/mcp/handlers/task-handlers.js +11 -10
  991. package/v3/dist/mcp/handlers/task-handlers.js.map +1 -1
  992. package/v3/dist/mcp/http-server.js +1 -1
  993. package/v3/dist/mcp/http-server.js.map +1 -1
  994. package/v3/dist/mcp/security/index.d.ts +2 -6
  995. package/v3/dist/mcp/security/index.d.ts.map +1 -1
  996. package/v3/dist/mcp/security/index.js +2 -2
  997. package/v3/dist/mcp/security/index.js.map +1 -1
  998. package/v3/dist/mcp/security/oauth21-provider.d.ts +7 -0
  999. package/v3/dist/mcp/security/oauth21-provider.d.ts.map +1 -1
  1000. package/v3/dist/mcp/security/oauth21-provider.js +15 -3
  1001. package/v3/dist/mcp/security/oauth21-provider.js.map +1 -1
  1002. package/v3/dist/mcp/server.d.ts.map +1 -1
  1003. package/v3/dist/mcp/server.js +10 -24
  1004. package/v3/dist/mcp/server.js.map +1 -1
  1005. package/v3/dist/mcp/tool-registry.d.ts.map +1 -1
  1006. package/v3/dist/mcp/tool-registry.js +2 -1
  1007. package/v3/dist/mcp/tool-registry.js.map +1 -1
  1008. package/v3/dist/mcp/tools/analysis/token-usage.d.ts.map +1 -1
  1009. package/v3/dist/mcp/tools/analysis/token-usage.js +2 -1
  1010. package/v3/dist/mcp/tools/analysis/token-usage.js.map +1 -1
  1011. package/v3/dist/mcp/tools/base.d.ts.map +1 -1
  1012. package/v3/dist/mcp/tools/base.js +2 -1
  1013. package/v3/dist/mcp/tools/base.js.map +1 -1
  1014. package/v3/dist/mcp/tools/chaos-resilience/inject.d.ts.map +1 -1
  1015. package/v3/dist/mcp/tools/chaos-resilience/inject.js +2 -1
  1016. package/v3/dist/mcp/tools/chaos-resilience/inject.js.map +1 -1
  1017. package/v3/dist/mcp/tools/code-intelligence/analyze.d.ts.map +1 -1
  1018. package/v3/dist/mcp/tools/code-intelligence/analyze.js +2 -1
  1019. package/v3/dist/mcp/tools/code-intelligence/analyze.js.map +1 -1
  1020. package/v3/dist/mcp/tools/coherence/audit.d.ts.map +1 -1
  1021. package/v3/dist/mcp/tools/coherence/audit.js +2 -1
  1022. package/v3/dist/mcp/tools/coherence/audit.js.map +1 -1
  1023. package/v3/dist/mcp/tools/coherence/check.d.ts.map +1 -1
  1024. package/v3/dist/mcp/tools/coherence/check.js +2 -1
  1025. package/v3/dist/mcp/tools/coherence/check.js.map +1 -1
  1026. package/v3/dist/mcp/tools/coherence/collapse.d.ts.map +1 -1
  1027. package/v3/dist/mcp/tools/coherence/collapse.js +2 -1
  1028. package/v3/dist/mcp/tools/coherence/collapse.js.map +1 -1
  1029. package/v3/dist/mcp/tools/coherence/consensus.d.ts.map +1 -1
  1030. package/v3/dist/mcp/tools/coherence/consensus.js +2 -1
  1031. package/v3/dist/mcp/tools/coherence/consensus.js.map +1 -1
  1032. package/v3/dist/mcp/tools/contract-testing/validate.d.ts.map +1 -1
  1033. package/v3/dist/mcp/tools/contract-testing/validate.js +4 -3
  1034. package/v3/dist/mcp/tools/contract-testing/validate.js.map +1 -1
  1035. package/v3/dist/mcp/tools/coverage-analysis/index.d.ts.map +1 -1
  1036. package/v3/dist/mcp/tools/coverage-analysis/index.js +7 -6
  1037. package/v3/dist/mcp/tools/coverage-analysis/index.js.map +1 -1
  1038. package/v3/dist/mcp/tools/defect-intelligence/predict.d.ts.map +1 -1
  1039. package/v3/dist/mcp/tools/defect-intelligence/predict.js +2 -1
  1040. package/v3/dist/mcp/tools/defect-intelligence/predict.js.map +1 -1
  1041. package/v3/dist/mcp/tools/embeddings/embedding.d.ts.map +1 -1
  1042. package/v3/dist/mcp/tools/embeddings/embedding.js +6 -5
  1043. package/v3/dist/mcp/tools/embeddings/embedding.js.map +1 -1
  1044. package/v3/dist/mcp/tools/learning-optimization/dream.d.ts.map +1 -1
  1045. package/v3/dist/mcp/tools/learning-optimization/dream.js +3 -2
  1046. package/v3/dist/mcp/tools/learning-optimization/dream.js.map +1 -1
  1047. package/v3/dist/mcp/tools/learning-optimization/optimize.d.ts.map +1 -1
  1048. package/v3/dist/mcp/tools/learning-optimization/optimize.js +2 -1
  1049. package/v3/dist/mcp/tools/learning-optimization/optimize.js.map +1 -1
  1050. package/v3/dist/mcp/tools/planning/goap-execute.d.ts.map +1 -1
  1051. package/v3/dist/mcp/tools/planning/goap-execute.js +2 -1
  1052. package/v3/dist/mcp/tools/planning/goap-execute.js.map +1 -1
  1053. package/v3/dist/mcp/tools/planning/goap-plan.d.ts.map +1 -1
  1054. package/v3/dist/mcp/tools/planning/goap-plan.js +2 -1
  1055. package/v3/dist/mcp/tools/planning/goap-plan.js.map +1 -1
  1056. package/v3/dist/mcp/tools/planning/goap-status.d.ts.map +1 -1
  1057. package/v3/dist/mcp/tools/planning/goap-status.js +2 -1
  1058. package/v3/dist/mcp/tools/planning/goap-status.js.map +1 -1
  1059. package/v3/dist/mcp/tools/quality-assessment/evaluate.d.ts.map +1 -1
  1060. package/v3/dist/mcp/tools/quality-assessment/evaluate.js +2 -1
  1061. package/v3/dist/mcp/tools/quality-assessment/evaluate.js.map +1 -1
  1062. package/v3/dist/mcp/tools/qx-analysis/analyze.d.ts.map +1 -1
  1063. package/v3/dist/mcp/tools/qx-analysis/analyze.js +2 -1
  1064. package/v3/dist/mcp/tools/qx-analysis/analyze.js.map +1 -1
  1065. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.d.ts +12 -0
  1066. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.d.ts.map +1 -1
  1067. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.js +158 -109
  1068. package/v3/dist/mcp/tools/qx-analysis/impact-analyzer.js.map +1 -1
  1069. package/v3/dist/mcp/tools/requirements-validation/quality-criteria.d.ts.map +1 -1
  1070. package/v3/dist/mcp/tools/requirements-validation/quality-criteria.js +2 -1
  1071. package/v3/dist/mcp/tools/requirements-validation/quality-criteria.js.map +1 -1
  1072. package/v3/dist/mcp/tools/requirements-validation/validate.d.ts.map +1 -1
  1073. package/v3/dist/mcp/tools/requirements-validation/validate.js +2 -1
  1074. package/v3/dist/mcp/tools/requirements-validation/validate.js.map +1 -1
  1075. package/v3/dist/mcp/tools/security-compliance/scan.d.ts.map +1 -1
  1076. package/v3/dist/mcp/tools/security-compliance/scan.js +2 -1
  1077. package/v3/dist/mcp/tools/security-compliance/scan.js.map +1 -1
  1078. package/v3/dist/mcp/tools/test-execution/e2e-execute.d.ts.map +1 -1
  1079. package/v3/dist/mcp/tools/test-execution/e2e-execute.js +2 -1
  1080. package/v3/dist/mcp/tools/test-execution/e2e-execute.js.map +1 -1
  1081. package/v3/dist/mcp/tools/test-execution/execute.d.ts.map +1 -1
  1082. package/v3/dist/mcp/tools/test-execution/execute.js +2 -1
  1083. package/v3/dist/mcp/tools/test-execution/execute.js.map +1 -1
  1084. package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
  1085. package/v3/dist/mcp/tools/test-generation/generate.js +2 -1
  1086. package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
  1087. package/v3/dist/mcp/tools/visual-accessibility/index.d.ts.map +1 -1
  1088. package/v3/dist/mcp/tools/visual-accessibility/index.js +3 -2
  1089. package/v3/dist/mcp/tools/visual-accessibility/index.js.map +1 -1
  1090. package/v3/dist/mcp/transport/sse/sse-transport.js +1 -1
  1091. package/v3/dist/mcp/transport/sse/sse-transport.js.map +1 -1
  1092. package/v3/dist/mcp/transport/stdio.js +1 -1
  1093. package/v3/dist/mcp/transport/stdio.js.map +1 -1
  1094. package/v3/dist/mcp/transport/websocket/websocket-transport.js +1 -1
  1095. package/v3/dist/mcp/transport/websocket/websocket-transport.js.map +1 -1
  1096. package/v3/dist/memory/crdt/or-set.d.ts.map +1 -1
  1097. package/v3/dist/memory/crdt/or-set.js +2 -1
  1098. package/v3/dist/memory/crdt/or-set.js.map +1 -1
  1099. package/v3/dist/optimization/auto-tuner.d.ts.map +1 -1
  1100. package/v3/dist/optimization/auto-tuner.js +2 -1
  1101. package/v3/dist/optimization/auto-tuner.js.map +1 -1
  1102. package/v3/dist/optimization/early-exit-token-optimizer.d.ts.map +1 -1
  1103. package/v3/dist/optimization/early-exit-token-optimizer.js +2 -1
  1104. package/v3/dist/optimization/early-exit-token-optimizer.js.map +1 -1
  1105. package/v3/dist/optimization/qe-workers.d.ts.map +1 -1
  1106. package/v3/dist/optimization/qe-workers.js +2 -1
  1107. package/v3/dist/optimization/qe-workers.js.map +1 -1
  1108. package/v3/dist/performance/benchmarks.d.ts.map +1 -1
  1109. package/v3/dist/performance/benchmarks.js +2 -1
  1110. package/v3/dist/performance/benchmarks.js.map +1 -1
  1111. package/v3/dist/performance/optimizer.d.ts.map +1 -1
  1112. package/v3/dist/performance/optimizer.js +119 -71
  1113. package/v3/dist/performance/optimizer.js.map +1 -1
  1114. package/v3/dist/performance/run-gates.js +2 -1
  1115. package/v3/dist/performance/run-gates.js.map +1 -1
  1116. package/v3/dist/planning/goap-planner.d.ts +4 -1
  1117. package/v3/dist/planning/goap-planner.d.ts.map +1 -1
  1118. package/v3/dist/planning/goap-planner.js +128 -46
  1119. package/v3/dist/planning/goap-planner.js.map +1 -1
  1120. package/v3/dist/planning/index.d.ts +1 -1
  1121. package/v3/dist/planning/index.d.ts.map +1 -1
  1122. package/v3/dist/planning/index.js.map +1 -1
  1123. package/v3/dist/planning/plan-executor.d.ts.map +1 -1
  1124. package/v3/dist/planning/plan-executor.js +7 -5
  1125. package/v3/dist/planning/plan-executor.js.map +1 -1
  1126. package/v3/dist/planning/types.d.ts +0 -16
  1127. package/v3/dist/planning/types.d.ts.map +1 -1
  1128. package/v3/dist/routing/routing-feedback.d.ts.map +1 -1
  1129. package/v3/dist/routing/routing-feedback.js +7 -5
  1130. package/v3/dist/routing/routing-feedback.js.map +1 -1
  1131. package/v3/dist/shared/base-domain-plugin.d.ts +198 -0
  1132. package/v3/dist/shared/base-domain-plugin.d.ts.map +1 -0
  1133. package/v3/dist/shared/base-domain-plugin.js +292 -0
  1134. package/v3/dist/shared/base-domain-plugin.js.map +1 -0
  1135. package/v3/dist/shared/domain-service-registry.d.ts +70 -0
  1136. package/v3/dist/shared/domain-service-registry.d.ts.map +1 -0
  1137. package/v3/dist/shared/domain-service-registry.js +87 -0
  1138. package/v3/dist/shared/domain-service-registry.js.map +1 -0
  1139. package/v3/dist/shared/embeddings/nomic-embedder.d.ts.map +1 -1
  1140. package/v3/dist/shared/embeddings/nomic-embedder.js +2 -1
  1141. package/v3/dist/shared/embeddings/nomic-embedder.js.map +1 -1
  1142. package/v3/dist/shared/embeddings/ollama-client.d.ts.map +1 -1
  1143. package/v3/dist/shared/embeddings/ollama-client.js +2 -1
  1144. package/v3/dist/shared/embeddings/ollama-client.js.map +1 -1
  1145. package/v3/dist/shared/error-utils.d.ts +16 -0
  1146. package/v3/dist/shared/error-utils.d.ts.map +1 -0
  1147. package/v3/dist/shared/error-utils.js +20 -0
  1148. package/v3/dist/shared/error-utils.js.map +1 -0
  1149. package/v3/dist/shared/http/http-client.d.ts.map +1 -1
  1150. package/v3/dist/shared/http/http-client.js +2 -1
  1151. package/v3/dist/shared/http/http-client.js.map +1 -1
  1152. package/v3/dist/shared/index.d.ts +3 -0
  1153. package/v3/dist/shared/index.d.ts.map +1 -1
  1154. package/v3/dist/shared/index.js +3 -0
  1155. package/v3/dist/shared/index.js.map +1 -1
  1156. package/v3/dist/shared/io/file-reader.d.ts.map +1 -1
  1157. package/v3/dist/shared/io/file-reader.js +2 -1
  1158. package/v3/dist/shared/io/file-reader.js.map +1 -1
  1159. package/v3/dist/shared/llm/circuit-breaker.d.ts.map +1 -1
  1160. package/v3/dist/shared/llm/circuit-breaker.js +2 -1
  1161. package/v3/dist/shared/llm/circuit-breaker.js.map +1 -1
  1162. package/v3/dist/shared/llm/metrics/cost-metrics.js.map +1 -1
  1163. package/v3/dist/shared/llm/metrics/router-metrics.d.ts.map +1 -1
  1164. package/v3/dist/shared/llm/metrics/router-metrics.js.map +1 -1
  1165. package/v3/dist/shared/llm/provider-manager.d.ts.map +1 -1
  1166. package/v3/dist/shared/llm/provider-manager.js +2 -1
  1167. package/v3/dist/shared/llm/provider-manager.js.map +1 -1
  1168. package/v3/dist/shared/llm/providers/azure-openai.d.ts.map +1 -1
  1169. package/v3/dist/shared/llm/providers/azure-openai.js +2 -1
  1170. package/v3/dist/shared/llm/providers/azure-openai.js.map +1 -1
  1171. package/v3/dist/shared/llm/providers/bedrock.d.ts.map +1 -1
  1172. package/v3/dist/shared/llm/providers/bedrock.js +2 -1
  1173. package/v3/dist/shared/llm/providers/bedrock.js.map +1 -1
  1174. package/v3/dist/shared/llm/providers/claude.d.ts.map +1 -1
  1175. package/v3/dist/shared/llm/providers/claude.js +2 -1
  1176. package/v3/dist/shared/llm/providers/claude.js.map +1 -1
  1177. package/v3/dist/shared/llm/providers/gemini.d.ts.map +1 -1
  1178. package/v3/dist/shared/llm/providers/gemini.js +4 -2
  1179. package/v3/dist/shared/llm/providers/gemini.js.map +1 -1
  1180. package/v3/dist/shared/llm/providers/openai.d.ts.map +1 -1
  1181. package/v3/dist/shared/llm/providers/openai.js +2 -1
  1182. package/v3/dist/shared/llm/providers/openai.js.map +1 -1
  1183. package/v3/dist/shared/llm/providers/openrouter.d.ts.map +1 -1
  1184. package/v3/dist/shared/llm/providers/openrouter.js +4 -2
  1185. package/v3/dist/shared/llm/providers/openrouter.js.map +1 -1
  1186. package/v3/dist/shared/llm/router/hybrid-router.d.ts.map +1 -1
  1187. package/v3/dist/shared/llm/router/hybrid-router.js +2 -1
  1188. package/v3/dist/shared/llm/router/hybrid-router.js.map +1 -1
  1189. package/v3/dist/shared/llm/translation/prompt-translator.d.ts.map +1 -1
  1190. package/v3/dist/shared/llm/translation/prompt-translator.js +2 -1
  1191. package/v3/dist/shared/llm/translation/prompt-translator.js.map +1 -1
  1192. package/v3/dist/shared/safe-json.d.ts +57 -0
  1193. package/v3/dist/shared/safe-json.d.ts.map +1 -0
  1194. package/v3/dist/shared/safe-json.js +78 -0
  1195. package/v3/dist/shared/safe-json.js.map +1 -0
  1196. package/v3/dist/shared/sql-safety.d.ts +9 -0
  1197. package/v3/dist/shared/sql-safety.d.ts.map +1 -1
  1198. package/v3/dist/shared/sql-safety.js +20 -1
  1199. package/v3/dist/shared/sql-safety.js.map +1 -1
  1200. package/v3/dist/shared/utils/circular-buffer.js +1 -1
  1201. package/v3/dist/shared/utils/circular-buffer.js.map +1 -1
  1202. package/v3/dist/skills/security-visual-testing/index.d.ts.map +1 -1
  1203. package/v3/dist/skills/security-visual-testing/index.js +6 -5
  1204. package/v3/dist/skills/security-visual-testing/index.js.map +1 -1
  1205. package/v3/dist/strange-loop/strange-loop.d.ts +0 -9
  1206. package/v3/dist/strange-loop/strange-loop.d.ts.map +1 -1
  1207. package/v3/dist/strange-loop/strange-loop.js +23 -15
  1208. package/v3/dist/strange-loop/strange-loop.js.map +1 -1
  1209. package/v3/dist/sync/claude-flow-bridge.d.ts.map +1 -1
  1210. package/v3/dist/sync/claude-flow-bridge.js +2 -1
  1211. package/v3/dist/sync/claude-flow-bridge.js.map +1 -1
  1212. package/v3/dist/sync/cloud/index.d.ts +1 -1
  1213. package/v3/dist/sync/cloud/index.d.ts.map +1 -1
  1214. package/v3/dist/sync/cloud/index.js +1 -1
  1215. package/v3/dist/sync/cloud/index.js.map +1 -1
  1216. package/v3/dist/sync/cloud/postgres-writer.d.ts.map +1 -1
  1217. package/v3/dist/sync/cloud/postgres-writer.js +20 -9
  1218. package/v3/dist/sync/cloud/postgres-writer.js.map +1 -1
  1219. package/v3/dist/sync/cloud/tunnel-manager.d.ts +17 -1
  1220. package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -1
  1221. package/v3/dist/sync/cloud/tunnel-manager.js +36 -1
  1222. package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -1
  1223. package/v3/dist/sync/embeddings/sync-embedding-generator.d.ts.map +1 -1
  1224. package/v3/dist/sync/embeddings/sync-embedding-generator.js +11 -5
  1225. package/v3/dist/sync/embeddings/sync-embedding-generator.js.map +1 -1
  1226. package/v3/dist/sync/readers/json-reader.d.ts.map +1 -1
  1227. package/v3/dist/sync/readers/json-reader.js +2 -1
  1228. package/v3/dist/sync/readers/json-reader.js.map +1 -1
  1229. package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -1
  1230. package/v3/dist/sync/readers/sqlite-reader.js +14 -6
  1231. package/v3/dist/sync/readers/sqlite-reader.js.map +1 -1
  1232. package/v3/dist/sync/sync-agent.d.ts.map +1 -1
  1233. package/v3/dist/sync/sync-agent.js +10 -6
  1234. package/v3/dist/sync/sync-agent.js.map +1 -1
  1235. package/v3/dist/test-scheduling/executors/vitest-executor.d.ts.map +1 -1
  1236. package/v3/dist/test-scheduling/executors/vitest-executor.js +3 -2
  1237. package/v3/dist/test-scheduling/executors/vitest-executor.js.map +1 -1
  1238. package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.d.ts.map +1 -1
  1239. package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.js +2 -1
  1240. package/v3/dist/test-scheduling/flaky-tracking/flaky-tracker.js.map +1 -1
  1241. package/v3/dist/testing/load/agent-load-tester.d.ts.map +1 -1
  1242. package/v3/dist/testing/load/agent-load-tester.js +2 -1
  1243. package/v3/dist/testing/load/agent-load-tester.js.map +1 -1
  1244. package/v3/dist/validation/parallel-eval-runner.d.ts.map +1 -1
  1245. package/v3/dist/validation/parallel-eval-runner.js +83 -37
  1246. package/v3/dist/validation/parallel-eval-runner.js.map +1 -1
  1247. package/v3/dist/validation/swarm-skill-validator.d.ts.map +1 -1
  1248. package/v3/dist/validation/swarm-skill-validator.js +2 -1
  1249. package/v3/dist/validation/swarm-skill-validator.js.map +1 -1
  1250. package/v3/dist/validation/validation-result-aggregator.d.ts.map +1 -1
  1251. package/v3/dist/validation/validation-result-aggregator.js +2 -1
  1252. package/v3/dist/validation/validation-result-aggregator.js.map +1 -1
  1253. package/v3/dist/workers/base-worker.d.ts.map +1 -1
  1254. package/v3/dist/workers/base-worker.js +2 -1
  1255. package/v3/dist/workers/base-worker.js.map +1 -1
  1256. package/v3/dist/workers/workers/cloud-sync.d.ts.map +1 -1
  1257. package/v3/dist/workers/workers/cloud-sync.js +2 -1
  1258. package/v3/dist/workers/workers/cloud-sync.js.map +1 -1
  1259. package/v3/dist/workers/workers/learning-consolidation.d.ts.map +1 -1
  1260. package/v3/dist/workers/workers/learning-consolidation.js +4 -3
  1261. package/v3/dist/workers/workers/learning-consolidation.js.map +1 -1
  1262. package/v3/dist/workers/workers/test-health.d.ts.map +1 -1
  1263. package/v3/dist/workers/workers/test-health.js +2 -1
  1264. package/v3/dist/workers/workers/test-health.js.map +1 -1
  1265. package/v3/package.json +3 -2
@@ -1,56 +1,27 @@
1
1
  /**
2
2
  * Agentic QE v3 - Security Auditor Service
3
- * Provides comprehensive security audit functionality
3
+ * Orchestrator that delegates to focused modules for scanning and reporting.
4
+ *
5
+ * Extracted modules:
6
+ * - security-auditor-types.ts: Types, interfaces, config, HTTP client
7
+ * - security-auditor-sast.ts: Static Application Security Testing
8
+ * - security-auditor-dast.ts: Dynamic Application Security Testing
9
+ * - security-auditor-secrets.ts: Secret/credential detection
10
+ * - security-auditor-reports.ts: Risk calculation, posture, recommendations
4
11
  */
5
12
  import { v4 as uuidv4 } from 'uuid';
6
13
  import * as fs from 'fs/promises';
7
14
  import * as path from 'path';
8
15
  import { ok, err } from '../../../shared/types/index.js';
9
- async function httpPost(url, body) {
10
- const response = await fetch(url, {
11
- method: 'POST',
12
- headers: {
13
- 'Content-Type': 'application/json',
14
- },
15
- body: JSON.stringify(body),
16
- });
17
- const data = await response.json();
18
- return {
19
- ok: response.ok,
20
- status: response.status,
21
- data,
22
- };
23
- }
24
- async function httpGet(url) {
25
- const response = await fetch(url, {
26
- method: 'GET',
27
- headers: {
28
- 'Accept': 'application/json',
29
- },
30
- });
31
- const data = await response.json();
32
- return {
33
- ok: response.ok,
34
- status: response.status,
35
- data,
36
- };
37
- }
38
- const DEFAULT_CONFIG = {
39
- secretPatterns: [
40
- /(?:api[_-]?key|apikey)['":\s]*['"=]?\s*['"]?([a-zA-Z0-9_\-]{20,})['"]?/gi,
41
- /(?:password|passwd|pwd)['":\s]*['"=]?\s*['"]?([^\s'"]{8,})['"]?/gi,
42
- /(?:secret|token)['":\s]*['"=]?\s*['"]?([a-zA-Z0-9_\-]{16,})['"]?/gi,
43
- /(?:aws[_-]?access[_-]?key|aws[_-]?secret)['":\s]*['"=]?\s*['"]?([A-Z0-9]{20,})['"]?/gi,
44
- /-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----/gi,
45
- /ghp_[a-zA-Z0-9]{36}/g, // GitHub personal access token
46
- /gho_[a-zA-Z0-9]{36}/g, // GitHub OAuth access token
47
- /sk-[a-zA-Z0-9]{48}/g, // OpenAI API key
48
- ],
49
- excludePatterns: ['node_modules', 'dist', 'build', '.git', '*.test.*', '*.spec.*'],
50
- maxFileSizeKb: 1024,
51
- enableHistoricalAnalysis: true,
52
- riskThreshold: 0.7,
53
- };
16
+ import { toError } from '../../../shared/error-utils.js';
17
+ import { safeJsonParse } from '../../../shared/safe-json.js';
18
+ export { DEFAULT_CONFIG, httpPost, httpGet } from './security-auditor-types.js';
19
+ import { DEFAULT_CONFIG, httpPost, httpGet } from './security-auditor-types.js';
20
+ // Import extracted modules
21
+ import { performSASTScan } from './security-auditor-sast.js';
22
+ import { performDASTScan } from './security-auditor-dast.js';
23
+ import { scanFileForSecrets } from './security-auditor-secrets.js';
24
+ import { calculateOverallRisk, generateRecommendations, countBySeverity, countOpenVulnerabilities, calculateTrend, calculatePostureScore, generatePostureRecommendations, determinePriorityBucket, } from './security-auditor-reports.js';
54
25
  // ============================================================================
55
26
  // Security Auditor Service Implementation
56
27
  // ============================================================================
@@ -64,9 +35,6 @@ export class SecurityAuditorService {
64
35
  // ==========================================================================
65
36
  // IDependencySecurityService Implementation
66
37
  // ==========================================================================
67
- /**
68
- * Scan dependencies for vulnerabilities
69
- */
70
38
  async scanDependencies(manifestPath) {
71
39
  try {
72
40
  const manifest = manifestPath.value;
@@ -76,60 +44,37 @@ export class SecurityAuditorService {
76
44
  }
77
45
  const vulnerabilities = [];
78
46
  const outdatedPackages = [];
79
- // Parse dependencies from manifest file
80
47
  const dependencies = await this.parseDependencies(manifest, ecosystem);
81
48
  for (const dep of dependencies) {
82
- // Check for known vulnerabilities
83
49
  const vulns = await this.checkDependencyVulnerabilities(dep, ecosystem);
84
50
  vulnerabilities.push(...vulns);
85
- // Check for outdated packages
86
51
  const outdated = await this.checkOutdated(dep);
87
52
  if (outdated) {
88
53
  outdatedPackages.push(outdated);
89
54
  }
90
55
  }
91
56
  const summary = this.createDependencySummary(vulnerabilities, dependencies.length);
92
- // Store results
93
- await this.memory.set(`security:deps:${manifestPath.filename}`, { vulnerabilities, outdatedPackages, summary }, { namespace: 'security-compliance', ttl: 86400 } // 24 hours
94
- );
95
- return ok({
96
- vulnerabilities,
97
- outdatedPackages,
98
- summary,
99
- });
57
+ await this.memory.set(`security:deps:${manifestPath.filename}`, { vulnerabilities, outdatedPackages, summary }, { namespace: 'security-compliance', ttl: 86400 });
58
+ return ok({ vulnerabilities, outdatedPackages, summary });
100
59
  }
101
60
  catch (error) {
102
- return err(error instanceof Error ? error : new Error(String(error)));
61
+ return err(toError(error));
103
62
  }
104
63
  }
105
- /**
106
- * Check specific package for security issues
107
- */
108
64
  async checkPackage(name, version, ecosystem) {
109
65
  try {
110
- // Query OSV vulnerability database
111
66
  const vulnerabilities = await this.queryVulnerabilityDatabase(name, version, ecosystem);
112
67
  const latestVersion = await this.getLatestVersion(name, ecosystem);
113
68
  const isDeprecated = await this.checkDeprecation(name, ecosystem);
114
- return ok({
115
- name,
116
- version,
117
- vulnerabilities,
118
- latestVersion,
119
- isDeprecated,
120
- });
69
+ return ok({ name, version, vulnerabilities, latestVersion, isDeprecated });
121
70
  }
122
71
  catch (error) {
123
- return err(error instanceof Error ? error : new Error(String(error)));
72
+ return err(toError(error));
124
73
  }
125
74
  }
126
- /**
127
- * Get upgrade recommendations for vulnerabilities
128
- */
129
75
  async getUpgradeRecommendations(vulnerabilities) {
130
76
  try {
131
77
  const recommendations = [];
132
- // Group vulnerabilities by package
133
78
  const byPackage = new Map();
134
79
  for (const vuln of vulnerabilities) {
135
80
  const dep = vuln.location.dependency;
@@ -140,7 +85,6 @@ export class SecurityAuditorService {
140
85
  byPackage.set(key, existing);
141
86
  }
142
87
  }
143
- // Generate recommendations for each package
144
88
  for (const [key, vulns] of byPackage) {
145
89
  const [ecosystem, name] = key.split(':');
146
90
  const currentVersion = vulns[0].location.dependency?.version || 'unknown';
@@ -156,20 +100,16 @@ export class SecurityAuditorService {
156
100
  breakingChanges: this.hasBreakingChanges(currentVersion, latestVersion),
157
101
  });
158
102
  }
159
- // Sort by number of vulnerabilities fixed
160
103
  recommendations.sort((a, b) => b.fixesVulnerabilities.length - a.fixesVulnerabilities.length);
161
104
  return ok(recommendations);
162
105
  }
163
106
  catch (error) {
164
- return err(error instanceof Error ? error : new Error(String(error)));
107
+ return err(toError(error));
165
108
  }
166
109
  }
167
110
  // ==========================================================================
168
- // Audit Functionality
111
+ // Audit Functionality (delegates to extracted modules)
169
112
  // ==========================================================================
170
- /**
171
- * Run comprehensive security audit
172
- */
173
113
  async runAudit(options) {
174
114
  const auditId = uuidv4();
175
115
  const timestamp = new Date();
@@ -178,28 +118,20 @@ export class SecurityAuditorService {
178
118
  let dastResults;
179
119
  let dependencyResults;
180
120
  let secretScanResults;
181
- // Note: Actual SAST/DAST scanning would be delegated to SecurityScannerService
182
- // This is orchestration-level code that combines results
183
121
  if (options.includeSAST) {
184
- // SAST scanning delegated to SecurityScannerService
185
- sastResults = await this.performSASTScan();
122
+ sastResults = await performSASTScan((dir) => this.findSourceFiles(dir), (fp) => this.shouldExclude(fp));
186
123
  }
187
124
  if (options.includeDAST && options.targetUrl) {
188
- // DAST scanning delegated to SecurityScannerService
189
- dastResults = await this.performDASTScan(options.targetUrl);
125
+ dastResults = await performDASTScan(options.targetUrl);
190
126
  }
191
127
  if (options.includeDependencies) {
192
- // Scan package manifests for vulnerabilities
193
128
  dependencyResults = await this.performDependencyScan();
194
129
  }
195
130
  if (options.includeSecrets) {
196
- // Scan source files for secrets
197
131
  secretScanResults = await this.performSecretScan();
198
132
  }
199
- // Calculate overall risk score
200
- const overallRiskScore = this.calculateOverallRisk(sastResults, dastResults, dependencyResults, secretScanResults);
201
- // Generate recommendations
202
- const recommendations = this.generateRecommendations(sastResults, dastResults, dependencyResults, secretScanResults);
133
+ const overallRiskScore = calculateOverallRisk(sastResults, dastResults, dependencyResults, secretScanResults);
134
+ const recommendations = generateRecommendations(sastResults, dastResults, dependencyResults, secretScanResults);
203
135
  const report = {
204
136
  auditId,
205
137
  timestamp,
@@ -210,59 +142,42 @@ export class SecurityAuditorService {
210
142
  overallRiskScore,
211
143
  recommendations,
212
144
  };
213
- // Store audit report
214
145
  await this.memory.set(`security:audit:${auditId}`, report, { namespace: 'security-compliance', persist: true });
215
146
  return ok(report);
216
147
  }
217
148
  catch (error) {
218
- return err(error instanceof Error ? error : new Error(String(error)));
149
+ return err(toError(error));
219
150
  }
220
151
  }
221
- /**
222
- * Scan for secrets in code
223
- */
224
152
  async scanSecrets(files) {
225
153
  try {
226
154
  const secretsFound = [];
227
155
  let filesScanned = 0;
228
156
  for (const file of files) {
229
- // Skip excluded patterns
230
157
  if (this.shouldExclude(file.value)) {
231
158
  continue;
232
159
  }
233
160
  filesScanned++;
234
- // Read and scan file for secrets using regex patterns
235
- const secrets = await this.scanFileForSecrets(file);
161
+ const secrets = await scanFileForSecrets(file);
236
162
  secretsFound.push(...secrets);
237
163
  }
238
- return ok({
239
- secretsFound,
240
- filesScanned,
241
- });
164
+ return ok({ secretsFound, filesScanned });
242
165
  }
243
166
  catch (error) {
244
- return err(error instanceof Error ? error : new Error(String(error)));
167
+ return err(toError(error));
245
168
  }
246
169
  }
247
- /**
248
- * Get security posture summary
249
- */
250
170
  async getSecurityPosture() {
251
171
  try {
252
- // Get historical audit data
253
172
  const audits = await this.getRecentAudits();
254
- // Calculate metrics
255
173
  const latestAudit = audits[0];
256
174
  const previousAudit = audits[1];
257
- const criticalIssues = this.countBySeverity(latestAudit, 'critical');
258
- const highIssues = this.countBySeverity(latestAudit, 'high');
259
- const openVulnerabilities = this.countOpenVulnerabilities(latestAudit);
260
- // Calculate trend
261
- const trend = this.calculateTrend(latestAudit, previousAudit);
262
- // Calculate overall score (0-100)
263
- const overallScore = this.calculatePostureScore(criticalIssues, highIssues, openVulnerabilities);
264
- // Generate recommendations
265
- const recommendations = this.generatePostureRecommendations(criticalIssues, highIssues, overallScore);
175
+ const criticalIssues = countBySeverity(latestAudit, 'critical');
176
+ const highIssues = countBySeverity(latestAudit, 'high');
177
+ const openVulnerabilities = countOpenVulnerabilities(latestAudit);
178
+ const trend = calculateTrend(latestAudit, previousAudit);
179
+ const overallScore = calculatePostureScore(criticalIssues, highIssues, openVulnerabilities);
180
+ const recommendations = generatePostureRecommendations(criticalIssues, highIssues, overallScore);
266
181
  return ok({
267
182
  overallScore,
268
183
  trend,
@@ -276,12 +191,9 @@ export class SecurityAuditorService {
276
191
  });
277
192
  }
278
193
  catch (error) {
279
- return err(error instanceof Error ? error : new Error(String(error)));
194
+ return err(toError(error));
280
195
  }
281
196
  }
282
- /**
283
- * Triage vulnerabilities by priority
284
- */
285
197
  async triageVulnerabilities(vulnerabilities) {
286
198
  try {
287
199
  const triaged = {
@@ -292,10 +204,9 @@ export class SecurityAuditorService {
292
204
  accepted: [],
293
205
  };
294
206
  for (const vuln of vulnerabilities) {
295
- const bucket = this.determinePriorityBucket(vuln);
207
+ const bucket = determinePriorityBucket(vuln);
296
208
  triaged[bucket].push(vuln);
297
209
  }
298
- // Sort each bucket by severity
299
210
  const severityOrder = ['critical', 'high', 'medium', 'low', 'informational'];
300
211
  for (const bucket of Object.values(triaged)) {
301
212
  bucket.sort((a, b) => severityOrder.indexOf(a.severity) - severityOrder.indexOf(b.severity));
@@ -303,11 +214,11 @@ export class SecurityAuditorService {
303
214
  return ok(triaged);
304
215
  }
305
216
  catch (error) {
306
- return err(error instanceof Error ? error : new Error(String(error)));
217
+ return err(toError(error));
307
218
  }
308
219
  }
309
220
  // ==========================================================================
310
- // Private Helper Methods
221
+ // Dependency Analysis Helpers
311
222
  // ==========================================================================
312
223
  detectEcosystem(manifest) {
313
224
  if (manifest.includes('package.json'))
@@ -326,33 +237,26 @@ export class SecurityAuditorService {
326
237
  const dependencies = [];
327
238
  try {
328
239
  if (ecosystem === 'npm') {
329
- // Read and parse package.json
330
240
  const content = await fs.readFile(manifest, 'utf-8');
331
- const packageJson = JSON.parse(content);
332
- // Collect all dependency types
241
+ const packageJson = safeJsonParse(content);
333
242
  const allDeps = {
334
243
  ...packageJson.dependencies,
335
244
  ...packageJson.devDependencies,
336
245
  ...packageJson.peerDependencies,
337
246
  ...packageJson.optionalDependencies,
338
247
  };
339
- // Convert to DependencyInfo array
340
248
  for (const [name, versionSpec] of Object.entries(allDeps)) {
341
- // Clean version specifiers (^, ~, >=, etc.)
342
249
  const version = this.cleanVersionSpec(versionSpec);
343
250
  dependencies.push({ name, version, ecosystem: 'npm' });
344
251
  }
345
252
  }
346
253
  else if (ecosystem === 'pip') {
347
- // Parse requirements.txt or Pipfile
348
254
  const content = await fs.readFile(manifest, 'utf-8');
349
255
  const lines = content.split('\n');
350
256
  for (const line of lines) {
351
257
  const trimmed = line.trim();
352
- // Skip comments and empty lines
353
258
  if (!trimmed || trimmed.startsWith('#'))
354
259
  continue;
355
- // Parse package==version or package>=version patterns
356
260
  const match = trimmed.match(/^([a-zA-Z0-9_-]+)(?:[=<>~!]+(.+))?$/);
357
261
  if (match) {
358
262
  dependencies.push({
@@ -363,32 +267,21 @@ export class SecurityAuditorService {
363
267
  }
364
268
  }
365
269
  }
366
- // Additional ecosystems (maven, cargo, nuget) would be implemented similarly
367
270
  }
368
271
  catch (error) {
369
- // If file reading fails, return empty array rather than throwing
370
272
  console.error(`Failed to parse dependencies from ${manifest}:`, error);
371
273
  }
372
274
  return dependencies;
373
275
  }
374
- /**
375
- * Clean version specifier to extract actual version
376
- */
377
276
  cleanVersionSpec(versionSpec) {
378
- // Remove leading specifiers like ^, ~, >=, <=, >, <, =
379
277
  return versionSpec.replace(/^[\^~>=<]+/, '').trim();
380
278
  }
381
279
  async checkDependencyVulnerabilities(dep, ecosystem) {
382
280
  const vulnerabilities = [];
383
281
  try {
384
- // Map ecosystem to OSV ecosystem name
385
282
  const osvEcosystem = this.mapToOSVEcosystem(ecosystem);
386
- // Query OSV API for vulnerabilities
387
283
  const osvQuery = {
388
- package: {
389
- name: dep.name,
390
- ecosystem: osvEcosystem,
391
- },
284
+ package: { name: dep.name, ecosystem: osvEcosystem },
392
285
  version: dep.version,
393
286
  };
394
287
  const response = await httpPost('https://api.osv.dev/v1/query', osvQuery);
@@ -400,14 +293,10 @@ export class SecurityAuditorService {
400
293
  }
401
294
  }
402
295
  catch (error) {
403
- // Log error but don't fail the entire scan
404
296
  console.error(`Failed to check vulnerabilities for ${dep.name}@${dep.version}:`, error);
405
297
  }
406
298
  return vulnerabilities;
407
299
  }
408
- /**
409
- * Map internal ecosystem to OSV ecosystem name
410
- */
411
300
  mapToOSVEcosystem(ecosystem) {
412
301
  const ecosystemMap = {
413
302
  npm: 'npm',
@@ -418,17 +307,10 @@ export class SecurityAuditorService {
418
307
  };
419
308
  return ecosystemMap[ecosystem];
420
309
  }
421
- /**
422
- * Map OSV vulnerability to our Vulnerability type
423
- */
424
310
  mapOSVVulnerability(osvVuln, dep) {
425
- // Extract CVE ID from aliases
426
311
  const cveId = osvVuln.aliases?.find((alias) => alias.startsWith('CVE-'));
427
- // Determine severity from OSV severity scores
428
312
  const severity = this.mapOSVSeverity(osvVuln.severity);
429
- // Extract fixed version from affected ranges
430
313
  const fixedVersion = this.extractFixedVersion(osvVuln);
431
- // Build references list
432
314
  const references = osvVuln.references?.map((ref) => ref.url) || [];
433
315
  const location = {
434
316
  file: 'package.json',
@@ -454,14 +336,10 @@ export class SecurityAuditorService {
454
336
  references,
455
337
  };
456
338
  }
457
- /**
458
- * Map OSV severity to our severity levels
459
- */
460
339
  mapOSVSeverity(severityScores) {
461
340
  if (!severityScores || severityScores.length === 0) {
462
- return 'medium'; // Default to medium if no severity info
341
+ return 'medium';
463
342
  }
464
- // Find CVSS score
465
343
  const cvssScore = severityScores.find((s) => s.type === 'CVSS_V3' || s.type === 'CVSS_V2');
466
344
  if (cvssScore) {
467
345
  const score = parseFloat(cvssScore.score);
@@ -476,9 +354,6 @@ export class SecurityAuditorService {
476
354
  }
477
355
  return 'medium';
478
356
  }
479
- /**
480
- * Extract fixed version from OSV vulnerability data
481
- */
482
357
  extractFixedVersion(osvVuln) {
483
358
  if (!osvVuln.affected)
484
359
  return undefined;
@@ -496,43 +371,29 @@ export class SecurityAuditorService {
496
371
  }
497
372
  return undefined;
498
373
  }
499
- /**
500
- * Categorize vulnerability based on OSV data
501
- */
502
374
  categorizeVulnerability(osvVuln) {
503
375
  const summary = (osvVuln.summary || '').toLowerCase();
504
376
  const details = (osvVuln.details || '').toLowerCase();
505
377
  const combined = `${summary} ${details}`;
506
- // Check for common vulnerability patterns
507
- if (combined.includes('injection') || combined.includes('sql')) {
378
+ if (combined.includes('injection') || combined.includes('sql'))
508
379
  return 'injection';
509
- }
510
- if (combined.includes('xss') || combined.includes('cross-site scripting')) {
380
+ if (combined.includes('xss') || combined.includes('cross-site scripting'))
511
381
  return 'xss';
512
- }
513
- if (combined.includes('authentication') || combined.includes('auth bypass')) {
382
+ if (combined.includes('authentication') || combined.includes('auth bypass'))
514
383
  return 'broken-auth';
515
- }
516
- if (combined.includes('sensitive data') || combined.includes('exposure')) {
384
+ if (combined.includes('sensitive data') || combined.includes('exposure'))
517
385
  return 'sensitive-data';
518
- }
519
- if (combined.includes('xxe') || combined.includes('xml external')) {
386
+ if (combined.includes('xxe') || combined.includes('xml external'))
520
387
  return 'xxe';
521
- }
522
- if (combined.includes('access control') || combined.includes('authorization')) {
388
+ if (combined.includes('access control') || combined.includes('authorization'))
523
389
  return 'access-control';
524
- }
525
- if (combined.includes('deseriali')) {
390
+ if (combined.includes('deseriali'))
526
391
  return 'insecure-deserialization';
527
- }
528
- if (combined.includes('prototype pollution') || combined.includes('dependency')) {
392
+ if (combined.includes('prototype pollution') || combined.includes('dependency'))
529
393
  return 'vulnerable-components';
530
- }
531
- // Default to vulnerable-components for dependency vulnerabilities
532
394
  return 'vulnerable-components';
533
395
  }
534
396
  async checkOutdated(dep) {
535
- // Check if package is outdated by comparing with latest version from registry
536
397
  const latestVersion = await this.getLatestVersion(dep.name, dep.ecosystem);
537
398
  if (latestVersion !== dep.version) {
538
399
  return {
@@ -545,27 +406,23 @@ export class SecurityAuditorService {
545
406
  return null;
546
407
  }
547
408
  async queryVulnerabilityDatabase(name, version, ecosystem) {
548
- // Query OSV API for vulnerabilities
549
409
  const dep = { name, version, ecosystem };
550
410
  return this.checkDependencyVulnerabilities(dep, ecosystem);
551
411
  }
552
412
  async getLatestVersion(name, ecosystem) {
553
413
  try {
554
414
  if (ecosystem === 'npm') {
555
- // Query npm registry for latest version
556
415
  const response = await httpGet(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`);
557
416
  if (response.ok && response.data.version) {
558
417
  return response.data.version;
559
418
  }
560
419
  }
561
420
  else if (ecosystem === 'pip') {
562
- // Query PyPI for latest version
563
421
  const response = await httpGet(`https://pypi.org/pypi/${encodeURIComponent(name)}/json`);
564
422
  if (response.ok && response.data.info?.version) {
565
423
  return response.data.info.version;
566
424
  }
567
425
  }
568
- // Additional registries (Maven, NuGet, Cargo) would be implemented similarly
569
426
  }
570
427
  catch (error) {
571
428
  console.error(`Failed to get latest version for ${name}:`, error);
@@ -575,13 +432,11 @@ export class SecurityAuditorService {
575
432
  async checkDeprecation(name, ecosystem) {
576
433
  try {
577
434
  if (ecosystem === 'npm') {
578
- // Query npm registry for deprecation notice
579
435
  const response = await httpGet(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`);
580
436
  if (response.ok && response.data.deprecated) {
581
437
  return true;
582
438
  }
583
439
  }
584
- // Additional registries would be implemented similarly
585
440
  }
586
441
  catch (error) {
587
442
  console.error(`Failed to check deprecation for ${name}:`, error);
@@ -603,12 +458,7 @@ export class SecurityAuditorService {
603
458
  return latestMajor > currentMajor;
604
459
  }
605
460
  createDependencySummary(vulnerabilities, totalDeps) {
606
- // Count vulnerabilities by severity
607
- let critical = 0;
608
- let high = 0;
609
- let medium = 0;
610
- let low = 0;
611
- let informational = 0;
461
+ let critical = 0, high = 0, medium = 0, low = 0, informational = 0;
612
462
  for (const vuln of vulnerabilities) {
613
463
  switch (vuln.severity) {
614
464
  case 'critical':
@@ -628,16 +478,11 @@ export class SecurityAuditorService {
628
478
  break;
629
479
  }
630
480
  }
631
- return {
632
- critical,
633
- high,
634
- medium,
635
- low,
636
- informational,
637
- totalFiles: totalDeps,
638
- scanDurationMs: 0,
639
- };
481
+ return { critical, high, medium, low, informational, totalFiles: totalDeps, scanDurationMs: 0 };
640
482
  }
483
+ // ==========================================================================
484
+ // File & Scan Helpers
485
+ // ==========================================================================
641
486
  shouldExclude(filePath) {
642
487
  return this.config.excludePatterns.some((pattern) => {
643
488
  if (pattern.startsWith('*')) {
@@ -646,789 +491,16 @@ export class SecurityAuditorService {
646
491
  return filePath.includes(pattern);
647
492
  });
648
493
  }
649
- async scanFileForSecrets(file) {
650
- const secrets = [];
651
- try {
652
- // Read the file content
653
- const content = await fs.readFile(file.value, 'utf-8');
654
- const lines = content.split('\n');
655
- // Comprehensive secret detection patterns
656
- const secretPatterns = [
657
- // AWS Keys
658
- {
659
- name: 'AWS Access Key ID',
660
- type: 'api-key',
661
- regex: /AKIA[0-9A-Z]{16}/g,
662
- },
663
- {
664
- name: 'AWS Secret Access Key',
665
- type: 'api-key',
666
- regex: /(?:aws[_-]?secret[_-]?access[_-]?key|AWS_SECRET_ACCESS_KEY)['"]?\s*[:=]\s*['"]?([A-Za-z0-9/+=]{40})['"]?/gi,
667
- entropyThreshold: 4.0,
668
- },
669
- // GitHub Tokens
670
- {
671
- name: 'GitHub Personal Access Token',
672
- type: 'token',
673
- regex: /ghp_[A-Za-z0-9]{36}/g,
674
- },
675
- {
676
- name: 'GitHub OAuth Access Token',
677
- type: 'token',
678
- regex: /gho_[A-Za-z0-9]{36}/g,
679
- },
680
- {
681
- name: 'GitHub App Token',
682
- type: 'token',
683
- regex: /(?:ghu|ghs)_[A-Za-z0-9]{36}/g,
684
- },
685
- // Generic API Keys
686
- {
687
- name: 'Generic API Key',
688
- type: 'api-key',
689
- regex: /(?:api[_-]?key|apikey|api_secret)['"]?\s*[:=]\s*['"]([A-Za-z0-9_\-]{20,})['"]?/gi,
690
- entropyThreshold: 3.5,
691
- },
692
- // OpenAI API Key
693
- {
694
- name: 'OpenAI API Key',
695
- type: 'api-key',
696
- regex: /sk-[A-Za-z0-9]{48}/g,
697
- },
698
- // Stripe Keys
699
- {
700
- name: 'Stripe Secret Key',
701
- type: 'api-key',
702
- regex: /sk_live_[A-Za-z0-9]{24,}/g,
703
- },
704
- {
705
- name: 'Stripe Publishable Key',
706
- type: 'api-key',
707
- regex: /pk_live_[A-Za-z0-9]{24,}/g,
708
- },
709
- // Private Keys
710
- {
711
- name: 'RSA Private Key',
712
- type: 'private-key',
713
- regex: /-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----/gi,
714
- },
715
- {
716
- name: 'PGP Private Key',
717
- type: 'private-key',
718
- regex: /-----BEGIN\s+PGP\s+PRIVATE\s+KEY\s+BLOCK-----/gi,
719
- },
720
- {
721
- name: 'SSH Private Key',
722
- type: 'private-key',
723
- regex: /-----BEGIN\s+(?:OPENSSH|DSA|EC)?\s*PRIVATE\s+KEY-----/gi,
724
- },
725
- // Passwords
726
- {
727
- name: 'Password Assignment',
728
- type: 'password',
729
- regex: /(?:password|passwd|pwd|secret)['"]?\s*[:=]\s*['"]([^'"\s]{8,})['"]?/gi,
730
- entropyThreshold: 3.0,
731
- },
732
- // Database Connection Strings
733
- {
734
- name: 'Database Connection String',
735
- type: 'password',
736
- regex: /(?:mongodb|postgres|mysql|redis):\/\/[^:]+:[^@]+@[^\s'"]+/gi,
737
- },
738
- // JWT Tokens
739
- {
740
- name: 'JWT Token',
741
- type: 'token',
742
- regex: /eyJ[A-Za-z0-9_-]*\.eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*/g,
743
- entropyThreshold: 4.0,
744
- },
745
- // Slack Tokens
746
- {
747
- name: 'Slack Token',
748
- type: 'token',
749
- regex: /xox[baprs]-[A-Za-z0-9-]{10,}/g,
750
- },
751
- // Google API Key
752
- {
753
- name: 'Google API Key',
754
- type: 'api-key',
755
- regex: /AIza[A-Za-z0-9_-]{35}/g,
756
- },
757
- // Twilio
758
- {
759
- name: 'Twilio API Key',
760
- type: 'api-key',
761
- regex: /SK[A-Za-z0-9]{32}/g,
762
- },
763
- // SendGrid
764
- {
765
- name: 'SendGrid API Key',
766
- type: 'api-key',
767
- regex: /SG\.[A-Za-z0-9_-]{22}\.[A-Za-z0-9_-]{43}/g,
768
- },
769
- // Certificates
770
- {
771
- name: 'X.509 Certificate',
772
- type: 'certificate',
773
- regex: /-----BEGIN\s+CERTIFICATE-----/gi,
774
- },
775
- ];
776
- // Scan each line for secrets
777
- for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
778
- const line = lines[lineIndex];
779
- const lineNumber = lineIndex + 1;
780
- for (const pattern of secretPatterns) {
781
- // Reset regex lastIndex for global patterns
782
- pattern.regex.lastIndex = 0;
783
- let match;
784
- while ((match = pattern.regex.exec(line)) !== null) {
785
- const matchedValue = match[1] || match[0];
786
- // Calculate entropy if threshold is specified
787
- const entropy = this.calculateEntropy(matchedValue);
788
- // Skip low-entropy matches if threshold is specified
789
- if (pattern.entropyThreshold && entropy < pattern.entropyThreshold) {
790
- continue;
791
- }
792
- // Create masked snippet (show context but mask the actual secret)
793
- const snippet = this.createMaskedSnippet(line, match.index, matchedValue.length);
794
- const location = {
795
- file: file.value,
796
- line: lineNumber,
797
- column: match.index + 1,
798
- snippet,
799
- };
800
- secrets.push({
801
- type: pattern.type,
802
- location,
803
- entropy,
804
- isValid: this.validateSecret(pattern.type, matchedValue),
805
- });
806
- }
807
- }
808
- }
809
- }
810
- catch (error) {
811
- // File reading error - skip this file
812
- console.error(`Failed to scan file for secrets: ${file.value}`, error);
813
- }
814
- return secrets;
815
- }
816
- /**
817
- * Calculate Shannon entropy of a string
818
- */
819
- calculateEntropy(str) {
820
- if (!str || str.length === 0)
821
- return 0;
822
- const charFrequency = {};
823
- for (const char of str) {
824
- charFrequency[char] = (charFrequency[char] || 0) + 1;
825
- }
826
- let entropy = 0;
827
- const len = str.length;
828
- for (const char in charFrequency) {
829
- const probability = charFrequency[char] / len;
830
- entropy -= probability * Math.log2(probability);
831
- }
832
- return entropy;
833
- }
834
- /**
835
- * Create a masked snippet for display
836
- */
837
- createMaskedSnippet(line, matchIndex, matchLength) {
838
- const contextBefore = 20;
839
- const contextAfter = 10;
840
- const start = Math.max(0, matchIndex - contextBefore);
841
- const end = Math.min(line.length, matchIndex + matchLength + contextAfter);
842
- let snippet = line.substring(start, end);
843
- // Mask the secret value (show first 4 and last 4 characters)
844
- const secretStart = matchIndex - start;
845
- const secretInSnippet = snippet.substring(secretStart, secretStart + matchLength);
846
- if (secretInSnippet.length > 8) {
847
- const masked = secretInSnippet.substring(0, 4) + '...' + secretInSnippet.substring(secretInSnippet.length - 4);
848
- snippet = snippet.substring(0, secretStart) + masked + snippet.substring(secretStart + matchLength);
849
- }
850
- if (start > 0)
851
- snippet = '...' + snippet;
852
- if (end < line.length)
853
- snippet = snippet + '...';
854
- return snippet;
855
- }
856
- /**
857
- * Validate if a detected secret is likely valid (basic validation)
858
- */
859
- validateSecret(type, value) {
860
- // Basic validation - in production, could do more sophisticated checks
861
- switch (type) {
862
- case 'api-key':
863
- // Check minimum length and character variety
864
- return value.length >= 20 && /[a-z]/.test(value) && /[A-Z0-9]/.test(value);
865
- case 'token':
866
- return value.length >= 20;
867
- case 'password':
868
- // Likely not a placeholder password
869
- return !['password', 'secret', 'changeme', '12345678', 'qwerty'].includes(value.toLowerCase());
870
- case 'private-key':
871
- return true; // Private key headers are already specific
872
- case 'certificate':
873
- return true;
874
- default:
875
- return true;
876
- }
877
- }
878
- /**
879
- * Perform SAST scan using AST-based analysis for JavaScript/TypeScript
880
- * Scans for common vulnerability patterns: XSS, SQL injection, command injection, path traversal
881
- */
882
- async performSASTScan() {
883
- const scanId = uuidv4();
884
- const startTime = Date.now();
885
- const vulnerabilities = [];
886
- let filesScanned = 0;
887
- let linesScanned = 0;
888
- try {
889
- // Find source files to scan
890
- const sourceFiles = await this.findSourceFiles(process.cwd());
891
- // Define vulnerability patterns for AST-like analysis
892
- const vulnerabilityPatterns = [
893
- // SQL Injection patterns
894
- {
895
- id: 'sqli-concat',
896
- pattern: /(?:query|execute|exec|run)\s*\(\s*(?:['"`].*?\s*\+|`[^`]*\$\{)/gi,
897
- title: 'SQL Injection via String Concatenation',
898
- description: 'SQL query constructed using string concatenation with potentially untrusted input',
899
- severity: 'critical',
900
- category: 'injection',
901
- remediation: 'Use parameterized queries or prepared statements',
902
- fixExample: 'db.query("SELECT * FROM users WHERE id = $1", [userId])',
903
- cweId: 'CWE-89',
904
- },
905
- // XSS patterns
906
- {
907
- id: 'xss-innerhtml',
908
- pattern: /\.innerHTML\s*=\s*(?!['"`])/g,
909
- title: 'XSS via innerHTML Assignment',
910
- description: 'Direct innerHTML assignment with potentially unsanitized content',
911
- severity: 'high',
912
- category: 'xss',
913
- remediation: 'Use textContent for text, or sanitize HTML with DOMPurify',
914
- fixExample: 'element.textContent = userInput;',
915
- cweId: 'CWE-79',
916
- },
917
- {
918
- id: 'xss-document-write',
919
- pattern: /document\.write\s*\([^)]+\)/g,
920
- title: 'XSS via document.write',
921
- description: 'document.write() can execute scripts from untrusted data',
922
- severity: 'high',
923
- category: 'xss',
924
- remediation: 'Avoid document.write(); use DOM manipulation methods',
925
- cweId: 'CWE-79',
926
- },
927
- {
928
- id: 'xss-eval',
929
- pattern: /(?<!\.)\beval\s*\([^)]+\)/g,
930
- title: 'Code Injection via eval()',
931
- description: 'eval() executes arbitrary code and is a major security risk',
932
- severity: 'critical',
933
- category: 'xss',
934
- remediation: 'Never use eval(); use JSON.parse() for JSON data',
935
- fixExample: 'JSON.parse(jsonString)',
936
- cweId: 'CWE-95',
937
- },
938
- {
939
- id: 'xss-dangerous-react',
940
- pattern: /dangerouslySetInnerHTML\s*=\s*\{/g,
941
- title: 'React dangerouslySetInnerHTML Usage',
942
- description: 'dangerouslySetInnerHTML bypasses React XSS protections',
943
- severity: 'medium',
944
- category: 'xss',
945
- remediation: 'Sanitize HTML content with DOMPurify before use',
946
- fixExample: 'dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(content) }}',
947
- cweId: 'CWE-79',
948
- },
949
- // Command Injection patterns
950
- {
951
- id: 'cmd-injection-exec',
952
- pattern: /(?:child_process\.)?exec\s*\(\s*(?:[^,)]*\s*\+|`[^`]*\$\{)/g,
953
- title: 'Command Injection via exec()',
954
- description: 'Shell command execution with unsanitized input',
955
- severity: 'critical',
956
- category: 'injection',
957
- remediation: 'Use execFile() with argument array instead of exec()',
958
- fixExample: 'execFile("command", [arg1, arg2], callback)',
959
- cweId: 'CWE-78',
960
- },
961
- {
962
- id: 'cmd-injection-spawn-shell',
963
- pattern: /spawn\s*\([^)]+,\s*\{[^}]*shell\s*:\s*true/g,
964
- title: 'Dangerous Shell Option in spawn()',
965
- description: 'spawn() with shell: true can enable command injection',
966
- severity: 'high',
967
- category: 'injection',
968
- remediation: 'Avoid shell: true option; use direct command execution',
969
- cweId: 'CWE-78',
970
- },
971
- // Path Traversal patterns
972
- {
973
- id: 'path-traversal-readfile',
974
- pattern: /(?:readFile|readFileSync)\s*\([^)]*\+/g,
975
- title: 'Path Traversal via File Read',
976
- description: 'File read operation with concatenated path may allow directory traversal',
977
- severity: 'high',
978
- category: 'access-control',
979
- remediation: 'Validate and sanitize file paths; use path.resolve() and check against base directory',
980
- fixExample: 'const safePath = path.resolve(baseDir, path.basename(userInput))',
981
- cweId: 'CWE-22',
982
- },
983
- {
984
- id: 'path-traversal-writefile',
985
- pattern: /(?:writeFile|writeFileSync)\s*\([^)]*\+/g,
986
- title: 'Path Traversal via File Write',
987
- description: 'File write operation with concatenated path may allow directory traversal',
988
- severity: 'high',
989
- category: 'access-control',
990
- remediation: 'Validate file paths before writing; ensure path is within allowed directory',
991
- cweId: 'CWE-22',
992
- },
993
- // Hardcoded secrets
994
- {
995
- id: 'secret-private-key',
996
- pattern: /-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----/g,
997
- title: 'Private Key Detected in Source',
998
- description: 'Private key found in source code',
999
- severity: 'critical',
1000
- category: 'sensitive-data',
1001
- remediation: 'Store private keys in secure key management systems, not in code',
1002
- cweId: 'CWE-798',
1003
- },
1004
- // Insecure configurations
1005
- {
1006
- id: 'config-tls-disabled',
1007
- pattern: /rejectUnauthorized\s*:\s*false/g,
1008
- title: 'TLS Certificate Validation Disabled',
1009
- description: 'Disabling TLS certificate validation exposes to MITM attacks',
1010
- severity: 'high',
1011
- category: 'security-misconfiguration',
1012
- remediation: 'Always enable TLS certificate validation in production',
1013
- cweId: 'CWE-295',
1014
- },
1015
- {
1016
- id: 'config-cors-wildcard',
1017
- pattern: /cors\s*\(\s*\{[^}]*origin\s*:\s*['"]\*['"]/gi,
1018
- title: 'Permissive CORS Configuration',
1019
- description: 'CORS allows all origins (*) which may expose sensitive data',
1020
- severity: 'medium',
1021
- category: 'security-misconfiguration',
1022
- remediation: 'Restrict CORS to specific trusted origins',
1023
- fixExample: 'cors({ origin: ["https://trusted-domain.com"] })',
1024
- cweId: 'CWE-942',
1025
- },
1026
- ];
1027
- for (const filePath of sourceFiles) {
1028
- if (this.shouldExclude(filePath)) {
1029
- continue;
1030
- }
1031
- // Only scan JS/TS files
1032
- const ext = path.extname(filePath).toLowerCase();
1033
- if (!['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(ext)) {
1034
- continue;
1035
- }
1036
- try {
1037
- const content = await fs.readFile(filePath, 'utf-8');
1038
- const lines = content.split('\n');
1039
- filesScanned++;
1040
- linesScanned += lines.length;
1041
- // Check each vulnerability pattern
1042
- for (const vulnPattern of vulnerabilityPatterns) {
1043
- // Reset regex state
1044
- vulnPattern.pattern.lastIndex = 0;
1045
- let match;
1046
- while ((match = vulnPattern.pattern.exec(content)) !== null) {
1047
- // Calculate line and column
1048
- const beforeMatch = content.substring(0, match.index);
1049
- const linesBefore = beforeMatch.split('\n');
1050
- const lineNumber = linesBefore.length;
1051
- const column = linesBefore[linesBefore.length - 1].length + 1;
1052
- // Check if in comment
1053
- const currentLine = lines[lineNumber - 1] || '';
1054
- if (currentLine.trimStart().startsWith('//') || currentLine.trimStart().startsWith('*')) {
1055
- continue;
1056
- }
1057
- // Check for nosec annotation
1058
- if (currentLine.includes('// nosec') || currentLine.includes('// security-ignore')) {
1059
- continue;
1060
- }
1061
- // Extract snippet with context
1062
- const startLine = Math.max(0, lineNumber - 2);
1063
- const endLine = Math.min(lines.length, lineNumber + 1);
1064
- const snippet = lines.slice(startLine, endLine).join('\n');
1065
- const location = {
1066
- file: filePath,
1067
- line: lineNumber,
1068
- column,
1069
- snippet,
1070
- };
1071
- const remediation = {
1072
- description: vulnPattern.remediation,
1073
- fixExample: vulnPattern.fixExample,
1074
- estimatedEffort: vulnPattern.severity === 'critical' ? 'moderate' : 'minor',
1075
- automatable: vulnPattern.severity === 'low' || vulnPattern.severity === 'medium',
1076
- };
1077
- vulnerabilities.push({
1078
- id: uuidv4(),
1079
- cveId: undefined,
1080
- title: vulnPattern.title,
1081
- description: `${vulnPattern.description} [${vulnPattern.cweId}]`,
1082
- severity: vulnPattern.severity,
1083
- category: vulnPattern.category,
1084
- location,
1085
- remediation,
1086
- references: [
1087
- `https://cwe.mitre.org/data/definitions/${vulnPattern.cweId.replace('CWE-', '')}.html`,
1088
- ],
1089
- });
1090
- }
1091
- }
1092
- }
1093
- catch {
1094
- // Skip files that can't be read
1095
- }
1096
- }
1097
- }
1098
- catch (error) {
1099
- console.error('SAST scan failed:', error);
1100
- }
1101
- const scanDurationMs = Date.now() - startTime;
1102
- // Calculate summary
1103
- let critical = 0, high = 0, medium = 0, low = 0, informational = 0;
1104
- for (const vuln of vulnerabilities) {
1105
- switch (vuln.severity) {
1106
- case 'critical':
1107
- critical++;
1108
- break;
1109
- case 'high':
1110
- high++;
1111
- break;
1112
- case 'medium':
1113
- medium++;
1114
- break;
1115
- case 'low':
1116
- low++;
1117
- break;
1118
- case 'informational':
1119
- informational++;
1120
- break;
1121
- }
1122
- }
1123
- return {
1124
- scanId,
1125
- vulnerabilities,
1126
- summary: {
1127
- critical,
1128
- high,
1129
- medium,
1130
- low,
1131
- informational,
1132
- totalFiles: filesScanned,
1133
- scanDurationMs,
1134
- },
1135
- coverage: {
1136
- filesScanned,
1137
- linesScanned,
1138
- rulesApplied: 12, // Number of vulnerability patterns
1139
- },
1140
- };
1141
- }
1142
- /**
1143
- * Perform DAST scan using HTTP requests to test for vulnerabilities
1144
- * Tests for common web vulnerabilities: XSS, SQL injection, security headers, etc.
1145
- */
1146
- async performDASTScan(targetUrl) {
1147
- const scanId = uuidv4();
1148
- const startTime = Date.now();
1149
- const vulnerabilities = [];
1150
- let crawledUrls = 0;
1151
- try {
1152
- // Validate URL
1153
- let parsedUrl;
1154
- try {
1155
- parsedUrl = new URL(targetUrl);
1156
- }
1157
- catch {
1158
- return {
1159
- scanId,
1160
- targetUrl,
1161
- vulnerabilities: [{
1162
- id: uuidv4(),
1163
- title: 'Invalid Target URL',
1164
- description: 'The provided target URL is not valid',
1165
- severity: 'informational',
1166
- category: 'security-misconfiguration',
1167
- location: { file: targetUrl },
1168
- remediation: { description: 'Provide a valid URL', estimatedEffort: 'trivial', automatable: false },
1169
- references: [],
1170
- }],
1171
- summary: { critical: 0, high: 0, medium: 0, low: 0, informational: 1, totalFiles: 0, scanDurationMs: Date.now() - startTime },
1172
- crawledUrls: 0,
1173
- };
1174
- }
1175
- // Perform HTTP request to check security headers and response characteristics
1176
- const controller = new AbortController();
1177
- const timeoutId = setTimeout(() => controller.abort(), 30000); // 30s timeout
1178
- try {
1179
- const response = await fetch(targetUrl, {
1180
- method: 'GET',
1181
- headers: {
1182
- 'User-Agent': 'AgenticQE-SecurityScanner/3.0',
1183
- 'Accept': 'text/html,application/json,*/*',
1184
- },
1185
- signal: controller.signal,
1186
- redirect: 'follow',
1187
- });
1188
- clearTimeout(timeoutId);
1189
- crawledUrls = 1;
1190
- // Check security headers
1191
- const headers = response.headers;
1192
- // Check for missing security headers
1193
- const securityHeaderChecks = [
1194
- {
1195
- header: 'strict-transport-security',
1196
- title: 'Missing HTTP Strict Transport Security (HSTS)',
1197
- description: 'HSTS header is missing, allowing downgrade attacks',
1198
- severity: 'medium',
1199
- remediation: 'Add Strict-Transport-Security header with appropriate max-age',
1200
- },
1201
- {
1202
- header: 'x-content-type-options',
1203
- title: 'Missing X-Content-Type-Options Header',
1204
- description: 'X-Content-Type-Options header is missing, allowing MIME sniffing attacks',
1205
- severity: 'low',
1206
- remediation: 'Add X-Content-Type-Options: nosniff header',
1207
- },
1208
- {
1209
- header: 'x-frame-options',
1210
- title: 'Missing X-Frame-Options Header',
1211
- description: 'X-Frame-Options header is missing, allowing clickjacking attacks',
1212
- severity: 'medium',
1213
- remediation: 'Add X-Frame-Options: DENY or SAMEORIGIN header',
1214
- },
1215
- {
1216
- header: 'content-security-policy',
1217
- title: 'Missing Content Security Policy',
1218
- description: 'CSP header is missing, increasing XSS attack surface',
1219
- severity: 'medium',
1220
- remediation: 'Implement a Content-Security-Policy header',
1221
- },
1222
- {
1223
- header: 'x-xss-protection',
1224
- title: 'Missing X-XSS-Protection Header',
1225
- description: 'X-XSS-Protection header is missing (legacy XSS filter)',
1226
- severity: 'low',
1227
- remediation: 'Add X-XSS-Protection: 1; mode=block header',
1228
- },
1229
- ];
1230
- for (const check of securityHeaderChecks) {
1231
- if (!headers.get(check.header)) {
1232
- vulnerabilities.push({
1233
- id: uuidv4(),
1234
- title: check.title,
1235
- description: check.description,
1236
- severity: check.severity,
1237
- category: 'security-misconfiguration',
1238
- location: {
1239
- file: targetUrl,
1240
- snippet: `Response Headers: ${check.header} not present`,
1241
- },
1242
- remediation: {
1243
- description: check.remediation,
1244
- estimatedEffort: 'minor',
1245
- automatable: true,
1246
- },
1247
- references: [
1248
- 'https://owasp.org/www-project-secure-headers/',
1249
- ],
1250
- });
1251
- }
1252
- }
1253
- // Check for insecure cookies
1254
- const cookies = headers.get('set-cookie');
1255
- if (cookies) {
1256
- if (!cookies.toLowerCase().includes('secure')) {
1257
- vulnerabilities.push({
1258
- id: uuidv4(),
1259
- title: 'Cookie Without Secure Flag',
1260
- description: 'Session cookie is set without the Secure flag',
1261
- severity: 'medium',
1262
- category: 'sensitive-data',
1263
- location: { file: targetUrl, snippet: `Set-Cookie: ${cookies.substring(0, 50)}...` },
1264
- remediation: { description: 'Add Secure flag to cookies', estimatedEffort: 'trivial', automatable: true },
1265
- references: ['https://owasp.org/www-community/controls/SecureCookieAttribute'],
1266
- });
1267
- }
1268
- if (!cookies.toLowerCase().includes('httponly')) {
1269
- vulnerabilities.push({
1270
- id: uuidv4(),
1271
- title: 'Cookie Without HttpOnly Flag',
1272
- description: 'Session cookie is set without the HttpOnly flag, making it accessible to JavaScript',
1273
- severity: 'medium',
1274
- category: 'sensitive-data',
1275
- location: { file: targetUrl, snippet: `Set-Cookie: ${cookies.substring(0, 50)}...` },
1276
- remediation: { description: 'Add HttpOnly flag to session cookies', estimatedEffort: 'trivial', automatable: true },
1277
- references: ['https://owasp.org/www-community/HttpOnly'],
1278
- });
1279
- }
1280
- if (!cookies.toLowerCase().includes('samesite')) {
1281
- vulnerabilities.push({
1282
- id: uuidv4(),
1283
- title: 'Cookie Without SameSite Attribute',
1284
- description: 'Cookie is set without the SameSite attribute, potentially vulnerable to CSRF',
1285
- severity: 'low',
1286
- category: 'broken-auth',
1287
- location: { file: targetUrl, snippet: `Set-Cookie: ${cookies.substring(0, 50)}...` },
1288
- remediation: { description: 'Add SameSite=Strict or SameSite=Lax to cookies', estimatedEffort: 'trivial', automatable: true },
1289
- references: ['https://owasp.org/www-community/SameSite'],
1290
- });
1291
- }
1292
- }
1293
- // Check for server information disclosure
1294
- const server = headers.get('server');
1295
- if (server && /[0-9]+\.[0-9]+/.test(server)) {
1296
- vulnerabilities.push({
1297
- id: uuidv4(),
1298
- title: 'Server Version Disclosure',
1299
- description: `Server header reveals version information: ${server}`,
1300
- severity: 'low',
1301
- category: 'security-misconfiguration',
1302
- location: { file: targetUrl, snippet: `Server: ${server}` },
1303
- remediation: { description: 'Remove or obfuscate server version information', estimatedEffort: 'trivial', automatable: true },
1304
- references: ['https://owasp.org/www-project-web-security-testing-guide/'],
1305
- });
1306
- }
1307
- // Check for HTTPS
1308
- if (parsedUrl.protocol === 'http:') {
1309
- vulnerabilities.push({
1310
- id: uuidv4(),
1311
- title: 'Insecure HTTP Protocol',
1312
- description: 'Target is using HTTP instead of HTTPS, exposing data in transit',
1313
- severity: 'high',
1314
- category: 'sensitive-data',
1315
- location: { file: targetUrl },
1316
- remediation: { description: 'Use HTTPS with valid TLS certificate', estimatedEffort: 'moderate', automatable: false },
1317
- references: ['https://owasp.org/www-project-web-security-testing-guide/'],
1318
- });
1319
- }
1320
- // Try common test endpoints for additional checks
1321
- const testEndpoints = [
1322
- { path: '/.git/config', vuln: 'Git Repository Exposed', severity: 'high' },
1323
- { path: '/.env', vuln: 'Environment File Exposed', severity: 'critical' },
1324
- { path: '/phpinfo.php', vuln: 'PHP Info Exposed', severity: 'medium' },
1325
- { path: '/wp-config.php.bak', vuln: 'WordPress Config Backup Exposed', severity: 'critical' },
1326
- ];
1327
- for (const endpoint of testEndpoints) {
1328
- try {
1329
- const testUrl = new URL(endpoint.path, parsedUrl.origin).toString();
1330
- const testResponse = await fetch(testUrl, {
1331
- method: 'GET',
1332
- signal: AbortSignal.timeout(5000),
1333
- });
1334
- if (testResponse.ok && testResponse.status === 200) {
1335
- const text = await testResponse.text();
1336
- // Verify it's actually the sensitive content, not a custom 404
1337
- if (text.length > 10 && !text.toLowerCase().includes('not found')) {
1338
- crawledUrls++;
1339
- vulnerabilities.push({
1340
- id: uuidv4(),
1341
- title: endpoint.vuln,
1342
- description: `Sensitive file found at ${endpoint.path}`,
1343
- severity: endpoint.severity,
1344
- category: 'sensitive-data',
1345
- location: { file: testUrl },
1346
- remediation: { description: 'Remove or restrict access to sensitive files', estimatedEffort: 'trivial', automatable: true },
1347
- references: ['https://owasp.org/www-project-web-security-testing-guide/'],
1348
- });
1349
- }
1350
- }
1351
- }
1352
- catch {
1353
- // Endpoint not accessible, which is expected/good
1354
- }
1355
- }
1356
- }
1357
- catch (fetchError) {
1358
- clearTimeout(timeoutId);
1359
- const errorMessage = fetchError instanceof Error ? fetchError.message : String(fetchError);
1360
- // Network errors might indicate issues
1361
- if (errorMessage.includes('certificate') || errorMessage.includes('SSL') || errorMessage.includes('TLS')) {
1362
- vulnerabilities.push({
1363
- id: uuidv4(),
1364
- title: 'TLS/SSL Certificate Issue',
1365
- description: `Certificate error: ${errorMessage}`,
1366
- severity: 'high',
1367
- category: 'security-misconfiguration',
1368
- location: { file: targetUrl },
1369
- remediation: { description: 'Fix TLS certificate configuration', estimatedEffort: 'moderate', automatable: false },
1370
- references: ['https://owasp.org/www-project-web-security-testing-guide/'],
1371
- });
1372
- }
1373
- }
1374
- }
1375
- catch (error) {
1376
- console.error('DAST scan failed:', error);
1377
- }
1378
- const scanDurationMs = Date.now() - startTime;
1379
- // Calculate summary
1380
- let critical = 0, high = 0, medium = 0, low = 0, informational = 0;
1381
- for (const vuln of vulnerabilities) {
1382
- switch (vuln.severity) {
1383
- case 'critical':
1384
- critical++;
1385
- break;
1386
- case 'high':
1387
- high++;
1388
- break;
1389
- case 'medium':
1390
- medium++;
1391
- break;
1392
- case 'low':
1393
- low++;
1394
- break;
1395
- case 'informational':
1396
- informational++;
1397
- break;
1398
- }
1399
- }
1400
- return {
1401
- scanId,
1402
- targetUrl,
1403
- vulnerabilities,
1404
- summary: {
1405
- critical,
1406
- high,
1407
- medium,
1408
- low,
1409
- informational,
1410
- totalFiles: 1,
1411
- scanDurationMs,
1412
- },
1413
- crawledUrls,
1414
- };
1415
- }
1416
- /**
1417
- * Perform dependency scan using OSV API
1418
- */
1419
494
  async performDependencyScan() {
1420
495
  const startTime = Date.now();
1421
496
  const vulnerabilities = [];
1422
497
  const outdatedPackages = [];
1423
498
  try {
1424
- // Look for package.json in current working directory
1425
499
  const manifestPath = path.join(process.cwd(), 'package.json');
1426
500
  const dependencies = await this.parseDependencies(manifestPath, 'npm');
1427
501
  for (const dep of dependencies) {
1428
- // Check for vulnerabilities via OSV API
1429
502
  const vulns = await this.checkDependencyVulnerabilities(dep, dep.ecosystem);
1430
503
  vulnerabilities.push(...vulns);
1431
- // Check for outdated packages
1432
504
  const outdated = await this.checkOutdated(dep);
1433
505
  if (outdated) {
1434
506
  outdatedPackages.push(outdated);
@@ -1436,14 +508,7 @@ export class SecurityAuditorService {
1436
508
  }
1437
509
  const scanDurationMs = Date.now() - startTime;
1438
510
  const baseSummary = this.createDependencySummary(vulnerabilities, dependencies.length);
1439
- return {
1440
- vulnerabilities,
1441
- outdatedPackages,
1442
- summary: {
1443
- ...baseSummary,
1444
- scanDurationMs,
1445
- },
1446
- };
511
+ return { vulnerabilities, outdatedPackages, summary: { ...baseSummary, scanDurationMs } };
1447
512
  }
1448
513
  catch (error) {
1449
514
  console.error('Dependency scan failed:', error);
@@ -1451,25 +516,16 @@ export class SecurityAuditorService {
1451
516
  vulnerabilities: [],
1452
517
  outdatedPackages: [],
1453
518
  summary: {
1454
- critical: 0,
1455
- high: 0,
1456
- medium: 0,
1457
- low: 0,
1458
- informational: 0,
1459
- totalFiles: 0,
1460
- scanDurationMs: Date.now() - startTime,
519
+ critical: 0, high: 0, medium: 0, low: 0, informational: 0,
520
+ totalFiles: 0, scanDurationMs: Date.now() - startTime,
1461
521
  },
1462
522
  };
1463
523
  }
1464
524
  }
1465
- /**
1466
- * Perform secret scan on source files
1467
- */
1468
525
  async performSecretScan() {
1469
526
  const secretsFound = [];
1470
527
  let filesScanned = 0;
1471
528
  try {
1472
- // Get list of source files to scan
1473
529
  const sourceFiles = await this.findSourceFiles(process.cwd());
1474
530
  for (const filePath of sourceFiles) {
1475
531
  if (this.shouldExclude(filePath)) {
@@ -1477,28 +533,21 @@ export class SecurityAuditorService {
1477
533
  }
1478
534
  filesScanned++;
1479
535
  const filePathObj = { value: filePath };
1480
- const secrets = await this.scanFileForSecrets(filePathObj);
536
+ const secrets = await scanFileForSecrets(filePathObj);
1481
537
  secretsFound.push(...secrets);
1482
538
  }
1483
539
  }
1484
540
  catch (error) {
1485
541
  console.error('Secret scan failed:', error);
1486
542
  }
1487
- return {
1488
- secretsFound,
1489
- filesScanned,
1490
- };
543
+ return { secretsFound, filesScanned };
1491
544
  }
1492
- /**
1493
- * Find source files in a directory (recursively)
1494
- */
1495
545
  async findSourceFiles(dir, files = []) {
1496
546
  const sourceExtensions = ['.ts', '.js', '.tsx', '.jsx', '.json', '.env', '.yaml', '.yml', '.config'];
1497
547
  try {
1498
548
  const entries = await fs.readdir(dir, { withFileTypes: true });
1499
549
  for (const entry of entries) {
1500
550
  const fullPath = path.join(dir, entry.name);
1501
- // Skip excluded directories
1502
551
  if (this.shouldExclude(fullPath)) {
1503
552
  continue;
1504
553
  }
@@ -1514,87 +563,14 @@ export class SecurityAuditorService {
1514
563
  }
1515
564
  }
1516
565
  catch (error) {
1517
- // Non-critical: permission errors when reading directories are expected
1518
566
  console.debug('[SecurityAuditor] Directory read error:', error instanceof Error ? error.message : error);
1519
567
  }
1520
568
  return files;
1521
569
  }
1522
- calculateOverallRisk(sast, dast, deps, secrets) {
1523
- let riskValue = 0;
1524
- let weights = 0;
1525
- if (sast) {
1526
- riskValue +=
1527
- this.calculateScanRisk(sast.summary) * 0.35;
1528
- weights += 0.35;
1529
- }
1530
- if (dast) {
1531
- riskValue +=
1532
- this.calculateScanRisk(dast.summary) * 0.25;
1533
- weights += 0.25;
1534
- }
1535
- if (deps) {
1536
- riskValue +=
1537
- this.calculateScanRisk(deps.summary) * 0.25;
1538
- weights += 0.25;
1539
- }
1540
- if (secrets) {
1541
- const secretRisk = secrets.secretsFound.length > 0 ? 0.9 : 0.1;
1542
- riskValue += secretRisk * 0.15;
1543
- weights += 0.15;
1544
- }
1545
- const normalizedRisk = weights > 0 ? riskValue / weights : 0;
1546
- // Return RiskScore-compatible object
1547
- return {
1548
- value: Math.min(1, normalizedRisk),
1549
- percentage: normalizedRisk * 100,
1550
- level: normalizedRisk >= 0.8 ? 'critical' :
1551
- normalizedRisk >= 0.6 ? 'high' :
1552
- normalizedRisk >= 0.3 ? 'medium' : 'low',
1553
- };
1554
- }
1555
- calculateScanRisk(summary) {
1556
- const weights = {
1557
- critical: 1.0,
1558
- high: 0.7,
1559
- medium: 0.4,
1560
- low: 0.1,
1561
- informational: 0.02,
1562
- };
1563
- const totalIssues = summary.critical +
1564
- summary.high +
1565
- summary.medium +
1566
- summary.low +
1567
- summary.informational;
1568
- if (totalIssues === 0)
1569
- return 0;
1570
- const weightedSum = summary.critical * weights.critical +
1571
- summary.high * weights.high +
1572
- summary.medium * weights.medium +
1573
- summary.low * weights.low +
1574
- summary.informational * weights.informational;
1575
- return Math.min(1, weightedSum / 10);
1576
- }
1577
- generateRecommendations(sast, dast, deps, secrets) {
1578
- const recommendations = [];
1579
- if (sast && sast.summary.critical > 0) {
1580
- recommendations.push(`Address ${sast.summary.critical} critical vulnerabilities found in static analysis`);
1581
- }
1582
- if (dast && dast.summary.high > 0) {
1583
- recommendations.push(`Fix ${dast.summary.high} high-severity issues found in dynamic testing`);
1584
- }
1585
- if (deps && deps.outdatedPackages.length > 5) {
1586
- recommendations.push(`Update ${deps.outdatedPackages.length} outdated dependencies`);
1587
- }
1588
- if (secrets && secrets.secretsFound.length > 0) {
1589
- recommendations.push(`Remove ${secrets.secretsFound.length} exposed secrets and rotate credentials`);
1590
- }
1591
- if (recommendations.length === 0) {
1592
- recommendations.push('Security posture is good. Continue regular scanning.');
1593
- }
1594
- return recommendations;
1595
- }
570
+ // ==========================================================================
571
+ // Historical Analysis Helpers
572
+ // ==========================================================================
1596
573
  async getRecentAudits() {
1597
- // Query recent audits from memory storage
1598
574
  const keys = await this.memory.search('security:audit:*', 10);
1599
575
  const audits = [];
1600
576
  for (const key of keys) {
@@ -1605,87 +581,19 @@ export class SecurityAuditorService {
1605
581
  }
1606
582
  return audits.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
1607
583
  }
1608
- countBySeverity(audit, severity) {
1609
- if (!audit)
1610
- return 0;
1611
- let count = 0;
1612
- if (audit.sastResults)
1613
- count += audit.sastResults.summary[severity];
1614
- if (audit.dastResults)
1615
- count += audit.dastResults.summary[severity];
1616
- if (audit.dependencyResults)
1617
- count += audit.dependencyResults.summary[severity];
1618
- return count;
1619
- }
1620
- countOpenVulnerabilities(audit) {
1621
- if (!audit)
1622
- return 0;
1623
- let count = 0;
1624
- if (audit.sastResults)
1625
- count += audit.sastResults.vulnerabilities.length;
1626
- if (audit.dastResults)
1627
- count += audit.dastResults.vulnerabilities.length;
1628
- if (audit.dependencyResults)
1629
- count += audit.dependencyResults.vulnerabilities.length;
1630
- return count;
1631
- }
1632
- calculateTrend(latest, previous) {
1633
- if (!latest || !previous)
1634
- return 'stable';
1635
- const latestScore = this.countOpenVulnerabilities(latest);
1636
- const previousScore = this.countOpenVulnerabilities(previous);
1637
- if (latestScore < previousScore * 0.9)
1638
- return 'improving';
1639
- if (latestScore > previousScore * 1.1)
1640
- return 'declining';
1641
- return 'stable';
1642
- }
1643
- calculatePostureScore(critical, high, open) {
1644
- // Start at 100, deduct points for issues
1645
- let score = 100;
1646
- score -= critical * 20;
1647
- score -= high * 10;
1648
- score -= open * 2;
1649
- return Math.max(0, Math.min(100, score));
1650
- }
1651
- generatePostureRecommendations(critical, high, score) {
1652
- const recommendations = [];
1653
- if (critical > 0) {
1654
- recommendations.push('Immediately address all critical vulnerabilities');
1655
- }
1656
- if (high > 3) {
1657
- recommendations.push('Prioritize fixing high-severity issues');
1658
- }
1659
- if (score < 50) {
1660
- recommendations.push('Consider a comprehensive security review');
1661
- recommendations.push('Implement automated security scanning in CI/CD');
1662
- }
1663
- if (score >= 80) {
1664
- recommendations.push('Maintain current security practices');
1665
- recommendations.push('Consider penetration testing for deeper analysis');
1666
- }
1667
- return recommendations;
1668
- }
1669
- /**
1670
- * Count vulnerabilities resolved in the last week
1671
- * Calculates by comparing consecutive audit reports
1672
- */
1673
584
  async countResolvedLastWeek() {
1674
585
  try {
1675
586
  const audits = await this.getRecentAudits();
1676
587
  if (audits.length < 2)
1677
588
  return 0;
1678
589
  const oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
1679
- // Find audits from this week
1680
590
  const recentAudits = audits.filter((audit) => new Date(audit.timestamp) >= oneWeekAgo);
1681
591
  if (recentAudits.length < 2)
1682
592
  return 0;
1683
- // Compare vulnerability counts between first and last audit of the week
1684
593
  const oldest = recentAudits[recentAudits.length - 1];
1685
594
  const newest = recentAudits[0];
1686
- const oldCount = this.countOpenVulnerabilities(oldest);
1687
- const newCount = this.countOpenVulnerabilities(newest);
1688
- // Resolved = old count - new count (if positive)
595
+ const oldCount = countOpenVulnerabilities(oldest);
596
+ const newCount = countOpenVulnerabilities(newest);
1689
597
  return Math.max(0, oldCount - newCount);
1690
598
  }
1691
599
  catch (error) {
@@ -1693,22 +601,16 @@ export class SecurityAuditorService {
1693
601
  return 0;
1694
602
  }
1695
603
  }
1696
- /**
1697
- * Calculate average resolution time from historical audit data
1698
- */
1699
604
  async calculateAverageResolutionTime() {
1700
605
  try {
1701
606
  const audits = await this.getRecentAudits();
1702
607
  if (audits.length < 2)
1703
- return 72; // Default to 72 hours
1704
- // Track vulnerabilities across audits to calculate resolution time
608
+ return 72;
1705
609
  const vulnFirstSeen = new Map();
1706
610
  const resolutionTimes = [];
1707
- // Process audits from oldest to newest
1708
611
  const sortedAudits = [...audits].reverse();
1709
612
  for (const audit of sortedAudits) {
1710
613
  const currentVulnIds = new Set();
1711
- // Collect all vulnerability IDs in this audit
1712
614
  if (audit.sastResults) {
1713
615
  audit.sastResults.vulnerabilities.forEach((v) => currentVulnIds.add(v.id));
1714
616
  }
@@ -1718,13 +620,11 @@ export class SecurityAuditorService {
1718
620
  if (audit.dependencyResults) {
1719
621
  audit.dependencyResults.vulnerabilities.forEach((v) => currentVulnIds.add(v.id));
1720
622
  }
1721
- // Track new vulnerabilities
1722
623
  for (const vulnId of currentVulnIds) {
1723
624
  if (!vulnFirstSeen.has(vulnId)) {
1724
625
  vulnFirstSeen.set(vulnId, audit.timestamp);
1725
626
  }
1726
627
  }
1727
- // Check for resolved vulnerabilities
1728
628
  for (const [vulnId, firstSeen] of vulnFirstSeen) {
1729
629
  if (!currentVulnIds.has(vulnId)) {
1730
630
  const resolutionTime = (audit.timestamp.getTime() - firstSeen.getTime()) / (1000 * 60 * 60);
@@ -1734,31 +634,14 @@ export class SecurityAuditorService {
1734
634
  }
1735
635
  }
1736
636
  if (resolutionTimes.length === 0)
1737
- return 72; // Default
1738
- // Calculate average
637
+ return 72;
1739
638
  const sum = resolutionTimes.reduce((acc, time) => acc + time, 0);
1740
639
  return Math.round(sum / resolutionTimes.length);
1741
640
  }
1742
641
  catch (error) {
1743
642
  console.error('Failed to calculate average resolution time:', error);
1744
- return 72; // Default to 72 hours
1745
- }
1746
- }
1747
- determinePriorityBucket(vuln) {
1748
- const effort = vuln.remediation.estimatedEffort;
1749
- if (vuln.severity === 'critical') {
1750
- return 'immediate';
1751
- }
1752
- if (vuln.severity === 'high') {
1753
- return effort === 'trivial' || effort === 'minor' ? 'immediate' : 'shortTerm';
1754
- }
1755
- if (vuln.severity === 'medium') {
1756
- return effort === 'major' ? 'longTerm' : 'mediumTerm';
1757
- }
1758
- if (vuln.severity === 'low' || vuln.severity === 'informational') {
1759
- return 'longTerm';
643
+ return 72;
1760
644
  }
1761
- return 'accepted';
1762
645
  }
1763
646
  }
1764
647
  //# sourceMappingURL=security-auditor.js.map