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
@@ -940,7 +940,7 @@
940
940
  },
941
941
  "metadata": {
942
942
  "generatedBy": "Agentic QE Fleet",
943
- "fleetVersion": "3.15.9",
943
+ "fleetVersion": "3.15.11",
944
944
  "manifestVersion": "1.4.0",
945
945
  "lastUpdated": "2026-04-13T00:00:00.000Z",
946
946
  "contributors": [
package/CHANGELOG.md CHANGED
@@ -5,6 +5,371 @@ All notable changes to the Agentic QE project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.15.11] - 2026-10-22
9
+
10
+ AQE now works on npm 12 and on a plain install without the optional
11
+ embedding package, and its MCP tools load in VS Code Copilot. When the
12
+ database cannot start, `aqe init` prints the real cause and the command that
13
+ fixes it. `aqe fleet run` progress output is readable, a test that passes on
14
+ retry counts as passed and flaky, and an `eval()` is no longer reported twice.
15
+ Four security fixes close the follow-ups from the 3.15.10 review: a checked
16
+ file is read from exactly what was checked, runner stderr is redacted before
17
+ it is cut, and names like `constructor` or `__proto__` are plain names in
18
+ every data lookup.
19
+
20
+ ### Fixed
21
+
22
+ - **`aqe init` explains a missing database driver** ([#1173], [#1175]): on
23
+ npm 12, `npm install -g agentic-qe` blocks the install script of
24
+ `better-sqlite3`, so its native binary is never built. `aqe init` then
25
+ failed at "Initialize persistence database" with no error printed. Now
26
+ `init` prints the real error, and every command that opens the database
27
+ (`init`, `health`, `status`, `memory`, MCP fleet init) names the cause and
28
+ prints the exact fix:
29
+ `npm install -g agentic-qe --allow-scripts=agentic-qe,better-sqlite3,hnswlib-node`.
30
+ The README and getting-started guide include the npm 12 install note.
31
+ - **MCP tools load in VS Code Copilot** ([#1185], [#1193]): Copilot refused
32
+ `fleet_init` and 17 other tools with "tool parameters array type must have
33
+ items". Every list parameter in every tool schema now declares what its
34
+ elements are, including the `qe/*` domain tools, whose element types were
35
+ dropped when they were published.
36
+ - **`task_orchestrate` and `aqe eval` work without an embedder** ([#1022],
37
+ [#1181]): on a plain install without `@huggingface/transformers`,
38
+ `task_orchestrate` always failed with "Transformer initialization
39
+ previously failed" and `aqe eval` failed to load. Both now work. Pattern
40
+ learning stores patterns without a vector and searches them by text; its
41
+ response says so in a new `learning` field (`patternSearch: "vector"`,
42
+ `"lexical-only"` with the reason, or `"unavailable"`). Text matches report
43
+ `similarity: 0` because no similarity was measured. Experience guidance is
44
+ not produced without an embedding of the task, instead of guidance for an
45
+ unrelated task with a made-up similarity.
46
+ - **`aqe fleet run` progress output** ([#1168], [#1177]): the progress header
47
+ shows `Fleet Progress` instead of a literal `{name}` and a stray `0`. When
48
+ the verdict is FAILED, the completion line no longer says "successfully".
49
+ - **A test that passes on retry counts as passed and flaky** ([#1170],
50
+ [#1177]): MCP `test_execute_parallel` and `aqe test execute` (text, JSON and
51
+ markdown) now count it as passed, report it as flaky, and agree with
52
+ `retryStats`. MCP and the CLI share one default retry count, 2 (MCP used 3).
53
+ - **`sast-scan` runs without naming a domain** ([#1170], [#1177]):
54
+ `task_submit` and `aqe task submit` route it to `security-compliance`. A
55
+ task type no loaded domain handles is still rejected, with an error that
56
+ says so.
57
+ - **One `eval()` is reported once** ([#1170], [#1177], [#1184]):
58
+ `security_scan_comprehensive` dropped a duplicate generic eval/exec finding
59
+ only when SAST reported eval injection (CWE-95) on the same file and line,
60
+ at the same or a higher severity, and the line has no `exec()`. Secret, CORS
61
+ and debug findings are always kept. The generic rule reports every matching
62
+ line, and its findings name the scanned path.
63
+ - **Learning recommendations stay in their domain and objective** ([#1091],
64
+ thanks @rudycelekli): a strategy tuned to maximize coverage can no longer
65
+ be recommended for minimizing latency or for another domain.
66
+ - **CRDT sync rejects non-finite timestamps** ([#1087], thanks
67
+ @rudycelekli): a remote register with a `NaN` or infinite timestamp is
68
+ skipped at merge instead of winning every later comparison; valid
69
+ registers, including cleared ones, keep converging.
70
+
71
+ ### Security
72
+
73
+ - **A checked file is read from exactly what was checked** ([#1161],
74
+ [#1179]): the path guard checked a path, and the handler opened it again
75
+ later by name, so a file or symlink swapped in between was read
76
+ unchecked. Fixed-name files inside an accepted folder (coverage reports,
77
+ `package.json`, dependency manifests) were not checked at all, so a
78
+ committed symlink could pull an outside file into results or point a
79
+ coverage report at `/dev/zero`. One shared reader now opens the file once
80
+ without following a final symlink, checks the open file (regular, within the
81
+ size limit, inside the project) and reads from it. Code index, SAST,
82
+ security scans, contract and requirements validation, test generation, C4
83
+ and every coverage report parser use it.
84
+ - **Test runner stderr is redacted before it is cut** ([#1150], [#1180]):
85
+ when coverage tests crashed without a report, `coverage_analyze_sublinear`
86
+ quoted the runner's raw stderr, and a secret cut at the 2 KB boundary left a
87
+ fragment no redaction pattern recognizes. Stderr is now redacted first, then
88
+ cut. Claim-verifier command evidence and the claude-code provider's parse
89
+ error are redacted the same way.
90
+ - **`constructor`, `__proto__` and other built-in names are plain names**
91
+ ([#1157], [#1182]): names from callers, files or stored data matched
92
+ built-in JavaScript members. A pipeline condition on `input.constructor`
93
+ ran a step that should be skipped, a dependency named `constructor` crashed
94
+ `qe/code/c4` and hid real findings, an agent-overlay `__proto__:` section
95
+ wrote onto every object, and a tool named `constructor` could claim to be
96
+ read-only. Every such lookup now reads own entries only.
97
+
98
+ ### Changed
99
+
100
+ - `vite` (dev dependency) 8.3.0 → 8.3.4 ([#1172]).
101
+
102
+ [#1022]: https://github.com/proffesor-for-testing/agentic-qe/issues/1022
103
+ [#1087]: https://github.com/proffesor-for-testing/agentic-qe/pull/1087
104
+ [#1091]: https://github.com/proffesor-for-testing/agentic-qe/pull/1091
105
+ [#1150]: https://github.com/proffesor-for-testing/agentic-qe/issues/1150
106
+ [#1157]: https://github.com/proffesor-for-testing/agentic-qe/issues/1157
107
+ [#1161]: https://github.com/proffesor-for-testing/agentic-qe/issues/1161
108
+ [#1168]: https://github.com/proffesor-for-testing/agentic-qe/issues/1168
109
+ [#1170]: https://github.com/proffesor-for-testing/agentic-qe/issues/1170
110
+ [#1172]: https://github.com/proffesor-for-testing/agentic-qe/pull/1172
111
+ [#1173]: https://github.com/proffesor-for-testing/agentic-qe/issues/1173
112
+ [#1175]: https://github.com/proffesor-for-testing/agentic-qe/pull/1175
113
+ [#1177]: https://github.com/proffesor-for-testing/agentic-qe/pull/1177
114
+ [#1179]: https://github.com/proffesor-for-testing/agentic-qe/pull/1179
115
+ [#1180]: https://github.com/proffesor-for-testing/agentic-qe/pull/1180
116
+ [#1181]: https://github.com/proffesor-for-testing/agentic-qe/pull/1181
117
+ [#1182]: https://github.com/proffesor-for-testing/agentic-qe/pull/1182
118
+ [#1184]: https://github.com/proffesor-for-testing/agentic-qe/pull/1184
119
+ [#1185]: https://github.com/proffesor-for-testing/agentic-qe/issues/1185
120
+ [#1193]: https://github.com/proffesor-for-testing/agentic-qe/pull/1193
121
+
122
+ ## [3.15.10] - 2026-10-19
123
+
124
+ Files named in a request are now read only when they are inside your
125
+ project, and secrets in test failures are redacted everywhere AQE returns
126
+ or stores them. Advertised `aqe fleet run` and `task_orchestrate` commands
127
+ run real handlers and judge what they returned. A dream can no longer lose
128
+ an acknowledged memory write, git and other slow tools no longer freeze
129
+ the MCP server, and the learning success rate counts measured outcomes
130
+ only. Every change was reviewed adversarially before merge.
131
+
132
+ ### Security
133
+
134
+ - **Paths in a request are read only inside the project** ([#1126],
135
+ [#1162], [#1125], [#1144]): before, a caller could ask AQE over MCP to
136
+ read any file on the machine, and one request for `/dev/zero` crashed the
137
+ server. Every handler that reads a file or folder named in a request
138
+ (`generate-tests`, `execute-tests`, `predict-defects`, `sast-scan`,
139
+ `security_scan_comprehensive`, `coverage_analyze_sublinear`,
140
+ `code_index`, `contract_validate` and others) now applies one shared
141
+ check, on every entry point: MCP tools, `task_submit`,
142
+ `task_orchestrate` and `aqe task submit`.
143
+ - The real location, with every symlink followed, must be inside the
144
+ project root. A symlink that points out, and `src/link/../x` when
145
+ `src/link` points out, are refused.
146
+ - Only regular files are read, at most 2 MB each where a file is read
147
+ whole. Devices, FIFOs and (except where a folder is expected)
148
+ directories are refused before anything is opened.
149
+ - A path outside the project is refused without touching the
150
+ filesystem, so the error does not reveal whether the file exists.
151
+ - The refusal is a caller error: it is not retried and does not trip the
152
+ domain circuit breaker.
153
+ - **Secrets in test failures are redacted** ([#1122], [#1139]): a
154
+ connection string, AWS key or bearer token in a failing test's message
155
+ used to come back verbatim from `test_execute_parallel` and
156
+ `aqe test execute`, and was saved under `.agentic-qe/results/`, in
157
+ session logs and in `memory.db` (test runs, experiences, retry and flaky
158
+ history). All of these copies are now redacted, before any length cap,
159
+ so a secret cut in half cannot survive. The `error` of every MCP domain
160
+ tool is redacted as a backstop.
161
+ - **Lookups keyed by caller data read own properties only** ([#1136],
162
+ [#1156], [#1118], [#1132]):
163
+ - `${constructor}` or `{{toString}}` in a pipeline YAML, browser
164
+ workflow, workflow condition or cross-phase hook no longer expands to
165
+ native function source. It stays literal.
166
+ - JSON Pointer and JSON Patch paths such as `/__proto__/x` in the A2UI
167
+ and AG-UI adapters can no longer write to `Object.prototype`.
168
+ - Required-property checks in contract, enterprise-integration and MCP
169
+ schema validation no longer count an inherited `constructor` as
170
+ present.
171
+ - Name tables (agent names, gate rules, routing categories,
172
+ `aqe ruvector flags --profile`, faker paths and recovery playbook
173
+ services) no longer match inherited members. Thanks to @rudycelekli
174
+ for the recovery playbook fix.
175
+ - **DAST scans fail when the target cannot be reached** ([#1092]): an
176
+ initial 401/403 now fails with `DAST_AUTHENTICATION_FAILED` and a 5xx
177
+ with `DAST_TARGET_UNAVAILABLE`. Before, an unreachable target could
178
+ produce a completed scan. Failed follow-up probes fail the scan, and a
179
+ failed scan is not stored as completed. Thanks to @rudycelekli.
180
+
181
+ ### Fixed
182
+
183
+ - **Dreams no longer put memory writes at risk** ([#1060], [#1160]): a
184
+ dream does its work in memory and writes its results in one short
185
+ transaction at the end. An acknowledged `memory_store` made during a
186
+ dream is kept however the dream ends: it finishes, is cancelled, the
187
+ engine closes, stdin closes or the process is killed. `cancelDream()`,
188
+ `close()` and shutdown stop a dream at once and record it `interrupted`.
189
+ A second dream request while one runs is refused instead of interrupting
190
+ it. A cycle left `running` by a dead process is marked `interrupted`
191
+ (never deleted) after 11 minutes. Thanks to @pacphi for the report and
192
+ reproduction in [#1060].
193
+ - **Slow child processes no longer freeze the MCP server** ([#1115],
194
+ [#1148]): git (defect prediction, task routing, the quality daemon's
195
+ watcher), `cloc`/`tokei` and test-runner listings for `code_index`, and
196
+ `npx agent-browser` for the browser tools now run asynchronously with
197
+ timeouts. A timeout stops the child's whole process group, so nothing is
198
+ left running. With a git that took 1 s per call, `fleet_status` used to
199
+ wait up to 12 s; now it answers in well under a second.
200
+ - **Learning's success rate counts measured outcomes only** ([#1129],
201
+ [#1121], [#1142]): `aqe learning stats` said 100% after test runs with a
202
+ failing test. Now only a test run is a measured outcome (it passes when
203
+ every test passed, and both results are recorded), and the rate counts
204
+ runs, not rows. Completed calls, errors, hook-reported `--success` and
205
+ session-consolidation aggregates count as uses, not verdicts. Existing
206
+ rows are classified on read; nothing is deleted or rewritten. The
207
+ learning dashboard no longer shows an invented `0.5` learning rate or a
208
+ `100%` transfer rate, and patterns stored before 3.15.9 are kept but left
209
+ out of stats.
210
+ - **Learning consolidation cannot lose patterns** ([#1106], [#1143]): a
211
+ merge now reads back every archived source and the merged pattern before
212
+ removing the sources. If any step fails, nothing is merged. A failed
213
+ domain or merge is reported as `status: 'partial'` with an `errors` list
214
+ instead of success. A dry run now predicts the same trims as a real run,
215
+ and a key scan that never ends stops with an error.
216
+ - **Advertised commands run real handlers** ([#1125], [#1144]):
217
+ `aqe fleet run scan` runs a SAST scan on the target's JS/TS files,
218
+ `analyze` uses the coverage report that already exists for the target,
219
+ and `test` generates tests for the target's sources. `task_orchestrate`
220
+ routes `scan-security` to `sast-scan` and `assess-quality` to
221
+ `analyze-quality` when you pass `filePaths`. Requests that lack the
222
+ input a handler needs are refused with the tool to use instead; nothing
223
+ is estimated. `task_submit` with `sast-scan` now accepts plain path
224
+ strings.
225
+ - **Index tasks run, or are refused up front** ([#1086], [#1134],
226
+ [#1159]): an inferred `index-code` task now runs the code-intelligence
227
+ handler with the paths it was given. Thanks to @rudycelekli.
228
+ - **Queen slots are always handed on** ([#1127], [#1138], [#1140],
229
+ [#1152]): a slot freed while the queue drains goes to the next queued
230
+ task. Work stealing moves a task only to a domain that can run it and
231
+ never exceeds `maxConcurrentTasks`. A failure at dispatch publishes
232
+ `QueenTaskFailed` once and frees its slot once; a plugin that throws no
233
+ longer leaves its task `running`.
234
+ - **Retries rerun tests inside `describe` blocks** ([#1141], [#1151]): the
235
+ retry filter only ever matched top-level tests. It now matches the full
236
+ name for Vitest, Jest and Mocha. A retry that selects no test is
237
+ reported as `unmatched` instead of counting as an attempt.
238
+ - **Retry results are reported** ([#1130], [#1163]):
239
+ `test_execute_parallel` returns `retryStats` (retries run, now passing,
240
+ still failing, per test) and `aqe test execute` prints a `Retries:` line.
241
+ - **`fleet_status` stays healthy during a test run** ([#1130], [#1163]):
242
+ the agent spawned for one task no longer marks the fleet `degraded`
243
+ while it runs or after it finishes. Real topology problems and failed
244
+ agents still degrade the status. `fleet_health({ detailed: true })`
245
+ shows the raw MinCut reading.
246
+ - **Chaos wording is not run as tests** ([#1130], [#1163]): "Run chaos
247
+ resilience testing with fault injection" now gets chaos guidance from
248
+ `task_orchestrate` instead of being submitted as `execute-tests`.
249
+ - **Dream archive and worker status are reported truthfully** ([#1116],
250
+ [#1155]): a stale insight with a NULL id no longer makes every retention
251
+ sweep fail. The generated `start-daemon.cjs` honours
252
+ `AQE_WORKERS_ENABLED` (environment or Claude settings files) and says
253
+ "started" only when the server is still running. MCP startup reports
254
+ workers as `starting` until they have started.
255
+ - **Concurrent startups no longer fail with "database is locked" during a
256
+ schema migration** ([#1116], [#1155]): a migration takes the write lock
257
+ up front and waits for it.
258
+ - **Defect predictions reach the background worker** ([#1088]): public
259
+ predictions are recorded in the shape the worker reads, history is
260
+ bounded to the newest 32 runs, and the newest result is no longer hidden
261
+ behind an old scan cap. Static scores are labelled as estimates. Thanks
262
+ to @rudycelekli.
263
+
264
+ ### Changed
265
+
266
+ - **`task_orchestrate` and fleet responses:** `type` is now the handler
267
+ type that actually ran (for example `sast-scan`). The type inferred from
268
+ the description moves to the new field `inferredType`. Clients that read
269
+ `type` as the inferred type should read `inferredType`.
270
+ - **`aqe fleet run` shows results and a verdict.** It prints the findings,
271
+ coverage or generated tests, and exits 1 with `Verdict: FAILED (…)` on a
272
+ critical or high finding, incomplete scan evidence, a failed quality
273
+ gate, coverage below 80% or an unreadable result. The count line now
274
+ says `Completed: N` instead of `Successful: N`.
275
+ - **Payload paths are confined to the project root.** After `aqe init` in
276
+ a monorepo package, a sibling package such as `../b/tests/x.test.ts` is
277
+ refused. Set `AQE_PROJECT_ROOT=<repo root>` to let packages reach each
278
+ other.
279
+ - **Interpolation no longer resolves inherited values.** `${constructor}`,
280
+ `${toString}` and similar placeholders stay literal unless you define
281
+ them.
282
+ - **`enableBranching` is a deprecated no-op.** The option is still
283
+ accepted and logs a warning. `RVCOWBranchManager` is deprecated.
284
+ - **Index tasks without `paths` are refused at submit.** `task_submit` and
285
+ `aqe task submit` with `index` or `index-code` need a non-empty `paths`
286
+ list, and `task_orchestrate` needs `filePaths`. Use `code_index` or
287
+ `aqe code index` to index a directory.
288
+ - **`task_orchestrate` refuses `optimize-learning` from free text**,
289
+ because it overwrites the stored learned strategies. Use `task_submit`
290
+ with type `optimize-strategies`. `run-chaos`, `validate-contracts`,
291
+ `validate-requirements` and `test-accessibility` are refused with the
292
+ tool to use instead.
293
+ - **Schema v14.** The `dream_insights_archive` table moves into the
294
+ versioned schema with an additive, idempotent migration. 3.15.8 and
295
+ 3.15.9 still open a migrated database.
296
+ - **Learning success rates count measured outcomes only.** Projects that
297
+ only have hook-reported outcomes now show "insufficient evidence"
298
+ instead of 100%. `aqe learning stats --json` reports `measuredOutcomes`
299
+ and `unmeasuredOutcomes`, and `patternSuccessRate` can be `null`.
300
+ - **Git timeouts are reported as unavailable, never as 0.** A prediction
301
+ whose git history timed out carries a `warnings` entry, and its metrics
302
+ are not cached.
303
+
304
+ ### Known issues
305
+
306
+ - `task_orchestrate` still fails on an install without an embedder (the
307
+ optional `@huggingface/transformers` package or `AQE_EMBEDDER_ENDPOINT`),
308
+ so its new routing is only reachable with one configured ([#1022]).
309
+ - Payload path checks and the read that follows are not atomic, so a path
310
+ swapped between them is not caught yet ([#1161]).
311
+ - Some direct `map[userKey]` lookups on plain objects remain to be audited
312
+ ([#1157]).
313
+ - `aqe fleet run analyze` and `aqe coverage` can pass from a report that
314
+ covers only part of the target ([#1154]).
315
+ - The daemon spawned by `start-daemon.cjs` exits on stdin EOF, so it never
316
+ stays up; it now says so instead of reporting "started" ([#1158]).
317
+ - A rare "database is locked" on concurrent first open of a non-WAL
318
+ database ([#1164]).
319
+ - Git timeout follow-ups: per-path deadlines and the watcher baseline
320
+ ([#1165]).
321
+ - Queen follow-ups: a late `onComplete` can settle twice, and work stealing
322
+ rarely runs under the slot cap ([#1153]).
323
+ - Learning outcome follow-ups: failures can still mint patterns, and
324
+ routing still uses completion-based success ([#1147]).
325
+ - Pattern consolidation follow-ups: id-only read-back and no
326
+ compare-and-delete ([#1149]).
327
+
328
+ [#1022]: https://github.com/proffesor-for-testing/agentic-qe/issues/1022
329
+ [#1060]: https://github.com/proffesor-for-testing/agentic-qe/issues/1060
330
+ [#1086]: https://github.com/proffesor-for-testing/agentic-qe/pull/1086
331
+ [#1088]: https://github.com/proffesor-for-testing/agentic-qe/pull/1088
332
+ [#1092]: https://github.com/proffesor-for-testing/agentic-qe/pull/1092
333
+ [#1106]: https://github.com/proffesor-for-testing/agentic-qe/issues/1106
334
+ [#1115]: https://github.com/proffesor-for-testing/agentic-qe/issues/1115
335
+ [#1116]: https://github.com/proffesor-for-testing/agentic-qe/issues/1116
336
+ [#1118]: https://github.com/proffesor-for-testing/agentic-qe/issues/1118
337
+ [#1121]: https://github.com/proffesor-for-testing/agentic-qe/issues/1121
338
+ [#1122]: https://github.com/proffesor-for-testing/agentic-qe/issues/1122
339
+ [#1125]: https://github.com/proffesor-for-testing/agentic-qe/issues/1125
340
+ [#1126]: https://github.com/proffesor-for-testing/agentic-qe/issues/1126
341
+ [#1127]: https://github.com/proffesor-for-testing/agentic-qe/issues/1127
342
+ [#1129]: https://github.com/proffesor-for-testing/agentic-qe/issues/1129
343
+ [#1130]: https://github.com/proffesor-for-testing/agentic-qe/issues/1130
344
+ [#1132]: https://github.com/proffesor-for-testing/agentic-qe/pull/1132
345
+ [#1134]: https://github.com/proffesor-for-testing/agentic-qe/issues/1134
346
+ [#1136]: https://github.com/proffesor-for-testing/agentic-qe/issues/1136
347
+ [#1138]: https://github.com/proffesor-for-testing/agentic-qe/pull/1138
348
+ [#1139]: https://github.com/proffesor-for-testing/agentic-qe/pull/1139
349
+ [#1140]: https://github.com/proffesor-for-testing/agentic-qe/issues/1140
350
+ [#1141]: https://github.com/proffesor-for-testing/agentic-qe/issues/1141
351
+ [#1142]: https://github.com/proffesor-for-testing/agentic-qe/pull/1142
352
+ [#1143]: https://github.com/proffesor-for-testing/agentic-qe/pull/1143
353
+ [#1144]: https://github.com/proffesor-for-testing/agentic-qe/pull/1144
354
+ [#1147]: https://github.com/proffesor-for-testing/agentic-qe/issues/1147
355
+ [#1148]: https://github.com/proffesor-for-testing/agentic-qe/pull/1148
356
+ [#1149]: https://github.com/proffesor-for-testing/agentic-qe/issues/1149
357
+ [#1151]: https://github.com/proffesor-for-testing/agentic-qe/pull/1151
358
+ [#1152]: https://github.com/proffesor-for-testing/agentic-qe/pull/1152
359
+ [#1153]: https://github.com/proffesor-for-testing/agentic-qe/issues/1153
360
+ [#1154]: https://github.com/proffesor-for-testing/agentic-qe/issues/1154
361
+ [#1155]: https://github.com/proffesor-for-testing/agentic-qe/pull/1155
362
+ [#1156]: https://github.com/proffesor-for-testing/agentic-qe/pull/1156
363
+ [#1157]: https://github.com/proffesor-for-testing/agentic-qe/issues/1157
364
+ [#1158]: https://github.com/proffesor-for-testing/agentic-qe/issues/1158
365
+ [#1159]: https://github.com/proffesor-for-testing/agentic-qe/pull/1159
366
+ [#1160]: https://github.com/proffesor-for-testing/agentic-qe/pull/1160
367
+ [#1161]: https://github.com/proffesor-for-testing/agentic-qe/issues/1161
368
+ [#1162]: https://github.com/proffesor-for-testing/agentic-qe/pull/1162
369
+ [#1163]: https://github.com/proffesor-for-testing/agentic-qe/pull/1163
370
+ [#1164]: https://github.com/proffesor-for-testing/agentic-qe/issues/1164
371
+ [#1165]: https://github.com/proffesor-for-testing/agentic-qe/issues/1165
372
+
8
373
  ## [3.15.9] - 2026-10-17
9
374
 
10
375
  Tasks no longer get stuck in `running` and quietly use up Queen slots.
package/README.md CHANGED
@@ -34,6 +34,14 @@ aqe init --auto
34
34
  aqe health
35
35
  ```
36
36
 
37
+ **npm 12+:** dependency install scripts are blocked unless allowed, and AQE's SQLite store (`better-sqlite3`) needs its install script to fetch its native binary. Name the packages when you install:
38
+
39
+ ```bash
40
+ npm install -g agentic-qe --allow-scripts=agentic-qe,better-sqlite3,hnswlib-node
41
+ ```
42
+
43
+ Include `agentic-qe` in the command — npm's warning suggests `npm install -g --allow-scripts=...` without a package name, which installs the current directory instead. If `aqe init` reports that the `better-sqlite3` native module could not be loaded on an existing install, rebuild it with `npm rebuild -g better-sqlite3 --allow-scripts=better-sqlite3` (for a project-local install: `npm install-scripts approve better-sqlite3 && npm rebuild better-sqlite3`). `hnswlib-node` is optional; AQE runs without it.
44
+
37
45
  `aqe init --auto` analyzes your project and configures the default Claude Code surface, including MCP. Review the generated project files. For another client, select its setup flag below and use its MCP connection flow.
38
46
 
39
47
  In your coding agent, start with a narrow request:
@@ -940,7 +940,7 @@
940
940
  },
941
941
  "metadata": {
942
942
  "generatedBy": "Agentic QE Fleet",
943
- "fleetVersion": "3.15.9",
943
+ "fleetVersion": "3.15.11",
944
944
  "manifestVersion": "1.4.0",
945
945
  "lastUpdated": "2026-04-13T00:00:00.000Z",
946
946
  "contributors": [
@@ -53,15 +53,18 @@ export function parseFrontmatter(markdown) {
53
53
  if (keyValueMatch) {
54
54
  const [, indent, key, value] = keyValueMatch;
55
55
  const currentIndent = indent.length;
56
+ // #1157: keys come from agent markdown; skip ones that would re-prototype
57
+ // the result (and, for a top-level key, the nested block under it).
58
+ const unsafe = key === '__proto__' || key === 'constructor' || key === 'prototype';
56
59
  if (currentIndent === 0) {
57
60
  // Top-level key
58
61
  if (currentKey && indentLevel > 0) {
59
62
  result[currentKey] = nestedObj;
60
63
  nestedObj = {};
61
64
  }
62
- currentKey = key;
65
+ currentKey = unsafe ? '' : key;
63
66
  indentLevel = 0;
64
- if (value.trim()) {
67
+ if (value.trim() && !unsafe) {
65
68
  // Clean up quoted values
66
69
  result[key] = value.replace(/^["']|["']$/g, '');
67
70
  }
@@ -69,7 +72,7 @@ export function parseFrontmatter(markdown) {
69
72
  else if (currentIndent > 0 && currentKey) {
70
73
  // Nested key
71
74
  indentLevel = currentIndent;
72
- if (value.trim()) {
75
+ if (value.trim() && !unsafe) {
73
76
  nestedObj[key] = value.replace(/^["']|["']$/g, '');
74
77
  }
75
78
  }
@@ -401,7 +401,9 @@ export class TaskRouter extends EventEmitter {
401
401
  // Check capabilities
402
402
  if (request.requiredCapabilities) {
403
403
  for (const cap of request.requiredCapabilities) {
404
- if (!agent.capabilities[cap]) {
404
+ // #1157: the capability name comes from the routing request; an
405
+ // inherited member such as `toString` is not a capability.
406
+ if (!Object.hasOwn(agent.capabilities, cap) || !agent.capabilities[cap]) {
405
407
  return false;
406
408
  }
407
409
  }
@@ -965,7 +965,8 @@ export function validateComponent(component, componentType) {
965
965
  // Check required properties
966
966
  if (schema.required) {
967
967
  for (const prop of schema.required) {
968
- if (!(prop in comp)) {
968
+ // #1136: own properties only; an inherited `constructor` is not present.
969
+ if (!Object.hasOwn(comp, prop)) {
969
970
  errors.push({
970
971
  path: prop,
971
972
  message: `Missing required property: ${prop}`,
@@ -7,6 +7,7 @@
7
7
  * @see https://www.rfc-editor.org/rfc/rfc6901
8
8
  * @module adapters/a2ui/data/json-pointer-resolver
9
9
  */
10
+ import { setOwn } from '../../../shared/utils/safe-record.js';
10
11
  // ============================================================================
11
12
  // Types
12
13
  // ============================================================================
@@ -176,7 +177,9 @@ export function resolvePointerWithInfo(data, pointer) {
176
177
  else {
177
178
  // Object access
178
179
  const obj = current;
179
- if (!(segment in obj)) {
180
+ // #1136: own properties only; `/constructor` or `/__proto__` does not
181
+ // resolve to an inherited member.
182
+ if (!Object.hasOwn(obj, segment)) {
180
183
  return { found: false, value: undefined };
181
184
  }
182
185
  lastKey = segment;
@@ -239,9 +242,11 @@ export function setAtPointer(data, pointer, value) {
239
242
  }
240
243
  else {
241
244
  const obj = current;
242
- if (!(segment in obj)) {
245
+ // #1136: own properties only, and created as own data properties, so
246
+ // `/__proto__/x` cannot walk into and write Object.prototype.
247
+ if (!Object.hasOwn(obj, segment)) {
243
248
  // Auto-create intermediate objects
244
- obj[segment] = {};
249
+ setOwn(obj, segment, {});
245
250
  }
246
251
  current = obj[segment];
247
252
  }
@@ -269,7 +274,7 @@ export function setAtPointer(data, pointer, value) {
269
274
  }
270
275
  }
271
276
  else {
272
- current[lastSegment] = value;
277
+ setOwn(current, lastSegment, value);
273
278
  }
274
279
  }
275
280
  /**
@@ -304,7 +309,7 @@ export function deleteAtPointer(data, pointer) {
304
309
  }
305
310
  else {
306
311
  const obj = parent;
307
- if (!(lastSegment in obj)) {
312
+ if (!Object.hasOwn(obj, lastSegment)) {
308
313
  return false;
309
314
  }
310
315
  delete obj[lastSegment];
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { EventEmitter } from 'events';
10
10
  import { v4 as uuidv4 } from 'uuid';
11
+ import { getOwn, setOwn } from '../../../shared/utils/safe-record.js';
11
12
  /**
12
13
  * Default configuration
13
14
  */
@@ -473,7 +474,8 @@ export class AGUISyncService extends EventEmitter {
473
474
  const parts = extractor.split('.');
474
475
  let value = payload;
475
476
  for (const part of parts) {
476
- if (value && typeof value === 'object' && part in value) {
477
+ // #1136: own properties only.
478
+ if (value && typeof value === 'object' && Object.hasOwn(value, part)) {
477
479
  value = value[part];
478
480
  }
479
481
  else {
@@ -498,7 +500,7 @@ export class AGUISyncService extends EventEmitter {
498
500
  if (typeof current !== 'object') {
499
501
  return undefined;
500
502
  }
501
- current = current[part];
503
+ current = getOwn(current, part);
502
504
  }
503
505
  return current;
504
506
  }
@@ -512,14 +514,16 @@ export class AGUISyncService extends EventEmitter {
512
514
  }
513
515
  const parts = path.split('/').filter(Boolean);
514
516
  let current = obj;
517
+ // #1136: own properties only, created as own data properties, so
518
+ // `/__proto__/x` cannot walk into and write Object.prototype.
515
519
  for (let i = 0; i < parts.length - 1; i++) {
516
520
  const part = parts[i];
517
- if (!(part in current) || typeof current[part] !== 'object') {
518
- current[part] = {};
521
+ if (!Object.hasOwn(current, part) || typeof current[part] !== 'object' || current[part] === null) {
522
+ setOwn(current, part, {});
519
523
  }
520
524
  current = current[part];
521
525
  }
522
- current[parts[parts.length - 1]] = value;
526
+ setOwn(current, parts[parts.length - 1], value);
523
527
  }
524
528
  /**
525
529
  * Delete value at JSON Pointer path
@@ -532,7 +536,7 @@ export class AGUISyncService extends EventEmitter {
532
536
  let current = obj;
533
537
  for (let i = 0; i < parts.length - 1; i++) {
534
538
  const part = parts[i];
535
- if (!(part in current) || typeof current[part] !== 'object') {
539
+ if (!Object.hasOwn(current, part) || typeof current[part] !== 'object') {
536
540
  return;
537
541
  }
538
542
  current = current[part];
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { EventEmitter } from 'events';
10
10
  import { v4 as uuidv4 } from 'uuid';
11
+ import { getOwn, setOwn } from '../../../shared/utils/safe-record.js';
11
12
  import { createSurfaceGenerator, createComponentBuilder, } from '../renderer/index.js';
12
13
  /**
13
14
  * Default configuration
@@ -461,7 +462,8 @@ export class SurfaceStateBridge extends EventEmitter {
461
462
  if (typeof current !== 'object') {
462
463
  return undefined;
463
464
  }
464
- current = current[part];
465
+ // #1136: own properties only.
466
+ current = getOwn(current, part);
465
467
  }
466
468
  return current;
467
469
  }
@@ -475,14 +477,16 @@ export class SurfaceStateBridge extends EventEmitter {
475
477
  }
476
478
  const parts = path.split('/').filter(Boolean);
477
479
  let current = obj;
480
+ // #1136: own properties only, created as own data properties, so
481
+ // `/__proto__/x` cannot walk into and write Object.prototype.
478
482
  for (let i = 0; i < parts.length - 1; i++) {
479
483
  const part = parts[i];
480
- if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {
481
- current[part] = {};
484
+ if (!Object.hasOwn(current, part) || typeof current[part] !== 'object' || current[part] === null) {
485
+ setOwn(current, part, {});
482
486
  }
483
487
  current = current[part];
484
488
  }
485
- current[parts[parts.length - 1]] = value;
489
+ setOwn(current, parts[parts.length - 1], value);
486
490
  }
487
491
  /**
488
492
  * Delete value at JSON Pointer path
@@ -495,7 +499,7 @@ export class SurfaceStateBridge extends EventEmitter {
495
499
  let current = obj;
496
500
  for (let i = 0; i < parts.length - 1; i++) {
497
501
  const part = parts[i];
498
- if (!(part in current) || typeof current[part] !== 'object') {
502
+ if (!Object.hasOwn(current, part) || typeof current[part] !== 'object') {
499
503
  return;
500
504
  }
501
505
  current = current[part];