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
@@ -14,8 +14,13 @@ export interface QueenWorkStealingContext {
14
14
  getIdleDomains(): DomainName[];
15
15
  getBusyDomains(): DomainName[];
16
16
  getDomainLoad(domain: DomainName): number;
17
+ /** #1140: free Queen slots; a steal starts a task, so it needs one */
18
+ availableSlots(): number;
19
+ /** #1124: the domain is configured for the task and its plugin can execute it */
20
+ canExecuteInDomain(domain: DomainName, task: QueenTask): boolean;
17
21
  removeFromQueues(task: QueenTask): void;
18
- assignTaskToDomain(task: QueenTask, domain: DomainName): Promise<void>;
22
+ /** Dispatch a stolen task; resolves whether it now runs in `domain`. */
23
+ assignTaskToDomain(task: QueenTask, domain: DomainName): Promise<boolean>;
19
24
  publishEvent(type: string, payload: Record<string, unknown>): Promise<void>;
20
25
  }
21
26
  /**
@@ -4,7 +4,6 @@
4
4
  * exponential backoff and automatic disable on repeated failures.
5
5
  */
6
6
  import { toErrorMessage } from '../shared/error-utils.js';
7
- import { canDomainHandleTask } from './queen-task-management.js';
8
7
  // ============================================================================
9
8
  // Work stealing algorithm
10
9
  // ============================================================================
@@ -26,14 +25,18 @@ export async function triggerWorkStealing(ctx) {
26
25
  break;
27
26
  const queue = ctx.domainQueues.get(busyDomain) || [];
28
27
  const stealCount = Math.min(queue.length, ctx.config.workStealing.stealBatchSize);
29
- for (let i = 0; i < stealCount && idleDomains.length > 0; i++) {
30
- const task = queue.find(t => canDomainHandleTask(idleDomains[0], t));
28
+ // #1140: each steal takes a slot, so stop when none is free.
29
+ for (let i = 0; i < stealCount && idleDomains.length > 0 && ctx.availableSlots() > 0; i++) {
30
+ const task = queue.find(t => ctx.canExecuteInDomain(idleDomains[0], t));
31
31
  if (task) {
32
32
  const stealerDomain = idleDomains.shift();
33
33
  ctx.removeFromQueues(task);
34
+ // #1124: a task that is not running afterwards (already terminal, or
35
+ // failed at assignment) was not stolen.
36
+ if (!await ctx.assignTaskToDomain(task, stealerDomain))
37
+ continue;
34
38
  // SEC-003 Simplified: Log work stealing for observability
35
39
  ctx.auditLogger.logSteal(task.id, busyDomain, stealerDomain);
36
- await ctx.assignTaskToDomain(task, stealerDomain);
37
40
  stolenCount++;
38
41
  ctx.tasksStolen++;
39
42
  await ctx.publishEvent('TaskStolen', {
@@ -0,0 +1,15 @@
1
+ /**
2
+ * #1125 review: task_orchestrate and `aqe fleet run` now submit the domains'
3
+ * concrete handler types (sast-scan, analyze-quality) for the abstract types
4
+ * scan-security and assess-quality. These adapters map those handler results
5
+ * onto the report shapes ResultSaver already writes, so they are saved by the
6
+ * security and quality savers rather than as generic JSON. Nothing missing
7
+ * from a result is filled in: absent values stay absent.
8
+ */
9
+ import type { TaskType } from './queen-types.js';
10
+ /** The saver type and report for a task result; other types pass through. */
11
+ export declare function resultForSaver(taskType: string, result: unknown): {
12
+ saveType: TaskType;
13
+ report: unknown;
14
+ };
15
+ //# sourceMappingURL=result-saver-adapters.d.ts.map
@@ -0,0 +1,57 @@
1
+ const asRecord = (value) => value !== null && typeof value === 'object' ? value : {};
2
+ /** sast-scan's SASTResult -> the scan-security report shape. */
3
+ function securityReport(result) {
4
+ const data = asRecord(result);
5
+ const summary = asRecord(data.summary);
6
+ const findings = Array.isArray(data.vulnerabilities) ? data.vulnerabilities : [];
7
+ const count = (severity) => typeof summary[severity] === 'number' ? summary[severity] : 0;
8
+ return {
9
+ vulnerabilities: findings.length,
10
+ critical: count('critical'),
11
+ high: count('high'),
12
+ medium: count('medium'),
13
+ low: count('low'),
14
+ topVulnerabilities: findings.slice(0, 10).map(f => ({
15
+ type: f.title ?? f.category ?? 'finding',
16
+ severity: f.severity ?? 'unknown',
17
+ file: f.location?.file ?? '',
18
+ line: f.location?.line ?? 0,
19
+ })),
20
+ findings: findings.map(f => ({
21
+ title: f.title, type: f.category, severity: f.severity ?? 'unknown', location: f.location?.file
22
+ ? { file: f.location.file, line: f.location.line } : undefined, description: f.description,
23
+ })),
24
+ recommendations: [],
25
+ evidence: data.evidence,
26
+ coverage: data.coverage,
27
+ analysisDepth: 'sast-patterns',
28
+ };
29
+ }
30
+ /** analyze-quality's analysis -> the assess-quality report shape. No gate runs. */
31
+ function qualityReport(result) {
32
+ const data = asRecord(result);
33
+ const score = asRecord(data.score);
34
+ const metrics = Array.isArray(data.metrics) ? data.metrics : [];
35
+ const unmeasured = Array.isArray(data.unmeasured)
36
+ ? data.unmeasured.map(u => u.metric).filter((m) => !!m)
37
+ : [];
38
+ return {
39
+ ...(typeof score.overall === 'number' ? { qualityScore: score.overall } : {}),
40
+ passed: false,
41
+ gateEvaluated: false,
42
+ metrics: Object.fromEntries(metrics.filter(m => m.name && typeof m.value === 'number').map(m => [m.name, m.value])),
43
+ recommendations: Array.isArray(data.recommendations) ? data.recommendations : [],
44
+ unmeasured,
45
+ evidenceStatus: unmeasured.length > 0 ? 'insufficient-evidence' : 'measured',
46
+ scoreBasis: metrics.map(m => m.name).filter((m) => !!m),
47
+ };
48
+ }
49
+ /** The saver type and report for a task result; other types pass through. */
50
+ export function resultForSaver(taskType, result) {
51
+ switch (taskType) {
52
+ case 'sast-scan': return { saveType: 'scan-security', report: securityReport(result) };
53
+ case 'analyze-quality': return { saveType: 'assess-quality', report: qualityReport(result) };
54
+ default: return { saveType: taskType, report: result };
55
+ }
56
+ }
57
+ //# sourceMappingURL=result-saver-adapters.js.map
@@ -58,7 +58,7 @@ export declare class ResultSaver {
58
58
  /**
59
59
  * Save task result in appropriate format(s)
60
60
  */
61
- save(taskId: string, taskType: TaskType, result: unknown, options?: SaveOptions): Promise<SavedResult>;
61
+ save(taskId: string, taskType: TaskType, taskResult: unknown, options?: SaveOptions): Promise<SavedResult>;
62
62
  private saveTestGeneration;
63
63
  private saveCoverage;
64
64
  private saveSecurityScan;
@@ -7,6 +7,7 @@ import * as path from 'path';
7
7
  import { createHash, randomBytes } from 'crypto';
8
8
  import { safeJsonParse } from '../shared/safe-json.js';
9
9
  import { getProjectStorePath } from '../kernel/project-root.js';
10
+ import { resultForSaver } from './result-saver-adapters.js';
10
11
  /** Cap on the sanitized stem of a generated test file name (see generatedTestFilename). */
11
12
  const MAX_GENERATED_STEM_LENGTH = 100;
12
13
  function securityReportExecution(data) {
@@ -92,12 +93,14 @@ export class ResultSaver {
92
93
  /**
93
94
  * Save task result in appropriate format(s)
94
95
  */
95
- async save(taskId, taskType, result, options = {}) {
96
+ async save(taskId, taskType, taskResult, options = {}) {
97
+ // #1125: concrete handler types are saved by their abstract type's saver.
98
+ const { saveType, report: result } = resultForSaver(taskType, taskResult);
96
99
  const timestamp = new Date();
97
100
  const files = [];
98
101
  // Database-free mode (#534): do not write .agentic-qe/results/* to disk.
99
102
  if (process.env.AQE_MEMORY_BACKEND === 'memory') {
100
- return { taskId, taskType, timestamp, files, summary: this.extractSummary(taskType, result) };
103
+ return { taskId, taskType, timestamp, files, summary: this.extractSummary(saveType, result) };
101
104
  }
102
105
  // Ensure directories exist
103
106
  await this.ensureDirectories(taskType);
@@ -110,7 +113,7 @@ export class ResultSaver {
110
113
  const tsStr = this.formatTimestamp(timestamp);
111
114
  const prefix = options.filenamePrefix || `${tsStr}_${this.uniqueSuffix(taskId)}`;
112
115
  // Save based on task type
113
- switch (taskType) {
116
+ switch (saveType) {
114
117
  case 'generate-tests':
115
118
  files.push(...await this.saveTestGeneration(result, prefix, options));
116
119
  break;
@@ -140,10 +143,10 @@ export class ResultSaver {
140
143
  break;
141
144
  default:
142
145
  // Generic JSON save for unknown types
143
- files.push(...await this.saveGeneric(taskType, result, prefix));
146
+ files.push(...await this.saveGeneric(saveType, result, prefix));
144
147
  }
145
148
  // Update index
146
- const summary = this.extractSummary(taskType, result);
149
+ const summary = this.extractSummary(saveType, result);
147
150
  await this.updateIndex(taskId, taskType, timestamp, files, summary);
148
151
  return {
149
152
  taskId,
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Agentic QE v3 - Task DAG Graph Algorithms
3
+ * ADR-064 Phase 1E: topological sort (Kahn), cycle detection (DFS
4
+ * coloring) and critical path (longest-path DP) over a TaskDAG's edges.
5
+ *
6
+ * Edges that point at IDs not present in `nodes` (missing or removed
7
+ * prerequisites) are ignored for ordering purposes.
8
+ */
9
+ import type { DAGTask } from './types.js';
10
+ /** Read-only view of the graph used by the algorithms */
11
+ export interface DAGGraphView {
12
+ readonly nodes: ReadonlyMap<string, DAGTask>;
13
+ /** taskId -> prerequisite IDs */
14
+ readonly forwardEdges: ReadonlyMap<string, ReadonlySet<string>>;
15
+ /** prerequisiteId -> dependent IDs */
16
+ readonly reverseEdges: ReadonlyMap<string, ReadonlySet<string>>;
17
+ }
18
+ /**
19
+ * Topological sort using Kahn's algorithm.
20
+ * @throws Error if cycles exist
21
+ */
22
+ export declare function topologicalSort(graph: DAGGraphView): DAGTask[];
23
+ /**
24
+ * Detect cycles using DFS with white/gray/black coloring.
25
+ * @returns Array of cycles (empty if acyclic)
26
+ */
27
+ export declare function findCycles(graph: DAGGraphView): string[][];
28
+ /**
29
+ * Find the critical path (longest path through the DAG).
30
+ * @returns Tasks on the critical path in execution order
31
+ */
32
+ export declare function criticalPath(graph: DAGGraphView): DAGTask[];
33
+ //# sourceMappingURL=dag-algorithms.d.ts.map
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Agentic QE v3 - Task DAG Graph Algorithms
3
+ * ADR-064 Phase 1E: topological sort (Kahn), cycle detection (DFS
4
+ * coloring) and critical path (longest-path DP) over a TaskDAG's edges.
5
+ *
6
+ * Edges that point at IDs not present in `nodes` (missing or removed
7
+ * prerequisites) are ignored for ordering purposes.
8
+ */
9
+ /** DFS node coloring for cycle detection */
10
+ var NodeColor;
11
+ (function (NodeColor) {
12
+ NodeColor[NodeColor["White"] = 0] = "White";
13
+ NodeColor[NodeColor["Gray"] = 1] = "Gray";
14
+ NodeColor[NodeColor["Black"] = 2] = "Black";
15
+ })(NodeColor || (NodeColor = {}));
16
+ /**
17
+ * Topological sort using Kahn's algorithm.
18
+ * @throws Error if cycles exist
19
+ */
20
+ export function topologicalSort(graph) {
21
+ const { nodes, forwardEdges, reverseEdges } = graph;
22
+ const inDegree = new Map();
23
+ for (const nodeId of nodes.keys()) {
24
+ let count = 0;
25
+ const fwd = forwardEdges.get(nodeId);
26
+ if (fwd) {
27
+ for (const dep of fwd) {
28
+ if (nodes.has(dep))
29
+ count++;
30
+ }
31
+ }
32
+ inDegree.set(nodeId, count);
33
+ }
34
+ const queue = [];
35
+ for (const [id, deg] of inDegree) {
36
+ if (deg === 0)
37
+ queue.push(id);
38
+ }
39
+ const sorted = [];
40
+ while (queue.length > 0) {
41
+ const nodeId = queue.shift();
42
+ const task = nodes.get(nodeId);
43
+ if (task)
44
+ sorted.push(task);
45
+ const dependents = reverseEdges.get(nodeId);
46
+ if (dependents) {
47
+ for (const depId of dependents) {
48
+ if (!nodes.has(depId))
49
+ continue;
50
+ const newDeg = (inDegree.get(depId) ?? 0) - 1;
51
+ inDegree.set(depId, newDeg);
52
+ if (newDeg === 0)
53
+ queue.push(depId);
54
+ }
55
+ }
56
+ }
57
+ if (sorted.length !== nodes.size) {
58
+ throw new Error(`Cycle detected: sorted ${sorted.length} of ${nodes.size} tasks`);
59
+ }
60
+ return sorted;
61
+ }
62
+ /**
63
+ * Detect cycles using DFS with white/gray/black coloring.
64
+ * @returns Array of cycles (empty if acyclic)
65
+ */
66
+ export function findCycles(graph) {
67
+ const color = new Map();
68
+ const parent = new Map();
69
+ const cycles = [];
70
+ for (const id of graph.nodes.keys())
71
+ color.set(id, NodeColor.White);
72
+ for (const id of graph.nodes.keys()) {
73
+ if (color.get(id) === NodeColor.White) {
74
+ dfsCycles(graph, id, color, parent, cycles);
75
+ }
76
+ }
77
+ return cycles;
78
+ }
79
+ /**
80
+ * Find the critical path (longest path through the DAG).
81
+ * @returns Tasks on the critical path in execution order
82
+ */
83
+ export function criticalPath(graph) {
84
+ const { nodes, reverseEdges } = graph;
85
+ if (nodes.size === 0)
86
+ return [];
87
+ let sorted;
88
+ try {
89
+ sorted = topologicalSort(graph);
90
+ }
91
+ catch {
92
+ return [];
93
+ }
94
+ const dist = new Map();
95
+ const pred = new Map();
96
+ for (const t of sorted) {
97
+ dist.set(t.id, 1);
98
+ pred.set(t.id, null);
99
+ }
100
+ for (const task of sorted) {
101
+ const d = dist.get(task.id);
102
+ const deps = reverseEdges.get(task.id);
103
+ if (deps) {
104
+ for (const depId of deps) {
105
+ if (!nodes.has(depId))
106
+ continue;
107
+ if (d + 1 > (dist.get(depId) ?? 1)) {
108
+ dist.set(depId, d + 1);
109
+ pred.set(depId, task.id);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ let maxDist = 0;
115
+ let endNode = null;
116
+ for (const [id, d] of dist) {
117
+ if (d > maxDist) {
118
+ maxDist = d;
119
+ endNode = id;
120
+ }
121
+ }
122
+ if (!endNode)
123
+ return [];
124
+ const path = [];
125
+ let cur = endNode;
126
+ while (cur !== null) {
127
+ const t = nodes.get(cur);
128
+ if (t)
129
+ path.unshift(t);
130
+ cur = pred.get(cur) ?? null;
131
+ }
132
+ return path;
133
+ }
134
+ function dfsCycles(graph, nodeId, color, parent, cycles) {
135
+ color.set(nodeId, NodeColor.Gray);
136
+ const dependencies = graph.forwardEdges.get(nodeId);
137
+ if (dependencies) {
138
+ for (const depId of dependencies) {
139
+ if (!graph.nodes.has(depId))
140
+ continue;
141
+ const c = color.get(depId);
142
+ if (c === NodeColor.White) {
143
+ parent.set(depId, nodeId);
144
+ dfsCycles(graph, depId, color, parent, cycles);
145
+ }
146
+ else if (c === NodeColor.Gray) {
147
+ const cycle = [depId, nodeId];
148
+ let cur = nodeId;
149
+ while (cur !== depId) {
150
+ const p = parent.get(cur);
151
+ if (p === null || p === undefined || p === depId)
152
+ break;
153
+ cycle.push(p);
154
+ cur = p;
155
+ }
156
+ cycles.push(cycle);
157
+ }
158
+ }
159
+ }
160
+ color.set(nodeId, NodeColor.Black);
161
+ }
162
+ //# sourceMappingURL=dag-algorithms.js.map
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Agentic QE v3 - Task DAG Obligation Helpers
3
+ * Issue #1069: pure helpers for initial edge dispositions, waiver
4
+ * authorization and status counting, kept out of dag.ts for size.
5
+ */
6
+ import type { DAGStats, DAGTask, PrerequisiteDisposition, WaivePrerequisiteInput, WaiverPolicy } from './types.js';
7
+ import { type PrerequisiteLedger } from './prerequisite-ledger.js';
8
+ /** Disposition of a new edge given the prerequisite's current state. */
9
+ export declare function initialDisposition(blocker: DAGTask | undefined, tombstoned: boolean): PrerequisiteDisposition;
10
+ /**
11
+ * Check that a validated waiver may be applied: the revision guard holds,
12
+ * the dependent exists and is not terminal, the edge exists and is
13
+ * unresolved, and the optional policy approves.
14
+ * @throws PrerequisiteWaiverError or GraphRevisionConflictError
15
+ */
16
+ export declare function authorizeWaiver(ledger: PrerequisiteLedger, policy: WaiverPolicy | undefined, req: WaivePrerequisiteInput, task: DAGTask | undefined, prerequisites: ReadonlySet<string> | undefined): asserts task is DAGTask;
17
+ type StatusCounts = Pick<DAGStats, 'pending' | 'ready' | 'inProgress' | 'completed' | 'failed' | 'blocked' | 'cancelled'>;
18
+ /** Count tasks by execution status. */
19
+ export declare function countStatuses(tasks: Iterable<DAGTask>): StatusCounts;
20
+ export {};
21
+ //# sourceMappingURL=dag-obligations.d.ts.map
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Agentic QE v3 - Task DAG Obligation Helpers
3
+ * Issue #1069: pure helpers for initial edge dispositions, waiver
4
+ * authorization and status counting, kept out of dag.ts for size.
5
+ */
6
+ import { PrerequisiteWaiverError, TERMINAL_STATUSES, } from './prerequisite-ledger.js';
7
+ /** Disposition of a new edge given the prerequisite's current state. */
8
+ export function initialDisposition(blocker, tombstoned) {
9
+ if (!blocker)
10
+ return tombstoned ? 'REMOVED' : 'MISSING';
11
+ switch (blocker.status) {
12
+ case 'completed': return 'SATISFIED';
13
+ case 'failed': return 'FAILED';
14
+ case 'cancelled': return 'CANCELLED';
15
+ default: return 'UNRESOLVED';
16
+ }
17
+ }
18
+ /**
19
+ * Check that a validated waiver may be applied: the revision guard holds,
20
+ * the dependent exists and is not terminal, the edge exists and is
21
+ * unresolved, and the optional policy approves.
22
+ * @throws PrerequisiteWaiverError or GraphRevisionConflictError
23
+ */
24
+ export function authorizeWaiver(ledger, policy, req, task, prerequisites) {
25
+ ledger.checkRevision(req.expectedRevision);
26
+ if (!task)
27
+ throw new PrerequisiteWaiverError(`Task '${req.taskId}' not found in the DAG`);
28
+ if (!prerequisites?.has(req.prerequisiteId)) {
29
+ throw new PrerequisiteWaiverError(`Task '${req.taskId}' has no prerequisite '${req.prerequisiteId}'`);
30
+ }
31
+ if (TERMINAL_STATUSES.has(task.status)) {
32
+ throw new PrerequisiteWaiverError(`Cannot waive for '${req.taskId}': status '${task.status}' is terminal`);
33
+ }
34
+ const current = ledger.disposition(req.taskId, req.prerequisiteId) ?? 'UNRESOLVED';
35
+ if (current === 'SATISFIED' || current === 'WAIVED') {
36
+ throw new PrerequisiteWaiverError(`Prerequisite '${req.prerequisiteId}' of '${req.taskId}' is already ${current}`);
37
+ }
38
+ // Only a literal `true` approves; a truthy non-boolean (e.g. a Promise) fails closed
39
+ if (policy && policy({
40
+ graphId: ledger.graphId,
41
+ graphRevision: ledger.graphRevision,
42
+ taskId: req.taskId,
43
+ prerequisiteId: req.prerequisiteId,
44
+ actor: req.actor,
45
+ reason: req.reason,
46
+ authorityRef: req.authorityRef,
47
+ currentDisposition: current,
48
+ }) !== true) {
49
+ throw new PrerequisiteWaiverError(`Waiver of '${req.prerequisiteId}' for '${req.taskId}' by '${req.actor}' rejected by policy`);
50
+ }
51
+ }
52
+ /** Count tasks by execution status. */
53
+ export function countStatuses(tasks) {
54
+ let pending = 0, ready = 0, inProgress = 0, completed = 0;
55
+ let failed = 0, blocked = 0, cancelled = 0;
56
+ for (const task of tasks) {
57
+ switch (task.status) {
58
+ case 'pending':
59
+ pending++;
60
+ break;
61
+ case 'ready':
62
+ ready++;
63
+ break;
64
+ case 'in_progress':
65
+ inProgress++;
66
+ break;
67
+ case 'completed':
68
+ completed++;
69
+ break;
70
+ case 'failed':
71
+ failed++;
72
+ break;
73
+ case 'blocked':
74
+ blocked++;
75
+ break;
76
+ case 'cancelled':
77
+ cancelled++;
78
+ break;
79
+ }
80
+ }
81
+ return { pending, ready, inProgress, completed, failed, blocked, cancelled };
82
+ }
83
+ //# sourceMappingURL=dag-obligations.js.map
@@ -5,8 +5,13 @@
5
5
  * Directed acyclic graph where nodes are tasks and edges represent
6
6
  * "blocked-by" dependencies. Topological sort via Kahn's algorithm,
7
7
  * cycle detection via DFS coloring, critical path via longest-path DP.
8
+ *
9
+ * Issue #1069: every prerequisite edge carries a typed disposition backed
10
+ * by an immutable PrerequisiteReceiptV1. A dependent becomes ready only
11
+ * when every edge is SATISFIED or WAIVED. Removing an unfinished
12
+ * prerequisite leaves a REMOVED tombstone and keeps dependents blocked.
8
13
  */
9
- import type { DAGTask, AddTaskInput, DAGStats, DAGEventHandler } from './types.js';
14
+ import type { DAGTask, AddTaskInput, DAGStats, DAGSnapshot, DAGEventHandler, CompleteTaskOptions, ObligationSummary, PrerequisiteEdgeState, PrerequisiteReceiptV1, RemovedTaskRecord, RemoveTaskOptions, TaskDAGOptions, WaivePrerequisiteInput } from './types.js';
10
15
  /**
11
16
  * Directed acyclic graph for task dependency management.
12
17
  *
@@ -18,17 +23,30 @@ export declare class TaskDAG {
18
23
  private readonly forwardEdges;
19
24
  private readonly reverseEdges;
20
25
  private readonly eventHandlers;
26
+ private readonly ledger;
27
+ private readonly waiverPolicy?;
28
+ constructor(options?: TaskDAGOptions);
29
+ /** Stable identity of this graph, stamped on every receipt. */
30
+ get graphId(): string;
31
+ /** Monotonically increasing revision; advances on every mutation. */
32
+ get graphRevision(): number;
21
33
  /**
22
- * Add a task to the DAG. Status is 'ready' if no incomplete blockers,
23
- * otherwise 'blocked'. Reverse edges are computed automatically.
34
+ * Add a task to the DAG. Status is 'ready' if every prerequisite is
35
+ * SATISFIED, otherwise 'blocked'. Prerequisites not yet in the graph are
36
+ * recorded as MISSING until they are added.
24
37
  * @throws Error if a task with the same ID already exists
25
38
  */
26
39
  addTask(input: AddTaskInput): DAGTask;
27
40
  /**
28
- * Remove a task, clean up edges, and unblock dependents if appropriate.
41
+ * Remove a task. A lifecycle operation, not an obligation resolution:
42
+ * dependents keep the edge. An unfinished task's unresolved dependent
43
+ * edges become REMOVED and dependents stay blocked until it is re-added
44
+ * and completed, or the edge is waived. SATISFIED edges survive removal,
45
+ * and the task stays in the obligation denominator as a tombstone.
29
46
  * @returns true if removed, false if not found
47
+ * @throws GraphRevisionConflictError if options.expectedRevision is stale
30
48
  */
31
- removeTask(taskId: string): boolean;
49
+ removeTask(taskId: string, options?: RemoveTaskOptions): boolean;
32
50
  /** Get a task by ID. */
33
51
  getTask(taskId: string): DAGTask | undefined;
34
52
  /** Get all tasks with 'ready' status. */
@@ -39,16 +57,48 @@ export declare class TaskDAG {
39
57
  */
40
58
  start(taskId: string, agentId: string): void;
41
59
  /**
42
- * Mark a task completed and unblock downstream tasks.
60
+ * Mark a task completed, record SATISFIED on its dependent edges, and
61
+ * unblock dependents whose edges are all SATISFIED or WAIVED.
43
62
  * @returns Array of newly unblocked task IDs
44
63
  * @throws Error if task not found or not 'in_progress'
64
+ * @throws GraphRevisionConflictError if options.expectedRevision is stale
45
65
  */
46
- complete(taskId: string, result?: unknown): string[];
66
+ complete(taskId: string, result?: unknown, options?: CompleteTaskOptions): string[];
47
67
  /**
48
- * Mark a task failed and cascade cancellation to dependents.
68
+ * Mark a task failed, record FAILED on its unresolved dependent edges,
69
+ * and cascade cancellation to dependents.
49
70
  * @throws Error if task not found or not in 'in_progress'/'ready'
50
71
  */
51
72
  fail(taskId: string, error: string): void;
73
+ /**
74
+ * Cancel a non-terminal task, record CANCELLED on its unresolved
75
+ * dependent edges, and cascade cancellation to dependents.
76
+ * @throws Error if task not found or already terminal
77
+ */
78
+ cancel(taskId: string, reason: string): void;
79
+ /**
80
+ * Explicitly waive one prerequisite edge. This is the only way a
81
+ * dependent becomes ready without a SATISFIED receipt. The original edge
82
+ * is kept and a WAIVED receipt carries actor, reason, authority and time.
83
+ * @returns The WAIVED receipt
84
+ * @throws PrerequisiteWaiverError on invalid input, unknown edge,
85
+ * already-resolved edge, terminal dependent, or policy rejection
86
+ * @throws GraphRevisionConflictError if expectedRevision is stale
87
+ */
88
+ waivePrerequisite(input: WaivePrerequisiteInput): PrerequisiteReceiptV1;
89
+ /** Current disposition of every prerequisite edge of a task. */
90
+ getPrerequisiteDispositions(taskId: string): PrerequisiteEdgeState[];
91
+ /** Prerequisite edges that currently prevent a task from being ready. */
92
+ getBlockers(taskId: string): PrerequisiteEdgeState[];
93
+ /** Append-only receipt log, optionally filtered by dependent or prerequisite. */
94
+ getReceipts(filter?: {
95
+ taskId?: string;
96
+ prerequisiteId?: string;
97
+ }): PrerequisiteReceiptV1[];
98
+ /** Tombstones for tasks removed from the graph. */
99
+ getRemovedTasks(): RemovedTaskRecord[];
100
+ /** Obligation accounting against the original task denominator. */
101
+ getObligationSummary(): ObligationSummary;
52
102
  /**
53
103
  * Topological sort using Kahn's algorithm.
54
104
  * @throws Error if cycles exist
@@ -66,28 +116,28 @@ export declare class TaskDAG {
66
116
  getCriticalPath(): DAGTask[];
67
117
  /** Get aggregate statistics about the DAG. */
68
118
  getStats(): DAGStats;
69
- /** Remove all tasks from the DAG. */
119
+ /**
120
+ * Remove all tasks, receipts and tombstones from the DAG. The graph
121
+ * revision keeps increasing so stale expectedRevision guards still fail.
122
+ */
70
123
  clear(): void;
71
- /** Serialize the DAG for debugging. */
72
- toJSON(): {
73
- tasks: DAGTask[];
74
- edges: Array<{
75
- from: string;
76
- to: string;
77
- }>;
78
- stats: DAGStats;
79
- };
124
+ /** Serialize the DAG, its receipt log and tombstones. */
125
+ toJSON(): DAGSnapshot;
80
126
  /**
81
127
  * Register a handler to receive DAG events.
82
128
  * @returns Unsubscribe function
83
129
  */
84
130
  onEvent(handler: DAGEventHandler): () => void;
131
+ private graphView;
85
132
  private requireTask;
86
133
  private computeStatus;
87
134
  private setStatus;
135
+ /** Commit a failed/cancelled outcome and propagate it to dependent edges. */
136
+ private terminate;
137
+ /** Record a disposition on every live dependent edge currently in `from`. */
138
+ private recordOnDependents;
88
139
  private unblockDependents;
89
140
  private cascadeCancellation;
90
- private dfsCycles;
91
141
  private emit;
92
142
  }
93
143
  //# sourceMappingURL=dag.d.ts.map