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
@@ -20,6 +20,10 @@ export interface AssetsResult {
20
20
  policy: 'full' | 'compact' | 'none';
21
21
  ownedBytes: number;
22
22
  };
23
+ /** #1017: retired shipped files removed from the project (exact path + shipped hash). */
24
+ retiredAssetsRemoved?: string[];
25
+ /** #1017: retired files left in place (edited, symlinked, or outside the project). */
26
+ retiredAssetsKept?: string[];
23
27
  codexComponents?: {
24
28
  hooks: {
25
29
  status: string;
@@ -8,6 +8,7 @@ import { BasePhase, } from './phase-interface.js';
8
8
  import { createSkillsInstaller } from '../skills-installer.js';
9
9
  import { createAgentsInstaller } from '../agents-installer.js';
10
10
  import { createN8nInstaller } from '../n8n-installer.js';
11
+ import { retireShippedAssets } from '../retired-assets.js';
11
12
  import { installBrowserEngine, detectBrowserEngine, diagnosePlatform, DEFAULT_VIBIUM_SPEC, } from '../browser-engine-installer.js';
12
13
  import { initializeOverlays } from '../../routing/qe-agent-registry.js';
13
14
  /**
@@ -38,6 +39,8 @@ export class AssetsPhase extends BasePhase {
38
39
  let kiroHooks = 0;
39
40
  let codexGuidance;
40
41
  let codexComponents;
42
+ let retiredAssetsRemoved = [];
43
+ let retiredAssetsKept = [];
41
44
  if (options.upgrade) {
42
45
  context.services.log(` Upgrade mode: overwriting existing files`);
43
46
  }
@@ -58,6 +61,36 @@ export class AssetsPhase extends BasePhase {
58
61
  context.services.warn(`Skills warnings: ${skillsResult.errors.join(', ')}`);
59
62
  }
60
63
  }
64
+ // #1017: remove files earlier releases shipped under names the user's test
65
+ // runner collects. Runs on EVERY init that manages the Claude skills, not
66
+ // only --upgrade: plain `init --auto` on an existing install skips skills
67
+ // that are already present, so without this the stale copies would never
68
+ // leave. It is safe on every run because only an exact path whose content
69
+ // still equals a shipped version is deleted (edited copies keep their whole
70
+ // group), and the renamed replacements are installed so the skill keeps
71
+ // working without --upgrade.
72
+ if (!options.noClaude) {
73
+ const retired = retireShippedAssets(projectRoot, {
74
+ sourceSkillsDir: createSkillsInstaller({ projectRoot }).getSourceSkillsDir(),
75
+ });
76
+ retiredAssetsRemoved = retired.removed;
77
+ retiredAssetsKept = retired.kept.flatMap((k) => k.files);
78
+ for (const relPath of retired.removed) {
79
+ context.services.log(` Removed retired asset: ${relPath}`);
80
+ }
81
+ for (const relPath of [...retired.installed, ...retired.refreshed]) {
82
+ context.services.log(` Updated skill file: ${relPath}`);
83
+ }
84
+ for (const kept of retired.kept) {
85
+ context.services.warn(`Kept ${kept.files.join(', ')}: ${kept.why}. ${kept.advice}.`);
86
+ }
87
+ for (const note of retired.replacementWarnings) {
88
+ context.services.warn(`Skill file kept: ${note}.`);
89
+ }
90
+ if (retired.missingReplacements.length > 0) {
91
+ context.services.warn(`Could not install ${retired.missingReplacements.join(', ')}; run "aqe init --upgrade" to refresh the skills.`);
92
+ }
93
+ }
61
94
  // Install agents (Claude Code surface — skipped with --no-claude, #532)
62
95
  if (!options.noClaude) {
63
96
  try {
@@ -354,6 +387,8 @@ export class AssetsPhase extends BasePhase {
354
387
  browserEngine,
355
388
  codexGuidance,
356
389
  codexComponents,
390
+ retiredAssetsRemoved,
391
+ retiredAssetsKept,
357
392
  };
358
393
  }
359
394
  /**
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Retired shipped assets (#1017).
3
+ *
4
+ * Earlier releases copied files into the user's project that 3.15.6 renames.
5
+ * Re-running `aqe init` skips skills that already exist, so an existing install
6
+ * would keep the stale copies, and their test-glob names make the user's own
7
+ * vitest / jest collect AQE's eval fixtures.
8
+ *
9
+ * Each group is retired as a unit:
10
+ * - A retired file is removable only when its path matches exactly, it is a
11
+ * regular file (not a symlink), its resolved parent directory is inside the
12
+ * project root (no symlinked ancestor), and its sha256 equals a version AQE
13
+ * actually shipped.
14
+ * - If ANY present file in a group is not removable (edited, symlink, outside
15
+ * the project, unreadable), the whole group is kept. Deleting a pristine
16
+ * `budget.ts` next to a kept `budget.test.ts` would break the user's test run
17
+ * with "Cannot find module './budget'".
18
+ * - After removal, the renamed replacements are installed from the package
19
+ * (never overwriting an existing file), and companion files that still name
20
+ * the old files (README, eval yaml) are refreshed only when they are AQE's
21
+ * unmodified shipped copies. Plain `init --auto` therefore leaves a working
22
+ * skill without overwriting user edits.
23
+ */
24
+ export interface RetiredFile {
25
+ /** Path relative to the project root, '/'-separated. */
26
+ readonly relPath: string;
27
+ /** sha256 (hex) of every distinct content AQE shipped at this path. */
28
+ readonly shippedSha256: readonly string[];
29
+ }
30
+ export interface ReplacementFile {
31
+ /** Destination relative to the project root. */
32
+ readonly relPath: string;
33
+ /** Source relative to the package skills directory (assets/skills). */
34
+ readonly source: string;
35
+ }
36
+ export interface RefreshFile extends ReplacementFile {
37
+ /** sha256 of every earlier shipped version; only those are overwritten. */
38
+ readonly previousSha256: readonly string[];
39
+ }
40
+ export interface RetiredAssetGroup {
41
+ readonly id: string;
42
+ /** Retired together: if one is kept, all are kept. */
43
+ readonly retired: readonly RetiredFile[];
44
+ /** Installed (if absent) once the group is retired. */
45
+ readonly replacements: readonly ReplacementFile[];
46
+ /** Overwritten once the group is retired, only if still AQE's unmodified copy. */
47
+ readonly refresh: readonly RefreshFile[];
48
+ /** Why the group was retired / what to do if it is kept. */
49
+ readonly advice: string;
50
+ }
51
+ /**
52
+ * Hashes are of `git show <tag>:assets/skills/<path>` over every v3 release tag.
53
+ * Retired files: one distinct content each (v3.13.0–v3.15.5 for qe-court,
54
+ * v3.0.0–v3.15.5 for testability-scoring); the same bytes now ship under the
55
+ * new names, which a unit test pins. Refreshed files list every earlier shipped
56
+ * content (qe-court.yaml changed once, at v3.14.0).
57
+ */
58
+ export declare const RETIRED_ASSET_GROUPS: readonly RetiredAssetGroup[];
59
+ export interface RetireOptions {
60
+ /** Package skills directory (assets/skills) used for replacements and refreshes. */
61
+ sourceSkillsDir?: string;
62
+ groups?: readonly RetiredAssetGroup[];
63
+ }
64
+ export interface RetireResult {
65
+ /** Retired files removed (exact path + shipped content). */
66
+ removed: string[];
67
+ /** Renamed replacements installed. */
68
+ installed: string[];
69
+ /** Companion files updated from AQE's unmodified copy. */
70
+ refreshed: string[];
71
+ /** Groups left in place, with the files, the cause, and what to do. */
72
+ kept: Array<{
73
+ group: string;
74
+ files: string[];
75
+ why: string;
76
+ advice: string;
77
+ }>;
78
+ /** Replacements that could not be installed (missing package source or unsafe target). */
79
+ missingReplacements: string[];
80
+ /** Why a replacement target was left alone (symlink or other non-file in the way). */
81
+ replacementWarnings: string[];
82
+ }
83
+ export declare function sha256Hex(content: Buffer): string;
84
+ /** Remove retired assets AQE shipped unmodified, install replacements; keep anything else. */
85
+ export declare function retireShippedAssets(projectRoot: string, options?: RetireOptions): RetireResult;
86
+ //# sourceMappingURL=retired-assets.d.ts.map
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Retired shipped assets (#1017).
3
+ *
4
+ * Earlier releases copied files into the user's project that 3.15.6 renames.
5
+ * Re-running `aqe init` skips skills that already exist, so an existing install
6
+ * would keep the stale copies, and their test-glob names make the user's own
7
+ * vitest / jest collect AQE's eval fixtures.
8
+ *
9
+ * Each group is retired as a unit:
10
+ * - A retired file is removable only when its path matches exactly, it is a
11
+ * regular file (not a symlink), its resolved parent directory is inside the
12
+ * project root (no symlinked ancestor), and its sha256 equals a version AQE
13
+ * actually shipped.
14
+ * - If ANY present file in a group is not removable (edited, symlink, outside
15
+ * the project, unreadable), the whole group is kept. Deleting a pristine
16
+ * `budget.ts` next to a kept `budget.test.ts` would break the user's test run
17
+ * with "Cannot find module './budget'".
18
+ * - After removal, the renamed replacements are installed from the package
19
+ * (never overwriting an existing file), and companion files that still name
20
+ * the old files (README, eval yaml) are refreshed only when they are AQE's
21
+ * unmodified shipped copies. Plain `init --auto` therefore leaves a working
22
+ * skill without overwriting user edits.
23
+ */
24
+ import { createHash } from 'crypto';
25
+ import { constants as fsConstants, copyFileSync, existsSync, lstatSync, readFileSync, realpathSync, unlinkSync, } from 'fs';
26
+ import { dirname, join, sep } from 'path';
27
+ const QC = '.claude/skills/qe-court/evals/fixtures/seeded-mutant-delivery';
28
+ const QC_SRC = 'qe-court/evals/fixtures/seeded-mutant-delivery';
29
+ const TS = '.claude/skills/testability-scoring/resources/templates';
30
+ const TS_SRC = 'testability-scoring/resources/templates';
31
+ /**
32
+ * Hashes are of `git show <tag>:assets/skills/<path>` over every v3 release tag.
33
+ * Retired files: one distinct content each (v3.13.0–v3.15.5 for qe-court,
34
+ * v3.0.0–v3.15.5 for testability-scoring); the same bytes now ship under the
35
+ * new names, which a unit test pins. Refreshed files list every earlier shipped
36
+ * content (qe-court.yaml changed once, at v3.14.0).
37
+ */
38
+ export const RETIRED_ASSET_GROUPS = Object.freeze([
39
+ {
40
+ id: 'qe-court-seeded-mutant',
41
+ retired: [
42
+ { relPath: `${QC}/budget.test.ts`, shippedSha256: ['add1ff4cb05978c136f8c2c5cc50059d920f06f409e5f6f304239b7dad3cf65d'] },
43
+ { relPath: `${QC}/budget.ts`, shippedSha256: ['11fc97cad19bb4fc0d31151a6d216ab99d0df0521b60be8fb19581d412147ef6'] },
44
+ ],
45
+ replacements: [
46
+ { relPath: `${QC}/budget-tests.ts.fixture`, source: `${QC_SRC}/budget-tests.ts.fixture` },
47
+ { relPath: `${QC}/budget.ts.fixture`, source: `${QC_SRC}/budget.ts.fixture` },
48
+ ],
49
+ refresh: [
50
+ {
51
+ relPath: `${QC}/README.md`,
52
+ source: `${QC_SRC}/README.md`,
53
+ previousSha256: ['d3988b92856d0023a7ae210dce3e0bdf76204f41d635fd29f7e243c168ff6109'],
54
+ },
55
+ {
56
+ relPath: '.claude/skills/qe-court/evals/qe-court.yaml',
57
+ source: 'qe-court/evals/qe-court.yaml',
58
+ previousSha256: [
59
+ '412899013a51a099224bad04491d49dca19f2c567c5599adedabd0e1d58556c7',
60
+ '27c8be547dc032e2dbe488156dd7a30f79b1cc921fe92efec5b9bb0a151f0e9b',
61
+ ],
62
+ },
63
+ ],
64
+ advice: '3.15.6 renamed the qe-court seeded-mutant fixture to budget.ts.fixture / budget-tests.ts.fixture ' +
65
+ 'because budget.test.ts matches test-runner globs, so your vitest/jest collects it (#1017). ' +
66
+ 'The pair was left as is; delete or rename both files if you do not want your test runner to collect it',
67
+ },
68
+ {
69
+ id: 'testability-scoring-spec-template',
70
+ retired: [
71
+ {
72
+ relPath: `${TS}/testability-scoring.spec.template.js`,
73
+ shippedSha256: ['e85a3e25bb458f3d090834e121b02e8db83cdc589149b5cf7549853e1a067edf'],
74
+ },
75
+ ],
76
+ replacements: [
77
+ { relPath: `${TS}/testability-scoring-spec.template.js`, source: `${TS_SRC}/testability-scoring-spec.template.js` },
78
+ ],
79
+ refresh: [],
80
+ advice: '3.15.6 renamed it to testability-scoring-spec.template.js because its name matches the `*.spec.*` ' +
81
+ 'test glob (#1017); delete or rename it if your test runner should not collect it',
82
+ },
83
+ ]);
84
+ export function sha256Hex(content) {
85
+ return createHash('sha256').update(content).digest('hex');
86
+ }
87
+ /** True when `full`'s resolved parent directory is inside the resolved project root. */
88
+ function parentInsideRoot(rootReal, full) {
89
+ let parentReal;
90
+ try {
91
+ parentReal = realpathSync(dirname(full));
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ return parentReal === rootReal || parentReal.startsWith(rootReal + sep);
97
+ }
98
+ function probe(rootReal, full, name, shippedSha256) {
99
+ let stat;
100
+ try {
101
+ stat = lstatSync(full);
102
+ }
103
+ catch {
104
+ return { state: 'absent' };
105
+ }
106
+ if (!parentInsideRoot(rootReal, full)) {
107
+ return { state: 'blocked', why: `${name} resolves outside the project (symlinked directory)` };
108
+ }
109
+ if (!stat.isFile())
110
+ return { state: 'blocked', why: `${name} is not a regular file` };
111
+ try {
112
+ if (!shippedSha256.includes(sha256Hex(readFileSync(full)))) {
113
+ return { state: 'blocked', why: `${name} was modified since AQE installed it` };
114
+ }
115
+ }
116
+ catch (error) {
117
+ return { state: 'blocked', why: `${name} is unreadable (${error instanceof Error ? error.message : String(error)})` };
118
+ }
119
+ return { state: 'removable' };
120
+ }
121
+ /** Remove retired assets AQE shipped unmodified, install replacements; keep anything else. */
122
+ export function retireShippedAssets(projectRoot, options = {}) {
123
+ const groups = options.groups ?? RETIRED_ASSET_GROUPS;
124
+ const result = {
125
+ removed: [], installed: [], refreshed: [], kept: [], missingReplacements: [], replacementWarnings: [],
126
+ };
127
+ let rootReal;
128
+ try {
129
+ rootReal = realpathSync(projectRoot);
130
+ }
131
+ catch {
132
+ return result;
133
+ }
134
+ const abs = (rel) => join(projectRoot, ...rel.split('/'));
135
+ for (const group of groups) {
136
+ const probes = group.retired.map((file) => ({
137
+ file,
138
+ probe: probe(rootReal, abs(file.relPath), file.relPath.split('/').pop(), file.shippedSha256),
139
+ }));
140
+ const present = probes.filter((p) => p.probe.state !== 'absent');
141
+ if (present.length === 0)
142
+ continue;
143
+ const blocked = present.filter((p) => p.probe.state === 'blocked');
144
+ if (blocked.length > 0) {
145
+ result.kept.push({
146
+ group: group.id,
147
+ files: present.map((p) => p.file.relPath),
148
+ why: blocked.map((p) => p.probe.why).join('; '),
149
+ advice: group.advice,
150
+ });
151
+ continue;
152
+ }
153
+ for (const { file } of present) {
154
+ try {
155
+ unlinkSync(abs(file.relPath));
156
+ result.removed.push(file.relPath);
157
+ }
158
+ catch (error) {
159
+ result.kept.push({
160
+ group: group.id,
161
+ files: [file.relPath],
162
+ why: `could not remove (${error instanceof Error ? error.message : String(error)})`,
163
+ advice: group.advice,
164
+ });
165
+ }
166
+ }
167
+ for (const replacement of group.replacements) {
168
+ const target = abs(replacement.relPath);
169
+ const source = options.sourceSkillsDir ? join(options.sourceSkillsDir, ...replacement.source.split('/')) : undefined;
170
+ // Never overwrite. lstat (not existsSync) so a dangling symlink counts as
171
+ // present: it must not be written through.
172
+ let present;
173
+ try {
174
+ present = lstatSync(target);
175
+ }
176
+ catch {
177
+ present = undefined;
178
+ }
179
+ if (present?.isFile())
180
+ continue;
181
+ if (present) {
182
+ result.missingReplacements.push(replacement.relPath);
183
+ result.replacementWarnings.push(`${replacement.relPath} exists and is not a regular file (e.g. a symlink); not replaced`);
184
+ continue;
185
+ }
186
+ if (!source || !existsSync(source)) {
187
+ result.missingReplacements.push(replacement.relPath);
188
+ continue;
189
+ }
190
+ try {
191
+ // The retired files lived in the same directories, so they exist; a
192
+ // missing one is not created (it could sit under a symlinked ancestor).
193
+ if (!existsSync(dirname(target)) || !parentInsideRoot(rootReal, target)) {
194
+ result.missingReplacements.push(replacement.relPath);
195
+ continue;
196
+ }
197
+ // COPYFILE_EXCL = O_CREAT|O_EXCL: refuses ANY existing path, including a
198
+ // dangling symlink created after the check above (no write-through).
199
+ copyFileSync(source, target, fsConstants.COPYFILE_EXCL);
200
+ result.installed.push(replacement.relPath);
201
+ }
202
+ catch (error) {
203
+ result.missingReplacements.push(replacement.relPath);
204
+ if (error?.code === 'EEXIST') {
205
+ result.replacementWarnings.push(`${replacement.relPath} appeared during install; not replaced`);
206
+ }
207
+ }
208
+ }
209
+ for (const refresh of group.refresh) {
210
+ const target = abs(refresh.relPath);
211
+ const source = options.sourceSkillsDir ? join(options.sourceSkillsDir, ...refresh.source.split('/')) : undefined;
212
+ if (!source || !existsSync(source))
213
+ continue;
214
+ try {
215
+ const stat = lstatSync(target);
216
+ if (!stat.isFile() || !parentInsideRoot(rootReal, target))
217
+ continue;
218
+ if (!refresh.previousSha256.includes(sha256Hex(readFileSync(target))))
219
+ continue; // user-edited or current
220
+ copyFileSync(source, target);
221
+ result.refreshed.push(refresh.relPath);
222
+ }
223
+ catch {
224
+ // absent or unreadable: nothing to refresh
225
+ }
226
+ }
227
+ }
228
+ return result;
229
+ }
230
+ //# sourceMappingURL=retired-assets.js.map
@@ -47,6 +47,8 @@ export declare class SkillsInstaller {
47
47
  * Prioritises assets/skills/ (canonical npm source) over .claude/skills/.
48
48
  */
49
49
  private findSourceSkillsDir;
50
+ /** The package skills directory skills are copied from (assets/skills). */
51
+ getSourceSkillsDir(): string;
50
52
  /**
51
53
  * Install skills to the project
52
54
  */
@@ -162,6 +162,10 @@ export class SkillsInstaller {
162
162
  // If no skills found, return the first path (will fail gracefully)
163
163
  return possiblePaths[0];
164
164
  }
165
+ /** The package skills directory skills are copied from (assets/skills). */
166
+ getSourceSkillsDir() {
167
+ return this.sourceSkillsDir;
168
+ }
165
169
  /**
166
170
  * Install skills to the project
167
171
  */
@@ -237,6 +237,9 @@ export interface InitResult {
237
237
  error?: string;
238
238
  };
239
239
  };
240
+ /** #1017: pre-3.15.6 test-named skill files removed / kept by init. */
241
+ retiredAssetsRemoved?: string[];
242
+ retiredAssetsKept?: string[];
240
243
  };
241
244
  totalDurationMs: number;
242
245
  timestamp: Date;
@@ -61,6 +61,8 @@ export interface RvfNativeAdapter {
61
61
  accepted: number;
62
62
  rejected: number;
63
63
  };
64
+ /** True when the index holds a vector for `id` (#981 review B2: reconcile with SQLite). */
65
+ has?(id: string): boolean;
64
66
  search(query: Float32Array | number[], k: number): RvfSearchResult[];
65
67
  delete(ids: string[]): number;
66
68
  fork(childPath: string): RvfNativeAdapter;
@@ -121,6 +121,11 @@ class RvfNativeAdapterImpl {
121
121
  this.persistIdMap();
122
122
  return { accepted: result.accepted, rejected: result.rejected };
123
123
  }
124
+ // -- has ------------------------------------------------------------------
125
+ has(id) {
126
+ this.ensureOpen();
127
+ return this.strToNum.has(id);
128
+ }
124
129
  // -- search ---------------------------------------------------------------
125
130
  search(query, k) {
126
131
  this.ensureOpen();
@@ -59,6 +59,7 @@
59
59
  import { spawn } from 'child_process';
60
60
  import { toErrorMessage } from '../../shared/error-utils.js';
61
61
  import { LoggerFactory } from '../../logging/index.js';
62
+ import { fetchWithResponseDeadline } from '../../shared/llm/providers/response-deadline.js';
62
63
  const logger = LoggerFactory.create('ruvector-server-client');
63
64
  /**
64
65
  * Default server configuration
@@ -644,18 +645,9 @@ export class RuVectorServerClient {
644
645
  * Fetch with timeout support
645
646
  */
646
647
  async fetchWithTimeout(url, options, timeoutMs) {
647
- const controller = new AbortController();
648
- const timeout = setTimeout(() => controller.abort(), timeoutMs);
649
- try {
650
- const response = await fetch(url, {
651
- ...options,
652
- signal: controller.signal,
653
- });
654
- return response;
655
- }
656
- finally {
657
- clearTimeout(timeout);
658
- }
648
+ // #980 bug class: keep the deadline armed until the body is read, so a
649
+ // server that sends headers and stalls cannot hang health/stats calls.
650
+ return fetchWithResponseDeadline(url, options, timeoutMs, () => new Error(`RuVector server request timeout after ${timeoutMs}ms: ${url}`));
659
651
  }
660
652
  }
661
653
  // ============================================================================
@@ -16,6 +16,13 @@
16
16
  * environment changes at runtime.
17
17
  */
18
18
  export declare function clearProjectRootCache(): void;
19
+ export { isSharedSystemDir, scratchRootPath } from './shared-dirs.js';
20
+ /**
21
+ * Path of a file or directory inside the current project's `.agentic-qe`
22
+ * store. Writers use this instead of a cwd-relative `.agentic-qe`, so a run
23
+ * from a subdirectory or a shared temp dir writes to the resolved store.
24
+ */
25
+ export declare function getProjectStorePath(...segments: string[]): string;
19
26
  /**
20
27
  * Find the project root by walking up the directory tree.
21
28
  *
@@ -26,6 +33,16 @@ export declare function clearProjectRootCache(): void;
26
33
  * 4. Walk up looking for package.json WITHOUT node_modules sibling (monorepo root)
27
34
  * 5. Fallback to current working directory
28
35
  *
36
+ * Shared directories (#1006):
37
+ * - The walk stops at a hard-stop directory (the OS temp dir, a fixed system
38
+ * dir such as `/tmp`, `/`, `/home`, or a Windows drive root); markers in or
39
+ * above it are never adopted.
40
+ * - In a sticky world-writable dir (mode 1777) markers are still read, so a
41
+ * repo whose root is 1777 keeps its root, but a `.agentic-qe` store there
42
+ * is adopted only when the same dir has `.git`.
43
+ * - A shared dir is never returned as the root itself: a stable per-user
44
+ * scratch root is used instead (`ensureScratchRoot`).
45
+ *
29
46
  * Optimized: single upward walk checks all markers in one pass,
30
47
  * and the result is cached at module level for subsequent calls.
31
48
  */
@@ -14,6 +14,7 @@
14
14
  import * as fs from 'fs';
15
15
  import * as os from 'os';
16
16
  import * as path from 'path';
17
+ import { ensureScratchRoot, isHardStopDir, isSharedSystemDir, isStickyWorldWritable, } from './shared-dirs.js';
17
18
  /** Module-level cache for findProjectRoot result. */
18
19
  let _cachedProjectRoot = null;
19
20
  let _cachedStartDir = null;
@@ -25,6 +26,34 @@ export function clearProjectRootCache() {
25
26
  _cachedProjectRoot = null;
26
27
  _cachedStartDir = null;
27
28
  }
29
+ export { isSharedSystemDir, scratchRootPath } from './shared-dirs.js';
30
+ /** Scratch roots already announced in this process (one notice per directory). */
31
+ const announcedScratchRoots = new Set();
32
+ /**
33
+ * Stable private root used when AQE runs with no project marker from a shared
34
+ * temp/system directory itself. Using that directory would create
35
+ * `<tmp>/.agentic-qe`, which every marker-less run below it would adopt
36
+ * (#1006). The root lives in the per-user cache dir, keyed by the directory,
37
+ * so memory persists across runs and no directory is minted per process.
38
+ */
39
+ function scratchRootFor(sharedDir) {
40
+ const scratch = ensureScratchRoot(sharedDir);
41
+ if (!announcedScratchRoots.has(scratch)) {
42
+ announcedScratchRoots.add(scratch);
43
+ console.error(`[AQE] No project marker found and "${sharedDir}" is a shared temp/system ` +
44
+ `directory; using the private scratch root "${scratch}" instead of creating ` +
45
+ `a shared .agentic-qe store there. Set AQE_PROJECT_ROOT to choose a root.`);
46
+ }
47
+ return scratch;
48
+ }
49
+ /**
50
+ * Path of a file or directory inside the current project's `.agentic-qe`
51
+ * store. Writers use this instead of a cwd-relative `.agentic-qe`, so a run
52
+ * from a subdirectory or a shared temp dir writes to the resolved store.
53
+ */
54
+ export function getProjectStorePath(...segments) {
55
+ return path.join(findProjectRoot(), '.agentic-qe', ...segments);
56
+ }
28
57
  /** True when `dir` is `parent` or inside it. */
29
58
  function isWithin(dir, parent) {
30
59
  const rel = path.relative(parent, dir);
@@ -40,6 +69,16 @@ function isWithin(dir, parent) {
40
69
  * 4. Walk up looking for package.json WITHOUT node_modules sibling (monorepo root)
41
70
  * 5. Fallback to current working directory
42
71
  *
72
+ * Shared directories (#1006):
73
+ * - The walk stops at a hard-stop directory (the OS temp dir, a fixed system
74
+ * dir such as `/tmp`, `/`, `/home`, or a Windows drive root); markers in or
75
+ * above it are never adopted.
76
+ * - In a sticky world-writable dir (mode 1777) markers are still read, so a
77
+ * repo whose root is 1777 keeps its root, but a `.agentic-qe` store there
78
+ * is adopted only when the same dir has `.git`.
79
+ * - A shared dir is never returned as the root itself: a stable per-user
80
+ * scratch root is used instead (`ensureScratchRoot`).
81
+ *
43
82
  * Optimized: single upward walk checks all markers in one pass,
44
83
  * and the result is cached at module level for subsequent calls.
45
84
  */
@@ -69,6 +108,15 @@ export function findProjectRoot(startDir = process.cwd()) {
69
108
  let lowestGitDir = null;
70
109
  let topmostPackageJson = null;
71
110
  while (checkDir !== root) {
111
+ // #1006: a marker in the OS temp dir or a fixed system dir belongs to no
112
+ // project, and nothing above one is this project's either. Stop before
113
+ // adopting `/tmp/.agentic-qe`, `/tmp/.git` or a store above the temp dir.
114
+ if (isHardStopDir(checkDir))
115
+ break;
116
+ const hasGit = fs.existsSync(path.join(checkDir, '.git'));
117
+ // A sticky world-writable dir is shared scratch space unless it is itself
118
+ // a repo root; only then may a store in it be adopted (#1006, N4).
119
+ const strayStoreDir = !hasGit && isStickyWorldWritable(checkDir);
72
120
  // Issue #516: prefer the NEAREST (lowest) .agentic-qe, mirroring the
73
121
  // .git logic below. Keeping the topmost match let an ancestor store
74
122
  // (e.g. ~/.agentic-qe, created by any `aqe` run from $HOME) hijack
@@ -77,12 +125,13 @@ export function findProjectRoot(startDir = process.cwd()) {
77
125
  // has not been initialized with AQE yet.
78
126
  const isHomeStoreAboveStart = checkDir === home && checkDir !== dir
79
127
  && !isWithin(dir, path.join(checkDir, '.agentic-qe'));
80
- if (lowestGitDir === null && !isHomeStoreAboveStart && fs.existsSync(path.join(checkDir, '.agentic-qe'))) {
128
+ if (lowestGitDir === null && !isHomeStoreAboveStart && !strayStoreDir
129
+ && fs.existsSync(path.join(checkDir, '.agentic-qe'))) {
81
130
  if (nearestAqeDir === null) {
82
131
  nearestAqeDir = checkDir;
83
132
  }
84
133
  }
85
- if (fs.existsSync(path.join(checkDir, '.git'))) {
134
+ if (hasGit) {
86
135
  if (lowestGitDir === null) {
87
136
  lowestGitDir = checkDir;
88
137
  }
@@ -101,6 +150,9 @@ export function findProjectRoot(startDir = process.cwd()) {
101
150
  else if (topmostPackageJson) {
102
151
  _cachedProjectRoot = topmostPackageJson;
103
152
  }
153
+ else if (isSharedSystemDir(dir)) {
154
+ _cachedProjectRoot = scratchRootFor(dir);
155
+ }
104
156
  else {
105
157
  _cachedProjectRoot = dir;
106
158
  }