agentic-qe 3.3.0 → 3.3.1

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 (367) hide show
  1. package/README.md +6 -2
  2. package/package.json +6 -1
  3. package/v3/CHANGELOG.md +88 -0
  4. package/v3/dist/cli/bundle.js +18794 -15534
  5. package/v3/dist/cli/command-registry.d.ts +55 -0
  6. package/v3/dist/cli/command-registry.d.ts.map +1 -0
  7. package/v3/dist/cli/command-registry.js +103 -0
  8. package/v3/dist/cli/command-registry.js.map +1 -0
  9. package/v3/dist/cli/commands/code.d.ts +9 -0
  10. package/v3/dist/cli/commands/code.d.ts.map +1 -0
  11. package/v3/dist/cli/commands/code.js +254 -0
  12. package/v3/dist/cli/commands/code.js.map +1 -0
  13. package/v3/dist/cli/commands/completions.d.ts +8 -0
  14. package/v3/dist/cli/commands/completions.d.ts.map +1 -0
  15. package/v3/dist/cli/commands/completions.js +99 -0
  16. package/v3/dist/cli/commands/completions.js.map +1 -0
  17. package/v3/dist/cli/commands/coverage.d.ts +9 -0
  18. package/v3/dist/cli/commands/coverage.d.ts.map +1 -0
  19. package/v3/dist/cli/commands/coverage.js +208 -0
  20. package/v3/dist/cli/commands/coverage.js.map +1 -0
  21. package/v3/dist/cli/commands/fleet.d.ts +11 -0
  22. package/v3/dist/cli/commands/fleet.d.ts.map +1 -0
  23. package/v3/dist/cli/commands/fleet.js +338 -0
  24. package/v3/dist/cli/commands/fleet.js.map +1 -0
  25. package/v3/dist/cli/commands/migrate.d.ts +9 -0
  26. package/v3/dist/cli/commands/migrate.d.ts.map +1 -0
  27. package/v3/dist/cli/commands/migrate.js +566 -0
  28. package/v3/dist/cli/commands/migrate.js.map +1 -0
  29. package/v3/dist/cli/commands/quality.d.ts +9 -0
  30. package/v3/dist/cli/commands/quality.d.ts.map +1 -0
  31. package/v3/dist/cli/commands/quality.js +40 -0
  32. package/v3/dist/cli/commands/quality.js.map +1 -0
  33. package/v3/dist/cli/commands/security.d.ts +9 -0
  34. package/v3/dist/cli/commands/security.d.ts.map +1 -0
  35. package/v3/dist/cli/commands/security.js +124 -0
  36. package/v3/dist/cli/commands/security.js.map +1 -0
  37. package/v3/dist/cli/commands/sync.d.ts +19 -0
  38. package/v3/dist/cli/commands/sync.d.ts.map +1 -0
  39. package/v3/dist/cli/commands/sync.js +283 -0
  40. package/v3/dist/cli/commands/sync.js.map +1 -0
  41. package/v3/dist/cli/commands/test.d.ts +9 -0
  42. package/v3/dist/cli/commands/test.d.ts.map +1 -0
  43. package/v3/dist/cli/commands/test.js +166 -0
  44. package/v3/dist/cli/commands/test.js.map +1 -0
  45. package/v3/dist/cli/handlers/agent-handler.d.ts +20 -0
  46. package/v3/dist/cli/handlers/agent-handler.d.ts.map +1 -0
  47. package/v3/dist/cli/handlers/agent-handler.js +158 -0
  48. package/v3/dist/cli/handlers/agent-handler.js.map +1 -0
  49. package/v3/dist/cli/handlers/domain-handler.d.ts +20 -0
  50. package/v3/dist/cli/handlers/domain-handler.d.ts.map +1 -0
  51. package/v3/dist/cli/handlers/domain-handler.js +115 -0
  52. package/v3/dist/cli/handlers/domain-handler.js.map +1 -0
  53. package/v3/dist/cli/handlers/index.d.ts +13 -0
  54. package/v3/dist/cli/handlers/index.d.ts.map +1 -0
  55. package/v3/dist/cli/handlers/index.js +15 -0
  56. package/v3/dist/cli/handlers/index.js.map +1 -0
  57. package/v3/dist/cli/handlers/init-handler.d.ts +38 -0
  58. package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -0
  59. package/v3/dist/cli/handlers/init-handler.js +288 -0
  60. package/v3/dist/cli/handlers/init-handler.js.map +1 -0
  61. package/v3/dist/cli/handlers/interfaces.d.ts +104 -0
  62. package/v3/dist/cli/handlers/interfaces.d.ts.map +1 -0
  63. package/v3/dist/cli/handlers/interfaces.js +109 -0
  64. package/v3/dist/cli/handlers/interfaces.js.map +1 -0
  65. package/v3/dist/cli/handlers/protocol-handler.d.ts +19 -0
  66. package/v3/dist/cli/handlers/protocol-handler.d.ts.map +1 -0
  67. package/v3/dist/cli/handlers/protocol-handler.js +79 -0
  68. package/v3/dist/cli/handlers/protocol-handler.js.map +1 -0
  69. package/v3/dist/cli/handlers/status-handler.d.ts +30 -0
  70. package/v3/dist/cli/handlers/status-handler.d.ts.map +1 -0
  71. package/v3/dist/cli/handlers/status-handler.js +218 -0
  72. package/v3/dist/cli/handlers/status-handler.js.map +1 -0
  73. package/v3/dist/cli/handlers/task-handler.d.ts +22 -0
  74. package/v3/dist/cli/handlers/task-handler.d.ts.map +1 -0
  75. package/v3/dist/cli/handlers/task-handler.js +271 -0
  76. package/v3/dist/cli/handlers/task-handler.js.map +1 -0
  77. package/v3/dist/cli/index.d.ts +4 -0
  78. package/v3/dist/cli/index.d.ts.map +1 -1
  79. package/v3/dist/cli/index.js +48 -2677
  80. package/v3/dist/cli/index.js.map +1 -1
  81. package/v3/dist/cli/wizards/core/index.d.ts +11 -0
  82. package/v3/dist/cli/wizards/core/index.d.ts.map +1 -0
  83. package/v3/dist/cli/wizards/core/index.js +15 -0
  84. package/v3/dist/cli/wizards/core/index.js.map +1 -0
  85. package/v3/dist/cli/wizards/core/wizard-base.d.ts +87 -0
  86. package/v3/dist/cli/wizards/core/wizard-base.d.ts.map +1 -0
  87. package/v3/dist/cli/wizards/core/wizard-base.js +120 -0
  88. package/v3/dist/cli/wizards/core/wizard-base.js.map +1 -0
  89. package/v3/dist/cli/wizards/core/wizard-command.d.ts +182 -0
  90. package/v3/dist/cli/wizards/core/wizard-command.d.ts.map +1 -0
  91. package/v3/dist/cli/wizards/core/wizard-command.js +45 -0
  92. package/v3/dist/cli/wizards/core/wizard-command.js.map +1 -0
  93. package/v3/dist/cli/wizards/core/wizard-step.d.ts +109 -0
  94. package/v3/dist/cli/wizards/core/wizard-step.d.ts.map +1 -0
  95. package/v3/dist/cli/wizards/core/wizard-step.js +384 -0
  96. package/v3/dist/cli/wizards/core/wizard-step.js.map +1 -0
  97. package/v3/dist/cli/wizards/core/wizard-utils.d.ts +117 -0
  98. package/v3/dist/cli/wizards/core/wizard-utils.d.ts.map +1 -0
  99. package/v3/dist/cli/wizards/core/wizard-utils.js +291 -0
  100. package/v3/dist/cli/wizards/core/wizard-utils.js.map +1 -0
  101. package/v3/dist/cli/wizards/coverage-wizard.d.ts +13 -68
  102. package/v3/dist/cli/wizards/coverage-wizard.d.ts.map +1 -1
  103. package/v3/dist/cli/wizards/coverage-wizard.js +127 -391
  104. package/v3/dist/cli/wizards/coverage-wizard.js.map +1 -1
  105. package/v3/dist/cli/wizards/fleet-wizard.d.ts +13 -64
  106. package/v3/dist/cli/wizards/fleet-wizard.d.ts.map +1 -1
  107. package/v3/dist/cli/wizards/fleet-wizard.js +150 -363
  108. package/v3/dist/cli/wizards/fleet-wizard.js.map +1 -1
  109. package/v3/dist/cli/wizards/index.d.ts +2 -0
  110. package/v3/dist/cli/wizards/index.d.ts.map +1 -1
  111. package/v3/dist/cli/wizards/index.js +3 -0
  112. package/v3/dist/cli/wizards/index.js.map +1 -1
  113. package/v3/dist/cli/wizards/security-wizard.d.ts +13 -64
  114. package/v3/dist/cli/wizards/security-wizard.d.ts.map +1 -1
  115. package/v3/dist/cli/wizards/security-wizard.js +152 -395
  116. package/v3/dist/cli/wizards/security-wizard.js.map +1 -1
  117. package/v3/dist/cli/wizards/test-wizard.d.ts +13 -77
  118. package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
  119. package/v3/dist/cli/wizards/test-wizard.js +196 -328
  120. package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
  121. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts +3 -0
  122. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts.map +1 -1
  123. package/v3/dist/coordination/mincut/mincut-health-monitor.js +6 -2
  124. package/v3/dist/coordination/mincut/mincut-health-monitor.js.map +1 -1
  125. package/v3/dist/coordination/mincut/queen-integration.d.ts +3 -0
  126. package/v3/dist/coordination/mincut/queen-integration.d.ts.map +1 -1
  127. package/v3/dist/coordination/mincut/queen-integration.js +6 -1
  128. package/v3/dist/coordination/mincut/queen-integration.js.map +1 -1
  129. package/v3/dist/coordination/task-executor.js +2 -2
  130. package/v3/dist/coordination/task-executor.js.map +1 -1
  131. package/v3/dist/domains/chaos-resilience/plugin.js +2 -2
  132. package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
  133. package/v3/dist/domains/code-intelligence/plugin.js +2 -2
  134. package/v3/dist/domains/code-intelligence/plugin.js.map +1 -1
  135. package/v3/dist/domains/contract-testing/plugin.js +2 -2
  136. package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
  137. package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
  138. package/v3/dist/domains/coverage-analysis/plugin.js +2 -1
  139. package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
  140. package/v3/dist/domains/defect-intelligence/plugin.js +2 -2
  141. package/v3/dist/domains/defect-intelligence/plugin.js.map +1 -1
  142. package/v3/dist/domains/domain-interface.d.ts.map +1 -1
  143. package/v3/dist/domains/domain-interface.js +3 -1
  144. package/v3/dist/domains/domain-interface.js.map +1 -1
  145. package/v3/dist/domains/learning-optimization/plugin.js +2 -2
  146. package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
  147. package/v3/dist/domains/quality-assessment/plugin.js +2 -2
  148. package/v3/dist/domains/quality-assessment/plugin.js.map +1 -1
  149. package/v3/dist/domains/requirements-validation/plugin.js +2 -2
  150. package/v3/dist/domains/requirements-validation/plugin.js.map +1 -1
  151. package/v3/dist/domains/security-compliance/plugin.js +2 -2
  152. package/v3/dist/domains/security-compliance/plugin.js.map +1 -1
  153. package/v3/dist/domains/test-execution/index.d.ts +2 -1
  154. package/v3/dist/domains/test-execution/index.d.ts.map +1 -1
  155. package/v3/dist/domains/test-execution/index.js +0 -2
  156. package/v3/dist/domains/test-execution/index.js.map +1 -1
  157. package/v3/dist/domains/test-execution/interfaces.d.ts +222 -25
  158. package/v3/dist/domains/test-execution/interfaces.d.ts.map +1 -1
  159. package/v3/dist/domains/test-execution/interfaces.js +130 -3
  160. package/v3/dist/domains/test-execution/interfaces.js.map +1 -1
  161. package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
  162. package/v3/dist/domains/test-execution/plugin.js +2 -1
  163. package/v3/dist/domains/test-execution/plugin.js.map +1 -1
  164. package/v3/dist/domains/test-execution/test-prioritization-types.d.ts +5 -172
  165. package/v3/dist/domains/test-execution/test-prioritization-types.d.ts.map +1 -1
  166. package/v3/dist/domains/test-execution/test-prioritization-types.js +6 -129
  167. package/v3/dist/domains/test-execution/test-prioritization-types.js.map +1 -1
  168. package/v3/dist/domains/test-execution/types/index.d.ts +7 -3
  169. package/v3/dist/domains/test-execution/types/index.d.ts.map +1 -1
  170. package/v3/dist/domains/test-execution/types/index.js +7 -17
  171. package/v3/dist/domains/test-execution/types/index.js.map +1 -1
  172. package/v3/dist/domains/test-generation/coordinator.d.ts +1 -1
  173. package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
  174. package/v3/dist/domains/test-generation/coordinator.js +3 -3
  175. package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
  176. package/v3/dist/domains/test-generation/factories/index.d.ts +8 -0
  177. package/v3/dist/domains/test-generation/factories/index.d.ts.map +1 -0
  178. package/v3/dist/domains/test-generation/factories/index.js +8 -0
  179. package/v3/dist/domains/test-generation/factories/index.js.map +1 -0
  180. package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts +108 -0
  181. package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -0
  182. package/v3/dist/domains/test-generation/factories/test-generator-factory.js +158 -0
  183. package/v3/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -0
  184. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts +79 -0
  185. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -0
  186. package/v3/dist/domains/test-generation/generators/base-test-generator.js +252 -0
  187. package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -0
  188. package/v3/dist/domains/test-generation/generators/index.d.ts +11 -0
  189. package/v3/dist/domains/test-generation/generators/index.d.ts.map +1 -0
  190. package/v3/dist/domains/test-generation/generators/index.js +13 -0
  191. package/v3/dist/domains/test-generation/generators/index.js.map +1 -0
  192. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts +77 -0
  193. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts.map +1 -0
  194. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js +365 -0
  195. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js.map +1 -0
  196. package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts +56 -0
  197. package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts.map +1 -0
  198. package/v3/dist/domains/test-generation/generators/mocha-generator.js +197 -0
  199. package/v3/dist/domains/test-generation/generators/mocha-generator.js.map +1 -0
  200. package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts +66 -0
  201. package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -0
  202. package/v3/dist/domains/test-generation/generators/pytest-generator.js +240 -0
  203. package/v3/dist/domains/test-generation/generators/pytest-generator.js.map +1 -0
  204. package/v3/dist/domains/test-generation/index.d.ts +2 -2
  205. package/v3/dist/domains/test-generation/index.d.ts.map +1 -1
  206. package/v3/dist/domains/test-generation/index.js +3 -3
  207. package/v3/dist/domains/test-generation/index.js.map +1 -1
  208. package/v3/dist/domains/test-generation/interfaces/index.d.ts +9 -0
  209. package/v3/dist/domains/test-generation/interfaces/index.d.ts.map +1 -0
  210. package/v3/dist/domains/test-generation/interfaces/index.js +9 -0
  211. package/v3/dist/domains/test-generation/interfaces/index.js.map +1 -0
  212. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts +166 -0
  213. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts.map +1 -0
  214. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.js +8 -0
  215. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.js.map +1 -0
  216. package/v3/dist/domains/test-generation/interfaces.d.ts +163 -24
  217. package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  218. package/v3/dist/domains/test-generation/interfaces.js +2 -2
  219. package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
  220. package/v3/dist/domains/test-generation/plugin.js +6 -5
  221. package/v3/dist/domains/test-generation/plugin.js.map +1 -1
  222. package/v3/dist/domains/test-generation/{coherence-gate.d.ts → services/coherence-gate-service.d.ts} +4 -4
  223. package/v3/dist/domains/test-generation/services/coherence-gate-service.d.ts.map +1 -0
  224. package/v3/dist/domains/test-generation/{coherence-gate.js → services/coherence-gate-service.js} +2 -2
  225. package/v3/dist/domains/test-generation/services/coherence-gate-service.js.map +1 -0
  226. package/v3/dist/domains/test-generation/services/index.d.ts +8 -2
  227. package/v3/dist/domains/test-generation/services/index.d.ts.map +1 -1
  228. package/v3/dist/domains/test-generation/services/index.js +10 -3
  229. package/v3/dist/domains/test-generation/services/index.js.map +1 -1
  230. package/v3/dist/domains/test-generation/services/property-test-generator.d.ts +34 -0
  231. package/v3/dist/domains/test-generation/services/property-test-generator.d.ts.map +1 -0
  232. package/v3/dist/domains/test-generation/services/property-test-generator.js +306 -0
  233. package/v3/dist/domains/test-generation/services/property-test-generator.js.map +1 -0
  234. package/v3/dist/domains/test-generation/services/tdd-generator.d.ts +33 -0
  235. package/v3/dist/domains/test-generation/services/tdd-generator.d.ts.map +1 -0
  236. package/v3/dist/domains/test-generation/services/tdd-generator.js +342 -0
  237. package/v3/dist/domains/test-generation/services/tdd-generator.js.map +1 -0
  238. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts +34 -0
  239. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts.map +1 -0
  240. package/v3/dist/domains/test-generation/services/test-data-generator.js +245 -0
  241. package/v3/dist/domains/test-generation/services/test-data-generator.js.map +1 -0
  242. package/v3/dist/domains/test-generation/services/test-generator.d.ts +51 -160
  243. package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  244. package/v3/dist/domains/test-generation/services/test-generator.js +101 -1858
  245. package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
  246. package/v3/dist/domains/visual-accessibility/plugin.js +2 -2
  247. package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
  248. package/v3/dist/init/phases/12-verification.d.ts +23 -0
  249. package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
  250. package/v3/dist/init/phases/12-verification.js +185 -2
  251. package/v3/dist/init/phases/12-verification.js.map +1 -1
  252. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.d.ts +24 -62
  253. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.d.ts.map +1 -1
  254. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.js +45 -497
  255. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.js.map +1 -1
  256. package/v3/dist/integrations/agentic-flow/model-router/router.js +2 -2
  257. package/v3/dist/integrations/agentic-flow/model-router/router.js.map +1 -1
  258. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.d.ts +98 -0
  259. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.d.ts.map +1 -0
  260. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.js +197 -0
  261. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.js.map +1 -0
  262. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts +102 -0
  263. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts.map +1 -0
  264. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js +372 -0
  265. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js.map +1 -0
  266. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.d.ts +64 -0
  267. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.d.ts.map +1 -0
  268. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.js +120 -0
  269. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.js.map +1 -0
  270. package/v3/dist/integrations/coherence/coherence-service.d.ts.map +1 -1
  271. package/v3/dist/integrations/coherence/coherence-service.js +87 -30
  272. package/v3/dist/integrations/coherence/coherence-service.js.map +1 -1
  273. package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts.map +1 -1
  274. package/v3/dist/integrations/coherence/engines/spectral-adapter.js +124 -35
  275. package/v3/dist/integrations/coherence/engines/spectral-adapter.js.map +1 -1
  276. package/v3/dist/learning/memory-auditor.d.ts.map +1 -1
  277. package/v3/dist/learning/memory-auditor.js +3 -1
  278. package/v3/dist/learning/memory-auditor.js.map +1 -1
  279. package/v3/dist/mcp/bundle.js +2475 -1463
  280. package/v3/dist/mcp/security/cve-prevention.d.ts +31 -134
  281. package/v3/dist/mcp/security/cve-prevention.d.ts.map +1 -1
  282. package/v3/dist/mcp/security/cve-prevention.js +37 -562
  283. package/v3/dist/mcp/security/cve-prevention.js.map +1 -1
  284. package/v3/dist/mcp/security/index.d.ts +5 -1
  285. package/v3/dist/mcp/security/index.d.ts.map +1 -1
  286. package/v3/dist/mcp/security/validators/command-validator.d.ts +41 -0
  287. package/v3/dist/mcp/security/validators/command-validator.d.ts.map +1 -0
  288. package/v3/dist/mcp/security/validators/command-validator.js +123 -0
  289. package/v3/dist/mcp/security/validators/command-validator.js.map +1 -0
  290. package/v3/dist/mcp/security/validators/crypto-validator.d.ts +40 -0
  291. package/v3/dist/mcp/security/validators/crypto-validator.d.ts.map +1 -0
  292. package/v3/dist/mcp/security/validators/crypto-validator.js +72 -0
  293. package/v3/dist/mcp/security/validators/crypto-validator.js.map +1 -0
  294. package/v3/dist/mcp/security/validators/index.d.ts +12 -0
  295. package/v3/dist/mcp/security/validators/index.d.ts.map +1 -0
  296. package/v3/dist/mcp/security/validators/index.js +22 -0
  297. package/v3/dist/mcp/security/validators/index.js.map +1 -0
  298. package/v3/dist/mcp/security/validators/input-sanitizer.d.ts +56 -0
  299. package/v3/dist/mcp/security/validators/input-sanitizer.d.ts.map +1 -0
  300. package/v3/dist/mcp/security/validators/input-sanitizer.js +157 -0
  301. package/v3/dist/mcp/security/validators/input-sanitizer.js.map +1 -0
  302. package/v3/dist/mcp/security/validators/interfaces.d.ts +164 -0
  303. package/v3/dist/mcp/security/validators/interfaces.d.ts.map +1 -0
  304. package/v3/dist/mcp/security/validators/interfaces.js +6 -0
  305. package/v3/dist/mcp/security/validators/interfaces.js.map +1 -0
  306. package/v3/dist/mcp/security/validators/path-traversal-validator.d.ts +50 -0
  307. package/v3/dist/mcp/security/validators/path-traversal-validator.d.ts.map +1 -0
  308. package/v3/dist/mcp/security/validators/path-traversal-validator.js +242 -0
  309. package/v3/dist/mcp/security/validators/path-traversal-validator.js.map +1 -0
  310. package/v3/dist/mcp/security/validators/regex-safety-validator.d.ts +50 -0
  311. package/v3/dist/mcp/security/validators/regex-safety-validator.d.ts.map +1 -0
  312. package/v3/dist/mcp/security/validators/regex-safety-validator.js +183 -0
  313. package/v3/dist/mcp/security/validators/regex-safety-validator.js.map +1 -0
  314. package/v3/dist/mcp/security/validators/validation-orchestrator.d.ts +66 -0
  315. package/v3/dist/mcp/security/validators/validation-orchestrator.d.ts.map +1 -0
  316. package/v3/dist/mcp/security/validators/validation-orchestrator.js +146 -0
  317. package/v3/dist/mcp/security/validators/validation-orchestrator.js.map +1 -0
  318. package/v3/dist/mcp/server.d.ts.map +1 -1
  319. package/v3/dist/mcp/server.js +1 -0
  320. package/v3/dist/mcp/server.js.map +1 -1
  321. package/v3/dist/mcp/tool-registry.d.ts +3 -1
  322. package/v3/dist/mcp/tool-registry.d.ts.map +1 -1
  323. package/v3/dist/mcp/tool-registry.js +155 -2
  324. package/v3/dist/mcp/tool-registry.js.map +1 -1
  325. package/v3/dist/mcp/tools/test-generation/generate.d.ts +1 -0
  326. package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
  327. package/v3/dist/mcp/tools/test-generation/generate.js +3 -2
  328. package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
  329. package/v3/dist/sync/cloud/index.d.ts +8 -0
  330. package/v3/dist/sync/cloud/index.d.ts.map +1 -0
  331. package/v3/dist/sync/cloud/index.js +8 -0
  332. package/v3/dist/sync/cloud/index.js.map +1 -0
  333. package/v3/dist/sync/cloud/postgres-writer.d.ts +88 -0
  334. package/v3/dist/sync/cloud/postgres-writer.d.ts.map +1 -0
  335. package/v3/dist/sync/cloud/postgres-writer.js +319 -0
  336. package/v3/dist/sync/cloud/postgres-writer.js.map +1 -0
  337. package/v3/dist/sync/cloud/tunnel-manager.d.ts +75 -0
  338. package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -0
  339. package/v3/dist/sync/cloud/tunnel-manager.js +221 -0
  340. package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -0
  341. package/v3/dist/sync/index.d.ts +35 -0
  342. package/v3/dist/sync/index.d.ts.map +1 -0
  343. package/v3/dist/sync/index.js +35 -0
  344. package/v3/dist/sync/index.js.map +1 -0
  345. package/v3/dist/sync/interfaces.d.ts +245 -0
  346. package/v3/dist/sync/interfaces.d.ts.map +1 -0
  347. package/v3/dist/sync/interfaces.js +160 -0
  348. package/v3/dist/sync/interfaces.js.map +1 -0
  349. package/v3/dist/sync/readers/index.d.ts +8 -0
  350. package/v3/dist/sync/readers/index.d.ts.map +1 -0
  351. package/v3/dist/sync/readers/index.js +8 -0
  352. package/v3/dist/sync/readers/index.js.map +1 -0
  353. package/v3/dist/sync/readers/json-reader.d.ts +95 -0
  354. package/v3/dist/sync/readers/json-reader.d.ts.map +1 -0
  355. package/v3/dist/sync/readers/json-reader.js +306 -0
  356. package/v3/dist/sync/readers/json-reader.js.map +1 -0
  357. package/v3/dist/sync/readers/sqlite-reader.d.ts +88 -0
  358. package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -0
  359. package/v3/dist/sync/readers/sqlite-reader.js +255 -0
  360. package/v3/dist/sync/readers/sqlite-reader.js.map +1 -0
  361. package/v3/dist/sync/sync-agent.d.ts +116 -0
  362. package/v3/dist/sync/sync-agent.d.ts.map +1 -0
  363. package/v3/dist/sync/sync-agent.js +416 -0
  364. package/v3/dist/sync/sync-agent.js.map +1 -0
  365. package/v3/package.json +13 -2
  366. package/v3/dist/domains/test-generation/coherence-gate.d.ts.map +0 -1
  367. package/v3/dist/domains/test-generation/coherence-gate.js.map +0 -1
@@ -3,123 +3,56 @@
3
3
  * ADR-051: Multi-Model Router - Complexity Assessment
4
4
  *
5
5
  * Analyzes task complexity to determine optimal model tier routing.
6
- * Uses multiple signals including:
7
- * - Code complexity metrics (lines, files, cyclomatic complexity)
8
- * - Task description keywords
9
- * - Agent Booster transform detection
10
- * - Architecture/security scope detection
11
- * - Multi-step reasoning requirements
6
+ * Uses dependency injection for:
7
+ * - Signal collection (ISignalCollector)
8
+ * - Score calculation (IScoreCalculator)
9
+ * - Tier recommendation (ITierRecommender)
12
10
  *
13
11
  * @module integrations/agentic-flow/model-router/complexity-analyzer
14
12
  */
15
- import { TIER_METADATA, ComplexityAnalysisError } from './types';
16
- import { ALL_TRANSFORM_TYPES } from '../agent-booster/types';
17
- // ============================================================================
18
- // Keyword Patterns for Complexity Detection
19
- // ============================================================================
20
- /**
21
- * Keyword patterns for different complexity levels
22
- */
23
- const COMPLEXITY_KEYWORDS = {
24
- // Tier 0 - Mechanical transforms
25
- mechanical: [
26
- 'convert var to const',
27
- 'add types',
28
- 'remove console',
29
- 'convert to async',
30
- 'convert to esm',
31
- 'arrow function',
32
- 'rename variable',
33
- 'format code',
34
- ],
35
- // Tier 1 - Simple tasks
36
- simple: [
37
- 'fix typo',
38
- 'update comment',
39
- 'fix simple bug',
40
- 'add documentation',
41
- 'format',
42
- 'rename',
43
- 'simple refactor',
44
- 'basic test',
45
- ],
46
- // Tier 2 - Moderate complexity
47
- moderate: [
48
- 'implement feature',
49
- 'complex refactor',
50
- 'performance optimization',
51
- 'test generation',
52
- 'error handling',
53
- 'validation logic',
54
- 'api integration',
55
- ],
56
- // Tier 3 - High complexity
57
- complex: [
58
- 'multi-file refactor',
59
- 'orchestrate',
60
- 'coordinate',
61
- 'large codebase',
62
- 'migration',
63
- 'cross-domain',
64
- 'workflow',
65
- 'system design',
66
- ],
67
- // Tier 4 - Critical/expert
68
- critical: [
69
- 'architecture',
70
- 'security audit',
71
- 'critical bug',
72
- 'algorithm design',
73
- 'system-wide',
74
- 'vulnerability',
75
- 'cryptography',
76
- 'performance critical',
77
- ],
78
- };
79
- /**
80
- * Patterns that indicate specific scopes
81
- */
82
- const SCOPE_PATTERNS = {
83
- architecture: /\b(architect|design|system design|overall structure|component design)\b/i,
84
- security: /\b(security|vulnerability|audit|xss|sql injection|csrf|encryption)\b/i,
85
- multiStep: /\b(orchestrate|coordinate|workflow|pipeline|multi[- ]step)\b/i,
86
- crossDomain: /\b(cross[- ]domain|across (domains|modules)|integrate|coordination)\b/i,
87
- };
13
+ import { ComplexityAnalysisError } from './types';
14
+ import { SignalCollector } from './signal-collector';
15
+ import { ScoreCalculator } from './score-calculator';
16
+ import { TierRecommender } from './tier-recommender';
88
17
  // ============================================================================
89
18
  // Complexity Analyzer Implementation
90
19
  // ============================================================================
91
20
  /**
92
- * Analyzes task complexity to recommend optimal model tier
21
+ * Analyzes task complexity to recommend optimal model tier.
22
+ * Uses dependency injection for testability and modularity.
93
23
  */
94
24
  export class ComplexityAnalyzer {
95
25
  config;
96
- agentBoosterAdapter;
97
- constructor(config, agentBoosterAdapter) {
26
+ signalCollector;
27
+ scoreCalculator;
28
+ tierRecommender;
29
+ constructor(config, signalCollector, scoreCalculator, tierRecommender) {
98
30
  this.config = config;
99
- this.agentBoosterAdapter = agentBoosterAdapter;
31
+ this.signalCollector = signalCollector;
32
+ this.scoreCalculator = scoreCalculator;
33
+ this.tierRecommender = tierRecommender;
100
34
  }
101
35
  /**
102
36
  * Analyze task complexity
103
37
  */
104
38
  async analyze(input) {
105
- const startTime = Date.now();
106
39
  try {
107
40
  // Collect complexity signals
108
- const signals = await this.collectSignals(input);
41
+ const signals = await this.signalCollector.collectSignals(input);
109
42
  // Calculate component scores
110
- const codeComplexity = this.calculateCodeComplexity(signals);
111
- const reasoningComplexity = this.calculateReasoningComplexity(signals);
112
- const scopeComplexity = this.calculateScopeComplexity(signals);
43
+ const codeComplexity = this.scoreCalculator.calculateCodeComplexity(signals);
44
+ const reasoningComplexity = this.scoreCalculator.calculateReasoningComplexity(signals);
45
+ const scopeComplexity = this.scoreCalculator.calculateScopeComplexity(signals);
113
46
  // Calculate overall complexity (weighted average)
114
- const overall = this.calculateOverallComplexity(codeComplexity, reasoningComplexity, scopeComplexity, signals);
47
+ const overall = this.scoreCalculator.calculateOverallComplexity(codeComplexity, reasoningComplexity, scopeComplexity, signals);
115
48
  // Determine recommended tier
116
- const recommendedTier = this.getRecommendedTier(overall);
49
+ const recommendedTier = this.tierRecommender.getRecommendedTier(overall);
117
50
  // Find alternative tiers
118
- const alternateTiers = this.findAlternateTiers(overall, recommendedTier);
51
+ const alternateTiers = this.tierRecommender.findAlternateTiers(overall, recommendedTier);
119
52
  // Calculate confidence based on signal quality
120
- const confidence = this.calculateConfidence(signals, input);
53
+ const confidence = this.scoreCalculator.calculateConfidence(signals, input);
121
54
  // Generate explanation
122
- const explanation = this.generateExplanation(overall, recommendedTier, signals);
55
+ const explanation = this.tierRecommender.generateExplanation(overall, recommendedTier, signals);
123
56
  return {
124
57
  overall,
125
58
  codeComplexity,
@@ -140,422 +73,37 @@ export class ComplexityAnalyzer {
140
73
  * Check if task is eligible for Agent Booster (Tier 0)
141
74
  */
142
75
  async checkAgentBoosterEligibility(input) {
143
- if (!this.config.enableAgentBooster || !this.agentBoosterAdapter) {
144
- return {
145
- eligible: false,
146
- confidence: 0,
147
- reason: 'Agent Booster is disabled or not available',
148
- };
149
- }
150
- // Check for mechanical transform keywords in task description
151
- const taskLower = input.task.toLowerCase();
152
- let detectedTransformType;
153
- let maxConfidence = 0;
154
- for (const transformType of ALL_TRANSFORM_TYPES) {
155
- const keywords = this.getTransformKeywords(transformType);
156
- let confidence = 0;
157
- for (const keyword of keywords) {
158
- if (taskLower.includes(keyword.toLowerCase())) {
159
- confidence += 0.2;
160
- }
161
- }
162
- if (confidence > maxConfidence) {
163
- maxConfidence = confidence;
164
- detectedTransformType = transformType;
165
- }
166
- }
167
- // If code context provided, try Agent Booster detection
168
- if (input.codeContext && detectedTransformType) {
169
- try {
170
- const opportunities = await this.agentBoosterAdapter.detectTransformOpportunities(input.codeContext);
171
- const matchingOpp = opportunities.opportunities.find((opp) => opp.type === detectedTransformType);
172
- if (matchingOpp) {
173
- return {
174
- eligible: matchingOpp.confidence >= this.config.agentBoosterThreshold,
175
- transformType: detectedTransformType,
176
- confidence: matchingOpp.confidence,
177
- reason: matchingOpp.reason,
178
- };
179
- }
180
- }
181
- catch {
182
- // Fall through to keyword-based detection
183
- }
184
- }
185
- // Keyword-based detection
186
- const eligible = maxConfidence >= this.config.agentBoosterThreshold &&
187
- detectedTransformType !== undefined;
188
- return {
189
- eligible,
190
- transformType: detectedTransformType,
191
- confidence: Math.min(maxConfidence, 1),
192
- reason: eligible
193
- ? `Detected ${detectedTransformType} transform pattern`
194
- : 'No mechanical transform pattern detected',
195
- };
76
+ return this.signalCollector.checkAgentBoosterEligibility(input);
196
77
  }
197
78
  /**
198
79
  * Get recommended tier based on complexity score
199
80
  */
200
81
  getRecommendedTier(complexity) {
201
- // Check each tier's complexity range
202
- for (const tier of [0, 1, 2, 3, 4]) {
203
- const [min, max] = TIER_METADATA[tier].complexityRange;
204
- if (complexity >= min && complexity <= max) {
205
- return tier;
206
- }
207
- }
208
- // Default to Tier 2 (Sonnet) if no match
209
- return 2;
210
- }
211
- // ============================================================================
212
- // Private: Signal Collection
213
- // ============================================================================
214
- /**
215
- * Collect all complexity signals from input
216
- */
217
- async collectSignals(input) {
218
- const taskLower = input.task.toLowerCase();
219
- const codeLower = input.codeContext?.toLowerCase() || '';
220
- // Check for Agent Booster eligibility
221
- const agentBoosterCheck = await this.checkAgentBoosterEligibility(input);
222
- // Detect keyword matches
223
- const keywordMatches = {
224
- simple: this.findKeywordMatches(taskLower, COMPLEXITY_KEYWORDS.simple),
225
- moderate: this.findKeywordMatches(taskLower, COMPLEXITY_KEYWORDS.moderate),
226
- complex: this.findKeywordMatches(taskLower, COMPLEXITY_KEYWORDS.complex),
227
- critical: this.findKeywordMatches(taskLower, COMPLEXITY_KEYWORDS.critical),
228
- };
229
- // Analyze code context if provided
230
- const linesOfCode = input.codeContext
231
- ? input.codeContext.split('\n').length
232
- : undefined;
233
- const fileCount = input.filePaths ? input.filePaths.length : undefined;
234
- // Detect scope patterns
235
- const hasArchitectureScope = SCOPE_PATTERNS.architecture.test(taskLower);
236
- const hasSecurityScope = SCOPE_PATTERNS.security.test(taskLower);
237
- const requiresMultiStepReasoning = SCOPE_PATTERNS.multiStep.test(taskLower);
238
- const requiresCrossDomainCoordination = SCOPE_PATTERNS.crossDomain.test(taskLower);
239
- // Detect creativity requirements
240
- const requiresCreativity = taskLower.includes('design') ||
241
- taskLower.includes('creative') ||
242
- taskLower.includes('innovative') ||
243
- taskLower.includes('novel');
244
- // Estimate language complexity
245
- const languageComplexity = this.estimateLanguageComplexity(input.codeContext, input.filePaths);
246
- // Estimate cyclomatic complexity (simple heuristic)
247
- const cyclomaticComplexity = input.codeContext
248
- ? this.estimateCyclomaticComplexity(input.codeContext)
249
- : undefined;
250
- return {
251
- linesOfCode,
252
- fileCount,
253
- hasArchitectureScope,
254
- hasSecurityScope,
255
- requiresMultiStepReasoning,
256
- requiresCrossDomainCoordination,
257
- isMechanicalTransform: agentBoosterCheck.eligible,
258
- languageComplexity,
259
- cyclomaticComplexity,
260
- dependencyCount: this.countDependencies(input.codeContext),
261
- requiresCreativity,
262
- detectedTransformType: agentBoosterCheck.transformType,
263
- keywordMatches,
264
- };
265
- }
266
- // ============================================================================
267
- // Private: Complexity Calculation
268
- // ============================================================================
269
- /**
270
- * Calculate code complexity component (0-100)
271
- */
272
- calculateCodeComplexity(signals) {
273
- let score = 0;
274
- // Lines of code contribution (0-30 points)
275
- if (signals.linesOfCode !== undefined) {
276
- if (signals.linesOfCode < 10)
277
- score += 0;
278
- else if (signals.linesOfCode < 50)
279
- score += 10;
280
- else if (signals.linesOfCode < 200)
281
- score += 20;
282
- else
283
- score += 30;
284
- }
285
- // File count contribution (0-20 points)
286
- if (signals.fileCount !== undefined) {
287
- if (signals.fileCount === 1)
288
- score += 0;
289
- else if (signals.fileCount < 5)
290
- score += 10;
291
- else
292
- score += 20;
293
- }
294
- // Cyclomatic complexity contribution (0-30 points)
295
- if (signals.cyclomaticComplexity !== undefined) {
296
- if (signals.cyclomaticComplexity < 5)
297
- score += 0;
298
- else if (signals.cyclomaticComplexity < 10)
299
- score += 10;
300
- else if (signals.cyclomaticComplexity < 20)
301
- score += 20;
302
- else
303
- score += 30;
304
- }
305
- // Language complexity contribution (0-20 points)
306
- if (signals.languageComplexity === 'low')
307
- score += 0;
308
- else if (signals.languageComplexity === 'medium')
309
- score += 10;
310
- else if (signals.languageComplexity === 'high')
311
- score += 20;
312
- return Math.min(score, 100);
313
- }
314
- /**
315
- * Calculate reasoning complexity component (0-100)
316
- */
317
- calculateReasoningComplexity(signals) {
318
- let score = 0;
319
- // Keyword-based scoring
320
- const keywordScore = signals.keywordMatches.simple.length * 5 +
321
- signals.keywordMatches.moderate.length * 15 +
322
- signals.keywordMatches.complex.length * 25 +
323
- signals.keywordMatches.critical.length * 35;
324
- score += Math.min(keywordScore, 60);
325
- // Multi-step reasoning (0-20 points)
326
- if (signals.requiresMultiStepReasoning)
327
- score += 20;
328
- // Creativity requirements (0-20 points)
329
- if (signals.requiresCreativity)
330
- score += 20;
331
- return Math.min(score, 100);
332
- }
333
- /**
334
- * Calculate scope complexity component (0-100)
335
- */
336
- calculateScopeComplexity(signals) {
337
- let score = 0;
338
- // Architecture scope (0-40 points)
339
- if (signals.hasArchitectureScope)
340
- score += 40;
341
- // Security scope (0-30 points)
342
- if (signals.hasSecurityScope)
343
- score += 30;
344
- // Cross-domain coordination (0-20 points)
345
- if (signals.requiresCrossDomainCoordination)
346
- score += 20;
347
- // Dependency count (0-10 points)
348
- if (signals.dependencyCount !== undefined) {
349
- if (signals.dependencyCount < 3)
350
- score += 0;
351
- else if (signals.dependencyCount < 10)
352
- score += 5;
353
- else
354
- score += 10;
355
- }
356
- return Math.min(score, 100);
357
- }
358
- /**
359
- * Calculate overall complexity score (0-100)
360
- */
361
- calculateOverallComplexity(codeComplexity, reasoningComplexity, scopeComplexity, signals) {
362
- // Mechanical transforms always score 0-10
363
- if (signals.isMechanicalTransform) {
364
- return 5;
365
- }
366
- // Weighted average: code (30%), reasoning (40%), scope (30%)
367
- const weighted = codeComplexity * 0.3 + reasoningComplexity * 0.4 + scopeComplexity * 0.3;
368
- return Math.min(Math.round(weighted), 100);
369
- }
370
- /**
371
- * Calculate confidence in complexity assessment (0-1)
372
- */
373
- calculateConfidence(signals, input) {
374
- let confidence = 0.5; // Base confidence
375
- // More confidence if code context provided
376
- if (input.codeContext)
377
- confidence += 0.2;
378
- // More confidence if file paths provided
379
- if (input.filePaths && input.filePaths.length > 0)
380
- confidence += 0.1;
381
- // More confidence if strong keyword matches
382
- const totalKeywords = signals.keywordMatches.simple.length +
383
- signals.keywordMatches.moderate.length +
384
- signals.keywordMatches.complex.length +
385
- signals.keywordMatches.critical.length;
386
- if (totalKeywords >= 3)
387
- confidence += 0.1;
388
- else if (totalKeywords >= 1)
389
- confidence += 0.05;
390
- // More confidence for Agent Booster detections
391
- if (signals.isMechanicalTransform)
392
- confidence += 0.15;
393
- return Math.min(confidence, 1);
394
- }
395
- // ============================================================================
396
- // Private: Helper Methods
397
- // ============================================================================
398
- /**
399
- * Find matching keywords in text
400
- */
401
- findKeywordMatches(text, keywords) {
402
- const matches = [];
403
- for (const keyword of keywords) {
404
- if (text.includes(keyword.toLowerCase())) {
405
- matches.push(keyword);
406
- }
407
- }
408
- return matches;
409
- }
410
- /**
411
- * Estimate language complexity from code context
412
- */
413
- estimateLanguageComplexity(codeContext, filePaths) {
414
- if (!codeContext && (!filePaths || filePaths.length === 0)) {
415
- return undefined;
416
- }
417
- // Simple heuristic based on file extensions
418
- const complexExtensions = ['.ts', '.tsx', '.rs', '.cpp', '.c', '.go'];
419
- const mediumExtensions = ['.js', '.jsx', '.py', '.java'];
420
- const simpleExtensions = ['.json', '.yaml', '.md', '.txt', '.css', '.html'];
421
- if (filePaths) {
422
- for (const path of filePaths) {
423
- if (complexExtensions.some((ext) => path.endsWith(ext)))
424
- return 'high';
425
- }
426
- for (const path of filePaths) {
427
- if (mediumExtensions.some((ext) => path.endsWith(ext)))
428
- return 'medium';
429
- }
430
- for (const path of filePaths) {
431
- if (simpleExtensions.some((ext) => path.endsWith(ext)))
432
- return 'low';
433
- }
434
- }
435
- // Code-based heuristic
436
- if (codeContext) {
437
- const hasGenerics = /<[A-Z][^>]*>/.test(codeContext);
438
- const hasAsyncAwait = /\b(async|await)\b/.test(codeContext);
439
- const hasComplexTypes = /\b(interface|type|class)\b/.test(codeContext);
440
- if (hasGenerics && hasComplexTypes)
441
- return 'high';
442
- if (hasAsyncAwait || hasComplexTypes)
443
- return 'medium';
444
- return 'low';
445
- }
446
- return 'medium';
447
- }
448
- /**
449
- * Estimate cyclomatic complexity (simple heuristic)
450
- */
451
- estimateCyclomaticComplexity(code) {
452
- // Count decision points: if, for, while, case, catch, &&, ||, ?
453
- const patterns = [
454
- /\bif\b/g,
455
- /\bfor\b/g,
456
- /\bwhile\b/g,
457
- /\bcase\b/g,
458
- /\bcatch\b/g,
459
- /&&/g,
460
- /\|\|/g,
461
- /\?/g,
462
- ];
463
- let complexity = 1; // Base complexity
464
- for (const pattern of patterns) {
465
- const matches = code.match(pattern);
466
- if (matches) {
467
- complexity += matches.length;
468
- }
469
- }
470
- return complexity;
471
- }
472
- /**
473
- * Count dependencies in code context
474
- */
475
- countDependencies(codeContext) {
476
- if (!codeContext)
477
- return undefined;
478
- // Count import/require statements
479
- const importMatches = codeContext.match(/\b(import|require|from)\b.*['"].*['"]/g);
480
- return importMatches ? importMatches.length : 0;
481
- }
482
- /**
483
- * Get transform keywords for Agent Booster detection
484
- */
485
- getTransformKeywords(transformType) {
486
- const keywordMap = {
487
- 'var-to-const': ['var to const', 'convert var', 'var declaration'],
488
- 'add-types': ['add types', 'typescript types', 'type annotations'],
489
- 'remove-console': ['remove console', 'delete console', 'console.log'],
490
- 'promise-to-async': [
491
- 'promise to async',
492
- 'async await',
493
- '.then to async',
494
- ],
495
- 'cjs-to-esm': [
496
- 'commonjs to esm',
497
- 'require to import',
498
- 'convert to esm',
499
- ],
500
- 'func-to-arrow': ['arrow function', 'function to arrow', 'convert to arrow'],
501
- };
502
- return keywordMap[transformType] || [];
503
- }
504
- /**
505
- * Find alternative tiers that could handle this task
506
- */
507
- findAlternateTiers(complexity, recommendedTier) {
508
- const alternatives = [];
509
- // Add adjacent tiers
510
- if (recommendedTier > 0) {
511
- alternatives.push((recommendedTier - 1));
512
- }
513
- if (recommendedTier < 4) {
514
- alternatives.push((recommendedTier + 1));
515
- }
516
- // Add tier that can definitely handle it (higher tier)
517
- if (recommendedTier < 3 && !alternatives.includes(4)) {
518
- alternatives.push(4);
519
- }
520
- return alternatives;
521
- }
522
- /**
523
- * Generate human-readable explanation
524
- */
525
- generateExplanation(overall, tier, signals) {
526
- const parts = [];
527
- parts.push(`Complexity score: ${overall}/100 (Tier ${tier})`);
528
- if (signals.isMechanicalTransform) {
529
- parts.push(`Detected mechanical transform: ${signals.detectedTransformType}`);
530
- }
531
- if (signals.hasArchitectureScope) {
532
- parts.push('Architecture scope detected');
533
- }
534
- if (signals.hasSecurityScope) {
535
- parts.push('Security scope detected');
536
- }
537
- if (signals.requiresMultiStepReasoning) {
538
- parts.push('Multi-step reasoning required');
539
- }
540
- if (signals.requiresCrossDomainCoordination) {
541
- parts.push('Cross-domain coordination required');
542
- }
543
- if (signals.linesOfCode !== undefined && signals.linesOfCode > 100) {
544
- parts.push(`Large code change: ${signals.linesOfCode} lines`);
545
- }
546
- if (signals.fileCount !== undefined && signals.fileCount > 3) {
547
- parts.push(`Multi-file change: ${signals.fileCount} files`);
548
- }
549
- return parts.join('. ');
82
+ return this.tierRecommender.getRecommendedTier(complexity);
550
83
  }
551
84
  }
552
85
  // ============================================================================
553
86
  // Factory Functions
554
87
  // ============================================================================
555
88
  /**
556
- * Create a complexity analyzer instance
89
+ * Create a complexity analyzer instance with default dependencies
557
90
  */
558
91
  export function createComplexityAnalyzer(config, agentBoosterAdapter) {
559
- return new ComplexityAnalyzer(config, agentBoosterAdapter);
92
+ const signalCollector = new SignalCollector(config, agentBoosterAdapter);
93
+ const scoreCalculator = new ScoreCalculator();
94
+ const tierRecommender = new TierRecommender();
95
+ return new ComplexityAnalyzer(config, signalCollector, scoreCalculator, tierRecommender);
560
96
  }
97
+ /**
98
+ * Create a complexity analyzer instance with custom dependencies (for testing)
99
+ */
100
+ export function createComplexityAnalyzerWithDependencies(config, signalCollector, scoreCalculator, tierRecommender) {
101
+ return new ComplexityAnalyzer(config, signalCollector, scoreCalculator, tierRecommender);
102
+ }
103
+ // ============================================================================
104
+ // Re-exports for convenience
105
+ // ============================================================================
106
+ export { SignalCollector, createSignalCollector } from './signal-collector';
107
+ export { ScoreCalculator, createScoreCalculator } from './score-calculator';
108
+ export { TierRecommender, createTierRecommender } from './tier-recommender';
561
109
  //# sourceMappingURL=complexity-analyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"complexity-analyzer.js","sourceRoot":"","sources":["../../../../src/integrations/agentic-flow/model-router/complexity-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complexity-analyzer.js","sourceRoot":"","sources":["../../../../src/integrations/agentic-flow/model-router/complexity-analyzer.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import { ModelRouterError, RoutingTimeoutError, DEFAULT_ROUTER_CONFIG, } from './types';
15
15
  import { getPatternLoader } from '../pattern-loader';
16
- import { ComplexityAnalyzer } from './complexity-analyzer';
16
+ import { createComplexityAnalyzer } from './complexity-analyzer';
17
17
  import { BudgetEnforcer } from './budget-enforcer';
18
18
  /**
19
19
  * Simple LRU cache for routing decisions
@@ -249,7 +249,7 @@ export class ModelRouter {
249
249
  this.agentBoosterAdapter = agentBoosterAdapter;
250
250
  this.persistentMetricsTracker = persistentMetricsTracker;
251
251
  // Initialize components
252
- this.complexityAnalyzer = new ComplexityAnalyzer(this.config, agentBoosterAdapter);
252
+ this.complexityAnalyzer = createComplexityAnalyzer(this.config, agentBoosterAdapter);
253
253
  this.budgetEnforcer = new BudgetEnforcer(this.config.budgetConfig);
254
254
  this.cache = new DecisionCache(this.config.enableDecisionCache, 1000, this.config.decisionCacheTtlMs);
255
255
  this.metrics = new InMemoryMetricsTracker(this.config.enableMetrics);