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
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Agentic QE v3 - Mocha Test Generator
3
+ * Strategy implementation for Mocha test framework with Chai assertions
4
+ *
5
+ * Generates test code using:
6
+ * - describe/it blocks (Mocha)
7
+ * - expect().to.be/to.equal assertions (Chai)
8
+ * - function() {} style for this context
9
+ * - beforeEach/afterEach hooks
10
+ *
11
+ * @module test-generation/generators
12
+ */
13
+ import { BaseTestGenerator } from './base-test-generator';
14
+ /**
15
+ * MochaGenerator - Test generator for Mocha framework with Chai
16
+ *
17
+ * Uses traditional function() syntax to preserve Mocha's this context
18
+ * for features like this.timeout() and this.retries().
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const generator = new MochaGenerator();
23
+ * const testCode = generator.generateTests({
24
+ * moduleName: 'userService',
25
+ * importPath: './user-service',
26
+ * testType: 'unit',
27
+ * patterns: [],
28
+ * analysis: { functions: [...], classes: [...] }
29
+ * });
30
+ * ```
31
+ */
32
+ export class MochaGenerator extends BaseTestGenerator {
33
+ framework = 'mocha';
34
+ /**
35
+ * Generate complete test file from analysis
36
+ */
37
+ generateTests(context) {
38
+ const { moduleName, importPath, testType, patterns, analysis } = context;
39
+ if (!analysis || (analysis.functions.length === 0 && analysis.classes.length === 0)) {
40
+ return this.generateStubTests(context);
41
+ }
42
+ const patternComment = this.generatePatternComment(patterns);
43
+ const exports = this.extractExports(analysis.functions, analysis.classes);
44
+ const importStatement = this.generateImportStatement(exports, importPath, moduleName);
45
+ let code = `${patternComment}import { expect } from 'chai';
46
+ ${importStatement}
47
+
48
+ describe('${moduleName} - ${testType} tests', function() {
49
+ `;
50
+ for (const fn of analysis.functions) {
51
+ code += this.generateFunctionTests(fn, testType);
52
+ }
53
+ for (const cls of analysis.classes) {
54
+ code += this.generateClassTests(cls, testType);
55
+ }
56
+ code += `});\n`;
57
+ return code;
58
+ }
59
+ /**
60
+ * Generate tests for a standalone function
61
+ */
62
+ generateFunctionTests(fn, _testType) {
63
+ const validParams = fn.parameters.map((p) => this.generateTestValue(p)).join(', ');
64
+ const fnCall = fn.isAsync ? `await ${fn.name}(${validParams})` : `${fn.name}(${validParams})`;
65
+ let code = ` describe('${fn.name}', function() {\n`;
66
+ code += ` it('should handle valid input', ${fn.isAsync ? 'async ' : ''}function() {\n`;
67
+ code += ` const result = ${fnCall};\n`;
68
+ code += ` expect(result).to.not.be.undefined;\n`;
69
+ code += ` });\n`;
70
+ // Test for undefined parameters
71
+ for (const param of fn.parameters) {
72
+ if (!param.optional) {
73
+ const paramsWithUndefined = fn.parameters
74
+ .map((p) => (p.name === param.name ? 'undefined' : this.generateTestValue(p)))
75
+ .join(', ');
76
+ code += `\n it('should handle undefined ${param.name}', function() {\n`;
77
+ code += ` expect(function() { ${fn.name}(${paramsWithUndefined}); }).to.throw();\n`;
78
+ code += ` });\n`;
79
+ }
80
+ }
81
+ code += ` });\n\n`;
82
+ return code;
83
+ }
84
+ /**
85
+ * Generate tests for a class
86
+ */
87
+ generateClassTests(cls, _testType) {
88
+ const constructorArgs = cls.constructorParams?.map((p) => this.generateTestValue(p)).join(', ') || '';
89
+ let code = ` describe('${cls.name}', function() {\n`;
90
+ code += ` let instance;\n\n`;
91
+ code += ` beforeEach(function() {\n`;
92
+ code += ` instance = new ${cls.name}(${constructorArgs});\n`;
93
+ code += ` });\n\n`;
94
+ code += ` it('should instantiate correctly', function() {\n`;
95
+ code += ` expect(instance).to.be.instanceOf(${cls.name});\n`;
96
+ code += ` });\n`;
97
+ for (const method of cls.methods) {
98
+ if (!method.name.startsWith('_')) {
99
+ const methodParams = method.parameters.map((p) => this.generateTestValue(p)).join(', ');
100
+ code += `\n it('${method.name} should work', ${method.isAsync ? 'async ' : ''}function() {\n`;
101
+ code += ` const result = ${method.isAsync ? 'await ' : ''}instance.${method.name}(${methodParams});\n`;
102
+ code += ` expect(result).to.not.be.undefined;\n`;
103
+ code += ` });\n`;
104
+ }
105
+ }
106
+ code += ` });\n\n`;
107
+ return code;
108
+ }
109
+ /**
110
+ * Generate stub tests when no AST analysis is available
111
+ */
112
+ generateStubTests(context) {
113
+ const { moduleName, importPath, testType, patterns } = context;
114
+ const patternComment = this.generatePatternComment(patterns);
115
+ // Determine if async tests needed based on patterns
116
+ const isAsync = patterns.some((p) => p.name.toLowerCase().includes('async') || p.name.toLowerCase().includes('promise'));
117
+ const asyncSetup = isAsync ? 'async ' : '';
118
+ return `${patternComment}import { expect } from 'chai';
119
+ import { ${moduleName} } from '${importPath}';
120
+
121
+ describe('${moduleName}', function() {
122
+ describe('${testType} tests', function() {
123
+ it('should be defined', function() {
124
+ expect(${moduleName}).to.not.be.undefined;
125
+ });
126
+
127
+ it('should handle basic operations', ${asyncSetup}function() {
128
+ // Verify module exports expected interface
129
+ const moduleType = typeof ${moduleName};
130
+ expect(['function', 'object']).to.include(moduleType);
131
+
132
+ if (moduleType === 'function') {
133
+ const instance = new ${moduleName}();
134
+ expect(instance).to.exist;
135
+ } else {
136
+ expect(Object.keys(${moduleName})).to.have.length.greaterThan(0);
137
+ }
138
+ });
139
+
140
+ it('should handle edge cases', function() {
141
+ // Verify resilience to edge inputs
142
+ const instance = typeof ${moduleName} === 'function'
143
+ ? new ${moduleName}()
144
+ : ${moduleName};
145
+ expect(instance).to.exist;
146
+ expect(function() { JSON.stringify(instance); }).to.not.throw();
147
+ });
148
+
149
+ it('should handle error conditions', function() {
150
+ // Verify error resilience
151
+ expect(function() {
152
+ const instance = typeof ${moduleName} === 'function'
153
+ ? new ${moduleName}()
154
+ : ${moduleName};
155
+ return instance;
156
+ }).to.not.throw();
157
+ });
158
+ });
159
+ });
160
+ `;
161
+ }
162
+ /**
163
+ * Generate coverage-focused tests for specific lines
164
+ */
165
+ generateCoverageTests(moduleName, importPath, lines) {
166
+ const funcName = this.camelCase(moduleName);
167
+ const lineRange = this.formatLineRange(lines);
168
+ return `// Coverage test for ${lineRange} in ${moduleName}
169
+ import { expect } from 'chai';
170
+ import { ${funcName} } from '${importPath}';
171
+
172
+ describe('${moduleName} coverage', function() {
173
+ describe('${lineRange}', function() {
174
+ it('should execute code path covering ${lineRange}', function() {
175
+ // Arrange: Set up test inputs to reach uncovered lines
176
+ const testInput = undefined; // Replace with appropriate input
177
+
178
+ // Act: Execute the code path
179
+ const result = ${funcName}(testInput);
180
+
181
+ // Assert: Verify the code was reached and behaves correctly
182
+ expect(result).to.not.be.undefined;
183
+ });
184
+
185
+ it('should handle edge case for ${lineRange}', function() {
186
+ // Arrange: Set up edge case input
187
+ const edgeCaseInput = null;
188
+
189
+ // Act & Assert: Verify edge case handling
190
+ expect(function() { ${funcName}(edgeCaseInput); }).to.not.throw();
191
+ });
192
+ });
193
+ });
194
+ `;
195
+ }
196
+ }
197
+ //# sourceMappingURL=mocha-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocha-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/mocha-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Agentic QE v3 - Pytest Test Generator
3
+ * Strategy implementation for Python's pytest framework
4
+ *
5
+ * Generates test code using:
6
+ * - pytest class-based and function-based tests
7
+ * - Python assert statements
8
+ * - @pytest.fixture decorators
9
+ * - @pytest.mark.asyncio for async tests
10
+ *
11
+ * @module test-generation/generators
12
+ */
13
+ import { BaseTestGenerator } from './base-test-generator';
14
+ import type { TestFramework, TestType, FunctionInfo, ClassInfo, TestGenerationContext } from '../interfaces';
15
+ /**
16
+ * PytestGenerator - Test generator for Python's pytest framework
17
+ *
18
+ * Generates idiomatic Python test code with pytest conventions:
19
+ * - Test classes prefixed with Test
20
+ * - Test methods prefixed with test_
21
+ * - Fixtures for setup/teardown
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const generator = new PytestGenerator();
26
+ * const testCode = generator.generateTests({
27
+ * moduleName: 'user_service',
28
+ * importPath: 'app.services.user_service',
29
+ * testType: 'unit',
30
+ * patterns: [],
31
+ * analysis: { functions: [...], classes: [...] }
32
+ * });
33
+ * ```
34
+ */
35
+ export declare class PytestGenerator extends BaseTestGenerator {
36
+ readonly framework: TestFramework;
37
+ /**
38
+ * Generate complete test file from analysis
39
+ */
40
+ generateTests(context: TestGenerationContext): string;
41
+ /**
42
+ * Generate tests for a standalone function
43
+ */
44
+ generateFunctionTests(fn: FunctionInfo, _testType: TestType): string;
45
+ /**
46
+ * Generate tests for a class
47
+ */
48
+ generateClassTests(cls: ClassInfo, _testType: TestType): string;
49
+ /**
50
+ * Generate stub tests when no AST analysis is available
51
+ */
52
+ generateStubTests(context: TestGenerationContext): string;
53
+ /**
54
+ * Generate coverage-focused tests for specific lines
55
+ */
56
+ generateCoverageTests(moduleName: string, importPath: string, lines: number[]): string;
57
+ /**
58
+ * Generate Python pattern comment
59
+ */
60
+ private generatePythonPatternComment;
61
+ /**
62
+ * Generate a Python test value for a parameter
63
+ */
64
+ private generatePythonTestValue;
65
+ }
66
+ //# sourceMappingURL=pytest-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pytest-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/pytest-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EAET,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAY;IAE7C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAoCrD;;OAEG;IACH,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IAwBpE;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IA0B/D;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAwDzD;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EAAE,GACd,MAAM;IAiCT;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAKpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAsBhC"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Agentic QE v3 - Pytest Test Generator
3
+ * Strategy implementation for Python's pytest framework
4
+ *
5
+ * Generates test code using:
6
+ * - pytest class-based and function-based tests
7
+ * - Python assert statements
8
+ * - @pytest.fixture decorators
9
+ * - @pytest.mark.asyncio for async tests
10
+ *
11
+ * @module test-generation/generators
12
+ */
13
+ import { faker } from '@faker-js/faker';
14
+ import { BaseTestGenerator } from './base-test-generator';
15
+ /**
16
+ * PytestGenerator - Test generator for Python's pytest framework
17
+ *
18
+ * Generates idiomatic Python test code with pytest conventions:
19
+ * - Test classes prefixed with Test
20
+ * - Test methods prefixed with test_
21
+ * - Fixtures for setup/teardown
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const generator = new PytestGenerator();
26
+ * const testCode = generator.generateTests({
27
+ * moduleName: 'user_service',
28
+ * importPath: 'app.services.user_service',
29
+ * testType: 'unit',
30
+ * patterns: [],
31
+ * analysis: { functions: [...], classes: [...] }
32
+ * });
33
+ * ```
34
+ */
35
+ export class PytestGenerator extends BaseTestGenerator {
36
+ framework = 'pytest';
37
+ /**
38
+ * Generate complete test file from analysis
39
+ */
40
+ generateTests(context) {
41
+ const { moduleName, importPath, testType, patterns, analysis } = context;
42
+ if (!analysis || (analysis.functions.length === 0 && analysis.classes.length === 0)) {
43
+ return this.generateStubTests(context);
44
+ }
45
+ const patternComment = this.generatePythonPatternComment(patterns);
46
+ const exports = this.extractExports(analysis.functions, analysis.classes);
47
+ const pythonImport = importPath.replace(/\//g, '.').replace(/\.(ts|js)$/, '');
48
+ const importStatement = exports.length > 0
49
+ ? `from ${pythonImport} import ${exports.join(', ')}`
50
+ : `import ${pythonImport} as ${moduleName}`;
51
+ let code = `${patternComment}import pytest
52
+ ${importStatement}
53
+
54
+
55
+ class Test${this.pascalCase(moduleName)}:
56
+ """${testType} tests for ${moduleName}"""
57
+
58
+ `;
59
+ for (const fn of analysis.functions) {
60
+ code += this.generateFunctionTests(fn, testType);
61
+ }
62
+ for (const cls of analysis.classes) {
63
+ code += this.generateClassTests(cls, testType);
64
+ }
65
+ return code;
66
+ }
67
+ /**
68
+ * Generate tests for a standalone function
69
+ */
70
+ generateFunctionTests(fn, _testType) {
71
+ const validParams = fn.parameters.map((p) => this.generatePythonTestValue(p)).join(', ');
72
+ let code = ` def test_${fn.name}_valid_input(self):\n`;
73
+ code += ` """Test ${fn.name} with valid input"""\n`;
74
+ code += ` result = ${fn.name}(${validParams})\n`;
75
+ code += ` assert result is not None\n\n`;
76
+ // Test for edge cases
77
+ for (const param of fn.parameters) {
78
+ if (!param.optional && param.type?.includes('str')) {
79
+ code += ` def test_${fn.name}_empty_${param.name}(self):\n`;
80
+ code += ` """Test ${fn.name} with empty ${param.name}"""\n`;
81
+ const paramsWithEmpty = fn.parameters
82
+ .map((p) => (p.name === param.name ? '""' : this.generatePythonTestValue(p)))
83
+ .join(', ');
84
+ code += ` result = ${fn.name}(${paramsWithEmpty})\n`;
85
+ code += ` assert result is not None\n\n`;
86
+ }
87
+ }
88
+ return code;
89
+ }
90
+ /**
91
+ * Generate tests for a class
92
+ */
93
+ generateClassTests(cls, _testType) {
94
+ const constructorArgs = cls.constructorParams?.map((p) => this.generatePythonTestValue(p)).join(', ') || '';
95
+ let code = `\nclass Test${cls.name}:\n`;
96
+ code += ` """Tests for ${cls.name}"""\n\n`;
97
+ code += ` @pytest.fixture\n`;
98
+ code += ` def instance(self):\n`;
99
+ code += ` return ${cls.name}(${constructorArgs})\n\n`;
100
+ code += ` def test_instantiation(self, instance):\n`;
101
+ code += ` assert isinstance(instance, ${cls.name})\n\n`;
102
+ for (const method of cls.methods) {
103
+ if (!method.name.startsWith('_')) {
104
+ const methodParams = method.parameters
105
+ .map((p) => this.generatePythonTestValue(p))
106
+ .join(', ');
107
+ code += ` def test_${method.name}(self, instance):\n`;
108
+ code += ` result = instance.${method.name}(${methodParams})\n`;
109
+ code += ` assert result is not None\n\n`;
110
+ }
111
+ }
112
+ return code;
113
+ }
114
+ /**
115
+ * Generate stub tests when no AST analysis is available
116
+ */
117
+ generateStubTests(context) {
118
+ const { moduleName, importPath, testType, patterns } = context;
119
+ const patternComment = this.generatePythonPatternComment(patterns);
120
+ // Determine if async tests needed based on patterns
121
+ const isAsync = patterns.some((p) => p.name.toLowerCase().includes('async') || p.name.toLowerCase().includes('promise'));
122
+ const asyncDecorator = isAsync ? '@pytest.mark.asyncio\n ' : '';
123
+ const asyncDef = isAsync ? 'async def' : 'def';
124
+ return `${patternComment}import pytest
125
+ from ${importPath} import ${moduleName}
126
+
127
+
128
+ class Test${this.pascalCase(moduleName)}:
129
+ """${testType} tests for ${moduleName}"""
130
+
131
+ def test_is_defined(self):
132
+ """Verify the module is properly exported and defined."""
133
+ assert ${moduleName} is not None
134
+
135
+ ${asyncDecorator}${asyncDef} test_basic_operations(self):
136
+ """Test core functionality with valid inputs."""
137
+ # Verify module can be instantiated or accessed
138
+ if callable(${moduleName}):
139
+ instance = ${moduleName}()
140
+ assert instance is not None
141
+ else:
142
+ assert len(dir(${moduleName})) > 0
143
+
144
+ def test_edge_cases(self):
145
+ """Test handling of edge case inputs."""
146
+ # Verify module handles edge cases gracefully
147
+ instance = ${moduleName}() if callable(${moduleName}) else ${moduleName}
148
+ assert instance is not None
149
+ # Module should be serializable
150
+ import json
151
+ try:
152
+ json.dumps(str(instance))
153
+ except (TypeError, ValueError):
154
+ pass # Complex objects may not serialize, but shouldn't crash
155
+
156
+ def test_error_conditions(self):
157
+ """Test error handling and recovery."""
158
+ # Module instantiation should not raise unexpected errors
159
+ try:
160
+ instance = ${moduleName}() if callable(${moduleName}) else ${moduleName}
161
+ assert instance is not None
162
+ except TypeError:
163
+ # Expected if constructor requires arguments
164
+ pass
165
+ `;
166
+ }
167
+ /**
168
+ * Generate coverage-focused tests for specific lines
169
+ */
170
+ generateCoverageTests(moduleName, importPath, lines) {
171
+ const funcName = this.camelCase(moduleName);
172
+ const lineRange = this.formatLineRange(lines);
173
+ const pythonImport = importPath.replace(/\//g, '.');
174
+ return `# Coverage test for ${lineRange} in ${moduleName}
175
+ import pytest
176
+ from ${pythonImport} import ${funcName}
177
+
178
+ class Test${this.pascalCase(moduleName)}Coverage:
179
+ """Tests to cover ${lineRange}"""
180
+
181
+ def test_cover_${lines[0]}_${lines[lines.length - 1]}(self):
182
+ """Exercise code path covering ${lineRange}"""
183
+ # Arrange: Set up test inputs to reach uncovered lines
184
+ test_input = None # Replace with appropriate input
185
+
186
+ # Act: Execute the code path
187
+ try:
188
+ result = ${funcName}(test_input)
189
+
190
+ # Assert: Verify expected behavior
191
+ assert result is not None
192
+ except Exception as e:
193
+ # If exception is expected for this path, verify it
194
+ pytest.fail(f"Unexpected exception: {e}")
195
+ `;
196
+ }
197
+ // ============================================================================
198
+ // Python-Specific Helpers
199
+ // ============================================================================
200
+ /**
201
+ * Generate Python pattern comment
202
+ */
203
+ generatePythonPatternComment(patterns) {
204
+ if (patterns.length === 0)
205
+ return '';
206
+ return `# Applied patterns: ${patterns.map((p) => p.name).join(', ')}\n`;
207
+ }
208
+ /**
209
+ * Generate a Python test value for a parameter
210
+ */
211
+ generatePythonTestValue(param) {
212
+ const type = param.type?.toLowerCase() || 'unknown';
213
+ const name = param.name.toLowerCase();
214
+ // Infer from param name
215
+ if (name.includes('id'))
216
+ return `"${faker.string.uuid()}"`;
217
+ if (name.includes('name'))
218
+ return `"${faker.person.fullName()}"`;
219
+ if (name.includes('email'))
220
+ return `"${faker.internet.email()}"`;
221
+ if (name.includes('url'))
222
+ return `"${faker.internet.url()}"`;
223
+ // Infer from type
224
+ if (type.includes('str'))
225
+ return `"${faker.lorem.word()}"`;
226
+ if (type.includes('int') || type.includes('number')) {
227
+ return String(faker.number.int({ min: 1, max: 100 }));
228
+ }
229
+ if (type.includes('bool'))
230
+ return 'True';
231
+ if (type.includes('list') || type.includes('[]'))
232
+ return '[]';
233
+ if (type.includes('dict') || type.includes('{}'))
234
+ return '{}';
235
+ if (type.includes('float'))
236
+ return String(faker.number.float({ min: 0, max: 100 }));
237
+ return 'None';
238
+ }
239
+ }
240
+ //# sourceMappingURL=pytest-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pytest-generator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/generators/pytest-generator.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@
6
6
  */
7
7
  export { TestGenerationPlugin, createTestGenerationPlugin, type TestGenerationPluginConfig, type TestGenerationExtendedAPI, } from './plugin';
8
8
  export { TestGenerationCoordinator, type ITestGenerationCoordinator, type WorkflowStatus, type CoordinatorConfig, } from './coordinator';
9
- export { TestGeneratorService, type ITestGenerationService, type TestGeneratorConfig, } from './services/test-generator';
9
+ export { TestGeneratorService, createTestGeneratorService, createTestGeneratorServiceWithDependencies, type ITestGenerationService, type TestGeneratorConfig, type TestGeneratorDependencies, } from './services/test-generator';
10
10
  export { PatternMatcherService, type IPatternMatchingService, type PatternMatcherConfig, type PatternSearchContext, type PatternMatch, type AppliedPattern, type PatternModification, type PatternDefinition, type PatternExample, type PatternFilter, } from './services/pattern-matcher';
11
- export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, type Requirement, type TestSpecification, type EnrichmentRecommendation, type RequirementCoherenceResult, type RequirementContradiction, type ContradictionSeverity, type TestGenerationCoherenceGateConfig, type IEmbeddingService, } from './coherence-gate';
11
+ export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, type Requirement, type TestSpecification, type EnrichmentRecommendation, type RequirementCoherenceResult, type RequirementContradiction, type ContradictionSeverity, type TestGenerationCoherenceGateConfig, type IEmbeddingService, } from './services/coherence-gate-service';
12
12
  export type { TestGenerationAPI, GenerateTestsRequest, TDDRequest, PropertyTestRequest, TestDataRequest, LearnPatternsRequest, GeneratedTests, GeneratedTest, TDDResult, PropertyTests, PropertyTest, TestData, LearnedPatterns, Pattern, } from './interfaces';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,EAC7B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAM1B,YAAY,EAEV,iBAAiB,EAGjB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EAGpB,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,EAC1C,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,EAC7B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,GACvB,MAAM,mCAAmC,CAAC;AAM3C,YAAY,EAEV,iBAAiB,EAGjB,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EAGpB,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,cAAc,CAAC"}
@@ -15,10 +15,10 @@ export { TestGenerationCoordinator, } from './coordinator';
15
15
  // ============================================================================
16
16
  // Services
17
17
  // ============================================================================
18
- export { TestGeneratorService, } from './services/test-generator';
18
+ export { TestGeneratorService, createTestGeneratorService, createTestGeneratorServiceWithDependencies, } from './services/test-generator';
19
19
  export { PatternMatcherService, } from './services/pattern-matcher';
20
20
  // ============================================================================
21
- // Coherence Gate (ADR-052)
21
+ // Coherence Gate Service (ADR-052)
22
22
  // ============================================================================
23
- export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, } from './coherence-gate';
23
+ export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, } from './services/coherence-gate-service';
24
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAG3B,MAAM,UAAU,CAAC;AAElB,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EACL,yBAAyB,GAI1B,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,GAUtB,MAAM,4BAA4B,CAAC;AAEpC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,GAS9B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAG3B,MAAM,UAAU,CAAC;AAElB,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EACL,yBAAyB,GAI1B,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,GAI3C,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,GAUtB,MAAM,4BAA4B,CAAC;AAEpC,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,GAS9B,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Agentic QE v3 - Test Generation Strategy Pattern Interfaces
3
+ * Re-exports from main interfaces file for backward compatibility
4
+ *
5
+ * @deprecated Import directly from '../interfaces' instead
6
+ * @module test-generation/interfaces
7
+ */
8
+ export type { TestFramework, TestType, Pattern, IPattern, FunctionInfo, ClassInfo, ParameterInfo, PropertyInfo, TestCase, CodeAnalysis, IFunctionInfo, IClassInfo, IParameterInfo, IPropertyInfo, ITestCase, ICodeAnalysis, TestGenerationContext, ITestGenerationContext, ITestGenerator, ITestGeneratorFactory, } from '../interfaces';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAEV,aAAa,EACb,QAAQ,EACR,OAAO,EACP,QAAQ,EAGR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EAGb,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Agentic QE v3 - Test Generation Strategy Pattern Interfaces
3
+ * Re-exports from main interfaces file for backward compatibility
4
+ *
5
+ * @deprecated Import directly from '../interfaces' instead
6
+ * @module test-generation/interfaces
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}