agentic-qe 3.15.9 → 3.15.11

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 (668) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +365 -0
  3. package/README.md +8 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/adapters/a2a/agent-cards/generator.js +6 -3
  6. package/dist/adapters/a2a/tasks/task-router.js +3 -1
  7. package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
  8. package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
  9. package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
  10. package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
  11. package/dist/adapters/ag-ui/json-patch.js +10 -6
  12. package/dist/adapters/trajectory-adapter.js +1 -1
  13. package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts +3 -1
  14. package/dist/agents/claim-verifier/verifiers/output-verifier.js +31 -2
  15. package/dist/agents/overlay-loader.js +26 -21
  16. package/dist/audit/witness-chain.d.ts +1 -1
  17. package/dist/cli/bundle.js +6 -6
  18. package/dist/cli/chunks/adapter-V4GSGOOK.js +2 -0
  19. package/dist/cli/chunks/agent-booster-wasm-TIDSQ3ZK.js +2 -0
  20. package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-G3EPBVA7.js} +2 -2
  21. package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-ARC5C7GW.js} +2 -2
  22. package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +2 -0
  23. package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-36DTATJV.js} +4 -4
  24. package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-K4I4QDXB.js} +2 -2
  25. package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-WQSJSJZF.js} +3 -3
  26. package/dist/cli/chunks/base-AK7BXBX2.js +2 -0
  27. package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-BB4K67MT.js} +2 -2
  28. package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-CU3GOIU3.js} +3 -3
  29. package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-NJQX7ZNB.js} +2 -2
  30. package/dist/cli/chunks/browser-6YJF4FQW.js +4 -0
  31. package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +2 -0
  32. package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-25P77WA5.js} +1 -1
  33. package/dist/cli/chunks/chunk-2CW7VRPH.js +141 -0
  34. package/dist/cli/chunks/chunk-2DTX7YAZ.js +6 -0
  35. package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-2KFFEKSI.js} +2 -2
  36. package/dist/cli/chunks/chunk-2VLYUF7U.js +2 -0
  37. package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-325QCVDI.js} +2 -2
  38. package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-35M2X3C5.js} +2 -2
  39. package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-3RHOPP7A.js} +1 -1
  40. package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-4HJKQIX5.js} +2 -2
  41. package/dist/cli/chunks/chunk-4MUBW4RT.js +7 -0
  42. package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-4RAQ7PJA.js} +8 -8
  43. package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-4RH5I24Q.js} +2 -2
  44. package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-4UBVAJFO.js} +3 -3
  45. package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-4UX35V7P.js} +2 -2
  46. package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-4X4MWMHB.js} +2 -2
  47. package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-55CH76ZO.js} +3 -3
  48. package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-57LNKSW7.js} +2 -2
  49. package/dist/cli/chunks/chunk-5ERFHEEE.js +14 -0
  50. package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-5HQP4SLM.js} +2 -2
  51. package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-5MNASJOH.js} +2 -2
  52. package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-5MTWCCZJ.js} +2 -2
  53. package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-5N25I53C.js} +2 -2
  54. package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-5WYZHDIZ.js} +1 -1
  55. package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-5YLOLACR.js} +2 -2
  56. package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-672XOJDG.js} +2 -2
  57. package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-6NA3KZZT.js} +10 -10
  58. package/dist/cli/chunks/chunk-72ZBJD2E.js +3 -0
  59. package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-76SNL7GU.js} +2 -2
  60. package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-7HEMJHPP.js} +2 -2
  61. package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-7R5HC56U.js} +1 -1
  62. package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-AFFN6E6Q.js} +2 -2
  63. package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-AMZKAJLJ.js} +2 -2
  64. package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-AP3ADWDK.js} +2 -2
  65. package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-APPZATXA.js} +2 -2
  66. package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-AUUJBXWX.js} +25 -20
  67. package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-BTVWA35P.js} +2 -2
  68. package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-BZPE3LDO.js} +2 -2
  69. package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-CFWGGRE7.js} +1 -1
  70. package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-CIAL4YRY.js} +2 -2
  71. package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-CO3DX2AX.js} +2 -2
  72. package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-DDEOZPWJ.js} +2 -2
  73. package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-DOBZPSKE.js} +1 -1
  74. package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-DOFREOPQ.js} +2 -2
  75. package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-E44NNCEU.js} +2 -2
  76. package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-E6PF35JZ.js} +2 -2
  77. package/dist/cli/chunks/chunk-EBPJY4DI.js +3 -0
  78. package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EH2S6AOR.js} +2 -2
  79. package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-EIDJNT5C.js} +1 -1
  80. package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-EJPK7OTR.js} +2 -2
  81. package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EK5GMOSO.js} +1 -1
  82. package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ERN43HOX.js} +430 -433
  83. package/dist/cli/chunks/chunk-ETVAYGCB.js +180 -0
  84. package/dist/cli/chunks/chunk-EWPUQCN4.js +2 -0
  85. package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-FL32MTKT.js} +2 -2
  86. package/dist/cli/chunks/chunk-FLU5FDSC.js +742 -0
  87. package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-FUYOOKTH.js} +5 -5
  88. package/dist/cli/chunks/chunk-FWSGPE3V.js +12 -0
  89. package/dist/cli/chunks/chunk-FZHSG75I.js +3 -0
  90. package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-G2IJFNZS.js} +2 -2
  91. package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-G4CKPWF6.js} +1 -1
  92. package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-G4FAPO57.js} +5 -5
  93. package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-G77MLBDF.js} +2 -2
  94. package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-GBFUANTC.js} +1 -1
  95. package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-GVKVJJQX.js} +2 -2
  96. package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GWJWSLDA.js} +2 -2
  97. package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-H43AFUKL.js} +2 -2
  98. package/dist/cli/chunks/chunk-H7BLYMNU.js +59 -0
  99. package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-HDJUYAZG.js} +1 -1
  100. package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-HDNWSKHA.js} +2 -2
  101. package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-HFFPYC4G.js} +2 -2
  102. package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-HJ3XNTTJ.js} +2 -2
  103. package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-HYXUN7BW.js} +1 -1
  104. package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-I36CRDHF.js} +2 -2
  105. package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-I4K2HTQU.js} +1 -1
  106. package/dist/cli/chunks/chunk-IENZSO3K.js +4 -0
  107. package/dist/cli/chunks/chunk-IO5537OM.js +2 -0
  108. package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-IOZRKXR5.js} +2 -2
  109. package/dist/cli/chunks/chunk-ITL3IN2E.js +3 -0
  110. package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-ITPGWGQS.js} +14 -14
  111. package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-IW6WDGHM.js} +1 -1
  112. package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-J4JMCZVA.js} +2 -2
  113. package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-JFLU7L3W.js} +2 -2
  114. package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-JGJXXAS6.js} +4 -4
  115. package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-JUMICXM6.js} +2 -2
  116. package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-K2HBNYAZ.js} +2 -2
  117. package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-K7V2WZNF.js} +1 -1
  118. package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-KDI5JOYZ.js} +2 -2
  119. package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-KJCIMNHS.js} +1 -1
  120. package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-KKYO2NKV.js} +2 -2
  121. package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-KSE5TDM5.js} +2 -2
  122. package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-KSLLHFVY.js} +1 -1
  123. package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-KXS3Y2AX.js} +2 -2
  124. package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LBX7M4LW.js} +2 -2
  125. package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-LCVEEII4.js} +2 -2
  126. package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-LD5CFK53.js} +54 -33
  127. package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-LPU6PAJE.js} +2 -2
  128. package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-LQ4NUC6Q.js} +2 -2
  129. package/dist/cli/chunks/chunk-LRL56ZYL.js +21 -0
  130. package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-LXQ3B4RY.js} +2 -2
  131. package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-M5RQ6U3G.js} +2 -2
  132. package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-M5XYIQYZ.js} +2 -2
  133. package/dist/cli/chunks/chunk-M7XFBSIK.js +2 -0
  134. package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-MIK4RBEH.js} +1 -1
  135. package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-NC6K7SCQ.js} +2 -2
  136. package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-NKTWKYHB.js} +2 -2
  137. package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-NPZOBSAN.js} +2 -2
  138. package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-NQZNMCZU.js} +2 -2
  139. package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-NT7JRHMH.js} +1 -1
  140. package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-NTB342NJ.js} +1 -1
  141. package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-O4JAKWWM.js} +13 -13
  142. package/dist/cli/chunks/chunk-OD5D4LSZ.js +2 -0
  143. package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-OH5V5EJW.js} +2 -2
  144. package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-OHR7C777.js} +2 -2
  145. package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-OURITHFV.js} +2 -2
  146. package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-OV5RPLKV.js} +2 -2
  147. package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-OYJC3YON.js} +2 -2
  148. package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-QDESWOZP.js} +2 -2
  149. package/dist/cli/chunks/chunk-R5GRABPQ.js +2 -0
  150. package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-R5LGV6GZ.js} +2 -2
  151. package/dist/cli/chunks/chunk-RBZCA7SD.js +12 -0
  152. package/dist/cli/chunks/chunk-RQMCZQN2.js +2 -0
  153. package/dist/cli/chunks/chunk-RTFKTKSO.js +4 -0
  154. package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-RTY7VSZB.js} +2 -2
  155. package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-S6IYEBAI.js} +2 -2
  156. package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-SMVVAVN2.js} +2 -2
  157. package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-T5KHJ3J7.js} +5 -5
  158. package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-TCYSBC7Y.js} +1 -1
  159. package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-TFW7CCKS.js} +1 -1
  160. package/dist/cli/chunks/chunk-TL6OFMXF.js +6 -0
  161. package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-U3LJNNVJ.js} +5 -5
  162. package/dist/cli/chunks/chunk-UKKYMW3S.js +3 -0
  163. package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-UMVSWQNB.js} +2 -2
  164. package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-UTTSH4NH.js} +3 -3
  165. package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-V5AADCBC.js} +1 -1
  166. package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-V7DA4HAK.js} +1 -1
  167. package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-VBK2YAYY.js} +2 -2
  168. package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-VEEYL2CZ.js} +2 -2
  169. package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-VLD7Z2ED.js} +3 -3
  170. package/dist/cli/chunks/chunk-VO3DRK4P.js +3 -0
  171. package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-VWUZSNVC.js} +1 -1
  172. package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-VYTILW4R.js} +2 -2
  173. package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-WCAVIJ64.js} +1 -1
  174. package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-WCVCOT4E.js} +2 -2
  175. package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-WM3SRRA6.js} +2 -2
  176. package/dist/cli/chunks/chunk-X3PZCXWG.js +2 -0
  177. package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-X4J73KP3.js} +1 -1
  178. package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-XDI5X3FR.js} +1 -1
  179. package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-XGBU3KEM.js} +2 -2
  180. package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-XGPTZUKQ.js} +2 -2
  181. package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-XJKZ7FTR.js} +2 -2
  182. package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-XNLIWQYE.js} +2 -2
  183. package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-XS2XF3YG.js} +6 -5
  184. package/dist/cli/chunks/chunk-Y7B5EUIJ.js +180 -0
  185. package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-YBBT3YYG.js} +1 -1
  186. package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-YNOCQ2SL.js} +1 -1
  187. package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-YOCULVHR.js} +1 -1
  188. package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-YPX2TV3M.js} +1 -1
  189. package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-Z2EA7A4Z.js} +1 -1
  190. package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-ZMC543GI.js} +2 -2
  191. package/dist/cli/chunks/chunk-ZMHCMJ4J.js +2 -0
  192. package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-ZP75ASUU.js} +1 -1
  193. package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-ZQHDA4O7.js} +1 -1
  194. package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-6GUFAZMJ.js} +2 -2
  195. package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-J665XNOX.js} +2 -2
  196. package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-PEQQQWVD.js} +2 -2
  197. package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-HHB2JSKH.js} +2 -2
  198. package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-JKUJRWPN.js} +2 -2
  199. package/dist/cli/chunks/client-HL2COSFM.js +2 -0
  200. package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-Y77BWTAN.js} +2 -2
  201. package/dist/cli/chunks/{code-ONKLMVQ2.js → code-LV2HAGJY.js} +3 -3
  202. package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4GKKSETB.js} +2 -2
  203. package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-WMKBYE5Y.js} +2 -2
  204. package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-SBGFAOIJ.js} +2 -2
  205. package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-AQHFIJXC.js} +2 -2
  206. package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-26AYFS2E.js} +2 -2
  207. package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-4UD3DK55.js} +2 -2
  208. package/dist/cli/chunks/core-handlers-IX7ATLM6.js +2 -0
  209. package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-TP4NZCG4.js} +2 -2
  210. package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B2KIXHAI.js} +3 -3
  211. package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +2 -0
  212. package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-AVZEQZ4W.js} +2 -2
  213. package/dist/cli/chunks/daemon-P574WWBW.js +18 -0
  214. package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-XM2A7LQU.js} +3 -3
  215. package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-MIWOZ6ET.js} +2 -2
  216. package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-TYR7HT23.js} +2 -2
  217. package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-2DGVQGLS.js} +2 -2
  218. package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-RRA4ZOMF.js} +2 -2
  219. package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-IVZEZ5RB.js} +2 -2
  220. package/dist/cli/chunks/domain-transfer-DOBI67K6.js +2 -0
  221. package/dist/cli/chunks/dream-T6EP7B3F.js +2 -0
  222. package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-VNIEOVPO.js} +2 -2
  223. package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-QV4LVPUF.js} +2 -2
  224. package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-DAPKT763.js} +3 -3
  225. package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-WVRFPHX7.js} +2 -2
  226. package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-DEFTUIYT.js} +2 -2
  227. package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-O7ZXDDCD.js} +2 -2
  228. package/dist/cli/chunks/file-discovery-JYMVTDMU.js +2 -0
  229. package/dist/cli/chunks/fleet-FVAUMKUT.js +46 -0
  230. package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-LS4LZJDR.js} +2 -2
  231. package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-RFTERD4K.js} +4 -4
  232. package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +2 -0
  233. package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +2 -0
  234. package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +2 -0
  235. package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-GPKGFFHY.js} +2 -2
  236. package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-PHL3F2PR.js} +2 -2
  237. package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-GYJ6D4QM.js} +36 -36
  238. package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +2 -0
  239. package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-YGEQPCKJ.js} +2 -2
  240. package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-ZIMM647V.js} +3 -3
  241. package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +2 -0
  242. package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-VOMBXJXG.js} +2 -2
  243. package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-PSMUBWK5.js} +26 -25
  244. package/dist/cli/chunks/init-wizard-FUC7KDVX.js +2 -0
  245. package/dist/cli/chunks/kernel-ZCPMCVMW.js +2 -0
  246. package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-2YNTFBWJ.js} +2 -2
  247. package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-XHJDPVAZ.js} +2 -2
  248. package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +2 -0
  249. package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-GNSIDRNG.js} +24 -24
  250. package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-LQDM7IU2.js} +4 -4
  251. package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +2 -0
  252. package/dist/cli/chunks/{load-ZM43WGDO.js → load-YATHI72E.js} +2 -2
  253. package/dist/cli/chunks/load-test-ZHQ2MUGO.js +2 -0
  254. package/dist/cli/chunks/mcp-4Y6GDLYK.js +2 -0
  255. package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-OUW3L7H2.js} +5 -5
  256. package/dist/cli/chunks/memory-backend-AAMQG6WH.js +2 -0
  257. package/dist/cli/chunks/memory-handlers-G3LFF53U.js +2 -0
  258. package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-UBZJXAD2.js} +2 -2
  259. package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-AMMNWVH5.js} +2 -2
  260. package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-Y44WDOER.js} +69 -25
  261. package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +2 -0
  262. package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-ESR42RME.js} +2 -2
  263. package/dist/cli/chunks/pipeline-EDTS6OSC.js +19 -0
  264. package/dist/cli/chunks/{platform-KJDABL5C.js → platform-5WONJSUX.js} +2 -2
  265. package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-IJXPCLD4.js} +2 -2
  266. package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-5ECKGZK6.js} +2 -2
  267. package/dist/cli/chunks/project-root-7QL4KP5C.js +2 -0
  268. package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +2 -0
  269. package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-DRD3GVNW.js} +2 -2
  270. package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-KTGW2HMJ.js} +2 -2
  271. package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +2 -0
  272. package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-DV2WPRRS.js} +2 -2
  273. package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-HFUAFVZC.js} +3 -3
  274. package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +2 -0
  275. package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RQRVOKVM.js} +2 -2
  276. package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-QWSKS5OY.js} +2 -2
  277. package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-RBAYRCHX.js} +2 -2
  278. package/dist/cli/chunks/router-LQB5SWAF.js +2 -0
  279. package/dist/cli/chunks/routing-feedback-OEEXA55N.js +2 -0
  280. package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-FMPP3XKO.js} +2 -2
  281. package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-KZZT4HWF.js} +2 -2
  282. package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +2 -0
  283. package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +2 -0
  284. package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-7CHEV35N.js} +2 -2
  285. package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +2 -0
  286. package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-Q2TH52SN.js} +2 -2
  287. package/dist/cli/chunks/safe-db-PE6G3L55.js +2 -0
  288. package/dist/cli/chunks/schedule-OLKQ6QYW.js +2 -0
  289. package/dist/cli/chunks/scheduler-LSGBDFAT.js +2 -0
  290. package/dist/cli/chunks/{security-AUDTRX3I.js → security-CUEA3UIM.js} +3 -3
  291. package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-DROMBRV2.js} +2 -2
  292. package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-DBNABOP7.js} +2 -2
  293. package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +2 -0
  294. package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-IAHA3M6B.js} +2 -2
  295. package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-AFUCASTX.js} +2 -2
  296. package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-AQRV6JJ6.js} +2 -2
  297. package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-GX7FMJHL.js} +2 -2
  298. package/dist/cli/chunks/sync-XW5TLZ7M.js +2 -0
  299. package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-TFKVUTNF.js} +2 -2
  300. package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +9 -0
  301. package/dist/cli/chunks/{test-XFSGQELD.js → test-D2XDJNDX.js} +17 -17
  302. package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +2 -0
  303. package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-TS6I2PR7.js} +3 -3
  304. package/dist/cli/chunks/token-bootstrap-HBBLPCZ3.js +2 -0
  305. package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-3MBUX4PR.js} +2 -2
  306. package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-ZWMQO3L2.js} +2 -2
  307. package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +2 -0
  308. package/dist/cli/chunks/{types-JTWLBAZJ.js → types-5YEMGPSQ.js} +2 -2
  309. package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +2 -0
  310. package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +2 -0
  311. package/dist/cli/chunks/unified-persistence-UCV7YETW.js +2 -0
  312. package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-2TPBKIHI.js} +2 -2
  313. package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-XRAXXFW6.js} +2 -2
  314. package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-IYSCS3BZ.js} +2 -2
  315. package/dist/cli/chunks/visual-security-ZLXRIQZV.js +2 -0
  316. package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-PZQ3ZG2P.js} +2 -2
  317. package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-U6XWFRVT.js} +2 -2
  318. package/dist/cli/chunks/witness-chain-CVIWYTD2.js +2 -0
  319. package/dist/cli/chunks/witness-chain-VBKORKOX.js +2 -0
  320. package/dist/cli/chunks/witness-chain-repair-K7YX2AO6.js +2 -0
  321. package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-GUTC3W7N.js} +2 -2
  322. package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-YBNKMOP6.js} +2 -2
  323. package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-UAJUILFQ.js} +4 -4
  324. package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +2 -0
  325. package/dist/cli/chunks/wrappers-AVZ3GPAL.js +2 -0
  326. package/dist/cli/commands/fleet.js +23 -13
  327. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  328. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  329. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  330. package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.js +11 -6
  331. package/dist/cli/commands/learning.js +5 -3
  332. package/dist/cli/commands/ruvector-commands.js +2 -1
  333. package/dist/cli/commands/test.js +11 -2
  334. package/dist/cli/handlers/init-handler.d.ts +12 -0
  335. package/dist/cli/handlers/init-handler.js +27 -12
  336. package/dist/cli/utils/ci-output.d.ts +11 -0
  337. package/dist/cli/utils/ci-output.js +2 -0
  338. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  339. package/dist/cli/utils/fleet-operation.js +71 -0
  340. package/dist/cli/utils/fleet-result.d.ts +31 -0
  341. package/dist/cli/utils/fleet-result.js +124 -0
  342. package/dist/cli/utils/progress.d.ts +16 -2
  343. package/dist/cli/utils/progress.js +31 -14
  344. package/dist/context/sources/git-source.js +6 -2
  345. package/dist/coordination/consensus/consensus-engine.js +3 -1
  346. package/dist/coordination/handlers/code-intelligence-handlers.js +63 -7
  347. package/dist/coordination/handlers/coverage-collection.js +3 -1
  348. package/dist/coordination/handlers/coverage-handlers.js +10 -1
  349. package/dist/coordination/handlers/coverage-runner.d.ts +3 -8
  350. package/dist/coordination/handlers/coverage-runner.js +6 -22
  351. package/dist/coordination/handlers/coverage-stderr.d.ts +23 -0
  352. package/dist/coordination/handlers/coverage-stderr.js +39 -0
  353. package/dist/coordination/handlers/coverage-target.js +6 -3
  354. package/dist/coordination/handlers/handler-utils.js +3 -1
  355. package/dist/coordination/handlers/requirements-handlers.js +18 -3
  356. package/dist/coordination/handlers/security-handlers.js +45 -21
  357. package/dist/coordination/handlers/test-execution-handlers.js +25 -7
  358. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  359. package/dist/coordination/mincut/queen-integration.js +83 -6
  360. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +2 -6
  361. package/dist/coordination/protocols/learning-consolidation-archive.js +4 -27
  362. package/dist/coordination/protocols/learning-consolidation.d.ts +24 -0
  363. package/dist/coordination/protocols/learning-consolidation.js +71 -22
  364. package/dist/coordination/queen-coordinator.d.ts +1 -1
  365. package/dist/coordination/queen-coordinator.js +27 -10
  366. package/dist/coordination/queen-event-handlers.js +13 -0
  367. package/dist/coordination/queen-task-management.d.ts +18 -24
  368. package/dist/coordination/queen-task-management.js +62 -168
  369. package/dist/coordination/queen-task-queue.d.ts +41 -0
  370. package/dist/coordination/queen-task-queue.js +194 -0
  371. package/dist/coordination/queen-types.d.ts +1 -1
  372. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  373. package/dist/coordination/queen-work-stealing.js +7 -4
  374. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  375. package/dist/coordination/result-saver-adapters.js +57 -0
  376. package/dist/coordination/result-saver.d.ts +1 -1
  377. package/dist/coordination/result-saver.js +8 -5
  378. package/dist/coordination/task-executability.d.ts +12 -0
  379. package/dist/coordination/task-executability.js +27 -0
  380. package/dist/coordination/workflow-orchestrator.d.ts +6 -0
  381. package/dist/coordination/workflow-orchestrator.js +22 -8
  382. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  383. package/dist/domains/code-intelligence/index-path-guard.d.ts +5 -2
  384. package/dist/domains/code-intelligence/index-path-guard.js +20 -50
  385. package/dist/domains/code-intelligence/plugin.js +5 -1
  386. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  387. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  388. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  389. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  390. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  391. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  392. package/dist/domains/code-intelligence/services/product-factors-bridge.js +7 -4
  393. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  394. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  395. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  396. package/dist/domains/coverage-analysis/services/coverage-parser.js +19 -10
  397. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  398. package/dist/domains/defect-intelligence/plugin.js +11 -2
  399. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  400. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  401. package/dist/domains/defect-intelligence/services/defect-predictor.js +25 -10
  402. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  403. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  404. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  405. package/dist/domains/learning-optimization/active-patterns.d.ts +2 -2
  406. package/dist/domains/learning-optimization/active-patterns.js +2 -2
  407. package/dist/domains/learning-optimization/coordinator.js +9 -5
  408. package/dist/domains/learning-optimization/interfaces.d.ts +8 -2
  409. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  410. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  411. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  412. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  413. package/dist/domains/learning-optimization/reward-source.d.ts +13 -0
  414. package/dist/domains/learning-optimization/reward-source.js +8 -1
  415. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +5 -3
  416. package/dist/domains/learning-optimization/services/learning-coordinator.js +47 -59
  417. package/dist/domains/learning-optimization/services/metrics-optimizer.js +14 -4
  418. package/dist/domains/learning-optimization/services/production-intel.js +3 -1
  419. package/dist/domains/security-compliance/generic-finding-dedup.d.ts +40 -0
  420. package/dist/domains/security-compliance/generic-finding-dedup.js +63 -0
  421. package/dist/domains/security-compliance/plugin.js +17 -3
  422. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  423. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  424. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  425. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  426. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  427. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  428. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  429. package/dist/domains/security-compliance/services/scanners/dependency-resolver.js +14 -6
  430. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +4 -2
  431. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  432. package/dist/domains/security-compliance/services/security-auditor-sast.js +2 -2
  433. package/dist/domains/security-compliance/services/security-auditor-secrets.js +2 -2
  434. package/dist/domains/security-compliance/services/security-auditor.js +3 -2
  435. package/dist/domains/test-execution/coordinator.d.ts +6 -0
  436. package/dist/domains/test-execution/coordinator.js +28 -22
  437. package/dist/domains/test-execution/interfaces.d.ts +36 -1
  438. package/dist/domains/test-execution/plugin.js +19 -4
  439. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  440. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  441. package/dist/domains/test-execution/services/retry-outcome.d.ts +18 -0
  442. package/dist/domains/test-execution/services/retry-outcome.js +53 -0
  443. package/dist/domains/test-execution/services/runner-test-cases.d.ts +11 -0
  444. package/dist/domains/test-execution/services/runner-test-cases.js +20 -2
  445. package/dist/domains/test-execution/services/test-executor.js +8 -8
  446. package/dist/domains/test-generation/coordinator.js +2 -2
  447. package/dist/domains/test-generation/plugin.js +7 -2
  448. package/dist/domains/test-generation/services/pattern-matcher.js +4 -4
  449. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  450. package/dist/domains/test-generation/services/test-generator.js +2 -2
  451. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  452. package/dist/governance/evolution-pipeline-integration.js +3 -1
  453. package/dist/hooks/cross-phase-hooks.js +5 -2
  454. package/dist/init/init-wizard-steps.js +5 -1
  455. package/dist/init/phases/04-database.js +7 -0
  456. package/dist/init/phases/10-workers.js +50 -6
  457. package/dist/init/phases/12-verification.js +14 -4
  458. package/dist/init/settings-merge.js +7 -4
  459. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +7 -0
  460. package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +31 -2
  461. package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +3 -1
  462. package/dist/integrations/agentic-flow/reasoning-bank/index.js +5 -0
  463. package/dist/integrations/browser/agent-browser/client.js +37 -52
  464. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  465. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  466. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  467. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  468. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  469. package/dist/integrations/ruvector/filter-adapter.js +2 -1
  470. package/dist/integrations/vibium/client.js +2 -2
  471. package/dist/integrations/vibium/runtime.d.ts +1 -1
  472. package/dist/integrations/vibium/runtime.js +14 -11
  473. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  474. package/dist/kernel/unified-memory-schemas.js +3 -2
  475. package/dist/kernel/unified-memory.js +25 -6
  476. package/dist/learning/dream/dream-commit.d.ts +65 -0
  477. package/dist/learning/dream/dream-commit.js +104 -0
  478. package/dist/learning/dream/dream-engine.d.ts +81 -31
  479. package/dist/learning/dream/dream-engine.js +225 -168
  480. package/dist/learning/dream/dream-insights-pruner.d.ts +9 -3
  481. package/dist/learning/dream/dream-insights-pruner.js +16 -30
  482. package/dist/learning/dream/index.d.ts +3 -2
  483. package/dist/learning/dream/index.js +3 -1
  484. package/dist/learning/dream/insight-generator.js +5 -4
  485. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  486. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  487. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  488. package/dist/learning/dream/speculative-dreamer.js +64 -111
  489. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  490. package/dist/learning/dream/spreading-activation.js +15 -6
  491. package/dist/learning/experience-capture.d.ts +9 -0
  492. package/dist/learning/experience-capture.js +18 -4
  493. package/dist/learning/memory-auditor.js +3 -1
  494. package/dist/learning/qe-patterns.js +2 -1
  495. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  496. package/dist/learning/qe-reasoning-bank.js +22 -11
  497. package/dist/learning/real-qe-reasoning-bank.d.ts +19 -0
  498. package/dist/learning/real-qe-reasoning-bank.js +70 -38
  499. package/dist/learning/sqlite-persistence.d.ts +6 -0
  500. package/dist/learning/sqlite-persistence.js +16 -2
  501. package/dist/learning/usage-outcome.d.ts +68 -0
  502. package/dist/learning/usage-outcome.js +84 -0
  503. package/dist/mcp/background-workers.d.ts +13 -1
  504. package/dist/mcp/background-workers.js +17 -3
  505. package/dist/mcp/bundle.js +612 -580
  506. package/dist/mcp/handlers/core-handlers.js +11 -0
  507. package/dist/mcp/handlers/domain-handler-configs.d.ts +7 -0
  508. package/dist/mcp/handlers/domain-handler-configs.js +19 -5
  509. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  510. package/dist/mcp/handlers/handler-factory.js +36 -15
  511. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  512. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  513. package/dist/mcp/handlers/task-handlers.d.ts +16 -0
  514. package/dist/mcp/handlers/task-handlers.js +77 -24
  515. package/dist/mcp/handlers/validation-pipeline-handler.js +14 -10
  516. package/dist/mcp/protocol-server.js +10 -8
  517. package/dist/mcp/qe-tool-bridge.js +3 -0
  518. package/dist/mcp/security/schema-validator.js +3 -2
  519. package/dist/mcp/services/reasoning-bank-service.d.ts +3 -1
  520. package/dist/mcp/services/reasoning-bank-service.js +4 -0
  521. package/dist/mcp/tool-annotations.js +4 -1
  522. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  523. package/dist/mcp/tools/coherence/check.js +1 -0
  524. package/dist/mcp/tools/coherence/consensus.js +4 -2
  525. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  526. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  527. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  528. package/dist/mcp/tools/learning-optimization/optimize.d.ts +18 -2
  529. package/dist/mcp/tools/learning-optimization/optimize.js +59 -12
  530. package/dist/mcp/tools/mincut/index.js +3 -0
  531. package/dist/mcp/tools/quality-assessment/gate.js +19 -1
  532. package/dist/mcp/tools/qx-analysis/analyze.js +1 -0
  533. package/dist/mcp/tools/requirements-validation/quality-criteria.js +17 -3
  534. package/dist/mcp/tools/security-compliance/scan.js +4 -2
  535. package/dist/mcp/tools/test-execution/e2e-execute.js +2 -2
  536. package/dist/mcp/tools/test-execution/execute.js +3 -2
  537. package/dist/memory/crdt/crdt-store.js +5 -0
  538. package/dist/memory/crdt/lww-register.js +12 -2
  539. package/dist/migration/agent-compat.js +7 -5
  540. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  541. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  542. package/dist/optimization/early-exit-token-optimizer.js +3 -1
  543. package/dist/planning/goap-planner.js +5 -0
  544. package/dist/planning/plan-executor.js +5 -0
  545. package/dist/shared/git/git-analyzer.d.ts +49 -0
  546. package/dist/shared/git/git-analyzer.js +159 -319
  547. package/dist/shared/git/git-process.d.ts +22 -0
  548. package/dist/shared/git/git-process.js +37 -0
  549. package/dist/shared/git/index.d.ts +1 -0
  550. package/dist/shared/git/index.js +1 -0
  551. package/dist/shared/io/confined-read.d.ts +74 -0
  552. package/dist/shared/io/confined-read.js +256 -0
  553. package/dist/shared/io/file-reader.d.ts +6 -6
  554. package/dist/shared/io/file-reader.js +16 -42
  555. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  556. package/dist/shared/io/payload-path-guard.js +190 -0
  557. package/dist/shared/llm/providers/claude-code.js +4 -1
  558. package/dist/shared/llm/router/agent-router-config.js +2 -1
  559. package/dist/shared/llm/translation/tool-translator.js +2 -1
  560. package/dist/shared/native-module-errors.d.ts +51 -0
  561. package/dist/shared/native-module-errors.js +129 -0
  562. package/dist/shared/safe-db.js +14 -4
  563. package/dist/shared/security/osv-client.js +4 -1
  564. package/dist/shared/test-runner-args.d.ts +5 -0
  565. package/dist/shared/test-runner-args.js +6 -1
  566. package/dist/shared/test-runner-process.d.ts +6 -0
  567. package/dist/shared/test-runner-process.js +14 -0
  568. package/dist/shared/test-runner-verdict.d.ts +9 -1
  569. package/dist/shared/test-runner-verdict.js +15 -4
  570. package/dist/shared/types/test-frameworks.js +2 -2
  571. package/dist/shared/utils/namespaced-search.d.ts +14 -0
  572. package/dist/shared/utils/namespaced-search.js +19 -1
  573. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  574. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  575. package/dist/sync/readers/json-reader.js +2 -1
  576. package/dist/validation/anchor-set.d.ts +6 -0
  577. package/dist/validation/anchor-set.js +9 -1
  578. package/dist/validation/gate-reexecute.js +7 -4
  579. package/dist/validation/quality-gate-runner.d.ts +7 -1
  580. package/dist/validation/quality-gate-runner.js +3 -3
  581. package/dist/workers/daemon.js +13 -1
  582. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  583. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  584. package/dist/workers/workers/defect-predictor.js +48 -49
  585. package/dist/workers/workers/learning-consolidation.d.ts +2 -0
  586. package/dist/workers/workers/learning-consolidation.js +12 -1
  587. package/dist/workflows/browser/workflow-loader.js +8 -5
  588. package/package.json +1 -1
  589. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +0 -2
  590. package/dist/cli/chunks/agent-booster-wasm-427FRKWG.js +0 -2
  591. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +0 -2
  592. package/dist/cli/chunks/base-67DXSAYM.js +0 -2
  593. package/dist/cli/chunks/browser-CT3MTV6G.js +0 -4
  594. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +0 -2
  595. package/dist/cli/chunks/chunk-2XITOPYV.js +0 -6
  596. package/dist/cli/chunks/chunk-4URT6JO2.js +0 -2
  597. package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
  598. package/dist/cli/chunks/chunk-6PXA2BQJ.js +0 -742
  599. package/dist/cli/chunks/chunk-6YL6JOQB.js +0 -4
  600. package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
  601. package/dist/cli/chunks/chunk-AR2E4B7K.js +0 -6
  602. package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
  603. package/dist/cli/chunks/chunk-FJ4VTLLK.js +0 -2
  604. package/dist/cli/chunks/chunk-FV3NHVC7.js +0 -59
  605. package/dist/cli/chunks/chunk-G3BKZNFL.js +0 -120
  606. package/dist/cli/chunks/chunk-GR3JYE5A.js +0 -2
  607. package/dist/cli/chunks/chunk-J3WGK22W.js +0 -2
  608. package/dist/cli/chunks/chunk-JEP4ULR6.js +0 -21
  609. package/dist/cli/chunks/chunk-JK2ME6IT.js +0 -2
  610. package/dist/cli/chunks/chunk-KHSRIPBP.js +0 -180
  611. package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
  612. package/dist/cli/chunks/chunk-N5PDFGCQ.js +0 -180
  613. package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
  614. package/dist/cli/chunks/chunk-P2CXVNKK.js +0 -4
  615. package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
  616. package/dist/cli/chunks/chunk-VU2EL424.js +0 -14
  617. package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
  618. package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
  619. package/dist/cli/chunks/chunk-XZJ2O3VC.js +0 -2
  620. package/dist/cli/chunks/client-ZP3CTVRF.js +0 -2
  621. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +0 -2
  622. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +0 -2
  623. package/dist/cli/chunks/daemon-YIFT46FH.js +0 -34
  624. package/dist/cli/chunks/domain-transfer-6EF75EKU.js +0 -2
  625. package/dist/cli/chunks/dream-UDLM6M55.js +0 -2
  626. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +0 -2
  627. package/dist/cli/chunks/fleet-ADL57COA.js +0 -44
  628. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +0 -2
  629. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +0 -2
  630. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +0 -2
  631. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +0 -2
  632. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +0 -2
  633. package/dist/cli/chunks/init-wizard-422UZYQ5.js +0 -2
  634. package/dist/cli/chunks/kernel-N7PJ6FCE.js +0 -2
  635. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +0 -2
  636. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +0 -2
  637. package/dist/cli/chunks/load-test-POMIF4Q4.js +0 -2
  638. package/dist/cli/chunks/mcp-CRZKZE37.js +0 -2
  639. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +0 -2
  640. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +0 -2
  641. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +0 -2
  642. package/dist/cli/chunks/pipeline-5LMLBIJ7.js +0 -19
  643. package/dist/cli/chunks/project-root-X72FSM2F.js +0 -2
  644. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +0 -2
  645. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +0 -2
  646. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +0 -2
  647. package/dist/cli/chunks/router-CXZKOOTR.js +0 -2
  648. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +0 -2
  649. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +0 -2
  650. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +0 -2
  651. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +0 -2
  652. package/dist/cli/chunks/safe-db-WFODRGVZ.js +0 -2
  653. package/dist/cli/chunks/schedule-RO55OQXG.js +0 -2
  654. package/dist/cli/chunks/scheduler-XXMJCH24.js +0 -2
  655. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +0 -2
  656. package/dist/cli/chunks/sync-UVXA6CT2.js +0 -2
  657. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +0 -9
  658. package/dist/cli/chunks/token-bootstrap-EDK6FNQ3.js +0 -2
  659. package/dist/cli/chunks/tree-sitter-wasm-parser-MI3NZKUD.js +0 -2
  660. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +0 -2
  661. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +0 -2
  662. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +0 -2
  663. package/dist/cli/chunks/visual-security-6VZNQLH7.js +0 -2
  664. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +0 -2
  665. package/dist/cli/chunks/witness-chain-TATPXQRK.js +0 -2
  666. package/dist/cli/chunks/witness-chain-repair-2HGJGE7O.js +0 -2
  667. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +0 -2
  668. package/dist/cli/chunks/wrappers-ZD5NBHYI.js +0 -2
@@ -11,6 +11,7 @@ import { createSkillsInstaller } from './skills-installer.js';
11
11
  import { createAgentsInstaller } from './agents-installer.js';
12
12
  import { createN8nInstaller } from './n8n-installer.js';
13
13
  import { toErrorMessage } from '../shared/error-utils.js';
14
+ import { isNativeModuleLoadFailure, withNativeModuleRemedy } from '../shared/native-module-errors.js';
14
15
  import { openDatabase } from '../shared/safe-db.js';
15
16
  import { safeJsonParse } from '../shared/safe-json.js';
16
17
  // ============================================================================
@@ -112,7 +113,7 @@ export async function initializePersistenceDatabase(projectRoot) {
112
113
  const mod = await import('better-sqlite3');
113
114
  Database = mod.default;
114
115
  }
115
- catch (error) {
116
+ catch {
116
117
  throw new Error('SQLite persistence REQUIRED but better-sqlite3 is not installed.\n' +
117
118
  'Install it with: npm install better-sqlite3\n' +
118
119
  'If you see native compilation errors, ensure build tools are installed:\n' +
@@ -157,6 +158,9 @@ export async function initializePersistenceDatabase(projectRoot) {
157
158
  return true;
158
159
  }
159
160
  catch (error) {
161
+ if (isNativeModuleLoadFailure(error)) {
162
+ throw new Error(`SQLite persistence initialization FAILED: ${toErrorMessage(withNativeModuleRemedy(error))}`, { cause: error });
163
+ }
160
164
  throw new Error(`SQLite persistence initialization FAILED: ${error}\n` +
161
165
  `Database path: ${dbPath}\n` +
162
166
  'Ensure the directory is writable and has sufficient disk space.');
@@ -17,6 +17,8 @@ import { existsSync, mkdirSync } from 'fs';
17
17
  import { join } from 'path';
18
18
  import { BasePhase, } from './phase-interface.js';
19
19
  import { getAQEVersion } from '../types.js';
20
+ import { toErrorMessage } from '../../shared/error-utils.js';
21
+ import { isNativeModuleLoadFailure, withNativeModuleRemedy } from '../../shared/native-module-errors.js';
20
22
  /**
21
23
  * Database phase - initializes SQLite persistence via UnifiedMemoryManager
22
24
  */
@@ -106,6 +108,11 @@ export class DatabasePhase extends BasePhase {
106
108
  };
107
109
  }
108
110
  catch (error) {
111
+ // A native-addon load failure (#1173) is not a disk/permission problem:
112
+ // report the cause and the install fix instead of the generic advice.
113
+ if (isNativeModuleLoadFailure(error)) {
114
+ throw new Error(`SQLite persistence initialization FAILED: ${toErrorMessage(withNativeModuleRemedy(error))}`, { cause: error });
115
+ }
109
116
  throw new Error(`SQLite persistence initialization FAILED: ${error}\n` +
110
117
  `Database path: ${dbPath}\n` +
111
118
  'Ensure the directory is writable and has sufficient disk space.');
@@ -150,6 +150,29 @@ if (existsSync(pidFile) && isRegularOrAbsent(pidFile)) {
150
150
  try { process.kill(pid, 0); console.log('Daemon already running (PID: ' + pid + ')'); process.exit(0); } catch {}
151
151
  }
152
152
 
153
+ // #1116: honour AQE_WORKERS_ENABLED, from the environment or else the project's
154
+ // .claude/settings.local.json or settings.json env (where \`aqe init
155
+ // --no-database\` writes it; the local file wins, as in Claude Code), the same
156
+ // falsy values as the MCP server. A JSON boolean counts as its string.
157
+ // Disabled means nothing is spawned.
158
+ function workersEnabledSetting() {
159
+ if (process.env.AQE_WORKERS_ENABLED !== undefined) return process.env.AQE_WORKERS_ENABLED;
160
+ for (const file of ['settings.local.json', 'settings.json']) {
161
+ try {
162
+ const settings = JSON.parse(readFileSync(join(projectRoot, '.claude', file), 'utf-8'));
163
+ const value = settings && settings.env && settings.env.AQE_WORKERS_ENABLED;
164
+ if (typeof value === 'string') return value;
165
+ if (typeof value === 'boolean') return String(value);
166
+ } catch { /* missing or unreadable: try the next file */ }
167
+ }
168
+ return undefined;
169
+ }
170
+ const workersSetting = workersEnabledSetting();
171
+ if (workersSetting !== undefined && ['false', '0', 'off', 'no'].includes(workersSetting.trim().toLowerCase())) {
172
+ console.log('AQE v3 Worker Daemon not started: background workers are disabled (AQE_WORKERS_ENABLED=' + workersSetting + ')');
173
+ process.exit(0);
174
+ }
175
+
153
176
  const ts = new Date().toISOString();
154
177
  appendFileSync(logFile, '[' + ts + '] Starting AQE v3 Worker Daemon...\\n');
155
178
 
@@ -205,17 +228,38 @@ if (binCandidate && binCandidate.endsWith('bundle.js')) {
205
228
  appendFileSync(logFile, '[' + ts + '] Using: ' + mcpCmd + ' ' + mcpArgs.join(' ') + '\\n');
206
229
 
207
230
  // #1066: keep a user's AQE_WORKERS_ENABLED (for example false) instead of forcing it on.
208
- const env = { ...process.env, AQE_STORAGE_PATH: '.agentic-qe', AQE_LEARNING_ENABLED: 'true', AQE_WORKERS_ENABLED: process.env.AQE_WORKERS_ENABLED ?? 'true', AQE_HTTP_PORT: '0' };
231
+ const env = { ...process.env, AQE_STORAGE_PATH: '.agentic-qe', AQE_LEARNING_ENABLED: 'true', AQE_WORKERS_ENABLED: workersSetting ?? 'true', AQE_HTTP_PORT: '0' };
209
232
  const child = spawn(mcpCmd, mcpArgs, { cwd: projectRoot, env, detached: true, stdio: ['ignore', 'pipe', 'pipe'] });
210
233
  child.stdout.on('data', d => appendFileSync(logFile, d));
211
234
  child.stderr.on('data', d => appendFileSync(logFile, d));
235
+ let exited = null;
236
+ child.on('exit', (code, signal) => { exited = { code, signal }; });
237
+ // #1116: a command that cannot be started (no npx on PATH: spawn ENOENT) emits
238
+ // 'error' instead of 'exit'; without a handler the script crashed and left
239
+ // "undefined" in daemon.pid.
240
+ child.on('error', (error) => {
241
+ try { fs.unlinkSync(pidFile); } catch {}
242
+ appendFileSync(logFile, '[' + ts + '] Daemon could not be started: ' + error.message + '\\n');
243
+ console.error('AQE v3 Worker Daemon not started: ' + error.message + '; see ' + logFile);
244
+ process.exit(1);
245
+ });
212
246
  child.unref();
213
247
 
214
- writeFileSync(pidFile, String(child.pid));
215
- appendFileSync(logFile, '[' + ts + '] Daemon started with PID: ' + child.pid + '\\n');
216
- console.log('AQE v3 Worker Daemon started (PID: ' + child.pid + ')');
217
- console.log('Log file: ' + logFile);
218
- console.log('To stop: node ' + join(workersDir, 'stop-daemon.cjs'));
248
+ if (child.pid !== undefined) writeFileSync(pidFile, String(child.pid));
249
+ // #1116: say "started" only if the server is still running a moment later.
250
+ setTimeout(() => {
251
+ if (exited) {
252
+ try { fs.unlinkSync(pidFile); } catch {}
253
+ appendFileSync(logFile, '[' + ts + '] Daemon exited right away (code ' + exited.code + ', signal ' + exited.signal + ')\\n');
254
+ console.error('AQE v3 Worker Daemon not started: the MCP server exited right away (code ' + exited.code + '); see ' + logFile);
255
+ process.exitCode = 1;
256
+ return;
257
+ }
258
+ appendFileSync(logFile, '[' + ts + '] Daemon started with PID: ' + child.pid + '\\n');
259
+ console.log('AQE v3 Worker Daemon started (PID: ' + child.pid + ')');
260
+ console.log('Log file: ' + logFile);
261
+ console.log('To stop: node ' + join(workersDir, 'stop-daemon.cjs'));
262
+ }, 3000);
219
263
  `;
220
264
  writeFileIfChanged(daemonScriptPath, daemonScript);
221
265
  // Also write a cross-platform stop script
@@ -13,6 +13,8 @@ import { BasePhase, } from './phase-interface.js';
13
13
  import { openDatabase } from '../../shared/safe-db.js';
14
14
  /** The `# <ISO timestamp>` header line written by configToYAML(). */
15
15
  const CONFIG_TIMESTAMP_LINE = /^# \d{4}-\d{2}-\d{2}T[\d:.]+Z$/;
16
+ /** #1157: config keys that would reach Object.prototype through a plain object. */
17
+ const UNSAFE_YAML_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
16
18
  /**
17
19
  * Verification phase - verifies installation and writes markers
18
20
  */
@@ -173,8 +175,12 @@ export class VerificationPhase extends BasePhase {
173
175
  // Top-level key (no indentation)
174
176
  const topMatch = line.match(/^(\w+):\s*(.*)$/);
175
177
  if (topMatch) {
176
- currentSection = topMatch[1];
178
+ // #1157: keys come from config.yaml; a `__proto__` section (and
179
+ // everything under it) is skipped instead of re-prototyping result.
180
+ currentSection = UNSAFE_YAML_KEYS.has(topMatch[1]) ? '' : topMatch[1];
177
181
  currentSubSection = '';
182
+ if (!currentSection)
183
+ continue;
178
184
  const value = topMatch[2].trim();
179
185
  if (value && !value.startsWith('"')) {
180
186
  // Simple value
@@ -191,9 +197,11 @@ export class VerificationPhase extends BasePhase {
191
197
  // Second-level key (2-space indent)
192
198
  const subMatch = line.match(/^ {2}(\w+):\s*(.*)$/);
193
199
  if (subMatch && currentSection) {
194
- currentSubSection = subMatch[1];
200
+ currentSubSection = UNSAFE_YAML_KEYS.has(subMatch[1]) ? '' : subMatch[1];
201
+ if (!currentSubSection)
202
+ continue;
195
203
  const value = subMatch[2].trim();
196
- if (!result[currentSection]) {
204
+ if (!Object.hasOwn(result, currentSection) || !result[currentSection]) {
197
205
  result[currentSection] = {};
198
206
  }
199
207
  if (value) {
@@ -210,8 +218,10 @@ export class VerificationPhase extends BasePhase {
210
218
  if (thirdMatch && currentSection && currentSubSection) {
211
219
  const key = thirdMatch[1];
212
220
  const value = thirdMatch[2].trim();
221
+ if (UNSAFE_YAML_KEYS.has(key))
222
+ continue;
213
223
  const section = result[currentSection];
214
- if (!section[currentSubSection]) {
224
+ if (!Object.hasOwn(section, currentSubSection) || !section[currentSubSection]) {
215
225
  section[currentSubSection] = {};
216
226
  }
217
227
  if (typeof section[currentSubSection] === 'object' && !Array.isArray(section[currentSubSection])) {
@@ -8,6 +8,7 @@
8
8
  * - Generates full env vars and v3 settings sections
9
9
  */
10
10
  import { existsSync, readFileSync, writeFileSync } from 'fs';
11
+ import { getOwn, setOwn } from '../shared/utils/safe-record.js';
11
12
  /**
12
13
  * Create a one-time `.backup` of an existing settings.json before AQE modifies
13
14
  * it — mirroring the CLAUDE.md backup convention.
@@ -75,22 +76,24 @@ export function isAqeHookEntry(entry) {
75
76
  * 3. Preserve any hook types not in the new config
76
77
  */
77
78
  export function mergeHooksSmart(existingHooks, newAqeHooks) {
79
+ // #1157: hook types come from the user's settings.json; read and write own
80
+ // entries only, so a type named `constructor` or `__proto__` is kept as-is.
78
81
  const merged = {};
79
82
  // Process hook types that have new AQE entries
80
83
  for (const [hookType, newEntries] of Object.entries(newAqeHooks)) {
81
- const existing = existingHooks[hookType] || [];
84
+ const existing = getOwn(existingHooks, hookType) || [];
82
85
  // Keep only non-AQE entries from existing config
83
86
  const userEntries = Array.isArray(existing)
84
87
  ? existing.filter((entry) => !isAqeHookEntry(entry))
85
88
  : [];
86
89
  // New AQE hooks go after user hooks (except PreToolUse guard which should be first)
87
- merged[hookType] = [...newEntries, ...userEntries];
90
+ setOwn(merged, hookType, [...newEntries, ...userEntries]);
88
91
  }
89
92
  // Preserve hook types that are not in our new config (user's custom hook types)
90
93
  for (const [hookType, hookArray] of Object.entries(existingHooks)) {
91
- if (!merged[hookType]) {
94
+ if (!Object.hasOwn(merged, hookType)) {
92
95
  // This hook type isn't one we manage — keep it as-is
93
- merged[hookType] = hookArray;
96
+ setOwn(merged, hookType, hookArray);
94
97
  }
95
98
  }
96
99
  return merged;
@@ -113,6 +113,7 @@ export declare class ExperienceReplay {
113
113
  private prepared;
114
114
  private initialized;
115
115
  private initializationPromise;
116
+ private embedderUnavailableLogged;
116
117
  private hnswIndex;
117
118
  private idToExperienceId;
118
119
  private experienceIdToHnswId;
@@ -150,6 +151,12 @@ export declare class ExperienceReplay {
150
151
  * @returns The stored experience
151
152
  */
152
153
  storeExperience(trajectory: Trajectory, strategy: string, tags?: string[]): Promise<Experience | null>;
154
+ /**
155
+ * #1022: embed text, or return null when no embedding runtime is available.
156
+ * The experience is then stored without a vector (backfilled at a later
157
+ * start that has an embedder) and similarity search finds no matches.
158
+ */
159
+ private embedOrNull;
153
160
  /**
154
161
  * Get guidance for a new task based on similar experiences
155
162
  *
@@ -60,6 +60,7 @@ export class ExperienceReplay {
60
60
  prepared = new Map();
61
61
  initialized = false;
62
62
  initializationPromise = null;
63
+ embedderUnavailableLogged = false;
63
64
  // Real HNSW index for O(log n) similarity search (150x-12,500x faster than linear scan)
64
65
  hnswIndex;
65
66
  // Mapping from HNSW numeric IDs to experience string IDs
@@ -399,7 +400,7 @@ export class ExperienceReplay {
399
400
  .map(s => scrubReasoningBlocks(s.action));
400
401
  // Generate embedding for similarity search
401
402
  const embeddingText = `${task} ${strategy} ${keyActions.join(' ')}`;
402
- const embedding = await computeRealEmbedding(embeddingText, this.config.embedding);
403
+ const embedding = (await this.embedOrNull(embeddingText)) ?? undefined;
403
404
  const id = uuidv4();
404
405
  const domain = trajectory.domain || 'test-generation';
405
406
  const experience = {
@@ -456,6 +457,24 @@ export class ExperienceReplay {
456
457
  }
457
458
  return experience;
458
459
  }
460
+ /**
461
+ * #1022: embed text, or return null when no embedding runtime is available.
462
+ * The experience is then stored without a vector (backfilled at a later
463
+ * start that has an embedder) and similarity search finds no matches.
464
+ */
465
+ async embedOrNull(text) {
466
+ try {
467
+ return await computeRealEmbedding(text, this.config.embedding);
468
+ }
469
+ catch (error) {
470
+ if (!this.embedderUnavailableLogged) {
471
+ this.embedderUnavailableLogged = true;
472
+ console.warn('[ExperienceReplay] No embedding runtime; experiences are stored without vectors ' +
473
+ 'and similar-experience guidance is unavailable:', error instanceof Error ? error.message : error);
474
+ }
475
+ return null;
476
+ }
477
+ }
459
478
  /**
460
479
  * Get guidance for a new task based on similar experiences
461
480
  *
@@ -465,6 +484,13 @@ export class ExperienceReplay {
465
484
  */
466
485
  async getGuidance(task, domain) {
467
486
  this.ensureInitialized();
487
+ // #1022: the reservoir blend below picks experiences without looking at
488
+ // the query and gives them a coherence-derived similarity. Without an
489
+ // embedding of the query nothing measures relevance, so return no guidance
490
+ // rather than query-independent picks with a made-up similarity.
491
+ if (!(await this.embedOrNull(scrubReasoningBlocks(task)))) {
492
+ return null;
493
+ }
468
494
  // Find similar experiences via HNSW
469
495
  const similar = await this.findSimilarExperiences(task, domain);
470
496
  // Blend in high-coherence experiences from reservoir buffer (R10, ADR-087)
@@ -546,7 +572,10 @@ export class ExperienceReplay {
546
572
  // Generate embedding for the task
547
573
  // ADR-099: scrub so query embeddings match the scrubbed stored embeddings
548
574
  task = scrubReasoningBlocks(task);
549
- const taskEmbedding = await computeRealEmbedding(task, this.config.embedding);
575
+ const taskEmbedding = await this.embedOrNull(task);
576
+ if (!taskEmbedding) {
577
+ return [];
578
+ }
550
579
  // Create query embedding for HNSW search
551
580
  const queryEmbedding = {
552
581
  vector: taskEmbedding,
@@ -15,7 +15,7 @@
15
15
  * - Automatic strategy recommendations
16
16
  * - Pattern quality improvement over time
17
17
  */
18
- import { RealQEReasoningBank, type RealQEReasoningBankConfig, type RealQEPatternSearchResult, type RealQERoutingRequest, type RealQERoutingResult, type LearningOutcome } from '../../../learning/real-qe-reasoning-bank.js';
18
+ import { RealQEReasoningBank, type RealQEReasoningBankConfig, type RealQEPatternSearchResult, type PatternSearchStatus, type RealQERoutingRequest, type RealQERoutingResult, type LearningOutcome } from '../../../learning/real-qe-reasoning-bank.js';
19
19
  import { TrajectoryTracker, type Trajectory, type TrajectoryStep, type TrajectoryOptions, type TrajectoryTrackerConfig } from './trajectory-tracker.js';
20
20
  import { ExperienceReplay, type ExperienceGuidance, type ExperienceReplayConfig } from './experience-replay.js';
21
21
  import { PatternEvolution, type PatternVersion, type DriftDetectionResult, type MergeCandidate, type PatternEvolutionConfig } from './pattern-evolution.js';
@@ -183,6 +183,8 @@ export declare class EnhancedReasoningBankAdapter {
183
183
  domain?: QEDomain;
184
184
  minSimilarity?: number;
185
185
  }): Promise<Result<RealQEPatternSearchResult[]>>;
186
+ /** #1022: whether pattern search uses vectors or text matching only. */
187
+ getPatternSearchStatus(): PatternSearchStatus;
186
188
  /**
187
189
  * Record a pattern outcome with evolution tracking
188
190
  */
@@ -297,6 +297,11 @@ export class EnhancedReasoningBankAdapter {
297
297
  this.ensureInitialized();
298
298
  return this.reasoningBank.searchQEPatterns(query, options);
299
299
  }
300
+ /** #1022: whether pattern search uses vectors or text matching only. */
301
+ getPatternSearchStatus() {
302
+ this.ensureInitialized();
303
+ return this.reasoningBank.getPatternSearchStatus();
304
+ }
300
305
  /**
301
306
  * Record a pattern outcome with evolution tracking
302
307
  */
@@ -210,7 +210,7 @@ export class AgentBrowserClient {
210
210
  // Extra safety: also terminate via executor if we have one
211
211
  if (this.executor) {
212
212
  try {
213
- this.executor.terminateDaemon();
213
+ await this.executor.terminateDaemon();
214
214
  }
215
215
  catch (error) {
216
216
  // Non-critical: best effort daemon termination
@@ -251,7 +251,7 @@ export class AgentBrowserClient {
251
251
  async navigate(url) {
252
252
  const startTime = Date.now();
253
253
  try {
254
- const result = this.executor.open(url);
254
+ const result = await this.executor.open(url);
255
255
  if (!result.success) {
256
256
  return err(new BrowserError(result.error ?? 'Navigation failed', 'NAVIGATION_FAILED', 'agent-browser'));
257
257
  }
@@ -260,7 +260,7 @@ export class AgentBrowserClient {
260
260
  this.sessionManager.updateSessionUrl(this.currentSessionId, url);
261
261
  }
262
262
  // Get page info for result
263
- const evalResult = this.executor.eval('JSON.stringify({ title: document.title, url: window.location.href })');
263
+ const evalResult = await this.executor.eval('JSON.stringify({ title: document.title, url: window.location.href })');
264
264
  const pageInfo = evalResult.success && evalResult.data
265
265
  ? typeof evalResult.data === 'string'
266
266
  ? safeJsonParse(evalResult.data)
@@ -282,7 +282,7 @@ export class AgentBrowserClient {
282
282
  */
283
283
  async reload() {
284
284
  try {
285
- const result = this.executor.eval('window.location.reload()');
285
+ const result = await this.executor.eval('window.location.reload()');
286
286
  if (!result.success) {
287
287
  return err(new BrowserError(result.error ?? 'Reload failed', 'RELOAD_FAILED', 'agent-browser'));
288
288
  }
@@ -297,7 +297,7 @@ export class AgentBrowserClient {
297
297
  */
298
298
  async goBack() {
299
299
  try {
300
- const result = this.executor.eval('window.history.back()');
300
+ const result = await this.executor.eval('window.history.back()');
301
301
  if (!result.success) {
302
302
  return err(new BrowserError(result.error ?? 'Go back failed', 'HISTORY_FAILED', 'agent-browser'));
303
303
  }
@@ -312,7 +312,7 @@ export class AgentBrowserClient {
312
312
  */
313
313
  async goForward() {
314
314
  try {
315
- const result = this.executor.eval('window.history.forward()');
315
+ const result = await this.executor.eval('window.history.forward()');
316
316
  if (!result.success) {
317
317
  return err(new BrowserError(result.error ?? 'Go forward failed', 'HISTORY_FAILED', 'agent-browser'));
318
318
  }
@@ -331,7 +331,7 @@ export class AgentBrowserClient {
331
331
  async click(target) {
332
332
  try {
333
333
  const resolvedTarget = resolveTarget(target);
334
- const result = this.executor.click(resolvedTarget);
334
+ const result = await this.executor.click(resolvedTarget);
335
335
  if (!result.success) {
336
336
  return err(new BrowserElementNotFoundError('agent-browser', target, new Error(result.error)));
337
337
  }
@@ -347,7 +347,7 @@ export class AgentBrowserClient {
347
347
  async fill(target, text) {
348
348
  try {
349
349
  const resolvedTarget = resolveTarget(target);
350
- const result = this.executor.fill(resolvedTarget, text);
350
+ const result = await this.executor.fill(resolvedTarget, text);
351
351
  if (!result.success) {
352
352
  return err(new BrowserElementNotFoundError('agent-browser', target, new Error(result.error)));
353
353
  }
@@ -363,7 +363,7 @@ export class AgentBrowserClient {
363
363
  async getText(target) {
364
364
  try {
365
365
  const resolvedTarget = resolveTarget(target);
366
- const result = this.executor.getText(resolvedTarget);
366
+ const result = await this.executor.getText(resolvedTarget);
367
367
  if (!result.success) {
368
368
  return err(new BrowserElementNotFoundError('agent-browser', target, new Error(result.error)));
369
369
  }
@@ -400,7 +400,7 @@ export class AgentBrowserClient {
400
400
  async isVisible(target) {
401
401
  try {
402
402
  const resolvedTarget = resolveTarget(target);
403
- const result = this.executor.isVisible(resolvedTarget);
403
+ const result = await this.executor.isVisible(resolvedTarget);
404
404
  if (!result.success) {
405
405
  // Element not found means not visible
406
406
  return ok(false);
@@ -419,12 +419,12 @@ export class AgentBrowserClient {
419
419
  */
420
420
  async screenshot(options) {
421
421
  try {
422
- const result = this.executor.screenshot(options?.path, options?.fullPage);
422
+ const result = await this.executor.screenshot(options?.path, options?.fullPage);
423
423
  if (!result.success) {
424
424
  return err(new BrowserError(result.error ?? 'Screenshot failed', 'SCREENSHOT_FAILED', 'agent-browser'));
425
425
  }
426
426
  // Get viewport dimensions
427
- const dimensionsResult = this.executor.eval('JSON.stringify({ width: window.innerWidth, height: window.innerHeight })');
427
+ const dimensionsResult = await this.executor.eval('JSON.stringify({ width: window.innerWidth, height: window.innerHeight })');
428
428
  let dimensions = { width: 1280, height: 720 };
429
429
  if (dimensionsResult.success && dimensionsResult.data) {
430
430
  const parsed = typeof dimensionsResult.data === 'string'
@@ -451,7 +451,7 @@ export class AgentBrowserClient {
451
451
  */
452
452
  async evaluate(script) {
453
453
  try {
454
- const result = this.executor.eval(script);
454
+ const result = await this.executor.eval(script);
455
455
  if (!result.success) {
456
456
  return err(new BrowserError(result.error ?? 'Evaluation failed', 'EVAL_FAILED', 'agent-browser'));
457
457
  }
@@ -487,7 +487,7 @@ export class AgentBrowserClient {
487
487
  */
488
488
  async getSnapshot(options) {
489
489
  try {
490
- const result = this.executor.snapshot({
490
+ const result = await this.executor.snapshot({
491
491
  interactive: options?.interactive,
492
492
  depth: options?.depth,
493
493
  });
@@ -504,8 +504,8 @@ export class AgentBrowserClient {
504
504
  parsed = this.snapshotParser.parse(String(result.data));
505
505
  }
506
506
  // Get current URL and title
507
- const urlResult = this.executor.eval('window.location.href');
508
- const titleResult = this.executor.eval('document.title');
507
+ const urlResult = await this.executor.eval('window.location.href');
508
+ const titleResult = await this.executor.eval('document.title');
509
509
  if (urlResult.success) {
510
510
  parsed.url = String(urlResult.data);
511
511
  }
@@ -578,7 +578,7 @@ export class AgentBrowserClient {
578
578
  body: response.body,
579
579
  headers: response.headers,
580
580
  };
581
- const result = this.executor.mockRoute(urlPattern, mockBody);
581
+ const result = await this.executor.mockRoute(urlPattern, mockBody);
582
582
  if (!result.success) {
583
583
  return err(new BrowserError(result.error ?? 'Mock route failed', 'MOCK_ROUTE_FAILED', 'agent-browser'));
584
584
  }
@@ -593,7 +593,7 @@ export class AgentBrowserClient {
593
593
  */
594
594
  async abortRoute(urlPattern) {
595
595
  try {
596
- const result = this.executor.abortRoute(urlPattern);
596
+ const result = await this.executor.abortRoute(urlPattern);
597
597
  if (!result.success) {
598
598
  return err(new BrowserError(result.error ?? 'Abort route failed', 'ABORT_ROUTE_FAILED', 'agent-browser'));
599
599
  }
@@ -608,7 +608,7 @@ export class AgentBrowserClient {
608
608
  */
609
609
  async clearRoutes() {
610
610
  try {
611
- const result = this.executor.clearRoutes();
611
+ const result = await this.executor.clearRoutes();
612
612
  if (!result.success) {
613
613
  return err(new BrowserError(result.error ?? 'Clear routes failed', 'CLEAR_ROUTES_FAILED', 'agent-browser'));
614
614
  }
@@ -626,7 +626,7 @@ export class AgentBrowserClient {
626
626
  */
627
627
  async setDevice(deviceName) {
628
628
  try {
629
- const result = this.executor.setDevice(deviceName);
629
+ const result = await this.executor.setDevice(deviceName);
630
630
  if (!result.success) {
631
631
  return err(new BrowserError(result.error ?? 'Set device failed', 'SET_DEVICE_FAILED', 'agent-browser'));
632
632
  }
@@ -641,7 +641,7 @@ export class AgentBrowserClient {
641
641
  */
642
642
  async setViewport(width, height) {
643
643
  try {
644
- const result = this.executor.setViewport(width, height);
644
+ const result = await this.executor.setViewport(width, height);
645
645
  if (!result.success) {
646
646
  return err(new BrowserError(result.error ?? 'Set viewport failed', 'SET_VIEWPORT_FAILED', 'agent-browser'));
647
647
  }
@@ -659,7 +659,7 @@ export class AgentBrowserClient {
659
659
  */
660
660
  async saveState(path) {
661
661
  try {
662
- const result = this.executor.saveState(path);
662
+ const result = await this.executor.saveState(path);
663
663
  if (!result.success) {
664
664
  return err(new BrowserError(result.error ?? 'Save state failed', 'SAVE_STATE_FAILED', 'agent-browser'));
665
665
  }
@@ -674,7 +674,7 @@ export class AgentBrowserClient {
674
674
  */
675
675
  async loadState(path) {
676
676
  try {
677
- const result = this.executor.loadState(path);
677
+ const result = await this.executor.loadState(path);
678
678
  if (!result.success) {
679
679
  return err(new BrowserError(result.error ?? 'Load state failed', 'LOAD_STATE_FAILED', 'agent-browser'));
680
680
  }
@@ -693,7 +693,7 @@ export class AgentBrowserClient {
693
693
  async waitForElement(target, timeout) {
694
694
  try {
695
695
  const resolvedTarget = resolveTarget(target);
696
- const result = this.executor.waitForElement(resolvedTarget, timeout);
696
+ const result = await this.executor.waitForElement(resolvedTarget, timeout);
697
697
  if (!result.success) {
698
698
  return err(new BrowserTimeoutError('agent-browser', `waitForElement(${resolvedTarget})`, new Error(result.error)));
699
699
  }
@@ -711,7 +711,7 @@ export class AgentBrowserClient {
711
711
  // The timeout parameter is ignored by the current CLI implementation
712
712
  // but we accept it for interface compatibility
713
713
  void timeout;
714
- const result = this.executor.waitForText(text);
714
+ const result = await this.executor.waitForText(text);
715
715
  if (!result.success) {
716
716
  return err(new BrowserTimeoutError('agent-browser', `waitForText("${text}")`, new Error(result.error)));
717
717
  }
@@ -728,7 +728,7 @@ export class AgentBrowserClient {
728
728
  try {
729
729
  // The timeout parameter is ignored by the current CLI implementation
730
730
  void timeout;
731
- const result = this.executor.waitForUrl(pattern);
731
+ const result = await this.executor.waitForUrl(pattern);
732
732
  if (!result.success) {
733
733
  return err(new BrowserTimeoutError('agent-browser', `waitForUrl("${pattern}")`, new Error(result.error)));
734
734
  }
@@ -745,7 +745,7 @@ export class AgentBrowserClient {
745
745
  try {
746
746
  // The timeout parameter is ignored by the current CLI implementation
747
747
  void timeout;
748
- const result = this.executor.waitForNetworkIdle();
748
+ const result = await this.executor.waitForNetworkIdle();
749
749
  if (!result.success) {
750
750
  return err(new BrowserTimeoutError('agent-browser', 'waitForNetworkIdle', new Error(result.error)));
751
751
  }
@@ -766,7 +766,7 @@ export class AgentBrowserClient {
766
766
  */
767
767
  async startTrace() {
768
768
  try {
769
- const result = this.executor.startTrace();
769
+ const result = await this.executor.startTrace();
770
770
  if (!result.success) {
771
771
  return err(new BrowserError(result.error ?? 'Start trace failed', 'START_TRACE_FAILED', 'agent-browser'));
772
772
  }
@@ -784,7 +784,7 @@ export class AgentBrowserClient {
784
784
  */
785
785
  async stopTrace(outputPath) {
786
786
  try {
787
- const result = this.executor.stopTrace(outputPath);
787
+ const result = await this.executor.stopTrace(outputPath);
788
788
  if (!result.success) {
789
789
  return err(new BrowserError(result.error ?? 'Stop trace failed', 'STOP_TRACE_FAILED', 'agent-browser'));
790
790
  }
@@ -815,28 +815,13 @@ export function createAgentBrowserClient(config) {
815
815
  * Only use in test environments.
816
816
  */
817
817
  export async function cleanupAllBrowserProcesses() {
818
- const { execSync } = await import('child_process');
819
- try {
820
- // Kill agent-browser daemons
821
- execSync('pkill -9 -f "agent-browser.*daemon" 2>/dev/null || true', {
822
- timeout: 5000,
823
- stdio: 'ignore'
824
- });
825
- }
826
- catch (error) {
827
- // Non-critical: daemon cleanup errors
828
- console.debug('[AgentBrowserClient] Daemon cleanup error:', error instanceof Error ? error.message : error);
829
- }
830
- try {
831
- // Kill chromium headless shell processes
832
- execSync('pkill -9 -f "chromium_headless_shell\\|headless_shell" 2>/dev/null || true', {
833
- timeout: 5000,
834
- stdio: 'ignore'
835
- });
836
- }
837
- catch (error) {
838
- // Non-critical: chromium cleanup errors
839
- console.debug('[AgentBrowserClient] Chromium cleanup error:', error instanceof Error ? error.message : error);
840
- }
818
+ const { runTestRunnerProcess } = await import('../../../shared/test-runner-process.js');
819
+ // pkill exits 1 when nothing matched; cleanup is best effort either way
820
+ const pkill = async (pattern) => {
821
+ await runTestRunnerProcess('pkill', ['-9', '-f', pattern], { cwd: process.cwd(), timeout: 5000 });
822
+ };
823
+ // Kill agent-browser daemons, then chromium headless shell processes
824
+ await pkill('agent-browser.*daemon');
825
+ await pkill('chromium_headless_shell\\|headless_shell');
841
826
  }
842
827
  //# sourceMappingURL=client.js.map