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
@@ -266,6 +266,61 @@ export async function persistTaskOutcome(opts) {
266
266
  db.pragma('busy_timeout = 60000');
267
267
  }
268
268
  catch { /* hook-side patient timeout (ADR-001 / patch 260) */ }
269
+ // Fresh-project fix (found by ADR-101 E2E): captured_experiences is created
270
+ // by the experience-capture middleware, not the unified schema — on a fresh
271
+ // .agentic-qe the whole Stream B transaction silently failed against the
272
+ // missing table. Same canonical DDL as experience-replay.ts ensureSchema.
273
+ // Fail-soft: an unexpected legacy shape must not kill the learning txn —
274
+ // the inserts below will surface real problems.
275
+ try {
276
+ db.exec(`
277
+ CREATE TABLE IF NOT EXISTS captured_experiences (
278
+ id TEXT PRIMARY KEY,
279
+ task TEXT NOT NULL,
280
+ agent TEXT NOT NULL,
281
+ domain TEXT NOT NULL DEFAULT '',
282
+ success INTEGER NOT NULL DEFAULT 0,
283
+ quality REAL NOT NULL DEFAULT 0.5,
284
+ duration_ms INTEGER NOT NULL DEFAULT 0,
285
+ model_tier INTEGER,
286
+ routing_json TEXT,
287
+ steps_json TEXT,
288
+ result_json TEXT,
289
+ error TEXT,
290
+ started_at TEXT NOT NULL DEFAULT (datetime('now')),
291
+ completed_at TEXT NOT NULL DEFAULT (datetime('now')),
292
+ source TEXT DEFAULT 'middleware',
293
+ application_count INTEGER DEFAULT 0,
294
+ avg_token_savings REAL DEFAULT 0,
295
+ embedding BLOB,
296
+ embedding_dimension INTEGER,
297
+ tags TEXT,
298
+ last_applied_at TEXT
299
+ );
300
+ CREATE TABLE IF NOT EXISTS experience_applications (
301
+ id TEXT PRIMARY KEY,
302
+ experience_id TEXT NOT NULL,
303
+ task TEXT NOT NULL,
304
+ success INTEGER NOT NULL,
305
+ tokens_saved INTEGER DEFAULT 0,
306
+ feedback TEXT,
307
+ applied_at TEXT DEFAULT (datetime('now')),
308
+ FOREIGN KEY (experience_id) REFERENCES captured_experiences(id) ON DELETE CASCADE
309
+ );
310
+ CREATE INDEX IF NOT EXISTS idx_exp_apps_experience ON experience_applications(experience_id);
311
+ `);
312
+ }
313
+ catch { /* legacy shape — inserts below report real failures */ }
314
+ // ADR-101 hotfix (v3.10.5 publish gate): qe_trajectories created by older
315
+ // versions (and minimal test fixtures) lacks metadata_json — naming it in
316
+ // the INSERT threw and aborted the whole transaction. Migrate in place.
317
+ try {
318
+ const trajCols = db.prepare(`PRAGMA table_info(qe_trajectories)`).all();
319
+ if (trajCols.length > 0 && !trajCols.some((c) => c.name === 'metadata_json')) {
320
+ db.exec(`ALTER TABLE qe_trajectories ADD COLUMN metadata_json TEXT`);
321
+ }
322
+ }
323
+ catch { /* fail-soft */ }
269
324
  const experienceId = `exp-${Date.now()}-${randomUUID().slice(0, 8)}`;
270
325
  const taskField = `${opts.agent}:${opts.taskId}`;
271
326
  const durationMs = opts.durationMs ?? 0;
@@ -394,11 +449,19 @@ export async function persistTaskOutcome(opts) {
394
449
  console.error(chalk.dim(`[hooks] post-task bridge: ${bridgeErr instanceof Error ? bridgeErr.message : 'unknown'}`));
395
450
  }
396
451
  // 5. Single-step qe_trajectories row
452
+ // ADR-101: nesting provenance lands in the metadata_json blob (stage 1 —
453
+ // no dedicated columns / schema migration)
397
454
  const trajId = `traj-${Date.now()}-${randomUUID().slice(0, 8)}`;
455
+ const provenanceJson = opts.parentAgentId !== undefined || opts.depth !== undefined
456
+ ? JSON.stringify({
457
+ ...(opts.parentAgentId !== undefined ? { parentAgentId: opts.parentAgentId } : {}),
458
+ ...(opts.depth !== undefined ? { depth: opts.depth } : {}),
459
+ })
460
+ : null;
398
461
  db.prepare(`
399
- INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json)
400
- VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?)
401
- `).run(trajId, taskField, opts.agent, opts.domain ?? 'general', opts.success ? 1 : 0, JSON.stringify([{ step: 1, task: opts.taskId, success: opts.success }]));
462
+ INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json, metadata_json)
463
+ VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?, ?)
464
+ `).run(trajId, taskField, opts.agent, opts.domain ?? 'general', opts.success ? 1 : 0, JSON.stringify([{ step: 1, task: opts.taskId, success: opts.success }]), provenanceJson);
402
465
  // 6. Multi-step stitch — siblings sharing the same suffix taskId in the
403
466
  // last hour. Only fires when ≥2 unconsolidated siblings exist.
404
467
  try {
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Agentic QE v3 - Nested-Subagent Provenance Validation (ADR-101)
3
+ *
4
+ * Parses and validates the `--parent-agent-id` / `--depth` flags on
5
+ * `aqe hooks post-task`. Anthropic announced nested subagent support
6
+ * (depth=5) on 2026-06-09; recording which agent spawned a task and at
7
+ * what depth lets ReasoningBank segment patterns per hierarchy level —
8
+ * useful today for flat depth-1 spawns, and ready for deep chains the
9
+ * day the upstream `Task` denylist lifts.
10
+ */
11
+ /** Defensive bound — well above Anthropic's announced depth=5 cap */
12
+ export declare const MAX_NESTING_DEPTH = 32;
13
+ export interface NestingProvenance {
14
+ parentAgentId?: string;
15
+ depth?: number;
16
+ }
17
+ export interface NestingProvenanceResult extends NestingProvenance {
18
+ /** Set when validation failed; the caller should reject the invocation */
19
+ error?: string;
20
+ }
21
+ /**
22
+ * Validate raw flag values. Both flags are optional and independent;
23
+ * depth=0 is a valid value (top-level) and must survive as 0, not be
24
+ * coerced to undefined.
25
+ */
26
+ export declare function parseNestingProvenance(parentAgentIdRaw?: string, depthRaw?: string | number): NestingProvenanceResult;
27
+ //# sourceMappingURL=nesting-provenance.d.ts.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Agentic QE v3 - Nested-Subagent Provenance Validation (ADR-101)
3
+ *
4
+ * Parses and validates the `--parent-agent-id` / `--depth` flags on
5
+ * `aqe hooks post-task`. Anthropic announced nested subagent support
6
+ * (depth=5) on 2026-06-09; recording which agent spawned a task and at
7
+ * what depth lets ReasoningBank segment patterns per hierarchy level —
8
+ * useful today for flat depth-1 spawns, and ready for deep chains the
9
+ * day the upstream `Task` denylist lifts.
10
+ */
11
+ /** Agent identifiers: alphanum start, then alphanum / _ . : - , max 128 chars */
12
+ const AGENT_ID_RE = /^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/;
13
+ /** Defensive bound — well above Anthropic's announced depth=5 cap */
14
+ export const MAX_NESTING_DEPTH = 32;
15
+ /**
16
+ * Validate raw flag values. Both flags are optional and independent;
17
+ * depth=0 is a valid value (top-level) and must survive as 0, not be
18
+ * coerced to undefined.
19
+ */
20
+ export function parseNestingProvenance(parentAgentIdRaw, depthRaw) {
21
+ const result = {};
22
+ if (parentAgentIdRaw !== undefined) {
23
+ if (!AGENT_ID_RE.test(parentAgentIdRaw)) {
24
+ return {
25
+ error: `Invalid --parent-agent-id "${parentAgentIdRaw}": must start with a letter or digit ` +
26
+ `and contain only letters, digits, "_", ".", ":", "-" (max 128 chars)`,
27
+ };
28
+ }
29
+ result.parentAgentId = parentAgentIdRaw;
30
+ }
31
+ if (depthRaw !== undefined) {
32
+ const depth = typeof depthRaw === 'number' ? depthRaw : Number(depthRaw);
33
+ if (!Number.isInteger(depth)) {
34
+ return { error: `Invalid --depth "${depthRaw}": must be an integer` };
35
+ }
36
+ if (depth < 0) {
37
+ return { error: `Invalid --depth ${depth}: must be >= 0` };
38
+ }
39
+ if (depth > MAX_NESTING_DEPTH) {
40
+ return { error: `Invalid --depth ${depth}: must be <= ${MAX_NESTING_DEPTH}` };
41
+ }
42
+ result.depth = depth;
43
+ }
44
+ return result;
45
+ }
46
+ //# sourceMappingURL=nesting-provenance.js.map
@@ -14,6 +14,7 @@ import { applyHookBusyTimeout, getHooksSystem, createHybridBackendWithTimeout, i
14
14
  import { ensureRoutingOutcomesAdr095Columns } from '../../../routing/routing-outcomes-migration.js';
15
15
  import { deriveTaskType } from '../../../learning/agent-routing.js';
16
16
  import { detectQEDomains } from '../../../learning/qe-patterns.js';
17
+ import { parseNestingProvenance } from './nesting-provenance.js';
17
18
  // ============================================================================
18
19
  // Constants — task-bridge / routing-quality / q-learning
19
20
  // ============================================================================
@@ -311,10 +312,24 @@ export function registerTaskHooks(hooks) {
311
312
  .option('--agent <name>', 'Agent that executed the task')
312
313
  .option('--duration <ms>', 'Task duration in milliseconds')
313
314
  .option('-d, --description <desc>', 'Task description — fallback Q-state source when pre-task bridge is absent (issue #499)')
315
+ .option('--parent-agent-id <id>', 'Agent that spawned this task (ADR-101 nesting provenance)')
316
+ .option('--depth <n>', 'Nesting depth of this task, 0 = top-level (ADR-101)')
314
317
  .option('--json', 'Output as JSON')
315
318
  .action(async (options) => {
316
319
  try {
317
320
  const success = options.success === 'true' || options.success === true;
321
+ // ADR-101: validate nesting provenance before any persistence
322
+ const provenance = parseNestingProvenance(options.parentAgentId, options.depth);
323
+ if (provenance.error) {
324
+ if (options.json) {
325
+ console.log(JSON.stringify({ success: false, error: provenance.error }));
326
+ }
327
+ else {
328
+ console.error(chalk.red(` ✗ ${provenance.error}`));
329
+ }
330
+ process.exitCode = 1;
331
+ return;
332
+ }
318
333
  // Initialize hooks system and record learning outcome
319
334
  // BUG FIX: Must call getHooksSystem() FIRST to initialize, not check state.initialized
320
335
  let patternsLearned = 0;
@@ -344,11 +359,15 @@ export function registerTaskHooks(hooks) {
344
359
  const effectiveTaskId = options.taskId || `hook-${Date.now()}`;
345
360
  const agent = options.agent || 'unknown';
346
361
  const durationMs = options.duration ? parseInt(options.duration, 10) : 0;
362
+ // ADR-101: provenance rides in the feedback string so the
363
+ // learning loop can segment patterns per hierarchy level
364
+ const provenanceSuffix = (provenance.parentAgentId ? `, Parent: ${provenance.parentAgentId}` : '') +
365
+ (provenance.depth !== undefined ? `, Depth: ${provenance.depth}` : '');
347
366
  await reasoningBank.recordOutcome({
348
367
  patternId: `task:${agent}:${effectiveTaskId}`,
349
368
  success,
350
369
  metrics: { executionTimeMs: durationMs },
351
- feedback: `Agent: ${agent}, Task: ${effectiveTaskId}`,
370
+ feedback: `Agent: ${agent}, Task: ${effectiveTaskId}${provenanceSuffix}`,
352
371
  });
353
372
  // Stream B: full experience pipeline (captured_experiences,
354
373
  // experience_applications + per-pattern fan-out, qe_trajectories
@@ -359,6 +378,8 @@ export function registerTaskHooks(hooks) {
359
378
  agent,
360
379
  durationMs,
361
380
  success,
381
+ parentAgentId: provenance.parentAgentId,
382
+ depth: provenance.depth,
362
383
  });
363
384
  // Issue #460: when --agent arrives empty (Claude Code does not
364
385
  // expose $TOOL_RESULT_agent_id in PostToolUse context), `agent`
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Agentic QE v3 - Tool-Loop Circuit Breaker (ADR-100)
3
+ *
4
+ * Detects consecutive failures of the same Bash command across hook
5
+ * invocations and breaks runaway retry loops: WARN at 3, BLOCK at 5.
6
+ * Advisory by default (the block is a strongly-worded recommendation in
7
+ * the hook output); `AQE_STRICT_TOOL_LOOP=1` upgrades the block to a
8
+ * PreToolUse deny.
9
+ *
10
+ * Mirrors the closed → open → half-open semantics of
11
+ * `src/coordination/circuit-breaker/domain-circuit-breaker.ts` (ADR-064),
12
+ * but persists state in a small JSON sidecar instead of process memory:
13
+ * every hook call is a fresh CLI process, so in-process state cannot see
14
+ * the previous invocation, and opening memory.db from pre-command would
15
+ * add DB-init latency to every Bash command. The sidecar is ephemeral
16
+ * guardrail state — safe to delete at any time, not a data store.
17
+ */
18
+ export type ToolLoopVerdict = 'allow' | 'warn' | 'block';
19
+ export interface ToolLoopCheck {
20
+ verdict: ToolLoopVerdict;
21
+ consecutiveFailures: number;
22
+ /** True when an open breaker is being given a probe attempt (half-open) */
23
+ halfOpen: boolean;
24
+ /** Human-readable guidance for warn/block verdicts */
25
+ hint?: string;
26
+ }
27
+ export interface ToolLoopGuardrailOptions {
28
+ /** Path of the JSON state sidecar */
29
+ statePath: string;
30
+ /** Consecutive failures before warning (default 3) */
31
+ warnThreshold?: number;
32
+ /** Consecutive failures before blocking (default 5) */
33
+ blockThreshold?: number;
34
+ /** An open breaker allows one probe attempt after this long (default 2 min) */
35
+ halfOpenAfterMs?: number;
36
+ /** Entries idle longer than this are pruned (default 30 min) */
37
+ staleAfterMs?: number;
38
+ }
39
+ export declare class ToolLoopGuardrail {
40
+ private readonly statePath;
41
+ private readonly warnThreshold;
42
+ private readonly blockThreshold;
43
+ private readonly halfOpenAfterMs;
44
+ private readonly staleAfterMs;
45
+ constructor(options: ToolLoopGuardrailOptions);
46
+ /**
47
+ * Normalize a command into a breaker key: whitespace-collapsed and
48
+ * length-capped so cosmetic differences don't split the failure count.
49
+ */
50
+ static signature(command: string): string;
51
+ /**
52
+ * Consult the breaker before a command runs (pre-command hook).
53
+ * Fail-open: any state-read problem yields 'allow'.
54
+ */
55
+ check(command: string, now?: number): ToolLoopCheck;
56
+ /**
57
+ * Record a command outcome (post-command hook). Success resets the
58
+ * breaker for that command; failure increments it. Fail-open on errors.
59
+ */
60
+ record(command: string, success: boolean, now?: number): void;
61
+ /** Whether strict mode upgrades the advisory block to a hook deny. */
62
+ static isStrict(env?: NodeJS.ProcessEnv): boolean;
63
+ private readState;
64
+ private writeState;
65
+ }
66
+ /**
67
+ * Guardrail bound to the project's `.agentic-qe/` directory — the shared
68
+ * instance used by the pre-command/post-command hooks.
69
+ */
70
+ export declare function createProjectToolLoopGuardrail(projectRoot: string): ToolLoopGuardrail;
71
+ //# sourceMappingURL=tool-loop-guardrail.d.ts.map
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Agentic QE v3 - Tool-Loop Circuit Breaker (ADR-100)
3
+ *
4
+ * Detects consecutive failures of the same Bash command across hook
5
+ * invocations and breaks runaway retry loops: WARN at 3, BLOCK at 5.
6
+ * Advisory by default (the block is a strongly-worded recommendation in
7
+ * the hook output); `AQE_STRICT_TOOL_LOOP=1` upgrades the block to a
8
+ * PreToolUse deny.
9
+ *
10
+ * Mirrors the closed → open → half-open semantics of
11
+ * `src/coordination/circuit-breaker/domain-circuit-breaker.ts` (ADR-064),
12
+ * but persists state in a small JSON sidecar instead of process memory:
13
+ * every hook call is a fresh CLI process, so in-process state cannot see
14
+ * the previous invocation, and opening memory.db from pre-command would
15
+ * add DB-init latency to every Bash command. The sidecar is ephemeral
16
+ * guardrail state — safe to delete at any time, not a data store.
17
+ */
18
+ import * as fs from 'fs';
19
+ import * as path from 'path';
20
+ export class ToolLoopGuardrail {
21
+ statePath;
22
+ warnThreshold;
23
+ blockThreshold;
24
+ halfOpenAfterMs;
25
+ staleAfterMs;
26
+ constructor(options) {
27
+ this.statePath = options.statePath;
28
+ this.warnThreshold = options.warnThreshold ?? 3;
29
+ this.blockThreshold = options.blockThreshold ?? 5;
30
+ this.halfOpenAfterMs = options.halfOpenAfterMs ?? 120_000;
31
+ this.staleAfterMs = options.staleAfterMs ?? 30 * 60_000;
32
+ }
33
+ /**
34
+ * Normalize a command into a breaker key: whitespace-collapsed and
35
+ * length-capped so cosmetic differences don't split the failure count.
36
+ */
37
+ static signature(command) {
38
+ return command.trim().replace(/\s+/g, ' ').slice(0, 200);
39
+ }
40
+ /**
41
+ * Consult the breaker before a command runs (pre-command hook).
42
+ * Fail-open: any state-read problem yields 'allow'.
43
+ */
44
+ check(command, now = Date.now()) {
45
+ const sig = ToolLoopGuardrail.signature(command);
46
+ if (!sig) {
47
+ return { verdict: 'allow', consecutiveFailures: 0, halfOpen: false };
48
+ }
49
+ const entry = this.readState()[sig];
50
+ if (!entry || entry.consecutiveFailures < this.warnThreshold) {
51
+ return { verdict: 'allow', consecutiveFailures: entry?.consecutiveFailures ?? 0, halfOpen: false };
52
+ }
53
+ const failures = entry.consecutiveFailures;
54
+ if (failures >= this.blockThreshold) {
55
+ // Open breaker: allow a single probe once the half-open window elapses
56
+ if (now - entry.lastFailureAt >= this.halfOpenAfterMs) {
57
+ return {
58
+ verdict: 'warn',
59
+ consecutiveFailures: failures,
60
+ halfOpen: true,
61
+ hint: `This command has failed ${failures}x consecutively; allowing one probe attempt. ` +
62
+ `If it fails again it will be flagged immediately.`,
63
+ };
64
+ }
65
+ return {
66
+ verdict: 'block',
67
+ consecutiveFailures: failures,
68
+ halfOpen: false,
69
+ hint: `The same command failed ${failures}x consecutively. Re-running it unchanged is ` +
70
+ `unlikely to succeed — inspect the error output, change the approach, or fix the ` +
71
+ `underlying problem first. (A successful run resets this breaker.)`,
72
+ };
73
+ }
74
+ return {
75
+ verdict: 'warn',
76
+ consecutiveFailures: failures,
77
+ halfOpen: false,
78
+ hint: `This command has failed ${failures}x consecutively — consider changing approach before retrying.`,
79
+ };
80
+ }
81
+ /**
82
+ * Record a command outcome (post-command hook). Success resets the
83
+ * breaker for that command; failure increments it. Fail-open on errors.
84
+ */
85
+ record(command, success, now = Date.now()) {
86
+ const sig = ToolLoopGuardrail.signature(command);
87
+ if (!sig)
88
+ return;
89
+ try {
90
+ const state = this.readState();
91
+ if (success) {
92
+ if (state[sig]) {
93
+ delete state[sig];
94
+ this.writeState(state, now);
95
+ }
96
+ return;
97
+ }
98
+ const entry = state[sig] ?? { consecutiveFailures: 0, lastFailureAt: now };
99
+ entry.consecutiveFailures += 1;
100
+ entry.lastFailureAt = now;
101
+ state[sig] = entry;
102
+ this.writeState(state, now);
103
+ }
104
+ catch {
105
+ /* fail-open: guardrail must never break the hook */
106
+ }
107
+ }
108
+ /** Whether strict mode upgrades the advisory block to a hook deny. */
109
+ static isStrict(env = process.env) {
110
+ return env.AQE_STRICT_TOOL_LOOP === '1' || env.AQE_STRICT_TOOL_LOOP === 'true';
111
+ }
112
+ readState() {
113
+ try {
114
+ const raw = fs.readFileSync(this.statePath, 'utf8');
115
+ const parsed = JSON.parse(raw);
116
+ return typeof parsed === 'object' && parsed !== null ? parsed : {};
117
+ }
118
+ catch {
119
+ return {}; // missing or corrupt sidecar → clean slate
120
+ }
121
+ }
122
+ writeState(state, now) {
123
+ // Prune stale entries so the sidecar stays small
124
+ for (const [key, entry] of Object.entries(state)) {
125
+ if (now - entry.lastFailureAt > this.staleAfterMs) {
126
+ delete state[key];
127
+ }
128
+ }
129
+ fs.mkdirSync(path.dirname(this.statePath), { recursive: true });
130
+ fs.writeFileSync(this.statePath, JSON.stringify(state));
131
+ }
132
+ }
133
+ /**
134
+ * Guardrail bound to the project's `.agentic-qe/` directory — the shared
135
+ * instance used by the pre-command/post-command hooks.
136
+ */
137
+ export function createProjectToolLoopGuardrail(projectRoot) {
138
+ return new ToolLoopGuardrail({
139
+ statePath: path.join(projectRoot, '.agentic-qe', 'tool-loop-state.json'),
140
+ });
141
+ }
142
+ //# sourceMappingURL=tool-loop-guardrail.js.map
package/dist/cli/index.js CHANGED
@@ -120,6 +120,18 @@ async function autoInitialize() {
120
120
  context.persistentScheduler = createPersistentScheduler();
121
121
  context.queen = createQueenCoordinator(context.kernel, context.router, protocolExecutor, undefined);
122
122
  await context.queen.initialize();
123
+ // Bridge the CLI-initialized components into the MCP handlers' fleet state.
124
+ // The memory/agent/task/team/pipeline handlers are shared between the MCP
125
+ // server and the CLI and are guarded by isFleetInitialized(); without this
126
+ // bridge every CLI invocation failed with "Fleet not initialized" even
127
+ // after a successful auto-init (MCP-CLI parity).
128
+ const { adoptExternalFleet } = await import('../mcp/handlers/core-handlers.js');
129
+ adoptExternalFleet({
130
+ kernel: context.kernel,
131
+ queen: context.queen,
132
+ router: context.router,
133
+ workflowOrchestrator: context.workflowOrchestrator,
134
+ });
123
135
  context.initialized = true;
124
136
  }
125
137
  async function ensureInitializedStrict() {
@@ -241,6 +253,11 @@ registerLazyCommand(program, {
241
253
  description: 'Security scanning and URL validation',
242
254
  factory: () => import('./commands/security.js').then(m => m.createSecurityCommand(context, cleanupAndExit, ensureInitialized)),
243
255
  });
256
+ registerLazyCommand(program, {
257
+ name: 'arena',
258
+ description: 'Competitive test-strategy tournaments (ADR-104)',
259
+ factory: () => import('./commands/arena.js').then(m => m.createArenaCommand(context, cleanupAndExit, ensureInitialized)),
260
+ });
244
261
  registerLazyCommand(program, {
245
262
  name: 'code',
246
263
  description: 'Code intelligence analysis',