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
@@ -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) {
@@ -77,6 +83,9 @@ export class LearningOptimizeTool extends MCPToolBase {
77
83
  break;
78
84
  case 'dashboard':
79
85
  result.dashboardResult = await this.executeDashboard(context);
86
+ if (result.dashboardResult.evidenceStatus === 'insufficient-evidence') {
87
+ result.evidenceStatus = 'insufficient-evidence';
88
+ }
80
89
  break;
81
90
  default:
82
91
  return { success: false, error: `Unknown action: ${action}` };
@@ -112,9 +121,15 @@ export class LearningOptimizeTool extends MCPToolBase {
112
121
  const mineResult = await learningCoordinator.mineExperiences(targetDomain, timeRange);
113
122
  const newPatterns = [];
114
123
  let experiencesProcessed = 0;
115
- let improvement = 0;
124
+ let evidence = {};
116
125
  if (mineResult.success) {
117
126
  experiencesProcessed = mineResult.value.experienceCount;
127
+ // #1109: patterns come from measured outcomes only; say how many were left out.
128
+ evidence = {
129
+ measuredExperiences: mineResult.value.measuredExperienceCount ?? experiencesProcessed,
130
+ assignedRewardsExcluded: mineResult.value.assignedRewardsExcluded ?? 0,
131
+ ...(mineResult.value.evidenceStatus ? { evidenceStatus: mineResult.value.evidenceStatus } : {}),
132
+ };
118
133
  // Convert mined patterns to result format
119
134
  for (const pattern of mineResult.value.patterns) {
120
135
  newPatterns.push({
@@ -127,10 +142,6 @@ export class LearningOptimizeTool extends MCPToolBase {
127
142
  successRate: pattern.successRate,
128
143
  });
129
144
  }
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
145
  }
135
146
  // If specific experience IDs provided, record them
136
147
  if (experienceIds && experienceIds.length > 0) {
@@ -138,22 +149,16 @@ export class LearningOptimizeTool extends MCPToolBase {
138
149
  }
139
150
  // If no patterns were learned, return empty result (not fake data)
140
151
  // 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
152
+ // #1109: there is no recorded baseline, so improvement is never computed
153
+ // here. The former (successRate - 0.5) * 20 was an invented scale.
151
154
  this.markAsRealData();
152
155
  return {
153
156
  experiencesProcessed,
157
+ ...evidence,
154
158
  patternsLearned: newPatterns.length,
155
159
  newPatterns,
156
- improvement,
160
+ improvement: null,
161
+ unmeasured: ['improvement'],
157
162
  };
158
163
  }
159
164
  /**
@@ -205,30 +210,18 @@ export class LearningOptimizeTool extends MCPToolBase {
205
210
  // Get recent experiences for optimization
206
211
  const targetDomain = domain || 'learning-optimization';
207
212
  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
- }
213
+ const recorded = await learningCoordinator.getExperiences(targetDomain, timeRange);
214
+ if (!recorded.success)
215
+ throw recorded.error;
216
+ // #1109: an assigned reward is not an observation; leave it out before the
217
+ // sample-count gate so it can neither pad the count nor fail the optimizer.
218
+ const { measured, assignedExcluded } = partitionByRewardSource(recorded.value);
219
+ // Missing objective values are absence of evidence, not zero or a random
220
+ // synthetic observation. Preserve eligible records (including failures).
221
+ const experiences = measured.filter(experience => {
222
+ const value = experience.result.outcome[objective.metric];
223
+ return typeof value === 'number' && Number.isFinite(value);
224
+ });
232
225
  // Create current strategy
233
226
  const currentStrategy = {
234
227
  name: `${targetDomain}-current`,
@@ -237,7 +230,8 @@ export class LearningOptimizeTool extends MCPToolBase {
237
230
  retryCount: 3,
238
231
  timeout: 30000,
239
232
  },
240
- expectedOutcome: { [objective.metric]: 70 },
233
+ // #1099: the current strategy's outcome was never measured here.
234
+ expectedOutcome: {},
241
235
  };
242
236
  // Convert objective to domain type, properly cast constraints
243
237
  const domainConstraints = (objective.constraints || []).map(c => ({
@@ -253,19 +247,32 @@ export class LearningOptimizeTool extends MCPToolBase {
253
247
  // Run optimization if we have enough experiences
254
248
  let bestStrategy = currentStrategy;
255
249
  let improvement = 0;
256
- let confidence = 0.5;
250
+ let confidence = 0;
257
251
  let validationResults = [];
252
+ let unmeasured = [];
253
+ let estimated;
254
+ let evaluation;
258
255
  if (experiences.length >= 20) {
259
256
  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,
257
+ if (!optimizeResult.success)
258
+ throw optimizeResult.error;
259
+ bestStrategy = {
260
+ name: optimizeResult.value.optimizedStrategy.name,
261
+ parameters: optimizeResult.value.optimizedStrategy.parameters,
262
+ expectedOutcome: optimizeResult.value.optimizedStrategy.expectedOutcome,
263
+ };
264
+ improvement = optimizeResult.value.improvement * 100; // Convert to percentage
265
+ confidence = optimizeResult.value.confidence;
266
+ validationResults = optimizeResult.value.validationResults;
267
+ const derived = optimizeResult.value.evaluation;
268
+ if (derived) {
269
+ evaluation = {
270
+ method: derived.method,
271
+ trainingSamples: derived.trainingSamples,
272
+ heldOutSamples: derived.heldOutSamples,
265
273
  };
266
- improvement = optimizeResult.value.improvement * 100; // Convert to percentage
267
- confidence = optimizeResult.value.confidence;
268
- validationResults = optimizeResult.value.validationResults;
274
+ estimated = derived.estimated;
275
+ unmeasured = [...(derived.unmeasured ?? [])];
269
276
  }
270
277
  }
271
278
  else {
@@ -274,16 +281,27 @@ export class LearningOptimizeTool extends MCPToolBase {
274
281
  tags: [targetDomain, objective.metric],
275
282
  };
276
283
  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
- }
284
+ if (!recommendResult.success)
285
+ throw recommendResult.error;
286
+ bestStrategy = {
287
+ name: recommendResult.value.name,
288
+ parameters: recommendResult.value.parameters,
289
+ expectedOutcome: recommendResult.value.expectedOutcome,
290
+ };
291
+ unmeasured = ['improvement', 'confidence'];
292
+ }
293
+ if (Object.keys(bestStrategy.expectedOutcome).length === 0) {
294
+ unmeasured.push('expectedOutcome');
284
295
  }
285
296
  return {
286
- strategiesEvaluated: experiences.length > 0 ? Math.min(experiences.length, 12) : 1,
297
+ inputSource: 'recorded-experiences',
298
+ experiencesUsed: experiences.length,
299
+ ...(assignedExcluded > 0 ? { assignedRewardsExcluded: assignedExcluded } : {}),
300
+ strategiesEvaluated: experiences.length >= 20 ? 1 : 0,
301
+ ...(experiences.length < 20 ? { evidenceStatus: 'insufficient-evidence' } : {}),
302
+ ...(unmeasured.length > 0 ? { unmeasured } : {}),
303
+ ...(estimated ? { estimated } : {}),
304
+ ...(evaluation ? { evaluation } : {}),
287
305
  bestStrategy,
288
306
  improvement,
289
307
  confidence,
@@ -395,16 +413,17 @@ export class LearningOptimizeTool extends MCPToolBase {
395
413
  'quality-assessment', 'defect-intelligence', 'learning-optimization'
396
414
  ];
397
415
  let experiencesLast24h = 0;
416
+ let assignedRewardsExcluded = 0;
398
417
  const domainPerformance = [];
399
418
  for (const domain of domains) {
400
419
  const mineResult = await learningCoordinator.mineExperiences(domain, recentTimeRange);
401
420
  if (mineResult.success) {
402
421
  experiencesLast24h += mineResult.value.experienceCount;
403
- if (mineResult.value.experienceCount > 0) {
404
- domainPerformance.push({
405
- domain,
406
- successRate: mineResult.value.successRate,
407
- });
422
+ assignedRewardsExcluded += mineResult.value.assignedRewardsExcluded ?? 0;
423
+ // #1109: only a measured success rate can rank a domain.
424
+ const { successRate } = mineResult.value;
425
+ if (successRate !== null) {
426
+ domainPerformance.push({ domain, successRate });
408
427
  }
409
428
  }
410
429
  }
@@ -414,8 +433,14 @@ export class LearningOptimizeTool extends MCPToolBase {
414
433
  .slice(0, 3)
415
434
  .map(d => d.domain);
416
435
  // Calculate overall learning rate from pattern stats
436
+ // getPatternStats already leaves out patterns learned from assigned rewards.
417
437
  const totalPatterns = statsResult.success ? statsResult.value.totalPatterns : 0;
418
- const avgSuccessRate = statsResult.success ? statsResult.value.avgSuccessRate : 0;
438
+ const assignedPatternsExcluded = statsResult.success
439
+ ? statsResult.value.assignedPatternsExcluded ?? 0
440
+ : 0;
441
+ const avgSuccessRate = totalPatterns > 0 && statsResult.success
442
+ ? statsResult.value.avgSuccessRate
443
+ : null;
419
444
  const overallLearningRate = avgSuccessRate;
420
445
  // Generate learning trend from weekly pattern mining
421
446
  const learningTrend = [];
@@ -437,28 +462,39 @@ export class LearningOptimizeTool extends MCPToolBase {
437
462
  value: dayPatterns,
438
463
  });
439
464
  }
440
- // Generate milestones based on actual achievements
465
+ // Milestones from measured figures. When each was first reached is not
466
+ // recorded, so achievedAt is null rather than an invented date (#1109).
441
467
  const recentMilestones = [];
442
468
  if (totalPatterns >= 100) {
443
469
  recentMilestones.push({
444
470
  name: `Reached ${Math.floor(totalPatterns / 50) * 50} patterns`,
445
- achievedAt: new Date(now.getTime() - 2 * 24 * 60 * 60 * 1000).toISOString(),
471
+ achievedAt: null,
446
472
  domain: 'learning-optimization',
447
473
  });
448
474
  }
449
- if (avgSuccessRate >= 0.8) {
475
+ if (avgSuccessRate !== null && avgSuccessRate >= 0.8) {
450
476
  recentMilestones.push({
451
477
  name: `${Math.round(avgSuccessRate * 100)}% pattern success rate`,
452
- achievedAt: new Date(now.getTime() - 5 * 24 * 60 * 60 * 1000).toISOString(),
478
+ achievedAt: null,
453
479
  domain: topPerformingDomains[0] || 'learning-optimization',
454
480
  });
455
481
  }
482
+ const unmeasured = [];
483
+ if (overallLearningRate === null)
484
+ unmeasured.push('overallLearningRate');
485
+ if (topPerformingDomains.length === 0)
486
+ unmeasured.push('topPerformingDomains');
456
487
  return {
457
488
  overallLearningRate,
458
489
  totalPatterns,
459
490
  totalKnowledge: knowledgeResult.success ? knowledgeResult.value.length : 0,
460
491
  experiencesLast24h,
461
- topPerformingDomains: topPerformingDomains.length > 0 ? topPerformingDomains : ['test-generation'],
492
+ ...(assignedRewardsExcluded > 0 ? { assignedRewardsExcluded } : {}),
493
+ ...(assignedPatternsExcluded > 0 ? { assignedPatternsExcluded } : {}),
494
+ topPerformingDomains,
495
+ ...(unmeasured.length > 0
496
+ ? { evidenceStatus: 'insufficient-evidence', unmeasured }
497
+ : {}),
462
498
  learningTrend,
463
499
  recentMilestones,
464
500
  sona,
@@ -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) {
@@ -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
@@ -201,6 +201,12 @@ export class BaseDomainPlugin {
201
201
  canHandleTask(taskType) {
202
202
  return this.getTaskHandlers().has(taskType);
203
203
  }
204
+ /**
205
+ * Task types this domain executes, from its registered task handlers (#1075)
206
+ */
207
+ getSupportedTaskTypes() {
208
+ return Array.from(this.getTaskHandlers().keys());
209
+ }
204
210
  /**
205
211
  * Execute a task assigned by Queen Coordinator
206
212
  * Routes to the appropriate handler based on task type
@@ -316,7 +316,10 @@ export class LLMResponseCache {
316
316
  * Cache a completion response
317
317
  */
318
318
  setCompletion(prompt, response, options, ttlMs) {
319
- if (!this.config.cacheCompletions) {
319
+ // CompletionResponse does not carry finishReason. In particular, Gemini
320
+ // returns an empty completion for a safety refusal (#912). Return that
321
+ // result to its caller, but never pin it as a reusable completion.
322
+ if (!this.config.cacheCompletions || response.completion.length === 0) {
320
323
  return;
321
324
  }
322
325
  const key = LLMCache.generateKey('completion', prompt, options);
@@ -3,6 +3,7 @@
3
3
  * Detects security and compliance patterns in source code
4
4
  */
5
5
  import { FileReader } from '../io/index.js';
6
+ import { findProjectRoot } from '../../kernel/project-root.js';
6
7
  // ============================================================================
7
8
  // Pattern Definitions
8
9
  // ============================================================================
@@ -156,7 +157,8 @@ const SECURITY_CONTROLS_PATTERNS = {
156
157
  export class CompliancePatternAnalyzer {
157
158
  fileReader;
158
159
  constructor() {
159
- this.fileReader = new FileReader();
160
+ // #1096: a symlink inside the project must not expose an outside file.
161
+ this.fileReader = new FileReader({ projectRoot: findProjectRoot() });
160
162
  }
161
163
  /**
162
164
  * Analyze encryption patterns in files
@@ -7,4 +7,30 @@ export declare function trackTestRunnerExit(proc: ChildProcess): () => void;
7
7
  * Windows uses taskkill's tree operation while the root PID still exists.
8
8
  */
9
9
  export declare function terminateTestRunner(proc: ChildProcess): Promise<void>;
10
+ /** The `spawnSync` result fields a test-runner caller reads. */
11
+ export interface TestRunnerProcessResult {
12
+ status: number | null;
13
+ signal: NodeJS.Signals | null;
14
+ stdout: string;
15
+ stderr: string;
16
+ error?: NodeJS.ErrnoException;
17
+ }
18
+ export interface TestRunnerProcessOptions {
19
+ cwd: string;
20
+ /** Kill the runner and report ETIMEDOUT after this many milliseconds. */
21
+ timeout: number;
22
+ env?: NodeJS.ProcessEnv;
23
+ /** Per-stream output limit; exceeding it kills the runner (ENOBUFS). */
24
+ maxBuffer?: number;
25
+ }
26
+ /**
27
+ * #1074: run a test runner without blocking the event loop. Resolves with the
28
+ * same fields and failure semantics `spawnSync` reports: exit status or
29
+ * terminating signal, captured UTF-8 stdout/stderr, an ETIMEDOUT error after
30
+ * `timeout`, an ENOBUFS error once a stream exceeds `maxBuffer`, and the
31
+ * spawn error itself when the command cannot start. The runner gets its own
32
+ * process group, so a timeout or overflow stops the whole `npx` tree before
33
+ * the promise settles and before any report file is removed.
34
+ */
35
+ export declare function runTestRunnerProcess(command: string, args: readonly string[], options: TestRunnerProcessOptions): Promise<TestRunnerProcessResult>;
10
36
  //# sourceMappingURL=test-runner-process.d.ts.map
@@ -207,4 +207,95 @@ export function terminateTestRunner(proc) {
207
207
  }
208
208
  });
209
209
  }
210
+ /** `spawnSync`'s default per-stream output limit. */
211
+ const DEFAULT_MAX_BUFFER = 1024 * 1024;
212
+ /** Longest wait for the runner's pipes to close after it has been stopped. */
213
+ const PIPE_RELEASE_GRACE_MS = 3000;
214
+ /**
215
+ * #1074: run a test runner without blocking the event loop. Resolves with the
216
+ * same fields and failure semantics `spawnSync` reports: exit status or
217
+ * terminating signal, captured UTF-8 stdout/stderr, an ETIMEDOUT error after
218
+ * `timeout`, an ENOBUFS error once a stream exceeds `maxBuffer`, and the
219
+ * spawn error itself when the command cannot start. The runner gets its own
220
+ * process group, so a timeout or overflow stops the whole `npx` tree before
221
+ * the promise settles and before any report file is removed.
222
+ */
223
+ export function runTestRunnerProcess(command, args, options) {
224
+ const maxBuffer = options.maxBuffer ?? DEFAULT_MAX_BUFFER;
225
+ return new Promise(resolve => {
226
+ let stdout = '';
227
+ let stderr = '';
228
+ let error;
229
+ let stopping;
230
+ let releaseTimer;
231
+ let settled = false;
232
+ let proc;
233
+ try {
234
+ proc = spawn(command, [...args], {
235
+ cwd: options.cwd,
236
+ env: options.env ?? process.env,
237
+ detached: process.platform !== 'win32',
238
+ stdio: ['ignore', 'pipe', 'pipe'],
239
+ });
240
+ }
241
+ catch (spawnError) {
242
+ resolve({ status: null, signal: null, stdout, stderr, error: spawnError });
243
+ return;
244
+ }
245
+ const untrackExit = trackTestRunnerExit(proc);
246
+ const settle = (status, signal) => {
247
+ if (settled)
248
+ return;
249
+ settled = true;
250
+ clearTimeout(timer);
251
+ clearTimeout(releaseTimer);
252
+ // Report the signal the runner was stopped with, as spawnSync does.
253
+ const stoppedWith = stopping && !signal ? 'SIGTERM' : signal;
254
+ const result = { status: stopping ? null : status, signal: stoppedWith, stdout, stderr, error };
255
+ const done = () => { untrackExit(); resolve(result); };
256
+ if (stopping)
257
+ stopping.then(done, done);
258
+ else
259
+ done();
260
+ };
261
+ const stop = (code, message) => {
262
+ if (stopping)
263
+ return;
264
+ error = Object.assign(new Error(message), { code, syscall: `spawnSync ${command}` });
265
+ stopping = terminateTestRunner(proc);
266
+ // spawnSync closes the runner's pipes when it kills it. Do the same once
267
+ // the runner is stopped, or after a grace period, so a descendant that
268
+ // left the process group (e.g. a detached server holding the inherited
269
+ // stdout) cannot keep 'close', and so the result, pending forever.
270
+ const release = () => {
271
+ proc.stdout?.destroy();
272
+ proc.stderr?.destroy();
273
+ };
274
+ stopping.then(release, release);
275
+ releaseTimer = setTimeout(release, PIPE_RELEASE_GRACE_MS);
276
+ };
277
+ const timer = setTimeout(() => stop('ETIMEDOUT', `spawnSync ${command} ETIMEDOUT`), options.timeout);
278
+ const collect = (stream) => (chunk) => {
279
+ if (stopping)
280
+ return;
281
+ const next = (stream === 'stdout' ? stdout : stderr) + chunk;
282
+ const kept = next.length > maxBuffer ? next.slice(0, maxBuffer) : next;
283
+ if (stream === 'stdout')
284
+ stdout = kept;
285
+ else
286
+ stderr = kept;
287
+ if (next.length > maxBuffer)
288
+ stop('ENOBUFS', `spawnSync ${command} ENOBUFS`);
289
+ };
290
+ proc.stdout?.setEncoding('utf8').on('data', collect('stdout'));
291
+ proc.stderr?.setEncoding('utf8').on('data', collect('stderr'));
292
+ proc.once('error', (spawnError) => {
293
+ error ??= spawnError;
294
+ // A runner that never started emits no 'close' with a status to wait for.
295
+ if (proc.pid === undefined)
296
+ settle(null, null);
297
+ });
298
+ proc.once('close', (status, signal) => settle(status, signal));
299
+ });
300
+ }
210
301
  //# sourceMappingURL=test-runner-process.js.map
@@ -69,6 +69,15 @@ export interface QualityScore {
69
69
  }
70
70
  export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';
71
71
  export type Priority = 'p0' | 'p1' | 'p2' | 'p3';
72
+ export declare const ALL_PRIORITIES: readonly Priority[];
73
+ /**
74
+ * Type guard for a user-supplied task priority (CLI flags, MCP arguments).
75
+ * Validate at the boundary so an unknown priority is rejected instead of being
76
+ * silently accepted (#1108).
77
+ */
78
+ export declare function isPriority(value: unknown): value is Priority;
79
+ /** Shared rejection message so `task_submit` and `aqe task submit` stay in parity (#1108). */
80
+ export declare function invalidPriorityMessage(value: unknown): string;
72
81
  export interface DomainConfig {
73
82
  enabled: boolean;
74
83
  maxAgents: number;
@@ -32,4 +32,17 @@ export function ok(value) {
32
32
  export function err(error) {
33
33
  return { success: false, error };
34
34
  }
35
+ export const ALL_PRIORITIES = ['p0', 'p1', 'p2', 'p3'];
36
+ /**
37
+ * Type guard for a user-supplied task priority (CLI flags, MCP arguments).
38
+ * Validate at the boundary so an unknown priority is rejected instead of being
39
+ * silently accepted (#1108).
40
+ */
41
+ export function isPriority(value) {
42
+ return typeof value === 'string' && ALL_PRIORITIES.includes(value);
43
+ }
44
+ /** Shared rejection message so `task_submit` and `aqe task submit` stay in parity (#1108). */
45
+ export function invalidPriorityMessage(value) {
46
+ return `Invalid priority: ${String(value)}. Valid priorities: ${ALL_PRIORITIES.join(', ')}`;
47
+ }
35
48
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Agentic QE v3 - namespaced kv key scans (#1049, #1071)
3
+ *
4
+ * Two problems with reading every key of a family through
5
+ * `MemoryBackend.search()`:
6
+ *
7
+ * 1. Kernel backends disagree on what a namespaced `search` returns: the
8
+ * hybrid (sqlite) backend returns bare keys, the in-memory backend returns
9
+ * `<namespace>:<key>`. A caller that passes a result straight back to
10
+ * `get(key, { namespace })` double-prefixes the key and reads nothing.
11
+ * 2. `search()` takes a row limit and has no offset or ordering, so a single
12
+ * call with a fixed cap silently drops every key past the cap.
13
+ *
14
+ * `searchAllKeys` addresses both: it returns every matching key, bare and in
15
+ * a stable order.
16
+ */
17
+ import type { MemoryBackend, RetrieveOptions } from '../../kernel/interfaces.js';
18
+ /**
19
+ * The bare key for a key returned by `search(pattern, limit, { namespace })`.
20
+ * A result that already matches `pattern` is bare (keys may legitimately start
21
+ * with the namespace name, e.g. `defect-intelligence:predictor:…`); otherwise a
22
+ * leading `<namespace>:` is the backend's prefix and is removed.
23
+ */
24
+ export declare function bareSearchKey(found: string, namespace: string, pattern: string): string;
25
+ /** First request size for `searchAllKeys`. Each further request doubles it. */
26
+ export declare const DEFAULT_KEY_SCAN_PAGE_SIZE = 10000;
27
+ export interface SearchAllKeysOptions {
28
+ /** Namespace for the scan. Omit for the backend default. */
29
+ retrieve?: RetrieveOptions;
30
+ /** First request size (tests). Defaults to `DEFAULT_KEY_SCAN_PAGE_SIZE`. */
31
+ pageSize?: number;
32
+ }
33
+ /**
34
+ * Every key matching `pattern`, bare (usable with `get(key, retrieve)`),
35
+ * de-duplicated and sorted.
36
+ *
37
+ * `search()` has no offset, so this widens the request until the backend
38
+ * returns fewer keys than were asked for. That is the only point at which the
39
+ * result is known to be complete; no cap ever truncates it.
40
+ */
41
+ export declare function searchAllKeys(memory: MemoryBackend, pattern: string, options?: SearchAllKeysOptions): Promise<string[]>;
42
+ //# sourceMappingURL=namespaced-search.d.ts.map