agentic-qe 3.15.8 → 3.15.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +434 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
  5. package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
  6. package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
  7. package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
  8. package/dist/adapters/ag-ui/json-patch.js +10 -6
  9. package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
  10. package/dist/audit/witness-chain.d.ts +1 -1
  11. package/dist/bridge/captured-experience-bridge.js +12 -13
  12. package/dist/cli/bundle.js +6 -6
  13. package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
  14. package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
  15. package/dist/cli/chunks/{agent-handler-2NQFHAWE.js → agent-handler-SVXSHEET.js} +2 -2
  16. package/dist/cli/chunks/{agent-memory-branch-457ECHHK.js → agent-memory-branch-WKQH36XL.js} +2 -2
  17. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
  18. package/dist/cli/chunks/{arena-JV3WSEHU.js → arena-EKOOFVST.js} +2 -2
  19. package/dist/cli/chunks/{arena-IYBQ3GPY.js → arena-OPS36NFZ.js} +4 -4
  20. package/dist/cli/chunks/{audit-5OS3T3K6.js → audit-AO5NDZRI.js} +3 -3
  21. package/dist/cli/chunks/base-GTB6POYE.js +2 -0
  22. package/dist/cli/chunks/{better-sqlite3-IQKBFVAO.js → better-sqlite3-TFLVEMMY.js} +2 -2
  23. package/dist/cli/chunks/{brain-handler-KA3SGAFM.js → brain-handler-ADBBJPYW.js} +3 -3
  24. package/dist/cli/chunks/{branch-enumerator-QZDU2VOQ.js → branch-enumerator-HGHUYYL5.js} +2 -2
  25. package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
  26. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
  27. package/dist/cli/chunks/{chunk-CRUQ6RXU.js → chunk-2SXBBUM6.js} +2 -2
  28. package/dist/cli/chunks/{chunk-4GUVVGJX.js → chunk-2T7RRL6G.js} +1 -1
  29. package/dist/cli/chunks/{chunk-OJWEZYLR.js → chunk-2XGVTYVX.js} +2 -2
  30. package/dist/cli/chunks/{chunk-LVHZK7GW.js → chunk-2ZI5FKSF.js} +2 -2
  31. package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
  32. package/dist/cli/chunks/{chunk-62T7U25U.js → chunk-37OWRCUN.js} +1 -1
  33. package/dist/cli/chunks/{chunk-UQLAN5TX.js → chunk-3P34JFQH.js} +5 -5
  34. package/dist/cli/chunks/{chunk-UDCYQLTD.js → chunk-3Y7SPD72.js} +2 -2
  35. package/dist/cli/chunks/{chunk-PPIM7B5G.js → chunk-4G63WT4F.js} +2 -2
  36. package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
  37. package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
  38. package/dist/cli/chunks/{chunk-4TZLZRZ4.js → chunk-5LPYV3TK.js} +1 -1
  39. package/dist/cli/chunks/{chunk-YUP3APSN.js → chunk-62OAY5KJ.js} +1 -1
  40. package/dist/cli/chunks/{chunk-VQRBBR27.js → chunk-6C3II5OM.js} +2 -2
  41. package/dist/cli/chunks/{chunk-RG42LDOB.js → chunk-6GP6W46M.js} +2 -2
  42. package/dist/cli/chunks/{chunk-KMZW2P3R.js → chunk-6KIL6CMD.js} +2 -2
  43. package/dist/cli/chunks/{chunk-UKKFZJME.js → chunk-6MVVSSID.js} +1 -1
  44. package/dist/cli/chunks/{chunk-VVK4ECVJ.js → chunk-6P7424AO.js} +2 -2
  45. package/dist/cli/chunks/{chunk-A2UGPKCS.js → chunk-6PX4OXQO.js} +2 -2
  46. package/dist/cli/chunks/{chunk-JLTGO5BB.js → chunk-6S3WJGUV.js} +2 -2
  47. package/dist/cli/chunks/{chunk-GSOK4M6V.js → chunk-6TB6YOCZ.js} +1 -1
  48. package/dist/cli/chunks/{chunk-VWRNG3UK.js → chunk-6X5DHU6Q.js} +1 -1
  49. package/dist/cli/chunks/{chunk-5YOO5QSE.js → chunk-6XCMKIZN.js} +1 -1
  50. package/dist/cli/chunks/{chunk-4C3RYBTT.js → chunk-7LFZ4CHM.js} +2 -2
  51. package/dist/cli/chunks/{chunk-O4RRVTXN.js → chunk-7OZVZIBE.js} +2 -2
  52. package/dist/cli/chunks/{chunk-2JCLACCS.js → chunk-7PJIR4ST.js} +2 -2
  53. package/dist/cli/chunks/{chunk-NWFBF3KT.js → chunk-7TB6FK4B.js} +1 -1
  54. package/dist/cli/chunks/{chunk-FJAO4UX2.js → chunk-7ZCDZHDB.js} +2 -2
  55. package/dist/cli/chunks/chunk-A55QKKT2.js +2 -0
  56. package/dist/cli/chunks/{chunk-ZOVAZTXE.js → chunk-ABFFWZPC.js} +273 -278
  57. package/dist/cli/chunks/{chunk-FWXNFPLS.js → chunk-ACWFKES2.js} +2 -2
  58. package/dist/cli/chunks/{chunk-IJSFZO7P.js → chunk-AH3ZD3NJ.js} +2 -2
  59. package/dist/cli/chunks/{chunk-7SLEUVPZ.js → chunk-AI4VYSFS.js} +2 -2
  60. package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
  61. package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
  62. package/dist/cli/chunks/{chunk-2GSAAUW3.js → chunk-B6LTH6YV.js} +2 -2
  63. package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
  64. package/dist/cli/chunks/{chunk-7XGM7Q2N.js → chunk-C522H7XR.js} +54 -33
  65. package/dist/cli/chunks/{chunk-7DHSHD5B.js → chunk-CESIR27V.js} +2 -2
  66. package/dist/cli/chunks/{chunk-V7VZSNDK.js → chunk-CFBEBXLO.js} +3 -3
  67. package/dist/cli/chunks/{chunk-NZATJ2C6.js → chunk-CMBLM26R.js} +2 -2
  68. package/dist/cli/chunks/{chunk-7CVMT64N.js → chunk-CZ2IF6MC.js} +1 -1
  69. package/dist/cli/chunks/{chunk-YVWMJZ6O.js → chunk-CZGOSJQ4.js} +2 -2
  70. package/dist/cli/chunks/{chunk-TMNEK7TP.js → chunk-D6DA2KFD.js} +2 -2
  71. package/dist/cli/chunks/{chunk-UTNKMPTC.js → chunk-DBMNJSBV.js} +1 -1
  72. package/dist/cli/chunks/{chunk-JFWQFB3S.js → chunk-DE4YJQJF.js} +2 -2
  73. package/dist/cli/chunks/{chunk-767SR7WH.js → chunk-DEF34AFL.js} +2 -2
  74. package/dist/cli/chunks/{chunk-ZWMFKZEQ.js → chunk-DKAC3E3B.js} +2 -2
  75. package/dist/cli/chunks/{chunk-CDLG3Q2O.js → chunk-DMFTELBS.js} +2 -2
  76. package/dist/cli/chunks/{chunk-P4UT4LBE.js → chunk-DNRWGATA.js} +10 -10
  77. package/dist/cli/chunks/{chunk-PUYQ6EKC.js → chunk-DT7SIJOA.js} +2 -2
  78. package/dist/cli/chunks/{chunk-ST7ASEJO.js → chunk-DURHK377.js} +69 -69
  79. package/dist/cli/chunks/{chunk-V4QJ3MMT.js → chunk-EAU5KDFO.js} +1 -1
  80. package/dist/cli/chunks/{chunk-BLZEOGQE.js → chunk-EDLFX4ZB.js} +2 -2
  81. package/dist/cli/chunks/{chunk-ZBI7PJFX.js → chunk-EN2QSKFF.js} +2 -2
  82. package/dist/cli/chunks/{chunk-U7CIY3YR.js → chunk-ERQKYIP7.js} +2 -2
  83. package/dist/cli/chunks/{chunk-X7ZQIFES.js → chunk-ESUO3GTJ.js} +2 -2
  84. package/dist/cli/chunks/{chunk-SHEVM5PF.js → chunk-EWFECZ2U.js} +2 -2
  85. package/dist/cli/chunks/{chunk-JWPYMRIX.js → chunk-FAUCT5KR.js} +3 -3
  86. package/dist/cli/chunks/{chunk-KMVFBYJO.js → chunk-FB6TI3BH.js} +2 -2
  87. package/dist/cli/chunks/{chunk-22DOS3PM.js → chunk-FBXTQNRH.js} +2 -2
  88. package/dist/cli/chunks/{chunk-W5A36V3Z.js → chunk-FESZBPUB.js} +2 -2
  89. package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
  90. package/dist/cli/chunks/{chunk-VWSGWYRB.js → chunk-FKL3R5JQ.js} +2 -2
  91. package/dist/cli/chunks/{chunk-2DPHFCMW.js → chunk-FPUDRSFJ.js} +2 -2
  92. package/dist/cli/chunks/{chunk-VKFVJCIH.js → chunk-FZOWULMH.js} +1 -1
  93. package/dist/cli/chunks/{chunk-HXCGV5UJ.js → chunk-G3CZCUPM.js} +2 -2
  94. package/dist/cli/chunks/{chunk-GENNJRNK.js → chunk-G5I6KGMW.js} +22 -22
  95. package/dist/cli/chunks/{chunk-J7FLNP5L.js → chunk-GHBNRMSJ.js} +2 -2
  96. package/dist/cli/chunks/{chunk-I77D65X5.js → chunk-GJHWY3ZX.js} +2 -2
  97. package/dist/cli/chunks/{chunk-DKFSCJEF.js → chunk-GJMLK5UT.js} +2 -2
  98. package/dist/cli/chunks/{chunk-52YRSWPS.js → chunk-GRCIBCJ2.js} +2 -2
  99. package/dist/cli/chunks/{chunk-NW7HTOSN.js → chunk-GWZZ7DAO.js} +2 -2
  100. package/dist/cli/chunks/{chunk-D4IBIMWI.js → chunk-GZLZCZ42.js} +2 -2
  101. package/dist/cli/chunks/{chunk-FEN2DHFM.js → chunk-H2PYU7MN.js} +1 -1
  102. package/dist/cli/chunks/{chunk-4I35ARWW.js → chunk-H32EPIR2.js} +1 -1
  103. package/dist/cli/chunks/{chunk-MUDBF2JC.js → chunk-H74Q7TJN.js} +1 -1
  104. package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
  105. package/dist/cli/chunks/{chunk-MMY52Y6R.js → chunk-I33O4BRQ.js} +2 -2
  106. package/dist/cli/chunks/{chunk-ZG7UKWBB.js → chunk-IKISCIGH.js} +2 -2
  107. package/dist/cli/chunks/{chunk-SFPGLUXS.js → chunk-IPJ7Q3AJ.js} +1 -1
  108. package/dist/cli/chunks/{chunk-2ZRNXEVI.js → chunk-IU2IV4NE.js} +1 -1
  109. package/dist/cli/chunks/{chunk-XOOBLZXR.js → chunk-JHIY4VCC.js} +2 -2
  110. package/dist/cli/chunks/{chunk-PJGQ2TKN.js → chunk-KG336OV3.js} +2 -2
  111. package/dist/cli/chunks/{chunk-YRH7KMTU.js → chunk-KI73QCR5.js} +2 -2
  112. package/dist/cli/chunks/{chunk-FAYXES7R.js → chunk-KNQ2ERFX.js} +2 -2
  113. package/dist/cli/chunks/{chunk-CQ3SBRDP.js → chunk-KOBVYY6H.js} +2 -2
  114. package/dist/cli/chunks/{chunk-3N627QRU.js → chunk-KSIWGGJI.js} +8 -8
  115. package/dist/cli/chunks/{chunk-2UN4JOTN.js → chunk-LMS3Y7JD.js} +2 -2
  116. package/dist/cli/chunks/{chunk-RSMPJWQH.js → chunk-LQEURY7C.js} +1 -1
  117. package/dist/cli/chunks/{chunk-NQDYOF35.js → chunk-LRZY4KS2.js} +2 -2
  118. package/dist/cli/chunks/{chunk-U3BWBP6B.js → chunk-M2QV7PT7.js} +2 -2
  119. package/dist/cli/chunks/{chunk-WLXGUQOZ.js → chunk-MA7JIQ6U.js} +2 -2
  120. package/dist/cli/chunks/{chunk-Y5ZBF7MA.js → chunk-MG27QY4D.js} +2 -2
  121. package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
  122. package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
  123. package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
  124. package/dist/cli/chunks/{chunk-DCYUHCPK.js → chunk-NGKNYIQZ.js} +1 -1
  125. package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
  126. package/dist/cli/chunks/{chunk-UTFMMZ57.js → chunk-NPPHWFA2.js} +3 -3
  127. package/dist/cli/chunks/chunk-NSHU347M.js +2 -0
  128. package/dist/cli/chunks/{chunk-NF63NHJH.js → chunk-NVYIZCSR.js} +2 -2
  129. package/dist/cli/chunks/{chunk-YNQPHRUZ.js → chunk-NW5JUCCG.js} +1 -1
  130. package/dist/cli/chunks/{chunk-G6CLO74Q.js → chunk-NZYLNXT6.js} +3 -3
  131. package/dist/cli/chunks/{chunk-R2NHGESM.js → chunk-OBAREPDC.js} +2 -2
  132. package/dist/cli/chunks/{chunk-X3HM7SV4.js → chunk-ODJNUMV3.js} +2 -2
  133. package/dist/cli/chunks/{chunk-OCLAMZJG.js → chunk-OEKP73MC.js} +2 -2
  134. package/dist/cli/chunks/{chunk-5MBNRTT5.js → chunk-OPFGRS5S.js} +2 -2
  135. package/dist/cli/chunks/{chunk-K5R3WUJP.js → chunk-OY2AHLSF.js} +1 -1
  136. package/dist/cli/chunks/{chunk-KJNUETCB.js → chunk-OY3NJNP2.js} +1 -1
  137. package/dist/cli/chunks/{chunk-P2EA62YS.js → chunk-PCEW6Q2C.js} +1 -1
  138. package/dist/cli/chunks/{chunk-HNGNRIZZ.js → chunk-PFG6VQ5Z.js} +2 -2
  139. package/dist/cli/chunks/{chunk-DN3AKAPY.js → chunk-PGYMKGOE.js} +2 -2
  140. package/dist/cli/chunks/{chunk-BEVWCF3Q.js → chunk-PPSAMXYN.js} +3 -3
  141. package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
  142. package/dist/cli/chunks/{chunk-6E7EOHMN.js → chunk-RPHY2DU6.js} +2 -2
  143. package/dist/cli/chunks/{chunk-7C6FMLQR.js → chunk-RWWOHCMG.js} +25 -20
  144. package/dist/cli/chunks/{chunk-5ONJ7AV6.js → chunk-S75EYIJG.js} +1 -1
  145. package/dist/cli/chunks/chunk-SKQUUE4F.js +5 -0
  146. package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
  147. package/dist/cli/chunks/{chunk-SWY6KGMF.js → chunk-SU5H66SD.js} +2 -2
  148. package/dist/cli/chunks/{chunk-ZOHS32SI.js → chunk-SY2IB442.js} +2 -2
  149. package/dist/cli/chunks/{chunk-MV4S3TEC.js → chunk-TBLI254A.js} +2 -2
  150. package/dist/cli/chunks/{chunk-5DZDLOY6.js → chunk-TNMBRDCA.js} +3 -3
  151. package/dist/cli/chunks/{chunk-FEPFXXI7.js → chunk-TYFZXDGZ.js} +2 -2
  152. package/dist/cli/chunks/{chunk-A6GCO6ZU.js → chunk-U4OICXV2.js} +2 -2
  153. package/dist/cli/chunks/{chunk-G77Q22EN.js → chunk-U53ZB4IX.js} +2 -2
  154. package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
  155. package/dist/cli/chunks/{chunk-6GIC2263.js → chunk-UCJMVXO4.js} +2 -2
  156. package/dist/cli/chunks/{chunk-DAFMHM64.js → chunk-UHTTW3IT.js} +2 -2
  157. package/dist/cli/chunks/{chunk-2QRGIEQV.js → chunk-V2M2XCR5.js} +1 -1
  158. package/dist/cli/chunks/{chunk-XZQVC3GD.js → chunk-V2RSNVMW.js} +1 -1
  159. package/dist/cli/chunks/{chunk-GGSTLKY5.js → chunk-V6JBOIMX.js} +1 -1
  160. package/dist/cli/chunks/{chunk-BTMEOZYY.js → chunk-VFKF2XO7.js} +1 -1
  161. package/dist/cli/chunks/{chunk-4C7KE2EL.js → chunk-VFSYMOAL.js} +2 -2
  162. package/dist/cli/chunks/{chunk-D4O3TJI7.js → chunk-VJQYDYAJ.js} +2 -2
  163. package/dist/cli/chunks/{chunk-PZ7FJ4UG.js → chunk-VKRTTFB6.js} +2 -2
  164. package/dist/cli/chunks/{chunk-CQ5G64EA.js → chunk-VWNFAW2M.js} +2 -2
  165. package/dist/cli/chunks/{chunk-DY37YMMQ.js → chunk-WBM6N6IM.js} +1 -1
  166. package/dist/cli/chunks/{chunk-K4N2MBCE.js → chunk-WDQ7IEZY.js} +2 -2
  167. package/dist/cli/chunks/{chunk-HI6OBDDY.js → chunk-WDVRE6GN.js} +2 -2
  168. package/dist/cli/chunks/{chunk-PICEGWGB.js → chunk-WQ4PYWSW.js} +1 -1
  169. package/dist/cli/chunks/{chunk-NHOMVBCI.js → chunk-WSF24I3D.js} +2 -2
  170. package/dist/cli/chunks/{chunk-LPSMVBB3.js → chunk-XBVUVFJK.js} +2 -2
  171. package/dist/cli/chunks/{chunk-J6LL25QJ.js → chunk-XEB3NLJR.js} +2 -2
  172. package/dist/cli/chunks/{chunk-SJMZZMHP.js → chunk-XFVTGAAJ.js} +2 -2
  173. package/dist/cli/chunks/{chunk-KVMKYUOE.js → chunk-XLZYRTNO.js} +2 -2
  174. package/dist/cli/chunks/chunk-XUZDBQ5X.js +6 -0
  175. package/dist/cli/chunks/{chunk-WAWKAYPY.js → chunk-Y76IAYQD.js} +1 -1
  176. package/dist/cli/chunks/{chunk-3LFLO2WK.js → chunk-YAKGBHO4.js} +2 -2
  177. package/dist/cli/chunks/{chunk-TC52M542.js → chunk-YBSBABOS.js} +2 -2
  178. package/dist/cli/chunks/{chunk-BQUIZ5QT.js → chunk-YCGP5VFP.js} +2 -2
  179. package/dist/cli/chunks/{chunk-T2TDTBFV.js → chunk-YDAQK5UF.js} +1 -1
  180. package/dist/cli/chunks/{chunk-LHRVSK44.js → chunk-YK3BVZY6.js} +2 -2
  181. package/dist/cli/chunks/{chunk-QFYUZYRA.js → chunk-YK7JN5N7.js} +4 -4
  182. package/dist/cli/chunks/{chunk-IMSRWNWF.js → chunk-YKMU4LBV.js} +1 -1
  183. package/dist/cli/chunks/{chunk-NLYUC63R.js → chunk-YYTGXD3R.js} +2 -2
  184. package/dist/cli/chunks/{chunk-OWBFVAEH.js → chunk-Z2O2YJAF.js} +2 -2
  185. package/dist/cli/chunks/{chunk-KITKQUBX.js → chunk-Z7IYW5U7.js} +1 -1
  186. package/dist/cli/chunks/{chunk-4NTLGGXO.js → chunk-ZG5666GJ.js} +1 -1
  187. package/dist/cli/chunks/{chunk-4YUBWU3E.js → chunk-ZXPY654C.js} +1 -1
  188. package/dist/cli/chunks/{ci-7NUCRGWO.js → ci-MSKMVH5X.js} +2 -2
  189. package/dist/cli/chunks/{ci-config-VQVECCFI.js → ci-config-7ODMNAUM.js} +2 -2
  190. package/dist/cli/chunks/{ci-output-P7GQ6TKF.js → ci-output-FXZ7ZZW3.js} +2 -2
  191. package/dist/cli/chunks/{circuit-breaker-5YP6N6HE.js → circuit-breaker-4VOUEPOX.js} +2 -2
  192. package/dist/cli/chunks/{claude-flow-setup-W5H7CMU6.js → claude-flow-setup-7D4SGLM4.js} +2 -2
  193. package/dist/cli/chunks/client-POSVREVS.js +2 -0
  194. package/dist/cli/chunks/{cline-installer-OYANSZ54.js → cline-installer-WRRT7BGQ.js} +2 -2
  195. package/dist/cli/chunks/{code-OMT4UEZI.js → code-ZDJRIL3S.js} +25 -24
  196. package/dist/cli/chunks/{code-index-extractor-M2JEWKNF.js → code-index-extractor-4S4SHM56.js} +2 -2
  197. package/dist/cli/chunks/{codex-installer-YBS6N5O3.js → codex-installer-YTRHNDWR.js} +2 -2
  198. package/dist/cli/chunks/{completions-U7GS5RG6.js → completions-6N64JUXJ.js} +2 -2
  199. package/dist/cli/chunks/{complexity-analyzer-QSXPIUIU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
  200. package/dist/cli/chunks/{continuedev-installer-W5TTT743.js → continuedev-installer-IIDR66LB.js} +2 -2
  201. package/dist/cli/chunks/{copilot-installer-KC2RT24C.js → copilot-installer-SVVFY3S2.js} +2 -2
  202. package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
  203. package/dist/cli/chunks/{cost-tracker-OQPVR6V4.js → cost-tracker-VGFS6IBX.js} +2 -2
  204. package/dist/cli/chunks/{coverage-TCO2A2NX.js → coverage-B7MCGNTE.js} +3 -3
  205. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
  206. package/dist/cli/chunks/{cursor-installer-MH7GWD4L.js → cursor-installer-UPETT57E.js} +2 -2
  207. package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
  208. package/dist/cli/chunks/{daemon-UJEARJZ2.js → daemon-CQFNZLXU.js} +7 -7
  209. package/dist/cli/chunks/{dag-attention-scheduler-F3SUJU5O.js → dag-attention-scheduler-PJVABHON.js} +2 -2
  210. package/dist/cli/chunks/{detect-5QTCRB32.js → detect-56SKAGWX.js} +2 -2
  211. package/dist/cli/chunks/{dist-node-XKZPHDBO.js → dist-node-UYTYUMLN.js} +2 -2
  212. package/dist/cli/chunks/{domain-handler-V3UEADKW.js → domain-handler-YOYLBYJE.js} +2 -2
  213. package/dist/cli/chunks/{domain-plugins-7PES4UHZ.js → domain-plugins-7TARX2XF.js} +2 -2
  214. package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
  215. package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
  216. package/dist/cli/chunks/{embed-and-insert-pattern-D2HWORHF.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
  217. package/dist/cli/chunks/{eval-UF2UBAUC.js → eval-GNB574IM.js} +2 -2
  218. package/dist/cli/chunks/{experience-capture-middleware-2OUCEHHM.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
  219. package/dist/cli/chunks/{fast-paths-KV5DKKHC.js → fast-paths-KTZ5SF54.js} +2 -2
  220. package/dist/cli/chunks/{feature-flags-MTW6NMR3.js → feature-flags-ITX5LQ57.js} +2 -2
  221. package/dist/cli/chunks/{feature-flags-6YWMTNO5.js → feature-flags-KFHSR5YF.js} +2 -2
  222. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
  223. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
  224. package/dist/cli/chunks/{gnn-wrapper-52V6ANOY.js → gnn-wrapper-RLFW3GSX.js} +2 -2
  225. package/dist/cli/chunks/{heartbeat-handler-X7NHNRC7.js → heartbeat-handler-EM2URCYZ.js} +4 -4
  226. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
  227. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
  228. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
  229. package/dist/cli/chunks/{hnsw-legacy-bridge-DZBE3KMK.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
  230. package/dist/cli/chunks/{hnswlib-node-2AWWUJAZ.js → hnswlib-node-CBP73QHY.js} +2 -2
  231. package/dist/cli/chunks/{hooks-XLPVROL3.js → hooks-IP7XE34Z.js} +34 -34
  232. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
  233. package/dist/cli/chunks/{hypergraph-engine-6TI7YP6P.js → hypergraph-engine-ONAYHU25.js} +2 -2
  234. package/dist/cli/chunks/{hypergraph-handler-DBIBBOXS.js → hypergraph-handler-VINJRAID.js} +3 -3
  235. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
  236. package/dist/cli/chunks/{init-guard-OSO6MIDD.js → init-guard-RYVV5R3Z.js} +2 -2
  237. package/dist/cli/chunks/{init-handler-7S7IHMUF.js → init-handler-MPRGWMOE.js} +6 -6
  238. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
  239. package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
  240. package/dist/cli/chunks/{kilocode-installer-2KBRFXMA.js → kilocode-installer-OPD7JBRL.js} +2 -2
  241. package/dist/cli/chunks/{kiro-installer-5VFR4OQZ.js → kiro-installer-M4OPUNK2.js} +2 -2
  242. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
  243. package/dist/cli/chunks/{learning-G5NHL3DV.js → learning-4UWTQLMF.js} +24 -24
  244. package/dist/cli/chunks/{llm-router-4EAPPMHS.js → llm-router-SQ56FF6Z.js} +4 -4
  245. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
  246. package/dist/cli/chunks/{load-UYMZPEY6.js → load-HPHKDGGL.js} +2 -2
  247. package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
  248. package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
  249. package/dist/cli/chunks/{memory-QL53YIHP.js → memory-PFQ3KPVJ.js} +5 -5
  250. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
  251. package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
  252. package/dist/cli/chunks/{multi-model-executor-PDDDXF2B.js → multi-model-executor-3VDRX6TZ.js} +2 -2
  253. package/dist/cli/chunks/{opencode-installer-75D2SKOT.js → opencode-installer-PJ576R63.js} +2 -2
  254. package/dist/cli/chunks/{orchestrator-3WIZBV4T.js → orchestrator-72QP4UU7.js} +64 -19
  255. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
  256. package/dist/cli/chunks/{pattern-usage-recorder-TEX2JGHA.js → pattern-usage-recorder-754YQW7C.js} +2 -2
  257. package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
  258. package/dist/cli/chunks/{platform-WPSKRJE7.js → platform-3E3DXLYB.js} +2 -2
  259. package/dist/cli/chunks/{plugin-UUFOVVMU.js → plugin-7FUQAKRE.js} +2 -2
  260. package/dist/cli/chunks/{prime-radiant-advanced-wasm-PDFSYWKZ.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
  261. package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
  262. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
  263. package/dist/cli/chunks/{protocol-handler-3VRYRIQB.js → protocol-handler-BQRYMUTG.js} +2 -2
  264. package/dist/cli/chunks/{prove-2NAUROGF.js → prove-H52QGC6B.js} +2 -2
  265. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
  266. package/dist/cli/chunks/{quality-ZIEI2WGA.js → quality-QO4XPAUM.js} +2 -2
  267. package/dist/cli/chunks/{quality-gate-KWJO4SWQ.js → quality-gate-FBKE5E6F.js} +3 -3
  268. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
  269. package/dist/cli/chunks/{real-embeddings-TSZ4UIAE.js → real-embeddings-RWGOVOXO.js} +2 -2
  270. package/dist/cli/chunks/{ref-validation-DWFFRETJ.js → ref-validation-LF76ZOBD.js} +2 -2
  271. package/dist/cli/chunks/{roocode-installer-XTZHLUBO.js → roocode-installer-3BYEBTQ7.js} +2 -2
  272. package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
  273. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
  274. package/dist/cli/chunks/{routing-handler-GG525TDM.js → routing-handler-DST7BVCU.js} +2 -2
  275. package/dist/cli/chunks/{ruvector-commands-QKRJDM7Z.js → ruvector-commands-XE32PGKC.js} +2 -2
  276. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
  277. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
  278. package/dist/cli/chunks/{rvf-migration-coordinator-FF52OS6Q.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
  279. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
  280. package/dist/cli/chunks/{rvf-store-integrity-M6DXTAZ4.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
  281. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
  282. package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
  283. package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
  284. package/dist/cli/chunks/{security-EHXSW22U.js → security-VSPNKCDS.js} +3 -3
  285. package/dist/cli/chunks/{shared-rvf-adapter-6EH7UVJL.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
  286. package/dist/cli/chunks/{shared-rvf-dual-writer-WML274E7.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
  287. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
  288. package/dist/cli/chunks/{standalone-memory-C7QKAXS4.js → standalone-memory-O4QUTK6L.js} +2 -2
  289. package/dist/cli/chunks/{status-handler-VLI7MRLM.js → status-handler-Z2BP6EOG.js} +2 -2
  290. package/dist/cli/chunks/{structural-health-3LPG6MQN.js → structural-health-R36WNLQG.js} +2 -2
  291. package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
  292. package/dist/cli/chunks/{sync-JFJEJBVK.js → sync-QF5Y3EMZ.js} +2 -2
  293. package/dist/cli/chunks/{task-handler-IED3K6E4.js → task-handler-43PYE75J.js} +13 -7
  294. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
  295. package/dist/cli/chunks/{test-GPKT3CKZ.js → test-UWA377D4.js} +16 -16
  296. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
  297. package/dist/cli/chunks/{test-scheduling-Z42XXZP6.js → test-scheduling-YQZPJRRN.js} +3 -3
  298. package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
  299. package/dist/cli/chunks/{token-usage-6Y2ERYIY.js → token-usage-DO6WLMXP.js} +2 -2
  300. package/dist/cli/chunks/{transformers-MB63T2XO.js → transformers-H5RGFKVO.js} +2 -2
  301. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
  302. package/dist/cli/chunks/{types-J4J6QV3I.js → types-PJS2FGPF.js} +2 -2
  303. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
  304. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
  305. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
  306. package/dist/cli/chunks/{upgrade-U4XU7LFM.js → upgrade-4IC4F6AB.js} +2 -2
  307. package/dist/cli/chunks/{validate-B57HA4YK.js → validate-DHUWW7PF.js} +2 -2
  308. package/dist/cli/chunks/{validate-swarm-UPPA4M6T.js → validate-swarm-OERQNOX5.js} +2 -2
  309. package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
  310. package/dist/cli/chunks/{web-tree-sitter-GDZMUKOZ.js → web-tree-sitter-TV7DMKES.js} +2 -2
  311. package/dist/cli/chunks/{windsurf-installer-VJRWCHXP.js → windsurf-installer-QZPWSH37.js} +2 -2
  312. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
  313. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
  314. package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
  315. package/dist/cli/chunks/{witness-chain-verifier-Z23FVABW.js → witness-chain-verifier-YXENHB42.js} +2 -2
  316. package/dist/cli/chunks/{witness-key-manager-745MJ7WO.js → witness-key-manager-HL26AGFO.js} +2 -2
  317. package/dist/cli/chunks/{workflow-T245QNQM.js → workflow-EOVVCN2E.js} +4 -4
  318. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
  319. package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
  320. package/dist/cli/commands/code.js +8 -0
  321. package/dist/cli/commands/daemon.js +8 -0
  322. package/dist/cli/commands/fleet.js +27 -15
  323. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  324. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  325. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  326. package/dist/cli/commands/learning.js +5 -3
  327. package/dist/cli/commands/ruvector-commands.js +2 -1
  328. package/dist/cli/commands/test.js +6 -0
  329. package/dist/cli/handlers/task-handler.js +21 -1
  330. package/dist/cli/utils/ci-output.d.ts +9 -0
  331. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  332. package/dist/cli/utils/fleet-operation.js +71 -0
  333. package/dist/cli/utils/fleet-result.d.ts +31 -0
  334. package/dist/cli/utils/fleet-result.js +124 -0
  335. package/dist/context/sources/git-source.js +6 -2
  336. package/dist/coordination/handlers/code-intelligence-handlers.js +74 -7
  337. package/dist/coordination/handlers/coverage-collection.js +9 -10
  338. package/dist/coordination/handlers/coverage-handlers.js +31 -4
  339. package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
  340. package/dist/coordination/handlers/coverage-runner.js +9 -2
  341. package/dist/coordination/handlers/coverage-target.d.ts +13 -3
  342. package/dist/coordination/handlers/coverage-target.js +224 -7
  343. package/dist/coordination/handlers/handler-types.d.ts +2 -0
  344. package/dist/coordination/handlers/requirements-handlers.js +16 -2
  345. package/dist/coordination/handlers/security-handlers.js +11 -1
  346. package/dist/coordination/handlers/test-execution-handlers.js +57 -12
  347. package/dist/coordination/index.d.ts +2 -2
  348. package/dist/coordination/index.js +1 -1
  349. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  350. package/dist/coordination/mincut/queen-integration.js +83 -6
  351. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +35 -0
  352. package/dist/coordination/protocols/learning-consolidation-archive.js +34 -0
  353. package/dist/coordination/protocols/learning-consolidation.d.ts +62 -3
  354. package/dist/coordination/protocols/learning-consolidation.js +187 -60
  355. package/dist/coordination/queen-coordinator.d.ts +13 -2
  356. package/dist/coordination/queen-coordinator.js +43 -8
  357. package/dist/coordination/queen-event-handlers.js +15 -1
  358. package/dist/coordination/queen-lifecycle.js +9 -0
  359. package/dist/coordination/queen-task-management.d.ts +18 -24
  360. package/dist/coordination/queen-task-management.js +94 -127
  361. package/dist/coordination/queen-task-queue.d.ts +41 -0
  362. package/dist/coordination/queen-task-queue.js +194 -0
  363. package/dist/coordination/queen-types.d.ts +11 -1
  364. package/dist/coordination/queen-types.js +8 -0
  365. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  366. package/dist/coordination/queen-work-stealing.js +7 -4
  367. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  368. package/dist/coordination/result-saver-adapters.js +57 -0
  369. package/dist/coordination/result-saver.d.ts +1 -1
  370. package/dist/coordination/result-saver.js +8 -5
  371. package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
  372. package/dist/coordination/task-dag/dag-algorithms.js +162 -0
  373. package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
  374. package/dist/coordination/task-dag/dag-obligations.js +83 -0
  375. package/dist/coordination/task-dag/dag.d.ts +69 -19
  376. package/dist/coordination/task-dag/dag.js +215 -269
  377. package/dist/coordination/task-dag/index.d.ts +12 -4
  378. package/dist/coordination/task-dag/index.js +11 -3
  379. package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
  380. package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
  381. package/dist/coordination/task-dag/scheduler.d.ts +19 -9
  382. package/dist/coordination/task-dag/scheduler.js +36 -12
  383. package/dist/coordination/task-dag/types.d.ts +160 -1
  384. package/dist/coordination/task-dag/types.js +2 -1
  385. package/dist/coordination/task-executability.d.ts +18 -0
  386. package/dist/coordination/task-executability.js +31 -0
  387. package/dist/coordination/task-executor.d.ts +1 -0
  388. package/dist/coordination/task-executor.js +5 -0
  389. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  390. package/dist/domains/code-intelligence/coordinator.js +35 -9
  391. package/dist/domains/code-intelligence/index-path-guard.d.ts +52 -0
  392. package/dist/domains/code-intelligence/index-path-guard.js +95 -0
  393. package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
  394. package/dist/domains/code-intelligence/plugin.js +5 -1
  395. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
  396. package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
  397. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  398. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  399. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  400. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  401. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  402. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  403. package/dist/domains/contract-testing/coordinator.js +3 -1
  404. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  405. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  406. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  407. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  408. package/dist/domains/defect-intelligence/plugin.js +11 -2
  409. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  410. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  411. package/dist/domains/defect-intelligence/services/defect-predictor.js +29 -12
  412. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  413. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  414. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  415. package/dist/domains/learning-optimization/active-patterns.d.ts +14 -14
  416. package/dist/domains/learning-optimization/active-patterns.js +17 -14
  417. package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
  418. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  419. package/dist/domains/learning-optimization/coordinator.js +52 -107
  420. package/dist/domains/learning-optimization/index.d.ts +1 -1
  421. package/dist/domains/learning-optimization/interfaces.d.ts +62 -6
  422. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  423. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  424. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  425. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  426. package/dist/domains/learning-optimization/plugin.js +11 -1
  427. package/dist/domains/learning-optimization/reward-source.d.ts +50 -0
  428. package/dist/domains/learning-optimization/reward-source.js +65 -0
  429. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +7 -5
  430. package/dist/domains/learning-optimization/services/learning-coordinator.js +98 -75
  431. package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
  432. package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
  433. package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
  434. package/dist/domains/security-compliance/plugin.js +17 -3
  435. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  436. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  437. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  438. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  439. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  440. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  441. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  442. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  443. package/dist/domains/test-execution/coordinator.d.ts +5 -0
  444. package/dist/domains/test-execution/coordinator.js +35 -20
  445. package/dist/domains/test-execution/interfaces.d.ts +41 -0
  446. package/dist/domains/test-execution/plugin.js +19 -4
  447. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  448. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  449. package/dist/domains/test-execution/services/runner-test-cases.d.ts +32 -0
  450. package/dist/domains/test-execution/services/runner-test-cases.js +87 -0
  451. package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
  452. package/dist/domains/test-execution/services/test-executor.js +31 -9
  453. package/dist/domains/test-generation/plugin.js +7 -2
  454. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  455. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  456. package/dist/hooks/cross-phase-hooks.js +2 -1
  457. package/dist/init/fleet-integration.js +2 -0
  458. package/dist/init/init-wizard-steps.js +2 -0
  459. package/dist/init/phases/06-code-intelligence.js +2 -0
  460. package/dist/init/phases/10-workers.js +51 -6
  461. package/dist/integrations/browser/agent-browser/client.js +37 -52
  462. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  463. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  464. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  465. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  466. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  467. package/dist/integrations/vibium/client.js +2 -2
  468. package/dist/integrations/vibium/runtime.d.ts +1 -1
  469. package/dist/integrations/vibium/runtime.js +14 -11
  470. package/dist/kernel/anti-drift-middleware.d.ts +44 -5
  471. package/dist/kernel/anti-drift-middleware.js +147 -11
  472. package/dist/kernel/interfaces.d.ts +5 -0
  473. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  474. package/dist/kernel/unified-memory-schemas.js +3 -2
  475. package/dist/kernel/unified-memory.js +25 -6
  476. package/dist/learning/dream/dream-commit.d.ts +65 -0
  477. package/dist/learning/dream/dream-commit.js +104 -0
  478. package/dist/learning/dream/dream-engine.d.ts +81 -31
  479. package/dist/learning/dream/dream-engine.js +225 -168
  480. package/dist/learning/dream/dream-insights-pruner.d.ts +24 -4
  481. package/dist/learning/dream/dream-insights-pruner.js +85 -11
  482. package/dist/learning/dream/index.d.ts +3 -2
  483. package/dist/learning/dream/index.js +3 -1
  484. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  485. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  486. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  487. package/dist/learning/dream/speculative-dreamer.js +64 -111
  488. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  489. package/dist/learning/dream/spreading-activation.js +15 -6
  490. package/dist/learning/experience-capture.d.ts +9 -0
  491. package/dist/learning/experience-capture.js +18 -4
  492. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  493. package/dist/learning/qe-reasoning-bank.js +22 -11
  494. package/dist/learning/skill-validation-learner.d.ts +2 -0
  495. package/dist/learning/skill-validation-learner.js +29 -21
  496. package/dist/learning/sqlite-persistence.d.ts +6 -0
  497. package/dist/learning/sqlite-persistence.js +16 -2
  498. package/dist/learning/usage-outcome.d.ts +68 -0
  499. package/dist/learning/usage-outcome.js +84 -0
  500. package/dist/mcp/background-workers.d.ts +13 -1
  501. package/dist/mcp/background-workers.js +23 -3
  502. package/dist/mcp/bundle.js +602 -551
  503. package/dist/mcp/handlers/core-handlers.js +11 -0
  504. package/dist/mcp/handlers/domain-handler-configs.d.ts +19 -0
  505. package/dist/mcp/handlers/domain-handler-configs.js +76 -30
  506. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  507. package/dist/mcp/handlers/handler-factory.js +37 -15
  508. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  509. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  510. package/dist/mcp/handlers/task-handlers.d.ts +3 -0
  511. package/dist/mcp/handlers/task-handlers.js +69 -6
  512. package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
  513. package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
  514. package/dist/mcp/metrics/metrics-collector.js +13 -26
  515. package/dist/mcp/protocol-server.js +10 -3
  516. package/dist/mcp/security/schema-validator.js +3 -2
  517. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  518. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  519. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  520. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  521. package/dist/mcp/tools/learning-optimization/optimize.d.ts +52 -5
  522. package/dist/mcp/tools/learning-optimization/optimize.js +164 -80
  523. package/dist/mcp/tools/quality-assessment/gate.js +12 -1
  524. package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
  525. package/dist/memory/crdt/lww-register.js +11 -1
  526. package/dist/migration/agent-compat.js +7 -5
  527. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  528. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  529. package/dist/routing/calibration/ema-calibrator.js +3 -1
  530. package/dist/shared/base-domain-plugin.d.ts +4 -0
  531. package/dist/shared/base-domain-plugin.js +6 -0
  532. package/dist/shared/git/git-analyzer.d.ts +49 -0
  533. package/dist/shared/git/git-analyzer.js +159 -319
  534. package/dist/shared/git/git-process.d.ts +22 -0
  535. package/dist/shared/git/git-process.js +37 -0
  536. package/dist/shared/git/index.d.ts +1 -0
  537. package/dist/shared/git/index.js +1 -0
  538. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  539. package/dist/shared/io/payload-path-guard.js +190 -0
  540. package/dist/shared/llm/cache.js +4 -1
  541. package/dist/shared/llm/router/agent-router-config.js +2 -1
  542. package/dist/shared/llm/translation/tool-translator.js +2 -1
  543. package/dist/shared/security/compliance-patterns.js +3 -1
  544. package/dist/shared/test-runner-args.d.ts +5 -0
  545. package/dist/shared/test-runner-args.js +6 -1
  546. package/dist/shared/test-runner-process.d.ts +32 -0
  547. package/dist/shared/test-runner-process.js +105 -0
  548. package/dist/shared/test-runner-verdict.d.ts +9 -1
  549. package/dist/shared/test-runner-verdict.js +15 -4
  550. package/dist/shared/types/index.d.ts +9 -0
  551. package/dist/shared/types/index.js +13 -0
  552. package/dist/shared/utils/namespaced-search.d.ts +56 -0
  553. package/dist/shared/utils/namespaced-search.js +71 -0
  554. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  555. package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
  556. package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
  557. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  558. package/dist/validation/gate-reexecute.js +7 -4
  559. package/dist/workers/daemon.d.ts +2 -0
  560. package/dist/workers/daemon.js +23 -6
  561. package/dist/workers/namespaced-keys.d.ts +4 -7
  562. package/dist/workers/namespaced-keys.js +4 -15
  563. package/dist/workers/quality-daemon/ci-monitor.js +9 -5
  564. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  565. package/dist/workers/worker-env.d.ts +16 -8
  566. package/dist/workers/worker-env.js +25 -12
  567. package/dist/workers/worker-manager.js +4 -0
  568. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  569. package/dist/workers/workers/defect-predictor.js +48 -49
  570. package/dist/workers/workers/learning-consolidation.d.ts +3 -1
  571. package/dist/workers/workers/learning-consolidation.js +22 -8
  572. package/dist/workflows/browser/workflow-loader.js +8 -5
  573. package/package.json +1 -1
  574. package/dist/cli/chunks/adapter-FC4EY447.js +0 -2
  575. package/dist/cli/chunks/agent-booster-wasm-W3V5P7LE.js +0 -2
  576. package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +0 -2
  577. package/dist/cli/chunks/base-2XML4WH7.js +0 -2
  578. package/dist/cli/chunks/browser-ZL7OLKJQ.js +0 -4
  579. package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +0 -2
  580. package/dist/cli/chunks/chunk-4GYFONJB.js +0 -4
  581. package/dist/cli/chunks/chunk-6CKTLVYV.js +0 -2
  582. package/dist/cli/chunks/chunk-7H3GNRNA.js +0 -4
  583. package/dist/cli/chunks/chunk-EUVSSIGR.js +0 -12
  584. package/dist/cli/chunks/chunk-I4U7YCXG.js +0 -180
  585. package/dist/cli/chunks/chunk-J7RCI25Q.js +0 -2
  586. package/dist/cli/chunks/chunk-KNHLOANK.js +0 -4
  587. package/dist/cli/chunks/chunk-KNQUHGNY.js +0 -2
  588. package/dist/cli/chunks/chunk-LZWBUVCK.js +0 -5
  589. package/dist/cli/chunks/chunk-PIEKGKW6.js +0 -12
  590. package/dist/cli/chunks/chunk-PWA6XBW4.js +0 -120
  591. package/dist/cli/chunks/chunk-X6VYQVUM.js +0 -2
  592. package/dist/cli/chunks/chunk-YTYS2XSY.js +0 -2
  593. package/dist/cli/chunks/chunk-Z3LDUPLQ.js +0 -6
  594. package/dist/cli/chunks/client-RFUSQRUZ.js +0 -2
  595. package/dist/cli/chunks/core-handlers-ZC7QB432.js +0 -2
  596. package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +0 -2
  597. package/dist/cli/chunks/daemon-JER6HE2J.js +0 -12
  598. package/dist/cli/chunks/domain-transfer-NF7UJW7B.js +0 -2
  599. package/dist/cli/chunks/dream-VALD726W.js +0 -2
  600. package/dist/cli/chunks/file-discovery-VL73ASNI.js +0 -2
  601. package/dist/cli/chunks/fleet-GJ66QFXK.js +0 -43
  602. package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +0 -2
  603. package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +0 -2
  604. package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +0 -2
  605. package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +0 -2
  606. package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +0 -2
  607. package/dist/cli/chunks/init-wizard-VH34J4TL.js +0 -2
  608. package/dist/cli/chunks/kernel-KJD24NO7.js +0 -2
  609. package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +0 -2
  610. package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +0 -2
  611. package/dist/cli/chunks/load-test-OTQ2JQ5F.js +0 -2
  612. package/dist/cli/chunks/mcp-NOTDZBW5.js +0 -2
  613. package/dist/cli/chunks/memory-backend-4QSNRRV6.js +0 -2
  614. package/dist/cli/chunks/memory-handlers-YFFYRSM6.js +0 -2
  615. package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +0 -2
  616. package/dist/cli/chunks/pipeline-7ATPA6LU.js +0 -19
  617. package/dist/cli/chunks/project-root-SRTA6TBL.js +0 -2
  618. package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +0 -2
  619. package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +0 -2
  620. package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +0 -2
  621. package/dist/cli/chunks/router-AUD4GATI.js +0 -2
  622. package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +0 -2
  623. package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +0 -2
  624. package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +0 -2
  625. package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +0 -2
  626. package/dist/cli/chunks/safe-db-Q6JUKG2A.js +0 -2
  627. package/dist/cli/chunks/schedule-44OSMGE5.js +0 -2
  628. package/dist/cli/chunks/scheduler-V3HO2QQT.js +0 -2
  629. package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +0 -2
  630. package/dist/cli/chunks/sync-4IMMQEPT.js +0 -2
  631. package/dist/cli/chunks/task-handlers-FH6DNTHW.js +0 -9
  632. package/dist/cli/chunks/token-bootstrap-HMM3AHXM.js +0 -2
  633. package/dist/cli/chunks/tree-sitter-wasm-parser-56GDQCMR.js +0 -2
  634. package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +0 -2
  635. package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +0 -2
  636. package/dist/cli/chunks/unified-persistence-72OCJJKK.js +0 -2
  637. package/dist/cli/chunks/visual-security-7F5UV23J.js +0 -2
  638. package/dist/cli/chunks/witness-chain-KZ57QUFE.js +0 -2
  639. package/dist/cli/chunks/witness-chain-LFASSMZK.js +0 -2
  640. package/dist/cli/chunks/witness-chain-repair-TPHN4DXN.js +0 -2
  641. package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +0 -2
  642. package/dist/cli/chunks/wrappers-WCAYIQUX.js +0 -2
@@ -940,7 +940,7 @@
940
940
  },
941
941
  "metadata": {
942
942
  "generatedBy": "Agentic QE Fleet",
943
- "fleetVersion": "3.15.8",
943
+ "fleetVersion": "3.15.10",
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,440 @@ 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.10] - 2026-10-19
9
+
10
+ Files named in a request are now read only when they are inside your
11
+ project, and secrets in test failures are redacted everywhere AQE returns
12
+ or stores them. Advertised `aqe fleet run` and `task_orchestrate` commands
13
+ run real handlers and judge what they returned. A dream can no longer lose
14
+ an acknowledged memory write, git and other slow tools no longer freeze
15
+ the MCP server, and the learning success rate counts measured outcomes
16
+ only. Every change was reviewed adversarially before merge.
17
+
18
+ ### Security
19
+
20
+ - **Paths in a request are read only inside the project** ([#1126],
21
+ [#1162], [#1125], [#1144]): before, a caller could ask AQE over MCP to
22
+ read any file on the machine, and one request for `/dev/zero` crashed the
23
+ server. Every handler that reads a file or folder named in a request
24
+ (`generate-tests`, `execute-tests`, `predict-defects`, `sast-scan`,
25
+ `security_scan_comprehensive`, `coverage_analyze_sublinear`,
26
+ `code_index`, `contract_validate` and others) now applies one shared
27
+ check, on every entry point: MCP tools, `task_submit`,
28
+ `task_orchestrate` and `aqe task submit`.
29
+ - The real location, with every symlink followed, must be inside the
30
+ project root. A symlink that points out, and `src/link/../x` when
31
+ `src/link` points out, are refused.
32
+ - Only regular files are read, at most 2 MB each where a file is read
33
+ whole. Devices, FIFOs and (except where a folder is expected)
34
+ directories are refused before anything is opened.
35
+ - A path outside the project is refused without touching the
36
+ filesystem, so the error does not reveal whether the file exists.
37
+ - The refusal is a caller error: it is not retried and does not trip the
38
+ domain circuit breaker.
39
+ - **Secrets in test failures are redacted** ([#1122], [#1139]): a
40
+ connection string, AWS key or bearer token in a failing test's message
41
+ used to come back verbatim from `test_execute_parallel` and
42
+ `aqe test execute`, and was saved under `.agentic-qe/results/`, in
43
+ session logs and in `memory.db` (test runs, experiences, retry and flaky
44
+ history). All of these copies are now redacted, before any length cap,
45
+ so a secret cut in half cannot survive. The `error` of every MCP domain
46
+ tool is redacted as a backstop.
47
+ - **Lookups keyed by caller data read own properties only** ([#1136],
48
+ [#1156], [#1118], [#1132]):
49
+ - `${constructor}` or `{{toString}}` in a pipeline YAML, browser
50
+ workflow, workflow condition or cross-phase hook no longer expands to
51
+ native function source. It stays literal.
52
+ - JSON Pointer and JSON Patch paths such as `/__proto__/x` in the A2UI
53
+ and AG-UI adapters can no longer write to `Object.prototype`.
54
+ - Required-property checks in contract, enterprise-integration and MCP
55
+ schema validation no longer count an inherited `constructor` as
56
+ present.
57
+ - Name tables (agent names, gate rules, routing categories,
58
+ `aqe ruvector flags --profile`, faker paths and recovery playbook
59
+ services) no longer match inherited members. Thanks to @rudycelekli
60
+ for the recovery playbook fix.
61
+ - **DAST scans fail when the target cannot be reached** ([#1092]): an
62
+ initial 401/403 now fails with `DAST_AUTHENTICATION_FAILED` and a 5xx
63
+ with `DAST_TARGET_UNAVAILABLE`. Before, an unreachable target could
64
+ produce a completed scan. Failed follow-up probes fail the scan, and a
65
+ failed scan is not stored as completed. Thanks to @rudycelekli.
66
+
67
+ ### Fixed
68
+
69
+ - **Dreams no longer put memory writes at risk** ([#1060], [#1160]): a
70
+ dream does its work in memory and writes its results in one short
71
+ transaction at the end. An acknowledged `memory_store` made during a
72
+ dream is kept however the dream ends: it finishes, is cancelled, the
73
+ engine closes, stdin closes or the process is killed. `cancelDream()`,
74
+ `close()` and shutdown stop a dream at once and record it `interrupted`.
75
+ A second dream request while one runs is refused instead of interrupting
76
+ it. A cycle left `running` by a dead process is marked `interrupted`
77
+ (never deleted) after 11 minutes. Thanks to @pacphi for the report and
78
+ reproduction in [#1060].
79
+ - **Slow child processes no longer freeze the MCP server** ([#1115],
80
+ [#1148]): git (defect prediction, task routing, the quality daemon's
81
+ watcher), `cloc`/`tokei` and test-runner listings for `code_index`, and
82
+ `npx agent-browser` for the browser tools now run asynchronously with
83
+ timeouts. A timeout stops the child's whole process group, so nothing is
84
+ left running. With a git that took 1 s per call, `fleet_status` used to
85
+ wait up to 12 s; now it answers in well under a second.
86
+ - **Learning's success rate counts measured outcomes only** ([#1129],
87
+ [#1121], [#1142]): `aqe learning stats` said 100% after test runs with a
88
+ failing test. Now only a test run is a measured outcome (it passes when
89
+ every test passed, and both results are recorded), and the rate counts
90
+ runs, not rows. Completed calls, errors, hook-reported `--success` and
91
+ session-consolidation aggregates count as uses, not verdicts. Existing
92
+ rows are classified on read; nothing is deleted or rewritten. The
93
+ learning dashboard no longer shows an invented `0.5` learning rate or a
94
+ `100%` transfer rate, and patterns stored before 3.15.9 are kept but left
95
+ out of stats.
96
+ - **Learning consolidation cannot lose patterns** ([#1106], [#1143]): a
97
+ merge now reads back every archived source and the merged pattern before
98
+ removing the sources. If any step fails, nothing is merged. A failed
99
+ domain or merge is reported as `status: 'partial'` with an `errors` list
100
+ instead of success. A dry run now predicts the same trims as a real run,
101
+ and a key scan that never ends stops with an error.
102
+ - **Advertised commands run real handlers** ([#1125], [#1144]):
103
+ `aqe fleet run scan` runs a SAST scan on the target's JS/TS files,
104
+ `analyze` uses the coverage report that already exists for the target,
105
+ and `test` generates tests for the target's sources. `task_orchestrate`
106
+ routes `scan-security` to `sast-scan` and `assess-quality` to
107
+ `analyze-quality` when you pass `filePaths`. Requests that lack the
108
+ input a handler needs are refused with the tool to use instead; nothing
109
+ is estimated. `task_submit` with `sast-scan` now accepts plain path
110
+ strings.
111
+ - **Index tasks run, or are refused up front** ([#1086], [#1134],
112
+ [#1159]): an inferred `index-code` task now runs the code-intelligence
113
+ handler with the paths it was given. Thanks to @rudycelekli.
114
+ - **Queen slots are always handed on** ([#1127], [#1138], [#1140],
115
+ [#1152]): a slot freed while the queue drains goes to the next queued
116
+ task. Work stealing moves a task only to a domain that can run it and
117
+ never exceeds `maxConcurrentTasks`. A failure at dispatch publishes
118
+ `QueenTaskFailed` once and frees its slot once; a plugin that throws no
119
+ longer leaves its task `running`.
120
+ - **Retries rerun tests inside `describe` blocks** ([#1141], [#1151]): the
121
+ retry filter only ever matched top-level tests. It now matches the full
122
+ name for Vitest, Jest and Mocha. A retry that selects no test is
123
+ reported as `unmatched` instead of counting as an attempt.
124
+ - **Retry results are reported** ([#1130], [#1163]):
125
+ `test_execute_parallel` returns `retryStats` (retries run, now passing,
126
+ still failing, per test) and `aqe test execute` prints a `Retries:` line.
127
+ - **`fleet_status` stays healthy during a test run** ([#1130], [#1163]):
128
+ the agent spawned for one task no longer marks the fleet `degraded`
129
+ while it runs or after it finishes. Real topology problems and failed
130
+ agents still degrade the status. `fleet_health({ detailed: true })`
131
+ shows the raw MinCut reading.
132
+ - **Chaos wording is not run as tests** ([#1130], [#1163]): "Run chaos
133
+ resilience testing with fault injection" now gets chaos guidance from
134
+ `task_orchestrate` instead of being submitted as `execute-tests`.
135
+ - **Dream archive and worker status are reported truthfully** ([#1116],
136
+ [#1155]): a stale insight with a NULL id no longer makes every retention
137
+ sweep fail. The generated `start-daemon.cjs` honours
138
+ `AQE_WORKERS_ENABLED` (environment or Claude settings files) and says
139
+ "started" only when the server is still running. MCP startup reports
140
+ workers as `starting` until they have started.
141
+ - **Concurrent startups no longer fail with "database is locked" during a
142
+ schema migration** ([#1116], [#1155]): a migration takes the write lock
143
+ up front and waits for it.
144
+ - **Defect predictions reach the background worker** ([#1088]): public
145
+ predictions are recorded in the shape the worker reads, history is
146
+ bounded to the newest 32 runs, and the newest result is no longer hidden
147
+ behind an old scan cap. Static scores are labelled as estimates. Thanks
148
+ to @rudycelekli.
149
+
150
+ ### Changed
151
+
152
+ - **`task_orchestrate` and fleet responses:** `type` is now the handler
153
+ type that actually ran (for example `sast-scan`). The type inferred from
154
+ the description moves to the new field `inferredType`. Clients that read
155
+ `type` as the inferred type should read `inferredType`.
156
+ - **`aqe fleet run` shows results and a verdict.** It prints the findings,
157
+ coverage or generated tests, and exits 1 with `Verdict: FAILED (…)` on a
158
+ critical or high finding, incomplete scan evidence, a failed quality
159
+ gate, coverage below 80% or an unreadable result. The count line now
160
+ says `Completed: N` instead of `Successful: N`.
161
+ - **Payload paths are confined to the project root.** After `aqe init` in
162
+ a monorepo package, a sibling package such as `../b/tests/x.test.ts` is
163
+ refused. Set `AQE_PROJECT_ROOT=<repo root>` to let packages reach each
164
+ other.
165
+ - **Interpolation no longer resolves inherited values.** `${constructor}`,
166
+ `${toString}` and similar placeholders stay literal unless you define
167
+ them.
168
+ - **`enableBranching` is a deprecated no-op.** The option is still
169
+ accepted and logs a warning. `RVCOWBranchManager` is deprecated.
170
+ - **Index tasks without `paths` are refused at submit.** `task_submit` and
171
+ `aqe task submit` with `index` or `index-code` need a non-empty `paths`
172
+ list, and `task_orchestrate` needs `filePaths`. Use `code_index` or
173
+ `aqe code index` to index a directory.
174
+ - **`task_orchestrate` refuses `optimize-learning` from free text**,
175
+ because it overwrites the stored learned strategies. Use `task_submit`
176
+ with type `optimize-strategies`. `run-chaos`, `validate-contracts`,
177
+ `validate-requirements` and `test-accessibility` are refused with the
178
+ tool to use instead.
179
+ - **Schema v14.** The `dream_insights_archive` table moves into the
180
+ versioned schema with an additive, idempotent migration. 3.15.8 and
181
+ 3.15.9 still open a migrated database.
182
+ - **Learning success rates count measured outcomes only.** Projects that
183
+ only have hook-reported outcomes now show "insufficient evidence"
184
+ instead of 100%. `aqe learning stats --json` reports `measuredOutcomes`
185
+ and `unmeasuredOutcomes`, and `patternSuccessRate` can be `null`.
186
+ - **Git timeouts are reported as unavailable, never as 0.** A prediction
187
+ whose git history timed out carries a `warnings` entry, and its metrics
188
+ are not cached.
189
+
190
+ ### Known issues
191
+
192
+ - `task_orchestrate` still fails on an install without an embedder (the
193
+ optional `@huggingface/transformers` package or `AQE_EMBEDDER_ENDPOINT`),
194
+ so its new routing is only reachable with one configured ([#1022]).
195
+ - Payload path checks and the read that follows are not atomic, so a path
196
+ swapped between them is not caught yet ([#1161]).
197
+ - Some direct `map[userKey]` lookups on plain objects remain to be audited
198
+ ([#1157]).
199
+ - `aqe fleet run analyze` and `aqe coverage` can pass from a report that
200
+ covers only part of the target ([#1154]).
201
+ - The daemon spawned by `start-daemon.cjs` exits on stdin EOF, so it never
202
+ stays up; it now says so instead of reporting "started" ([#1158]).
203
+ - A rare "database is locked" on concurrent first open of a non-WAL
204
+ database ([#1164]).
205
+ - Git timeout follow-ups: per-path deadlines and the watcher baseline
206
+ ([#1165]).
207
+ - Queen follow-ups: a late `onComplete` can settle twice, and work stealing
208
+ rarely runs under the slot cap ([#1153]).
209
+ - Learning outcome follow-ups: failures can still mint patterns, and
210
+ routing still uses completion-based success ([#1147]).
211
+ - Pattern consolidation follow-ups: id-only read-back and no
212
+ compare-and-delete ([#1149]).
213
+
214
+ [#1022]: https://github.com/proffesor-for-testing/agentic-qe/issues/1022
215
+ [#1060]: https://github.com/proffesor-for-testing/agentic-qe/issues/1060
216
+ [#1086]: https://github.com/proffesor-for-testing/agentic-qe/pull/1086
217
+ [#1088]: https://github.com/proffesor-for-testing/agentic-qe/pull/1088
218
+ [#1092]: https://github.com/proffesor-for-testing/agentic-qe/pull/1092
219
+ [#1106]: https://github.com/proffesor-for-testing/agentic-qe/issues/1106
220
+ [#1115]: https://github.com/proffesor-for-testing/agentic-qe/issues/1115
221
+ [#1116]: https://github.com/proffesor-for-testing/agentic-qe/issues/1116
222
+ [#1118]: https://github.com/proffesor-for-testing/agentic-qe/issues/1118
223
+ [#1121]: https://github.com/proffesor-for-testing/agentic-qe/issues/1121
224
+ [#1122]: https://github.com/proffesor-for-testing/agentic-qe/issues/1122
225
+ [#1125]: https://github.com/proffesor-for-testing/agentic-qe/issues/1125
226
+ [#1126]: https://github.com/proffesor-for-testing/agentic-qe/issues/1126
227
+ [#1127]: https://github.com/proffesor-for-testing/agentic-qe/issues/1127
228
+ [#1129]: https://github.com/proffesor-for-testing/agentic-qe/issues/1129
229
+ [#1130]: https://github.com/proffesor-for-testing/agentic-qe/issues/1130
230
+ [#1132]: https://github.com/proffesor-for-testing/agentic-qe/pull/1132
231
+ [#1134]: https://github.com/proffesor-for-testing/agentic-qe/issues/1134
232
+ [#1136]: https://github.com/proffesor-for-testing/agentic-qe/issues/1136
233
+ [#1138]: https://github.com/proffesor-for-testing/agentic-qe/pull/1138
234
+ [#1139]: https://github.com/proffesor-for-testing/agentic-qe/pull/1139
235
+ [#1140]: https://github.com/proffesor-for-testing/agentic-qe/issues/1140
236
+ [#1141]: https://github.com/proffesor-for-testing/agentic-qe/issues/1141
237
+ [#1142]: https://github.com/proffesor-for-testing/agentic-qe/pull/1142
238
+ [#1143]: https://github.com/proffesor-for-testing/agentic-qe/pull/1143
239
+ [#1144]: https://github.com/proffesor-for-testing/agentic-qe/pull/1144
240
+ [#1147]: https://github.com/proffesor-for-testing/agentic-qe/issues/1147
241
+ [#1148]: https://github.com/proffesor-for-testing/agentic-qe/pull/1148
242
+ [#1149]: https://github.com/proffesor-for-testing/agentic-qe/issues/1149
243
+ [#1151]: https://github.com/proffesor-for-testing/agentic-qe/pull/1151
244
+ [#1152]: https://github.com/proffesor-for-testing/agentic-qe/pull/1152
245
+ [#1153]: https://github.com/proffesor-for-testing/agentic-qe/issues/1153
246
+ [#1154]: https://github.com/proffesor-for-testing/agentic-qe/issues/1154
247
+ [#1155]: https://github.com/proffesor-for-testing/agentic-qe/pull/1155
248
+ [#1156]: https://github.com/proffesor-for-testing/agentic-qe/pull/1156
249
+ [#1157]: https://github.com/proffesor-for-testing/agentic-qe/issues/1157
250
+ [#1158]: https://github.com/proffesor-for-testing/agentic-qe/issues/1158
251
+ [#1159]: https://github.com/proffesor-for-testing/agentic-qe/pull/1159
252
+ [#1160]: https://github.com/proffesor-for-testing/agentic-qe/pull/1160
253
+ [#1161]: https://github.com/proffesor-for-testing/agentic-qe/issues/1161
254
+ [#1162]: https://github.com/proffesor-for-testing/agentic-qe/pull/1162
255
+ [#1163]: https://github.com/proffesor-for-testing/agentic-qe/pull/1163
256
+ [#1164]: https://github.com/proffesor-for-testing/agentic-qe/issues/1164
257
+ [#1165]: https://github.com/proffesor-for-testing/agentic-qe/issues/1165
258
+
259
+ ## [3.15.9] - 2026-10-17
260
+
261
+ Tasks no longer get stuck in `running` and quietly use up Queen slots.
262
+ `test_execute_parallel` and the learning tools now report only what was
263
+ actually measured, without made-up efficiency numbers, sample data or
264
+ success rates. Test runs no longer freeze the MCP server, and code indexing
265
+ stays inside your project. Every change was reviewed adversarially before
266
+ merge.
267
+
268
+ ### Fixed
269
+
270
+ - **Tasks no longer get stuck and use up Queen slots** ([#1070], [#1075],
271
+ [#1077], [#1081], [#1076], [#1079], [#1082], [#1085], [#1107]): several
272
+ paths left a task `running` forever, each one holding a concurrency slot.
273
+ After 50 such tasks, every new submission was queued and never ran.
274
+ - `quality_assess` gives its slot back. The anti-drift middleware was
275
+ silently dropping its `TaskCompleted` event.
276
+ - `task_submit`, `aqe task submit`, `task_orchestrate` and `aqe fleet run`
277
+ reject a task type that no domain plugin runs. The error names the
278
+ domain and the types it supports.
279
+ - As a backstop, the Queen fails any task it owns that has no handler,
280
+ with the reason, and frees the slot.
281
+ - The anti-drift middleware never drops task lifecycle events. When it
282
+ drops any other event, it logs a rate-limited warning on stderr with the
283
+ event type and source, never the payload. If the embedding service fails
284
+ part-way, events are still delivered (marked unverified) instead of
285
+ `publish()` failing.
286
+ - **Test runs no longer freeze the MCP server** ([#1074], [#1114]): the
287
+ `execute-tests` runner, `coverage_analyze_sublinear` on a Rust crate
288
+ (`cargo llvm-cov`, up to 300 s) and `advisor_consult` (up to 60 s) used
289
+ blocking child-process calls that froze every other MCP request until they
290
+ finished. They now run asynchronously, with the same exit codes, output,
291
+ timeouts and output limits as before.
292
+ - **`test_execute_parallel` runs your suite once and reports real numbers**
293
+ ([#1059], [#1065], [#1110], [#1113]): one request no longer starts two
294
+ test runs. The 0.85 efficiency, 0.9 load balance and made-up `test_case_N`
295
+ durations are gone. Per-test results come from the Vitest or Jest JSON
296
+ report. Anything that was not measured is left out and listed in
297
+ `unmeasured`, with a reason in `unmeasuredReasons`. Each run is stored in
298
+ learning once instead of twice.
299
+ - **Learning reports only what it measured** ([#1093], [#1099], [#1105],
300
+ [#1109], [#1120]):
301
+ - `qe/learning/optimize` optimizes the experiences that were actually
302
+ recorded. Before, it generated random samples.
303
+ - A/B tests no longer pad with random samples, the default strategy no
304
+ longer claims a 0.7 outcome, and optimizer confidence is scored on
305
+ held-out records.
306
+ - Experiences with a fixed reward (generated tests, defect predictions,
307
+ impact analyses and coverage gaps) are still recorded, now tagged
308
+ `rewardSource: 'assigned'`. They no longer count toward success rates,
309
+ pattern confidence, domain rankings, milestones or anomaly baselines.
310
+ - With too little measured data, the tools say `insufficient-evidence`
311
+ instead of reporting 100%.
312
+ - **Learning data is read from where it is written** ([#1071], [#1084],
313
+ [#1089], [#1103]): export, import, consolidation, transfer and shared
314
+ knowledge lookups use the `learning-optimization` namespace that learning
315
+ writes to. Export now returns every active pattern. Before, it stopped at
316
+ about 5,000. An import no longer overwrites newer knowledge or a better
317
+ strategy with stale data. Thanks to @rudycelekli.
318
+ - **Code indexing stays inside your project** ([#1096], [#1123]): a symlink
319
+ inside the project that points outside it is skipped and reported instead
320
+ of read. Missing files and directories are no longer counted as indexed.
321
+ A request that indexes nothing now fails: the MCP task is marked failed
322
+ and the CLI exits with code 1.
323
+ - **Dream insights are archived, not deleted** ([#1066], [#1112]): the
324
+ retention sweep moves stale unapplied insights into a new
325
+ `dream_insights_archive` table, in one transaction that deletes only rows
326
+ whose copy is verified. `AQE_DREAM_INSIGHTS_RETENTION_DAYS=false`, `no`,
327
+ `disabled`, `none` and `never` now turn the sweep off. An unreadable value
328
+ also leaves it off, with a warning. Before, it fell back to deleting at
329
+ 30 days.
330
+ - **Worker settings** ([#1066], [#1112]): worker ids in
331
+ `AQE_DISABLED_WORKERS` are no longer case-sensitive. `aqe daemon start`
332
+ and the generated `start-daemon.cjs` respect `AQE_WORKERS_ENABLED`. The
333
+ QualityDaemon no longer waits about 150 s for every worker's first run
334
+ before it starts.
335
+ - **Invalid task priorities are rejected** ([#1108], [#1111]):
336
+ `task_submit` and `aqe task submit` accept only `p0` to `p3`, with the
337
+ same error on both paths. Before, any string was accepted.
338
+ - **Test-execution experiences no longer show up as fake test runs**
339
+ ([#1095], [#1100]).
340
+ - **Deleting an unfinished task no longer unblocks the tasks that depend on
341
+ it** ([#1069], [#1098]): this affects library users of the `TaskDAG` and
342
+ `DAGScheduler` API. Every dependency now has a typed status. Each change
343
+ of status writes an audit receipt, and an unfinished prerequisite can only
344
+ be bypassed by an explicit, attributed waiver.
345
+ - **Coverage for monorepo packages** ([#1036]): a package with no test
346
+ runner config of its own uses the workspace root's config, so coverage is
347
+ measured instead of estimated. Thanks to @rudycelekli.
348
+ - **CRDT registers** ([#1062], [#1063]): a register created by a read can no
349
+ longer erase a negative-timestamp write on merge. A second local write in
350
+ the same millisecond is no longer dropped. Thanks to @rudycelekli.
351
+ - **Names like `constructor` or `__proto__`** ([#1064], [#1083], [#1104]):
352
+ CI workflows, claim agents, infra services, model ids and task domains
353
+ with these names no longer crash or read inherited values. Thanks to
354
+ @rudycelekli.
355
+ - **Empty LLM completions are no longer cached** ([#1090]), so a provider
356
+ refusal does not block retries of the same prompt until the cache entry
357
+ expires. Thanks to @rudycelekli.
358
+
359
+ ### Changed
360
+
361
+ - **`task_orchestrate` and `aqe fleet run scan`** now return an error for
362
+ `scan-security`, `run-chaos` and `assess-quality`, which no domain plugin
363
+ runs. Before, these tasks were accepted and never finished. Routing them
364
+ to real handlers is tracked in [#1124].
365
+ - **`test_execute_parallel` output**: fields with no measurement behind them,
366
+ such as `workerStats.efficiency`, `workerStats.loadBalance`, `retryStats`
367
+ and per-test `results`, are left out of the response and named in
368
+ `unmeasured`. Code that read those fields unconditionally needs to handle
369
+ their absence.
370
+ - **Learning totals can drop.** Success rates, confidence, rankings and
371
+ milestones now count measured outcomes only.
372
+ - **For library users:** `TaskDAG.removeTask` no longer marks dependents
373
+ ready. Use a waiver to let them run.
374
+
375
+ ### Known issues
376
+
377
+ - Dreams still need the full rework ([#1060]).
378
+ - The anti-drift middleware still runs model inference for every event on
379
+ the in-process bus ([#1078]).
380
+ - `task_orchestrate` and fleet scans do not route security, chaos or
381
+ quality tasks to their domains yet ([#1124], [#1125]).
382
+ - Some MCP-reachable paths still use blocking child-process calls
383
+ ([#1115]).
384
+ - Test failure messages and runner output are not yet redacted for secrets
385
+ ([#1122]).
386
+ - In a narrow case, a task that fails at dispatch while the Queen is
387
+ draining its queue can leave a free slot unused until the next submission
388
+ ([#1127]).
389
+ - Workspace member dependencies are not scanned from a monorepo root yet
390
+ ([#1057]).
391
+
392
+ [#1036]: https://github.com/proffesor-for-testing/agentic-qe/pull/1036
393
+ [#1057]: https://github.com/proffesor-for-testing/agentic-qe/issues/1057
394
+ [#1059]: https://github.com/proffesor-for-testing/agentic-qe/issues/1059
395
+ [#1060]: https://github.com/proffesor-for-testing/agentic-qe/issues/1060
396
+ [#1062]: https://github.com/proffesor-for-testing/agentic-qe/pull/1062
397
+ [#1063]: https://github.com/proffesor-for-testing/agentic-qe/pull/1063
398
+ [#1064]: https://github.com/proffesor-for-testing/agentic-qe/pull/1064
399
+ [#1065]: https://github.com/proffesor-for-testing/agentic-qe/pull/1065
400
+ [#1066]: https://github.com/proffesor-for-testing/agentic-qe/issues/1066
401
+ [#1069]: https://github.com/proffesor-for-testing/agentic-qe/issues/1069
402
+ [#1070]: https://github.com/proffesor-for-testing/agentic-qe/issues/1070
403
+ [#1071]: https://github.com/proffesor-for-testing/agentic-qe/issues/1071
404
+ [#1074]: https://github.com/proffesor-for-testing/agentic-qe/issues/1074
405
+ [#1075]: https://github.com/proffesor-for-testing/agentic-qe/issues/1075
406
+ [#1076]: https://github.com/proffesor-for-testing/agentic-qe/pull/1076
407
+ [#1077]: https://github.com/proffesor-for-testing/agentic-qe/issues/1077
408
+ [#1078]: https://github.com/proffesor-for-testing/agentic-qe/issues/1078
409
+ [#1079]: https://github.com/proffesor-for-testing/agentic-qe/pull/1079
410
+ [#1081]: https://github.com/proffesor-for-testing/agentic-qe/issues/1081
411
+ [#1082]: https://github.com/proffesor-for-testing/agentic-qe/pull/1082
412
+ [#1083]: https://github.com/proffesor-for-testing/agentic-qe/pull/1083
413
+ [#1084]: https://github.com/proffesor-for-testing/agentic-qe/pull/1084
414
+ [#1085]: https://github.com/proffesor-for-testing/agentic-qe/pull/1085
415
+ [#1089]: https://github.com/proffesor-for-testing/agentic-qe/pull/1089
416
+ [#1090]: https://github.com/proffesor-for-testing/agentic-qe/pull/1090
417
+ [#1093]: https://github.com/proffesor-for-testing/agentic-qe/pull/1093
418
+ [#1095]: https://github.com/proffesor-for-testing/agentic-qe/issues/1095
419
+ [#1096]: https://github.com/proffesor-for-testing/agentic-qe/issues/1096
420
+ [#1098]: https://github.com/proffesor-for-testing/agentic-qe/pull/1098
421
+ [#1099]: https://github.com/proffesor-for-testing/agentic-qe/issues/1099
422
+ [#1100]: https://github.com/proffesor-for-testing/agentic-qe/pull/1100
423
+ [#1103]: https://github.com/proffesor-for-testing/agentic-qe/pull/1103
424
+ [#1104]: https://github.com/proffesor-for-testing/agentic-qe/pull/1104
425
+ [#1105]: https://github.com/proffesor-for-testing/agentic-qe/pull/1105
426
+ [#1107]: https://github.com/proffesor-for-testing/agentic-qe/pull/1107
427
+ [#1108]: https://github.com/proffesor-for-testing/agentic-qe/issues/1108
428
+ [#1109]: https://github.com/proffesor-for-testing/agentic-qe/issues/1109
429
+ [#1110]: https://github.com/proffesor-for-testing/agentic-qe/issues/1110
430
+ [#1111]: https://github.com/proffesor-for-testing/agentic-qe/pull/1111
431
+ [#1112]: https://github.com/proffesor-for-testing/agentic-qe/pull/1112
432
+ [#1113]: https://github.com/proffesor-for-testing/agentic-qe/pull/1113
433
+ [#1114]: https://github.com/proffesor-for-testing/agentic-qe/pull/1114
434
+ [#1115]: https://github.com/proffesor-for-testing/agentic-qe/issues/1115
435
+ [#1120]: https://github.com/proffesor-for-testing/agentic-qe/pull/1120
436
+ [#1122]: https://github.com/proffesor-for-testing/agentic-qe/issues/1122
437
+ [#1123]: https://github.com/proffesor-for-testing/agentic-qe/pull/1123
438
+ [#1124]: https://github.com/proffesor-for-testing/agentic-qe/issues/1124
439
+ [#1125]: https://github.com/proffesor-for-testing/agentic-qe/issues/1125
440
+ [#1127]: https://github.com/proffesor-for-testing/agentic-qe/issues/1127
441
+
8
442
  ## [3.15.8] - 2026-10-16
9
443
 
10
444
  Your acknowledged memory writes are no longer lost when a dream is running,
@@ -940,7 +940,7 @@
940
940
  },
941
941
  "metadata": {
942
942
  "generatedBy": "Agentic QE Fleet",
943
- "fleetVersion": "3.15.8",
943
+ "fleetVersion": "3.15.10",
944
944
  "manifestVersion": "1.4.0",
945
945
  "lastUpdated": "2026-04-13T00:00:00.000Z",
946
946
  "contributors": [
@@ -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];