agentic-qe 3.15.8 → 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 (642) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +434 -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/agents/claim-verifier/claim-verifier-service.js +13 -8
  10. package/dist/audit/witness-chain.d.ts +1 -1
  11. package/dist/bridge/captured-experience-bridge.js +12 -13
  12. package/dist/cli/bundle.js +6 -6
  13. package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
  14. package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
  15. package/dist/cli/chunks/{agent-handler-2NQFHAWE.js → agent-handler-SVXSHEET.js} +2 -2
  16. package/dist/cli/chunks/{agent-memory-branch-457ECHHK.js → agent-memory-branch-WKQH36XL.js} +2 -2
  17. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
  18. package/dist/cli/chunks/{arena-JV3WSEHU.js → arena-EKOOFVST.js} +2 -2
  19. package/dist/cli/chunks/{arena-IYBQ3GPY.js → arena-OPS36NFZ.js} +4 -4
  20. package/dist/cli/chunks/{audit-5OS3T3K6.js → audit-AO5NDZRI.js} +3 -3
  21. package/dist/cli/chunks/base-GTB6POYE.js +2 -0
  22. package/dist/cli/chunks/{better-sqlite3-IQKBFVAO.js → better-sqlite3-TFLVEMMY.js} +2 -2
  23. package/dist/cli/chunks/{brain-handler-KA3SGAFM.js → brain-handler-ADBBJPYW.js} +3 -3
  24. package/dist/cli/chunks/{branch-enumerator-QZDU2VOQ.js → branch-enumerator-HGHUYYL5.js} +2 -2
  25. package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
  26. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
  27. package/dist/cli/chunks/{chunk-CRUQ6RXU.js → chunk-2SXBBUM6.js} +2 -2
  28. package/dist/cli/chunks/{chunk-4GUVVGJX.js → chunk-2T7RRL6G.js} +1 -1
  29. package/dist/cli/chunks/{chunk-OJWEZYLR.js → chunk-2XGVTYVX.js} +2 -2
  30. package/dist/cli/chunks/{chunk-LVHZK7GW.js → chunk-2ZI5FKSF.js} +2 -2
  31. package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
  32. package/dist/cli/chunks/{chunk-62T7U25U.js → chunk-37OWRCUN.js} +1 -1
  33. package/dist/cli/chunks/{chunk-UQLAN5TX.js → chunk-3P34JFQH.js} +5 -5
  34. package/dist/cli/chunks/{chunk-UDCYQLTD.js → chunk-3Y7SPD72.js} +2 -2
  35. package/dist/cli/chunks/{chunk-PPIM7B5G.js → chunk-4G63WT4F.js} +2 -2
  36. package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
  37. package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
  38. package/dist/cli/chunks/{chunk-4TZLZRZ4.js → chunk-5LPYV3TK.js} +1 -1
  39. package/dist/cli/chunks/{chunk-YUP3APSN.js → chunk-62OAY5KJ.js} +1 -1
  40. package/dist/cli/chunks/{chunk-VQRBBR27.js → chunk-6C3II5OM.js} +2 -2
  41. package/dist/cli/chunks/{chunk-RG42LDOB.js → chunk-6GP6W46M.js} +2 -2
  42. package/dist/cli/chunks/{chunk-KMZW2P3R.js → chunk-6KIL6CMD.js} +2 -2
  43. package/dist/cli/chunks/{chunk-UKKFZJME.js → chunk-6MVVSSID.js} +1 -1
  44. package/dist/cli/chunks/{chunk-VVK4ECVJ.js → chunk-6P7424AO.js} +2 -2
  45. package/dist/cli/chunks/{chunk-A2UGPKCS.js → chunk-6PX4OXQO.js} +2 -2
  46. package/dist/cli/chunks/{chunk-JLTGO5BB.js → chunk-6S3WJGUV.js} +2 -2
  47. package/dist/cli/chunks/{chunk-GSOK4M6V.js → chunk-6TB6YOCZ.js} +1 -1
  48. package/dist/cli/chunks/{chunk-VWRNG3UK.js → chunk-6X5DHU6Q.js} +1 -1
  49. package/dist/cli/chunks/{chunk-5YOO5QSE.js → chunk-6XCMKIZN.js} +1 -1
  50. package/dist/cli/chunks/{chunk-4C3RYBTT.js → chunk-7LFZ4CHM.js} +2 -2
  51. package/dist/cli/chunks/{chunk-O4RRVTXN.js → chunk-7OZVZIBE.js} +2 -2
  52. package/dist/cli/chunks/{chunk-2JCLACCS.js → chunk-7PJIR4ST.js} +2 -2
  53. package/dist/cli/chunks/{chunk-NWFBF3KT.js → chunk-7TB6FK4B.js} +1 -1
  54. package/dist/cli/chunks/{chunk-FJAO4UX2.js → chunk-7ZCDZHDB.js} +2 -2
  55. package/dist/cli/chunks/chunk-A55QKKT2.js +2 -0
  56. package/dist/cli/chunks/{chunk-ZOVAZTXE.js → chunk-ABFFWZPC.js} +273 -278
  57. package/dist/cli/chunks/{chunk-FWXNFPLS.js → chunk-ACWFKES2.js} +2 -2
  58. package/dist/cli/chunks/{chunk-IJSFZO7P.js → chunk-AH3ZD3NJ.js} +2 -2
  59. package/dist/cli/chunks/{chunk-7SLEUVPZ.js → chunk-AI4VYSFS.js} +2 -2
  60. package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
  61. package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
  62. package/dist/cli/chunks/{chunk-2GSAAUW3.js → chunk-B6LTH6YV.js} +2 -2
  63. package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
  64. package/dist/cli/chunks/{chunk-7XGM7Q2N.js → chunk-C522H7XR.js} +54 -33
  65. package/dist/cli/chunks/{chunk-7DHSHD5B.js → chunk-CESIR27V.js} +2 -2
  66. package/dist/cli/chunks/{chunk-V7VZSNDK.js → chunk-CFBEBXLO.js} +3 -3
  67. package/dist/cli/chunks/{chunk-NZATJ2C6.js → chunk-CMBLM26R.js} +2 -2
  68. package/dist/cli/chunks/{chunk-7CVMT64N.js → chunk-CZ2IF6MC.js} +1 -1
  69. package/dist/cli/chunks/{chunk-YVWMJZ6O.js → chunk-CZGOSJQ4.js} +2 -2
  70. package/dist/cli/chunks/{chunk-TMNEK7TP.js → chunk-D6DA2KFD.js} +2 -2
  71. package/dist/cli/chunks/{chunk-UTNKMPTC.js → chunk-DBMNJSBV.js} +1 -1
  72. package/dist/cli/chunks/{chunk-JFWQFB3S.js → chunk-DE4YJQJF.js} +2 -2
  73. package/dist/cli/chunks/{chunk-767SR7WH.js → chunk-DEF34AFL.js} +2 -2
  74. package/dist/cli/chunks/{chunk-ZWMFKZEQ.js → chunk-DKAC3E3B.js} +2 -2
  75. package/dist/cli/chunks/{chunk-CDLG3Q2O.js → chunk-DMFTELBS.js} +2 -2
  76. package/dist/cli/chunks/{chunk-P4UT4LBE.js → chunk-DNRWGATA.js} +10 -10
  77. package/dist/cli/chunks/{chunk-PUYQ6EKC.js → chunk-DT7SIJOA.js} +2 -2
  78. package/dist/cli/chunks/{chunk-ST7ASEJO.js → chunk-DURHK377.js} +69 -69
  79. package/dist/cli/chunks/{chunk-V4QJ3MMT.js → chunk-EAU5KDFO.js} +1 -1
  80. package/dist/cli/chunks/{chunk-BLZEOGQE.js → chunk-EDLFX4ZB.js} +2 -2
  81. package/dist/cli/chunks/{chunk-ZBI7PJFX.js → chunk-EN2QSKFF.js} +2 -2
  82. package/dist/cli/chunks/{chunk-U7CIY3YR.js → chunk-ERQKYIP7.js} +2 -2
  83. package/dist/cli/chunks/{chunk-X7ZQIFES.js → chunk-ESUO3GTJ.js} +2 -2
  84. package/dist/cli/chunks/{chunk-SHEVM5PF.js → chunk-EWFECZ2U.js} +2 -2
  85. package/dist/cli/chunks/{chunk-JWPYMRIX.js → chunk-FAUCT5KR.js} +3 -3
  86. package/dist/cli/chunks/{chunk-KMVFBYJO.js → chunk-FB6TI3BH.js} +2 -2
  87. package/dist/cli/chunks/{chunk-22DOS3PM.js → chunk-FBXTQNRH.js} +2 -2
  88. package/dist/cli/chunks/{chunk-W5A36V3Z.js → chunk-FESZBPUB.js} +2 -2
  89. package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
  90. package/dist/cli/chunks/{chunk-VWSGWYRB.js → chunk-FKL3R5JQ.js} +2 -2
  91. package/dist/cli/chunks/{chunk-2DPHFCMW.js → chunk-FPUDRSFJ.js} +2 -2
  92. package/dist/cli/chunks/{chunk-VKFVJCIH.js → chunk-FZOWULMH.js} +1 -1
  93. package/dist/cli/chunks/{chunk-HXCGV5UJ.js → chunk-G3CZCUPM.js} +2 -2
  94. package/dist/cli/chunks/{chunk-GENNJRNK.js → chunk-G5I6KGMW.js} +22 -22
  95. package/dist/cli/chunks/{chunk-J7FLNP5L.js → chunk-GHBNRMSJ.js} +2 -2
  96. package/dist/cli/chunks/{chunk-I77D65X5.js → chunk-GJHWY3ZX.js} +2 -2
  97. package/dist/cli/chunks/{chunk-DKFSCJEF.js → chunk-GJMLK5UT.js} +2 -2
  98. package/dist/cli/chunks/{chunk-52YRSWPS.js → chunk-GRCIBCJ2.js} +2 -2
  99. package/dist/cli/chunks/{chunk-NW7HTOSN.js → chunk-GWZZ7DAO.js} +2 -2
  100. package/dist/cli/chunks/{chunk-D4IBIMWI.js → chunk-GZLZCZ42.js} +2 -2
  101. package/dist/cli/chunks/{chunk-FEN2DHFM.js → chunk-H2PYU7MN.js} +1 -1
  102. package/dist/cli/chunks/{chunk-4I35ARWW.js → chunk-H32EPIR2.js} +1 -1
  103. package/dist/cli/chunks/{chunk-MUDBF2JC.js → chunk-H74Q7TJN.js} +1 -1
  104. package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
  105. package/dist/cli/chunks/{chunk-MMY52Y6R.js → chunk-I33O4BRQ.js} +2 -2
  106. package/dist/cli/chunks/{chunk-ZG7UKWBB.js → chunk-IKISCIGH.js} +2 -2
  107. package/dist/cli/chunks/{chunk-SFPGLUXS.js → chunk-IPJ7Q3AJ.js} +1 -1
  108. package/dist/cli/chunks/{chunk-2ZRNXEVI.js → chunk-IU2IV4NE.js} +1 -1
  109. package/dist/cli/chunks/{chunk-XOOBLZXR.js → chunk-JHIY4VCC.js} +2 -2
  110. package/dist/cli/chunks/{chunk-PJGQ2TKN.js → chunk-KG336OV3.js} +2 -2
  111. package/dist/cli/chunks/{chunk-YRH7KMTU.js → chunk-KI73QCR5.js} +2 -2
  112. package/dist/cli/chunks/{chunk-FAYXES7R.js → chunk-KNQ2ERFX.js} +2 -2
  113. package/dist/cli/chunks/{chunk-CQ3SBRDP.js → chunk-KOBVYY6H.js} +2 -2
  114. package/dist/cli/chunks/{chunk-3N627QRU.js → chunk-KSIWGGJI.js} +8 -8
  115. package/dist/cli/chunks/{chunk-2UN4JOTN.js → chunk-LMS3Y7JD.js} +2 -2
  116. package/dist/cli/chunks/{chunk-RSMPJWQH.js → chunk-LQEURY7C.js} +1 -1
  117. package/dist/cli/chunks/{chunk-NQDYOF35.js → chunk-LRZY4KS2.js} +2 -2
  118. package/dist/cli/chunks/{chunk-U3BWBP6B.js → chunk-M2QV7PT7.js} +2 -2
  119. package/dist/cli/chunks/{chunk-WLXGUQOZ.js → chunk-MA7JIQ6U.js} +2 -2
  120. package/dist/cli/chunks/{chunk-Y5ZBF7MA.js → chunk-MG27QY4D.js} +2 -2
  121. package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
  122. package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
  123. package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
  124. package/dist/cli/chunks/{chunk-DCYUHCPK.js → chunk-NGKNYIQZ.js} +1 -1
  125. package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
  126. package/dist/cli/chunks/{chunk-UTFMMZ57.js → chunk-NPPHWFA2.js} +3 -3
  127. package/dist/cli/chunks/chunk-NSHU347M.js +2 -0
  128. package/dist/cli/chunks/{chunk-NF63NHJH.js → chunk-NVYIZCSR.js} +2 -2
  129. package/dist/cli/chunks/{chunk-YNQPHRUZ.js → chunk-NW5JUCCG.js} +1 -1
  130. package/dist/cli/chunks/{chunk-G6CLO74Q.js → chunk-NZYLNXT6.js} +3 -3
  131. package/dist/cli/chunks/{chunk-R2NHGESM.js → chunk-OBAREPDC.js} +2 -2
  132. package/dist/cli/chunks/{chunk-X3HM7SV4.js → chunk-ODJNUMV3.js} +2 -2
  133. package/dist/cli/chunks/{chunk-OCLAMZJG.js → chunk-OEKP73MC.js} +2 -2
  134. package/dist/cli/chunks/{chunk-5MBNRTT5.js → chunk-OPFGRS5S.js} +2 -2
  135. package/dist/cli/chunks/{chunk-K5R3WUJP.js → chunk-OY2AHLSF.js} +1 -1
  136. package/dist/cli/chunks/{chunk-KJNUETCB.js → chunk-OY3NJNP2.js} +1 -1
  137. package/dist/cli/chunks/{chunk-P2EA62YS.js → chunk-PCEW6Q2C.js} +1 -1
  138. package/dist/cli/chunks/{chunk-HNGNRIZZ.js → chunk-PFG6VQ5Z.js} +2 -2
  139. package/dist/cli/chunks/{chunk-DN3AKAPY.js → chunk-PGYMKGOE.js} +2 -2
  140. package/dist/cli/chunks/{chunk-BEVWCF3Q.js → chunk-PPSAMXYN.js} +3 -3
  141. package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
  142. package/dist/cli/chunks/{chunk-6E7EOHMN.js → chunk-RPHY2DU6.js} +2 -2
  143. package/dist/cli/chunks/{chunk-7C6FMLQR.js → chunk-RWWOHCMG.js} +25 -20
  144. package/dist/cli/chunks/{chunk-5ONJ7AV6.js → chunk-S75EYIJG.js} +1 -1
  145. package/dist/cli/chunks/chunk-SKQUUE4F.js +5 -0
  146. package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
  147. package/dist/cli/chunks/{chunk-SWY6KGMF.js → chunk-SU5H66SD.js} +2 -2
  148. package/dist/cli/chunks/{chunk-ZOHS32SI.js → chunk-SY2IB442.js} +2 -2
  149. package/dist/cli/chunks/{chunk-MV4S3TEC.js → chunk-TBLI254A.js} +2 -2
  150. package/dist/cli/chunks/{chunk-5DZDLOY6.js → chunk-TNMBRDCA.js} +3 -3
  151. package/dist/cli/chunks/{chunk-FEPFXXI7.js → chunk-TYFZXDGZ.js} +2 -2
  152. package/dist/cli/chunks/{chunk-A6GCO6ZU.js → chunk-U4OICXV2.js} +2 -2
  153. package/dist/cli/chunks/{chunk-G77Q22EN.js → chunk-U53ZB4IX.js} +2 -2
  154. package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
  155. package/dist/cli/chunks/{chunk-6GIC2263.js → chunk-UCJMVXO4.js} +2 -2
  156. package/dist/cli/chunks/{chunk-DAFMHM64.js → chunk-UHTTW3IT.js} +2 -2
  157. package/dist/cli/chunks/{chunk-2QRGIEQV.js → chunk-V2M2XCR5.js} +1 -1
  158. package/dist/cli/chunks/{chunk-XZQVC3GD.js → chunk-V2RSNVMW.js} +1 -1
  159. package/dist/cli/chunks/{chunk-GGSTLKY5.js → chunk-V6JBOIMX.js} +1 -1
  160. package/dist/cli/chunks/{chunk-BTMEOZYY.js → chunk-VFKF2XO7.js} +1 -1
  161. package/dist/cli/chunks/{chunk-4C7KE2EL.js → chunk-VFSYMOAL.js} +2 -2
  162. package/dist/cli/chunks/{chunk-D4O3TJI7.js → chunk-VJQYDYAJ.js} +2 -2
  163. package/dist/cli/chunks/{chunk-PZ7FJ4UG.js → chunk-VKRTTFB6.js} +2 -2
  164. package/dist/cli/chunks/{chunk-CQ5G64EA.js → chunk-VWNFAW2M.js} +2 -2
  165. package/dist/cli/chunks/{chunk-DY37YMMQ.js → chunk-WBM6N6IM.js} +1 -1
  166. package/dist/cli/chunks/{chunk-K4N2MBCE.js → chunk-WDQ7IEZY.js} +2 -2
  167. package/dist/cli/chunks/{chunk-HI6OBDDY.js → chunk-WDVRE6GN.js} +2 -2
  168. package/dist/cli/chunks/{chunk-PICEGWGB.js → chunk-WQ4PYWSW.js} +1 -1
  169. package/dist/cli/chunks/{chunk-NHOMVBCI.js → chunk-WSF24I3D.js} +2 -2
  170. package/dist/cli/chunks/{chunk-LPSMVBB3.js → chunk-XBVUVFJK.js} +2 -2
  171. package/dist/cli/chunks/{chunk-J6LL25QJ.js → chunk-XEB3NLJR.js} +2 -2
  172. package/dist/cli/chunks/{chunk-SJMZZMHP.js → chunk-XFVTGAAJ.js} +2 -2
  173. package/dist/cli/chunks/{chunk-KVMKYUOE.js → chunk-XLZYRTNO.js} +2 -2
  174. package/dist/cli/chunks/chunk-XUZDBQ5X.js +6 -0
  175. package/dist/cli/chunks/{chunk-WAWKAYPY.js → chunk-Y76IAYQD.js} +1 -1
  176. package/dist/cli/chunks/{chunk-3LFLO2WK.js → chunk-YAKGBHO4.js} +2 -2
  177. package/dist/cli/chunks/{chunk-TC52M542.js → chunk-YBSBABOS.js} +2 -2
  178. package/dist/cli/chunks/{chunk-BQUIZ5QT.js → chunk-YCGP5VFP.js} +2 -2
  179. package/dist/cli/chunks/{chunk-T2TDTBFV.js → chunk-YDAQK5UF.js} +1 -1
  180. package/dist/cli/chunks/{chunk-LHRVSK44.js → chunk-YK3BVZY6.js} +2 -2
  181. package/dist/cli/chunks/{chunk-QFYUZYRA.js → chunk-YK7JN5N7.js} +4 -4
  182. package/dist/cli/chunks/{chunk-IMSRWNWF.js → chunk-YKMU4LBV.js} +1 -1
  183. package/dist/cli/chunks/{chunk-NLYUC63R.js → chunk-YYTGXD3R.js} +2 -2
  184. package/dist/cli/chunks/{chunk-OWBFVAEH.js → chunk-Z2O2YJAF.js} +2 -2
  185. package/dist/cli/chunks/{chunk-KITKQUBX.js → chunk-Z7IYW5U7.js} +1 -1
  186. package/dist/cli/chunks/{chunk-4NTLGGXO.js → chunk-ZG5666GJ.js} +1 -1
  187. package/dist/cli/chunks/{chunk-4YUBWU3E.js → chunk-ZXPY654C.js} +1 -1
  188. package/dist/cli/chunks/{ci-7NUCRGWO.js → ci-MSKMVH5X.js} +2 -2
  189. package/dist/cli/chunks/{ci-config-VQVECCFI.js → ci-config-7ODMNAUM.js} +2 -2
  190. package/dist/cli/chunks/{ci-output-P7GQ6TKF.js → ci-output-FXZ7ZZW3.js} +2 -2
  191. package/dist/cli/chunks/{circuit-breaker-5YP6N6HE.js → circuit-breaker-4VOUEPOX.js} +2 -2
  192. package/dist/cli/chunks/{claude-flow-setup-W5H7CMU6.js → claude-flow-setup-7D4SGLM4.js} +2 -2
  193. package/dist/cli/chunks/client-POSVREVS.js +2 -0
  194. package/dist/cli/chunks/{cline-installer-OYANSZ54.js → cline-installer-WRRT7BGQ.js} +2 -2
  195. package/dist/cli/chunks/{code-OMT4UEZI.js → code-ZDJRIL3S.js} +25 -24
  196. package/dist/cli/chunks/{code-index-extractor-M2JEWKNF.js → code-index-extractor-4S4SHM56.js} +2 -2
  197. package/dist/cli/chunks/{codex-installer-YBS6N5O3.js → codex-installer-YTRHNDWR.js} +2 -2
  198. package/dist/cli/chunks/{completions-U7GS5RG6.js → completions-6N64JUXJ.js} +2 -2
  199. package/dist/cli/chunks/{complexity-analyzer-QSXPIUIU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
  200. package/dist/cli/chunks/{continuedev-installer-W5TTT743.js → continuedev-installer-IIDR66LB.js} +2 -2
  201. package/dist/cli/chunks/{copilot-installer-KC2RT24C.js → copilot-installer-SVVFY3S2.js} +2 -2
  202. package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
  203. package/dist/cli/chunks/{cost-tracker-OQPVR6V4.js → cost-tracker-VGFS6IBX.js} +2 -2
  204. package/dist/cli/chunks/{coverage-TCO2A2NX.js → coverage-B7MCGNTE.js} +3 -3
  205. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
  206. package/dist/cli/chunks/{cursor-installer-MH7GWD4L.js → cursor-installer-UPETT57E.js} +2 -2
  207. package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
  208. package/dist/cli/chunks/{daemon-UJEARJZ2.js → daemon-CQFNZLXU.js} +7 -7
  209. package/dist/cli/chunks/{dag-attention-scheduler-F3SUJU5O.js → dag-attention-scheduler-PJVABHON.js} +2 -2
  210. package/dist/cli/chunks/{detect-5QTCRB32.js → detect-56SKAGWX.js} +2 -2
  211. package/dist/cli/chunks/{dist-node-XKZPHDBO.js → dist-node-UYTYUMLN.js} +2 -2
  212. package/dist/cli/chunks/{domain-handler-V3UEADKW.js → domain-handler-YOYLBYJE.js} +2 -2
  213. package/dist/cli/chunks/{domain-plugins-7PES4UHZ.js → domain-plugins-7TARX2XF.js} +2 -2
  214. package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
  215. package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
  216. package/dist/cli/chunks/{embed-and-insert-pattern-D2HWORHF.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
  217. package/dist/cli/chunks/{eval-UF2UBAUC.js → eval-GNB574IM.js} +2 -2
  218. package/dist/cli/chunks/{experience-capture-middleware-2OUCEHHM.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
  219. package/dist/cli/chunks/{fast-paths-KV5DKKHC.js → fast-paths-KTZ5SF54.js} +2 -2
  220. package/dist/cli/chunks/{feature-flags-MTW6NMR3.js → feature-flags-ITX5LQ57.js} +2 -2
  221. package/dist/cli/chunks/{feature-flags-6YWMTNO5.js → feature-flags-KFHSR5YF.js} +2 -2
  222. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
  223. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
  224. package/dist/cli/chunks/{gnn-wrapper-52V6ANOY.js → gnn-wrapper-RLFW3GSX.js} +2 -2
  225. package/dist/cli/chunks/{heartbeat-handler-X7NHNRC7.js → heartbeat-handler-EM2URCYZ.js} +4 -4
  226. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
  227. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
  228. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
  229. package/dist/cli/chunks/{hnsw-legacy-bridge-DZBE3KMK.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
  230. package/dist/cli/chunks/{hnswlib-node-2AWWUJAZ.js → hnswlib-node-CBP73QHY.js} +2 -2
  231. package/dist/cli/chunks/{hooks-XLPVROL3.js → hooks-IP7XE34Z.js} +34 -34
  232. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
  233. package/dist/cli/chunks/{hypergraph-engine-6TI7YP6P.js → hypergraph-engine-ONAYHU25.js} +2 -2
  234. package/dist/cli/chunks/{hypergraph-handler-DBIBBOXS.js → hypergraph-handler-VINJRAID.js} +3 -3
  235. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
  236. package/dist/cli/chunks/{init-guard-OSO6MIDD.js → init-guard-RYVV5R3Z.js} +2 -2
  237. package/dist/cli/chunks/{init-handler-7S7IHMUF.js → init-handler-MPRGWMOE.js} +6 -6
  238. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
  239. package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
  240. package/dist/cli/chunks/{kilocode-installer-2KBRFXMA.js → kilocode-installer-OPD7JBRL.js} +2 -2
  241. package/dist/cli/chunks/{kiro-installer-5VFR4OQZ.js → kiro-installer-M4OPUNK2.js} +2 -2
  242. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
  243. package/dist/cli/chunks/{learning-G5NHL3DV.js → learning-4UWTQLMF.js} +24 -24
  244. package/dist/cli/chunks/{llm-router-4EAPPMHS.js → llm-router-SQ56FF6Z.js} +4 -4
  245. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
  246. package/dist/cli/chunks/{load-UYMZPEY6.js → load-HPHKDGGL.js} +2 -2
  247. package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
  248. package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
  249. package/dist/cli/chunks/{memory-QL53YIHP.js → memory-PFQ3KPVJ.js} +5 -5
  250. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
  251. package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
  252. package/dist/cli/chunks/{multi-model-executor-PDDDXF2B.js → multi-model-executor-3VDRX6TZ.js} +2 -2
  253. package/dist/cli/chunks/{opencode-installer-75D2SKOT.js → opencode-installer-PJ576R63.js} +2 -2
  254. package/dist/cli/chunks/{orchestrator-3WIZBV4T.js → orchestrator-72QP4UU7.js} +64 -19
  255. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
  256. package/dist/cli/chunks/{pattern-usage-recorder-TEX2JGHA.js → pattern-usage-recorder-754YQW7C.js} +2 -2
  257. package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
  258. package/dist/cli/chunks/{platform-WPSKRJE7.js → platform-3E3DXLYB.js} +2 -2
  259. package/dist/cli/chunks/{plugin-UUFOVVMU.js → plugin-7FUQAKRE.js} +2 -2
  260. package/dist/cli/chunks/{prime-radiant-advanced-wasm-PDFSYWKZ.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
  261. package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
  262. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
  263. package/dist/cli/chunks/{protocol-handler-3VRYRIQB.js → protocol-handler-BQRYMUTG.js} +2 -2
  264. package/dist/cli/chunks/{prove-2NAUROGF.js → prove-H52QGC6B.js} +2 -2
  265. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
  266. package/dist/cli/chunks/{quality-ZIEI2WGA.js → quality-QO4XPAUM.js} +2 -2
  267. package/dist/cli/chunks/{quality-gate-KWJO4SWQ.js → quality-gate-FBKE5E6F.js} +3 -3
  268. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
  269. package/dist/cli/chunks/{real-embeddings-TSZ4UIAE.js → real-embeddings-RWGOVOXO.js} +2 -2
  270. package/dist/cli/chunks/{ref-validation-DWFFRETJ.js → ref-validation-LF76ZOBD.js} +2 -2
  271. package/dist/cli/chunks/{roocode-installer-XTZHLUBO.js → roocode-installer-3BYEBTQ7.js} +2 -2
  272. package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
  273. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
  274. package/dist/cli/chunks/{routing-handler-GG525TDM.js → routing-handler-DST7BVCU.js} +2 -2
  275. package/dist/cli/chunks/{ruvector-commands-QKRJDM7Z.js → ruvector-commands-XE32PGKC.js} +2 -2
  276. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
  277. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
  278. package/dist/cli/chunks/{rvf-migration-coordinator-FF52OS6Q.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
  279. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
  280. package/dist/cli/chunks/{rvf-store-integrity-M6DXTAZ4.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
  281. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
  282. package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
  283. package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
  284. package/dist/cli/chunks/{security-EHXSW22U.js → security-VSPNKCDS.js} +3 -3
  285. package/dist/cli/chunks/{shared-rvf-adapter-6EH7UVJL.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
  286. package/dist/cli/chunks/{shared-rvf-dual-writer-WML274E7.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
  287. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
  288. package/dist/cli/chunks/{standalone-memory-C7QKAXS4.js → standalone-memory-O4QUTK6L.js} +2 -2
  289. package/dist/cli/chunks/{status-handler-VLI7MRLM.js → status-handler-Z2BP6EOG.js} +2 -2
  290. package/dist/cli/chunks/{structural-health-3LPG6MQN.js → structural-health-R36WNLQG.js} +2 -2
  291. package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
  292. package/dist/cli/chunks/{sync-JFJEJBVK.js → sync-QF5Y3EMZ.js} +2 -2
  293. package/dist/cli/chunks/{task-handler-IED3K6E4.js → task-handler-43PYE75J.js} +13 -7
  294. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
  295. package/dist/cli/chunks/{test-GPKT3CKZ.js → test-UWA377D4.js} +16 -16
  296. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
  297. package/dist/cli/chunks/{test-scheduling-Z42XXZP6.js → test-scheduling-YQZPJRRN.js} +3 -3
  298. package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
  299. package/dist/cli/chunks/{token-usage-6Y2ERYIY.js → token-usage-DO6WLMXP.js} +2 -2
  300. package/dist/cli/chunks/{transformers-MB63T2XO.js → transformers-H5RGFKVO.js} +2 -2
  301. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
  302. package/dist/cli/chunks/{types-J4J6QV3I.js → types-PJS2FGPF.js} +2 -2
  303. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
  304. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
  305. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
  306. package/dist/cli/chunks/{upgrade-U4XU7LFM.js → upgrade-4IC4F6AB.js} +2 -2
  307. package/dist/cli/chunks/{validate-B57HA4YK.js → validate-DHUWW7PF.js} +2 -2
  308. package/dist/cli/chunks/{validate-swarm-UPPA4M6T.js → validate-swarm-OERQNOX5.js} +2 -2
  309. package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
  310. package/dist/cli/chunks/{web-tree-sitter-GDZMUKOZ.js → web-tree-sitter-TV7DMKES.js} +2 -2
  311. package/dist/cli/chunks/{windsurf-installer-VJRWCHXP.js → windsurf-installer-QZPWSH37.js} +2 -2
  312. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
  313. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
  314. package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
  315. package/dist/cli/chunks/{witness-chain-verifier-Z23FVABW.js → witness-chain-verifier-YXENHB42.js} +2 -2
  316. package/dist/cli/chunks/{witness-key-manager-745MJ7WO.js → witness-key-manager-HL26AGFO.js} +2 -2
  317. package/dist/cli/chunks/{workflow-T245QNQM.js → workflow-EOVVCN2E.js} +4 -4
  318. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
  319. package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
  320. package/dist/cli/commands/code.js +8 -0
  321. package/dist/cli/commands/daemon.js +8 -0
  322. package/dist/cli/commands/fleet.js +27 -15
  323. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  324. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  325. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  326. package/dist/cli/commands/learning.js +5 -3
  327. package/dist/cli/commands/ruvector-commands.js +2 -1
  328. package/dist/cli/commands/test.js +6 -0
  329. package/dist/cli/handlers/task-handler.js +21 -1
  330. package/dist/cli/utils/ci-output.d.ts +9 -0
  331. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  332. package/dist/cli/utils/fleet-operation.js +71 -0
  333. package/dist/cli/utils/fleet-result.d.ts +31 -0
  334. package/dist/cli/utils/fleet-result.js +124 -0
  335. package/dist/context/sources/git-source.js +6 -2
  336. package/dist/coordination/handlers/code-intelligence-handlers.js +74 -7
  337. package/dist/coordination/handlers/coverage-collection.js +9 -10
  338. package/dist/coordination/handlers/coverage-handlers.js +31 -4
  339. package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
  340. package/dist/coordination/handlers/coverage-runner.js +9 -2
  341. package/dist/coordination/handlers/coverage-target.d.ts +13 -3
  342. package/dist/coordination/handlers/coverage-target.js +224 -7
  343. package/dist/coordination/handlers/handler-types.d.ts +2 -0
  344. package/dist/coordination/handlers/requirements-handlers.js +16 -2
  345. package/dist/coordination/handlers/security-handlers.js +11 -1
  346. package/dist/coordination/handlers/test-execution-handlers.js +57 -12
  347. package/dist/coordination/index.d.ts +2 -2
  348. package/dist/coordination/index.js +1 -1
  349. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  350. package/dist/coordination/mincut/queen-integration.js +83 -6
  351. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +35 -0
  352. package/dist/coordination/protocols/learning-consolidation-archive.js +34 -0
  353. package/dist/coordination/protocols/learning-consolidation.d.ts +62 -3
  354. package/dist/coordination/protocols/learning-consolidation.js +187 -60
  355. package/dist/coordination/queen-coordinator.d.ts +13 -2
  356. package/dist/coordination/queen-coordinator.js +43 -8
  357. package/dist/coordination/queen-event-handlers.js +15 -1
  358. package/dist/coordination/queen-lifecycle.js +9 -0
  359. package/dist/coordination/queen-task-management.d.ts +18 -24
  360. package/dist/coordination/queen-task-management.js +94 -127
  361. package/dist/coordination/queen-task-queue.d.ts +41 -0
  362. package/dist/coordination/queen-task-queue.js +194 -0
  363. package/dist/coordination/queen-types.d.ts +11 -1
  364. package/dist/coordination/queen-types.js +8 -0
  365. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  366. package/dist/coordination/queen-work-stealing.js +7 -4
  367. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  368. package/dist/coordination/result-saver-adapters.js +57 -0
  369. package/dist/coordination/result-saver.d.ts +1 -1
  370. package/dist/coordination/result-saver.js +8 -5
  371. package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
  372. package/dist/coordination/task-dag/dag-algorithms.js +162 -0
  373. package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
  374. package/dist/coordination/task-dag/dag-obligations.js +83 -0
  375. package/dist/coordination/task-dag/dag.d.ts +69 -19
  376. package/dist/coordination/task-dag/dag.js +215 -269
  377. package/dist/coordination/task-dag/index.d.ts +12 -4
  378. package/dist/coordination/task-dag/index.js +11 -3
  379. package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
  380. package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
  381. package/dist/coordination/task-dag/scheduler.d.ts +19 -9
  382. package/dist/coordination/task-dag/scheduler.js +36 -12
  383. package/dist/coordination/task-dag/types.d.ts +160 -1
  384. package/dist/coordination/task-dag/types.js +2 -1
  385. package/dist/coordination/task-executability.d.ts +18 -0
  386. package/dist/coordination/task-executability.js +31 -0
  387. package/dist/coordination/task-executor.d.ts +1 -0
  388. package/dist/coordination/task-executor.js +5 -0
  389. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  390. package/dist/domains/code-intelligence/coordinator.js +35 -9
  391. package/dist/domains/code-intelligence/index-path-guard.d.ts +52 -0
  392. package/dist/domains/code-intelligence/index-path-guard.js +95 -0
  393. package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
  394. package/dist/domains/code-intelligence/plugin.js +5 -1
  395. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
  396. package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
  397. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  398. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  399. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  400. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  401. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  402. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  403. package/dist/domains/contract-testing/coordinator.js +3 -1
  404. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  405. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  406. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  407. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  408. package/dist/domains/defect-intelligence/plugin.js +11 -2
  409. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  410. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  411. package/dist/domains/defect-intelligence/services/defect-predictor.js +29 -12
  412. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  413. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  414. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  415. package/dist/domains/learning-optimization/active-patterns.d.ts +14 -14
  416. package/dist/domains/learning-optimization/active-patterns.js +17 -14
  417. package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
  418. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  419. package/dist/domains/learning-optimization/coordinator.js +52 -107
  420. package/dist/domains/learning-optimization/index.d.ts +1 -1
  421. package/dist/domains/learning-optimization/interfaces.d.ts +62 -6
  422. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  423. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  424. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  425. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  426. package/dist/domains/learning-optimization/plugin.js +11 -1
  427. package/dist/domains/learning-optimization/reward-source.d.ts +50 -0
  428. package/dist/domains/learning-optimization/reward-source.js +65 -0
  429. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +7 -5
  430. package/dist/domains/learning-optimization/services/learning-coordinator.js +98 -75
  431. package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
  432. package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
  433. package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
  434. package/dist/domains/security-compliance/plugin.js +17 -3
  435. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  436. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  437. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  438. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  439. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  440. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  441. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  442. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  443. package/dist/domains/test-execution/coordinator.d.ts +5 -0
  444. package/dist/domains/test-execution/coordinator.js +35 -20
  445. package/dist/domains/test-execution/interfaces.d.ts +41 -0
  446. package/dist/domains/test-execution/plugin.js +19 -4
  447. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  448. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  449. package/dist/domains/test-execution/services/runner-test-cases.d.ts +32 -0
  450. package/dist/domains/test-execution/services/runner-test-cases.js +87 -0
  451. package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
  452. package/dist/domains/test-execution/services/test-executor.js +31 -9
  453. package/dist/domains/test-generation/plugin.js +7 -2
  454. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  455. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  456. package/dist/hooks/cross-phase-hooks.js +2 -1
  457. package/dist/init/fleet-integration.js +2 -0
  458. package/dist/init/init-wizard-steps.js +2 -0
  459. package/dist/init/phases/06-code-intelligence.js +2 -0
  460. package/dist/init/phases/10-workers.js +51 -6
  461. package/dist/integrations/browser/agent-browser/client.js +37 -52
  462. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  463. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  464. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  465. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  466. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  467. package/dist/integrations/vibium/client.js +2 -2
  468. package/dist/integrations/vibium/runtime.d.ts +1 -1
  469. package/dist/integrations/vibium/runtime.js +14 -11
  470. package/dist/kernel/anti-drift-middleware.d.ts +44 -5
  471. package/dist/kernel/anti-drift-middleware.js +147 -11
  472. package/dist/kernel/interfaces.d.ts +5 -0
  473. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  474. package/dist/kernel/unified-memory-schemas.js +3 -2
  475. package/dist/kernel/unified-memory.js +25 -6
  476. package/dist/learning/dream/dream-commit.d.ts +65 -0
  477. package/dist/learning/dream/dream-commit.js +104 -0
  478. package/dist/learning/dream/dream-engine.d.ts +81 -31
  479. package/dist/learning/dream/dream-engine.js +225 -168
  480. package/dist/learning/dream/dream-insights-pruner.d.ts +24 -4
  481. package/dist/learning/dream/dream-insights-pruner.js +85 -11
  482. package/dist/learning/dream/index.d.ts +3 -2
  483. package/dist/learning/dream/index.js +3 -1
  484. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  485. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  486. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  487. package/dist/learning/dream/speculative-dreamer.js +64 -111
  488. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  489. package/dist/learning/dream/spreading-activation.js +15 -6
  490. package/dist/learning/experience-capture.d.ts +9 -0
  491. package/dist/learning/experience-capture.js +18 -4
  492. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  493. package/dist/learning/qe-reasoning-bank.js +22 -11
  494. package/dist/learning/skill-validation-learner.d.ts +2 -0
  495. package/dist/learning/skill-validation-learner.js +29 -21
  496. package/dist/learning/sqlite-persistence.d.ts +6 -0
  497. package/dist/learning/sqlite-persistence.js +16 -2
  498. package/dist/learning/usage-outcome.d.ts +68 -0
  499. package/dist/learning/usage-outcome.js +84 -0
  500. package/dist/mcp/background-workers.d.ts +13 -1
  501. package/dist/mcp/background-workers.js +23 -3
  502. package/dist/mcp/bundle.js +602 -551
  503. package/dist/mcp/handlers/core-handlers.js +11 -0
  504. package/dist/mcp/handlers/domain-handler-configs.d.ts +19 -0
  505. package/dist/mcp/handlers/domain-handler-configs.js +76 -30
  506. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  507. package/dist/mcp/handlers/handler-factory.js +37 -15
  508. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  509. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  510. package/dist/mcp/handlers/task-handlers.d.ts +3 -0
  511. package/dist/mcp/handlers/task-handlers.js +69 -6
  512. package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
  513. package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
  514. package/dist/mcp/metrics/metrics-collector.js +13 -26
  515. package/dist/mcp/protocol-server.js +10 -3
  516. package/dist/mcp/security/schema-validator.js +3 -2
  517. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  518. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  519. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  520. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  521. package/dist/mcp/tools/learning-optimization/optimize.d.ts +52 -5
  522. package/dist/mcp/tools/learning-optimization/optimize.js +164 -80
  523. package/dist/mcp/tools/quality-assessment/gate.js +12 -1
  524. package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
  525. package/dist/memory/crdt/lww-register.js +11 -1
  526. package/dist/migration/agent-compat.js +7 -5
  527. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  528. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  529. package/dist/routing/calibration/ema-calibrator.js +3 -1
  530. package/dist/shared/base-domain-plugin.d.ts +4 -0
  531. package/dist/shared/base-domain-plugin.js +6 -0
  532. package/dist/shared/git/git-analyzer.d.ts +49 -0
  533. package/dist/shared/git/git-analyzer.js +159 -319
  534. package/dist/shared/git/git-process.d.ts +22 -0
  535. package/dist/shared/git/git-process.js +37 -0
  536. package/dist/shared/git/index.d.ts +1 -0
  537. package/dist/shared/git/index.js +1 -0
  538. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  539. package/dist/shared/io/payload-path-guard.js +190 -0
  540. package/dist/shared/llm/cache.js +4 -1
  541. package/dist/shared/llm/router/agent-router-config.js +2 -1
  542. package/dist/shared/llm/translation/tool-translator.js +2 -1
  543. package/dist/shared/security/compliance-patterns.js +3 -1
  544. package/dist/shared/test-runner-args.d.ts +5 -0
  545. package/dist/shared/test-runner-args.js +6 -1
  546. package/dist/shared/test-runner-process.d.ts +32 -0
  547. package/dist/shared/test-runner-process.js +105 -0
  548. package/dist/shared/test-runner-verdict.d.ts +9 -1
  549. package/dist/shared/test-runner-verdict.js +15 -4
  550. package/dist/shared/types/index.d.ts +9 -0
  551. package/dist/shared/types/index.js +13 -0
  552. package/dist/shared/utils/namespaced-search.d.ts +56 -0
  553. package/dist/shared/utils/namespaced-search.js +71 -0
  554. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  555. package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
  556. package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
  557. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  558. package/dist/validation/gate-reexecute.js +7 -4
  559. package/dist/workers/daemon.d.ts +2 -0
  560. package/dist/workers/daemon.js +23 -6
  561. package/dist/workers/namespaced-keys.d.ts +4 -7
  562. package/dist/workers/namespaced-keys.js +4 -15
  563. package/dist/workers/quality-daemon/ci-monitor.js +9 -5
  564. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  565. package/dist/workers/worker-env.d.ts +16 -8
  566. package/dist/workers/worker-env.js +25 -12
  567. package/dist/workers/worker-manager.js +4 -0
  568. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  569. package/dist/workers/workers/defect-predictor.js +48 -49
  570. package/dist/workers/workers/learning-consolidation.d.ts +3 -1
  571. package/dist/workers/workers/learning-consolidation.js +22 -8
  572. package/dist/workflows/browser/workflow-loader.js +8 -5
  573. package/package.json +1 -1
  574. package/dist/cli/chunks/adapter-FC4EY447.js +0 -2
  575. package/dist/cli/chunks/agent-booster-wasm-W3V5P7LE.js +0 -2
  576. package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +0 -2
  577. package/dist/cli/chunks/base-2XML4WH7.js +0 -2
  578. package/dist/cli/chunks/browser-ZL7OLKJQ.js +0 -4
  579. package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +0 -2
  580. package/dist/cli/chunks/chunk-4GYFONJB.js +0 -4
  581. package/dist/cli/chunks/chunk-6CKTLVYV.js +0 -2
  582. package/dist/cli/chunks/chunk-7H3GNRNA.js +0 -4
  583. package/dist/cli/chunks/chunk-EUVSSIGR.js +0 -12
  584. package/dist/cli/chunks/chunk-I4U7YCXG.js +0 -180
  585. package/dist/cli/chunks/chunk-J7RCI25Q.js +0 -2
  586. package/dist/cli/chunks/chunk-KNHLOANK.js +0 -4
  587. package/dist/cli/chunks/chunk-KNQUHGNY.js +0 -2
  588. package/dist/cli/chunks/chunk-LZWBUVCK.js +0 -5
  589. package/dist/cli/chunks/chunk-PIEKGKW6.js +0 -12
  590. package/dist/cli/chunks/chunk-PWA6XBW4.js +0 -120
  591. package/dist/cli/chunks/chunk-X6VYQVUM.js +0 -2
  592. package/dist/cli/chunks/chunk-YTYS2XSY.js +0 -2
  593. package/dist/cli/chunks/chunk-Z3LDUPLQ.js +0 -6
  594. package/dist/cli/chunks/client-RFUSQRUZ.js +0 -2
  595. package/dist/cli/chunks/core-handlers-ZC7QB432.js +0 -2
  596. package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +0 -2
  597. package/dist/cli/chunks/daemon-JER6HE2J.js +0 -12
  598. package/dist/cli/chunks/domain-transfer-NF7UJW7B.js +0 -2
  599. package/dist/cli/chunks/dream-VALD726W.js +0 -2
  600. package/dist/cli/chunks/file-discovery-VL73ASNI.js +0 -2
  601. package/dist/cli/chunks/fleet-GJ66QFXK.js +0 -43
  602. package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +0 -2
  603. package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +0 -2
  604. package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +0 -2
  605. package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +0 -2
  606. package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +0 -2
  607. package/dist/cli/chunks/init-wizard-VH34J4TL.js +0 -2
  608. package/dist/cli/chunks/kernel-KJD24NO7.js +0 -2
  609. package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +0 -2
  610. package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +0 -2
  611. package/dist/cli/chunks/load-test-OTQ2JQ5F.js +0 -2
  612. package/dist/cli/chunks/mcp-NOTDZBW5.js +0 -2
  613. package/dist/cli/chunks/memory-backend-4QSNRRV6.js +0 -2
  614. package/dist/cli/chunks/memory-handlers-YFFYRSM6.js +0 -2
  615. package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +0 -2
  616. package/dist/cli/chunks/pipeline-7ATPA6LU.js +0 -19
  617. package/dist/cli/chunks/project-root-SRTA6TBL.js +0 -2
  618. package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +0 -2
  619. package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +0 -2
  620. package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +0 -2
  621. package/dist/cli/chunks/router-AUD4GATI.js +0 -2
  622. package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +0 -2
  623. package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +0 -2
  624. package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +0 -2
  625. package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +0 -2
  626. package/dist/cli/chunks/safe-db-Q6JUKG2A.js +0 -2
  627. package/dist/cli/chunks/schedule-44OSMGE5.js +0 -2
  628. package/dist/cli/chunks/scheduler-V3HO2QQT.js +0 -2
  629. package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +0 -2
  630. package/dist/cli/chunks/sync-4IMMQEPT.js +0 -2
  631. package/dist/cli/chunks/task-handlers-FH6DNTHW.js +0 -9
  632. package/dist/cli/chunks/token-bootstrap-HMM3AHXM.js +0 -2
  633. package/dist/cli/chunks/tree-sitter-wasm-parser-56GDQCMR.js +0 -2
  634. package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +0 -2
  635. package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +0 -2
  636. package/dist/cli/chunks/unified-persistence-72OCJJKK.js +0 -2
  637. package/dist/cli/chunks/visual-security-7F5UV23J.js +0 -2
  638. package/dist/cli/chunks/witness-chain-KZ57QUFE.js +0 -2
  639. package/dist/cli/chunks/witness-chain-LFASSMZK.js +0 -2
  640. package/dist/cli/chunks/witness-chain-repair-TPHN4DXN.js +0 -2
  641. package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +0 -2
  642. package/dist/cli/chunks/wrappers-WCAYIQUX.js +0 -2
@@ -9,7 +9,34 @@ import { v4 as uuidv4 } from 'uuid';
9
9
  import { ok, err, ALL_DOMAINS, } from '../../shared/types/index.js';
10
10
  import { TimeRange } from '../../shared/value-objects/index.js';
11
11
  import { toError } from '../../shared/error-utils.js';
12
- import { readActivePatterns } from '../../domains/learning-optimization/active-patterns.js';
12
+ import { rehydrateDates } from '../../shared/utils/kv-date-rehydrate.js';
13
+ import { searchAllKeys } from '../../shared/utils/namespaced-search.js';
14
+ import { LoggerFactory } from '../../logging/index.js';
15
+ import { readActivePatterns, LEARNING_NS, } from '../../domains/learning-optimization/active-patterns.js';
16
+ import { archiveSelectedPattern, emptyArchiveCounts, isWithinRetentionGrace, } from './learning-consolidation-archive.js';
17
+ import { buildConsolidatedPattern } from '../../domains/learning-optimization/pattern-consolidation.js';
18
+ const logger = LoggerFactory.create('learning-consolidation-protocol');
19
+ /**
20
+ * Id of a merged pattern a dry run predicts but never stores (#1106). It only
21
+ * appears in `removedPatterns` when the predicted merge would itself be trimmed.
22
+ */
23
+ export const DRY_RUN_MERGE_ID_PREFIX = 'dry-run-merge:';
24
+ /** Failed steps inside one domain's report (#1106). */
25
+ function domainStepErrors(report) {
26
+ const errors = report.mergeFailures.map((failure) => ({
27
+ domain: report.domain,
28
+ step: 'merge',
29
+ error: `${failure.sourcePatternIds.join(', ')}: ${failure.error}`,
30
+ }));
31
+ if (report.archiveCounts.failed > 0) {
32
+ errors.push({
33
+ domain: report.domain,
34
+ step: 'archive',
35
+ error: `${report.archiveCounts.failed} selected patterns could not be archived (archive copy not verified) and were left active`,
36
+ });
37
+ }
38
+ return errors;
39
+ }
13
40
  const DEFAULT_CONFIG = {
14
41
  minPatternsForConsolidation: 5,
15
42
  similarityThreshold: 0.85,
@@ -17,6 +44,8 @@ const DEFAULT_CONFIG = {
17
44
  minConfidenceThreshold: 0.5,
18
45
  analysisWindowWeeks: 4,
19
46
  enableCrossProjectTransfer: true,
47
+ dryRun: true,
48
+ retentionGraceDays: 7,
20
49
  };
21
50
  // ============================================================================
22
51
  // Learning Consolidation Protocol Implementation
@@ -62,20 +91,45 @@ export class LearningConsolidationProtocol {
62
91
  const domainReports = [];
63
92
  let totalMerged = 0;
64
93
  let totalRemoved = 0;
94
+ let totalArchived = 0;
65
95
  let totalRetained = 0;
96
+ const dryRun = this.config.dryRun;
97
+ // #1106: a failed step is recorded, never swallowed.
98
+ const errors = [];
66
99
  for (const domainGroup of gatheredPatterns.value) {
67
100
  const consolidationResult = await this.consolidatePatterns(consolidationId, domainGroup);
68
101
  if (consolidationResult.success) {
69
- domainReports.push(consolidationResult.value);
70
- totalMerged += consolidationResult.value.mergedPatterns.length;
71
- totalRemoved += consolidationResult.value.removedPatterns.length;
72
- totalRetained += consolidationResult.value.patternsAfterCount;
102
+ const report = consolidationResult.value;
103
+ domainReports.push(report);
104
+ totalMerged += report.mergedPatterns.length;
105
+ totalRemoved += report.removedPatterns.length;
106
+ totalArchived += report.archiveCounts.archived;
107
+ totalRetained += report.patternsAfterCount;
108
+ errors.push(...domainStepErrors(report));
109
+ }
110
+ else {
111
+ errors.push({ domain: domainGroup.domain, step: 'consolidate', error: consolidationResult.error.message });
73
112
  }
74
113
  }
75
- // Step 3: Update knowledge base with consolidated patterns
76
- const knowledgeUpdateResult = await this.updateKnowledgeBase(domainReports);
77
- // Step 4: Prepare patterns for cross-project transfer
78
- const transferResult = await this.prepareTransfer(consolidationId, domainReports);
114
+ if (gatheredPatterns.value.length > 0 && domainReports.length === 0) {
115
+ return err(new Error(`Learning consolidation failed in every domain: ${errors.map((e) => `${e.domain}: ${e.error}`).join('; ')}`));
116
+ }
117
+ // Step 3: Update knowledge base with consolidated patterns (writes, so
118
+ // skipped in a dry run)
119
+ const knowledgeUpdateResult = dryRun
120
+ ? ok(0)
121
+ : await this.updateKnowledgeBase(domainReports);
122
+ // Step 4: Prepare patterns for cross-project transfer (a dry run does
123
+ // not announce transfers for patterns it did not consolidate)
124
+ const transferResult = dryRun
125
+ ? ok([])
126
+ : await this.prepareTransfer(consolidationId, domainReports);
127
+ if (!knowledgeUpdateResult.success) {
128
+ errors.push({ step: 'knowledge-update', error: knowledgeUpdateResult.error.message });
129
+ }
130
+ if (!transferResult.success) {
131
+ errors.push({ step: 'transfer', error: transferResult.error.message });
132
+ }
79
133
  // Step 5: Generate weekly insights
80
134
  const insights = await this.generateInsights(gatheredPatterns.value, domainReports);
81
135
  const completedAt = new Date();
@@ -85,6 +139,7 @@ export class LearningConsolidationProtocol {
85
139
  totalPatternsAnalyzed: gatheredPatterns.value.reduce((sum, g) => sum + g.patterns.length, 0),
86
140
  patternsMerged: totalMerged,
87
141
  patternsRemoved: totalRemoved,
142
+ patternsArchived: totalArchived,
88
143
  patternsRetained: totalRetained,
89
144
  knowledgeItemsUpdated: knowledgeUpdateResult.success
90
145
  ? knowledgeUpdateResult.value
@@ -94,10 +149,27 @@ export class LearningConsolidationProtocol {
94
149
  ? transferResult.value.length
95
150
  : 0,
96
151
  };
152
+ const status = errors.length > 0 ? 'partial' : 'completed';
153
+ if (errors.length > 0) {
154
+ logger.warn('Learning consolidation finished with errors', { consolidationId, dryRun, errors });
155
+ }
156
+ logger.info('Learning consolidation finished', {
157
+ consolidationId,
158
+ status,
159
+ dryRun,
160
+ analyzed: stats.totalPatternsAnalyzed,
161
+ merged: totalMerged,
162
+ selectedForRemoval: totalRemoved,
163
+ archived: totalArchived,
164
+ retained: totalRetained,
165
+ });
97
166
  // Publish completion event
98
167
  await this.publishCompletedEvent(consolidationId, stats, insights, duration);
99
168
  const result = {
100
169
  consolidationId,
170
+ dryRun,
171
+ status,
172
+ errors,
101
173
  startedAt,
102
174
  completedAt,
103
175
  stats,
@@ -106,7 +178,9 @@ export class LearningConsolidationProtocol {
106
178
  domainReports,
107
179
  };
108
180
  // Store result for historical analysis
109
- await this.storeConsolidationResult(result);
181
+ if (!dryRun) {
182
+ await this.storeConsolidationResult(result);
183
+ }
110
184
  return ok(result);
111
185
  }
112
186
  catch (error) {
@@ -123,8 +197,9 @@ export class LearningConsolidationProtocol {
123
197
  try {
124
198
  const domainGroups = [];
125
199
  const timeRange = TimeRange.lastNDays(this.config.analysisWindowWeeks * 7);
200
+ const activePatterns = await this.readActivePatterns();
126
201
  for (const domain of ALL_DOMAINS) {
127
- const patterns = await this.getPatternsForDomain(domain, timeRange);
202
+ const patterns = this.getPatternsForDomain(activePatterns, domain, timeRange);
128
203
  if (patterns.length > 0) {
129
204
  const stats = this.calculateDomainStats(patterns, timeRange);
130
205
  domainGroups.push({ domain, patterns, stats });
@@ -137,12 +212,19 @@ export class LearningConsolidationProtocol {
137
212
  }
138
213
  }
139
214
  /**
140
- * Get patterns for a specific domain
215
+ * Every active learned pattern, read once per run.
216
+ *
217
+ * #1055: active patterns only, excluding `:creation:` provenance and
218
+ * `:archived:` records. #1071: read from `learning-optimization`, where
219
+ * LearningCoordinatorService writes them, not the backend default.
220
+ */
221
+ readActivePatterns() {
222
+ return readActivePatterns(this.memory, { retrieve: LEARNING_NS });
223
+ }
224
+ /**
225
+ * Patterns of one domain created or used within the analysis window
141
226
  */
142
- async getPatternsForDomain(domain, timeRange) {
143
- // #1055: active patterns only — excludes `:creation:` provenance as well
144
- // as `:archived:` records, before get() and before the scan cap applies.
145
- const patterns = await readActivePatterns(this.memory);
227
+ getPatternsForDomain(patterns, domain, timeRange) {
146
228
  return patterns.filter((pattern) => pattern.domain === domain &&
147
229
  (timeRange.contains(pattern.createdAt) || timeRange.contains(pattern.lastUsedAt)));
148
230
  }
@@ -203,19 +285,35 @@ export class LearningConsolidationProtocol {
203
285
  const mergedPatterns = [];
204
286
  const removedPatterns = [];
205
287
  const retainedPatterns = [];
288
+ const toArchive = [];
289
+ // Patterns in their grace period are never merged either: a merge
290
+ // archives every source pattern (#1071).
291
+ retainedPatterns.push(...patterns.filter((p) => this.isInGracePeriod(p)));
206
292
  // Group similar patterns for merging
207
- const similarGroups = this.groupSimilarPatterns(patterns);
293
+ const similarGroups = this.groupSimilarPatterns(patterns.filter((p) => !this.isInGracePeriod(p)));
294
+ const mergeFailures = [];
295
+ const mergeReason = 'Similar pattern context and template';
208
296
  for (const group of similarGroups) {
209
297
  if (group.length >= 2) {
210
- // Merge similar patterns
211
- const mergeResult = await this.mergePatternGroup(group);
212
- if (mergeResult.success) {
298
+ const sourcePatternIds = group.map((p) => p.id);
299
+ // #1106: both runs carry the same set into the trim step. A dry run
300
+ // keeps the merged pattern the real run would store (built by the
301
+ // same function, never written); a real run keeps the stored one, or
302
+ // the sources themselves when the merge failed and left them active.
303
+ const merged = this.config.dryRun
304
+ ? ok(buildConsolidatedPattern(group, `${DRY_RUN_MERGE_ID_PREFIX}${sourcePatternIds.join('+')}`))
305
+ : await this.mergePatternGroup(group);
306
+ if (merged.success) {
213
307
  mergedPatterns.push({
214
- resultPatternId: mergeResult.value.id,
215
- sourcePatternIds: group.map((p) => p.id),
216
- mergeReason: 'Similar pattern context and template',
308
+ resultPatternId: this.config.dryRun ? '' : merged.value.id,
309
+ sourcePatternIds,
310
+ mergeReason,
217
311
  });
218
- retainedPatterns.push(mergeResult.value);
312
+ retainedPatterns.push(merged.value);
313
+ }
314
+ else {
315
+ mergeFailures.push({ sourcePatternIds, error: merged.error.message });
316
+ retainedPatterns.push(...group);
219
317
  }
220
318
  }
221
319
  else {
@@ -230,32 +328,35 @@ export class LearningConsolidationProtocol {
230
328
  name: pattern.name,
231
329
  removalReason: this.getRemovalReason(pattern),
232
330
  });
233
- await this.archivePattern(pattern);
331
+ toArchive.push(pattern);
234
332
  }
235
333
  }
236
334
  }
237
- // Trim to max patterns if needed
335
+ // Trim to max patterns if needed. Patterns in their grace period are
336
+ // never trimmed; they stay on top of the kept set.
238
337
  const finalPatterns = this.trimToMaxPatterns(retainedPatterns, domain);
239
- const trimmedCount = retainedPatterns.length - finalPatterns.length;
240
- if (trimmedCount > 0) {
241
- const trimmed = retainedPatterns.slice(finalPatterns.length);
242
- for (const p of trimmed) {
243
- removedPatterns.push({
244
- patternId: p.id,
245
- name: p.name,
246
- removalReason: 'Exceeded max patterns per domain limit',
247
- });
248
- await this.archivePattern(p);
249
- }
338
+ const kept = new Set(finalPatterns.map((p) => p.id));
339
+ for (const p of retainedPatterns) {
340
+ if (kept.has(p.id))
341
+ continue;
342
+ removedPatterns.push({
343
+ patternId: p.id,
344
+ name: p.name,
345
+ removalReason: 'Exceeded max patterns per domain limit',
346
+ });
347
+ toArchive.push(p);
250
348
  }
349
+ const archiveCounts = await this.archivePatterns(domain, toArchive);
251
350
  // Publish domain consolidation event
252
- await this.publishPatternConsolidatedEvent(consolidationId, domain, patterns.length, finalPatterns.length, mergedPatterns.map((m) => m.resultPatternId), removedPatterns.map((r) => r.patternId));
351
+ await this.publishPatternConsolidatedEvent(consolidationId, domain, patterns.length, finalPatterns.length, mergedPatterns.map((m) => m.resultPatternId), removedPatterns.map((r) => r.patternId), this.config.dryRun);
253
352
  const report = {
254
353
  domain,
255
354
  patternsBeforeCount: patterns.length,
256
355
  patternsAfterCount: finalPatterns.length,
257
356
  mergedPatterns,
258
357
  removedPatterns,
358
+ archiveCounts,
359
+ mergeFailures,
259
360
  topPerformingPatterns: this.getTopPerformingPatterns(finalPatterns, 5),
260
361
  improvementAreas: this.identifyImprovementAreas(domainGroup),
261
362
  };
@@ -379,17 +480,30 @@ export class LearningConsolidationProtocol {
379
480
  }
380
481
  return 'Below retention threshold';
381
482
  }
483
+ /** True while a pattern is too new for the retention and trim rules. */
484
+ isInGracePeriod(pattern) {
485
+ return isWithinRetentionGrace(pattern, this.config.retentionGraceDays);
486
+ }
382
487
  /**
383
- * Archive a pattern (soft delete)
488
+ * Archive the selected patterns (soft delete in `learning-optimization`,
489
+ * #1071). Only the selected patterns are touched, and a dry run touches
490
+ * none. Counts are logged per domain.
384
491
  */
385
- async archivePattern(pattern) {
386
- // Move to archived namespace
387
- await this.memory.set(`learning:pattern:archived:${pattern.id}`, {
388
- ...pattern,
389
- archivedAt: new Date(),
390
- }, { namespace: 'learning-optimization', persist: true });
391
- // Delete from active patterns
392
- await this.memory.delete(`learning:pattern:${pattern.id}`);
492
+ async archivePatterns(domain, selected) {
493
+ const counts = emptyArchiveCounts();
494
+ counts.selected = selected.length;
495
+ if (!this.config.dryRun) {
496
+ for (const pattern of selected) {
497
+ counts[await archiveSelectedPattern(this.memory, pattern)]++;
498
+ }
499
+ }
500
+ if (counts.selected > 0) {
501
+ logger.info('Learning consolidation archive step', { domain, dryRun: this.config.dryRun, ...counts });
502
+ }
503
+ if (counts.failed > 0) {
504
+ logger.warn('Some selected patterns could not be archived and were left active', { domain, failed: counts.failed });
505
+ }
506
+ return counts;
393
507
  }
394
508
  /**
395
509
  * Trim patterns to max allowed per domain
@@ -398,14 +512,18 @@ export class LearningConsolidationProtocol {
398
512
  if (patterns.length <= this.config.maxPatternsPerDomain) {
399
513
  return patterns;
400
514
  }
401
- // Sort by effectiveness score and keep top N
402
- return patterns
403
- .sort((a, b) => {
404
- const scoreA = a.confidence * 0.4 + a.successRate * 0.4 + Math.min(a.usageCount / 100, 0.2);
405
- const scoreB = b.confidence * 0.4 + b.successRate * 0.4 + Math.min(b.usageCount / 100, 0.2);
406
- return scoreB - scoreA;
407
- })
408
- .slice(0, this.config.maxPatternsPerDomain);
515
+ // Patterns in their grace period are always kept; the rest compete for
516
+ // the remaining places by effectiveness score.
517
+ const young = patterns.filter((p) => this.isInGracePeriod(p));
518
+ const eligible = patterns.filter((p) => !this.isInGracePeriod(p));
519
+ const places = Math.max(0, this.config.maxPatternsPerDomain - young.length);
520
+ return [...young, ...eligible
521
+ .sort((a, b) => {
522
+ const scoreA = a.confidence * 0.4 + a.successRate * 0.4 + Math.min(a.usageCount / 100, 0.2);
523
+ const scoreB = b.confidence * 0.4 + b.successRate * 0.4 + Math.min(b.usageCount / 100, 0.2);
524
+ return scoreB - scoreA;
525
+ })
526
+ .slice(0, places)];
409
527
  }
410
528
  /**
411
529
  * Get top performing patterns
@@ -456,7 +574,8 @@ export class LearningConsolidationProtocol {
456
574
  updatedCount++;
457
575
  // Share high-performing pattern knowledge with related domains
458
576
  if (pattern.successRate >= 0.8) {
459
- const knowledge = await this.memory.get(`learning:knowledge:pattern:${pattern.id}`);
577
+ // #1071: read where createKnowledgeFromPattern() writes it.
578
+ const knowledge = await this.memory.get(`learning:knowledge:pattern:${pattern.id}`, LEARNING_NS);
460
579
  if (knowledge) {
461
580
  // Use knowledgeService to share across domains
462
581
  await this.knowledgeService.shareKnowledge(knowledge, [
@@ -694,7 +813,7 @@ export class LearningConsolidationProtocol {
694
813
  };
695
814
  await this.eventBus.publish(event);
696
815
  }
697
- async publishPatternConsolidatedEvent(consolidationId, domain, patternsBeforeCount, patternsAfterCount, mergedPatternIds, removedPatternIds) {
816
+ async publishPatternConsolidatedEvent(consolidationId, domain, patternsBeforeCount, patternsAfterCount, mergedPatternIds, removedPatternIds, dryRun) {
698
817
  const event = {
699
818
  id: uuidv4(),
700
819
  type: 'PatternConsolidated',
@@ -707,6 +826,7 @@ export class LearningConsolidationProtocol {
707
826
  patternsAfterCount,
708
827
  mergedPatternIds,
709
828
  removedPatternIds,
829
+ dryRun,
710
830
  },
711
831
  };
712
832
  await this.eventBus.publish(event);
@@ -722,6 +842,7 @@ export class LearningConsolidationProtocol {
722
842
  stats,
723
843
  insights,
724
844
  duration,
845
+ dryRun: this.config.dryRun,
725
846
  },
726
847
  };
727
848
  await this.eventBus.publish(event);
@@ -761,15 +882,21 @@ export class LearningConsolidationProtocol {
761
882
  * Get previous consolidation results for trend analysis
762
883
  */
763
884
  async getPreviousConsolidations(count) {
764
- const keys = await this.memory.search('learning:consolidation:result:*', count);
885
+ // #1071: results are stored in `learning-optimization`. Read every one
886
+ // so the newest `count` are returned, not an arbitrary first page.
887
+ const keys = await searchAllKeys(this.memory, 'learning:consolidation:result:*', {
888
+ retrieve: LEARNING_NS,
889
+ });
765
890
  const results = [];
766
891
  for (const key of keys) {
767
- const result = await this.memory.get(key);
892
+ const result = rehydrateDates(await this.memory.get(key, LEARNING_NS), ['startedAt', 'completedAt']);
768
893
  if (result) {
769
894
  results.push(result);
770
895
  }
771
896
  }
772
- return results.sort((a, b) => b.completedAt.getTime() - a.completedAt.getTime());
897
+ return results
898
+ .sort((a, b) => b.completedAt.getTime() - a.completedAt.getTime())
899
+ .slice(0, count);
773
900
  }
774
901
  /**
775
902
  * Get consolidation history summary
@@ -33,7 +33,7 @@ import { FederationMailbox } from './federation/index.js';
33
33
  import { DynamicScaler } from './dynamic-scaling/index.js';
34
34
  export type { QueenTask, TaskType, TaskExecution, DomainGroup, WorkStealingConfig, QueenMetrics, QueenConfig, QueenHealth, HealthIssue, IQueenCoordinator, TaskFilter, } from './queen-types.js';
35
35
  export { DOMAIN_GROUPS, TASK_DOMAIN_MAP } from './queen-types.js';
36
- import type { QueenTask, TaskExecution, QueenMetrics, QueenConfig, QueenHealth, IQueenCoordinator, TaskFilter } from './queen-types.js';
36
+ import type { QueenTask, TaskType, TaskExecution, QueenMetrics, QueenConfig, QueenHealth, IQueenCoordinator, TaskFilter } from './queen-types.js';
37
37
  export declare class QueenCoordinator implements IQueenCoordinator {
38
38
  private readonly eventBus;
39
39
  private readonly agentCoordinator;
@@ -80,6 +80,17 @@ export declare class QueenCoordinator implements IQueenCoordinator {
80
80
  constructor(eventBus: EventBus, agentCoordinator: AgentCoordinator, memory: MemoryBackend, router: CrossDomainRouter, protocolExecutor?: ProtocolExecutor | undefined, workflowExecutor?: WorkflowExecutor | undefined, domainPlugins?: Map<DomainName, DomainPlugin> | undefined, config?: Partial<QueenConfig>);
81
81
  initialize(): Promise<void>;
82
82
  dispose(): Promise<void>;
83
+ /**
84
+ * #1075: check that a domain plugin will actually execute this task type
85
+ * before an external caller submits it, so the caller gets the reason as a
86
+ * rejection. A type that no candidate domain handles would otherwise only
87
+ * be failed at dispatch by `assignTaskToDomain` (#1081).
88
+ *
89
+ * Every candidate domain must handle the type, because `assignTask` may pick
90
+ * any of them. Queens built without domain plugins cannot be checked and
91
+ * accept the type unchanged.
92
+ */
93
+ validateTaskExecutable(type: TaskType, targetDomains?: readonly DomainName[]): Result<void, Error>;
83
94
  submitTask(taskInput: Omit<QueenTask, 'id' | 'createdAt'>): Promise<Result<string, Error>>;
84
95
  cancelTask(taskId: string): Promise<Result<void, Error>>;
85
96
  getTaskStatus(taskId: string): TaskExecution | undefined;
@@ -102,7 +113,7 @@ export declare class QueenCoordinator implements IQueenCoordinator {
102
113
  triggerWorkStealing(): Promise<number>;
103
114
  listAllAgents(): AgentInfo[];
104
115
  getAgentsByDomain(domain: DomainName): AgentInfo[];
105
- requestAgentSpawn(domain: DomainName, type: string, capabilities: string[]): Promise<Result<string, Error>>;
116
+ requestAgentSpawn(domain: DomainName, type: string, capabilities: string[], taskId?: string): Promise<Result<string, Error>>;
106
117
  getHealth(): QueenHealth;
107
118
  getMetrics(): QueenMetrics;
108
119
  getMinCutBridge(): QueenMinCutBridge | null;
@@ -47,11 +47,12 @@ import { createHypothesisManager } from './competing-hypotheses/index.js';
47
47
  import { createFederationMailbox } from './federation/index.js';
48
48
  import { createDynamicScaler } from './dynamic-scaling/index.js';
49
49
  // Types, interfaces, constants, and config
50
- import { DEFAULT_QUEEN_CONFIG, initializeTaskDomainMap, } from './queen-types.js';
50
+ import { DEFAULT_QUEEN_CONFIG, getTaskDomains, initializeTaskDomainMap, } from './queen-types.js';
51
51
  export { DOMAIN_GROUPS, TASK_DOMAIN_MAP } from './queen-types.js';
52
52
  // Extracted modules
53
53
  import { subscribeToEvents, computeDomainHealthFromAgents } from './queen-event-handlers.js';
54
- import { enqueueTask, removeFromQueues, getQueuePosition, processQueue, listTasks as listTasksImpl, assignTask, assignTaskToDomain, } from './queen-task-management.js';
54
+ import { findDomainsWithoutHandler, describeMissingHandler } from './task-executability.js';
55
+ import { enqueueTask, removeFromQueues, getQueuePosition, processQueue, listTasks as listTasksImpl, assignTask, dispatchStolenTask, canDomainExecuteTask, } from './queen-task-management.js';
55
56
  import { triggerWorkStealing as triggerWorkStealingImpl, startWorkStealingTimer } from './queen-work-stealing.js';
56
57
  import { isMinCutAwarePlugin, injectMinCutBridgeIntoPlugins, loadState, saveState, startMetricsCollectionTimer, cleanupCompletedTasks as cleanupCompletedTasksImpl, getEnabledDomains, } from './queen-lifecycle.js';
57
58
  // Initialize TASK_DOMAIN_MAP entries that need ALL_DOMAINS
@@ -284,6 +285,28 @@ export class QueenCoordinator {
284
285
  // ============================================================================
285
286
  // Task Management
286
287
  // ============================================================================
288
+ /**
289
+ * #1075: check that a domain plugin will actually execute this task type
290
+ * before an external caller submits it, so the caller gets the reason as a
291
+ * rejection. A type that no candidate domain handles would otherwise only
292
+ * be failed at dispatch by `assignTaskToDomain` (#1081).
293
+ *
294
+ * Every candidate domain must handle the type, because `assignTask` may pick
295
+ * any of them. Queens built without domain plugins cannot be checked and
296
+ * accept the type unchanged.
297
+ */
298
+ validateTaskExecutable(type, targetDomains = []) {
299
+ const candidates = targetDomains.length > 0 ? targetDomains : getTaskDomains(type);
300
+ if (candidates.length === 0) {
301
+ return err(new Error(`Unknown task type '${type}': no domain is configured for it. Pass a target domain.`));
302
+ }
303
+ if (!this.domainPlugins)
304
+ return ok(undefined);
305
+ const gaps = findDomainsWithoutHandler(this.domainPlugins, type, candidates);
306
+ if (gaps.length === 0)
307
+ return ok(undefined);
308
+ return err(new Error(describeMissingHandler(type, gaps)));
309
+ }
287
310
  async submitTask(taskInput) {
288
311
  if (!this.initialized) {
289
312
  return err(new Error('Queen Coordinator not initialized'));
@@ -335,7 +358,11 @@ export class QueenCoordinator {
335
358
  // Assign task to domain
336
359
  const assignResult = await assignTask(this.createTaskContext(), task);
337
360
  if (!assignResult.success) {
338
- this.runningTaskCounter--;
361
+ // A task the Queen already settled (refused by its plugin, or reported
362
+ // failed through onComplete) gave its slot back (#1140).
363
+ if (!this.tasks.has(taskId)) {
364
+ this.runningTaskCounter = Math.max(0, this.runningTaskCounter - 1);
365
+ }
339
366
  return assignResult;
340
367
  }
341
368
  this.tasksReceived++;
@@ -343,7 +370,8 @@ export class QueenCoordinator {
343
370
  return ok(taskId);
344
371
  }
345
372
  catch (error) {
346
- this.runningTaskCounter--;
373
+ // The task's own slot may already be released when the throw comes later.
374
+ this.runningTaskCounter = Math.max(0, this.runningTaskCounter - 1);
347
375
  throw error;
348
376
  }
349
377
  }
@@ -451,7 +479,7 @@ export class QueenCoordinator {
451
479
  getAgentsByDomain(domain) {
452
480
  return this.agentCoordinator.listAgents({ domain });
453
481
  }
454
- async requestAgentSpawn(domain, type, capabilities) {
482
+ async requestAgentSpawn(domain, type, capabilities, taskId) {
455
483
  if (!this.agentCoordinator.canSpawn()) {
456
484
  return err(new Error('Maximum concurrent agents reached (15)'));
457
485
  }
@@ -509,7 +537,10 @@ export class QueenCoordinator {
509
537
  logger.warn(`Auto-team-wiring failed for ${result.value}`, { error: err });
510
538
  }
511
539
  }
512
- await this.publishEvent('AgentSpawned', { agentId: result.value, domain, type, capabilities });
540
+ // #1130: taskId marks an agent that lives only as long as its task.
541
+ await this.publishEvent('AgentSpawned', {
542
+ agentId: result.value, domain, type, capabilities, ...(taskId ? { taskId } : {}),
543
+ });
513
544
  }
514
545
  return result;
515
546
  }
@@ -823,7 +854,7 @@ export class QueenCoordinator {
823
854
  get traceCollector() { return self.traceCollector; },
824
855
  taskTraceContexts: self.taskTraceContexts,
825
856
  get coExecutionRepo() { return self.coExecutionRepo; },
826
- requestAgentSpawn: (d, t, c) => self.requestAgentSpawn(d, t, c),
857
+ requestAgentSpawn: (d, t, c, id) => self.requestAgentSpawn(d, t, c, id),
827
858
  publishEvent: (t, p) => self.publishEvent(t, p),
828
859
  getDomainLoad: (d) => self.getDomainLoad(d),
829
860
  getDomainHealth: (d) => self.getDomainHealth(d),
@@ -840,8 +871,12 @@ export class QueenCoordinator {
840
871
  getIdleDomains: () => self.getIdleDomains(),
841
872
  getBusyDomains: () => self.getBusyDomains(),
842
873
  getDomainLoad: (d) => self.getDomainLoad(d),
874
+ // A queued entry can already be terminal (#1070); only a waiting task is stolen.
875
+ availableSlots: () => self.config.maxConcurrentTasks - self.runningTaskCounter,
876
+ canExecuteInDomain: (d, t) => (self.tasks.get(t.id)?.status ?? 'queued') === 'queued'
877
+ && canDomainExecuteTask(self.domainPlugins, d, t),
843
878
  removeFromQueues: (t) => removeFromQueues(self.taskQueue, self.domainQueues, t),
844
- assignTaskToDomain: (t, d) => assignTaskToDomain(self.createTaskContext(), t, d).then(() => { }),
879
+ assignTaskToDomain: (t, d) => dispatchStolenTask(self.createTaskContext(), t, d),
845
880
  publishEvent: (t, p) => self.publishEvent(t, p),
846
881
  };
847
882
  }
@@ -50,6 +50,17 @@ async function handleDomainEvent(ctx, event) {
50
50
  // ============================================================================
51
51
  // Task completed handler
52
52
  // ============================================================================
53
+ /**
54
+ * #1130: a caller-owned task finishes through these events, not through the
55
+ * plugin completion callback that stops a task's agents, so its agent stayed
56
+ * "running" after the task ended. A retried task spawns a new agent. Stopping
57
+ * an agent that is already stopped is a no-op.
58
+ */
59
+ async function stopTaskAgents(ctx, execution) {
60
+ for (const agentId of execution.assignedAgents) {
61
+ await ctx.agentCoordinator.stop(agentId);
62
+ }
63
+ }
53
64
  export async function handleTaskCompleted(ctx, event) {
54
65
  const { taskId, result } = event.payload;
55
66
  const cancelled = settleCancelledTask(ctx.tasks, taskId);
@@ -62,6 +73,7 @@ export async function handleTaskCompleted(ctx, event) {
62
73
  }
63
74
  const execution = ctx.tasks.get(taskId);
64
75
  if (execution) {
76
+ await stopTaskAgents(ctx, execution);
65
77
  // CC-002 FIX: Decrement the atomic counter when task completes
66
78
  if (execution.status === 'running' || execution.status === 'assigned') {
67
79
  ctx.runningTaskCounter = Math.max(0, ctx.runningTaskCounter - 1);
@@ -173,6 +185,7 @@ export async function handleTaskFailed(ctx, event) {
173
185
  }
174
186
  const execution = ctx.tasks.get(taskId);
175
187
  if (execution) {
188
+ await stopTaskAgents(ctx, execution);
176
189
  // CC-002 FIX: Decrement the atomic counter when task fails
177
190
  if (execution.status === 'running' || execution.status === 'assigned') {
178
191
  ctx.runningTaskCounter = Math.max(0, ctx.runningTaskCounter - 1);
@@ -193,7 +206,8 @@ export async function handleTaskFailed(ctx, event) {
193
206
  }
194
207
  // Check if we should retry. Caller-input errors are deterministic, so a
195
208
  // retry would fail the same way.
196
- if (!callerError && execution.retryCount < ctx.config.taskRetryLimit) {
209
+ const callerOwned = execution.task.executionOwner === 'caller';
210
+ if (!callerError && !callerOwned && execution.retryCount < ctx.config.taskRetryLimit) {
197
211
  ctx.auditLogger.logFail(taskId, execution.assignedAgents[0], error);
198
212
  const retried = {
199
213
  ...execution,
@@ -40,6 +40,15 @@ export async function loadState(memory, tasks, enqueueTask) {
40
40
  if (state) {
41
41
  for (const [id, execution] of state.tasks) {
42
42
  if (execution.status === 'queued') {
43
+ if (execution.task.executionOwner === 'caller') {
44
+ tasks.set(id, {
45
+ ...execution,
46
+ status: 'failed',
47
+ error: 'Caller-owned task was interrupted before completion; submit a new request.',
48
+ completedAt: new Date(),
49
+ });
50
+ continue;
51
+ }
43
52
  tasks.set(id, execution);
44
53
  enqueueTask(execution.task);
45
54
  }