agentic-qe 3.15.7 → 3.15.9

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 (489) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +305 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
  5. package/dist/bridge/captured-experience-bridge.js +12 -13
  6. package/dist/cli/bundle.js +6 -6
  7. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +2 -0
  8. package/dist/cli/chunks/{agent-booster-wasm-OS5G7KMQ.js → agent-booster-wasm-427FRKWG.js} +2 -2
  9. package/dist/cli/chunks/{agent-handler-PI4I7PME.js → agent-handler-RIYHTHVZ.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-J7TXHX4U.js → agent-memory-branch-WSUCUHOO.js} +2 -2
  11. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +2 -0
  12. package/dist/cli/chunks/{arena-OWUGXKNT.js → arena-KRIBMIXX.js} +2 -2
  13. package/dist/cli/chunks/{arena-FXESDCFR.js → arena-YAJZX6MC.js} +4 -4
  14. package/dist/cli/chunks/{audit-EPAWLYIZ.js → audit-7ZNOXWP3.js} +3 -3
  15. package/dist/cli/chunks/base-67DXSAYM.js +2 -0
  16. package/dist/cli/chunks/{better-sqlite3-IYVR5EQY.js → better-sqlite3-ZQAT4I6H.js} +2 -2
  17. package/dist/cli/chunks/{brain-handler-3W2E6TC6.js → brain-handler-452WCPZC.js} +3 -3
  18. package/dist/cli/chunks/{branch-enumerator-HU7VACJ4.js → branch-enumerator-IJFXJRPN.js} +2 -2
  19. package/dist/cli/chunks/{browser-72XOR6E2.js → browser-CT3MTV6G.js} +2 -2
  20. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +2 -0
  21. package/dist/cli/chunks/{chunk-WXI2STKQ.js → chunk-2BA45H64.js} +2 -2
  22. package/dist/cli/chunks/{chunk-DGK6GQMO.js → chunk-2HL3UM5P.js} +2 -2
  23. package/dist/cli/chunks/{chunk-LGBN7TKC.js → chunk-2I2UPJS7.js} +2 -2
  24. package/dist/cli/chunks/{chunk-ZRLNACPY.js → chunk-2TDIS6YK.js} +2 -2
  25. package/dist/cli/chunks/{chunk-34JLY3U6.js → chunk-2URBI52G.js} +2 -2
  26. package/dist/cli/chunks/{chunk-K7W55B7Q.js → chunk-2XITOPYV.js} +2 -2
  27. package/dist/cli/chunks/{chunk-I7H4IP7T.js → chunk-2YH62JCN.js} +2 -2
  28. package/dist/cli/chunks/{chunk-HPG7354V.js → chunk-32UTLDNY.js} +2 -2
  29. package/dist/cli/chunks/{chunk-C2CUPJGR.js → chunk-37BIGMJI.js} +1 -1
  30. package/dist/cli/chunks/{chunk-2RJYA6WK.js → chunk-3CJCROMW.js} +2 -2
  31. package/dist/cli/chunks/{chunk-CWPRU7ZI.js → chunk-3LYU7BLY.js} +2 -2
  32. package/dist/cli/chunks/{chunk-24CENUT4.js → chunk-47TYABPD.js} +3 -3
  33. package/dist/cli/chunks/{chunk-WUV5RZUI.js → chunk-47V7FQGX.js} +2 -2
  34. package/dist/cli/chunks/{chunk-IWQQIXHO.js → chunk-4JCY45KV.js} +2 -2
  35. package/dist/cli/chunks/{chunk-ZTMZFF25.js → chunk-4SUOVLJ6.js} +2 -2
  36. package/dist/cli/chunks/{chunk-CIFWOMNX.js → chunk-4URT6JO2.js} +1 -1
  37. package/dist/cli/chunks/{chunk-5Q22XPTH.js → chunk-4V27J6YN.js} +2 -2
  38. package/dist/cli/chunks/{chunk-SX2YSHE7.js → chunk-4W4DYVSH.js} +1 -1
  39. package/dist/cli/chunks/chunk-55HRSNGN.js +2 -0
  40. package/dist/cli/chunks/{chunk-F62EKVVC.js → chunk-5D2I7JUP.js} +2 -2
  41. package/dist/cli/chunks/{chunk-XXAVQACL.js → chunk-5JWGCIQW.js} +1 -1
  42. package/dist/cli/chunks/chunk-5LAAZLUC.js +4 -0
  43. package/dist/cli/chunks/{chunk-EDU72RTW.js → chunk-5NS3USRW.js} +1 -1
  44. package/dist/cli/chunks/{chunk-BTYKGVJ5.js → chunk-6EPHNJTL.js} +1 -1
  45. package/dist/cli/chunks/{chunk-JVYPXW6Y.js → chunk-6OOYIO3W.js} +2 -2
  46. package/dist/cli/chunks/{chunk-PG64YV6C.js → chunk-6PXA2BQJ.js} +58 -58
  47. package/dist/cli/chunks/{chunk-IARSGAG7.js → chunk-6YL6JOQB.js} +2 -2
  48. package/dist/cli/chunks/{chunk-LDXQRNTT.js → chunk-72AMFDC7.js} +1 -1
  49. package/dist/cli/chunks/{chunk-Z3VJLWRR.js → chunk-763SUL4B.js} +2 -2
  50. package/dist/cli/chunks/{chunk-EL75G2A3.js → chunk-7DMA5NYL.js} +1 -1
  51. package/dist/cli/chunks/{chunk-J43DV3ME.js → chunk-7JKB3Q7O.js} +1 -1
  52. package/dist/cli/chunks/{chunk-ONVALAZN.js → chunk-7KII4CQG.js} +2 -2
  53. package/dist/cli/chunks/{chunk-AAA4SHEG.js → chunk-7QGYJ5OY.js} +1 -1
  54. package/dist/cli/chunks/{chunk-MMXG3LL6.js → chunk-7QTB5VJZ.js} +2 -2
  55. package/dist/cli/chunks/{chunk-BB7OLQKO.js → chunk-7X2Y727E.js} +1 -1
  56. package/dist/cli/chunks/{chunk-VNW5Q2CX.js → chunk-A4RU67VX.js} +2 -2
  57. package/dist/cli/chunks/{chunk-YFOBQSOW.js → chunk-A6YIH4C4.js} +2 -2
  58. package/dist/cli/chunks/{chunk-MJJC6HUK.js → chunk-ABFDB4X3.js} +1 -1
  59. package/dist/cli/chunks/{chunk-MHZPC4HJ.js → chunk-AJ4YDSOI.js} +2 -2
  60. package/dist/cli/chunks/{chunk-OA4GR3EZ.js → chunk-AOFO4N32.js} +2 -2
  61. package/dist/cli/chunks/{chunk-EB2PP6X2.js → chunk-AQTVVLNP.js} +1 -1
  62. package/dist/cli/chunks/chunk-AR2E4B7K.js +6 -0
  63. package/dist/cli/chunks/{chunk-N4PMPSJJ.js → chunk-AVB5QY2Q.js} +2 -2
  64. package/dist/cli/chunks/{chunk-HLZATDD2.js → chunk-BHKXMIWX.js} +2 -2
  65. package/dist/cli/chunks/{chunk-C2MDBBFF.js → chunk-BXO536GT.js} +3 -3
  66. package/dist/cli/chunks/{chunk-WTLIEBDH.js → chunk-C6RTMTEH.js} +1 -1
  67. package/dist/cli/chunks/{chunk-MNZFEIE5.js → chunk-CTZJUV5I.js} +1 -1
  68. package/dist/cli/chunks/{chunk-XEWXYGJI.js → chunk-D6XVGFTI.js} +2 -2
  69. package/dist/cli/chunks/{chunk-Y4SAWE45.js → chunk-DDPPSSHW.js} +1 -1
  70. package/dist/cli/chunks/{chunk-KPOPBUUJ.js → chunk-DGTLJNJH.js} +2 -2
  71. package/dist/cli/chunks/{chunk-6JT73S5B.js → chunk-DINZR5CF.js} +1 -1
  72. package/dist/cli/chunks/{chunk-HTWIGQL4.js → chunk-EFBLP43U.js} +2 -2
  73. package/dist/cli/chunks/chunk-ETG7O5E5.js +5 -0
  74. package/dist/cli/chunks/{chunk-2AYBYXOA.js → chunk-F2SQPP6U.js} +2 -2
  75. package/dist/cli/chunks/{chunk-V2SAEMZY.js → chunk-F3PQZX44.js} +1 -1
  76. package/dist/cli/chunks/{chunk-JPHDMHFG.js → chunk-F4JYIRW2.js} +2 -2
  77. package/dist/cli/chunks/{chunk-REEIFA6A.js → chunk-FJ4VTLLK.js} +2 -2
  78. package/dist/cli/chunks/{chunk-PTK66HEY.js → chunk-FL3OYGCS.js} +2 -2
  79. package/dist/cli/chunks/{chunk-PEKDSJBC.js → chunk-FLASM2XB.js} +2 -2
  80. package/dist/cli/chunks/{chunk-G762PEFO.js → chunk-FV3NHVC7.js} +22 -22
  81. package/dist/cli/chunks/{chunk-FTTFJ7SJ.js → chunk-FV7VAG74.js} +1 -1
  82. package/dist/cli/chunks/{chunk-2YVJ5OUL.js → chunk-G3BKZNFL.js} +8 -8
  83. package/dist/cli/chunks/{chunk-MDC4G323.js → chunk-GBUIG3FS.js} +1 -1
  84. package/dist/cli/chunks/{chunk-DCJW2DPL.js → chunk-GCWSX2NY.js} +4 -4
  85. package/dist/cli/chunks/{chunk-VCA6YYII.js → chunk-GII5WVAK.js} +1 -1
  86. package/dist/cli/chunks/{chunk-HXBAQKMH.js → chunk-GKPQ2GRR.js} +2 -2
  87. package/dist/cli/chunks/chunk-GR3JYE5A.js +2 -0
  88. package/dist/cli/chunks/{chunk-ZUMDDMDE.js → chunk-H3KBIWTO.js} +2 -2
  89. package/dist/cli/chunks/{chunk-ECSLJJOQ.js → chunk-HAROIAJE.js} +1 -1
  90. package/dist/cli/chunks/{chunk-ICPALF4Q.js → chunk-HCYQHWI2.js} +2 -2
  91. package/dist/cli/chunks/{chunk-V5NGBQAQ.js → chunk-HGTWAZWU.js} +2 -2
  92. package/dist/cli/chunks/{chunk-YK3NOC2R.js → chunk-HTZJSQ3C.js} +2 -2
  93. package/dist/cli/chunks/{chunk-IYQ7XNE5.js → chunk-HWK5L7IJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-HSDOOFV7.js → chunk-HZ5NC6U5.js} +1 -1
  95. package/dist/cli/chunks/{chunk-M63QB466.js → chunk-I6S35FRO.js} +2 -2
  96. package/dist/cli/chunks/{chunk-LMEU64TR.js → chunk-ICP2ORGI.js} +2 -2
  97. package/dist/cli/chunks/{chunk-PXZKPUW6.js → chunk-IFEIY3NQ.js} +2 -2
  98. package/dist/cli/chunks/{chunk-OJEZNLB6.js → chunk-J3DTDJDT.js} +2 -2
  99. package/dist/cli/chunks/chunk-J3WGK22W.js +2 -0
  100. package/dist/cli/chunks/{chunk-SQHLC6I5.js → chunk-J5KNRVXR.js} +1 -1
  101. package/dist/cli/chunks/{chunk-RORZ5O5Z.js → chunk-JAV5WPSY.js} +2 -2
  102. package/dist/cli/chunks/{chunk-SSP2B2WR.js → chunk-JEP4ULR6.js} +2 -2
  103. package/dist/cli/chunks/{chunk-6FEQ73BF.js → chunk-JK2ME6IT.js} +2 -2
  104. package/dist/cli/chunks/chunk-JNNZK7KH.js +2 -0
  105. package/dist/cli/chunks/{chunk-RXAFLK34.js → chunk-JP4P3P3D.js} +2 -2
  106. package/dist/cli/chunks/{chunk-JY4AIEZ7.js → chunk-JUVHZG7I.js} +1 -1
  107. package/dist/cli/chunks/{chunk-UBYCR3O4.js → chunk-JWGRWMZP.js} +2 -2
  108. package/dist/cli/chunks/{chunk-6BO3WCK7.js → chunk-K5DJXMAA.js} +2 -2
  109. package/dist/cli/chunks/{chunk-MKFQNCXI.js → chunk-KFUUIAR4.js} +2 -2
  110. package/dist/cli/chunks/chunk-KHSRIPBP.js +180 -0
  111. package/dist/cli/chunks/{chunk-UY3REQOK.js → chunk-KIKWJM6J.js} +2 -2
  112. package/dist/cli/chunks/{chunk-YUC7RJGR.js → chunk-KIXYKUCI.js} +1 -1
  113. package/dist/cli/chunks/{chunk-IC2WSSD5.js → chunk-KLGYIEJK.js} +3 -3
  114. package/dist/cli/chunks/{chunk-DVPGBDBP.js → chunk-KR3M44CF.js} +3 -3
  115. package/dist/cli/chunks/chunk-KTSLTZSG.js +2 -0
  116. package/dist/cli/chunks/{chunk-Y6A46M3B.js → chunk-KVBEGOJE.js} +2 -2
  117. package/dist/cli/chunks/{chunk-PZG3542B.js → chunk-L42JPFCC.js} +2 -2
  118. package/dist/cli/chunks/{chunk-J26GADQE.js → chunk-LCJTEUDC.js} +181 -181
  119. package/dist/cli/chunks/{chunk-3JD2USUH.js → chunk-LEAKYZ37.js} +2 -2
  120. package/dist/cli/chunks/{chunk-UCLN6AME.js → chunk-LMU5DUDK.js} +1 -1
  121. package/dist/cli/chunks/{chunk-EV2BYY6T.js → chunk-MZS32SYS.js} +1 -1
  122. package/dist/cli/chunks/{chunk-LVEX4GID.js → chunk-N3KEY4XJ.js} +2 -2
  123. package/dist/cli/chunks/{chunk-XNSQZ3O7.js → chunk-N3NP6PTT.js} +2 -2
  124. package/dist/cli/chunks/{chunk-QVG4ZDXX.js → chunk-N5PDFGCQ.js} +2 -2
  125. package/dist/cli/chunks/{chunk-6PKCQXEW.js → chunk-NDKLQW6N.js} +2 -2
  126. package/dist/cli/chunks/{chunk-6AYRAOCA.js → chunk-NHZIWIQZ.js} +2 -2
  127. package/dist/cli/chunks/{chunk-H4WHDFB5.js → chunk-NTAD5UX4.js} +2 -2
  128. package/dist/cli/chunks/{chunk-JYXOFN3E.js → chunk-O3JLOVZX.js} +2 -2
  129. package/dist/cli/chunks/{chunk-ZLVQSEZK.js → chunk-OCESWNAZ.js} +3 -3
  130. package/dist/cli/chunks/{chunk-7EX4DEQR.js → chunk-OG2UI6A3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-3RM46XFP.js → chunk-OXTFSIGN.js} +1 -1
  132. package/dist/cli/chunks/{chunk-44DPYNPE.js → chunk-OXZLKP6C.js} +1 -1
  133. package/dist/cli/chunks/{chunk-TU4LIIOP.js → chunk-P2CXVNKK.js} +2 -2
  134. package/dist/cli/chunks/{chunk-LDZWIV2O.js → chunk-P73W2K7T.js} +1 -1
  135. package/dist/cli/chunks/{chunk-56ZKQYZY.js → chunk-PBZI2ZPV.js} +3 -3
  136. package/dist/cli/chunks/{chunk-MNCF643K.js → chunk-PMCRCEW5.js} +2 -2
  137. package/dist/cli/chunks/{chunk-4G2VNW4C.js → chunk-PVIA2FPD.js} +2 -2
  138. package/dist/cli/chunks/{chunk-MRHM4COP.js → chunk-PX2B5TS2.js} +2 -2
  139. package/dist/cli/chunks/{chunk-HZFT3P5B.js → chunk-Q3JVJRVJ.js} +1 -1
  140. package/dist/cli/chunks/{chunk-GY2SAIXP.js → chunk-QQ5SZH4D.js} +2 -2
  141. package/dist/cli/chunks/{chunk-LP4AS2E4.js → chunk-QTVWUQTB.js} +1 -1
  142. package/dist/cli/chunks/{chunk-W4X2VTIY.js → chunk-REUFWGMA.js} +2 -2
  143. package/dist/cli/chunks/{chunk-FVBFASOD.js → chunk-SNBYYO6F.js} +2 -2
  144. package/dist/cli/chunks/{chunk-RNYX4CPI.js → chunk-SVHUYVUR.js} +2 -2
  145. package/dist/cli/chunks/{chunk-AXO7OOOA.js → chunk-THAY7WHO.js} +2 -2
  146. package/dist/cli/chunks/{chunk-QWLTHFZW.js → chunk-TNMQVG4A.js} +2 -2
  147. package/dist/cli/chunks/{chunk-JFPXCQNP.js → chunk-TSYQDRNK.js} +1 -1
  148. package/dist/cli/chunks/{chunk-JK6B3ULP.js → chunk-TUYJ53V4.js} +2 -2
  149. package/dist/cli/chunks/{chunk-PUECC4WI.js → chunk-UNUTC6TX.js} +2 -2
  150. package/dist/cli/chunks/{chunk-ED32XJ5R.js → chunk-UOJBR4J3.js} +2 -2
  151. package/dist/cli/chunks/{chunk-CXTJ47QS.js → chunk-UOWHE77F.js} +2 -2
  152. package/dist/cli/chunks/{chunk-5KCBX225.js → chunk-UYLYMWV5.js} +2 -2
  153. package/dist/cli/chunks/{chunk-QNQSM2OG.js → chunk-V5PXQSFS.js} +2 -2
  154. package/dist/cli/chunks/{chunk-VKPKYMCT.js → chunk-VCMINU7K.js} +2 -2
  155. package/dist/cli/chunks/{chunk-QQT6QENQ.js → chunk-VQHVHVSF.js} +2 -2
  156. package/dist/cli/chunks/{chunk-634D2ENF.js → chunk-VRGCKBF7.js} +2 -2
  157. package/dist/cli/chunks/{chunk-T6W5APYP.js → chunk-VU2EL424.js} +1 -1
  158. package/dist/cli/chunks/{chunk-JY4WLN3K.js → chunk-VXZJOKOX.js} +2 -2
  159. package/dist/cli/chunks/{chunk-NZQPP533.js → chunk-VYLM2YV5.js} +3 -3
  160. package/dist/cli/chunks/{chunk-PQV7E7XH.js → chunk-W32YU3VI.js} +2 -2
  161. package/dist/cli/chunks/{chunk-RRPYWBFX.js → chunk-W5VJRDDG.js} +2 -2
  162. package/dist/cli/chunks/{chunk-7UCVYYWL.js → chunk-WGDR2KIR.js} +2 -2
  163. package/dist/cli/chunks/{chunk-2423JAA5.js → chunk-WRRCQ2UE.js} +1 -1
  164. package/dist/cli/chunks/{chunk-RCYLCA7E.js → chunk-XDBD4GXO.js} +2 -2
  165. package/dist/cli/chunks/{chunk-PYHYOKYT.js → chunk-XOLDMK23.js} +2 -2
  166. package/dist/cli/chunks/{chunk-5KS7HA37.js → chunk-XOVNZT7F.js} +1 -1
  167. package/dist/cli/chunks/{chunk-5PBRBS7D.js → chunk-XQ3DDY7X.js} +2 -2
  168. package/dist/cli/chunks/{chunk-4DIZ5BT6.js → chunk-XUIA5KMS.js} +2 -2
  169. package/dist/cli/chunks/{chunk-G7YTZTGU.js → chunk-XWIUFYM3.js} +1 -1
  170. package/dist/cli/chunks/{chunk-B7M323VL.js → chunk-XYCKHYBM.js} +2 -2
  171. package/dist/cli/chunks/{chunk-6OS7HREG.js → chunk-XZJ2O3VC.js} +1 -1
  172. package/dist/cli/chunks/{chunk-BTIBXGVQ.js → chunk-YRBBBUJX.js} +5 -5
  173. package/dist/cli/chunks/{chunk-MQ6OF6DU.js → chunk-YZGSJG34.js} +1 -1
  174. package/dist/cli/chunks/{chunk-XTJMY3KS.js → chunk-YZYDTABJ.js} +1 -1
  175. package/dist/cli/chunks/{chunk-LQOVA4YX.js → chunk-ZANDSVCK.js} +2 -2
  176. package/dist/cli/chunks/{chunk-2E3XWKEU.js → chunk-ZBDRLF43.js} +2 -2
  177. package/dist/cli/chunks/{chunk-UUHIEM2M.js → chunk-ZVSLCEVC.js} +3 -3
  178. package/dist/cli/chunks/{chunk-Q2T5FXEA.js → chunk-ZXBCCO2H.js} +2 -2
  179. package/dist/cli/chunks/{ci-5HEXJZ2C.js → ci-7SGRCFPS.js} +2 -2
  180. package/dist/cli/chunks/{ci-config-WU4NPDAM.js → ci-config-MX3URPZA.js} +2 -2
  181. package/dist/cli/chunks/{ci-output-BJQVXX5E.js → ci-output-M47NJY6D.js} +2 -2
  182. package/dist/cli/chunks/{circuit-breaker-3BMGTQCB.js → circuit-breaker-5GAK45SW.js} +2 -2
  183. package/dist/cli/chunks/{claude-flow-setup-GVDGJWMU.js → claude-flow-setup-YXYSRH4Y.js} +2 -2
  184. package/dist/cli/chunks/client-ZP3CTVRF.js +2 -0
  185. package/dist/cli/chunks/{cline-installer-V4MRGWVA.js → cline-installer-DLJ5QD5N.js} +2 -2
  186. package/dist/cli/chunks/{code-A3TGQPEO.js → code-ONKLMVQ2.js} +25 -24
  187. package/dist/cli/chunks/{code-index-extractor-YJQSYWD3.js → code-index-extractor-2232LGZN.js} +2 -2
  188. package/dist/cli/chunks/{codex-installer-7N7UQPAH.js → codex-installer-UOWLYCMH.js} +2 -2
  189. package/dist/cli/chunks/{completions-PPGVYLZS.js → completions-MHX7GCC7.js} +2 -2
  190. package/dist/cli/chunks/{complexity-analyzer-XZTFLYV5.js → complexity-analyzer-43ZUJKZU.js} +2 -2
  191. package/dist/cli/chunks/{continuedev-installer-Z5I57RAH.js → continuedev-installer-6Q5JR4FF.js} +2 -2
  192. package/dist/cli/chunks/{copilot-installer-F5YZ6BHB.js → copilot-installer-CZUMVHSI.js} +2 -2
  193. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +2 -0
  194. package/dist/cli/chunks/{cost-tracker-GO33ZQAP.js → cost-tracker-VS5ZW3XN.js} +2 -2
  195. package/dist/cli/chunks/{coverage-GSHKLY74.js → coverage-VWKTWZ6D.js} +3 -3
  196. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +2 -0
  197. package/dist/cli/chunks/{cursor-installer-JJ7IVJZB.js → cursor-installer-YIFEMORH.js} +2 -2
  198. package/dist/cli/chunks/{daemon-IRL7QRNE.js → daemon-SHWJSJW5.js} +7 -7
  199. package/dist/cli/chunks/daemon-YIFT46FH.js +34 -0
  200. package/dist/cli/chunks/{dag-attention-scheduler-ORXSUHPA.js → dag-attention-scheduler-TCC2WM46.js} +2 -2
  201. package/dist/cli/chunks/{detect-RHU62KRI.js → detect-IGTWSQMA.js} +2 -2
  202. package/dist/cli/chunks/{dist-node-3VKV4Z6C.js → dist-node-TCOTJVQX.js} +2 -2
  203. package/dist/cli/chunks/{domain-handler-SFIML4FK.js → domain-handler-55ZVYODR.js} +2 -2
  204. package/dist/cli/chunks/{domain-plugins-CJ4FA3OC.js → domain-plugins-GJRWOHQP.js} +2 -2
  205. package/dist/cli/chunks/{domain-transfer-BCRKPCAA.js → domain-transfer-6EF75EKU.js} +2 -2
  206. package/dist/cli/chunks/dream-UDLM6M55.js +2 -0
  207. package/dist/cli/chunks/{embed-and-insert-pattern-VL3HFLPV.js → embed-and-insert-pattern-XAMNIKQL.js} +2 -2
  208. package/dist/cli/chunks/{eval-GGKRI4P5.js → eval-GO22R4OZ.js} +2 -2
  209. package/dist/cli/chunks/{experience-capture-middleware-F72TIRQY.js → experience-capture-middleware-F2BRMJ3Y.js} +3 -3
  210. package/dist/cli/chunks/{fast-paths-7KOOF3MA.js → fast-paths-6RGPYALD.js} +2 -2
  211. package/dist/cli/chunks/{feature-flags-FNHBTHBH.js → feature-flags-MIWQIOHU.js} +2 -2
  212. package/dist/cli/chunks/{feature-flags-IOZEWWFU.js → feature-flags-ZGS3KLPH.js} +2 -2
  213. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +2 -0
  214. package/dist/cli/chunks/fleet-ADL57COA.js +44 -0
  215. package/dist/cli/chunks/{gnn-wrapper-OH2DOQP7.js → gnn-wrapper-ALBJVW6T.js} +2 -2
  216. package/dist/cli/chunks/{heartbeat-handler-W67NXTNE.js → heartbeat-handler-ZMM53NDY.js} +4 -4
  217. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +2 -0
  218. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +2 -0
  219. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +2 -0
  220. package/dist/cli/chunks/{hnsw-legacy-bridge-6MLLOGOE.js → hnsw-legacy-bridge-RYUJPA7B.js} +2 -2
  221. package/dist/cli/chunks/{hnswlib-node-4UDISJ3G.js → hnswlib-node-XM6XF3YV.js} +2 -2
  222. package/dist/cli/chunks/{hooks-NOQJWQ4P.js → hooks-X62O7TJO.js} +10 -10
  223. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +2 -0
  224. package/dist/cli/chunks/{hypergraph-engine-2OD3APVP.js → hypergraph-engine-ZBWUPTVD.js} +2 -2
  225. package/dist/cli/chunks/{hypergraph-handler-5AZGMBUM.js → hypergraph-handler-DUMF6SJV.js} +3 -3
  226. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +2 -0
  227. package/dist/cli/chunks/{init-guard-SMGJ45PW.js → init-guard-S4I2R46S.js} +2 -2
  228. package/dist/cli/chunks/{init-handler-5T4MP2NM.js → init-handler-L4KJHVWS.js} +6 -6
  229. package/dist/cli/chunks/init-wizard-422UZYQ5.js +2 -0
  230. package/dist/cli/chunks/kernel-N7PJ6FCE.js +2 -0
  231. package/dist/cli/chunks/{kilocode-installer-RLZYLVQJ.js → kilocode-installer-GNNB5FCZ.js} +2 -2
  232. package/dist/cli/chunks/{kiro-installer-LFZOC7VD.js → kiro-installer-HR6ZAH7T.js} +2 -2
  233. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +2 -0
  234. package/dist/cli/chunks/{learning-XRPGLUWR.js → learning-4IEEOHJS.js} +3 -3
  235. package/dist/cli/chunks/{llm-router-OMK5HYPH.js → llm-router-ZFMORP36.js} +4 -4
  236. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +2 -0
  237. package/dist/cli/chunks/{load-XADC7KCU.js → load-ZM43WGDO.js} +2 -2
  238. package/dist/cli/chunks/load-test-POMIF4Q4.js +2 -0
  239. package/dist/cli/chunks/{mcp-PIBKSSVU.js → mcp-CRZKZE37.js} +2 -2
  240. package/dist/cli/chunks/{memory-AP7EZERS.js → memory-W5FZGVAD.js} +5 -5
  241. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +2 -0
  242. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +2 -0
  243. package/dist/cli/chunks/{multi-model-executor-7JJ2FZ33.js → multi-model-executor-SXXGAQ2G.js} +2 -2
  244. package/dist/cli/chunks/{opencode-installer-ZZZ6EBYJ.js → opencode-installer-PIRBUAB5.js} +2 -2
  245. package/dist/cli/chunks/{orchestrator-2H2YKSGJ.js → orchestrator-H5SQCQTB.js} +11 -10
  246. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +2 -0
  247. package/dist/cli/chunks/{pattern-usage-recorder-7MJJWC2Z.js → pattern-usage-recorder-XZTWDI2T.js} +2 -2
  248. package/dist/cli/chunks/{pipeline-LIE5BWQY.js → pipeline-5LMLBIJ7.js} +2 -2
  249. package/dist/cli/chunks/{platform-SMYUNLGX.js → platform-KJDABL5C.js} +2 -2
  250. package/dist/cli/chunks/{plugin-LJDIXQNT.js → plugin-V4KSBVVM.js} +2 -2
  251. package/dist/cli/chunks/{prime-radiant-advanced-wasm-RIDNE5D2.js → prime-radiant-advanced-wasm-JDHTKQAT.js} +2 -2
  252. package/dist/cli/chunks/project-root-X72FSM2F.js +2 -0
  253. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +2 -0
  254. package/dist/cli/chunks/{protocol-handler-YVM66DLI.js → protocol-handler-BNRONTQV.js} +2 -2
  255. package/dist/cli/chunks/{prove-ZBDT52GD.js → prove-ELLL6XMX.js} +2 -2
  256. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +2 -0
  257. package/dist/cli/chunks/{quality-DUKXGDDO.js → quality-NH2QA4D4.js} +2 -2
  258. package/dist/cli/chunks/{quality-gate-SM3RXF4V.js → quality-gate-JTKLF7GW.js} +3 -3
  259. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +2 -0
  260. package/dist/cli/chunks/{real-embeddings-4QLQZDB5.js → real-embeddings-J3KCKLPB.js} +2 -2
  261. package/dist/cli/chunks/{ref-validation-M3EO32YQ.js → ref-validation-HNXQRP4F.js} +2 -2
  262. package/dist/cli/chunks/{roocode-installer-S6Q5OLV5.js → roocode-installer-COJ6CX6S.js} +2 -2
  263. package/dist/cli/chunks/router-CXZKOOTR.js +2 -0
  264. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +2 -0
  265. package/dist/cli/chunks/{routing-handler-55FMUACP.js → routing-handler-WM33ZILE.js} +2 -2
  266. package/dist/cli/chunks/{ruvector-commands-QATKAAPK.js → ruvector-commands-BBLXEA7A.js} +2 -2
  267. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +2 -0
  268. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +2 -0
  269. package/dist/cli/chunks/{rvf-migration-coordinator-RFXFU6JD.js → rvf-migration-coordinator-P7H6HCAG.js} +2 -2
  270. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +2 -0
  271. package/dist/cli/chunks/{rvf-store-integrity-PKDVXQAW.js → rvf-store-integrity-R5SPVRFP.js} +2 -2
  272. package/dist/cli/chunks/safe-db-WFODRGVZ.js +2 -0
  273. package/dist/cli/chunks/schedule-RO55OQXG.js +2 -0
  274. package/dist/cli/chunks/scheduler-XXMJCH24.js +2 -0
  275. package/dist/cli/chunks/{security-CMRB6WA3.js → security-AUDTRX3I.js} +3 -3
  276. package/dist/cli/chunks/{shared-rvf-adapter-YHLLNFHF.js → shared-rvf-adapter-PVDGBGI2.js} +2 -2
  277. package/dist/cli/chunks/{shared-rvf-dual-writer-4BGDVPQ7.js → shared-rvf-dual-writer-LZ2GMSS2.js} +2 -2
  278. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +2 -0
  279. package/dist/cli/chunks/{standalone-memory-LUHKQAGM.js → standalone-memory-XNOAI4G4.js} +2 -2
  280. package/dist/cli/chunks/{status-handler-S6S5PNR7.js → status-handler-K72XZE4T.js} +2 -2
  281. package/dist/cli/chunks/{structural-health-PQ7NZAJ4.js → structural-health-NF3YY7U5.js} +2 -2
  282. package/dist/cli/chunks/{sync-S744AEJC.js → sync-UVXA6CT2.js} +2 -2
  283. package/dist/cli/chunks/{sync-Q6KRQXU6.js → sync-VBD5Y3E2.js} +2 -2
  284. package/dist/cli/chunks/{task-handler-GAMGEHUW.js → task-handler-24S3WFVJ.js} +13 -7
  285. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +9 -0
  286. package/dist/cli/chunks/{test-FNH67DBK.js → test-XFSGQELD.js} +4 -4
  287. package/dist/cli/chunks/{test-scheduling-NZA5SHK6.js → test-scheduling-VYUQ4CDE.js} +3 -3
  288. package/dist/cli/chunks/{token-bootstrap-CXKG55JD.js → token-bootstrap-EDK6FNQ3.js} +2 -2
  289. package/dist/cli/chunks/{token-usage-M7WWEDJX.js → token-usage-VLQ6WO2L.js} +2 -2
  290. package/dist/cli/chunks/{transformers-2IFMCK6A.js → transformers-TOFMWWNM.js} +2 -2
  291. package/dist/cli/chunks/{tree-sitter-wasm-parser-NMNA6RJC.js → tree-sitter-wasm-parser-MI3NZKUD.js} +2 -2
  292. package/dist/cli/chunks/{types-N7FWTOLD.js → types-JTWLBAZJ.js} +2 -2
  293. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +2 -0
  294. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +2 -0
  295. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +2 -0
  296. package/dist/cli/chunks/{upgrade-KDB5RGL7.js → upgrade-4ABM72T4.js} +2 -2
  297. package/dist/cli/chunks/{validate-KMUV5FUA.js → validate-UDJCWKXI.js} +2 -2
  298. package/dist/cli/chunks/{validate-swarm-ANZWRCJU.js → validate-swarm-TODOUWNN.js} +2 -2
  299. package/dist/cli/chunks/visual-security-6VZNQLH7.js +2 -0
  300. package/dist/cli/chunks/{web-tree-sitter-SXXC4NMS.js → web-tree-sitter-WBMAJPM5.js} +2 -2
  301. package/dist/cli/chunks/{windsurf-installer-2LWSKMBU.js → windsurf-installer-BTT53TUL.js} +2 -2
  302. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +2 -0
  303. package/dist/cli/chunks/{witness-chain-JJMSJFZP.js → witness-chain-TATPXQRK.js} +2 -2
  304. package/dist/cli/chunks/{witness-chain-repair-OX7VFW6T.js → witness-chain-repair-2HGJGE7O.js} +2 -2
  305. package/dist/cli/chunks/{witness-chain-verifier-QLSMXHAZ.js → witness-chain-verifier-FRY3LMGH.js} +2 -2
  306. package/dist/cli/chunks/{witness-key-manager-3DS4L7LE.js → witness-key-manager-X7QHQQWL.js} +2 -2
  307. package/dist/cli/chunks/{workflow-ARWAMHD3.js → workflow-QMZPAWQW.js} +4 -4
  308. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +2 -0
  309. package/dist/cli/chunks/{wrappers-J6KGTUSJ.js → wrappers-ZD5NBHYI.js} +2 -2
  310. package/dist/cli/commands/code.js +8 -0
  311. package/dist/cli/commands/daemon.js +8 -0
  312. package/dist/cli/commands/fleet.js +14 -9
  313. package/dist/cli/handlers/task-handler.js +21 -1
  314. package/dist/coordination/handlers/code-intelligence-handlers.js +14 -2
  315. package/dist/coordination/handlers/coverage-collection.js +9 -10
  316. package/dist/coordination/handlers/coverage-handlers.js +21 -3
  317. package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
  318. package/dist/coordination/handlers/coverage-runner.js +9 -2
  319. package/dist/coordination/handlers/coverage-target.d.ts +13 -3
  320. package/dist/coordination/handlers/coverage-target.js +224 -7
  321. package/dist/coordination/handlers/handler-types.d.ts +2 -0
  322. package/dist/coordination/handlers/test-execution-handlers.js +32 -5
  323. package/dist/coordination/index.d.ts +2 -2
  324. package/dist/coordination/index.js +1 -1
  325. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +39 -0
  326. package/dist/coordination/protocols/learning-consolidation-archive.js +57 -0
  327. package/dist/coordination/protocols/learning-consolidation.d.ts +38 -3
  328. package/dist/coordination/protocols/learning-consolidation.js +130 -58
  329. package/dist/coordination/queen-coordinator.d.ts +12 -1
  330. package/dist/coordination/queen-coordinator.js +24 -1
  331. package/dist/coordination/queen-event-handlers.js +2 -1
  332. package/dist/coordination/queen-lifecycle.js +9 -0
  333. package/dist/coordination/queen-task-management.js +113 -40
  334. package/dist/coordination/queen-types.d.ts +10 -0
  335. package/dist/coordination/queen-types.js +8 -0
  336. package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
  337. package/dist/coordination/task-dag/dag-algorithms.js +162 -0
  338. package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
  339. package/dist/coordination/task-dag/dag-obligations.js +83 -0
  340. package/dist/coordination/task-dag/dag.d.ts +69 -19
  341. package/dist/coordination/task-dag/dag.js +215 -269
  342. package/dist/coordination/task-dag/index.d.ts +12 -4
  343. package/dist/coordination/task-dag/index.js +11 -3
  344. package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
  345. package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
  346. package/dist/coordination/task-dag/scheduler.d.ts +19 -9
  347. package/dist/coordination/task-dag/scheduler.js +36 -12
  348. package/dist/coordination/task-dag/types.d.ts +160 -1
  349. package/dist/coordination/task-dag/types.js +2 -1
  350. package/dist/coordination/task-executability.d.ts +18 -0
  351. package/dist/coordination/task-executability.js +31 -0
  352. package/dist/coordination/task-executor.d.ts +1 -0
  353. package/dist/coordination/task-executor.js +5 -0
  354. package/dist/domains/code-intelligence/coordinator.js +35 -9
  355. package/dist/domains/code-intelligence/index-path-guard.d.ts +49 -0
  356. package/dist/domains/code-intelligence/index-path-guard.js +125 -0
  357. package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
  358. package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
  359. package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
  360. package/dist/domains/contract-testing/coordinator.js +3 -1
  361. package/dist/domains/coverage-analysis/collected-metrics.js +2 -1
  362. package/dist/domains/defect-intelligence/services/defect-predictor.js +4 -2
  363. package/dist/domains/learning-optimization/active-patterns.d.ts +55 -0
  364. package/dist/domains/learning-optimization/active-patterns.js +80 -0
  365. package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
  366. package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
  367. package/dist/domains/learning-optimization/coordinator.js +50 -106
  368. package/dist/domains/learning-optimization/index.d.ts +1 -1
  369. package/dist/domains/learning-optimization/interfaces.d.ts +56 -4
  370. package/dist/domains/learning-optimization/plugin.js +11 -1
  371. package/dist/domains/learning-optimization/reward-source.d.ts +37 -0
  372. package/dist/domains/learning-optimization/reward-source.js +58 -0
  373. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +4 -4
  374. package/dist/domains/learning-optimization/services/learning-coordinator.js +68 -34
  375. package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
  376. package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
  377. package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
  378. package/dist/domains/test-execution/interfaces.d.ts +16 -0
  379. package/dist/domains/test-execution/services/retry-handler.js +18 -2
  380. package/dist/domains/test-execution/services/runner-test-cases.d.ts +21 -0
  381. package/dist/domains/test-execution/services/runner-test-cases.js +69 -0
  382. package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
  383. package/dist/domains/test-execution/services/test-executor.js +24 -2
  384. package/dist/init/fleet-integration.js +2 -0
  385. package/dist/init/init-wizard-steps.js +2 -0
  386. package/dist/init/phases/06-code-intelligence.js +2 -0
  387. package/dist/init/phases/10-workers.js +2 -1
  388. package/dist/kernel/anti-drift-middleware.d.ts +44 -5
  389. package/dist/kernel/anti-drift-middleware.js +147 -11
  390. package/dist/kernel/interfaces.d.ts +5 -0
  391. package/dist/learning/dream/dream-engine.d.ts +27 -1
  392. package/dist/learning/dream/dream-engine.js +56 -2
  393. package/dist/learning/dream/dream-insights-pruner.d.ts +18 -4
  394. package/dist/learning/dream/dream-insights-pruner.js +99 -11
  395. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -0
  396. package/dist/learning/dream/rvcow-branch-manager.js +8 -0
  397. package/dist/learning/dream/speculative-dreamer.d.ts +8 -0
  398. package/dist/learning/dream/speculative-dreamer.js +8 -0
  399. package/dist/learning/skill-validation-learner.d.ts +2 -0
  400. package/dist/learning/skill-validation-learner.js +29 -21
  401. package/dist/mcp/background-workers.d.ts +15 -0
  402. package/dist/mcp/background-workers.js +77 -0
  403. package/dist/mcp/bundle.js +511 -484
  404. package/dist/mcp/entry.js +4 -49
  405. package/dist/mcp/handlers/domain-handler-configs.d.ts +14 -0
  406. package/dist/mcp/handlers/domain-handler-configs.js +68 -30
  407. package/dist/mcp/handlers/handler-factory.js +1 -0
  408. package/dist/mcp/handlers/task-handlers.js +37 -1
  409. package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
  410. package/dist/mcp/metrics/metrics-collector.js +13 -26
  411. package/dist/mcp/protocol-server.js +8 -3
  412. package/dist/mcp/tools/learning-optimization/optimize.d.ts +34 -3
  413. package/dist/mcp/tools/learning-optimization/optimize.js +106 -70
  414. package/dist/memory/crdt/lww-register.js +11 -1
  415. package/dist/routing/calibration/ema-calibrator.js +3 -1
  416. package/dist/shared/base-domain-plugin.d.ts +4 -0
  417. package/dist/shared/base-domain-plugin.js +6 -0
  418. package/dist/shared/llm/cache.js +4 -1
  419. package/dist/shared/security/compliance-patterns.js +3 -1
  420. package/dist/shared/test-runner-process.d.ts +26 -0
  421. package/dist/shared/test-runner-process.js +91 -0
  422. package/dist/shared/types/index.d.ts +9 -0
  423. package/dist/shared/types/index.js +13 -0
  424. package/dist/shared/utils/namespaced-search.d.ts +42 -0
  425. package/dist/shared/utils/namespaced-search.js +53 -0
  426. package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
  427. package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
  428. package/dist/workers/daemon.d.ts +7 -0
  429. package/dist/workers/daemon.js +21 -2
  430. package/dist/workers/namespaced-keys.d.ts +4 -7
  431. package/dist/workers/namespaced-keys.js +4 -15
  432. package/dist/workers/quality-daemon/ci-monitor.js +9 -5
  433. package/dist/workers/worker-env.d.ts +53 -0
  434. package/dist/workers/worker-env.js +89 -0
  435. package/dist/workers/worker-manager.js +4 -0
  436. package/dist/workers/workers/learning-consolidation.d.ts +20 -0
  437. package/dist/workers/workers/learning-consolidation.js +57 -23
  438. package/package.json +1 -1
  439. package/dist/cli/chunks/adapter-PEOUNYXJ.js +0 -2
  440. package/dist/cli/chunks/aqe-learning-engine-DHKZI5RX.js +0 -2
  441. package/dist/cli/chunks/base-QZWK3D5P.js +0 -2
  442. package/dist/cli/chunks/browser-workflow-ITPX72RX.js +0 -2
  443. package/dist/cli/chunks/chunk-CG5DZCOZ.js +0 -2
  444. package/dist/cli/chunks/chunk-QJE6ZW2X.js +0 -6
  445. package/dist/cli/chunks/chunk-T3ZDVU6F.js +0 -5
  446. package/dist/cli/chunks/chunk-UIYKR2SA.js +0 -2
  447. package/dist/cli/chunks/chunk-VJRZFWR5.js +0 -2
  448. package/dist/cli/chunks/chunk-VUFRTGML.js +0 -3
  449. package/dist/cli/chunks/chunk-YDZJWDR6.js +0 -180
  450. package/dist/cli/chunks/client-S7GNYTZ5.js +0 -2
  451. package/dist/cli/chunks/core-handlers-CUEPOQIO.js +0 -2
  452. package/dist/cli/chunks/cross-domain-router-CXN5QFEV.js +0 -2
  453. package/dist/cli/chunks/daemon-3DQCKRYO.js +0 -10
  454. package/dist/cli/chunks/dream-5AUNJW24.js +0 -2
  455. package/dist/cli/chunks/file-discovery-AYWF357I.js +0 -2
  456. package/dist/cli/chunks/fleet-QX5KXTRC.js +0 -43
  457. package/dist/cli/chunks/heartbeat-scheduler-7ZIDVXIP.js +0 -2
  458. package/dist/cli/chunks/hnsw-adapter-P77OC7FM.js +0 -2
  459. package/dist/cli/chunks/hnsw-index-3LBOTQAW.js +0 -2
  460. package/dist/cli/chunks/hybrid-backend-LOM54PDD.js +0 -2
  461. package/dist/cli/chunks/impact-analyzer-QSDJVBPS.js +0 -2
  462. package/dist/cli/chunks/init-wizard-MK2325JJ.js +0 -2
  463. package/dist/cli/chunks/kernel-2NJQQ2KT.js +0 -2
  464. package/dist/cli/chunks/knowledge-graph-SDISHO62.js +0 -2
  465. package/dist/cli/chunks/llm-router-service-YTCMRBAN.js +0 -2
  466. package/dist/cli/chunks/load-test-RPKHLBCC.js +0 -2
  467. package/dist/cli/chunks/memory-backend-BZXFO4JZ.js +0 -2
  468. package/dist/cli/chunks/memory-handlers-MOFDNB6E.js +0 -2
  469. package/dist/cli/chunks/pattern-null-store-4PRPIOR6.js +0 -2
  470. package/dist/cli/chunks/project-root-NBIQF63D.js +0 -2
  471. package/dist/cli/chunks/protocol-executor-BRPGIYWQ.js +0 -2
  472. package/dist/cli/chunks/qe-reasoning-bank-GDZACWKW.js +0 -2
  473. package/dist/cli/chunks/queen-coordinator-LDKLBPD5.js +0 -2
  474. package/dist/cli/chunks/router-H5YSIRH2.js +0 -2
  475. package/dist/cli/chunks/routing-feedback-5R36TJDH.js +0 -2
  476. package/dist/cli/chunks/rvf-dual-writer-TT2DBQQQ.js +0 -2
  477. package/dist/cli/chunks/rvf-migration-adapter-BCLFJKSK.js +0 -2
  478. package/dist/cli/chunks/rvf-native-adapter-UXI66OQJ.js +0 -2
  479. package/dist/cli/chunks/safe-db-MSTD2GDH.js +0 -2
  480. package/dist/cli/chunks/schedule-KST6KIFD.js +0 -2
  481. package/dist/cli/chunks/scheduler-FTQS6YK3.js +0 -2
  482. package/dist/cli/chunks/sqlite-persistence-ZX5QFDMR.js +0 -2
  483. package/dist/cli/chunks/task-handlers-6CRDEELN.js +0 -9
  484. package/dist/cli/chunks/unified-memory-2Z2F446J.js +0 -2
  485. package/dist/cli/chunks/unified-memory-hnsw-A4EWYPJQ.js +0 -2
  486. package/dist/cli/chunks/unified-persistence-Z6N6JZFA.js +0 -2
  487. package/dist/cli/chunks/visual-security-GXYZV7KR.js +0 -2
  488. package/dist/cli/chunks/witness-chain-52PEIEGK.js +0 -2
  489. package/dist/cli/chunks/workflow-orchestrator-DORMQMG7.js +0 -2
@@ -28,14 +28,21 @@
28
28
  * const unblocked = scheduler.onTaskComplete('build'); // test may now be ready
29
29
  *
30
30
  * // Check progress
31
- * const progress = scheduler.getProgress(); // { completed: 1, total: 4, percentage: 25 }
31
+ * const progress = scheduler.getProgress(); // { completed: 1, total: 4, percentage: 25, ... }
32
+ *
33
+ * // Prerequisites are never resolved by deletion (issue #1069): removing
34
+ * // unfinished work leaves dependents blocked with a REMOVED receipt.
35
+ * // An explicit, attributed waiver is the only bypass.
36
+ * dag.waivePrerequisite({ taskId: 'deploy', prerequisiteId: 'lint', actor: 'release-lead', reason: 'lint gate retired' });
32
37
  * ```
33
38
  */
39
+ export { PREREQUISITE_RECEIPT_SCHEMA } from './types.js';
34
40
  // ============================================================================
35
41
  // Class Exports
36
42
  // ============================================================================
37
43
  export { TaskDAG } from './dag.js';
38
44
  export { DAGScheduler } from './scheduler.js';
45
+ export { GraphRevisionConflictError, PrerequisiteWaiverError, validateWaiverInput, } from './prerequisite-ledger.js';
39
46
  // ============================================================================
40
47
  // Factory Functions
41
48
  // ============================================================================
@@ -44,10 +51,11 @@ import { DAGScheduler } from './scheduler.js';
44
51
  /**
45
52
  * Create a new empty TaskDAG instance.
46
53
  *
54
+ * @param options - Optional graph identity and waiver policy
47
55
  * @returns A fresh TaskDAG with no tasks
48
56
  */
49
- export function createTaskDAG() {
50
- return new TaskDAG();
57
+ export function createTaskDAG(options) {
58
+ return new TaskDAG(options);
51
59
  }
52
60
  /**
53
61
  * Create a new DAGScheduler wrapping a TaskDAG.
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Agentic QE v3 - Prerequisite Ledger
3
+ * Issue #1069: typed prerequisite dispositions and receipts for TaskDAG
4
+ *
5
+ * Holds the graph identity, the monotonically increasing graph revision,
6
+ * the current disposition of every prerequisite edge, an append-only log
7
+ * of PrerequisiteReceiptV1 records, and tombstones for removed tasks so the
8
+ * original obligation denominator survives node removal.
9
+ */
10
+ import { type DAGTask, type DAGTaskStatus, type ObligationSummary, type PrerequisiteDisposition, type PrerequisiteEdgeState, type PrerequisiteReceiptV1, type PrerequisiteWaiver, type RemovedTaskRecord, type WaivePrerequisiteInput } from './types.js';
11
+ /** Task statuses that end execution */
12
+ export declare const TERMINAL_STATUSES: ReadonlySet<DAGTaskStatus>;
13
+ /** Thrown when an operation's expectedRevision does not match the graph */
14
+ export declare class GraphRevisionConflictError extends Error {
15
+ readonly expectedRevision: number;
16
+ readonly actualRevision: number;
17
+ constructor(expectedRevision: number, actualRevision: number);
18
+ }
19
+ /** Thrown when a waiver request is invalid or rejected by policy */
20
+ export declare class PrerequisiteWaiverError extends Error {
21
+ constructor(message: string);
22
+ }
23
+ /**
24
+ * Validate a waiver request at the API boundary.
25
+ * @returns The normalized (trimmed) request
26
+ * @throws PrerequisiteWaiverError on missing or malformed fields
27
+ */
28
+ export declare function validateWaiverInput(input: WaivePrerequisiteInput): WaivePrerequisiteInput;
29
+ /** Extra fields attached to a receipt */
30
+ interface ReceiptDetails {
31
+ readonly completionEvidenceRef?: string;
32
+ readonly waiver?: PrerequisiteWaiver;
33
+ }
34
+ /**
35
+ * Ledger of prerequisite edge dispositions for one TaskDAG.
36
+ * Receipts are frozen and never rewritten; the latest receipt per edge
37
+ * is the edge's current disposition.
38
+ */
39
+ export declare class PrerequisiteLedger {
40
+ readonly graphId: string;
41
+ private revision;
42
+ private readonly current;
43
+ private readonly log;
44
+ private readonly tombstones;
45
+ private readonly obligations;
46
+ constructor(graphId: string);
47
+ /** Current graph revision (0 for a fresh graph) */
48
+ get graphRevision(): number;
49
+ /** @throws GraphRevisionConflictError if expected is set and stale */
50
+ checkRevision(expected?: number): void;
51
+ /** Advance the revision for a committed mutation. */
52
+ bump(): number;
53
+ /** Append a receipt and make it the edge's current disposition. */
54
+ record(taskId: string, prerequisiteId: string, disposition: PrerequisiteDisposition, details?: ReceiptDetails): PrerequisiteReceiptV1;
55
+ /** Current disposition of an edge, or undefined if the edge is unknown. */
56
+ disposition(taskId: string, prerequisiteId: string): PrerequisiteDisposition | undefined;
57
+ /** True when every listed prerequisite edge is SATISFIED or WAIVED. */
58
+ allResolved(taskId: string, prerequisiteIds: Iterable<string>): boolean;
59
+ /** True when any edge of the task has one of the given dispositions. */
60
+ hasAny(taskId: string, dispositions: readonly PrerequisiteDisposition[]): boolean;
61
+ /** Current edge states for a dependent, in the given prerequisite order. */
62
+ edgesOf(taskId: string, prerequisiteIds: Iterable<string>): PrerequisiteEdgeState[];
63
+ /** Count live edges by disposition across the given dependents. */
64
+ countEdges(taskIds: Iterable<string>, disposition: PrerequisiteDisposition): number;
65
+ /** Append-only receipt log, optionally filtered. */
66
+ receipts(filter?: {
67
+ taskId?: string;
68
+ prerequisiteId?: string;
69
+ }): PrerequisiteReceiptV1[];
70
+ /** Drop a removed task's own edges from the current projection (log is kept). */
71
+ dropEdgesOf(taskId: string): void;
72
+ /** Register a task as an obligation; re-adding clears any tombstone. */
73
+ addObligation(taskId: string): void;
74
+ tombstone(taskId: string, statusAtRemoval: DAGTaskStatus): void;
75
+ isTombstoned(taskId: string): boolean;
76
+ removedTasks(): RemovedTaskRecord[];
77
+ get obligationCount(): number;
78
+ /** Obligation accounting over live tasks plus tombstones. */
79
+ summarize(liveTasks: Iterable<DAGTask>): ObligationSummary;
80
+ /** Reset all state except the revision, which stays monotonic. */
81
+ reset(): void;
82
+ }
83
+ export {};
84
+ //# sourceMappingURL=prerequisite-ledger.d.ts.map
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Agentic QE v3 - Prerequisite Ledger
3
+ * Issue #1069: typed prerequisite dispositions and receipts for TaskDAG
4
+ *
5
+ * Holds the graph identity, the monotonically increasing graph revision,
6
+ * the current disposition of every prerequisite edge, an append-only log
7
+ * of PrerequisiteReceiptV1 records, and tombstones for removed tasks so the
8
+ * original obligation denominator survives node removal.
9
+ */
10
+ import { PREREQUISITE_RECEIPT_SCHEMA, } from './types.js';
11
+ /** Dispositions that let a dependent become ready */
12
+ const RESOLVING = new Set([
13
+ 'SATISFIED',
14
+ 'WAIVED',
15
+ ]);
16
+ /** Task statuses that end execution */
17
+ export const TERMINAL_STATUSES = new Set([
18
+ 'completed',
19
+ 'failed',
20
+ 'cancelled',
21
+ ]);
22
+ const MAX_ACTOR_LENGTH = 256;
23
+ const MAX_REASON_LENGTH = 4096;
24
+ const MAX_REF_LENGTH = 1024;
25
+ /** Thrown when an operation's expectedRevision does not match the graph */
26
+ export class GraphRevisionConflictError extends Error {
27
+ expectedRevision;
28
+ actualRevision;
29
+ constructor(expectedRevision, actualRevision) {
30
+ super(`Graph revision conflict: expected ${expectedRevision}, graph is at ${actualRevision}`);
31
+ this.expectedRevision = expectedRevision;
32
+ this.actualRevision = actualRevision;
33
+ this.name = 'GraphRevisionConflictError';
34
+ }
35
+ }
36
+ /** Thrown when a waiver request is invalid or rejected by policy */
37
+ export class PrerequisiteWaiverError extends Error {
38
+ constructor(message) {
39
+ super(message);
40
+ this.name = 'PrerequisiteWaiverError';
41
+ }
42
+ }
43
+ function requireText(value, field, maxLength) {
44
+ if (typeof value !== 'string' || value.trim().length === 0) {
45
+ throw new PrerequisiteWaiverError(`Waiver '${field}' must be a non-empty string`);
46
+ }
47
+ const trimmed = value.trim();
48
+ if (trimmed.length > maxLength) {
49
+ throw new PrerequisiteWaiverError(`Waiver '${field}' exceeds ${maxLength} characters`);
50
+ }
51
+ return trimmed;
52
+ }
53
+ /**
54
+ * Validate a waiver request at the API boundary.
55
+ * @returns The normalized (trimmed) request
56
+ * @throws PrerequisiteWaiverError on missing or malformed fields
57
+ */
58
+ export function validateWaiverInput(input) {
59
+ if (input === null || typeof input !== 'object') {
60
+ throw new PrerequisiteWaiverError('Waiver input must be an object');
61
+ }
62
+ const authorityRef = input.authorityRef === undefined
63
+ ? undefined
64
+ : requireText(input.authorityRef, 'authorityRef', MAX_REF_LENGTH);
65
+ const expectedRevision = input.expectedRevision;
66
+ if (expectedRevision !== undefined && !Number.isInteger(expectedRevision)) {
67
+ throw new PrerequisiteWaiverError(`Waiver 'expectedRevision' must be an integer`);
68
+ }
69
+ return {
70
+ taskId: requireText(input.taskId, 'taskId', MAX_REF_LENGTH),
71
+ prerequisiteId: requireText(input.prerequisiteId, 'prerequisiteId', MAX_REF_LENGTH),
72
+ actor: requireText(input.actor, 'actor', MAX_ACTOR_LENGTH),
73
+ reason: requireText(input.reason, 'reason', MAX_REASON_LENGTH),
74
+ authorityRef,
75
+ expectedRevision,
76
+ };
77
+ }
78
+ /**
79
+ * Ledger of prerequisite edge dispositions for one TaskDAG.
80
+ * Receipts are frozen and never rewritten; the latest receipt per edge
81
+ * is the edge's current disposition.
82
+ */
83
+ export class PrerequisiteLedger {
84
+ graphId;
85
+ revision = 0;
86
+ current = new Map();
87
+ log = [];
88
+ tombstones = new Map();
89
+ obligations = new Set();
90
+ constructor(graphId) {
91
+ this.graphId = graphId;
92
+ }
93
+ /** Current graph revision (0 for a fresh graph) */
94
+ get graphRevision() {
95
+ return this.revision;
96
+ }
97
+ /** @throws GraphRevisionConflictError if expected is set and stale */
98
+ checkRevision(expected) {
99
+ if (expected !== undefined && expected !== this.revision) {
100
+ throw new GraphRevisionConflictError(expected, this.revision);
101
+ }
102
+ }
103
+ /** Advance the revision for a committed mutation. */
104
+ bump() {
105
+ return ++this.revision;
106
+ }
107
+ /** Append a receipt and make it the edge's current disposition. */
108
+ record(taskId, prerequisiteId, disposition, details = {}) {
109
+ const receipt = Object.freeze({
110
+ schema: PREREQUISITE_RECEIPT_SCHEMA,
111
+ graphId: this.graphId,
112
+ graphRevision: this.revision,
113
+ taskId,
114
+ prerequisiteId,
115
+ disposition,
116
+ ...(details.completionEvidenceRef !== undefined
117
+ ? { completionEvidenceRef: details.completionEvidenceRef }
118
+ : {}),
119
+ ...(details.waiver ? { waiver: Object.freeze({ ...details.waiver }) } : {}),
120
+ observedAt: new Date().toISOString(),
121
+ });
122
+ let edges = this.current.get(taskId);
123
+ if (!edges) {
124
+ edges = new Map();
125
+ this.current.set(taskId, edges);
126
+ }
127
+ edges.set(prerequisiteId, receipt);
128
+ this.log.push(receipt);
129
+ return receipt;
130
+ }
131
+ /** Current disposition of an edge, or undefined if the edge is unknown. */
132
+ disposition(taskId, prerequisiteId) {
133
+ return this.current.get(taskId)?.get(prerequisiteId)?.disposition;
134
+ }
135
+ /** True when every listed prerequisite edge is SATISFIED or WAIVED. */
136
+ allResolved(taskId, prerequisiteIds) {
137
+ for (const id of prerequisiteIds) {
138
+ const d = this.disposition(taskId, id);
139
+ if (!d || !RESOLVING.has(d))
140
+ return false;
141
+ }
142
+ return true;
143
+ }
144
+ /** True when any edge of the task has one of the given dispositions. */
145
+ hasAny(taskId, dispositions) {
146
+ const edges = this.current.get(taskId);
147
+ if (!edges)
148
+ return false;
149
+ for (const receipt of edges.values()) {
150
+ if (dispositions.includes(receipt.disposition))
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ /** Current edge states for a dependent, in the given prerequisite order. */
156
+ edgesOf(taskId, prerequisiteIds) {
157
+ const edges = this.current.get(taskId);
158
+ const states = [];
159
+ if (!edges)
160
+ return states;
161
+ for (const id of prerequisiteIds) {
162
+ const receipt = edges.get(id);
163
+ if (receipt)
164
+ states.push({ prerequisiteId: id, disposition: receipt.disposition, receipt });
165
+ }
166
+ return states;
167
+ }
168
+ /** Count live edges by disposition across the given dependents. */
169
+ countEdges(taskIds, disposition) {
170
+ let count = 0;
171
+ for (const id of taskIds) {
172
+ const edges = this.current.get(id);
173
+ if (!edges)
174
+ continue;
175
+ for (const receipt of edges.values()) {
176
+ if (receipt.disposition === disposition)
177
+ count++;
178
+ }
179
+ }
180
+ return count;
181
+ }
182
+ /** Append-only receipt log, optionally filtered. */
183
+ receipts(filter = {}) {
184
+ return this.log.filter((r) => (filter.taskId === undefined || r.taskId === filter.taskId) &&
185
+ (filter.prerequisiteId === undefined || r.prerequisiteId === filter.prerequisiteId));
186
+ }
187
+ /** Drop a removed task's own edges from the current projection (log is kept). */
188
+ dropEdgesOf(taskId) {
189
+ this.current.delete(taskId);
190
+ }
191
+ /** Register a task as an obligation; re-adding clears any tombstone. */
192
+ addObligation(taskId) {
193
+ this.obligations.add(taskId);
194
+ this.tombstones.delete(taskId);
195
+ }
196
+ tombstone(taskId, statusAtRemoval) {
197
+ this.tombstones.set(taskId, Object.freeze({
198
+ taskId,
199
+ statusAtRemoval,
200
+ graphRevision: this.revision,
201
+ }));
202
+ }
203
+ isTombstoned(taskId) {
204
+ return this.tombstones.has(taskId);
205
+ }
206
+ removedTasks() {
207
+ return Array.from(this.tombstones.values());
208
+ }
209
+ get obligationCount() {
210
+ return this.obligations.size;
211
+ }
212
+ /** Obligation accounting over live tasks plus tombstones. */
213
+ summarize(liveTasks) {
214
+ let completed = 0, failed = 0, cancelled = 0, notRun = 0, removed = 0;
215
+ const liveIds = [];
216
+ for (const task of liveTasks) {
217
+ liveIds.push(task.id);
218
+ if (task.status === 'completed')
219
+ completed++;
220
+ else if (task.status === 'failed')
221
+ failed++;
222
+ else if (task.status === 'cancelled')
223
+ cancelled++;
224
+ else
225
+ notRun++;
226
+ }
227
+ for (const record of this.tombstones.values()) {
228
+ if (record.statusAtRemoval === 'completed')
229
+ completed++;
230
+ else
231
+ removed++;
232
+ }
233
+ return {
234
+ graphId: this.graphId,
235
+ graphRevision: this.revision,
236
+ originalTotal: this.obligations.size,
237
+ currentTotal: liveIds.length,
238
+ completed, failed, cancelled, removed, notRun,
239
+ waivedEdges: this.countEdges(liveIds, 'WAIVED'),
240
+ missingEdges: this.countEdges(liveIds, 'MISSING'),
241
+ removedEdges: this.countEdges(liveIds, 'REMOVED'),
242
+ };
243
+ }
244
+ /** Reset all state except the revision, which stays monotonic. */
245
+ reset() {
246
+ this.current.clear();
247
+ this.log.length = 0;
248
+ this.tombstones.clear();
249
+ this.obligations.clear();
250
+ }
251
+ }
252
+ //# sourceMappingURL=prerequisite-ledger.js.map
@@ -7,7 +7,7 @@
7
7
  * by priority level first (p0 > p1 > p2 > p3), then by number of
8
8
  * downstream dependents (most blocking tasks first).
9
9
  */
10
- import type { DAGTask, DAGSchedulerConfig } from './types.js';
10
+ import type { CompleteTaskOptions, DAGProgress, DAGTask, DAGSchedulerConfig } from './types.js';
11
11
  import type { TaskDAG } from './dag.js';
12
12
  /**
13
13
  * DAG-aware task scheduler with priority and dependency ordering.
@@ -65,9 +65,10 @@ export declare class DAGScheduler {
65
65
  *
66
66
  * @param taskId - ID of the completed task
67
67
  * @param result - Optional result data from the task
68
+ * @param options - Optional completion evidence and revision guard
68
69
  * @returns Array of newly schedulable tasks
69
70
  */
70
- onTaskComplete(taskId: string, result?: unknown): DAGTask[];
71
+ onTaskComplete(taskId: string, result?: unknown, options?: CompleteTaskOptions): DAGTask[];
71
72
  /**
72
73
  * Handle task failure and cascade cancellations.
73
74
  *
@@ -90,22 +91,31 @@ export declare class DAGScheduler {
90
91
  /**
91
92
  * Get progress information for the DAG execution.
92
93
  *
93
- * @returns Object with completed count, total count, and percentage
94
+ * The denominator is the original obligation count: removing a task
95
+ * does not shrink it, so deleting unfinished work cannot raise the
96
+ * percentage. Completed tasks that were later removed still count.
97
+ *
98
+ * @returns Completed count, original total, percentage and disposition counts
94
99
  */
95
- getProgress(): {
96
- completed: number;
97
- total: number;
98
- percentage: number;
99
- };
100
+ getProgress(): DAGProgress;
100
101
  /**
101
102
  * Check whether all tasks have reached a terminal state.
102
103
  *
103
104
  * A DAG execution is complete when every task is either
104
- * 'completed', 'failed', or 'cancelled'.
105
+ * 'completed', 'failed', or 'cancelled'. This is an operational
106
+ * signal only; use isSatisfied() to ask whether the objective was met.
105
107
  *
106
108
  * @returns true if all tasks are in a terminal state
107
109
  */
108
110
  isComplete(): boolean;
111
+ /**
112
+ * Check whether every original obligation completed. Failed, cancelled
113
+ * and removed-before-completion tasks make this false even when
114
+ * isComplete() is true.
115
+ *
116
+ * @returns true if every task ever added has completed
117
+ */
118
+ isSatisfied(): boolean;
109
119
  /**
110
120
  * Sort tasks by priority (highest first) then by downstream
111
121
  * dependent count (most blocking first).
@@ -110,10 +110,11 @@ export class DAGScheduler {
110
110
  *
111
111
  * @param taskId - ID of the completed task
112
112
  * @param result - Optional result data from the task
113
+ * @param options - Optional completion evidence and revision guard
113
114
  * @returns Array of newly schedulable tasks
114
115
  */
115
- onTaskComplete(taskId, result) {
116
- const unblockedIds = this.dag.complete(taskId, result);
116
+ onTaskComplete(taskId, result, options) {
117
+ const unblockedIds = this.dag.complete(taskId, result, options);
117
118
  const tasks = [];
118
119
  for (const id of unblockedIds) {
119
120
  const task = this.dag.getTask(id);
@@ -164,23 +165,35 @@ export class DAGScheduler {
164
165
  /**
165
166
  * Get progress information for the DAG execution.
166
167
  *
167
- * @returns Object with completed count, total count, and percentage
168
+ * The denominator is the original obligation count: removing a task
169
+ * does not shrink it, so deleting unfinished work cannot raise the
170
+ * percentage. Completed tasks that were later removed still count.
171
+ *
172
+ * @returns Completed count, original total, percentage and disposition counts
168
173
  */
169
174
  getProgress() {
170
- const stats = this.dag.getStats();
171
- const total = stats.totalTasks;
172
- if (total === 0) {
173
- return { completed: 0, total: 0, percentage: 100 };
174
- }
175
- const completed = stats.completed;
176
- const percentage = Math.round((completed / total) * 100);
177
- return { completed, total, percentage };
175
+ const s = this.dag.getObligationSummary();
176
+ const total = s.originalTotal;
177
+ const percentage = total === 0 ? 100 : Math.round((s.completed / total) * 100);
178
+ return {
179
+ completed: s.completed,
180
+ total,
181
+ percentage,
182
+ currentTotal: s.currentTotal,
183
+ failed: s.failed,
184
+ cancelled: s.cancelled,
185
+ removed: s.removed,
186
+ notRun: s.notRun,
187
+ waivedEdges: s.waivedEdges,
188
+ graphRevision: s.graphRevision,
189
+ };
178
190
  }
179
191
  /**
180
192
  * Check whether all tasks have reached a terminal state.
181
193
  *
182
194
  * A DAG execution is complete when every task is either
183
- * 'completed', 'failed', or 'cancelled'.
195
+ * 'completed', 'failed', or 'cancelled'. This is an operational
196
+ * signal only; use isSatisfied() to ask whether the objective was met.
184
197
  *
185
198
  * @returns true if all tasks are in a terminal state
186
199
  */
@@ -192,6 +205,17 @@ export class DAGScheduler {
192
205
  const terminal = stats.completed + stats.failed + stats.cancelled;
193
206
  return terminal === stats.totalTasks;
194
207
  }
208
+ /**
209
+ * Check whether every original obligation completed. Failed, cancelled
210
+ * and removed-before-completion tasks make this false even when
211
+ * isComplete() is true.
212
+ *
213
+ * @returns true if every task ever added has completed
214
+ */
215
+ isSatisfied() {
216
+ const s = this.dag.getObligationSummary();
217
+ return s.completed === s.originalTotal;
218
+ }
195
219
  // --------------------------------------------------------------------------
196
220
  // Internal Helpers
197
221
  // --------------------------------------------------------------------------