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
@@ -14,7 +14,7 @@ import { LearningCoordinatorService } from '../../../domains/learning-optimizati
14
14
  import { MetricsOptimizerService } from '../../../domains/learning-optimization/services/metrics-optimizer.js';
15
15
  import { TransferSpecialistService } from '../../../domains/learning-optimization/services/transfer-specialist.js';
16
16
  import { toErrorMessage } from '../../../shared/error-utils.js';
17
- import { secureRandom, secureRandomFloat } from '../../../shared/utils/crypto-random.js';
17
+ import { partitionByRewardSource } from '../../../domains/learning-optimization/reward-source.js';
18
18
  // ============================================================================
19
19
  // Tool Implementation
20
20
  // ============================================================================
@@ -59,12 +59,18 @@ export class LearningOptimizeTool extends MCPToolBase {
59
59
  switch (action) {
60
60
  case 'learn':
61
61
  result.learnResult = await this.executeLearn(domain, experienceIds, context);
62
+ if (result.learnResult.evidenceStatus === 'insufficient-evidence') {
63
+ result.evidenceStatus = 'insufficient-evidence';
64
+ }
62
65
  break;
63
66
  case 'optimize':
64
67
  if (!objective) {
65
68
  return { success: false, error: 'Objective is required for optimize action' };
66
69
  }
67
70
  result.optimizeResult = await this.executeOptimize(domain, objective, context);
71
+ if (result.optimizeResult.evidenceStatus === 'insufficient-evidence') {
72
+ result.evidenceStatus = 'insufficient-evidence';
73
+ }
68
74
  break;
69
75
  case 'transfer':
70
76
  if (!domain || !targetDomain) {
@@ -74,9 +80,15 @@ export class LearningOptimizeTool extends MCPToolBase {
74
80
  break;
75
81
  case 'patterns':
76
82
  result.patternResult = await this.executePatterns(domain, context);
83
+ if (result.patternResult.evidenceStatus === 'insufficient-evidence') {
84
+ result.evidenceStatus = 'insufficient-evidence';
85
+ }
77
86
  break;
78
87
  case 'dashboard':
79
88
  result.dashboardResult = await this.executeDashboard(context);
89
+ if (result.dashboardResult.evidenceStatus === 'insufficient-evidence') {
90
+ result.evidenceStatus = 'insufficient-evidence';
91
+ }
80
92
  break;
81
93
  default:
82
94
  return { success: false, error: `Unknown action: ${action}` };
@@ -107,14 +119,24 @@ export class LearningOptimizeTool extends MCPToolBase {
107
119
  status: 'learning',
108
120
  message: `Learning from ${experienceIds?.length || 'recent'} experiences`,
109
121
  });
110
- // Get experiences from memory or mine recent ones
122
+ // #1121: learn from the requested experiences; count only those read.
123
+ if (experienceIds && experienceIds.length > 0) {
124
+ return this.learnFromExperienceIds(learningCoordinator, experienceIds);
125
+ }
126
+ // Mine recent experiences
111
127
  const timeRange = TimeRange.lastNDays(7);
112
128
  const mineResult = await learningCoordinator.mineExperiences(targetDomain, timeRange);
113
129
  const newPatterns = [];
114
130
  let experiencesProcessed = 0;
115
- let improvement = 0;
131
+ let evidence = {};
116
132
  if (mineResult.success) {
117
133
  experiencesProcessed = mineResult.value.experienceCount;
134
+ // #1109: patterns come from measured outcomes only; say how many were left out.
135
+ evidence = {
136
+ measuredExperiences: mineResult.value.measuredExperienceCount ?? experiencesProcessed,
137
+ assignedRewardsExcluded: mineResult.value.assignedRewardsExcluded ?? 0,
138
+ ...(mineResult.value.evidenceStatus ? { evidenceStatus: mineResult.value.evidenceStatus } : {}),
139
+ };
118
140
  // Convert mined patterns to result format
119
141
  for (const pattern of mineResult.value.patterns) {
120
142
  newPatterns.push({
@@ -127,33 +149,55 @@ export class LearningOptimizeTool extends MCPToolBase {
127
149
  successRate: pattern.successRate,
128
150
  });
129
151
  }
130
- // Calculate improvement based on success rate vs baseline
131
- improvement = mineResult.value.successRate > 0.5
132
- ? (mineResult.value.successRate - 0.5) * 20 // Scale to percentage
133
- : 0;
134
- }
135
- // If specific experience IDs provided, record them
136
- if (experienceIds && experienceIds.length > 0) {
137
- experiencesProcessed = experienceIds.length;
138
152
  }
139
153
  // If no patterns were learned, return empty result (not fake data)
140
154
  // This is a valid state - no patterns discovered yet
141
- if (newPatterns.length === 0) {
142
- this.markAsRealData(); // Still real data, just empty
143
- return {
144
- experiencesProcessed,
145
- patternsLearned: 0,
146
- newPatterns: [],
147
- improvement: 0,
148
- };
149
- }
150
- // Mark as real data - we have actual learning results
155
+ // #1109: there is no recorded baseline, so improvement is never computed
156
+ // here. The former (successRate - 0.5) * 20 was an invented scale.
151
157
  this.markAsRealData();
152
158
  return {
153
159
  experiencesProcessed,
160
+ ...evidence,
154
161
  patternsLearned: newPatterns.length,
155
162
  newPatterns,
156
- improvement,
163
+ improvement: null,
164
+ unmeasured: ['improvement'],
165
+ };
166
+ }
167
+ /**
168
+ * #1121: learn from explicitly requested experiences. experiencesProcessed
169
+ * is the number actually read; IDs with no stored experience are counted in
170
+ * experienceIdsNotFound instead of being reported as processed.
171
+ */
172
+ async learnFromExperienceIds(learningCoordinator, experienceIds) {
173
+ const readResult = await learningCoordinator.getExperiencesByIds(experienceIds);
174
+ if (!readResult.success)
175
+ throw readResult.error;
176
+ const read = readResult.value;
177
+ const { measured, assignedExcluded } = partitionByRewardSource(read);
178
+ const learned = measured.length > 0 ? await learningCoordinator.learnPattern(read) : null;
179
+ const newPatterns = learned?.success
180
+ ? [{
181
+ id: learned.value.id,
182
+ type: learned.value.type,
183
+ name: learned.value.name,
184
+ description: learned.value.description,
185
+ confidence: learned.value.confidence,
186
+ usageCount: learned.value.usageCount,
187
+ successRate: learned.value.successRate,
188
+ }]
189
+ : [];
190
+ this.markAsRealData();
191
+ return {
192
+ experiencesProcessed: read.length,
193
+ experienceIdsNotFound: new Set(experienceIds).size - read.length,
194
+ measuredExperiences: measured.length,
195
+ assignedRewardsExcluded: assignedExcluded,
196
+ ...(measured.length === 0 ? { evidenceStatus: 'insufficient-evidence' } : {}),
197
+ patternsLearned: newPatterns.length,
198
+ newPatterns,
199
+ improvement: null,
200
+ unmeasured: ['improvement'],
157
201
  };
158
202
  }
159
203
  /**
@@ -205,30 +249,18 @@ export class LearningOptimizeTool extends MCPToolBase {
205
249
  // Get recent experiences for optimization
206
250
  const targetDomain = domain || 'learning-optimization';
207
251
  const timeRange = TimeRange.lastNDays(30);
208
- const mineResult = await learningCoordinator.mineExperiences(targetDomain, timeRange);
209
- // Build experiences array from mined data
210
- const experiences = [];
211
- if (mineResult.success && mineResult.value.experienceCount > 0) {
212
- // Mine experiences provides insights, so we construct dummy experiences for optimization
213
- // Real implementation would fetch actual experiences from memory
214
- const dummyAgentId = { value: 'optimizer-agent', domain: targetDomain, type: 'optimizer' };
215
- for (let i = 0; i < Math.min(mineResult.value.experienceCount, 20); i++) {
216
- experiences.push({
217
- id: `exp-${i}`,
218
- agentId: dummyAgentId,
219
- domain: targetDomain,
220
- action: 'optimize',
221
- state: { context: {}, metrics: {} },
222
- result: {
223
- success: secureRandom() > 0.3,
224
- outcome: { [objective.metric]: secureRandomFloat(70, 100) },
225
- duration: secureRandomFloat(1000, 6000),
226
- },
227
- reward: mineResult.value.avgReward,
228
- timestamp: new Date(),
229
- });
230
- }
231
- }
252
+ const recorded = await learningCoordinator.getExperiences(targetDomain, timeRange);
253
+ if (!recorded.success)
254
+ throw recorded.error;
255
+ // #1109: an assigned reward is not an observation; leave it out before the
256
+ // sample-count gate so it can neither pad the count nor fail the optimizer.
257
+ const { measured, assignedExcluded } = partitionByRewardSource(recorded.value);
258
+ // Missing objective values are absence of evidence, not zero or a random
259
+ // synthetic observation. Preserve eligible records (including failures).
260
+ const experiences = measured.filter(experience => {
261
+ const value = experience.result.outcome[objective.metric];
262
+ return typeof value === 'number' && Number.isFinite(value);
263
+ });
232
264
  // Create current strategy
233
265
  const currentStrategy = {
234
266
  name: `${targetDomain}-current`,
@@ -237,7 +269,8 @@ export class LearningOptimizeTool extends MCPToolBase {
237
269
  retryCount: 3,
238
270
  timeout: 30000,
239
271
  },
240
- expectedOutcome: { [objective.metric]: 70 },
272
+ // #1099: the current strategy's outcome was never measured here.
273
+ expectedOutcome: {},
241
274
  };
242
275
  // Convert objective to domain type, properly cast constraints
243
276
  const domainConstraints = (objective.constraints || []).map(c => ({
@@ -253,19 +286,32 @@ export class LearningOptimizeTool extends MCPToolBase {
253
286
  // Run optimization if we have enough experiences
254
287
  let bestStrategy = currentStrategy;
255
288
  let improvement = 0;
256
- let confidence = 0.5;
289
+ let confidence = 0;
257
290
  let validationResults = [];
291
+ let unmeasured = [];
292
+ let estimated;
293
+ let evaluation;
258
294
  if (experiences.length >= 20) {
259
295
  const optimizeResult = await metricsOptimizer.optimizeStrategy(currentStrategy, domainObjective, experiences);
260
- if (optimizeResult.success) {
261
- bestStrategy = {
262
- name: optimizeResult.value.optimizedStrategy.name,
263
- parameters: optimizeResult.value.optimizedStrategy.parameters,
264
- expectedOutcome: optimizeResult.value.optimizedStrategy.expectedOutcome,
296
+ if (!optimizeResult.success)
297
+ throw optimizeResult.error;
298
+ bestStrategy = {
299
+ name: optimizeResult.value.optimizedStrategy.name,
300
+ parameters: optimizeResult.value.optimizedStrategy.parameters,
301
+ expectedOutcome: optimizeResult.value.optimizedStrategy.expectedOutcome,
302
+ };
303
+ improvement = optimizeResult.value.improvement * 100; // Convert to percentage
304
+ confidence = optimizeResult.value.confidence;
305
+ validationResults = optimizeResult.value.validationResults;
306
+ const derived = optimizeResult.value.evaluation;
307
+ if (derived) {
308
+ evaluation = {
309
+ method: derived.method,
310
+ trainingSamples: derived.trainingSamples,
311
+ heldOutSamples: derived.heldOutSamples,
265
312
  };
266
- improvement = optimizeResult.value.improvement * 100; // Convert to percentage
267
- confidence = optimizeResult.value.confidence;
268
- validationResults = optimizeResult.value.validationResults;
313
+ estimated = derived.estimated;
314
+ unmeasured = [...(derived.unmeasured ?? [])];
269
315
  }
270
316
  }
271
317
  else {
@@ -274,16 +320,27 @@ export class LearningOptimizeTool extends MCPToolBase {
274
320
  tags: [targetDomain, objective.metric],
275
321
  };
276
322
  const recommendResult = await metricsOptimizer.recommendStrategy(contextForRecommendation);
277
- if (recommendResult.success) {
278
- bestStrategy = {
279
- name: recommendResult.value.name,
280
- parameters: recommendResult.value.parameters,
281
- expectedOutcome: recommendResult.value.expectedOutcome,
282
- };
283
- }
323
+ if (!recommendResult.success)
324
+ throw recommendResult.error;
325
+ bestStrategy = {
326
+ name: recommendResult.value.name,
327
+ parameters: recommendResult.value.parameters,
328
+ expectedOutcome: recommendResult.value.expectedOutcome,
329
+ };
330
+ unmeasured = ['improvement', 'confidence'];
331
+ }
332
+ if (Object.keys(bestStrategy.expectedOutcome).length === 0) {
333
+ unmeasured.push('expectedOutcome');
284
334
  }
285
335
  return {
286
- strategiesEvaluated: experiences.length > 0 ? Math.min(experiences.length, 12) : 1,
336
+ inputSource: 'recorded-experiences',
337
+ experiencesUsed: experiences.length,
338
+ ...(assignedExcluded > 0 ? { assignedRewardsExcluded: assignedExcluded } : {}),
339
+ strategiesEvaluated: experiences.length >= 20 ? 1 : 0,
340
+ ...(experiences.length < 20 ? { evidenceStatus: 'insufficient-evidence' } : {}),
341
+ ...(unmeasured.length > 0 ? { unmeasured } : {}),
342
+ ...(estimated ? { estimated } : {}),
343
+ ...(evaluation ? { evaluation } : {}),
287
344
  bestStrategy,
288
345
  improvement,
289
346
  confidence,
@@ -342,14 +399,15 @@ export class LearningOptimizeTool extends MCPToolBase {
342
399
  // Get pattern statistics from the real service
343
400
  const statsResult = await learningCoordinator.getPatternStats(domain);
344
401
  if (!statsResult.success) {
345
- // Return empty stats on failure
402
+ // Stats could not be read: nothing is measured, so no averages (#1121).
346
403
  return {
347
404
  totalPatterns: 0,
348
405
  byType: {},
349
406
  byDomain: {},
350
407
  topPatterns: [],
351
- avgConfidence: 0,
352
- avgSuccessRate: 0,
408
+ avgConfidence: null,
409
+ avgSuccessRate: null,
410
+ evidenceStatus: 'insufficient-evidence',
353
411
  sona,
354
412
  };
355
413
  }
@@ -364,13 +422,17 @@ export class LearningOptimizeTool extends MCPToolBase {
364
422
  usageCount: p.usageCount,
365
423
  successRate: p.successRate,
366
424
  }));
425
+ const measured = stats.totalPatterns > 0;
367
426
  return {
368
427
  totalPatterns: stats.totalPatterns,
369
428
  byType: stats.byType,
370
429
  byDomain: stats.byDomain,
371
430
  topPatterns,
372
- avgConfidence: stats.avgConfidence,
373
- avgSuccessRate: stats.avgSuccessRate,
431
+ avgConfidence: measured ? stats.avgConfidence : null,
432
+ avgSuccessRate: measured ? stats.avgSuccessRate : null,
433
+ ...(stats.assignedPatternsExcluded ? { assignedPatternsExcluded: stats.assignedPatternsExcluded } : {}),
434
+ ...(stats.legacyPatternsExcluded ? { legacyPatternsExcluded: stats.legacyPatternsExcluded } : {}),
435
+ ...(measured ? {} : { evidenceStatus: 'insufficient-evidence' }),
374
436
  sona,
375
437
  };
376
438
  }
@@ -395,16 +457,17 @@ export class LearningOptimizeTool extends MCPToolBase {
395
457
  'quality-assessment', 'defect-intelligence', 'learning-optimization'
396
458
  ];
397
459
  let experiencesLast24h = 0;
460
+ let assignedRewardsExcluded = 0;
398
461
  const domainPerformance = [];
399
462
  for (const domain of domains) {
400
463
  const mineResult = await learningCoordinator.mineExperiences(domain, recentTimeRange);
401
464
  if (mineResult.success) {
402
465
  experiencesLast24h += mineResult.value.experienceCount;
403
- if (mineResult.value.experienceCount > 0) {
404
- domainPerformance.push({
405
- domain,
406
- successRate: mineResult.value.successRate,
407
- });
466
+ assignedRewardsExcluded += mineResult.value.assignedRewardsExcluded ?? 0;
467
+ // #1109: only a measured success rate can rank a domain.
468
+ const { successRate } = mineResult.value;
469
+ if (successRate !== null) {
470
+ domainPerformance.push({ domain, successRate });
408
471
  }
409
472
  }
410
473
  }
@@ -414,8 +477,17 @@ export class LearningOptimizeTool extends MCPToolBase {
414
477
  .slice(0, 3)
415
478
  .map(d => d.domain);
416
479
  // Calculate overall learning rate from pattern stats
480
+ // getPatternStats already leaves out patterns learned from assigned rewards.
417
481
  const totalPatterns = statsResult.success ? statsResult.value.totalPatterns : 0;
418
- const avgSuccessRate = statsResult.success ? statsResult.value.avgSuccessRate : 0;
482
+ const assignedPatternsExcluded = statsResult.success
483
+ ? statsResult.value.assignedPatternsExcluded ?? 0
484
+ : 0;
485
+ const legacyPatternsExcluded = statsResult.success
486
+ ? statsResult.value.legacyPatternsExcluded ?? 0
487
+ : 0;
488
+ const avgSuccessRate = totalPatterns > 0 && statsResult.success
489
+ ? statsResult.value.avgSuccessRate
490
+ : null;
419
491
  const overallLearningRate = avgSuccessRate;
420
492
  // Generate learning trend from weekly pattern mining
421
493
  const learningTrend = [];
@@ -437,28 +509,40 @@ export class LearningOptimizeTool extends MCPToolBase {
437
509
  value: dayPatterns,
438
510
  });
439
511
  }
440
- // Generate milestones based on actual achievements
512
+ // Milestones from measured figures. When each was first reached is not
513
+ // recorded, so achievedAt is null rather than an invented date (#1109).
441
514
  const recentMilestones = [];
442
515
  if (totalPatterns >= 100) {
443
516
  recentMilestones.push({
444
517
  name: `Reached ${Math.floor(totalPatterns / 50) * 50} patterns`,
445
- achievedAt: new Date(now.getTime() - 2 * 24 * 60 * 60 * 1000).toISOString(),
518
+ achievedAt: null,
446
519
  domain: 'learning-optimization',
447
520
  });
448
521
  }
449
- if (avgSuccessRate >= 0.8) {
522
+ if (avgSuccessRate !== null && avgSuccessRate >= 0.8) {
450
523
  recentMilestones.push({
451
524
  name: `${Math.round(avgSuccessRate * 100)}% pattern success rate`,
452
- achievedAt: new Date(now.getTime() - 5 * 24 * 60 * 60 * 1000).toISOString(),
525
+ achievedAt: null,
453
526
  domain: topPerformingDomains[0] || 'learning-optimization',
454
527
  });
455
528
  }
529
+ const unmeasured = [];
530
+ if (overallLearningRate === null)
531
+ unmeasured.push('overallLearningRate');
532
+ if (topPerformingDomains.length === 0)
533
+ unmeasured.push('topPerformingDomains');
456
534
  return {
457
535
  overallLearningRate,
458
536
  totalPatterns,
459
537
  totalKnowledge: knowledgeResult.success ? knowledgeResult.value.length : 0,
460
538
  experiencesLast24h,
461
- topPerformingDomains: topPerformingDomains.length > 0 ? topPerformingDomains : ['test-generation'],
539
+ ...(assignedRewardsExcluded > 0 ? { assignedRewardsExcluded } : {}),
540
+ ...(assignedPatternsExcluded > 0 ? { assignedPatternsExcluded } : {}),
541
+ ...(legacyPatternsExcluded > 0 ? { legacyPatternsExcluded } : {}),
542
+ topPerformingDomains,
543
+ ...(unmeasured.length > 0
544
+ ? { evidenceStatus: 'insufficient-evidence', unmeasured }
545
+ : {}),
462
546
  learningTrend,
463
547
  recentMilestones,
464
548
  sona,
@@ -11,6 +11,8 @@
11
11
  */
12
12
  import { MCPToolBase } from '../base.js';
13
13
  import { toErrorMessage } from '../../../shared/error-utils.js';
14
+ import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
15
+ import { findProjectRoot } from '../../../kernel/project-root.js';
14
16
  import { getLLMRouter } from '../base.js';
15
17
  import { runQualityGate, } from '../../../validation/quality-gate-runner.js';
16
18
  import { createRouterFrontierJudge, createUnavailableJudge, } from '../../../validation/frontier-judge.js';
@@ -32,6 +34,15 @@ export class QualityGateTool extends MCPToolBase {
32
34
  if (typeof params.artifact !== 'string' || params.artifact.length === 0) {
33
35
  return { success: false, error: 'artifact (non-empty string) is required' };
34
36
  }
37
+ // #1126: a caller-named anchor must be a regular file inside the project
38
+ // (relative paths resolve against the project root, as the runner does).
39
+ let anchorPath;
40
+ if (params.anchorPath !== undefined) {
41
+ const confined = await requirePayloadPath('qe/quality/gate', 'anchorPath', params.anchorPath, { basePath: findProjectRoot(), maxBytes: MAX_PAYLOAD_FILE_BYTES });
42
+ if (!confined.success)
43
+ return { success: false, error: confined.error.message };
44
+ anchorPath = confined.value;
45
+ }
35
46
  const router = await getLLMRouter(context);
36
47
  const judge = router
37
48
  ? createRouterFrontierJudge(router, {
@@ -47,7 +58,7 @@ export class QualityGateTool extends MCPToolBase {
47
58
  artifact: params.artifact,
48
59
  checklistId: params.checklistId,
49
60
  judge,
50
- anchorPath: params.anchorPath,
61
+ anchorPath,
51
62
  verificationManifest: params.verificationManifest,
52
63
  });
53
64
  return { success: true, data: result };
@@ -15,6 +15,7 @@ import { MCPToolBase } from '../base.js';
15
15
  import { createQualityCriteriaService, HTSM_CATEGORIES, NEVER_OMIT_CATEGORIES, } from '../../../domains/requirements-validation/index.js';
16
16
  import { existsSync, readFileSync } from 'fs';
17
17
  import { toErrorMessage } from '../../../shared/error-utils.js';
18
+ import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
18
19
  // ============================================================================
19
20
  // Tool Implementation
20
21
  // ============================================================================
@@ -121,8 +122,14 @@ export class QualityCriteriaTool extends MCPToolBase {
121
122
  });
122
123
  // Load epic content
123
124
  let content = epicContent || '';
124
- if (epicPath && existsSync(epicPath)) {
125
- content = readFileSync(epicPath, 'utf-8');
125
+ // #1126: the epic is returned verbatim in the agent prompt, so read it
126
+ // only from a regular file inside the project.
127
+ if (epicPath) {
128
+ const confined = await requirePayloadPath('quality-criteria', 'epicPath', epicPath, { allowMissing: true, maxBytes: MAX_PAYLOAD_FILE_BYTES });
129
+ if (!confined.success)
130
+ return { success: false, error: confined.error.message };
131
+ if (existsSync(confined.value))
132
+ content = readFileSync(confined.value, 'utf-8');
126
133
  }
127
134
  if (!content && !epicPath) {
128
135
  return {
@@ -50,7 +50,13 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
50
50
  return state.value;
51
51
  },
52
52
  set(value, timestamp) {
53
- const ts = timestamp ?? Date.now();
53
+ let ts = timestamp ?? Date.now();
54
+ // Without an explicit timestamp the write means "now": a second write by
55
+ // this node within one clock tick (or after a backwards clock step) must
56
+ // still supersede its own earlier write, not tie with it and be dropped.
57
+ if (timestamp === undefined && state.version > 0 && state.nodeId === nodeId && ts <= state.timestamp) {
58
+ ts = state.timestamp + 1;
59
+ }
54
60
  // Only update if new timestamp wins
55
61
  if (state.version === 0 ||
56
62
  compareTimestamps(ts, nodeId, state.timestamp, state.nodeId) > 0) {
@@ -78,6 +84,10 @@ export function createLWWRegister(nodeId, initialValue, initialTimestamp) {
78
84
  };
79
85
  },
80
86
  applyState(incoming) {
87
+ // An unwritten register is the merge identity: its placeholder timestamp
88
+ // (0) would otherwise beat a real write at a negative timestamp.
89
+ if (incoming.version === 0)
90
+ return;
81
91
  // Only update if incoming timestamp wins
82
92
  if (state.version === 0 ||
83
93
  compareTimestamps(incoming.timestamp, incoming.nodeId, state.timestamp, state.nodeId) > 0) {
@@ -7,6 +7,7 @@
7
7
  * @module migration/agent-compat
8
8
  * @see docs/adr/adr-048-agent-naming-conventions.md
9
9
  */
10
+ import { getOwn } from '../shared/utils/safe-record.js';
10
11
  /**
11
12
  * Complete mapping of deprecated V2 agent names to their V3 equivalents with domain info.
12
13
  *
@@ -127,7 +128,8 @@ export const v2AgentMapping = Object.fromEntries(Object.entries(v2AgentMappingWi
127
128
  * ```
128
129
  */
129
130
  export function resolveAgentName(name) {
130
- return v2AgentMapping[name] ?? name;
131
+ // #1136: own entries only; `constructor` is not a V2 agent name.
132
+ return getOwn(v2AgentMapping, name) ?? name;
131
133
  }
132
134
  /**
133
135
  * Checks if an agent name is a deprecated V2 agent.
@@ -146,7 +148,7 @@ export function resolveAgentName(name) {
146
148
  * ```
147
149
  */
148
150
  export function isDeprecatedAgent(name) {
149
- return name in v2AgentMapping;
151
+ return Object.hasOwn(v2AgentMapping, name);
150
152
  }
151
153
  /**
152
154
  * Generates a deprecation warning message for a V2 agent name.
@@ -170,7 +172,7 @@ export function isDeprecatedAgent(name) {
170
172
  * ```
171
173
  */
172
174
  export function getDeprecationWarning(v2Name) {
173
- const v3Name = v2AgentMapping[v2Name];
175
+ const v3Name = getOwn(v2AgentMapping, v2Name);
174
176
  if (!v3Name) {
175
177
  return '';
176
178
  }
@@ -211,7 +213,7 @@ export const v3Agents = [
211
213
  */
212
214
  export function getAgentDomain(agentName) {
213
215
  // Check V2 mapping
214
- const v2Entry = v2AgentMappingWithDomain[agentName];
216
+ const v2Entry = getOwn(v2AgentMappingWithDomain, agentName);
215
217
  if (v2Entry) {
216
218
  return v2Entry.domain;
217
219
  }
@@ -261,7 +263,7 @@ export function generateMigrationReport(usedAgents) {
261
263
  const alreadyV3 = [];
262
264
  const unknown = [];
263
265
  for (const agent of usedAgents) {
264
- const v2Entry = v2AgentMappingWithDomain[agent];
266
+ const v2Entry = getOwn(v2AgentMappingWithDomain, agent);
265
267
  if (v2Entry) {
266
268
  needsMigration.push({
267
269
  v2Name: agent,
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Agentic QE v3 - Dream insights archive table (#1066, #1116)
3
+ *
4
+ * The dream_insights retention sweep copies each stale insight here before it
5
+ * deletes it (#1066). Until #1116 the sweep created the table lazily on its
6
+ * first run, outside the versioned schema; it is now created by the v14
7
+ * migration.
8
+ *
9
+ * Additive and idempotent: `CREATE ... IF NOT EXISTS` only, so a database where
10
+ * an earlier sweep already created the table (with its rows) is left as it
11
+ * is, and an older AQE that still creates it lazily with the same statement
12
+ * keeps working on a migrated database.
13
+ *
14
+ * Same columns as dream_insights plus archive_id and archived_at. `id` is not
15
+ * unique here: an insight that comes back (for example from a brain import)
16
+ * and is swept again gets a second row instead of replacing the first. No
17
+ * foreign key, so deleting a dream cycle does not cascade into the archive.
18
+ */
19
+ import type { Database as DatabaseType } from 'better-sqlite3';
20
+ export declare const MIGRATION_VERSION = "20261018_add_dream_insights_archive";
21
+ export declare const DREAM_INSIGHTS_ARCHIVE_TABLE = "dream_insights_archive";
22
+ /** The table, exactly as the 3.15.9 sweep created it lazily. */
23
+ export declare const DREAM_INSIGHTS_ARCHIVE_TABLE_SQL = "\n CREATE TABLE IF NOT EXISTS dream_insights_archive (\n archive_id INTEGER PRIMARY KEY AUTOINCREMENT,\n id TEXT NOT NULL,\n cycle_id TEXT,\n insight_type TEXT,\n source_concepts TEXT,\n description TEXT,\n novelty_score REAL,\n confidence_score REAL,\n actionable INTEGER,\n applied INTEGER,\n suggested_action TEXT,\n pattern_id TEXT,\n created_at TEXT,\n archived_at TEXT NOT NULL DEFAULT (datetime('now'))\n )\n";
24
+ export declare const DREAM_INSIGHTS_ARCHIVE_SCHEMA = "\n \n CREATE TABLE IF NOT EXISTS dream_insights_archive (\n archive_id INTEGER PRIMARY KEY AUTOINCREMENT,\n id TEXT NOT NULL,\n cycle_id TEXT,\n insight_type TEXT,\n source_concepts TEXT,\n description TEXT,\n novelty_score REAL,\n confidence_score REAL,\n actionable INTEGER,\n applied INTEGER,\n suggested_action TEXT,\n pattern_id TEXT,\n created_at TEXT,\n archived_at TEXT NOT NULL DEFAULT (datetime('now'))\n )\n;\n -- The sweep's read-back looks copies up by insight id.\n CREATE INDEX IF NOT EXISTS idx_dream_insights_archive_id ON dream_insights_archive(id);\n";
25
+ export declare function applyMigration(db: DatabaseType): void;
26
+ export declare function isMigrationApplied(db: DatabaseType): boolean;
27
+ //# sourceMappingURL=20261018_add_dream_insights_archive.d.ts.map
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Agentic QE v3 - Dream insights archive table (#1066, #1116)
3
+ *
4
+ * The dream_insights retention sweep copies each stale insight here before it
5
+ * deletes it (#1066). Until #1116 the sweep created the table lazily on its
6
+ * first run, outside the versioned schema; it is now created by the v14
7
+ * migration.
8
+ *
9
+ * Additive and idempotent: `CREATE ... IF NOT EXISTS` only, so a database where
10
+ * an earlier sweep already created the table (with its rows) is left as it
11
+ * is, and an older AQE that still creates it lazily with the same statement
12
+ * keeps working on a migrated database.
13
+ *
14
+ * Same columns as dream_insights plus archive_id and archived_at. `id` is not
15
+ * unique here: an insight that comes back (for example from a brain import)
16
+ * and is swept again gets a second row instead of replacing the first. No
17
+ * foreign key, so deleting a dream cycle does not cascade into the archive.
18
+ */
19
+ export const MIGRATION_VERSION = '20261018_add_dream_insights_archive';
20
+ export const DREAM_INSIGHTS_ARCHIVE_TABLE = 'dream_insights_archive';
21
+ /** The table, exactly as the 3.15.9 sweep created it lazily. */
22
+ export const DREAM_INSIGHTS_ARCHIVE_TABLE_SQL = `
23
+ CREATE TABLE IF NOT EXISTS ${DREAM_INSIGHTS_ARCHIVE_TABLE} (
24
+ archive_id INTEGER PRIMARY KEY AUTOINCREMENT,
25
+ id TEXT NOT NULL,
26
+ cycle_id TEXT,
27
+ insight_type TEXT,
28
+ source_concepts TEXT,
29
+ description TEXT,
30
+ novelty_score REAL,
31
+ confidence_score REAL,
32
+ actionable INTEGER,
33
+ applied INTEGER,
34
+ suggested_action TEXT,
35
+ pattern_id TEXT,
36
+ created_at TEXT,
37
+ archived_at TEXT NOT NULL DEFAULT (datetime('now'))
38
+ )
39
+ `;
40
+ export const DREAM_INSIGHTS_ARCHIVE_SCHEMA = `
41
+ ${DREAM_INSIGHTS_ARCHIVE_TABLE_SQL};
42
+ -- The sweep's read-back looks copies up by insight id.
43
+ CREATE INDEX IF NOT EXISTS idx_dream_insights_archive_id ON ${DREAM_INSIGHTS_ARCHIVE_TABLE}(id);
44
+ `;
45
+ export function applyMigration(db) {
46
+ db.exec(DREAM_INSIGHTS_ARCHIVE_SCHEMA);
47
+ }
48
+ export function isMigrationApplied(db) {
49
+ try {
50
+ const result = db.prepare(`SELECT COUNT(*) AS count FROM sqlite_master WHERE type = 'table' AND name = ?`).get(DREAM_INSIGHTS_ARCHIVE_TABLE);
51
+ return result.count === 1;
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ //# sourceMappingURL=20261018_add_dream_insights_archive.js.map
@@ -118,7 +118,9 @@ export class EMACalibrator {
118
118
  * Serialize all records for persistence.
119
119
  */
120
120
  serialize() {
121
- const result = {};
121
+ // Null prototype: an agentId of `__proto__` must stay an own key (a plain
122
+ // object would turn the assignment into a prototype change and drop it).
123
+ const result = Object.create(null);
122
124
  for (const [key, record] of this.records) {
123
125
  result[key] = { ...record };
124
126
  }
@@ -180,6 +180,10 @@ export declare abstract class BaseDomainPlugin implements DomainPlugin {
180
180
  * Based on registered task handlers
181
181
  */
182
182
  canHandleTask(taskType: string): boolean;
183
+ /**
184
+ * Task types this domain executes, from its registered task handlers (#1075)
185
+ */
186
+ getSupportedTaskTypes(): string[];
183
187
  /**
184
188
  * Execute a task assigned by Queen Coordinator
185
189
  * Routes to the appropriate handler based on task type