agentic-qe 3.9.31 → 3.9.33

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 (324) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +143 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-PSHWPJGO.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-AQXZYWZY.js → agent-booster-wasm-DUOP4SS6.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-7N4ZPXCY.js → agent-handler-6AHMQ5OK.js} +2 -2
  8. package/dist/cli/chunks/{agent-memory-branch-FLKF2JVX.js → agent-memory-branch-77WTL4KU.js} +2 -2
  9. package/dist/cli/chunks/aqe-learning-engine-2WOSQ42V.js +2 -0
  10. package/dist/cli/chunks/{audit-B4V4IKTA.js → audit-ZRSUAGID.js} +2 -2
  11. package/dist/cli/chunks/base-QZ6CGEZG.js +2 -0
  12. package/dist/cli/chunks/{hnswlib-node-WENGW3YX.js → better-sqlite3-QOENX3WX.js} +2 -2
  13. package/dist/cli/chunks/{brain-handler-OOXJ2KYY.js → brain-handler-EPNKL22C.js} +3 -3
  14. package/dist/cli/chunks/{branch-enumerator-LFKFW3A4.js → branch-enumerator-VVPWHTZ4.js} +2 -2
  15. package/dist/cli/chunks/{browser-F72IES2I.js → browser-NNQ6UHFJ.js} +2 -2
  16. package/dist/cli/chunks/browser-workflow-T74U33BJ.js +2 -0
  17. package/dist/cli/chunks/{chunk-PSF6YQQM.js → chunk-23VQRQCC.js} +3 -3
  18. package/dist/cli/chunks/{chunk-HHEIQHLQ.js → chunk-24M7JF3G.js} +2 -2
  19. package/dist/cli/chunks/{chunk-5WWQLPB4.js → chunk-2NRCDJBB.js} +2 -2
  20. package/dist/cli/chunks/{chunk-GJSH4UZ3.js → chunk-3B5ZAFB2.js} +3 -3
  21. package/dist/cli/chunks/{heartbeat-scheduler-OH3SS7MH.js → chunk-3J4TTZP7.js} +2 -2
  22. package/dist/cli/chunks/{chunk-7MXQV7RB.js → chunk-46LV5MI3.js} +2 -2
  23. package/dist/cli/chunks/{chunk-35SFAIXE.js → chunk-473YM6LV.js} +2 -2
  24. package/dist/cli/chunks/{chunk-QEJBJST4.js → chunk-4HJAUI2N.js} +1 -1
  25. package/dist/cli/chunks/{chunk-YMN4C32S.js → chunk-4MRVNLCT.js} +3 -3
  26. package/dist/cli/chunks/{chunk-JKKV5KKS.js → chunk-54B5QL4A.js} +2 -2
  27. package/dist/cli/chunks/{chunk-CYUGE5ZQ.js → chunk-5RILQ3EG.js} +1 -1
  28. package/dist/cli/chunks/{chunk-TJGIIGKL.js → chunk-63SAZCUH.js} +2 -2
  29. package/dist/cli/chunks/{chunk-XGBIXRKD.js → chunk-6DBS53L7.js} +2 -2
  30. package/dist/cli/chunks/{chunk-XMMWYQJK.js → chunk-6S5H34AN.js} +2 -2
  31. package/dist/cli/chunks/{chunk-52D3CYE5.js → chunk-6TC6UCDL.js} +2 -2
  32. package/dist/cli/chunks/{chunk-DMF4Z2M6.js → chunk-7HRE2VTG.js} +2 -2
  33. package/dist/cli/chunks/{chunk-AKJWBJDK.js → chunk-7ZMRQKO2.js} +2 -2
  34. package/dist/cli/chunks/{chunk-OXOXNAEZ.js → chunk-AE7P7VDM.js} +2 -2
  35. package/dist/cli/chunks/{chunk-7OVVBBOZ.js → chunk-AGMHJ3GS.js} +2 -2
  36. package/dist/cli/chunks/{chunk-WB6TI6Q3.js → chunk-AL54ARD4.js} +2 -2
  37. package/dist/cli/chunks/{chunk-5M4F3PAL.js → chunk-AVQS5H7Y.js} +1 -1
  38. package/dist/cli/chunks/{chunk-SL4TAJOE.js → chunk-B4N7XODV.js} +2 -2
  39. package/dist/cli/chunks/{chunk-NBKM7NKX.js → chunk-BD6BS2AL.js} +2 -2
  40. package/dist/cli/chunks/{chunk-ROEIR3OD.js → chunk-BIXDUMZ4.js} +1 -1
  41. package/dist/cli/chunks/{chunk-5AMAJCZS.js → chunk-BLNISJ3M.js} +3 -3
  42. package/dist/cli/chunks/{chunk-462MZLJB.js → chunk-BOHAND5J.js} +1 -1
  43. package/dist/cli/chunks/{chunk-G3YKCZWQ.js → chunk-C2XCETKV.js} +3 -3
  44. package/dist/cli/chunks/{chunk-A424Z7LA.js → chunk-C5UGKQUG.js} +1 -1
  45. package/dist/cli/chunks/{chunk-VUL5HIKR.js → chunk-CAZQL4G2.js} +2 -2
  46. package/dist/cli/chunks/{chunk-K37CNLQZ.js → chunk-CCSISDAP.js} +1 -1
  47. package/dist/cli/chunks/{chunk-PYYNY7RJ.js → chunk-CG2IM6IA.js} +1 -1
  48. package/dist/cli/chunks/{chunk-CUSLB7MB.js → chunk-DEXOYNIQ.js} +2 -2
  49. package/dist/cli/chunks/{chunk-YEZJE2ZW.js → chunk-DLUEORKO.js} +4 -4
  50. package/dist/cli/chunks/{chunk-RTGNWRQI.js → chunk-EVDEFUJG.js} +2 -2
  51. package/dist/cli/chunks/{chunk-MAJ5QFVY.js → chunk-EYCV6IYA.js} +1 -1
  52. package/dist/cli/chunks/{chunk-X2FLWV5C.js → chunk-F6WQ3ES6.js} +2 -2
  53. package/dist/cli/chunks/{chunk-JJRZOLDY.js → chunk-FEJCPLXV.js} +2 -2
  54. package/dist/cli/chunks/{chunk-VSKABN3B.js → chunk-FHSCCEHZ.js} +2 -2
  55. package/dist/cli/chunks/{chunk-7RPEBKQZ.js → chunk-FQQJUIN7.js} +2 -2
  56. package/dist/cli/chunks/chunk-FRS4DYHG.js +2 -0
  57. package/dist/cli/chunks/{chunk-M6RVKGIP.js → chunk-GBMKXJKW.js} +2 -2
  58. package/dist/cli/chunks/{chunk-ONMJJ2C3.js → chunk-GJKTHVFE.js} +1 -1
  59. package/dist/cli/chunks/{chunk-JRIDPOEZ.js → chunk-GLA2TD4M.js} +4 -4
  60. package/dist/cli/chunks/{chunk-QITO7E7Y.js → chunk-GU5DISHT.js} +1 -1
  61. package/dist/cli/chunks/chunk-GVO53VR5.js +2 -0
  62. package/dist/cli/chunks/{chunk-AQN6PDHI.js → chunk-GY2G2YYH.js} +1 -1
  63. package/dist/cli/chunks/{chunk-IRRGUXAU.js → chunk-H5AQHFIA.js} +1 -1
  64. package/dist/cli/chunks/{chunk-G2U7Q6V6.js → chunk-HCAWQ7ZD.js} +2 -2
  65. package/dist/cli/chunks/{chunk-XTWYCMAM.js → chunk-HJETZJJO.js} +2 -2
  66. package/dist/cli/chunks/{chunk-T4DDCMKG.js → chunk-HRE4TFMN.js} +140 -140
  67. package/dist/cli/chunks/{chunk-EKYPQ5DX.js → chunk-HVC3F4IM.js} +1 -1
  68. package/dist/cli/chunks/{chunk-UIRTXM7C.js → chunk-IQ5OS342.js} +61 -121
  69. package/dist/cli/chunks/{chunk-TYUIQSSF.js → chunk-IWBJ7KB7.js} +2 -2
  70. package/dist/cli/chunks/{chunk-PUSZ4NBY.js → chunk-IXWIABRJ.js} +2 -2
  71. package/dist/cli/chunks/{chunk-UNXUSYRL.js → chunk-IYDZ4NWA.js} +2 -2
  72. package/dist/cli/chunks/chunk-JEGTTVTL.js +2 -0
  73. package/dist/cli/chunks/{chunk-L7DNPOAQ.js → chunk-JF4SWEMU.js} +2 -2
  74. package/dist/cli/chunks/{chunk-GN7FUCJH.js → chunk-JGCTXHHZ.js} +1 -1
  75. package/dist/cli/chunks/{chunk-3VKB4HVT.js → chunk-JHFQJKTW.js} +2 -2
  76. package/dist/cli/chunks/{chunk-BMS7WFDB.js → chunk-JJY6K3OI.js} +1 -1
  77. package/dist/cli/chunks/{chunk-LF5RO6WO.js → chunk-JMSQW6KN.js} +1 -1
  78. package/dist/cli/chunks/{chunk-QGLWFZVQ.js → chunk-JPJURL4N.js} +2 -2
  79. package/dist/cli/chunks/{chunk-XNJ6DIEW.js → chunk-JTXZ3MMZ.js} +2 -2
  80. package/dist/cli/chunks/{chunk-L63KB63A.js → chunk-JYDWDNNZ.js} +2 -2
  81. package/dist/cli/chunks/{chunk-YQJBE6NX.js → chunk-K5YL3O22.js} +2 -2
  82. package/dist/cli/chunks/chunk-KD2B54EH.js +2 -0
  83. package/dist/cli/chunks/{chunk-DUF733Z7.js → chunk-KF3R6OCB.js} +1 -1
  84. package/dist/cli/chunks/{chunk-XY3WUGD3.js → chunk-KGA5XCHX.js} +2 -2
  85. package/dist/cli/chunks/{chunk-EJXRBAQF.js → chunk-KLTN2AVK.js} +2 -2
  86. package/dist/cli/chunks/{chunk-YLEMSN46.js → chunk-KQDWD34T.js} +1 -1
  87. package/dist/cli/chunks/{chunk-RDJWUKIR.js → chunk-L77OGJVK.js} +2 -2
  88. package/dist/cli/chunks/{chunk-62KYX5NH.js → chunk-LAPIIGZ2.js} +2 -2
  89. package/dist/cli/chunks/chunk-LERCHSFI.js +5 -0
  90. package/dist/cli/chunks/{chunk-VLAGWLHF.js → chunk-LFPYLTNN.js} +2 -2
  91. package/dist/cli/chunks/{chunk-LRWRFKQH.js → chunk-LICFVB4C.js} +1 -1
  92. package/dist/cli/chunks/{chunk-N6SIKSCO.js → chunk-LJBVPR3Z.js} +2 -2
  93. package/dist/cli/chunks/{chunk-GQFAVT2I.js → chunk-LKEQBIX2.js} +1 -1
  94. package/dist/cli/chunks/chunk-LVCQ4LSA.js +2 -0
  95. package/dist/cli/chunks/{chunk-XE4YKDIM.js → chunk-LXWXZPEB.js} +2 -2
  96. package/dist/cli/chunks/{chunk-5G2L4XRU.js → chunk-LYWA4OU6.js} +2 -2
  97. package/dist/cli/chunks/{chunk-REJEFTWX.js → chunk-MAP6IAOP.js} +1 -1
  98. package/dist/cli/chunks/{chunk-EAIPJSKH.js → chunk-MCONVCB6.js} +3 -3
  99. package/dist/cli/chunks/{chunk-TLCCM2AF.js → chunk-MFMPTRZW.js} +1 -1
  100. package/dist/cli/chunks/{chunk-MYCVU3D3.js → chunk-MI5TV5HT.js} +2 -2
  101. package/dist/cli/chunks/{chunk-CNKOIHF6.js → chunk-MULV6D5J.js} +2 -2
  102. package/dist/cli/chunks/{chunk-47QIAHUJ.js → chunk-MZ6GBVQY.js} +2 -2
  103. package/dist/cli/chunks/{chunk-ZG4EKPGV.js → chunk-N44DNZTM.js} +1 -1
  104. package/dist/cli/chunks/{chunk-FOAWHNOP.js → chunk-NCTSH4T6.js} +2 -2
  105. package/dist/cli/chunks/{chunk-NTVJKQ5S.js → chunk-ND33EKHX.js} +2 -2
  106. package/dist/cli/chunks/{chunk-BYHUGO73.js → chunk-NFFA2UKL.js} +3 -3
  107. package/dist/cli/chunks/{chunk-YN7HCVUP.js → chunk-NNFWNI6A.js} +2 -2
  108. package/dist/cli/chunks/{chunk-NNF3GCGF.js → chunk-OPC4ZVSN.js} +2 -2
  109. package/dist/cli/chunks/{chunk-KXRDQQGN.js → chunk-OXGZKXSI.js} +2 -2
  110. package/dist/cli/chunks/{chunk-NZQYNUGM.js → chunk-PIINM2PD.js} +2 -2
  111. package/dist/cli/chunks/{chunk-K6MFAVXK.js → chunk-Q5JL7NZG.js} +2 -2
  112. package/dist/cli/chunks/{chunk-I3TFGMOQ.js → chunk-QCFJQZXN.js} +1 -1
  113. package/dist/cli/chunks/{chunk-IY4P35N3.js → chunk-QSH4Y5E6.js} +2 -2
  114. package/dist/cli/chunks/{chunk-JMLOEW7Y.js → chunk-QYIGUM3F.js} +2 -2
  115. package/dist/cli/chunks/chunk-R3U7DSLA.js +62 -0
  116. package/dist/cli/chunks/{chunk-QMSDKKYG.js → chunk-RP2RRUKT.js} +1 -1
  117. package/dist/cli/chunks/{chunk-ZWSRIJ2T.js → chunk-SFNSMZGU.js} +2 -2
  118. package/dist/cli/chunks/{chunk-N6P7ENG7.js → chunk-SHAXRSWJ.js} +2 -2
  119. package/dist/cli/chunks/{chunk-UIIEZMSM.js → chunk-SR2EV7PQ.js} +1 -1
  120. package/dist/cli/chunks/{chunk-TVHWI77X.js → chunk-TGMZ7K72.js} +1 -1
  121. package/dist/cli/chunks/{chunk-7V7TP242.js → chunk-TH2BBFJ6.js} +1 -1
  122. package/dist/cli/chunks/{chunk-ENCFLC44.js → chunk-TIEXYJMS.js} +2 -2
  123. package/dist/cli/chunks/{chunk-VA45HLBF.js → chunk-TLVEBQCX.js} +2 -2
  124. package/dist/cli/chunks/chunk-TNQW3FUW.js +29 -0
  125. package/dist/cli/chunks/{chunk-NLUBN642.js → chunk-U5L7FALK.js} +2 -2
  126. package/dist/cli/chunks/{chunk-KJAIE7SL.js → chunk-UBOH75WQ.js} +4 -4
  127. package/dist/cli/chunks/{chunk-CFLA2GBS.js → chunk-UDJLIERV.js} +2 -2
  128. package/dist/cli/chunks/{chunk-VAIOZDG5.js → chunk-UYMA75Y4.js} +1 -1
  129. package/dist/cli/chunks/{chunk-ZBJRNCWX.js → chunk-V7GV54AY.js} +2 -2
  130. package/dist/cli/chunks/{chunk-AKFRM4IO.js → chunk-VJHKNSOC.js} +2 -2
  131. package/dist/cli/chunks/{chunk-L4JTTPU7.js → chunk-VK7AXSAI.js} +2 -2
  132. package/dist/cli/chunks/{chunk-FUHPLXJX.js → chunk-VSV6PV47.js} +1 -1
  133. package/dist/cli/chunks/{chunk-VOOJDHLI.js → chunk-VVGXCLJF.js} +3 -3
  134. package/dist/cli/chunks/{chunk-CQWZNVIM.js → chunk-WRPQJZSP.js} +2 -2
  135. package/dist/cli/chunks/{chunk-4N736EES.js → chunk-YCD3EBQJ.js} +2 -2
  136. package/dist/cli/chunks/{chunk-JF3U456G.js → chunk-YDIHYU7V.js} +2 -2
  137. package/dist/cli/chunks/{chunk-7UHRT5AX.js → chunk-ZGR5LFER.js} +2 -2
  138. package/dist/cli/chunks/{chunk-W7XVEWKQ.js → chunk-ZSDK26IP.js} +1 -1
  139. package/dist/cli/chunks/{chunk-PTOTOBOU.js → chunk-ZUFM5K7F.js} +1 -1
  140. package/dist/cli/chunks/{ci-LRTJSZHT.js → ci-WZ4E35B6.js} +2 -2
  141. package/dist/cli/chunks/{ci-output-LISCHUKD.js → ci-output-WMYWSAHI.js} +2 -2
  142. package/dist/cli/chunks/{circuit-breaker-7PMP25KZ.js → circuit-breaker-4E4ZZ47P.js} +2 -2
  143. package/dist/cli/chunks/{claude-flow-setup-DOW4QVMC.js → claude-flow-setup-Q37FECGF.js} +2 -2
  144. package/dist/cli/chunks/client-3YW2WA67.js +2 -0
  145. package/dist/cli/chunks/{cline-installer-2NXQGW73.js → cline-installer-O7GPSWES.js} +2 -2
  146. package/dist/cli/chunks/{code-3X6RWAS7.js → code-AEIXP2UD.js} +2 -2
  147. package/dist/cli/chunks/{code-index-extractor-4ABP5WCP.js → code-index-extractor-5RXCWE5W.js} +2 -2
  148. package/dist/cli/chunks/{codex-installer-V7PII6GL.js → codex-installer-HDPSP2IN.js} +2 -2
  149. package/dist/cli/chunks/{completions-Y7LNQ63I.js → completions-LYTPZCND.js} +2 -2
  150. package/dist/cli/chunks/{complexity-analyzer-XLYMAM6I.js → complexity-analyzer-WBRRBUIA.js} +2 -2
  151. package/dist/cli/chunks/{continuedev-installer-GOT4TKNT.js → continuedev-installer-6KICDS72.js} +2 -2
  152. package/dist/cli/chunks/{copilot-installer-D6BAQVIO.js → copilot-installer-2YI4SWDH.js} +2 -2
  153. package/dist/cli/chunks/{cost-tracker-VT7C5Q52.js → cost-tracker-YEVYFYK5.js} +2 -2
  154. package/dist/cli/chunks/{coverage-C62MRP4M.js → coverage-MO2TU62L.js} +3 -3
  155. package/dist/cli/chunks/cross-domain-router-2MAV2XPY.js +2 -0
  156. package/dist/cli/chunks/{cursor-installer-WAWSS2K2.js → cursor-installer-AO2JNN27.js} +2 -2
  157. package/dist/cli/chunks/daemon-6DWF4GAR.js +16 -0
  158. package/dist/cli/chunks/daemon-WCSJ3HS2.js +10 -0
  159. package/dist/cli/chunks/{dag-attention-scheduler-SZIZWPV7.js → dag-attention-scheduler-NI6TAE7Y.js} +2 -2
  160. package/dist/cli/chunks/{detect-AJX6NJEP.js → detect-3MTKRZEI.js} +2 -2
  161. package/dist/cli/chunks/{dist-node-E5X47QTY.js → dist-node-32YFXCS3.js} +2 -2
  162. package/dist/cli/chunks/{domain-handler-FN3PIP45.js → domain-handler-TFVVUKSC.js} +2 -2
  163. package/dist/cli/chunks/{domain-transfer-N3TOJEMT.js → domain-transfer-7HWX6PVA.js} +2 -2
  164. package/dist/cli/chunks/dream-4N3YBX36.js +2 -0
  165. package/dist/cli/chunks/{embed-and-insert-pattern-PJI5TZKR.js → embed-and-insert-pattern-GGNDGEHX.js} +2 -2
  166. package/dist/cli/chunks/{eval-OS54TDQU.js → eval-T2KWZU2L.js} +2 -2
  167. package/dist/cli/chunks/{experience-capture-middleware-FBM4ANZW.js → experience-capture-middleware-JHQPDNVK.js} +3 -3
  168. package/dist/cli/chunks/{fast-paths-2CVAAPQO.js → fast-paths-KJQ56NG6.js} +2 -2
  169. package/dist/cli/chunks/{feature-flags-GEXTW6OT.js → feature-flags-DJU7Z6UH.js} +2 -2
  170. package/dist/cli/chunks/{feature-flags-A5KFWVFC.js → feature-flags-IPK5DUQM.js} +2 -2
  171. package/dist/cli/chunks/{file-discovery-KWLVC7KN.js → file-discovery-G5I7VV34.js} +2 -2
  172. package/dist/cli/chunks/{fleet-MNKH356S.js → fleet-BRKXQGTC.js} +3 -3
  173. package/dist/cli/chunks/{gnn-wrapper-ALTWYFVZ.js → gnn-wrapper-F44UEMIK.js} +2 -2
  174. package/dist/cli/chunks/{heartbeat-handler-MBMEPEGW.js → heartbeat-handler-4EJQ3VWP.js} +4 -4
  175. package/dist/cli/chunks/heartbeat-scheduler-5KZS7T6Q.js +2 -0
  176. package/dist/cli/chunks/hnsw-adapter-A4XK3GZU.js +2 -0
  177. package/dist/cli/chunks/hnsw-index-TI7LZBWF.js +2 -0
  178. package/dist/cli/chunks/{hnsw-legacy-bridge-WTD5PR5V.js → hnsw-legacy-bridge-HVFM7LAR.js} +2 -2
  179. package/dist/cli/chunks/{better-sqlite3-NYOVLWBG.js → hnswlib-node-SDVX3I7F.js} +2 -2
  180. package/dist/cli/chunks/{hooks-ELHGEBFK.js → hooks-QFQSVB2C.js} +10 -10
  181. package/dist/cli/chunks/{hybrid-router-D6ZMIZCE.js → hybrid-router-TZPIYG3I.js} +2 -2
  182. package/dist/cli/chunks/{hypergraph-engine-JOQ6TERZ.js → hypergraph-engine-HXG5GI27.js} +2 -2
  183. package/dist/cli/chunks/{hypergraph-handler-HX45YWWN.js → hypergraph-handler-R4LFFQ3Z.js} +3 -3
  184. package/dist/cli/chunks/impact-analyzer-NQZBRTZH.js +2 -0
  185. package/dist/cli/chunks/{init-handler-TNVU6NQ6.js → init-handler-NJKVTURQ.js} +13 -12
  186. package/dist/cli/chunks/init-wizard-UZR2AKQA.js +2 -0
  187. package/dist/cli/chunks/kernel-2HFKLNTS.js +2 -0
  188. package/dist/cli/chunks/{kilocode-installer-YC5RJIY4.js → kilocode-installer-T6CMAQ6P.js} +2 -2
  189. package/dist/cli/chunks/{kiro-installer-EAB26M55.js → kiro-installer-IOAHUSWU.js} +2 -2
  190. package/dist/cli/chunks/knowledge-graph-GHICW2ZM.js +2 -0
  191. package/dist/cli/chunks/{learning-A2OB7D2B.js → learning-2AH5KAFV.js} +3 -3
  192. package/dist/cli/chunks/{llm-router-KEG6PA7C.js → llm-router-I3YBDMC7.js} +4 -4
  193. package/dist/cli/chunks/load-MTLOPMP4.js +2 -0
  194. package/dist/cli/chunks/load-test-DUOZJLRA.js +2 -0
  195. package/dist/cli/chunks/{mcp-ERJHZ6FN.js → mcp-EEINX3NP.js} +2 -2
  196. package/dist/cli/chunks/{memory-GSRIJIVR.js → memory-OBDYP5P7.js} +5 -5
  197. package/dist/cli/chunks/memory-backend-AMPSDQR7.js +2 -0
  198. package/dist/cli/chunks/memory-handlers-TTMZ2JK6.js +2 -0
  199. package/dist/cli/chunks/{multi-model-executor-GK3V7ERC.js → multi-model-executor-OCANACFF.js} +2 -2
  200. package/dist/cli/chunks/{opencode-installer-6TTN26RG.js → opencode-installer-4PNJOOKX.js} +2 -2
  201. package/dist/cli/chunks/{orchestrator-YVTSM6QW.js → orchestrator-DGIKNLST.js} +5 -5
  202. package/dist/cli/chunks/{pipeline-EWLJCY5G.js → pipeline-4DZ3FRRT.js} +2 -2
  203. package/dist/cli/chunks/{platform-2ULHQQME.js → platform-A27VETGX.js} +2 -2
  204. package/dist/cli/chunks/{plugin-PYN2KOXA.js → plugin-SAIG2MCN.js} +2 -2
  205. package/dist/cli/chunks/{prime-radiant-advanced-wasm-IULCTOGZ.js → prime-radiant-advanced-wasm-XBCJETFT.js} +2 -2
  206. package/dist/cli/chunks/protocol-executor-4HZSMKVG.js +2 -0
  207. package/dist/cli/chunks/{protocol-handler-FZYI2SBP.js → protocol-handler-NDOZLFK7.js} +2 -2
  208. package/dist/cli/chunks/{prove-DN7S74SP.js → prove-XVUI5VJL.js} +2 -2
  209. package/dist/cli/chunks/{provider-manager-FT3MCROB.js → provider-manager-W6CZHTWY.js} +2 -2
  210. package/dist/cli/chunks/qe-reasoning-bank-OGPCKVDP.js +2 -0
  211. package/dist/cli/chunks/{quality-ITBU6LGC.js → quality-MRCQ7SDM.js} +2 -2
  212. package/dist/cli/chunks/queen-coordinator-ETWOFJGR.js +2 -0
  213. package/dist/cli/chunks/{real-embeddings-PZUZ5RXJ.js → real-embeddings-3NBKHQSF.js} +2 -2
  214. package/dist/cli/chunks/{roocode-installer-2LMVZOUZ.js → roocode-installer-FPWTSZG7.js} +2 -2
  215. package/dist/cli/chunks/router-OMWLL5V3.js +2 -0
  216. package/dist/cli/chunks/routing-feedback-SULO56IE.js +2 -0
  217. package/dist/cli/chunks/{routing-handler-5RB73UCF.js → routing-handler-SYAT3QTK.js} +2 -2
  218. package/dist/cli/chunks/{ruvector-commands-VBN4APMG.js → ruvector-commands-Y3JV2RC4.js} +2 -2
  219. package/dist/cli/chunks/{rvf-dual-writer-BNY4AUWT.js → rvf-dual-writer-4IS5JKSA.js} +2 -2
  220. package/dist/cli/chunks/{rvf-migration-adapter-73MKPBGV.js → rvf-migration-adapter-FPEUOS55.js} +2 -2
  221. package/dist/cli/chunks/{rvf-migration-coordinator-SGVB7ZAZ.js → rvf-migration-coordinator-FR4NHRNG.js} +2 -2
  222. package/dist/cli/chunks/rvf-native-adapter-PFMHXYDR.js +2 -0
  223. package/dist/cli/chunks/safe-db-V34EBOPG.js +2 -0
  224. package/dist/cli/chunks/schedule-WJALMS5B.js +2 -0
  225. package/dist/cli/chunks/scheduler-CBWMQLTY.js +2 -0
  226. package/dist/cli/chunks/{security-XUH4H7R3.js → security-EPJBWOM2.js} +3 -3
  227. package/dist/cli/chunks/shared-rvf-adapter-KOZOSWBO.js +2 -0
  228. package/dist/cli/chunks/{shared-rvf-dual-writer-GML4EDYF.js → shared-rvf-dual-writer-MSUS3ROX.js} +2 -2
  229. package/dist/cli/chunks/sqlite-persistence-7RV55RNF.js +2 -0
  230. package/dist/cli/chunks/{status-handler-XI7GJF6Z.js → status-handler-7T6ZWWSG.js} +2 -2
  231. package/dist/cli/chunks/{structural-health-WPCYKOXV.js → structural-health-IT5COKMM.js} +2 -2
  232. package/dist/cli/chunks/sync-CYTAJ62F.js +17 -0
  233. package/dist/cli/chunks/sync-MVC5LKWT.js +2 -0
  234. package/dist/cli/chunks/{task-handler-FZB55IEG.js → task-handler-R5T6DQ62.js} +2 -2
  235. package/dist/cli/chunks/{task-handlers-EXZGFH7F.js → task-handlers-BQDACRA4.js} +3 -3
  236. package/dist/cli/chunks/{test-XYRN4OVU.js → test-JQ6DNHJU.js} +4 -4
  237. package/dist/cli/chunks/{test-scheduling-FLVOPGOT.js → test-scheduling-47CCXYB3.js} +3 -3
  238. package/dist/cli/chunks/{token-bootstrap-FDCFVRHM.js → token-bootstrap-THINRRHA.js} +2 -2
  239. package/dist/cli/chunks/{token-usage-MHNZF3DM.js → token-usage-AQOWJPTG.js} +2 -2
  240. package/dist/cli/chunks/{transformers-4CRVTMWY.js → transformers-KRVEZU55.js} +2 -2
  241. package/dist/cli/chunks/tree-sitter-wasm-parser-UDOTWN4W.js +2 -0
  242. package/dist/cli/chunks/{types-RKCD4BNL.js → types-YZSDKHGD.js} +2 -2
  243. package/dist/cli/chunks/unified-memory-FHP2C2NF.js +2 -0
  244. package/dist/cli/chunks/unified-memory-hnsw-MI27GSUL.js +2 -0
  245. package/dist/cli/chunks/unified-persistence-67RJXTNL.js +2 -0
  246. package/dist/cli/chunks/{upgrade-463W7VKH.js → upgrade-UX6VHS4H.js} +2 -2
  247. package/dist/cli/chunks/{validate-LENSMEAY.js → validate-SUS7IEZG.js} +2 -2
  248. package/dist/cli/chunks/{validate-swarm-4FEBNAWA.js → validate-swarm-E2YE6GY2.js} +2 -2
  249. package/dist/cli/chunks/{vibium-TXNVIVWJ.js → vibium-UZMTKRTE.js} +2 -2
  250. package/dist/cli/chunks/visual-security-JF6AGYOT.js +2 -0
  251. package/dist/cli/chunks/{web-tree-sitter-BZEGWID4.js → web-tree-sitter-XXU37FYS.js} +2 -2
  252. package/dist/cli/chunks/{windsurf-installer-7AFXJTPU.js → windsurf-installer-WRTVYD3Y.js} +2 -2
  253. package/dist/cli/chunks/{witness-chain-G6SUZOZG.js → witness-chain-6OSAEH67.js} +2 -2
  254. package/dist/cli/chunks/witness-chain-HNY2ED2G.js +2 -0
  255. package/dist/cli/chunks/{workflow-EVQPO6FH.js → workflow-7XKEQVKT.js} +4 -4
  256. package/dist/cli/chunks/workflow-orchestrator-OPUU4TNV.js +2 -0
  257. package/dist/cli/chunks/{wrappers-HR6RUDI2.js → wrappers-2HDILUDI.js} +2 -2
  258. package/dist/cli/handlers/init-handler.js +47 -0
  259. package/dist/domains/learning-optimization/coordinator-helpers.js +7 -1
  260. package/dist/domains/learning-optimization/coordinator.js +5 -1
  261. package/dist/domains/learning-optimization/services/learning-coordinator.js +42 -17
  262. package/dist/domains/learning-optimization/services/metrics-optimizer.js +4 -1
  263. package/dist/domains/learning-optimization/services/production-intel.js +14 -5
  264. package/dist/domains/learning-optimization/services/transfer-specialist.js +12 -4
  265. package/dist/integrations/embeddings/base/EmbeddingGenerator.d.ts +1 -1
  266. package/dist/integrations/embeddings/base/EmbeddingGenerator.js +14 -5
  267. package/dist/kernel/hybrid-backend.d.ts +17 -7
  268. package/dist/kernel/hybrid-backend.js +24 -10
  269. package/dist/kernel/interfaces.d.ts +21 -6
  270. package/dist/kernel/memory-backend.d.ts +5 -5
  271. package/dist/kernel/memory-backend.js +14 -7
  272. package/dist/learning/real-embeddings.js +1 -1
  273. package/dist/mcp/bundle.js +454 -454
  274. package/dist/mcp/handlers/core-handlers.js +21 -0
  275. package/dist/shared/parsers/tree-sitter-wasm-parser.js +8 -3
  276. package/dist/shared/utils/index.d.ts +1 -0
  277. package/dist/shared/utils/index.js +1 -0
  278. package/dist/shared/utils/kv-date-rehydrate.d.ts +51 -0
  279. package/dist/shared/utils/kv-date-rehydrate.js +78 -0
  280. package/dist/workers/interfaces.d.ts +26 -0
  281. package/dist/workers/worker-manager.d.ts +15 -12
  282. package/dist/workers/worker-manager.js +11 -0
  283. package/dist/workers/workers/learning-consolidation.js +123 -90
  284. package/package.json +23 -10
  285. package/dist/cli/chunks/adapter-CI2GZYME.js +0 -2
  286. package/dist/cli/chunks/aqe-learning-engine-KNQKALLI.js +0 -2
  287. package/dist/cli/chunks/base-P7PRMQWY.js +0 -2
  288. package/dist/cli/chunks/browser-workflow-QUP4A763.js +0 -2
  289. package/dist/cli/chunks/chunk-2NLZXG6V.js +0 -2
  290. package/dist/cli/chunks/chunk-5Z6PYYWK.js +0 -2
  291. package/dist/cli/chunks/chunk-RBDAHW2M.js +0 -2
  292. package/dist/cli/chunks/client-XF6SJO2C.js +0 -2
  293. package/dist/cli/chunks/cross-domain-router-J2OFPM6R.js +0 -2
  294. package/dist/cli/chunks/daemon-CP2ETHRF.js +0 -19
  295. package/dist/cli/chunks/dream-D5LD5SOZ.js +0 -2
  296. package/dist/cli/chunks/hnsw-adapter-M2MMM3N6.js +0 -2
  297. package/dist/cli/chunks/hnsw-index-JO7KNF7M.js +0 -2
  298. package/dist/cli/chunks/impact-analyzer-ROQL4J7P.js +0 -2
  299. package/dist/cli/chunks/init-wizard-4BDFZX4M.js +0 -2
  300. package/dist/cli/chunks/kernel-37Y63WKR.js +0 -2
  301. package/dist/cli/chunks/knowledge-graph-V3DX6ZCX.js +0 -2
  302. package/dist/cli/chunks/load-D6ZDLVA3.js +0 -2
  303. package/dist/cli/chunks/load-test-HPBA2CMT.js +0 -2
  304. package/dist/cli/chunks/memory-backend-DODDBB46.js +0 -2
  305. package/dist/cli/chunks/memory-handlers-MFLCRS7V.js +0 -2
  306. package/dist/cli/chunks/protocol-executor-D56OYMCJ.js +0 -2
  307. package/dist/cli/chunks/qe-reasoning-bank-KXROIEK7.js +0 -2
  308. package/dist/cli/chunks/queen-coordinator-XOGATERL.js +0 -2
  309. package/dist/cli/chunks/router-3EHNUCOM.js +0 -2
  310. package/dist/cli/chunks/routing-feedback-ZHKGET22.js +0 -2
  311. package/dist/cli/chunks/rvf-native-adapter-4YC5IQUW.js +0 -2
  312. package/dist/cli/chunks/safe-db-PLJRHQIC.js +0 -2
  313. package/dist/cli/chunks/schedule-7DGELVJE.js +0 -2
  314. package/dist/cli/chunks/scheduler-VWASEC2J.js +0 -2
  315. package/dist/cli/chunks/shared-rvf-adapter-DCVDY2XW.js +0 -2
  316. package/dist/cli/chunks/sqlite-persistence-CTEBGVOW.js +0 -2
  317. package/dist/cli/chunks/sync-SFKTCRZC.js +0 -23
  318. package/dist/cli/chunks/tree-sitter-wasm-parser-CI3V4AND.js +0 -2
  319. package/dist/cli/chunks/unified-memory-YDKXKW3D.js +0 -2
  320. package/dist/cli/chunks/unified-memory-hnsw-6N7YZCLR.js +0 -2
  321. package/dist/cli/chunks/unified-persistence-UTWLPUQI.js +0 -2
  322. package/dist/cli/chunks/visual-security-DGXSOFKD.js +0 -2
  323. package/dist/cli/chunks/witness-chain-VP4MF6EU.js +0 -2
  324. package/dist/cli/chunks/workflow-orchestrator-VXSYAKQY.js +0 -2
@@ -135,6 +135,27 @@ export async function handleFleetInit(params) {
135
135
  domainPlugins.set(domain, plugin);
136
136
  }
137
137
  }
138
+ // Issue #491 Bug 1 + Bug 4b: the MCP-hosted daemon constructs its
139
+ // WorkerManager *before* the kernel exists (in src/mcp/entry.ts), so it
140
+ // starts with StubWorkerDomainAccess (getDomainAPI returns undefined for
141
+ // every domain) and a private InMemoryWorkerMemory the dashboard never
142
+ // reads from. Wire both now that kernel + plugins are ready. Without
143
+ // this, every domain-dependent worker tick fails with "<domain> not
144
+ // available" and `aqe learning loop-health` shows learningWorker as
145
+ // never-ran even when it executes every cycle.
146
+ try {
147
+ const { getDaemon } = await import('../../workers/daemon.js');
148
+ const workerManager = getDaemon().getWorkerManager();
149
+ workerManager.setKernel(state.kernel);
150
+ workerManager.setMemory(state.kernel.memory);
151
+ }
152
+ catch (err) {
153
+ // Daemon wiring is best-effort: a workless smoke install (e.g. some
154
+ // unit-test harnesses) may not even bundle the daemon module. Surface
155
+ // as a warning but don't fail fleet_init — the user still gets a
156
+ // working kernel + queen for MCP tool calls.
157
+ console.warn(`[fleet_init] Daemon worker manager wiring skipped: ${toErrorMessage(err)}`);
158
+ }
138
159
  // Create Queen Coordinator with domain plugins for direct task execution
139
160
  state.queen = createQueenCoordinator(state.kernel, state.router, protocolExecutor, undefined, // workflowExecutor
140
161
  domainPlugins // INTEGRATION FIX: Pass domain plugins
@@ -105,8 +105,11 @@ async function ensureTreeSitterInit() {
105
105
  initPromise = (async () => {
106
106
  try {
107
107
  const mod = await import('web-tree-sitter');
108
- const TreeSitter = mod.default || mod;
109
- await TreeSitter.init();
108
+ // Type is `any` because v0.24 exposed init() on the module itself
109
+ // while v0.26+ moved it onto the Parser class. We support both.
110
+ const TreeSitter = mod.default ?? mod;
111
+ const initFn = TreeSitter.Parser?.init ?? TreeSitter.init;
112
+ await initFn.call(TreeSitter.Parser ?? TreeSitter);
110
113
  treeSitterModule = TreeSitter;
111
114
  initFailCount = 0; // Reset on success
112
115
  logger.info('web-tree-sitter WASM runtime initialized');
@@ -886,7 +889,9 @@ export class TreeSitterWASMParser {
886
889
  // Two concurrent parseFile() calls for different languages could otherwise
887
890
  // corrupt each other via setLanguage() on a shared instance across await boundaries.
888
891
  // Parser creation is ~μs; grammar loading (the expensive part) is already cached.
889
- const parser = new treeSitterModule();
892
+ // web-tree-sitter ≥0.25 exposes the parser as a named class.
893
+ const ParserCtor = treeSitterModule.Parser ?? treeSitterModule;
894
+ const parser = new ParserCtor();
890
895
  parser.setLanguage(lang);
891
896
  const tree = parser.parse(content);
892
897
  const root = tree.rootNode;
@@ -2,5 +2,6 @@ export * from './circular-buffer.js';
2
2
  export * from './vector-math.js';
3
3
  export * from './binary-insert.js';
4
4
  export * from './crypto-random.js';
5
+ export * from './kv-date-rehydrate.js';
5
6
  export { Xorshift128 } from './xorshift128.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -2,5 +2,6 @@ export * from './circular-buffer.js';
2
2
  export * from './vector-math.js';
3
3
  export * from './binary-insert.js';
4
4
  export * from './crypto-random.js';
5
+ export * from './kv-date-rehydrate.js';
5
6
  export { Xorshift128 } from './xorshift128.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,51 @@
1
+ /**
2
+ * kv-Date rehydration helper.
3
+ *
4
+ * Background (issue #493, related #491 Bug 3):
5
+ * Records stored via `memory.set(key, record)` go through `JSON.stringify`,
6
+ * which converts `Date` instances to ISO strings. The matching `memory.get`
7
+ * does `JSON.parse`, which does NOT rehydrate strings back to `Date`. The
8
+ * record's runtime shape therefore disagrees with its TypeScript type:
9
+ * `lastUsedAt: Date` is actually a `string` at runtime.
10
+ *
11
+ * Two failure modes follow:
12
+ * 1. THROW: `record.lastUsedAt.getTime()` raises
13
+ * `TypeError: getTime is not a function`.
14
+ * 2. SILENT: `record.lastUsedAt >= start` (where `start` is a real Date)
15
+ * coerces both sides via valueOf; the string becomes NaN; every
16
+ * comparison returns false. `TimeRange.contains` and similar filters
17
+ * then silently drop every record, producing empty analytics with no
18
+ * visible error.
19
+ *
20
+ * The silent variant is the worse one — it surfaced as #491 Bug 3 and
21
+ * went undetected for a release cycle.
22
+ *
23
+ * Use this helper at the kv-read seam:
24
+ *
25
+ * const record = rehydrateDates(
26
+ * await memory.get<Knowledge>(key),
27
+ * ['createdAt', 'expiresAt'],
28
+ * );
29
+ *
30
+ * The helper returns a shallow copy with the named string fields converted
31
+ * to `Date`. Already-Date and null/undefined values pass through unchanged.
32
+ * Returns null/undefined as-is so callers can keep their existing optional
33
+ * chaining.
34
+ */
35
+ /**
36
+ * Rehydrate ISO-string Date fields on a record read from the kv store.
37
+ *
38
+ * @param record A record from `memory.get<T>(key)`, possibly null/undefined.
39
+ * @param dateFields Field names that are typed `Date` (or `Date | undefined`)
40
+ * on T but may have round-tripped as strings through the kv JSON layer.
41
+ * @returns The same record with named fields coerced to Date, or null/undefined
42
+ * when the input was null/undefined.
43
+ */
44
+ export declare function rehydrateDates<T extends object>(record: T | null | undefined, dateFields: readonly (keyof T)[]): T | null | undefined;
45
+ /**
46
+ * Array variant — common when iterating `memory.search` results.
47
+ *
48
+ * Filters out nulls so callers don't have to repeat the guard at every site.
49
+ */
50
+ export declare function rehydrateDatesAll<T extends object>(records: ReadonlyArray<T | null | undefined>, dateFields: readonly (keyof T)[]): T[];
51
+ //# sourceMappingURL=kv-date-rehydrate.d.ts.map
@@ -0,0 +1,78 @@
1
+ /**
2
+ * kv-Date rehydration helper.
3
+ *
4
+ * Background (issue #493, related #491 Bug 3):
5
+ * Records stored via `memory.set(key, record)` go through `JSON.stringify`,
6
+ * which converts `Date` instances to ISO strings. The matching `memory.get`
7
+ * does `JSON.parse`, which does NOT rehydrate strings back to `Date`. The
8
+ * record's runtime shape therefore disagrees with its TypeScript type:
9
+ * `lastUsedAt: Date` is actually a `string` at runtime.
10
+ *
11
+ * Two failure modes follow:
12
+ * 1. THROW: `record.lastUsedAt.getTime()` raises
13
+ * `TypeError: getTime is not a function`.
14
+ * 2. SILENT: `record.lastUsedAt >= start` (where `start` is a real Date)
15
+ * coerces both sides via valueOf; the string becomes NaN; every
16
+ * comparison returns false. `TimeRange.contains` and similar filters
17
+ * then silently drop every record, producing empty analytics with no
18
+ * visible error.
19
+ *
20
+ * The silent variant is the worse one — it surfaced as #491 Bug 3 and
21
+ * went undetected for a release cycle.
22
+ *
23
+ * Use this helper at the kv-read seam:
24
+ *
25
+ * const record = rehydrateDates(
26
+ * await memory.get<Knowledge>(key),
27
+ * ['createdAt', 'expiresAt'],
28
+ * );
29
+ *
30
+ * The helper returns a shallow copy with the named string fields converted
31
+ * to `Date`. Already-Date and null/undefined values pass through unchanged.
32
+ * Returns null/undefined as-is so callers can keep their existing optional
33
+ * chaining.
34
+ */
35
+ /**
36
+ * Rehydrate ISO-string Date fields on a record read from the kv store.
37
+ *
38
+ * @param record A record from `memory.get<T>(key)`, possibly null/undefined.
39
+ * @param dateFields Field names that are typed `Date` (or `Date | undefined`)
40
+ * on T but may have round-tripped as strings through the kv JSON layer.
41
+ * @returns The same record with named fields coerced to Date, or null/undefined
42
+ * when the input was null/undefined.
43
+ */
44
+ export function rehydrateDates(record, dateFields) {
45
+ if (record === null || record === undefined) {
46
+ return record;
47
+ }
48
+ const result = { ...record };
49
+ for (const field of dateFields) {
50
+ const value = result[field];
51
+ // Only coerce strings — leaves real Date instances, null, and undefined
52
+ // alone so this is safe to call on records whose date fields are
53
+ // optional or already correctly hydrated (e.g. on the write path or
54
+ // when the source is an in-memory cache).
55
+ if (typeof value === 'string') {
56
+ // The cast is unavoidable: we're widening the runtime type to match
57
+ // what TypeScript already claims the field is.
58
+ result[field] = new Date(value);
59
+ }
60
+ }
61
+ return result;
62
+ }
63
+ /**
64
+ * Array variant — common when iterating `memory.search` results.
65
+ *
66
+ * Filters out nulls so callers don't have to repeat the guard at every site.
67
+ */
68
+ export function rehydrateDatesAll(records, dateFields) {
69
+ const out = [];
70
+ for (const record of records) {
71
+ const r = rehydrateDates(record, dateFields);
72
+ if (r) {
73
+ out.push(r);
74
+ }
75
+ }
76
+ return out;
77
+ }
78
+ //# sourceMappingURL=kv-date-rehydrate.js.map
@@ -170,6 +170,20 @@ export interface WorkerDomainAccess {
170
170
  errors: string[];
171
171
  };
172
172
  }
173
+ /**
174
+ * Structural shape of the kernel that worker-side code needs. Declared here
175
+ * (rather than imported from src/kernel) to avoid a circular dependency between
176
+ * the kernel and the workers package.
177
+ */
178
+ export interface WorkerKernelReference {
179
+ getDomainAPI<T>(domain: DomainName): T | undefined;
180
+ getHealth(): {
181
+ domains: Record<string, {
182
+ status: string;
183
+ errors?: string[];
184
+ }>;
185
+ };
186
+ }
173
187
  export interface WorkerHealth {
174
188
  /** Worker status */
175
189
  readonly status: WorkerStatus;
@@ -223,6 +237,18 @@ export interface WorkerManager {
223
237
  * Get manager health status
224
238
  */
225
239
  getHealth(): WorkerManagerHealth;
240
+ /**
241
+ * Bind the kernel late, after construction. Without this, workers fall
242
+ * through to a stub domain-access that returns undefined for every domain,
243
+ * causing every domain-dependent worker tick to fail (issue #491 Bug 1).
244
+ */
245
+ setKernel(kernel: WorkerKernelReference): void;
246
+ /**
247
+ * Bind the worker manager's memory to a shared instance (e.g. the kernel's
248
+ * HybridMemoryBackend) so workers and the dashboards that read worker output
249
+ * resolve to the same kv store (issue #491 Bug 4b).
250
+ */
251
+ setMemory(memory: WorkerMemory): void;
226
252
  }
227
253
  export interface WorkerManagerHealth {
228
254
  /** Total registered workers */
@@ -5,20 +5,14 @@
5
5
  * Manages the lifecycle and scheduling of all background workers.
6
6
  * Provides centralized control for starting, stopping, and monitoring workers.
7
7
  */
8
- import { Worker, WorkerManager as IWorkerManager, WorkerManagerHealth, WorkerResult, WorkerEventBus, WorkerMemory, WorkerDomainAccess, WorkerEvent } from './interfaces';
9
- import { DomainName } from '../shared/types';
8
+ import { Worker, WorkerManager as IWorkerManager, WorkerManagerHealth, WorkerResult, WorkerEventBus, WorkerMemory, WorkerDomainAccess, WorkerEvent, WorkerKernelReference } from './interfaces';
10
9
  /**
11
- * Reference interface for kernel (to avoid circular dependency)
10
+ * Local alias for the shared worker-kernel structural shape. The public type
11
+ * lives in interfaces.ts so the WorkerManager interface can refer to it
12
+ * without importing this file (which would re-introduce the circular
13
+ * dependency the original local declaration was avoiding).
12
14
  */
13
- interface KernelReference {
14
- getDomainAPI<T>(domain: DomainName): T | undefined;
15
- getHealth(): {
16
- domains: Record<string, {
17
- status: string;
18
- errors?: string[];
19
- }>;
20
- };
21
- }
15
+ type KernelReference = WorkerKernelReference;
22
16
  /**
23
17
  * Worker Manager implementation
24
18
  */
@@ -42,6 +36,15 @@ export declare class WorkerManagerImpl implements IWorkerManager {
42
36
  * Allows late binding of kernel after construction
43
37
  */
44
38
  setKernel(kernel: KernelReference): void;
39
+ /**
40
+ * Replace the worker manager's memory with a shared instance — typically the
41
+ * kernel's HybridMemoryBackend so dashboards reading worker-emitted keys
42
+ * (e.g. `learning:loop-health` in the `qe-kernel` namespace) actually see
43
+ * what workers write. Without this, workers write to the in-process
44
+ * InMemoryWorkerMemory and the dashboard reads a different kv (issue #491
45
+ * Bug 4b).
46
+ */
47
+ setMemory(memory: WorkerMemory): void;
45
48
  /**
46
49
  * Register a worker
47
50
  */
@@ -181,6 +181,17 @@ export class WorkerManagerImpl {
181
181
  this.domainAccess = new KernelWorkerDomainAccess(() => this.kernelRef);
182
182
  }
183
183
  }
184
+ /**
185
+ * Replace the worker manager's memory with a shared instance — typically the
186
+ * kernel's HybridMemoryBackend so dashboards reading worker-emitted keys
187
+ * (e.g. `learning:loop-health` in the `qe-kernel` namespace) actually see
188
+ * what workers write. Without this, workers write to the in-process
189
+ * InMemoryWorkerMemory and the dashboard reads a different kv (issue #491
190
+ * Bug 4b).
191
+ */
192
+ setMemory(memory) {
193
+ this.memory = memory;
194
+ }
184
195
  /**
185
196
  * Register a worker
186
197
  */
@@ -85,97 +85,124 @@ export class LearningConsolidationWorker extends BaseWorker {
85
85
  context.logger.info('Starting learning consolidation (Phase 7: Continuous Learning Loop)');
86
86
  const findings = [];
87
87
  const recommendations = [];
88
- // Initialize Phase 7 metrics
89
- let experiencesProcessed = 0;
90
- let patternCandidatesFound = 0;
91
- let patternsPromoted = 0;
92
- let patternsDeprecated = 0;
93
- let confidenceDecayApplied = 0;
94
- let patternsMined = 0;
95
- let domainsMined = 0;
96
- let dreamInsightsPruned = 0;
97
- // Phase 7: Run continuous learning loop
98
- const lifecycleManager = await this.getLifecycleManager();
99
- if (lifecycleManager) {
100
- const lifecycleResult = await this.runContinuousLearningLoop(context, lifecycleManager, findings, recommendations);
101
- experiencesProcessed = lifecycleResult.experiencesProcessed;
102
- patternCandidatesFound = lifecycleResult.patternCandidatesFound;
103
- patternsPromoted = lifecycleResult.patternsPromoted;
104
- patternsDeprecated = lifecycleResult.patternsDeprecated;
105
- confidenceDecayApplied = lifecycleResult.confidenceDecayApplied;
106
- patternsMined = lifecycleResult.patternsMined;
107
- domainsMined = lifecycleResult.domainsMined;
108
- dreamInsightsPruned = lifecycleResult.dreamInsightsPruned;
109
- }
110
- // Collect patterns from all domains
111
- const patterns = await this.collectPatterns(context);
112
- // Consolidate and analyze
113
- const result = await this.consolidatePatterns(context, patterns);
114
- // Add Phase 7 metrics to result
115
- result.experiencesProcessed = experiencesProcessed;
116
- result.patternCandidatesFound = patternCandidatesFound;
117
- result.patternsPromoted = patternsPromoted;
118
- result.patternsDeprecated = patternsDeprecated;
119
- result.confidenceDecayApplied = confidenceDecayApplied;
120
- result.patternsMined = patternsMined;
121
- result.domainsMined = domainsMined;
122
- result.dreamInsightsPruned = dreamInsightsPruned;
123
- // Identify cross-domain patterns
124
- this.identifyCrossDomainPatterns(patterns, findings, recommendations);
125
- // Prune ineffective patterns
126
- this.pruneIneffectivePatterns(patterns, findings, recommendations);
127
- // Generate optimization recommendations
128
- this.generateOptimizations(patterns, findings, recommendations);
129
- // ADR-046: Run dream cycle for pattern discovery
130
- const dreamResult = await this.runDreamCycle(context, patterns, findings, recommendations);
131
- result.dreamInsights = dreamResult.insights;
132
- result.dreamPatternsCreated = dreamResult.patternsCreated;
133
- // Store consolidated results
134
- await context.memory.set('learning:lastConsolidation', result);
135
- await context.memory.set('learning:consolidatedPatterns', patterns);
136
- // #488 B.2: record loop-health so `aqe learning loop-health` can show
137
- // the consolidation worker as alive. Records success even for empty
138
- // ticks "ran the loop, found nothing" is still a liveness signal.
139
- await recordLoopHealth(context.memory, 'learningWorker', { success: true });
140
- // Update last run timestamp for decay calculation
141
- this.lastRunTimestamp = Date.now();
142
- const healthScore = this.calculateHealthScore(result, patterns);
143
- context.logger.info('Learning consolidation complete', {
144
- healthScore,
145
- patternsAnalyzed: result.patternsAnalyzed,
146
- newInsights: result.newInsights,
147
- // Phase 7 metrics
148
- experiencesProcessed,
149
- patternsPromoted,
150
- patternsDeprecated,
151
- });
152
- return this.createResult(Date.now() - startTime, {
153
- itemsAnalyzed: result.patternsAnalyzed,
154
- issuesFound: result.patternsPruned + result.patternsDeprecated,
155
- healthScore,
156
- trend: this.determineTrend(result),
157
- domainMetrics: {
88
+ // #491 Bug 4a: liveness must be reported on every tick, including the
89
+ // failure path. Before this fix, `recordLoopHealth(success:true)` sat
90
+ // *after* `collectPatterns()`, which throws on installs with nothing
91
+ // to consolidate — so loop-health permanently showed `never-ran`
92
+ // even when the worker executed every cycle. Track success in a flag
93
+ // and emit the ping in `finally` (matches the
94
+ // CapturedExperienceBridge.drainSafe pattern that ships correctly).
95
+ let liveness = { success: false };
96
+ try {
97
+ // Initialize Phase 7 metrics
98
+ let experiencesProcessed = 0;
99
+ let patternCandidatesFound = 0;
100
+ let patternsPromoted = 0;
101
+ let patternsDeprecated = 0;
102
+ let confidenceDecayApplied = 0;
103
+ let patternsMined = 0;
104
+ let domainsMined = 0;
105
+ let dreamInsightsPruned = 0;
106
+ // Phase 7: Run continuous learning loop
107
+ const lifecycleManager = await this.getLifecycleManager();
108
+ if (lifecycleManager) {
109
+ const lifecycleResult = await this.runContinuousLearningLoop(context, lifecycleManager, findings, recommendations);
110
+ experiencesProcessed = lifecycleResult.experiencesProcessed;
111
+ patternCandidatesFound = lifecycleResult.patternCandidatesFound;
112
+ patternsPromoted = lifecycleResult.patternsPromoted;
113
+ patternsDeprecated = lifecycleResult.patternsDeprecated;
114
+ confidenceDecayApplied = lifecycleResult.confidenceDecayApplied;
115
+ patternsMined = lifecycleResult.patternsMined;
116
+ domainsMined = lifecycleResult.domainsMined;
117
+ dreamInsightsPruned = lifecycleResult.dreamInsightsPruned;
118
+ }
119
+ // Collect patterns from all domains
120
+ const patterns = await this.collectPatterns(context);
121
+ // Consolidate and analyze
122
+ const result = await this.consolidatePatterns(context, patterns);
123
+ // Add Phase 7 metrics to result
124
+ result.experiencesProcessed = experiencesProcessed;
125
+ result.patternCandidatesFound = patternCandidatesFound;
126
+ result.patternsPromoted = patternsPromoted;
127
+ result.patternsDeprecated = patternsDeprecated;
128
+ result.confidenceDecayApplied = confidenceDecayApplied;
129
+ result.patternsMined = patternsMined;
130
+ result.domainsMined = domainsMined;
131
+ result.dreamInsightsPruned = dreamInsightsPruned;
132
+ // Identify cross-domain patterns
133
+ this.identifyCrossDomainPatterns(patterns, findings, recommendations);
134
+ // Prune ineffective patterns
135
+ this.pruneIneffectivePatterns(patterns, findings, recommendations);
136
+ // Generate optimization recommendations
137
+ this.generateOptimizations(patterns, findings, recommendations);
138
+ // ADR-046: Run dream cycle for pattern discovery
139
+ const dreamResult = await this.runDreamCycle(context, patterns, findings, recommendations);
140
+ result.dreamInsights = dreamResult.insights;
141
+ result.dreamPatternsCreated = dreamResult.patternsCreated;
142
+ // Store consolidated results
143
+ await context.memory.set('learning:lastConsolidation', result);
144
+ await context.memory.set('learning:consolidatedPatterns', patterns);
145
+ // Reached the end without throwing — this tick is a real success.
146
+ liveness = { success: true };
147
+ // Update last run timestamp for decay calculation
148
+ this.lastRunTimestamp = Date.now();
149
+ const healthScore = this.calculateHealthScore(result, patterns);
150
+ context.logger.info('Learning consolidation complete', {
151
+ healthScore,
158
152
  patternsAnalyzed: result.patternsAnalyzed,
159
- patternsPruned: result.patternsPruned,
160
- patternsConsolidated: result.patternsConsolidated,
161
153
  newInsights: result.newInsights,
162
- crossDomainPatterns: result.crossDomainPatterns,
163
- // ADR-046: Dream cycle metrics
164
- dreamInsights: result.dreamInsights,
165
- dreamPatternsCreated: result.dreamPatternsCreated,
166
- // Phase 7: Continuous Learning Loop metrics
167
- experiencesProcessed: result.experiencesProcessed,
168
- patternCandidatesFound: result.patternCandidatesFound,
169
- patternsPromoted: result.patternsPromoted,
170
- patternsDeprecated: result.patternsDeprecated,
171
- confidenceDecayApplied: result.confidenceDecayApplied,
172
- // #486 Gap A: mineExperiences auto-trigger
173
- patternsMined: result.patternsMined,
174
- domainsMined: result.domainsMined,
175
- // #488 C.2: dream_insights retention pruning
176
- dreamInsightsPruned: result.dreamInsightsPruned,
177
- },
178
- }, findings, recommendations);
154
+ // Phase 7 metrics
155
+ experiencesProcessed,
156
+ patternsPromoted,
157
+ patternsDeprecated,
158
+ });
159
+ return this.createResult(Date.now() - startTime, {
160
+ itemsAnalyzed: result.patternsAnalyzed,
161
+ issuesFound: result.patternsPruned + result.patternsDeprecated,
162
+ healthScore,
163
+ trend: this.determineTrend(result),
164
+ domainMetrics: {
165
+ patternsAnalyzed: result.patternsAnalyzed,
166
+ patternsPruned: result.patternsPruned,
167
+ patternsConsolidated: result.patternsConsolidated,
168
+ newInsights: result.newInsights,
169
+ crossDomainPatterns: result.crossDomainPatterns,
170
+ // ADR-046: Dream cycle metrics
171
+ dreamInsights: result.dreamInsights,
172
+ dreamPatternsCreated: result.dreamPatternsCreated,
173
+ // Phase 7: Continuous Learning Loop metrics
174
+ experiencesProcessed: result.experiencesProcessed,
175
+ patternCandidatesFound: result.patternCandidatesFound,
176
+ patternsPromoted: result.patternsPromoted,
177
+ patternsDeprecated: result.patternsDeprecated,
178
+ confidenceDecayApplied: result.confidenceDecayApplied,
179
+ // #486 Gap A: mineExperiences auto-trigger
180
+ patternsMined: result.patternsMined,
181
+ domainsMined: result.domainsMined,
182
+ // #488 C.2: dream_insights retention pruning
183
+ dreamInsightsPruned: result.dreamInsightsPruned,
184
+ },
185
+ }, findings, recommendations);
186
+ }
187
+ catch (error) {
188
+ // Record the failure shape and rethrow — BaseWorker handles
189
+ // worker-level retry/error tracking via this throw.
190
+ liveness = { success: false, error: error instanceof Error ? error.message : String(error) };
191
+ throw error;
192
+ }
193
+ finally {
194
+ // #491 Bug 4a: liveness must always reach the dashboard, even when
195
+ // collectPatterns throws on empty installs. Best-effort — must not
196
+ // throw or it would shadow the original error.
197
+ try {
198
+ await recordLoopHealth(context.memory, 'learningWorker', liveness);
199
+ }
200
+ catch (recordErr) {
201
+ context.logger.warn('recordLoopHealth failed (non-fatal)', {
202
+ error: recordErr instanceof Error ? recordErr.message : String(recordErr),
203
+ });
204
+ }
205
+ }
179
206
  }
180
207
  /**
181
208
  * Phase 7: Run the continuous learning loop
@@ -651,7 +678,13 @@ export class LearningConsolidationWorker extends BaseWorker {
651
678
  pattern: p.name,
652
679
  confidence: p.confidence,
653
680
  occurrences: p.usageCount,
654
- lastSeen: p.lastUsedAt,
681
+ // #493: `p.lastUsedAt` is typed as Date but arrives as an ISO string
682
+ // after the JSON round-trip through `learning:pattern:*` kv. Rehydrate
683
+ // at the seam so the two downstream `.getTime()` consumers
684
+ // (consolidatePatterns + pruneIneffectivePatterns) always see a real
685
+ // Date. Matches the kv-boundary hardening already in
686
+ // sqlite-persistence.ts:891 and pattern-store.ts:1301-1304.
687
+ lastSeen: new Date(p.lastUsedAt),
655
688
  effectiveness: p.successRate,
656
689
  }));
657
690
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.9.31",
3
+ "version": "3.9.33",
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",
@@ -62,6 +62,8 @@
62
62
  "test:all": "npm test -- --run",
63
63
  "test:mcp": "npm run test:unit:mcp",
64
64
  "test:mcp:integration": "npm test -- --run tests/integration/mcp/",
65
+ "test:integration:fast": "NODE_OPTIONS='--max-old-space-size=2048 --expose-gc' vitest run tests/integration/mcp/fleet-init-wires-daemon.test.ts tests/integration/workers/workers-reach-domains.test.ts tests/integration/learning/coordinator-roundtrip.test.ts tests/integration/bridge/bridge-end-to-end.test.ts",
66
+ "test:integration": "NODE_OPTIONS='--max-old-space-size=4096 --expose-gc' vitest run tests/integration/ --exclude='**/browser/**' --exclude='**/browser-integration/**' --exclude='**/*.e2e.test.ts'",
65
67
  "mcp:validate": "echo 'MCP validation: All tools registered in MCP server' && exit 0",
66
68
  "mcp:report": "echo 'MCP Report: uses vitest for test reporting' && exit 0",
67
69
  "test:code-intelligence": "npm test -- --run tests/unit/domains/code-intelligence/ tests/unit/coordination/mincut/",
@@ -134,12 +136,12 @@
134
136
  "@ruvector/router": "^0.1.28",
135
137
  "@ruvector/rvf-node": "^0.1.7",
136
138
  "@ruvector/sona": "0.1.5",
137
- "@xenova/transformers": "^2.17.2",
139
+ "@huggingface/transformers": "^4.2.0",
138
140
  "axe-core": "^4.11.1",
139
141
  "better-sqlite3": "^12.5.0",
140
142
  "chalk": "^5.6.2",
141
143
  "cli-progress": "^3.12.0",
142
- "commander": "^12.1.0",
144
+ "commander": "^14.0.3",
143
145
  "fast-glob": "^3.3.3",
144
146
  "fast-json-patch": "^3.1.1",
145
147
  "jose": "^6.1.3",
@@ -149,12 +151,22 @@
149
151
  "secure-json-parse": "^4.1.0",
150
152
  "uuid": "^14.0.0",
151
153
  "vibium": "^0.1.2",
152
- "web-tree-sitter": "~0.24.7",
154
+ "web-tree-sitter": "~0.26.8",
153
155
  "yaml": "^2.8.2"
154
156
  },
155
- "optionalDependencies": {
157
+ "peerDependencies": {
156
158
  "@claude-flow/browser": "3.0.0-alpha.1",
157
- "@claude-flow/guidance": "3.0.0-alpha.1",
159
+ "@claude-flow/guidance": "3.0.0-alpha.1"
160
+ },
161
+ "peerDependenciesMeta": {
162
+ "@claude-flow/browser": {
163
+ "optional": true
164
+ },
165
+ "@claude-flow/guidance": {
166
+ "optional": true
167
+ }
168
+ },
169
+ "optionalDependencies": {
158
170
  "hnswlib-node": "^3.0.0",
159
171
  "@ruvector/attention-darwin-arm64": "0.1.3",
160
172
  "@ruvector/attention-darwin-x64": "0.1.3",
@@ -193,15 +205,16 @@
193
205
  "@faker-js/faker": "^10.2.0",
194
206
  "@types/better-sqlite3": "^7.6.13",
195
207
  "@types/cli-progress": "^3.11.6",
196
- "@types/node": "^20.19.17",
208
+ "@types/node": "^25.8.0",
197
209
  "@types/pg": "^8.16.0",
198
210
  "@types/uuid": "^10.0.0",
199
211
  "@types/ws": "^8.18.1",
200
- "@typescript-eslint/eslint-plugin": "^6.13.0",
201
- "@typescript-eslint/parser": "^6.13.0",
212
+ "@claude-flow/guidance": "3.0.0-alpha.1",
213
+ "@typescript-eslint/eslint-plugin": "^8.59.3",
214
+ "@typescript-eslint/parser": "^8.59.3",
202
215
  "@vitest/coverage-v8": "^4.0.16",
203
216
  "dotenv": "^17.2.3",
204
- "esbuild": "^0.27.2",
217
+ "esbuild": "^0.28.0",
205
218
  "eslint": "^8.55.0",
206
219
  "glob": "^13.0.0",
207
220
  "msw": "^2.12.7",
@@ -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.9.31");process.exit(0)}
2
- import{a,b,c}from"./chunk-YMN4C32S.js";import"./chunk-JJRZOLDY.js";import"./chunk-5M4F3PAL.js";import"./chunk-WB6TI6Q3.js";import"./chunk-K6MFAVXK.js";import"./chunk-BMS7WFDB.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.9.31");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-G3YKCZWQ.js";import"./chunk-YN7HCVUP.js";import"./chunk-VOOJDHLI.js";import"./chunk-YEZJE2ZW.js";import"./chunk-UIIEZMSM.js";import"./chunk-VA45HLBF.js";import"./chunk-PYYNY7RJ.js";import"./chunk-AQN6PDHI.js";import"./chunk-ZG4EKPGV.js";import"./chunk-N6P7ENG7.js";import"./chunk-M6RVKGIP.js";import"./chunk-CNKOIHF6.js";import"./chunk-VSKABN3B.js";import"./chunk-XTWYCMAM.js";import"./chunk-7MXQV7RB.js";import"./chunk-X2FLWV5C.js";import"./chunk-WB6TI6Q3.js";import"./chunk-NTVJKQ5S.js";import"./chunk-5Z6PYYWK.js";import"./chunk-NZQYNUGM.js";import"./chunk-IRRGUXAU.js";import"./chunk-K6MFAVXK.js";import"./chunk-GQFAVT2I.js";import"./chunk-CFLA2GBS.js";import"./chunk-EJXRBAQF.js";import"./chunk-N6SIKSCO.js";import"./chunk-5WWQLPB4.js";import"./chunk-7OVVBBOZ.js";import"./chunk-G2U7Q6V6.js";import"./chunk-CUSLB7MB.js";import"./chunk-DMF4Z2M6.js";import"./chunk-AKFRM4IO.js";import"./chunk-BMS7WFDB.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.9.31");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-AKJWBJDK.js";import"./chunk-EAIPJSKH.js";import"./chunk-7MXQV7RB.js";import"./chunk-X2FLWV5C.js";import"./chunk-WB6TI6Q3.js";import"./chunk-5Z6PYYWK.js";import"./chunk-NZQYNUGM.js";import"./chunk-K6MFAVXK.js";import"./chunk-GQFAVT2I.js";import"./chunk-CFLA2GBS.js";import"./chunk-EJXRBAQF.js";import"./chunk-N6SIKSCO.js";import"./chunk-5WWQLPB4.js";import"./chunk-7OVVBBOZ.js";import"./chunk-G2U7Q6V6.js";import"./chunk-CUSLB7MB.js";import"./chunk-DMF4Z2M6.js";import"./chunk-AKFRM4IO.js";import"./chunk-BMS7WFDB.js";export{f as MCPToolBase,e as defaultToolLogger,d as getMemoryBackend,b as getSharedMemoryBackend,a as registerRvfResetFn,c as resetSharedMemoryBackend};
@@ -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.9.31");process.exit(0)}
2
- import{a}from"./chunk-IY4P35N3.js";import"./chunk-AKJWBJDK.js";import"./chunk-EAIPJSKH.js";import"./chunk-7MXQV7RB.js";import"./chunk-X2FLWV5C.js";import"./chunk-WB6TI6Q3.js";import"./chunk-5Z6PYYWK.js";import"./chunk-NZQYNUGM.js";import"./chunk-K6MFAVXK.js";import"./chunk-GQFAVT2I.js";import"./chunk-CFLA2GBS.js";import"./chunk-EJXRBAQF.js";import"./chunk-N6SIKSCO.js";import"./chunk-5WWQLPB4.js";import"./chunk-7OVVBBOZ.js";import"./chunk-G2U7Q6V6.js";import"./chunk-CUSLB7MB.js";import"./chunk-DMF4Z2M6.js";import"./chunk-AKFRM4IO.js";import"./chunk-BMS7WFDB.js";export{a as BrowserWorkflowTool};