agentic-qe 3.15.9 → 3.15.10

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 (568) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +251 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
  5. package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
  6. package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
  7. package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
  8. package/dist/adapters/ag-ui/json-patch.js +10 -6
  9. package/dist/audit/witness-chain.d.ts +1 -1
  10. package/dist/cli/bundle.js +6 -6
  11. package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
  12. package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
  13. package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-SVXSHEET.js} +2 -2
  14. package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-WKQH36XL.js} +2 -2
  15. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
  16. package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-EKOOFVST.js} +2 -2
  17. package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-OPS36NFZ.js} +4 -4
  18. package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-AO5NDZRI.js} +3 -3
  19. package/dist/cli/chunks/base-GTB6POYE.js +2 -0
  20. package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-TFLVEMMY.js} +2 -2
  21. package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-ADBBJPYW.js} +3 -3
  22. package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-HGHUYYL5.js} +2 -2
  23. package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
  24. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
  25. package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-2SXBBUM6.js} +2 -2
  26. package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-2T7RRL6G.js} +1 -1
  27. package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-2XGVTYVX.js} +2 -2
  28. package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-2ZI5FKSF.js} +2 -2
  29. package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
  30. package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-37OWRCUN.js} +1 -1
  31. package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-3P34JFQH.js} +4 -4
  32. package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-3Y7SPD72.js} +2 -2
  33. package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-4G63WT4F.js} +2 -2
  34. package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
  35. package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
  36. package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-5LPYV3TK.js} +1 -1
  37. package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-62OAY5KJ.js} +1 -1
  38. package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-6C3II5OM.js} +2 -2
  39. package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-6GP6W46M.js} +2 -2
  40. package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-6KIL6CMD.js} +2 -2
  41. package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-6MVVSSID.js} +1 -1
  42. package/dist/cli/chunks/{chunk-JEP4ULR6.js → chunk-6P7424AO.js} +2 -2
  43. package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-6PX4OXQO.js} +2 -2
  44. package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-6S3WJGUV.js} +2 -2
  45. package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-6TB6YOCZ.js} +1 -1
  46. package/dist/cli/chunks/{chunk-VU2EL424.js → chunk-6X5DHU6Q.js} +1 -1
  47. package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-6XCMKIZN.js} +1 -1
  48. package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-7LFZ4CHM.js} +2 -2
  49. package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-7OZVZIBE.js} +2 -2
  50. package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-7PJIR4ST.js} +2 -2
  51. package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-7TB6FK4B.js} +1 -1
  52. package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-7ZCDZHDB.js} +2 -2
  53. package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-A55QKKT2.js} +2 -2
  54. package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ABFFWZPC.js} +428 -433
  55. package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-ACWFKES2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-AH3ZD3NJ.js} +2 -2
  57. package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-AI4VYSFS.js} +2 -2
  58. package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
  59. package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
  60. package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-B6LTH6YV.js} +2 -2
  61. package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
  62. package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-C522H7XR.js} +54 -33
  63. package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-CESIR27V.js} +2 -2
  64. package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-CFBEBXLO.js} +3 -3
  65. package/dist/cli/chunks/{chunk-FJ4VTLLK.js → chunk-CMBLM26R.js} +2 -2
  66. package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-CZ2IF6MC.js} +1 -1
  67. package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-CZGOSJQ4.js} +2 -2
  68. package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-D6DA2KFD.js} +2 -2
  69. package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-DBMNJSBV.js} +1 -1
  70. package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-DE4YJQJF.js} +2 -2
  71. package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-DEF34AFL.js} +2 -2
  72. package/dist/cli/chunks/chunk-DKAC3E3B.js +3 -0
  73. package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-DMFTELBS.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-DNRWGATA.js} +10 -10
  75. package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-DT7SIJOA.js} +2 -2
  76. package/dist/cli/chunks/{chunk-6PXA2BQJ.js → chunk-DURHK377.js} +67 -67
  77. package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EAU5KDFO.js} +1 -1
  78. package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-EDLFX4ZB.js} +2 -2
  79. package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-EN2QSKFF.js} +2 -2
  80. package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-ERQKYIP7.js} +2 -2
  81. package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-ESUO3GTJ.js} +2 -2
  82. package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EWFECZ2U.js} +2 -2
  83. package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-FAUCT5KR.js} +3 -3
  84. package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-FB6TI3BH.js} +2 -2
  85. package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-FBXTQNRH.js} +2 -2
  86. package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-FESZBPUB.js} +2 -2
  87. package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
  88. package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-FKL3R5JQ.js} +2 -2
  89. package/dist/cli/chunks/{chunk-N5PDFGCQ.js → chunk-FPUDRSFJ.js} +2 -2
  90. package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-FZOWULMH.js} +1 -1
  91. package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-G3CZCUPM.js} +2 -2
  92. package/dist/cli/chunks/{chunk-FV3NHVC7.js → chunk-G5I6KGMW.js} +3 -3
  93. package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-GHBNRMSJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GJHWY3ZX.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-GJMLK5UT.js} +2 -2
  96. package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-GRCIBCJ2.js} +2 -2
  97. package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-GWZZ7DAO.js} +2 -2
  98. package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-GZLZCZ42.js} +2 -2
  99. package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-H2PYU7MN.js} +1 -1
  100. package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-H32EPIR2.js} +1 -1
  101. package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-H74Q7TJN.js} +1 -1
  102. package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
  103. package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-I33O4BRQ.js} +2 -2
  104. package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-IKISCIGH.js} +2 -2
  105. package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-IPJ7Q3AJ.js} +1 -1
  106. package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-IU2IV4NE.js} +1 -1
  107. package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-JHIY4VCC.js} +2 -2
  108. package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-KG336OV3.js} +2 -2
  109. package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-KI73QCR5.js} +2 -2
  110. package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-KNQ2ERFX.js} +2 -2
  111. package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-KOBVYY6H.js} +2 -2
  112. package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-KSIWGGJI.js} +8 -8
  113. package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LMS3Y7JD.js} +2 -2
  114. package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-LQEURY7C.js} +1 -1
  115. package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-LRZY4KS2.js} +2 -2
  116. package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-M2QV7PT7.js} +2 -2
  117. package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-MA7JIQ6U.js} +2 -2
  118. package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-MG27QY4D.js} +2 -2
  119. package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
  120. package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
  121. package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
  122. package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-NGKNYIQZ.js} +1 -1
  123. package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
  124. package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-NPPHWFA2.js} +3 -3
  125. package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-NSHU347M.js} +1 -1
  126. package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-NVYIZCSR.js} +2 -2
  127. package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-NW5JUCCG.js} +1 -1
  128. package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-NZYLNXT6.js} +3 -3
  129. package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-OBAREPDC.js} +2 -2
  130. package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-ODJNUMV3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-OEKP73MC.js} +2 -2
  132. package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-OPFGRS5S.js} +2 -2
  133. package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-OY2AHLSF.js} +1 -1
  134. package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-OY3NJNP2.js} +1 -1
  135. package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-PCEW6Q2C.js} +1 -1
  136. package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-PFG6VQ5Z.js} +2 -2
  137. package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-PGYMKGOE.js} +2 -2
  138. package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-PPSAMXYN.js} +3 -3
  139. package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
  140. package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-RPHY2DU6.js} +2 -2
  141. package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-RWWOHCMG.js} +25 -20
  142. package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-S75EYIJG.js} +1 -1
  143. package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-SKQUUE4F.js} +5 -5
  144. package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
  145. package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-SU5H66SD.js} +2 -2
  146. package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-SY2IB442.js} +2 -2
  147. package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-TBLI254A.js} +2 -2
  148. package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-TNMBRDCA.js} +3 -3
  149. package/dist/cli/chunks/{chunk-P2CXVNKK.js → chunk-TYFZXDGZ.js} +2 -2
  150. package/dist/cli/chunks/{chunk-2XITOPYV.js → chunk-U4OICXV2.js} +2 -2
  151. package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-U53ZB4IX.js} +2 -2
  152. package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
  153. package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-UCJMVXO4.js} +2 -2
  154. package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-UHTTW3IT.js} +2 -2
  155. package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-V2M2XCR5.js} +1 -1
  156. package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-V2RSNVMW.js} +1 -1
  157. package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-V6JBOIMX.js} +1 -1
  158. package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-VFKF2XO7.js} +1 -1
  159. package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-VFSYMOAL.js} +2 -2
  160. package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-VJQYDYAJ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-VKRTTFB6.js} +2 -2
  162. package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-VWNFAW2M.js} +2 -2
  163. package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-WBM6N6IM.js} +1 -1
  164. package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-WDQ7IEZY.js} +2 -2
  165. package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-WDVRE6GN.js} +2 -2
  166. package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-WQ4PYWSW.js} +1 -1
  167. package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-WSF24I3D.js} +2 -2
  168. package/dist/cli/chunks/{chunk-6YL6JOQB.js → chunk-XBVUVFJK.js} +2 -2
  169. package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-XEB3NLJR.js} +2 -2
  170. package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-XFVTGAAJ.js} +2 -2
  171. package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-XLZYRTNO.js} +2 -2
  172. package/dist/cli/chunks/{chunk-AR2E4B7K.js → chunk-XUZDBQ5X.js} +5 -5
  173. package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-Y76IAYQD.js} +1 -1
  174. package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-YAKGBHO4.js} +2 -2
  175. package/dist/cli/chunks/{chunk-JK2ME6IT.js → chunk-YBSBABOS.js} +2 -2
  176. package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-YCGP5VFP.js} +2 -2
  177. package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-YDAQK5UF.js} +1 -1
  178. package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-YK3BVZY6.js} +2 -2
  179. package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-YK7JN5N7.js} +4 -4
  180. package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-YKMU4LBV.js} +1 -1
  181. package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-YYTGXD3R.js} +2 -2
  182. package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-Z2O2YJAF.js} +2 -2
  183. package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-Z7IYW5U7.js} +1 -1
  184. package/dist/cli/chunks/{chunk-XZJ2O3VC.js → chunk-ZG5666GJ.js} +1 -1
  185. package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-ZXPY654C.js} +1 -1
  186. package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-MSKMVH5X.js} +2 -2
  187. package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-7ODMNAUM.js} +2 -2
  188. package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-FXZ7ZZW3.js} +2 -2
  189. package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-4VOUEPOX.js} +2 -2
  190. package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-7D4SGLM4.js} +2 -2
  191. package/dist/cli/chunks/client-POSVREVS.js +2 -0
  192. package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-WRRT7BGQ.js} +2 -2
  193. package/dist/cli/chunks/{code-ONKLMVQ2.js → code-ZDJRIL3S.js} +3 -3
  194. package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4S4SHM56.js} +2 -2
  195. package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-YTRHNDWR.js} +2 -2
  196. package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-6N64JUXJ.js} +2 -2
  197. package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
  198. package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-IIDR66LB.js} +2 -2
  199. package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-SVVFY3S2.js} +2 -2
  200. package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
  201. package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-VGFS6IBX.js} +2 -2
  202. package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B7MCGNTE.js} +3 -3
  203. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
  204. package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-UPETT57E.js} +2 -2
  205. package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
  206. package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-CQFNZLXU.js} +3 -3
  207. package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-PJVABHON.js} +2 -2
  208. package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-56SKAGWX.js} +2 -2
  209. package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-UYTYUMLN.js} +2 -2
  210. package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-YOYLBYJE.js} +2 -2
  211. package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-7TARX2XF.js} +2 -2
  212. package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
  213. package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
  214. package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
  215. package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-GNB574IM.js} +2 -2
  216. package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
  217. package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-KTZ5SF54.js} +2 -2
  218. package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-ITX5LQ57.js} +2 -2
  219. package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-KFHSR5YF.js} +2 -2
  220. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
  221. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
  222. package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-RLFW3GSX.js} +2 -2
  223. package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-EM2URCYZ.js} +4 -4
  224. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
  225. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
  226. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
  227. package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
  228. package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-CBP73QHY.js} +2 -2
  229. package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-IP7XE34Z.js} +34 -34
  230. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
  231. package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-ONAYHU25.js} +2 -2
  232. package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-VINJRAID.js} +3 -3
  233. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
  234. package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-RYVV5R3Z.js} +2 -2
  235. package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-MPRGWMOE.js} +6 -6
  236. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
  237. package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
  238. package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-OPD7JBRL.js} +2 -2
  239. package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-M4OPUNK2.js} +2 -2
  240. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
  241. package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-4UWTQLMF.js} +24 -24
  242. package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-SQ56FF6Z.js} +4 -4
  243. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
  244. package/dist/cli/chunks/{load-ZM43WGDO.js → load-HPHKDGGL.js} +2 -2
  245. package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
  246. package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
  247. package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-PFQ3KPVJ.js} +5 -5
  248. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
  249. package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
  250. package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-3VDRX6TZ.js} +2 -2
  251. package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-PJ576R63.js} +2 -2
  252. package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-72QP4UU7.js} +63 -19
  253. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
  254. package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-754YQW7C.js} +2 -2
  255. package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
  256. package/dist/cli/chunks/{platform-KJDABL5C.js → platform-3E3DXLYB.js} +2 -2
  257. package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-7FUQAKRE.js} +2 -2
  258. package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
  259. package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
  260. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
  261. package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-BQRYMUTG.js} +2 -2
  262. package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-H52QGC6B.js} +2 -2
  263. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
  264. package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-QO4XPAUM.js} +2 -2
  265. package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-FBKE5E6F.js} +3 -3
  266. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
  267. package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RWGOVOXO.js} +2 -2
  268. package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-LF76ZOBD.js} +2 -2
  269. package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-3BYEBTQ7.js} +2 -2
  270. package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
  271. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
  272. package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-DST7BVCU.js} +2 -2
  273. package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-XE32PGKC.js} +2 -2
  274. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
  275. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
  276. package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
  277. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
  278. package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
  279. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
  280. package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
  281. package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
  282. package/dist/cli/chunks/{security-AUDTRX3I.js → security-VSPNKCDS.js} +3 -3
  283. package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
  284. package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
  285. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
  286. package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-O4QUTK6L.js} +2 -2
  287. package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-Z2BP6EOG.js} +2 -2
  288. package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-R36WNLQG.js} +2 -2
  289. package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
  290. package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-QF5Y3EMZ.js} +2 -2
  291. package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-43PYE75J.js} +2 -2
  292. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
  293. package/dist/cli/chunks/{test-XFSGQELD.js → test-UWA377D4.js} +16 -16
  294. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
  295. package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-YQZPJRRN.js} +3 -3
  296. package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
  297. package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-DO6WLMXP.js} +2 -2
  298. package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-H5RGFKVO.js} +2 -2
  299. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
  300. package/dist/cli/chunks/{types-JTWLBAZJ.js → types-PJS2FGPF.js} +2 -2
  301. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
  302. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
  303. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
  304. package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-4IC4F6AB.js} +2 -2
  305. package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-DHUWW7PF.js} +2 -2
  306. package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-OERQNOX5.js} +2 -2
  307. package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
  308. package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-TV7DMKES.js} +2 -2
  309. package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-QZPWSH37.js} +2 -2
  310. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
  311. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
  312. package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
  313. package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-YXENHB42.js} +2 -2
  314. package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-HL26AGFO.js} +2 -2
  315. package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-EOVVCN2E.js} +4 -4
  316. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
  317. package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
  318. package/dist/cli/commands/fleet.js +19 -12
  319. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  320. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  322. package/dist/cli/commands/learning.js +5 -3
  323. package/dist/cli/commands/ruvector-commands.js +2 -1
  324. package/dist/cli/commands/test.js +6 -0
  325. package/dist/cli/utils/ci-output.d.ts +9 -0
  326. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  327. package/dist/cli/utils/fleet-operation.js +71 -0
  328. package/dist/cli/utils/fleet-result.d.ts +31 -0
  329. package/dist/cli/utils/fleet-result.js +124 -0
  330. package/dist/context/sources/git-source.js +6 -2
  331. package/dist/coordination/handlers/code-intelligence-handlers.js +60 -5
  332. package/dist/coordination/handlers/coverage-handlers.js +10 -1
  333. package/dist/coordination/handlers/requirements-handlers.js +16 -2
  334. package/dist/coordination/handlers/security-handlers.js +11 -1
  335. package/dist/coordination/handlers/test-execution-handlers.js +25 -7
  336. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  337. package/dist/coordination/mincut/queen-integration.js +83 -6
  338. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +2 -6
  339. package/dist/coordination/protocols/learning-consolidation-archive.js +4 -27
  340. package/dist/coordination/protocols/learning-consolidation.d.ts +24 -0
  341. package/dist/coordination/protocols/learning-consolidation.js +71 -22
  342. package/dist/coordination/queen-coordinator.d.ts +1 -1
  343. package/dist/coordination/queen-coordinator.js +19 -7
  344. package/dist/coordination/queen-event-handlers.js +13 -0
  345. package/dist/coordination/queen-task-management.d.ts +18 -24
  346. package/dist/coordination/queen-task-management.js +62 -168
  347. package/dist/coordination/queen-task-queue.d.ts +41 -0
  348. package/dist/coordination/queen-task-queue.js +194 -0
  349. package/dist/coordination/queen-types.d.ts +1 -1
  350. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  351. package/dist/coordination/queen-work-stealing.js +7 -4
  352. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  353. package/dist/coordination/result-saver-adapters.js +57 -0
  354. package/dist/coordination/result-saver.d.ts +1 -1
  355. package/dist/coordination/result-saver.js +8 -5
  356. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  357. package/dist/domains/code-intelligence/index-path-guard.d.ts +5 -2
  358. package/dist/domains/code-intelligence/index-path-guard.js +20 -50
  359. package/dist/domains/code-intelligence/plugin.js +5 -1
  360. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  361. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  362. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  363. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  364. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  365. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  366. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  367. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  368. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  369. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  370. package/dist/domains/defect-intelligence/plugin.js +11 -2
  371. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  372. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  373. package/dist/domains/defect-intelligence/services/defect-predictor.js +25 -10
  374. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  375. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  376. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  377. package/dist/domains/learning-optimization/active-patterns.d.ts +2 -2
  378. package/dist/domains/learning-optimization/active-patterns.js +2 -2
  379. package/dist/domains/learning-optimization/coordinator.js +9 -5
  380. package/dist/domains/learning-optimization/interfaces.d.ts +6 -2
  381. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  382. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  383. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  384. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  385. package/dist/domains/learning-optimization/reward-source.d.ts +13 -0
  386. package/dist/domains/learning-optimization/reward-source.js +8 -1
  387. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +5 -3
  388. package/dist/domains/learning-optimization/services/learning-coordinator.js +45 -58
  389. package/dist/domains/security-compliance/plugin.js +17 -3
  390. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  391. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  392. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  393. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  394. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  395. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  396. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  397. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  398. package/dist/domains/test-execution/coordinator.d.ts +5 -0
  399. package/dist/domains/test-execution/coordinator.js +35 -20
  400. package/dist/domains/test-execution/interfaces.d.ts +25 -0
  401. package/dist/domains/test-execution/plugin.js +19 -4
  402. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  403. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  404. package/dist/domains/test-execution/services/runner-test-cases.d.ts +11 -0
  405. package/dist/domains/test-execution/services/runner-test-cases.js +20 -2
  406. package/dist/domains/test-execution/services/test-executor.js +8 -8
  407. package/dist/domains/test-generation/plugin.js +7 -2
  408. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  409. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  410. package/dist/hooks/cross-phase-hooks.js +2 -1
  411. package/dist/init/phases/10-workers.js +50 -6
  412. package/dist/integrations/browser/agent-browser/client.js +37 -52
  413. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  414. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  415. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  416. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  417. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  418. package/dist/integrations/vibium/client.js +2 -2
  419. package/dist/integrations/vibium/runtime.d.ts +1 -1
  420. package/dist/integrations/vibium/runtime.js +14 -11
  421. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  422. package/dist/kernel/unified-memory-schemas.js +3 -2
  423. package/dist/kernel/unified-memory.js +25 -6
  424. package/dist/learning/dream/dream-commit.d.ts +65 -0
  425. package/dist/learning/dream/dream-commit.js +104 -0
  426. package/dist/learning/dream/dream-engine.d.ts +81 -31
  427. package/dist/learning/dream/dream-engine.js +225 -168
  428. package/dist/learning/dream/dream-insights-pruner.d.ts +9 -3
  429. package/dist/learning/dream/dream-insights-pruner.js +16 -30
  430. package/dist/learning/dream/index.d.ts +3 -2
  431. package/dist/learning/dream/index.js +3 -1
  432. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  433. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  434. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  435. package/dist/learning/dream/speculative-dreamer.js +64 -111
  436. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  437. package/dist/learning/dream/spreading-activation.js +15 -6
  438. package/dist/learning/experience-capture.d.ts +9 -0
  439. package/dist/learning/experience-capture.js +18 -4
  440. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  441. package/dist/learning/qe-reasoning-bank.js +22 -11
  442. package/dist/learning/sqlite-persistence.d.ts +6 -0
  443. package/dist/learning/sqlite-persistence.js +16 -2
  444. package/dist/learning/usage-outcome.d.ts +68 -0
  445. package/dist/learning/usage-outcome.js +84 -0
  446. package/dist/mcp/background-workers.d.ts +13 -1
  447. package/dist/mcp/background-workers.js +17 -3
  448. package/dist/mcp/bundle.js +607 -580
  449. package/dist/mcp/handlers/core-handlers.js +11 -0
  450. package/dist/mcp/handlers/domain-handler-configs.d.ts +5 -0
  451. package/dist/mcp/handlers/domain-handler-configs.js +11 -3
  452. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  453. package/dist/mcp/handlers/handler-factory.js +36 -15
  454. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  455. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  456. package/dist/mcp/handlers/task-handlers.d.ts +3 -0
  457. package/dist/mcp/handlers/task-handlers.js +35 -8
  458. package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
  459. package/dist/mcp/protocol-server.js +2 -0
  460. package/dist/mcp/security/schema-validator.js +3 -2
  461. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  462. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  463. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  464. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  465. package/dist/mcp/tools/learning-optimization/optimize.d.ts +18 -2
  466. package/dist/mcp/tools/learning-optimization/optimize.js +58 -10
  467. package/dist/mcp/tools/quality-assessment/gate.js +12 -1
  468. package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
  469. package/dist/migration/agent-compat.js +7 -5
  470. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  471. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  472. package/dist/shared/git/git-analyzer.d.ts +49 -0
  473. package/dist/shared/git/git-analyzer.js +159 -319
  474. package/dist/shared/git/git-process.d.ts +22 -0
  475. package/dist/shared/git/git-process.js +37 -0
  476. package/dist/shared/git/index.d.ts +1 -0
  477. package/dist/shared/git/index.js +1 -0
  478. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  479. package/dist/shared/io/payload-path-guard.js +190 -0
  480. package/dist/shared/llm/router/agent-router-config.js +2 -1
  481. package/dist/shared/llm/translation/tool-translator.js +2 -1
  482. package/dist/shared/test-runner-args.d.ts +5 -0
  483. package/dist/shared/test-runner-args.js +6 -1
  484. package/dist/shared/test-runner-process.d.ts +6 -0
  485. package/dist/shared/test-runner-process.js +14 -0
  486. package/dist/shared/test-runner-verdict.d.ts +9 -1
  487. package/dist/shared/test-runner-verdict.js +15 -4
  488. package/dist/shared/utils/namespaced-search.d.ts +14 -0
  489. package/dist/shared/utils/namespaced-search.js +19 -1
  490. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  491. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  492. package/dist/validation/gate-reexecute.js +7 -4
  493. package/dist/workers/daemon.js +13 -1
  494. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  495. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  496. package/dist/workers/workers/defect-predictor.js +48 -49
  497. package/dist/workers/workers/learning-consolidation.d.ts +2 -0
  498. package/dist/workers/workers/learning-consolidation.js +12 -1
  499. package/dist/workflows/browser/workflow-loader.js +8 -5
  500. package/package.json +1 -1
  501. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +0 -2
  502. package/dist/cli/chunks/agent-booster-wasm-427FRKWG.js +0 -2
  503. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +0 -2
  504. package/dist/cli/chunks/base-67DXSAYM.js +0 -2
  505. package/dist/cli/chunks/browser-CT3MTV6G.js +0 -4
  506. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +0 -2
  507. package/dist/cli/chunks/chunk-4URT6JO2.js +0 -2
  508. package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
  509. package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
  510. package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
  511. package/dist/cli/chunks/chunk-G3BKZNFL.js +0 -120
  512. package/dist/cli/chunks/chunk-GR3JYE5A.js +0 -2
  513. package/dist/cli/chunks/chunk-J3WGK22W.js +0 -2
  514. package/dist/cli/chunks/chunk-KHSRIPBP.js +0 -180
  515. package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
  516. package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
  517. package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
  518. package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
  519. package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
  520. package/dist/cli/chunks/client-ZP3CTVRF.js +0 -2
  521. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +0 -2
  522. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +0 -2
  523. package/dist/cli/chunks/daemon-YIFT46FH.js +0 -34
  524. package/dist/cli/chunks/domain-transfer-6EF75EKU.js +0 -2
  525. package/dist/cli/chunks/dream-UDLM6M55.js +0 -2
  526. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +0 -2
  527. package/dist/cli/chunks/fleet-ADL57COA.js +0 -44
  528. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +0 -2
  529. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +0 -2
  530. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +0 -2
  531. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +0 -2
  532. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +0 -2
  533. package/dist/cli/chunks/init-wizard-422UZYQ5.js +0 -2
  534. package/dist/cli/chunks/kernel-N7PJ6FCE.js +0 -2
  535. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +0 -2
  536. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +0 -2
  537. package/dist/cli/chunks/load-test-POMIF4Q4.js +0 -2
  538. package/dist/cli/chunks/mcp-CRZKZE37.js +0 -2
  539. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +0 -2
  540. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +0 -2
  541. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +0 -2
  542. package/dist/cli/chunks/pipeline-5LMLBIJ7.js +0 -19
  543. package/dist/cli/chunks/project-root-X72FSM2F.js +0 -2
  544. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +0 -2
  545. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +0 -2
  546. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +0 -2
  547. package/dist/cli/chunks/router-CXZKOOTR.js +0 -2
  548. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +0 -2
  549. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +0 -2
  550. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +0 -2
  551. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +0 -2
  552. package/dist/cli/chunks/safe-db-WFODRGVZ.js +0 -2
  553. package/dist/cli/chunks/schedule-RO55OQXG.js +0 -2
  554. package/dist/cli/chunks/scheduler-XXMJCH24.js +0 -2
  555. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +0 -2
  556. package/dist/cli/chunks/sync-UVXA6CT2.js +0 -2
  557. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +0 -9
  558. package/dist/cli/chunks/token-bootstrap-EDK6FNQ3.js +0 -2
  559. package/dist/cli/chunks/tree-sitter-wasm-parser-MI3NZKUD.js +0 -2
  560. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +0 -2
  561. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +0 -2
  562. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +0 -2
  563. package/dist/cli/chunks/visual-security-6VZNQLH7.js +0 -2
  564. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +0 -2
  565. package/dist/cli/chunks/witness-chain-TATPXQRK.js +0 -2
  566. package/dist/cli/chunks/witness-chain-repair-2HGJGE7O.js +0 -2
  567. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +0 -2
  568. package/dist/cli/chunks/wrappers-ZD5NBHYI.js +0 -2
@@ -25,7 +25,8 @@ import { registerStoreCloser } from '../../kernel/process-lifecycle.js';
25
25
  import { ConceptGraph } from './concept-graph.js';
26
26
  import { SpreadingActivation, } from './spreading-activation.js';
27
27
  import { InsightGenerator, } from './insight-generator.js';
28
- import { RVCOWBranchManager, DEFAULT_VALIDATION_THRESHOLDS, } from './rvcow-branch-manager.js';
28
+ import { DEFAULT_VALIDATION_THRESHOLDS, } from './rvcow-branch-manager.js';
29
+ import { commitDream, markAbandonedCycles, ABANDONED_CYCLE_GRACE_MS, } from './dream-commit.js';
29
30
  /**
30
31
  * Default DreamEngine configuration
31
32
  */
@@ -44,10 +45,24 @@ export const DEFAULT_DREAM_CONFIG = {
44
45
  minConfidence: 0.5,
45
46
  maxInsightsPerCycle: 10,
46
47
  },
47
- // #1060: off by default; see the RISK note on DreamConfig.enableBranching.
48
+ // #1060: deprecated and ignored; see DreamConfig.enableBranching.
48
49
  enableBranching: false,
49
50
  branchValidationThresholds: { ...DEFAULT_VALIDATION_THRESHOLDS },
50
51
  };
52
+ /**
53
+ * #1060: the longest dream the MCP tool runs (its durationMs cap). The
54
+ * abandoned-cycle sweep waits at least this long plus the grace period.
55
+ */
56
+ const MAX_TOOL_DREAM_MS = 60_000;
57
+ /** #1060: a second dream on the same engine while one is running. */
58
+ export class DreamAlreadyRunningError extends Error {
59
+ cycleId;
60
+ constructor(cycleId) {
61
+ super(`A dream cycle is already running (cycle ${cycleId}); wait for it to finish or cancel it`);
62
+ this.cycleId = cycleId;
63
+ this.name = 'DreamAlreadyRunningError';
64
+ }
65
+ }
51
66
  // ============================================================================
52
67
  // ConceptGraph Adapter
53
68
  // ============================================================================
@@ -64,6 +79,8 @@ class ConceptGraphAdapter {
64
79
  nodeCache = new Map();
65
80
  edgeCache = new Map();
66
81
  activationLevels = new Map();
82
+ /** #1060: each node's level when loaded, for the commit's conflict check. */
83
+ loadedLevels = new Map();
67
84
  constructor(graph) {
68
85
  this.graph = graph;
69
86
  }
@@ -77,6 +94,7 @@ class ConceptGraphAdapter {
77
94
  this.nodeCache.clear();
78
95
  this.edgeCache.clear();
79
96
  this.activationLevels.clear();
97
+ this.loadedLevels.clear();
80
98
  // Load nodes (all or capped)
81
99
  let nodes = await this.graph.getActiveNodes(0);
82
100
  if (maxNodes && nodes.length > maxNodes) {
@@ -87,6 +105,7 @@ class ConceptGraphAdapter {
87
105
  for (const node of nodes) {
88
106
  this.nodeCache.set(node.id, node);
89
107
  this.activationLevels.set(node.id, node.activationLevel);
108
+ this.loadedLevels.set(node.id, node.activationLevel);
90
109
  }
91
110
  // Load edges for each node
92
111
  for (const node of nodes) {
@@ -96,13 +115,17 @@ class ConceptGraphAdapter {
96
115
  }
97
116
  }
98
117
  /**
99
- * Persist activation levels back to the database
118
+ * Final activation levels with the levels loaded, written by commitDream()
119
+ * in the cycle's single transaction (#1060) instead of one awaited UPDATE
120
+ * per node. The loaded level lets the commit skip a node a foreground write
121
+ * changed during the dream.
100
122
  */
101
- async persistActivations() {
102
- const entries = Array.from(this.activationLevels.entries());
103
- for (const [nodeId, level] of entries) {
104
- await this.graph.updateActivation(nodeId, level);
105
- }
123
+ activationEntries() {
124
+ return Array.from(this.activationLevels.entries(), ([id, level]) => [
125
+ id,
126
+ level,
127
+ this.loadedLevels.get(id),
128
+ ]);
106
129
  }
107
130
  // SpreadingConceptGraph interface implementation
108
131
  getConcept(id) {
@@ -207,21 +230,26 @@ export class DreamEngine {
207
230
  persistence = null;
208
231
  graph = null;
209
232
  db = null;
210
- branchManager = null;
211
233
  /** #1060: marks the in-flight dream cycle interrupted (set while dreaming). */
212
234
  interruptActiveDream = null;
235
+ /** #1060: the in-flight dream, so close() can wait for it to stop. */
236
+ activeDream = null;
237
+ /** #1060: stops the in-flight dream's activation loop. */
238
+ activeAbort = null;
213
239
  currentCycle = null;
214
240
  initialized = false;
215
241
  cancelled = false;
242
+ /** #1060: how many times cancelDream() was called (see cancelCount). */
243
+ cancelRequests = 0;
244
+ /** #1060: set by close() until the engine is initialized again. */
245
+ closing = false;
216
246
  branchEventListeners = [];
217
247
  /** Optional witness chain for audit trail of dream decisions (ADR-070) */
218
248
  _witnessChain = null;
219
249
  set witnessChain(wc) { this._witnessChain = wc; }
220
- /** Optional RVF adapter for COW branching (ADR-069). Set externally to share with PatternStore. */
250
+ /** @deprecated #1060: branching is ignored, so the RVF adapter is unused. */
221
251
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
222
- _rvfAdapter = null;
223
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
224
- set rvfAdapter(adapter) { this._rvfAdapter = adapter; }
252
+ set rvfAdapter(_adapter) { }
225
253
  constructor(config) {
226
254
  this.config = { ...DEFAULT_DREAM_CONFIG, ...config };
227
255
  }
@@ -253,17 +281,18 @@ export class DreamEngine {
253
281
  // Initialize concept graph (shares same unified persistence)
254
282
  this.graph = new ConceptGraph();
255
283
  await this.graph.initialize();
256
- // Initialize RVCOW branch manager (ADR-069)
284
+ // #1060: branching is deprecated; dream results commit in one transaction.
257
285
  if (this.config.enableBranching) {
258
- this.branchManager = new RVCOWBranchManager(this.db, this.config.branchValidationThresholds);
259
- // ADR-069: Wire RVF adapter for true COW branching when available
260
- // Uses externally-provided adapter to avoid duplicate file handles
261
- if (this._rvfAdapter) {
262
- this.branchManager.setRvfAdapter(this._rvfAdapter, true);
263
- console.log('[DreamEngine] RVF COW branching activated (ADR-069)');
264
- }
286
+ dreamLogger.warn('DreamConfig.enableBranching is deprecated and ignored (#1060): dream results are ' +
287
+ 'committed in one short transaction instead of a SAVEPOINT held across the dream');
288
+ }
289
+ // #1060: a process that exited mid-dream left its cycle 'running'.
290
+ const abandoned = markAbandonedCycles(this.db, Math.max(this.config.maxDurationMs, MAX_TOOL_DREAM_MS) + ABANDONED_CYCLE_GRACE_MS);
291
+ if (abandoned > 0) {
292
+ dreamLogger.info('Marked abandoned dream cycles as interrupted', { abandoned });
265
293
  }
266
294
  this.initialized = true;
295
+ this.closing = false;
267
296
  console.log(`[DreamEngine] Initialized: ${this.persistence.getDbPath()}`);
268
297
  }
269
298
  catch (error) {
@@ -330,16 +359,27 @@ export class DreamEngine {
330
359
  * 4. Generates insights from activation patterns
331
360
  * 5. Persists the cycle and insights
332
361
  *
362
+ * The cycle row is written as 'running' when the dream starts. Another
363
+ * process's DreamEngine.initialize() marks a cycle still 'running' after
364
+ * max(its config.maxDurationMs, 60 s) + ABANDONED_CYCLE_GRACE_MS (10 min),
365
+ * i.e. 11 minutes by default, as interrupted ('abandoned: process exited').
366
+ * The MCP tool and the CLI cap dreams at 60 s. A library caller that runs
367
+ * dreams longer than about 10 minutes (graph loading included) should give
368
+ * every engine sharing the database a maxDurationMs at least that long, or
369
+ * a live cycle can be marked interrupted. Its commit still records the
370
+ * final status, and nothing is deleted.
371
+ *
333
372
  * @param durationMs - Maximum duration in milliseconds (default: config.maxDurationMs)
334
373
  * @returns Dream cycle result with insights and statistics
335
374
  */
336
- async dream(durationMs) {
375
+ async dream(durationMs, options = {}) {
337
376
  this.ensureInitialized();
338
- this.cancelled = false;
339
- const maxDuration = durationMs ?? this.config.maxDurationMs;
340
- const startTime = Date.now();
341
- // Create cycle record
342
- this.currentCycle = {
377
+ if (this.closing)
378
+ throw new Error('Dream engine is closing; no new dream is started');
379
+ // #1060: one dream at a time per engine; a second request is refused.
380
+ if (this.activeDream)
381
+ throw new DreamAlreadyRunningError(this.activeDream.cycleId);
382
+ const cycle = {
343
383
  id: uuidv4(),
344
384
  startTime: new Date(),
345
385
  conceptsProcessed: 0,
@@ -347,92 +387,81 @@ export class DreamEngine {
347
387
  insightsGenerated: 0,
348
388
  status: 'running',
349
389
  };
350
- await this.saveCycle(this.currentCycle);
351
- // ADR-069: Create RVCOW branch before dream consolidation (opt-in, #1060)
352
- let branch = null;
353
- if (this.branchManager) {
354
- const branchName = `dream-${this.currentCycle.id}-${Date.now()}`;
355
- branch = this.branchManager.createBranch(branchName);
356
- this.emitBranchEvent('dream:branch_created', branch);
390
+ const run = this.runDream(cycle, durationMs ?? this.config.maxDurationMs, options);
391
+ this.activeDream = { cycleId: cycle.id, done: run.catch(() => undefined) };
392
+ try {
393
+ return await run;
357
394
  }
358
- // #1060: if the engine closes or the process shuts down mid-dream, record
359
- // the cycle as interrupted instead of leaving it 'running' forever.
360
- const interrupt = this.createCycleInterrupter(this.currentCycle, startTime, () => branch);
395
+ finally {
396
+ if (this.activeDream?.cycleId === cycle.id)
397
+ this.activeDream = null;
398
+ }
399
+ }
400
+ /**
401
+ * #1060: compute, then commit. Everything up to the commit reads the
402
+ * database or works in memory; the results are written by commitDream() in
403
+ * one synchronous transaction, so no lock is held across an await and no
404
+ * foreground write can join the dream's writes or be rolled back with them.
405
+ */
406
+ async runDream(cycle, maxDuration, options) {
407
+ const db = this.db;
408
+ const graph = this.graph;
409
+ const startTime = Date.now();
410
+ const abort = new AbortController();
411
+ this.activeAbort = abort;
412
+ this.cancelled = false;
413
+ this.currentCycle = cycle;
414
+ const commitResults = options.commit !== false;
415
+ // If the engine closes or the process shuts down mid-dream, stop the dream
416
+ // and record the cycle as interrupted instead of leaving it 'running'.
417
+ // Registered before the first await, so a close() or shutdown right after
418
+ // dream() is called still reaches this dream.
419
+ const interrupt = this.createCycleInterrupter(cycle, startTime, abort);
361
420
  this.interruptActiveDream = interrupt;
362
421
  const unregisterShutdownGuard = registerStoreCloser(interrupt);
422
+ // The engine still owns this database and nobody asked the dream to stop.
423
+ const live = () => !this.cancelled && !abort.signal.aborted && this.db === db;
424
+ let committed = false;
363
425
  try {
426
+ if (commitResults)
427
+ await this.saveCycle(cycle);
428
+ if (!live())
429
+ throw new Error('Dream cycle cancelled');
364
430
  // 1. Check we have enough concepts
365
- const allNodes = await this.graph.getActiveNodes(0);
366
- if (allNodes.length < this.config.minConceptsRequired) {
367
- throw new Error(`Insufficient concepts: ${allNodes.length} < ${this.config.minConceptsRequired}`);
431
+ const minConcepts = options.minConceptsRequired ?? this.config.minConceptsRequired;
432
+ const allNodes = await graph.getActiveNodes(0);
433
+ if (allNodes.length < minConcepts) {
434
+ throw new Error(`Insufficient concepts: ${allNodes.length} < ${minConcepts}`);
368
435
  }
369
- // 2. Create adapter and load graph into memory.
370
- // Cap nodes to keep wall-clock time reasonable on large concept graphs.
371
- // Each node requires DB queries for edges (O(N) queries per node),
372
- // so fewer nodes significantly reduces initialization time.
373
- const adapter = new ConceptGraphAdapter(this.graph);
436
+ // 2. Load the graph into memory. Each node requires DB queries for
437
+ // edges, so the node count is capped to keep wall-clock time reasonable.
438
+ const adapter = new ConceptGraphAdapter(graph);
374
439
  await adapter.loadIntoMemory(30);
375
- // 3. Run spreading activation (the "dreaming")
376
- const activation = new SpreadingActivation(adapter, this.config.activationConfig);
377
- const activationResult = await activation.dream(maxDuration);
378
- // Check for cancellation
379
- if (this.cancelled) {
380
- this.currentCycle.status = 'interrupted';
381
- this.currentCycle.endTime = new Date();
382
- this.currentCycle.durationMs = Date.now() - startTime;
383
- await this.updateCycle(this.currentCycle);
440
+ // 3. Spreading activation (the "dreaming"), in memory only.
441
+ const activation = new SpreadingActivation(adapter, {
442
+ ...this.config.activationConfig,
443
+ ...options.activationConfig,
444
+ });
445
+ const activationResult = await activation.dream(maxDuration, abort.signal);
446
+ if (!live())
384
447
  throw new Error('Dream cycle cancelled');
385
- }
386
- this.currentCycle.conceptsProcessed = activationResult.nodesActivated;
387
- this.currentCycle.associationsFound = activationResult.novelAssociations.length;
388
- // 4. Persist activation levels
389
- await adapter.persistActivations();
390
- // 5. Generate insights from activation
448
+ cycle.conceptsProcessed = activationResult.nodesActivated;
449
+ cycle.associationsFound = activationResult.novelAssociations.length;
450
+ // 4. Insights, in memory only.
391
451
  const generator = new InsightGenerator(adapter, this.config.insightConfig);
392
- const insights = await generator.generateFromActivation(this.currentCycle.id, activationResult);
393
- this.currentCycle.insightsGenerated = insights.length;
394
- // 6. Save insights
395
- for (const insight of insights) {
396
- await this.saveInsight(insight);
397
- }
398
- // 7. Finalize cycle
399
- this.currentCycle.endTime = new Date();
400
- this.currentCycle.durationMs = Date.now() - startTime;
401
- this.currentCycle.status = 'completed';
402
- await this.updateCycle(this.currentCycle);
403
- // ADR-069: Validate and merge/discard the RVCOW branch
404
- if (branch && this.branchManager) {
405
- const validation = this.branchManager.validateBranch(branch);
406
- if (validation.passed) {
407
- this.branchManager.mergeBranch(branch);
408
- this.emitBranchEvent('dream:branch_merged', branch, validation);
409
- try {
410
- this._witnessChain?.append('DREAM_MERGE', {
411
- cycleId: this.currentCycle.id, branchName: branch.name,
412
- }, 'dream-engine');
413
- }
414
- catch { /* best-effort witness */ }
415
- }
416
- else {
417
- this.branchManager.discardBranch(branch);
418
- this.emitBranchEvent('dream:branch_discarded', branch, validation);
419
- try {
420
- this._witnessChain?.append('DREAM_DISCARD', {
421
- cycleId: this.currentCycle.id, branchName: branch.name,
422
- reason: validation.reason,
423
- }, 'dream-engine');
424
- }
425
- catch { /* best-effort witness */ }
426
- dreamLogger.warn('Dream branch discarded: quality validation failed', {
427
- cycleId: this.currentCycle.id,
428
- reason: validation.reason,
429
- });
430
- // Still return results so caller sees what happened
431
- }
432
- branch = null; // Prevent double-discard in catch
433
- }
452
+ const insights = await generator.generateFromActivation(cycle.id, activationResult);
453
+ if (!live())
454
+ throw new Error('Dream cycle cancelled');
455
+ // 5. Commit activations, insights and the final cycle row together.
456
+ // live() was checked synchronously just above, so the dream is
457
+ // still wanted and the engine still owns the database.
458
+ cycle.insightsGenerated = insights.length;
459
+ cycle.endTime = new Date();
460
+ cycle.durationMs = Date.now() - startTime;
461
+ cycle.status = 'completed';
462
+ const computed = { cycle, activations: adapter.activationEntries(), insights };
434
463
  const result = {
435
- cycle: { ...this.currentCycle },
464
+ cycle: { ...cycle },
436
465
  insights,
437
466
  activationStats: {
438
467
  totalIterations: activationResult.iterations,
@@ -441,59 +470,93 @@ export class DreamEngine {
441
470
  },
442
471
  patternsCreated: 0, // Updated when insights are applied
443
472
  };
444
- this.currentCycle = null;
473
+ if (!commitResults) {
474
+ committed = true; // nothing to record: the caller decides
475
+ return { ...result, pending: computed };
476
+ }
477
+ result.commitDurationMs = this.commitComputed(db, computed);
478
+ committed = true;
445
479
  return result;
446
480
  }
447
481
  catch (error) {
448
- // ADR-069: Discard branch on error to ensure no partial mutations persist
449
- if (branch && this.branchManager) {
450
- try {
451
- this.branchManager.discardBranch(branch);
452
- this.emitBranchEvent('dream:branch_discarded', branch);
453
- }
454
- catch {
455
- // Branch may already be discarded; ignore
482
+ // Nothing of the dream was committed. An interrupted cycle was already
483
+ // recorded by the interrupter; anything else is recorded as failed.
484
+ if (!committed && cycle.status !== 'interrupted') {
485
+ cycle.status = this.cancelled ? 'interrupted' : 'failed';
486
+ cycle.error = toErrorMessage(error);
487
+ cycle.endTime = new Date();
488
+ cycle.durationMs = Date.now() - startTime;
489
+ if (commitResults && this.db === db) {
490
+ try {
491
+ this.updateCycleSync(cycle);
492
+ }
493
+ catch { /* best effort */ }
456
494
  }
457
495
  }
458
- if (this.currentCycle) {
459
- if (this.currentCycle.status === 'running') {
460
- this.currentCycle.status = 'failed';
496
+ if (!committed && commitResults) {
497
+ try {
498
+ this._witnessChain?.append('DREAM_DISCARD', {
499
+ cycleId: cycle.id, reason: toErrorMessage(error),
500
+ }, 'dream-engine');
461
501
  }
462
- this.currentCycle.error = toErrorMessage(error);
463
- this.currentCycle.endTime = new Date();
464
- this.currentCycle.durationMs = Date.now() - startTime;
465
- await this.updateCycle(this.currentCycle);
502
+ catch { /* best-effort witness */ }
466
503
  }
467
- this.currentCycle = null;
468
504
  throw error;
469
505
  }
470
506
  finally {
471
507
  unregisterShutdownGuard();
472
508
  if (this.interruptActiveDream === interrupt)
473
509
  this.interruptActiveDream = null;
510
+ if (this.currentCycle === cycle)
511
+ this.currentCycle = null;
512
+ if (this.activeAbort === abort)
513
+ this.activeAbort = null;
514
+ }
515
+ }
516
+ /**
517
+ * #1060: write the results of a `dream(…, { commit: false })` run, in the
518
+ * same single transaction a normal dream uses. Returns the commit duration
519
+ * in ms. Throws (and writes nothing) if the engine is closed or the write
520
+ * fails.
521
+ */
522
+ commitDreamResult(result) {
523
+ this.ensureInitialized();
524
+ if (this.closing) {
525
+ throw new Error('Dream engine is closing; nothing is committed');
526
+ }
527
+ if (!result.pending) {
528
+ throw new Error('Dream result has nothing pending to commit (it was already committed)');
474
529
  }
530
+ const duration = this.commitComputed(this.db, result.pending);
531
+ result.pending = undefined;
532
+ result.commitDurationMs = duration;
533
+ return duration;
534
+ }
535
+ /** Commit a computed dream, then record it in the witness chain (#1060). */
536
+ commitComputed(db, computed) {
537
+ const commit = commitDream(db, computed);
538
+ try {
539
+ this._witnessChain?.append('DREAM_COMMIT', {
540
+ cycleId: computed.cycle.id,
541
+ insights: commit.insightsWritten,
542
+ activations: commit.activationsWritten,
543
+ commitDurationMs: commit.commitDurationMs,
544
+ }, 'dream-engine');
545
+ }
546
+ catch { /* best-effort witness */ }
547
+ return commit.commitDurationMs;
475
548
  }
476
549
  /**
477
- * #1060: build a synchronous handler that records a still-running cycle as
478
- * 'interrupted'. It runs from close() and from a process store closer,
479
- * which runs before the shared database closes (closers run newest first).
480
- * When opt-in branching left a savepoint open, the savepoint is released
481
- * first so foreground writes made on the shared connection during the
482
- * dream are committed rather than lost with the connection.
550
+ * #1060: build a synchronous handler that stops a still-running dream and
551
+ * records its cycle as 'interrupted'. It runs from close() and from a
552
+ * process store closer, which runs before the shared database closes
553
+ * (closers run newest first). Nothing of the dream is committed afterwards.
483
554
  */
484
- createCycleInterrupter(cycle, startTime, getBranch) {
555
+ createCycleInterrupter(cycle, startTime, abort) {
485
556
  return () => {
557
+ abort.abort();
486
558
  if (cycle.status !== 'running' || !this.db)
487
559
  return;
488
- const branch = getBranch();
489
- if (branch && this.branchManager) {
490
- try {
491
- this.branchManager.mergeBranch(branch);
492
- }
493
- catch {
494
- // Branch already resolved; nothing to release
495
- }
496
- }
497
560
  cycle.status = 'interrupted';
498
561
  cycle.error = 'Interrupted: engine closed or process shut down during the dream cycle';
499
562
  cycle.endTime = new Date();
@@ -767,11 +830,21 @@ export class DreamEngine {
767
830
  // ==========================================================================
768
831
  // Dream Control
769
832
  // ==========================================================================
833
+ /**
834
+ * #1060: number of cancelDream() calls so far. A caller that runs several
835
+ * dreams in a row (SpeculativeDreamer) compares it to stop after a cancel.
836
+ */
837
+ get cancelCount() {
838
+ return this.cancelRequests;
839
+ }
770
840
  /**
771
841
  * Cancel the running dream cycle.
772
842
  */
773
843
  async cancelDream() {
774
844
  this.cancelled = true;
845
+ this.cancelRequests++;
846
+ // #1060: stop the activation loop now; nothing of the dream is committed.
847
+ this.activeAbort?.abort();
775
848
  }
776
849
  /**
777
850
  * Check if a dream is currently running.
@@ -799,9 +872,6 @@ export class DreamEngine {
799
872
  `);
800
873
  stmt.run(cycle.id, cycle.startTime.toISOString(), cycle.endTime?.toISOString() ?? null, cycle.durationMs ?? null, cycle.conceptsProcessed, cycle.associationsFound, cycle.insightsGenerated, cycle.status, cycle.error ?? null, cycle.startTime.toISOString());
801
874
  }
802
- async updateCycle(cycle) {
803
- this.updateCycleSync(cycle);
804
- }
805
875
  updateCycleSync(cycle) {
806
876
  if (!this.db)
807
877
  return;
@@ -813,19 +883,6 @@ export class DreamEngine {
813
883
  `);
814
884
  stmt.run(cycle.endTime?.toISOString() ?? null, cycle.durationMs ?? null, cycle.conceptsProcessed, cycle.associationsFound, cycle.insightsGenerated, cycle.status, cycle.error ?? null, cycle.id);
815
885
  }
816
- async saveInsight(insight) {
817
- if (!this.db)
818
- return;
819
- const stmt = this.db.prepare(`
820
- INSERT INTO dream_insights
821
- (id, cycle_id, insight_type, source_concepts, description, novelty_score,
822
- confidence_score, actionable, applied, suggested_action, pattern_id)
823
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
824
- `);
825
- stmt.run(insight.id, insight.cycleId, insight.type, JSON.stringify(insight.sourceConcepts), insight.description, insight.noveltyScore, insight.confidenceScore, insight.actionable ? 1 : 0, 0, // Not applied yet
826
- insight.suggestedAction ?? null, null // No pattern yet
827
- );
828
- }
829
886
  async getInsightRowById(id) {
830
887
  if (!this.db)
831
888
  return null;
@@ -837,27 +894,17 @@ export class DreamEngine {
837
894
  // Branch Management (ADR-069)
838
895
  // ==========================================================================
839
896
  /**
840
- * Get the RVCOW branch manager, if branching is enabled.
897
+ * @deprecated #1060: branching is ignored; always null.
841
898
  */
842
899
  getBranchManager() {
843
- return this.branchManager;
900
+ return null;
844
901
  }
845
902
  /**
846
- * Register a listener for branch lifecycle events.
903
+ * @deprecated #1060: branching is ignored, so no branch event is emitted.
847
904
  */
848
905
  onBranchEvent(listener) {
849
906
  this.branchEventListeners.push(listener);
850
907
  }
851
- emitBranchEvent(event, branch, detail) {
852
- for (const listener of this.branchEventListeners) {
853
- try {
854
- listener(event, branch, detail);
855
- }
856
- catch {
857
- // Swallow listener errors
858
- }
859
- }
860
- }
861
908
  // ==========================================================================
862
909
  // Cleanup
863
910
  // ==========================================================================
@@ -865,17 +912,27 @@ export class DreamEngine {
865
912
  * Release resources (does NOT close the shared database)
866
913
  */
867
914
  async close() {
868
- // #1060: a dream still in flight is recorded as interrupted before the
869
- // engine lets go of the database.
915
+ // #1060: stop a dream still in flight and record it as interrupted, then
916
+ // wait (briefly) for it to unwind before letting go of the database.
917
+ // A close counts as a cancel, so a caller running several dreams in a row
918
+ // (SpeculativeDreamer) stops instead of committing an earlier result.
919
+ this.closing = true;
920
+ this.cancelRequests++;
870
921
  this.interruptActiveDream?.();
871
922
  this.interruptActiveDream = null;
923
+ this.activeAbort?.abort();
924
+ const inFlight = this.activeDream?.done;
925
+ if (inFlight) {
926
+ let timer;
927
+ await Promise.race([inFlight, new Promise((resolve) => { timer = setTimeout(resolve, 2000); })]);
928
+ clearTimeout(timer);
929
+ }
872
930
  if (this.graph) {
873
931
  await this.graph.close();
874
932
  this.graph = null;
875
933
  }
876
934
  this.db = null;
877
935
  this.persistence = null;
878
- this.branchManager = null;
879
936
  this.initialized = false;
880
937
  this.currentCycle = null;
881
938
  }
@@ -35,6 +35,7 @@
35
35
  * with the rest of its lifecycle work.
36
36
  */
37
37
  import type { Database as DatabaseType } from 'better-sqlite3';
38
+ import { DREAM_INSIGHTS_ARCHIVE_TABLE } from '../../migrations/20261018_add_dream_insights_archive.js';
38
39
  export interface PruneStaleDreamInsightsOptions {
39
40
  /**
40
41
  * How many days old an `applied = 0` insight must be before it's
@@ -48,14 +49,19 @@ export interface PruneResult {
48
49
  pruned: number;
49
50
  /** Number of rows copied to `dream_insights_archive` before the delete. */
50
51
  archived: number;
52
+ /**
53
+ * #1116: stale rows left in place because their `id` is NULL. The archive
54
+ * needs an id (NOT NULL) and the delete matches on it, so such a row can be
55
+ * neither copied nor removed safely; before #1116 it made every sweep fail.
56
+ */
57
+ skippedNullId: number;
51
58
  }
52
- /** Table that keeps every insight the sweep removes from `dream_insights`. */
53
- export declare const DREAM_INSIGHTS_ARCHIVE_TABLE = "dream_insights_archive";
59
+ export { DREAM_INSIGHTS_ARCHIVE_TABLE };
54
60
  /**
55
61
  * Archive, then delete, stale unapplied insights. Idempotent — safe to call
56
62
  * on every tick.
57
63
  *
58
- * Returns `{ pruned: 0, archived: 0 }` if the table doesn't exist (init hasn't
64
+ * Returns `{ pruned: 0, archived: 0, skippedNullId: 0 }` if the table doesn't exist (init hasn't
59
65
  * created the dream schema yet) or if no rows qualify. Throws, with nothing
60
66
  * deleted, if the archive copy cannot be verified.
61
67
  */