agentic-qe 3.7.7 → 3.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/.claude/helpers/statusline-v3.cjs +13 -1
  2. package/.claude/skills/debug-loop/SKILL.md +1 -1
  3. package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  4. package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -0
  5. package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -0
  6. package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -0
  7. package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -0
  8. package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -0
  9. package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -0
  10. package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -0
  11. package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -0
  12. package/.claude/skills/pr-review/SKILL.md +1 -1
  13. package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -0
  14. package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -0
  15. package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -0
  16. package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -0
  17. package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -0
  18. package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -0
  19. package/.claude/skills/skills-manifest.json +1 -1
  20. package/.claude/skills/trust-tier-manifest.json +78 -7
  21. package/CHANGELOG.md +39 -0
  22. package/README.md +36 -0
  23. package/assets/skills/a11y-ally/SKILL.md +1664 -1658
  24. package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -0
  25. package/assets/skills/a11y-ally/schemas/output.json +549 -0
  26. package/assets/skills/a11y-ally/scripts/validate-config.json +42 -0
  27. package/assets/skills/brutal-honesty-review/SKILL.md +5 -0
  28. package/assets/skills/brutal-honesty-review/schemas/output.json +291 -0
  29. package/assets/skills/brutal-honesty-review/scripts/validate-config.json +34 -0
  30. package/assets/skills/cicd-pipeline-qe-orchestrator/README.md +1 -1
  31. package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -0
  32. package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -0
  33. package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -0
  34. package/assets/skills/cicd-pipeline-qe-orchestrator/scripts/validate-config.json +42 -0
  35. package/assets/skills/debug-loop/SKILL.md +1 -1
  36. package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  37. package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -0
  38. package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -0
  39. package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -0
  40. package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -0
  41. package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -0
  42. package/assets/skills/n8n-expression-testing/SKILL.md +6 -0
  43. package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -0
  44. package/assets/skills/n8n-expression-testing/schemas/output.json +369 -0
  45. package/assets/skills/n8n-expression-testing/scripts/validate-config.json +39 -0
  46. package/assets/skills/n8n-integration-testing-patterns/SKILL.md +6 -0
  47. package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -0
  48. package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -0
  49. package/assets/skills/n8n-integration-testing-patterns/scripts/validate-config.json +34 -0
  50. package/assets/skills/n8n-security-testing/SKILL.md +6 -0
  51. package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -0
  52. package/assets/skills/n8n-security-testing/schemas/output.json +293 -0
  53. package/assets/skills/n8n-security-testing/scripts/validate-config.json +34 -0
  54. package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +6 -0
  55. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -0
  56. package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -0
  57. package/assets/skills/n8n-trigger-testing-strategies/scripts/validate-config.json +34 -0
  58. package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +6 -0
  59. package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -0
  60. package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -0
  61. package/assets/skills/n8n-workflow-testing-fundamentals/scripts/validate-config.json +35 -0
  62. package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -0
  63. package/assets/skills/observability-testing-patterns/schemas/output.json +58 -0
  64. package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -0
  65. package/assets/skills/pentest-validation/scripts/validate-config.json +12 -0
  66. package/assets/skills/pr-review/SKILL.md +1 -1
  67. package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -0
  68. package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -0
  69. package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -0
  70. package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -0
  71. package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -0
  72. package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -0
  73. package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  74. package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -0
  75. package/assets/skills/qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  76. package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -0
  77. package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -0
  78. package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -0
  79. package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -0
  80. package/assets/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +139 -0
  81. package/assets/skills/qcsd-refinement-swarm/schemas/output.json +811 -0
  82. package/assets/skills/qcsd-refinement-swarm/scripts/validate-config.json +25 -0
  83. package/assets/skills/security-visual-testing/scripts/validate-config.json +45 -0
  84. package/assets/skills/sherlock-review/SKILL.md +5 -0
  85. package/assets/skills/sherlock-review/schemas/output.json +297 -0
  86. package/assets/skills/sherlock-review/scripts/validate-config.json +35 -0
  87. package/assets/skills/testability-scoring/SKILL.md +5 -0
  88. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -0
  89. package/assets/skills/testability-scoring/schemas/output.json +606 -0
  90. package/assets/skills/testability-scoring/scripts/validate-config.json +42 -0
  91. package/assets/skills/trust-tier-manifest.json +2404 -0
  92. package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -0
  93. package/assets/skills/wms-testing-patterns/schemas/output.json +150 -0
  94. package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -0
  95. package/dist/benchmarks/performance-benchmarks.js +1 -1
  96. package/dist/cli/bundle.js +10154 -2421
  97. package/dist/cli/commands/hooks.d.ts.map +1 -1
  98. package/dist/cli/commands/hooks.js +92 -0
  99. package/dist/cli/commands/hooks.js.map +1 -1
  100. package/dist/cli/commands/migrate.js +2 -2
  101. package/dist/coordination/complexity-composition/index.d.ts +2 -0
  102. package/dist/coordination/complexity-composition/index.d.ts.map +1 -0
  103. package/dist/coordination/complexity-composition/index.js +2 -0
  104. package/dist/coordination/complexity-composition/index.js.map +1 -0
  105. package/dist/coordination/complexity-composition/team-composer.d.ts +72 -0
  106. package/dist/coordination/complexity-composition/team-composer.d.ts.map +1 -0
  107. package/dist/coordination/complexity-composition/team-composer.js +221 -0
  108. package/dist/coordination/complexity-composition/team-composer.js.map +1 -0
  109. package/dist/coordination/consensus/consensus-engine.d.ts +10 -1
  110. package/dist/coordination/consensus/consensus-engine.d.ts.map +1 -1
  111. package/dist/coordination/consensus/consensus-engine.js +31 -1
  112. package/dist/coordination/consensus/consensus-engine.js.map +1 -1
  113. package/dist/coordination/consensus/index.d.ts +1 -0
  114. package/dist/coordination/consensus/index.d.ts.map +1 -1
  115. package/dist/coordination/consensus/index.js +4 -0
  116. package/dist/coordination/consensus/index.js.map +1 -1
  117. package/dist/coordination/consensus/interfaces.d.ts +5 -0
  118. package/dist/coordination/consensus/interfaces.d.ts.map +1 -1
  119. package/dist/coordination/consensus/interfaces.js +1 -0
  120. package/dist/coordination/consensus/interfaces.js.map +1 -1
  121. package/dist/coordination/consensus/sycophancy-scorer.d.ts +62 -0
  122. package/dist/coordination/consensus/sycophancy-scorer.d.ts.map +1 -0
  123. package/dist/coordination/consensus/sycophancy-scorer.js +200 -0
  124. package/dist/coordination/consensus/sycophancy-scorer.js.map +1 -0
  125. package/dist/coordination/constants.d.ts +1 -1
  126. package/dist/coordination/constants.js +1 -1
  127. package/dist/coordination/fleet-tiers/tier-selector.d.ts +20 -0
  128. package/dist/coordination/fleet-tiers/tier-selector.d.ts.map +1 -1
  129. package/dist/coordination/fleet-tiers/tier-selector.js +31 -0
  130. package/dist/coordination/fleet-tiers/tier-selector.js.map +1 -1
  131. package/dist/coordination/fleet-tiers/types.d.ts +2 -0
  132. package/dist/coordination/fleet-tiers/types.d.ts.map +1 -1
  133. package/dist/coordination/handlers/coverage-handlers.js +1 -1
  134. package/dist/coordination/handlers/coverage-handlers.js.map +1 -1
  135. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +1 -1
  136. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts.map +1 -1
  137. package/dist/domains/code-intelligence/services/semantic-analyzer.js +1 -1
  138. package/dist/domains/code-intelligence/services/semantic-analyzer.js.map +1 -1
  139. package/dist/domains/coverage-analysis/coordinator.js +1 -1
  140. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +1 -1
  141. package/dist/domains/coverage-analysis/services/coverage-embedder.d.ts +1 -1
  142. package/dist/domains/coverage-analysis/services/coverage-embedder.js +1 -1
  143. package/dist/domains/coverage-analysis/services/gap-detector.js +1 -1
  144. package/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +1 -1
  145. package/dist/domains/coverage-analysis/services/hnsw-index.d.ts +2 -2
  146. package/dist/domains/coverage-analysis/services/hnsw-index.js +3 -3
  147. package/dist/domains/coverage-analysis/services/sublinear-analyzer.d.ts +1 -1
  148. package/dist/domains/coverage-analysis/services/sublinear-analyzer.js +1 -1
  149. package/dist/domains/test-execution/services/test-prioritizer.js +1 -1
  150. package/dist/domains/test-generation/blind-review/blind-review-orchestrator.d.ts +65 -0
  151. package/dist/domains/test-generation/blind-review/blind-review-orchestrator.d.ts.map +1 -0
  152. package/dist/domains/test-generation/blind-review/blind-review-orchestrator.js +189 -0
  153. package/dist/domains/test-generation/blind-review/blind-review-orchestrator.js.map +1 -0
  154. package/dist/domains/test-generation/blind-review/index.d.ts +2 -0
  155. package/dist/domains/test-generation/blind-review/index.d.ts.map +1 -0
  156. package/dist/domains/test-generation/blind-review/index.js +2 -0
  157. package/dist/domains/test-generation/blind-review/index.js.map +1 -0
  158. package/dist/domains/test-generation/context/rust-context-builder.d.ts +31 -0
  159. package/dist/domains/test-generation/context/rust-context-builder.d.ts.map +1 -0
  160. package/dist/domains/test-generation/context/rust-context-builder.js +27 -0
  161. package/dist/domains/test-generation/context/rust-context-builder.js.map +1 -0
  162. package/dist/domains/test-generation/coordinator.js +3 -3
  163. package/dist/domains/test-generation/coordinator.js.map +1 -1
  164. package/dist/domains/test-generation/detectors/mobile-detector.d.ts +41 -0
  165. package/dist/domains/test-generation/detectors/mobile-detector.d.ts.map +1 -0
  166. package/dist/domains/test-generation/detectors/mobile-detector.js +111 -0
  167. package/dist/domains/test-generation/detectors/mobile-detector.js.map +1 -0
  168. package/dist/domains/test-generation/detectors/spring-detector.d.ts +22 -0
  169. package/dist/domains/test-generation/detectors/spring-detector.d.ts.map +1 -0
  170. package/dist/domains/test-generation/detectors/spring-detector.js +37 -0
  171. package/dist/domains/test-generation/detectors/spring-detector.js.map +1 -0
  172. package/dist/domains/test-generation/factories/test-generator-factory.d.ts +2 -1
  173. package/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -1
  174. package/dist/domains/test-generation/factories/test-generator-factory.js +33 -13
  175. package/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -1
  176. package/dist/domains/test-generation/gates/index.d.ts +2 -0
  177. package/dist/domains/test-generation/gates/index.d.ts.map +1 -0
  178. package/dist/domains/test-generation/gates/index.js +2 -0
  179. package/dist/domains/test-generation/gates/index.js.map +1 -0
  180. package/dist/domains/test-generation/gates/test-quality-gate.d.ts +85 -0
  181. package/dist/domains/test-generation/gates/test-quality-gate.d.ts.map +1 -0
  182. package/dist/domains/test-generation/gates/test-quality-gate.js +320 -0
  183. package/dist/domains/test-generation/gates/test-quality-gate.js.map +1 -0
  184. package/dist/domains/test-generation/generators/flutter-test-generator.d.ts +107 -0
  185. package/dist/domains/test-generation/generators/flutter-test-generator.d.ts.map +1 -0
  186. package/dist/domains/test-generation/generators/flutter-test-generator.js +590 -0
  187. package/dist/domains/test-generation/generators/flutter-test-generator.js.map +1 -0
  188. package/dist/domains/test-generation/generators/go-test-generator.d.ts +139 -0
  189. package/dist/domains/test-generation/generators/go-test-generator.d.ts.map +1 -0
  190. package/dist/domains/test-generation/generators/go-test-generator.js +654 -0
  191. package/dist/domains/test-generation/generators/go-test-generator.js.map +1 -0
  192. package/dist/domains/test-generation/generators/index.d.ts +8 -0
  193. package/dist/domains/test-generation/generators/index.d.ts.map +1 -1
  194. package/dist/domains/test-generation/generators/index.js +8 -0
  195. package/dist/domains/test-generation/generators/index.js.map +1 -1
  196. package/dist/domains/test-generation/generators/jest-rn-generator.d.ts +95 -0
  197. package/dist/domains/test-generation/generators/jest-rn-generator.d.ts.map +1 -0
  198. package/dist/domains/test-generation/generators/jest-rn-generator.js +591 -0
  199. package/dist/domains/test-generation/generators/jest-rn-generator.js.map +1 -0
  200. package/dist/domains/test-generation/generators/junit5-generator.d.ts +107 -0
  201. package/dist/domains/test-generation/generators/junit5-generator.d.ts.map +1 -0
  202. package/dist/domains/test-generation/generators/junit5-generator.js +588 -0
  203. package/dist/domains/test-generation/generators/junit5-generator.js.map +1 -0
  204. package/dist/domains/test-generation/generators/kotlin-junit-generator.d.ts +109 -0
  205. package/dist/domains/test-generation/generators/kotlin-junit-generator.d.ts.map +1 -0
  206. package/dist/domains/test-generation/generators/kotlin-junit-generator.js +588 -0
  207. package/dist/domains/test-generation/generators/kotlin-junit-generator.js.map +1 -0
  208. package/dist/domains/test-generation/generators/pytest-generator.d.ts +8 -1
  209. package/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -1
  210. package/dist/domains/test-generation/generators/pytest-generator.js +57 -0
  211. package/dist/domains/test-generation/generators/pytest-generator.js.map +1 -1
  212. package/dist/domains/test-generation/generators/rust-test-generator.d.ts +80 -0
  213. package/dist/domains/test-generation/generators/rust-test-generator.d.ts.map +1 -0
  214. package/dist/domains/test-generation/generators/rust-test-generator.js +442 -0
  215. package/dist/domains/test-generation/generators/rust-test-generator.js.map +1 -0
  216. package/dist/domains/test-generation/generators/swift-testing-generator.d.ts +97 -0
  217. package/dist/domains/test-generation/generators/swift-testing-generator.d.ts.map +1 -0
  218. package/dist/domains/test-generation/generators/swift-testing-generator.js +482 -0
  219. package/dist/domains/test-generation/generators/swift-testing-generator.js.map +1 -0
  220. package/dist/domains/test-generation/generators/xunit-generator.d.ts +110 -0
  221. package/dist/domains/test-generation/generators/xunit-generator.d.ts.map +1 -0
  222. package/dist/domains/test-generation/generators/xunit-generator.js +611 -0
  223. package/dist/domains/test-generation/generators/xunit-generator.js.map +1 -0
  224. package/dist/domains/test-generation/interfaces.d.ts +14 -2
  225. package/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  226. package/dist/domains/test-generation/pattern-injection/edge-case-injector.d.ts +68 -0
  227. package/dist/domains/test-generation/pattern-injection/edge-case-injector.d.ts.map +1 -0
  228. package/dist/domains/test-generation/pattern-injection/edge-case-injector.js +225 -0
  229. package/dist/domains/test-generation/pattern-injection/edge-case-injector.js.map +1 -0
  230. package/dist/domains/test-generation/pattern-injection/index.d.ts +2 -0
  231. package/dist/domains/test-generation/pattern-injection/index.d.ts.map +1 -0
  232. package/dist/domains/test-generation/pattern-injection/index.js +2 -0
  233. package/dist/domains/test-generation/pattern-injection/index.js.map +1 -0
  234. package/dist/domains/test-generation/prompts/language-prompts.d.ts +29 -0
  235. package/dist/domains/test-generation/prompts/language-prompts.d.ts.map +1 -0
  236. package/dist/domains/test-generation/prompts/language-prompts.js +135 -0
  237. package/dist/domains/test-generation/prompts/language-prompts.js.map +1 -0
  238. package/dist/domains/test-generation/services/compilation-validator.d.ts +43 -0
  239. package/dist/domains/test-generation/services/compilation-validator.d.ts.map +1 -0
  240. package/dist/domains/test-generation/services/compilation-validator.js +134 -0
  241. package/dist/domains/test-generation/services/compilation-validator.js.map +1 -0
  242. package/dist/domains/test-generation/services/index.d.ts +2 -1
  243. package/dist/domains/test-generation/services/index.d.ts.map +1 -1
  244. package/dist/domains/test-generation/services/index.js +3 -1
  245. package/dist/domains/test-generation/services/index.js.map +1 -1
  246. package/dist/domains/test-generation/services/test-file-resolver.d.ts +32 -0
  247. package/dist/domains/test-generation/services/test-file-resolver.d.ts.map +1 -0
  248. package/dist/domains/test-generation/services/test-file-resolver.js +159 -0
  249. package/dist/domains/test-generation/services/test-file-resolver.js.map +1 -0
  250. package/dist/domains/test-generation/services/test-generator.d.ts +16 -0
  251. package/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  252. package/dist/domains/test-generation/services/test-generator.js +116 -10
  253. package/dist/domains/test-generation/services/test-generator.js.map +1 -1
  254. package/dist/governance/feature-flags.js +2 -2
  255. package/dist/governance/feature-flags.js.map +1 -1
  256. package/dist/governance/shard-embeddings.js +1 -1
  257. package/dist/init/init-wizard-hooks.d.ts.map +1 -1
  258. package/dist/init/init-wizard-hooks.js +0 -1
  259. package/dist/init/init-wizard-hooks.js.map +1 -1
  260. package/dist/init/phases/07-hooks.d.ts.map +1 -1
  261. package/dist/init/phases/07-hooks.js +0 -2
  262. package/dist/init/phases/07-hooks.js.map +1 -1
  263. package/dist/init/phases/08-mcp.d.ts +8 -4
  264. package/dist/init/phases/08-mcp.d.ts.map +1 -1
  265. package/dist/init/phases/08-mcp.js +13 -31
  266. package/dist/init/phases/08-mcp.js.map +1 -1
  267. package/dist/init/phases/10-workers.js +2 -2
  268. package/dist/init/phases/10-workers.js.map +1 -1
  269. package/dist/init/settings-merge.d.ts.map +1 -1
  270. package/dist/init/settings-merge.js +0 -2
  271. package/dist/init/settings-merge.js.map +1 -1
  272. package/dist/init/token-bootstrap.js +1 -1
  273. package/dist/init/token-bootstrap.js.map +1 -1
  274. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +8 -2
  275. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts.map +1 -1
  276. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +62 -38
  277. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js.map +1 -1
  278. package/dist/integrations/rl-suite/algorithms/decision-transformer.js +1 -1
  279. package/dist/kernel/constants.d.ts +2 -2
  280. package/dist/kernel/constants.js +2 -2
  281. package/dist/kernel/hnsw-adapter.js +1 -1
  282. package/dist/kernel/progressive-hnsw-backend.d.ts +2 -2
  283. package/dist/kernel/progressive-hnsw-backend.js +2 -2
  284. package/dist/learning/dream/concept-graph.d.ts +1 -1
  285. package/dist/learning/dream/concept-graph.js +1 -1
  286. package/dist/learning/dream/dream-engine.d.ts +1 -1
  287. package/dist/learning/dream/dream-engine.js +1 -1
  288. package/dist/learning/dream/index.d.ts +1 -1
  289. package/dist/learning/dream/index.js +1 -1
  290. package/dist/learning/dream/types.d.ts +1 -1
  291. package/dist/learning/dream/types.d.ts.map +1 -1
  292. package/dist/learning/dream/types.js +1 -1
  293. package/dist/learning/dream/types.js.map +1 -1
  294. package/dist/learning/experience-capture.d.ts +12 -2
  295. package/dist/learning/experience-capture.d.ts.map +1 -1
  296. package/dist/learning/experience-capture.js +28 -35
  297. package/dist/learning/experience-capture.js.map +1 -1
  298. package/dist/learning/experience-consolidation.d.ts +74 -0
  299. package/dist/learning/experience-consolidation.d.ts.map +1 -0
  300. package/dist/learning/experience-consolidation.js +403 -0
  301. package/dist/learning/experience-consolidation.js.map +1 -0
  302. package/dist/learning/token-tracker.js +1 -1
  303. package/dist/learning/token-tracker.js.map +1 -1
  304. package/dist/mcp/bundle.js +9453 -1166
  305. package/dist/routing/calibration/ema-calibrator.d.ts +93 -0
  306. package/dist/routing/calibration/ema-calibrator.d.ts.map +1 -0
  307. package/dist/routing/calibration/ema-calibrator.js +140 -0
  308. package/dist/routing/calibration/ema-calibrator.js.map +1 -0
  309. package/dist/routing/calibration/index.d.ts +2 -0
  310. package/dist/routing/calibration/index.d.ts.map +1 -0
  311. package/dist/routing/calibration/index.js +2 -0
  312. package/dist/routing/calibration/index.js.map +1 -0
  313. package/dist/routing/escalation/auto-escalation-tracker.d.ts +62 -0
  314. package/dist/routing/escalation/auto-escalation-tracker.d.ts.map +1 -0
  315. package/dist/routing/escalation/auto-escalation-tracker.js +116 -0
  316. package/dist/routing/escalation/auto-escalation-tracker.js.map +1 -0
  317. package/dist/routing/escalation/index.d.ts +2 -0
  318. package/dist/routing/escalation/index.d.ts.map +1 -0
  319. package/dist/routing/escalation/index.js +2 -0
  320. package/dist/routing/escalation/index.js.map +1 -0
  321. package/dist/routing/index.d.ts +4 -0
  322. package/dist/routing/index.d.ts.map +1 -1
  323. package/dist/routing/index.js +4 -0
  324. package/dist/routing/index.js.map +1 -1
  325. package/dist/routing/qe-agent-registry.js +4 -4
  326. package/dist/routing/qe-agent-registry.js.map +1 -1
  327. package/dist/routing/routing-config.d.ts +4 -0
  328. package/dist/routing/routing-config.d.ts.map +1 -1
  329. package/dist/routing/routing-config.js +2 -0
  330. package/dist/routing/routing-config.js.map +1 -1
  331. package/dist/routing/routing-feedback.d.ts +35 -2
  332. package/dist/routing/routing-feedback.d.ts.map +1 -1
  333. package/dist/routing/routing-feedback.js +97 -3
  334. package/dist/routing/routing-feedback.js.map +1 -1
  335. package/dist/routing/types.d.ts +7 -8
  336. package/dist/routing/types.d.ts.map +1 -1
  337. package/dist/routing/types.js.map +1 -1
  338. package/dist/shared/embeddings/embedding-cache.js +2 -2
  339. package/dist/shared/embeddings/index.d.ts +2 -2
  340. package/dist/shared/embeddings/index.js +2 -2
  341. package/dist/shared/embeddings/nomic-embedder.d.ts +4 -4
  342. package/dist/shared/embeddings/nomic-embedder.js +2 -2
  343. package/dist/shared/embeddings/ollama-client.d.ts +1 -1
  344. package/dist/shared/embeddings/ollama-client.js +2 -2
  345. package/dist/shared/embeddings/ollama-client.js.map +1 -1
  346. package/dist/shared/embeddings/types.d.ts +2 -2
  347. package/dist/shared/embeddings/types.js +2 -2
  348. package/dist/shared/language-detector.d.ts +46 -0
  349. package/dist/shared/language-detector.d.ts.map +1 -0
  350. package/dist/shared/language-detector.js +183 -0
  351. package/dist/shared/language-detector.js.map +1 -0
  352. package/dist/shared/llm/providers/ollama.js +1 -1
  353. package/dist/shared/metrics/code-metrics.d.ts.map +1 -1
  354. package/dist/shared/metrics/code-metrics.js +24 -1
  355. package/dist/shared/metrics/code-metrics.js.map +1 -1
  356. package/dist/shared/parsers/index.d.ts +2 -0
  357. package/dist/shared/parsers/index.d.ts.map +1 -1
  358. package/dist/shared/parsers/index.js +2 -0
  359. package/dist/shared/parsers/index.js.map +1 -1
  360. package/dist/shared/parsers/interfaces.d.ts +81 -0
  361. package/dist/shared/parsers/interfaces.d.ts.map +1 -0
  362. package/dist/shared/parsers/interfaces.js +6 -0
  363. package/dist/shared/parsers/interfaces.js.map +1 -0
  364. package/dist/shared/parsers/multi-language-parser.d.ts +144 -0
  365. package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -0
  366. package/dist/shared/parsers/multi-language-parser.js +1232 -0
  367. package/dist/shared/parsers/multi-language-parser.js.map +1 -0
  368. package/dist/shared/parsers/rust-ownership-analyzer.d.ts +45 -0
  369. package/dist/shared/parsers/rust-ownership-analyzer.d.ts.map +1 -0
  370. package/dist/shared/parsers/rust-ownership-analyzer.js +52 -0
  371. package/dist/shared/parsers/rust-ownership-analyzer.js.map +1 -0
  372. package/dist/shared/parsers/typescript-parser.d.ts +16 -0
  373. package/dist/shared/parsers/typescript-parser.d.ts.map +1 -1
  374. package/dist/shared/parsers/typescript-parser.js +85 -0
  375. package/dist/shared/parsers/typescript-parser.js.map +1 -1
  376. package/dist/shared/types/test-frameworks.d.ts +25 -0
  377. package/dist/shared/types/test-frameworks.d.ts.map +1 -0
  378. package/dist/shared/types/test-frameworks.js +111 -0
  379. package/dist/shared/types/test-frameworks.js.map +1 -0
  380. package/dist/workers/workers/learning-consolidation.d.ts.map +1 -1
  381. package/dist/workers/workers/learning-consolidation.js +32 -0
  382. package/dist/workers/workers/learning-consolidation.js.map +1 -1
  383. package/package.json +1 -1
  384. package/scripts/prepare-assets.sh +8 -2
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Compilation Validation Loop (ADR-077)
3
+ * Optional compile-check for generated tests with graceful fallback.
4
+ */
5
+ import { execSync } from 'child_process';
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import * as os from 'os';
9
+ // Per-language compile commands
10
+ const COMPILE_COMMANDS = {
11
+ typescript: { check: 'npx tsc --noEmit --strict', fileExt: '.ts' },
12
+ java: { check: 'javac -d /dev/null', fileExt: '.java' },
13
+ csharp: { check: 'dotnet build --no-restore', fileExt: '.cs' },
14
+ go: { check: 'go vet', fileExt: '_test.go' },
15
+ rust: { check: 'cargo check', fileExt: '.rs' },
16
+ kotlin: { check: 'kotlinc -script', fileExt: '.kts' },
17
+ swift: { check: 'swiftc -typecheck', fileExt: '.swift' },
18
+ dart: { check: 'dart analyze', fileExt: '.dart' },
19
+ };
20
+ /**
21
+ * Compilation validator with per-language support.
22
+ * Writes generated test code to a temp file, runs the language's compile/check
23
+ * command, and parses any errors into structured results with suggestions.
24
+ */
25
+ export class CompilationValidator {
26
+ async validate(code, language, projectPath) {
27
+ const config = COMPILE_COMMANDS[language];
28
+ // Languages without compile check (Python, JavaScript)
29
+ if (!config) {
30
+ return {
31
+ compiles: true,
32
+ errors: [],
33
+ suggestions: [`No compilation check available for ${language} -- syntax validation skipped`],
34
+ };
35
+ }
36
+ // Write code to temp file
37
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'aqe-compile-'));
38
+ const tmpFile = path.join(tmpDir, `test_validation${config.fileExt}`);
39
+ try {
40
+ fs.writeFileSync(tmpFile, code, 'utf-8');
41
+ const cmd = `${config.check} ${tmpFile}`;
42
+ const cwd = projectPath || tmpDir;
43
+ execSync(cmd, {
44
+ cwd,
45
+ timeout: 30000,
46
+ stdio: 'pipe',
47
+ encoding: 'utf-8',
48
+ });
49
+ return {
50
+ compiles: true,
51
+ errors: [],
52
+ suggestions: [],
53
+ };
54
+ }
55
+ catch (error) {
56
+ // Compiler not found
57
+ if (this.isCommandNotFound(error)) {
58
+ return {
59
+ compiles: false,
60
+ errors: [{ message: `Compiler not found for ${language}` }],
61
+ suggestions: [`Install the ${language} compiler to enable compilation validation`],
62
+ };
63
+ }
64
+ // Compilation failed
65
+ const stderr = this.getStderr(error);
66
+ const errors = this.parseErrors(stderr, language);
67
+ return {
68
+ compiles: false,
69
+ errors: errors.length > 0 ? errors : [{ message: stderr || 'Compilation failed' }],
70
+ suggestions: this.generateSuggestions(errors, language),
71
+ };
72
+ }
73
+ finally {
74
+ // Cleanup
75
+ try {
76
+ fs.unlinkSync(tmpFile);
77
+ fs.rmdirSync(tmpDir);
78
+ }
79
+ catch {
80
+ /* ignore cleanup errors */
81
+ }
82
+ }
83
+ }
84
+ isCommandNotFound(error) {
85
+ const msg = String(error);
86
+ return msg.includes('ENOENT') || msg.includes('not found') || msg.includes('command not found');
87
+ }
88
+ getStderr(error) {
89
+ if (error && typeof error === 'object' && 'stderr' in error) {
90
+ return String(error.stderr);
91
+ }
92
+ return String(error);
93
+ }
94
+ parseErrors(stderr, _language) {
95
+ if (!stderr)
96
+ return [];
97
+ const errors = [];
98
+ const lines = stderr.split('\n').filter((l) => l.trim());
99
+ for (const line of lines.slice(0, 10)) {
100
+ // Try to parse line:col format (common across compilers)
101
+ const match = line.match(/(?:.*?):(\d+):(\d+):\s*(?:error:\s*)?(.*)/);
102
+ if (match) {
103
+ errors.push({
104
+ message: match[3].trim(),
105
+ line: parseInt(match[1], 10),
106
+ column: parseInt(match[2], 10),
107
+ });
108
+ }
109
+ else if (line.includes('error') || line.includes('Error')) {
110
+ errors.push({ message: line.trim() });
111
+ }
112
+ }
113
+ return errors;
114
+ }
115
+ generateSuggestions(errors, _language) {
116
+ const suggestions = [];
117
+ for (const error of errors) {
118
+ const msg = error.message.toLowerCase();
119
+ if (msg.includes('import') || msg.includes('module')) {
120
+ suggestions.push('Check import statements -- ensure all dependencies are available');
121
+ }
122
+ if (msg.includes('type') || msg.includes('cannot find')) {
123
+ suggestions.push('Verify type definitions match the source code signatures');
124
+ }
125
+ if (msg.includes('undefined') || msg.includes('undeclared')) {
126
+ suggestions.push('Ensure all referenced symbols are properly imported or declared');
127
+ }
128
+ }
129
+ return [...new Set(suggestions)]; // Dedupe
130
+ }
131
+ }
132
+ /** Singleton instance */
133
+ export const compilationValidator = new CompilationValidator();
134
+ //# sourceMappingURL=compilation-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compilation-validator.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/compilation-validator.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ export { PropertyTestGeneratorService, type IPropertyTestGeneratorService, } fro
8
8
  export { TestDataGeneratorService, type ITestDataGeneratorService, } from './test-data-generator';
9
9
  export { PatternMatcherService, type IPatternMatchingService, type PatternMatcherConfig, type PatternSearchContext, type PatternMatch, type AppliedPattern, type PatternModification, type PatternDefinition, type PatternExample, type PatternFilter, } from './pattern-matcher';
10
10
  export { CodeTransformService, createCodeTransformService, quickTransformTestCode, isEligibleForTransform, detectEligibleTransforms, DEFAULT_TRANSFORM_CONFIG, type CodeTransformConfig, type CodeTransformResult, } from './code-transform-integration';
11
+ export { CompilationValidator, compilationValidator, type ICompilationValidator, type CompilationError, type ValidationResult, } from './compilation-validator';
11
12
  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-service';
12
13
  export { type ITestGenerator, type ITestGeneratorFactory, type TestFramework, type TestType, type FunctionInfo, type ClassInfo, type ParameterInfo, type PropertyInfo, type TestCase, type CodeAnalysis, type TestGenerationContext, type Pattern as GeneratorPattern, } from '../interfaces';
13
- export { BaseTestGenerator, JestVitestGenerator, MochaGenerator, PytestGenerator, } from '../generators';
14
+ export { BaseTestGenerator, JestVitestGenerator, MochaGenerator, PytestGenerator, NodeTestGenerator, JUnit5Generator, XUnitGenerator, GoTestGenerator, RustTestGenerator, SwiftTestingGenerator, KotlinJUnitGenerator, FlutterTestGenerator, JestRNGenerator, } from '../generators';
14
15
  export { TestGeneratorFactory, testGeneratorFactory, createTestGenerator, isValidTestFramework, } from '../factories';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,EAC1C,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,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,mBAAmB,CAAC;AAG3B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,8BAA8B,CAAC;AAGtC,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,0BAA0B,CAAC;AAGlC,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,OAAO,IAAI,gBAAgB,GACjC,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,EAC1C,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,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,mBAAmB,CAAC;AAG3B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,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,0BAA0B,CAAC;AAGlC,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,OAAO,IAAI,gBAAgB,GACjC,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAC"}
@@ -9,10 +9,12 @@ export { TestDataGeneratorService, } from './test-data-generator';
9
9
  export { PatternMatcherService, } from './pattern-matcher';
10
10
  // Agent Booster Integration (ADR-051)
11
11
  export { CodeTransformService, createCodeTransformService, quickTransformTestCode, isEligibleForTransform, detectEligibleTransforms, DEFAULT_TRANSFORM_CONFIG, } from './code-transform-integration';
12
+ // Compilation Validation Loop (ADR-077)
13
+ export { CompilationValidator, compilationValidator, } from './compilation-validator';
12
14
  // Coherence Gate Service (ADR-052)
13
15
  export { TestGenerationCoherenceGate, createTestGenerationCoherenceGate, CoherenceError, DEFAULT_COHERENCE_GATE_CONFIG, } from './coherence-gate-service';
14
16
  // Generator implementations
15
- export { BaseTestGenerator, JestVitestGenerator, MochaGenerator, PytestGenerator, } from '../generators';
17
+ export { BaseTestGenerator, JestVitestGenerator, MochaGenerator, PytestGenerator, NodeTestGenerator, JUnit5Generator, XUnitGenerator, GoTestGenerator, RustTestGenerator, SwiftTestingGenerator, KotlinJUnitGenerator, FlutterTestGenerator, JestRNGenerator, } from '../generators';
16
18
  // Factory
17
19
  export { TestGeneratorFactory, testGeneratorFactory, createTestGenerator, isValidTestFramework, } from '../factories';
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,GAI3C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,GAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,GAUtB,MAAM,mBAAmB,CAAC;AAE3B,sCAAsC;AACtC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GAGzB,MAAM,8BAA8B,CAAC;AAEtC,mCAAmC;AACnC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,GAS9B,MAAM,0BAA0B,CAAC;AAmBlC,4BAA4B;AAC5B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,UAAU;AACV,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0CAA0C,GAI3C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,GAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,GAUtB,MAAM,mBAAmB,CAAC;AAE3B,sCAAsC;AACtC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GAGzB,MAAM,8BAA8B,CAAC;AAEtC,wCAAwC;AACxC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AAEjC,mCAAmC;AACnC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,cAAc,EACd,6BAA6B,GAS9B,MAAM,0BAA0B,CAAC;AAmBlC,4BAA4B;AAC5B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,UAAU;AACV,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Test File Path Resolver (ADR-079)
3
+ * Resolves correct test file output paths per language convention.
4
+ */
5
+ import type { SupportedLanguage } from '../../../shared/types/test-frameworks.js';
6
+ /**
7
+ * Test file placement strategy
8
+ */
9
+ export type TestPlacementStrategy = 'alongside' | 'tests-directory' | 'maven-mirror' | 'test-project' | 'inline';
10
+ /**
11
+ * Test file convention for a language
12
+ */
13
+ export interface TestFileConvention {
14
+ strategy: TestPlacementStrategy;
15
+ testPrefix: string;
16
+ testSuffix: string;
17
+ testExtension: string;
18
+ testDirectory?: string;
19
+ }
20
+ /**
21
+ * Per-language test file conventions
22
+ */
23
+ export declare const TEST_FILE_CONVENTIONS: Record<SupportedLanguage, TestFileConvention>;
24
+ /**
25
+ * Resolve the test file path for a given source file
26
+ */
27
+ export declare function resolveTestFilePath(sourceFile: string, language: SupportedLanguage, projectRoot?: string): string;
28
+ /**
29
+ * Get the test file convention for a language
30
+ */
31
+ export declare function getTestFileConvention(language: SupportedLanguage): TestFileConvention;
32
+ //# sourceMappingURL=test-file-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-file-resolver.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/test-file-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAmE/E,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAmFR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB,CAErF"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Test File Path Resolver (ADR-079)
3
+ * Resolves correct test file output paths per language convention.
4
+ */
5
+ import * as path from 'path';
6
+ /**
7
+ * Per-language test file conventions
8
+ */
9
+ export const TEST_FILE_CONVENTIONS = {
10
+ typescript: {
11
+ strategy: 'alongside',
12
+ testPrefix: '',
13
+ testSuffix: '.test',
14
+ testExtension: '.ts',
15
+ },
16
+ javascript: {
17
+ strategy: 'alongside',
18
+ testPrefix: '',
19
+ testSuffix: '.test',
20
+ testExtension: '.js',
21
+ },
22
+ python: {
23
+ strategy: 'tests-directory',
24
+ testPrefix: 'test_',
25
+ testSuffix: '',
26
+ testExtension: '.py',
27
+ testDirectory: 'tests',
28
+ },
29
+ java: {
30
+ strategy: 'maven-mirror',
31
+ testPrefix: '',
32
+ testSuffix: 'Test',
33
+ testExtension: '.java',
34
+ testDirectory: 'src/test/java',
35
+ },
36
+ csharp: {
37
+ strategy: 'test-project',
38
+ testPrefix: '',
39
+ testSuffix: 'Tests',
40
+ testExtension: '.cs',
41
+ testDirectory: 'tests',
42
+ },
43
+ go: {
44
+ strategy: 'alongside',
45
+ testPrefix: '',
46
+ testSuffix: '_test',
47
+ testExtension: '.go',
48
+ },
49
+ rust: {
50
+ strategy: 'inline',
51
+ testPrefix: '',
52
+ testSuffix: '',
53
+ testExtension: '.rs',
54
+ },
55
+ swift: {
56
+ strategy: 'tests-directory',
57
+ testPrefix: '',
58
+ testSuffix: 'Tests',
59
+ testExtension: '.swift',
60
+ testDirectory: 'Tests',
61
+ },
62
+ kotlin: {
63
+ strategy: 'maven-mirror',
64
+ testPrefix: '',
65
+ testSuffix: 'Test',
66
+ testExtension: '.kt',
67
+ testDirectory: 'src/test/kotlin',
68
+ },
69
+ dart: {
70
+ strategy: 'tests-directory',
71
+ testPrefix: '',
72
+ testSuffix: '_test',
73
+ testExtension: '.dart',
74
+ testDirectory: 'test',
75
+ },
76
+ };
77
+ /**
78
+ * Resolve the test file path for a given source file
79
+ */
80
+ export function resolveTestFilePath(sourceFile, language, projectRoot) {
81
+ const convention = TEST_FILE_CONVENTIONS[language];
82
+ const parsed = path.parse(sourceFile);
83
+ const baseName = parsed.name;
84
+ const dir = parsed.dir;
85
+ switch (convention.strategy) {
86
+ case 'alongside': {
87
+ // Test file next to source: foo.ts -> foo.test.ts, foo.go -> foo_test.go
88
+ const testName = `${convention.testPrefix}${baseName}${convention.testSuffix}${convention.testExtension}`;
89
+ return path.join(dir, testName);
90
+ }
91
+ case 'tests-directory': {
92
+ // Mirror in tests/ directory: src/utils.py -> tests/test_utils.py
93
+ const testDir = convention.testDirectory || 'tests';
94
+ const root = projectRoot || '.';
95
+ // Try to make path relative to project root
96
+ let relativePath;
97
+ try {
98
+ relativePath = path.relative(root, dir);
99
+ }
100
+ catch {
101
+ relativePath = dir;
102
+ }
103
+ // Remove common source directories from relative path
104
+ const cleanPath = relativePath
105
+ .replace(/^src[\/\\]?/, '')
106
+ .replace(/^lib[\/\\]?/, '')
107
+ .replace(/^Sources[\/\\]?/, '');
108
+ const testName = `${convention.testPrefix}${baseName}${convention.testSuffix}${convention.testExtension}`;
109
+ return path.join(root, testDir, cleanPath, testName);
110
+ }
111
+ case 'maven-mirror': {
112
+ // Maven convention: src/main/java/com/foo/Bar.java -> src/test/java/com/foo/BarTest.java
113
+ const root = projectRoot || '.';
114
+ const testDir = convention.testDirectory || 'src/test/java';
115
+ let relativePath;
116
+ try {
117
+ relativePath = path.relative(root, sourceFile);
118
+ }
119
+ catch {
120
+ relativePath = sourceFile;
121
+ }
122
+ // Replace src/main/java with src/test/java (or src/main/kotlin with src/test/kotlin)
123
+ const testPath = relativePath
124
+ .replace(/^src[\/\\]main[\/\\]java[\/\\]?/, `${testDir}${path.sep}`)
125
+ .replace(/^src[\/\\]main[\/\\]kotlin[\/\\]?/, `${testDir}${path.sep}`);
126
+ const testParsed = path.parse(testPath);
127
+ const testName = `${convention.testPrefix}${testParsed.name}${convention.testSuffix}${convention.testExtension}`;
128
+ return path.join(root, testParsed.dir, testName);
129
+ }
130
+ case 'test-project': {
131
+ // Separate test project: src/MyApp/User.cs -> tests/MyApp.Tests/UserTests.cs
132
+ const root = projectRoot || '.';
133
+ const testDir = convention.testDirectory || 'tests';
134
+ let relativePath;
135
+ try {
136
+ relativePath = path.relative(root, dir);
137
+ }
138
+ catch {
139
+ relativePath = dir;
140
+ }
141
+ const cleanPath = relativePath.replace(/^src[\/\\]?/, '');
142
+ const testName = `${convention.testPrefix}${baseName}${convention.testSuffix}${convention.testExtension}`;
143
+ return path.join(root, testDir, cleanPath, testName);
144
+ }
145
+ case 'inline': {
146
+ // Rust: tests go inside the source file itself
147
+ return sourceFile;
148
+ }
149
+ default:
150
+ return path.join(dir, `${baseName}.test${parsed.ext}`);
151
+ }
152
+ }
153
+ /**
154
+ * Get the test file convention for a language
155
+ */
156
+ export function getTestFileConvention(language) {
157
+ return TEST_FILE_CONVENTIONS[language];
158
+ }
159
+ //# sourceMappingURL=test-file-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-file-resolver.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/test-file-resolver.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,10 @@ export interface TestGeneratorConfig {
39
39
  llmModelTier: number;
40
40
  /** ADR-051: Max tokens for LLM responses */
41
41
  llmMaxTokens: number;
42
+ /** Enable test quality gate validation on generated tests */
43
+ enableTestQualityGate: boolean;
44
+ /** Enable edge case injection from historical patterns (loki-mode Item 5) */
45
+ enableEdgeCaseInjection: boolean;
42
46
  }
43
47
  /**
44
48
  * Dependencies for TestGeneratorService
@@ -69,6 +73,8 @@ export declare class TestGeneratorService implements ITestGenerationService {
69
73
  private readonly propertyTestGenerator;
70
74
  private readonly testDataGenerator;
71
75
  private readonly llmRouter?;
76
+ private readonly qualityGate;
77
+ private readonly edgeCaseInjector;
72
78
  constructor(dependencies: TestGeneratorDependencies, config?: Partial<TestGeneratorConfig>);
73
79
  /**
74
80
  * Check if LLM enhancement is available and enabled
@@ -141,6 +147,16 @@ export declare class TestGeneratorService implements ITestGenerationService {
141
147
  * Uses token-based feature extraction similar to semantic-analyzer.
142
148
  */
143
149
  private generatePseudoEmbedding;
150
+ /**
151
+ * Get the code fence language identifier for a framework.
152
+ * Falls back to 'typescript' for TS/JS frameworks.
153
+ */
154
+ private getCodeFenceLanguage;
155
+ /**
156
+ * Convert a ParsedFile from multi-language parser to the legacy CodeAnalysis format.
157
+ * Delegates to PytestGenerator.convertParsedFile for the actual mapping.
158
+ */
159
+ private convertParsedToCodeAnalysis;
144
160
  private findApplicablePatterns;
145
161
  private groupConsecutiveLines;
146
162
  private getTestFilePath;
@@ -1 +1 @@
1
- {"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/test-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/test-generator.ts"],"names":[],"mappings":"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"}