agentic-qe 3.15.5 → 3.15.7

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 (584) hide show
  1. package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
  2. package/.claude/skills/qe-court/evals/qe-court.yaml +3 -2
  3. package/.claude/skills/qe-quality-assessment/schemas/output.json +12 -2
  4. package/.claude/skills/skills-manifest.json +1 -1
  5. package/CHANGELOG.md +262 -0
  6. package/README.md +2 -0
  7. package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/README.md +9 -2
  8. package/assets/skills/qe-court/evals/qe-court.yaml +3 -2
  9. package/assets/skills/qe-quality-assessment/schemas/output.json +12 -2
  10. package/assets/skills/skills-manifest.json +1 -1
  11. package/dist/cli/bundle.js +8 -6
  12. package/dist/cli/chunks/adapter-PEOUNYXJ.js +2 -0
  13. package/dist/cli/chunks/{agent-booster-wasm-CCTTGCQS.js → agent-booster-wasm-OS5G7KMQ.js} +2 -2
  14. package/dist/cli/chunks/{agent-handler-DHYUF3NX.js → agent-handler-PI4I7PME.js} +2 -2
  15. package/dist/cli/chunks/{agent-memory-branch-642W7CYX.js → agent-memory-branch-J7TXHX4U.js} +2 -2
  16. package/dist/cli/chunks/aqe-learning-engine-DHKZI5RX.js +2 -0
  17. package/dist/cli/chunks/{arena-MUCC7UUN.js → arena-FXESDCFR.js} +4 -4
  18. package/dist/cli/chunks/{arena-NW2JVAFY.js → arena-OWUGXKNT.js} +2 -2
  19. package/dist/cli/chunks/{audit-VKQTZJAA.js → audit-EPAWLYIZ.js} +3 -3
  20. package/dist/cli/chunks/base-QZWK3D5P.js +2 -0
  21. package/dist/cli/chunks/{better-sqlite3-7ZUFVWLQ.js → better-sqlite3-IYVR5EQY.js} +2 -2
  22. package/dist/cli/chunks/{brain-handler-7LKAWSBI.js → brain-handler-3W2E6TC6.js} +3 -3
  23. package/dist/cli/chunks/{branch-enumerator-HUNXJKM4.js → branch-enumerator-HU7VACJ4.js} +2 -2
  24. package/dist/cli/chunks/{browser-ZSZEYUDP.js → browser-72XOR6E2.js} +2 -2
  25. package/dist/cli/chunks/browser-workflow-ITPX72RX.js +2 -0
  26. package/dist/cli/chunks/{chunk-PVAE65B4.js → chunk-2423JAA5.js} +1 -1
  27. package/dist/cli/chunks/{chunk-VLOIEVER.js → chunk-24CENUT4.js} +3 -3
  28. package/dist/cli/chunks/chunk-2AYBYXOA.js +4 -0
  29. package/dist/cli/chunks/{chunk-FWYJ6UDX.js → chunk-2E3XWKEU.js} +2 -2
  30. package/dist/cli/chunks/{chunk-L375O3CZ.js → chunk-2RJYA6WK.js} +2 -2
  31. package/dist/cli/chunks/{chunk-SDWMLT7B.js → chunk-2YVJ5OUL.js} +5 -5
  32. package/dist/cli/chunks/{chunk-WN55MNZ2.js → chunk-34JLY3U6.js} +2 -2
  33. package/dist/cli/chunks/{chunk-6ZIDZ4TJ.js → chunk-3JD2USUH.js} +2 -2
  34. package/dist/cli/chunks/{chunk-5BOZCMXZ.js → chunk-3RM46XFP.js} +1 -1
  35. package/dist/cli/chunks/{chunk-UE22ODHN.js → chunk-44DPYNPE.js} +1 -1
  36. package/dist/cli/chunks/{chunk-AUZXRFOX.js → chunk-4DIZ5BT6.js} +2 -2
  37. package/dist/cli/chunks/{chunk-RUSLEOMC.js → chunk-4G2VNW4C.js} +2 -2
  38. package/dist/cli/chunks/{chunk-VML4SG3X.js → chunk-56ZKQYZY.js} +3 -3
  39. package/dist/cli/chunks/{chunk-FHUJCVT3.js → chunk-5KCBX225.js} +2 -2
  40. package/dist/cli/chunks/chunk-5KS7HA37.js +2 -0
  41. package/dist/cli/chunks/{chunk-IJ2EXSMO.js → chunk-5PBRBS7D.js} +2 -2
  42. package/dist/cli/chunks/chunk-5Q22XPTH.js +2 -0
  43. package/dist/cli/chunks/{chunk-PDPEMBFV.js → chunk-634D2ENF.js} +2 -2
  44. package/dist/cli/chunks/{chunk-BYXNHGQC.js → chunk-6AYRAOCA.js} +2 -2
  45. package/dist/cli/chunks/{chunk-ORTBRO7F.js → chunk-6BO3WCK7.js} +2 -2
  46. package/dist/cli/chunks/{chunk-6LG5UEQE.js → chunk-6FEQ73BF.js} +2 -2
  47. package/dist/cli/chunks/{chunk-JYY7AYGA.js → chunk-6JT73S5B.js} +1 -1
  48. package/dist/cli/chunks/{chunk-LNO5IWGH.js → chunk-6OS7HREG.js} +1 -1
  49. package/dist/cli/chunks/{chunk-XNEEYXR2.js → chunk-6PKCQXEW.js} +2 -2
  50. package/dist/cli/chunks/{chunk-KHCALIFP.js → chunk-7EX4DEQR.js} +2 -2
  51. package/dist/cli/chunks/chunk-7UCVYYWL.js +3 -0
  52. package/dist/cli/chunks/chunk-AAA4SHEG.js +2 -0
  53. package/dist/cli/chunks/{chunk-DTJODGCE.js → chunk-AXO7OOOA.js} +2 -2
  54. package/dist/cli/chunks/{chunk-ZT3GUYM5.js → chunk-B7M323VL.js} +2 -2
  55. package/dist/cli/chunks/{chunk-L6SVCNXK.js → chunk-BB7OLQKO.js} +1 -1
  56. package/dist/cli/chunks/{chunk-6UYN5PHA.js → chunk-BTIBXGVQ.js} +4 -4
  57. package/dist/cli/chunks/chunk-BTYKGVJ5.js +2 -0
  58. package/dist/cli/chunks/{chunk-6JFGB2JB.js → chunk-C2CUPJGR.js} +1 -1
  59. package/dist/cli/chunks/{chunk-EAYQCBXL.js → chunk-C2MDBBFF.js} +3 -3
  60. package/dist/cli/chunks/{chunk-3AYYGR6W.js → chunk-CG5DZCOZ.js} +1 -1
  61. package/dist/cli/chunks/chunk-CIFWOMNX.js +2 -0
  62. package/dist/cli/chunks/{chunk-Y2WMPEUP.js → chunk-CWPRU7ZI.js} +2 -2
  63. package/dist/cli/chunks/{chunk-XNHB6TLC.js → chunk-CXTJ47QS.js} +2 -2
  64. package/dist/cli/chunks/{chunk-4PT5KNXL.js → chunk-DCJW2DPL.js} +4 -4
  65. package/dist/cli/chunks/{chunk-VCKDVOPD.js → chunk-DGK6GQMO.js} +2 -2
  66. package/dist/cli/chunks/{chunk-47GEI2LT.js → chunk-DVPGBDBP.js} +3 -3
  67. package/dist/cli/chunks/chunk-EB2PP6X2.js +2 -0
  68. package/dist/cli/chunks/{chunk-CXOXUBYU.js → chunk-ECSLJJOQ.js} +1 -1
  69. package/dist/cli/chunks/{chunk-A2WOQO2N.js → chunk-ED32XJ5R.js} +2 -2
  70. package/dist/cli/chunks/{chunk-35MDATQE.js → chunk-EDU72RTW.js} +1 -1
  71. package/dist/cli/chunks/{chunk-PCCIZFD7.js → chunk-EL75G2A3.js} +1 -1
  72. package/dist/cli/chunks/{chunk-4UXPDV7E.js → chunk-EV2BYY6T.js} +1 -1
  73. package/dist/cli/chunks/{chunk-3YASZPLO.js → chunk-F62EKVVC.js} +2 -2
  74. package/dist/cli/chunks/{chunk-AQN5EDBM.js → chunk-FTTFJ7SJ.js} +1 -1
  75. package/dist/cli/chunks/chunk-FVBFASOD.js +2 -0
  76. package/dist/cli/chunks/{chunk-QXY3IRBW.js → chunk-G762PEFO.js} +26 -26
  77. package/dist/cli/chunks/{chunk-A5J4XJS6.js → chunk-G7YTZTGU.js} +1 -1
  78. package/dist/cli/chunks/{chunk-YINFES3E.js → chunk-GY2SAIXP.js} +2 -2
  79. package/dist/cli/chunks/chunk-H4WHDFB5.js +4 -0
  80. package/dist/cli/chunks/chunk-HLZATDD2.js +2 -0
  81. package/dist/cli/chunks/{chunk-7EZLOC4K.js → chunk-HPG7354V.js} +2 -2
  82. package/dist/cli/chunks/{chunk-HLFDC4SF.js → chunk-HSDOOFV7.js} +1 -1
  83. package/dist/cli/chunks/{chunk-MQGEZA2A.js → chunk-HTWIGQL4.js} +2 -2
  84. package/dist/cli/chunks/{chunk-HBYQYGXP.js → chunk-HXBAQKMH.js} +2 -2
  85. package/dist/cli/chunks/chunk-HZFT3P5B.js +2 -0
  86. package/dist/cli/chunks/{chunk-MS3Z2CP5.js → chunk-I7H4IP7T.js} +2 -2
  87. package/dist/cli/chunks/{chunk-IHFUEPZH.js → chunk-IARSGAG7.js} +2 -2
  88. package/dist/cli/chunks/{chunk-ZTC5FBL6.js → chunk-IC2WSSD5.js} +8 -8
  89. package/dist/cli/chunks/{chunk-GKPRECLL.js → chunk-ICPALF4Q.js} +2 -2
  90. package/dist/cli/chunks/{chunk-FQKEZVN6.js → chunk-IWQQIXHO.js} +2 -2
  91. package/dist/cli/chunks/{chunk-DWZI3IVB.js → chunk-IYQ7XNE5.js} +2 -2
  92. package/dist/cli/chunks/{chunk-ZLBBX24Q.js → chunk-J26GADQE.js} +418 -412
  93. package/dist/cli/chunks/{chunk-NMJVG22Z.js → chunk-J43DV3ME.js} +1 -1
  94. package/dist/cli/chunks/{chunk-EUEHBERE.js → chunk-JFPXCQNP.js} +1 -1
  95. package/dist/cli/chunks/{chunk-3YNP33GB.js → chunk-JK6B3ULP.js} +2 -2
  96. package/dist/cli/chunks/{chunk-FBEXG4HD.js → chunk-JPHDMHFG.js} +2 -2
  97. package/dist/cli/chunks/{chunk-U6OVPMQX.js → chunk-JVYPXW6Y.js} +2 -2
  98. package/dist/cli/chunks/{chunk-X52TMBHU.js → chunk-JY4AIEZ7.js} +1 -1
  99. package/dist/cli/chunks/{chunk-MNQ36MAF.js → chunk-JY4WLN3K.js} +2 -2
  100. package/dist/cli/chunks/{chunk-E4VIVMDL.js → chunk-JYXOFN3E.js} +2 -2
  101. package/dist/cli/chunks/{chunk-CR2JUANW.js → chunk-K7W55B7Q.js} +3 -3
  102. package/dist/cli/chunks/{chunk-WLIYWBQR.js → chunk-KPOPBUUJ.js} +2 -2
  103. package/dist/cli/chunks/{chunk-DXVZBJE4.js → chunk-LDXQRNTT.js} +1 -1
  104. package/dist/cli/chunks/{chunk-W3ZGNNDV.js → chunk-LDZWIV2O.js} +1 -1
  105. package/dist/cli/chunks/{chunk-VRJPH3LG.js → chunk-LGBN7TKC.js} +2 -2
  106. package/dist/cli/chunks/{chunk-RUJLVJDE.js → chunk-LMEU64TR.js} +2 -2
  107. package/dist/cli/chunks/{chunk-JI77KJP7.js → chunk-LP4AS2E4.js} +1 -1
  108. package/dist/cli/chunks/{chunk-QPV3OKX2.js → chunk-LQOVA4YX.js} +2 -2
  109. package/dist/cli/chunks/{chunk-NLDFNAOS.js → chunk-LVEX4GID.js} +2 -2
  110. package/dist/cli/chunks/{chunk-U4TV75AC.js → chunk-M63QB466.js} +2 -2
  111. package/dist/cli/chunks/{chunk-SAPIRK2G.js → chunk-MDC4G323.js} +1 -1
  112. package/dist/cli/chunks/chunk-MHZPC4HJ.js +2 -0
  113. package/dist/cli/chunks/{chunk-WR64BKUE.js → chunk-MJJC6HUK.js} +1 -1
  114. package/dist/cli/chunks/{chunk-Y7GPLOXB.js → chunk-MKFQNCXI.js} +2 -2
  115. package/dist/cli/chunks/{chunk-BZFT4QDQ.js → chunk-MMXG3LL6.js} +2 -2
  116. package/dist/cli/chunks/{chunk-HGBJ2QQ4.js → chunk-MNCF643K.js} +2 -2
  117. package/dist/cli/chunks/{chunk-XIE7OHML.js → chunk-MNZFEIE5.js} +1 -1
  118. package/dist/cli/chunks/{chunk-FE3AIZI6.js → chunk-MQ6OF6DU.js} +1 -1
  119. package/dist/cli/chunks/{chunk-3QD7U3FY.js → chunk-MRHM4COP.js} +2 -2
  120. package/dist/cli/chunks/{chunk-663ZFPUL.js → chunk-N4PMPSJJ.js} +2 -2
  121. package/dist/cli/chunks/{chunk-DL5JENWD.js → chunk-NZQPP533.js} +3 -3
  122. package/dist/cli/chunks/{chunk-4XSCZVON.js → chunk-OA4GR3EZ.js} +2 -2
  123. package/dist/cli/chunks/{chunk-IJOFZBXD.js → chunk-OJEZNLB6.js} +2 -2
  124. package/dist/cli/chunks/{chunk-OU4ZAWCC.js → chunk-ONVALAZN.js} +2 -2
  125. package/dist/cli/chunks/{chunk-A337MD3C.js → chunk-PEKDSJBC.js} +2 -2
  126. package/dist/cli/chunks/{chunk-D3G2NN7F.js → chunk-PG64YV6C.js} +66 -65
  127. package/dist/cli/chunks/{chunk-VYDNLQJN.js → chunk-PQV7E7XH.js} +2 -2
  128. package/dist/cli/chunks/chunk-PTK66HEY.js +2 -0
  129. package/dist/cli/chunks/{chunk-LRASYSGV.js → chunk-PUECC4WI.js} +2 -2
  130. package/dist/cli/chunks/{chunk-3OAQPN2N.js → chunk-PXZKPUW6.js} +2 -2
  131. package/dist/cli/chunks/chunk-PYHYOKYT.js +2 -0
  132. package/dist/cli/chunks/{chunk-WT3JC4A6.js → chunk-PZG3542B.js} +2 -2
  133. package/dist/cli/chunks/{chunk-RMJ7PJOS.js → chunk-Q2T5FXEA.js} +2 -2
  134. package/dist/cli/chunks/chunk-QJE6ZW2X.js +6 -0
  135. package/dist/cli/chunks/{chunk-2XYTS2WY.js → chunk-QNQSM2OG.js} +2 -2
  136. package/dist/cli/chunks/{chunk-EVCFUYYK.js → chunk-QQT6QENQ.js} +9 -9
  137. package/dist/cli/chunks/{chunk-VH3EB6ZG.js → chunk-QVG4ZDXX.js} +3 -3
  138. package/dist/cli/chunks/chunk-QWLTHFZW.js +16 -0
  139. package/dist/cli/chunks/{chunk-GGDKOJVF.js → chunk-RCYLCA7E.js} +10 -6
  140. package/dist/cli/chunks/{chunk-BMWAWZAN.js → chunk-REEIFA6A.js} +2 -2
  141. package/dist/cli/chunks/{chunk-Y2E3IJ53.js → chunk-RNYX4CPI.js} +2 -2
  142. package/dist/cli/chunks/{chunk-BY646JOM.js → chunk-RORZ5O5Z.js} +2 -2
  143. package/dist/cli/chunks/{chunk-JNMUVBAJ.js → chunk-RRPYWBFX.js} +2 -2
  144. package/dist/cli/chunks/{chunk-XQRE2HWM.js → chunk-RXAFLK34.js} +2 -2
  145. package/dist/cli/chunks/{chunk-UXZEVIFX.js → chunk-SQHLC6I5.js} +1 -1
  146. package/dist/cli/chunks/{chunk-DPV33C77.js → chunk-SSP2B2WR.js} +2 -2
  147. package/dist/cli/chunks/chunk-SX2YSHE7.js +115 -0
  148. package/dist/cli/chunks/chunk-T3ZDVU6F.js +5 -0
  149. package/dist/cli/chunks/{chunk-JCC7QEKZ.js → chunk-T6W5APYP.js} +1 -1
  150. package/dist/cli/chunks/{chunk-DEGWCUMY.js → chunk-TU4LIIOP.js} +2 -2
  151. package/dist/cli/chunks/{chunk-CQMHDAJS.js → chunk-UBYCR3O4.js} +2 -2
  152. package/dist/cli/chunks/{chunk-PHP4UJYP.js → chunk-UCLN6AME.js} +1 -1
  153. package/dist/cli/chunks/{chunk-HIUNCO2W.js → chunk-UIYKR2SA.js} +2 -2
  154. package/dist/cli/chunks/{chunk-ONCH5AXU.js → chunk-UUHIEM2M.js} +18 -18
  155. package/dist/cli/chunks/{chunk-CFPR24YK.js → chunk-UY3REQOK.js} +2 -2
  156. package/dist/cli/chunks/{chunk-FNAYDITO.js → chunk-V2SAEMZY.js} +1 -1
  157. package/dist/cli/chunks/{chunk-JANLATHN.js → chunk-V5NGBQAQ.js} +2 -2
  158. package/dist/cli/chunks/{chunk-644DFAGS.js → chunk-VCA6YYII.js} +1 -1
  159. package/dist/cli/chunks/chunk-VJRZFWR5.js +2 -0
  160. package/dist/cli/chunks/{chunk-7BIYJRQJ.js → chunk-VKPKYMCT.js} +2 -2
  161. package/dist/cli/chunks/{chunk-2KWI3MT3.js → chunk-VNW5Q2CX.js} +2 -2
  162. package/dist/cli/chunks/chunk-VUFRTGML.js +3 -0
  163. package/dist/cli/chunks/{chunk-PHAQWAEV.js → chunk-W4X2VTIY.js} +2 -2
  164. package/dist/cli/chunks/{chunk-PURHGLEC.js → chunk-WTLIEBDH.js} +1 -1
  165. package/dist/cli/chunks/{chunk-3SH23PS3.js → chunk-WUV5RZUI.js} +2 -2
  166. package/dist/cli/chunks/{chunk-OGYWWZU7.js → chunk-WXI2STKQ.js} +2 -2
  167. package/dist/cli/chunks/{chunk-OW42F2TX.js → chunk-XEWXYGJI.js} +2 -2
  168. package/dist/cli/chunks/{chunk-DPYDUKVZ.js → chunk-XNSQZ3O7.js} +2 -2
  169. package/dist/cli/chunks/{chunk-B2UHTA4Q.js → chunk-XTJMY3KS.js} +1 -1
  170. package/dist/cli/chunks/{chunk-NF6AFIAX.js → chunk-XXAVQACL.js} +1 -1
  171. package/dist/cli/chunks/{chunk-V7GNUVYI.js → chunk-Y4SAWE45.js} +1 -1
  172. package/dist/cli/chunks/{chunk-WC47GICZ.js → chunk-Y6A46M3B.js} +2 -2
  173. package/dist/cli/chunks/{chunk-3DTEQHFB.js → chunk-YDZJWDR6.js} +3 -3
  174. package/dist/cli/chunks/{chunk-KJ3KBP24.js → chunk-YFOBQSOW.js} +2 -2
  175. package/dist/cli/chunks/{chunk-MB4VFAJC.js → chunk-YK3NOC2R.js} +2 -2
  176. package/dist/cli/chunks/{chunk-GRIPCYW5.js → chunk-YUC7RJGR.js} +1 -1
  177. package/dist/cli/chunks/{chunk-HPLMX62I.js → chunk-Z3VJLWRR.js} +2 -2
  178. package/dist/cli/chunks/{chunk-EOR3RECZ.js → chunk-ZLVQSEZK.js} +2 -2
  179. package/dist/cli/chunks/{chunk-4AZP7ZCW.js → chunk-ZRLNACPY.js} +2 -2
  180. package/dist/cli/chunks/{chunk-OQDC7GCM.js → chunk-ZTMZFF25.js} +2 -2
  181. package/dist/cli/chunks/chunk-ZUMDDMDE.js +3 -0
  182. package/dist/cli/chunks/ci-5HEXJZ2C.js +81 -0
  183. package/dist/cli/chunks/{ci-config-XDDZOOEI.js → ci-config-WU4NPDAM.js} +2 -2
  184. package/dist/cli/chunks/{ci-output-7ZUQI4U6.js → ci-output-BJQVXX5E.js} +2 -2
  185. package/dist/cli/chunks/{circuit-breaker-ALXKCFAL.js → circuit-breaker-3BMGTQCB.js} +2 -2
  186. package/dist/cli/chunks/{claude-flow-setup-RL7K2NI2.js → claude-flow-setup-GVDGJWMU.js} +2 -2
  187. package/dist/cli/chunks/client-S7GNYTZ5.js +2 -0
  188. package/dist/cli/chunks/{cline-installer-2Z2QQKC3.js → cline-installer-V4MRGWVA.js} +2 -2
  189. package/dist/cli/chunks/{code-QSZTDINQ.js → code-A3TGQPEO.js} +3 -3
  190. package/dist/cli/chunks/{code-index-extractor-5CGR5D3Y.js → code-index-extractor-YJQSYWD3.js} +2 -2
  191. package/dist/cli/chunks/{codex-installer-7JLSEDE5.js → codex-installer-7N7UQPAH.js} +2 -2
  192. package/dist/cli/chunks/{completions-U4NBSXEB.js → completions-PPGVYLZS.js} +2 -2
  193. package/dist/cli/chunks/{complexity-analyzer-WYZD2YSY.js → complexity-analyzer-XZTFLYV5.js} +2 -2
  194. package/dist/cli/chunks/{continuedev-installer-UPXINJFT.js → continuedev-installer-Z5I57RAH.js} +2 -2
  195. package/dist/cli/chunks/{copilot-installer-WIVYQRIF.js → copilot-installer-F5YZ6BHB.js} +2 -2
  196. package/dist/cli/chunks/core-handlers-CUEPOQIO.js +2 -0
  197. package/dist/cli/chunks/{cost-tracker-RIN4JDDM.js → cost-tracker-GO33ZQAP.js} +2 -2
  198. package/dist/cli/chunks/coverage-GSHKLY74.js +49 -0
  199. package/dist/cli/chunks/cross-domain-router-CXN5QFEV.js +2 -0
  200. package/dist/cli/chunks/{cursor-installer-POM7NGCC.js → cursor-installer-JJ7IVJZB.js} +2 -2
  201. package/dist/cli/chunks/daemon-3DQCKRYO.js +10 -0
  202. package/dist/cli/chunks/{daemon-HFGKQ6LB.js → daemon-IRL7QRNE.js} +5 -5
  203. package/dist/cli/chunks/{dag-attention-scheduler-HJXM7Q5P.js → dag-attention-scheduler-ORXSUHPA.js} +2 -2
  204. package/dist/cli/chunks/{detect-XKQGLZYN.js → detect-RHU62KRI.js} +2 -2
  205. package/dist/cli/chunks/{dist-node-SSKB53QL.js → dist-node-3VKV4Z6C.js} +2 -2
  206. package/dist/cli/chunks/{domain-handler-6BNDHATU.js → domain-handler-SFIML4FK.js} +2 -2
  207. package/dist/cli/chunks/{domain-plugins-DOX54YE3.js → domain-plugins-CJ4FA3OC.js} +2 -2
  208. package/dist/cli/chunks/{domain-transfer-FW4ZX3Z7.js → domain-transfer-BCRKPCAA.js} +2 -2
  209. package/dist/cli/chunks/dream-5AUNJW24.js +2 -0
  210. package/dist/cli/chunks/embed-and-insert-pattern-VL3HFLPV.js +3 -0
  211. package/dist/cli/chunks/{eval-K7E4XXBS.js → eval-GGKRI4P5.js} +2 -2
  212. package/dist/cli/chunks/experience-capture-middleware-F72TIRQY.js +40 -0
  213. package/dist/cli/chunks/{fast-paths-5JXXTYAG.js → fast-paths-7KOOF3MA.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-2CR3CO23.js → feature-flags-FNHBTHBH.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-RB72LHOJ.js → feature-flags-IOZEWWFU.js} +2 -2
  216. package/dist/cli/chunks/file-discovery-AYWF357I.js +2 -0
  217. package/dist/cli/chunks/{fleet-SDU7QEOA.js → fleet-QX5KXTRC.js} +3 -3
  218. package/dist/cli/chunks/{gnn-wrapper-AWCFODUV.js → gnn-wrapper-OH2DOQP7.js} +2 -2
  219. package/dist/cli/chunks/{heartbeat-handler-A4PJ3NFP.js → heartbeat-handler-W67NXTNE.js} +4 -4
  220. package/dist/cli/chunks/heartbeat-scheduler-7ZIDVXIP.js +2 -0
  221. package/dist/cli/chunks/hnsw-adapter-P77OC7FM.js +2 -0
  222. package/dist/cli/chunks/hnsw-index-3LBOTQAW.js +2 -0
  223. package/dist/cli/chunks/{hnsw-legacy-bridge-KRS7SSFM.js → hnsw-legacy-bridge-6MLLOGOE.js} +2 -2
  224. package/dist/cli/chunks/{hnswlib-node-OGGCPKPO.js → hnswlib-node-4UDISJ3G.js} +2 -2
  225. package/dist/cli/chunks/{hooks-XNRNMUBW.js → hooks-NOQJWQ4P.js} +43 -43
  226. package/dist/cli/chunks/hybrid-backend-LOM54PDD.js +2 -0
  227. package/dist/cli/chunks/{hypergraph-engine-X35LTXYT.js → hypergraph-engine-2OD3APVP.js} +2 -2
  228. package/dist/cli/chunks/{hypergraph-handler-M6THKAG6.js → hypergraph-handler-5AZGMBUM.js} +3 -3
  229. package/dist/cli/chunks/impact-analyzer-QSDJVBPS.js +2 -0
  230. package/dist/cli/chunks/init-guard-SMGJ45PW.js +2 -0
  231. package/dist/cli/chunks/init-handler-5T4MP2NM.js +88 -0
  232. package/dist/cli/chunks/init-wizard-MK2325JJ.js +2 -0
  233. package/dist/cli/chunks/kernel-2NJQQ2KT.js +2 -0
  234. package/dist/cli/chunks/{kilocode-installer-TEPR2ZJD.js → kilocode-installer-RLZYLVQJ.js} +2 -2
  235. package/dist/cli/chunks/{kiro-installer-RUKHGDEE.js → kiro-installer-LFZOC7VD.js} +2 -2
  236. package/dist/cli/chunks/knowledge-graph-SDISHO62.js +2 -0
  237. package/dist/cli/chunks/learning-XRPGLUWR.js +122 -0
  238. package/dist/cli/chunks/{llm-router-7GECMDCP.js → llm-router-OMK5HYPH.js} +4 -4
  239. package/dist/cli/chunks/llm-router-service-YTCMRBAN.js +2 -0
  240. package/dist/cli/chunks/{load-NTJ4Y4ZR.js → load-XADC7KCU.js} +2 -2
  241. package/dist/cli/chunks/load-test-RPKHLBCC.js +2 -0
  242. package/dist/cli/chunks/{mcp-4335GTTG.js → mcp-PIBKSSVU.js} +2 -2
  243. package/dist/cli/chunks/{memory-HYC4M4XS.js → memory-AP7EZERS.js} +5 -5
  244. package/dist/cli/chunks/memory-backend-BZXFO4JZ.js +2 -0
  245. package/dist/cli/chunks/memory-handlers-MOFDNB6E.js +2 -0
  246. package/dist/cli/chunks/{multi-model-executor-T7FYKM6T.js → multi-model-executor-7JJ2FZ33.js} +2 -2
  247. package/dist/cli/chunks/{opencode-installer-3USXVT5M.js → opencode-installer-ZZZ6EBYJ.js} +2 -2
  248. package/dist/cli/chunks/orchestrator-2H2YKSGJ.js +452 -0
  249. package/dist/cli/chunks/pattern-null-store-4PRPIOR6.js +2 -0
  250. package/dist/cli/chunks/{pattern-usage-recorder-CMZLPX2K.js → pattern-usage-recorder-7MJJWC2Z.js} +2 -2
  251. package/dist/cli/chunks/{pipeline-BTRZOVSL.js → pipeline-LIE5BWQY.js} +2 -2
  252. package/dist/cli/chunks/{platform-2MCRKC25.js → platform-SMYUNLGX.js} +2 -2
  253. package/dist/cli/chunks/plugin-LJDIXQNT.js +27 -0
  254. package/dist/cli/chunks/{prime-radiant-advanced-wasm-TXFEMBP6.js → prime-radiant-advanced-wasm-RIDNE5D2.js} +2 -2
  255. package/dist/cli/chunks/project-root-NBIQF63D.js +2 -0
  256. package/dist/cli/chunks/protocol-executor-BRPGIYWQ.js +2 -0
  257. package/dist/cli/chunks/{protocol-handler-DZ26OYVZ.js → protocol-handler-YVM66DLI.js} +2 -2
  258. package/dist/cli/chunks/{prove-QWONEJWX.js → prove-ZBDT52GD.js} +2 -2
  259. package/dist/cli/chunks/qe-reasoning-bank-GDZACWKW.js +2 -0
  260. package/dist/cli/chunks/{quality-WFH54FY7.js → quality-DUKXGDDO.js} +2 -2
  261. package/dist/cli/chunks/{quality-gate-ONJB7XU7.js → quality-gate-SM3RXF4V.js} +3 -3
  262. package/dist/cli/chunks/queen-coordinator-LDKLBPD5.js +2 -0
  263. package/dist/cli/chunks/real-embeddings-4QLQZDB5.js +2 -0
  264. package/dist/cli/chunks/{ref-validation-HW5Y55ZC.js → ref-validation-M3EO32YQ.js} +2 -2
  265. package/dist/cli/chunks/{roocode-installer-5OABDNZT.js → roocode-installer-S6Q5OLV5.js} +2 -2
  266. package/dist/cli/chunks/router-H5YSIRH2.js +2 -0
  267. package/dist/cli/chunks/routing-feedback-5R36TJDH.js +2 -0
  268. package/dist/cli/chunks/{routing-handler-CVHVOQTC.js → routing-handler-55FMUACP.js} +2 -2
  269. package/dist/cli/chunks/{ruvector-commands-KKDKFGIQ.js → ruvector-commands-QATKAAPK.js} +2 -2
  270. package/dist/cli/chunks/rvf-dual-writer-TT2DBQQQ.js +2 -0
  271. package/dist/cli/chunks/rvf-migration-adapter-BCLFJKSK.js +2 -0
  272. package/dist/cli/chunks/rvf-migration-coordinator-RFXFU6JD.js +2 -0
  273. package/dist/cli/chunks/rvf-native-adapter-UXI66OQJ.js +2 -0
  274. package/dist/cli/chunks/{rvf-store-integrity-UGUXKIFX.js → rvf-store-integrity-PKDVXQAW.js} +2 -2
  275. package/dist/cli/chunks/safe-db-MSTD2GDH.js +2 -0
  276. package/dist/cli/chunks/schedule-KST6KIFD.js +2 -0
  277. package/dist/cli/chunks/scheduler-FTQS6YK3.js +2 -0
  278. package/dist/cli/chunks/security-CMRB6WA3.js +18 -0
  279. package/dist/cli/chunks/shared-rvf-adapter-YHLLNFHF.js +2 -0
  280. package/dist/cli/chunks/{shared-rvf-dual-writer-ZSHYG5IA.js → shared-rvf-dual-writer-4BGDVPQ7.js} +2 -2
  281. package/dist/cli/chunks/sqlite-persistence-ZX5QFDMR.js +2 -0
  282. package/dist/cli/chunks/{standalone-memory-MHZEEYMK.js → standalone-memory-LUHKQAGM.js} +2 -2
  283. package/dist/cli/chunks/{status-handler-JKXPJ22K.js → status-handler-S6S5PNR7.js} +2 -2
  284. package/dist/cli/chunks/{structural-health-J4RKCYWF.js → structural-health-PQ7NZAJ4.js} +2 -2
  285. package/dist/cli/chunks/{sync-PDPORHVN.js → sync-Q6KRQXU6.js} +2 -2
  286. package/dist/cli/chunks/sync-S744AEJC.js +2 -0
  287. package/dist/cli/chunks/{task-handler-VERADM44.js → task-handler-GAMGEHUW.js} +2 -2
  288. package/dist/cli/chunks/{task-handlers-4RUCWUR2.js → task-handlers-6CRDEELN.js} +3 -3
  289. package/dist/cli/chunks/{test-DMBJFQNL.js → test-FNH67DBK.js} +12 -12
  290. package/dist/cli/chunks/{test-scheduling-LUPTVGCD.js → test-scheduling-NZA5SHK6.js} +3 -3
  291. package/dist/cli/chunks/token-bootstrap-CXKG55JD.js +2 -0
  292. package/dist/cli/chunks/{token-usage-VOA34IKM.js → token-usage-M7WWEDJX.js} +2 -2
  293. package/dist/cli/chunks/{transformers-GU4TYAN5.js → transformers-2IFMCK6A.js} +2 -2
  294. package/dist/cli/chunks/{tree-sitter-wasm-parser-MZPXAH7C.js → tree-sitter-wasm-parser-NMNA6RJC.js} +2 -2
  295. package/dist/cli/chunks/{types-K4FLXR2K.js → types-N7FWTOLD.js} +2 -2
  296. package/dist/cli/chunks/unified-memory-2Z2F446J.js +2 -0
  297. package/dist/cli/chunks/unified-memory-hnsw-A4EWYPJQ.js +2 -0
  298. package/dist/cli/chunks/unified-persistence-Z6N6JZFA.js +2 -0
  299. package/dist/cli/chunks/{upgrade-M3ATDRMK.js → upgrade-KDB5RGL7.js} +2 -2
  300. package/dist/cli/chunks/{validate-AAP773B3.js → validate-KMUV5FUA.js} +2 -2
  301. package/dist/cli/chunks/{validate-swarm-7RGAZX5F.js → validate-swarm-ANZWRCJU.js} +2 -2
  302. package/dist/cli/chunks/visual-security-GXYZV7KR.js +2 -0
  303. package/dist/cli/chunks/{web-tree-sitter-GQMRHGGI.js → web-tree-sitter-SXXC4NMS.js} +2 -2
  304. package/dist/cli/chunks/{windsurf-installer-HG6HF2GF.js → windsurf-installer-2LWSKMBU.js} +2 -2
  305. package/dist/cli/chunks/witness-chain-52PEIEGK.js +2 -0
  306. package/dist/cli/chunks/{witness-chain-WKU3ZIBQ.js → witness-chain-JJMSJFZP.js} +2 -2
  307. package/dist/cli/chunks/witness-chain-repair-OX7VFW6T.js +2 -0
  308. package/dist/cli/chunks/{witness-chain-verifier-Q2KW3QEQ.js → witness-chain-verifier-QLSMXHAZ.js} +2 -2
  309. package/dist/cli/chunks/witness-key-manager-3DS4L7LE.js +2 -0
  310. package/dist/cli/chunks/{workflow-CX6SHFBW.js → workflow-ARWAMHD3.js} +28 -28
  311. package/dist/cli/chunks/workflow-orchestrator-DORMQMG7.js +2 -0
  312. package/dist/cli/chunks/wrappers-J6KGTUSJ.js +2 -0
  313. package/dist/cli/commands/ci.js +47 -25
  314. package/dist/cli/commands/coverage.d.ts +1 -28
  315. package/dist/cli/commands/coverage.js +63 -134
  316. package/dist/cli/commands/daemon.js +7 -1
  317. package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +15 -0
  318. package/dist/cli/commands/hooks-handlers/stats-hooks.js +54 -2
  319. package/dist/cli/commands/learning.js +50 -9
  320. package/dist/cli/commands/security.d.ts +16 -0
  321. package/dist/cli/commands/security.js +76 -9
  322. package/dist/cli/commands/test.js +6 -7
  323. package/dist/cli/commands/workflow.js +9 -5
  324. package/dist/cli/handlers/init-guard.d.ts +33 -0
  325. package/dist/cli/handlers/init-guard.js +66 -0
  326. package/dist/cli/handlers/init-handler.d.ts +3 -0
  327. package/dist/cli/handlers/init-handler.js +64 -54
  328. package/dist/cli/handlers/interfaces.js +5 -1
  329. package/dist/cli/index.js +11 -0
  330. package/dist/cli/scheduler/persistent-scheduler.d.ts +6 -2
  331. package/dist/cli/scheduler/persistent-scheduler.js +107 -41
  332. package/dist/cli/utils/ci-output.d.ts +13 -1
  333. package/dist/cli/utils/ci-output.js +21 -2
  334. package/dist/cli/utils/coverage-data.d.ts +3 -0
  335. package/dist/cli/utils/coverage-data.js +14 -39
  336. package/dist/cli/utils/coverage-verdict.d.ts +130 -0
  337. package/dist/cli/utils/coverage-verdict.js +193 -0
  338. package/dist/cli/utils/file-discovery.js +5 -0
  339. package/dist/coordination/deterministic-actions.js +24 -13
  340. package/dist/coordination/handlers/code-intelligence-handlers.d.ts +8 -0
  341. package/dist/coordination/handlers/code-intelligence-handlers.js +39 -0
  342. package/dist/coordination/handlers/coverage-handlers.js +34 -6
  343. package/dist/coordination/handlers/coverage-runner.d.ts +22 -0
  344. package/dist/coordination/handlers/coverage-runner.js +105 -10
  345. package/dist/coordination/handlers/coverage-target.d.ts +1 -0
  346. package/dist/coordination/handlers/coverage-target.js +4 -1
  347. package/dist/coordination/handlers/handler-types.d.ts +9 -0
  348. package/dist/coordination/handlers/handler-utils.d.ts +14 -1
  349. package/dist/coordination/handlers/handler-utils.js +46 -22
  350. package/dist/coordination/handlers/quality-handlers.js +108 -18
  351. package/dist/coordination/handlers/security-handlers.js +22 -6
  352. package/dist/coordination/handlers/test-execution-handlers.js +4 -1
  353. package/dist/coordination/protocols/defect-investigation.d.ts +2 -1
  354. package/dist/coordination/protocols/defect-investigation.js +12 -3
  355. package/dist/coordination/protocols/quality-gate.js +10 -6
  356. package/dist/coordination/protocols/security-audit.js +11 -0
  357. package/dist/coordination/result-saver.d.ts +31 -0
  358. package/dist/coordination/result-saver.js +146 -46
  359. package/dist/coordination/task-executor.d.ts +7 -0
  360. package/dist/coordination/task-executor.js +32 -3
  361. package/dist/domains/code-intelligence/plugin.js +4 -0
  362. package/dist/domains/code-intelligence/services/metric-collector/index.js +9 -2
  363. package/dist/domains/code-intelligence/services/metric-collector/interfaces.d.ts +21 -0
  364. package/dist/domains/code-intelligence/services/metric-collector/interfaces.js +25 -0
  365. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +12 -0
  366. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +69 -3
  367. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +4 -1
  368. package/dist/domains/coverage-analysis/collected-metrics.d.ts +35 -0
  369. package/dist/domains/coverage-analysis/collected-metrics.js +42 -0
  370. package/dist/domains/coverage-analysis/coordinator.js +18 -6
  371. package/dist/domains/coverage-analysis/interfaces.d.ts +44 -0
  372. package/dist/domains/coverage-analysis/interfaces.js +6 -1
  373. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +61 -34
  374. package/dist/domains/coverage-analysis/services/gap-detector.js +7 -2
  375. package/dist/domains/defect-intelligence/plugin.js +4 -0
  376. package/dist/domains/defect-intelligence/services/defect-predictor.js +13 -8
  377. package/dist/domains/learning-optimization/coordinator.js +4 -0
  378. package/dist/domains/learning-optimization/plugin.js +4 -0
  379. package/dist/domains/quality-assessment/coordinator-rl-integration.d.ts +14 -0
  380. package/dist/domains/quality-assessment/coordinator-rl-integration.js +54 -16
  381. package/dist/domains/quality-assessment/coordinator.js +10 -6
  382. package/dist/domains/quality-assessment/coverage-report-event.d.ts +32 -8
  383. package/dist/domains/quality-assessment/coverage-report-event.js +28 -6
  384. package/dist/domains/quality-assessment/index.d.ts +1 -1
  385. package/dist/domains/quality-assessment/interfaces.d.ts +50 -0
  386. package/dist/domains/quality-assessment/quality-evidence.d.ts +49 -3
  387. package/dist/domains/quality-assessment/quality-evidence.js +62 -0
  388. package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +23 -2
  389. package/dist/domains/quality-assessment/services/quality-analyzer.js +197 -112
  390. package/dist/domains/quality-assessment/services/quality-gate.js +12 -3
  391. package/dist/domains/security-compliance/dependency-advisory-engine.d.ts +52 -0
  392. package/dist/domains/security-compliance/dependency-advisory-engine.js +113 -0
  393. package/dist/domains/security-compliance/interfaces.d.ts +30 -0
  394. package/dist/domains/security-compliance/plugin.d.ts +7 -1
  395. package/dist/domains/security-compliance/plugin.js +19 -0
  396. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +22 -16
  397. package/dist/domains/security-compliance/services/scanners/dependency-resolver.d.ts +71 -0
  398. package/dist/domains/security-compliance/services/scanners/dependency-resolver.js +232 -0
  399. package/dist/domains/security-compliance/services/scanners/dependency-scanner.d.ts +21 -6
  400. package/dist/domains/security-compliance/services/scanners/dependency-scanner.js +142 -64
  401. package/dist/domains/security-compliance/services/scanners/lockfile-versions.d.ts +43 -0
  402. package/dist/domains/security-compliance/services/scanners/lockfile-versions.js +248 -0
  403. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +30 -2
  404. package/dist/domains/security-compliance/services/security-auditor.d.ts +19 -6
  405. package/dist/domains/security-compliance/services/security-auditor.js +133 -92
  406. package/dist/domains/test-execution/interfaces.d.ts +10 -6
  407. package/dist/domains/test-execution/plugin.js +4 -0
  408. package/dist/domains/test-execution/services/retry-handler.js +17 -6
  409. package/dist/domains/test-execution/services/test-executor.d.ts +1 -0
  410. package/dist/domains/test-execution/services/test-executor.js +239 -109
  411. package/dist/domains/test-generation/coordinator.js +4 -0
  412. package/dist/domains/test-generation/plugin.js +4 -0
  413. package/dist/feedback/coverage-learner.js +4 -1
  414. package/dist/feedback/coverage-session-provenance.d.ts +29 -0
  415. package/dist/feedback/coverage-session-provenance.js +39 -0
  416. package/dist/init/orchestrator.js +2 -0
  417. package/dist/init/phases/09-assets.d.ts +4 -0
  418. package/dist/init/phases/09-assets.js +35 -0
  419. package/dist/init/retired-assets.d.ts +86 -0
  420. package/dist/init/retired-assets.js +230 -0
  421. package/dist/init/skills-installer.d.ts +2 -0
  422. package/dist/init/skills-installer.js +4 -0
  423. package/dist/init/types.d.ts +3 -0
  424. package/dist/integrations/ruvector/rvf-native-adapter.d.ts +2 -0
  425. package/dist/integrations/ruvector/rvf-native-adapter.js +5 -0
  426. package/dist/integrations/ruvector/server-client.js +4 -12
  427. package/dist/kernel/project-root.d.ts +17 -0
  428. package/dist/kernel/project-root.js +54 -2
  429. package/dist/kernel/shared-dirs.d.ts +66 -0
  430. package/dist/kernel/shared-dirs.js +180 -0
  431. package/dist/learning/daily-log.js +2 -1
  432. package/dist/learning/experience-capture-middleware.d.ts +22 -0
  433. package/dist/learning/experience-capture-middleware.js +35 -0
  434. package/dist/learning/learnable-result.d.ts +16 -0
  435. package/dist/learning/learnable-result.js +24 -0
  436. package/dist/learning/pattern-mutation-error.d.ts +8 -0
  437. package/dist/learning/pattern-mutation-error.js +12 -0
  438. package/dist/learning/qe-reasoning-bank.d.ts +10 -0
  439. package/dist/learning/qe-reasoning-bank.js +50 -1
  440. package/dist/learning/rvf-reconcile.d.ts +39 -0
  441. package/dist/learning/rvf-reconcile.js +40 -0
  442. package/dist/learning/sqlite-persistence.d.ts +14 -0
  443. package/dist/learning/sqlite-persistence.js +36 -0
  444. package/dist/mcp/bundle.js +908 -896
  445. package/dist/mcp/handlers/domain-handler-configs.d.ts +35 -1
  446. package/dist/mcp/handlers/domain-handler-configs.js +42 -4
  447. package/dist/mcp/handlers/handler-factory.js +40 -14
  448. package/dist/mcp/protocol-server.js +29 -3
  449. package/dist/mcp/tool-cache-scope.d.ts +31 -0
  450. package/dist/mcp/tool-cache-scope.js +71 -0
  451. package/dist/mcp/tools/code-intelligence/analyze.js +5 -3
  452. package/dist/mcp/types.d.ts +10 -0
  453. package/dist/optimization/session-cache.d.ts +19 -1
  454. package/dist/optimization/session-cache.js +36 -2
  455. package/dist/plugins/cache.js +2 -1
  456. package/dist/plugins/sources/github.js +2 -1
  457. package/dist/plugins/sources/npm.js +2 -1
  458. package/dist/shared/aqe-managed-dirs.d.ts +24 -0
  459. package/dist/shared/aqe-managed-dirs.js +56 -0
  460. package/dist/shared/events/domain-events.d.ts +18 -3
  461. package/dist/shared/events/domain-events.js +4 -0
  462. package/dist/shared/http/http-client.d.ts +6 -0
  463. package/dist/shared/http/http-client.js +13 -15
  464. package/dist/shared/io/file-reader.d.ts +26 -0
  465. package/dist/shared/io/file-reader.js +111 -17
  466. package/dist/shared/llm/providers/response-deadline.d.ts +7 -2
  467. package/dist/shared/llm/providers/response-deadline.js +17 -5
  468. package/dist/shared/metrics/code-metrics.d.ts +24 -0
  469. package/dist/shared/metrics/code-metrics.js +93 -6
  470. package/dist/shared/metrics/index.d.ts +1 -1
  471. package/dist/shared/security/index.d.ts +2 -2
  472. package/dist/shared/security/index.js +1 -1
  473. package/dist/shared/security/osv-client.d.ts +79 -132
  474. package/dist/shared/security/osv-client.js +344 -167
  475. package/dist/shared/security/osv-lookup.d.ts +124 -0
  476. package/dist/shared/security/osv-lookup.js +246 -0
  477. package/dist/shared/security/osv-types.d.ts +119 -0
  478. package/dist/shared/security/osv-types.js +6 -0
  479. package/dist/workers/interfaces.d.ts +15 -2
  480. package/dist/workers/namespaced-keys.d.ts +16 -0
  481. package/dist/workers/namespaced-keys.js +24 -0
  482. package/dist/workers/quality-daemon/coverage-delta.d.ts +4 -3
  483. package/dist/workers/quality-daemon/coverage-delta.js +13 -6
  484. package/dist/workers/quality-daemon/index.js +6 -5
  485. package/dist/workers/quality-daemon/notification-service.js +3 -3
  486. package/dist/workers/quality-daemon/persistent-memory.d.ts +3 -3
  487. package/dist/workers/quality-daemon/persistent-memory.js +4 -4
  488. package/dist/workers/worker-manager.js +10 -3
  489. package/dist/workers/workers/coverage-tracker.js +69 -33
  490. package/dist/workers/workers/defect-predictor.d.ts +25 -8
  491. package/dist/workers/workers/defect-predictor.js +223 -216
  492. package/dist/workers/workers/performance-baseline.d.ts +24 -9
  493. package/dist/workers/workers/performance-baseline.js +187 -230
  494. package/dist/workers/workers/quality-gate.d.ts +11 -9
  495. package/dist/workers/workers/quality-gate.js +125 -267
  496. package/dist/workers/workers/regression-monitor.d.ts +18 -1
  497. package/dist/workers/workers/regression-monitor.js +276 -117
  498. package/dist/workers/workers/security-scan-records.d.ts +111 -0
  499. package/dist/workers/workers/security-scan-records.js +128 -0
  500. package/dist/workers/workers/security-scan.d.ts +25 -7
  501. package/dist/workers/workers/security-scan.js +187 -164
  502. package/package.json +2 -2
  503. package/dist/cli/chunks/adapter-EGIPTX5H.js +0 -2
  504. package/dist/cli/chunks/aqe-learning-engine-WP4GCBDT.js +0 -2
  505. package/dist/cli/chunks/base-6ORFD62I.js +0 -2
  506. package/dist/cli/chunks/browser-workflow-PIXGERWP.js +0 -2
  507. package/dist/cli/chunks/chunk-2WFTZSRT.js +0 -2
  508. package/dist/cli/chunks/chunk-7YB2KELI.js +0 -5
  509. package/dist/cli/chunks/chunk-BBL6YXD3.js +0 -2
  510. package/dist/cli/chunks/chunk-BJ5P4IV2.js +0 -2
  511. package/dist/cli/chunks/chunk-BO4PKNYP.js +0 -102
  512. package/dist/cli/chunks/chunk-DFPL5N3Q.js +0 -16
  513. package/dist/cli/chunks/chunk-DLY4YEN3.js +0 -2
  514. package/dist/cli/chunks/chunk-ERGWWI4Y.js +0 -3
  515. package/dist/cli/chunks/chunk-GTSOFCMQ.js +0 -2
  516. package/dist/cli/chunks/chunk-KZVJW2SD.js +0 -2
  517. package/dist/cli/chunks/chunk-L336HFFE.js +0 -2
  518. package/dist/cli/chunks/chunk-N2TJNIHA.js +0 -2
  519. package/dist/cli/chunks/chunk-RCXMUEZN.js +0 -3
  520. package/dist/cli/chunks/chunk-SEZLYRCS.js +0 -2
  521. package/dist/cli/chunks/chunk-TDLKXLJC.js +0 -4
  522. package/dist/cli/chunks/chunk-WOZIXXY5.js +0 -7
  523. package/dist/cli/chunks/ci-KP4GZKJ7.js +0 -81
  524. package/dist/cli/chunks/client-C3KHVRM6.js +0 -2
  525. package/dist/cli/chunks/core-handlers-KSQM6Q6S.js +0 -2
  526. package/dist/cli/chunks/coverage-SPFVHRRU.js +0 -43
  527. package/dist/cli/chunks/coverage-target-GSRBNHXE.js +0 -2
  528. package/dist/cli/chunks/cross-domain-router-CTGNOVCF.js +0 -2
  529. package/dist/cli/chunks/daemon-M5TD5Y6T.js +0 -10
  530. package/dist/cli/chunks/dream-MIK2E4UL.js +0 -2
  531. package/dist/cli/chunks/embed-and-insert-pattern-QST77T2B.js +0 -3
  532. package/dist/cli/chunks/experience-capture-middleware-X66IYSRV.js +0 -40
  533. package/dist/cli/chunks/file-discovery-3NHRUQQB.js +0 -2
  534. package/dist/cli/chunks/heartbeat-scheduler-OCKRACUW.js +0 -2
  535. package/dist/cli/chunks/hnsw-adapter-X67XG73C.js +0 -2
  536. package/dist/cli/chunks/hnsw-index-I7KCQBQR.js +0 -2
  537. package/dist/cli/chunks/hybrid-backend-FOUHTKAK.js +0 -2
  538. package/dist/cli/chunks/impact-analyzer-GXYVX46O.js +0 -2
  539. package/dist/cli/chunks/init-handler-2AXMXHYF.js +0 -86
  540. package/dist/cli/chunks/init-wizard-C2MRX2QG.js +0 -2
  541. package/dist/cli/chunks/kernel-Q2IUDIDC.js +0 -2
  542. package/dist/cli/chunks/knowledge-graph-E2Z6K5EE.js +0 -2
  543. package/dist/cli/chunks/learning-BEA26RNA.js +0 -122
  544. package/dist/cli/chunks/llm-router-service-YATYFEDD.js +0 -2
  545. package/dist/cli/chunks/load-test-LV77JXWA.js +0 -2
  546. package/dist/cli/chunks/memory-backend-XME3X3QX.js +0 -2
  547. package/dist/cli/chunks/memory-handlers-VG47X5DX.js +0 -2
  548. package/dist/cli/chunks/orchestrator-VHUXUYIM.js +0 -452
  549. package/dist/cli/chunks/pattern-null-store-TAXMLENP.js +0 -2
  550. package/dist/cli/chunks/plugin-2VAYWAO3.js +0 -27
  551. package/dist/cli/chunks/project-root-CFFPBGPX.js +0 -2
  552. package/dist/cli/chunks/protocol-executor-ML76QAVQ.js +0 -2
  553. package/dist/cli/chunks/qe-reasoning-bank-LUZH6RYV.js +0 -2
  554. package/dist/cli/chunks/queen-coordinator-EWXNIXB6.js +0 -2
  555. package/dist/cli/chunks/real-embeddings-GZV4VKK4.js +0 -2
  556. package/dist/cli/chunks/router-MXOBVEBF.js +0 -2
  557. package/dist/cli/chunks/routing-feedback-T6CCRUEK.js +0 -2
  558. package/dist/cli/chunks/rvf-dual-writer-WHXVT3V3.js +0 -2
  559. package/dist/cli/chunks/rvf-migration-adapter-JFPWIRCG.js +0 -2
  560. package/dist/cli/chunks/rvf-migration-coordinator-D4KUBNRZ.js +0 -2
  561. package/dist/cli/chunks/rvf-native-adapter-KOXR7TJL.js +0 -2
  562. package/dist/cli/chunks/safe-db-CI6IPSIN.js +0 -2
  563. package/dist/cli/chunks/schedule-X4HW6TVJ.js +0 -2
  564. package/dist/cli/chunks/scheduler-KCNJ2ON3.js +0 -2
  565. package/dist/cli/chunks/security-7723AZZ4.js +0 -13
  566. package/dist/cli/chunks/shared-rvf-adapter-KEQ5CLNI.js +0 -2
  567. package/dist/cli/chunks/sqlite-persistence-PGHU6VUR.js +0 -2
  568. package/dist/cli/chunks/sync-EFWXMA2H.js +0 -2
  569. package/dist/cli/chunks/token-bootstrap-S346YBVO.js +0 -2
  570. package/dist/cli/chunks/unified-memory-6CK3TUNQ.js +0 -2
  571. package/dist/cli/chunks/unified-memory-hnsw-A7BWBGYN.js +0 -2
  572. package/dist/cli/chunks/unified-persistence-GEPMDBQZ.js +0 -2
  573. package/dist/cli/chunks/visual-security-L4J7LQWT.js +0 -2
  574. package/dist/cli/chunks/witness-chain-CDUMX623.js +0 -2
  575. package/dist/cli/chunks/witness-chain-repair-WNYH6O4L.js +0 -2
  576. package/dist/cli/chunks/witness-key-manager-NQ5DAAC4.js +0 -2
  577. package/dist/cli/chunks/workflow-orchestrator-USJDWVDR.js +0 -2
  578. package/dist/cli/chunks/wrappers-CZDI6Z3X.js +0 -2
  579. /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
  580. /package/.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
  581. /package/.claude/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
  582. /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.test.ts → budget-tests.ts.fixture} +0 -0
  583. /package/assets/skills/qe-court/evals/fixtures/seeded-mutant-delivery/{budget.ts → budget.ts.fixture} +0 -0
  584. /package/assets/skills/testability-scoring/resources/templates/{testability-scoring.spec.template.js → testability-scoring-spec.template.js} +0 -0
@@ -8,17 +8,57 @@ import chalk from 'chalk';
8
8
  import { discoverSecurityFiles } from '../../domains/security-compliance/scan-discovery.js';
9
9
  import { FilePath } from '../../shared/value-objects/index.js';
10
10
  import { writeOutput, toJSON, toSARIF, securityToMarkdown } from '../utils/ci-output.js';
11
+ import { runDependencyAdvisoryScan } from '../../domains/security-compliance/dependency-advisory-engine.js';
12
+ import { resolve as resolvePath } from 'node:path';
13
+ /** Name of the CLI check for the OSV dependency advisory scan (#1049). */
14
+ export const DEPENDENCY_CHECK = 'Dependency advisories';
15
+ /** #1049: dependency advisories could not be checked; the dependency result is UNMEASURED (same code as coverage/quality). */
16
+ export const EXIT_DEPENDENCIES_UNMEASURED = 3;
17
+ /**
18
+ * `aqe security` exit contract:
19
+ * 0 = every requested check completed, no medium+ findings
20
+ * 1 = high/critical findings, non-compliance, or a non-dependency check incomplete/failed
21
+ * 2 = medium findings only, every requested check complete
22
+ * 3 = dependency advisories could not be checked (failed or partial OSV lookup) and
23
+ * there are no high/critical findings, non-compliance or other incomplete checks:
24
+ * UNMEASURED, never a clean exit (#1049). Medium findings plus an incomplete
25
+ * dependency scan also exit 3: the result is unmeasured, not a medium-only verdict.
26
+ */
27
+ export function securityExitCode(result) {
28
+ const checks = result.checks ?? [];
29
+ const highOrCritical = result.vulnerabilities.some(v => v.severity === 'high' || v.severity === 'critical');
30
+ const nonCompliant = result.compliance?.compliant === false;
31
+ if (result.status !== 'complete' || nonCompliant) {
32
+ const dependencyUnmeasured = checks.some(check => check.name === DEPENDENCY_CHECK && check.status !== 'complete');
33
+ const otherIncomplete = checks.some(check => check.name !== DEPENDENCY_CHECK && check.status !== 'complete');
34
+ if (dependencyUnmeasured && !otherIncomplete && !nonCompliant && !highOrCritical)
35
+ return EXIT_DEPENDENCIES_UNMEASURED;
36
+ return 1;
37
+ }
38
+ if (highOrCritical)
39
+ return 1;
40
+ if (result.vulnerabilities.some(v => v.severity === 'medium'))
41
+ return 2;
42
+ return 0;
43
+ }
11
44
  export function createSecurityCommand(context, cleanupAndExit, ensureInitialized) {
12
45
  const securityCmd = new Command('security')
13
46
  .description('Security scanning and URL validation')
14
47
  .option('--sast', 'Run SAST scan')
15
48
  .option('--dast', 'Run DAST scan')
49
+ .option('--dependencies', 'Check package.json dependencies against OSV advisories (sends package names and versions to the OSV API)')
16
50
  .option('--compliance <frameworks>', 'Check compliance (gdpr,hipaa,soc2)', '')
17
51
  .option('--url-validate <url>', 'Validate a URL for security threats and PII exposure')
18
52
  .option('--no-pii', 'Disable PII scanning when using --url-validate')
19
53
  .option('-t, --target <path>', 'Target directory to scan', '.')
20
54
  .option('-F, --format <format>', 'Output format (text|json|sarif|markdown)', 'text')
21
55
  .option('-o, --output <path>', 'Write output to file')
56
+ .addHelpText('after', `
57
+ Exit codes:
58
+ 0 every requested check completed; no medium or higher findings
59
+ 1 high/critical findings, non-compliance, or a check failed / is incomplete
60
+ 2 medium findings only
61
+ ${EXIT_DEPENDENCIES_UNMEASURED} UNMEASURED: dependency advisories could not be checked (OSV unreachable, rate limited, or partial)`)
22
62
  .action(async (options) => {
23
63
  if (!await ensureInitialized())
24
64
  return;
@@ -86,13 +126,13 @@ export function createSecurityCommand(context, cleanupAndExit, ensureInitialized
86
126
  return; // Don't fall through to SAST/DAST path
87
127
  }
88
128
  const format = options.format;
89
- const runSAST = options.sast || (!options.dast && !options.compliance);
129
+ const runSAST = options.sast || (!options.dast && !options.compliance && !options.dependencies);
90
130
  const frameworks = options.compliance
91
131
  ? options.compliance.split(',').map((value) => value.trim()).filter(Boolean)
92
132
  : [];
93
133
  const scanResult = {
94
134
  vulnerabilities: [], target: options.target,
95
- scanType: [runSAST && 'SAST', options.dast && 'DAST', frameworks.length > 0 && 'Compliance'].filter(Boolean).join('+'),
135
+ scanType: [runSAST && 'SAST', options.dast && 'DAST', options.dependencies && 'Dependencies', frameworks.length > 0 && 'Compliance'].filter(Boolean).join('+'),
96
136
  checks: [], status: 'not-run',
97
137
  };
98
138
  const checks = scanResult.checks;
@@ -133,6 +173,18 @@ export function createSecurityCommand(context, cleanupAndExit, ensureInitialized
133
173
  checks.push({ name: 'Source discovery', status: discovery.status, reason: 'Requested source discovery did not complete; inspect discovery issues.' });
134
174
  }
135
175
  }
176
+ if (options.dependencies) {
177
+ // #1049: a failed or partial OSV lookup is reported, never a clean dependency scan.
178
+ const outcome = await runDependencyAdvisoryScan({ scanPackageJson: (manifest) => securityAPI.runDependencyScan(manifest) }, resolvePath(options.target));
179
+ scanResult.dependencyScan = outcome.report;
180
+ scanResult.vulnerabilities.push(...outcome.vulnerabilities.map(formatVulnerability));
181
+ const status = outcome.report.status;
182
+ checks.push({
183
+ name: DEPENDENCY_CHECK,
184
+ status: status === 'complete' ? 'complete' : status === 'incomplete' ? 'partial' : status === 'failed' ? 'failed' : 'not-run',
185
+ ...(status !== 'complete' ? { reason: outcome.report.message } : {}),
186
+ });
187
+ }
136
188
  if (frameworks.length > 0) {
137
189
  const issues = [];
138
190
  let compliant = true;
@@ -189,13 +241,7 @@ export function createSecurityCommand(context, cleanupAndExit, ensureInitialized
189
241
  return cleanupAndExit(1);
190
242
  }
191
243
  // Incomplete execution never has a clean exit, even if it found no vulnerabilities.
192
- if (scanResult.status !== 'complete' || scanResult.compliance?.compliant === false)
193
- return cleanupAndExit(1);
194
- if (scanResult.vulnerabilities.some(v => v.severity === 'high' || v.severity === 'critical'))
195
- return cleanupAndExit(1);
196
- if (scanResult.vulnerabilities.some(v => v.severity === 'medium'))
197
- return cleanupAndExit(2);
198
- return cleanupAndExit(0);
244
+ return cleanupAndExit(securityExitCode(scanResult));
199
245
  });
200
246
  return securityCmd;
201
247
  }
@@ -227,6 +273,7 @@ function formatVulnerability(value) {
227
273
  severity: value.severity, type: value.title || value.category,
228
274
  file: value.location.file, line: value.location.line ?? 1,
229
275
  message: value.description,
276
+ ...(value.cveId ? { cveId: value.cveId } : {}),
230
277
  };
231
278
  }
232
279
  return value;
@@ -265,6 +312,26 @@ function printSecurityResult(result) {
265
312
  ...(result.evidence?.files.filter(file => file.status !== 'analyzed' && file.status !== 'excluded').map(file => `${file.path}: ${file.status}${file.reason ? ` (${file.reason})` : ''}`) ?? []),
266
313
  ...(result.discovery?.issues.map(issue => `${issue.path}: ${issue.reason}`) ?? []),
267
314
  ];
315
+ if (result.dependencyScan && result.dependencyScan.status !== 'complete') {
316
+ const unchecked = result.dependencyScan.uncheckedPackages;
317
+ console.log(chalk.yellow(` ${result.dependencyScan.message}`));
318
+ for (const pkg of unchecked.slice(0, 10)) {
319
+ const where = `${pkg.member ? `${pkg.member}: ` : ''}${pkg.name}@${pkg.version}${pkg.lockedVersion ? ` (lockfile ${pkg.lockedVersion})` : ''}`;
320
+ console.log(chalk.yellow(` not checked: ${where} (${pkg.reason})`));
321
+ }
322
+ if (unchecked.length > 10)
323
+ console.log(chalk.yellow(` ... and ${unchecked.length - 10} more unchecked package(s)`));
324
+ }
325
+ else if (result.dependencyScan) {
326
+ console.log(` ${result.dependencyScan.message}`);
327
+ }
328
+ if (result.dependencyScan?.localPackages.length) {
329
+ const local = result.dependencyScan.localPackages;
330
+ console.log(` Local packages (not OSV subjects, excluded): ${local.slice(0, 10).map(p => `${p.member ? `${p.member}: ` : ''}${p.name}`).join(', ')}${local.length > 10 ? ` ... and ${local.length - 10} more` : ''}`);
331
+ }
332
+ for (const problem of result.dependencyScan?.resolutionErrors ?? []) {
333
+ console.log(chalk.yellow(` incomplete: ${problem}`));
334
+ }
268
335
  for (const limitation of limitations.slice(0, 10))
269
336
  console.log(chalk.yellow(` ${limitation}`));
270
337
  if (limitations.length > 10)
@@ -7,7 +7,7 @@ import { Command } from 'commander';
7
7
  import chalk from 'chalk';
8
8
  import { filterTestFilesForFramework, walkSourceFiles } from '../utils/file-discovery.js';
9
9
  import { writeOutput, toJSON, toJUnit, testRunToMarkdown } from '../utils/ci-output.js';
10
- import { writeQualityEvidence } from '../../domains/quality-assessment/quality-evidence.js';
10
+ import { writeTestRunEvidence } from '../../domains/quality-assessment/quality-evidence.js';
11
11
  import { validateBehaviorExamples } from '../../domains/test-generation/services/behavior-example-validation.js';
12
12
  import { findProjectRoot } from '../../kernel/project-root.js';
13
13
  import { writeGeneratedTestFile } from '../utils/generated-test-writer.js';
@@ -192,12 +192,11 @@ export function createTestCommand(context, cleanupAndExit, ensureInitialized) {
192
192
  duration: run.duration,
193
193
  measuredAt: new Date().toISOString(),
194
194
  }, { namespace: 'test-execution', persist: true });
195
- await writeQualityEvidence(context.kernel.memory, {
196
- testsPassing: total > 0 ? (run.passed / total) * 100 : 0,
197
- }, {
198
- measuredAt: new Date().toISOString(),
199
- source: 'aqe test execute',
200
- });
195
+ // #1027 NB1: the shared run-scoped writer (same as test_execute_parallel),
196
+ // stamped with this run's id so it pairs with the run's own coverage.
197
+ await writeTestRunEvidence(context.kernel.memory, {
198
+ runId: run.runId, passed: run.passed, failed: run.failed, skipped: run.skipped,
199
+ }, { source: 'aqe test execute' });
201
200
  if (format === 'json') {
202
201
  writeOutput(toJSON(run), options.output);
203
202
  }
@@ -227,13 +227,17 @@ export function createWorkflowCommand(context, cleanupAndExit, ensureInitialized
227
227
  console.log(chalk.gray(' No scheduled workflows\n'));
228
228
  }
229
229
  else {
230
+ // #991: entries loaded from a hand-edited or legacy file may lack
231
+ // fields; show "(missing)" rather than "undefined".
232
+ const show = (value) => value === undefined || value === null || value === '' ? '(missing)' : String(value);
230
233
  for (const sched of scheduled) {
231
234
  const statusIcon = sched.enabled ? chalk.green('*') : chalk.gray('o');
232
- console.log(` ${statusIcon} ${chalk.white(sched.workflowId)}`);
233
- console.log(chalk.gray(` ID: ${sched.id}`));
234
- console.log(chalk.gray(` Schedule: ${sched.schedule} (${sched.scheduleDescription})`));
235
- console.log(chalk.gray(` File: ${sched.pipelinePath}`));
236
- console.log(chalk.gray(` Next run: ${sched.nextRun}`));
235
+ console.log(` ${statusIcon} ${chalk.white(show(sched.workflowId))}`);
236
+ console.log(chalk.gray(` ID: ${show(sched.id)}`));
237
+ const description = sched.scheduleDescription ? ` (${sched.scheduleDescription})` : '';
238
+ console.log(chalk.gray(` Schedule: ${show(sched.schedule)}${description}`));
239
+ console.log(chalk.gray(` File: ${show(sched.pipelinePath)}`));
240
+ console.log(chalk.gray(` Next run: ${show(sched.nextRun)}`));
237
241
  if (sched.lastRun) {
238
242
  console.log(chalk.gray(` Last run: ${sched.lastRun}`));
239
243
  }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `aqe init` guard for shared directories (#1006, review of #1026 N3).
3
+ *
4
+ * Initializing in the OS temp dir or a system dir wrote `<tmp>/.agentic-qe`
5
+ * and `.mcp.json` there, but every later command resolves such a dir to a
6
+ * private scratch root, so the initialized store was never used. Refusing
7
+ * with a clear next step is less surprising than initializing a hidden root.
8
+ *
9
+ * @module cli/handlers/init-guard
10
+ */
11
+ /** The explicit root is also the destination for all init-generated files. */
12
+ export declare function initProjectRoot(cwd?: string, env?: NodeJS.ProcessEnv): string;
13
+ /**
14
+ * Error message when `projectRoot` must not be initialized, otherwise null.
15
+ *
16
+ * An explicit root (`AQE_PROJECT_ROOT`) is refused only when it is a hard-stop
17
+ * directory (OS temp dir, `/`, `/home`, ...), or a sticky world-writable
18
+ * directory WITHOUT `.git`. This mirrors `findProjectRoot`, which keeps a
19
+ * sticky (mode 1777) directory that is itself a repo root as its own root, so
20
+ * the explicit root stays the escape hatch for such a repository. A derived
21
+ * root (the cwd) keeps the stricter rule: any shared directory is refused.
22
+ */
23
+ export declare function sharedRootInitError(projectRoot: string, explicit: boolean): string | null;
24
+ /** Error message when the selected root must not be initialized, otherwise null. */
25
+ export declare function sharedDirInitError(cwd: string, env?: NodeJS.ProcessEnv): string | null;
26
+ /**
27
+ * Error message when an explicit `AQE_PROJECT_ROOT` is not an existing
28
+ * directory, otherwise null. A typo must not silently create and initialize a
29
+ * new project somewhere else. Must run before anything creates the root (the
30
+ * CLI's token bootstrap does `mkdir -p <root>/.agentic-qe` at startup).
31
+ */
32
+ export declare function explicitRootError(cwd?: string, env?: NodeJS.ProcessEnv): string | null;
33
+ //# sourceMappingURL=init-guard.d.ts.map
@@ -0,0 +1,66 @@
1
+ /**
2
+ * `aqe init` guard for shared directories (#1006, review of #1026 N3).
3
+ *
4
+ * Initializing in the OS temp dir or a system dir wrote `<tmp>/.agentic-qe`
5
+ * and `.mcp.json` there, but every later command resolves such a dir to a
6
+ * private scratch root, so the initialized store was never used. Refusing
7
+ * with a clear next step is less surprising than initializing a hidden root.
8
+ *
9
+ * @module cli/handlers/init-guard
10
+ */
11
+ import { isHardStopDir, isSharedSystemDir, isStickyWorldWritable } from '../../kernel/shared-dirs.js';
12
+ import { existsSync, statSync } from 'node:fs';
13
+ import { join, resolve } from 'node:path';
14
+ /** The explicit root is also the destination for all init-generated files. */
15
+ export function initProjectRoot(cwd = process.cwd(), env = process.env) {
16
+ return resolve(cwd, env.AQE_PROJECT_ROOT || '.');
17
+ }
18
+ /**
19
+ * Error message when `projectRoot` must not be initialized, otherwise null.
20
+ *
21
+ * An explicit root (`AQE_PROJECT_ROOT`) is refused only when it is a hard-stop
22
+ * directory (OS temp dir, `/`, `/home`, ...), or a sticky world-writable
23
+ * directory WITHOUT `.git`. This mirrors `findProjectRoot`, which keeps a
24
+ * sticky (mode 1777) directory that is itself a repo root as its own root, so
25
+ * the explicit root stays the escape hatch for such a repository. A derived
26
+ * root (the cwd) keeps the stricter rule: any shared directory is refused.
27
+ */
28
+ export function sharedRootInitError(projectRoot, explicit) {
29
+ const shared = explicit
30
+ ? isHardStopDir(projectRoot)
31
+ || (isStickyWorldWritable(projectRoot) && !existsSync(join(projectRoot, '.git')))
32
+ : isSharedSystemDir(projectRoot);
33
+ if (!shared)
34
+ return null;
35
+ return (`Refusing to initialize in "${projectRoot}": it is a shared temp/system directory, ` +
36
+ 'so a store here would be shared by every unrelated project below it and ' +
37
+ 'later commands would not use it. Create a project directory first ' +
38
+ '(mkdir my-project && cd my-project) or set AQE_PROJECT_ROOT to a project directory.');
39
+ }
40
+ /** Error message when the selected root must not be initialized, otherwise null. */
41
+ export function sharedDirInitError(cwd, env = process.env) {
42
+ return sharedRootInitError(initProjectRoot(cwd, env), Boolean(env.AQE_PROJECT_ROOT));
43
+ }
44
+ /**
45
+ * Error message when an explicit `AQE_PROJECT_ROOT` is not an existing
46
+ * directory, otherwise null. A typo must not silently create and initialize a
47
+ * new project somewhere else. Must run before anything creates the root (the
48
+ * CLI's token bootstrap does `mkdir -p <root>/.agentic-qe` at startup).
49
+ */
50
+ export function explicitRootError(cwd = process.cwd(), env = process.env) {
51
+ if (!env.AQE_PROJECT_ROOT)
52
+ return null;
53
+ const root = initProjectRoot(cwd, env);
54
+ let isDir = false;
55
+ try {
56
+ isDir = statSync(root).isDirectory();
57
+ }
58
+ catch {
59
+ isDir = false;
60
+ }
61
+ if (isDir)
62
+ return null;
63
+ return (`AQE_PROJECT_ROOT "${root}" is not an existing directory. ` +
64
+ 'Create it first (mkdir -p) or correct the path; aqe init does not create the project root.');
65
+ }
66
+ //# sourceMappingURL=init-guard.js.map
@@ -80,6 +80,9 @@ export interface InitJsonOutput {
80
80
  error?: string;
81
81
  };
82
82
  };
83
+ /** #1017: pre-3.15.6 test-named skill files removed / kept by init. */
84
+ retiredAssetsRemoved?: string[];
85
+ retiredAssetsKept?: string[];
83
86
  };
84
87
  totalDurationMs: number;
85
88
  timestamp: string;
@@ -9,6 +9,7 @@ import { createRequire } from 'node:module';
9
9
  import { ALL_DOMAINS } from '../../shared/types/index.js';
10
10
  import { toErrorMessage } from '../../shared/error-utils.js';
11
11
  import { resolveInitFlags } from './init-flags.js';
12
+ import { initProjectRoot, sharedRootInitError } from './init-guard.js';
12
13
  // ============================================================================
13
14
  // Init Handler
14
15
  // ============================================================================
@@ -88,6 +89,15 @@ export class InitHandler {
88
89
  });
89
90
  }
90
91
  try {
92
+ const projectRoot = initProjectRoot();
93
+ // #1006 (review of #1026 N3): never initialize a store in a shared
94
+ // temp/system dir; later commands would resolve elsewhere and ignore it.
95
+ const sharedDirError = sharedRootInitError(projectRoot, Boolean(process.env.AQE_PROJECT_ROOT));
96
+ if (sharedDirError) {
97
+ console.error(chalk.red(`\n ${sharedDirError}\n`));
98
+ await this.cleanupAndExit(1);
99
+ return;
100
+ }
91
101
  // Expand --with-all-platforms into individual flags
92
102
  if (options.withAllPlatforms) {
93
103
  options.withCopilot = true;
@@ -108,11 +118,11 @@ export class InitHandler {
108
118
  console.log(chalk.blue('\n Agentic QE v3 Initialization\n'));
109
119
  // Use modular orchestrator for --auto or --modular
110
120
  if (options.auto || options.modular || options.browserEngine) {
111
- await this.runModularInit(options, context);
121
+ await this.runModularInit(options, context, projectRoot);
112
122
  return;
113
123
  }
114
124
  // Legacy wizard mode using InitOrchestrator
115
- await this.runLegacyWizard(options, context);
125
+ await this.runLegacyWizard(options, context, projectRoot);
116
126
  return;
117
127
  }
118
128
  // Platform provisioning (--with-opencode, --with-n8n, --with-<editor>, ...)
@@ -135,7 +145,7 @@ export class InitHandler {
135
145
  const noStatusLineRequested = flags.noStatusLine;
136
146
  if (options.browserEngine || options.modular || platformRequested || databaseFree || noClaudeRequested || noStatusLineRequested) {
137
147
  console.log(chalk.blue('\n Agentic QE v3 Initialization\n'));
138
- await this.runModularInit(options, context);
148
+ await this.runModularInit(options, context, projectRoot);
139
149
  return;
140
150
  }
141
151
  // Standard init without wizard
@@ -146,7 +156,7 @@ export class InitHandler {
146
156
  await this.cleanupAndExit(1);
147
157
  }
148
158
  }
149
- async runModularInit(options, _context) {
159
+ async runModularInit(options, _context, projectRoot) {
150
160
  const isJsonMode = options.json === true;
151
161
  // #931/#935: commander maps --no-<name> to options.<name> === false.
152
162
  const flags = resolveInitFlags(options);
@@ -176,7 +186,7 @@ export class InitHandler {
176
186
  }
177
187
  const { createModularInitOrchestrator } = await import('../../init/orchestrator.js');
178
188
  const orchestrator = createModularInitOrchestrator({
179
- projectRoot: process.cwd(),
189
+ projectRoot,
180
190
  autoMode: options.auto,
181
191
  upgrade: options.upgrade,
182
192
  minimal: options.minimal,
@@ -247,7 +257,7 @@ export class InitHandler {
247
257
  try {
248
258
  const { setupClaudeFlowIntegration } = await import('../commands/claude-flow-setup.js');
249
259
  cfResult = await setupClaudeFlowIntegration({
250
- projectRoot: process.cwd(),
260
+ projectRoot,
251
261
  force: options.withClaudeFlow,
252
262
  });
253
263
  if (cfResult.available) {
@@ -304,11 +314,11 @@ export class InitHandler {
304
314
  }
305
315
  await this.cleanupAndExit(0);
306
316
  }
307
- async runLegacyWizard(options, _context) {
317
+ async runLegacyWizard(options, _context, projectRoot) {
308
318
  const flags = resolveInitFlags(options);
309
319
  const { InitOrchestrator } = await import('../../init/init-wizard.js');
310
320
  const orchestratorOptions = {
311
- projectRoot: process.cwd(),
321
+ projectRoot,
312
322
  autoMode: options.auto,
313
323
  minimal: options.minimal,
314
324
  browserEngine: options.browserEngine,
@@ -446,62 +456,62 @@ export class InitHandler {
446
456
  }
447
457
  }
448
458
  getHelp() {
449
- return `
450
- Initialize the AQE v3 system with various configuration options.
451
-
452
- Usage:
453
- aqe init [options]
454
-
455
- Options:
456
- -d, --domains <domains> Comma-separated list of domains to enable (default: all)
457
- -m, --max-agents <number> Maximum concurrent agents (default: 15)
458
- --memory <backend> Memory backend: sqlite, agentdb, or hybrid (default: hybrid)
459
- --lazy Enable lazy loading of domains
460
- --wizard Run interactive setup wizard
461
- --auto Auto-configure based on project analysis
462
- -u, --upgrade Upgrade existing installation (overwrite skills, agents, validation)
463
- --minimal Minimal configuration (skip optional features)
464
- --skip-patterns Skip loading pre-trained patterns
459
+ return `
460
+ Initialize the AQE v3 system with various configuration options.
461
+
462
+ Usage:
463
+ aqe init [options]
464
+
465
+ Options:
466
+ -d, --domains <domains> Comma-separated list of domains to enable (default: all)
467
+ -m, --max-agents <number> Maximum concurrent agents (default: 15)
468
+ --memory <backend> Memory backend: sqlite, agentdb, or hybrid (default: hybrid)
469
+ --lazy Enable lazy loading of domains
470
+ --wizard Run interactive setup wizard
471
+ --auto Auto-configure based on project analysis
472
+ -u, --upgrade Upgrade existing installation (overwrite skills, agents, validation)
473
+ --minimal Minimal configuration (skip optional features)
474
+ --skip-patterns Skip loading pre-trained patterns
465
475
  --browser-engine Install optional Vibium and browser payload
466
476
  --no-browser-engine Skip browser setup (default)
467
- --with-n8n Install n8n workflow testing agents and skills
477
+ --with-n8n Install n8n workflow testing agents and skills
468
478
  --with-opencode Include OpenCode agent/skill provisioning
469
479
  --with-codex Include OpenAI Codex hooks, instructions, skills, and MCP
470
480
  --codex-guidance <mode> Codex AGENTS.md guidance: full, compact, or none
471
481
  --with-ruflo Opt into Ruflo guidance and lifecycle hooks for Codex
472
- --auto-migrate Automatically migrate from v2 if detected
473
- --with-claude-flow Force Claude Flow integration setup
474
- --skip-claude-flow Skip Claude Flow integration
475
- --no-mcp Skip MCP server config (MCP is enabled by default)
476
- --with-mcp Add the .mcp.json entry even if the agentic-qe-fleet plugin is enabled
477
- (--no-mcp and --with-mcp cannot be combined)
478
- --no-governance Skip governance configuration (ADR-058)
479
- --modular Use new modular init system
480
-
481
- MCP Server:
482
- MCP server configuration is ENABLED BY DEFAULT. It writes .mcp.json
483
- at the project root so Claude Code auto-discovers the AQE MCP server.
484
- Use --no-mcp to skip if you only want CLI commands.
485
- If the agentic-qe-fleet Claude Code plugin is enabled (user, project or
486
- local settings), init skips the entry because the plugin already provides
487
- the AQE MCP server. Use --with-mcp to add the project entry anyway.
488
-
489
- Governance:
490
- Governance is ENABLED BY DEFAULT. It installs .claude/guidance/ with:
491
- - constitution.md: 7 unbreakable QE invariants
492
- - shards/*.shard.md: 12 domain-specific governance rules
493
-
494
- Use --no-governance to skip, or set GOVERNANCE_*=false env vars for
495
- fine-grained control over individual gates (ContinueGate, MemoryWriteGate, etc.)
496
-
482
+ --auto-migrate Automatically migrate from v2 if detected
483
+ --with-claude-flow Force Claude Flow integration setup
484
+ --skip-claude-flow Skip Claude Flow integration
485
+ --no-mcp Skip MCP server config (MCP is enabled by default)
486
+ --with-mcp Add the .mcp.json entry even if the agentic-qe-fleet plugin is enabled
487
+ (--no-mcp and --with-mcp cannot be combined)
488
+ --no-governance Skip governance configuration (ADR-058)
489
+ --modular Use new modular init system
490
+
491
+ MCP Server:
492
+ MCP server configuration is ENABLED BY DEFAULT. It writes .mcp.json
493
+ at the project root so Claude Code auto-discovers the AQE MCP server.
494
+ Use --no-mcp to skip if you only want CLI commands.
495
+ If the agentic-qe-fleet Claude Code plugin is enabled (user, project or
496
+ local settings), init skips the entry because the plugin already provides
497
+ the AQE MCP server. Use --with-mcp to add the project entry anyway.
498
+
499
+ Governance:
500
+ Governance is ENABLED BY DEFAULT. It installs .claude/guidance/ with:
501
+ - constitution.md: 7 unbreakable QE invariants
502
+ - shards/*.shard.md: 12 domain-specific governance rules
503
+
504
+ Use --no-governance to skip, or set GOVERNANCE_*=false env vars for
505
+ fine-grained control over individual gates (ContinueGate, MemoryWriteGate, etc.)
506
+
497
507
  Examples:
498
508
  aqe init --auto # Auto-configure based on project (keeps existing skills)
499
509
  aqe init --auto --with-codex --with-ruflo
500
510
  # Codex plus optional Ruflo coordination
501
- aqe init --auto --upgrade # Auto-configure AND update all skills/agents
502
- aqe init --upgrade # Upgrade existing installation
503
- aqe init --wizard # Run interactive wizard
504
- aqe init --domains test-generation,coverage-analysis
511
+ aqe init --auto --upgrade # Auto-configure AND update all skills/agents
512
+ aqe init --upgrade # Upgrade existing installation
513
+ aqe init --wizard # Run interactive wizard
514
+ aqe init --domains test-generation,coverage-analysis
505
515
  `;
506
516
  }
507
517
  }
@@ -5,6 +5,7 @@
5
5
  * Part of the CLI modularization refactoring.
6
6
  */
7
7
  import chalk from 'chalk';
8
+ import { isAqeManagedDir } from '../../shared/aqe-managed-dirs.js';
8
9
  // ============================================================================
9
10
  // Helper Functions for Handlers
10
11
  // ============================================================================
@@ -66,7 +67,7 @@ export function getColorForPercent(percent) {
66
67
  export async function walkDirectory(dir, options = {}) {
67
68
  const fs = await import('fs');
68
69
  const path = await import('path');
69
- const { extensions = ['.ts'], exclude = ['node_modules', 'dist'], maxDepth = 4, includeTests = false, } = options;
70
+ const { extensions = ['.ts'], exclude = ['node_modules', 'dist', '.git'], maxDepth = 4, includeTests = false, } = options;
70
71
  const walkDir = (currentDir, depth) => {
71
72
  if (depth > maxDepth)
72
73
  return [];
@@ -81,6 +82,9 @@ export async function walkDirectory(dir, options = {}) {
81
82
  for (const item of items) {
82
83
  if (exclude.includes(item))
83
84
  continue;
85
+ // #999: AQE state/assets (.agentic-qe anywhere; .claude at the root or next to .agentic-qe)
86
+ if (isAqeManagedDir(currentDir, item, depth === 0))
87
+ continue;
84
88
  if (!includeTests && (item === 'tests' || item.includes('.test.') || item.includes('.spec.')))
85
89
  continue;
86
90
  const fullPath = path.join(currentDir, item);
package/dist/cli/index.js CHANGED
@@ -417,6 +417,17 @@ async function main() {
417
417
  const commandArgs = process.argv.slice(2).filter(arg => arg !== '--');
418
418
  const learningSnapshot = commandArgs[0] === 'learning'
419
419
  && (commandArgs[1] === 'backup' || commandArgs[1] === 'restore');
420
+ // `aqe init` must not create a mistyped AQE_PROJECT_ROOT: the token bootstrap
421
+ // below does `mkdir -p <root>/.agentic-qe`, so the check has to run first.
422
+ if (commandArgs[0] === 'init') {
423
+ const { explicitRootError } = await import('./handlers/init-guard.js');
424
+ const rootError = explicitRootError();
425
+ if (rootError) {
426
+ console.error(chalk.red(`\n ${rootError}\n`));
427
+ await cleanupAndExit(1);
428
+ return;
429
+ }
430
+ }
420
431
  if (!learningSnapshot) {
421
432
  const { bootstrapTokenTracking } = await import('../init/token-bootstrap.js');
422
433
  await bootstrapTokenTracking({
@@ -123,9 +123,11 @@ export declare class PersistentScheduler {
123
123
  due: number;
124
124
  }>;
125
125
  /**
126
- * Load schedules without acquiring lock (for use within locked context)
126
+ * Load schedules for a locked read-modify-write. A genuinely unparseable
127
+ * file is backed up (not removed) first, so the write that follows cannot
128
+ * silently replace it with fewer schedules.
127
129
  */
128
- private loadSchedulesUnsafe;
130
+ private loadForWrite;
129
131
  /**
130
132
  * Parse schedules file content with validation
131
133
  * Security: Checks file size before parsing to prevent DoS
@@ -139,6 +141,8 @@ export declare class PersistentScheduler {
139
141
  * Handle corrupt schedules file by backing up and creating new
140
142
  */
141
143
  private handleCorruptFile;
144
+ /** Copy an unparseable schedules file to `.corrupt.<ts>` (left in place). */
145
+ private backupCorruptFile;
142
146
  /**
143
147
  * Execute a function with file locking for safe concurrent access
144
148
  */