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
@@ -397,6 +397,17 @@ export async function handleFleetHealth(params) {
397
397
  domain: issue.domain,
398
398
  timestamp: issue.timestamp.toISOString(),
399
399
  }));
400
+ // #1130: the raw MinCut and the fleet reading that decides `status`.
401
+ const minCut = health.minCut;
402
+ if (minCut) {
403
+ result.minCut = {
404
+ status: minCut.status,
405
+ minCutValue: minCut.minCutValue,
406
+ fleetStatus: minCut.fleetStatus,
407
+ fleetMinCutValue: minCut.fleetMinCutValue,
408
+ taskAgents: minCut.taskAgents,
409
+ };
410
+ }
400
411
  }
401
412
  // Enrich with structural health (mincut-lambda) if available
402
413
  try {
@@ -26,9 +26,14 @@ export interface TestExecuteResult {
26
26
  coverage?: number | null;
27
27
  workerStats?: Record<string, unknown>;
28
28
  retryStats?: Record<string, unknown>;
29
+ /** #1110: per-test entries from the runner report; absent when it listed none. */
29
30
  results?: unknown[];
30
31
  summary?: Record<string, unknown>;
31
32
  learning?: Record<string, unknown>;
33
+ /** #1110: output fields left out because nothing measured them. */
34
+ unmeasured?: string[];
35
+ /** #1110: why each unmeasured field has no value. */
36
+ unmeasuredReasons?: Record<string, string>;
32
37
  savedFiles?: string[];
33
38
  /** #933: true when result files were written; see savedFiles for their paths. */
34
39
  resultsSaved?: boolean;
@@ -172,6 +177,11 @@ export interface DefectPredictParams {
172
177
  saveResults?: boolean;
173
178
  }
174
179
  export interface DefectPredictResult {
180
+ filesAnalyzed?: number;
181
+ filesSkipped?: number;
182
+ scanStatus?: 'partial' | 'complete';
183
+ predictionMethod?: 'static-code-indicators';
184
+ estimated?: boolean;
175
185
  taskId: string;
176
186
  status: string;
177
187
  predictedDefects: Array<{
@@ -235,6 +245,15 @@ export interface CodeIndexResult {
235
245
  tests: number;
236
246
  toolsUsed: string[];
237
247
  };
248
+ /**
249
+ * #1096: discovered paths that were not indexed (missing, not a regular
250
+ * file, outside the project root, filtered out), with the reason. Absent
251
+ * when every discovered file was indexed.
252
+ */
253
+ skipped?: Array<{
254
+ path: string;
255
+ reason: string;
256
+ }>;
238
257
  savedFiles?: string[];
239
258
  /** #933: true when result files were written; see savedFiles for their paths. */
240
259
  resultsSaved?: boolean;
@@ -190,7 +190,7 @@ export const testExecuteConfig = {
190
190
  testSuites: params.testSuites || [],
191
191
  parallel: params.parallel !== false,
192
192
  parallelism: params.parallelism || 4,
193
- retryCount: params.retryCount || 3,
193
+ retryCount: params.retryCount ?? 3,
194
194
  timeout: params.timeout || 60000,
195
195
  collectCoverage: params.collectCoverage || false,
196
196
  reportFormat: params.reportFormat || 'json',
@@ -199,48 +199,86 @@ export const testExecuteConfig = {
199
199
  compiledContext: routingResult?.compiledContext,
200
200
  }),
201
201
  calculateTimeout: (params) => params.timeout || 300000,
202
- mapToResult: (taskId, data, duration, savedFiles, params) => {
202
+ mapToResult: (taskId, data, duration, savedFiles) => {
203
203
  const total = data.total || 0;
204
204
  const passed = data.passed || 0;
205
205
  const failed = data.failed || 0;
206
206
  // #1027 N5: no measured coverage → null, never a hardcoded 0.
207
207
  const coverage = typeof data.coverage === 'number' && Number.isFinite(data.coverage) ? data.coverage : null;
208
- const parallelism = params?.parallelism || 4;
209
- const realRetryStats = MetricsCollector.getRetryStats();
210
- const workersUsed = MetricsCollector.getWorkersUsed();
211
- const workerStats = {
212
- workersUsed: workersUsed > 0 ? workersUsed : Math.min(parallelism, total || 1),
213
- efficiency: MetricsCollector.getWorkerEfficiency(),
214
- loadBalance: MetricsCollector.getLoadBalanceScore(),
215
- avgExecutionTime: duration / Math.max(total, 1),
216
- };
217
- const retryStats = {
218
- totalRetries: realRetryStats.totalRetries,
219
- successfulRetries: realRetryStats.successfulRetries,
220
- maxRetriesReached: realRetryStats.maxRetriesReached,
208
+ // #1110: report only what was measured. A figure with no measurement is
209
+ // left out and named in `unmeasured`, never filled with a baseline.
210
+ const unmeasured = [];
211
+ const unmeasuredReasons = {};
212
+ const markUnmeasured = (field, reason) => {
213
+ unmeasured.push(field);
214
+ unmeasuredReasons[field] = reason;
221
215
  };
222
- const learning = generateV2LearningFeedback('test-executor');
216
+ // Per-test results come from the runner's own report, or are left out.
217
+ const testCases = Array.isArray(data.testCases)
218
+ ? data.testCases
219
+ : undefined;
220
+ const results = testCases?.map(testCase => ({ id: generateTestId(), ...testCase }));
221
+ if (!results) {
222
+ markUnmeasured('results', 'The test runner report did not list every test case, so per-test results are omitted.');
223
+ }
224
+ // The average test time is the mean of the runner-reported per-test
225
+ // durations. The task's wall time (`duration`) includes runner start-up and
226
+ // skipped tests, so dividing it by `total` would contradict `results`.
227
+ const testDurations = (testCases ?? [])
228
+ .map(testCase => testCase.duration)
229
+ .filter((d) => typeof d === 'number' && Number.isFinite(d));
230
+ const avgTestDuration = testDurations.length > 0
231
+ ? testDurations.reduce((sum, d) => sum + d, 0) / testDurations.length
232
+ : undefined;
233
+ if (avgTestDuration === undefined) {
234
+ const reason = 'The runner reported no per-test durations; the task wall time is in `duration`.';
235
+ markUnmeasured('workerStats.avgExecutionTime', reason);
236
+ markUnmeasured('summary.avgDuration', reason);
237
+ }
238
+ const workerStats = avgTestDuration !== undefined
239
+ ? { avgExecutionTime: avgTestDuration }
240
+ : {};
241
+ const noWorkerData = 'No worker tasks were recorded by the metrics collector for this process.';
242
+ const workersUsed = MetricsCollector.getWorkersUsed();
243
+ if (workersUsed > 0)
244
+ workerStats.workersUsed = workersUsed;
245
+ else
246
+ markUnmeasured('workerStats.workersUsed', noWorkerData);
247
+ const efficiency = MetricsCollector.getWorkerEfficiency();
248
+ if (efficiency !== null)
249
+ workerStats.efficiency = efficiency;
250
+ else
251
+ markUnmeasured('workerStats.efficiency', noWorkerData);
252
+ const loadBalance = MetricsCollector.getLoadBalanceScore();
253
+ if (loadBalance !== null)
254
+ workerStats.loadBalance = loadBalance;
255
+ else
256
+ markUnmeasured('workerStats.loadBalance', noWorkerData);
257
+ // #1130: retryStats is this run's retry outcome as the domain measured
258
+ // it, in one shape. The metrics collector's retry counters cover every
259
+ // task in the process, not this run, so they are not reported here.
260
+ let retryStats;
261
+ if (data.retries && typeof data.retries === 'object') {
262
+ retryStats = { ...data.retries };
263
+ }
264
+ else {
265
+ markUnmeasured('retryStats', 'The run reported no retry outcome: no retries were requested, or the retry step failed.');
266
+ }
267
+ // No `learning` block: the run's experience is recorded asynchronously by
268
+ // the learning-optimization plugin from TestRunCompleted, so this response
269
+ // cannot name its id or confirm that it was written (#1110).
223
270
  return {
224
271
  // V2-compatible fields
225
272
  workerStats,
226
- retryStats,
227
- results: (() => {
228
- const testDurations = MetricsCollector.getTestDurations(total);
229
- return Array.from({ length: total }, (_, i) => ({
230
- id: generateTestId(),
231
- name: `test_case_${i}`,
232
- status: i < passed ? 'passed' : 'failed',
233
- duration: testDurations[i] || 200,
234
- retries: 0,
235
- }));
236
- })(),
273
+ ...(retryStats ? { retryStats } : {}),
274
+ ...(results ? { results } : {}),
237
275
  summary: {
238
276
  totalTests: total,
239
277
  passRate: total > 0 ? (passed / total) * 100 : 0,
240
- avgDuration: duration / Math.max(total, 1),
241
- parallelEfficiency: workerStats.efficiency,
278
+ ...(avgTestDuration !== undefined ? { avgDuration: avgTestDuration } : {}),
279
+ ...(efficiency !== null ? { parallelEfficiency: efficiency } : {}),
242
280
  },
243
- learning,
281
+ ...(unmeasured.length > 0 ? { unmeasured, unmeasuredReasons } : {}),
244
282
  // V3 fields
245
283
  taskId,
246
284
  status: 'completed',
@@ -700,6 +738,11 @@ export const defectPredictConfig = {
700
738
  mapToResult: (taskId, data, duration, savedFiles) => ({
701
739
  taskId,
702
740
  status: 'completed',
741
+ ...(data.predictionMethod === 'static-code-indicators' ? {
742
+ predictionMethod: 'static-code-indicators', estimated: true,
743
+ filesAnalyzed: data.filesAnalyzed, filesSkipped: data.filesSkipped,
744
+ scanStatus: data.scanStatus,
745
+ } : {}),
703
746
  predictedDefects: data.predictedDefects || [],
704
747
  riskScore: data.riskScore || 0,
705
748
  recommendations: data.recommendations || [],
@@ -759,6 +802,9 @@ export const codeIndexConfig = {
759
802
  symbolsExtracted: data.symbolsExtracted || 0,
760
803
  relationsFound: data.relationsFound || 0,
761
804
  ...(data.projectMetrics ? { projectMetrics: data.projectMetrics } : {}),
805
+ ...(Array.isArray(data.skipped) && data.skipped.length > 0
806
+ ? { skipped: data.skipped }
807
+ : {}),
762
808
  duration,
763
809
  savedFiles,
764
810
  }),
@@ -14,6 +14,7 @@ import { ToolResult } from '../types';
14
14
  import { DomainTaskExecutor } from '../../coordination/task-executor';
15
15
  import { type TaskRoutingResult } from '../services/task-router';
16
16
  import { Priority } from '../../shared/types';
17
+ import { type ToolOutcome } from '../../learning/usage-outcome.js';
17
18
  /**
18
19
  * Domain name type for handler configuration
19
20
  */
@@ -82,7 +83,7 @@ export declare function generateV2LearningFeedback(agentType: string): V2Learnin
82
83
  *
83
84
  * Fire-and-forget safe: callers can await or ignore the returned promise.
84
85
  */
85
- export declare function captureExecutionLearning(agentType: string, toolName: string, params: Record<string, unknown>, result: unknown, durationMs: number): Promise<V2LearningFeedback>;
86
+ export declare function captureExecutionLearning(agentType: string, toolName: string, params: Record<string, unknown>, result: unknown, durationMs: number, outcome?: ToolOutcome, runId?: string): Promise<V2LearningFeedback>;
86
87
  /**
87
88
  * V2-compatible complexity analysis
88
89
  */
@@ -18,6 +18,8 @@ import { isCallerInputError, toErrorMessage } from '../../shared/error-utils.js'
18
18
  import { describeSavedResults, readSaveResultsOption } from './save-results-option.js';
19
19
  import { createInitializedFeedbackLoop, getQualityFeedbackLoop } from '../../feedback/feedback-loop.js';
20
20
  import { isLearnableResult } from '../../learning/learnable-result.js';
21
+ import { measureToolOutcome, usageOutcomeMetrics, } from '../../learning/usage-outcome.js';
22
+ import { redactLogText } from '../../logging/redaction.js';
21
23
  // ============================================================================
22
24
  // Shared Utilities (exported for response mappers)
23
25
  // ============================================================================
@@ -50,7 +52,7 @@ export function generateV2LearningFeedback(agentType) {
50
52
  *
51
53
  * Fire-and-forget safe: callers can await or ignore the returned promise.
52
54
  */
53
- export async function captureExecutionLearning(agentType, toolName, params, result, durationMs) {
55
+ export async function captureExecutionLearning(agentType, toolName, params, result, durationMs, outcome = measureToolOutcome(toolName, result), runId) {
54
56
  const agentId = generateAgentId(agentType);
55
57
  try {
56
58
  const { kernel } = getFleetState();
@@ -75,16 +77,24 @@ export async function captureExecutionLearning(agentType, toolName, params, resu
75
77
  metadata: {
76
78
  tool: toolName,
77
79
  durationMs,
80
+ // #1129: rows from one run share it, so the rate counts runs.
81
+ ...(runId ? { runId } : {}),
78
82
  },
79
83
  });
84
+ // #1129: success is the outcome read from the result (tests passed,
85
+ // files indexed). When the result has no such measure, the experience is
86
+ // kept but its pattern usage is tagged unmeasured, not counted a success.
87
+ const success = outcome.measured ? outcome.success === true : true;
88
+ const quality = success ? 0.7 : 0.3;
80
89
  captureService.recordStep(experienceId, {
81
90
  action: `execute-${toolName}`,
82
91
  result: typeof result === 'object' ? JSON.stringify(result).slice(0, 500) : String(result).slice(0, 500),
83
- quality: 0.7, // Default quality for successful tool execution
92
+ quality,
84
93
  });
85
94
  const captureResult = await captureService.completeCapture(experienceId, {
86
- success: true,
87
- quality: 0.7,
95
+ success,
96
+ quality,
97
+ ...(outcome.measured ? { outcomeBasis: outcome.basis } : {}),
88
98
  });
89
99
  if (captureResult.success) {
90
100
  const experience = captureResult.value;
@@ -538,12 +548,16 @@ export function resetLearningEngine() {
538
548
  * Non-critical — fire-and-forget, must not break handler execution.
539
549
  * Uses only the already-cached engine to avoid heavy lazy initialization.
540
550
  */
541
- async function recordPatternUsageAsync(patternHints, success, domain, durationMs) {
551
+ async function recordPatternUsageAsync(patternHints, outcome, domain, durationMs, runId) {
542
552
  if (!patternHints || patternHints.length === 0)
543
553
  return;
554
+ // #1129: a completed call is not evidence the hinted pattern worked.
555
+ if (!outcome.measured)
556
+ return;
544
557
  // Only use engine if already cached — don't trigger heavy init just for recording
545
558
  if (!cachedLearningEngine)
546
559
  return;
560
+ const success = outcome.success === true;
547
561
  try {
548
562
  for (const hint of patternHints) {
549
563
  if (!hint.patternId)
@@ -553,8 +567,9 @@ async function recordPatternUsageAsync(patternHints, success, domain, durationMs
553
567
  success,
554
568
  metrics: {
555
569
  executionTimeMs: durationMs,
570
+ ...usageOutcomeMetrics(outcome, runId),
556
571
  },
557
- feedback: `Domain handler ${domain} execution ${success ? 'succeeded' : 'failed'}`,
572
+ feedback: `Domain handler ${domain} outcome ${success ? 'succeeded' : 'failed'} (${outcome.basis})`,
558
573
  });
559
574
  }
560
575
  }
@@ -623,6 +638,7 @@ export function createDomainHandler(config) {
623
638
  const timeout = calculateTimeout?.(params) ?? defaultTimeout;
624
639
  const submitResult = await queen.submitTask({
625
640
  type: taskType,
641
+ executionOwner: 'caller',
626
642
  priority,
627
643
  targetDomains: [domain],
628
644
  payload,
@@ -645,9 +661,14 @@ export function createDomainHandler(config) {
645
661
  }
646
662
  const result = await executor.execute(task.task);
647
663
  if (!result.success) {
664
+ // #1129: a task that errored produced no result to read an outcome
665
+ // from. Its error may be the caller's input (an empty or glob test
666
+ // list, a missing target) or the environment, so it is not recorded
667
+ // as a measured failure; routing_outcomes still records the failure.
668
+ // #1122: a domain error can quote runner output; strip credentials.
648
669
  return {
649
670
  success: false,
650
- error: result.error || 'Task execution failed',
671
+ error: result.error ? redactLogText(result.error, Number.POSITIVE_INFINITY) : 'Task execution failed',
651
672
  // #996: structured failure context (e.g. status + unmeasured metrics),
652
673
  // only when the failing handler provided it. success stays false.
653
674
  ...(result.errorDetails ? { data: result.errorDetails } : {}),
@@ -663,10 +684,13 @@ export function createDomainHandler(config) {
663
684
  // but is not recorded as successful learning anywhere below.
664
685
  const learnable = isLearnableResult(domain, data) && isLearnableResult('', mappedResult);
665
686
  if (learnable) {
666
- // Step 5b: Record pattern usage on success (Phase 5.3 — fire-and-forget)
667
- recordPatternUsageAsync(routingResult?.patternHints, true, domain, result.duration);
687
+ // #1129: the outcome comes from the result the caller sees (tests
688
+ // passed, files indexed), not from the call having completed.
689
+ const outcome = measureToolOutcome(taskType, mappedResult);
690
+ // Step 5b: Record pattern usage (Phase 5.3 — fire-and-forget)
691
+ recordPatternUsageAsync(routingResult?.patternHints, outcome, domain, result.duration, submitResult.value);
668
692
  // Step 5c: Capture real execution learning (fire-and-forget)
669
- captureExecutionLearning(`qe-${domain}`, taskType, params, data, result.duration).catch(() => { }); // Swallow errors — learning is non-critical
693
+ captureExecutionLearning(`qe-${domain}`, taskType, params, data, result.duration, outcome, submitResult.value).catch(() => { }); // Swallow errors — learning is non-critical
670
694
  // Step 5d: Record feedback for test_outcomes / coverage_sessions
671
695
  try {
672
696
  await recordDomainFeedback(domain, data, result.duration, params);
@@ -688,13 +712,11 @@ export function createDomainHandler(config) {
688
712
  // failure: it is marked for the experience middleware and not recorded
689
713
  // as a pattern-usage failure.
690
714
  const callerError = isCallerInputError(error);
691
- if (!callerError) {
692
- // Record pattern usage on failure (Phase 5.3 — fire-and-forget)
693
- recordPatternUsageAsync(routingResult?.patternHints, false, domain, 0);
694
- }
715
+ // #1129: a thrown error is not a measured outcome (see the failed-task
716
+ // branch above), so no pattern usage is recorded for it.
695
717
  return {
696
718
  success: false,
697
- error: `Failed to ${taskType.replace(/-/g, ' ')}: ${errorMessage}`,
719
+ error: redactLogText(`Failed to ${taskType.replace(/-/g, ' ')}: ${errorMessage}`, Number.POSITIVE_INFINITY),
698
720
  ...(callerError ? { data: { callerError: true } } : {}),
699
721
  };
700
722
  }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Agentic QE v3 - task_orchestrate routes for inferred task types (#1125)
3
+ *
4
+ * task_orchestrate infers an abstract task type from a free-text description.
5
+ * Several of those types have no domain handler of their own; the domain runs
6
+ * a concrete handler type with its own payload instead. Each inferred type
7
+ * either maps to that handler with a payload built only from what the caller
8
+ * supplied, or is refused with the input it needs. A payload is never filled
9
+ * with values the request did not contain.
10
+ */
11
+ import type { TaskType } from '../../coordination/queen-types.js';
12
+ import type { DomainName } from '../../shared/types/index.js';
13
+ export interface OrchestrateRequest {
14
+ task: string;
15
+ filePaths?: string[];
16
+ }
17
+ export type OrchestrateRoute =
18
+ /** Submit `type` to `domain` with `payload`. */
19
+ {
20
+ kind: 'route';
21
+ type: string;
22
+ domain: DomainName;
23
+ payload: Record<string, unknown>;
24
+ }
25
+ /** The request lacks what the handler needs; `error` says what to supply. */
26
+ | {
27
+ kind: 'needs-input';
28
+ error: string;
29
+ }
30
+ /** The inferred type has its own handler; submit it as before. */
31
+ | {
32
+ kind: 'as-inferred';
33
+ };
34
+ /** Decide how task_orchestrate runs an inferred task type. */
35
+ export declare function routeInferredTask(type: TaskType, request: OrchestrateRequest): Promise<OrchestrateRoute>;
36
+ //# sourceMappingURL=orchestrate-routes.d.ts.map
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Agentic QE v3 - task_orchestrate routes for inferred task types (#1125)
3
+ *
4
+ * task_orchestrate infers an abstract task type from a free-text description.
5
+ * Several of those types have no domain handler of their own; the domain runs
6
+ * a concrete handler type with its own payload instead. Each inferred type
7
+ * either maps to that handler with a payload built only from what the caller
8
+ * supplied, or is refused with the input it needs. A payload is never filled
9
+ * with values the request did not contain.
10
+ */
11
+ import { findProjectRoot } from '../../kernel/project-root.js';
12
+ import { confineIndexPaths } from '../../domains/code-intelligence/index-path-guard.js';
13
+ const needs = (type, what) => ({
14
+ kind: 'needs-input',
15
+ error: `task_orchestrate inferred '${type}' from the description, but ${what}`,
16
+ });
17
+ /**
18
+ * Confine caller file paths to the project root (the #1096 rule for index
19
+ * paths). A path outside it, missing, or not a regular file is refused by name.
20
+ */
21
+ async function projectFiles(type, filePaths) {
22
+ const { accepted, skipped } = await confineIndexPaths(filePaths, findProjectRoot());
23
+ if (skipped.length > 0) {
24
+ const list = skipped.map(s => `${s.path} (${s.reason})`).join(', ');
25
+ return needs(type, `these filePaths cannot be read: ${list}. Pass regular files inside the project.`);
26
+ }
27
+ return { files: accepted };
28
+ }
29
+ /** Decide how task_orchestrate runs an inferred task type. */
30
+ export async function routeInferredTask(type, request) {
31
+ const filePaths = request.filePaths ?? [];
32
+ switch (type) {
33
+ case 'scan-security': {
34
+ if (filePaths.length === 0) {
35
+ return needs(type, 'no files to scan were given. Pass filePaths with the source files to scan, ' +
36
+ 'or use security_scan_comprehensive with a target.');
37
+ }
38
+ const confined = await projectFiles(type, filePaths);
39
+ if ('kind' in confined)
40
+ return confined;
41
+ return { kind: 'route', type: 'sast-scan', domain: 'security-compliance', payload: { files: confined.files } };
42
+ }
43
+ case 'index-code':
44
+ // #1134: indexing reads exactly the files it is given; without them the
45
+ // task could only fail after it was accepted. The indexer confines the
46
+ // paths to the project itself (#1096).
47
+ if (filePaths.length === 0) {
48
+ return needs(type, 'no files to index were given. Pass filePaths with the files to index, ' +
49
+ 'or use code_index with a target.');
50
+ }
51
+ return { kind: 'as-inferred' };
52
+ case 'assess-quality': {
53
+ if (filePaths.length === 0) {
54
+ return needs(type, 'no source files were given. Pass filePaths with the source files to assess, ' +
55
+ 'or use quality_assess.');
56
+ }
57
+ const confined = await projectFiles(type, filePaths);
58
+ if ('kind' in confined)
59
+ return confined;
60
+ return { kind: 'route', type: 'analyze-quality', domain: 'quality-assessment', payload: { sourceFiles: confined.files } };
61
+ }
62
+ case 'test-accessibility':
63
+ // run-accessibility-audit falls back to URL-pattern heuristics when no
64
+ // browser is available, which reports violations nobody measured.
65
+ return needs(type, 'an accessibility audit needs a browser run against the page (axe-core, pa11y or ' +
66
+ 'Lighthouse), and the domain task handler cannot guarantee one. Use accessibility_test with the page URL.');
67
+ case 'optimize-learning':
68
+ // optimize-strategies overwrites the stored learned strategies
69
+ // (persist: true). Words like "improve" or "optimize" in a description
70
+ // must not change learning data as a side effect.
71
+ return needs(type, 'learning optimization overwrites the stored learned strategies, so it is not run from ' +
72
+ 'a description. Use task_submit with type optimize-strategies in domain learning-optimization.');
73
+ case 'run-chaos':
74
+ return needs(type, 'a chaos run needs an experiment, or a fault type and target, which a description ' +
75
+ 'does not provide. Use chaos_test, or task_submit with type run-experiment (experimentId) or ' +
76
+ 'inject-fault (faultType, target) in domain chaos-resilience.');
77
+ case 'validate-contracts':
78
+ return needs(type, 'contract validation needs the API contract itself. Use contract_validate, or ' +
79
+ 'task_submit with type validate-contract and payload.contract in domain contract-testing.');
80
+ case 'validate-requirements':
81
+ return needs(type, 'requirement validation needs a structured requirement (title, description, ' +
82
+ 'acceptance criteria). Use requirements_validate, or task_submit with type validate and ' +
83
+ 'payload.requirement in domain requirements-validation.');
84
+ default:
85
+ return { kind: 'as-inferred' };
86
+ }
87
+ }
88
+ //# sourceMappingURL=orchestrate-routes.js.map
@@ -37,7 +37,10 @@ export interface TaskOrchestrateParams {
37
37
  }
38
38
  export interface TaskOrchestrateResult {
39
39
  taskId: string;
40
+ /** The task type submitted to the domain. */
40
41
  type: TaskType;
42
+ /** #1125: the type inferred from the description, when another handler type runs it. */
43
+ inferredType?: TaskType;
41
44
  priority: 'p0' | 'p1' | 'p2' | 'p3';
42
45
  strategy: string;
43
46
  status: string;
@@ -10,7 +10,9 @@ import { getTaskRouter, } from '../services/task-router.js';
10
10
  import { getReasoningBankService, startTaskTrajectory, endTaskTrajectory, } from '../services/reasoning-bank-service.js';
11
11
  import { scoreUnjudgedTrajectories } from './trajectory-judge.js';
12
12
  import { toErrorMessage } from '../../shared/error-utils.js';
13
- import { ALL_DOMAINS, isDomainName } from '../../shared/types/index.js';
13
+ import { ALL_DOMAINS, invalidPriorityMessage, isDomainName, isPriority } from '../../shared/types/index.js';
14
+ import { validateIndexPaths, validateIndexTaskPayload } from '../../domains/code-intelligence/index-path-guard.js';
15
+ import { routeInferredTask } from './orchestrate-routes.js';
14
16
  // ============================================================================
15
17
  // Task Type to Workflow Mapping (Issue #206)
16
18
  // Maps TaskTypes to their associated workflow IDs for auto-execution
@@ -43,7 +45,24 @@ export async function handleTaskSubmit(params) {
43
45
  error: `Unknown domain: ${unknown.join(', ')}. Valid domains: ${ALL_DOMAINS.join(', ')}`,
44
46
  };
45
47
  }
48
+ // #1108: reject a priority outside the allowed set. Parity with
49
+ // `aqe task submit --priority`.
50
+ if (params.priority !== undefined && !isPriority(params.priority)) {
51
+ return { success: false, error: invalidPriorityMessage(params.priority) };
52
+ }
46
53
  const { queen } = getFleetState();
54
+ // #1075: reject a type that no domain plugin executes. Accepting it would
55
+ // leave the task running forever and hold one of the Queen's slots.
56
+ const executable = queen.validateTaskExecutable(params.type, targetDomains);
57
+ if (!executable.success) {
58
+ return { success: false, error: executable.error.message };
59
+ }
60
+ // #1096: reject a malformed index path list here rather than deep inside
61
+ // indexing. Same order of checks as `aqe task submit`.
62
+ const payloadError = validateIndexTaskPayload(params.type, params.payload);
63
+ if (payloadError) {
64
+ return { success: false, error: payloadError.message };
65
+ }
47
66
  try {
48
67
  const result = await queen.submitTask({
49
68
  type: params.type,
@@ -220,6 +239,14 @@ export async function handleTaskOrchestrate(params) {
220
239
  error: 'Fleet not initialized. Call fleet_init first.',
221
240
  };
222
241
  }
242
+ // #1096: filePaths feeds task payloads (sourceFiles, index paths), so a
243
+ // non-array value is rejected up front with a clear message.
244
+ if (params.filePaths !== undefined) {
245
+ const filePaths = validateIndexPaths(params.filePaths, 'filePaths', 'Invalid task_orchestrate params');
246
+ if (!filePaths.success) {
247
+ return { success: false, error: filePaths.error.message };
248
+ }
249
+ }
223
250
  const { queen, workflowOrchestrator } = getFleetState();
224
251
  try {
225
252
  // ADR-051: Route task to optimal model tier BEFORE execution
@@ -331,7 +358,26 @@ export async function handleTaskOrchestrate(params) {
331
358
  },
332
359
  };
333
360
  }
334
- // No workflow - submit as a regular task
361
+ // No workflow - submit as a regular task.
362
+ // #1125: an inferred type without a handler of its own runs the domain's
363
+ // concrete handler, with a payload built only from the request, or is
364
+ // refused with the input it needs.
365
+ const route = await routeInferredTask(taskType, params);
366
+ if (route.kind === 'needs-input') {
367
+ return { success: false, error: route.error };
368
+ }
369
+ const submitType = route.kind === 'route' ? route.type : taskType;
370
+ const targetDomains = route.kind === 'route' ? [route.domain] : [];
371
+ // #1081: the type must have a domain handler. Otherwise the Queen can
372
+ // only fail the task at dispatch, so reject it here with the reason.
373
+ const executable = queen.validateTaskExecutable(submitType, targetDomains);
374
+ if (!executable.success) {
375
+ return {
376
+ success: false,
377
+ error: `${executable.error.message}. task_orchestrate inferred '${taskType}' from the description; ` +
378
+ 'use task_submit with a supported type and its payload, or the domain\'s MCP tool.',
379
+ };
380
+ }
335
381
  // Issue N2: Build domain-appropriate payload.
336
382
  // Forward caller-provided filePaths/codeContext into the payload fields
337
383
  // that domain plugins expect, so generate-tests doesn't reject with
@@ -348,10 +394,15 @@ export async function handleTaskOrchestrate(params) {
348
394
  taskPayload.language = taskPayload.language || 'typescript';
349
395
  taskPayload.testType = taskPayload.testType || 'unit';
350
396
  }
397
+ if (taskType === 'index-code') {
398
+ taskPayload.paths = params.filePaths || [];
399
+ }
400
+ if (route.kind === 'route')
401
+ Object.assign(taskPayload, route.payload);
351
402
  const result = await queen.submitTask({
352
- type: taskType,
403
+ type: submitType,
353
404
  priority,
354
- targetDomains: [],
405
+ targetDomains,
355
406
  payload: {
356
407
  ...taskPayload,
357
408
  // ADR-051: Include routing decision in payload for downstream processing
@@ -416,7 +467,8 @@ export async function handleTaskOrchestrate(params) {
416
467
  success: true,
417
468
  data: {
418
469
  taskId,
419
- type: taskType,
470
+ type: submitType,
471
+ ...(submitType !== taskType ? { inferredType: taskType } : {}),
420
472
  priority,
421
473
  strategy: params.strategy || 'adaptive',
422
474
  status: 'submitted',
@@ -622,6 +674,14 @@ function inferDomainFromDescription(description) {
622
674
  /**
623
675
  * Infer task type from description
624
676
  */
677
+ // #1130: chaos named as the activity of a test run. The lookaheads keep a
678
+ // path segment or file name (resilience tests/unit/…, src/fault-injection/…,
679
+ // fault-injection.ts) from counting, and "fault injector" names a component.
680
+ const CHAOS_ACTIVITY = new RegExp([
681
+ String.raw `\b(?:chaos|resilience)\s+(?:\w+\s+)?(?:tests?|testing|experiments?)\b(?![./\w])`,
682
+ String.raw `\bfault[\s-]?inject(?:ion|ing)\b(?![./\w])`,
683
+ String.raw `\binject(?:s|ing)?\s+(?:\w+\s+)?faults?\b(?![./\w])`,
684
+ ].join('|'));
625
685
  function inferTaskType(description) {
626
686
  const lower = description.toLowerCase();
627
687
  // Check execution first (more specific patterns)
@@ -629,7 +689,10 @@ function inferTaskType(description) {
629
689
  /execute\s+(?:\w+\s+)*tests?/.test(lower) ||
630
690
  lower.includes('run tests') ||
631
691
  lower.includes('execute tests')) {
632
- return 'execute-tests';
692
+ // #1130: "run chaos resilience testing" names a chaos run, not a test run.
693
+ // Only a run whose activity is chaos counts; every other description keeps
694
+ // the order below, where chaos wording is the last resort.
695
+ return CHAOS_ACTIVITY.test(lower) ? 'run-chaos' : 'execute-tests';
633
696
  }
634
697
  // Then check generation
635
698
  if (lower.includes('generate test') || lower.includes('create test') || lower.includes('write test')) {
@@ -5,10 +5,10 @@
5
5
  * as an MCP tool that users can invoke directly.
6
6
  */
7
7
  import { readFileSync, existsSync } from 'fs';
8
- import { resolve } from 'path';
9
8
  import { runPipeline, formatPipelineReport } from '../../validation/pipeline.js';
10
9
  import { createRequirementsPipeline, REQUIREMENTS_VALIDATION_STEPS } from '../../validation/steps/requirements.js';
11
10
  import { toErrorMessage } from '../../shared/error-utils.js';
11
+ import { MAX_PAYLOAD_FILE_BYTES, requirePayloadPath } from '../../shared/io/payload-path-guard.js';
12
12
  /**
13
13
  * Run the structured validation pipeline on a document.
14
14
  */
@@ -19,7 +19,11 @@ export async function handleValidationPipeline(params) {
19
19
  content = params.content;
20
20
  }
21
21
  else if (params.filePath) {
22
- const absPath = resolve(process.cwd(), params.filePath);
22
+ // #1126: read only a regular file inside the project, within the size limit.
23
+ const confined = await requirePayloadPath('validation_pipeline', 'filePath', params.filePath, { allowMissing: true, maxBytes: MAX_PAYLOAD_FILE_BYTES });
24
+ if (!confined.success)
25
+ return { success: false, error: confined.error.message };
26
+ const absPath = confined.value;
23
27
  if (!existsSync(absPath)) {
24
28
  return {
25
29
  success: false,