agentic-qe 3.15.8 → 3.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +183 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
  5. package/dist/bridge/captured-experience-bridge.js +12 -13
  6. package/dist/cli/bundle.js +6 -6
  7. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +2 -0
  8. package/dist/cli/chunks/{agent-booster-wasm-W3V5P7LE.js → agent-booster-wasm-427FRKWG.js} +2 -2
  9. package/dist/cli/chunks/{agent-handler-2NQFHAWE.js → agent-handler-RIYHTHVZ.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-457ECHHK.js → agent-memory-branch-WSUCUHOO.js} +2 -2
  11. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +2 -0
  12. package/dist/cli/chunks/{arena-JV3WSEHU.js → arena-KRIBMIXX.js} +2 -2
  13. package/dist/cli/chunks/{arena-IYBQ3GPY.js → arena-YAJZX6MC.js} +4 -4
  14. package/dist/cli/chunks/{audit-5OS3T3K6.js → audit-7ZNOXWP3.js} +3 -3
  15. package/dist/cli/chunks/base-67DXSAYM.js +2 -0
  16. package/dist/cli/chunks/{better-sqlite3-IQKBFVAO.js → better-sqlite3-ZQAT4I6H.js} +2 -2
  17. package/dist/cli/chunks/{brain-handler-KA3SGAFM.js → brain-handler-452WCPZC.js} +3 -3
  18. package/dist/cli/chunks/{branch-enumerator-QZDU2VOQ.js → branch-enumerator-IJFXJRPN.js} +2 -2
  19. package/dist/cli/chunks/{browser-ZL7OLKJQ.js → browser-CT3MTV6G.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +2 -0
  21. package/dist/cli/chunks/{chunk-IJSFZO7P.js → chunk-2BA45H64.js} +2 -2
  22. package/dist/cli/chunks/{chunk-6GIC2263.js → chunk-2HL3UM5P.js} +2 -2
  23. package/dist/cli/chunks/{chunk-KVMKYUOE.js → chunk-2I2UPJS7.js} +2 -2
  24. package/dist/cli/chunks/{chunk-22DOS3PM.js → chunk-2TDIS6YK.js} +2 -2
  25. package/dist/cli/chunks/{chunk-5MBNRTT5.js → chunk-2URBI52G.js} +2 -2
  26. package/dist/cli/chunks/{chunk-A6GCO6ZU.js → chunk-2XITOPYV.js} +2 -2
  27. package/dist/cli/chunks/{chunk-I77D65X5.js → chunk-2YH62JCN.js} +2 -2
  28. package/dist/cli/chunks/{chunk-2JCLACCS.js → chunk-32UTLDNY.js} +2 -2
  29. package/dist/cli/chunks/{chunk-UTNKMPTC.js → chunk-37BIGMJI.js} +1 -1
  30. package/dist/cli/chunks/{chunk-767SR7WH.js → chunk-3CJCROMW.js} +2 -2
  31. package/dist/cli/chunks/{chunk-LVHZK7GW.js → chunk-3LYU7BLY.js} +2 -2
  32. package/dist/cli/chunks/{chunk-5DZDLOY6.js → chunk-47TYABPD.js} +3 -3
  33. package/dist/cli/chunks/{chunk-SWY6KGMF.js → chunk-47V7FQGX.js} +2 -2
  34. package/dist/cli/chunks/{chunk-KMZW2P3R.js → chunk-4JCY45KV.js} +2 -2
  35. package/dist/cli/chunks/{chunk-D4IBIMWI.js → chunk-4SUOVLJ6.js} +2 -2
  36. package/dist/cli/chunks/{chunk-J7RCI25Q.js → chunk-4URT6JO2.js} +1 -1
  37. package/dist/cli/chunks/{chunk-SHEVM5PF.js → chunk-4V27J6YN.js} +2 -2
  38. package/dist/cli/chunks/{chunk-JWPYMRIX.js → chunk-4W4DYVSH.js} +1 -1
  39. package/dist/cli/chunks/chunk-55HRSNGN.js +2 -0
  40. package/dist/cli/chunks/{chunk-R2NHGESM.js → chunk-5D2I7JUP.js} +2 -2
  41. package/dist/cli/chunks/{chunk-GGSTLKY5.js → chunk-5JWGCIQW.js} +1 -1
  42. package/dist/cli/chunks/chunk-5LAAZLUC.js +4 -0
  43. package/dist/cli/chunks/{chunk-YNQPHRUZ.js → chunk-5NS3USRW.js} +1 -1
  44. package/dist/cli/chunks/{chunk-4YUBWU3E.js → chunk-6EPHNJTL.js} +1 -1
  45. package/dist/cli/chunks/{chunk-ZBI7PJFX.js → chunk-6OOYIO3W.js} +2 -2
  46. package/dist/cli/chunks/{chunk-ST7ASEJO.js → chunk-6PXA2BQJ.js} +58 -58
  47. package/dist/cli/chunks/{chunk-LPSMVBB3.js → chunk-6YL6JOQB.js} +2 -2
  48. package/dist/cli/chunks/{chunk-DY37YMMQ.js → chunk-72AMFDC7.js} +1 -1
  49. package/dist/cli/chunks/{chunk-OWBFVAEH.js → chunk-763SUL4B.js} +2 -2
  50. package/dist/cli/chunks/{chunk-4GYFONJB.js → chunk-7DMA5NYL.js} +1 -1
  51. package/dist/cli/chunks/{chunk-4GUVVGJX.js → chunk-7JKB3Q7O.js} +1 -1
  52. package/dist/cli/chunks/{chunk-DN3AKAPY.js → chunk-7KII4CQG.js} +2 -2
  53. package/dist/cli/chunks/{chunk-VKFVJCIH.js → chunk-7QGYJ5OY.js} +1 -1
  54. package/dist/cli/chunks/{chunk-HNGNRIZZ.js → chunk-7QTB5VJZ.js} +2 -2
  55. package/dist/cli/chunks/{chunk-GSOK4M6V.js → chunk-7X2Y727E.js} +1 -1
  56. package/dist/cli/chunks/{chunk-PZ7FJ4UG.js → chunk-A4RU67VX.js} +2 -2
  57. package/dist/cli/chunks/{chunk-VWSGWYRB.js → chunk-A6YIH4C4.js} +2 -2
  58. package/dist/cli/chunks/{chunk-4I35ARWW.js → chunk-ABFDB4X3.js} +1 -1
  59. package/dist/cli/chunks/{chunk-NQDYOF35.js → chunk-AJ4YDSOI.js} +2 -2
  60. package/dist/cli/chunks/{chunk-CDLG3Q2O.js → chunk-AOFO4N32.js} +2 -2
  61. package/dist/cli/chunks/{chunk-WAWKAYPY.js → chunk-AQTVVLNP.js} +1 -1
  62. package/dist/cli/chunks/chunk-AR2E4B7K.js +6 -0
  63. package/dist/cli/chunks/{chunk-HXCGV5UJ.js → chunk-AVB5QY2Q.js} +2 -2
  64. package/dist/cli/chunks/{chunk-JFWQFB3S.js → chunk-BHKXMIWX.js} +2 -2
  65. package/dist/cli/chunks/{chunk-BEVWCF3Q.js → chunk-BXO536GT.js} +3 -3
  66. package/dist/cli/chunks/{chunk-IMSRWNWF.js → chunk-C6RTMTEH.js} +1 -1
  67. package/dist/cli/chunks/{chunk-UKKFZJME.js → chunk-CTZJUV5I.js} +1 -1
  68. package/dist/cli/chunks/{chunk-MV4S3TEC.js → chunk-D6XVGFTI.js} +2 -2
  69. package/dist/cli/chunks/{chunk-5YOO5QSE.js → chunk-DDPPSSHW.js} +1 -1
  70. package/dist/cli/chunks/{chunk-NHOMVBCI.js → chunk-DGTLJNJH.js} +2 -2
  71. package/dist/cli/chunks/{chunk-NWFBF3KT.js → chunk-DINZR5CF.js} +1 -1
  72. package/dist/cli/chunks/{chunk-RG42LDOB.js → chunk-EFBLP43U.js} +2 -2
  73. package/dist/cli/chunks/chunk-ETG7O5E5.js +5 -0
  74. package/dist/cli/chunks/{chunk-KNHLOANK.js → chunk-F2SQPP6U.js} +2 -2
  75. package/dist/cli/chunks/{chunk-62T7U25U.js → chunk-F3PQZX44.js} +1 -1
  76. package/dist/cli/chunks/{chunk-X3HM7SV4.js → chunk-F4JYIRW2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-NZATJ2C6.js → chunk-FJ4VTLLK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-TMNEK7TP.js → chunk-FL3OYGCS.js} +2 -2
  79. package/dist/cli/chunks/{chunk-HI6OBDDY.js → chunk-FLASM2XB.js} +2 -2
  80. package/dist/cli/chunks/{chunk-GENNJRNK.js → chunk-FV3NHVC7.js} +22 -22
  81. package/dist/cli/chunks/{chunk-PICEGWGB.js → chunk-FV7VAG74.js} +1 -1
  82. package/dist/cli/chunks/{chunk-PWA6XBW4.js → chunk-G3BKZNFL.js} +5 -5
  83. package/dist/cli/chunks/{chunk-T2TDTBFV.js → chunk-GBUIG3FS.js} +1 -1
  84. package/dist/cli/chunks/{chunk-QFYUZYRA.js → chunk-GCWSX2NY.js} +4 -4
  85. package/dist/cli/chunks/{chunk-KJNUETCB.js → chunk-GII5WVAK.js} +1 -1
  86. package/dist/cli/chunks/{chunk-YVWMJZ6O.js → chunk-GKPQ2GRR.js} +2 -2
  87. package/dist/cli/chunks/chunk-GR3JYE5A.js +2 -0
  88. package/dist/cli/chunks/{chunk-CQ5G64EA.js → chunk-H3KBIWTO.js} +2 -2
  89. package/dist/cli/chunks/{chunk-V4QJ3MMT.js → chunk-HAROIAJE.js} +1 -1
  90. package/dist/cli/chunks/{chunk-OJWEZYLR.js → chunk-HCYQHWI2.js} +2 -2
  91. package/dist/cli/chunks/{chunk-FAYXES7R.js → chunk-HGTWAZWU.js} +2 -2
  92. package/dist/cli/chunks/{chunk-LHRVSK44.js → chunk-HTZJSQ3C.js} +2 -2
  93. package/dist/cli/chunks/{chunk-DAFMHM64.js → chunk-HWK5L7IJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-K5R3WUJP.js → chunk-HZ5NC6U5.js} +1 -1
  95. package/dist/cli/chunks/{chunk-Y5ZBF7MA.js → chunk-I6S35FRO.js} +2 -2
  96. package/dist/cli/chunks/{chunk-UDCYQLTD.js → chunk-ICP2ORGI.js} +2 -2
  97. package/dist/cli/chunks/{chunk-KMVFBYJO.js → chunk-IFEIY3NQ.js} +2 -2
  98. package/dist/cli/chunks/{chunk-NW7HTOSN.js → chunk-J3DTDJDT.js} +2 -2
  99. package/dist/cli/chunks/chunk-J3WGK22W.js +2 -0
  100. package/dist/cli/chunks/{chunk-5ONJ7AV6.js → chunk-J5KNRVXR.js} +1 -1
  101. package/dist/cli/chunks/{chunk-G77Q22EN.js → chunk-JAV5WPSY.js} +2 -2
  102. package/dist/cli/chunks/{chunk-VVK4ECVJ.js → chunk-JEP4ULR6.js} +2 -2
  103. package/dist/cli/chunks/{chunk-TC52M542.js → chunk-JK2ME6IT.js} +2 -2
  104. package/dist/cli/chunks/chunk-JNNZK7KH.js +2 -0
  105. package/dist/cli/chunks/{chunk-NLYUC63R.js → chunk-JP4P3P3D.js} +2 -2
  106. package/dist/cli/chunks/{chunk-BTMEOZYY.js → chunk-JUVHZG7I.js} +1 -1
  107. package/dist/cli/chunks/{chunk-PUYQ6EKC.js → chunk-JWGRWMZP.js} +2 -2
  108. package/dist/cli/chunks/{chunk-OCLAMZJG.js → chunk-K5DJXMAA.js} +2 -2
  109. package/dist/cli/chunks/{chunk-X7ZQIFES.js → chunk-KFUUIAR4.js} +2 -2
  110. package/dist/cli/chunks/chunk-KHSRIPBP.js +180 -0
  111. package/dist/cli/chunks/{chunk-U3BWBP6B.js → chunk-KIKWJM6J.js} +2 -2
  112. package/dist/cli/chunks/{chunk-MUDBF2JC.js → chunk-KIXYKUCI.js} +1 -1
  113. package/dist/cli/chunks/{chunk-P4UT4LBE.js → chunk-KLGYIEJK.js} +3 -3
  114. package/dist/cli/chunks/{chunk-G6CLO74Q.js → chunk-KR3M44CF.js} +3 -3
  115. package/dist/cli/chunks/chunk-KTSLTZSG.js +2 -0
  116. package/dist/cli/chunks/{chunk-FJAO4UX2.js → chunk-KVBEGOJE.js} +2 -2
  117. package/dist/cli/chunks/{chunk-BLZEOGQE.js → chunk-L42JPFCC.js} +2 -2
  118. package/dist/cli/chunks/{chunk-ZOVAZTXE.js → chunk-LCJTEUDC.js} +370 -370
  119. package/dist/cli/chunks/{chunk-JLTGO5BB.js → chunk-LEAKYZ37.js} +2 -2
  120. package/dist/cli/chunks/{chunk-RSMPJWQH.js → chunk-LMU5DUDK.js} +1 -1
  121. package/dist/cli/chunks/{chunk-FEN2DHFM.js → chunk-MZS32SYS.js} +1 -1
  122. package/dist/cli/chunks/{chunk-J7FLNP5L.js → chunk-N3KEY4XJ.js} +2 -2
  123. package/dist/cli/chunks/{chunk-ZG7UKWBB.js → chunk-N3NP6PTT.js} +2 -2
  124. package/dist/cli/chunks/{chunk-2DPHFCMW.js → chunk-N5PDFGCQ.js} +2 -2
  125. package/dist/cli/chunks/{chunk-BQUIZ5QT.js → chunk-NDKLQW6N.js} +2 -2
  126. package/dist/cli/chunks/{chunk-52YRSWPS.js → chunk-NHZIWIQZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-ZOHS32SI.js → chunk-NTAD5UX4.js} +2 -2
  128. package/dist/cli/chunks/{chunk-7H3GNRNA.js → chunk-O3JLOVZX.js} +2 -2
  129. package/dist/cli/chunks/{chunk-7XGM7Q2N.js → chunk-OCESWNAZ.js} +3 -3
  130. package/dist/cli/chunks/{chunk-7SLEUVPZ.js → chunk-OG2UI6A3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-4TZLZRZ4.js → chunk-OXTFSIGN.js} +1 -1
  132. package/dist/cli/chunks/{chunk-2QRGIEQV.js → chunk-OXZLKP6C.js} +1 -1
  133. package/dist/cli/chunks/{chunk-FEPFXXI7.js → chunk-P2CXVNKK.js} +2 -2
  134. package/dist/cli/chunks/{chunk-P2EA62YS.js → chunk-P73W2K7T.js} +1 -1
  135. package/dist/cli/chunks/{chunk-V7VZSNDK.js → chunk-PBZI2ZPV.js} +3 -3
  136. package/dist/cli/chunks/{chunk-MMY52Y6R.js → chunk-PMCRCEW5.js} +2 -2
  137. package/dist/cli/chunks/{chunk-FWXNFPLS.js → chunk-PVIA2FPD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-NF63NHJH.js → chunk-PX2B5TS2.js} +2 -2
  139. package/dist/cli/chunks/{chunk-SFPGLUXS.js → chunk-Q3JVJRVJ.js} +1 -1
  140. package/dist/cli/chunks/{chunk-XOOBLZXR.js → chunk-QQ5SZH4D.js} +2 -2
  141. package/dist/cli/chunks/{chunk-KITKQUBX.js → chunk-QTVWUQTB.js} +1 -1
  142. package/dist/cli/chunks/{chunk-2UN4JOTN.js → chunk-REUFWGMA.js} +2 -2
  143. package/dist/cli/chunks/{chunk-CQ3SBRDP.js → chunk-SNBYYO6F.js} +2 -2
  144. package/dist/cli/chunks/{chunk-A2UGPKCS.js → chunk-SVHUYVUR.js} +2 -2
  145. package/dist/cli/chunks/{chunk-PIEKGKW6.js → chunk-THAY7WHO.js} +2 -2
  146. package/dist/cli/chunks/{chunk-WLXGUQOZ.js → chunk-TNMQVG4A.js} +2 -2
  147. package/dist/cli/chunks/{chunk-2GSAAUW3.js → chunk-TSYQDRNK.js} +1 -1
  148. package/dist/cli/chunks/{chunk-7DHSHD5B.js → chunk-TUYJ53V4.js} +2 -2
  149. package/dist/cli/chunks/{chunk-U7CIY3YR.js → chunk-UNUTC6TX.js} +2 -2
  150. package/dist/cli/chunks/{chunk-CRUQ6RXU.js → chunk-UOJBR4J3.js} +2 -2
  151. package/dist/cli/chunks/{chunk-3LFLO2WK.js → chunk-UOWHE77F.js} +2 -2
  152. package/dist/cli/chunks/{chunk-O4RRVTXN.js → chunk-UYLYMWV5.js} +2 -2
  153. package/dist/cli/chunks/{chunk-D4O3TJI7.js → chunk-V5PXQSFS.js} +2 -2
  154. package/dist/cli/chunks/{chunk-VQRBBR27.js → chunk-VCMINU7K.js} +2 -2
  155. package/dist/cli/chunks/{chunk-3N627QRU.js → chunk-VQHVHVSF.js} +2 -2
  156. package/dist/cli/chunks/{chunk-J6LL25QJ.js → chunk-VRGCKBF7.js} +2 -2
  157. package/dist/cli/chunks/{chunk-VWRNG3UK.js → chunk-VU2EL424.js} +1 -1
  158. package/dist/cli/chunks/{chunk-KNQUHGNY.js → chunk-VXZJOKOX.js} +2 -2
  159. package/dist/cli/chunks/{chunk-EUVSSIGR.js → chunk-VYLM2YV5.js} +3 -3
  160. package/dist/cli/chunks/{chunk-PJGQ2TKN.js → chunk-W32YU3VI.js} +2 -2
  161. package/dist/cli/chunks/{chunk-YRH7KMTU.js → chunk-W5VJRDDG.js} +2 -2
  162. package/dist/cli/chunks/{chunk-PPIM7B5G.js → chunk-WGDR2KIR.js} +2 -2
  163. package/dist/cli/chunks/{chunk-2ZRNXEVI.js → chunk-WRRCQ2UE.js} +1 -1
  164. package/dist/cli/chunks/{chunk-7C6FMLQR.js → chunk-XDBD4GXO.js} +2 -2
  165. package/dist/cli/chunks/{chunk-W5A36V3Z.js → chunk-XOLDMK23.js} +2 -2
  166. package/dist/cli/chunks/{chunk-DCYUHCPK.js → chunk-XOVNZT7F.js} +1 -1
  167. package/dist/cli/chunks/{chunk-4C7KE2EL.js → chunk-XQ3DDY7X.js} +2 -2
  168. package/dist/cli/chunks/{chunk-K4N2MBCE.js → chunk-XUIA5KMS.js} +2 -2
  169. package/dist/cli/chunks/{chunk-YUP3APSN.js → chunk-XWIUFYM3.js} +1 -1
  170. package/dist/cli/chunks/{chunk-SJMZZMHP.js → chunk-XYCKHYBM.js} +2 -2
  171. package/dist/cli/chunks/{chunk-4NTLGGXO.js → chunk-XZJ2O3VC.js} +1 -1
  172. package/dist/cli/chunks/{chunk-UQLAN5TX.js → chunk-YRBBBUJX.js} +5 -5
  173. package/dist/cli/chunks/{chunk-XZQVC3GD.js → chunk-YZGSJG34.js} +1 -1
  174. package/dist/cli/chunks/{chunk-7CVMT64N.js → chunk-YZYDTABJ.js} +1 -1
  175. package/dist/cli/chunks/{chunk-4C3RYBTT.js → chunk-ZANDSVCK.js} +2 -2
  176. package/dist/cli/chunks/{chunk-6E7EOHMN.js → chunk-ZBDRLF43.js} +2 -2
  177. package/dist/cli/chunks/{chunk-UTFMMZ57.js → chunk-ZVSLCEVC.js} +3 -3
  178. package/dist/cli/chunks/{chunk-DKFSCJEF.js → chunk-ZXBCCO2H.js} +2 -2
  179. package/dist/cli/chunks/{ci-7NUCRGWO.js → ci-7SGRCFPS.js} +2 -2
  180. package/dist/cli/chunks/{ci-config-VQVECCFI.js → ci-config-MX3URPZA.js} +2 -2
  181. package/dist/cli/chunks/{ci-output-P7GQ6TKF.js → ci-output-M47NJY6D.js} +2 -2
  182. package/dist/cli/chunks/{circuit-breaker-5YP6N6HE.js → circuit-breaker-5GAK45SW.js} +2 -2
  183. package/dist/cli/chunks/{claude-flow-setup-W5H7CMU6.js → claude-flow-setup-YXYSRH4Y.js} +2 -2
  184. package/dist/cli/chunks/client-ZP3CTVRF.js +2 -0
  185. package/dist/cli/chunks/{cline-installer-OYANSZ54.js → cline-installer-DLJ5QD5N.js} +2 -2
  186. package/dist/cli/chunks/{code-OMT4UEZI.js → code-ONKLMVQ2.js} +25 -24
  187. package/dist/cli/chunks/{code-index-extractor-M2JEWKNF.js → code-index-extractor-2232LGZN.js} +2 -2
  188. package/dist/cli/chunks/{codex-installer-YBS6N5O3.js → codex-installer-UOWLYCMH.js} +2 -2
  189. package/dist/cli/chunks/{completions-U7GS5RG6.js → completions-MHX7GCC7.js} +2 -2
  190. package/dist/cli/chunks/{complexity-analyzer-QSXPIUIU.js → complexity-analyzer-43ZUJKZU.js} +2 -2
  191. package/dist/cli/chunks/{continuedev-installer-W5TTT743.js → continuedev-installer-6Q5JR4FF.js} +2 -2
  192. package/dist/cli/chunks/{copilot-installer-KC2RT24C.js → copilot-installer-CZUMVHSI.js} +2 -2
  193. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +2 -0
  194. package/dist/cli/chunks/{cost-tracker-OQPVR6V4.js → cost-tracker-VS5ZW3XN.js} +2 -2
  195. package/dist/cli/chunks/{coverage-TCO2A2NX.js → coverage-VWKTWZ6D.js} +3 -3
  196. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +2 -0
  197. package/dist/cli/chunks/{cursor-installer-MH7GWD4L.js → cursor-installer-YIFEMORH.js} +2 -2
  198. package/dist/cli/chunks/{daemon-UJEARJZ2.js → daemon-SHWJSJW5.js} +7 -7
  199. package/dist/cli/chunks/daemon-YIFT46FH.js +34 -0
  200. package/dist/cli/chunks/{dag-attention-scheduler-F3SUJU5O.js → dag-attention-scheduler-TCC2WM46.js} +2 -2
  201. package/dist/cli/chunks/{detect-5QTCRB32.js → detect-IGTWSQMA.js} +2 -2
  202. package/dist/cli/chunks/{dist-node-XKZPHDBO.js → dist-node-TCOTJVQX.js} +2 -2
  203. package/dist/cli/chunks/{domain-handler-V3UEADKW.js → domain-handler-55ZVYODR.js} +2 -2
  204. package/dist/cli/chunks/{domain-plugins-7PES4UHZ.js → domain-plugins-GJRWOHQP.js} +2 -2
  205. package/dist/cli/chunks/{domain-transfer-NF7UJW7B.js → domain-transfer-6EF75EKU.js} +2 -2
  206. package/dist/cli/chunks/dream-UDLM6M55.js +2 -0
  207. package/dist/cli/chunks/{embed-and-insert-pattern-D2HWORHF.js → embed-and-insert-pattern-XAMNIKQL.js} +2 -2
  208. package/dist/cli/chunks/{eval-UF2UBAUC.js → eval-GO22R4OZ.js} +2 -2
  209. package/dist/cli/chunks/{experience-capture-middleware-2OUCEHHM.js → experience-capture-middleware-F2BRMJ3Y.js} +3 -3
  210. package/dist/cli/chunks/{fast-paths-KV5DKKHC.js → fast-paths-6RGPYALD.js} +2 -2
  211. package/dist/cli/chunks/{feature-flags-6YWMTNO5.js → feature-flags-MIWQIOHU.js} +2 -2
  212. package/dist/cli/chunks/{feature-flags-MTW6NMR3.js → feature-flags-ZGS3KLPH.js} +2 -2
  213. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +2 -0
  214. package/dist/cli/chunks/fleet-ADL57COA.js +44 -0
  215. package/dist/cli/chunks/{gnn-wrapper-52V6ANOY.js → gnn-wrapper-ALBJVW6T.js} +2 -2
  216. package/dist/cli/chunks/{heartbeat-handler-X7NHNRC7.js → heartbeat-handler-ZMM53NDY.js} +4 -4
  217. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +2 -0
  218. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +2 -0
  219. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +2 -0
  220. package/dist/cli/chunks/{hnsw-legacy-bridge-DZBE3KMK.js → hnsw-legacy-bridge-RYUJPA7B.js} +2 -2
  221. package/dist/cli/chunks/{hnswlib-node-2AWWUJAZ.js → hnswlib-node-XM6XF3YV.js} +2 -2
  222. package/dist/cli/chunks/{hooks-XLPVROL3.js → hooks-X62O7TJO.js} +10 -10
  223. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +2 -0
  224. package/dist/cli/chunks/{hypergraph-engine-6TI7YP6P.js → hypergraph-engine-ZBWUPTVD.js} +2 -2
  225. package/dist/cli/chunks/{hypergraph-handler-DBIBBOXS.js → hypergraph-handler-DUMF6SJV.js} +3 -3
  226. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +2 -0
  227. package/dist/cli/chunks/{init-guard-OSO6MIDD.js → init-guard-S4I2R46S.js} +2 -2
  228. package/dist/cli/chunks/{init-handler-7S7IHMUF.js → init-handler-L4KJHVWS.js} +6 -6
  229. package/dist/cli/chunks/init-wizard-422UZYQ5.js +2 -0
  230. package/dist/cli/chunks/kernel-N7PJ6FCE.js +2 -0
  231. package/dist/cli/chunks/{kilocode-installer-2KBRFXMA.js → kilocode-installer-GNNB5FCZ.js} +2 -2
  232. package/dist/cli/chunks/{kiro-installer-5VFR4OQZ.js → kiro-installer-HR6ZAH7T.js} +2 -2
  233. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +2 -0
  234. package/dist/cli/chunks/{learning-G5NHL3DV.js → learning-4IEEOHJS.js} +3 -3
  235. package/dist/cli/chunks/{llm-router-4EAPPMHS.js → llm-router-ZFMORP36.js} +4 -4
  236. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +2 -0
  237. package/dist/cli/chunks/{load-UYMZPEY6.js → load-ZM43WGDO.js} +2 -2
  238. package/dist/cli/chunks/load-test-POMIF4Q4.js +2 -0
  239. package/dist/cli/chunks/{mcp-NOTDZBW5.js → mcp-CRZKZE37.js} +2 -2
  240. package/dist/cli/chunks/{memory-QL53YIHP.js → memory-W5FZGVAD.js} +5 -5
  241. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +2 -0
  242. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +2 -0
  243. package/dist/cli/chunks/{multi-model-executor-PDDDXF2B.js → multi-model-executor-SXXGAQ2G.js} +2 -2
  244. package/dist/cli/chunks/{opencode-installer-75D2SKOT.js → opencode-installer-PIRBUAB5.js} +2 -2
  245. package/dist/cli/chunks/{orchestrator-3WIZBV4T.js → orchestrator-H5SQCQTB.js} +11 -10
  246. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +2 -0
  247. package/dist/cli/chunks/{pattern-usage-recorder-TEX2JGHA.js → pattern-usage-recorder-XZTWDI2T.js} +2 -2
  248. package/dist/cli/chunks/{pipeline-7ATPA6LU.js → pipeline-5LMLBIJ7.js} +2 -2
  249. package/dist/cli/chunks/{platform-WPSKRJE7.js → platform-KJDABL5C.js} +2 -2
  250. package/dist/cli/chunks/{plugin-UUFOVVMU.js → plugin-V4KSBVVM.js} +2 -2
  251. package/dist/cli/chunks/{prime-radiant-advanced-wasm-PDFSYWKZ.js → prime-radiant-advanced-wasm-JDHTKQAT.js} +2 -2
  252. package/dist/cli/chunks/project-root-X72FSM2F.js +2 -0
  253. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +2 -0
  254. package/dist/cli/chunks/{protocol-handler-3VRYRIQB.js → protocol-handler-BNRONTQV.js} +2 -2
  255. package/dist/cli/chunks/{prove-2NAUROGF.js → prove-ELLL6XMX.js} +2 -2
  256. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +2 -0
  257. package/dist/cli/chunks/{quality-ZIEI2WGA.js → quality-NH2QA4D4.js} +2 -2
  258. package/dist/cli/chunks/{quality-gate-KWJO4SWQ.js → quality-gate-JTKLF7GW.js} +3 -3
  259. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +2 -0
  260. package/dist/cli/chunks/{real-embeddings-TSZ4UIAE.js → real-embeddings-J3KCKLPB.js} +2 -2
  261. package/dist/cli/chunks/{ref-validation-DWFFRETJ.js → ref-validation-HNXQRP4F.js} +2 -2
  262. package/dist/cli/chunks/{roocode-installer-XTZHLUBO.js → roocode-installer-COJ6CX6S.js} +2 -2
  263. package/dist/cli/chunks/router-CXZKOOTR.js +2 -0
  264. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +2 -0
  265. package/dist/cli/chunks/{routing-handler-GG525TDM.js → routing-handler-WM33ZILE.js} +2 -2
  266. package/dist/cli/chunks/{ruvector-commands-QKRJDM7Z.js → ruvector-commands-BBLXEA7A.js} +2 -2
  267. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +2 -0
  268. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +2 -0
  269. package/dist/cli/chunks/{rvf-migration-coordinator-FF52OS6Q.js → rvf-migration-coordinator-P7H6HCAG.js} +2 -2
  270. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +2 -0
  271. package/dist/cli/chunks/{rvf-store-integrity-M6DXTAZ4.js → rvf-store-integrity-R5SPVRFP.js} +2 -2
  272. package/dist/cli/chunks/safe-db-WFODRGVZ.js +2 -0
  273. package/dist/cli/chunks/schedule-RO55OQXG.js +2 -0
  274. package/dist/cli/chunks/scheduler-XXMJCH24.js +2 -0
  275. package/dist/cli/chunks/{security-EHXSW22U.js → security-AUDTRX3I.js} +3 -3
  276. package/dist/cli/chunks/{shared-rvf-adapter-6EH7UVJL.js → shared-rvf-adapter-PVDGBGI2.js} +2 -2
  277. package/dist/cli/chunks/{shared-rvf-dual-writer-WML274E7.js → shared-rvf-dual-writer-LZ2GMSS2.js} +2 -2
  278. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +2 -0
  279. package/dist/cli/chunks/{standalone-memory-C7QKAXS4.js → standalone-memory-XNOAI4G4.js} +2 -2
  280. package/dist/cli/chunks/{status-handler-VLI7MRLM.js → status-handler-K72XZE4T.js} +2 -2
  281. package/dist/cli/chunks/{structural-health-3LPG6MQN.js → structural-health-NF3YY7U5.js} +2 -2
  282. package/dist/cli/chunks/{sync-4IMMQEPT.js → sync-UVXA6CT2.js} +2 -2
  283. package/dist/cli/chunks/{sync-JFJEJBVK.js → sync-VBD5Y3E2.js} +2 -2
  284. package/dist/cli/chunks/{task-handler-IED3K6E4.js → task-handler-24S3WFVJ.js} +13 -7
  285. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +9 -0
  286. package/dist/cli/chunks/{test-GPKT3CKZ.js → test-XFSGQELD.js} +4 -4
  287. package/dist/cli/chunks/{test-scheduling-Z42XXZP6.js → test-scheduling-VYUQ4CDE.js} +3 -3
  288. package/dist/cli/chunks/{token-bootstrap-HMM3AHXM.js → token-bootstrap-EDK6FNQ3.js} +2 -2
  289. package/dist/cli/chunks/{token-usage-6Y2ERYIY.js → token-usage-VLQ6WO2L.js} +2 -2
  290. package/dist/cli/chunks/{transformers-MB63T2XO.js → transformers-TOFMWWNM.js} +2 -2
  291. package/dist/cli/chunks/{tree-sitter-wasm-parser-56GDQCMR.js → tree-sitter-wasm-parser-MI3NZKUD.js} +2 -2
  292. package/dist/cli/chunks/{types-J4J6QV3I.js → types-JTWLBAZJ.js} +2 -2
  293. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +2 -0
  294. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +2 -0
  295. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +2 -0
  296. package/dist/cli/chunks/{upgrade-U4XU7LFM.js → upgrade-4ABM72T4.js} +2 -2
  297. package/dist/cli/chunks/{validate-B57HA4YK.js → validate-UDJCWKXI.js} +2 -2
  298. package/dist/cli/chunks/{validate-swarm-UPPA4M6T.js → validate-swarm-TODOUWNN.js} +2 -2
  299. package/dist/cli/chunks/visual-security-6VZNQLH7.js +2 -0
  300. package/dist/cli/chunks/{web-tree-sitter-GDZMUKOZ.js → web-tree-sitter-WBMAJPM5.js} +2 -2
  301. package/dist/cli/chunks/{windsurf-installer-VJRWCHXP.js → windsurf-installer-BTT53TUL.js} +2 -2
  302. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +2 -0
  303. package/dist/cli/chunks/{witness-chain-LFASSMZK.js → witness-chain-TATPXQRK.js} +2 -2
  304. package/dist/cli/chunks/{witness-chain-repair-TPHN4DXN.js → witness-chain-repair-2HGJGE7O.js} +2 -2
  305. package/dist/cli/chunks/{witness-chain-verifier-Z23FVABW.js → witness-chain-verifier-FRY3LMGH.js} +2 -2
  306. package/dist/cli/chunks/{witness-key-manager-745MJ7WO.js → witness-key-manager-X7QHQQWL.js} +2 -2
  307. package/dist/cli/chunks/{workflow-T245QNQM.js → workflow-QMZPAWQW.js} +4 -4
  308. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +2 -0
  309. package/dist/cli/chunks/{wrappers-WCAYIQUX.js → wrappers-ZD5NBHYI.js} +2 -2
  310. package/dist/cli/commands/code.js +8 -0
  311. package/dist/cli/commands/daemon.js +8 -0
  312. package/dist/cli/commands/fleet.js +14 -9
  313. package/dist/cli/handlers/task-handler.js +21 -1
  314. package/dist/coordination/handlers/code-intelligence-handlers.js +14 -2
  315. package/dist/coordination/handlers/coverage-collection.js +9 -10
  316. package/dist/coordination/handlers/coverage-handlers.js +21 -3
  317. package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
  318. package/dist/coordination/handlers/coverage-runner.js +9 -2
  319. package/dist/coordination/handlers/coverage-target.d.ts +13 -3
  320. package/dist/coordination/handlers/coverage-target.js +224 -7
  321. package/dist/coordination/handlers/handler-types.d.ts +2 -0
  322. package/dist/coordination/handlers/test-execution-handlers.js +32 -5
  323. package/dist/coordination/index.d.ts +2 -2
  324. package/dist/coordination/index.js +1 -1
  325. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +39 -0
  326. package/dist/coordination/protocols/learning-consolidation-archive.js +57 -0
  327. package/dist/coordination/protocols/learning-consolidation.d.ts +38 -3
  328. package/dist/coordination/protocols/learning-consolidation.js +128 -50
  329. package/dist/coordination/queen-coordinator.d.ts +12 -1
  330. package/dist/coordination/queen-coordinator.js +24 -1
  331. package/dist/coordination/queen-event-handlers.js +2 -1
  332. package/dist/coordination/queen-lifecycle.js +9 -0
  333. package/dist/coordination/queen-task-management.js +113 -40
  334. package/dist/coordination/queen-types.d.ts +10 -0
  335. package/dist/coordination/queen-types.js +8 -0
  336. package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
  337. package/dist/coordination/task-dag/dag-algorithms.js +162 -0
  338. package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
  339. package/dist/coordination/task-dag/dag-obligations.js +83 -0
  340. package/dist/coordination/task-dag/dag.d.ts +69 -19
  341. package/dist/coordination/task-dag/dag.js +215 -269
  342. package/dist/coordination/task-dag/index.d.ts +12 -4
  343. package/dist/coordination/task-dag/index.js +11 -3
  344. package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
  345. package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
  346. package/dist/coordination/task-dag/scheduler.d.ts +19 -9
  347. package/dist/coordination/task-dag/scheduler.js +36 -12
  348. package/dist/coordination/task-dag/types.d.ts +160 -1
  349. package/dist/coordination/task-dag/types.js +2 -1
  350. package/dist/coordination/task-executability.d.ts +18 -0
  351. package/dist/coordination/task-executability.js +31 -0
  352. package/dist/coordination/task-executor.d.ts +1 -0
  353. package/dist/coordination/task-executor.js +5 -0
  354. package/dist/domains/code-intelligence/coordinator.js +35 -9
  355. package/dist/domains/code-intelligence/index-path-guard.d.ts +49 -0
  356. package/dist/domains/code-intelligence/index-path-guard.js +125 -0
  357. package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
  358. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
  359. package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
  360. package/dist/domains/contract-testing/coordinator.js +3 -1
  361. package/dist/domains/defect-intelligence/services/defect-predictor.js +4 -2
  362. package/dist/domains/learning-optimization/active-patterns.d.ts +12 -12
  363. package/dist/domains/learning-optimization/active-patterns.js +15 -12
  364. package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
  365. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  366. package/dist/domains/learning-optimization/coordinator.js +43 -102
  367. package/dist/domains/learning-optimization/index.d.ts +1 -1
  368. package/dist/domains/learning-optimization/interfaces.d.ts +56 -4
  369. package/dist/domains/learning-optimization/plugin.js +11 -1
  370. package/dist/domains/learning-optimization/reward-source.d.ts +37 -0
  371. package/dist/domains/learning-optimization/reward-source.js +58 -0
  372. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +4 -4
  373. package/dist/domains/learning-optimization/services/learning-coordinator.js +59 -23
  374. package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
  375. package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
  376. package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
  377. package/dist/domains/test-execution/interfaces.d.ts +16 -0
  378. package/dist/domains/test-execution/services/runner-test-cases.d.ts +21 -0
  379. package/dist/domains/test-execution/services/runner-test-cases.js +69 -0
  380. package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
  381. package/dist/domains/test-execution/services/test-executor.js +24 -2
  382. package/dist/init/fleet-integration.js +2 -0
  383. package/dist/init/init-wizard-steps.js +2 -0
  384. package/dist/init/phases/06-code-intelligence.js +2 -0
  385. package/dist/init/phases/10-workers.js +2 -1
  386. package/dist/kernel/anti-drift-middleware.d.ts +44 -5
  387. package/dist/kernel/anti-drift-middleware.js +147 -11
  388. package/dist/kernel/interfaces.d.ts +5 -0
  389. package/dist/learning/dream/dream-insights-pruner.d.ts +18 -4
  390. package/dist/learning/dream/dream-insights-pruner.js +99 -11
  391. package/dist/learning/skill-validation-learner.d.ts +2 -0
  392. package/dist/learning/skill-validation-learner.js +29 -21
  393. package/dist/mcp/background-workers.js +8 -2
  394. package/dist/mcp/bundle.js +507 -483
  395. package/dist/mcp/handlers/domain-handler-configs.d.ts +14 -0
  396. package/dist/mcp/handlers/domain-handler-configs.js +68 -30
  397. package/dist/mcp/handlers/handler-factory.js +1 -0
  398. package/dist/mcp/handlers/task-handlers.js +37 -1
  399. package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
  400. package/dist/mcp/metrics/metrics-collector.js +13 -26
  401. package/dist/mcp/protocol-server.js +8 -3
  402. package/dist/mcp/tools/learning-optimization/optimize.d.ts +34 -3
  403. package/dist/mcp/tools/learning-optimization/optimize.js +106 -70
  404. package/dist/memory/crdt/lww-register.js +11 -1
  405. package/dist/routing/calibration/ema-calibrator.js +3 -1
  406. package/dist/shared/base-domain-plugin.d.ts +4 -0
  407. package/dist/shared/base-domain-plugin.js +6 -0
  408. package/dist/shared/llm/cache.js +4 -1
  409. package/dist/shared/security/compliance-patterns.js +3 -1
  410. package/dist/shared/test-runner-process.d.ts +26 -0
  411. package/dist/shared/test-runner-process.js +91 -0
  412. package/dist/shared/types/index.d.ts +9 -0
  413. package/dist/shared/types/index.js +13 -0
  414. package/dist/shared/utils/namespaced-search.d.ts +42 -0
  415. package/dist/shared/utils/namespaced-search.js +53 -0
  416. package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
  417. package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
  418. package/dist/workers/daemon.d.ts +2 -0
  419. package/dist/workers/daemon.js +10 -5
  420. package/dist/workers/namespaced-keys.d.ts +4 -7
  421. package/dist/workers/namespaced-keys.js +4 -15
  422. package/dist/workers/quality-daemon/ci-monitor.js +9 -5
  423. package/dist/workers/worker-env.d.ts +16 -8
  424. package/dist/workers/worker-env.js +25 -12
  425. package/dist/workers/worker-manager.js +4 -0
  426. package/dist/workers/workers/learning-consolidation.d.ts +1 -1
  427. package/dist/workers/workers/learning-consolidation.js +11 -8
  428. package/package.json +1 -1
  429. package/dist/cli/chunks/adapter-FC4EY447.js +0 -2
  430. package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +0 -2
  431. package/dist/cli/chunks/base-2XML4WH7.js +0 -2
  432. package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +0 -2
  433. package/dist/cli/chunks/chunk-6CKTLVYV.js +0 -2
  434. package/dist/cli/chunks/chunk-I4U7YCXG.js +0 -180
  435. package/dist/cli/chunks/chunk-LZWBUVCK.js +0 -5
  436. package/dist/cli/chunks/chunk-X6VYQVUM.js +0 -2
  437. package/dist/cli/chunks/chunk-YTYS2XSY.js +0 -2
  438. package/dist/cli/chunks/chunk-Z3LDUPLQ.js +0 -6
  439. package/dist/cli/chunks/chunk-ZWMFKZEQ.js +0 -3
  440. package/dist/cli/chunks/client-RFUSQRUZ.js +0 -2
  441. package/dist/cli/chunks/core-handlers-ZC7QB432.js +0 -2
  442. package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +0 -2
  443. package/dist/cli/chunks/daemon-JER6HE2J.js +0 -12
  444. package/dist/cli/chunks/dream-VALD726W.js +0 -2
  445. package/dist/cli/chunks/file-discovery-VL73ASNI.js +0 -2
  446. package/dist/cli/chunks/fleet-GJ66QFXK.js +0 -43
  447. package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +0 -2
  448. package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +0 -2
  449. package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +0 -2
  450. package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +0 -2
  451. package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +0 -2
  452. package/dist/cli/chunks/init-wizard-VH34J4TL.js +0 -2
  453. package/dist/cli/chunks/kernel-KJD24NO7.js +0 -2
  454. package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +0 -2
  455. package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +0 -2
  456. package/dist/cli/chunks/load-test-OTQ2JQ5F.js +0 -2
  457. package/dist/cli/chunks/memory-backend-4QSNRRV6.js +0 -2
  458. package/dist/cli/chunks/memory-handlers-YFFYRSM6.js +0 -2
  459. package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +0 -2
  460. package/dist/cli/chunks/project-root-SRTA6TBL.js +0 -2
  461. package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +0 -2
  462. package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +0 -2
  463. package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +0 -2
  464. package/dist/cli/chunks/router-AUD4GATI.js +0 -2
  465. package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +0 -2
  466. package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +0 -2
  467. package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +0 -2
  468. package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +0 -2
  469. package/dist/cli/chunks/safe-db-Q6JUKG2A.js +0 -2
  470. package/dist/cli/chunks/schedule-44OSMGE5.js +0 -2
  471. package/dist/cli/chunks/scheduler-V3HO2QQT.js +0 -2
  472. package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +0 -2
  473. package/dist/cli/chunks/task-handlers-FH6DNTHW.js +0 -9
  474. package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +0 -2
  475. package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +0 -2
  476. package/dist/cli/chunks/unified-persistence-72OCJJKK.js +0 -2
  477. package/dist/cli/chunks/visual-security-7F5UV23J.js +0 -2
  478. package/dist/cli/chunks/witness-chain-KZ57QUFE.js +0 -2
  479. package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +0 -2
@@ -7,6 +7,8 @@ import { ok, err } from '../../../shared/types/index.js';
7
7
  import { TypeScriptParser } from '../../../shared/parsers/index.js';
8
8
  import { FileReader } from '../../../shared/io/index.js';
9
9
  import { NomicEmbedder } from '../../../shared/embeddings/index.js';
10
+ import { findProjectRoot } from '../../../kernel/project-root.js';
11
+ import { confineIndexPaths } from '../index-path-guard.js';
10
12
  import { toErrorMessage, toError } from '../../../shared/error-utils.js';
11
13
  import { safeJsonParse } from '../../../shared/safe-json.js';
12
14
  import { existsSync, statSync } from 'fs';
@@ -51,6 +53,7 @@ export class KnowledgeGraphService {
51
53
  allEdgesCache;
52
54
  tsParser;
53
55
  fileReader;
56
+ projectRoot;
54
57
  embedder;
55
58
  /** ADR-051: Optional LLM router for AI-enhanced extraction */
56
59
  llmRouter;
@@ -73,7 +76,13 @@ export class KnowledgeGraphService {
73
76
  this.llmRouter = undefined;
74
77
  }
75
78
  this.tsParser = new TypeScriptParser();
76
- this.fileReader = new FileReader(this.config.basePath ? { basePath: this.config.basePath } : undefined);
79
+ // #1096: confine reads to the project root by realpath, so a symlink
80
+ // inside the project cannot pull an outside file into the graph.
81
+ this.projectRoot = this.config.projectRoot ?? this.config.basePath ?? findProjectRoot();
82
+ this.fileReader = new FileReader({
83
+ ...(this.config.basePath ? { basePath: this.config.basePath } : {}),
84
+ projectRoot: this.projectRoot,
85
+ });
77
86
  this.embedder = new NomicEmbedder({
78
87
  enableFallback: true,
79
88
  });
@@ -110,21 +119,35 @@ export class KnowledgeGraphService {
110
119
  const unsupportedByExt = new Map();
111
120
  try {
112
121
  const { paths, incremental = false, includeTests = true, languages } = request;
122
+ // #1096: index only regular files whose realpath is inside the project
123
+ // root; everything else is reported in `skipped`, never counted.
124
+ const { accepted, skipped } = await confineIndexPaths(paths, this.projectRoot, this.config.basePath ?? process.cwd());
125
+ let filesIndexed = 0;
113
126
  // Clear existing graph if not incremental
114
127
  if (!incremental) {
115
128
  await this.clear();
116
129
  }
117
- for (const path of paths) {
130
+ else {
131
+ // #511: a file deleted since the last index must not leave its old
132
+ // nodes/edges behind, even though it is no longer indexed.
133
+ for (const entry of skipped) {
134
+ if (entry.reason === 'not-found')
135
+ await this.removeFileFromGraph(entry.path);
136
+ }
137
+ }
138
+ for (const path of accepted) {
118
139
  try {
119
140
  // Filter by language if specified
120
141
  if (languages && languages.length > 0) {
121
142
  const ext = this.getFileExtension(path);
122
143
  if (!this.matchesLanguage(ext, languages)) {
144
+ skipped.push({ path, reason: 'excluded-by-language' });
123
145
  continue;
124
146
  }
125
147
  }
126
148
  // Skip test files if not included
127
149
  if (!includeTests && this.isTestFile(path)) {
150
+ skipped.push({ path, reason: 'excluded-test-file' });
128
151
  continue;
129
152
  }
130
153
  const ext = this.getFileExtension(path);
@@ -135,6 +158,7 @@ export class KnowledgeGraphService {
135
158
  const result = await this.indexFile(path, incremental);
136
159
  nodesCreated += result.nodes;
137
160
  edgesCreated += result.edges;
161
+ filesIndexed++;
138
162
  }
139
163
  catch (fileError) {
140
164
  errors.push({
@@ -159,19 +183,20 @@ export class KnowledgeGraphService {
159
183
  }
160
184
  // Store indexing metadata
161
185
  await this.storeIndexMetadata({
162
- filesIndexed: paths.length - errors.length,
186
+ filesIndexed,
163
187
  nodesCreated,
164
188
  edgesCreated,
165
189
  duration,
166
190
  indexedAt: new Date().toISOString(),
167
191
  });
168
192
  return ok({
169
- filesIndexed: paths.length - errors.length,
193
+ filesIndexed,
170
194
  nodesCreated,
171
195
  edgesCreated,
172
196
  duration,
173
197
  errors,
174
198
  warnings,
199
+ skipped,
175
200
  });
176
201
  }
177
202
  catch (error) {
@@ -521,7 +546,19 @@ Return JSON: { "rankedIds": ["id1", "id2", ...], "insights": ["insight1", "insig
521
546
  // STALE pre-edit text. Eviction guarantees fresh reads; the two reads within
522
547
  // this method (entities + imports) still share one cache fill, so they stay
523
548
  // mutually consistent.
524
- this.fileReader.invalidateCache(filePath);
549
+ try {
550
+ this.fileReader.invalidateCache(filePath);
551
+ }
552
+ catch {
553
+ // #1096: a path the reader's legacy validator rejects (e.g. a project
554
+ // root outside cwd) is never cached; the read below decides.
555
+ }
556
+ // #1096: a file that cannot be read (removed since it was confined, or
557
+ // blocked by the reader) is an error, not an indexed file node.
558
+ const readable = await this.fileReader.readFile(filePath);
559
+ if (!readable.success) {
560
+ throw readable.error;
561
+ }
525
562
  // #511: on an incremental re-index, drop this file's prior nodes/edges
526
563
  // first so renamed/removed entities and stale outgoing imports don't
527
564
  // linger as phantom dependencies. (A full index already cleared everything.)
@@ -11,6 +11,7 @@ import { toError, toErrorMessage } from '../../shared/error-utils.js';
11
11
  import { Version } from '../../shared/value-objects/index.js';
12
12
  import { createHttpClient } from '../../shared/http/index.js';
13
13
  import { FileReader } from '../../shared/io/index.js';
14
+ import { findProjectRoot } from '../../kernel/project-root.js';
14
15
  import { createEvent } from '../../shared/events/domain-events.js';
15
16
  import { ContractValidatorService } from './services/contract-validator.js';
16
17
  import { ApiCompatibilityService } from './services/api-compatibility.js';
@@ -80,7 +81,8 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
80
81
  this.contractValidator = new ContractValidatorService({ memory, llmRouter });
81
82
  this.apiCompatibility = new ApiCompatibilityService(memory);
82
83
  this.httpClient = createHttpClient();
83
- this.fileReader = new FileReader();
84
+ // #1096: a symlink inside the project must not expose an outside file.
85
+ this.fileReader = new FileReader({ projectRoot: findProjectRoot() });
84
86
  // Note: schemaValidator initialized when needed for schema operations
85
87
  }
86
88
  // ==========================================================================
@@ -10,6 +10,7 @@ import { LoggerFactory } from '../../../logging/index.js';
10
10
  import { ok, err } from '../../../shared/types/index.js';
11
11
  import { GitAnalyzer } from '../../../shared/git/index.js';
12
12
  import { FileReader } from '../../../shared/io/index.js';
13
+ import { findProjectRoot } from '../../../kernel/project-root.js';
13
14
  import { TypeScriptParser } from '../../../shared/parsers/index.js';
14
15
  import { toError } from '../../../shared/error-utils.js';
15
16
  import { safeJsonParse } from '../../../shared/safe-json.js';
@@ -79,7 +80,8 @@ export class DefectPredictorService {
79
80
  // New signature: DefectPredictorDependencies
80
81
  this.memory = memoryOrDeps.memory;
81
82
  this.gitAnalyzer = memoryOrDeps.gitAnalyzer ?? new GitAnalyzer({ enableCache: true });
82
- this.fileReader = memoryOrDeps.fileReader ?? new FileReader();
83
+ // #1096: a symlink inside the project must not expose an outside file.
84
+ this.fileReader = memoryOrDeps.fileReader ?? new FileReader({ projectRoot: findProjectRoot() });
83
85
  this.tsParser = memoryOrDeps.tsParser ?? new TypeScriptParser();
84
86
  this.llmRouter = memoryOrDeps.llmRouter;
85
87
  }
@@ -87,7 +89,7 @@ export class DefectPredictorService {
87
89
  // Old signature: memory, config, gitAnalyzer, fileReader, tsParser
88
90
  this.memory = memoryOrDeps;
89
91
  this.gitAnalyzer = gitAnalyzer ?? new GitAnalyzer({ enableCache: true });
90
- this.fileReader = fileReader ?? new FileReader();
92
+ this.fileReader = fileReader ?? new FileReader({ projectRoot: findProjectRoot() });
91
93
  this.tsParser = tsParser ?? new TypeScriptParser();
92
94
  this.llmRouter = undefined;
93
95
  }
@@ -17,15 +17,16 @@
17
17
  */
18
18
  import type { MemoryBackend, RetrieveOptions } from '../../kernel/interfaces.js';
19
19
  import type { LearnedPattern } from './interfaces.js';
20
+ /**
21
+ * The kv namespace every learning-optimization writer uses (#491 Bug 2).
22
+ * A database identifier: never rename it.
23
+ */
24
+ export declare const LEARNING_NAMESPACE = "learning-optimization";
25
+ /** Retrieve options for reads and deletes in `LEARNING_NAMESPACE` (#1071). */
26
+ export declare const LEARNING_NS: Readonly<RetrieveOptions>;
20
27
  export declare const LEARNING_PATTERN_KEY_PREFIX = "learning:pattern:";
21
28
  /** Sub-key families under the pattern prefix that are not active patterns. */
22
29
  export declare const NON_ACTIVE_PATTERN_SEGMENTS: readonly string[];
23
- /**
24
- * Key-scan cap for active pattern reads. Keys are cheap to list, and only
25
- * active keys are fetched, so the cap is set well above realistic store
26
- * sizes. When it is reached, `onTruncated` is called.
27
- */
28
- export declare const ACTIVE_PATTERN_KEY_SCAN_LIMIT = 10000;
29
30
  /**
30
31
  * True when the key is in the active pattern key family
31
32
  * (`learning:pattern:<id>`), false for provenance, archives and any other
@@ -40,14 +41,13 @@ export declare function isActivePatternRecord(key: string, value: unknown): valu
40
41
  export interface ReadActivePatternsOptions {
41
42
  /** Namespace passed to `search()` and `get()`. Omit for the backend default. */
42
43
  retrieve?: RetrieveOptions;
43
- /** Override the key-scan cap (tests). */
44
- scanLimit?: number;
45
- /** Called when the key scan hit the cap, so results may be incomplete. */
46
- onTruncated?: (scanned: number) => void;
44
+ /** First key-scan request size (tests). The scan always reads every key. */
45
+ scanPageSize?: number;
47
46
  }
48
47
  /**
49
- * Read every active learned pattern: list keys, drop non-active key families
50
- * before `get()`, then drop records that fail the shape guard. Date fields
48
+ * Read every active learned pattern: list every key (no cap, #1071), drop
49
+ * non-active key families before `get()`, then drop records that fail the
50
+ * shape guard. Patterns come back in key order. Date fields
51
51
  * come back from kv as ISO strings and are rehydrated (#491 Bug 3), so
52
52
  * `TimeRange.contains(pattern.createdAt)` works for every reader.
53
53
  */
@@ -16,15 +16,17 @@
16
16
  * untouched; this is read-side classification only.
17
17
  */
18
18
  import { rehydrateDates } from '../../shared/utils/kv-date-rehydrate.js';
19
+ import { searchAllKeys } from '../../shared/utils/namespaced-search.js';
20
+ /**
21
+ * The kv namespace every learning-optimization writer uses (#491 Bug 2).
22
+ * A database identifier: never rename it.
23
+ */
24
+ export const LEARNING_NAMESPACE = 'learning-optimization';
25
+ /** Retrieve options for reads and deletes in `LEARNING_NAMESPACE` (#1071). */
26
+ export const LEARNING_NS = Object.freeze({ namespace: LEARNING_NAMESPACE });
19
27
  export const LEARNING_PATTERN_KEY_PREFIX = 'learning:pattern:';
20
28
  /** Sub-key families under the pattern prefix that are not active patterns. */
21
29
  export const NON_ACTIVE_PATTERN_SEGMENTS = ['creation', 'archived'];
22
- /**
23
- * Key-scan cap for active pattern reads. Keys are cheap to list, and only
24
- * active keys are fetched, so the cap is set well above realistic store
25
- * sizes. When it is reached, `onTruncated` is called.
26
- */
27
- export const ACTIVE_PATTERN_KEY_SCAN_LIMIT = 10_000;
28
30
  /**
29
31
  * True when the key is in the active pattern key family
30
32
  * (`learning:pattern:<id>`), false for provenance, archives and any other
@@ -53,16 +55,17 @@ export function isActivePatternRecord(key, value) {
53
55
  return !!record.context && typeof record.context === 'object';
54
56
  }
55
57
  /**
56
- * Read every active learned pattern: list keys, drop non-active key families
57
- * before `get()`, then drop records that fail the shape guard. Date fields
58
+ * Read every active learned pattern: list every key (no cap, #1071), drop
59
+ * non-active key families before `get()`, then drop records that fail the
60
+ * shape guard. Patterns come back in key order. Date fields
58
61
  * come back from kv as ISO strings and are rehydrated (#491 Bug 3), so
59
62
  * `TimeRange.contains(pattern.createdAt)` works for every reader.
60
63
  */
61
64
  export async function readActivePatterns(memory, options = {}) {
62
- const limit = options.scanLimit ?? ACTIVE_PATTERN_KEY_SCAN_LIMIT;
63
- const keys = await memory.search(`${LEARNING_PATTERN_KEY_PREFIX}*`, limit, options.retrieve);
64
- if (keys.length >= limit)
65
- options.onTruncated?.(keys.length);
65
+ const keys = await searchAllKeys(memory, `${LEARNING_PATTERN_KEY_PREFIX}*`, {
66
+ retrieve: options.retrieve,
67
+ pageSize: options.scanPageSize,
68
+ });
66
69
  const patterns = [];
67
70
  for (const key of keys) {
68
71
  if (!isActivePatternKey(key))
@@ -45,9 +45,8 @@ export async function getCurrentStrategy(memory, domain) {
45
45
  retryCount: 3,
46
46
  concurrency: 4,
47
47
  },
48
- expectedOutcome: {
49
- success_rate: 0.8,
50
- },
48
+ // #1099: the default strategy has never run, so no outcome is expected.
49
+ expectedOutcome: {},
51
50
  };
52
51
  }
53
52
  /**
@@ -276,9 +276,6 @@ export declare class LearningOptimizationCoordinator extends BaseDomainCoordinat
276
276
  */
277
277
  importModels(modelExport: ModelExport): Promise<Result<ImportReport>>;
278
278
  protected subscribeToEvents(): void;
279
- private handleTestRunCompleted;
280
- private handleCoverageGap;
281
- private handleQualityGate;
282
279
  /**
283
280
  * Handle experience captured from ExperienceCaptureService
284
281
  * This is the bridge between Phase 4 experience capture and the coordinator
@@ -3,7 +3,9 @@
3
3
  * Orchestrates learning workflows across all QE domains
4
4
  */
5
5
  import { LoggerFactory } from '../../logging/index.js';
6
- import { readActivePatterns } from './active-patterns.js';
6
+ import { readActivePatterns, LEARNING_NS } from './active-patterns.js';
7
+ import { partitionByRewardSource } from './reward-source.js';
8
+ import { searchAllKeys } from '../../shared/utils/namespaced-search.js';
7
9
  import { v4 as uuidv4 } from 'uuid';
8
10
  import { toError } from '../../shared/error-utils.js';
9
11
  import { rehydrateDates } from '../../shared/utils/kv-date-rehydrate.js';
@@ -19,7 +21,6 @@ import { BaseDomainCoordinator, } from '../base-domain-coordinator.js';
19
21
  // CQ-004: Extracted modules
20
22
  import * as LearningHelpers from './coordinator-helpers.js';
21
23
  import * as ConsensusHelpers from './coordinator-consensus.js';
22
- import { isMeasuredGapPayload } from '../../shared/events/domain-events.js';
23
24
  const DEFAULT_CONFIG = {
24
25
  maxConcurrentWorkflows: 3,
25
26
  defaultTimeout: 120000, // 2 minutes
@@ -200,7 +201,10 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
200
201
  // Get experiences from the last cycle
201
202
  const timeRange = TimeRange.lastNDays(1);
202
203
  const experiencesResult = await this.getExperiencesForDomain(domain, timeRange);
203
- const experiences = experiencesResult.success ? experiencesResult.value : [];
204
+ // #1109: the reported `before` value and the optimizer use measured outcomes only.
205
+ const experiences = experiencesResult.success
206
+ ? partitionByRewardSource(experiencesResult.value).measured
207
+ : [];
204
208
  this.updateWorkflowProgress(workflowId, 20);
205
209
  // Mine experiences for patterns
206
210
  const insightsResult = await this.learningService.mineExperiences(domain, timeRange);
@@ -221,12 +225,19 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
221
225
  const optimizationResult = await this.optimizerService.optimizeStrategy(currentStrategy, objective, experiences);
222
226
  if (optimizationResult.success) {
223
227
  strategiesOptimized = 1;
224
- improvements.push({
225
- metric: objective.metric,
226
- before: this.calculateMetricValue(experiences, objective.metric),
227
- after: optimizationResult.value.optimizedStrategy.expectedOutcome[objective.metric] || 0,
228
- percentChange: optimizationResult.value.improvement * 100,
229
- });
228
+ // #1099: `after` is the fitted expectation and `percentChange` the
229
+ // optimizer's estimate; neither was observed. Report no improvement
230
+ // rather than a 0 stand-in when the metric was never predicted.
231
+ const after = optimizationResult.value.optimizedStrategy.expectedOutcome[objective.metric];
232
+ if (typeof after === 'number') {
233
+ improvements.push({
234
+ metric: objective.metric,
235
+ before: this.calculateMetricValue(experiences, objective.metric),
236
+ after,
237
+ percentChange: optimizationResult.value.improvement * 100,
238
+ estimated: true,
239
+ });
240
+ }
230
241
  }
231
242
  }
232
243
  this.updateWorkflowProgress(workflowId, 80);
@@ -319,6 +330,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
319
330
  domainsOptimized,
320
331
  totalStrategies,
321
332
  avgImprovement: totalStrategies > 0 ? totalImprovement / totalStrategies : 0,
333
+ improvementEstimated: true,
322
334
  byDomain,
323
335
  };
324
336
  // Publish event
@@ -743,19 +755,18 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
743
755
  // Export patterns (#1055: active patterns only — creation provenance
744
756
  // and archives share the `learning:pattern:` prefix). One read covers
745
757
  // every target domain; the previous per-domain loop exported each
746
- // pattern once per target domain.
747
- const activePatterns = await readActivePatterns(this.memory, {
748
- onTruncated: (scanned) => logger.warn('Pattern export key scan hit its cap; export may be incomplete', { scanned }),
749
- });
758
+ // pattern once per target domain. #1071: every key is read, no cap.
759
+ const activePatterns = await readActivePatterns(this.memory, { retrieve: LEARNING_NS });
750
760
  for (const pattern of activePatterns) {
751
761
  if (targetDomains.includes(pattern.domain)) {
752
762
  patterns.push(pattern);
753
763
  }
754
764
  }
755
765
  this.updateWorkflowProgress(workflowId, 30);
756
- // Export knowledge
766
+ // Export knowledge. #1071: no result cap; queryKnowledge reads every
767
+ // shared item before filtering, so other domains cannot crowd these out.
757
768
  const knowledgeResult = await this.transferService.queryKnowledge({
758
- limit: 1000,
769
+ limit: Number.POSITIVE_INFINITY,
759
770
  });
760
771
  if (knowledgeResult.success) {
761
772
  for (const item of knowledgeResult.value) {
@@ -765,10 +776,13 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
765
776
  }
766
777
  }
767
778
  this.updateWorkflowProgress(workflowId, 60);
768
- // Export strategies
769
- const strategyKeys = await this.memory.search(`learning:strategy:optimized:*`, 200);
779
+ // Export strategies from the namespace their writers use (#1071), every
780
+ // key, in key order.
781
+ const strategyKeys = await searchAllKeys(this.memory, 'learning:strategy:optimized:*', {
782
+ retrieve: LEARNING_NS,
783
+ });
770
784
  for (const key of strategyKeys) {
771
- const strategy = await this.memory.get(key);
785
+ const strategy = await this.memory.get(key, LEARNING_NS);
772
786
  if (strategy && targetDomains.includes(strategy.domain)) {
773
787
  strategies.push(strategy);
774
788
  }
@@ -811,7 +825,7 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
811
825
  const conflicts = [];
812
826
  // Import patterns
813
827
  for (const pattern of modelExport.patterns) {
814
- const existing = await this.memory.get(`learning:pattern:${pattern.id}`);
828
+ const existing = await this.memory.get(`learning:pattern:${pattern.id}`, { namespace: 'learning-optimization' });
815
829
  if (existing) {
816
830
  if (existing.confidence < pattern.confidence) {
817
831
  // Overwrite with better pattern
@@ -847,7 +861,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
847
861
  }
848
862
  // Import knowledge
849
863
  for (const item of modelExport.knowledge) {
850
- const existing = await this.memory.get(`learning:knowledge:shared:${item.id}`);
864
+ // #1071: compare against the record in the namespace written below.
865
+ const existing = await this.memory.get(`learning:knowledge:shared:${item.id}`, LEARNING_NS);
851
866
  if (existing) {
852
867
  if (item.version > existing.version) {
853
868
  await this.memory.set(`learning:knowledge:shared:${item.id}`, item, {
@@ -882,7 +897,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
882
897
  }
883
898
  // Import strategies
884
899
  for (const strategy of modelExport.strategies) {
885
- const existing = await this.memory.get(`learning:strategy:optimized:${strategy.id}`);
900
+ // #1071: compare against the record in the namespace written below.
901
+ const existing = await this.memory.get(`learning:strategy:optimized:${strategy.id}`, LEARNING_NS);
886
902
  if (existing) {
887
903
  if (strategy.confidence > existing.confidence) {
888
904
  await this.memory.set(`learning:strategy:optimized:${strategy.id}`, strategy, { namespace: 'learning-optimization', persist: true });
@@ -928,87 +944,13 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
928
944
  // Event Handling
929
945
  // ============================================================================
930
946
  subscribeToEvents() {
931
- // Subscribe to test execution events for learning
932
- this.eventBus.subscribe('test-execution.TestRunCompleted', this.handleTestRunCompleted.bind(this));
933
- // Subscribe to coverage gap events
934
- this.eventBus.subscribe('coverage-analysis.CoverageGapDetected', this.handleCoverageGap.bind(this));
935
- // Subscribe to quality assessment events
936
- this.eventBus.subscribe('quality-assessment.QualityGateEvaluated', this.handleQualityGate.bind(this));
947
+ // #1110: TestRunCompleted, CoverageGapDetected and QualityGateEvaluated are
948
+ // recorded by LearningOptimizationPlugin, which owns this coordinator and
949
+ // also records the test-run production metric. Subscribing here as well
950
+ // stored every such event twice.
937
951
  // Subscribe to experience capture events (Phase 4 integration)
938
952
  this.eventBus.subscribe('learning.ExperienceCaptured', this.handleExperienceCaptured.bind(this));
939
953
  }
940
- async handleTestRunCompleted(event) {
941
- // Record experience from test run
942
- const { runId, passed, failed, duration } = event.payload;
943
- const successRate = (passed + failed) > 0 ? passed / (passed + failed) : 0;
944
- await this.learningService.recordExperience({
945
- agentId: {
946
- value: 'test-execution',
947
- domain: 'test-execution',
948
- type: 'tester',
949
- },
950
- domain: 'test-execution',
951
- action: 'test-run',
952
- state: {
953
- context: { runId },
954
- metrics: { passed, failed, duration },
955
- },
956
- result: {
957
- success: successRate > 0.8,
958
- outcome: { success_rate: successRate, passed, failed },
959
- duration,
960
- },
961
- reward: successRate,
962
- });
963
- }
964
- async handleCoverageGap(event) {
965
- // #1014: only a gap found in MEASURED coverage is acted on / learned from.
966
- if (!isMeasuredGapPayload(event.payload))
967
- return;
968
- // Record as experience for learning
969
- const { gapId, file, riskScore } = event.payload;
970
- await this.learningService.recordExperience({
971
- agentId: {
972
- value: 'coverage-analysis',
973
- domain: 'coverage-analysis',
974
- type: 'analyzer',
975
- },
976
- domain: 'coverage-analysis',
977
- action: 'gap-detection',
978
- state: {
979
- context: { gapId, file },
980
- metrics: { riskScore },
981
- },
982
- result: {
983
- success: true,
984
- outcome: { risk_score: riskScore },
985
- duration: 0,
986
- },
987
- reward: 1 - riskScore, // Lower risk = higher reward
988
- });
989
- }
990
- async handleQualityGate(event) {
991
- const { gateId, passed } = event.payload;
992
- await this.learningService.recordExperience({
993
- agentId: {
994
- value: 'quality-assessment',
995
- domain: 'quality-assessment',
996
- type: 'validator',
997
- },
998
- domain: 'quality-assessment',
999
- action: 'gate-evaluation',
1000
- state: {
1001
- context: { gateId },
1002
- metrics: { passed: passed ? 1 : 0 },
1003
- },
1004
- result: {
1005
- success: passed,
1006
- outcome: { gate_passed: passed ? 1 : 0 },
1007
- duration: 0,
1008
- },
1009
- reward: passed ? 1 : 0,
1010
- });
1011
- }
1012
954
  /**
1013
955
  * Handle experience captured from ExperienceCaptureService
1014
956
  * This is the bridge between Phase 4 experience capture and the coordinator
@@ -1232,9 +1174,8 @@ export class LearningOptimizationCoordinator extends BaseDomainCoordinator {
1232
1174
  retryCount: 3,
1233
1175
  concurrency: 4,
1234
1176
  },
1235
- expectedOutcome: {
1236
- success_rate: 0.8,
1237
- },
1177
+ // #1099: the default strategy has never run, so no outcome is expected.
1178
+ expectedOutcome: {},
1238
1179
  };
1239
1180
  }
1240
1181
  async storeStrategy(domain, strategy) {
@@ -10,5 +10,5 @@ export { LearningCoordinatorService, type LearningCoordinatorConfig as LearningS
10
10
  export { TransferSpecialistService, type TransferSpecialistConfig, type TransferResult, } from './services/transfer-specialist.js';
11
11
  export { MetricsOptimizerService, type MetricsOptimizerConfig, type MetricsSnapshot, } from './services/metrics-optimizer.js';
12
12
  export { ProductionIntelService, type ProductionIntelConfig, type ProductionMetric, type ProductionIncident, type ProductionHealth, } from './services/production-intel.js';
13
- export type { ILearningOptimizationCoordinator, LearningCycleReport, OptimizationReport, CrossDomainSharingReport, LearningDashboard, ModelExport, ImportReport, ImportConflict, Improvement, DomainOptimizationResult, TrendPoint, Milestone, LearnedPattern, PatternType, PatternContext, PatternTemplate, TemplateVariable, PatternStats, IPatternLearningService, Experience, ExperienceResult, StateSnapshot, ResourceUsage, MinedInsights, ExperienceCluster, ExperienceAnomaly, IExperienceMiningService, Knowledge, KnowledgeType, KnowledgeContent, KnowledgeQuery, IKnowledgeSynthesisService, Strategy, OptimizedStrategy, OptimizationObjective, Constraint, ValidationResult, ABTestConfig, ABTestResult, StrategyEvaluation, IStrategyOptimizerService, IPatternRepository, IExperienceRepository, IKnowledgeRepository, IStrategyRepository, PatternLearnedEvent, KnowledgeSharedEvent, StrategyOptimizedEvent, ExperienceRecordedEvent, LearningMilestoneReachedEvent, } from './interfaces.js';
13
+ export type { ILearningOptimizationCoordinator, LearningCycleReport, OptimizationReport, CrossDomainSharingReport, LearningDashboard, ModelExport, ImportReport, ImportConflict, Improvement, DomainOptimizationResult, TrendPoint, Milestone, LearnedPattern, PatternType, PatternContext, PatternTemplate, TemplateVariable, PatternStats, IPatternLearningService, Experience, ExperienceResult, StateSnapshot, ResourceUsage, MinedInsights, ExperienceCluster, ExperienceAnomaly, IExperienceMiningService, Knowledge, KnowledgeType, KnowledgeContent, KnowledgeQuery, IKnowledgeSynthesisService, Strategy, OptimizedStrategy, OptimizationEvaluation, OptimizationObjective, Constraint, ValidationResult, ABTestConfig, ABTestResult, StrategyEvaluation, IStrategyOptimizerService, IPatternRepository, IExperienceRepository, IKnowledgeRepository, IStrategyRepository, PatternLearnedEvent, KnowledgeSharedEvent, StrategyOptimizedEvent, ExperienceRecordedEvent, LearningMilestoneReachedEvent, } from './interfaces.js';
14
14
  //# sourceMappingURL=index.d.ts.map