agentic-qe 3.15.9 → 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 (568) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +251 -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/audit/witness-chain.d.ts +1 -1
  10. package/dist/cli/bundle.js +6 -6
  11. package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
  12. package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
  13. package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-SVXSHEET.js} +2 -2
  14. package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-WKQH36XL.js} +2 -2
  15. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
  16. package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-EKOOFVST.js} +2 -2
  17. package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-OPS36NFZ.js} +4 -4
  18. package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-AO5NDZRI.js} +3 -3
  19. package/dist/cli/chunks/base-GTB6POYE.js +2 -0
  20. package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-TFLVEMMY.js} +2 -2
  21. package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-ADBBJPYW.js} +3 -3
  22. package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-HGHUYYL5.js} +2 -2
  23. package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
  24. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
  25. package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-2SXBBUM6.js} +2 -2
  26. package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-2T7RRL6G.js} +1 -1
  27. package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-2XGVTYVX.js} +2 -2
  28. package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-2ZI5FKSF.js} +2 -2
  29. package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
  30. package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-37OWRCUN.js} +1 -1
  31. package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-3P34JFQH.js} +4 -4
  32. package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-3Y7SPD72.js} +2 -2
  33. package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-4G63WT4F.js} +2 -2
  34. package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
  35. package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
  36. package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-5LPYV3TK.js} +1 -1
  37. package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-62OAY5KJ.js} +1 -1
  38. package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-6C3II5OM.js} +2 -2
  39. package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-6GP6W46M.js} +2 -2
  40. package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-6KIL6CMD.js} +2 -2
  41. package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-6MVVSSID.js} +1 -1
  42. package/dist/cli/chunks/{chunk-JEP4ULR6.js → chunk-6P7424AO.js} +2 -2
  43. package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-6PX4OXQO.js} +2 -2
  44. package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-6S3WJGUV.js} +2 -2
  45. package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-6TB6YOCZ.js} +1 -1
  46. package/dist/cli/chunks/{chunk-VU2EL424.js → chunk-6X5DHU6Q.js} +1 -1
  47. package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-6XCMKIZN.js} +1 -1
  48. package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-7LFZ4CHM.js} +2 -2
  49. package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-7OZVZIBE.js} +2 -2
  50. package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-7PJIR4ST.js} +2 -2
  51. package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-7TB6FK4B.js} +1 -1
  52. package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-7ZCDZHDB.js} +2 -2
  53. package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-A55QKKT2.js} +2 -2
  54. package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ABFFWZPC.js} +428 -433
  55. package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-ACWFKES2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-AH3ZD3NJ.js} +2 -2
  57. package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-AI4VYSFS.js} +2 -2
  58. package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
  59. package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
  60. package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-B6LTH6YV.js} +2 -2
  61. package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
  62. package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-C522H7XR.js} +54 -33
  63. package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-CESIR27V.js} +2 -2
  64. package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-CFBEBXLO.js} +3 -3
  65. package/dist/cli/chunks/{chunk-FJ4VTLLK.js → chunk-CMBLM26R.js} +2 -2
  66. package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-CZ2IF6MC.js} +1 -1
  67. package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-CZGOSJQ4.js} +2 -2
  68. package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-D6DA2KFD.js} +2 -2
  69. package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-DBMNJSBV.js} +1 -1
  70. package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-DE4YJQJF.js} +2 -2
  71. package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-DEF34AFL.js} +2 -2
  72. package/dist/cli/chunks/chunk-DKAC3E3B.js +3 -0
  73. package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-DMFTELBS.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-DNRWGATA.js} +10 -10
  75. package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-DT7SIJOA.js} +2 -2
  76. package/dist/cli/chunks/{chunk-6PXA2BQJ.js → chunk-DURHK377.js} +67 -67
  77. package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EAU5KDFO.js} +1 -1
  78. package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-EDLFX4ZB.js} +2 -2
  79. package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-EN2QSKFF.js} +2 -2
  80. package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-ERQKYIP7.js} +2 -2
  81. package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-ESUO3GTJ.js} +2 -2
  82. package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EWFECZ2U.js} +2 -2
  83. package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-FAUCT5KR.js} +3 -3
  84. package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-FB6TI3BH.js} +2 -2
  85. package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-FBXTQNRH.js} +2 -2
  86. package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-FESZBPUB.js} +2 -2
  87. package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
  88. package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-FKL3R5JQ.js} +2 -2
  89. package/dist/cli/chunks/{chunk-N5PDFGCQ.js → chunk-FPUDRSFJ.js} +2 -2
  90. package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-FZOWULMH.js} +1 -1
  91. package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-G3CZCUPM.js} +2 -2
  92. package/dist/cli/chunks/{chunk-FV3NHVC7.js → chunk-G5I6KGMW.js} +3 -3
  93. package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-GHBNRMSJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GJHWY3ZX.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-GJMLK5UT.js} +2 -2
  96. package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-GRCIBCJ2.js} +2 -2
  97. package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-GWZZ7DAO.js} +2 -2
  98. package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-GZLZCZ42.js} +2 -2
  99. package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-H2PYU7MN.js} +1 -1
  100. package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-H32EPIR2.js} +1 -1
  101. package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-H74Q7TJN.js} +1 -1
  102. package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
  103. package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-I33O4BRQ.js} +2 -2
  104. package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-IKISCIGH.js} +2 -2
  105. package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-IPJ7Q3AJ.js} +1 -1
  106. package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-IU2IV4NE.js} +1 -1
  107. package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-JHIY4VCC.js} +2 -2
  108. package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-KG336OV3.js} +2 -2
  109. package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-KI73QCR5.js} +2 -2
  110. package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-KNQ2ERFX.js} +2 -2
  111. package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-KOBVYY6H.js} +2 -2
  112. package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-KSIWGGJI.js} +8 -8
  113. package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LMS3Y7JD.js} +2 -2
  114. package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-LQEURY7C.js} +1 -1
  115. package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-LRZY4KS2.js} +2 -2
  116. package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-M2QV7PT7.js} +2 -2
  117. package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-MA7JIQ6U.js} +2 -2
  118. package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-MG27QY4D.js} +2 -2
  119. package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
  120. package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
  121. package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
  122. package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-NGKNYIQZ.js} +1 -1
  123. package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
  124. package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-NPPHWFA2.js} +3 -3
  125. package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-NSHU347M.js} +1 -1
  126. package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-NVYIZCSR.js} +2 -2
  127. package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-NW5JUCCG.js} +1 -1
  128. package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-NZYLNXT6.js} +3 -3
  129. package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-OBAREPDC.js} +2 -2
  130. package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-ODJNUMV3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-OEKP73MC.js} +2 -2
  132. package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-OPFGRS5S.js} +2 -2
  133. package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-OY2AHLSF.js} +1 -1
  134. package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-OY3NJNP2.js} +1 -1
  135. package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-PCEW6Q2C.js} +1 -1
  136. package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-PFG6VQ5Z.js} +2 -2
  137. package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-PGYMKGOE.js} +2 -2
  138. package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-PPSAMXYN.js} +3 -3
  139. package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
  140. package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-RPHY2DU6.js} +2 -2
  141. package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-RWWOHCMG.js} +25 -20
  142. package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-S75EYIJG.js} +1 -1
  143. package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-SKQUUE4F.js} +5 -5
  144. package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
  145. package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-SU5H66SD.js} +2 -2
  146. package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-SY2IB442.js} +2 -2
  147. package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-TBLI254A.js} +2 -2
  148. package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-TNMBRDCA.js} +3 -3
  149. package/dist/cli/chunks/{chunk-P2CXVNKK.js → chunk-TYFZXDGZ.js} +2 -2
  150. package/dist/cli/chunks/{chunk-2XITOPYV.js → chunk-U4OICXV2.js} +2 -2
  151. package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-U53ZB4IX.js} +2 -2
  152. package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
  153. package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-UCJMVXO4.js} +2 -2
  154. package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-UHTTW3IT.js} +2 -2
  155. package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-V2M2XCR5.js} +1 -1
  156. package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-V2RSNVMW.js} +1 -1
  157. package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-V6JBOIMX.js} +1 -1
  158. package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-VFKF2XO7.js} +1 -1
  159. package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-VFSYMOAL.js} +2 -2
  160. package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-VJQYDYAJ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-VKRTTFB6.js} +2 -2
  162. package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-VWNFAW2M.js} +2 -2
  163. package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-WBM6N6IM.js} +1 -1
  164. package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-WDQ7IEZY.js} +2 -2
  165. package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-WDVRE6GN.js} +2 -2
  166. package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-WQ4PYWSW.js} +1 -1
  167. package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-WSF24I3D.js} +2 -2
  168. package/dist/cli/chunks/{chunk-6YL6JOQB.js → chunk-XBVUVFJK.js} +2 -2
  169. package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-XEB3NLJR.js} +2 -2
  170. package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-XFVTGAAJ.js} +2 -2
  171. package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-XLZYRTNO.js} +2 -2
  172. package/dist/cli/chunks/{chunk-AR2E4B7K.js → chunk-XUZDBQ5X.js} +5 -5
  173. package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-Y76IAYQD.js} +1 -1
  174. package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-YAKGBHO4.js} +2 -2
  175. package/dist/cli/chunks/{chunk-JK2ME6IT.js → chunk-YBSBABOS.js} +2 -2
  176. package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-YCGP5VFP.js} +2 -2
  177. package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-YDAQK5UF.js} +1 -1
  178. package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-YK3BVZY6.js} +2 -2
  179. package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-YK7JN5N7.js} +4 -4
  180. package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-YKMU4LBV.js} +1 -1
  181. package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-YYTGXD3R.js} +2 -2
  182. package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-Z2O2YJAF.js} +2 -2
  183. package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-Z7IYW5U7.js} +1 -1
  184. package/dist/cli/chunks/{chunk-XZJ2O3VC.js → chunk-ZG5666GJ.js} +1 -1
  185. package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-ZXPY654C.js} +1 -1
  186. package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-MSKMVH5X.js} +2 -2
  187. package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-7ODMNAUM.js} +2 -2
  188. package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-FXZ7ZZW3.js} +2 -2
  189. package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-4VOUEPOX.js} +2 -2
  190. package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-7D4SGLM4.js} +2 -2
  191. package/dist/cli/chunks/client-POSVREVS.js +2 -0
  192. package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-WRRT7BGQ.js} +2 -2
  193. package/dist/cli/chunks/{code-ONKLMVQ2.js → code-ZDJRIL3S.js} +3 -3
  194. package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4S4SHM56.js} +2 -2
  195. package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-YTRHNDWR.js} +2 -2
  196. package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-6N64JUXJ.js} +2 -2
  197. package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
  198. package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-IIDR66LB.js} +2 -2
  199. package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-SVVFY3S2.js} +2 -2
  200. package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
  201. package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-VGFS6IBX.js} +2 -2
  202. package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B7MCGNTE.js} +3 -3
  203. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
  204. package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-UPETT57E.js} +2 -2
  205. package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
  206. package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-CQFNZLXU.js} +3 -3
  207. package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-PJVABHON.js} +2 -2
  208. package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-56SKAGWX.js} +2 -2
  209. package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-UYTYUMLN.js} +2 -2
  210. package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-YOYLBYJE.js} +2 -2
  211. package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-7TARX2XF.js} +2 -2
  212. package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
  213. package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
  214. package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
  215. package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-GNB574IM.js} +2 -2
  216. package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
  217. package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-KTZ5SF54.js} +2 -2
  218. package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-ITX5LQ57.js} +2 -2
  219. package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-KFHSR5YF.js} +2 -2
  220. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
  221. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
  222. package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-RLFW3GSX.js} +2 -2
  223. package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-EM2URCYZ.js} +4 -4
  224. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
  225. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
  226. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
  227. package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
  228. package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-CBP73QHY.js} +2 -2
  229. package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-IP7XE34Z.js} +34 -34
  230. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
  231. package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-ONAYHU25.js} +2 -2
  232. package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-VINJRAID.js} +3 -3
  233. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
  234. package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-RYVV5R3Z.js} +2 -2
  235. package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-MPRGWMOE.js} +6 -6
  236. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
  237. package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
  238. package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-OPD7JBRL.js} +2 -2
  239. package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-M4OPUNK2.js} +2 -2
  240. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
  241. package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-4UWTQLMF.js} +24 -24
  242. package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-SQ56FF6Z.js} +4 -4
  243. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
  244. package/dist/cli/chunks/{load-ZM43WGDO.js → load-HPHKDGGL.js} +2 -2
  245. package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
  246. package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
  247. package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-PFQ3KPVJ.js} +5 -5
  248. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
  249. package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
  250. package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-3VDRX6TZ.js} +2 -2
  251. package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-PJ576R63.js} +2 -2
  252. package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-72QP4UU7.js} +63 -19
  253. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
  254. package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-754YQW7C.js} +2 -2
  255. package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
  256. package/dist/cli/chunks/{platform-KJDABL5C.js → platform-3E3DXLYB.js} +2 -2
  257. package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-7FUQAKRE.js} +2 -2
  258. package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
  259. package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
  260. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
  261. package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-BQRYMUTG.js} +2 -2
  262. package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-H52QGC6B.js} +2 -2
  263. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
  264. package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-QO4XPAUM.js} +2 -2
  265. package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-FBKE5E6F.js} +3 -3
  266. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
  267. package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RWGOVOXO.js} +2 -2
  268. package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-LF76ZOBD.js} +2 -2
  269. package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-3BYEBTQ7.js} +2 -2
  270. package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
  271. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
  272. package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-DST7BVCU.js} +2 -2
  273. package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-XE32PGKC.js} +2 -2
  274. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
  275. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
  276. package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
  277. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
  278. package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
  279. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
  280. package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
  281. package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
  282. package/dist/cli/chunks/{security-AUDTRX3I.js → security-VSPNKCDS.js} +3 -3
  283. package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
  284. package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
  285. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
  286. package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-O4QUTK6L.js} +2 -2
  287. package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-Z2BP6EOG.js} +2 -2
  288. package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-R36WNLQG.js} +2 -2
  289. package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
  290. package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-QF5Y3EMZ.js} +2 -2
  291. package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-43PYE75J.js} +2 -2
  292. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
  293. package/dist/cli/chunks/{test-XFSGQELD.js → test-UWA377D4.js} +16 -16
  294. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
  295. package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-YQZPJRRN.js} +3 -3
  296. package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
  297. package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-DO6WLMXP.js} +2 -2
  298. package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-H5RGFKVO.js} +2 -2
  299. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
  300. package/dist/cli/chunks/{types-JTWLBAZJ.js → types-PJS2FGPF.js} +2 -2
  301. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
  302. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
  303. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
  304. package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-4IC4F6AB.js} +2 -2
  305. package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-DHUWW7PF.js} +2 -2
  306. package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-OERQNOX5.js} +2 -2
  307. package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
  308. package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-TV7DMKES.js} +2 -2
  309. package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-QZPWSH37.js} +2 -2
  310. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
  311. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
  312. package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
  313. package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-YXENHB42.js} +2 -2
  314. package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-HL26AGFO.js} +2 -2
  315. package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-EOVVCN2E.js} +4 -4
  316. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
  317. package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
  318. package/dist/cli/commands/fleet.js +19 -12
  319. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  320. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  322. package/dist/cli/commands/learning.js +5 -3
  323. package/dist/cli/commands/ruvector-commands.js +2 -1
  324. package/dist/cli/commands/test.js +6 -0
  325. package/dist/cli/utils/ci-output.d.ts +9 -0
  326. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  327. package/dist/cli/utils/fleet-operation.js +71 -0
  328. package/dist/cli/utils/fleet-result.d.ts +31 -0
  329. package/dist/cli/utils/fleet-result.js +124 -0
  330. package/dist/context/sources/git-source.js +6 -2
  331. package/dist/coordination/handlers/code-intelligence-handlers.js +60 -5
  332. package/dist/coordination/handlers/coverage-handlers.js +10 -1
  333. package/dist/coordination/handlers/requirements-handlers.js +16 -2
  334. package/dist/coordination/handlers/security-handlers.js +11 -1
  335. package/dist/coordination/handlers/test-execution-handlers.js +25 -7
  336. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  337. package/dist/coordination/mincut/queen-integration.js +83 -6
  338. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +2 -6
  339. package/dist/coordination/protocols/learning-consolidation-archive.js +4 -27
  340. package/dist/coordination/protocols/learning-consolidation.d.ts +24 -0
  341. package/dist/coordination/protocols/learning-consolidation.js +71 -22
  342. package/dist/coordination/queen-coordinator.d.ts +1 -1
  343. package/dist/coordination/queen-coordinator.js +19 -7
  344. package/dist/coordination/queen-event-handlers.js +13 -0
  345. package/dist/coordination/queen-task-management.d.ts +18 -24
  346. package/dist/coordination/queen-task-management.js +62 -168
  347. package/dist/coordination/queen-task-queue.d.ts +41 -0
  348. package/dist/coordination/queen-task-queue.js +194 -0
  349. package/dist/coordination/queen-types.d.ts +1 -1
  350. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  351. package/dist/coordination/queen-work-stealing.js +7 -4
  352. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  353. package/dist/coordination/result-saver-adapters.js +57 -0
  354. package/dist/coordination/result-saver.d.ts +1 -1
  355. package/dist/coordination/result-saver.js +8 -5
  356. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  357. package/dist/domains/code-intelligence/index-path-guard.d.ts +5 -2
  358. package/dist/domains/code-intelligence/index-path-guard.js +20 -50
  359. package/dist/domains/code-intelligence/plugin.js +5 -1
  360. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  361. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  362. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  363. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  364. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  365. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  366. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  367. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  368. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  369. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  370. package/dist/domains/defect-intelligence/plugin.js +11 -2
  371. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  372. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  373. package/dist/domains/defect-intelligence/services/defect-predictor.js +25 -10
  374. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  375. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  376. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  377. package/dist/domains/learning-optimization/active-patterns.d.ts +2 -2
  378. package/dist/domains/learning-optimization/active-patterns.js +2 -2
  379. package/dist/domains/learning-optimization/coordinator.js +9 -5
  380. package/dist/domains/learning-optimization/interfaces.d.ts +6 -2
  381. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  382. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  383. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  384. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  385. package/dist/domains/learning-optimization/reward-source.d.ts +13 -0
  386. package/dist/domains/learning-optimization/reward-source.js +8 -1
  387. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +5 -3
  388. package/dist/domains/learning-optimization/services/learning-coordinator.js +45 -58
  389. package/dist/domains/security-compliance/plugin.js +17 -3
  390. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  391. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  392. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  393. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  394. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  395. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  396. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  397. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  398. package/dist/domains/test-execution/coordinator.d.ts +5 -0
  399. package/dist/domains/test-execution/coordinator.js +35 -20
  400. package/dist/domains/test-execution/interfaces.d.ts +25 -0
  401. package/dist/domains/test-execution/plugin.js +19 -4
  402. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  403. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  404. package/dist/domains/test-execution/services/runner-test-cases.d.ts +11 -0
  405. package/dist/domains/test-execution/services/runner-test-cases.js +20 -2
  406. package/dist/domains/test-execution/services/test-executor.js +8 -8
  407. package/dist/domains/test-generation/plugin.js +7 -2
  408. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  409. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  410. package/dist/hooks/cross-phase-hooks.js +2 -1
  411. package/dist/init/phases/10-workers.js +50 -6
  412. package/dist/integrations/browser/agent-browser/client.js +37 -52
  413. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  414. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  415. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  416. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  417. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  418. package/dist/integrations/vibium/client.js +2 -2
  419. package/dist/integrations/vibium/runtime.d.ts +1 -1
  420. package/dist/integrations/vibium/runtime.js +14 -11
  421. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  422. package/dist/kernel/unified-memory-schemas.js +3 -2
  423. package/dist/kernel/unified-memory.js +25 -6
  424. package/dist/learning/dream/dream-commit.d.ts +65 -0
  425. package/dist/learning/dream/dream-commit.js +104 -0
  426. package/dist/learning/dream/dream-engine.d.ts +81 -31
  427. package/dist/learning/dream/dream-engine.js +225 -168
  428. package/dist/learning/dream/dream-insights-pruner.d.ts +9 -3
  429. package/dist/learning/dream/dream-insights-pruner.js +16 -30
  430. package/dist/learning/dream/index.d.ts +3 -2
  431. package/dist/learning/dream/index.js +3 -1
  432. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  433. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  434. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  435. package/dist/learning/dream/speculative-dreamer.js +64 -111
  436. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  437. package/dist/learning/dream/spreading-activation.js +15 -6
  438. package/dist/learning/experience-capture.d.ts +9 -0
  439. package/dist/learning/experience-capture.js +18 -4
  440. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  441. package/dist/learning/qe-reasoning-bank.js +22 -11
  442. package/dist/learning/sqlite-persistence.d.ts +6 -0
  443. package/dist/learning/sqlite-persistence.js +16 -2
  444. package/dist/learning/usage-outcome.d.ts +68 -0
  445. package/dist/learning/usage-outcome.js +84 -0
  446. package/dist/mcp/background-workers.d.ts +13 -1
  447. package/dist/mcp/background-workers.js +17 -3
  448. package/dist/mcp/bundle.js +607 -580
  449. package/dist/mcp/handlers/core-handlers.js +11 -0
  450. package/dist/mcp/handlers/domain-handler-configs.d.ts +5 -0
  451. package/dist/mcp/handlers/domain-handler-configs.js +11 -3
  452. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  453. package/dist/mcp/handlers/handler-factory.js +36 -15
  454. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  455. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  456. package/dist/mcp/handlers/task-handlers.d.ts +3 -0
  457. package/dist/mcp/handlers/task-handlers.js +35 -8
  458. package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
  459. package/dist/mcp/protocol-server.js +2 -0
  460. package/dist/mcp/security/schema-validator.js +3 -2
  461. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  462. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  463. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  464. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  465. package/dist/mcp/tools/learning-optimization/optimize.d.ts +18 -2
  466. package/dist/mcp/tools/learning-optimization/optimize.js +58 -10
  467. package/dist/mcp/tools/quality-assessment/gate.js +12 -1
  468. package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
  469. package/dist/migration/agent-compat.js +7 -5
  470. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  471. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  472. package/dist/shared/git/git-analyzer.d.ts +49 -0
  473. package/dist/shared/git/git-analyzer.js +159 -319
  474. package/dist/shared/git/git-process.d.ts +22 -0
  475. package/dist/shared/git/git-process.js +37 -0
  476. package/dist/shared/git/index.d.ts +1 -0
  477. package/dist/shared/git/index.js +1 -0
  478. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  479. package/dist/shared/io/payload-path-guard.js +190 -0
  480. package/dist/shared/llm/router/agent-router-config.js +2 -1
  481. package/dist/shared/llm/translation/tool-translator.js +2 -1
  482. package/dist/shared/test-runner-args.d.ts +5 -0
  483. package/dist/shared/test-runner-args.js +6 -1
  484. package/dist/shared/test-runner-process.d.ts +6 -0
  485. package/dist/shared/test-runner-process.js +14 -0
  486. package/dist/shared/test-runner-verdict.d.ts +9 -1
  487. package/dist/shared/test-runner-verdict.js +15 -4
  488. package/dist/shared/utils/namespaced-search.d.ts +14 -0
  489. package/dist/shared/utils/namespaced-search.js +19 -1
  490. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  491. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  492. package/dist/validation/gate-reexecute.js +7 -4
  493. package/dist/workers/daemon.js +13 -1
  494. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  495. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  496. package/dist/workers/workers/defect-predictor.js +48 -49
  497. package/dist/workers/workers/learning-consolidation.d.ts +2 -0
  498. package/dist/workers/workers/learning-consolidation.js +12 -1
  499. package/dist/workflows/browser/workflow-loader.js +8 -5
  500. package/package.json +1 -1
  501. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +0 -2
  502. package/dist/cli/chunks/agent-booster-wasm-427FRKWG.js +0 -2
  503. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +0 -2
  504. package/dist/cli/chunks/base-67DXSAYM.js +0 -2
  505. package/dist/cli/chunks/browser-CT3MTV6G.js +0 -4
  506. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +0 -2
  507. package/dist/cli/chunks/chunk-4URT6JO2.js +0 -2
  508. package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
  509. package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
  510. package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
  511. package/dist/cli/chunks/chunk-G3BKZNFL.js +0 -120
  512. package/dist/cli/chunks/chunk-GR3JYE5A.js +0 -2
  513. package/dist/cli/chunks/chunk-J3WGK22W.js +0 -2
  514. package/dist/cli/chunks/chunk-KHSRIPBP.js +0 -180
  515. package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
  516. package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
  517. package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
  518. package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
  519. package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
  520. package/dist/cli/chunks/client-ZP3CTVRF.js +0 -2
  521. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +0 -2
  522. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +0 -2
  523. package/dist/cli/chunks/daemon-YIFT46FH.js +0 -34
  524. package/dist/cli/chunks/domain-transfer-6EF75EKU.js +0 -2
  525. package/dist/cli/chunks/dream-UDLM6M55.js +0 -2
  526. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +0 -2
  527. package/dist/cli/chunks/fleet-ADL57COA.js +0 -44
  528. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +0 -2
  529. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +0 -2
  530. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +0 -2
  531. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +0 -2
  532. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +0 -2
  533. package/dist/cli/chunks/init-wizard-422UZYQ5.js +0 -2
  534. package/dist/cli/chunks/kernel-N7PJ6FCE.js +0 -2
  535. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +0 -2
  536. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +0 -2
  537. package/dist/cli/chunks/load-test-POMIF4Q4.js +0 -2
  538. package/dist/cli/chunks/mcp-CRZKZE37.js +0 -2
  539. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +0 -2
  540. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +0 -2
  541. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +0 -2
  542. package/dist/cli/chunks/pipeline-5LMLBIJ7.js +0 -19
  543. package/dist/cli/chunks/project-root-X72FSM2F.js +0 -2
  544. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +0 -2
  545. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +0 -2
  546. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +0 -2
  547. package/dist/cli/chunks/router-CXZKOOTR.js +0 -2
  548. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +0 -2
  549. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +0 -2
  550. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +0 -2
  551. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +0 -2
  552. package/dist/cli/chunks/safe-db-WFODRGVZ.js +0 -2
  553. package/dist/cli/chunks/schedule-RO55OQXG.js +0 -2
  554. package/dist/cli/chunks/scheduler-XXMJCH24.js +0 -2
  555. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +0 -2
  556. package/dist/cli/chunks/sync-UVXA6CT2.js +0 -2
  557. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +0 -9
  558. package/dist/cli/chunks/token-bootstrap-EDK6FNQ3.js +0 -2
  559. package/dist/cli/chunks/tree-sitter-wasm-parser-MI3NZKUD.js +0 -2
  560. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +0 -2
  561. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +0 -2
  562. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +0 -2
  563. package/dist/cli/chunks/visual-security-6VZNQLH7.js +0 -2
  564. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +0 -2
  565. package/dist/cli/chunks/witness-chain-TATPXQRK.js +0 -2
  566. package/dist/cli/chunks/witness-chain-repair-2HGJGE7O.js +0 -2
  567. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +0 -2
  568. package/dist/cli/chunks/wrappers-ZD5NBHYI.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 {
@@ -177,6 +177,11 @@ export interface DefectPredictParams {
177
177
  saveResults?: boolean;
178
178
  }
179
179
  export interface DefectPredictResult {
180
+ filesAnalyzed?: number;
181
+ filesSkipped?: number;
182
+ scanStatus?: 'partial' | 'complete';
183
+ predictionMethod?: 'static-code-indicators';
184
+ estimated?: boolean;
180
185
  taskId: string;
181
186
  status: string;
182
187
  predictedDefects: Array<{
@@ -254,12 +254,15 @@ export const testExecuteConfig = {
254
254
  workerStats.loadBalance = loadBalance;
255
255
  else
256
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.
257
260
  let retryStats;
258
- if (MetricsCollector.getRecordedTaskCount() > 0) {
259
- retryStats = { ...MetricsCollector.getRetryStats() };
261
+ if (data.retries && typeof data.retries === 'object') {
262
+ retryStats = { ...data.retries };
260
263
  }
261
264
  else {
262
- markUnmeasured('retryStats', noWorkerData);
265
+ markUnmeasured('retryStats', 'The run reported no retry outcome: no retries were requested, or the retry step failed.');
263
266
  }
264
267
  // No `learning` block: the run's experience is recorded asynchronously by
265
268
  // the learning-optimization plugin from TestRunCompleted, so this response
@@ -735,6 +738,11 @@ export const defectPredictConfig = {
735
738
  mapToResult: (taskId, data, duration, savedFiles) => ({
736
739
  taskId,
737
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
+ } : {}),
738
746
  predictedDefects: data.predictedDefects || [],
739
747
  riskScore: data.riskScore || 0,
740
748
  recommendations: data.recommendations || [],
@@ -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
  }
@@ -646,9 +661,14 @@ export function createDomainHandler(config) {
646
661
  }
647
662
  const result = await executor.execute(task.task);
648
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.
649
669
  return {
650
670
  success: false,
651
- error: result.error || 'Task execution failed',
671
+ error: result.error ? redactLogText(result.error, Number.POSITIVE_INFINITY) : 'Task execution failed',
652
672
  // #996: structured failure context (e.g. status + unmeasured metrics),
653
673
  // only when the failing handler provided it. success stays false.
654
674
  ...(result.errorDetails ? { data: result.errorDetails } : {}),
@@ -664,10 +684,13 @@ export function createDomainHandler(config) {
664
684
  // but is not recorded as successful learning anywhere below.
665
685
  const learnable = isLearnableResult(domain, data) && isLearnableResult('', mappedResult);
666
686
  if (learnable) {
667
- // Step 5b: Record pattern usage on success (Phase 5.3 — fire-and-forget)
668
- 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);
669
692
  // Step 5c: Capture real execution learning (fire-and-forget)
670
- 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
671
694
  // Step 5d: Record feedback for test_outcomes / coverage_sessions
672
695
  try {
673
696
  await recordDomainFeedback(domain, data, result.duration, params);
@@ -689,13 +712,11 @@ export function createDomainHandler(config) {
689
712
  // failure: it is marked for the experience middleware and not recorded
690
713
  // as a pattern-usage failure.
691
714
  const callerError = isCallerInputError(error);
692
- if (!callerError) {
693
- // Record pattern usage on failure (Phase 5.3 — fire-and-forget)
694
- recordPatternUsageAsync(routingResult?.patternHints, false, domain, 0);
695
- }
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.
696
717
  return {
697
718
  success: false,
698
- error: `Failed to ${taskType.replace(/-/g, ' ')}: ${errorMessage}`,
719
+ error: redactLogText(`Failed to ${taskType.replace(/-/g, ' ')}: ${errorMessage}`, Number.POSITIVE_INFINITY),
699
720
  ...(callerError ? { data: { callerError: true } } : {}),
700
721
  };
701
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;
@@ -12,6 +12,7 @@ import { scoreUnjudgedTrajectories } from './trajectory-judge.js';
12
12
  import { toErrorMessage } from '../../shared/error-utils.js';
13
13
  import { ALL_DOMAINS, invalidPriorityMessage, isDomainName, isPriority } from '../../shared/types/index.js';
14
14
  import { validateIndexPaths, validateIndexTaskPayload } from '../../domains/code-intelligence/index-path-guard.js';
15
+ import { routeInferredTask } from './orchestrate-routes.js';
15
16
  // ============================================================================
16
17
  // Task Type to Workflow Mapping (Issue #206)
17
18
  // Maps TaskTypes to their associated workflow IDs for auto-execution
@@ -357,10 +358,19 @@ export async function handleTaskOrchestrate(params) {
357
358
  },
358
359
  };
359
360
  }
360
- // No workflow - submit as a regular task
361
- // #1081: the inferred type must have a domain handler. Otherwise the Queen
362
- // can only fail the task at dispatch, so reject it here with the reason.
363
- const executable = queen.validateTaskExecutable(taskType);
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);
364
374
  if (!executable.success) {
365
375
  return {
366
376
  success: false,
@@ -384,10 +394,15 @@ export async function handleTaskOrchestrate(params) {
384
394
  taskPayload.language = taskPayload.language || 'typescript';
385
395
  taskPayload.testType = taskPayload.testType || 'unit';
386
396
  }
397
+ if (taskType === 'index-code') {
398
+ taskPayload.paths = params.filePaths || [];
399
+ }
400
+ if (route.kind === 'route')
401
+ Object.assign(taskPayload, route.payload);
387
402
  const result = await queen.submitTask({
388
- type: taskType,
403
+ type: submitType,
389
404
  priority,
390
- targetDomains: [],
405
+ targetDomains,
391
406
  payload: {
392
407
  ...taskPayload,
393
408
  // ADR-051: Include routing decision in payload for downstream processing
@@ -452,7 +467,8 @@ export async function handleTaskOrchestrate(params) {
452
467
  success: true,
453
468
  data: {
454
469
  taskId,
455
- type: taskType,
470
+ type: submitType,
471
+ ...(submitType !== taskType ? { inferredType: taskType } : {}),
456
472
  priority,
457
473
  strategy: params.strategy || 'adaptive',
458
474
  status: 'submitted',
@@ -658,6 +674,14 @@ function inferDomainFromDescription(description) {
658
674
  /**
659
675
  * Infer task type from description
660
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('|'));
661
685
  function inferTaskType(description) {
662
686
  const lower = description.toLowerCase();
663
687
  // Check execution first (more specific patterns)
@@ -665,7 +689,10 @@ function inferTaskType(description) {
665
689
  /execute\s+(?:\w+\s+)*tests?/.test(lower) ||
666
690
  lower.includes('run tests') ||
667
691
  lower.includes('execute tests')) {
668
- 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';
669
696
  }
670
697
  // Then check generation
671
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,
@@ -655,6 +655,7 @@ export class MCPProtocolServer {
655
655
  isCacheable: false,
656
656
  parameters: [
657
657
  { name: 'domain', type: 'string', description: 'Specific domain to check' },
658
+ { name: 'detailed', type: 'boolean', description: 'Include per-domain health, issues and the MinCut reading (raw minCut status/value, and the fleet reading without task-scoped agents that decides status)', default: false },
658
659
  ],
659
660
  },
660
661
  handler: (params) => handleFleetHealth(params),
@@ -720,6 +721,7 @@ export class MCPProtocolServer {
720
721
  parameters: [
721
722
  { name: 'task', type: 'string', description: 'Task description', required: true },
722
723
  { name: 'strategy', type: 'string', description: 'Execution strategy', enum: ['parallel', 'sequential', 'adaptive'] },
724
+ { name: 'filePaths', type: 'array', description: 'Project files the task works on. A security scan or quality assessment runs on these files and is refused without them.', items: { type: 'string' } },
723
725
  ],
724
726
  },
725
727
  handler: (params) => handleTaskOrchestrate(params),
@@ -451,7 +451,8 @@ export class SchemaValidator {
451
451
  // Check required properties
452
452
  if (schema.required) {
453
453
  for (const required of schema.required) {
454
- if (!(required in data)) {
454
+ // #1136: own properties only; an inherited `constructor` is not present.
455
+ if (!Object.hasOwn(data, required)) {
455
456
  errors.push({
456
457
  path: path ? `${path}.${required}` : required,
457
458
  message: `Required property '${required}' is missing`,
@@ -464,7 +465,7 @@ export class SchemaValidator {
464
465
  // Validate properties
465
466
  if (schema.properties) {
466
467
  for (const [key, propSchema] of Object.entries(schema.properties)) {
467
- if (key in data) {
468
+ if (Object.hasOwn(data, key)) {
468
469
  this.validateValue(data[key], propSchema, path ? `${path}.${key}` : key, `${schemaPath}/properties/${key}`, errors);
469
470
  }
470
471
  }
@@ -15,6 +15,7 @@ import { KnowledgeGraphService } from '../../../domains/code-intelligence/servic
15
15
  import { createKnowledgeGraphRelationshipResolver } from '../../../domains/code-intelligence/services/c4-model/kg-relationships.js';
16
16
  import { InMemoryEventBus } from '../../../kernel/event-bus.js';
17
17
  import { toErrorMessage } from '../../../shared/error-utils.js';
18
+ import { requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
18
19
  const want = (level, l) => level === 'all' || level === l;
19
20
  // ============================================================================
20
21
  // Tool Implementation
@@ -53,7 +54,16 @@ export class CodeC4Tool extends MCPToolBase {
53
54
  return this.searchService;
54
55
  }
55
56
  async execute(params, context) {
56
- const { action, projectPath = '.', level = 'all', query, limit = 10 } = params;
57
+ const { action, projectPath: requestedPath = '.', level = 'all', query, limit = 10 } = params;
58
+ // #1126: analyse (and report package names from) only a directory inside
59
+ // the project.
60
+ let projectPath = requestedPath;
61
+ if (requestedPath !== '.') {
62
+ const confined = await requirePayloadPath('qe/code/c4', 'projectPath', requestedPath, { allowDirectory: true });
63
+ if (!confined.success)
64
+ return { success: false, error: confined.error.message };
65
+ projectPath = confined.value;
66
+ }
57
67
  try {
58
68
  if (this.isAborted(context)) {
59
69
  return { success: false, error: 'Operation aborted' };
@@ -12,6 +12,27 @@ import { CoverageAnalyzerService } from '../../../domains/coverage-analysis/serv
12
12
  import { GapDetectorService } from '../../../domains/coverage-analysis/services/gap-detector.js';
13
13
  import { findAndParseCoverage, parseCoverage, } from '../../../domains/coverage-analysis/services/coverage-parser.js';
14
14
  import { toErrorMessage } from '../../../shared/error-utils.js';
15
+ import { requirePayloadPath } from '../../../shared/io/payload-path-guard.js';
16
+ /**
17
+ * #1126: a caller-named coverage report must be a regular file inside the
18
+ * project (never /dev/zero or /proc/self/environ), and a target a directory
19
+ * inside it. Returns the real paths to read, or an error naming the refusal.
20
+ */
21
+ async function confineCoverageInputs(tool, target, coverageFile) {
22
+ let confinedTarget = target;
23
+ if (target !== '.') {
24
+ const t = await requirePayloadPath(tool, 'target', target, { allowDirectory: true, allowMissing: true });
25
+ if (!t.success)
26
+ return { error: t.error.message };
27
+ confinedTarget = t.value;
28
+ }
29
+ if (coverageFile === undefined)
30
+ return { target: confinedTarget };
31
+ const f = await requirePayloadPath(tool, 'coverageFile', coverageFile);
32
+ if (!f.success)
33
+ return { error: f.error.message };
34
+ return { target: confinedTarget, coverageFile: f.value };
35
+ }
15
36
  // ============================================================================
16
37
  // Helper: Calculate Coverage Summary from Files
17
38
  // ============================================================================
@@ -93,8 +114,12 @@ export class CoverageAnalyzeTool extends MCPToolBase {
93
114
  return this.analyzerService;
94
115
  }
95
116
  async execute(params, context) {
96
- const { target = '.', coverageFile, thresholds = { lines: 80, branches: 70, functions: 80, statements: 80 }, includeRisk = false, includeRiskScoring = false, dryRun = false, coverageFormat, language, } = params;
117
+ const { target: requestedTarget = '.', coverageFile: requestedCoverageFile, thresholds = { lines: 80, branches: 70, functions: 80, statements: 80 }, includeRisk = false, includeRiskScoring = false, dryRun = false, coverageFormat, language, } = params;
97
118
  const shouldIncludeRisk = includeRisk || includeRiskScoring;
119
+ const confined = await confineCoverageInputs('qe/coverage/analyze', requestedTarget, requestedCoverageFile);
120
+ if ('error' in confined)
121
+ return { success: false, error: confined.error };
122
+ const { target, coverageFile } = confined;
98
123
  try {
99
124
  this.emitStream(context, {
100
125
  status: 'analyzing',
@@ -309,7 +334,11 @@ export class CoverageGapsTool extends MCPToolBase {
309
334
  return this.gapService;
310
335
  }
311
336
  async execute(params, context) {
312
- const { target = '.', coverageFile, minRisk = 0.3, limit = 20, prioritization = 'complexity', coverageFormat, language, } = params;
337
+ const { target: requestedTarget = '.', coverageFile: requestedCoverageFile, minRisk = 0.3, limit = 20, prioritization = 'complexity', coverageFormat, language, } = params;
338
+ const confined = await confineCoverageInputs('qe/coverage/gaps', requestedTarget, requestedCoverageFile);
339
+ if ('error' in confined)
340
+ return { success: false, error: confined.error };
341
+ const { target, coverageFile } = confined;
313
342
  try {
314
343
  this.emitStream(context, {
315
344
  status: 'detecting',
@@ -52,6 +52,8 @@ export interface DreamResultSummary {
52
52
  nodesActivated: number;
53
53
  };
54
54
  patternsCreated: number;
55
+ /** #1060: how long the dream's single commit transaction held the write lock, in ms */
56
+ commitDurationMs?: number;
55
57
  }
56
58
  export interface InsightSummary {
57
59
  id: string;
@@ -91,19 +93,17 @@ export interface DreamStatusResult {
91
93
  export declare class DreamCycleTool extends MCPToolBase<DreamCycleParams, DreamCycleToolResult> {
92
94
  readonly config: MCPToolConfig;
93
95
  private engine;
94
- private engineConfig;
96
+ /** #1060: the one in-flight engine creation, so concurrent calls share it. */
97
+ private enginePending;
95
98
  /**
96
99
  * Get or create the DreamEngine instance.
97
100
  *
98
- * If config differs from the cached engine's config, the engine is
99
- * recreated to respect the new configuration. This prevents the bug
100
- * where subsequent calls with different durationMs/minPatterns were ignored.
101
+ * #1060: one engine for the tool's lifetime. Duration and the minimum
102
+ * concept count are passed per call to dream(), so a call with different
103
+ * values no longer closes and recreates the engine (which interrupted a
104
+ * dream still running on it).
101
105
  */
102
106
  private getEngine;
103
- /**
104
- * Compare two configs for equality (shallow comparison of relevant fields)
105
- */
106
- private configsEqual;
107
107
  /**
108
108
  * Load patterns from ReasoningBank into the DreamEngine
109
109
  *