agentic-qe 3.11.5 → 3.12.0

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 (369) hide show
  1. package/.claude/helpers/.helpers-version +1 -0
  2. package/.claude/helpers/auto-memory-hook.mjs +35 -3
  3. package/.claude/helpers/brain-checkpoint.cjs +16 -1
  4. package/.claude/helpers/helpers.manifest.json +12 -0
  5. package/.claude/helpers/hook-handler.cjs +26 -5
  6. package/.claude/helpers/intelligence.cjs +14 -1
  7. package/.claude/hooks/aqe-hook.cjs +14 -1
  8. package/.claude/skills/skills-manifest.json +1 -1
  9. package/CHANGELOG.md +52 -0
  10. package/assets/skills/skills-manifest.json +1 -1
  11. package/dist/adapters/a2a/auth/routes.js +59 -28
  12. package/dist/cli/bundle.js +6 -6
  13. package/dist/cli/chunks/adapter-6IWRIHF3.js +2 -0
  14. package/dist/cli/chunks/{agent-booster-wasm-CSTBLNYZ.js → agent-booster-wasm-IO54X6IQ.js} +2 -2
  15. package/dist/cli/chunks/{agent-handler-M4W4GTXN.js → agent-handler-A57SZUCW.js} +2 -2
  16. package/dist/cli/chunks/{agent-memory-branch-VGXFYLSQ.js → agent-memory-branch-BX7LRFGN.js} +2 -2
  17. package/dist/cli/chunks/aqe-learning-engine-FSF5U67K.js +2 -0
  18. package/dist/cli/chunks/{arena-FKSD3LLM.js → arena-UTC4YY6Y.js} +4 -4
  19. package/dist/cli/chunks/{arena-IQBRGWAG.js → arena-Y3XTX6O7.js} +2 -2
  20. package/dist/cli/chunks/{audit-7NSGRR4Z.js → audit-L4RL2AOY.js} +3 -3
  21. package/dist/cli/chunks/base-2CKCJU3O.js +2 -0
  22. package/dist/cli/chunks/{hnswlib-node-E6NSZPP2.js → better-sqlite3-LRDXKYOJ.js} +2 -2
  23. package/dist/cli/chunks/{brain-handler-M6A3UB66.js → brain-handler-OHDPI5TQ.js} +3 -3
  24. package/dist/cli/chunks/{branch-enumerator-2JGKY4BB.js → branch-enumerator-ZRXE2CQ7.js} +2 -2
  25. package/dist/cli/chunks/{browser-J43WQPJL.js → browser-NT33FG76.js} +2 -2
  26. package/dist/cli/chunks/browser-workflow-UGYJE64S.js +2 -0
  27. package/dist/cli/chunks/{chunk-JDSHUECG.js → chunk-27JCWG5J.js} +2 -2
  28. package/dist/cli/chunks/{chunk-B2VBDMDI.js → chunk-2ALNNXFF.js} +2 -2
  29. package/dist/cli/chunks/{chunk-SK754ZSH.js → chunk-2AOOIAW3.js} +4 -4
  30. package/dist/cli/chunks/{chunk-ZG5UAEEO.js → chunk-2AR4B3DI.js} +2 -2
  31. package/dist/cli/chunks/{chunk-GODAWJMZ.js → chunk-2KHDGC7N.js} +2 -2
  32. package/dist/cli/chunks/{chunk-YZSTZUGJ.js → chunk-2UMCB7AH.js} +1 -1
  33. package/dist/cli/chunks/{chunk-Q5TR6ETB.js → chunk-335GHVJV.js} +3 -3
  34. package/dist/cli/chunks/{chunk-UBI2EOS3.js → chunk-36MPDANH.js} +1 -1
  35. package/dist/cli/chunks/{chunk-C4EZNOWK.js → chunk-3AFNXU45.js} +1 -1
  36. package/dist/cli/chunks/{chunk-7YSBATSN.js → chunk-3B4XXFKD.js} +2 -2
  37. package/dist/cli/chunks/{chunk-DPL762HU.js → chunk-4GU656WM.js} +1 -1
  38. package/dist/cli/chunks/{chunk-I3NWKPXJ.js → chunk-4SALW7OT.js} +2 -2
  39. package/dist/cli/chunks/{chunk-7BCRULCP.js → chunk-5FR5GBUT.js} +2 -2
  40. package/dist/cli/chunks/{chunk-4XJ2A3HY.js → chunk-5VBPIJUZ.js} +4 -4
  41. package/dist/cli/chunks/chunk-5XFX25AJ.js +4 -0
  42. package/dist/cli/chunks/{chunk-UORTQXJ2.js → chunk-5YGESYBC.js} +1 -1
  43. package/dist/cli/chunks/{chunk-ABU64UWB.js → chunk-62RELCU6.js} +1 -1
  44. package/dist/cli/chunks/{chunk-2XQHG56O.js → chunk-64M3FFM4.js} +2 -2
  45. package/dist/cli/chunks/{chunk-K4I7UIU5.js → chunk-6JNNZGI2.js} +1 -1
  46. package/dist/cli/chunks/{chunk-XT4TDLOB.js → chunk-6X3RJBA3.js} +2 -2
  47. package/dist/cli/chunks/{chunk-JATLFS6A.js → chunk-72VZGAMJ.js} +1 -1
  48. package/dist/cli/chunks/{chunk-AGJOGUP5.js → chunk-7F7U2HUH.js} +1 -1
  49. package/dist/cli/chunks/{chunk-ZPP57WQU.js → chunk-7HJHXSYT.js} +2 -2
  50. package/dist/cli/chunks/{chunk-6T65OKUM.js → chunk-7WX3MKRS.js} +2 -2
  51. package/dist/cli/chunks/{chunk-5WMU7XCF.js → chunk-7ZIVDGSN.js} +1 -1
  52. package/dist/cli/chunks/{chunk-M6FW56MV.js → chunk-AAATFEIL.js} +2 -2
  53. package/dist/cli/chunks/{chunk-2XPMATEK.js → chunk-AEX75YGI.js} +2 -2
  54. package/dist/cli/chunks/chunk-BA6U7NSR.js +2 -0
  55. package/dist/cli/chunks/{chunk-4QOI5JS7.js → chunk-BB4OVXWF.js} +1 -1
  56. package/dist/cli/chunks/{chunk-K4C25BWV.js → chunk-BBC526PL.js} +2 -2
  57. package/dist/cli/chunks/{chunk-354367AP.js → chunk-BGRJZH5Q.js} +2 -2
  58. package/dist/cli/chunks/{chunk-7KXPNNMR.js → chunk-BUYPRUNY.js} +2 -2
  59. package/dist/cli/chunks/{chunk-O7J54OHN.js → chunk-BZPF6GTL.js} +1 -1
  60. package/dist/cli/chunks/{chunk-NCSXLMDL.js → chunk-C4SZSPXY.js} +2 -2
  61. package/dist/cli/chunks/{chunk-YBPLJRVT.js → chunk-C6GYLCTX.js} +2 -2
  62. package/dist/cli/chunks/{chunk-53YOYZW5.js → chunk-CC5G3K4X.js} +2 -2
  63. package/dist/cli/chunks/{chunk-UBY322ED.js → chunk-CHO54B34.js} +2 -2
  64. package/dist/cli/chunks/{chunk-EK3HPH6A.js → chunk-CMGYUCM7.js} +1 -1
  65. package/dist/cli/chunks/{chunk-W72FJA2H.js → chunk-CSEEGX5T.js} +2 -2
  66. package/dist/cli/chunks/{chunk-OS2HHJTM.js → chunk-CVGXB7IX.js} +2 -2
  67. package/dist/cli/chunks/{chunk-SE3JFUKP.js → chunk-DQDFACYW.js} +1 -1
  68. package/dist/cli/chunks/chunk-DR7PCO3S.js +153 -0
  69. package/dist/cli/chunks/{chunk-4MHN7JWC.js → chunk-DTOE3NYW.js} +2 -2
  70. package/dist/cli/chunks/{chunk-FGD6HINU.js → chunk-DXOMRWDC.js} +1 -1
  71. package/dist/cli/chunks/{chunk-3V36WMIO.js → chunk-EGH3H7QO.js} +1 -1
  72. package/dist/cli/chunks/{chunk-52U5BFZP.js → chunk-EM2JIIAQ.js} +2 -2
  73. package/dist/cli/chunks/{chunk-ZLBY25MB.js → chunk-ESDGCTC4.js} +1 -1
  74. package/dist/cli/chunks/{chunk-MTBGOWJA.js → chunk-EZE2HRQB.js} +2 -2
  75. package/dist/cli/chunks/{chunk-KVVJVMDM.js → chunk-FEEMJDUF.js} +2 -2
  76. package/dist/cli/chunks/{chunk-JBKZ5TUM.js → chunk-FI5SSLEF.js} +2 -2
  77. package/dist/cli/chunks/{chunk-J5XDKVI7.js → chunk-FKPUPQQT.js} +2 -2
  78. package/dist/cli/chunks/{chunk-URP75DL4.js → chunk-FOPS6DRZ.js} +1 -1
  79. package/dist/cli/chunks/{chunk-GW6XWMX2.js → chunk-FU5RNEXV.js} +2 -2
  80. package/dist/cli/chunks/{chunk-3JF5A72M.js → chunk-FZIHOMGY.js} +2 -2
  81. package/dist/cli/chunks/{chunk-AOQYORVA.js → chunk-FZRU73M4.js} +2 -2
  82. package/dist/cli/chunks/{chunk-MEIU7457.js → chunk-G5JQLUUO.js} +2 -2
  83. package/dist/cli/chunks/{chunk-MHMQ6MCT.js → chunk-G6LR7FK7.js} +2 -2
  84. package/dist/cli/chunks/{chunk-J6PFPY7V.js → chunk-G6RKUEGL.js} +2 -2
  85. package/dist/cli/chunks/{chunk-EEKG35K5.js → chunk-GCF42L7M.js} +3 -3
  86. package/dist/cli/chunks/{chunk-OS62Y77J.js → chunk-GGMQOEZZ.js} +2 -2
  87. package/dist/cli/chunks/{chunk-QKK7VBVB.js → chunk-HAEUPIKW.js} +2 -2
  88. package/dist/cli/chunks/{chunk-4RTWPR3X.js → chunk-HDJMD6UH.js} +1 -1
  89. package/dist/cli/chunks/{chunk-EDOGRFAG.js → chunk-HW62TB4T.js} +1 -1
  90. package/dist/cli/chunks/{chunk-LOE2JETO.js → chunk-I6WHYRWB.js} +2 -2
  91. package/dist/cli/chunks/{chunk-VMFAANWX.js → chunk-ICK3B24H.js} +2 -2
  92. package/dist/cli/chunks/{chunk-C5C4W572.js → chunk-IDLNLSQI.js} +2 -2
  93. package/dist/cli/chunks/{chunk-PVDXNQPL.js → chunk-IJUYHIKN.js} +2 -2
  94. package/dist/cli/chunks/{chunk-3WR35GFF.js → chunk-IKVNYK7Y.js} +2 -2
  95. package/dist/cli/chunks/{chunk-62OTU2AP.js → chunk-JOBCMNTP.js} +2 -2
  96. package/dist/cli/chunks/{chunk-BJLA2IX7.js → chunk-JYX7AZHE.js} +2 -2
  97. package/dist/cli/chunks/{chunk-6Q57K4YD.js → chunk-JYXSVSH2.js} +2 -2
  98. package/dist/cli/chunks/{chunk-CKOF27L7.js → chunk-K5SN66B4.js} +2 -2
  99. package/dist/cli/chunks/{chunk-PW72M2FE.js → chunk-KDLYTJ5C.js} +2 -2
  100. package/dist/cli/chunks/{chunk-4LODYRNV.js → chunk-KI5BP4X5.js} +2 -2
  101. package/dist/cli/chunks/{chunk-CDJP6COA.js → chunk-KJWQ7ENF.js} +2 -2
  102. package/dist/cli/chunks/{chunk-FII3WCCY.js → chunk-KN5GOEYK.js} +2 -2
  103. package/dist/cli/chunks/{chunk-7DTMENY6.js → chunk-KZ37VHMJ.js} +2 -2
  104. package/dist/cli/chunks/{chunk-I3ANRYQ6.js → chunk-KZMRU7DL.js} +2 -2
  105. package/dist/cli/chunks/{chunk-YFCULQBP.js → chunk-L5ZLOW3K.js} +2 -2
  106. package/dist/cli/chunks/{chunk-37ZUF5NX.js → chunk-LMJUQWR7.js} +1 -1
  107. package/dist/cli/chunks/{chunk-HJWT4KME.js → chunk-MBF3Q7FQ.js} +1 -1
  108. package/dist/cli/chunks/chunk-MDT3LIXS.js +2 -0
  109. package/dist/cli/chunks/{chunk-3LY7OCSO.js → chunk-MJPYNGZ7.js} +1 -1
  110. package/dist/cli/chunks/{chunk-SO6G4IX3.js → chunk-MK3J7JVZ.js} +2 -2
  111. package/dist/cli/chunks/{chunk-VN2HHBZN.js → chunk-MUAHFGIX.js} +2 -2
  112. package/dist/cli/chunks/{chunk-6R3YOAKO.js → chunk-MUV56BPK.js} +2 -2
  113. package/dist/cli/chunks/{chunk-XLT3FYS7.js → chunk-NLHISTL2.js} +2 -2
  114. package/dist/cli/chunks/{chunk-26WEI3P4.js → chunk-NNGCUJWQ.js} +2 -2
  115. package/dist/cli/chunks/{chunk-W7TYKPLY.js → chunk-NW7G57NR.js} +2 -2
  116. package/dist/cli/chunks/{chunk-Y6DWJKHU.js → chunk-O3C5RRDQ.js} +3 -3
  117. package/dist/cli/chunks/{chunk-TEIWJ3GJ.js → chunk-OHSVDMF7.js} +1 -1
  118. package/dist/cli/chunks/{chunk-KP3R2M2G.js → chunk-OPIWFXME.js} +1 -1
  119. package/dist/cli/chunks/{chunk-FGSIID5C.js → chunk-P52YORQG.js} +2 -2
  120. package/dist/cli/chunks/chunk-PM566XEO.js +2 -0
  121. package/dist/cli/chunks/chunk-POKMJTD2.js +2 -0
  122. package/dist/cli/chunks/{chunk-HC6KTVFR.js → chunk-PQMLIVGV.js} +2 -2
  123. package/dist/cli/chunks/{chunk-RJN2RM76.js → chunk-PT3FTGKZ.js} +2 -2
  124. package/dist/cli/chunks/{chunk-ZXEWTZFR.js → chunk-Q5YRPS4P.js} +1 -1
  125. package/dist/cli/chunks/{chunk-AL5VJJN4.js → chunk-QJ6H2HQQ.js} +1 -1
  126. package/dist/cli/chunks/{chunk-AXKWV5NF.js → chunk-RG552ROA.js} +3 -3
  127. package/dist/cli/chunks/{chunk-RKXZLTWR.js → chunk-RHC7TFPU.js} +2 -2
  128. package/dist/cli/chunks/{chunk-RFLHPLET.js → chunk-RMFRFING.js} +1 -1
  129. package/dist/cli/chunks/{chunk-WMZ2QGGS.js → chunk-RQN4HWGV.js} +2 -2
  130. package/dist/cli/chunks/{chunk-3I4TCMOJ.js → chunk-RYUSZ43T.js} +1 -1
  131. package/dist/cli/chunks/{chunk-BTLUWH4R.js → chunk-RZDNCTOA.js} +2 -2
  132. package/dist/cli/chunks/chunk-SCMXIBI7.js +2 -0
  133. package/dist/cli/chunks/{chunk-FMNXHVIN.js → chunk-SPEUF7ZL.js} +2 -2
  134. package/dist/cli/chunks/{chunk-IU5RSN6M.js → chunk-SSXAW3ER.js} +2 -2
  135. package/dist/cli/chunks/{chunk-WPSK237F.js → chunk-TC2JE5OK.js} +3 -3
  136. package/dist/cli/chunks/{chunk-DFRRWOEX.js → chunk-TED4KOSK.js} +2 -2
  137. package/dist/cli/chunks/{chunk-SUL3I6QZ.js → chunk-TJ6N4CCX.js} +2 -2
  138. package/dist/cli/chunks/{chunk-Y25PO65W.js → chunk-TJEJ4UVX.js} +2 -2
  139. package/dist/cli/chunks/{chunk-G2ZIJZJ7.js → chunk-TO5PQSDD.js} +2 -2
  140. package/dist/cli/chunks/{chunk-MMEXHZUC.js → chunk-TR5GOGH3.js} +5 -5
  141. package/dist/cli/chunks/{chunk-OGNTCZKK.js → chunk-UGJQJSPB.js} +1 -1
  142. package/dist/cli/chunks/{chunk-AF6P5RWY.js → chunk-USB44IHJ.js} +2 -2
  143. package/dist/cli/chunks/{chunk-DLBVADWQ.js → chunk-UUOXV3NS.js} +42 -42
  144. package/dist/cli/chunks/chunk-UVVKFBF7.js +2 -0
  145. package/dist/cli/chunks/{chunk-FIPKIIMS.js → chunk-V2MD5EDD.js} +2 -2
  146. package/dist/cli/chunks/{chunk-DVW66FPU.js → chunk-VA7TEOPM.js} +1 -1
  147. package/dist/cli/chunks/{chunk-MCHEUSY4.js → chunk-VMP4M5PB.js} +1 -1
  148. package/dist/cli/chunks/{chunk-4Y3LGBKJ.js → chunk-VS4GMNJK.js} +3 -3
  149. package/dist/cli/chunks/{chunk-XKQY2Z3Q.js → chunk-VWJSWXHG.js} +1 -1
  150. package/dist/cli/chunks/{chunk-LPR2R3AN.js → chunk-VZ67ZDB3.js} +3 -3
  151. package/dist/cli/chunks/{chunk-TTJJ4DQE.js → chunk-W2OMW6UU.js} +2 -2
  152. package/dist/cli/chunks/{chunk-62UM7Q5N.js → chunk-W766S4SK.js} +1 -1
  153. package/dist/cli/chunks/{chunk-7P6X4BFO.js → chunk-WJYTLRA5.js} +3 -3
  154. package/dist/cli/chunks/{chunk-AOXJFDH5.js → chunk-WNASEUBW.js} +10 -10
  155. package/dist/cli/chunks/{chunk-YGVDP6X7.js → chunk-WT4ZDDFM.js} +1 -1
  156. package/dist/cli/chunks/{chunk-IBDQWKI3.js → chunk-XEYW3V5I.js} +2 -2
  157. package/dist/cli/chunks/{chunk-BLPWJQTY.js → chunk-XIFPIVZI.js} +2 -2
  158. package/dist/cli/chunks/{chunk-D45QLJEL.js → chunk-Y2MCIIJD.js} +1 -1
  159. package/dist/cli/chunks/{chunk-WHHQIL4F.js → chunk-YKOTOCO6.js} +2 -2
  160. package/dist/cli/chunks/{chunk-TRNBQFFG.js → chunk-Z3W3R4CW.js} +2 -2
  161. package/dist/cli/chunks/{chunk-KQVIWE3W.js → chunk-ZT2WHCVM.js} +2 -2
  162. package/dist/cli/chunks/{chunk-TBT3OFRW.js → chunk-ZVPAFX4I.js} +2 -2
  163. package/dist/cli/chunks/{chunk-VMWRMINE.js → chunk-ZWC6CM4R.js} +1 -1
  164. package/dist/cli/chunks/{ci-CBNVLOOQ.js → ci-RJH5LAL3.js} +2 -2
  165. package/dist/cli/chunks/{ci-output-I4HY2FYJ.js → ci-output-62SGMGB2.js} +2 -2
  166. package/dist/cli/chunks/{circuit-breaker-5VRBKGWL.js → circuit-breaker-QXTS5ZAW.js} +2 -2
  167. package/dist/cli/chunks/{claude-flow-setup-XPJPKHIO.js → claude-flow-setup-BBCCT5WV.js} +2 -2
  168. package/dist/cli/chunks/client-E2XUBCLK.js +2 -0
  169. package/dist/cli/chunks/{cline-installer-OFRDUUWZ.js → cline-installer-IZCUJJ3I.js} +2 -2
  170. package/dist/cli/chunks/{code-QIZQVB3E.js → code-AWNVOZ7S.js} +2 -2
  171. package/dist/cli/chunks/{code-index-extractor-LMUUWEX4.js → code-index-extractor-MX65BKMI.js} +2 -2
  172. package/dist/cli/chunks/{codex-installer-N2MKIZ2S.js → codex-installer-EQT6JVLM.js} +2 -2
  173. package/dist/cli/chunks/{completions-Y36S3C5J.js → completions-WOJAM45W.js} +2 -2
  174. package/dist/cli/chunks/{complexity-analyzer-73YS3WUD.js → complexity-analyzer-3DJB7V3K.js} +2 -2
  175. package/dist/cli/chunks/{continuedev-installer-SAOTP6J3.js → continuedev-installer-P4KWUTCJ.js} +2 -2
  176. package/dist/cli/chunks/{copilot-installer-A4HXF6HE.js → copilot-installer-FFZWTMWQ.js} +2 -2
  177. package/dist/cli/chunks/core-handlers-46Z5VOO6.js +2 -0
  178. package/dist/cli/chunks/{cost-tracker-P26XUVZS.js → cost-tracker-CYBOV3NI.js} +2 -2
  179. package/dist/cli/chunks/{coverage-HVNHSMVJ.js → coverage-GTZJBSC4.js} +3 -3
  180. package/dist/cli/chunks/cross-domain-router-SXQ3HFRY.js +2 -0
  181. package/dist/cli/chunks/{cursor-installer-46BQFTYZ.js → cursor-installer-WZIVXGGB.js} +2 -2
  182. package/dist/cli/chunks/{daemon-YE7K2AZF.js → daemon-JWMHEJEN.js} +4 -4
  183. package/dist/cli/chunks/{daemon-Y54O3FLT.js → daemon-MSFN2LXY.js} +3 -3
  184. package/dist/cli/chunks/{dag-attention-scheduler-ETA7YY52.js → dag-attention-scheduler-4TWOTTQE.js} +2 -2
  185. package/dist/cli/chunks/{detect-5WLQ2J3E.js → detect-YZ6AGQPB.js} +2 -2
  186. package/dist/cli/chunks/{dist-node-45WW6I7J.js → dist-node-3EM2XH54.js} +2 -2
  187. package/dist/cli/chunks/{domain-handler-J7DQV74M.js → domain-handler-4XU5BINU.js} +2 -2
  188. package/dist/cli/chunks/{domain-transfer-GD2EGQVR.js → domain-transfer-HUFC7I52.js} +2 -2
  189. package/dist/cli/chunks/dream-R6MQQQ3N.js +2 -0
  190. package/dist/cli/chunks/{embed-and-insert-pattern-JELNEA2D.js → embed-and-insert-pattern-J5ZFM6YX.js} +2 -2
  191. package/dist/cli/chunks/{eval-A4PA5G2U.js → eval-XYOA3EH2.js} +2 -2
  192. package/dist/cli/chunks/{experience-capture-middleware-MLHTYWTA.js → experience-capture-middleware-E3RYQB6Z.js} +3 -3
  193. package/dist/cli/chunks/{fast-paths-QYDTITRV.js → fast-paths-DKIYN2YS.js} +2 -2
  194. package/dist/cli/chunks/{feature-flags-MQYYRHIK.js → feature-flags-S2RNZATS.js} +2 -2
  195. package/dist/cli/chunks/{feature-flags-H4MSY26Z.js → feature-flags-ZB63Z7N5.js} +2 -2
  196. package/dist/cli/chunks/{file-discovery-RMFVJNGL.js → file-discovery-USJJLYQU.js} +2 -2
  197. package/dist/cli/chunks/{fleet-7KZQOTAC.js → fleet-4MUPHSF5.js} +3 -3
  198. package/dist/cli/chunks/{gnn-wrapper-NMZFTGVH.js → gnn-wrapper-PYOQZKX6.js} +2 -2
  199. package/dist/cli/chunks/{heartbeat-handler-7BQDK7MG.js → heartbeat-handler-HLO5XCG7.js} +4 -4
  200. package/dist/cli/chunks/heartbeat-scheduler-OSDPJT6A.js +2 -0
  201. package/dist/cli/chunks/hnsw-adapter-KMGSHBIN.js +2 -0
  202. package/dist/cli/chunks/hnsw-index-IMFRAOPE.js +2 -0
  203. package/dist/cli/chunks/{hnsw-legacy-bridge-TPPGBPKF.js → hnsw-legacy-bridge-FZEH2KLM.js} +2 -2
  204. package/dist/cli/chunks/{better-sqlite3-2KR4LQRU.js → hnswlib-node-VS6L5VUG.js} +2 -2
  205. package/dist/cli/chunks/{hooks-CYZIUYSH.js → hooks-R2757K57.js} +10 -10
  206. package/dist/cli/chunks/hybrid-router-57QSWSWC.js +2 -0
  207. package/dist/cli/chunks/{hypergraph-engine-WC6DMTYQ.js → hypergraph-engine-EAV3GJ5D.js} +2 -2
  208. package/dist/cli/chunks/{hypergraph-handler-GTGA3TXJ.js → hypergraph-handler-5ERXAVGH.js} +3 -3
  209. package/dist/cli/chunks/impact-analyzer-OC4MPBGA.js +2 -0
  210. package/dist/cli/chunks/{init-handler-N3Z72JNI.js → init-handler-RXUSEMG7.js} +6 -6
  211. package/dist/cli/chunks/init-wizard-CDBRL4PO.js +2 -0
  212. package/dist/cli/chunks/kernel-CQ7R3AAV.js +2 -0
  213. package/dist/cli/chunks/{kilocode-installer-FUX4V6II.js → kilocode-installer-ZUBVBHGT.js} +2 -2
  214. package/dist/cli/chunks/{kiro-installer-ZSNZT7ZR.js → kiro-installer-TRTRQDGL.js} +2 -2
  215. package/dist/cli/chunks/knowledge-graph-UXNH7RY4.js +2 -0
  216. package/dist/cli/chunks/{learning-UQY64COU.js → learning-UYXWAU5D.js} +3 -3
  217. package/dist/cli/chunks/{llm-router-CMHGGX6N.js → llm-router-TB5OJPEV.js} +4 -4
  218. package/dist/cli/chunks/llm-router-service-UV34YXBE.js +2 -0
  219. package/dist/cli/chunks/{load-E6WH4QN2.js → load-ELPSUIPV.js} +2 -2
  220. package/dist/cli/chunks/load-test-2VEN3PQZ.js +2 -0
  221. package/dist/cli/chunks/{mcp-UM5VTW6N.js → mcp-UX7TK3XV.js} +2 -2
  222. package/dist/cli/chunks/{memory-7Q3XDUE5.js → memory-W3LG6H6N.js} +5 -5
  223. package/dist/cli/chunks/memory-backend-TZL5U6F3.js +2 -0
  224. package/dist/cli/chunks/memory-handlers-BNXAYS2P.js +2 -0
  225. package/dist/cli/chunks/{multi-model-executor-LZENWVRR.js → multi-model-executor-227LWZRY.js} +2 -2
  226. package/dist/cli/chunks/{opencode-installer-O2JAIPLF.js → opencode-installer-F4WKVWDL.js} +2 -2
  227. package/dist/cli/chunks/{orchestrator-DKZWXDRI.js → orchestrator-V4DBMGK6.js} +5 -5
  228. package/dist/cli/chunks/pattern-null-store-KLX2RNHM.js +2 -0
  229. package/dist/cli/chunks/{pattern-usage-recorder-CLUL4M55.js → pattern-usage-recorder-BY3HEWSU.js} +2 -2
  230. package/dist/cli/chunks/{pipeline-2VDLTR5J.js → pipeline-3F5RIESX.js} +2 -2
  231. package/dist/cli/chunks/{platform-4N4Q5XYX.js → platform-KCGXTZO3.js} +2 -2
  232. package/dist/cli/chunks/{plugin-GY5AU5CS.js → plugin-2H552KOV.js} +2 -2
  233. package/dist/cli/chunks/{prime-radiant-advanced-wasm-TQ4DKDZS.js → prime-radiant-advanced-wasm-EFKVL7VN.js} +2 -2
  234. package/dist/cli/chunks/protocol-executor-5HJKW6MC.js +2 -0
  235. package/dist/cli/chunks/{protocol-handler-T3LZ3WRG.js → protocol-handler-ELGYV7D2.js} +2 -2
  236. package/dist/cli/chunks/{prove-OV7S5J4W.js → prove-AYJCQYNI.js} +2 -2
  237. package/dist/cli/chunks/provider-manager-TRZSBXD3.js +2 -0
  238. package/dist/cli/chunks/qe-reasoning-bank-RCEYSLVV.js +2 -0
  239. package/dist/cli/chunks/{quality-AXD4NLQA.js → quality-HH7L5A7V.js} +2 -2
  240. package/dist/cli/chunks/quality-gate-NAQLXE4C.js +7 -0
  241. package/dist/cli/chunks/queen-coordinator-6JFZD54W.js +2 -0
  242. package/dist/cli/chunks/{real-embeddings-2PUCC7FG.js → real-embeddings-IO3F4ZFR.js} +2 -2
  243. package/dist/cli/chunks/{roocode-installer-WJ5ARGLW.js → roocode-installer-X4TU5HO4.js} +2 -2
  244. package/dist/cli/chunks/router-KRLC46NS.js +2 -0
  245. package/dist/cli/chunks/routing-feedback-WW26H6SA.js +2 -0
  246. package/dist/cli/chunks/{routing-handler-CU6657SZ.js → routing-handler-ZJKGDDMT.js} +2 -2
  247. package/dist/cli/chunks/{ruvector-commands-IIF6VSFW.js → ruvector-commands-NXCSUBN2.js} +2 -2
  248. package/dist/cli/chunks/{rvf-dual-writer-YMQI7XO2.js → rvf-dual-writer-JMA74SKP.js} +2 -2
  249. package/dist/cli/chunks/{rvf-migration-adapter-HDE3PR2W.js → rvf-migration-adapter-BNTGH2KU.js} +2 -2
  250. package/dist/cli/chunks/{rvf-migration-coordinator-MQV5OA7K.js → rvf-migration-coordinator-7T2HHUOH.js} +2 -2
  251. package/dist/cli/chunks/rvf-native-adapter-OVQKPQUH.js +2 -0
  252. package/dist/cli/chunks/safe-db-UQOCQIH2.js +2 -0
  253. package/dist/cli/chunks/schedule-EUX7ZQUK.js +2 -0
  254. package/dist/cli/chunks/scheduler-MALHQKNR.js +2 -0
  255. package/dist/cli/chunks/{security-UM3IGDSM.js → security-XSK2QHB3.js} +3 -3
  256. package/dist/cli/chunks/{shared-rvf-adapter-I3SOJ6M4.js → shared-rvf-adapter-WLRKI7RY.js} +2 -2
  257. package/dist/cli/chunks/{shared-rvf-dual-writer-KQGC2UO7.js → shared-rvf-dual-writer-SZW3J7ZK.js} +2 -2
  258. package/dist/cli/chunks/sqlite-persistence-OBCLRP4L.js +2 -0
  259. package/dist/cli/chunks/{status-handler-OX4CJZME.js → status-handler-HGCKYJX2.js} +2 -2
  260. package/dist/cli/chunks/{structural-health-PYUMVBXJ.js → structural-health-4SJCFX63.js} +2 -2
  261. package/dist/cli/chunks/{sync-2TED3YTY.js → sync-7WAVNZGL.js} +2 -2
  262. package/dist/cli/chunks/{sync-VALFNTA6.js → sync-ATR4DUSA.js} +2 -2
  263. package/dist/cli/chunks/{task-handler-VPGAJVPC.js → task-handler-O6REL34Y.js} +2 -2
  264. package/dist/cli/chunks/{task-handlers-IB4UAMU6.js → task-handlers-WFV2ZYWW.js} +3 -3
  265. package/dist/cli/chunks/{test-OMRJOZB6.js → test-4LXUVHEU.js} +4 -4
  266. package/dist/cli/chunks/{test-scheduling-ZL3YFPBU.js → test-scheduling-OTN3DMKY.js} +3 -3
  267. package/dist/cli/chunks/{token-bootstrap-DNWZI7SH.js → token-bootstrap-VA7T4P42.js} +2 -2
  268. package/dist/cli/chunks/{token-usage-IYO7RGFF.js → token-usage-TLT6OXXR.js} +2 -2
  269. package/dist/cli/chunks/{transformers-53ALC34T.js → transformers-JI7LZRQ3.js} +2 -2
  270. package/dist/cli/chunks/{tree-sitter-wasm-parser-WUKJ2I2Q.js → tree-sitter-wasm-parser-QNIMHB4K.js} +2 -2
  271. package/dist/cli/chunks/{types-47FTEPMV.js → types-DJNWOAC6.js} +2 -2
  272. package/dist/cli/chunks/unified-memory-A5BS3LGX.js +2 -0
  273. package/dist/cli/chunks/unified-memory-hnsw-WJLJO5MY.js +2 -0
  274. package/dist/cli/chunks/unified-persistence-CFC2BKI5.js +2 -0
  275. package/dist/cli/chunks/{upgrade-QPLMJA5Z.js → upgrade-VEW4FL23.js} +2 -2
  276. package/dist/cli/chunks/{validate-3GVKZOVF.js → validate-O3P6PF7B.js} +2 -2
  277. package/dist/cli/chunks/{validate-swarm-XCRTLVM6.js → validate-swarm-M2HXHZVC.js} +2 -2
  278. package/dist/cli/chunks/{vibium-CH4VPKVZ.js → vibium-GOU55LUO.js} +2 -2
  279. package/dist/cli/chunks/visual-security-VPB6KVYJ.js +2 -0
  280. package/dist/cli/chunks/{web-tree-sitter-JDBNAZTV.js → web-tree-sitter-MXOI4GH3.js} +2 -2
  281. package/dist/cli/chunks/{windsurf-installer-3MNPVJBP.js → windsurf-installer-6GKT53IH.js} +2 -2
  282. package/dist/cli/chunks/{witness-chain-HR5UBV5J.js → witness-chain-OXGQGL26.js} +2 -2
  283. package/dist/cli/chunks/witness-chain-ZZAUAXDY.js +2 -0
  284. package/dist/cli/chunks/{witness-key-manager-G5SQTIBZ.js → witness-key-manager-PGFSQXUJ.js} +2 -2
  285. package/dist/cli/chunks/{workflow-43EMD5FY.js → workflow-ENBWRMBA.js} +4 -4
  286. package/dist/cli/chunks/workflow-orchestrator-S4LBFTYD.js +2 -0
  287. package/dist/cli/chunks/{wrappers-3N7AYNM3.js → wrappers-MHLNYANQ.js} +2 -2
  288. package/dist/cli/commands/quality-gate.d.ts +24 -0
  289. package/dist/cli/commands/quality-gate.js +135 -0
  290. package/dist/cli/index.js +5 -0
  291. package/dist/coordination/mincut/dream-integration.d.ts +11 -0
  292. package/dist/coordination/mincut/dream-integration.js +39 -12
  293. package/dist/integrations/ruvector/feature-flags.js +7 -0
  294. package/dist/learning/pattern-lifecycle.d.ts +16 -0
  295. package/dist/learning/pattern-lifecycle.js +77 -1
  296. package/dist/learning/provenance-tier.d.ts +52 -0
  297. package/dist/learning/provenance-tier.js +64 -0
  298. package/dist/learning/qe-flywheel/corpus-scorer.d.ts +55 -0
  299. package/dist/learning/qe-flywheel/corpus-scorer.js +293 -0
  300. package/dist/learning/qe-flywheel/coupled-anchor.d.ts +91 -0
  301. package/dist/learning/qe-flywheel/coupled-anchor.js +181 -0
  302. package/dist/learning/qe-flywheel/generation.d.ts +121 -0
  303. package/dist/learning/qe-flywheel/generation.js +167 -0
  304. package/dist/learning/qe-flywheel/policy.d.ts +37 -0
  305. package/dist/learning/qe-flywheel/policy.js +66 -0
  306. package/dist/learning/qe-flywheel/receipt-store.d.ts +31 -0
  307. package/dist/learning/qe-flywheel/receipt-store.js +89 -0
  308. package/dist/learning/qe-flywheel/receipt.d.ts +62 -0
  309. package/dist/learning/qe-flywheel/receipt.js +97 -0
  310. package/dist/mcp/bundle.js +396 -390
  311. package/dist/mcp/tools/quality-assessment/gate.d.ts +38 -0
  312. package/dist/mcp/tools/quality-assessment/gate.js +86 -0
  313. package/dist/mcp/tools/registry.d.ts +1 -0
  314. package/dist/mcp/tools/registry.js +3 -0
  315. package/dist/shared/safe-db.js +23 -4
  316. package/dist/validation/anchor-set.d.ts +74 -0
  317. package/dist/validation/anchor-set.js +78 -0
  318. package/dist/validation/frontier-judge.d.ts +99 -0
  319. package/dist/validation/frontier-judge.js +234 -0
  320. package/dist/validation/gate-reexecute.d.ts +165 -0
  321. package/dist/validation/gate-reexecute.js +255 -0
  322. package/dist/validation/quality-gate-runner.d.ts +49 -0
  323. package/dist/validation/quality-gate-runner.js +62 -0
  324. package/dist/validation/quality-verdict.d.ts +94 -0
  325. package/dist/validation/quality-verdict.js +120 -0
  326. package/package.json +1 -1
  327. package/dist/cli/chunks/adapter-KNM5R47J.js +0 -2
  328. package/dist/cli/chunks/aqe-learning-engine-MXPJLVR3.js +0 -2
  329. package/dist/cli/chunks/base-X4EXQ2AS.js +0 -2
  330. package/dist/cli/chunks/browser-workflow-4HX6RP5F.js +0 -2
  331. package/dist/cli/chunks/chunk-FHTYEAQ3.js +0 -2
  332. package/dist/cli/chunks/chunk-MIU5RUBJ.js +0 -149
  333. package/dist/cli/chunks/chunk-V6NAB5UZ.js +0 -2
  334. package/dist/cli/chunks/chunk-YR2JKBZO.js +0 -2
  335. package/dist/cli/chunks/chunk-ZMPAM4DY.js +0 -2
  336. package/dist/cli/chunks/client-AHXNCOHK.js +0 -2
  337. package/dist/cli/chunks/core-handlers-EEFLLMAZ.js +0 -2
  338. package/dist/cli/chunks/cross-domain-router-LT3H4SNJ.js +0 -2
  339. package/dist/cli/chunks/dream-4K3BK4IG.js +0 -2
  340. package/dist/cli/chunks/heartbeat-scheduler-IMPPGQUK.js +0 -2
  341. package/dist/cli/chunks/hnsw-adapter-EIAA6R2L.js +0 -2
  342. package/dist/cli/chunks/hnsw-index-ZXXP6AXZ.js +0 -2
  343. package/dist/cli/chunks/hybrid-router-LXWG4MLH.js +0 -2
  344. package/dist/cli/chunks/impact-analyzer-TP5LRFYH.js +0 -2
  345. package/dist/cli/chunks/init-wizard-AIOA5KOY.js +0 -2
  346. package/dist/cli/chunks/kernel-SQALRU6Q.js +0 -2
  347. package/dist/cli/chunks/knowledge-graph-JFVT6SNN.js +0 -2
  348. package/dist/cli/chunks/llm-router-service-XHFKTH3I.js +0 -2
  349. package/dist/cli/chunks/load-test-JEIFJKNN.js +0 -2
  350. package/dist/cli/chunks/memory-backend-NT7I37CP.js +0 -2
  351. package/dist/cli/chunks/memory-handlers-746D7NE7.js +0 -2
  352. package/dist/cli/chunks/pattern-null-store-6QU6WHDW.js +0 -2
  353. package/dist/cli/chunks/protocol-executor-GT2MZYUU.js +0 -2
  354. package/dist/cli/chunks/provider-manager-OATJ7R3D.js +0 -2
  355. package/dist/cli/chunks/qe-reasoning-bank-IJXNQ67O.js +0 -2
  356. package/dist/cli/chunks/queen-coordinator-6RBHWCUG.js +0 -2
  357. package/dist/cli/chunks/router-XKQRT5JK.js +0 -2
  358. package/dist/cli/chunks/routing-feedback-ACPSD4LW.js +0 -2
  359. package/dist/cli/chunks/rvf-native-adapter-SIWRKE33.js +0 -2
  360. package/dist/cli/chunks/safe-db-LCPUYMX4.js +0 -2
  361. package/dist/cli/chunks/schedule-HIQJCWXG.js +0 -2
  362. package/dist/cli/chunks/scheduler-QE5EJ5LE.js +0 -2
  363. package/dist/cli/chunks/sqlite-persistence-EU54UTMH.js +0 -2
  364. package/dist/cli/chunks/unified-memory-CJLMC2I4.js +0 -2
  365. package/dist/cli/chunks/unified-memory-hnsw-FDGR4D2J.js +0 -2
  366. package/dist/cli/chunks/unified-persistence-UFH5GLDN.js +0 -2
  367. package/dist/cli/chunks/visual-security-4ARJ7J2Y.js +0 -2
  368. package/dist/cli/chunks/witness-chain-73QC33ED.js +0 -2
  369. package/dist/cli/chunks/workflow-orchestrator-RKMMPXNA.js +0 -2
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Agentic QE v3 - Quality Gate MCP Tool (ADR-119)
3
+ *
4
+ * qe/quality/gate - two-gate, three-valued quality verdict against a pinned
5
+ * ADR-117 checklist. Calls the SAME `runQualityGate` orchestrator as the
6
+ * `aqe quality-gate` CLI subcommand so CLI and MCP stay in exact parity.
7
+ *
8
+ * The frontier judge is built from the forwarded HybridRouter
9
+ * (context.llmRouter). When no provider is configured the judge's preflight
10
+ * fails ⇒ the verdict is `inconclusive` — never a silent pass.
11
+ */
12
+ import { MCPToolBase, MCPToolConfig, MCPToolContext } from '../base';
13
+ import { ToolResult } from '../../types';
14
+ import type { QualityVerdictResult } from '../../../validation/quality-verdict.js';
15
+ export interface QualityGateParams {
16
+ /** Pinned anchor checklist id (e.g. "A1-inRange"). */
17
+ checklistId: string;
18
+ /** The artifact under judgement (produced test source / spec output). */
19
+ artifact: string;
20
+ /**
21
+ * Mechanical-gate result from the ADR-113 oracle. Omit/null ⇒ oracle did not
22
+ * run ⇒ mechanical fail (a non-executed test can never be a silent pass).
23
+ */
24
+ oracle?: {
25
+ passed: boolean;
26
+ baselinePassed: boolean;
27
+ } | null;
28
+ /** Override the frozen anchor path (ADR-117). */
29
+ anchorPath?: string;
30
+ /** Frontier judge model id (ADR-111: always frontier-tier). */
31
+ model?: string;
32
+ [key: string]: unknown;
33
+ }
34
+ export declare class QualityGateTool extends MCPToolBase<QualityGateParams, QualityVerdictResult> {
35
+ readonly config: MCPToolConfig;
36
+ execute(params: QualityGateParams, context: MCPToolContext): Promise<ToolResult<QualityVerdictResult>>;
37
+ }
38
+ //# sourceMappingURL=gate.d.ts.map
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Agentic QE v3 - Quality Gate MCP Tool (ADR-119)
3
+ *
4
+ * qe/quality/gate - two-gate, three-valued quality verdict against a pinned
5
+ * ADR-117 checklist. Calls the SAME `runQualityGate` orchestrator as the
6
+ * `aqe quality-gate` CLI subcommand so CLI and MCP stay in exact parity.
7
+ *
8
+ * The frontier judge is built from the forwarded HybridRouter
9
+ * (context.llmRouter). When no provider is configured the judge's preflight
10
+ * fails ⇒ the verdict is `inconclusive` — never a silent pass.
11
+ */
12
+ import { MCPToolBase } from '../base';
13
+ import { toErrorMessage } from '../../../shared/error-utils.js';
14
+ import { getLLMRouter } from '../base.js';
15
+ import { runQualityGate } from '../../../validation/quality-gate-runner.js';
16
+ import { createRouterFrontierJudge, createUnavailableJudge, } from '../../../validation/frontier-judge.js';
17
+ export class QualityGateTool extends MCPToolBase {
18
+ config = {
19
+ name: 'qe/quality/gate',
20
+ description: 'Two-gate, three-valued quality verdict (ADR-119): mechanical oracle gate plus a frontier '
21
+ + 'judge grading the artifact against a pinned ADR-117 checklist. Returns pass|fail|inconclusive.',
22
+ domain: 'quality-assessment',
23
+ schema: QUALITY_GATE_SCHEMA,
24
+ streaming: false,
25
+ timeout: 120000,
26
+ };
27
+ async execute(params, context) {
28
+ try {
29
+ if (!params.checklistId) {
30
+ return { success: false, error: 'checklistId is required' };
31
+ }
32
+ if (typeof params.artifact !== 'string' || params.artifact.length === 0) {
33
+ return { success: false, error: 'artifact (non-empty string) is required' };
34
+ }
35
+ const router = await getLLMRouter(context);
36
+ const judge = router
37
+ ? createRouterFrontierJudge(router, params.model ? { model: params.model } : {})
38
+ : createUnavailableJudge('no LLM provider configured — set a frontier provider API key');
39
+ if (!router) {
40
+ this.markAsDemoData(context, 'no LLM router — frontier judge unavailable, verdict will be inconclusive');
41
+ }
42
+ const result = await runQualityGate({
43
+ oracleResult: params.oracle ?? null,
44
+ artifact: params.artifact,
45
+ checklistId: params.checklistId,
46
+ judge,
47
+ anchorPath: params.anchorPath,
48
+ });
49
+ return { success: true, data: result };
50
+ }
51
+ catch (error) {
52
+ return { success: false, error: `Quality gate failed: ${toErrorMessage(error)}` };
53
+ }
54
+ }
55
+ }
56
+ const QUALITY_GATE_SCHEMA = {
57
+ type: 'object',
58
+ properties: {
59
+ checklistId: {
60
+ type: 'string',
61
+ description: 'Pinned ADR-117 anchor checklist id (e.g. "A1-inRange")',
62
+ },
63
+ artifact: {
64
+ type: 'string',
65
+ description: 'The artifact under judgement (produced test source / spec output)',
66
+ },
67
+ oracle: {
68
+ type: 'object',
69
+ description: 'ADR-113 mechanical oracle result. Omit ⇒ mechanical fail (test did not execute).',
70
+ properties: {
71
+ passed: { type: 'boolean', description: 'Mutation score met threshold' },
72
+ baselinePassed: { type: 'boolean', description: 'Tests executed against the reference impl' },
73
+ },
74
+ },
75
+ anchorPath: {
76
+ type: 'string',
77
+ description: 'Override the frozen anchor path (ADR-117)',
78
+ },
79
+ model: {
80
+ type: 'string',
81
+ description: 'Frontier judge model id (ADR-111: always frontier-tier)',
82
+ },
83
+ },
84
+ required: ['checklistId', 'artifact'],
85
+ };
86
+ //# sourceMappingURL=gate.js.map
@@ -29,6 +29,7 @@ export declare const QE_TOOL_NAMES: {
29
29
  readonly COVERAGE_ANALYZE: "qe/coverage/analyze";
30
30
  readonly COVERAGE_GAPS: "qe/coverage/gaps";
31
31
  readonly QUALITY_EVALUATE: "qe/quality/evaluate";
32
+ readonly QUALITY_GATE: "qe/quality/gate";
32
33
  readonly DEFECT_PREDICT: "qe/defects/predict";
33
34
  readonly REQUIREMENTS_VALIDATE: "qe/requirements/validate";
34
35
  readonly QUALITY_CRITERIA: "qe/requirements/quality-criteria";
@@ -9,6 +9,7 @@ import { TestGenerateTool } from './test-generation/generate';
9
9
  import { TestExecuteTool } from './test-execution/execute';
10
10
  import { CoverageAnalyzeTool, CoverageGapsTool } from './coverage-analysis';
11
11
  import { QualityEvaluateTool } from './quality-assessment/evaluate';
12
+ import { QualityGateTool } from './quality-assessment/gate';
12
13
  import { DefectPredictTool } from './defect-intelligence/predict';
13
14
  import { RequirementsValidateTool } from './requirements-validation/validate';
14
15
  import { QualityCriteriaTool } from './requirements-validation/quality-criteria';
@@ -42,6 +43,7 @@ export const QE_TOOL_NAMES = {
42
43
  COVERAGE_GAPS: 'qe/coverage/gaps',
43
44
  // Quality Assessment
44
45
  QUALITY_EVALUATE: 'qe/quality/evaluate',
46
+ QUALITY_GATE: 'qe/quality/gate',
45
47
  // Defect Intelligence
46
48
  DEFECT_PREDICT: 'qe/defects/predict',
47
49
  // Requirements Validation
@@ -105,6 +107,7 @@ export const QE_TOOLS = [
105
107
  new CoverageGapsTool(),
106
108
  // Quality Assessment Domain
107
109
  new QualityEvaluateTool(),
110
+ new QualityGateTool(),
108
111
  // Defect Intelligence Domain
109
112
  new DefectPredictTool(),
110
113
  // Requirements Validation Domain
@@ -23,6 +23,18 @@ export function openDatabase(dbPath, opts) {
23
23
  const fileMustExist = opts?.fileMustExist ?? false;
24
24
  const busyTimeout = opts?.busyTimeout ?? 5000;
25
25
  const walMode = opts?.walMode ?? !readonly;
26
+ // Environment override for filesystems where WAL is UNSAFE. WAL prevents
27
+ // concurrent-writer corruption on a normal filesystem, but on a macOS
28
+ // Docker/virtiofs bind mount the `-shm` mmap coherence across the
29
+ // host/container boundary is broken, so WAL checkpoints can zero pages and
30
+ // corrupt the DB (observed 2026-06-08 and again 2026-07-07). On such a mount,
31
+ // set AQE_DISABLE_WAL=1 (or AQE_JOURNAL_MODE=DELETE|TRUNCATE) so this process
32
+ // opens the DB in a rollback-journal mode instead. Default behavior is
33
+ // unchanged: without the env var, writable connections still use WAL.
34
+ const journalOverride = (process.env.AQE_JOURNAL_MODE ?? '').trim().toUpperCase();
35
+ const disableWal = process.env.AQE_DISABLE_WAL === '1' ||
36
+ journalOverride === 'DELETE' ||
37
+ journalOverride === 'TRUNCATE';
26
38
  const db = new Database(dbPath, {
27
39
  readonly,
28
40
  fileMustExist,
@@ -30,10 +42,17 @@ export function openDatabase(dbPath, opts) {
30
42
  // Always set busy_timeout — even for readonly connections.
31
43
  // Without this, concurrent access gets SQLITE_BUSY immediately.
32
44
  db.pragma(`busy_timeout = ${busyTimeout}`);
33
- // WAL mode for writable connections prevents corruption from concurrent writers.
34
- // Readonly connections inherit WAL from the DB file but we set it explicitly
35
- // to be safe in case the DB was created without WAL.
36
- if (walMode) {
45
+ if (disableWal) {
46
+ // Explicit opt-out of WAL for this environment. Readonly connections cannot
47
+ // change journal_mode, so only apply to writable opens.
48
+ if (!readonly) {
49
+ db.pragma(`journal_mode = ${journalOverride || 'DELETE'}`);
50
+ }
51
+ }
52
+ else if (walMode) {
53
+ // WAL mode for writable connections prevents corruption from concurrent
54
+ // writers. Readonly connections inherit WAL from the DB file but we set it
55
+ // explicitly to be safe in case the DB was created without WAL.
37
56
  db.pragma('journal_mode = WAL');
38
57
  }
39
58
  return db;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Frozen oracle-grade QE anchor set (ADR-117).
3
+ *
4
+ * A small, human-labeled, content-hash-pinned, constant-denominator eval set
5
+ * that promotion gates (ADR-118 accept(), ADR-120 re-executed gates) must
6
+ * evaluate and never regress against. The loader recomputes the content hash on
7
+ * load and THROWS on drift — a frozen anchor the optimizer can silently edit is
8
+ * not frozen. Mirrors ruflo `harness-frozen-eval` + retort's constant-denominator
9
+ * `REQUIREMENTS.json`.
10
+ *
11
+ * Each item is a test-generation task graded by the ADR-113 oracle
12
+ * (`evaluateOracle`): the policy produces a test for `referenceImpl`, and the
13
+ * mutation kill rate is the score. `requirements` is the pinned checklist (the
14
+ * constant denominator) the ADR-119 judge grades against.
15
+ */
16
+ export interface AnchorItem {
17
+ /** Stable item id (e.g. "A1-inRange"). */
18
+ id: string;
19
+ /** Human-readable spec the test-gen policy is asked to produce a test for. */
20
+ inputUnderTest: string;
21
+ /** Base module name (no extension) for the reference impl. */
22
+ moduleName: string;
23
+ /** ESM source of the correct implementation. */
24
+ referenceImpl: string;
25
+ /** Pinned checklist of requirements — the CONSTANT denominator (frozen count). */
26
+ requirements: string[];
27
+ /** Ground-truth mutant count a correct test must kill (measured via the oracle at freeze time). */
28
+ expectedMutants: number;
29
+ }
30
+ export interface AnchorPassBar {
31
+ /** Minimum mutation kill rate for an item to pass (ADR-117 "High" bar = 0.8). */
32
+ mutationThreshold: number;
33
+ /** Required checklist coverage for the ADR-119 judge (pass only at 1.0). */
34
+ checklistCoverage: number;
35
+ }
36
+ export interface AnchorSet {
37
+ schemaVersion: number;
38
+ /** The frozen quality bar. */
39
+ passBar: AnchorPassBar;
40
+ /** No-regression tolerance: a promotion may not drop the anchor mean by more than this. */
41
+ anchorTol: number;
42
+ /** SHA-256 over the canonicalized items — recomputed and checked on load. */
43
+ contentHash: string;
44
+ items: AnchorItem[];
45
+ }
46
+ /**
47
+ * Deterministic canonical form of the items for hashing: items sorted by id,
48
+ * object keys sorted, no incidental whitespace. Independent of file formatting
49
+ * and key order so a semantically-identical file hashes identically.
50
+ */
51
+ export declare function canonicalizeItems(items: AnchorItem[]): string;
52
+ /** SHA-256 content hash over the canonicalized items. */
53
+ export declare function computeContentHash(items: AnchorItem[]): string;
54
+ /**
55
+ * Load a frozen anchor set, refusing to return if the recorded hash does not
56
+ * match the recomputed one (ADR-117 §2). No promotion path may read the anchor
57
+ * except through this loader.
58
+ */
59
+ export declare function loadAnchorSet(path: string): AnchorSet;
60
+ /** The score of one anchor item = its oracle mutation kill rate. */
61
+ export declare function anchorItemScore(oracleResult: {
62
+ mutationScore: number;
63
+ }): number;
64
+ /**
65
+ * The anchor mean: Σ score / N with N constant (the constant-denominator
66
+ * property — comparable across runs and generations).
67
+ */
68
+ export declare function anchorMean(scores: number[]): number;
69
+ /**
70
+ * No-regression contract (ADR-117 §4, ADR-118 accept(), ADR-120 re-exec).
71
+ * A candidate policy may not drop the anchor mean below baseline − tol.
72
+ */
73
+ export declare function meetsNoRegression(candidateMean: number, baselineMean: number, tol: number): boolean;
74
+ //# sourceMappingURL=anchor-set.d.ts.map
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Frozen oracle-grade QE anchor set (ADR-117).
3
+ *
4
+ * A small, human-labeled, content-hash-pinned, constant-denominator eval set
5
+ * that promotion gates (ADR-118 accept(), ADR-120 re-executed gates) must
6
+ * evaluate and never regress against. The loader recomputes the content hash on
7
+ * load and THROWS on drift — a frozen anchor the optimizer can silently edit is
8
+ * not frozen. Mirrors ruflo `harness-frozen-eval` + retort's constant-denominator
9
+ * `REQUIREMENTS.json`.
10
+ *
11
+ * Each item is a test-generation task graded by the ADR-113 oracle
12
+ * (`evaluateOracle`): the policy produces a test for `referenceImpl`, and the
13
+ * mutation kill rate is the score. `requirements` is the pinned checklist (the
14
+ * constant denominator) the ADR-119 judge grades against.
15
+ */
16
+ import { createHash } from 'node:crypto';
17
+ import fs from 'node:fs';
18
+ /**
19
+ * Deterministic canonical form of the items for hashing: items sorted by id,
20
+ * object keys sorted, no incidental whitespace. Independent of file formatting
21
+ * and key order so a semantically-identical file hashes identically.
22
+ */
23
+ export function canonicalizeItems(items) {
24
+ const norm = [...items]
25
+ .sort((a, b) => a.id.localeCompare(b.id))
26
+ .map((it) => ({
27
+ id: it.id,
28
+ inputUnderTest: it.inputUnderTest,
29
+ moduleName: it.moduleName,
30
+ referenceImpl: it.referenceImpl,
31
+ requirements: it.requirements,
32
+ expectedMutants: it.expectedMutants,
33
+ }));
34
+ return JSON.stringify(norm);
35
+ }
36
+ /** SHA-256 content hash over the canonicalized items. */
37
+ export function computeContentHash(items) {
38
+ return createHash('sha256').update(canonicalizeItems(items)).digest('hex');
39
+ }
40
+ /**
41
+ * Load a frozen anchor set, refusing to return if the recorded hash does not
42
+ * match the recomputed one (ADR-117 §2). No promotion path may read the anchor
43
+ * except through this loader.
44
+ */
45
+ export function loadAnchorSet(path) {
46
+ const raw = JSON.parse(fs.readFileSync(path, 'utf8'));
47
+ const recomputed = computeContentHash(raw.items);
48
+ if (recomputed !== raw.contentHash) {
49
+ throw new Error(`Anchor set hash drift at ${path}: recorded ${raw.contentHash}, `
50
+ + `recomputed ${recomputed}. Refusing to load a mutated frozen anchor (ADR-117). `
51
+ + `A legitimate change must be a versioned re-freeze (qe-anchor-v2), never an in-place edit.`);
52
+ }
53
+ if (raw.items.length === 0) {
54
+ throw new Error(`Anchor set at ${path} has no items — a frozen anchor must be non-empty.`);
55
+ }
56
+ return raw;
57
+ }
58
+ /** The score of one anchor item = its oracle mutation kill rate. */
59
+ export function anchorItemScore(oracleResult) {
60
+ return oracleResult.mutationScore;
61
+ }
62
+ /**
63
+ * The anchor mean: Σ score / N with N constant (the constant-denominator
64
+ * property — comparable across runs and generations).
65
+ */
66
+ export function anchorMean(scores) {
67
+ if (scores.length === 0)
68
+ return 0;
69
+ return scores.reduce((a, b) => a + b, 0) / scores.length;
70
+ }
71
+ /**
72
+ * No-regression contract (ADR-117 §4, ADR-118 accept(), ADR-120 re-exec).
73
+ * A candidate policy may not drop the anchor mean below baseline − tol.
74
+ */
75
+ export function meetsNoRegression(candidateMean, baselineMean, tol) {
76
+ return candidateMean >= baselineMean - tol;
77
+ }
78
+ //# sourceMappingURL=anchor-set.js.map
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Frontier-tier spec judge for the ADR-119 two-gate quality verdict.
3
+ *
4
+ * This is the real spec-gate `Judge` consumed by `computeQualityVerdict`
5
+ * (quality-verdict.ts). It grades an artifact against a pinned,
6
+ * constant-denominator ADR-117 checklist using a FRONTIER model — never the
7
+ * cheap local writer lane (ADR-111: the oracle is the one place you never
8
+ * economize). Two design guarantees flow from the verdict logic:
9
+ *
10
+ * - `preflight()` does a cheap live round-trip to prove the provider and
11
+ * credentials actually respond. On any failure it returns `false`, which the
12
+ * verdict maps to `inconclusive` — a dead provider can never masquerade as a
13
+ * silent pass.
14
+ * - `grade()` returns `ran: false` on ANY tooling failure (timeout,
15
+ * usage-limit, unparseable response). A non-real opinion can never
16
+ * contribute to a `fail`; too few real opinions ⇒ `inconclusive`.
17
+ *
18
+ * The single provider call is isolated behind an injectable `complete(prompt)`
19
+ * seam so the judge is unit-testable with a fake and zero network. Wire the real
20
+ * frontier model with `routerComplete()` / `createRouterFrontierJudge()`.
21
+ */
22
+ import type { Judge, RequirementChecklist } from './quality-verdict.js';
23
+ import type { HybridRouter } from '../shared/llm/router/hybrid-router.js';
24
+ import type { ExtendedProviderType } from '../shared/llm/router/types.js';
25
+ /** The model call seam. Returns the raw model text for one prompt. */
26
+ export type CompleteFn = (prompt: string) => Promise<string>;
27
+ export interface FrontierJudgeOptions {
28
+ /**
29
+ * Injectable frontier-model call. In production this is `routerComplete()`
30
+ * bound to a frontier model; in tests it is a fake — NO network either way.
31
+ */
32
+ complete: CompleteFn;
33
+ /**
34
+ * Cheap liveness ping used by `preflight()`. Defaults to a minimal
35
+ * `complete()` round-trip. Should resolve truthy only when the provider and
36
+ * credentials actually respond.
37
+ */
38
+ ping?: () => Promise<boolean>;
39
+ /** Frontier model id, for reporting/telemetry only (the seam owns the call). */
40
+ model?: string;
41
+ /** Per-call timeout in ms (grade + default ping). Default 60s. */
42
+ timeoutMs?: number;
43
+ /** Optional diagnostic logger. */
44
+ logger?: (message: string) => void;
45
+ }
46
+ /**
47
+ * Create the ADR-119 frontier spec judge.
48
+ *
49
+ * The returned object satisfies the `Judge` contract consumed by
50
+ * `computeQualityVerdict`. All provider interaction is behind `opts.complete`.
51
+ */
52
+ export declare function createFrontierJudge(opts: FrontierJudgeOptions): Judge;
53
+ /**
54
+ * Build a `complete()` seam backed by the shared HybridRouter, pinned to a
55
+ * frontier model. This is where the ADR-111 "never economize the oracle" rule is
56
+ * enforced: `model` defaults to a frontier Opus and `preferredProvider` lets the
57
+ * caller route to a frontier provider explicitly.
58
+ */
59
+ export declare function routerComplete(router: HybridRouter, opts?: {
60
+ model?: string;
61
+ preferredProvider?: ExtendedProviderType;
62
+ temperature?: number;
63
+ maxTokens?: number;
64
+ timeoutMs?: number;
65
+ }): CompleteFn;
66
+ /**
67
+ * Convenience: a frontier judge wired to the shared HybridRouter. The judge is
68
+ * ALWAYS frontier-tier — `model` defaults to a frontier Opus.
69
+ */
70
+ export declare function createRouterFrontierJudge(router: HybridRouter, opts?: {
71
+ model?: string;
72
+ preferredProvider?: ExtendedProviderType;
73
+ temperature?: number;
74
+ maxTokens?: number;
75
+ timeoutMs?: number;
76
+ logger?: (message: string) => void;
77
+ }): Judge;
78
+ /**
79
+ * A judge for when no frontier provider is available (no LLM router / no
80
+ * credentials). `preflight()` returns false so the verdict is `inconclusive` —
81
+ * NEVER a silent pass. Both CLI and MCP use this fallback so they stay in parity.
82
+ */
83
+ export declare function createUnavailableJudge(_reason: string): Judge;
84
+ /**
85
+ * Build the grading prompt. Requirements are numbered 1..N and the model is
86
+ * asked for the numbers of the UNMET ones as strict JSON. Reporting unmet (not
87
+ * satisfied) keeps the denominator constant and the contract unambiguous.
88
+ */
89
+ export declare function buildGradePrompt(artifact: string, checklist: RequirementChecklist): string;
90
+ /**
91
+ * Parse the model response into a set of 0-based unmet requirement indices.
92
+ * Returns `null` when the response cannot be parsed into the strict contract
93
+ * (so the caller treats it as a non-real opinion). Out-of-range and duplicate
94
+ * numbers are ignored — a garbled index list never inflates the unmet count.
95
+ */
96
+ export declare function parseUnmetIndices(raw: string, total: number): Set<number> | null;
97
+ /** Reject with a timeout error if `p` does not settle within `ms`. */
98
+ export declare function withTimeout<T>(p: Promise<T>, ms: number, label: string): Promise<T>;
99
+ //# sourceMappingURL=frontier-judge.d.ts.map