agentic-qe 3.13.12 → 3.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/.claude/helpers/brain-checkpoint.cjs +2 -1
  2. package/.claude/helpers/validate-v3-config.sh +6 -5
  3. package/.claude/hooks/aqe-hook.cjs +14 -14
  4. package/.claude/skills/qe-browser/evals/qe-browser.yaml +30 -41
  5. package/.claude/skills/qe-browser/fixtures/serve-skills.js +37 -0
  6. package/.claude/skills/qe-browser/scripts/lib/vibium.js +1 -1
  7. package/.claude/skills/qe-browser/scripts/smoke-test.sh +56 -25
  8. package/.claude/skills/qe-browser/scripts/visual-diff.js +24 -15
  9. package/.claude/skills/qe-court/SKILL.md +4 -4
  10. package/.claude/skills/qe-court/config-schema.json +38 -0
  11. package/.claude/skills/qe-court/evals/qe-court.yaml +8 -8
  12. package/.claude/skills/skills-manifest.json +1 -1
  13. package/CHANGELOG.md +130 -0
  14. package/assets/skills/qe-browser/evals/qe-browser.yaml +30 -41
  15. package/assets/skills/qe-browser/fixtures/serve-skills.js +37 -0
  16. package/assets/skills/qe-browser/scripts/lib/vibium.js +1 -1
  17. package/assets/skills/qe-browser/scripts/smoke-test.sh +56 -25
  18. package/assets/skills/qe-browser/scripts/visual-diff.js +24 -15
  19. package/assets/skills/qe-court/SKILL.md +4 -4
  20. package/assets/skills/qe-court/config-schema.json +38 -0
  21. package/assets/skills/qe-court/evals/qe-court.yaml +8 -8
  22. package/assets/skills/skills-manifest.json +1 -1
  23. package/dist/cli/brain-commands.d.ts +1 -0
  24. package/dist/cli/brain-commands.js +1 -0
  25. package/dist/cli/bundle.js +7 -7
  26. package/dist/cli/chunks/adapter-I2N7PEKG.js +2 -0
  27. package/dist/cli/chunks/{agent-booster-wasm-7I7LZFNC.js → agent-booster-wasm-OY5Y2CUM.js} +2 -2
  28. package/dist/cli/chunks/{agent-handler-QZZT52BH.js → agent-handler-TUOH55LD.js} +2 -2
  29. package/dist/cli/chunks/{agent-memory-branch-MLQS5Y26.js → agent-memory-branch-XM3IYKT3.js} +2 -2
  30. package/dist/cli/chunks/aqe-learning-engine-U4ALUH6A.js +2 -0
  31. package/dist/cli/chunks/{arena-WRIY37EJ.js → arena-DOCLIEBL.js} +4 -4
  32. package/dist/cli/chunks/{arena-IM4CP6LP.js → arena-UMFJZKG7.js} +2 -2
  33. package/dist/cli/chunks/{audit-BSAQ4EFN.js → audit-KZLU5VLW.js} +3 -3
  34. package/dist/cli/chunks/base-RCYIBNHM.js +2 -0
  35. package/dist/cli/chunks/{better-sqlite3-X2XZUXWZ.js → better-sqlite3-MIEZBNUI.js} +2 -2
  36. package/dist/cli/chunks/brain-handler-6PZN46B7.js +90 -0
  37. package/dist/cli/chunks/{branch-enumerator-NI4Q7DSJ.js → branch-enumerator-XCETHA4F.js} +2 -2
  38. package/dist/cli/chunks/{browser-PXBLORUZ.js → browser-UEXISDCJ.js} +2 -2
  39. package/dist/cli/chunks/browser-workflow-L6TDB5O5.js +2 -0
  40. package/dist/cli/chunks/{chunk-5PNQNBDZ.js → chunk-3AYNHOWS.js} +1 -1
  41. package/dist/cli/chunks/{chunk-NL2SCAGJ.js → chunk-3BRR2FLH.js} +3 -3
  42. package/dist/cli/chunks/chunk-3FFMUB3B.js +14 -0
  43. package/dist/cli/chunks/{chunk-GJJWXRAD.js → chunk-3JMSXOU4.js} +2 -2
  44. package/dist/cli/chunks/{chunk-MB2KLJ6Q.js → chunk-3TMUCJNJ.js} +1 -1
  45. package/dist/cli/chunks/{chunk-JVFZAJ5N.js → chunk-3WSH4HD2.js} +2 -2
  46. package/dist/cli/chunks/{chunk-SCQNISGS.js → chunk-3XRXUVUI.js} +1 -1
  47. package/dist/cli/chunks/{chunk-Z56BBX77.js → chunk-45S5553E.js} +2 -2
  48. package/dist/cli/chunks/{chunk-6BSZHNOC.js → chunk-4MT62HKK.js} +1 -1
  49. package/dist/cli/chunks/{chunk-PVINNJ4P.js → chunk-4ZLFUO4I.js} +2 -2
  50. package/dist/cli/chunks/{chunk-MYVKTG55.js → chunk-5F5V4QYU.js} +3 -3
  51. package/dist/cli/chunks/{chunk-2W3D5A4R.js → chunk-5KP62DC3.js} +2 -2
  52. package/dist/cli/chunks/{chunk-BODFJ3DC.js → chunk-5NSSJUWW.js} +2 -2
  53. package/dist/cli/chunks/{chunk-KXSUDN46.js → chunk-5T6PAUZD.js} +1 -1
  54. package/dist/cli/chunks/{chunk-7ZVO7I4Q.js → chunk-5TYGSQOL.js} +1 -1
  55. package/dist/cli/chunks/{chunk-M7CPJW53.js → chunk-5Y2QFSVZ.js} +2 -2
  56. package/dist/cli/chunks/{chunk-VQD2ELNL.js → chunk-6B77GPWL.js} +2 -2
  57. package/dist/cli/chunks/{chunk-GJUGG6UR.js → chunk-6DDMHZWH.js} +2 -2
  58. package/dist/cli/chunks/{chunk-IPZEBALY.js → chunk-6HMNN2Y2.js} +54 -54
  59. package/dist/cli/chunks/{chunk-M73KM3AZ.js → chunk-6YIMLUH6.js} +160 -26
  60. package/dist/cli/chunks/{chunk-UBOGJHWC.js → chunk-6Z6Y3YBX.js} +1 -1
  61. package/dist/cli/chunks/{chunk-M3354CE4.js → chunk-75SC3GEX.js} +2 -2
  62. package/dist/cli/chunks/{chunk-TJVTV3HP.js → chunk-7AF55H2D.js} +2 -2
  63. package/dist/cli/chunks/{chunk-3XVZHJQT.js → chunk-7AYTM426.js} +1 -1
  64. package/dist/cli/chunks/{chunk-U5G6OC2C.js → chunk-7GF6IRSU.js} +2 -2
  65. package/dist/cli/chunks/{chunk-LRO74LPA.js → chunk-7XL2D56F.js} +4 -4
  66. package/dist/cli/chunks/{chunk-MGKH4LCM.js → chunk-A6RB34Y6.js} +1 -1
  67. package/dist/cli/chunks/{chunk-X2SZCVDA.js → chunk-AESYVAPH.js} +8 -7
  68. package/dist/cli/chunks/{chunk-3ASVQILY.js → chunk-AZUC7E5S.js} +2 -2
  69. package/dist/cli/chunks/{chunk-R7LGVJMZ.js → chunk-B6Y6AF4M.js} +2 -2
  70. package/dist/cli/chunks/chunk-C3XNFIOM.js +2 -0
  71. package/dist/cli/chunks/{chunk-ZSAGRDXA.js → chunk-CBWF42ET.js} +2 -2
  72. package/dist/cli/chunks/{chunk-VNODKACB.js → chunk-CCZZZBAO.js} +2 -2
  73. package/dist/cli/chunks/{chunk-5E76HULA.js → chunk-CGDW47WP.js} +2 -2
  74. package/dist/cli/chunks/chunk-CGZ7LTUK.js +2 -0
  75. package/dist/cli/chunks/{chunk-6KI6LAAZ.js → chunk-D6RCRTTR.js} +2 -2
  76. package/dist/cli/chunks/{chunk-TB2N3CAK.js → chunk-DFXQLHQM.js} +2 -2
  77. package/dist/cli/chunks/chunk-DKSLJZVA.js +2 -0
  78. package/dist/cli/chunks/{chunk-JTYCOFTD.js → chunk-DKUKGBJE.js} +1 -1
  79. package/dist/cli/chunks/{chunk-AN5CGTTJ.js → chunk-DKXSJDII.js} +2 -2
  80. package/dist/cli/chunks/chunk-EEJP3WTQ.js +4 -0
  81. package/dist/cli/chunks/{chunk-ZMYV4R32.js → chunk-EHW62JL2.js} +1 -1
  82. package/dist/cli/chunks/{chunk-WYFAPA2G.js → chunk-EPBWFTHH.js} +2 -2
  83. package/dist/cli/chunks/{chunk-P6EFKHNI.js → chunk-ERTGGFXZ.js} +2 -2
  84. package/dist/cli/chunks/{chunk-G45AOQDZ.js → chunk-F7TRO2OM.js} +1 -1
  85. package/dist/cli/chunks/{chunk-XT473WPO.js → chunk-FFRKTZYP.js} +2 -2
  86. package/dist/cli/chunks/{chunk-5VSS2RBD.js → chunk-FH7SCX2I.js} +2 -2
  87. package/dist/cli/chunks/{chunk-44NPKZGI.js → chunk-FHBGALBG.js} +2 -2
  88. package/dist/cli/chunks/{chunk-NTALX2YC.js → chunk-FOAFRC2W.js} +2 -2
  89. package/dist/cli/chunks/{chunk-7LATB5IR.js → chunk-FPBQ7BXU.js} +2 -2
  90. package/dist/cli/chunks/{chunk-AKUDUB3O.js → chunk-FRRRDCXY.js} +2 -2
  91. package/dist/cli/chunks/{chunk-NG6A7LCG.js → chunk-FZ47ZCRL.js} +1 -1
  92. package/dist/cli/chunks/{chunk-VD53LBF7.js → chunk-GH3NJOTC.js} +3 -3
  93. package/dist/cli/chunks/{chunk-NDRZZSD5.js → chunk-GO66DCIZ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-Z6DSYLAG.js → chunk-GRVR3Y6I.js} +1 -1
  95. package/dist/cli/chunks/chunk-GYTWUOKU.js +65 -0
  96. package/dist/cli/chunks/{chunk-6KKVMPPR.js → chunk-H2DX36SC.js} +2 -2
  97. package/dist/cli/chunks/{chunk-NJ3QXJ54.js → chunk-H5LSXVWY.js} +2 -2
  98. package/dist/cli/chunks/{chunk-HQWFZQMJ.js → chunk-HBAQVJDP.js} +2 -2
  99. package/dist/cli/chunks/{chunk-33YZGOT6.js → chunk-HCCILQGN.js} +2 -2
  100. package/dist/cli/chunks/{chunk-KRZYWVS3.js → chunk-HJD52N32.js} +2 -2
  101. package/dist/cli/chunks/{chunk-IPDM3CAK.js → chunk-HKU5PPS7.js} +1 -1
  102. package/dist/cli/chunks/{chunk-7RVLVIAI.js → chunk-HPQU6XZH.js} +1 -1
  103. package/dist/cli/chunks/{chunk-TWUWLSGQ.js → chunk-HRUQWABO.js} +10 -10
  104. package/dist/cli/chunks/{chunk-HAJG44BD.js → chunk-IGRTQ6VT.js} +2 -2
  105. package/dist/cli/chunks/{chunk-WXU7FAEB.js → chunk-IIBXGHZT.js} +2 -2
  106. package/dist/cli/chunks/{chunk-QG5L2JM5.js → chunk-IYB3GRXF.js} +10 -10
  107. package/dist/cli/chunks/{chunk-NNLZAVFH.js → chunk-IYIMLLUV.js} +1 -1
  108. package/dist/cli/chunks/{chunk-SXFSJJZF.js → chunk-J2VF7ZO7.js} +2 -2
  109. package/dist/cli/chunks/{chunk-4FVOJBEU.js → chunk-J33LKXVH.js} +1 -1
  110. package/dist/cli/chunks/{chunk-IOJ34SXJ.js → chunk-J7VAD4RG.js} +2 -2
  111. package/dist/cli/chunks/{chunk-VQCLSX7T.js → chunk-JJ4GUO4K.js} +1 -1
  112. package/dist/cli/chunks/{chunk-QM4Z7TQH.js → chunk-JMULRLD4.js} +1 -1
  113. package/dist/cli/chunks/{chunk-LXVT6JXO.js → chunk-JNSTKE3K.js} +2 -2
  114. package/dist/cli/chunks/{chunk-SOS37ECY.js → chunk-JZUWPDVS.js} +1 -1
  115. package/dist/cli/chunks/chunk-KHUO4NCW.js +11 -0
  116. package/dist/cli/chunks/chunk-KXMW7XTJ.js +2 -0
  117. package/dist/cli/chunks/{chunk-4AITMWFZ.js → chunk-KXTN3FR4.js} +2 -2
  118. package/dist/cli/chunks/{chunk-4Z4X2ND4.js → chunk-L4WATX6B.js} +2 -2
  119. package/dist/cli/chunks/{chunk-GMLRIZ4E.js → chunk-L66BWYQH.js} +1 -1
  120. package/dist/cli/chunks/{chunk-52VGZJSD.js → chunk-LJ63HPPN.js} +1 -1
  121. package/dist/cli/chunks/{chunk-WE3VKDMK.js → chunk-LMPK63PO.js} +3 -3
  122. package/dist/cli/chunks/{chunk-S6WHYOWV.js → chunk-LQDFWLKK.js} +27 -25
  123. package/dist/cli/chunks/{chunk-EG73WYAW.js → chunk-LSXQPMPI.js} +2 -2
  124. package/dist/cli/chunks/{chunk-NJ4YVAG7.js → chunk-MDLLEUFN.js} +3 -3
  125. package/dist/cli/chunks/{chunk-YQOQVSYU.js → chunk-MFAN5W27.js} +1 -1
  126. package/dist/cli/chunks/{chunk-A5RWLPVT.js → chunk-MZ2PJUN6.js} +2 -2
  127. package/dist/cli/chunks/{chunk-HRTSYT4N.js → chunk-N22LMACN.js} +2 -2
  128. package/dist/cli/chunks/{chunk-L3GBNX7B.js → chunk-NAJCQJSK.js} +2 -2
  129. package/dist/cli/chunks/{chunk-XM5I7J5S.js → chunk-ND6JBUVH.js} +2 -2
  130. package/dist/cli/chunks/{chunk-YL2GOJF6.js → chunk-NEEZ6M4W.js} +2 -2
  131. package/dist/cli/chunks/{chunk-DGFINXUE.js → chunk-NNJ63W77.js} +1 -1
  132. package/dist/cli/chunks/{chunk-G6FJHDUG.js → chunk-O7KF3GBV.js} +1 -1
  133. package/dist/cli/chunks/{chunk-RP2BRRLX.js → chunk-OBKMLOHU.js} +2 -2
  134. package/dist/cli/chunks/{chunk-AOOCV56W.js → chunk-OBLHI4HA.js} +1 -1
  135. package/dist/cli/chunks/{chunk-OZ53BIY5.js → chunk-ODNLKYOM.js} +1 -1
  136. package/dist/cli/chunks/{chunk-VBHA4SDU.js → chunk-PMREFRPP.js} +2 -2
  137. package/dist/cli/chunks/{chunk-ASWWBNX2.js → chunk-PMUF7WU6.js} +2 -2
  138. package/dist/cli/chunks/{chunk-I5SXLV7D.js → chunk-PS5NIMWJ.js} +2 -2
  139. package/dist/cli/chunks/chunk-PS6Y662P.js +13 -0
  140. package/dist/cli/chunks/{chunk-N4OQ4D4V.js → chunk-PYAH4K2U.js} +2 -2
  141. package/dist/cli/chunks/{chunk-H3GAR4SV.js → chunk-PZZX57ZA.js} +2 -2
  142. package/dist/cli/chunks/chunk-QAE4BOIV.js +2 -0
  143. package/dist/cli/chunks/{chunk-7A4WTRWI.js → chunk-QIY43XQJ.js} +1 -1
  144. package/dist/cli/chunks/{chunk-MLXLGBQZ.js → chunk-QM6EJHP5.js} +1 -1
  145. package/dist/cli/chunks/{chunk-4ANJV6I4.js → chunk-QMTBWHGR.js} +3 -3
  146. package/dist/cli/chunks/{chunk-IT5QIUUA.js → chunk-RCHDSUVU.js} +2 -2
  147. package/dist/cli/chunks/{chunk-AYH3DMW2.js → chunk-RUEHSOE6.js} +1 -1
  148. package/dist/cli/chunks/{chunk-DCVFHVPR.js → chunk-RVCMZUSJ.js} +2 -2
  149. package/dist/cli/chunks/{chunk-2JAC57JE.js → chunk-RXHI6CKK.js} +1 -1
  150. package/dist/cli/chunks/{chunk-QXO35J6F.js → chunk-RXPHQ4ZE.js} +2 -2
  151. package/dist/cli/chunks/{chunk-FI6J3UHJ.js → chunk-RYHCYTFE.js} +1 -1
  152. package/dist/cli/chunks/{chunk-DFLASG3B.js → chunk-S4WIAKPL.js} +1 -1
  153. package/dist/cli/chunks/{chunk-2VY7FL6A.js → chunk-S53ZUAVI.js} +2 -2
  154. package/dist/cli/chunks/{chunk-4M7YZ2X7.js → chunk-SEKOMKNG.js} +1 -1
  155. package/dist/cli/chunks/{chunk-UC4EIULB.js → chunk-SZRDEPUY.js} +19 -19
  156. package/dist/cli/chunks/chunk-T7XYQX5G.js +24 -0
  157. package/dist/cli/chunks/{chunk-OG3DBHIV.js → chunk-TF33GKWA.js} +2 -2
  158. package/dist/cli/chunks/{chunk-2VTX4SYW.js → chunk-TGFJUL6M.js} +2 -2
  159. package/dist/cli/chunks/{chunk-4THFPRFM.js → chunk-TLD727EF.js} +2 -2
  160. package/dist/cli/chunks/{chunk-7PCIN7UN.js → chunk-TQ2JZVZ3.js} +2 -2
  161. package/dist/cli/chunks/{chunk-UWZYXI3R.js → chunk-TT7DF2GX.js} +2 -2
  162. package/dist/cli/chunks/{chunk-X3JNFQW2.js → chunk-UCJEAK7D.js} +2 -2
  163. package/dist/cli/chunks/{chunk-AM42ROKZ.js → chunk-UN7EHLRV.js} +1 -1
  164. package/dist/cli/chunks/{chunk-42AS3HPO.js → chunk-UUE5CBZQ.js} +2 -2
  165. package/dist/cli/chunks/{chunk-E67ZXRG6.js → chunk-UWRMPRY5.js} +1 -1
  166. package/dist/cli/chunks/{chunk-4YFXF5AQ.js → chunk-VEWYUEVY.js} +5 -5
  167. package/dist/cli/chunks/{chunk-UJUK6T4V.js → chunk-VUXHJPUS.js} +2 -2
  168. package/dist/cli/chunks/{chunk-VA2ORJB5.js → chunk-VVP2ROXD.js} +2 -2
  169. package/dist/cli/chunks/{chunk-BZIPYXSW.js → chunk-WFJKLM6Z.js} +3 -3
  170. package/dist/cli/chunks/{chunk-MLFELTJX.js → chunk-X5G3UDWP.js} +2 -2
  171. package/dist/cli/chunks/{chunk-IQH2RDN3.js → chunk-Y63V33M6.js} +5 -5
  172. package/dist/cli/chunks/{chunk-XIKYUBIV.js → chunk-YXN47QOI.js} +2 -2
  173. package/dist/cli/chunks/{chunk-RP5VFZJO.js → chunk-Z5YU2TDS.js} +2 -2
  174. package/dist/cli/chunks/{chunk-KYJBJ56M.js → chunk-ZAHCVRR7.js} +2 -2
  175. package/dist/cli/chunks/{chunk-66OQ7AB3.js → chunk-ZC3HC6FO.js} +1 -1
  176. package/dist/cli/chunks/{ci-QAUD62WH.js → ci-Q2VX75PS.js} +2 -2
  177. package/dist/cli/chunks/{ci-output-TZDVTNE7.js → ci-output-MD5GTVR2.js} +2 -2
  178. package/dist/cli/chunks/{circuit-breaker-ZWPHJ7YJ.js → circuit-breaker-JMRLG2XI.js} +2 -2
  179. package/dist/cli/chunks/{claude-flow-setup-SCB4EURN.js → claude-flow-setup-IMXYALBU.js} +2 -2
  180. package/dist/cli/chunks/client-L4PIXCGV.js +2 -0
  181. package/dist/cli/chunks/{cline-installer-EHZLMLXF.js → cline-installer-HWFASEGE.js} +2 -2
  182. package/dist/cli/chunks/{code-3N6PBJMK.js → code-3V37TCAD.js} +2 -2
  183. package/dist/cli/chunks/{code-index-extractor-6DIKHNRI.js → code-index-extractor-5V54WGFL.js} +2 -2
  184. package/dist/cli/chunks/codex-installer-UCA5AVE6.js +14 -0
  185. package/dist/cli/chunks/{completions-5MKWWCCE.js → completions-2DMRCQU6.js} +2 -2
  186. package/dist/cli/chunks/{complexity-analyzer-TPM4IPEK.js → complexity-analyzer-MMQRXBTD.js} +2 -2
  187. package/dist/cli/chunks/{continuedev-installer-VXODKGVX.js → continuedev-installer-FAARXP3S.js} +2 -2
  188. package/dist/cli/chunks/{copilot-installer-PVD5O56P.js → copilot-installer-AKQALMB5.js} +2 -2
  189. package/dist/cli/chunks/core-handlers-KROSXP4V.js +2 -0
  190. package/dist/cli/chunks/{cost-tracker-JOMZEQF3.js → cost-tracker-AXWHDND5.js} +2 -2
  191. package/dist/cli/chunks/{coverage-HTXLEV3B.js → coverage-ZLSKKCG5.js} +3 -3
  192. package/dist/cli/chunks/cross-domain-router-WMTYBOON.js +2 -0
  193. package/dist/cli/chunks/{cursor-installer-SHKDTDDZ.js → cursor-installer-UALCQKVD.js} +2 -2
  194. package/dist/cli/chunks/{daemon-FCFEWVVJ.js → daemon-4LNOPJGN.js} +3 -3
  195. package/dist/cli/chunks/{daemon-PN4FEPLE.js → daemon-K3DFGCXC.js} +4 -4
  196. package/dist/cli/chunks/{dag-attention-scheduler-PLOHU5SR.js → dag-attention-scheduler-LCQ7MYKC.js} +2 -2
  197. package/dist/cli/chunks/{detect-F3H4ZEZY.js → detect-P7PEN3MZ.js} +2 -2
  198. package/dist/cli/chunks/{dist-node-5TC665N6.js → dist-node-I72BJC2D.js} +2 -2
  199. package/dist/cli/chunks/{domain-handler-ZIWVFXCU.js → domain-handler-LROF6KWN.js} +2 -2
  200. package/dist/cli/chunks/{domain-transfer-7Q5JYMYR.js → domain-transfer-M2ZSSTPV.js} +2 -2
  201. package/dist/cli/chunks/dream-AV63YQ2Y.js +2 -0
  202. package/dist/cli/chunks/embed-and-insert-pattern-MTBPUGO4.js +3 -0
  203. package/dist/cli/chunks/{eval-E2K2T75A.js → eval-O24ALB3W.js} +2 -2
  204. package/dist/cli/chunks/{experience-capture-middleware-Z5SE2O53.js → experience-capture-middleware-7JXEOGRE.js} +3 -3
  205. package/dist/cli/chunks/{fast-paths-3H52RSUK.js → fast-paths-4CFYJV4U.js} +2 -2
  206. package/dist/cli/chunks/{feature-flags-ONIKUZVK.js → feature-flags-CHPUA7IM.js} +2 -2
  207. package/dist/cli/chunks/{feature-flags-LUHSMHPS.js → feature-flags-E6PIM6ZB.js} +2 -2
  208. package/dist/cli/chunks/{file-discovery-FLYSYSS4.js → file-discovery-2ANIAUCP.js} +2 -2
  209. package/dist/cli/chunks/{fleet-6OJUAAKV.js → fleet-2MQ3OGCP.js} +3 -3
  210. package/dist/cli/chunks/{gnn-wrapper-PUL6B7KZ.js → gnn-wrapper-P7JW3622.js} +2 -2
  211. package/dist/cli/chunks/{heartbeat-handler-HGHHDUDY.js → heartbeat-handler-WWWZSA7V.js} +4 -4
  212. package/dist/cli/chunks/heartbeat-scheduler-5IZUGMC2.js +2 -0
  213. package/dist/cli/chunks/hnsw-adapter-NV2NNBJL.js +2 -0
  214. package/dist/cli/chunks/hnsw-index-GRJ3KA2O.js +2 -0
  215. package/dist/cli/chunks/{hnsw-legacy-bridge-NDZSNMYX.js → hnsw-legacy-bridge-W634ZOTV.js} +2 -2
  216. package/dist/cli/chunks/{hnswlib-node-PISLKSO2.js → hnswlib-node-SLZDLMKM.js} +2 -2
  217. package/dist/cli/chunks/{hooks-WYG54MRI.js → hooks-3BFAZGG7.js} +10 -10
  218. package/dist/cli/chunks/{hypergraph-engine-EDHKHZZ2.js → hypergraph-engine-XJSGXP2J.js} +2 -2
  219. package/dist/cli/chunks/{hypergraph-handler-OCHZAPPL.js → hypergraph-handler-RVUWZMOX.js} +3 -3
  220. package/dist/cli/chunks/impact-analyzer-YM4QUWVH.js +2 -0
  221. package/dist/cli/chunks/{init-handler-5TCJ672H.js → init-handler-FYOZNNNO.js} +9 -8
  222. package/dist/cli/chunks/init-wizard-YESXGIK6.js +2 -0
  223. package/dist/cli/chunks/kernel-VH5SKESU.js +2 -0
  224. package/dist/cli/chunks/{kilocode-installer-SWUQRCTZ.js → kilocode-installer-MAAKFVSB.js} +2 -2
  225. package/dist/cli/chunks/{kiro-installer-L22EBAM5.js → kiro-installer-GX3TLZC5.js} +2 -2
  226. package/dist/cli/chunks/knowledge-graph-F3NL4WJV.js +2 -0
  227. package/dist/cli/chunks/learning-T4QZ6C26.js +122 -0
  228. package/dist/cli/chunks/{llm-router-F2L4LFT2.js → llm-router-N2M4WXOC.js} +14 -14
  229. package/dist/cli/chunks/llm-router-service-HQYCJMPK.js +2 -0
  230. package/dist/cli/chunks/{load-A4ZF2KHC.js → load-6RU3G4P2.js} +2 -2
  231. package/dist/cli/chunks/load-test-GWRGKWMN.js +2 -0
  232. package/dist/cli/chunks/{mcp-T2Z46NNK.js → mcp-EFBO7BAU.js} +2 -2
  233. package/dist/cli/chunks/{memory-PUC3J6XC.js → memory-AXU2M3DN.js} +5 -5
  234. package/dist/cli/chunks/memory-backend-7A2PFKPV.js +2 -0
  235. package/dist/cli/chunks/memory-handlers-65CXN76C.js +2 -0
  236. package/dist/cli/chunks/{multi-model-executor-U5L4FI4O.js → multi-model-executor-W7AFGVNH.js} +2 -2
  237. package/dist/cli/chunks/{opencode-installer-UWI6KHYH.js → opencode-installer-KJE2RLCH.js} +2 -2
  238. package/dist/cli/chunks/{orchestrator-3BEI7R5D.js → orchestrator-CL6MLGVU.js} +22 -24
  239. package/dist/cli/chunks/pattern-null-store-K2WPRYCP.js +2 -0
  240. package/dist/cli/chunks/{pattern-usage-recorder-EGWUI5LU.js → pattern-usage-recorder-7SNSJ7K2.js} +2 -2
  241. package/dist/cli/chunks/{pipeline-JG6M4RHD.js → pipeline-3UU6ON3F.js} +2 -2
  242. package/dist/cli/chunks/platform-SNMPIDIT.js +2 -0
  243. package/dist/cli/chunks/{plugin-EEGN3PMK.js → plugin-65IIUUCU.js} +2 -2
  244. package/dist/cli/chunks/{prime-radiant-advanced-wasm-7KZAINFT.js → prime-radiant-advanced-wasm-WWWJRLRP.js} +2 -2
  245. package/dist/cli/chunks/protocol-executor-TJDLEHND.js +2 -0
  246. package/dist/cli/chunks/{protocol-handler-UCEHYK2R.js → protocol-handler-SEBHCLLJ.js} +2 -2
  247. package/dist/cli/chunks/{prove-JSNG75VD.js → prove-N4X7CCJ4.js} +2 -2
  248. package/dist/cli/chunks/qe-reasoning-bank-CGRMFPDM.js +2 -0
  249. package/dist/cli/chunks/{quality-7SRM2HBM.js → quality-LBCJWXMU.js} +2 -2
  250. package/dist/cli/chunks/quality-gate-KZIQI7QT.js +7 -0
  251. package/dist/cli/chunks/queen-coordinator-FKP6QZAQ.js +2 -0
  252. package/dist/cli/chunks/real-embeddings-XCZFHFME.js +2 -0
  253. package/dist/cli/chunks/{roocode-installer-UYQK64BZ.js → roocode-installer-P3O6B7PT.js} +2 -2
  254. package/dist/cli/chunks/router-KZ5BISAM.js +2 -0
  255. package/dist/cli/chunks/routing-feedback-O4Y5TTR6.js +2 -0
  256. package/dist/cli/chunks/{routing-handler-PY3KPDTH.js → routing-handler-OXZ4DOV4.js} +2 -2
  257. package/dist/cli/chunks/{ruvector-commands-GCAOUTYS.js → ruvector-commands-PSY5IDSL.js} +2 -2
  258. package/dist/cli/chunks/rvf-dual-writer-NG3UF3D5.js +2 -0
  259. package/dist/cli/chunks/rvf-migration-adapter-PUHVTKQY.js +2 -0
  260. package/dist/cli/chunks/rvf-migration-coordinator-4SUT7GTJ.js +2 -0
  261. package/dist/cli/chunks/rvf-native-adapter-ODXFKZ6G.js +2 -0
  262. package/dist/cli/chunks/{rvf-store-integrity-HNDKOM4L.js → rvf-store-integrity-TCKC22FH.js} +2 -2
  263. package/dist/cli/chunks/safe-db-BUQDNH2R.js +2 -0
  264. package/dist/cli/chunks/schedule-ZXNDZNNB.js +2 -0
  265. package/dist/cli/chunks/scheduler-YUQQWWW3.js +2 -0
  266. package/dist/cli/chunks/{security-MQ2VB7PY.js → security-RQGUQGSI.js} +3 -3
  267. package/dist/cli/chunks/{shared-rvf-adapter-TAZEU6QK.js → shared-rvf-adapter-ZJFN52C2.js} +2 -2
  268. package/dist/cli/chunks/{shared-rvf-dual-writer-B7N6AOCY.js → shared-rvf-dual-writer-V2R37HWV.js} +2 -2
  269. package/dist/cli/chunks/sqlite-persistence-HVSX46C7.js +2 -0
  270. package/dist/cli/chunks/{status-handler-NZP7DFHE.js → status-handler-XEKWNVDR.js} +2 -2
  271. package/dist/cli/chunks/{structural-health-ALLUQ4X6.js → structural-health-QMIW6WUN.js} +2 -2
  272. package/dist/cli/chunks/{sync-WJJG5J6V.js → sync-GDYJ2ULT.js} +2 -2
  273. package/dist/cli/chunks/{sync-MM7OCUYD.js → sync-H5SXWXPP.js} +2 -2
  274. package/dist/cli/chunks/{task-handler-CAQUEEB4.js → task-handler-EPLKCQHY.js} +2 -2
  275. package/dist/cli/chunks/{task-handlers-25BJ7D3W.js → task-handlers-22NTLWTC.js} +3 -3
  276. package/dist/cli/chunks/{test-HW7GVGVN.js → test-WHJFRZ3F.js} +4 -4
  277. package/dist/cli/chunks/{test-scheduling-HTMFJMSP.js → test-scheduling-KZVFZOQN.js} +3 -3
  278. package/dist/cli/chunks/token-bootstrap-BW5WA6PY.js +2 -0
  279. package/dist/cli/chunks/{token-usage-RJZDMBDP.js → token-usage-4A4O57R6.js} +2 -2
  280. package/dist/cli/chunks/{transformers-3YFW3EUO.js → transformers-FYTBRV46.js} +2 -2
  281. package/dist/cli/chunks/{tree-sitter-wasm-parser-U3PQPIK7.js → tree-sitter-wasm-parser-TZIJPLF3.js} +2 -2
  282. package/dist/cli/chunks/{types-7Q762WDO.js → types-B2L6LKFA.js} +2 -2
  283. package/dist/cli/chunks/unified-memory-AHN4RVBP.js +2 -0
  284. package/dist/cli/chunks/unified-memory-hnsw-XB7JPF74.js +2 -0
  285. package/dist/cli/chunks/unified-persistence-53KWNFQJ.js +2 -0
  286. package/dist/cli/chunks/{upgrade-F7MKJWBQ.js → upgrade-O6U7EA7V.js} +2 -2
  287. package/dist/cli/chunks/{validate-B27AVRA6.js → validate-FHNZ5XL3.js} +2 -2
  288. package/dist/cli/chunks/{validate-swarm-GYZR3GNL.js → validate-swarm-YOLLUEHE.js} +2 -2
  289. package/dist/cli/chunks/{vibium-W4XQMPJP.js → vibium-UXRPEIXB.js} +2 -2
  290. package/dist/cli/chunks/visual-security-CRPYS7L7.js +2 -0
  291. package/dist/cli/chunks/{web-tree-sitter-I7CDCFJU.js → web-tree-sitter-JJ5UIYFD.js} +2 -2
  292. package/dist/cli/chunks/{windsurf-installer-UYLHFDHU.js → windsurf-installer-I4QMQPIL.js} +2 -2
  293. package/dist/cli/chunks/witness-chain-5WCR2CAS.js +2 -0
  294. package/dist/cli/chunks/{witness-chain-B66SYZKU.js → witness-chain-BIJ7WDGS.js} +2 -2
  295. package/dist/cli/chunks/{witness-key-manager-U4JPAHVW.js → witness-key-manager-3SMMLJLP.js} +2 -2
  296. package/dist/cli/chunks/{workflow-DYMO47FF.js → workflow-33PUXXJV.js} +4 -4
  297. package/dist/cli/chunks/workflow-orchestrator-RZWCLTT5.js +2 -0
  298. package/dist/cli/chunks/{wrappers-7S6DQTEA.js → wrappers-ASAU36VK.js} +2 -2
  299. package/dist/cli/commands/learning.js +44 -0
  300. package/dist/cli/commands/llm-router.js +27 -21
  301. package/dist/cli/commands/platform.d.ts +1 -0
  302. package/dist/cli/commands/platform.js +28 -6
  303. package/dist/cli/commands/quality-gate.js +25 -3
  304. package/dist/cli/handlers/brain-handler.js +2 -0
  305. package/dist/cli/handlers/init-handler.d.ts +5 -0
  306. package/dist/cli/handlers/init-handler.js +6 -0
  307. package/dist/cli/index.js +4 -1
  308. package/dist/context/compaction/index.d.ts +1 -0
  309. package/dist/context/compaction/index.js +3 -0
  310. package/dist/context/compaction/instruction-provenance.d.ts +20 -0
  311. package/dist/context/compaction/instruction-provenance.js +18 -0
  312. package/dist/context/compaction/tier2-session-summary.d.ts +8 -0
  313. package/dist/context/compaction/tier2-session-summary.js +20 -0
  314. package/dist/context/compaction/tier3-llm-compact.d.ts +4 -0
  315. package/dist/context/compaction/tier3-llm-compact.js +32 -4
  316. package/dist/contracts/verdicts.d.ts +625 -0
  317. package/dist/contracts/verdicts.js +202 -14
  318. package/dist/coordination/handlers/coverage-handlers.js +8 -1
  319. package/dist/domains/chaos-resilience/diagnosis/corpus.d.ts +5 -0
  320. package/dist/domains/chaos-resilience/diagnosis/corpus.js +141 -0
  321. package/dist/domains/chaos-resilience/diagnosis/detectors.d.ts +11 -0
  322. package/dist/domains/chaos-resilience/diagnosis/detectors.js +109 -0
  323. package/dist/domains/chaos-resilience/diagnosis/index.d.ts +5 -0
  324. package/dist/domains/chaos-resilience/diagnosis/index.js +5 -0
  325. package/dist/domains/chaos-resilience/diagnosis/scorer.d.ts +8 -0
  326. package/dist/domains/chaos-resilience/diagnosis/scorer.js +128 -0
  327. package/dist/domains/chaos-resilience/diagnosis/types.d.ts +171 -0
  328. package/dist/domains/chaos-resilience/diagnosis/types.js +3 -0
  329. package/dist/domains/chaos-resilience/index.d.ts +1 -0
  330. package/dist/domains/chaos-resilience/index.js +1 -0
  331. package/dist/domains/index.d.ts +1 -0
  332. package/dist/domains/index.js +1 -0
  333. package/dist/early-exit/early-exit-controller.d.ts +4 -2
  334. package/dist/early-exit/early-exit-controller.js +95 -7
  335. package/dist/early-exit/index.d.ts +1 -1
  336. package/dist/early-exit/speculative-executor.js +3 -0
  337. package/dist/early-exit/types.d.ts +51 -0
  338. package/dist/early-exit/types.js +3 -0
  339. package/dist/index.d.ts +4 -2
  340. package/dist/index.js +2 -1
  341. package/dist/init/browser-engine-installer.d.ts +11 -0
  342. package/dist/init/browser-engine-installer.js +35 -5
  343. package/dist/init/codex-installer.d.ts +11 -1
  344. package/dist/init/codex-installer.js +90 -24
  345. package/dist/init/init-wizard-hooks.js +11 -11
  346. package/dist/init/orchestrator.js +2 -0
  347. package/dist/init/phases/07-hooks.d.ts +3 -3
  348. package/dist/init/phases/07-hooks.js +19 -21
  349. package/dist/init/phases/09-assets.d.ts +4 -0
  350. package/dist/init/phases/09-assets.js +13 -10
  351. package/dist/init/phases/phase-interface.d.ts +2 -0
  352. package/dist/init/types.d.ts +4 -0
  353. package/dist/integrations/embeddings/base/EmbeddingGenerator.js +4 -2
  354. package/dist/integrations/ruvector/brain-exporter.d.ts +1 -1
  355. package/dist/integrations/ruvector/brain-exporter.js +15 -3
  356. package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +4 -0
  357. package/dist/integrations/ruvector/brain-rvf-exporter.js +118 -37
  358. package/dist/integrations/ruvector/brain-search.d.ts +1 -1
  359. package/dist/integrations/ruvector/brain-search.js +1 -1
  360. package/dist/integrations/ruvector/brain-shared.d.ts +4 -2
  361. package/dist/integrations/ruvector/brain-shared.js +11 -4
  362. package/dist/integrations/ruvector/brain-table-ddl.d.ts +2 -2
  363. package/dist/integrations/ruvector/brain-table-ddl.js +20 -8
  364. package/dist/integrations/ruvector/cognitive-container.js +1 -1
  365. package/dist/integrations/ruvector/rvf-dual-writer.d.ts +4 -0
  366. package/dist/integrations/ruvector/rvf-dual-writer.js +57 -9
  367. package/dist/integrations/ruvector/rvf-store-integrity.js +1 -1
  368. package/dist/kernel/unified-memory-schemas.d.ts +4 -3
  369. package/dist/kernel/unified-memory-schemas.js +19 -9
  370. package/dist/kernel/unified-memory.d.ts +2 -0
  371. package/dist/kernel/unified-memory.js +19 -0
  372. package/dist/learning/embed-and-insert-pattern.js +6 -3
  373. package/dist/learning/embedding-space.d.ts +50 -0
  374. package/dist/learning/embedding-space.js +128 -0
  375. package/dist/learning/evidence-admission-store.d.ts +15 -0
  376. package/dist/learning/evidence-admission-store.js +68 -0
  377. package/dist/learning/index.d.ts +7 -0
  378. package/dist/learning/index.js +4 -0
  379. package/dist/learning/learning-evidence-admission.d.ts +44 -0
  380. package/dist/learning/learning-evidence-admission.js +97 -0
  381. package/dist/learning/pattern-mutation-error.d.ts +9 -0
  382. package/dist/learning/pattern-mutation-error.js +14 -0
  383. package/dist/learning/pattern-store.d.ts +5 -0
  384. package/dist/learning/pattern-store.js +60 -9
  385. package/dist/learning/qe-flywheel/coupled-anchor.d.ts +8 -0
  386. package/dist/learning/qe-flywheel/coupled-anchor.js +46 -3
  387. package/dist/learning/qe-reasoning-bank.js +28 -5
  388. package/dist/learning/real-embeddings.d.ts +3 -0
  389. package/dist/learning/real-embeddings.js +40 -3
  390. package/dist/learning/real-qe-reasoning-bank.js +7 -3
  391. package/dist/learning/rvf-pattern-migration.d.ts +2 -0
  392. package/dist/learning/rvf-pattern-migration.js +5 -3
  393. package/dist/learning/rvf-pattern-store.d.ts +3 -0
  394. package/dist/learning/rvf-pattern-store.js +44 -6
  395. package/dist/learning/sqlite-persistence.d.ts +7 -2
  396. package/dist/learning/sqlite-persistence.js +58 -21
  397. package/dist/learning/structural-retrieval/corpus.d.ts +5 -0
  398. package/dist/learning/structural-retrieval/corpus.js +97 -0
  399. package/dist/learning/structural-retrieval/evaluate.d.ts +7 -0
  400. package/dist/learning/structural-retrieval/evaluate.js +124 -0
  401. package/dist/learning/structural-retrieval/index.d.ts +6 -0
  402. package/dist/learning/structural-retrieval/index.js +4 -0
  403. package/dist/learning/structural-retrieval/receipt.d.ts +14 -0
  404. package/dist/learning/structural-retrieval/receipt.js +36 -0
  405. package/dist/learning/structural-retrieval/types.d.ts +83 -0
  406. package/dist/learning/structural-retrieval/types.js +2 -0
  407. package/dist/mcp/bundle.js +589 -433
  408. package/dist/mcp/handlers/memory-handlers.js +6 -2
  409. package/dist/mcp/services/session-resume.d.ts +15 -19
  410. package/dist/mcp/services/session-resume.js +204 -194
  411. package/dist/mcp/tools/quality-assessment/gate.d.ts +8 -5
  412. package/dist/mcp/tools/quality-assessment/gate.js +9 -4
  413. package/dist/migrations/20260830_add_learning_evidence_tables.d.ts +7 -0
  414. package/dist/migrations/20260830_add_learning_evidence_tables.js +173 -0
  415. package/dist/persistence/rvf-migration-adapter.d.ts +2 -0
  416. package/dist/persistence/rvf-migration-adapter.js +56 -12
  417. package/dist/shared/llm/llm-router-service.d.ts +8 -0
  418. package/dist/shared/llm/llm-router-service.js +21 -3
  419. package/dist/shared/sql-safety.js +4 -0
  420. package/dist/skills/qe-court/cli.d.ts +3 -0
  421. package/dist/skills/qe-court/cli.js +54 -0
  422. package/dist/validation/quality-gate-runner.d.ts +27 -4
  423. package/dist/validation/quality-gate-runner.js +33 -4
  424. package/dist/validation/verification-reach.d.ts +90 -0
  425. package/dist/validation/verification-reach.js +187 -0
  426. package/dist/verification/adversarial-verify/calibrate.d.ts +46 -2
  427. package/dist/verification/adversarial-verify/calibrate.js +104 -2
  428. package/dist/verification/adversarial-verify/index.d.ts +2 -2
  429. package/dist/verification/adversarial-verify/index.js +1 -1
  430. package/dist/verification/adversarial-verify/measurement-receipt.d.ts +13 -0
  431. package/dist/verification/adversarial-verify/measurement-receipt.js +136 -0
  432. package/dist/verification/adversarial-verify/synthesize.js +7 -10
  433. package/dist/verification/adversarial-verify/types.d.ts +35 -0
  434. package/dist/verification/adversarial-verify/verify.js +6 -1
  435. package/package.json +14 -6
  436. package/schemas/coverage-gap.schema.json +41 -0
  437. package/schemas/finding-verdict.schema.json +470 -0
  438. package/schemas/risk-decision.schema.json +41 -0
  439. package/dist/cli/chunks/adapter-FUV6LBJT.js +0 -2
  440. package/dist/cli/chunks/aqe-learning-engine-QNFNA3J4.js +0 -2
  441. package/dist/cli/chunks/base-37W2XIXC.js +0 -2
  442. package/dist/cli/chunks/brain-handler-TVTTWZGP.js +0 -89
  443. package/dist/cli/chunks/browser-workflow-PDIUEK7B.js +0 -2
  444. package/dist/cli/chunks/chunk-5PI75QYP.js +0 -4
  445. package/dist/cli/chunks/chunk-EDRPTLAX.js +0 -2
  446. package/dist/cli/chunks/chunk-GEQWCK4F.js +0 -2
  447. package/dist/cli/chunks/chunk-GQLJYTXN.js +0 -2
  448. package/dist/cli/chunks/chunk-NLZUGANH.js +0 -11
  449. package/dist/cli/chunks/chunk-O4BWESH5.js +0 -2
  450. package/dist/cli/chunks/chunk-PGFCKE4G.js +0 -12
  451. package/dist/cli/chunks/chunk-RACWX2ZX.js +0 -9
  452. package/dist/cli/chunks/chunk-SNC73DWF.js +0 -2
  453. package/dist/cli/chunks/chunk-TDVMILKO.js +0 -2
  454. package/dist/cli/chunks/chunk-TK5XLF3Z.js +0 -65
  455. package/dist/cli/chunks/chunk-UQ4UCHO7.js +0 -2
  456. package/dist/cli/chunks/chunk-VZGP77YU.js +0 -12
  457. package/dist/cli/chunks/chunk-WA6CSEOX.js +0 -2
  458. package/dist/cli/chunks/chunk-WYIXNHPF.js +0 -2
  459. package/dist/cli/chunks/client-4W3KWTAU.js +0 -2
  460. package/dist/cli/chunks/codex-installer-P7DPQMYL.js +0 -15
  461. package/dist/cli/chunks/core-handlers-BDU2XBLO.js +0 -2
  462. package/dist/cli/chunks/cross-domain-router-BPB6IHN4.js +0 -2
  463. package/dist/cli/chunks/dream-WFCZGFDY.js +0 -2
  464. package/dist/cli/chunks/embed-and-insert-pattern-VESJQSYD.js +0 -3
  465. package/dist/cli/chunks/heartbeat-scheduler-HWS4SHRM.js +0 -2
  466. package/dist/cli/chunks/hnsw-adapter-7QOBHKRB.js +0 -2
  467. package/dist/cli/chunks/hnsw-index-6WUKYJH7.js +0 -2
  468. package/dist/cli/chunks/hybrid-router-525JTRA5.js +0 -2
  469. package/dist/cli/chunks/impact-analyzer-GG6CJEOK.js +0 -2
  470. package/dist/cli/chunks/init-wizard-4VFAOK4Y.js +0 -2
  471. package/dist/cli/chunks/kernel-N3FQGOST.js +0 -2
  472. package/dist/cli/chunks/knowledge-graph-I5QIHB4G.js +0 -2
  473. package/dist/cli/chunks/learning-TQOGG3CR.js +0 -119
  474. package/dist/cli/chunks/llm-router-service-NCJZYJLG.js +0 -2
  475. package/dist/cli/chunks/load-test-DCJEYIXD.js +0 -2
  476. package/dist/cli/chunks/memory-backend-O6KO2KTX.js +0 -2
  477. package/dist/cli/chunks/memory-handlers-4Z43WEKD.js +0 -2
  478. package/dist/cli/chunks/pattern-null-store-5WIJKX2K.js +0 -2
  479. package/dist/cli/chunks/platform-F76G6RUI.js +0 -2
  480. package/dist/cli/chunks/protocol-executor-5TPNAZTB.js +0 -2
  481. package/dist/cli/chunks/provider-manager-3VMOZ6HV.js +0 -2
  482. package/dist/cli/chunks/qe-reasoning-bank-BATV4NTT.js +0 -2
  483. package/dist/cli/chunks/quality-gate-A5MPWHST.js +0 -7
  484. package/dist/cli/chunks/queen-coordinator-EIHGYBUO.js +0 -2
  485. package/dist/cli/chunks/real-embeddings-ZBF5EQOG.js +0 -2
  486. package/dist/cli/chunks/router-EMVGY4HU.js +0 -2
  487. package/dist/cli/chunks/routing-feedback-JUP4OFB2.js +0 -2
  488. package/dist/cli/chunks/rvf-dual-writer-BUNP4SKD.js +0 -2
  489. package/dist/cli/chunks/rvf-migration-adapter-VSOAPLMB.js +0 -2
  490. package/dist/cli/chunks/rvf-migration-coordinator-LSWEHAWX.js +0 -2
  491. package/dist/cli/chunks/rvf-native-adapter-LOC42TQ6.js +0 -2
  492. package/dist/cli/chunks/safe-db-WQ62IQKV.js +0 -2
  493. package/dist/cli/chunks/schedule-XJRP57TE.js +0 -2
  494. package/dist/cli/chunks/scheduler-EZH5SDIM.js +0 -2
  495. package/dist/cli/chunks/sqlite-persistence-HPEVCTIB.js +0 -2
  496. package/dist/cli/chunks/token-bootstrap-F2DCLWGW.js +0 -2
  497. package/dist/cli/chunks/unified-memory-ATILROKR.js +0 -2
  498. package/dist/cli/chunks/unified-memory-hnsw-XJXAX7DW.js +0 -2
  499. package/dist/cli/chunks/unified-persistence-3TN5PBWE.js +0 -2
  500. package/dist/cli/chunks/visual-security-VFWRBCNA.js +0 -2
  501. package/dist/cli/chunks/witness-chain-JC5LEXRV.js +0 -2
  502. package/dist/cli/chunks/workflow-orchestrator-TKQUF2KN.js +0 -2
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.12");process.exit(0)}
2
- import"./chunk-VBHA4SDU.js";import{b as $}from"./chunk-7RVLVIAI.js";import{d as R}from"./chunk-42AS3HPO.js";import{b as k,c as C,d as b}from"./chunk-M7CPJW53.js";import{c as W}from"./chunk-VA2ORJB5.js";import"./chunk-E67ZXRG6.js";import"./chunk-L3GBNX7B.js";import"./chunk-ZMYV4R32.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.1");process.exit(0)}
2
+ import{b as $}from"./chunk-HPQU6XZH.js";import"./chunk-PMREFRPP.js";import{d as R}from"./chunk-UUE5CBZQ.js";import{b as k,c as C,d as b}from"./chunk-5Y2QFSVZ.js";import{c as W}from"./chunk-VVP2ROXD.js";import"./chunk-UWRMPRY5.js";import"./chunk-NAJCQJSK.js";import"./chunk-EHW62JL2.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
3
3
  Running workflow from: ${t}
4
4
  `));let s=k(c);if(!s.success||!s.workflow){console.log(o.red("Failed to parse pipeline:"));for(let w of s.errors)console.log(o.red(` ${w}`));await a(1)}let r={...W(l.params,"params")};if(s.pipeline){for(let w of s.pipeline.stages)if(w.params)for(let[S,h]of Object.entries(w.params))r[S]=h}if(!d.workflowOrchestrator.getWorkflow(s.workflow.id)){let w=d.workflowOrchestrator.registerWorkflow(s.workflow);w.success||(console.log(o.red(`Failed to register workflow: ${w.error.message}`)),await a(1))}let n=await d.workflowOrchestrator.executeWorkflow(s.workflow.id,r);if(!n.success){console.log(o.red(`Failed to start workflow: ${n.error.message}`)),await a(1);return}let p=n.value;if(console.log(o.cyan(` Execution ID: ${p}`)),console.log(o.gray(` Workflow: ${s.workflow.name}`)),console.log(o.gray(` Stages: ${s.workflow.steps.length}`)),console.log(""),l.watch){console.log(o.blue(`Workflow Progress:
5
5
  `));let w,S=Date.now();for(;;){let g=d.workflowOrchestrator.getWorkflowStatus(p);if(!g)break;if(!w||w.progress!==g.progress||w.status!==g.status||JSON.stringify(w.currentSteps)!==JSON.stringify(g.currentSteps)){process.stdout.write("\r\x1B[K");let v="\u2588".repeat(Math.floor(g.progress/5))+"\u2591".repeat(20-Math.floor(g.progress/5)),D=g.status==="completed"?o.green:g.status==="failed"?o.red:g.status==="running"?o.yellow:o.gray;console.log(` [${v}] ${g.progress}% - ${D(g.status)}`),g.currentSteps.length>0&&l.verbose&&console.log(o.gray(` Running: ${g.currentSteps.join(", ")}`)),w=g}if(g.status==="completed"||g.status==="failed"||g.status==="cancelled")break;await new Promise(v=>setTimeout(v,500))}let h=d.workflowOrchestrator.getWorkflowStatus(p);if(h){console.log("");let g=h.duration||Date.now()-S;h.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(g)}`)),console.log(o.gray(` Completed: ${h.completedSteps.length} stages`)),h.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${h.skippedSteps.length} stages`))):h.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${h.error}`)),console.log(o.gray(` Failed stages: ${h.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${h.status}`))}}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${p}' to check progress`));console.log(""),await a(0)}catch(s){console.error(o.red(`
@@ -35,10 +35,10 @@ Workflow cancelled: ${t}
35
35
  `)):console.log(o.red(`
36
36
  Failed to cancel workflow: ${l.error.message}
37
37
  `)),await a(l.success?0:1)}catch(l){console.error(o.red(`
38
- Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-PDIUEK7B.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
38
+ Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-L6TDB5O5.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
39
39
  Browser Workflow Templates:
40
40
  `));for(let u of e.data.availableTemplates)console.log(` ${o.cyan(u)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await a(0)}catch(t){console.error(o.red(`
41
- Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-PDIUEK7B.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-TZDVTNE7.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
41
+ Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-L6TDB5O5.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-MD5GTVR2.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
42
42
  File not found: ${p}
43
43
  `)),await a(1)),f.workflowYaml=i.readFileSync(p,"utf-8")}else f.templateName=t;else console.log(o.red(`
44
44
  Provide a template name or --yaml. Use "workflow browser-list" to see templates.
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.1");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-FH7SCX2I.js";import"./chunk-HCCILQGN.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-UWRMPRY5.js";import"./chunk-NAJCQJSK.js";import"./chunk-LJ63HPPN.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.12");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-7PCIN7UN.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-2VY7FL6A.js";import"./chunk-M73KM3AZ.js";import"./chunk-KRZYWVS3.js";import"./chunk-3ASVQILY.js";import"./chunk-GEQWCK4F.js";import"./chunk-IOJ34SXJ.js";import"./chunk-6KI6LAAZ.js";import"./chunk-VA2ORJB5.js";import"./chunk-L3GBNX7B.js";import"./chunk-Z56BBX77.js";import"./chunk-5E76HULA.js";import"./chunk-7LATB5IR.js";import"./chunk-4Z4X2ND4.js";import"./chunk-U5G6OC2C.js";import"./chunk-JVFZAJ5N.js";import"./chunk-2VTX4SYW.js";import"./chunk-N4OQ4D4V.js";import"./chunk-AN5CGTTJ.js";import"./chunk-ZMYV4R32.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.1");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-TQ2JZVZ3.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-S53ZUAVI.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-NAJCQJSK.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
@@ -21,6 +21,8 @@ import { createLearningMetricsTracker, } from '../../learning/metrics-tracker.js
21
21
  import { createRegretTracker, } from '../../learning/regret-tracker.js';
22
22
  import { openDatabase } from '../../shared/safe-db.js';
23
23
  import { createSQLitePatternStore } from '../../learning/sqlite-persistence.js';
24
+ import { getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
25
+ import { inspectEmbeddingSpaceRows } from '../../learning/embedding-space.js';
24
26
  // Extracted helpers
25
27
  import { initializeLearningSystem, printJson, printSuccess, printError, printInfo, displayDashboard, getDbPath, compressFile, decompressFile, verifyDatabaseIntegrity, getSchemaVersion, padRight, EXPORT_FORMAT_VERSION, DOMAIN_MAPPING, PATTERN_TYPE_MAPPING, } from './learning-helpers.js';
26
28
  // ============================================================================
@@ -65,12 +67,54 @@ Examples:
65
67
  registerImportMergeCommand(learning);
66
68
  registerDreamCommand(learning);
67
69
  registerBackfillEmbeddingsCommand(learning);
70
+ registerEmbeddingHealthCommand(learning);
68
71
  registerRepairCommand(learning);
69
72
  registerHealthCommand(learning);
70
73
  registerLoopHealthCommand(learning);
71
74
  return learning;
72
75
  }
73
76
  // ============================================================================
77
+ // Subcommand: embedding-health (#633)
78
+ // ============================================================================
79
+ function registerEmbeddingHealthCommand(learning) {
80
+ learning
81
+ .command('embedding-health')
82
+ .description('Display active and stored embedding-space provenance')
83
+ .option('--json', 'Output as JSON')
84
+ .action(async (options) => {
85
+ const dbPath = path.join(findProjectRoot(), '.agentic-qe', 'memory.db');
86
+ if (!existsSync(dbPath)) {
87
+ throw new Error('Database not found. Run "aqe init --auto" first.');
88
+ }
89
+ const db = openDatabase(dbPath, { readonly: true });
90
+ try {
91
+ const table = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get();
92
+ const hasSpaceId = table
93
+ ? db.prepare("PRAGMA table_info('qe_pattern_embeddings')").all()
94
+ .some((column) => column.name === 'space_id')
95
+ : false;
96
+ const rows = table
97
+ ? db.prepare(`SELECT ${hasSpaceId ? 'space_id' : 'NULL'} AS spaceId FROM qe_pattern_embeddings`).all()
98
+ : [];
99
+ const diagnostics = inspectEmbeddingSpaceRows(rows, getActiveEmbeddingSpaceIdentity()?.spaceId ?? null);
100
+ if (options.json) {
101
+ printJson(diagnostics);
102
+ return;
103
+ }
104
+ console.log(chalk.bold('\nEmbedding Space Health\n'));
105
+ console.log(` Status: ${diagnostics.status}`);
106
+ console.log(` Active space: ${diagnostics.activeSpaceId ?? '(runtime not initialized)'}`);
107
+ console.log(` Stored spaces: ${diagnostics.storedSpaceIds.join(', ') || '(none)'}`);
108
+ console.log(` Verified vectors: ${diagnostics.verifiedVectors}`);
109
+ console.log(` Mismatched vectors: ${diagnostics.mismatchedVectors}`);
110
+ console.log(` Unverified vectors: ${diagnostics.unverifiedVectors}\n`);
111
+ }
112
+ finally {
113
+ db.close();
114
+ }
115
+ });
116
+ }
117
+ // ============================================================================
74
118
  // Subcommand: backfill-embeddings
75
119
  // ============================================================================
76
120
  function registerBackfillEmbeddingsCommand(learning) {
@@ -687,29 +687,35 @@ async function executeAdvise(options) {
687
687
  console.log(chalk.gray('Consulting advisor...'));
688
688
  }
689
689
  // Lazy-load to keep CLI cold-start fast when advise is not used
690
- const { createProviderManager } = await import('../../shared/llm/provider-manager.js');
691
- const { createHybridRouter } = await import('../../shared/llm/router/hybrid-router.js');
692
- const { MultiModelExecutor, DEFAULT_ADVISOR_PROVIDER, DEFAULT_ADVISOR_MODEL } = await import('../../routing/advisor/multi-model-executor.js');
693
- const provider = (options.provider ?? DEFAULT_ADVISOR_PROVIDER);
694
- const model = options.model ?? DEFAULT_ADVISOR_MODEL;
695
- // Phase 0: bootstrap a minimal ProviderManager + HybridRouter for the advisor call.
696
- // Phase 1+ reuses a shared router from the AQE kernel.
697
- const providerManager = createProviderManager({
698
- primary: provider === 'openrouter' ? 'openrouter' : provider,
699
- providers: {
700
- openrouter: {
701
- apiKey: process.env.OPENROUTER_API_KEY,
702
- model,
703
- },
690
+ const { createLLMRouterService } = await import('../../shared/llm/llm-router-service.js');
691
+ const { MultiModelExecutor, DEFAULT_ADVISOR_MODEL } = await import('../../routing/advisor/multi-model-executor.js');
692
+ const requestedProvider = options.provider;
693
+ // Use the same config-aware construction path as the kernel. In particular,
694
+ // loadRouterConfig() registers ADR-127 external providers before the
695
+ // ProviderManager is built. The old minimal bootstrap bypassed that step,
696
+ // so `llm providers` recognized a declared host while `llm advise` rejected
697
+ // the same identity as unknown (#628).
698
+ const built = await createLLMRouterService({
699
+ projectRoot: configProjectRoot(),
700
+ // Advisor transcripts may be paired with ambient API credentials. A
701
+ // repository-controlled baseUrl must never become their destination.
702
+ allowProjectProviderEndpoints: false,
703
+ override: {
704
+ mode: 'manual',
705
+ ...(requestedProvider ? { defaultProvider: requestedProvider } : {}),
706
+ ...(options.model ? { defaultModel: options.model } : {}),
704
707
  },
705
708
  });
706
- const router = createHybridRouter(providerManager, {
707
- mode: 'manual',
708
- defaultProvider: provider,
709
- defaultModel: model,
710
- });
711
- await router.initialize();
712
- const executor = new MultiModelExecutor(router);
709
+ if (!built) {
710
+ throw new Error(`No enabled LLM provider is available for advisor${requestedProvider ? ` provider "${requestedProvider}"` : ''}.`);
711
+ }
712
+ // With no CLI/MCP override, honor the project's resolved default. Falling
713
+ // back to OpenRouter here made declared external defaults unreachable when
714
+ // an OpenRouter key happened to coexist in the environment.
715
+ const provider = requestedProvider ?? built.resolvedConfig.defaultProvider;
716
+ const model = options.model ?? built.resolvedConfig.providers?.[provider]?.defaultModel ??
717
+ built.resolvedConfig.defaultModel ?? DEFAULT_ADVISOR_MODEL;
718
+ const executor = new MultiModelExecutor(built.router);
713
719
  const redactMode = (options.redact ?? 'strict');
714
720
  const result = await executor.consult(transcript, {
715
721
  provider,
@@ -22,6 +22,7 @@ export interface PlatformVerificationResult {
22
22
  export interface PlatformVerificationOptions {
23
23
  expectMcp?: boolean;
24
24
  expectRuflo?: boolean;
25
+ guidancePolicy?: 'full' | 'compact' | 'none';
25
26
  }
26
27
  /** Inspect the complete installed surface for a platform without changing it. */
27
28
  export declare function verifyPlatformConfiguration(projectRoot: string, platformId: PlatformId, options?: PlatformVerificationOptions): PlatformVerificationResult;
@@ -7,7 +7,7 @@
7
7
  * setup - Set up a specific platform by name
8
8
  * verify - Verify a platform's configuration
9
9
  */
10
- import { Command } from 'commander';
10
+ import { Command, Option } from 'commander';
11
11
  import chalk from 'chalk';
12
12
  import { existsSync, readFileSync } from 'node:fs';
13
13
  import path from 'node:path';
@@ -65,6 +65,14 @@ function checkAqeEntry(filePath, _platform) {
65
65
  return false;
66
66
  }
67
67
  }
68
+ function detectCodexGuidance(content) {
69
+ const start = '<!-- BEGIN AGENTIC-QE CODEX -->';
70
+ const end = '<!-- END AGENTIC-QE CODEX -->';
71
+ const blocks = content.match(/<!-- BEGIN AGENTIC-QE CODEX -->[\s\S]*?<!-- END AGENTIC-QE CODEX -->/g) || [];
72
+ if (blocks.length === 0)
73
+ return content.includes(start) || content.includes(end) ? 'malformed' : 'none';
74
+ return blocks[0].includes('Discover AQE tools and skills from their live schemas') ? 'compact' : 'full';
75
+ }
68
76
  /** Inspect the complete installed surface for a platform without changing it. */
69
77
  export function verifyPlatformConfiguration(projectRoot, platformId, options = {}) {
70
78
  const platform = PLATFORM_REGISTRY[platformId];
@@ -90,10 +98,14 @@ export function verifyPlatformConfiguration(projectRoot, platformId, options = {
90
98
  }
91
99
  const rulesPath = path.join(projectRoot, platform.rulesPath);
92
100
  const rulesExists = existsSync(rulesPath);
93
- add('Behavioral rules', rulesExists, rulesExists ? platform.rulesPath : `missing: ${platform.rulesPath}`);
94
- if (platformId === 'codex' && rulesExists) {
95
- const rules = readFileSync(rulesPath, 'utf-8');
96
- add('AQE instructions', rules.includes('Quality Engineering Standards (Agentic QE)'), 'AGENTS.md contains generated AQE guidance');
101
+ if (platformId === 'codex') {
102
+ const expected = options.guidancePolicy ?? 'full';
103
+ const actual = rulesExists ? detectCodexGuidance(readFileSync(rulesPath, 'utf-8')) : 'none';
104
+ add('Behavioral rules', expected === 'none' || rulesExists, expected === 'none' ? 'intentionally disabled' : (rulesExists ? platform.rulesPath : `missing: ${platform.rulesPath}`));
105
+ add('Codex guidance', actual === expected, `selected=${expected}, detected=${actual}`);
106
+ }
107
+ else {
108
+ add('Behavioral rules', rulesExists, rulesExists ? platform.rulesPath : `missing: ${platform.rulesPath}`);
97
109
  }
98
110
  if (platformId === 'codex') {
99
111
  const hooksPath = path.join(projectRoot, '.codex', 'hooks.json');
@@ -175,6 +187,9 @@ export function createPlatformCommand() {
175
187
  .description('Set up a specific platform configuration')
176
188
  .option('--overwrite', 'Overwrite existing configuration files')
177
189
  .option('--with-ruflo', 'Add optional Ruflo guidance and lifecycle hooks (Codex only)')
190
+ .addOption(new Option('--codex-guidance <mode>', 'Codex AGENTS.md guidance policy')
191
+ .choices(['full', 'compact', 'none'])
192
+ .default('full'))
178
193
  .action(async (name, options) => {
179
194
  const projectRoot = process.cwd();
180
195
  if (!isValidPlatformId(name)) {
@@ -222,7 +237,10 @@ export function createPlatformCommand() {
222
237
  const installer = factory({
223
238
  projectRoot,
224
239
  overwrite: options.overwrite,
225
- ...(name === 'codex' ? { includeRuflo: options.withRuflo } : {}),
240
+ ...(name === 'codex' ? {
241
+ includeRuflo: options.withRuflo,
242
+ guidancePolicy: options.codexGuidance,
243
+ } : {}),
226
244
  });
227
245
  const result = await installer.install();
228
246
  if (result.success) {
@@ -262,6 +280,9 @@ export function createPlatformCommand() {
262
280
  .description('Verify a platform configuration is correct')
263
281
  .option('--no-mcp', 'Verify a deliberately MCP-free platform installation')
264
282
  .option('--with-ruflo', 'Require optional Ruflo guidance and lifecycle hooks (Codex only)')
283
+ .addOption(new Option('--codex-guidance <mode>', 'Expected Codex AGENTS.md guidance policy')
284
+ .choices(['full', 'compact', 'none'])
285
+ .default('full'))
265
286
  .action(async (name, options) => {
266
287
  const projectRoot = process.cwd();
267
288
  if (!isValidPlatformId(name)) {
@@ -279,6 +300,7 @@ export function createPlatformCommand() {
279
300
  const verification = verifyPlatformConfiguration(projectRoot, name, {
280
301
  expectMcp: options.mcp !== false,
281
302
  expectRuflo: options.withRuflo,
303
+ guidancePolicy: options.codexGuidance,
282
304
  });
283
305
  for (const check of verification.checks) {
284
306
  const message = ` [${check.passed ? 'pass' : 'fail'}] ${check.label}: ${check.detail}`;
@@ -19,7 +19,7 @@ import { runQualityGate, listChecklistIds, } from '../../validation/quality-gate
19
19
  import { createRouterFrontierJudge, createUnavailableJudge, } from '../../validation/frontier-judge.js';
20
20
  export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitialized) {
21
21
  return new Command('quality-gate')
22
- .description('Two-gate, three-valued quality verdict against a pinned ADR-117 checklist (ADR-119)')
22
+ .description('Fail-closed quality and verification-reach verdict against a pinned checklist')
23
23
  .option('-c, --checklist <id>', 'Pinned anchor checklist id (e.g. A1-inRange)')
24
24
  .option('-a, --artifact-file <path>', 'File containing the artifact under judgement')
25
25
  .option('--artifact <text>', 'Inline artifact text (alternative to --artifact-file)')
@@ -27,6 +27,7 @@ export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitia
27
27
  .option('--baseline-passed', 'Tests executed against the reference implementation')
28
28
  .option('--oracle-file <path>', 'JSON file with { passed, baselinePassed } from the ADR-113 oracle')
29
29
  .option('--anchor <path>', 'Override the frozen anchor path (ADR-117)')
30
+ .option('--verification-manifest <path>', 'Revision-bound failure-mode reach manifest (#651)')
30
31
  .option('--model <id>', 'Frontier judge model id (ADR-111: always frontier-tier)')
31
32
  .option('--list', 'List the available pinned checklist ids and exit')
32
33
  .option('-F, --format <format>', 'Output format (text|json)', 'text')
@@ -64,13 +65,14 @@ export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitia
64
65
  checklistId: options.checklist,
65
66
  judge,
66
67
  anchorPath: options.anchor,
68
+ verificationManifest: resolveVerificationManifest(options.verificationManifest),
67
69
  };
68
70
  const result = await runQualityGate(request);
69
71
  if (format === 'json') {
70
72
  writeOutput(toJSON(result), options.output);
71
73
  }
72
74
  else {
73
- printVerdict(result.verdict, result.mechanical, result.specCoverage, result.unmet, result.reason);
75
+ printVerdict(result.verdict, result.qualityVerdict, result.coverageVerdict, result.mechanical, result.specCoverage, result.unmet, result.reason, result.verification);
74
76
  }
75
77
  // Exit codes: 0 pass, 1 fail, 3 inconclusive (distinct so CI can branch).
76
78
  const code = result.verdict === 'pass' ? 0 : result.verdict === 'fail' ? 1 : 3;
@@ -82,6 +84,11 @@ export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitia
82
84
  }
83
85
  });
84
86
  }
87
+ function resolveVerificationManifest(path) {
88
+ if (!path)
89
+ return undefined;
90
+ return JSON.parse(fs.readFileSync(path, 'utf8'));
91
+ }
85
92
  function resolveArtifact(options) {
86
93
  if (typeof options.artifact === 'string')
87
94
  return options.artifact;
@@ -121,11 +128,13 @@ export async function buildJudge(model) {
121
128
  logger: (message) => console.error(message),
122
129
  });
123
130
  }
124
- function printVerdict(verdict, mechanical, specCoverage, unmet, reason) {
131
+ function printVerdict(verdict, qualityVerdict, coverageVerdict, mechanical, specCoverage, unmet, reason, verification) {
125
132
  const icon = verdict === 'pass' ? chalk.green('✓ PASS')
126
133
  : verdict === 'fail' ? chalk.red('✗ FAIL')
127
134
  : chalk.yellow('? INCONCLUSIVE');
128
135
  console.log(`\n Quality Gate: ${icon}`);
136
+ console.log(` Quality verdict: ${qualityVerdict}`);
137
+ console.log(` Coverage verdict: ${coverageVerdict}`);
129
138
  console.log(` Mechanical gate: ${mechanical === 'pass' ? chalk.green('pass') : chalk.red('fail')}`);
130
139
  if (specCoverage != null)
131
140
  console.log(` Spec coverage: ${chalk.cyan((specCoverage * 100).toFixed(0) + '%')}`);
@@ -134,6 +143,19 @@ function printVerdict(verdict, mechanical, specCoverage, unmet, reason) {
134
143
  for (const u of unmet)
135
144
  console.log(chalk.gray(` - ${u}`));
136
145
  }
146
+ if (verification.kind === 'legacy-unknown') {
147
+ console.log(chalk.yellow(` Verification reach: ${verification.reason}`));
148
+ }
149
+ else {
150
+ console.log(chalk.cyan(' Verification reach:'));
151
+ for (const risk of verification.risks) {
152
+ const direct = risk.directCheckIds.join(', ') || 'none';
153
+ const partial = risk.partialCheckIds.join(', ') || 'none';
154
+ const uncovered = risk.uncoveredObservations.join(', ') || 'none';
155
+ console.log(` ${risk.riskId}: ${risk.verdict}`);
156
+ console.log(chalk.gray(` direct=${direct}; partial=${partial}; uncovered=${uncovered}`));
157
+ }
158
+ }
137
159
  console.log(chalk.gray(` ${reason}\n`));
138
160
  }
139
161
  //# sourceMappingURL=quality-gate.js.map
@@ -29,6 +29,7 @@ export class BrainHandler {
29
29
  .requiredOption('-o, --output <path>', 'Output directory path')
30
30
  .option('--format <format>', 'Export format: rvf (default) or jsonl', 'rvf')
31
31
  .option('--db <path>', 'Source database path')
32
+ .option('--force-overwrite-richer', 'Allow replacing an existing RVF with fewer patterns', false)
32
33
  .action(async (options) => {
33
34
  await this.executeExport(options);
34
35
  });
@@ -90,6 +91,7 @@ export class BrainHandler {
90
91
  const manifest = await exportBrain(dbPath, {
91
92
  outputPath: path.resolve(options.output),
92
93
  format: options.format,
94
+ allowOverwriteRicher: options.forceOverwriteRicher,
93
95
  });
94
96
  console.log(chalk.green(' Export complete.'));
95
97
  console.log(` Format: ${chalk.cyan('format' in manifest ? manifest.format ?? 'jsonl' : 'jsonl')}`);
@@ -66,6 +66,10 @@ export interface InitJsonOutput {
66
66
  agents: number;
67
67
  skills: number;
68
68
  };
69
+ codexGuidance?: {
70
+ policy: 'full' | 'compact' | 'none';
71
+ ownedBytes: number;
72
+ };
69
73
  };
70
74
  totalDurationMs: number;
71
75
  timestamp: string;
@@ -94,6 +98,7 @@ interface InitOptions {
94
98
  withRoocode?: boolean;
95
99
  withCodex?: boolean;
96
100
  withRuflo?: boolean;
101
+ codexGuidance?: 'full' | 'compact' | 'none';
97
102
  withWindsurf?: boolean;
98
103
  withContinuedev?: boolean;
99
104
  withAllPlatforms?: boolean;
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Handles the 'aqe init' command for system initialization.
5
5
  */
6
+ import { Option } from 'commander';
6
7
  import chalk from 'chalk';
7
8
  import { createRequire } from 'node:module';
8
9
  import { ALL_DOMAINS } from '../../shared/types/index.js';
@@ -49,6 +50,9 @@ export class InitHandler {
49
50
  .option('--with-kilocode', 'Include Kilo Code MCP config and custom QE mode')
50
51
  .option('--with-roocode', 'Include Roo Code MCP config and custom QE mode')
51
52
  .option('--with-codex', 'Include OpenAI Codex CLI MCP, AGENTS.md, hooks, and QE skills')
53
+ .addOption(new Option('--codex-guidance <mode>', 'Codex AGENTS.md guidance policy')
54
+ .choices(['full', 'compact', 'none'])
55
+ .default('full'))
52
56
  .option('--with-ruflo', 'Add optional Ruflo guidance and lifecycle hooks to the Codex setup')
53
57
  .option('--with-windsurf', 'Include Windsurf MCP config and rules')
54
58
  .option('--with-continuedev', 'Include Continue.dev MCP config and rules')
@@ -181,6 +185,7 @@ export class InitHandler {
181
185
  withRooCode: options.withRoocode,
182
186
  withCodex: options.withCodex,
183
187
  withRuflo: options.withRuflo,
188
+ codexGuidance: options.codexGuidance,
184
189
  withWindsurf: options.withWindsurf,
185
190
  withContinueDev: options.withContinuedev,
186
191
  noMcp: options.noMcp && !options.withMcp,
@@ -447,6 +452,7 @@ Options:
447
452
  --with-n8n Install n8n workflow testing agents and skills
448
453
  --with-opencode Include OpenCode agent/skill provisioning
449
454
  --with-codex Include OpenAI Codex hooks, instructions, skills, and MCP
455
+ --codex-guidance <mode> Codex AGENTS.md guidance: full, compact, or none
450
456
  --with-ruflo Opt into Ruflo guidance and lifecycle hooks for Codex
451
457
  --auto-migrate Automatically migrate from v2 if detected
452
458
  --with-claude-flow Force Claude Flow integration setup
package/dist/cli/index.js CHANGED
@@ -10,6 +10,7 @@
10
10
  * See: cli/commands/ for additional command modules
11
11
  */
12
12
  import { toErrorMessage } from '../shared/error-utils.js';
13
+ import { createRequire } from 'node:module';
13
14
  import { Command } from 'commander';
14
15
  import chalk from 'chalk';
15
16
  import { ALL_DOMAINS } from '../shared/types/index.js';
@@ -207,7 +208,9 @@ async function cleanupAndExit(code = 0) {
207
208
  // CLI Program
208
209
  // ============================================================================
209
210
  const program = new Command();
210
- const VERSION = typeof __CLI_VERSION__ !== 'undefined' ? __CLI_VERSION__ : '0.0.0-dev';
211
+ const require = createRequire(import.meta.url);
212
+ const packageVersion = require('../../package.json').version;
213
+ const VERSION = typeof __CLI_VERSION__ !== 'undefined' ? __CLI_VERSION__ : packageVersion;
211
214
  program
212
215
  .name('aqe')
213
216
  .description('Agentic QE - Domain-Driven Quality Engineering')
@@ -24,6 +24,7 @@ export { Tier1Microcompact, type Tier1Result } from './tier1-microcompact';
24
24
  export { Tier2SessionSummary, type ConversationMessage, type Tier2Result, type SessionSummaryOptions } from './tier2-session-summary';
25
25
  export { Tier3LLMCompact, type Tier3Result, type LLMCompactCaller, type Tier3Options } from './tier3-llm-compact';
26
26
  export { Tier4Reactive, type Tier4Result, type Tier4Options } from './tier4-reactive';
27
+ export { hashContextContent, leastTrustedAuthority, type ContextSourceKind, type InstructionAuthority, type InstructionProvenance, type ProvenancedContent, } from './instruction-provenance';
27
28
  export interface CompactionPipelineOptions {
28
29
  /** Total context budget in tokens (default: 100_000) */
29
30
  totalBudget?: number;
@@ -25,6 +25,7 @@ export { Tier1Microcompact } from './tier1-microcompact.js';
25
25
  export { Tier2SessionSummary } from './tier2-session-summary.js';
26
26
  export { Tier3LLMCompact } from './tier3-llm-compact.js';
27
27
  export { Tier4Reactive } from './tier4-reactive.js';
28
+ export { hashContextContent, leastTrustedAuthority, } from './instruction-provenance.js';
28
29
  // ============================================================================
29
30
  // CompactionPipeline
30
31
  // ============================================================================
@@ -138,6 +139,8 @@ export class CompactionPipeline {
138
139
  content: t3.summary,
139
140
  timestamp: Date.now(),
140
141
  estimatedTokens: t3.summaryTokens,
142
+ id: t3.summaryItem?.id,
143
+ provenance: t3.summaryItem,
141
144
  }];
142
145
  this.budget.releaseTokens(t3.tokensSaved);
143
146
  }
@@ -0,0 +1,20 @@
1
+ export type InstructionAuthority = 'system-effective' | 'user-authorized' | 'assistant-derived' | 'tool-observation' | 'memory-derived' | 'unknown';
2
+ export type ContextSourceKind = 'user' | 'tool' | 'file' | 'web' | 'agent' | 'memory' | 'skill' | 'goal' | 'schedule';
3
+ export interface InstructionProvenance {
4
+ authority: InstructionAuthority;
5
+ /** Immutable authority at the start of this item's derivation chain. */
6
+ originAuthority: InstructionAuthority;
7
+ sourceKind: ContextSourceKind;
8
+ sourceRef?: string;
9
+ parentIds: string[];
10
+ contentHash: string;
11
+ createdAt: string;
12
+ mayInduceAction: boolean;
13
+ }
14
+ export interface ProvenancedContent extends InstructionProvenance {
15
+ id: string;
16
+ content: string;
17
+ }
18
+ export declare function hashContextContent(content: string): string;
19
+ export declare function leastTrustedAuthority(authorities: InstructionAuthority[]): InstructionAuthority;
20
+ //# sourceMappingURL=instruction-provenance.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { createHash } from 'node:crypto';
2
+ const AUTHORITY_TRUST = {
3
+ unknown: 0,
4
+ 'tool-observation': 1,
5
+ 'memory-derived': 1,
6
+ 'assistant-derived': 2,
7
+ 'user-authorized': 3,
8
+ 'system-effective': 4,
9
+ };
10
+ export function hashContextContent(content) {
11
+ return createHash('sha256').update(content).digest('hex');
12
+ }
13
+ export function leastTrustedAuthority(authorities) {
14
+ if (authorities.length === 0)
15
+ return 'unknown';
16
+ return authorities.reduce((least, current) => AUTHORITY_TRUST[current] < AUTHORITY_TRUST[least] ? current : least);
17
+ }
18
+ //# sourceMappingURL=instruction-provenance.js.map
@@ -12,6 +12,7 @@
12
12
  * - Retains at least `minRecentTokens` of recent conversation
13
13
  * - Caps summary at `maxSummaryTokens`
14
14
  */
15
+ import { type InstructionProvenance, type ProvenancedContent } from './instruction-provenance';
15
16
  export interface ConversationMessage {
16
17
  role: 'user' | 'assistant' | 'tool_use' | 'tool_result';
17
18
  content: string;
@@ -20,6 +21,10 @@ export interface ConversationMessage {
20
21
  estimatedTokens?: number;
21
22
  /** If this is a tool_use, the ID linking it to its tool_result pair */
22
23
  toolUseId?: string;
24
+ /** Stable item identity used by derived summaries. */
25
+ id?: string;
26
+ /** Missing legacy provenance is treated as unknown and non-authorizing. */
27
+ provenance?: InstructionProvenance;
23
28
  }
24
29
  export interface SessionSummaryOptions {
25
30
  /** Minimum tokens of recent conversation to preserve (default: 10_000) */
@@ -31,6 +36,8 @@ export interface Tier2Result {
31
36
  tier: 2;
32
37
  /** The condensed summary text */
33
38
  summary: string;
39
+ /** Non-authorizing envelope for the derived summary. */
40
+ summaryItem?: ProvenancedContent;
34
41
  /** Tokens in the summary */
35
42
  summaryTokens: number;
36
43
  /** Messages preserved verbatim (recent tail) */
@@ -58,6 +65,7 @@ export declare class Tier2SessionSummary {
58
65
  * 3. Return summary + preserved tail.
59
66
  */
60
67
  compact(messages: ConversationMessage[]): Tier2Result;
68
+ private deriveSummaryItem;
61
69
  /**
62
70
  * Walk backward to find the first index where we've accumulated enough
63
71
  * recent tokens. Never splits a tool_use/tool_result pair.
@@ -13,6 +13,7 @@
13
13
  * - Caps summary at `maxSummaryTokens`
14
14
  */
15
15
  import { estimateTokensPadded } from '../../mcp/middleware/microcompact.js';
16
+ import { hashContextContent, leastTrustedAuthority, } from './instruction-provenance.js';
16
17
  // ============================================================================
17
18
  // Defaults
18
19
  // ============================================================================
@@ -63,11 +64,13 @@ export class Tier2SessionSummary {
63
64
  const preservedTokens = toPreserve.reduce((s, m) => s + m.estimatedTokens, 0);
64
65
  // Build summary from the older messages
65
66
  const summary = this.buildSummary(toSummarize);
67
+ const summaryItem = summary ? this.deriveSummaryItem(summary, toSummarize) : undefined;
66
68
  const summaryTokens = Math.min(estimateTokensPadded(summary), this.maxSummaryTokens);
67
69
  const tokensSaved = originalTokens - preservedTokens - summaryTokens;
68
70
  return {
69
71
  tier: 2,
70
72
  summary,
73
+ summaryItem,
71
74
  summaryTokens,
72
75
  preservedMessages: toPreserve,
73
76
  preservedTokens,
@@ -76,6 +79,23 @@ export class Tier2SessionSummary {
76
79
  tokensSaved: Math.max(0, tokensSaved),
77
80
  };
78
81
  }
82
+ deriveSummaryItem(summary, parents) {
83
+ const parentIds = parents.map(message => message.id ?? `sha256:${hashContextContent(message.content)}`);
84
+ const originAuthority = leastTrustedAuthority(parents.map(message => message.provenance?.originAuthority ?? 'unknown'));
85
+ const contentHash = hashContextContent(summary);
86
+ return {
87
+ id: `tier2:${contentHash}`,
88
+ content: summary,
89
+ authority: 'assistant-derived',
90
+ originAuthority,
91
+ sourceKind: 'agent',
92
+ sourceRef: 'context-compaction:tier2',
93
+ parentIds,
94
+ contentHash,
95
+ createdAt: new Date().toISOString(),
96
+ mayInduceAction: true,
97
+ };
98
+ }
79
99
  // --------------------------------------------------------------------------
80
100
  // Internal
81
101
  // --------------------------------------------------------------------------
@@ -18,6 +18,7 @@
18
18
  * 9. Suggested Next Action
19
19
  */
20
20
  import type { ConversationMessage } from './tier2-session-summary';
21
+ import { type ProvenancedContent } from './instruction-provenance';
21
22
  export interface Tier3Options {
22
23
  /** Max tokens reserved for the summary output (default: 20_000) */
23
24
  maxSummaryTokens?: number;
@@ -39,6 +40,8 @@ export interface Tier3Result {
39
40
  tier: 3;
40
41
  /** The structured 9-section summary */
41
42
  summary: string;
43
+ /** Non-authorizing envelope retaining the summary's derivation chain. */
44
+ summaryItem?: ProvenancedContent;
42
45
  /** Tokens in the summary */
43
46
  summaryTokens: number;
44
47
  /** Original message count */
@@ -59,6 +62,7 @@ export declare class Tier3LLMCompact {
59
62
  compact(messages: ConversationMessage[]): Promise<Tier3Result>;
60
63
  /** Build a compact transcript for the LLM prompt. */
61
64
  private buildTranscript;
65
+ private deriveSummaryItem;
62
66
  /** Extractive fallback when no LLM is available. */
63
67
  private extractiveFallback;
64
68
  }