agentic-qe 3.15.8 → 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 (479) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +183 -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-W3V5P7LE.js → agent-booster-wasm-427FRKWG.js} +2 -2
  9. package/dist/cli/chunks/{agent-handler-2NQFHAWE.js → agent-handler-RIYHTHVZ.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-457ECHHK.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-JV3WSEHU.js → arena-KRIBMIXX.js} +2 -2
  13. package/dist/cli/chunks/{arena-IYBQ3GPY.js → arena-YAJZX6MC.js} +4 -4
  14. package/dist/cli/chunks/{audit-5OS3T3K6.js → audit-7ZNOXWP3.js} +3 -3
  15. package/dist/cli/chunks/base-67DXSAYM.js +2 -0
  16. package/dist/cli/chunks/{better-sqlite3-IQKBFVAO.js → better-sqlite3-ZQAT4I6H.js} +2 -2
  17. package/dist/cli/chunks/{brain-handler-KA3SGAFM.js → brain-handler-452WCPZC.js} +3 -3
  18. package/dist/cli/chunks/{branch-enumerator-QZDU2VOQ.js → branch-enumerator-IJFXJRPN.js} +2 -2
  19. package/dist/cli/chunks/{browser-ZL7OLKJQ.js → browser-CT3MTV6G.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +2 -0
  21. package/dist/cli/chunks/{chunk-IJSFZO7P.js → chunk-2BA45H64.js} +2 -2
  22. package/dist/cli/chunks/{chunk-6GIC2263.js → chunk-2HL3UM5P.js} +2 -2
  23. package/dist/cli/chunks/{chunk-KVMKYUOE.js → chunk-2I2UPJS7.js} +2 -2
  24. package/dist/cli/chunks/{chunk-22DOS3PM.js → chunk-2TDIS6YK.js} +2 -2
  25. package/dist/cli/chunks/{chunk-5MBNRTT5.js → chunk-2URBI52G.js} +2 -2
  26. package/dist/cli/chunks/{chunk-A6GCO6ZU.js → chunk-2XITOPYV.js} +2 -2
  27. package/dist/cli/chunks/{chunk-I77D65X5.js → chunk-2YH62JCN.js} +2 -2
  28. package/dist/cli/chunks/{chunk-2JCLACCS.js → chunk-32UTLDNY.js} +2 -2
  29. package/dist/cli/chunks/{chunk-UTNKMPTC.js → chunk-37BIGMJI.js} +1 -1
  30. package/dist/cli/chunks/{chunk-767SR7WH.js → chunk-3CJCROMW.js} +2 -2
  31. package/dist/cli/chunks/{chunk-LVHZK7GW.js → chunk-3LYU7BLY.js} +2 -2
  32. package/dist/cli/chunks/{chunk-5DZDLOY6.js → chunk-47TYABPD.js} +3 -3
  33. package/dist/cli/chunks/{chunk-SWY6KGMF.js → chunk-47V7FQGX.js} +2 -2
  34. package/dist/cli/chunks/{chunk-KMZW2P3R.js → chunk-4JCY45KV.js} +2 -2
  35. package/dist/cli/chunks/{chunk-D4IBIMWI.js → chunk-4SUOVLJ6.js} +2 -2
  36. package/dist/cli/chunks/{chunk-J7RCI25Q.js → chunk-4URT6JO2.js} +1 -1
  37. package/dist/cli/chunks/{chunk-SHEVM5PF.js → chunk-4V27J6YN.js} +2 -2
  38. package/dist/cli/chunks/{chunk-JWPYMRIX.js → chunk-4W4DYVSH.js} +1 -1
  39. package/dist/cli/chunks/chunk-55HRSNGN.js +2 -0
  40. package/dist/cli/chunks/{chunk-R2NHGESM.js → chunk-5D2I7JUP.js} +2 -2
  41. package/dist/cli/chunks/{chunk-GGSTLKY5.js → chunk-5JWGCIQW.js} +1 -1
  42. package/dist/cli/chunks/chunk-5LAAZLUC.js +4 -0
  43. package/dist/cli/chunks/{chunk-YNQPHRUZ.js → chunk-5NS3USRW.js} +1 -1
  44. package/dist/cli/chunks/{chunk-4YUBWU3E.js → chunk-6EPHNJTL.js} +1 -1
  45. package/dist/cli/chunks/{chunk-ZBI7PJFX.js → chunk-6OOYIO3W.js} +2 -2
  46. package/dist/cli/chunks/{chunk-ST7ASEJO.js → chunk-6PXA2BQJ.js} +58 -58
  47. package/dist/cli/chunks/{chunk-LPSMVBB3.js → chunk-6YL6JOQB.js} +2 -2
  48. package/dist/cli/chunks/{chunk-DY37YMMQ.js → chunk-72AMFDC7.js} +1 -1
  49. package/dist/cli/chunks/{chunk-OWBFVAEH.js → chunk-763SUL4B.js} +2 -2
  50. package/dist/cli/chunks/{chunk-4GYFONJB.js → chunk-7DMA5NYL.js} +1 -1
  51. package/dist/cli/chunks/{chunk-4GUVVGJX.js → chunk-7JKB3Q7O.js} +1 -1
  52. package/dist/cli/chunks/{chunk-DN3AKAPY.js → chunk-7KII4CQG.js} +2 -2
  53. package/dist/cli/chunks/{chunk-VKFVJCIH.js → chunk-7QGYJ5OY.js} +1 -1
  54. package/dist/cli/chunks/{chunk-HNGNRIZZ.js → chunk-7QTB5VJZ.js} +2 -2
  55. package/dist/cli/chunks/{chunk-GSOK4M6V.js → chunk-7X2Y727E.js} +1 -1
  56. package/dist/cli/chunks/{chunk-PZ7FJ4UG.js → chunk-A4RU67VX.js} +2 -2
  57. package/dist/cli/chunks/{chunk-VWSGWYRB.js → chunk-A6YIH4C4.js} +2 -2
  58. package/dist/cli/chunks/{chunk-4I35ARWW.js → chunk-ABFDB4X3.js} +1 -1
  59. package/dist/cli/chunks/{chunk-NQDYOF35.js → chunk-AJ4YDSOI.js} +2 -2
  60. package/dist/cli/chunks/{chunk-CDLG3Q2O.js → chunk-AOFO4N32.js} +2 -2
  61. package/dist/cli/chunks/{chunk-WAWKAYPY.js → chunk-AQTVVLNP.js} +1 -1
  62. package/dist/cli/chunks/chunk-AR2E4B7K.js +6 -0
  63. package/dist/cli/chunks/{chunk-HXCGV5UJ.js → chunk-AVB5QY2Q.js} +2 -2
  64. package/dist/cli/chunks/{chunk-JFWQFB3S.js → chunk-BHKXMIWX.js} +2 -2
  65. package/dist/cli/chunks/{chunk-BEVWCF3Q.js → chunk-BXO536GT.js} +3 -3
  66. package/dist/cli/chunks/{chunk-IMSRWNWF.js → chunk-C6RTMTEH.js} +1 -1
  67. package/dist/cli/chunks/{chunk-UKKFZJME.js → chunk-CTZJUV5I.js} +1 -1
  68. package/dist/cli/chunks/{chunk-MV4S3TEC.js → chunk-D6XVGFTI.js} +2 -2
  69. package/dist/cli/chunks/{chunk-5YOO5QSE.js → chunk-DDPPSSHW.js} +1 -1
  70. package/dist/cli/chunks/{chunk-NHOMVBCI.js → chunk-DGTLJNJH.js} +2 -2
  71. package/dist/cli/chunks/{chunk-NWFBF3KT.js → chunk-DINZR5CF.js} +1 -1
  72. package/dist/cli/chunks/{chunk-RG42LDOB.js → chunk-EFBLP43U.js} +2 -2
  73. package/dist/cli/chunks/chunk-ETG7O5E5.js +5 -0
  74. package/dist/cli/chunks/{chunk-KNHLOANK.js → chunk-F2SQPP6U.js} +2 -2
  75. package/dist/cli/chunks/{chunk-62T7U25U.js → chunk-F3PQZX44.js} +1 -1
  76. package/dist/cli/chunks/{chunk-X3HM7SV4.js → chunk-F4JYIRW2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-NZATJ2C6.js → chunk-FJ4VTLLK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-TMNEK7TP.js → chunk-FL3OYGCS.js} +2 -2
  79. package/dist/cli/chunks/{chunk-HI6OBDDY.js → chunk-FLASM2XB.js} +2 -2
  80. package/dist/cli/chunks/{chunk-GENNJRNK.js → chunk-FV3NHVC7.js} +22 -22
  81. package/dist/cli/chunks/{chunk-PICEGWGB.js → chunk-FV7VAG74.js} +1 -1
  82. package/dist/cli/chunks/{chunk-PWA6XBW4.js → chunk-G3BKZNFL.js} +5 -5
  83. package/dist/cli/chunks/{chunk-T2TDTBFV.js → chunk-GBUIG3FS.js} +1 -1
  84. package/dist/cli/chunks/{chunk-QFYUZYRA.js → chunk-GCWSX2NY.js} +4 -4
  85. package/dist/cli/chunks/{chunk-KJNUETCB.js → chunk-GII5WVAK.js} +1 -1
  86. package/dist/cli/chunks/{chunk-YVWMJZ6O.js → chunk-GKPQ2GRR.js} +2 -2
  87. package/dist/cli/chunks/chunk-GR3JYE5A.js +2 -0
  88. package/dist/cli/chunks/{chunk-CQ5G64EA.js → chunk-H3KBIWTO.js} +2 -2
  89. package/dist/cli/chunks/{chunk-V4QJ3MMT.js → chunk-HAROIAJE.js} +1 -1
  90. package/dist/cli/chunks/{chunk-OJWEZYLR.js → chunk-HCYQHWI2.js} +2 -2
  91. package/dist/cli/chunks/{chunk-FAYXES7R.js → chunk-HGTWAZWU.js} +2 -2
  92. package/dist/cli/chunks/{chunk-LHRVSK44.js → chunk-HTZJSQ3C.js} +2 -2
  93. package/dist/cli/chunks/{chunk-DAFMHM64.js → chunk-HWK5L7IJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-K5R3WUJP.js → chunk-HZ5NC6U5.js} +1 -1
  95. package/dist/cli/chunks/{chunk-Y5ZBF7MA.js → chunk-I6S35FRO.js} +2 -2
  96. package/dist/cli/chunks/{chunk-UDCYQLTD.js → chunk-ICP2ORGI.js} +2 -2
  97. package/dist/cli/chunks/{chunk-KMVFBYJO.js → chunk-IFEIY3NQ.js} +2 -2
  98. package/dist/cli/chunks/{chunk-NW7HTOSN.js → chunk-J3DTDJDT.js} +2 -2
  99. package/dist/cli/chunks/chunk-J3WGK22W.js +2 -0
  100. package/dist/cli/chunks/{chunk-5ONJ7AV6.js → chunk-J5KNRVXR.js} +1 -1
  101. package/dist/cli/chunks/{chunk-G77Q22EN.js → chunk-JAV5WPSY.js} +2 -2
  102. package/dist/cli/chunks/{chunk-VVK4ECVJ.js → chunk-JEP4ULR6.js} +2 -2
  103. package/dist/cli/chunks/{chunk-TC52M542.js → chunk-JK2ME6IT.js} +2 -2
  104. package/dist/cli/chunks/chunk-JNNZK7KH.js +2 -0
  105. package/dist/cli/chunks/{chunk-NLYUC63R.js → chunk-JP4P3P3D.js} +2 -2
  106. package/dist/cli/chunks/{chunk-BTMEOZYY.js → chunk-JUVHZG7I.js} +1 -1
  107. package/dist/cli/chunks/{chunk-PUYQ6EKC.js → chunk-JWGRWMZP.js} +2 -2
  108. package/dist/cli/chunks/{chunk-OCLAMZJG.js → chunk-K5DJXMAA.js} +2 -2
  109. package/dist/cli/chunks/{chunk-X7ZQIFES.js → chunk-KFUUIAR4.js} +2 -2
  110. package/dist/cli/chunks/chunk-KHSRIPBP.js +180 -0
  111. package/dist/cli/chunks/{chunk-U3BWBP6B.js → chunk-KIKWJM6J.js} +2 -2
  112. package/dist/cli/chunks/{chunk-MUDBF2JC.js → chunk-KIXYKUCI.js} +1 -1
  113. package/dist/cli/chunks/{chunk-P4UT4LBE.js → chunk-KLGYIEJK.js} +3 -3
  114. package/dist/cli/chunks/{chunk-G6CLO74Q.js → chunk-KR3M44CF.js} +3 -3
  115. package/dist/cli/chunks/chunk-KTSLTZSG.js +2 -0
  116. package/dist/cli/chunks/{chunk-FJAO4UX2.js → chunk-KVBEGOJE.js} +2 -2
  117. package/dist/cli/chunks/{chunk-BLZEOGQE.js → chunk-L42JPFCC.js} +2 -2
  118. package/dist/cli/chunks/{chunk-ZOVAZTXE.js → chunk-LCJTEUDC.js} +370 -370
  119. package/dist/cli/chunks/{chunk-JLTGO5BB.js → chunk-LEAKYZ37.js} +2 -2
  120. package/dist/cli/chunks/{chunk-RSMPJWQH.js → chunk-LMU5DUDK.js} +1 -1
  121. package/dist/cli/chunks/{chunk-FEN2DHFM.js → chunk-MZS32SYS.js} +1 -1
  122. package/dist/cli/chunks/{chunk-J7FLNP5L.js → chunk-N3KEY4XJ.js} +2 -2
  123. package/dist/cli/chunks/{chunk-ZG7UKWBB.js → chunk-N3NP6PTT.js} +2 -2
  124. package/dist/cli/chunks/{chunk-2DPHFCMW.js → chunk-N5PDFGCQ.js} +2 -2
  125. package/dist/cli/chunks/{chunk-BQUIZ5QT.js → chunk-NDKLQW6N.js} +2 -2
  126. package/dist/cli/chunks/{chunk-52YRSWPS.js → chunk-NHZIWIQZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-ZOHS32SI.js → chunk-NTAD5UX4.js} +2 -2
  128. package/dist/cli/chunks/{chunk-7H3GNRNA.js → chunk-O3JLOVZX.js} +2 -2
  129. package/dist/cli/chunks/{chunk-7XGM7Q2N.js → chunk-OCESWNAZ.js} +3 -3
  130. package/dist/cli/chunks/{chunk-7SLEUVPZ.js → chunk-OG2UI6A3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-4TZLZRZ4.js → chunk-OXTFSIGN.js} +1 -1
  132. package/dist/cli/chunks/{chunk-2QRGIEQV.js → chunk-OXZLKP6C.js} +1 -1
  133. package/dist/cli/chunks/{chunk-FEPFXXI7.js → chunk-P2CXVNKK.js} +2 -2
  134. package/dist/cli/chunks/{chunk-P2EA62YS.js → chunk-P73W2K7T.js} +1 -1
  135. package/dist/cli/chunks/{chunk-V7VZSNDK.js → chunk-PBZI2ZPV.js} +3 -3
  136. package/dist/cli/chunks/{chunk-MMY52Y6R.js → chunk-PMCRCEW5.js} +2 -2
  137. package/dist/cli/chunks/{chunk-FWXNFPLS.js → chunk-PVIA2FPD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-NF63NHJH.js → chunk-PX2B5TS2.js} +2 -2
  139. package/dist/cli/chunks/{chunk-SFPGLUXS.js → chunk-Q3JVJRVJ.js} +1 -1
  140. package/dist/cli/chunks/{chunk-XOOBLZXR.js → chunk-QQ5SZH4D.js} +2 -2
  141. package/dist/cli/chunks/{chunk-KITKQUBX.js → chunk-QTVWUQTB.js} +1 -1
  142. package/dist/cli/chunks/{chunk-2UN4JOTN.js → chunk-REUFWGMA.js} +2 -2
  143. package/dist/cli/chunks/{chunk-CQ3SBRDP.js → chunk-SNBYYO6F.js} +2 -2
  144. package/dist/cli/chunks/{chunk-A2UGPKCS.js → chunk-SVHUYVUR.js} +2 -2
  145. package/dist/cli/chunks/{chunk-PIEKGKW6.js → chunk-THAY7WHO.js} +2 -2
  146. package/dist/cli/chunks/{chunk-WLXGUQOZ.js → chunk-TNMQVG4A.js} +2 -2
  147. package/dist/cli/chunks/{chunk-2GSAAUW3.js → chunk-TSYQDRNK.js} +1 -1
  148. package/dist/cli/chunks/{chunk-7DHSHD5B.js → chunk-TUYJ53V4.js} +2 -2
  149. package/dist/cli/chunks/{chunk-U7CIY3YR.js → chunk-UNUTC6TX.js} +2 -2
  150. package/dist/cli/chunks/{chunk-CRUQ6RXU.js → chunk-UOJBR4J3.js} +2 -2
  151. package/dist/cli/chunks/{chunk-3LFLO2WK.js → chunk-UOWHE77F.js} +2 -2
  152. package/dist/cli/chunks/{chunk-O4RRVTXN.js → chunk-UYLYMWV5.js} +2 -2
  153. package/dist/cli/chunks/{chunk-D4O3TJI7.js → chunk-V5PXQSFS.js} +2 -2
  154. package/dist/cli/chunks/{chunk-VQRBBR27.js → chunk-VCMINU7K.js} +2 -2
  155. package/dist/cli/chunks/{chunk-3N627QRU.js → chunk-VQHVHVSF.js} +2 -2
  156. package/dist/cli/chunks/{chunk-J6LL25QJ.js → chunk-VRGCKBF7.js} +2 -2
  157. package/dist/cli/chunks/{chunk-VWRNG3UK.js → chunk-VU2EL424.js} +1 -1
  158. package/dist/cli/chunks/{chunk-KNQUHGNY.js → chunk-VXZJOKOX.js} +2 -2
  159. package/dist/cli/chunks/{chunk-EUVSSIGR.js → chunk-VYLM2YV5.js} +3 -3
  160. package/dist/cli/chunks/{chunk-PJGQ2TKN.js → chunk-W32YU3VI.js} +2 -2
  161. package/dist/cli/chunks/{chunk-YRH7KMTU.js → chunk-W5VJRDDG.js} +2 -2
  162. package/dist/cli/chunks/{chunk-PPIM7B5G.js → chunk-WGDR2KIR.js} +2 -2
  163. package/dist/cli/chunks/{chunk-2ZRNXEVI.js → chunk-WRRCQ2UE.js} +1 -1
  164. package/dist/cli/chunks/{chunk-7C6FMLQR.js → chunk-XDBD4GXO.js} +2 -2
  165. package/dist/cli/chunks/{chunk-W5A36V3Z.js → chunk-XOLDMK23.js} +2 -2
  166. package/dist/cli/chunks/{chunk-DCYUHCPK.js → chunk-XOVNZT7F.js} +1 -1
  167. package/dist/cli/chunks/{chunk-4C7KE2EL.js → chunk-XQ3DDY7X.js} +2 -2
  168. package/dist/cli/chunks/{chunk-K4N2MBCE.js → chunk-XUIA5KMS.js} +2 -2
  169. package/dist/cli/chunks/{chunk-YUP3APSN.js → chunk-XWIUFYM3.js} +1 -1
  170. package/dist/cli/chunks/{chunk-SJMZZMHP.js → chunk-XYCKHYBM.js} +2 -2
  171. package/dist/cli/chunks/{chunk-4NTLGGXO.js → chunk-XZJ2O3VC.js} +1 -1
  172. package/dist/cli/chunks/{chunk-UQLAN5TX.js → chunk-YRBBBUJX.js} +5 -5
  173. package/dist/cli/chunks/{chunk-XZQVC3GD.js → chunk-YZGSJG34.js} +1 -1
  174. package/dist/cli/chunks/{chunk-7CVMT64N.js → chunk-YZYDTABJ.js} +1 -1
  175. package/dist/cli/chunks/{chunk-4C3RYBTT.js → chunk-ZANDSVCK.js} +2 -2
  176. package/dist/cli/chunks/{chunk-6E7EOHMN.js → chunk-ZBDRLF43.js} +2 -2
  177. package/dist/cli/chunks/{chunk-UTFMMZ57.js → chunk-ZVSLCEVC.js} +3 -3
  178. package/dist/cli/chunks/{chunk-DKFSCJEF.js → chunk-ZXBCCO2H.js} +2 -2
  179. package/dist/cli/chunks/{ci-7NUCRGWO.js → ci-7SGRCFPS.js} +2 -2
  180. package/dist/cli/chunks/{ci-config-VQVECCFI.js → ci-config-MX3URPZA.js} +2 -2
  181. package/dist/cli/chunks/{ci-output-P7GQ6TKF.js → ci-output-M47NJY6D.js} +2 -2
  182. package/dist/cli/chunks/{circuit-breaker-5YP6N6HE.js → circuit-breaker-5GAK45SW.js} +2 -2
  183. package/dist/cli/chunks/{claude-flow-setup-W5H7CMU6.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-OYANSZ54.js → cline-installer-DLJ5QD5N.js} +2 -2
  186. package/dist/cli/chunks/{code-OMT4UEZI.js → code-ONKLMVQ2.js} +25 -24
  187. package/dist/cli/chunks/{code-index-extractor-M2JEWKNF.js → code-index-extractor-2232LGZN.js} +2 -2
  188. package/dist/cli/chunks/{codex-installer-YBS6N5O3.js → codex-installer-UOWLYCMH.js} +2 -2
  189. package/dist/cli/chunks/{completions-U7GS5RG6.js → completions-MHX7GCC7.js} +2 -2
  190. package/dist/cli/chunks/{complexity-analyzer-QSXPIUIU.js → complexity-analyzer-43ZUJKZU.js} +2 -2
  191. package/dist/cli/chunks/{continuedev-installer-W5TTT743.js → continuedev-installer-6Q5JR4FF.js} +2 -2
  192. package/dist/cli/chunks/{copilot-installer-KC2RT24C.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-OQPVR6V4.js → cost-tracker-VS5ZW3XN.js} +2 -2
  195. package/dist/cli/chunks/{coverage-TCO2A2NX.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-MH7GWD4L.js → cursor-installer-YIFEMORH.js} +2 -2
  198. package/dist/cli/chunks/{daemon-UJEARJZ2.js → daemon-SHWJSJW5.js} +7 -7
  199. package/dist/cli/chunks/daemon-YIFT46FH.js +34 -0
  200. package/dist/cli/chunks/{dag-attention-scheduler-F3SUJU5O.js → dag-attention-scheduler-TCC2WM46.js} +2 -2
  201. package/dist/cli/chunks/{detect-5QTCRB32.js → detect-IGTWSQMA.js} +2 -2
  202. package/dist/cli/chunks/{dist-node-XKZPHDBO.js → dist-node-TCOTJVQX.js} +2 -2
  203. package/dist/cli/chunks/{domain-handler-V3UEADKW.js → domain-handler-55ZVYODR.js} +2 -2
  204. package/dist/cli/chunks/{domain-plugins-7PES4UHZ.js → domain-plugins-GJRWOHQP.js} +2 -2
  205. package/dist/cli/chunks/{domain-transfer-NF7UJW7B.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-D2HWORHF.js → embed-and-insert-pattern-XAMNIKQL.js} +2 -2
  208. package/dist/cli/chunks/{eval-UF2UBAUC.js → eval-GO22R4OZ.js} +2 -2
  209. package/dist/cli/chunks/{experience-capture-middleware-2OUCEHHM.js → experience-capture-middleware-F2BRMJ3Y.js} +3 -3
  210. package/dist/cli/chunks/{fast-paths-KV5DKKHC.js → fast-paths-6RGPYALD.js} +2 -2
  211. package/dist/cli/chunks/{feature-flags-6YWMTNO5.js → feature-flags-MIWQIOHU.js} +2 -2
  212. package/dist/cli/chunks/{feature-flags-MTW6NMR3.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-52V6ANOY.js → gnn-wrapper-ALBJVW6T.js} +2 -2
  216. package/dist/cli/chunks/{heartbeat-handler-X7NHNRC7.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-DZBE3KMK.js → hnsw-legacy-bridge-RYUJPA7B.js} +2 -2
  221. package/dist/cli/chunks/{hnswlib-node-2AWWUJAZ.js → hnswlib-node-XM6XF3YV.js} +2 -2
  222. package/dist/cli/chunks/{hooks-XLPVROL3.js → hooks-X62O7TJO.js} +10 -10
  223. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +2 -0
  224. package/dist/cli/chunks/{hypergraph-engine-6TI7YP6P.js → hypergraph-engine-ZBWUPTVD.js} +2 -2
  225. package/dist/cli/chunks/{hypergraph-handler-DBIBBOXS.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-OSO6MIDD.js → init-guard-S4I2R46S.js} +2 -2
  228. package/dist/cli/chunks/{init-handler-7S7IHMUF.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-2KBRFXMA.js → kilocode-installer-GNNB5FCZ.js} +2 -2
  232. package/dist/cli/chunks/{kiro-installer-5VFR4OQZ.js → kiro-installer-HR6ZAH7T.js} +2 -2
  233. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +2 -0
  234. package/dist/cli/chunks/{learning-G5NHL3DV.js → learning-4IEEOHJS.js} +3 -3
  235. package/dist/cli/chunks/{llm-router-4EAPPMHS.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-UYMZPEY6.js → load-ZM43WGDO.js} +2 -2
  238. package/dist/cli/chunks/load-test-POMIF4Q4.js +2 -0
  239. package/dist/cli/chunks/{mcp-NOTDZBW5.js → mcp-CRZKZE37.js} +2 -2
  240. package/dist/cli/chunks/{memory-QL53YIHP.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-PDDDXF2B.js → multi-model-executor-SXXGAQ2G.js} +2 -2
  244. package/dist/cli/chunks/{opencode-installer-75D2SKOT.js → opencode-installer-PIRBUAB5.js} +2 -2
  245. package/dist/cli/chunks/{orchestrator-3WIZBV4T.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-TEX2JGHA.js → pattern-usage-recorder-XZTWDI2T.js} +2 -2
  248. package/dist/cli/chunks/{pipeline-7ATPA6LU.js → pipeline-5LMLBIJ7.js} +2 -2
  249. package/dist/cli/chunks/{platform-WPSKRJE7.js → platform-KJDABL5C.js} +2 -2
  250. package/dist/cli/chunks/{plugin-UUFOVVMU.js → plugin-V4KSBVVM.js} +2 -2
  251. package/dist/cli/chunks/{prime-radiant-advanced-wasm-PDFSYWKZ.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-3VRYRIQB.js → protocol-handler-BNRONTQV.js} +2 -2
  255. package/dist/cli/chunks/{prove-2NAUROGF.js → prove-ELLL6XMX.js} +2 -2
  256. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +2 -0
  257. package/dist/cli/chunks/{quality-ZIEI2WGA.js → quality-NH2QA4D4.js} +2 -2
  258. package/dist/cli/chunks/{quality-gate-KWJO4SWQ.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-TSZ4UIAE.js → real-embeddings-J3KCKLPB.js} +2 -2
  261. package/dist/cli/chunks/{ref-validation-DWFFRETJ.js → ref-validation-HNXQRP4F.js} +2 -2
  262. package/dist/cli/chunks/{roocode-installer-XTZHLUBO.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-GG525TDM.js → routing-handler-WM33ZILE.js} +2 -2
  266. package/dist/cli/chunks/{ruvector-commands-QKRJDM7Z.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-FF52OS6Q.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-M6DXTAZ4.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-EHXSW22U.js → security-AUDTRX3I.js} +3 -3
  276. package/dist/cli/chunks/{shared-rvf-adapter-6EH7UVJL.js → shared-rvf-adapter-PVDGBGI2.js} +2 -2
  277. package/dist/cli/chunks/{shared-rvf-dual-writer-WML274E7.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-C7QKAXS4.js → standalone-memory-XNOAI4G4.js} +2 -2
  280. package/dist/cli/chunks/{status-handler-VLI7MRLM.js → status-handler-K72XZE4T.js} +2 -2
  281. package/dist/cli/chunks/{structural-health-3LPG6MQN.js → structural-health-NF3YY7U5.js} +2 -2
  282. package/dist/cli/chunks/{sync-4IMMQEPT.js → sync-UVXA6CT2.js} +2 -2
  283. package/dist/cli/chunks/{sync-JFJEJBVK.js → sync-VBD5Y3E2.js} +2 -2
  284. package/dist/cli/chunks/{task-handler-IED3K6E4.js → task-handler-24S3WFVJ.js} +13 -7
  285. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +9 -0
  286. package/dist/cli/chunks/{test-GPKT3CKZ.js → test-XFSGQELD.js} +4 -4
  287. package/dist/cli/chunks/{test-scheduling-Z42XXZP6.js → test-scheduling-VYUQ4CDE.js} +3 -3
  288. package/dist/cli/chunks/{token-bootstrap-HMM3AHXM.js → token-bootstrap-EDK6FNQ3.js} +2 -2
  289. package/dist/cli/chunks/{token-usage-6Y2ERYIY.js → token-usage-VLQ6WO2L.js} +2 -2
  290. package/dist/cli/chunks/{transformers-MB63T2XO.js → transformers-TOFMWWNM.js} +2 -2
  291. package/dist/cli/chunks/{tree-sitter-wasm-parser-56GDQCMR.js → tree-sitter-wasm-parser-MI3NZKUD.js} +2 -2
  292. package/dist/cli/chunks/{types-J4J6QV3I.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-U4XU7LFM.js → upgrade-4ABM72T4.js} +2 -2
  297. package/dist/cli/chunks/{validate-B57HA4YK.js → validate-UDJCWKXI.js} +2 -2
  298. package/dist/cli/chunks/{validate-swarm-UPPA4M6T.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-GDZMUKOZ.js → web-tree-sitter-WBMAJPM5.js} +2 -2
  301. package/dist/cli/chunks/{windsurf-installer-VJRWCHXP.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-LFASSMZK.js → witness-chain-TATPXQRK.js} +2 -2
  304. package/dist/cli/chunks/{witness-chain-repair-TPHN4DXN.js → witness-chain-repair-2HGJGE7O.js} +2 -2
  305. package/dist/cli/chunks/{witness-chain-verifier-Z23FVABW.js → witness-chain-verifier-FRY3LMGH.js} +2 -2
  306. package/dist/cli/chunks/{witness-key-manager-745MJ7WO.js → witness-key-manager-X7QHQQWL.js} +2 -2
  307. package/dist/cli/chunks/{workflow-T245QNQM.js → workflow-QMZPAWQW.js} +4 -4
  308. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +2 -0
  309. package/dist/cli/chunks/{wrappers-WCAYIQUX.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 +128 -50
  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/defect-intelligence/services/defect-predictor.js +4 -2
  362. package/dist/domains/learning-optimization/active-patterns.d.ts +12 -12
  363. package/dist/domains/learning-optimization/active-patterns.js +15 -12
  364. package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
  365. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  366. package/dist/domains/learning-optimization/coordinator.js +43 -102
  367. package/dist/domains/learning-optimization/index.d.ts +1 -1
  368. package/dist/domains/learning-optimization/interfaces.d.ts +56 -4
  369. package/dist/domains/learning-optimization/plugin.js +11 -1
  370. package/dist/domains/learning-optimization/reward-source.d.ts +37 -0
  371. package/dist/domains/learning-optimization/reward-source.js +58 -0
  372. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +4 -4
  373. package/dist/domains/learning-optimization/services/learning-coordinator.js +59 -23
  374. package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
  375. package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
  376. package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
  377. package/dist/domains/test-execution/interfaces.d.ts +16 -0
  378. package/dist/domains/test-execution/services/runner-test-cases.d.ts +21 -0
  379. package/dist/domains/test-execution/services/runner-test-cases.js +69 -0
  380. package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
  381. package/dist/domains/test-execution/services/test-executor.js +24 -2
  382. package/dist/init/fleet-integration.js +2 -0
  383. package/dist/init/init-wizard-steps.js +2 -0
  384. package/dist/init/phases/06-code-intelligence.js +2 -0
  385. package/dist/init/phases/10-workers.js +2 -1
  386. package/dist/kernel/anti-drift-middleware.d.ts +44 -5
  387. package/dist/kernel/anti-drift-middleware.js +147 -11
  388. package/dist/kernel/interfaces.d.ts +5 -0
  389. package/dist/learning/dream/dream-insights-pruner.d.ts +18 -4
  390. package/dist/learning/dream/dream-insights-pruner.js +99 -11
  391. package/dist/learning/skill-validation-learner.d.ts +2 -0
  392. package/dist/learning/skill-validation-learner.js +29 -21
  393. package/dist/mcp/background-workers.js +8 -2
  394. package/dist/mcp/bundle.js +507 -483
  395. package/dist/mcp/handlers/domain-handler-configs.d.ts +14 -0
  396. package/dist/mcp/handlers/domain-handler-configs.js +68 -30
  397. package/dist/mcp/handlers/handler-factory.js +1 -0
  398. package/dist/mcp/handlers/task-handlers.js +37 -1
  399. package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
  400. package/dist/mcp/metrics/metrics-collector.js +13 -26
  401. package/dist/mcp/protocol-server.js +8 -3
  402. package/dist/mcp/tools/learning-optimization/optimize.d.ts +34 -3
  403. package/dist/mcp/tools/learning-optimization/optimize.js +106 -70
  404. package/dist/memory/crdt/lww-register.js +11 -1
  405. package/dist/routing/calibration/ema-calibrator.js +3 -1
  406. package/dist/shared/base-domain-plugin.d.ts +4 -0
  407. package/dist/shared/base-domain-plugin.js +6 -0
  408. package/dist/shared/llm/cache.js +4 -1
  409. package/dist/shared/security/compliance-patterns.js +3 -1
  410. package/dist/shared/test-runner-process.d.ts +26 -0
  411. package/dist/shared/test-runner-process.js +91 -0
  412. package/dist/shared/types/index.d.ts +9 -0
  413. package/dist/shared/types/index.js +13 -0
  414. package/dist/shared/utils/namespaced-search.d.ts +42 -0
  415. package/dist/shared/utils/namespaced-search.js +53 -0
  416. package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
  417. package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
  418. package/dist/workers/daemon.d.ts +2 -0
  419. package/dist/workers/daemon.js +10 -5
  420. package/dist/workers/namespaced-keys.d.ts +4 -7
  421. package/dist/workers/namespaced-keys.js +4 -15
  422. package/dist/workers/quality-daemon/ci-monitor.js +9 -5
  423. package/dist/workers/worker-env.d.ts +16 -8
  424. package/dist/workers/worker-env.js +25 -12
  425. package/dist/workers/worker-manager.js +4 -0
  426. package/dist/workers/workers/learning-consolidation.d.ts +1 -1
  427. package/dist/workers/workers/learning-consolidation.js +11 -8
  428. package/package.json +1 -1
  429. package/dist/cli/chunks/adapter-FC4EY447.js +0 -2
  430. package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +0 -2
  431. package/dist/cli/chunks/base-2XML4WH7.js +0 -2
  432. package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +0 -2
  433. package/dist/cli/chunks/chunk-6CKTLVYV.js +0 -2
  434. package/dist/cli/chunks/chunk-I4U7YCXG.js +0 -180
  435. package/dist/cli/chunks/chunk-LZWBUVCK.js +0 -5
  436. package/dist/cli/chunks/chunk-X6VYQVUM.js +0 -2
  437. package/dist/cli/chunks/chunk-YTYS2XSY.js +0 -2
  438. package/dist/cli/chunks/chunk-Z3LDUPLQ.js +0 -6
  439. package/dist/cli/chunks/chunk-ZWMFKZEQ.js +0 -3
  440. package/dist/cli/chunks/client-RFUSQRUZ.js +0 -2
  441. package/dist/cli/chunks/core-handlers-ZC7QB432.js +0 -2
  442. package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +0 -2
  443. package/dist/cli/chunks/daemon-JER6HE2J.js +0 -12
  444. package/dist/cli/chunks/dream-VALD726W.js +0 -2
  445. package/dist/cli/chunks/file-discovery-VL73ASNI.js +0 -2
  446. package/dist/cli/chunks/fleet-GJ66QFXK.js +0 -43
  447. package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +0 -2
  448. package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +0 -2
  449. package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +0 -2
  450. package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +0 -2
  451. package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +0 -2
  452. package/dist/cli/chunks/init-wizard-VH34J4TL.js +0 -2
  453. package/dist/cli/chunks/kernel-KJD24NO7.js +0 -2
  454. package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +0 -2
  455. package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +0 -2
  456. package/dist/cli/chunks/load-test-OTQ2JQ5F.js +0 -2
  457. package/dist/cli/chunks/memory-backend-4QSNRRV6.js +0 -2
  458. package/dist/cli/chunks/memory-handlers-YFFYRSM6.js +0 -2
  459. package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +0 -2
  460. package/dist/cli/chunks/project-root-SRTA6TBL.js +0 -2
  461. package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +0 -2
  462. package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +0 -2
  463. package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +0 -2
  464. package/dist/cli/chunks/router-AUD4GATI.js +0 -2
  465. package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +0 -2
  466. package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +0 -2
  467. package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +0 -2
  468. package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +0 -2
  469. package/dist/cli/chunks/safe-db-Q6JUKG2A.js +0 -2
  470. package/dist/cli/chunks/schedule-44OSMGE5.js +0 -2
  471. package/dist/cli/chunks/scheduler-V3HO2QQT.js +0 -2
  472. package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +0 -2
  473. package/dist/cli/chunks/task-handlers-FH6DNTHW.js +0 -9
  474. package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +0 -2
  475. package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +0 -2
  476. package/dist/cli/chunks/unified-persistence-72OCJJKK.js +0 -2
  477. package/dist/cli/chunks/visual-security-7F5UV23J.js +0 -2
  478. package/dist/cli/chunks/witness-chain-KZ57QUFE.js +0 -2
  479. package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.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
  }
@@ -35,6 +35,8 @@ export declare class QEDaemon implements IDaemon {
35
35
  private workerManager;
36
36
  private config;
37
37
  private _qualityDaemon?;
38
+ /** #1066: `AQE_DISABLED_WORKERS` ids that match no worker. */
39
+ private unknownDisabledIds;
38
40
  constructor(config?: DaemonConfig);
39
41
  get running(): boolean;
40
42
  get uptime(): number;
@@ -30,11 +30,14 @@ export class QEDaemon {
30
30
  workerManager;
31
31
  config;
32
32
  _qualityDaemon;
33
+ /** #1066: `AQE_DISABLED_WORKERS` ids that match no worker. */
34
+ unknownDisabledIds = [];
33
35
  constructor(config) {
34
36
  this.config = {
35
37
  ...DEFAULT_CONFIG,
36
38
  ...config,
37
- disabledWorkers: config?.disabledWorkers ?? parseDisabledWorkers(),
39
+ // #1066: ids are matched without regard to case.
40
+ disabledWorkers: (config?.disabledWorkers ?? parseDisabledWorkers()).map((id) => id.toLowerCase()),
38
41
  };
39
42
  this.workerManager = new WorkerManagerImpl();
40
43
  this.registerWorkers();
@@ -56,6 +59,11 @@ export class QEDaemon {
56
59
  return;
57
60
  }
58
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
+ }
59
67
  this._running = true;
60
68
  this._startedAt = new Date();
61
69
  // Start health check timer
@@ -174,10 +182,7 @@ export class QEDaemon {
174
182
  }
175
183
  }
176
184
  const knownIds = new Set(allWorkers.map((worker) => worker.config.id));
177
- const unknownIds = this.config.disabledWorkers.filter((id) => !knownIds.has(id));
178
- if (unknownIds.length > 0) {
179
- console.warn(`[AQE] WARN AQE_DISABLED_WORKERS: unknown worker id(s) ignored: ${unknownIds.join(', ')}`);
180
- }
185
+ this.unknownDisabledIds = this.config.disabledWorkers.filter((id) => !knownIds.has(id));
181
186
  }
182
187
  performHealthCheck() {
183
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
  }
@@ -9,10 +9,13 @@
9
9
  * value keeps the default behaviour (workers on). `aqe init` writes `true`
10
10
  * for normal installs and `false` for `--no-database` installs (#533).
11
11
  * - `AQE_DISABLED_WORKERS`: comma-separated worker ids that are not
12
- * registered (for example `learning-consolidation`).
12
+ * registered (for example `learning-consolidation`). Matched without
13
+ * regard to case (#1066).
13
14
  * - `AQE_DREAM_INSIGHTS_RETENTION_DAYS`: retention window for unapplied
14
- * `dream_insights` rows. Default 30. `0` or `off` disables the sweep.
15
- * Invalid values are rejected with a warning and fall back to the default.
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).
16
19
  */
17
20
  export type WorkerEnv = Readonly<Record<string, string | undefined>>;
18
21
  /** Default retention window for unapplied dream insights (days). */
@@ -23,8 +26,9 @@ export declare const DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS = 30;
23
26
  */
24
27
  export declare function isWorkersEnabled(env?: WorkerEnv): boolean;
25
28
  /**
26
- * Worker ids listed in `AQE_DISABLED_WORKERS`, trimmed, de-duplicated and
27
- * with empty entries removed.
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).
28
32
  */
29
33
  export declare function parseDisabledWorkers(env?: WorkerEnv): string[];
30
34
  export interface DreamInsightsRetention {
@@ -36,10 +40,14 @@ export interface DreamInsightsRetention {
36
40
  /**
37
41
  * Resolve `AQE_DREAM_INSIGHTS_RETENTION_DAYS`.
38
42
  *
39
- * - unset / empty: default (30 days)
40
- * - `0` or `off`: sweep disabled (`retentionDays: null`)
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`)
41
47
  * - a whole number from 1 to 36500: that many days
42
- * - anything else: default, with a warning describing the rejected value
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).
43
51
  */
44
52
  export declare function resolveDreamInsightsRetention(env?: WorkerEnv): DreamInsightsRetention;
45
53
  //# sourceMappingURL=worker-env.d.ts.map
@@ -9,12 +9,20 @@
9
9
  * value keeps the default behaviour (workers on). `aqe init` writes `true`
10
10
  * for normal installs and `false` for `--no-database` installs (#533).
11
11
  * - `AQE_DISABLED_WORKERS`: comma-separated worker ids that are not
12
- * registered (for example `learning-consolidation`).
12
+ * registered (for example `learning-consolidation`). Matched without
13
+ * regard to case (#1066).
13
14
  * - `AQE_DREAM_INSIGHTS_RETENTION_DAYS`: retention window for unapplied
14
- * `dream_insights` rows. Default 30. `0` or `off` disables the sweep.
15
- * Invalid values are rejected with a warning and fall back to the default.
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).
16
19
  */
17
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']);
18
26
  /** Default retention window for unapplied dream insights (days). */
19
27
  export const DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS = 30;
20
28
  /** Upper bound accepted for the retention window (100 years). */
@@ -30,8 +38,9 @@ export function isWorkersEnabled(env = process.env) {
30
38
  return !FALSY_VALUES.has(raw.trim().toLowerCase());
31
39
  }
32
40
  /**
33
- * Worker ids listed in `AQE_DISABLED_WORKERS`, trimmed, de-duplicated and
34
- * with empty entries removed.
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).
35
44
  */
36
45
  export function parseDisabledWorkers(env = process.env) {
37
46
  const raw = env.AQE_DISABLED_WORKERS;
@@ -39,17 +48,21 @@ export function parseDisabledWorkers(env = process.env) {
39
48
  return [];
40
49
  const ids = raw
41
50
  .split(',')
42
- .map((id) => id.trim())
51
+ .map((id) => id.trim().toLowerCase())
43
52
  .filter((id) => id.length > 0);
44
53
  return Array.from(new Set(ids));
45
54
  }
46
55
  /**
47
56
  * Resolve `AQE_DREAM_INSIGHTS_RETENTION_DAYS`.
48
57
  *
49
- * - unset / empty: default (30 days)
50
- * - `0` or `off`: sweep disabled (`retentionDays: null`)
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`)
51
62
  * - a whole number from 1 to 36500: that many days
52
- * - anything else: default, with a warning describing the rejected value
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).
53
66
  */
54
67
  export function resolveDreamInsightsRetention(env = process.env) {
55
68
  const raw = env.AQE_DREAM_INSIGHTS_RETENTION_DAYS;
@@ -57,7 +70,7 @@ export function resolveDreamInsightsRetention(env = process.env) {
57
70
  return { retentionDays: DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS };
58
71
  }
59
72
  const value = raw.trim().toLowerCase();
60
- if (value === 'off' || value === '0') {
73
+ if (RETENTION_OFF_VALUES.has(value)) {
61
74
  return { retentionDays: null };
62
75
  }
63
76
  if (/^\d+$/.test(value)) {
@@ -67,10 +80,10 @@ export function resolveDreamInsightsRetention(env = process.env) {
67
80
  }
68
81
  }
69
82
  return {
70
- retentionDays: DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS,
83
+ retentionDays: null,
71
84
  warning: `Invalid AQE_DREAM_INSIGHTS_RETENTION_DAYS=${JSON.stringify(raw)}; ` +
72
85
  `expected a whole number of days (1-${MAX_DREAM_INSIGHTS_RETENTION_DAYS}), ` +
73
- `0 or "off". Using the default of ${DEFAULT_DREAM_INSIGHTS_RETENTION_DAYS} days.`,
86
+ `0 or "off". The dream_insights retention sweep is off until this is fixed; nothing is deleted.`,
74
87
  };
75
88
  }
76
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
  }
@@ -40,7 +40,7 @@ export declare class LearningConsolidationWorker extends BaseWorker {
40
40
  /**
41
41
  * #488 C.2 / #1061: run the dream_insights retention sweep when it is
42
42
  * enabled and the first tick after startup has passed. Returns the number
43
- * of rows deleted.
43
+ * of rows moved to the archive table.
44
44
  */
45
45
  private pruneDreamInsights;
46
46
  /**
@@ -21,7 +21,7 @@ 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
25
  import { resolveDreamInsightsRetention } from '../worker-env.js';
26
26
  import { createLearningMetricsTracker } from '../../learning/metrics-tracker.js';
27
27
  const CONFIG = {
@@ -237,7 +237,7 @@ export class LearningConsolidationWorker extends BaseWorker {
237
237
  /**
238
238
  * #488 C.2 / #1061: run the dream_insights retention sweep when it is
239
239
  * enabled and the first tick after startup has passed. Returns the number
240
- * of rows deleted.
240
+ * of rows moved to the archive table.
241
241
  */
242
242
  pruneDreamInsights(findings) {
243
243
  const retention = resolveDreamInsightsRetention();
@@ -251,20 +251,23 @@ export class LearningConsolidationWorker extends BaseWorker {
251
251
  if (Date.now() < this.dreamInsightsPruneNotBefore)
252
252
  return 0;
253
253
  const db = getUnifiedMemory().getDatabase();
254
- const { pruned } = pruneStaleDreamInsights(db, { retentionDays });
254
+ // #1066: rows are copied to dream_insights_archive and verified first.
255
+ const { pruned, archived } = pruneStaleDreamInsights(db, { retentionDays });
255
256
  if (pruned > 0) {
256
257
  // Default log level, stderr only: MCP stdout carries JSON-RPC.
257
- process.stderr.write(`[AQE] dream_insights retention: deleted ${pruned} unapplied insight(s) ` +
258
- `older than ${retentionDays} days ` +
259
- `(set AQE_DREAM_INSIGHTS_RETENTION_DAYS=off to keep them)\n`);
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`);
260
261
  findings.push({
261
262
  type: 'dream-insights-pruned',
262
263
  severity: 'info',
263
264
  domain: 'learning-optimization',
264
- title: 'Stale Dream Insights Pruned',
265
- description: `${pruned} unapplied dream insights older than ${retentionDays} days deleted`,
265
+ title: 'Stale Dream Insights Archived',
266
+ description: `${pruned} unapplied dream insights older than ${retentionDays} days ` +
267
+ `moved to ${DREAM_INSIGHTS_ARCHIVE_TABLE}`,
266
268
  context: {
267
269
  pruned,
270
+ archived,
268
271
  retentionDays,
269
272
  },
270
273
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.15.8",
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.8");process.exit(0)}
2
- import{a,b,c}from"./chunk-V7VZSNDK.js";import"./chunk-VWSGWYRB.js";import"./chunk-MUDBF2JC.js";import"./chunk-FWXNFPLS.js";import"./chunk-J7FLNP5L.js";import"./chunk-K5R3WUJP.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.8");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-EUVSSIGR.js";import"./chunk-LVHZK7GW.js";import"./chunk-P4UT4LBE.js";import"./chunk-FEN2DHFM.js";import"./chunk-QFYUZYRA.js";import"./chunk-22DOS3PM.js";import"./chunk-62T7U25U.js";import"./chunk-YUP3APSN.js";import"./chunk-5YOO5QSE.js";import"./chunk-MV4S3TEC.js";import"./chunk-J6LL25QJ.js";import"./chunk-4GUVVGJX.js";import"./chunk-O4RRVTXN.js";import"./chunk-7C6FMLQR.js";import"./chunk-GSOK4M6V.js";import"./chunk-HXCGV5UJ.js";import"./chunk-7XGM7Q2N.js";import"./chunk-UDCYQLTD.js";import"./chunk-FWXNFPLS.js";import"./chunk-7SLEUVPZ.js";import"./chunk-D4O3TJI7.js";import"./chunk-R2NHGESM.js";import"./chunk-RG42LDOB.js";import"./chunk-DN3AKAPY.js";import"./chunk-D4IBIMWI.js";import"./chunk-DKFSCJEF.js";import"./chunk-BEVWCF3Q.js";import"./chunk-A2UGPKCS.js";import"./chunk-PICEGWGB.js";import"./chunk-YTYS2XSY.js";import"./chunk-IJSFZO7P.js";import"./chunk-X6VYQVUM.js";import"./chunk-7H3GNRNA.js";import"./chunk-NHOMVBCI.js";import"./chunk-J7FLNP5L.js";import"./chunk-KVMKYUOE.js";import"./chunk-NF63NHJH.js";import"./chunk-SHEVM5PF.js";import"./chunk-CQ5G64EA.js";import"./chunk-2QRGIEQV.js";import"./chunk-CQ3SBRDP.js";import"./chunk-LPSMVBB3.js";import"./chunk-ZBI7PJFX.js";import"./chunk-K5R3WUJP.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.8");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-TC52M542.js";import"./chunk-KMVFBYJO.js";import"./chunk-767SR7WH.js";import"./chunk-7XGM7Q2N.js";import"./chunk-UDCYQLTD.js";import"./chunk-FWXNFPLS.js";import"./chunk-7SLEUVPZ.js";import"./chunk-D4O3TJI7.js";import"./chunk-R2NHGESM.js";import"./chunk-RG42LDOB.js";import"./chunk-DN3AKAPY.js";import"./chunk-D4IBIMWI.js";import"./chunk-DKFSCJEF.js";import"./chunk-A2UGPKCS.js";import"./chunk-PICEGWGB.js";import"./chunk-IJSFZO7P.js";import"./chunk-X6VYQVUM.js";import"./chunk-7H3GNRNA.js";import"./chunk-NHOMVBCI.js";import"./chunk-J7FLNP5L.js";import"./chunk-KVMKYUOE.js";import"./chunk-SHEVM5PF.js";import"./chunk-CQ5G64EA.js";import"./chunk-LPSMVBB3.js";import"./chunk-ZBI7PJFX.js";import"./chunk-K5R3WUJP.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.8");process.exit(0)}
2
- import{a}from"./chunk-OWBFVAEH.js";import"./chunk-TC52M542.js";import"./chunk-KMVFBYJO.js";import"./chunk-767SR7WH.js";import"./chunk-7XGM7Q2N.js";import"./chunk-UDCYQLTD.js";import"./chunk-FWXNFPLS.js";import"./chunk-7SLEUVPZ.js";import"./chunk-D4O3TJI7.js";import"./chunk-R2NHGESM.js";import"./chunk-RG42LDOB.js";import"./chunk-DN3AKAPY.js";import"./chunk-D4IBIMWI.js";import"./chunk-DKFSCJEF.js";import"./chunk-A2UGPKCS.js";import"./chunk-PICEGWGB.js";import"./chunk-IJSFZO7P.js";import"./chunk-X6VYQVUM.js";import"./chunk-7H3GNRNA.js";import"./chunk-NHOMVBCI.js";import"./chunk-J7FLNP5L.js";import"./chunk-KVMKYUOE.js";import"./chunk-SHEVM5PF.js";import"./chunk-CQ5G64EA.js";import"./chunk-LPSMVBB3.js";import"./chunk-ZBI7PJFX.js";import"./chunk-K5R3WUJP.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.8");process.exit(0)}
2
- import{b as p,d as C}from"./chunk-FWXNFPLS.js";import{a as b}from"./chunk-X6VYQVUM.js";import{e as k}from"./chunk-7H3GNRNA.js";C();b();var m=k.create("skill-validation-learner"),v=class{constructor(e){this.reasoningBank=e}reasoningBank;memoryNamespace="skill-validation";feedbackLoop=null;connectFeedbackLoop(e){this.feedbackLoop=e}async recordValidationOutcome(e){await this.reasoningBank.storeQEPattern({patternType:"test-template",name:`${e.skillName}-validation-${e.validationLevel}`,description:`Validation outcome for ${e.skillName} at level ${e.validationLevel}`,context:{tags:["skill-validation",e.skillName,e.model,e.validationLevel],testType:"integration"},template:{type:"config",content:JSON.stringify({outcome:{skillName:e.skillName,trustTier:e.trustTier,validationLevel:e.validationLevel,model:e.model,passed:e.passed,score:e.score,testCaseCount:e.testCaseResults.length,passedTests:e.testCaseResults.filter(s=>s.passed).length,avgReasoningQuality:this.calculateAvgReasoningQuality(e.testCaseResults),timestamp:e.timestamp.toISOString(),runId:e.runId,metadata:e.metadata}}),variables:[]}}),await this.updateSkillConfidence(e),e.validationLevel==="eval"&&await this.trackCrossModelBehavior(e),this.feedbackLoop&&e.runId&&await this.recordToFeedbackLoop(e)}async updateSkillConfidence(e){let s=`skill-confidence-${e.skillName}`,n=await this.reasoningBank.searchQEPatterns(s,{limit:1}),t;if(n.success&&n.value.length>0)try{let r=n.value[0].pattern.template?.content;if(r){let i=p(r);i&&typeof i=="object"&&Array.isArray(i.outcomes)?t=i:t=this.createEmptyConfidence(e.skillName)}else t=this.createEmptyConfidence(e.skillName)}catch(a){m.debug("Confidence history parse failed",{skill:e.skillName,error:a instanceof Error?a.message:String(a)}),t=this.createEmptyConfidence(e.skillName)}else t=this.createEmptyConfidence(e.skillName);t.outcomes.push({score:e.score,timestamp:e.timestamp,model:e.model,validationLevel:e.validationLevel,passed:e.passed}),t.outcomes.length>100&&(t.outcomes=t.outcomes.slice(-100)),t.avgScore=t.outcomes.reduce((a,r)=>a+r.score,0)/t.outcomes.length,t.lastUpdated=new Date,t.trend=this.calculateTrend(t.outcomes),t.byLevel=this.calculateConfidenceByLevel(t.outcomes),await this.reasoningBank.storeQEPattern({patternType:"test-template",name:s,description:`Skill confidence tracking for ${e.skillName}`,context:{tags:["skill-confidence",e.skillName]},template:{type:"config",content:JSON.stringify(t),variables:[]}})}async trackCrossModelBehavior(e){let s=`cross-model-${e.skillName}`,n=await this.reasoningBank.searchQEPatterns(s,{limit:1}),t;if(n.success&&n.value.length>0)try{let c=n.value[0].pattern.template?.content;if(c){let l=p(c);l&&typeof l=="object"&&typeof l.models=="object"?t=l:t=this.createEmptyCrossModelAnalysis()}else t=this.createEmptyCrossModelAnalysis()}catch(o){m.debug("Cross-model analysis parse failed",{error:o instanceof Error?o.message:String(o)}),t=this.createEmptyCrossModelAnalysis()}else t=this.createEmptyCrossModelAnalysis();t.models||(t.models={}),t.models[e.model]||(t.models[e.model]={scores:[],passRate:0,avgReasoningQuality:0,sampleCount:0});let a=t.models[e.model];a.scores.push(e.score),a.sampleCount++,a.scores.length>50&&(a.scores=a.scores.slice(-50));let r=this.calculateAvgReasoningQuality(e.testCaseResults);a.passRate=a.scores.filter(o=>o>=.9).length/a.scores.length,a.avgReasoningQuality=(a.avgReasoningQuality*(a.sampleCount-1)+r)/a.sampleCount;let i=Object.values(t.models).map(o=>o.passRate);if(i.length>1){let o=i.reduce((l,d)=>l+d,0)/i.length,c=i.reduce((l,d)=>l+Math.pow(d-o,2),0)/i.length;t.variance=c,t.hasAnomalies=c>.04,t.anomalies=[];for(let[l,d]of Object.entries(t.models))Math.abs(d.passRate-o)>.2&&t.anomalies.push({model:l,type:d.passRate<o?"low_performance":"high_variance",description:`Model ${l} has ${((d.passRate-o)*100).toFixed(1)}% difference from average`})}t.lastUpdated=new Date,await this.reasoningBank.storeQEPattern({patternType:"test-template",name:s,description:`Cross-model behavior tracking for ${e.skillName}`,context:{tags:["cross-model",e.skillName]},template:{type:"config",content:JSON.stringify(t),variables:[]}})}async recordToFeedbackLoop(e){if(!this.feedbackLoop)return;let s={taskId:e.runId,taskDescription:`Skill validation: ${e.skillName} (${e.validationLevel})`,recommendedAgent:"skill-validator",usedAgent:"skill-validator",followedRecommendation:!0,success:e.passed,qualityScore:e.score,durationMs:e.metadata?.duration||0,timestamp:e.timestamp};await this.feedbackLoop.recordRoutingOutcome(s)}async getSkillConfidence(e){let s=`skill-confidence-${e}`,n=await this.reasoningBank.searchQEPatterns(s,{limit:1});if(n.success&&n.value.length>0)try{let t=n.value[0].pattern.template?.content;if(t)return p(t)}catch(t){m.debug("Skill confidence pattern content invalid",{skill:e,error:t instanceof Error?t.message:String(t)})}return null}async getCrossModelAnalysis(e){let s=`cross-model-${e}`,n=await this.reasoningBank.searchQEPatterns(s,{limit:1});if(n.success&&n.value.length>0)try{let t=n.value[0].pattern.template?.content;if(t)return p(t)}catch(t){m.debug("Cross-model pattern content invalid",{skill:e,error:t instanceof Error?t.message:String(t)})}return null}async queryValidationPatterns(e,s=10){let n=await this.reasoningBank.searchQEPatterns(`${e} validation`,{limit:s});return n.success?n.value.filter(t=>t.pattern.context?.tags?.includes("skill-validation")).map(t=>t.pattern):[]}async getValidationTrends(e){let s=await this.getSkillConfidence(e),n=await this.getCrossModelAnalysis(e);if(!s)return null;let t={};if(n)for(let i of Object.keys(n.models)){let o=s.outcomes.filter(c=>c.model===i).map(c=>({score:c.score}));t[i]=this.calculateTrend(o)}let a=s.outcomes.slice(-20),r=a.filter(i=>i.passed).length/a.length;return{overall:s.trend||"stable",byModel:t,recentPassRate:r}}async extractLearnedPatterns(e){let s=await this.queryValidationPatterns(e,50),n=[],t=new Map;for(let a of s)try{let i=p(a.template?.content||"{}").outcome?.metadata?.category||"general";t.has(i)||t.set(i,[]),t.get(i).push(a)}catch(r){m.debug("Invalid pattern during category grouping",{error:r instanceof Error?r.message:String(r)})}for(let[a,r]of Array.from(t.entries())){let i=new Set,o=new Set,c=new Set,l=0;for(let d of r)try{let f=p(d.template?.content||"{}").outcome;if(!f)continue;c.add(f.model),l+=f.score;let h=d.context?.tags||[];f.passed?h.filter(g=>!["skill-validation",e].includes(g)).forEach(g=>i.add(g)):h.filter(g=>!["skill-validation",e].includes(g)).forEach(g=>o.add(g))}catch(u){m.debug("Invalid pattern during category extraction",{error:u instanceof Error?u.message:String(u)})}r.length>0&&n.push({id:`${e}-${a}`,skillName:e,category:a,successIndicators:Array.from(i),failureIndicators:Array.from(o),models:Array.from(c),confidence:l/r.length,observationCount:r.length})}return n}createEmptyConfidence(e){return{skillName:e,avgScore:0,outcomes:[],lastUpdated:new Date}}createEmptyCrossModelAnalysis(){return{models:{},variance:0,hasAnomalies:!1,lastUpdated:new Date}}calculateAvgReasoningQuality(e){return e.length===0?0:e.reduce((s,n)=>s+n.reasoningQuality,0)/e.length}calculateTrend(e){if(e.length<5)return"stable";let s=e.slice(-10),n=e.slice(-20,-10);if(n.length===0)return"stable";let t=s.reduce((i,o)=>i+o.score,0)/s.length,a=n.reduce((i,o)=>i+o.score,0)/n.length,r=t-a;return r>.05?"improving":r<-.05?"declining":"stable"}calculateConfidenceByLevel(e){let s={schema:[],validator:[],eval:[]};for(let t of e)t.validationLevel&&s[t.validationLevel].push(t.score);let n={};for(let[t,a]of Object.entries(s))a.length>0&&(n[t]=a.reduce((r,i)=>r+i,0)/a.length);return n}};function L(y){return new v(y)}export{L as a};