agentic-qe 3.10.4 → 3.10.6

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 (469) hide show
  1. package/.claude/agents/v3/qe-accessibility-auditor.md +8 -0
  2. package/.claude/agents/v3/qe-bdd-generator.md +8 -0
  3. package/.claude/agents/v3/qe-chaos-engineer.md +8 -0
  4. package/.claude/agents/v3/qe-code-complexity.md +8 -0
  5. package/.claude/agents/v3/qe-code-intelligence.md +8 -0
  6. package/.claude/agents/v3/qe-contract-validator.md +8 -0
  7. package/.claude/agents/v3/qe-coverage-specialist.md +8 -0
  8. package/.claude/agents/v3/qe-defect-predictor.md +8 -0
  9. package/.claude/agents/v3/qe-dependency-mapper.md +8 -0
  10. package/.claude/agents/v3/qe-deployment-advisor.md +8 -0
  11. package/.claude/agents/v3/qe-devils-advocate.md +8 -0
  12. package/.claude/agents/v3/qe-flaky-hunter.md +8 -0
  13. package/.claude/agents/v3/qe-fleet-commander.md +8 -0
  14. package/.claude/agents/v3/qe-gap-detector.md +8 -0
  15. package/.claude/agents/v3/qe-graphql-tester.md +8 -0
  16. package/.claude/agents/v3/qe-impact-analyzer.md +8 -0
  17. package/.claude/agents/v3/qe-integration-tester.md +8 -0
  18. package/.claude/agents/v3/qe-kg-builder.md +8 -0
  19. package/.claude/agents/v3/qe-learning-coordinator.md +8 -0
  20. package/.claude/agents/v3/qe-load-tester.md +8 -0
  21. package/.claude/agents/v3/qe-message-broker-tester.md +8 -0
  22. package/.claude/agents/v3/qe-metrics-optimizer.md +8 -0
  23. package/.claude/agents/v3/qe-middleware-validator.md +8 -0
  24. package/.claude/agents/v3/qe-mutation-tester.md +8 -0
  25. package/.claude/agents/v3/qe-odata-contract-tester.md +8 -0
  26. package/.claude/agents/v3/qe-parallel-executor.md +8 -0
  27. package/.claude/agents/v3/qe-pattern-learner.md +8 -0
  28. package/.claude/agents/v3/qe-pentest-validator.md +8 -0
  29. package/.claude/agents/v3/qe-performance-tester.md +8 -0
  30. package/.claude/agents/v3/qe-product-factors-assessor.md +8 -0
  31. package/.claude/agents/v3/qe-property-tester.md +8 -0
  32. package/.claude/agents/v3/qe-quality-criteria-recommender.md +8 -0
  33. package/.claude/agents/v3/qe-quality-gate.md +8 -0
  34. package/.claude/agents/v3/qe-qx-partner.md +8 -0
  35. package/.claude/agents/v3/qe-regression-analyzer.md +8 -0
  36. package/.claude/agents/v3/qe-requirements-validator.md +8 -0
  37. package/.claude/agents/v3/qe-responsive-tester.md +8 -0
  38. package/.claude/agents/v3/qe-retry-handler.md +8 -0
  39. package/.claude/agents/v3/qe-risk-assessor.md +8 -0
  40. package/.claude/agents/v3/qe-root-cause-analyzer.md +8 -0
  41. package/.claude/agents/v3/qe-sap-idoc-tester.md +8 -0
  42. package/.claude/agents/v3/qe-sap-rfc-tester.md +8 -0
  43. package/.claude/agents/v3/qe-security-auditor.md +8 -0
  44. package/.claude/agents/v3/qe-security-scanner.md +8 -0
  45. package/.claude/agents/v3/qe-soap-tester.md +8 -0
  46. package/.claude/agents/v3/qe-sod-analyzer.md +8 -0
  47. package/.claude/agents/v3/qe-tdd-specialist.md +8 -0
  48. package/.claude/agents/v3/qe-test-architect.md +8 -0
  49. package/.claude/agents/v3/qe-test-idea-rewriter.md +8 -0
  50. package/.claude/agents/v3/qe-transfer-specialist.md +8 -0
  51. package/.claude/agents/v3/qe-visual-tester.md +8 -0
  52. package/.claude/skills/qcsd-development-swarm/SKILL.md +27 -6
  53. package/.claude/skills/skills-manifest.json +1 -1
  54. package/CHANGELOG.md +9012 -8863
  55. package/assets/agents/v3/qe-accessibility-auditor.md +8 -0
  56. package/assets/agents/v3/qe-bdd-generator.md +8 -0
  57. package/assets/agents/v3/qe-chaos-engineer.md +8 -0
  58. package/assets/agents/v3/qe-code-complexity.md +8 -0
  59. package/assets/agents/v3/qe-code-intelligence.md +8 -0
  60. package/assets/agents/v3/qe-contract-validator.md +8 -0
  61. package/assets/agents/v3/qe-coverage-specialist.md +8 -0
  62. package/assets/agents/v3/qe-defect-predictor.md +8 -0
  63. package/assets/agents/v3/qe-dependency-mapper.md +8 -0
  64. package/assets/agents/v3/qe-deployment-advisor.md +8 -0
  65. package/assets/agents/v3/qe-devils-advocate.md +8 -0
  66. package/assets/agents/v3/qe-flaky-hunter.md +8 -0
  67. package/assets/agents/v3/qe-fleet-commander.md +8 -0
  68. package/assets/agents/v3/qe-gap-detector.md +8 -0
  69. package/assets/agents/v3/qe-graphql-tester.md +8 -0
  70. package/assets/agents/v3/qe-impact-analyzer.md +8 -0
  71. package/assets/agents/v3/qe-integration-tester.md +8 -0
  72. package/assets/agents/v3/qe-kg-builder.md +8 -0
  73. package/assets/agents/v3/qe-learning-coordinator.md +8 -0
  74. package/assets/agents/v3/qe-load-tester.md +8 -0
  75. package/assets/agents/v3/qe-message-broker-tester.md +8 -0
  76. package/assets/agents/v3/qe-metrics-optimizer.md +8 -0
  77. package/assets/agents/v3/qe-middleware-validator.md +8 -0
  78. package/assets/agents/v3/qe-mutation-tester.md +8 -0
  79. package/assets/agents/v3/qe-odata-contract-tester.md +8 -0
  80. package/assets/agents/v3/qe-parallel-executor.md +8 -0
  81. package/assets/agents/v3/qe-pattern-learner.md +8 -0
  82. package/assets/agents/v3/qe-pentest-validator.md +8 -0
  83. package/assets/agents/v3/qe-performance-tester.md +8 -0
  84. package/assets/agents/v3/qe-product-factors-assessor.md +8 -0
  85. package/assets/agents/v3/qe-property-tester.md +8 -0
  86. package/assets/agents/v3/qe-quality-criteria-recommender.md +8 -0
  87. package/assets/agents/v3/qe-quality-gate.md +8 -0
  88. package/assets/agents/v3/qe-qx-partner.md +8 -0
  89. package/assets/agents/v3/qe-regression-analyzer.md +8 -0
  90. package/assets/agents/v3/qe-requirements-validator.md +8 -0
  91. package/assets/agents/v3/qe-responsive-tester.md +8 -0
  92. package/assets/agents/v3/qe-retry-handler.md +8 -0
  93. package/assets/agents/v3/qe-risk-assessor.md +8 -0
  94. package/assets/agents/v3/qe-root-cause-analyzer.md +8 -0
  95. package/assets/agents/v3/qe-sap-idoc-tester.md +8 -0
  96. package/assets/agents/v3/qe-sap-rfc-tester.md +8 -0
  97. package/assets/agents/v3/qe-security-auditor.md +8 -0
  98. package/assets/agents/v3/qe-security-scanner.md +8 -0
  99. package/assets/agents/v3/qe-soap-tester.md +8 -0
  100. package/assets/agents/v3/qe-sod-analyzer.md +8 -0
  101. package/assets/agents/v3/qe-tdd-specialist.md +8 -0
  102. package/assets/agents/v3/qe-test-architect.md +8 -0
  103. package/assets/agents/v3/qe-test-idea-rewriter.md +8 -0
  104. package/assets/agents/v3/qe-transfer-specialist.md +8 -0
  105. package/assets/agents/v3/qe-visual-tester.md +8 -0
  106. package/dist/arena/arena.d.ts +68 -0
  107. package/dist/arena/arena.js +169 -0
  108. package/dist/arena/mutator.d.ts +23 -0
  109. package/dist/arena/mutator.js +112 -0
  110. package/dist/arena/rng.d.ts +15 -0
  111. package/dist/arena/rng.js +34 -0
  112. package/dist/arena/runner.d.ts +44 -0
  113. package/dist/arena/runner.js +79 -0
  114. package/dist/cli/bundle.js +7 -7
  115. package/dist/cli/chunks/adapter-AMIHQ243.js +2 -0
  116. package/dist/cli/chunks/{agent-booster-wasm-EJPDSWON.js → agent-booster-wasm-J5CITTTV.js} +2 -2
  117. package/dist/cli/chunks/{agent-handler-2DZB7LGI.js → agent-handler-HMN4ZBZ6.js} +2 -2
  118. package/dist/cli/chunks/{agent-memory-branch-SSFYAVIK.js → agent-memory-branch-SCAKN4DU.js} +2 -2
  119. package/dist/cli/chunks/aqe-learning-engine-LRG2UG6P.js +2 -0
  120. package/dist/cli/chunks/arena-CJOLCHZW.js +18 -0
  121. package/dist/cli/chunks/arena-FVBTSGKS.js +4 -0
  122. package/dist/cli/chunks/audit-SOF6L5RY.js +3 -0
  123. package/dist/cli/chunks/base-WDL3FANJ.js +2 -0
  124. package/dist/cli/chunks/{hnswlib-node-3TZFES5I.js → better-sqlite3-5G7LRX7Q.js} +2 -2
  125. package/dist/cli/chunks/{brain-handler-LFHX2TYP.js → brain-handler-D2ZQQI2J.js} +3 -3
  126. package/dist/cli/chunks/{branch-enumerator-AX7DKGV7.js → branch-enumerator-QQXOCGOR.js} +2 -2
  127. package/dist/cli/chunks/{browser-4NYLZ7FA.js → browser-XASHKIEN.js} +2 -2
  128. package/dist/cli/chunks/browser-workflow-W7S4IKWD.js +2 -0
  129. package/dist/cli/chunks/{chunk-VJOPNK2L.js → chunk-2CZQA3NN.js} +2 -2
  130. package/dist/cli/chunks/{chunk-DPKECIKN.js → chunk-2I5RXDNO.js} +2 -2
  131. package/dist/cli/chunks/{chunk-M4ARHDY4.js → chunk-2IC2I525.js} +1 -1
  132. package/dist/cli/chunks/{chunk-M5DBKHM4.js → chunk-2RQSFRON.js} +2 -2
  133. package/dist/cli/chunks/{chunk-WYMQ6FZR.js → chunk-2UI5LQ7C.js} +3 -3
  134. package/dist/cli/chunks/{chunk-ISRTT4I7.js → chunk-3XUPDWMA.js} +8 -8
  135. package/dist/cli/chunks/chunk-434VUSZP.js +2 -0
  136. package/dist/cli/chunks/{chunk-SXMGNMFL.js → chunk-4B22URZJ.js} +3 -3
  137. package/dist/cli/chunks/{chunk-LHPR7ROV.js → chunk-4N4TU7ST.js} +1 -1
  138. package/dist/cli/chunks/{chunk-ND6YSW5N.js → chunk-4XEUJH2M.js} +1 -1
  139. package/dist/cli/chunks/{chunk-BEFRQOLH.js → chunk-5QTUGFFP.js} +2 -2
  140. package/dist/cli/chunks/{chunk-DAIM72HV.js → chunk-5V4IFRG5.js} +2 -2
  141. package/dist/cli/chunks/{chunk-F34OO2Q7.js → chunk-5VTRPOYL.js} +3 -3
  142. package/dist/cli/chunks/{chunk-GILL32E2.js → chunk-6DHJPKAH.js} +2 -2
  143. package/dist/cli/chunks/{chunk-YSLE6NNG.js → chunk-6RFPELCD.js} +2 -2
  144. package/dist/cli/chunks/{chunk-B6CT4ILU.js → chunk-6ZLVQTQ5.js} +4 -4
  145. package/dist/cli/chunks/{chunk-XJXCSCCP.js → chunk-7BPYFDWY.js} +1 -1
  146. package/dist/cli/chunks/{chunk-RJKYPWFD.js → chunk-7NXVVIJZ.js} +2 -2
  147. package/dist/cli/chunks/{chunk-USB7GCIC.js → chunk-7OK5H6ML.js} +1 -1
  148. package/dist/cli/chunks/{chunk-MDWJXSBA.js → chunk-7RTI5WT4.js} +2 -2
  149. package/dist/cli/chunks/{chunk-O3SG32PS.js → chunk-7SFCZ3AE.js} +1 -1
  150. package/dist/cli/chunks/{chunk-OV4BLIKJ.js → chunk-A2DCROAN.js} +2 -2
  151. package/dist/cli/chunks/{chunk-Y2EDDV5U.js → chunk-AJ2VDNPB.js} +3 -3
  152. package/dist/cli/chunks/chunk-AQPFTDGS.js +14 -0
  153. package/dist/cli/chunks/{chunk-MFWWPRBV.js → chunk-B3H2TTYT.js} +2 -2
  154. package/dist/cli/chunks/{chunk-PISW5HUX.js → chunk-BHD6THT5.js} +1 -1
  155. package/dist/cli/chunks/{chunk-5Q3L4QEE.js → chunk-BXOGLZGU.js} +2 -2
  156. package/dist/cli/chunks/{chunk-TWAWEP4X.js → chunk-C75ODWRP.js} +3 -3
  157. package/dist/cli/chunks/{chunk-AMW27FSS.js → chunk-CH7KUYGO.js} +3 -3
  158. package/dist/cli/chunks/{chunk-MHWYQHGN.js → chunk-CSM4LXTH.js} +1 -1
  159. package/dist/cli/chunks/{chunk-SC6UFGJ6.js → chunk-DAUQIXHW.js} +2 -2
  160. package/dist/cli/chunks/{chunk-NJYI7HX7.js → chunk-DF4Z7TKZ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-IYFMDIYZ.js → chunk-DFBVWMX3.js} +2 -2
  162. package/dist/cli/chunks/{chunk-FQ7I4JBQ.js → chunk-EDPVATNH.js} +2 -2
  163. package/dist/cli/chunks/{chunk-STMMZXS6.js → chunk-EJWAKPZD.js} +1 -1
  164. package/dist/cli/chunks/{chunk-EGTOSQZK.js → chunk-ELC6JIXL.js} +2 -2
  165. package/dist/cli/chunks/{chunk-TBJ566KV.js → chunk-ELTN4F4R.js} +2 -2
  166. package/dist/cli/chunks/{chunk-UXJVR323.js → chunk-ESZDW6G7.js} +2 -2
  167. package/dist/cli/chunks/{chunk-XDZXLEJK.js → chunk-EYKID5HA.js} +2 -2
  168. package/dist/cli/chunks/{chunk-VRE2EBFI.js → chunk-F72A356B.js} +2 -2
  169. package/dist/cli/chunks/{chunk-AZJYDM2K.js → chunk-GWHDPEBT.js} +1 -1
  170. package/dist/cli/chunks/{chunk-L6VNEEN6.js → chunk-GXNNKM7F.js} +1 -1
  171. package/dist/cli/chunks/{chunk-NSRDP7RD.js → chunk-H4Q36ILL.js} +2 -2
  172. package/dist/cli/chunks/{chunk-2G2PVVQG.js → chunk-H6UPZFI6.js} +2 -2
  173. package/dist/cli/chunks/chunk-H73FLSBV.js +699 -0
  174. package/dist/cli/chunks/{chunk-Q53M4LI7.js → chunk-HDEFCRHI.js} +1 -1
  175. package/dist/cli/chunks/{chunk-G5FPWH5O.js → chunk-HFU3LTQX.js} +15 -15
  176. package/dist/cli/chunks/{chunk-C2446H7G.js → chunk-HMHQOEU7.js} +2 -2
  177. package/dist/cli/chunks/{chunk-IAK76TIZ.js → chunk-HWKFBRMX.js} +1 -1
  178. package/dist/cli/chunks/{chunk-7BQXEYRV.js → chunk-HZGOVRZ6.js} +2 -2
  179. package/dist/cli/chunks/{chunk-VJ2D6FST.js → chunk-I7ADT6AZ.js} +2 -2
  180. package/dist/cli/chunks/{chunk-3UGUX34A.js → chunk-IB3QQDC4.js} +1 -1
  181. package/dist/cli/chunks/{chunk-5T2HDET6.js → chunk-J2SMTP2L.js} +3 -3
  182. package/dist/cli/chunks/{chunk-4FTLYIMW.js → chunk-J3WUBGLQ.js} +2 -2
  183. package/dist/cli/chunks/{chunk-4BX72XG4.js → chunk-JADBRSQN.js} +2 -2
  184. package/dist/cli/chunks/{chunk-N4CXUGXE.js → chunk-JP2YXWJD.js} +2 -2
  185. package/dist/cli/chunks/chunk-JPL53G4V.js +20 -0
  186. package/dist/cli/chunks/{chunk-GLMDRGJD.js → chunk-JX7HZMW5.js} +1 -1
  187. package/dist/cli/chunks/{chunk-GDMH7NPV.js → chunk-JXCIRWLQ.js} +2 -2
  188. package/dist/cli/chunks/{chunk-UFKVKNAA.js → chunk-K32AUACO.js} +1 -1
  189. package/dist/cli/chunks/{chunk-XVA56PXZ.js → chunk-KQOJYO5Z.js} +4 -4
  190. package/dist/cli/chunks/{chunk-PLD4IGDL.js → chunk-KVMY2ABO.js} +2 -2
  191. package/dist/cli/chunks/{chunk-7VO5IEJ2.js → chunk-L2IMTNZF.js} +2 -2
  192. package/dist/cli/chunks/{chunk-KCXE2LZU.js → chunk-LAGNWKAD.js} +2 -2
  193. package/dist/cli/chunks/{chunk-OIFJH7TF.js → chunk-LEDF3LGZ.js} +1 -1
  194. package/dist/cli/chunks/{chunk-F6QPAVWS.js → chunk-LHA4OQ7G.js} +2 -2
  195. package/dist/cli/chunks/{chunk-EMZ3DXMG.js → chunk-LHZOIXJ6.js} +2 -2
  196. package/dist/cli/chunks/{chunk-MU4P4P4E.js → chunk-LOQMQEKN.js} +1 -1
  197. package/dist/cli/chunks/{chunk-F77X5DAF.js → chunk-LWUIK5DH.js} +2 -2
  198. package/dist/cli/chunks/{chunk-KWZEBHAP.js → chunk-M3APJ7VS.js} +2 -2
  199. package/dist/cli/chunks/{chunk-RUC3FCRK.js → chunk-M4OYZMXE.js} +2 -2
  200. package/dist/cli/chunks/{chunk-IPAQ4HVX.js → chunk-MCMVRPNG.js} +2 -2
  201. package/dist/cli/chunks/{chunk-PMWWWYUM.js → chunk-MJLDZSFB.js} +1 -1
  202. package/dist/cli/chunks/{chunk-M3MKP5VN.js → chunk-MQN3HYFX.js} +1 -1
  203. package/dist/cli/chunks/{chunk-6OLHPWSN.js → chunk-MSJGDIRP.js} +2 -2
  204. package/dist/cli/chunks/{chunk-UW3ZSFFB.js → chunk-NEIJP6TG.js} +2 -2
  205. package/dist/cli/chunks/{chunk-XBFEHVBO.js → chunk-NHC635LL.js} +2 -2
  206. package/dist/cli/chunks/{chunk-Z4BTPQLG.js → chunk-NKEGEQ3J.js} +2 -2
  207. package/dist/cli/chunks/{chunk-6SCIX2W2.js → chunk-NN35QH6X.js} +2 -2
  208. package/dist/cli/chunks/{chunk-ZM4QGYGK.js → chunk-NUCJS3Z7.js} +3 -3
  209. package/dist/cli/chunks/{chunk-WI5WXYIS.js → chunk-O2H5WYFK.js} +2 -2
  210. package/dist/cli/chunks/{chunk-2B6ETC7C.js → chunk-O4MNYX4X.js} +2 -2
  211. package/dist/cli/chunks/{chunk-JYR3X4OC.js → chunk-OBLAWVXM.js} +1 -1
  212. package/dist/cli/chunks/{chunk-K7CW2X6U.js → chunk-OU4HRUVV.js} +2 -2
  213. package/dist/cli/chunks/{chunk-E6CGBOZY.js → chunk-P7EOYGR2.js} +2 -2
  214. package/dist/cli/chunks/{chunk-KJ56OXH4.js → chunk-PFSBUTDA.js} +1 -1
  215. package/dist/cli/chunks/{chunk-PZCSJZVJ.js → chunk-PIIBVLFC.js} +2 -2
  216. package/dist/cli/chunks/{chunk-LYKSIOOT.js → chunk-PIJ5XOMM.js} +2 -2
  217. package/dist/cli/chunks/{chunk-D7IWGQTW.js → chunk-Q4LYWIEX.js} +2 -2
  218. package/dist/cli/chunks/{chunk-TCV5DASI.js → chunk-Q5432RIH.js} +2 -2
  219. package/dist/cli/chunks/{chunk-U27GVYXA.js → chunk-QJXZ4SU7.js} +2 -2
  220. package/dist/cli/chunks/{chunk-K7K4TFJM.js → chunk-QNIL3D6E.js} +1 -1
  221. package/dist/cli/chunks/{chunk-D7PI4CYZ.js → chunk-QUQA4NNZ.js} +2 -2
  222. package/dist/cli/chunks/{chunk-N244P4MM.js → chunk-QZSNYXYC.js} +2 -2
  223. package/dist/cli/chunks/{chunk-NZGLDOU4.js → chunk-RA7HEY5G.js} +17 -17
  224. package/dist/cli/chunks/{chunk-HTLAPMTK.js → chunk-RBZWUWUG.js} +1 -1
  225. package/dist/cli/chunks/{chunk-3ISX5B77.js → chunk-RH3I4Q23.js} +2 -2
  226. package/dist/cli/chunks/{chunk-M2PSXKTG.js → chunk-ROXH622K.js} +2 -2
  227. package/dist/cli/chunks/{chunk-6WF2MOQB.js → chunk-RTAGNKCV.js} +2 -2
  228. package/dist/cli/chunks/{chunk-2L5VFVCG.js → chunk-RTFFD263.js} +1 -1
  229. package/dist/cli/chunks/{chunk-PWJZZCHJ.js → chunk-S574AFAT.js} +1 -1
  230. package/dist/cli/chunks/{chunk-SZKFT6CD.js → chunk-SA5FTDRS.js} +2 -2
  231. package/dist/cli/chunks/{chunk-AIBE3J4A.js → chunk-SHVTMMJB.js} +1 -1
  232. package/dist/cli/chunks/{chunk-MQIAN57O.js → chunk-SUGQZCNI.js} +2 -2
  233. package/dist/cli/chunks/{chunk-LOFA3U4X.js → chunk-T6CUKJHS.js} +1 -1
  234. package/dist/cli/chunks/{chunk-UWAUYDW4.js → chunk-T6SCQVWH.js} +2 -2
  235. package/dist/cli/chunks/{chunk-KUFC4DBX.js → chunk-TFA5UETW.js} +1 -1
  236. package/dist/cli/chunks/{chunk-OO7KJ34Y.js → chunk-TFJDJVPC.js} +2 -2
  237. package/dist/cli/chunks/chunk-TNVOINYC.js +12 -0
  238. package/dist/cli/chunks/{chunk-N3MM4Z33.js → chunk-TUFU3BAK.js} +2 -2
  239. package/dist/cli/chunks/{chunk-SJC7OKF3.js → chunk-TWH3ZL6B.js} +2 -2
  240. package/dist/cli/chunks/{chunk-VDKMBOUK.js → chunk-ULEVKOWQ.js} +1 -1
  241. package/dist/cli/chunks/{chunk-EWI37TJA.js → chunk-ULV5K4V5.js} +1 -1
  242. package/dist/cli/chunks/{chunk-SVILIQQQ.js → chunk-UNDPB5SS.js} +1 -1
  243. package/dist/cli/chunks/{chunk-K72J52JO.js → chunk-UQYDFT6I.js} +2 -2
  244. package/dist/cli/chunks/{chunk-5T4J3IPG.js → chunk-USPBUR6P.js} +2 -2
  245. package/dist/cli/chunks/{chunk-LKK3NIHC.js → chunk-UVWOIF6P.js} +1 -1
  246. package/dist/cli/chunks/{chunk-MKZQBBCU.js → chunk-UWDC3TZP.js} +2 -2
  247. package/dist/cli/chunks/{chunk-KGPAWNNR.js → chunk-VFFIMJWT.js} +1 -1
  248. package/dist/cli/chunks/{chunk-MIQBRVK2.js → chunk-VQM2TC2V.js} +1 -1
  249. package/dist/cli/chunks/{chunk-WIYWDON4.js → chunk-WNAFMYND.js} +2 -2
  250. package/dist/cli/chunks/{chunk-FDFJJFQT.js → chunk-X3YWLJGT.js} +2 -2
  251. package/dist/cli/chunks/{chunk-GS33ZRJH.js → chunk-X5R6SUWM.js} +2 -2
  252. package/dist/cli/chunks/{chunk-V5G3SMAJ.js → chunk-XKRJQIGP.js} +2 -2
  253. package/dist/cli/chunks/{chunk-5FNNCVXR.js → chunk-XLFYVBOD.js} +1 -1
  254. package/dist/cli/chunks/chunk-XOGBTPJI.js +65 -0
  255. package/dist/cli/chunks/{chunk-ICF5RPQU.js → chunk-XOYTW6LI.js} +2 -2
  256. package/dist/cli/chunks/{chunk-MWV4KPOB.js → chunk-Z3RPA3RD.js} +2 -2
  257. package/dist/cli/chunks/{chunk-QPMAXDJ2.js → chunk-ZBSEXVEI.js} +2 -2
  258. package/dist/cli/chunks/{chunk-JRBGHWAM.js → chunk-ZMCMSDXR.js} +2 -2
  259. package/dist/cli/chunks/{chunk-MQ5WMWUK.js → chunk-ZY4G7O7Y.js} +2 -2
  260. package/dist/cli/chunks/{ci-2BLMQNX3.js → ci-COQUVZH6.js} +2 -2
  261. package/dist/cli/chunks/{ci-output-XK4PPSN7.js → ci-output-KVUHUEOT.js} +2 -2
  262. package/dist/cli/chunks/{circuit-breaker-W7X4NPFE.js → circuit-breaker-O4JNXAYH.js} +2 -2
  263. package/dist/cli/chunks/{claude-flow-setup-GLBLSYNJ.js → claude-flow-setup-J65U34NA.js} +2 -2
  264. package/dist/cli/chunks/client-VJNNIAMG.js +2 -0
  265. package/dist/cli/chunks/{cline-installer-7WX7DBGI.js → cline-installer-ZTG234Z2.js} +2 -2
  266. package/dist/cli/chunks/{code-SP3HAQWG.js → code-5GWPY4IX.js} +2 -2
  267. package/dist/cli/chunks/{code-index-extractor-44HH36UG.js → code-index-extractor-TWNKG4VS.js} +2 -2
  268. package/dist/cli/chunks/{codex-installer-LMXRWLPU.js → codex-installer-4TM4BLAE.js} +2 -2
  269. package/dist/cli/chunks/{completions-GL5FTZAN.js → completions-BBNHQXMV.js} +2 -2
  270. package/dist/cli/chunks/{complexity-analyzer-CQMYGETL.js → complexity-analyzer-2SCI2VGH.js} +2 -2
  271. package/dist/cli/chunks/{continuedev-installer-CYVYS5B7.js → continuedev-installer-CTIORASU.js} +2 -2
  272. package/dist/cli/chunks/{copilot-installer-M7XVII2A.js → copilot-installer-4R2V4IYB.js} +2 -2
  273. package/dist/cli/chunks/core-handlers-MV5CAR7O.js +2 -0
  274. package/dist/cli/chunks/{cost-tracker-S4ET4FH3.js → cost-tracker-KDBYQBKG.js} +2 -2
  275. package/dist/cli/chunks/{coverage-DFVSSQ4A.js → coverage-QQJQVDPZ.js} +3 -3
  276. package/dist/cli/chunks/cross-domain-router-ULY4NIML.js +2 -0
  277. package/dist/cli/chunks/{cursor-installer-KWDSQPQC.js → cursor-installer-5WEZCESZ.js} +2 -2
  278. package/dist/cli/chunks/{daemon-2HD54QVO.js → daemon-M4DKHEEA.js} +3 -3
  279. package/dist/cli/chunks/{daemon-CRX46BBO.js → daemon-Y7H3ZUXQ.js} +4 -4
  280. package/dist/cli/chunks/{dag-attention-scheduler-SCP6WPZB.js → dag-attention-scheduler-SD2UIADT.js} +2 -2
  281. package/dist/cli/chunks/{detect-XS2GDCEX.js → detect-WONWUXFH.js} +2 -2
  282. package/dist/cli/chunks/{dist-node-U43MVQ3F.js → dist-node-Q5GQN2R6.js} +2 -2
  283. package/dist/cli/chunks/{domain-handler-HITMDULH.js → domain-handler-EMXE2XQW.js} +2 -2
  284. package/dist/cli/chunks/{domain-transfer-TJF7DNI4.js → domain-transfer-QATUJJRP.js} +2 -2
  285. package/dist/cli/chunks/dream-PIGWXWE4.js +2 -0
  286. package/dist/cli/chunks/{embed-and-insert-pattern-JKG33YZK.js → embed-and-insert-pattern-AAFHLBEJ.js} +2 -2
  287. package/dist/cli/chunks/{eval-NF5Y4W37.js → eval-73BDNLSK.js} +5 -5
  288. package/dist/cli/chunks/{experience-capture-middleware-VMMFYJ4D.js → experience-capture-middleware-YPAPVSYY.js} +3 -3
  289. package/dist/cli/chunks/{fast-paths-W2Q53IR2.js → fast-paths-33ZKMNYY.js} +2 -2
  290. package/dist/cli/chunks/{feature-flags-B4PBMQJO.js → feature-flags-F3DVW4ST.js} +2 -2
  291. package/dist/cli/chunks/{feature-flags-PVI7A4RE.js → feature-flags-QKO5YYDU.js} +2 -2
  292. package/dist/cli/chunks/{file-discovery-E4L3I33I.js → file-discovery-YYVZLRYD.js} +2 -2
  293. package/dist/cli/chunks/{fleet-LE5SHVLK.js → fleet-EJX6BXLR.js} +3 -3
  294. package/dist/cli/chunks/{gnn-wrapper-MWWJBLOH.js → gnn-wrapper-TBNLYPTM.js} +2 -2
  295. package/dist/cli/chunks/{heartbeat-handler-XOUVNPQK.js → heartbeat-handler-HPRTS6SI.js} +4 -4
  296. package/dist/cli/chunks/heartbeat-scheduler-5BBLZP6R.js +2 -0
  297. package/dist/cli/chunks/hnsw-adapter-FMEBL5T4.js +2 -0
  298. package/dist/cli/chunks/hnsw-index-K2R24V4Z.js +2 -0
  299. package/dist/cli/chunks/{hnsw-legacy-bridge-W3T5ZDDP.js → hnsw-legacy-bridge-Z6V6TOF5.js} +2 -2
  300. package/dist/cli/chunks/{better-sqlite3-PX5JM3DG.js → hnswlib-node-LFVNGGCL.js} +2 -2
  301. package/dist/cli/chunks/hooks-GG2Z3BDB.js +285 -0
  302. package/dist/cli/chunks/hybrid-router-LVF6N345.js +2 -0
  303. package/dist/cli/chunks/{hypergraph-engine-VDFK3JYH.js → hypergraph-engine-X4Q2TTET.js} +2 -2
  304. package/dist/cli/chunks/{hypergraph-handler-EUDGEF25.js → hypergraph-handler-6BZWV5PL.js} +3 -3
  305. package/dist/cli/chunks/impact-analyzer-CCVVMGWE.js +2 -0
  306. package/dist/cli/chunks/{init-handler-MZEAJOZK.js → init-handler-EKUS7U6L.js} +6 -6
  307. package/dist/cli/chunks/init-wizard-KDPMO4G3.js +2 -0
  308. package/dist/cli/chunks/kernel-PBYNK5VA.js +2 -0
  309. package/dist/cli/chunks/{kilocode-installer-ECBYWT6M.js → kilocode-installer-BWAVVSQG.js} +2 -2
  310. package/dist/cli/chunks/{kiro-installer-KYFCSYTG.js → kiro-installer-UADO53E5.js} +2 -2
  311. package/dist/cli/chunks/knowledge-graph-C7LVHHLN.js +2 -0
  312. package/dist/cli/chunks/{learning-4RAFMDSB.js → learning-HMUTCYQM.js} +3 -3
  313. package/dist/cli/chunks/{llm-router-JHBNLYP3.js → llm-router-453TBDUY.js} +4 -4
  314. package/dist/cli/chunks/llm-router-service-LMTRJCPP.js +2 -0
  315. package/dist/cli/chunks/{load-4DVQML7P.js → load-DBBSNP6T.js} +2 -2
  316. package/dist/cli/chunks/load-test-FHMZXTXD.js +2 -0
  317. package/dist/cli/chunks/{mcp-LCWMU4GZ.js → mcp-PK3SAKRF.js} +2 -2
  318. package/dist/cli/chunks/{memory-3DTJAURT.js → memory-63NHVBXS.js} +5 -5
  319. package/dist/cli/chunks/memory-backend-UZHPCQTB.js +2 -0
  320. package/dist/cli/chunks/memory-handlers-YIKKORRY.js +2 -0
  321. package/dist/cli/chunks/{multi-model-executor-AVR5SZOO.js → multi-model-executor-HUGRXJ6D.js} +2 -2
  322. package/dist/cli/chunks/{opencode-installer-DW2426QM.js → opencode-installer-A6IXNF26.js} +2 -2
  323. package/dist/cli/chunks/{orchestrator-AHF4W5GS.js → orchestrator-KDFYDNE3.js} +10 -10
  324. package/dist/cli/chunks/pattern-null-store-5PS4JN6V.js +2 -0
  325. package/dist/cli/chunks/{pipeline-N6THEWYE.js → pipeline-HSPRKEYE.js} +2 -2
  326. package/dist/cli/chunks/{platform-MRCFQF7X.js → platform-X74IBN2H.js} +2 -2
  327. package/dist/cli/chunks/{plugin-6YKUN5QM.js → plugin-KDJZ7VFD.js} +2 -2
  328. package/dist/cli/chunks/{prime-radiant-advanced-wasm-2YPAHSVS.js → prime-radiant-advanced-wasm-2YZGKQE7.js} +2 -2
  329. package/dist/cli/chunks/protocol-executor-2GTGIOFD.js +2 -0
  330. package/dist/cli/chunks/{protocol-handler-Y2NMUKWQ.js → protocol-handler-I2SDHC7B.js} +2 -2
  331. package/dist/cli/chunks/{prove-DZUNWBFD.js → prove-JQJDNIZH.js} +2 -2
  332. package/dist/cli/chunks/provider-manager-VH6YTBB3.js +2 -0
  333. package/dist/cli/chunks/qe-reasoning-bank-47JSO76G.js +2 -0
  334. package/dist/cli/chunks/{quality-AIFQMGUV.js → quality-2P7KHVY3.js} +2 -2
  335. package/dist/cli/chunks/queen-coordinator-C7EDY7IS.js +2 -0
  336. package/dist/cli/chunks/{real-embeddings-5XL4LOG2.js → real-embeddings-L7NMMNDO.js} +2 -2
  337. package/dist/cli/chunks/{roocode-installer-LV3WONT5.js → roocode-installer-LA4QN5AG.js} +2 -2
  338. package/dist/cli/chunks/router-7DVH66WB.js +2 -0
  339. package/dist/cli/chunks/routing-feedback-4I2MF235.js +2 -0
  340. package/dist/cli/chunks/{routing-handler-WSMUILGD.js → routing-handler-B5CDEZF3.js} +2 -2
  341. package/dist/cli/chunks/{ruvector-commands-BCEIDTW3.js → ruvector-commands-SOVCRLJ6.js} +2 -2
  342. package/dist/cli/chunks/{rvf-dual-writer-LRSPC6H3.js → rvf-dual-writer-M6WI2KFB.js} +2 -2
  343. package/dist/cli/chunks/{rvf-migration-adapter-QHNX6353.js → rvf-migration-adapter-YDMZGPMA.js} +2 -2
  344. package/dist/cli/chunks/{rvf-migration-coordinator-SLNB3XPW.js → rvf-migration-coordinator-TFGQ5EO4.js} +2 -2
  345. package/dist/cli/chunks/rvf-native-adapter-UN3ESMMW.js +2 -0
  346. package/dist/cli/chunks/safe-db-Y2ZXKWBK.js +2 -0
  347. package/dist/cli/chunks/schedule-PG2NVRGA.js +2 -0
  348. package/dist/cli/chunks/scheduler-CNH6WWU2.js +2 -0
  349. package/dist/cli/chunks/{security-CYY6TECQ.js → security-R3IXQXDA.js} +3 -3
  350. package/dist/cli/chunks/{shared-rvf-adapter-U6JE4O6A.js → shared-rvf-adapter-GZX7LSQZ.js} +2 -2
  351. package/dist/cli/chunks/{shared-rvf-dual-writer-PJBSNBRV.js → shared-rvf-dual-writer-YT7SJX7K.js} +2 -2
  352. package/dist/cli/chunks/sqlite-persistence-WWT4DRRP.js +2 -0
  353. package/dist/cli/chunks/{status-handler-W723LXX5.js → status-handler-7PZSPBHJ.js} +2 -2
  354. package/dist/cli/chunks/{structural-health-WZUPZBB5.js → structural-health-UMJS6IVR.js} +2 -2
  355. package/dist/cli/chunks/sync-HA5SLSBA.js +2 -0
  356. package/dist/cli/chunks/{sync-UA22CKUS.js → sync-UIREA3UG.js} +2 -2
  357. package/dist/cli/chunks/{task-handler-SENTEEXZ.js → task-handler-NV4HGMEG.js} +2 -2
  358. package/dist/cli/chunks/{task-handlers-FGVUZOCC.js → task-handlers-RXYWWOSU.js} +3 -3
  359. package/dist/cli/chunks/{test-Q37C3WI2.js → test-2Y6OXGEU.js} +4 -4
  360. package/dist/cli/chunks/{test-scheduling-E6SPIBTH.js → test-scheduling-N55VFOYT.js} +3 -3
  361. package/dist/cli/chunks/token-bootstrap-FW3ZVMRP.js +2 -0
  362. package/dist/cli/chunks/{token-usage-JHNWTZ7L.js → token-usage-YXKOB3U6.js} +2 -2
  363. package/dist/cli/chunks/{transformers-TEXDUVNI.js → transformers-GBRSFAVA.js} +2 -2
  364. package/dist/cli/chunks/{tree-sitter-wasm-parser-MWSS52H6.js → tree-sitter-wasm-parser-FJHMEHJS.js} +2 -2
  365. package/dist/cli/chunks/{types-YQRKHYH3.js → types-NVMRVSBH.js} +2 -2
  366. package/dist/cli/chunks/unified-memory-PXEJKKMN.js +2 -0
  367. package/dist/cli/chunks/unified-memory-hnsw-M7OI5WUU.js +2 -0
  368. package/dist/cli/chunks/unified-persistence-WR4VDTAF.js +2 -0
  369. package/dist/cli/chunks/{upgrade-JKMEDURI.js → upgrade-L2OTYHD3.js} +2 -2
  370. package/dist/cli/chunks/{validate-URO7G6OE.js → validate-3NWRQYTP.js} +3 -3
  371. package/dist/cli/chunks/{validate-swarm-VZVJ56Z5.js → validate-swarm-MDURRWXK.js} +4 -4
  372. package/dist/cli/chunks/{vibium-G5WZILL6.js → vibium-SZX7RB4H.js} +2 -2
  373. package/dist/cli/chunks/visual-security-CKSZZHKG.js +2 -0
  374. package/dist/cli/chunks/{web-tree-sitter-LECH5T6H.js → web-tree-sitter-LGQT7JRD.js} +2 -2
  375. package/dist/cli/chunks/{windsurf-installer-2NPLC2YW.js → windsurf-installer-EYYGHPPX.js} +2 -2
  376. package/dist/cli/chunks/witness-chain-IOQX3XFG.js +2 -0
  377. package/dist/cli/chunks/{witness-chain-X347C36A.js → witness-chain-YYYA2CU3.js} +2 -2
  378. package/dist/cli/chunks/{workflow-V4ALYZ73.js → workflow-UD45FQAH.js} +4 -4
  379. package/dist/cli/chunks/workflow-orchestrator-Z2ZJRWIN.js +2 -0
  380. package/dist/cli/chunks/wrappers-JXD3KNSR.js +2 -0
  381. package/dist/cli/commands/arena.d.ts +10 -0
  382. package/dist/cli/commands/arena.js +129 -0
  383. package/dist/cli/commands/hooks-handlers/command-hooks.js +38 -2
  384. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.d.ts +4 -0
  385. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +66 -3
  386. package/dist/cli/commands/hooks-handlers/nesting-provenance.d.ts +27 -0
  387. package/dist/cli/commands/hooks-handlers/nesting-provenance.js +46 -0
  388. package/dist/cli/commands/hooks-handlers/task-hooks.js +22 -1
  389. package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.d.ts +71 -0
  390. package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.js +142 -0
  391. package/dist/cli/index.js +17 -0
  392. package/dist/contracts/verdicts.d.ts +297 -0
  393. package/dist/contracts/verdicts.js +178 -0
  394. package/dist/coordination/queen-types.d.ts +4 -0
  395. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +15 -6
  396. package/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js +12 -0
  397. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  398. package/dist/kernel/unified-memory-schemas.js +3 -2
  399. package/dist/kernel/unified-memory.js +3 -1
  400. package/dist/learning/aqe-learning-engine.js +32 -0
  401. package/dist/learning/experience-capture.d.ts +8 -0
  402. package/dist/learning/experience-capture.js +30 -0
  403. package/dist/learning/pattern-null-store.d.ts +32 -0
  404. package/dist/learning/pattern-null-store.js +77 -0
  405. package/dist/learning/pattern-store.d.ts +10 -0
  406. package/dist/learning/pattern-store.js +23 -0
  407. package/dist/mcp/bundle.js +400 -370
  408. package/dist/mcp/handlers/core-handlers.d.ts +20 -0
  409. package/dist/mcp/handlers/core-handlers.js +28 -0
  410. package/dist/mcp/handlers/domain-handler-configs.d.ts +3 -0
  411. package/dist/mcp/handlers/domain-handler-configs.js +22 -10
  412. package/dist/mcp/handlers/validation-pipeline-handler.d.ts +19 -0
  413. package/dist/mcp/handlers/validation-pipeline-handler.js +10 -0
  414. package/dist/migrations/20260611_add_pattern_nulls_table.d.ts +26 -0
  415. package/dist/migrations/20260611_add_pattern_nulls_table.js +63 -0
  416. package/dist/shared/llm/cost-tracker.js +6 -2
  417. package/dist/shared/llm/interfaces.d.ts +4 -0
  418. package/dist/shared/llm/providers/claude.js +16 -2
  419. package/dist/shared/reasoning-scrub.d.ts +29 -0
  420. package/dist/shared/reasoning-scrub.js +75 -0
  421. package/dist/validation/pipeline.d.ts +25 -0
  422. package/dist/validation/pipeline.js +28 -5
  423. package/dist/validation/steps/requirements.js +5 -0
  424. package/package.json +2 -1
  425. package/dist/cli/chunks/adapter-A62ETL5C.js +0 -2
  426. package/dist/cli/chunks/aqe-learning-engine-MTCRAV6N.js +0 -2
  427. package/dist/cli/chunks/audit-42XG5JFB.js +0 -3
  428. package/dist/cli/chunks/base-KKEBUHZC.js +0 -2
  429. package/dist/cli/chunks/browser-workflow-XHYAJUB6.js +0 -2
  430. package/dist/cli/chunks/chunk-2TYO4VZH.js +0 -12
  431. package/dist/cli/chunks/chunk-HPYGMKZF.js +0 -2
  432. package/dist/cli/chunks/chunk-OKKTDHHF.js +0 -65
  433. package/dist/cli/chunks/chunk-PZ4PRZXN.js +0 -699
  434. package/dist/cli/chunks/client-C6CJOCRN.js +0 -2
  435. package/dist/cli/chunks/cross-domain-router-I3GEA5G6.js +0 -2
  436. package/dist/cli/chunks/dream-JCQMG2RL.js +0 -2
  437. package/dist/cli/chunks/heartbeat-scheduler-FBHE4ZWH.js +0 -2
  438. package/dist/cli/chunks/hnsw-adapter-EOOA4WXD.js +0 -2
  439. package/dist/cli/chunks/hnsw-index-TD3KRPND.js +0 -2
  440. package/dist/cli/chunks/hooks-RUPQVIUM.js +0 -250
  441. package/dist/cli/chunks/hybrid-router-64O6PXZ2.js +0 -2
  442. package/dist/cli/chunks/impact-analyzer-ITQHXGTM.js +0 -2
  443. package/dist/cli/chunks/init-wizard-DZ4IKGQI.js +0 -2
  444. package/dist/cli/chunks/kernel-HSVY4ZYK.js +0 -2
  445. package/dist/cli/chunks/knowledge-graph-H32TXXX4.js +0 -2
  446. package/dist/cli/chunks/llm-router-service-3FKESBUX.js +0 -2
  447. package/dist/cli/chunks/load-test-LKHURZGZ.js +0 -2
  448. package/dist/cli/chunks/memory-backend-XRJRZ6CK.js +0 -2
  449. package/dist/cli/chunks/memory-handlers-BL6E3XAK.js +0 -2
  450. package/dist/cli/chunks/protocol-executor-KABPB6PQ.js +0 -2
  451. package/dist/cli/chunks/provider-manager-U7EBM3FA.js +0 -2
  452. package/dist/cli/chunks/qe-reasoning-bank-64O2OQIW.js +0 -2
  453. package/dist/cli/chunks/queen-coordinator-SV3COGIL.js +0 -2
  454. package/dist/cli/chunks/router-QARRPMED.js +0 -2
  455. package/dist/cli/chunks/routing-feedback-KD2JFTPK.js +0 -2
  456. package/dist/cli/chunks/rvf-native-adapter-4LLGF5AY.js +0 -2
  457. package/dist/cli/chunks/safe-db-RAX3H2P7.js +0 -2
  458. package/dist/cli/chunks/schedule-RQZGLLUY.js +0 -2
  459. package/dist/cli/chunks/scheduler-ACWTN4LN.js +0 -2
  460. package/dist/cli/chunks/sqlite-persistence-SWNBO257.js +0 -2
  461. package/dist/cli/chunks/sync-ZLMF53TB.js +0 -2
  462. package/dist/cli/chunks/token-bootstrap-HQFFMZUF.js +0 -2
  463. package/dist/cli/chunks/unified-memory-QG3FDRKR.js +0 -2
  464. package/dist/cli/chunks/unified-memory-hnsw-KOR4EOIG.js +0 -2
  465. package/dist/cli/chunks/unified-persistence-J6NIRYKM.js +0 -2
  466. package/dist/cli/chunks/visual-security-RAWV6YLN.js +0 -2
  467. package/dist/cli/chunks/witness-chain-ZO7FIM35.js +0 -2
  468. package/dist/cli/chunks/workflow-orchestrator-7SKITNIJ.js +0 -2
  469. package/dist/cli/chunks/wrappers-QXOPRPR4.js +0 -2
@@ -57,6 +57,14 @@ Proceed with analysis without confirmation when scope is clear.
57
57
  Apply impact analysis automatically for all risk assessments.
58
58
  Generate mitigation recommendations with cost-benefit analysis by default.
59
59
  </default_to_action>
60
+ <evidence_discipline>
61
+ ADR-105 evidence classes — label every finding you emit:
62
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
63
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
64
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
65
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
66
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
67
+ </evidence_discipline>
60
68
 
61
69
  <parallel_execution>
62
70
  Assess risks across multiple components simultaneously.
@@ -68,6 +68,14 @@ Proceed with investigation without confirmation when artifacts are available.
68
68
  Apply pattern correlation automatically across related failures.
69
69
  Generate prevention recommendations by default for all root causes.
70
70
  </default_to_action>
71
+ <evidence_discipline>
72
+ ADR-105 evidence classes — label every finding you emit:
73
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
74
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
75
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
76
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
77
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
78
+ </evidence_discipline>
71
79
 
72
80
  <parallel_execution>
73
81
  Analyze multiple failures simultaneously.
@@ -46,6 +46,14 @@ Apply strict field validation for production IDoc types, relaxed for development
46
46
  Use assertEventually with 30-second default timeout and 2-second polling interval for async processing.
47
47
  Automatically detect IDoc basic type from message type when not explicitly specified.
48
48
  </default_to_action>
49
+ <evidence_discipline>
50
+ ADR-105 evidence classes — label every finding you emit:
51
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
52
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
53
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
54
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
55
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
56
+ </evidence_discipline>
49
57
 
50
58
  <parallel_execution>
51
59
  Validate multiple IDoc types simultaneously across different message types.
@@ -45,6 +45,14 @@ Apply strict type checking against ABAP data dictionary types (CHAR, NUMC, DATS,
45
45
  Test BAPI return structures (TYPE, ID, NUMBER, MESSAGE) for all error paths.
46
46
  Use BAPI_TRANSACTION_ROLLBACK after every test to avoid persistent data changes.
47
47
  </default_to_action>
48
+ <evidence_discipline>
49
+ ADR-105 evidence classes — label every finding you emit:
50
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
51
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
52
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
53
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
54
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
55
+ </evidence_discipline>
48
56
 
49
57
  <parallel_execution>
50
58
  Test multiple BAPIs/RFCs simultaneously across connection pool.
@@ -63,6 +63,14 @@ When auditing credential files (.env, .env.*, secrets), ALWAYS check .gitignore
63
63
  - Files NOT in .gitignore: report as CRITICAL (secrets committed to version control).
64
64
  - Hardcoded secrets in source code (.ts, .js, etc.) are always CRITICAL regardless of .gitignore.
65
65
  </default_to_action>
66
+ <evidence_discipline>
67
+ ADR-105 evidence classes — label every finding you emit:
68
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
69
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
70
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
71
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
72
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
73
+ </evidence_discipline>
66
74
 
67
75
  <parallel_execution>
68
76
  Audit multiple security categories simultaneously.
@@ -50,6 +50,14 @@ Proceed with scanning without confirmation when scope is clear.
50
50
  Apply all relevant rule sets automatically based on detected language/framework.
51
51
  Use incremental scanning for known codebases to reduce scan time.
52
52
  </default_to_action>
53
+ <evidence_discipline>
54
+ ADR-105 evidence classes — label every finding you emit:
55
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
56
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
57
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
58
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
59
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
60
+ </evidence_discipline>
53
61
 
54
62
  <parallel_execution>
55
63
  Run SAST, dependency, and secrets scans in parallel.
@@ -44,6 +44,14 @@ Test WS-Security configurations automatically when security headers are detected
44
44
  Validate SOAP fault codes and fault string content for all error paths.
45
45
  Use SOAP 1.2 by default unless SOAP 1.1 binding is explicitly declared.
46
46
  </default_to_action>
47
+ <evidence_discipline>
48
+ ADR-105 evidence classes — label every finding you emit:
49
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
50
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
51
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
52
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
53
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
54
+ </evidence_discipline>
47
55
 
48
56
  <parallel_execution>
49
57
  Parse multiple WSDL documents simultaneously for composite service testing.
@@ -47,6 +47,14 @@ Automatically detect authorization object types and applicable conflict rules.
47
47
  Flag any role with both "create" and "approve" activities on the same business object as HIGH risk by default.
48
48
  Generate audit documentation in parallel with conflict analysis.
49
49
  </default_to_action>
50
+ <evidence_discipline>
51
+ ADR-105 evidence classes — label every finding you emit:
52
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
53
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
54
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
55
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
56
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
57
+ </evidence_discipline>
50
58
 
51
59
  <parallel_execution>
52
60
  Analyze multiple roles for SoD conflicts simultaneously.
@@ -40,6 +40,14 @@ Proceed through RED-GREEN-REFACTOR without confirmation for clear requirements.
40
40
  Apply London or Chicago school based on code context automatically.
41
41
  Generate minimal implementation guidance during GREEN phase.
42
42
  </default_to_action>
43
+ <evidence_discipline>
44
+ ADR-105 evidence classes — label every finding you emit:
45
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
46
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
47
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
48
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
49
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
50
+ </evidence_discipline>
43
51
 
44
52
  <parallel_execution>
45
53
  Execute multiple TDD cycles for independent features simultaneously.
@@ -76,6 +76,14 @@ Proceed with test creation without asking for confirmation when framework and ta
76
76
  Apply learned patterns automatically based on code analysis and past experience.
77
77
  Use the test pyramid principle: 70% unit, 20% integration, 10% e2e.
78
78
  </default_to_action>
79
+ <evidence_discipline>
80
+ ADR-105 evidence classes — label every finding you emit:
81
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
82
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
83
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
84
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
85
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
86
+ </evidence_discipline>
79
87
 
80
88
  <parallel_execution>
81
89
  Analyze multiple source files simultaneously for faster test planning.
@@ -38,6 +38,14 @@ Preserve all metadata (IDs, priorities, automation types).
38
38
  Process entire assessment files in single pass.
39
39
  Validate zero "Verify" patterns remain post-transformation.
40
40
  </default_to_action>
41
+ <evidence_discipline>
42
+ ADR-105 evidence classes — label every finding you emit:
43
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
44
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
45
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
46
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
47
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
48
+ </evidence_discipline>
41
49
 
42
50
  <parallel_execution>
43
51
  Process multiple test ideas simultaneously.
@@ -38,6 +38,14 @@ Proceed with cross-framework mapping without confirmation when mappings are avai
38
38
  Apply negative transfer prevention automatically during all transfers.
39
39
  Generate transfer compatibility reports by default for new agent pairs.
40
40
  </default_to_action>
41
+ <evidence_discipline>
42
+ ADR-105 evidence classes — label every finding you emit:
43
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
44
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
45
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
46
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
47
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
48
+ </evidence_discipline>
41
49
 
42
50
  <parallel_execution>
43
51
  Transfer knowledge across multiple agent pairs simultaneously.
@@ -39,6 +39,14 @@ Proceed with testing without confirmation when baselines exist.
39
39
  Apply AI comparison for semantic changes automatically.
40
40
  Use multi-viewport testing by default for responsive components.
41
41
  </default_to_action>
42
+ <evidence_discipline>
43
+ ADR-105 evidence classes — label every finding you emit:
44
+ - EXECUTED: you ran a real command; attach the command and its output as the artifact.
45
+ - STATIC: derived from data (coverage file, AST, lockfile, schema); name the data source.
46
+ - INFERRED: reasoning over code/content without execution. Never present it in the voice of verified fact.
47
+ - CONJECTURE: pattern-matched heuristic or extrapolation; flag it as such.
48
+ Quality gates block only on EXECUTED/STATIC; INFERRED routes to adversarial verification (ADR-102); CONJECTURE never gates. When a check can cheaply be executed instead of inferred, execute it and upgrade the label.
49
+ </evidence_discipline>
42
50
 
43
51
  <parallel_execution>
44
52
  Capture screenshots across multiple viewports simultaneously.
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Agentic QE v3 - Competitive Test-Strategy Arena (ADR-104, Phase 1)
3
+ *
4
+ * Strategies are deterministic selections of fixture test groups; fitness
5
+ * comes from REAL runs: mutation kill rate (built-in operator mutants,
6
+ * `node --test` per mutant) + line coverage − a runtime penalty. The
7
+ * tournament produces Wolfram-style pairwise competitive arrays; optional
8
+ * hill-climb evolves the winner by seeded group flips with re-evaluation.
9
+ *
10
+ * Reproducibility contract: with the same seed and fixture, every field
11
+ * of the result envelope is identical across runs EXCEPT
12
+ * `informational.runtimesMs` (real wall-clock, reported but excluded —
13
+ * the fitness runtime term uses ordinal rank, which is stable because
14
+ * group runtimes differ by design).
15
+ */
16
+ import { type Rng } from './rng.js';
17
+ export interface ArenaStrategy {
18
+ id: string;
19
+ name: string;
20
+ groups: string[];
21
+ }
22
+ export interface EvaluatedStrategy extends ArenaStrategy {
23
+ baselinePassed: boolean;
24
+ mutantsKilled: number;
25
+ mutantsTotal: number;
26
+ killRate: number;
27
+ coveragePct: number | null;
28
+ /** Deterministic runtime proxy: selected groups / total groups (0..1) */
29
+ suiteCostRatio: number;
30
+ fitness: number;
31
+ }
32
+ export interface ArenaResult {
33
+ contract: 'arena-result@1';
34
+ seed: number;
35
+ target: string;
36
+ weights: {
37
+ kill: number;
38
+ coverage: number;
39
+ runtimePenalty: number;
40
+ };
41
+ mutantsTotal: number;
42
+ strategies: EvaluatedStrategy[];
43
+ /** strategy ids best→worst */
44
+ ranking: string[];
45
+ /** competitiveArray[i][j]: 1 if strategies[i] beats [j], -1 if loses, 0 tie (by fitness) */
46
+ competitiveArray: number[][];
47
+ evolution: Array<{
48
+ step: number;
49
+ groups: string[];
50
+ fitness: number;
51
+ accepted: boolean;
52
+ }>;
53
+ informational: {
54
+ runtimesMs: Record<string, number>;
55
+ };
56
+ }
57
+ export interface ArenaOptions {
58
+ target: string;
59
+ strategies?: number;
60
+ seed?: number;
61
+ maxMutants?: number;
62
+ evolveSteps?: number;
63
+ log?: (line: string) => void;
64
+ }
65
+ /** First strategy is always the full suite; the rest are seeded distinct subsets. */
66
+ export declare function buildStrategies(groups: string[], n: number, rng: Rng): ArenaStrategy[];
67
+ export declare function runArena(options: ArenaOptions): ArenaResult;
68
+ //# sourceMappingURL=arena.d.ts.map
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Agentic QE v3 - Competitive Test-Strategy Arena (ADR-104, Phase 1)
3
+ *
4
+ * Strategies are deterministic selections of fixture test groups; fitness
5
+ * comes from REAL runs: mutation kill rate (built-in operator mutants,
6
+ * `node --test` per mutant) + line coverage − a runtime penalty. The
7
+ * tournament produces Wolfram-style pairwise competitive arrays; optional
8
+ * hill-climb evolves the winner by seeded group flips with re-evaluation.
9
+ *
10
+ * Reproducibility contract: with the same seed and fixture, every field
11
+ * of the result envelope is identical across runs EXCEPT
12
+ * `informational.runtimesMs` (real wall-clock, reported but excluded —
13
+ * the fitness runtime term uses ordinal rank, which is stable because
14
+ * group runtimes differ by design).
15
+ */
16
+ import * as fs from 'fs';
17
+ import * as path from 'path';
18
+ import { mulberry32, nextInt } from './rng.js';
19
+ import { enumerateMutants, applyMutant } from './mutator.js';
20
+ import { discoverFixture, prepareWorkspace, runNodeTest, makeTmpRoot, cleanupTmpRoot, } from './runner.js';
21
+ const WEIGHTS = { kill: 0.6, coverage: 0.3, runtimePenalty: 0.1 };
22
+ /** First strategy is always the full suite; the rest are seeded distinct subsets. */
23
+ export function buildStrategies(groups, n, rng) {
24
+ const sorted = [...groups].sort();
25
+ const seen = new Set([sorted.join('+')]);
26
+ const strategies = [
27
+ { id: 's1', name: `all(${sorted.join('+')})`, groups: sorted },
28
+ ];
29
+ let guard = 0;
30
+ while (strategies.length < n && guard++ < 200) {
31
+ const subset = sorted.filter(() => rng() < 0.5);
32
+ if (subset.length === 0)
33
+ continue;
34
+ const key = subset.join('+');
35
+ if (seen.has(key))
36
+ continue;
37
+ seen.add(key);
38
+ strategies.push({ id: `s${strategies.length + 1}`, name: key, groups: subset });
39
+ }
40
+ return strategies;
41
+ }
42
+ /**
43
+ * Fitness with a DETERMINISTIC runtime term: at fixture scale, measured
44
+ * wall-clock is jitter-dominated (node boot ≈ the suite runtime), so the
45
+ * penalty uses suite-size ratio as the runtime proxy. Real per-strategy
46
+ * milliseconds are still reported under `informational`.
47
+ */
48
+ function fitnessOf(killRate, coveragePct, suiteCostRatio) {
49
+ const coverageTerm = coveragePct === null ? 0 : coveragePct / 100;
50
+ const f = WEIGHTS.kill * killRate + WEIGHTS.coverage * coverageTerm - WEIGHTS.runtimePenalty * suiteCostRatio;
51
+ return Math.round(f * 10000) / 10000;
52
+ }
53
+ function evaluateStrategy(layout, strategy, mutantsByFile, tmpRoot) {
54
+ const baselineDir = prepareWorkspace({ layout, groups: strategy.groups }, tmpRoot);
55
+ const baseline = runNodeTest(baselineDir, { coverage: true });
56
+ if (!baseline.ok) {
57
+ return { baselinePassed: false, killed: 0, total: 0, coveragePct: baseline.coveragePct, runtimeMs: baseline.durationMs };
58
+ }
59
+ let killed = 0;
60
+ let total = 0;
61
+ for (const file of mutantsByFile) {
62
+ for (const mutant of file.mutants) {
63
+ total++;
64
+ const dir = prepareWorkspace({ layout, groups: strategy.groups, mutatedFile: { relPath: file.relPath, content: applyMutant(file.source, mutant) } }, tmpRoot);
65
+ const run = runNodeTest(dir);
66
+ if (!run.ok)
67
+ killed++;
68
+ }
69
+ }
70
+ return { baselinePassed: true, killed, total, coveragePct: baseline.coveragePct, runtimeMs: baseline.durationMs };
71
+ }
72
+ export function runArena(options) {
73
+ const seed = options.seed ?? 42;
74
+ const log = options.log ?? (() => { });
75
+ const rng = mulberry32(seed);
76
+ const layout = discoverFixture(options.target);
77
+ const tmpRoot = makeTmpRoot();
78
+ try {
79
+ // Enumerate + deterministically sample mutants
80
+ const maxMutants = options.maxMutants ?? 24;
81
+ const mutantsByFile = layout.sourceFiles.map((relPath) => {
82
+ const source = fs.readFileSync(path.join(layout.root, relPath), 'utf8');
83
+ return { relPath, source, mutants: enumerateMutants(source, relPath) };
84
+ });
85
+ let allMutants = mutantsByFile.flatMap((f) => f.mutants.map((m) => ({ file: f.relPath, m })));
86
+ if (allMutants.length > maxMutants) {
87
+ const picked = new Set();
88
+ while (picked.size < maxMutants) {
89
+ picked.add(allMutants[nextInt(rng, allMutants.length)].m.id);
90
+ }
91
+ for (const f of mutantsByFile) {
92
+ f.mutants = f.mutants.filter((m) => picked.has(m.id));
93
+ }
94
+ allMutants = mutantsByFile.flatMap((f) => f.mutants.map((m) => ({ file: f.relPath, m })));
95
+ }
96
+ log(`mutants: ${allMutants.length} (of ${mutantsByFile.reduce((n, f) => n + enumerateMutants(f.source, f.relPath).length, 0)} enumerated)`);
97
+ // Build + evaluate strategies (real runs)
98
+ const strategies = buildStrategies(Object.keys(layout.testGroups), options.strategies ?? 4, rng);
99
+ const runtimesMs = {};
100
+ const raw = strategies.map((s) => {
101
+ log(`evaluating ${s.id} [${s.name}] ...`);
102
+ const e = evaluateStrategy(layout, s, mutantsByFile, tmpRoot);
103
+ runtimesMs[s.id] = e.runtimeMs;
104
+ return { s, e };
105
+ });
106
+ const totalGroups = Object.keys(layout.testGroups).length;
107
+ const evaluated = raw.map(({ s, e }) => {
108
+ const killRate = e.total > 0 ? Math.round((e.killed / e.total) * 10000) / 10000 : 0;
109
+ const suiteCostRatio = Math.round((s.groups.length / totalGroups) * 10000) / 10000;
110
+ return {
111
+ ...s,
112
+ baselinePassed: e.baselinePassed,
113
+ mutantsKilled: e.killed,
114
+ mutantsTotal: e.total,
115
+ killRate,
116
+ coveragePct: e.coveragePct,
117
+ suiteCostRatio,
118
+ fitness: e.baselinePassed ? fitnessOf(killRate, e.coveragePct, suiteCostRatio) : 0,
119
+ };
120
+ });
121
+ const ranking = [...evaluated]
122
+ .sort((a, b) => b.fitness - a.fitness || a.id.localeCompare(b.id))
123
+ .map((s) => s.id);
124
+ const competitiveArray = evaluated.map((a) => evaluated.map((b) => (a.fitness > b.fitness ? 1 : a.fitness < b.fitness ? -1 : 0)));
125
+ // Optional hill-climb from the winner: seeded single-group flips,
126
+ // accept only on real fitness improvement
127
+ const evolution = [];
128
+ if (options.evolveSteps && options.evolveSteps > 0) {
129
+ const allGroups = Object.keys(layout.testGroups).sort();
130
+ let bestGroups = evaluated.find((s) => s.id === ranking[0]).groups;
131
+ let bestFitness = evaluated.find((s) => s.id === ranking[0]).fitness;
132
+ for (let step = 1; step <= options.evolveSteps; step++) {
133
+ const flip = allGroups[nextInt(rng, allGroups.length)];
134
+ const candidate = bestGroups.includes(flip)
135
+ ? bestGroups.filter((g) => g !== flip)
136
+ : [...bestGroups, flip].sort();
137
+ if (candidate.length === 0) {
138
+ evolution.push({ step, groups: candidate, fitness: 0, accepted: false });
139
+ continue;
140
+ }
141
+ const e = evaluateStrategy(layout, { id: `evo${step}`, name: candidate.join('+'), groups: candidate }, mutantsByFile, tmpRoot);
142
+ const killRate = e.total > 0 ? e.killed / e.total : 0;
143
+ const f = e.baselinePassed ? fitnessOf(killRate, e.coveragePct, candidate.length / allGroups.length) : 0;
144
+ const accepted = f > bestFitness;
145
+ evolution.push({ step, groups: candidate, fitness: f, accepted });
146
+ if (accepted) {
147
+ bestGroups = candidate;
148
+ bestFitness = f;
149
+ }
150
+ }
151
+ }
152
+ return {
153
+ contract: 'arena-result@1',
154
+ seed,
155
+ target: path.relative(process.cwd(), layout.root) || '.',
156
+ weights: { ...WEIGHTS },
157
+ mutantsTotal: allMutants.length,
158
+ strategies: evaluated,
159
+ ranking,
160
+ competitiveArray,
161
+ evolution,
162
+ informational: { runtimesMs },
163
+ };
164
+ }
165
+ finally {
166
+ cleanupTmpRoot(tmpRoot);
167
+ }
168
+ }
169
+ //# sourceMappingURL=arena.js.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Agentic QE v3 - Operator Mutator for qe-arena (ADR-104)
3
+ *
4
+ * Generates first-order operator mutants from JavaScript source text:
5
+ * comparison flips, boundary shifts, arithmetic swaps, logical swaps.
6
+ * String literals, template literals, comments, and arrow tokens are
7
+ * excluded so mutants change behavior, not error messages. Enumeration
8
+ * order is deterministic (position-sorted), so seeded sampling over the
9
+ * mutant list is reproducible.
10
+ */
11
+ export interface Mutant {
12
+ id: string;
13
+ /** Byte offset in the source file */
14
+ index: number;
15
+ from: string;
16
+ to: string;
17
+ line: number;
18
+ }
19
+ /** Enumerate all first-order mutants of a source text, position-sorted. */
20
+ export declare function enumerateMutants(source: string, fileLabel: string): Mutant[];
21
+ /** Apply one mutant to the source text. */
22
+ export declare function applyMutant(source: string, mutant: Mutant): string;
23
+ //# sourceMappingURL=mutator.d.ts.map
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Agentic QE v3 - Operator Mutator for qe-arena (ADR-104)
3
+ *
4
+ * Generates first-order operator mutants from JavaScript source text:
5
+ * comparison flips, boundary shifts, arithmetic swaps, logical swaps.
6
+ * String literals, template literals, comments, and arrow tokens are
7
+ * excluded so mutants change behavior, not error messages. Enumeration
8
+ * order is deterministic (position-sorted), so seeded sampling over the
9
+ * mutant list is reproducible.
10
+ */
11
+ /** Longest-first so '<=' is claimed before '<', '===' before '==' etc. */
12
+ const OPERATOR_SUBSTITUTIONS = [
13
+ ['===', '!=='],
14
+ ['!==', '==='],
15
+ ['<=', '<'],
16
+ ['>=', '>'],
17
+ ['&&', '||'],
18
+ ['||', '&&'],
19
+ ['<', '<='],
20
+ ['>', '>='],
21
+ ['+', '-'],
22
+ ['*', '+'],
23
+ ];
24
+ /**
25
+ * Mark every index that sits inside a string literal, template literal,
26
+ * or comment — operators there must not be mutated.
27
+ */
28
+ function excludedRanges(source) {
29
+ const excluded = new Array(source.length).fill(false);
30
+ let i = 0;
31
+ let mode = 'code';
32
+ while (i < source.length) {
33
+ const c = source[i];
34
+ const next = source[i + 1];
35
+ if (mode === 'code') {
36
+ if (c === "'")
37
+ mode = 'single';
38
+ else if (c === '"')
39
+ mode = 'double';
40
+ else if (c === '`')
41
+ mode = 'template';
42
+ else if (c === '/' && next === '/')
43
+ mode = 'line-comment';
44
+ else if (c === '/' && next === '*')
45
+ mode = 'block-comment';
46
+ if (mode !== 'code')
47
+ excluded[i] = true;
48
+ }
49
+ else {
50
+ excluded[i] = true;
51
+ if (mode === 'single' && c === "'" && source[i - 1] !== '\\')
52
+ mode = 'code';
53
+ else if (mode === 'double' && c === '"' && source[i - 1] !== '\\')
54
+ mode = 'code';
55
+ else if (mode === 'template' && c === '`' && source[i - 1] !== '\\')
56
+ mode = 'code';
57
+ else if (mode === 'line-comment' && c === '\n')
58
+ mode = 'code';
59
+ else if (mode === 'block-comment' && c === '*' && next === '/') {
60
+ excluded[i + 1] = true;
61
+ i++;
62
+ mode = 'code';
63
+ }
64
+ }
65
+ i++;
66
+ }
67
+ return excluded;
68
+ }
69
+ function lineOf(source, index) {
70
+ let line = 1;
71
+ for (let i = 0; i < index; i++) {
72
+ if (source[i] === '\n')
73
+ line++;
74
+ }
75
+ return line;
76
+ }
77
+ /** Enumerate all first-order mutants of a source text, position-sorted. */
78
+ export function enumerateMutants(source, fileLabel) {
79
+ const excluded = excludedRanges(source);
80
+ const claimed = new Array(source.length).fill(false);
81
+ const mutants = [];
82
+ for (const [from, to] of OPERATOR_SUBSTITUTIONS) {
83
+ let pos = source.indexOf(from);
84
+ while (pos !== -1) {
85
+ const end = pos + from.length;
86
+ const overlapsClaim = claimed.slice(pos, end).some(Boolean);
87
+ const overlapsExcluded = excluded.slice(pos, end).some(Boolean);
88
+ // '=>' protection: never mutate the '>' of an arrow; '>=' handled by ordering
89
+ const isArrow = from === '>' && source[pos - 1] === '=';
90
+ // avoid '<=' / '>=' double-claim from the 1-char pass
91
+ const widerLeft = (from === '<' || from === '>') && (source[end] === '=' || source[pos - 1] === '<' || source[pos - 1] === '>');
92
+ if (!overlapsClaim && !overlapsExcluded && !isArrow && !widerLeft) {
93
+ for (let i = pos; i < end; i++)
94
+ claimed[i] = true;
95
+ mutants.push({
96
+ id: `${fileLabel}:${lineOf(source, pos)}:${pos}:${from}->${to}`,
97
+ index: pos,
98
+ from,
99
+ to,
100
+ line: lineOf(source, pos),
101
+ });
102
+ }
103
+ pos = source.indexOf(from, pos + 1);
104
+ }
105
+ }
106
+ return mutants.sort((a, b) => a.index - b.index);
107
+ }
108
+ /** Apply one mutant to the source text. */
109
+ export function applyMutant(source, mutant) {
110
+ return source.slice(0, mutant.index) + mutant.to + source.slice(mutant.index + mutant.from.length);
111
+ }
112
+ //# sourceMappingURL=mutator.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Agentic QE v3 - Seeded RNG for qe-arena (ADR-104)
3
+ *
4
+ * mulberry32 — tiny deterministic PRNG. Everything the arena randomizes
5
+ * (strategy subset sampling, mutant sampling, hill-climb flips) draws from
6
+ * one seeded stream so identical seeds reproduce identical tournaments.
7
+ * No Math.random()/Date.now() anywhere in scoring paths.
8
+ */
9
+ export type Rng = () => number;
10
+ export declare function mulberry32(seed: number): Rng;
11
+ /** Deterministic integer in [0, maxExclusive) */
12
+ export declare function nextInt(rng: Rng, maxExclusive: number): number;
13
+ /** Deterministic sample of k distinct items (order-stable Fisher-Yates prefix) */
14
+ export declare function sample<T>(rng: Rng, items: readonly T[], k: number): T[];
15
+ //# sourceMappingURL=rng.d.ts.map
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Agentic QE v3 - Seeded RNG for qe-arena (ADR-104)
3
+ *
4
+ * mulberry32 — tiny deterministic PRNG. Everything the arena randomizes
5
+ * (strategy subset sampling, mutant sampling, hill-climb flips) draws from
6
+ * one seeded stream so identical seeds reproduce identical tournaments.
7
+ * No Math.random()/Date.now() anywhere in scoring paths.
8
+ */
9
+ export function mulberry32(seed) {
10
+ let a = seed >>> 0;
11
+ return function () {
12
+ a |= 0;
13
+ a = (a + 0x6d2b79f5) | 0;
14
+ let t = Math.imul(a ^ (a >>> 15), 1 | a);
15
+ t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
16
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
17
+ };
18
+ }
19
+ /** Deterministic integer in [0, maxExclusive) */
20
+ export function nextInt(rng, maxExclusive) {
21
+ return Math.floor(rng() * maxExclusive);
22
+ }
23
+ /** Deterministic sample of k distinct items (order-stable Fisher-Yates prefix) */
24
+ export function sample(rng, items, k) {
25
+ const pool = [...items];
26
+ const out = [];
27
+ const n = Math.min(k, pool.length);
28
+ for (let i = 0; i < n; i++) {
29
+ const idx = nextInt(rng, pool.length);
30
+ out.push(pool.splice(idx, 1)[0]);
31
+ }
32
+ return out;
33
+ }
34
+ //# sourceMappingURL=rng.js.map