agentic-qe 3.15.7 → 3.15.9

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 (489) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +305 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
  5. package/dist/bridge/captured-experience-bridge.js +12 -13
  6. package/dist/cli/bundle.js +6 -6
  7. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +2 -0
  8. package/dist/cli/chunks/{agent-booster-wasm-OS5G7KMQ.js → agent-booster-wasm-427FRKWG.js} +2 -2
  9. package/dist/cli/chunks/{agent-handler-PI4I7PME.js → agent-handler-RIYHTHVZ.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-J7TXHX4U.js → agent-memory-branch-WSUCUHOO.js} +2 -2
  11. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +2 -0
  12. package/dist/cli/chunks/{arena-OWUGXKNT.js → arena-KRIBMIXX.js} +2 -2
  13. package/dist/cli/chunks/{arena-FXESDCFR.js → arena-YAJZX6MC.js} +4 -4
  14. package/dist/cli/chunks/{audit-EPAWLYIZ.js → audit-7ZNOXWP3.js} +3 -3
  15. package/dist/cli/chunks/base-67DXSAYM.js +2 -0
  16. package/dist/cli/chunks/{better-sqlite3-IYVR5EQY.js → better-sqlite3-ZQAT4I6H.js} +2 -2
  17. package/dist/cli/chunks/{brain-handler-3W2E6TC6.js → brain-handler-452WCPZC.js} +3 -3
  18. package/dist/cli/chunks/{branch-enumerator-HU7VACJ4.js → branch-enumerator-IJFXJRPN.js} +2 -2
  19. package/dist/cli/chunks/{browser-72XOR6E2.js → browser-CT3MTV6G.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +2 -0
  21. package/dist/cli/chunks/{chunk-WXI2STKQ.js → chunk-2BA45H64.js} +2 -2
  22. package/dist/cli/chunks/{chunk-DGK6GQMO.js → chunk-2HL3UM5P.js} +2 -2
  23. package/dist/cli/chunks/{chunk-LGBN7TKC.js → chunk-2I2UPJS7.js} +2 -2
  24. package/dist/cli/chunks/{chunk-ZRLNACPY.js → chunk-2TDIS6YK.js} +2 -2
  25. package/dist/cli/chunks/{chunk-34JLY3U6.js → chunk-2URBI52G.js} +2 -2
  26. package/dist/cli/chunks/{chunk-K7W55B7Q.js → chunk-2XITOPYV.js} +2 -2
  27. package/dist/cli/chunks/{chunk-I7H4IP7T.js → chunk-2YH62JCN.js} +2 -2
  28. package/dist/cli/chunks/{chunk-HPG7354V.js → chunk-32UTLDNY.js} +2 -2
  29. package/dist/cli/chunks/{chunk-C2CUPJGR.js → chunk-37BIGMJI.js} +1 -1
  30. package/dist/cli/chunks/{chunk-2RJYA6WK.js → chunk-3CJCROMW.js} +2 -2
  31. package/dist/cli/chunks/{chunk-CWPRU7ZI.js → chunk-3LYU7BLY.js} +2 -2
  32. package/dist/cli/chunks/{chunk-24CENUT4.js → chunk-47TYABPD.js} +3 -3
  33. package/dist/cli/chunks/{chunk-WUV5RZUI.js → chunk-47V7FQGX.js} +2 -2
  34. package/dist/cli/chunks/{chunk-IWQQIXHO.js → chunk-4JCY45KV.js} +2 -2
  35. package/dist/cli/chunks/{chunk-ZTMZFF25.js → chunk-4SUOVLJ6.js} +2 -2
  36. package/dist/cli/chunks/{chunk-CIFWOMNX.js → chunk-4URT6JO2.js} +1 -1
  37. package/dist/cli/chunks/{chunk-5Q22XPTH.js → chunk-4V27J6YN.js} +2 -2
  38. package/dist/cli/chunks/{chunk-SX2YSHE7.js → chunk-4W4DYVSH.js} +1 -1
  39. package/dist/cli/chunks/chunk-55HRSNGN.js +2 -0
  40. package/dist/cli/chunks/{chunk-F62EKVVC.js → chunk-5D2I7JUP.js} +2 -2
  41. package/dist/cli/chunks/{chunk-XXAVQACL.js → chunk-5JWGCIQW.js} +1 -1
  42. package/dist/cli/chunks/chunk-5LAAZLUC.js +4 -0
  43. package/dist/cli/chunks/{chunk-EDU72RTW.js → chunk-5NS3USRW.js} +1 -1
  44. package/dist/cli/chunks/{chunk-BTYKGVJ5.js → chunk-6EPHNJTL.js} +1 -1
  45. package/dist/cli/chunks/{chunk-JVYPXW6Y.js → chunk-6OOYIO3W.js} +2 -2
  46. package/dist/cli/chunks/{chunk-PG64YV6C.js → chunk-6PXA2BQJ.js} +58 -58
  47. package/dist/cli/chunks/{chunk-IARSGAG7.js → chunk-6YL6JOQB.js} +2 -2
  48. package/dist/cli/chunks/{chunk-LDXQRNTT.js → chunk-72AMFDC7.js} +1 -1
  49. package/dist/cli/chunks/{chunk-Z3VJLWRR.js → chunk-763SUL4B.js} +2 -2
  50. package/dist/cli/chunks/{chunk-EL75G2A3.js → chunk-7DMA5NYL.js} +1 -1
  51. package/dist/cli/chunks/{chunk-J43DV3ME.js → chunk-7JKB3Q7O.js} +1 -1
  52. package/dist/cli/chunks/{chunk-ONVALAZN.js → chunk-7KII4CQG.js} +2 -2
  53. package/dist/cli/chunks/{chunk-AAA4SHEG.js → chunk-7QGYJ5OY.js} +1 -1
  54. package/dist/cli/chunks/{chunk-MMXG3LL6.js → chunk-7QTB5VJZ.js} +2 -2
  55. package/dist/cli/chunks/{chunk-BB7OLQKO.js → chunk-7X2Y727E.js} +1 -1
  56. package/dist/cli/chunks/{chunk-VNW5Q2CX.js → chunk-A4RU67VX.js} +2 -2
  57. package/dist/cli/chunks/{chunk-YFOBQSOW.js → chunk-A6YIH4C4.js} +2 -2
  58. package/dist/cli/chunks/{chunk-MJJC6HUK.js → chunk-ABFDB4X3.js} +1 -1
  59. package/dist/cli/chunks/{chunk-MHZPC4HJ.js → chunk-AJ4YDSOI.js} +2 -2
  60. package/dist/cli/chunks/{chunk-OA4GR3EZ.js → chunk-AOFO4N32.js} +2 -2
  61. package/dist/cli/chunks/{chunk-EB2PP6X2.js → chunk-AQTVVLNP.js} +1 -1
  62. package/dist/cli/chunks/chunk-AR2E4B7K.js +6 -0
  63. package/dist/cli/chunks/{chunk-N4PMPSJJ.js → chunk-AVB5QY2Q.js} +2 -2
  64. package/dist/cli/chunks/{chunk-HLZATDD2.js → chunk-BHKXMIWX.js} +2 -2
  65. package/dist/cli/chunks/{chunk-C2MDBBFF.js → chunk-BXO536GT.js} +3 -3
  66. package/dist/cli/chunks/{chunk-WTLIEBDH.js → chunk-C6RTMTEH.js} +1 -1
  67. package/dist/cli/chunks/{chunk-MNZFEIE5.js → chunk-CTZJUV5I.js} +1 -1
  68. package/dist/cli/chunks/{chunk-XEWXYGJI.js → chunk-D6XVGFTI.js} +2 -2
  69. package/dist/cli/chunks/{chunk-Y4SAWE45.js → chunk-DDPPSSHW.js} +1 -1
  70. package/dist/cli/chunks/{chunk-KPOPBUUJ.js → chunk-DGTLJNJH.js} +2 -2
  71. package/dist/cli/chunks/{chunk-6JT73S5B.js → chunk-DINZR5CF.js} +1 -1
  72. package/dist/cli/chunks/{chunk-HTWIGQL4.js → chunk-EFBLP43U.js} +2 -2
  73. package/dist/cli/chunks/chunk-ETG7O5E5.js +5 -0
  74. package/dist/cli/chunks/{chunk-2AYBYXOA.js → chunk-F2SQPP6U.js} +2 -2
  75. package/dist/cli/chunks/{chunk-V2SAEMZY.js → chunk-F3PQZX44.js} +1 -1
  76. package/dist/cli/chunks/{chunk-JPHDMHFG.js → chunk-F4JYIRW2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-REEIFA6A.js → chunk-FJ4VTLLK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-PTK66HEY.js → chunk-FL3OYGCS.js} +2 -2
  79. package/dist/cli/chunks/{chunk-PEKDSJBC.js → chunk-FLASM2XB.js} +2 -2
  80. package/dist/cli/chunks/{chunk-G762PEFO.js → chunk-FV3NHVC7.js} +22 -22
  81. package/dist/cli/chunks/{chunk-FTTFJ7SJ.js → chunk-FV7VAG74.js} +1 -1
  82. package/dist/cli/chunks/{chunk-2YVJ5OUL.js → chunk-G3BKZNFL.js} +8 -8
  83. package/dist/cli/chunks/{chunk-MDC4G323.js → chunk-GBUIG3FS.js} +1 -1
  84. package/dist/cli/chunks/{chunk-DCJW2DPL.js → chunk-GCWSX2NY.js} +4 -4
  85. package/dist/cli/chunks/{chunk-VCA6YYII.js → chunk-GII5WVAK.js} +1 -1
  86. package/dist/cli/chunks/{chunk-HXBAQKMH.js → chunk-GKPQ2GRR.js} +2 -2
  87. package/dist/cli/chunks/chunk-GR3JYE5A.js +2 -0
  88. package/dist/cli/chunks/{chunk-ZUMDDMDE.js → chunk-H3KBIWTO.js} +2 -2
  89. package/dist/cli/chunks/{chunk-ECSLJJOQ.js → chunk-HAROIAJE.js} +1 -1
  90. package/dist/cli/chunks/{chunk-ICPALF4Q.js → chunk-HCYQHWI2.js} +2 -2
  91. package/dist/cli/chunks/{chunk-V5NGBQAQ.js → chunk-HGTWAZWU.js} +2 -2
  92. package/dist/cli/chunks/{chunk-YK3NOC2R.js → chunk-HTZJSQ3C.js} +2 -2
  93. package/dist/cli/chunks/{chunk-IYQ7XNE5.js → chunk-HWK5L7IJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-HSDOOFV7.js → chunk-HZ5NC6U5.js} +1 -1
  95. package/dist/cli/chunks/{chunk-M63QB466.js → chunk-I6S35FRO.js} +2 -2
  96. package/dist/cli/chunks/{chunk-LMEU64TR.js → chunk-ICP2ORGI.js} +2 -2
  97. package/dist/cli/chunks/{chunk-PXZKPUW6.js → chunk-IFEIY3NQ.js} +2 -2
  98. package/dist/cli/chunks/{chunk-OJEZNLB6.js → chunk-J3DTDJDT.js} +2 -2
  99. package/dist/cli/chunks/chunk-J3WGK22W.js +2 -0
  100. package/dist/cli/chunks/{chunk-SQHLC6I5.js → chunk-J5KNRVXR.js} +1 -1
  101. package/dist/cli/chunks/{chunk-RORZ5O5Z.js → chunk-JAV5WPSY.js} +2 -2
  102. package/dist/cli/chunks/{chunk-SSP2B2WR.js → chunk-JEP4ULR6.js} +2 -2
  103. package/dist/cli/chunks/{chunk-6FEQ73BF.js → chunk-JK2ME6IT.js} +2 -2
  104. package/dist/cli/chunks/chunk-JNNZK7KH.js +2 -0
  105. package/dist/cli/chunks/{chunk-RXAFLK34.js → chunk-JP4P3P3D.js} +2 -2
  106. package/dist/cli/chunks/{chunk-JY4AIEZ7.js → chunk-JUVHZG7I.js} +1 -1
  107. package/dist/cli/chunks/{chunk-UBYCR3O4.js → chunk-JWGRWMZP.js} +2 -2
  108. package/dist/cli/chunks/{chunk-6BO3WCK7.js → chunk-K5DJXMAA.js} +2 -2
  109. package/dist/cli/chunks/{chunk-MKFQNCXI.js → chunk-KFUUIAR4.js} +2 -2
  110. package/dist/cli/chunks/chunk-KHSRIPBP.js +180 -0
  111. package/dist/cli/chunks/{chunk-UY3REQOK.js → chunk-KIKWJM6J.js} +2 -2
  112. package/dist/cli/chunks/{chunk-YUC7RJGR.js → chunk-KIXYKUCI.js} +1 -1
  113. package/dist/cli/chunks/{chunk-IC2WSSD5.js → chunk-KLGYIEJK.js} +3 -3
  114. package/dist/cli/chunks/{chunk-DVPGBDBP.js → chunk-KR3M44CF.js} +3 -3
  115. package/dist/cli/chunks/chunk-KTSLTZSG.js +2 -0
  116. package/dist/cli/chunks/{chunk-Y6A46M3B.js → chunk-KVBEGOJE.js} +2 -2
  117. package/dist/cli/chunks/{chunk-PZG3542B.js → chunk-L42JPFCC.js} +2 -2
  118. package/dist/cli/chunks/{chunk-J26GADQE.js → chunk-LCJTEUDC.js} +181 -181
  119. package/dist/cli/chunks/{chunk-3JD2USUH.js → chunk-LEAKYZ37.js} +2 -2
  120. package/dist/cli/chunks/{chunk-UCLN6AME.js → chunk-LMU5DUDK.js} +1 -1
  121. package/dist/cli/chunks/{chunk-EV2BYY6T.js → chunk-MZS32SYS.js} +1 -1
  122. package/dist/cli/chunks/{chunk-LVEX4GID.js → chunk-N3KEY4XJ.js} +2 -2
  123. package/dist/cli/chunks/{chunk-XNSQZ3O7.js → chunk-N3NP6PTT.js} +2 -2
  124. package/dist/cli/chunks/{chunk-QVG4ZDXX.js → chunk-N5PDFGCQ.js} +2 -2
  125. package/dist/cli/chunks/{chunk-6PKCQXEW.js → chunk-NDKLQW6N.js} +2 -2
  126. package/dist/cli/chunks/{chunk-6AYRAOCA.js → chunk-NHZIWIQZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-H4WHDFB5.js → chunk-NTAD5UX4.js} +2 -2
  128. package/dist/cli/chunks/{chunk-JYXOFN3E.js → chunk-O3JLOVZX.js} +2 -2
  129. package/dist/cli/chunks/{chunk-ZLVQSEZK.js → chunk-OCESWNAZ.js} +3 -3
  130. package/dist/cli/chunks/{chunk-7EX4DEQR.js → chunk-OG2UI6A3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-3RM46XFP.js → chunk-OXTFSIGN.js} +1 -1
  132. package/dist/cli/chunks/{chunk-44DPYNPE.js → chunk-OXZLKP6C.js} +1 -1
  133. package/dist/cli/chunks/{chunk-TU4LIIOP.js → chunk-P2CXVNKK.js} +2 -2
  134. package/dist/cli/chunks/{chunk-LDZWIV2O.js → chunk-P73W2K7T.js} +1 -1
  135. package/dist/cli/chunks/{chunk-56ZKQYZY.js → chunk-PBZI2ZPV.js} +3 -3
  136. package/dist/cli/chunks/{chunk-MNCF643K.js → chunk-PMCRCEW5.js} +2 -2
  137. package/dist/cli/chunks/{chunk-4G2VNW4C.js → chunk-PVIA2FPD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-MRHM4COP.js → chunk-PX2B5TS2.js} +2 -2
  139. package/dist/cli/chunks/{chunk-HZFT3P5B.js → chunk-Q3JVJRVJ.js} +1 -1
  140. package/dist/cli/chunks/{chunk-GY2SAIXP.js → chunk-QQ5SZH4D.js} +2 -2
  141. package/dist/cli/chunks/{chunk-LP4AS2E4.js → chunk-QTVWUQTB.js} +1 -1
  142. package/dist/cli/chunks/{chunk-W4X2VTIY.js → chunk-REUFWGMA.js} +2 -2
  143. package/dist/cli/chunks/{chunk-FVBFASOD.js → chunk-SNBYYO6F.js} +2 -2
  144. package/dist/cli/chunks/{chunk-RNYX4CPI.js → chunk-SVHUYVUR.js} +2 -2
  145. package/dist/cli/chunks/{chunk-AXO7OOOA.js → chunk-THAY7WHO.js} +2 -2
  146. package/dist/cli/chunks/{chunk-QWLTHFZW.js → chunk-TNMQVG4A.js} +2 -2
  147. package/dist/cli/chunks/{chunk-JFPXCQNP.js → chunk-TSYQDRNK.js} +1 -1
  148. package/dist/cli/chunks/{chunk-JK6B3ULP.js → chunk-TUYJ53V4.js} +2 -2
  149. package/dist/cli/chunks/{chunk-PUECC4WI.js → chunk-UNUTC6TX.js} +2 -2
  150. package/dist/cli/chunks/{chunk-ED32XJ5R.js → chunk-UOJBR4J3.js} +2 -2
  151. package/dist/cli/chunks/{chunk-CXTJ47QS.js → chunk-UOWHE77F.js} +2 -2
  152. package/dist/cli/chunks/{chunk-5KCBX225.js → chunk-UYLYMWV5.js} +2 -2
  153. package/dist/cli/chunks/{chunk-QNQSM2OG.js → chunk-V5PXQSFS.js} +2 -2
  154. package/dist/cli/chunks/{chunk-VKPKYMCT.js → chunk-VCMINU7K.js} +2 -2
  155. package/dist/cli/chunks/{chunk-QQT6QENQ.js → chunk-VQHVHVSF.js} +2 -2
  156. package/dist/cli/chunks/{chunk-634D2ENF.js → chunk-VRGCKBF7.js} +2 -2
  157. package/dist/cli/chunks/{chunk-T6W5APYP.js → chunk-VU2EL424.js} +1 -1
  158. package/dist/cli/chunks/{chunk-JY4WLN3K.js → chunk-VXZJOKOX.js} +2 -2
  159. package/dist/cli/chunks/{chunk-NZQPP533.js → chunk-VYLM2YV5.js} +3 -3
  160. package/dist/cli/chunks/{chunk-PQV7E7XH.js → chunk-W32YU3VI.js} +2 -2
  161. package/dist/cli/chunks/{chunk-RRPYWBFX.js → chunk-W5VJRDDG.js} +2 -2
  162. package/dist/cli/chunks/{chunk-7UCVYYWL.js → chunk-WGDR2KIR.js} +2 -2
  163. package/dist/cli/chunks/{chunk-2423JAA5.js → chunk-WRRCQ2UE.js} +1 -1
  164. package/dist/cli/chunks/{chunk-RCYLCA7E.js → chunk-XDBD4GXO.js} +2 -2
  165. package/dist/cli/chunks/{chunk-PYHYOKYT.js → chunk-XOLDMK23.js} +2 -2
  166. package/dist/cli/chunks/{chunk-5KS7HA37.js → chunk-XOVNZT7F.js} +1 -1
  167. package/dist/cli/chunks/{chunk-5PBRBS7D.js → chunk-XQ3DDY7X.js} +2 -2
  168. package/dist/cli/chunks/{chunk-4DIZ5BT6.js → chunk-XUIA5KMS.js} +2 -2
  169. package/dist/cli/chunks/{chunk-G7YTZTGU.js → chunk-XWIUFYM3.js} +1 -1
  170. package/dist/cli/chunks/{chunk-B7M323VL.js → chunk-XYCKHYBM.js} +2 -2
  171. package/dist/cli/chunks/{chunk-6OS7HREG.js → chunk-XZJ2O3VC.js} +1 -1
  172. package/dist/cli/chunks/{chunk-BTIBXGVQ.js → chunk-YRBBBUJX.js} +5 -5
  173. package/dist/cli/chunks/{chunk-MQ6OF6DU.js → chunk-YZGSJG34.js} +1 -1
  174. package/dist/cli/chunks/{chunk-XTJMY3KS.js → chunk-YZYDTABJ.js} +1 -1
  175. package/dist/cli/chunks/{chunk-LQOVA4YX.js → chunk-ZANDSVCK.js} +2 -2
  176. package/dist/cli/chunks/{chunk-2E3XWKEU.js → chunk-ZBDRLF43.js} +2 -2
  177. package/dist/cli/chunks/{chunk-UUHIEM2M.js → chunk-ZVSLCEVC.js} +3 -3
  178. package/dist/cli/chunks/{chunk-Q2T5FXEA.js → chunk-ZXBCCO2H.js} +2 -2
  179. package/dist/cli/chunks/{ci-5HEXJZ2C.js → ci-7SGRCFPS.js} +2 -2
  180. package/dist/cli/chunks/{ci-config-WU4NPDAM.js → ci-config-MX3URPZA.js} +2 -2
  181. package/dist/cli/chunks/{ci-output-BJQVXX5E.js → ci-output-M47NJY6D.js} +2 -2
  182. package/dist/cli/chunks/{circuit-breaker-3BMGTQCB.js → circuit-breaker-5GAK45SW.js} +2 -2
  183. package/dist/cli/chunks/{claude-flow-setup-GVDGJWMU.js → claude-flow-setup-YXYSRH4Y.js} +2 -2
  184. package/dist/cli/chunks/client-ZP3CTVRF.js +2 -0
  185. package/dist/cli/chunks/{cline-installer-V4MRGWVA.js → cline-installer-DLJ5QD5N.js} +2 -2
  186. package/dist/cli/chunks/{code-A3TGQPEO.js → code-ONKLMVQ2.js} +25 -24
  187. package/dist/cli/chunks/{code-index-extractor-YJQSYWD3.js → code-index-extractor-2232LGZN.js} +2 -2
  188. package/dist/cli/chunks/{codex-installer-7N7UQPAH.js → codex-installer-UOWLYCMH.js} +2 -2
  189. package/dist/cli/chunks/{completions-PPGVYLZS.js → completions-MHX7GCC7.js} +2 -2
  190. package/dist/cli/chunks/{complexity-analyzer-XZTFLYV5.js → complexity-analyzer-43ZUJKZU.js} +2 -2
  191. package/dist/cli/chunks/{continuedev-installer-Z5I57RAH.js → continuedev-installer-6Q5JR4FF.js} +2 -2
  192. package/dist/cli/chunks/{copilot-installer-F5YZ6BHB.js → copilot-installer-CZUMVHSI.js} +2 -2
  193. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +2 -0
  194. package/dist/cli/chunks/{cost-tracker-GO33ZQAP.js → cost-tracker-VS5ZW3XN.js} +2 -2
  195. package/dist/cli/chunks/{coverage-GSHKLY74.js → coverage-VWKTWZ6D.js} +3 -3
  196. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +2 -0
  197. package/dist/cli/chunks/{cursor-installer-JJ7IVJZB.js → cursor-installer-YIFEMORH.js} +2 -2
  198. package/dist/cli/chunks/{daemon-IRL7QRNE.js → daemon-SHWJSJW5.js} +7 -7
  199. package/dist/cli/chunks/daemon-YIFT46FH.js +34 -0
  200. package/dist/cli/chunks/{dag-attention-scheduler-ORXSUHPA.js → dag-attention-scheduler-TCC2WM46.js} +2 -2
  201. package/dist/cli/chunks/{detect-RHU62KRI.js → detect-IGTWSQMA.js} +2 -2
  202. package/dist/cli/chunks/{dist-node-3VKV4Z6C.js → dist-node-TCOTJVQX.js} +2 -2
  203. package/dist/cli/chunks/{domain-handler-SFIML4FK.js → domain-handler-55ZVYODR.js} +2 -2
  204. package/dist/cli/chunks/{domain-plugins-CJ4FA3OC.js → domain-plugins-GJRWOHQP.js} +2 -2
  205. package/dist/cli/chunks/{domain-transfer-BCRKPCAA.js → domain-transfer-6EF75EKU.js} +2 -2
  206. package/dist/cli/chunks/dream-UDLM6M55.js +2 -0
  207. package/dist/cli/chunks/{embed-and-insert-pattern-VL3HFLPV.js → embed-and-insert-pattern-XAMNIKQL.js} +2 -2
  208. package/dist/cli/chunks/{eval-GGKRI4P5.js → eval-GO22R4OZ.js} +2 -2
  209. package/dist/cli/chunks/{experience-capture-middleware-F72TIRQY.js → experience-capture-middleware-F2BRMJ3Y.js} +3 -3
  210. package/dist/cli/chunks/{fast-paths-7KOOF3MA.js → fast-paths-6RGPYALD.js} +2 -2
  211. package/dist/cli/chunks/{feature-flags-FNHBTHBH.js → feature-flags-MIWQIOHU.js} +2 -2
  212. package/dist/cli/chunks/{feature-flags-IOZEWWFU.js → feature-flags-ZGS3KLPH.js} +2 -2
  213. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +2 -0
  214. package/dist/cli/chunks/fleet-ADL57COA.js +44 -0
  215. package/dist/cli/chunks/{gnn-wrapper-OH2DOQP7.js → gnn-wrapper-ALBJVW6T.js} +2 -2
  216. package/dist/cli/chunks/{heartbeat-handler-W67NXTNE.js → heartbeat-handler-ZMM53NDY.js} +4 -4
  217. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +2 -0
  218. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +2 -0
  219. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +2 -0
  220. package/dist/cli/chunks/{hnsw-legacy-bridge-6MLLOGOE.js → hnsw-legacy-bridge-RYUJPA7B.js} +2 -2
  221. package/dist/cli/chunks/{hnswlib-node-4UDISJ3G.js → hnswlib-node-XM6XF3YV.js} +2 -2
  222. package/dist/cli/chunks/{hooks-NOQJWQ4P.js → hooks-X62O7TJO.js} +10 -10
  223. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +2 -0
  224. package/dist/cli/chunks/{hypergraph-engine-2OD3APVP.js → hypergraph-engine-ZBWUPTVD.js} +2 -2
  225. package/dist/cli/chunks/{hypergraph-handler-5AZGMBUM.js → hypergraph-handler-DUMF6SJV.js} +3 -3
  226. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +2 -0
  227. package/dist/cli/chunks/{init-guard-SMGJ45PW.js → init-guard-S4I2R46S.js} +2 -2
  228. package/dist/cli/chunks/{init-handler-5T4MP2NM.js → init-handler-L4KJHVWS.js} +6 -6
  229. package/dist/cli/chunks/init-wizard-422UZYQ5.js +2 -0
  230. package/dist/cli/chunks/kernel-N7PJ6FCE.js +2 -0
  231. package/dist/cli/chunks/{kilocode-installer-RLZYLVQJ.js → kilocode-installer-GNNB5FCZ.js} +2 -2
  232. package/dist/cli/chunks/{kiro-installer-LFZOC7VD.js → kiro-installer-HR6ZAH7T.js} +2 -2
  233. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +2 -0
  234. package/dist/cli/chunks/{learning-XRPGLUWR.js → learning-4IEEOHJS.js} +3 -3
  235. package/dist/cli/chunks/{llm-router-OMK5HYPH.js → llm-router-ZFMORP36.js} +4 -4
  236. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +2 -0
  237. package/dist/cli/chunks/{load-XADC7KCU.js → load-ZM43WGDO.js} +2 -2
  238. package/dist/cli/chunks/load-test-POMIF4Q4.js +2 -0
  239. package/dist/cli/chunks/{mcp-PIBKSSVU.js → mcp-CRZKZE37.js} +2 -2
  240. package/dist/cli/chunks/{memory-AP7EZERS.js → memory-W5FZGVAD.js} +5 -5
  241. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +2 -0
  242. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +2 -0
  243. package/dist/cli/chunks/{multi-model-executor-7JJ2FZ33.js → multi-model-executor-SXXGAQ2G.js} +2 -2
  244. package/dist/cli/chunks/{opencode-installer-ZZZ6EBYJ.js → opencode-installer-PIRBUAB5.js} +2 -2
  245. package/dist/cli/chunks/{orchestrator-2H2YKSGJ.js → orchestrator-H5SQCQTB.js} +11 -10
  246. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +2 -0
  247. package/dist/cli/chunks/{pattern-usage-recorder-7MJJWC2Z.js → pattern-usage-recorder-XZTWDI2T.js} +2 -2
  248. package/dist/cli/chunks/{pipeline-LIE5BWQY.js → pipeline-5LMLBIJ7.js} +2 -2
  249. package/dist/cli/chunks/{platform-SMYUNLGX.js → platform-KJDABL5C.js} +2 -2
  250. package/dist/cli/chunks/{plugin-LJDIXQNT.js → plugin-V4KSBVVM.js} +2 -2
  251. package/dist/cli/chunks/{prime-radiant-advanced-wasm-RIDNE5D2.js → prime-radiant-advanced-wasm-JDHTKQAT.js} +2 -2
  252. package/dist/cli/chunks/project-root-X72FSM2F.js +2 -0
  253. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +2 -0
  254. package/dist/cli/chunks/{protocol-handler-YVM66DLI.js → protocol-handler-BNRONTQV.js} +2 -2
  255. package/dist/cli/chunks/{prove-ZBDT52GD.js → prove-ELLL6XMX.js} +2 -2
  256. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +2 -0
  257. package/dist/cli/chunks/{quality-DUKXGDDO.js → quality-NH2QA4D4.js} +2 -2
  258. package/dist/cli/chunks/{quality-gate-SM3RXF4V.js → quality-gate-JTKLF7GW.js} +3 -3
  259. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +2 -0
  260. package/dist/cli/chunks/{real-embeddings-4QLQZDB5.js → real-embeddings-J3KCKLPB.js} +2 -2
  261. package/dist/cli/chunks/{ref-validation-M3EO32YQ.js → ref-validation-HNXQRP4F.js} +2 -2
  262. package/dist/cli/chunks/{roocode-installer-S6Q5OLV5.js → roocode-installer-COJ6CX6S.js} +2 -2
  263. package/dist/cli/chunks/router-CXZKOOTR.js +2 -0
  264. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +2 -0
  265. package/dist/cli/chunks/{routing-handler-55FMUACP.js → routing-handler-WM33ZILE.js} +2 -2
  266. package/dist/cli/chunks/{ruvector-commands-QATKAAPK.js → ruvector-commands-BBLXEA7A.js} +2 -2
  267. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +2 -0
  268. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +2 -0
  269. package/dist/cli/chunks/{rvf-migration-coordinator-RFXFU6JD.js → rvf-migration-coordinator-P7H6HCAG.js} +2 -2
  270. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +2 -0
  271. package/dist/cli/chunks/{rvf-store-integrity-PKDVXQAW.js → rvf-store-integrity-R5SPVRFP.js} +2 -2
  272. package/dist/cli/chunks/safe-db-WFODRGVZ.js +2 -0
  273. package/dist/cli/chunks/schedule-RO55OQXG.js +2 -0
  274. package/dist/cli/chunks/scheduler-XXMJCH24.js +2 -0
  275. package/dist/cli/chunks/{security-CMRB6WA3.js → security-AUDTRX3I.js} +3 -3
  276. package/dist/cli/chunks/{shared-rvf-adapter-YHLLNFHF.js → shared-rvf-adapter-PVDGBGI2.js} +2 -2
  277. package/dist/cli/chunks/{shared-rvf-dual-writer-4BGDVPQ7.js → shared-rvf-dual-writer-LZ2GMSS2.js} +2 -2
  278. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +2 -0
  279. package/dist/cli/chunks/{standalone-memory-LUHKQAGM.js → standalone-memory-XNOAI4G4.js} +2 -2
  280. package/dist/cli/chunks/{status-handler-S6S5PNR7.js → status-handler-K72XZE4T.js} +2 -2
  281. package/dist/cli/chunks/{structural-health-PQ7NZAJ4.js → structural-health-NF3YY7U5.js} +2 -2
  282. package/dist/cli/chunks/{sync-S744AEJC.js → sync-UVXA6CT2.js} +2 -2
  283. package/dist/cli/chunks/{sync-Q6KRQXU6.js → sync-VBD5Y3E2.js} +2 -2
  284. package/dist/cli/chunks/{task-handler-GAMGEHUW.js → task-handler-24S3WFVJ.js} +13 -7
  285. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +9 -0
  286. package/dist/cli/chunks/{test-FNH67DBK.js → test-XFSGQELD.js} +4 -4
  287. package/dist/cli/chunks/{test-scheduling-NZA5SHK6.js → test-scheduling-VYUQ4CDE.js} +3 -3
  288. package/dist/cli/chunks/{token-bootstrap-CXKG55JD.js → token-bootstrap-EDK6FNQ3.js} +2 -2
  289. package/dist/cli/chunks/{token-usage-M7WWEDJX.js → token-usage-VLQ6WO2L.js} +2 -2
  290. package/dist/cli/chunks/{transformers-2IFMCK6A.js → transformers-TOFMWWNM.js} +2 -2
  291. package/dist/cli/chunks/{tree-sitter-wasm-parser-NMNA6RJC.js → tree-sitter-wasm-parser-MI3NZKUD.js} +2 -2
  292. package/dist/cli/chunks/{types-N7FWTOLD.js → types-JTWLBAZJ.js} +2 -2
  293. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +2 -0
  294. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +2 -0
  295. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +2 -0
  296. package/dist/cli/chunks/{upgrade-KDB5RGL7.js → upgrade-4ABM72T4.js} +2 -2
  297. package/dist/cli/chunks/{validate-KMUV5FUA.js → validate-UDJCWKXI.js} +2 -2
  298. package/dist/cli/chunks/{validate-swarm-ANZWRCJU.js → validate-swarm-TODOUWNN.js} +2 -2
  299. package/dist/cli/chunks/visual-security-6VZNQLH7.js +2 -0
  300. package/dist/cli/chunks/{web-tree-sitter-SXXC4NMS.js → web-tree-sitter-WBMAJPM5.js} +2 -2
  301. package/dist/cli/chunks/{windsurf-installer-2LWSKMBU.js → windsurf-installer-BTT53TUL.js} +2 -2
  302. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +2 -0
  303. package/dist/cli/chunks/{witness-chain-JJMSJFZP.js → witness-chain-TATPXQRK.js} +2 -2
  304. package/dist/cli/chunks/{witness-chain-repair-OX7VFW6T.js → witness-chain-repair-2HGJGE7O.js} +2 -2
  305. package/dist/cli/chunks/{witness-chain-verifier-QLSMXHAZ.js → witness-chain-verifier-FRY3LMGH.js} +2 -2
  306. package/dist/cli/chunks/{witness-key-manager-3DS4L7LE.js → witness-key-manager-X7QHQQWL.js} +2 -2
  307. package/dist/cli/chunks/{workflow-ARWAMHD3.js → workflow-QMZPAWQW.js} +4 -4
  308. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +2 -0
  309. package/dist/cli/chunks/{wrappers-J6KGTUSJ.js → wrappers-ZD5NBHYI.js} +2 -2
  310. package/dist/cli/commands/code.js +8 -0
  311. package/dist/cli/commands/daemon.js +8 -0
  312. package/dist/cli/commands/fleet.js +14 -9
  313. package/dist/cli/handlers/task-handler.js +21 -1
  314. package/dist/coordination/handlers/code-intelligence-handlers.js +14 -2
  315. package/dist/coordination/handlers/coverage-collection.js +9 -10
  316. package/dist/coordination/handlers/coverage-handlers.js +21 -3
  317. package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
  318. package/dist/coordination/handlers/coverage-runner.js +9 -2
  319. package/dist/coordination/handlers/coverage-target.d.ts +13 -3
  320. package/dist/coordination/handlers/coverage-target.js +224 -7
  321. package/dist/coordination/handlers/handler-types.d.ts +2 -0
  322. package/dist/coordination/handlers/test-execution-handlers.js +32 -5
  323. package/dist/coordination/index.d.ts +2 -2
  324. package/dist/coordination/index.js +1 -1
  325. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +39 -0
  326. package/dist/coordination/protocols/learning-consolidation-archive.js +57 -0
  327. package/dist/coordination/protocols/learning-consolidation.d.ts +38 -3
  328. package/dist/coordination/protocols/learning-consolidation.js +130 -58
  329. package/dist/coordination/queen-coordinator.d.ts +12 -1
  330. package/dist/coordination/queen-coordinator.js +24 -1
  331. package/dist/coordination/queen-event-handlers.js +2 -1
  332. package/dist/coordination/queen-lifecycle.js +9 -0
  333. package/dist/coordination/queen-task-management.js +113 -40
  334. package/dist/coordination/queen-types.d.ts +10 -0
  335. package/dist/coordination/queen-types.js +8 -0
  336. package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
  337. package/dist/coordination/task-dag/dag-algorithms.js +162 -0
  338. package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
  339. package/dist/coordination/task-dag/dag-obligations.js +83 -0
  340. package/dist/coordination/task-dag/dag.d.ts +69 -19
  341. package/dist/coordination/task-dag/dag.js +215 -269
  342. package/dist/coordination/task-dag/index.d.ts +12 -4
  343. package/dist/coordination/task-dag/index.js +11 -3
  344. package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
  345. package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
  346. package/dist/coordination/task-dag/scheduler.d.ts +19 -9
  347. package/dist/coordination/task-dag/scheduler.js +36 -12
  348. package/dist/coordination/task-dag/types.d.ts +160 -1
  349. package/dist/coordination/task-dag/types.js +2 -1
  350. package/dist/coordination/task-executability.d.ts +18 -0
  351. package/dist/coordination/task-executability.js +31 -0
  352. package/dist/coordination/task-executor.d.ts +1 -0
  353. package/dist/coordination/task-executor.js +5 -0
  354. package/dist/domains/code-intelligence/coordinator.js +35 -9
  355. package/dist/domains/code-intelligence/index-path-guard.d.ts +49 -0
  356. package/dist/domains/code-intelligence/index-path-guard.js +125 -0
  357. package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
  358. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
  359. package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
  360. package/dist/domains/contract-testing/coordinator.js +3 -1
  361. package/dist/domains/coverage-analysis/collected-metrics.js +2 -1
  362. package/dist/domains/defect-intelligence/services/defect-predictor.js +4 -2
  363. package/dist/domains/learning-optimization/active-patterns.d.ts +55 -0
  364. package/dist/domains/learning-optimization/active-patterns.js +80 -0
  365. package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
  366. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  367. package/dist/domains/learning-optimization/coordinator.js +50 -106
  368. package/dist/domains/learning-optimization/index.d.ts +1 -1
  369. package/dist/domains/learning-optimization/interfaces.d.ts +56 -4
  370. package/dist/domains/learning-optimization/plugin.js +11 -1
  371. package/dist/domains/learning-optimization/reward-source.d.ts +37 -0
  372. package/dist/domains/learning-optimization/reward-source.js +58 -0
  373. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +4 -4
  374. package/dist/domains/learning-optimization/services/learning-coordinator.js +68 -34
  375. package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
  376. package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
  377. package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
  378. package/dist/domains/test-execution/interfaces.d.ts +16 -0
  379. package/dist/domains/test-execution/services/retry-handler.js +18 -2
  380. package/dist/domains/test-execution/services/runner-test-cases.d.ts +21 -0
  381. package/dist/domains/test-execution/services/runner-test-cases.js +69 -0
  382. package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
  383. package/dist/domains/test-execution/services/test-executor.js +24 -2
  384. package/dist/init/fleet-integration.js +2 -0
  385. package/dist/init/init-wizard-steps.js +2 -0
  386. package/dist/init/phases/06-code-intelligence.js +2 -0
  387. package/dist/init/phases/10-workers.js +2 -1
  388. package/dist/kernel/anti-drift-middleware.d.ts +44 -5
  389. package/dist/kernel/anti-drift-middleware.js +147 -11
  390. package/dist/kernel/interfaces.d.ts +5 -0
  391. package/dist/learning/dream/dream-engine.d.ts +27 -1
  392. package/dist/learning/dream/dream-engine.js +56 -2
  393. package/dist/learning/dream/dream-insights-pruner.d.ts +18 -4
  394. package/dist/learning/dream/dream-insights-pruner.js +99 -11
  395. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -0
  396. package/dist/learning/dream/rvcow-branch-manager.js +8 -0
  397. package/dist/learning/dream/speculative-dreamer.d.ts +8 -0
  398. package/dist/learning/dream/speculative-dreamer.js +8 -0
  399. package/dist/learning/skill-validation-learner.d.ts +2 -0
  400. package/dist/learning/skill-validation-learner.js +29 -21
  401. package/dist/mcp/background-workers.d.ts +15 -0
  402. package/dist/mcp/background-workers.js +77 -0
  403. package/dist/mcp/bundle.js +511 -484
  404. package/dist/mcp/entry.js +4 -49
  405. package/dist/mcp/handlers/domain-handler-configs.d.ts +14 -0
  406. package/dist/mcp/handlers/domain-handler-configs.js +68 -30
  407. package/dist/mcp/handlers/handler-factory.js +1 -0
  408. package/dist/mcp/handlers/task-handlers.js +37 -1
  409. package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
  410. package/dist/mcp/metrics/metrics-collector.js +13 -26
  411. package/dist/mcp/protocol-server.js +8 -3
  412. package/dist/mcp/tools/learning-optimization/optimize.d.ts +34 -3
  413. package/dist/mcp/tools/learning-optimization/optimize.js +106 -70
  414. package/dist/memory/crdt/lww-register.js +11 -1
  415. package/dist/routing/calibration/ema-calibrator.js +3 -1
  416. package/dist/shared/base-domain-plugin.d.ts +4 -0
  417. package/dist/shared/base-domain-plugin.js +6 -0
  418. package/dist/shared/llm/cache.js +4 -1
  419. package/dist/shared/security/compliance-patterns.js +3 -1
  420. package/dist/shared/test-runner-process.d.ts +26 -0
  421. package/dist/shared/test-runner-process.js +91 -0
  422. package/dist/shared/types/index.d.ts +9 -0
  423. package/dist/shared/types/index.js +13 -0
  424. package/dist/shared/utils/namespaced-search.d.ts +42 -0
  425. package/dist/shared/utils/namespaced-search.js +53 -0
  426. package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
  427. package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
  428. package/dist/workers/daemon.d.ts +7 -0
  429. package/dist/workers/daemon.js +21 -2
  430. package/dist/workers/namespaced-keys.d.ts +4 -7
  431. package/dist/workers/namespaced-keys.js +4 -15
  432. package/dist/workers/quality-daemon/ci-monitor.js +9 -5
  433. package/dist/workers/worker-env.d.ts +53 -0
  434. package/dist/workers/worker-env.js +89 -0
  435. package/dist/workers/worker-manager.js +4 -0
  436. package/dist/workers/workers/learning-consolidation.d.ts +20 -0
  437. package/dist/workers/workers/learning-consolidation.js +57 -23
  438. package/package.json +1 -1
  439. package/dist/cli/chunks/adapter-PEOUNYXJ.js +0 -2
  440. package/dist/cli/chunks/aqe-learning-engine-DHKZI5RX.js +0 -2
  441. package/dist/cli/chunks/base-QZWK3D5P.js +0 -2
  442. package/dist/cli/chunks/browser-workflow-ITPX72RX.js +0 -2
  443. package/dist/cli/chunks/chunk-CG5DZCOZ.js +0 -2
  444. package/dist/cli/chunks/chunk-QJE6ZW2X.js +0 -6
  445. package/dist/cli/chunks/chunk-T3ZDVU6F.js +0 -5
  446. package/dist/cli/chunks/chunk-UIYKR2SA.js +0 -2
  447. package/dist/cli/chunks/chunk-VJRZFWR5.js +0 -2
  448. package/dist/cli/chunks/chunk-VUFRTGML.js +0 -3
  449. package/dist/cli/chunks/chunk-YDZJWDR6.js +0 -180
  450. package/dist/cli/chunks/client-S7GNYTZ5.js +0 -2
  451. package/dist/cli/chunks/core-handlers-CUEPOQIO.js +0 -2
  452. package/dist/cli/chunks/cross-domain-router-CXN5QFEV.js +0 -2
  453. package/dist/cli/chunks/daemon-3DQCKRYO.js +0 -10
  454. package/dist/cli/chunks/dream-5AUNJW24.js +0 -2
  455. package/dist/cli/chunks/file-discovery-AYWF357I.js +0 -2
  456. package/dist/cli/chunks/fleet-QX5KXTRC.js +0 -43
  457. package/dist/cli/chunks/heartbeat-scheduler-7ZIDVXIP.js +0 -2
  458. package/dist/cli/chunks/hnsw-adapter-P77OC7FM.js +0 -2
  459. package/dist/cli/chunks/hnsw-index-3LBOTQAW.js +0 -2
  460. package/dist/cli/chunks/hybrid-backend-LOM54PDD.js +0 -2
  461. package/dist/cli/chunks/impact-analyzer-QSDJVBPS.js +0 -2
  462. package/dist/cli/chunks/init-wizard-MK2325JJ.js +0 -2
  463. package/dist/cli/chunks/kernel-2NJQQ2KT.js +0 -2
  464. package/dist/cli/chunks/knowledge-graph-SDISHO62.js +0 -2
  465. package/dist/cli/chunks/llm-router-service-YTCMRBAN.js +0 -2
  466. package/dist/cli/chunks/load-test-RPKHLBCC.js +0 -2
  467. package/dist/cli/chunks/memory-backend-BZXFO4JZ.js +0 -2
  468. package/dist/cli/chunks/memory-handlers-MOFDNB6E.js +0 -2
  469. package/dist/cli/chunks/pattern-null-store-4PRPIOR6.js +0 -2
  470. package/dist/cli/chunks/project-root-NBIQF63D.js +0 -2
  471. package/dist/cli/chunks/protocol-executor-BRPGIYWQ.js +0 -2
  472. package/dist/cli/chunks/qe-reasoning-bank-GDZACWKW.js +0 -2
  473. package/dist/cli/chunks/queen-coordinator-LDKLBPD5.js +0 -2
  474. package/dist/cli/chunks/router-H5YSIRH2.js +0 -2
  475. package/dist/cli/chunks/routing-feedback-5R36TJDH.js +0 -2
  476. package/dist/cli/chunks/rvf-dual-writer-TT2DBQQQ.js +0 -2
  477. package/dist/cli/chunks/rvf-migration-adapter-BCLFJKSK.js +0 -2
  478. package/dist/cli/chunks/rvf-native-adapter-UXI66OQJ.js +0 -2
  479. package/dist/cli/chunks/safe-db-MSTD2GDH.js +0 -2
  480. package/dist/cli/chunks/schedule-KST6KIFD.js +0 -2
  481. package/dist/cli/chunks/scheduler-FTQS6YK3.js +0 -2
  482. package/dist/cli/chunks/sqlite-persistence-ZX5QFDMR.js +0 -2
  483. package/dist/cli/chunks/task-handlers-6CRDEELN.js +0 -9
  484. package/dist/cli/chunks/unified-memory-2Z2F446J.js +0 -2
  485. package/dist/cli/chunks/unified-memory-hnsw-A4EWYPJQ.js +0 -2
  486. package/dist/cli/chunks/unified-persistence-Z6N6JZFA.js +0 -2
  487. package/dist/cli/chunks/visual-security-GXYZV7KR.js +0 -2
  488. package/dist/cli/chunks/witness-chain-52PEIEGK.js +0 -2
  489. package/dist/cli/chunks/workflow-orchestrator-DORMQMG7.js +0 -2
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Agentic QE v3 - namespaced kv key scans (#1049, #1071)
3
+ *
4
+ * Two problems with reading every key of a family through
5
+ * `MemoryBackend.search()`:
6
+ *
7
+ * 1. Kernel backends disagree on what a namespaced `search` returns: the
8
+ * hybrid (sqlite) backend returns bare keys, the in-memory backend returns
9
+ * `<namespace>:<key>`. A caller that passes a result straight back to
10
+ * `get(key, { namespace })` double-prefixes the key and reads nothing.
11
+ * 2. `search()` takes a row limit and has no offset or ordering, so a single
12
+ * call with a fixed cap silently drops every key past the cap.
13
+ *
14
+ * `searchAllKeys` addresses both: it returns every matching key, bare and in
15
+ * a stable order.
16
+ */
17
+ function globToRegExp(pattern) {
18
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
19
+ return new RegExp(`^${escaped.replace(/\*/g, '.*').replace(/\?/g, '.')}$`, 's');
20
+ }
21
+ /**
22
+ * The bare key for a key returned by `search(pattern, limit, { namespace })`.
23
+ * A result that already matches `pattern` is bare (keys may legitimately start
24
+ * with the namespace name, e.g. `defect-intelligence:predictor:…`); otherwise a
25
+ * leading `<namespace>:` is the backend's prefix and is removed.
26
+ */
27
+ export function bareSearchKey(found, namespace, pattern) {
28
+ if (globToRegExp(pattern).test(found))
29
+ return found;
30
+ return found.startsWith(`${namespace}:`) ? found.slice(namespace.length + 1) : found;
31
+ }
32
+ /** First request size for `searchAllKeys`. Each further request doubles it. */
33
+ export const DEFAULT_KEY_SCAN_PAGE_SIZE = 10_000;
34
+ /**
35
+ * Every key matching `pattern`, bare (usable with `get(key, retrieve)`),
36
+ * de-duplicated and sorted.
37
+ *
38
+ * `search()` has no offset, so this widens the request until the backend
39
+ * returns fewer keys than were asked for. That is the only point at which the
40
+ * result is known to be complete; no cap ever truncates it.
41
+ */
42
+ export async function searchAllKeys(memory, pattern, options = {}) {
43
+ let limit = Math.max(1, Math.floor(options.pageSize ?? DEFAULT_KEY_SCAN_PAGE_SIZE));
44
+ let found = await memory.search(pattern, limit, options.retrieve);
45
+ while (found.length >= limit) {
46
+ limit *= 2;
47
+ found = await memory.search(pattern, limit, options.retrieve);
48
+ }
49
+ const namespace = options.retrieve?.namespace;
50
+ const keys = namespace ? found.map((key) => bareSearchKey(key, namespace, pattern)) : found;
51
+ return [...new Set(keys)].sort();
52
+ }
53
+ //# sourceMappingURL=namespaced-search.js.map
@@ -9,6 +9,7 @@
9
9
  * CompositeActionExecutor delegates to for infrastructure-specific actions.
10
10
  */
11
11
  import { createEmptyStats } from './types.js';
12
+ import { getOwn, setOwn } from '../../shared/utils/safe-record.js';
12
13
  // ============================================================================
13
14
  // NoOp Command Runner (for testing)
14
15
  // ============================================================================
@@ -242,10 +243,13 @@ export class InfraActionExecutor {
242
243
  };
243
244
  }
244
245
  updateServiceStats(serviceName, field) {
245
- if (!this.stats.byService[serviceName]) {
246
- this.stats.byService[serviceName] = { failures: 0, recoveries: 0, successes: 0 };
246
+ // Service names come from the playbook: `constructor` must be just a name (#978).
247
+ let serviceStats = getOwn(this.stats.byService, serviceName);
248
+ if (!serviceStats) {
249
+ serviceStats = { failures: 0, recoveries: 0, successes: 0 };
250
+ setOwn(this.stats.byService, serviceName, serviceStats);
247
251
  }
248
- this.stats.byService[serviceName][field]++;
252
+ serviceStats[field]++;
249
253
  }
250
254
  sleep(ms) {
251
255
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { v4 as uuidv4 } from 'uuid';
15
15
  import { DEFAULT_INFRA_HEALING_CONFIG, createEmptyStats } from './types.js';
16
+ import { getOwn, setOwn } from '../../shared/utils/safe-record.js';
16
17
  import { createTestOutputObserver } from './test-output-observer.js';
17
18
  import { createRecoveryPlaybook } from './recovery-playbook.js';
18
19
  import { createCoordinationLock } from './coordination-lock.js';
@@ -59,10 +60,10 @@ export class InfraHealingOrchestrator {
59
60
  // Update per-service failure counts
60
61
  for (const failure of observation.infraFailures) {
61
62
  if (failure.serviceName) {
62
- if (!this.stats.byService[failure.serviceName]) {
63
- this.stats.byService[failure.serviceName] = { failures: 0, recoveries: 0, successes: 0 };
64
- }
65
- this.stats.byService[failure.serviceName].failures++;
63
+ const bucket = getOwn(this.stats.byService, failure.serviceName)
64
+ ?? { failures: 0, recoveries: 0, successes: 0 };
65
+ bucket.failures++;
66
+ setOwn(this.stats.byService, failure.serviceName, bucket);
66
67
  }
67
68
  }
68
69
  }
@@ -171,11 +172,11 @@ export class InfraHealingOrchestrator {
171
172
  this.stats.recoveriesFailed = execStats.recoveriesFailed;
172
173
  // Merge per-service recovery stats from executor
173
174
  for (const [service, execServiceStats] of Object.entries(execStats.byService)) {
174
- if (!this.stats.byService[service]) {
175
- this.stats.byService[service] = { failures: 0, recoveries: 0, successes: 0 };
176
- }
177
- this.stats.byService[service].recoveries = execServiceStats.recoveries;
178
- this.stats.byService[service].successes = execServiceStats.successes;
175
+ const bucket = getOwn(this.stats.byService, service)
176
+ ?? { failures: 0, recoveries: 0, successes: 0 };
177
+ bucket.recoveries = execServiceStats.recoveries;
178
+ bucket.successes = execServiceStats.successes;
179
+ setOwn(this.stats.byService, service, bucket);
179
180
  }
180
181
  }
181
182
  }
@@ -15,6 +15,11 @@ export interface DaemonConfig {
15
15
  autoStart?: boolean;
16
16
  /** Workers to enable (defaults to all) */
17
17
  enabledWorkers?: string[];
18
+ /**
19
+ * Workers to skip even when enabled (#1061). Defaults to the comma list in
20
+ * `AQE_DISABLED_WORKERS`.
21
+ */
22
+ disabledWorkers?: string[];
18
23
  /** Log level */
19
24
  logLevel?: 'debug' | 'info' | 'warn' | 'error';
20
25
  /** Health check interval (ms) */
@@ -30,6 +35,8 @@ export declare class QEDaemon implements IDaemon {
30
35
  private workerManager;
31
36
  private config;
32
37
  private _qualityDaemon?;
38
+ /** #1066: `AQE_DISABLED_WORKERS` ids that match no worker. */
39
+ private unknownDisabledIds;
33
40
  constructor(config?: DaemonConfig);
34
41
  get running(): boolean;
35
42
  get uptime(): number;
@@ -9,12 +9,14 @@ import { WorkerManagerImpl } from './worker-manager.js';
9
9
  // Import all QE workers (ADR-014)
10
10
  import { TestHealthWorker, CoverageTrackerWorker, FlakyDetectorWorker, SecurityScanWorker, QualityGateWorker, LearningConsolidationWorker, DefectPredictorWorker, RegressionMonitorWorker, PerformanceBaselineWorker, ComplianceCheckerWorker, HeartbeatSchedulerWorker, } from './workers/index.js';
11
11
  import { QualityDaemon } from './quality-daemon/index.js';
12
+ import { parseDisabledWorkers } from './worker-env.js';
12
13
  /**
13
14
  * Default daemon configuration
14
15
  */
15
16
  const DEFAULT_CONFIG = {
16
17
  autoStart: true,
17
18
  enabledWorkers: [],
19
+ disabledWorkers: [],
18
20
  logLevel: 'info',
19
21
  healthCheckIntervalMs: 60000,
20
22
  };
@@ -28,8 +30,15 @@ export class QEDaemon {
28
30
  workerManager;
29
31
  config;
30
32
  _qualityDaemon;
33
+ /** #1066: `AQE_DISABLED_WORKERS` ids that match no worker. */
34
+ unknownDisabledIds = [];
31
35
  constructor(config) {
32
- this.config = { ...DEFAULT_CONFIG, ...config };
36
+ this.config = {
37
+ ...DEFAULT_CONFIG,
38
+ ...config,
39
+ // #1066: ids are matched without regard to case.
40
+ disabledWorkers: (config?.disabledWorkers ?? parseDisabledWorkers()).map((id) => id.toLowerCase()),
41
+ };
33
42
  this.workerManager = new WorkerManagerImpl();
34
43
  this.registerWorkers();
35
44
  }
@@ -50,6 +59,11 @@ export class QEDaemon {
50
59
  return;
51
60
  }
52
61
  console.info('[Daemon] Starting QE Background Workers...');
62
+ // #1066: reported on start, not construction. fleet_init and shutdown
63
+ // construct the daemon even when AQE_WORKERS_ENABLED=false.
64
+ if (this.unknownDisabledIds.length > 0) {
65
+ console.warn(`[AQE] WARN AQE_DISABLED_WORKERS: unknown worker id(s) ignored: ${this.unknownDisabledIds.join(', ')}`);
66
+ }
53
67
  this._running = true;
54
68
  this._startedAt = new Date();
55
69
  // Start health check timer
@@ -158,12 +172,17 @@ export class QEDaemon {
158
172
  new HeartbeatSchedulerWorker(), // 30 min - Token-free heartbeat
159
173
  ];
160
174
  for (const worker of allWorkers) {
161
- // Check if worker is enabled
175
+ // Check if worker is enabled and not explicitly disabled (#1061)
176
+ if (this.config.disabledWorkers.includes(worker.config.id)) {
177
+ continue;
178
+ }
162
179
  if (this.config.enabledWorkers.length === 0 ||
163
180
  this.config.enabledWorkers.includes(worker.config.id)) {
164
181
  this.workerManager.register(worker);
165
182
  }
166
183
  }
184
+ const knownIds = new Set(allWorkers.map((worker) => worker.config.id));
185
+ this.unknownDisabledIds = this.config.disabledWorkers.filter((id) => !knownIds.has(id));
167
186
  }
168
187
  performHealthCheck() {
169
188
  const health = this.workerManager.getHealth();
@@ -5,12 +5,9 @@
5
5
  * hybrid (sqlite) backend returns bare keys, the in-memory backend returns
6
6
  * `<namespace>:<key>`. A worker that passes a search result straight back to
7
7
  * `get(key, { namespace })` then double-prefixes the key and reads nothing.
8
+ *
9
+ * The helper lives in `shared/utils/namespaced-search` so domain services can
10
+ * use it too (#1071); it is re-exported here for the workers.
8
11
  */
9
- /**
10
- * The bare key for a key returned by `search(pattern, limit, { namespace })`.
11
- * A result that already matches `pattern` is bare (keys may legitimately start
12
- * with the namespace name, e.g. `defect-intelligence:predictor:…`); otherwise a
13
- * leading `<namespace>:` is the backend's prefix and is removed.
14
- */
15
- export declare function bareSearchKey(found: string, namespace: string, pattern: string): string;
12
+ export { bareSearchKey } from '../shared/utils/namespaced-search.js';
16
13
  //# sourceMappingURL=namespaced-keys.d.ts.map
@@ -5,20 +5,9 @@
5
5
  * hybrid (sqlite) backend returns bare keys, the in-memory backend returns
6
6
  * `<namespace>:<key>`. A worker that passes a search result straight back to
7
7
  * `get(key, { namespace })` then double-prefixes the key and reads nothing.
8
+ *
9
+ * The helper lives in `shared/utils/namespaced-search` so domain services can
10
+ * use it too (#1071); it is re-exported here for the workers.
8
11
  */
9
- function globToRegExp(pattern) {
10
- const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
11
- return new RegExp(`^${escaped.replace(/\*/g, '.*').replace(/\?/g, '.')}$`, 's');
12
- }
13
- /**
14
- * The bare key for a key returned by `search(pattern, limit, { namespace })`.
15
- * A result that already matches `pattern` is bare (keys may legitimately start
16
- * with the namespace name, e.g. `defect-intelligence:predictor:…`); otherwise a
17
- * leading `<namespace>:` is the backend's prefix and is removed.
18
- */
19
- export function bareSearchKey(found, namespace, pattern) {
20
- if (globToRegExp(pattern).test(found))
21
- return found;
22
- return found.startsWith(`${namespace}:`) ? found.slice(namespace.length + 1) : found;
23
- }
12
+ export { bareSearchKey } from '../shared/utils/namespaced-search.js';
24
13
  //# sourceMappingURL=namespaced-keys.js.map
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { execFile } from 'child_process';
9
9
  import { promisify } from 'util';
10
+ import { createSafeRecord, getOwn, setOwn } from '../../shared/utils/safe-record.js';
10
11
  const execFileAsync = promisify(execFile);
11
12
  const DEFAULTS = {
12
13
  runsPerWorkflow: 10,
@@ -95,16 +96,19 @@ export class CIMonitor {
95
96
  }
96
97
  }
97
98
  groupByWorkflow(runs) {
98
- const grouped = {};
99
+ // Workflow names come from GitHub: no prototype, so `constructor` is just a name (#978).
100
+ const grouped = createSafeRecord();
99
101
  for (const run of runs) {
100
- if (!grouped[run.name]) {
101
- grouped[run.name] = [];
102
+ let bucket = getOwn(grouped, run.name);
103
+ if (!bucket) {
104
+ bucket = [];
105
+ setOwn(grouped, run.name, bucket);
102
106
  }
103
- grouped[run.name].push(run);
107
+ bucket.push(run);
104
108
  }
105
109
  // Limit per workflow
106
110
  for (const name of Object.keys(grouped)) {
107
- grouped[name] = grouped[name].slice(0, this.options.runsPerWorkflow);
111
+ setOwn(grouped, name, getOwn(grouped, name).slice(0, this.options.runsPerWorkflow));
108
112
  }
109
113
  return grouped;
110
114
  }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Agentic QE v3 - Background worker environment switches (#1061)
3
+ *
4
+ * Parses the environment variables that control the background worker
5
+ * daemon hosted by the MCP server:
6
+ *
7
+ * - `AQE_WORKERS_ENABLED`: `false` / `0` / `off` / `no` disables the whole
8
+ * worker daemon, including the QualityDaemon. Unset, empty or any other
9
+ * value keeps the default behaviour (workers on). `aqe init` writes `true`
10
+ * for normal installs and `false` for `--no-database` installs (#533).
11
+ * - `AQE_DISABLED_WORKERS`: comma-separated worker ids that are not
12
+ * registered (for example `learning-consolidation`). Matched without
13
+ * regard to case (#1066).
14
+ * - `AQE_DREAM_INSIGHTS_RETENTION_DAYS`: retention window for unapplied
15
+ * `dream_insights` rows. Default 30. `0`, `off`, `false`, `no`, `disabled`,
16
+ * `none` or `never` disables the sweep. Any other value that is not a whole
17
+ * number of days is rejected with a warning and also disables the sweep, so
18
+ * a typo never deletes anything (#1066).
19
+ */
20
+ export type WorkerEnv = Readonly<Record<string, string | undefined>>;
21
+ /** Default retention window for unapplied dream insights (days). */
22
+ export declare const DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS = 30;
23
+ /**
24
+ * Whether background workers should start. Only an explicit falsy value
25
+ * disables them, so existing installs keep today's behaviour.
26
+ */
27
+ export declare function isWorkersEnabled(env?: WorkerEnv): boolean;
28
+ /**
29
+ * Worker ids listed in `AQE_DISABLED_WORKERS`, trimmed, lower-cased,
30
+ * de-duplicated and with empty entries removed. Worker ids are lower-case, so
31
+ * `Learning-Consolidation` disables `learning-consolidation` (#1066).
32
+ */
33
+ export declare function parseDisabledWorkers(env?: WorkerEnv): string[];
34
+ export interface DreamInsightsRetention {
35
+ /** Retention window in days, or `null` when the sweep is disabled. */
36
+ retentionDays: number | null;
37
+ /** Set when the configured value was rejected (default applied). */
38
+ warning?: string;
39
+ }
40
+ /**
41
+ * Resolve `AQE_DREAM_INSIGHTS_RETENTION_DAYS`.
42
+ *
43
+ * - unset, empty or whitespace only: default (30 days). Blanking the
44
+ * variable means "unset", not "off" (documented in configuration.md).
45
+ * - `0`, `off`, `false`, `no`, `disabled`, `none`, `never`: sweep disabled
46
+ * (`retentionDays: null`)
47
+ * - a whole number from 1 to 36500: that many days
48
+ * - anything else: sweep disabled, with a warning describing the rejected
49
+ * value. The sweep deletes user data, so an unreadable setting fails safe
50
+ * (#1066).
51
+ */
52
+ export declare function resolveDreamInsightsRetention(env?: WorkerEnv): DreamInsightsRetention;
53
+ //# sourceMappingURL=worker-env.d.ts.map
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Agentic QE v3 - Background worker environment switches (#1061)
3
+ *
4
+ * Parses the environment variables that control the background worker
5
+ * daemon hosted by the MCP server:
6
+ *
7
+ * - `AQE_WORKERS_ENABLED`: `false` / `0` / `off` / `no` disables the whole
8
+ * worker daemon, including the QualityDaemon. Unset, empty or any other
9
+ * value keeps the default behaviour (workers on). `aqe init` writes `true`
10
+ * for normal installs and `false` for `--no-database` installs (#533).
11
+ * - `AQE_DISABLED_WORKERS`: comma-separated worker ids that are not
12
+ * registered (for example `learning-consolidation`). Matched without
13
+ * regard to case (#1066).
14
+ * - `AQE_DREAM_INSIGHTS_RETENTION_DAYS`: retention window for unapplied
15
+ * `dream_insights` rows. Default 30. `0`, `off`, `false`, `no`, `disabled`,
16
+ * `none` or `never` disables the sweep. Any other value that is not a whole
17
+ * number of days is rejected with a warning and also disables the sweep, so
18
+ * a typo never deletes anything (#1066).
19
+ */
20
+ const FALSY_VALUES = new Set(['false', '0', 'off', 'no']);
21
+ /**
22
+ * Values of `AQE_DREAM_INSIGHTS_RETENTION_DAYS` that turn the sweep off: the
23
+ * `AQE_WORKERS_ENABLED` falsy set plus a few spellings people use for "keep".
24
+ */
25
+ const RETENTION_OFF_VALUES = new Set([...FALSY_VALUES, 'disabled', 'disable', 'none', 'never']);
26
+ /** Default retention window for unapplied dream insights (days). */
27
+ export const DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS = 30;
28
+ /** Upper bound accepted for the retention window (100 years). */
29
+ const MAX_DREAM_INSIGHTS_RETENTION_DAYS = 36500;
30
+ /**
31
+ * Whether background workers should start. Only an explicit falsy value
32
+ * disables them, so existing installs keep today's behaviour.
33
+ */
34
+ export function isWorkersEnabled(env = process.env) {
35
+ const raw = env.AQE_WORKERS_ENABLED;
36
+ if (raw === undefined)
37
+ return true;
38
+ return !FALSY_VALUES.has(raw.trim().toLowerCase());
39
+ }
40
+ /**
41
+ * Worker ids listed in `AQE_DISABLED_WORKERS`, trimmed, lower-cased,
42
+ * de-duplicated and with empty entries removed. Worker ids are lower-case, so
43
+ * `Learning-Consolidation` disables `learning-consolidation` (#1066).
44
+ */
45
+ export function parseDisabledWorkers(env = process.env) {
46
+ const raw = env.AQE_DISABLED_WORKERS;
47
+ if (!raw)
48
+ return [];
49
+ const ids = raw
50
+ .split(',')
51
+ .map((id) => id.trim().toLowerCase())
52
+ .filter((id) => id.length > 0);
53
+ return Array.from(new Set(ids));
54
+ }
55
+ /**
56
+ * Resolve `AQE_DREAM_INSIGHTS_RETENTION_DAYS`.
57
+ *
58
+ * - unset, empty or whitespace only: default (30 days). Blanking the
59
+ * variable means "unset", not "off" (documented in configuration.md).
60
+ * - `0`, `off`, `false`, `no`, `disabled`, `none`, `never`: sweep disabled
61
+ * (`retentionDays: null`)
62
+ * - a whole number from 1 to 36500: that many days
63
+ * - anything else: sweep disabled, with a warning describing the rejected
64
+ * value. The sweep deletes user data, so an unreadable setting fails safe
65
+ * (#1066).
66
+ */
67
+ export function resolveDreamInsightsRetention(env = process.env) {
68
+ const raw = env.AQE_DREAM_INSIGHTS_RETENTION_DAYS;
69
+ if (raw === undefined || raw.trim() === '') {
70
+ return { retentionDays: DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS };
71
+ }
72
+ const value = raw.trim().toLowerCase();
73
+ if (RETENTION_OFF_VALUES.has(value)) {
74
+ return { retentionDays: null };
75
+ }
76
+ if (/^\d+$/.test(value)) {
77
+ const days = Number(value);
78
+ if (days >= 1 && days <= MAX_DREAM_INSIGHTS_RETENTION_DAYS) {
79
+ return { retentionDays: days };
80
+ }
81
+ }
82
+ return {
83
+ retentionDays: null,
84
+ warning: `Invalid AQE_DREAM_INSIGHTS_RETENTION_DAYS=${JSON.stringify(raw)}; ` +
85
+ `expected a whole number of days (1-${MAX_DREAM_INSIGHTS_RETENTION_DAYS}), ` +
86
+ `0 or "off". The dream_insights retention sweep is off until this is fixed; nothing is deleted.`,
87
+ };
88
+ }
89
+ //# sourceMappingURL=worker-env.js.map
@@ -236,6 +236,10 @@ export class WorkerManagerImpl {
236
236
  async startAll() {
237
237
  this.running = true;
238
238
  for (const worker of Array.from(this.workers.values())) {
239
+ // #1066: startAll may run in the background (MCP startup), so a stop
240
+ // issued meanwhile must not be followed by more first runs.
241
+ if (!this.running)
242
+ break;
239
243
  if (worker.config.enabled) {
240
244
  await this.startWorker(worker);
241
245
  }
@@ -14,15 +14,35 @@
14
14
  */
15
15
  import { BaseWorker } from '../base-worker';
16
16
  import { WorkerContext, WorkerResult } from '../interfaces';
17
+ /**
18
+ * #488 C.2: retention window for `applied = 0` dream insights comes from
19
+ * `AQE_DREAM_INSIGHTS_RETENTION_DAYS` (default 30, `0`/`off` disables the
20
+ * sweep). See `resolveDreamInsightsRetention` in `../worker-env.ts`.
21
+ *
22
+ * #1061: the sweep never runs on the first tick after the worker is created.
23
+ * The worker manager runs every worker immediately on startup, so without this
24
+ * guard every short MCP session deleted rows within seconds of starting.
25
+ * Retries of the first tick (30 s apart) fall inside the same window.
26
+ */
17
27
  export declare class LearningConsolidationWorker extends BaseWorker {
18
28
  private lifecycleManager;
19
29
  private lastRunTimestamp;
30
+ /** #1061: the dream_insights sweep waits one full interval after creation. */
31
+ private readonly dreamInsightsPruneNotBefore;
32
+ /** #1061: an invalid retention value is reported once per process. */
33
+ private retentionWarningLogged;
20
34
  constructor();
21
35
  /**
22
36
  * Initialize or get the pattern lifecycle manager
23
37
  */
24
38
  private getLifecycleManager;
25
39
  protected doExecute(context: WorkerContext): Promise<WorkerResult>;
40
+ /**
41
+ * #488 C.2 / #1061: run the dream_insights retention sweep when it is
42
+ * enabled and the first tick after startup has passed. Returns the number
43
+ * of rows moved to the archive table.
44
+ */
45
+ private pruneDreamInsights;
26
46
  /**
27
47
  * Phase 7: Run the continuous learning loop
28
48
  *
@@ -21,7 +21,8 @@ import { getUnifiedMemory, findProjectRoot } from '../../kernel/unified-memory.j
21
21
  import { toErrorMessage } from '../../shared/error-utils.js';
22
22
  import { ExperienceConsolidator } from '../../learning/experience-consolidation.js';
23
23
  import { recordLoopHealth } from '../../learning/loop-health.js';
24
- import { pruneStaleDreamInsights } from '../../learning/dream/dream-insights-pruner.js';
24
+ import { pruneStaleDreamInsights, DREAM_INSIGHTS_ARCHIVE_TABLE, } from '../../learning/dream/dream-insights-pruner.js';
25
+ import { resolveDreamInsightsRetention } from '../worker-env.js';
25
26
  import { createLearningMetricsTracker } from '../../learning/metrics-tracker.js';
26
27
  const CONFIG = {
27
28
  id: 'learning-consolidation',
@@ -44,13 +45,22 @@ const CONFIG = {
44
45
  const CONSOLIDATION_CURSOR_PREFIX = 'learning:consolidation-cursor:';
45
46
  const DEFAULT_LOOKBACK_DAYS = 1;
46
47
  /**
47
- * #488 C.2: retention window for `applied = 0` dream insights. Matches the
48
- * `staleDaysThreshold` used by `pattern-lifecycle.ts` for consistency.
48
+ * #488 C.2: retention window for `applied = 0` dream insights comes from
49
+ * `AQE_DREAM_INSIGHTS_RETENTION_DAYS` (default 30, `0`/`off` disables the
50
+ * sweep). See `resolveDreamInsightsRetention` in `../worker-env.ts`.
51
+ *
52
+ * #1061: the sweep never runs on the first tick after the worker is created.
53
+ * The worker manager runs every worker immediately on startup, so without this
54
+ * guard every short MCP session deleted rows within seconds of starting.
55
+ * Retries of the first tick (30 s apart) fall inside the same window.
49
56
  */
50
- const DREAM_INSIGHTS_RETENTION_DAYS = 30;
51
57
  export class LearningConsolidationWorker extends BaseWorker {
52
58
  lifecycleManager = null;
53
59
  lastRunTimestamp = 0;
60
+ /** #1061: the dream_insights sweep waits one full interval after creation. */
61
+ dreamInsightsPruneNotBefore = Date.now() + CONFIG.intervalMs;
62
+ /** #1061: an invalid retention value is reported once per process. */
63
+ retentionWarningLogged = false;
54
64
  constructor() {
55
65
  super(CONFIG);
56
66
  }
@@ -224,6 +234,46 @@ export class LearningConsolidationWorker extends BaseWorker {
224
234
  }
225
235
  }
226
236
  }
237
+ /**
238
+ * #488 C.2 / #1061: run the dream_insights retention sweep when it is
239
+ * enabled and the first tick after startup has passed. Returns the number
240
+ * of rows moved to the archive table.
241
+ */
242
+ pruneDreamInsights(findings) {
243
+ const retention = resolveDreamInsightsRetention();
244
+ if (retention.warning && !this.retentionWarningLogged) {
245
+ this.retentionWarningLogged = true;
246
+ process.stderr.write(`[AQE] WARN ${retention.warning}\n`);
247
+ }
248
+ const retentionDays = retention.retentionDays;
249
+ if (retentionDays === null)
250
+ return 0;
251
+ if (Date.now() < this.dreamInsightsPruneNotBefore)
252
+ return 0;
253
+ const db = getUnifiedMemory().getDatabase();
254
+ // #1066: rows are copied to dream_insights_archive and verified first.
255
+ const { pruned, archived } = pruneStaleDreamInsights(db, { retentionDays });
256
+ if (pruned > 0) {
257
+ // Default log level, stderr only: MCP stdout carries JSON-RPC.
258
+ process.stderr.write(`[AQE] dream_insights retention: moved ${pruned} unapplied insight(s) ` +
259
+ `older than ${retentionDays} days to ${DREAM_INSIGHTS_ARCHIVE_TABLE} ` +
260
+ `(set AQE_DREAM_INSIGHTS_RETENTION_DAYS=off to keep them in place)\n`);
261
+ findings.push({
262
+ type: 'dream-insights-pruned',
263
+ severity: 'info',
264
+ domain: 'learning-optimization',
265
+ title: 'Stale Dream Insights Archived',
266
+ description: `${pruned} unapplied dream insights older than ${retentionDays} days ` +
267
+ `moved to ${DREAM_INSIGHTS_ARCHIVE_TABLE}`,
268
+ context: {
269
+ pruned,
270
+ archived,
271
+ retentionDays,
272
+ },
273
+ });
274
+ }
275
+ return pruned;
276
+ }
227
277
  /**
228
278
  * Phase 7: Run the continuous learning loop
229
279
  *
@@ -367,26 +417,10 @@ export class LearningConsolidationWorker extends BaseWorker {
367
417
  // Step 8 (#488 C.2): prune stale unapplied dream_insights so the
368
418
  // table doesn't grow unbounded. Applied insights are part of the
369
419
  // pattern-change audit trail and stay forever.
420
+ // #1061: configurable, skipped on the first tick, logged to stderr.
421
+ // Follow-up: archive rows instead of hard-deleting them.
370
422
  try {
371
- const unifiedMemory = getUnifiedMemory();
372
- const db = unifiedMemory.getDatabase();
373
- const pruneResult = pruneStaleDreamInsights(db, {
374
- retentionDays: DREAM_INSIGHTS_RETENTION_DAYS,
375
- });
376
- dreamInsightsPruned = pruneResult.pruned;
377
- if (dreamInsightsPruned > 0) {
378
- findings.push({
379
- type: 'dream-insights-pruned',
380
- severity: 'info',
381
- domain: 'learning-optimization',
382
- title: 'Stale Dream Insights Pruned',
383
- description: `${dreamInsightsPruned} unapplied dream insights older than ${DREAM_INSIGHTS_RETENTION_DAYS} days deleted`,
384
- context: {
385
- pruned: dreamInsightsPruned,
386
- retentionDays: DREAM_INSIGHTS_RETENTION_DAYS,
387
- },
388
- });
389
- }
423
+ dreamInsightsPruned = this.pruneDreamInsights(findings);
390
424
  }
391
425
  catch (pruneError) {
392
426
  context.logger.warn('Dream insights pruning failed', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.15.7",
3
+ "version": "3.15.9",
4
4
  "description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.7");process.exit(0)}
2
- import{a,b,c}from"./chunk-56ZKQYZY.js";import"./chunk-YFOBQSOW.js";import"./chunk-YUC7RJGR.js";import"./chunk-4G2VNW4C.js";import"./chunk-LVEX4GID.js";import"./chunk-HSDOOFV7.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.7");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-NZQPP533.js";import"./chunk-CWPRU7ZI.js";import"./chunk-IC2WSSD5.js";import"./chunk-EV2BYY6T.js";import"./chunk-DCJW2DPL.js";import"./chunk-ZRLNACPY.js";import"./chunk-V2SAEMZY.js";import"./chunk-G7YTZTGU.js";import"./chunk-Y4SAWE45.js";import"./chunk-XEWXYGJI.js";import"./chunk-634D2ENF.js";import"./chunk-J43DV3ME.js";import"./chunk-5KCBX225.js";import"./chunk-RCYLCA7E.js";import"./chunk-BB7OLQKO.js";import"./chunk-N4PMPSJJ.js";import"./chunk-ZLVQSEZK.js";import"./chunk-LMEU64TR.js";import"./chunk-4G2VNW4C.js";import"./chunk-7EX4DEQR.js";import"./chunk-QNQSM2OG.js";import"./chunk-F62EKVVC.js";import"./chunk-HTWIGQL4.js";import"./chunk-ONVALAZN.js";import"./chunk-ZTMZFF25.js";import"./chunk-Q2T5FXEA.js";import"./chunk-C2MDBBFF.js";import"./chunk-RNYX4CPI.js";import"./chunk-FTTFJ7SJ.js";import"./chunk-CG5DZCOZ.js";import"./chunk-WXI2STKQ.js";import"./chunk-VJRZFWR5.js";import"./chunk-JYXOFN3E.js";import"./chunk-KPOPBUUJ.js";import"./chunk-LVEX4GID.js";import"./chunk-LGBN7TKC.js";import"./chunk-MRHM4COP.js";import"./chunk-5Q22XPTH.js";import"./chunk-ZUMDDMDE.js";import"./chunk-44DPYNPE.js";import"./chunk-FVBFASOD.js";import"./chunk-IARSGAG7.js";import"./chunk-JVYPXW6Y.js";import"./chunk-HSDOOFV7.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.7");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-6FEQ73BF.js";import"./chunk-PXZKPUW6.js";import"./chunk-2RJYA6WK.js";import"./chunk-ZLVQSEZK.js";import"./chunk-LMEU64TR.js";import"./chunk-4G2VNW4C.js";import"./chunk-7EX4DEQR.js";import"./chunk-QNQSM2OG.js";import"./chunk-F62EKVVC.js";import"./chunk-HTWIGQL4.js";import"./chunk-ONVALAZN.js";import"./chunk-ZTMZFF25.js";import"./chunk-Q2T5FXEA.js";import"./chunk-RNYX4CPI.js";import"./chunk-FTTFJ7SJ.js";import"./chunk-WXI2STKQ.js";import"./chunk-VJRZFWR5.js";import"./chunk-JYXOFN3E.js";import"./chunk-KPOPBUUJ.js";import"./chunk-LVEX4GID.js";import"./chunk-LGBN7TKC.js";import"./chunk-5Q22XPTH.js";import"./chunk-ZUMDDMDE.js";import"./chunk-IARSGAG7.js";import"./chunk-JVYPXW6Y.js";import"./chunk-HSDOOFV7.js";export{l as MCPToolBase,k as defaultToolLogger,j as getKernel,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.7");process.exit(0)}
2
- import{a}from"./chunk-Z3VJLWRR.js";import"./chunk-6FEQ73BF.js";import"./chunk-PXZKPUW6.js";import"./chunk-2RJYA6WK.js";import"./chunk-ZLVQSEZK.js";import"./chunk-LMEU64TR.js";import"./chunk-4G2VNW4C.js";import"./chunk-7EX4DEQR.js";import"./chunk-QNQSM2OG.js";import"./chunk-F62EKVVC.js";import"./chunk-HTWIGQL4.js";import"./chunk-ONVALAZN.js";import"./chunk-ZTMZFF25.js";import"./chunk-Q2T5FXEA.js";import"./chunk-RNYX4CPI.js";import"./chunk-FTTFJ7SJ.js";import"./chunk-WXI2STKQ.js";import"./chunk-VJRZFWR5.js";import"./chunk-JYXOFN3E.js";import"./chunk-KPOPBUUJ.js";import"./chunk-LVEX4GID.js";import"./chunk-LGBN7TKC.js";import"./chunk-5Q22XPTH.js";import"./chunk-ZUMDDMDE.js";import"./chunk-IARSGAG7.js";import"./chunk-JVYPXW6Y.js";import"./chunk-HSDOOFV7.js";export{a as BrowserWorkflowTool};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.7");process.exit(0)}
2
- var n=["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","requirements-validation","code-intelligence","security-compliance","contract-testing","visual-accessibility","chaos-resilience","learning-optimization","enterprise-integration","coordination"];function t(e){return typeof e=="string"&&n.includes(e)}function r(e){return{success:!0,value:e}}function i(e){return{success:!1,error:e}}export{n as a,t as b,r as c,i as d};