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.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +305 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
- package/dist/bridge/captured-experience-bridge.js +12 -13
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-R2Q4QGXQ.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-OS5G7KMQ.js → agent-booster-wasm-427FRKWG.js} +2 -2
- package/dist/cli/chunks/{agent-handler-PI4I7PME.js → agent-handler-RIYHTHVZ.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-J7TXHX4U.js → agent-memory-branch-WSUCUHOO.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +2 -0
- package/dist/cli/chunks/{arena-OWUGXKNT.js → arena-KRIBMIXX.js} +2 -2
- package/dist/cli/chunks/{arena-FXESDCFR.js → arena-YAJZX6MC.js} +4 -4
- package/dist/cli/chunks/{audit-EPAWLYIZ.js → audit-7ZNOXWP3.js} +3 -3
- package/dist/cli/chunks/base-67DXSAYM.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-IYVR5EQY.js → better-sqlite3-ZQAT4I6H.js} +2 -2
- package/dist/cli/chunks/{brain-handler-3W2E6TC6.js → brain-handler-452WCPZC.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-HU7VACJ4.js → branch-enumerator-IJFXJRPN.js} +2 -2
- package/dist/cli/chunks/{browser-72XOR6E2.js → browser-CT3MTV6G.js} +2 -2
- package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +2 -0
- package/dist/cli/chunks/{chunk-WXI2STKQ.js → chunk-2BA45H64.js} +2 -2
- package/dist/cli/chunks/{chunk-DGK6GQMO.js → chunk-2HL3UM5P.js} +2 -2
- package/dist/cli/chunks/{chunk-LGBN7TKC.js → chunk-2I2UPJS7.js} +2 -2
- package/dist/cli/chunks/{chunk-ZRLNACPY.js → chunk-2TDIS6YK.js} +2 -2
- package/dist/cli/chunks/{chunk-34JLY3U6.js → chunk-2URBI52G.js} +2 -2
- package/dist/cli/chunks/{chunk-K7W55B7Q.js → chunk-2XITOPYV.js} +2 -2
- package/dist/cli/chunks/{chunk-I7H4IP7T.js → chunk-2YH62JCN.js} +2 -2
- package/dist/cli/chunks/{chunk-HPG7354V.js → chunk-32UTLDNY.js} +2 -2
- package/dist/cli/chunks/{chunk-C2CUPJGR.js → chunk-37BIGMJI.js} +1 -1
- package/dist/cli/chunks/{chunk-2RJYA6WK.js → chunk-3CJCROMW.js} +2 -2
- package/dist/cli/chunks/{chunk-CWPRU7ZI.js → chunk-3LYU7BLY.js} +2 -2
- package/dist/cli/chunks/{chunk-24CENUT4.js → chunk-47TYABPD.js} +3 -3
- package/dist/cli/chunks/{chunk-WUV5RZUI.js → chunk-47V7FQGX.js} +2 -2
- package/dist/cli/chunks/{chunk-IWQQIXHO.js → chunk-4JCY45KV.js} +2 -2
- package/dist/cli/chunks/{chunk-ZTMZFF25.js → chunk-4SUOVLJ6.js} +2 -2
- package/dist/cli/chunks/{chunk-CIFWOMNX.js → chunk-4URT6JO2.js} +1 -1
- package/dist/cli/chunks/{chunk-5Q22XPTH.js → chunk-4V27J6YN.js} +2 -2
- package/dist/cli/chunks/{chunk-SX2YSHE7.js → chunk-4W4DYVSH.js} +1 -1
- package/dist/cli/chunks/chunk-55HRSNGN.js +2 -0
- package/dist/cli/chunks/{chunk-F62EKVVC.js → chunk-5D2I7JUP.js} +2 -2
- package/dist/cli/chunks/{chunk-XXAVQACL.js → chunk-5JWGCIQW.js} +1 -1
- package/dist/cli/chunks/chunk-5LAAZLUC.js +4 -0
- package/dist/cli/chunks/{chunk-EDU72RTW.js → chunk-5NS3USRW.js} +1 -1
- package/dist/cli/chunks/{chunk-BTYKGVJ5.js → chunk-6EPHNJTL.js} +1 -1
- package/dist/cli/chunks/{chunk-JVYPXW6Y.js → chunk-6OOYIO3W.js} +2 -2
- package/dist/cli/chunks/{chunk-PG64YV6C.js → chunk-6PXA2BQJ.js} +58 -58
- package/dist/cli/chunks/{chunk-IARSGAG7.js → chunk-6YL6JOQB.js} +2 -2
- package/dist/cli/chunks/{chunk-LDXQRNTT.js → chunk-72AMFDC7.js} +1 -1
- package/dist/cli/chunks/{chunk-Z3VJLWRR.js → chunk-763SUL4B.js} +2 -2
- package/dist/cli/chunks/{chunk-EL75G2A3.js → chunk-7DMA5NYL.js} +1 -1
- package/dist/cli/chunks/{chunk-J43DV3ME.js → chunk-7JKB3Q7O.js} +1 -1
- package/dist/cli/chunks/{chunk-ONVALAZN.js → chunk-7KII4CQG.js} +2 -2
- package/dist/cli/chunks/{chunk-AAA4SHEG.js → chunk-7QGYJ5OY.js} +1 -1
- package/dist/cli/chunks/{chunk-MMXG3LL6.js → chunk-7QTB5VJZ.js} +2 -2
- package/dist/cli/chunks/{chunk-BB7OLQKO.js → chunk-7X2Y727E.js} +1 -1
- package/dist/cli/chunks/{chunk-VNW5Q2CX.js → chunk-A4RU67VX.js} +2 -2
- package/dist/cli/chunks/{chunk-YFOBQSOW.js → chunk-A6YIH4C4.js} +2 -2
- package/dist/cli/chunks/{chunk-MJJC6HUK.js → chunk-ABFDB4X3.js} +1 -1
- package/dist/cli/chunks/{chunk-MHZPC4HJ.js → chunk-AJ4YDSOI.js} +2 -2
- package/dist/cli/chunks/{chunk-OA4GR3EZ.js → chunk-AOFO4N32.js} +2 -2
- package/dist/cli/chunks/{chunk-EB2PP6X2.js → chunk-AQTVVLNP.js} +1 -1
- package/dist/cli/chunks/chunk-AR2E4B7K.js +6 -0
- package/dist/cli/chunks/{chunk-N4PMPSJJ.js → chunk-AVB5QY2Q.js} +2 -2
- package/dist/cli/chunks/{chunk-HLZATDD2.js → chunk-BHKXMIWX.js} +2 -2
- package/dist/cli/chunks/{chunk-C2MDBBFF.js → chunk-BXO536GT.js} +3 -3
- package/dist/cli/chunks/{chunk-WTLIEBDH.js → chunk-C6RTMTEH.js} +1 -1
- package/dist/cli/chunks/{chunk-MNZFEIE5.js → chunk-CTZJUV5I.js} +1 -1
- package/dist/cli/chunks/{chunk-XEWXYGJI.js → chunk-D6XVGFTI.js} +2 -2
- package/dist/cli/chunks/{chunk-Y4SAWE45.js → chunk-DDPPSSHW.js} +1 -1
- package/dist/cli/chunks/{chunk-KPOPBUUJ.js → chunk-DGTLJNJH.js} +2 -2
- package/dist/cli/chunks/{chunk-6JT73S5B.js → chunk-DINZR5CF.js} +1 -1
- package/dist/cli/chunks/{chunk-HTWIGQL4.js → chunk-EFBLP43U.js} +2 -2
- package/dist/cli/chunks/chunk-ETG7O5E5.js +5 -0
- package/dist/cli/chunks/{chunk-2AYBYXOA.js → chunk-F2SQPP6U.js} +2 -2
- package/dist/cli/chunks/{chunk-V2SAEMZY.js → chunk-F3PQZX44.js} +1 -1
- package/dist/cli/chunks/{chunk-JPHDMHFG.js → chunk-F4JYIRW2.js} +2 -2
- package/dist/cli/chunks/{chunk-REEIFA6A.js → chunk-FJ4VTLLK.js} +2 -2
- package/dist/cli/chunks/{chunk-PTK66HEY.js → chunk-FL3OYGCS.js} +2 -2
- package/dist/cli/chunks/{chunk-PEKDSJBC.js → chunk-FLASM2XB.js} +2 -2
- package/dist/cli/chunks/{chunk-G762PEFO.js → chunk-FV3NHVC7.js} +22 -22
- package/dist/cli/chunks/{chunk-FTTFJ7SJ.js → chunk-FV7VAG74.js} +1 -1
- package/dist/cli/chunks/{chunk-2YVJ5OUL.js → chunk-G3BKZNFL.js} +8 -8
- package/dist/cli/chunks/{chunk-MDC4G323.js → chunk-GBUIG3FS.js} +1 -1
- package/dist/cli/chunks/{chunk-DCJW2DPL.js → chunk-GCWSX2NY.js} +4 -4
- package/dist/cli/chunks/{chunk-VCA6YYII.js → chunk-GII5WVAK.js} +1 -1
- package/dist/cli/chunks/{chunk-HXBAQKMH.js → chunk-GKPQ2GRR.js} +2 -2
- package/dist/cli/chunks/chunk-GR3JYE5A.js +2 -0
- package/dist/cli/chunks/{chunk-ZUMDDMDE.js → chunk-H3KBIWTO.js} +2 -2
- package/dist/cli/chunks/{chunk-ECSLJJOQ.js → chunk-HAROIAJE.js} +1 -1
- package/dist/cli/chunks/{chunk-ICPALF4Q.js → chunk-HCYQHWI2.js} +2 -2
- package/dist/cli/chunks/{chunk-V5NGBQAQ.js → chunk-HGTWAZWU.js} +2 -2
- package/dist/cli/chunks/{chunk-YK3NOC2R.js → chunk-HTZJSQ3C.js} +2 -2
- package/dist/cli/chunks/{chunk-IYQ7XNE5.js → chunk-HWK5L7IJ.js} +2 -2
- package/dist/cli/chunks/{chunk-HSDOOFV7.js → chunk-HZ5NC6U5.js} +1 -1
- package/dist/cli/chunks/{chunk-M63QB466.js → chunk-I6S35FRO.js} +2 -2
- package/dist/cli/chunks/{chunk-LMEU64TR.js → chunk-ICP2ORGI.js} +2 -2
- package/dist/cli/chunks/{chunk-PXZKPUW6.js → chunk-IFEIY3NQ.js} +2 -2
- package/dist/cli/chunks/{chunk-OJEZNLB6.js → chunk-J3DTDJDT.js} +2 -2
- package/dist/cli/chunks/chunk-J3WGK22W.js +2 -0
- package/dist/cli/chunks/{chunk-SQHLC6I5.js → chunk-J5KNRVXR.js} +1 -1
- package/dist/cli/chunks/{chunk-RORZ5O5Z.js → chunk-JAV5WPSY.js} +2 -2
- package/dist/cli/chunks/{chunk-SSP2B2WR.js → chunk-JEP4ULR6.js} +2 -2
- package/dist/cli/chunks/{chunk-6FEQ73BF.js → chunk-JK2ME6IT.js} +2 -2
- package/dist/cli/chunks/chunk-JNNZK7KH.js +2 -0
- package/dist/cli/chunks/{chunk-RXAFLK34.js → chunk-JP4P3P3D.js} +2 -2
- package/dist/cli/chunks/{chunk-JY4AIEZ7.js → chunk-JUVHZG7I.js} +1 -1
- package/dist/cli/chunks/{chunk-UBYCR3O4.js → chunk-JWGRWMZP.js} +2 -2
- package/dist/cli/chunks/{chunk-6BO3WCK7.js → chunk-K5DJXMAA.js} +2 -2
- package/dist/cli/chunks/{chunk-MKFQNCXI.js → chunk-KFUUIAR4.js} +2 -2
- package/dist/cli/chunks/chunk-KHSRIPBP.js +180 -0
- package/dist/cli/chunks/{chunk-UY3REQOK.js → chunk-KIKWJM6J.js} +2 -2
- package/dist/cli/chunks/{chunk-YUC7RJGR.js → chunk-KIXYKUCI.js} +1 -1
- package/dist/cli/chunks/{chunk-IC2WSSD5.js → chunk-KLGYIEJK.js} +3 -3
- package/dist/cli/chunks/{chunk-DVPGBDBP.js → chunk-KR3M44CF.js} +3 -3
- package/dist/cli/chunks/chunk-KTSLTZSG.js +2 -0
- package/dist/cli/chunks/{chunk-Y6A46M3B.js → chunk-KVBEGOJE.js} +2 -2
- package/dist/cli/chunks/{chunk-PZG3542B.js → chunk-L42JPFCC.js} +2 -2
- package/dist/cli/chunks/{chunk-J26GADQE.js → chunk-LCJTEUDC.js} +181 -181
- package/dist/cli/chunks/{chunk-3JD2USUH.js → chunk-LEAKYZ37.js} +2 -2
- package/dist/cli/chunks/{chunk-UCLN6AME.js → chunk-LMU5DUDK.js} +1 -1
- package/dist/cli/chunks/{chunk-EV2BYY6T.js → chunk-MZS32SYS.js} +1 -1
- package/dist/cli/chunks/{chunk-LVEX4GID.js → chunk-N3KEY4XJ.js} +2 -2
- package/dist/cli/chunks/{chunk-XNSQZ3O7.js → chunk-N3NP6PTT.js} +2 -2
- package/dist/cli/chunks/{chunk-QVG4ZDXX.js → chunk-N5PDFGCQ.js} +2 -2
- package/dist/cli/chunks/{chunk-6PKCQXEW.js → chunk-NDKLQW6N.js} +2 -2
- package/dist/cli/chunks/{chunk-6AYRAOCA.js → chunk-NHZIWIQZ.js} +2 -2
- package/dist/cli/chunks/{chunk-H4WHDFB5.js → chunk-NTAD5UX4.js} +2 -2
- package/dist/cli/chunks/{chunk-JYXOFN3E.js → chunk-O3JLOVZX.js} +2 -2
- package/dist/cli/chunks/{chunk-ZLVQSEZK.js → chunk-OCESWNAZ.js} +3 -3
- package/dist/cli/chunks/{chunk-7EX4DEQR.js → chunk-OG2UI6A3.js} +2 -2
- package/dist/cli/chunks/{chunk-3RM46XFP.js → chunk-OXTFSIGN.js} +1 -1
- package/dist/cli/chunks/{chunk-44DPYNPE.js → chunk-OXZLKP6C.js} +1 -1
- package/dist/cli/chunks/{chunk-TU4LIIOP.js → chunk-P2CXVNKK.js} +2 -2
- package/dist/cli/chunks/{chunk-LDZWIV2O.js → chunk-P73W2K7T.js} +1 -1
- package/dist/cli/chunks/{chunk-56ZKQYZY.js → chunk-PBZI2ZPV.js} +3 -3
- package/dist/cli/chunks/{chunk-MNCF643K.js → chunk-PMCRCEW5.js} +2 -2
- package/dist/cli/chunks/{chunk-4G2VNW4C.js → chunk-PVIA2FPD.js} +2 -2
- package/dist/cli/chunks/{chunk-MRHM4COP.js → chunk-PX2B5TS2.js} +2 -2
- package/dist/cli/chunks/{chunk-HZFT3P5B.js → chunk-Q3JVJRVJ.js} +1 -1
- package/dist/cli/chunks/{chunk-GY2SAIXP.js → chunk-QQ5SZH4D.js} +2 -2
- package/dist/cli/chunks/{chunk-LP4AS2E4.js → chunk-QTVWUQTB.js} +1 -1
- package/dist/cli/chunks/{chunk-W4X2VTIY.js → chunk-REUFWGMA.js} +2 -2
- package/dist/cli/chunks/{chunk-FVBFASOD.js → chunk-SNBYYO6F.js} +2 -2
- package/dist/cli/chunks/{chunk-RNYX4CPI.js → chunk-SVHUYVUR.js} +2 -2
- package/dist/cli/chunks/{chunk-AXO7OOOA.js → chunk-THAY7WHO.js} +2 -2
- package/dist/cli/chunks/{chunk-QWLTHFZW.js → chunk-TNMQVG4A.js} +2 -2
- package/dist/cli/chunks/{chunk-JFPXCQNP.js → chunk-TSYQDRNK.js} +1 -1
- package/dist/cli/chunks/{chunk-JK6B3ULP.js → chunk-TUYJ53V4.js} +2 -2
- package/dist/cli/chunks/{chunk-PUECC4WI.js → chunk-UNUTC6TX.js} +2 -2
- package/dist/cli/chunks/{chunk-ED32XJ5R.js → chunk-UOJBR4J3.js} +2 -2
- package/dist/cli/chunks/{chunk-CXTJ47QS.js → chunk-UOWHE77F.js} +2 -2
- package/dist/cli/chunks/{chunk-5KCBX225.js → chunk-UYLYMWV5.js} +2 -2
- package/dist/cli/chunks/{chunk-QNQSM2OG.js → chunk-V5PXQSFS.js} +2 -2
- package/dist/cli/chunks/{chunk-VKPKYMCT.js → chunk-VCMINU7K.js} +2 -2
- package/dist/cli/chunks/{chunk-QQT6QENQ.js → chunk-VQHVHVSF.js} +2 -2
- package/dist/cli/chunks/{chunk-634D2ENF.js → chunk-VRGCKBF7.js} +2 -2
- package/dist/cli/chunks/{chunk-T6W5APYP.js → chunk-VU2EL424.js} +1 -1
- package/dist/cli/chunks/{chunk-JY4WLN3K.js → chunk-VXZJOKOX.js} +2 -2
- package/dist/cli/chunks/{chunk-NZQPP533.js → chunk-VYLM2YV5.js} +3 -3
- package/dist/cli/chunks/{chunk-PQV7E7XH.js → chunk-W32YU3VI.js} +2 -2
- package/dist/cli/chunks/{chunk-RRPYWBFX.js → chunk-W5VJRDDG.js} +2 -2
- package/dist/cli/chunks/{chunk-7UCVYYWL.js → chunk-WGDR2KIR.js} +2 -2
- package/dist/cli/chunks/{chunk-2423JAA5.js → chunk-WRRCQ2UE.js} +1 -1
- package/dist/cli/chunks/{chunk-RCYLCA7E.js → chunk-XDBD4GXO.js} +2 -2
- package/dist/cli/chunks/{chunk-PYHYOKYT.js → chunk-XOLDMK23.js} +2 -2
- package/dist/cli/chunks/{chunk-5KS7HA37.js → chunk-XOVNZT7F.js} +1 -1
- package/dist/cli/chunks/{chunk-5PBRBS7D.js → chunk-XQ3DDY7X.js} +2 -2
- package/dist/cli/chunks/{chunk-4DIZ5BT6.js → chunk-XUIA5KMS.js} +2 -2
- package/dist/cli/chunks/{chunk-G7YTZTGU.js → chunk-XWIUFYM3.js} +1 -1
- package/dist/cli/chunks/{chunk-B7M323VL.js → chunk-XYCKHYBM.js} +2 -2
- package/dist/cli/chunks/{chunk-6OS7HREG.js → chunk-XZJ2O3VC.js} +1 -1
- package/dist/cli/chunks/{chunk-BTIBXGVQ.js → chunk-YRBBBUJX.js} +5 -5
- package/dist/cli/chunks/{chunk-MQ6OF6DU.js → chunk-YZGSJG34.js} +1 -1
- package/dist/cli/chunks/{chunk-XTJMY3KS.js → chunk-YZYDTABJ.js} +1 -1
- package/dist/cli/chunks/{chunk-LQOVA4YX.js → chunk-ZANDSVCK.js} +2 -2
- package/dist/cli/chunks/{chunk-2E3XWKEU.js → chunk-ZBDRLF43.js} +2 -2
- package/dist/cli/chunks/{chunk-UUHIEM2M.js → chunk-ZVSLCEVC.js} +3 -3
- package/dist/cli/chunks/{chunk-Q2T5FXEA.js → chunk-ZXBCCO2H.js} +2 -2
- package/dist/cli/chunks/{ci-5HEXJZ2C.js → ci-7SGRCFPS.js} +2 -2
- package/dist/cli/chunks/{ci-config-WU4NPDAM.js → ci-config-MX3URPZA.js} +2 -2
- package/dist/cli/chunks/{ci-output-BJQVXX5E.js → ci-output-M47NJY6D.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-3BMGTQCB.js → circuit-breaker-5GAK45SW.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-GVDGJWMU.js → claude-flow-setup-YXYSRH4Y.js} +2 -2
- package/dist/cli/chunks/client-ZP3CTVRF.js +2 -0
- package/dist/cli/chunks/{cline-installer-V4MRGWVA.js → cline-installer-DLJ5QD5N.js} +2 -2
- package/dist/cli/chunks/{code-A3TGQPEO.js → code-ONKLMVQ2.js} +25 -24
- package/dist/cli/chunks/{code-index-extractor-YJQSYWD3.js → code-index-extractor-2232LGZN.js} +2 -2
- package/dist/cli/chunks/{codex-installer-7N7UQPAH.js → codex-installer-UOWLYCMH.js} +2 -2
- package/dist/cli/chunks/{completions-PPGVYLZS.js → completions-MHX7GCC7.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-XZTFLYV5.js → complexity-analyzer-43ZUJKZU.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-Z5I57RAH.js → continuedev-installer-6Q5JR4FF.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-F5YZ6BHB.js → copilot-installer-CZUMVHSI.js} +2 -2
- package/dist/cli/chunks/core-handlers-JSRXQWPE.js +2 -0
- package/dist/cli/chunks/{cost-tracker-GO33ZQAP.js → cost-tracker-VS5ZW3XN.js} +2 -2
- package/dist/cli/chunks/{coverage-GSHKLY74.js → coverage-VWKTWZ6D.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +2 -0
- package/dist/cli/chunks/{cursor-installer-JJ7IVJZB.js → cursor-installer-YIFEMORH.js} +2 -2
- package/dist/cli/chunks/{daemon-IRL7QRNE.js → daemon-SHWJSJW5.js} +7 -7
- package/dist/cli/chunks/daemon-YIFT46FH.js +34 -0
- package/dist/cli/chunks/{dag-attention-scheduler-ORXSUHPA.js → dag-attention-scheduler-TCC2WM46.js} +2 -2
- package/dist/cli/chunks/{detect-RHU62KRI.js → detect-IGTWSQMA.js} +2 -2
- package/dist/cli/chunks/{dist-node-3VKV4Z6C.js → dist-node-TCOTJVQX.js} +2 -2
- package/dist/cli/chunks/{domain-handler-SFIML4FK.js → domain-handler-55ZVYODR.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-CJ4FA3OC.js → domain-plugins-GJRWOHQP.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-BCRKPCAA.js → domain-transfer-6EF75EKU.js} +2 -2
- package/dist/cli/chunks/dream-UDLM6M55.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-VL3HFLPV.js → embed-and-insert-pattern-XAMNIKQL.js} +2 -2
- package/dist/cli/chunks/{eval-GGKRI4P5.js → eval-GO22R4OZ.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-F72TIRQY.js → experience-capture-middleware-F2BRMJ3Y.js} +3 -3
- package/dist/cli/chunks/{fast-paths-7KOOF3MA.js → fast-paths-6RGPYALD.js} +2 -2
- package/dist/cli/chunks/{feature-flags-FNHBTHBH.js → feature-flags-MIWQIOHU.js} +2 -2
- package/dist/cli/chunks/{feature-flags-IOZEWWFU.js → feature-flags-ZGS3KLPH.js} +2 -2
- package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +2 -0
- package/dist/cli/chunks/fleet-ADL57COA.js +44 -0
- package/dist/cli/chunks/{gnn-wrapper-OH2DOQP7.js → gnn-wrapper-ALBJVW6T.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-W67NXTNE.js → heartbeat-handler-ZMM53NDY.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +2 -0
- package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-6MLLOGOE.js → hnsw-legacy-bridge-RYUJPA7B.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-4UDISJ3G.js → hnswlib-node-XM6XF3YV.js} +2 -2
- package/dist/cli/chunks/{hooks-NOQJWQ4P.js → hooks-X62O7TJO.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-2OD3APVP.js → hypergraph-engine-ZBWUPTVD.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-5AZGMBUM.js → hypergraph-handler-DUMF6SJV.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +2 -0
- package/dist/cli/chunks/{init-guard-SMGJ45PW.js → init-guard-S4I2R46S.js} +2 -2
- package/dist/cli/chunks/{init-handler-5T4MP2NM.js → init-handler-L4KJHVWS.js} +6 -6
- package/dist/cli/chunks/init-wizard-422UZYQ5.js +2 -0
- package/dist/cli/chunks/kernel-N7PJ6FCE.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-RLZYLVQJ.js → kilocode-installer-GNNB5FCZ.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-LFZOC7VD.js → kiro-installer-HR6ZAH7T.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +2 -0
- package/dist/cli/chunks/{learning-XRPGLUWR.js → learning-4IEEOHJS.js} +3 -3
- package/dist/cli/chunks/{llm-router-OMK5HYPH.js → llm-router-ZFMORP36.js} +4 -4
- package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +2 -0
- package/dist/cli/chunks/{load-XADC7KCU.js → load-ZM43WGDO.js} +2 -2
- package/dist/cli/chunks/load-test-POMIF4Q4.js +2 -0
- package/dist/cli/chunks/{mcp-PIBKSSVU.js → mcp-CRZKZE37.js} +2 -2
- package/dist/cli/chunks/{memory-AP7EZERS.js → memory-W5FZGVAD.js} +5 -5
- package/dist/cli/chunks/memory-backend-4P6AHSOY.js +2 -0
- package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-7JJ2FZ33.js → multi-model-executor-SXXGAQ2G.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-ZZZ6EBYJ.js → opencode-installer-PIRBUAB5.js} +2 -2
- package/dist/cli/chunks/{orchestrator-2H2YKSGJ.js → orchestrator-H5SQCQTB.js} +11 -10
- package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-7MJJWC2Z.js → pattern-usage-recorder-XZTWDI2T.js} +2 -2
- package/dist/cli/chunks/{pipeline-LIE5BWQY.js → pipeline-5LMLBIJ7.js} +2 -2
- package/dist/cli/chunks/{platform-SMYUNLGX.js → platform-KJDABL5C.js} +2 -2
- package/dist/cli/chunks/{plugin-LJDIXQNT.js → plugin-V4KSBVVM.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-RIDNE5D2.js → prime-radiant-advanced-wasm-JDHTKQAT.js} +2 -2
- package/dist/cli/chunks/project-root-X72FSM2F.js +2 -0
- package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +2 -0
- package/dist/cli/chunks/{protocol-handler-YVM66DLI.js → protocol-handler-BNRONTQV.js} +2 -2
- package/dist/cli/chunks/{prove-ZBDT52GD.js → prove-ELLL6XMX.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +2 -0
- package/dist/cli/chunks/{quality-DUKXGDDO.js → quality-NH2QA4D4.js} +2 -2
- package/dist/cli/chunks/{quality-gate-SM3RXF4V.js → quality-gate-JTKLF7GW.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +2 -0
- package/dist/cli/chunks/{real-embeddings-4QLQZDB5.js → real-embeddings-J3KCKLPB.js} +2 -2
- package/dist/cli/chunks/{ref-validation-M3EO32YQ.js → ref-validation-HNXQRP4F.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-S6Q5OLV5.js → roocode-installer-COJ6CX6S.js} +2 -2
- package/dist/cli/chunks/router-CXZKOOTR.js +2 -0
- package/dist/cli/chunks/routing-feedback-IYFANYY5.js +2 -0
- package/dist/cli/chunks/{routing-handler-55FMUACP.js → routing-handler-WM33ZILE.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-QATKAAPK.js → ruvector-commands-BBLXEA7A.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-RFXFU6JD.js → rvf-migration-coordinator-P7H6HCAG.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-PKDVXQAW.js → rvf-store-integrity-R5SPVRFP.js} +2 -2
- package/dist/cli/chunks/safe-db-WFODRGVZ.js +2 -0
- package/dist/cli/chunks/schedule-RO55OQXG.js +2 -0
- package/dist/cli/chunks/scheduler-XXMJCH24.js +2 -0
- package/dist/cli/chunks/{security-CMRB6WA3.js → security-AUDTRX3I.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-YHLLNFHF.js → shared-rvf-adapter-PVDGBGI2.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-4BGDVPQ7.js → shared-rvf-dual-writer-LZ2GMSS2.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +2 -0
- package/dist/cli/chunks/{standalone-memory-LUHKQAGM.js → standalone-memory-XNOAI4G4.js} +2 -2
- package/dist/cli/chunks/{status-handler-S6S5PNR7.js → status-handler-K72XZE4T.js} +2 -2
- package/dist/cli/chunks/{structural-health-PQ7NZAJ4.js → structural-health-NF3YY7U5.js} +2 -2
- package/dist/cli/chunks/{sync-S744AEJC.js → sync-UVXA6CT2.js} +2 -2
- package/dist/cli/chunks/{sync-Q6KRQXU6.js → sync-VBD5Y3E2.js} +2 -2
- package/dist/cli/chunks/{task-handler-GAMGEHUW.js → task-handler-24S3WFVJ.js} +13 -7
- package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +9 -0
- package/dist/cli/chunks/{test-FNH67DBK.js → test-XFSGQELD.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-NZA5SHK6.js → test-scheduling-VYUQ4CDE.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-CXKG55JD.js → token-bootstrap-EDK6FNQ3.js} +2 -2
- package/dist/cli/chunks/{token-usage-M7WWEDJX.js → token-usage-VLQ6WO2L.js} +2 -2
- package/dist/cli/chunks/{transformers-2IFMCK6A.js → transformers-TOFMWWNM.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-NMNA6RJC.js → tree-sitter-wasm-parser-MI3NZKUD.js} +2 -2
- package/dist/cli/chunks/{types-N7FWTOLD.js → types-JTWLBAZJ.js} +2 -2
- package/dist/cli/chunks/unified-memory-6JWHV6EF.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +2 -0
- package/dist/cli/chunks/unified-persistence-KGGNA46H.js +2 -0
- package/dist/cli/chunks/{upgrade-KDB5RGL7.js → upgrade-4ABM72T4.js} +2 -2
- package/dist/cli/chunks/{validate-KMUV5FUA.js → validate-UDJCWKXI.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-ANZWRCJU.js → validate-swarm-TODOUWNN.js} +2 -2
- package/dist/cli/chunks/visual-security-6VZNQLH7.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-SXXC4NMS.js → web-tree-sitter-WBMAJPM5.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-2LWSKMBU.js → windsurf-installer-BTT53TUL.js} +2 -2
- package/dist/cli/chunks/witness-chain-AKKHWEWU.js +2 -0
- package/dist/cli/chunks/{witness-chain-JJMSJFZP.js → witness-chain-TATPXQRK.js} +2 -2
- package/dist/cli/chunks/{witness-chain-repair-OX7VFW6T.js → witness-chain-repair-2HGJGE7O.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-QLSMXHAZ.js → witness-chain-verifier-FRY3LMGH.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-3DS4L7LE.js → witness-key-manager-X7QHQQWL.js} +2 -2
- package/dist/cli/chunks/{workflow-ARWAMHD3.js → workflow-QMZPAWQW.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +2 -0
- package/dist/cli/chunks/{wrappers-J6KGTUSJ.js → wrappers-ZD5NBHYI.js} +2 -2
- package/dist/cli/commands/code.js +8 -0
- package/dist/cli/commands/daemon.js +8 -0
- package/dist/cli/commands/fleet.js +14 -9
- package/dist/cli/handlers/task-handler.js +21 -1
- package/dist/coordination/handlers/code-intelligence-handlers.js +14 -2
- package/dist/coordination/handlers/coverage-collection.js +9 -10
- package/dist/coordination/handlers/coverage-handlers.js +21 -3
- package/dist/coordination/handlers/coverage-runner.d.ts +2 -1
- package/dist/coordination/handlers/coverage-runner.js +9 -2
- package/dist/coordination/handlers/coverage-target.d.ts +13 -3
- package/dist/coordination/handlers/coverage-target.js +224 -7
- package/dist/coordination/handlers/handler-types.d.ts +2 -0
- package/dist/coordination/handlers/test-execution-handlers.js +32 -5
- package/dist/coordination/index.d.ts +2 -2
- package/dist/coordination/index.js +1 -1
- package/dist/coordination/protocols/learning-consolidation-archive.d.ts +39 -0
- package/dist/coordination/protocols/learning-consolidation-archive.js +57 -0
- package/dist/coordination/protocols/learning-consolidation.d.ts +38 -3
- package/dist/coordination/protocols/learning-consolidation.js +130 -58
- package/dist/coordination/queen-coordinator.d.ts +12 -1
- package/dist/coordination/queen-coordinator.js +24 -1
- package/dist/coordination/queen-event-handlers.js +2 -1
- package/dist/coordination/queen-lifecycle.js +9 -0
- package/dist/coordination/queen-task-management.js +113 -40
- package/dist/coordination/queen-types.d.ts +10 -0
- package/dist/coordination/queen-types.js +8 -0
- package/dist/coordination/task-dag/dag-algorithms.d.ts +33 -0
- package/dist/coordination/task-dag/dag-algorithms.js +162 -0
- package/dist/coordination/task-dag/dag-obligations.d.ts +21 -0
- package/dist/coordination/task-dag/dag-obligations.js +83 -0
- package/dist/coordination/task-dag/dag.d.ts +69 -19
- package/dist/coordination/task-dag/dag.js +215 -269
- package/dist/coordination/task-dag/index.d.ts +12 -4
- package/dist/coordination/task-dag/index.js +11 -3
- package/dist/coordination/task-dag/prerequisite-ledger.d.ts +84 -0
- package/dist/coordination/task-dag/prerequisite-ledger.js +252 -0
- package/dist/coordination/task-dag/scheduler.d.ts +19 -9
- package/dist/coordination/task-dag/scheduler.js +36 -12
- package/dist/coordination/task-dag/types.d.ts +160 -1
- package/dist/coordination/task-dag/types.js +2 -1
- package/dist/coordination/task-executability.d.ts +18 -0
- package/dist/coordination/task-executability.js +31 -0
- package/dist/coordination/task-executor.d.ts +1 -0
- package/dist/coordination/task-executor.js +5 -0
- package/dist/domains/code-intelligence/coordinator.js +35 -9
- package/dist/domains/code-intelligence/index-path-guard.d.ts +49 -0
- package/dist/domains/code-intelligence/index-path-guard.js +125 -0
- package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
- package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +6 -0
- package/dist/domains/code-intelligence/services/knowledge-graph.js +42 -5
- package/dist/domains/contract-testing/coordinator.js +3 -1
- package/dist/domains/coverage-analysis/collected-metrics.js +2 -1
- package/dist/domains/defect-intelligence/services/defect-predictor.js +4 -2
- package/dist/domains/learning-optimization/active-patterns.d.ts +55 -0
- package/dist/domains/learning-optimization/active-patterns.js +80 -0
- package/dist/domains/learning-optimization/coordinator-helpers.js +2 -3
- package/dist/domains/learning-optimization/coordinator.d.ts +0 -3
- package/dist/domains/learning-optimization/coordinator.js +50 -106
- package/dist/domains/learning-optimization/index.d.ts +1 -1
- package/dist/domains/learning-optimization/interfaces.d.ts +56 -4
- package/dist/domains/learning-optimization/plugin.js +11 -1
- package/dist/domains/learning-optimization/reward-source.d.ts +37 -0
- package/dist/domains/learning-optimization/reward-source.js +58 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +4 -4
- package/dist/domains/learning-optimization/services/learning-coordinator.js +68 -34
- package/dist/domains/learning-optimization/services/metrics-optimizer.d.ts +14 -4
- package/dist/domains/learning-optimization/services/metrics-optimizer.js +129 -63
- package/dist/domains/learning-optimization/services/transfer-specialist.js +25 -15
- package/dist/domains/test-execution/interfaces.d.ts +16 -0
- package/dist/domains/test-execution/services/retry-handler.js +18 -2
- package/dist/domains/test-execution/services/runner-test-cases.d.ts +21 -0
- package/dist/domains/test-execution/services/runner-test-cases.js +69 -0
- package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
- package/dist/domains/test-execution/services/test-executor.js +24 -2
- package/dist/init/fleet-integration.js +2 -0
- package/dist/init/init-wizard-steps.js +2 -0
- package/dist/init/phases/06-code-intelligence.js +2 -0
- package/dist/init/phases/10-workers.js +2 -1
- package/dist/kernel/anti-drift-middleware.d.ts +44 -5
- package/dist/kernel/anti-drift-middleware.js +147 -11
- package/dist/kernel/interfaces.d.ts +5 -0
- package/dist/learning/dream/dream-engine.d.ts +27 -1
- package/dist/learning/dream/dream-engine.js +56 -2
- package/dist/learning/dream/dream-insights-pruner.d.ts +18 -4
- package/dist/learning/dream/dream-insights-pruner.js +99 -11
- package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -0
- package/dist/learning/dream/rvcow-branch-manager.js +8 -0
- package/dist/learning/dream/speculative-dreamer.d.ts +8 -0
- package/dist/learning/dream/speculative-dreamer.js +8 -0
- package/dist/learning/skill-validation-learner.d.ts +2 -0
- package/dist/learning/skill-validation-learner.js +29 -21
- package/dist/mcp/background-workers.d.ts +15 -0
- package/dist/mcp/background-workers.js +77 -0
- package/dist/mcp/bundle.js +511 -484
- package/dist/mcp/entry.js +4 -49
- package/dist/mcp/handlers/domain-handler-configs.d.ts +14 -0
- package/dist/mcp/handlers/domain-handler-configs.js +68 -30
- package/dist/mcp/handlers/handler-factory.js +1 -0
- package/dist/mcp/handlers/task-handlers.js +37 -1
- package/dist/mcp/metrics/metrics-collector.d.ts +11 -9
- package/dist/mcp/metrics/metrics-collector.js +13 -26
- package/dist/mcp/protocol-server.js +8 -3
- package/dist/mcp/tools/learning-optimization/optimize.d.ts +34 -3
- package/dist/mcp/tools/learning-optimization/optimize.js +106 -70
- package/dist/memory/crdt/lww-register.js +11 -1
- package/dist/routing/calibration/ema-calibrator.js +3 -1
- package/dist/shared/base-domain-plugin.d.ts +4 -0
- package/dist/shared/base-domain-plugin.js +6 -0
- package/dist/shared/llm/cache.js +4 -1
- package/dist/shared/security/compliance-patterns.js +3 -1
- package/dist/shared/test-runner-process.d.ts +26 -0
- package/dist/shared/test-runner-process.js +91 -0
- package/dist/shared/types/index.d.ts +9 -0
- package/dist/shared/types/index.js +13 -0
- package/dist/shared/utils/namespaced-search.d.ts +42 -0
- package/dist/shared/utils/namespaced-search.js +53 -0
- package/dist/strange-loop/infra-healing/infra-action-executor.js +7 -3
- package/dist/strange-loop/infra-healing/infra-healing-orchestrator.js +10 -9
- package/dist/workers/daemon.d.ts +7 -0
- package/dist/workers/daemon.js +21 -2
- package/dist/workers/namespaced-keys.d.ts +4 -7
- package/dist/workers/namespaced-keys.js +4 -15
- package/dist/workers/quality-daemon/ci-monitor.js +9 -5
- package/dist/workers/worker-env.d.ts +53 -0
- package/dist/workers/worker-env.js +89 -0
- package/dist/workers/worker-manager.js +4 -0
- package/dist/workers/workers/learning-consolidation.d.ts +20 -0
- package/dist/workers/workers/learning-consolidation.js +57 -23
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-PEOUNYXJ.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-DHKZI5RX.js +0 -2
- package/dist/cli/chunks/base-QZWK3D5P.js +0 -2
- package/dist/cli/chunks/browser-workflow-ITPX72RX.js +0 -2
- package/dist/cli/chunks/chunk-CG5DZCOZ.js +0 -2
- package/dist/cli/chunks/chunk-QJE6ZW2X.js +0 -6
- package/dist/cli/chunks/chunk-T3ZDVU6F.js +0 -5
- package/dist/cli/chunks/chunk-UIYKR2SA.js +0 -2
- package/dist/cli/chunks/chunk-VJRZFWR5.js +0 -2
- package/dist/cli/chunks/chunk-VUFRTGML.js +0 -3
- package/dist/cli/chunks/chunk-YDZJWDR6.js +0 -180
- package/dist/cli/chunks/client-S7GNYTZ5.js +0 -2
- package/dist/cli/chunks/core-handlers-CUEPOQIO.js +0 -2
- package/dist/cli/chunks/cross-domain-router-CXN5QFEV.js +0 -2
- package/dist/cli/chunks/daemon-3DQCKRYO.js +0 -10
- package/dist/cli/chunks/dream-5AUNJW24.js +0 -2
- package/dist/cli/chunks/file-discovery-AYWF357I.js +0 -2
- package/dist/cli/chunks/fleet-QX5KXTRC.js +0 -43
- package/dist/cli/chunks/heartbeat-scheduler-7ZIDVXIP.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-P77OC7FM.js +0 -2
- package/dist/cli/chunks/hnsw-index-3LBOTQAW.js +0 -2
- package/dist/cli/chunks/hybrid-backend-LOM54PDD.js +0 -2
- package/dist/cli/chunks/impact-analyzer-QSDJVBPS.js +0 -2
- package/dist/cli/chunks/init-wizard-MK2325JJ.js +0 -2
- package/dist/cli/chunks/kernel-2NJQQ2KT.js +0 -2
- package/dist/cli/chunks/knowledge-graph-SDISHO62.js +0 -2
- package/dist/cli/chunks/llm-router-service-YTCMRBAN.js +0 -2
- package/dist/cli/chunks/load-test-RPKHLBCC.js +0 -2
- package/dist/cli/chunks/memory-backend-BZXFO4JZ.js +0 -2
- package/dist/cli/chunks/memory-handlers-MOFDNB6E.js +0 -2
- package/dist/cli/chunks/pattern-null-store-4PRPIOR6.js +0 -2
- package/dist/cli/chunks/project-root-NBIQF63D.js +0 -2
- package/dist/cli/chunks/protocol-executor-BRPGIYWQ.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-GDZACWKW.js +0 -2
- package/dist/cli/chunks/queen-coordinator-LDKLBPD5.js +0 -2
- package/dist/cli/chunks/router-H5YSIRH2.js +0 -2
- package/dist/cli/chunks/routing-feedback-5R36TJDH.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-TT2DBQQQ.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-BCLFJKSK.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-UXI66OQJ.js +0 -2
- package/dist/cli/chunks/safe-db-MSTD2GDH.js +0 -2
- package/dist/cli/chunks/schedule-KST6KIFD.js +0 -2
- package/dist/cli/chunks/scheduler-FTQS6YK3.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-ZX5QFDMR.js +0 -2
- package/dist/cli/chunks/task-handlers-6CRDEELN.js +0 -9
- package/dist/cli/chunks/unified-memory-2Z2F446J.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-A4EWYPJQ.js +0 -2
- package/dist/cli/chunks/unified-persistence-Z6N6JZFA.js +0 -2
- package/dist/cli/chunks/visual-security-GXYZV7KR.js +0 -2
- package/dist/cli/chunks/witness-chain-52PEIEGK.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-DORMQMG7.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,311 @@ All notable changes to the Agentic QE project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.15.9] - 2026-10-17
|
|
9
|
+
|
|
10
|
+
Tasks no longer get stuck in `running` and quietly use up Queen slots.
|
|
11
|
+
`test_execute_parallel` and the learning tools now report only what was
|
|
12
|
+
actually measured, without made-up efficiency numbers, sample data or
|
|
13
|
+
success rates. Test runs no longer freeze the MCP server, and code indexing
|
|
14
|
+
stays inside your project. Every change was reviewed adversarially before
|
|
15
|
+
merge.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **Tasks no longer get stuck and use up Queen slots** ([#1070], [#1075],
|
|
20
|
+
[#1077], [#1081], [#1076], [#1079], [#1082], [#1085], [#1107]): several
|
|
21
|
+
paths left a task `running` forever, each one holding a concurrency slot.
|
|
22
|
+
After 50 such tasks, every new submission was queued and never ran.
|
|
23
|
+
- `quality_assess` gives its slot back. The anti-drift middleware was
|
|
24
|
+
silently dropping its `TaskCompleted` event.
|
|
25
|
+
- `task_submit`, `aqe task submit`, `task_orchestrate` and `aqe fleet run`
|
|
26
|
+
reject a task type that no domain plugin runs. The error names the
|
|
27
|
+
domain and the types it supports.
|
|
28
|
+
- As a backstop, the Queen fails any task it owns that has no handler,
|
|
29
|
+
with the reason, and frees the slot.
|
|
30
|
+
- The anti-drift middleware never drops task lifecycle events. When it
|
|
31
|
+
drops any other event, it logs a rate-limited warning on stderr with the
|
|
32
|
+
event type and source, never the payload. If the embedding service fails
|
|
33
|
+
part-way, events are still delivered (marked unverified) instead of
|
|
34
|
+
`publish()` failing.
|
|
35
|
+
- **Test runs no longer freeze the MCP server** ([#1074], [#1114]): the
|
|
36
|
+
`execute-tests` runner, `coverage_analyze_sublinear` on a Rust crate
|
|
37
|
+
(`cargo llvm-cov`, up to 300 s) and `advisor_consult` (up to 60 s) used
|
|
38
|
+
blocking child-process calls that froze every other MCP request until they
|
|
39
|
+
finished. They now run asynchronously, with the same exit codes, output,
|
|
40
|
+
timeouts and output limits as before.
|
|
41
|
+
- **`test_execute_parallel` runs your suite once and reports real numbers**
|
|
42
|
+
([#1059], [#1065], [#1110], [#1113]): one request no longer starts two
|
|
43
|
+
test runs. The 0.85 efficiency, 0.9 load balance and made-up `test_case_N`
|
|
44
|
+
durations are gone. Per-test results come from the Vitest or Jest JSON
|
|
45
|
+
report. Anything that was not measured is left out and listed in
|
|
46
|
+
`unmeasured`, with a reason in `unmeasuredReasons`. Each run is stored in
|
|
47
|
+
learning once instead of twice.
|
|
48
|
+
- **Learning reports only what it measured** ([#1093], [#1099], [#1105],
|
|
49
|
+
[#1109], [#1120]):
|
|
50
|
+
- `qe/learning/optimize` optimizes the experiences that were actually
|
|
51
|
+
recorded. Before, it generated random samples.
|
|
52
|
+
- A/B tests no longer pad with random samples, the default strategy no
|
|
53
|
+
longer claims a 0.7 outcome, and optimizer confidence is scored on
|
|
54
|
+
held-out records.
|
|
55
|
+
- Experiences with a fixed reward (generated tests, defect predictions,
|
|
56
|
+
impact analyses and coverage gaps) are still recorded, now tagged
|
|
57
|
+
`rewardSource: 'assigned'`. They no longer count toward success rates,
|
|
58
|
+
pattern confidence, domain rankings, milestones or anomaly baselines.
|
|
59
|
+
- With too little measured data, the tools say `insufficient-evidence`
|
|
60
|
+
instead of reporting 100%.
|
|
61
|
+
- **Learning data is read from where it is written** ([#1071], [#1084],
|
|
62
|
+
[#1089], [#1103]): export, import, consolidation, transfer and shared
|
|
63
|
+
knowledge lookups use the `learning-optimization` namespace that learning
|
|
64
|
+
writes to. Export now returns every active pattern. Before, it stopped at
|
|
65
|
+
about 5,000. An import no longer overwrites newer knowledge or a better
|
|
66
|
+
strategy with stale data. Thanks to @rudycelekli.
|
|
67
|
+
- **Code indexing stays inside your project** ([#1096], [#1123]): a symlink
|
|
68
|
+
inside the project that points outside it is skipped and reported instead
|
|
69
|
+
of read. Missing files and directories are no longer counted as indexed.
|
|
70
|
+
A request that indexes nothing now fails: the MCP task is marked failed
|
|
71
|
+
and the CLI exits with code 1.
|
|
72
|
+
- **Dream insights are archived, not deleted** ([#1066], [#1112]): the
|
|
73
|
+
retention sweep moves stale unapplied insights into a new
|
|
74
|
+
`dream_insights_archive` table, in one transaction that deletes only rows
|
|
75
|
+
whose copy is verified. `AQE_DREAM_INSIGHTS_RETENTION_DAYS=false`, `no`,
|
|
76
|
+
`disabled`, `none` and `never` now turn the sweep off. An unreadable value
|
|
77
|
+
also leaves it off, with a warning. Before, it fell back to deleting at
|
|
78
|
+
30 days.
|
|
79
|
+
- **Worker settings** ([#1066], [#1112]): worker ids in
|
|
80
|
+
`AQE_DISABLED_WORKERS` are no longer case-sensitive. `aqe daemon start`
|
|
81
|
+
and the generated `start-daemon.cjs` respect `AQE_WORKERS_ENABLED`. The
|
|
82
|
+
QualityDaemon no longer waits about 150 s for every worker's first run
|
|
83
|
+
before it starts.
|
|
84
|
+
- **Invalid task priorities are rejected** ([#1108], [#1111]):
|
|
85
|
+
`task_submit` and `aqe task submit` accept only `p0` to `p3`, with the
|
|
86
|
+
same error on both paths. Before, any string was accepted.
|
|
87
|
+
- **Test-execution experiences no longer show up as fake test runs**
|
|
88
|
+
([#1095], [#1100]).
|
|
89
|
+
- **Deleting an unfinished task no longer unblocks the tasks that depend on
|
|
90
|
+
it** ([#1069], [#1098]): this affects library users of the `TaskDAG` and
|
|
91
|
+
`DAGScheduler` API. Every dependency now has a typed status. Each change
|
|
92
|
+
of status writes an audit receipt, and an unfinished prerequisite can only
|
|
93
|
+
be bypassed by an explicit, attributed waiver.
|
|
94
|
+
- **Coverage for monorepo packages** ([#1036]): a package with no test
|
|
95
|
+
runner config of its own uses the workspace root's config, so coverage is
|
|
96
|
+
measured instead of estimated. Thanks to @rudycelekli.
|
|
97
|
+
- **CRDT registers** ([#1062], [#1063]): a register created by a read can no
|
|
98
|
+
longer erase a negative-timestamp write on merge. A second local write in
|
|
99
|
+
the same millisecond is no longer dropped. Thanks to @rudycelekli.
|
|
100
|
+
- **Names like `constructor` or `__proto__`** ([#1064], [#1083], [#1104]):
|
|
101
|
+
CI workflows, claim agents, infra services, model ids and task domains
|
|
102
|
+
with these names no longer crash or read inherited values. Thanks to
|
|
103
|
+
@rudycelekli.
|
|
104
|
+
- **Empty LLM completions are no longer cached** ([#1090]), so a provider
|
|
105
|
+
refusal does not block retries of the same prompt until the cache entry
|
|
106
|
+
expires. Thanks to @rudycelekli.
|
|
107
|
+
|
|
108
|
+
### Changed
|
|
109
|
+
|
|
110
|
+
- **`task_orchestrate` and `aqe fleet run scan`** now return an error for
|
|
111
|
+
`scan-security`, `run-chaos` and `assess-quality`, which no domain plugin
|
|
112
|
+
runs. Before, these tasks were accepted and never finished. Routing them
|
|
113
|
+
to real handlers is tracked in [#1124].
|
|
114
|
+
- **`test_execute_parallel` output**: fields with no measurement behind them,
|
|
115
|
+
such as `workerStats.efficiency`, `workerStats.loadBalance`, `retryStats`
|
|
116
|
+
and per-test `results`, are left out of the response and named in
|
|
117
|
+
`unmeasured`. Code that read those fields unconditionally needs to handle
|
|
118
|
+
their absence.
|
|
119
|
+
- **Learning totals can drop.** Success rates, confidence, rankings and
|
|
120
|
+
milestones now count measured outcomes only.
|
|
121
|
+
- **For library users:** `TaskDAG.removeTask` no longer marks dependents
|
|
122
|
+
ready. Use a waiver to let them run.
|
|
123
|
+
|
|
124
|
+
### Known issues
|
|
125
|
+
|
|
126
|
+
- Dreams still need the full rework ([#1060]).
|
|
127
|
+
- The anti-drift middleware still runs model inference for every event on
|
|
128
|
+
the in-process bus ([#1078]).
|
|
129
|
+
- `task_orchestrate` and fleet scans do not route security, chaos or
|
|
130
|
+
quality tasks to their domains yet ([#1124], [#1125]).
|
|
131
|
+
- Some MCP-reachable paths still use blocking child-process calls
|
|
132
|
+
([#1115]).
|
|
133
|
+
- Test failure messages and runner output are not yet redacted for secrets
|
|
134
|
+
([#1122]).
|
|
135
|
+
- In a narrow case, a task that fails at dispatch while the Queen is
|
|
136
|
+
draining its queue can leave a free slot unused until the next submission
|
|
137
|
+
([#1127]).
|
|
138
|
+
- Workspace member dependencies are not scanned from a monorepo root yet
|
|
139
|
+
([#1057]).
|
|
140
|
+
|
|
141
|
+
[#1036]: https://github.com/proffesor-for-testing/agentic-qe/pull/1036
|
|
142
|
+
[#1057]: https://github.com/proffesor-for-testing/agentic-qe/issues/1057
|
|
143
|
+
[#1059]: https://github.com/proffesor-for-testing/agentic-qe/issues/1059
|
|
144
|
+
[#1060]: https://github.com/proffesor-for-testing/agentic-qe/issues/1060
|
|
145
|
+
[#1062]: https://github.com/proffesor-for-testing/agentic-qe/pull/1062
|
|
146
|
+
[#1063]: https://github.com/proffesor-for-testing/agentic-qe/pull/1063
|
|
147
|
+
[#1064]: https://github.com/proffesor-for-testing/agentic-qe/pull/1064
|
|
148
|
+
[#1065]: https://github.com/proffesor-for-testing/agentic-qe/pull/1065
|
|
149
|
+
[#1066]: https://github.com/proffesor-for-testing/agentic-qe/issues/1066
|
|
150
|
+
[#1069]: https://github.com/proffesor-for-testing/agentic-qe/issues/1069
|
|
151
|
+
[#1070]: https://github.com/proffesor-for-testing/agentic-qe/issues/1070
|
|
152
|
+
[#1071]: https://github.com/proffesor-for-testing/agentic-qe/issues/1071
|
|
153
|
+
[#1074]: https://github.com/proffesor-for-testing/agentic-qe/issues/1074
|
|
154
|
+
[#1075]: https://github.com/proffesor-for-testing/agentic-qe/issues/1075
|
|
155
|
+
[#1076]: https://github.com/proffesor-for-testing/agentic-qe/pull/1076
|
|
156
|
+
[#1077]: https://github.com/proffesor-for-testing/agentic-qe/issues/1077
|
|
157
|
+
[#1078]: https://github.com/proffesor-for-testing/agentic-qe/issues/1078
|
|
158
|
+
[#1079]: https://github.com/proffesor-for-testing/agentic-qe/pull/1079
|
|
159
|
+
[#1081]: https://github.com/proffesor-for-testing/agentic-qe/issues/1081
|
|
160
|
+
[#1082]: https://github.com/proffesor-for-testing/agentic-qe/pull/1082
|
|
161
|
+
[#1083]: https://github.com/proffesor-for-testing/agentic-qe/pull/1083
|
|
162
|
+
[#1084]: https://github.com/proffesor-for-testing/agentic-qe/pull/1084
|
|
163
|
+
[#1085]: https://github.com/proffesor-for-testing/agentic-qe/pull/1085
|
|
164
|
+
[#1089]: https://github.com/proffesor-for-testing/agentic-qe/pull/1089
|
|
165
|
+
[#1090]: https://github.com/proffesor-for-testing/agentic-qe/pull/1090
|
|
166
|
+
[#1093]: https://github.com/proffesor-for-testing/agentic-qe/pull/1093
|
|
167
|
+
[#1095]: https://github.com/proffesor-for-testing/agentic-qe/issues/1095
|
|
168
|
+
[#1096]: https://github.com/proffesor-for-testing/agentic-qe/issues/1096
|
|
169
|
+
[#1098]: https://github.com/proffesor-for-testing/agentic-qe/pull/1098
|
|
170
|
+
[#1099]: https://github.com/proffesor-for-testing/agentic-qe/issues/1099
|
|
171
|
+
[#1100]: https://github.com/proffesor-for-testing/agentic-qe/pull/1100
|
|
172
|
+
[#1103]: https://github.com/proffesor-for-testing/agentic-qe/pull/1103
|
|
173
|
+
[#1104]: https://github.com/proffesor-for-testing/agentic-qe/pull/1104
|
|
174
|
+
[#1105]: https://github.com/proffesor-for-testing/agentic-qe/pull/1105
|
|
175
|
+
[#1107]: https://github.com/proffesor-for-testing/agentic-qe/pull/1107
|
|
176
|
+
[#1108]: https://github.com/proffesor-for-testing/agentic-qe/issues/1108
|
|
177
|
+
[#1109]: https://github.com/proffesor-for-testing/agentic-qe/issues/1109
|
|
178
|
+
[#1110]: https://github.com/proffesor-for-testing/agentic-qe/issues/1110
|
|
179
|
+
[#1111]: https://github.com/proffesor-for-testing/agentic-qe/pull/1111
|
|
180
|
+
[#1112]: https://github.com/proffesor-for-testing/agentic-qe/pull/1112
|
|
181
|
+
[#1113]: https://github.com/proffesor-for-testing/agentic-qe/pull/1113
|
|
182
|
+
[#1114]: https://github.com/proffesor-for-testing/agentic-qe/pull/1114
|
|
183
|
+
[#1115]: https://github.com/proffesor-for-testing/agentic-qe/issues/1115
|
|
184
|
+
[#1120]: https://github.com/proffesor-for-testing/agentic-qe/pull/1120
|
|
185
|
+
[#1122]: https://github.com/proffesor-for-testing/agentic-qe/issues/1122
|
|
186
|
+
[#1123]: https://github.com/proffesor-for-testing/agentic-qe/pull/1123
|
|
187
|
+
[#1124]: https://github.com/proffesor-for-testing/agentic-qe/issues/1124
|
|
188
|
+
[#1125]: https://github.com/proffesor-for-testing/agentic-qe/issues/1125
|
|
189
|
+
[#1127]: https://github.com/proffesor-for-testing/agentic-qe/issues/1127
|
|
190
|
+
|
|
191
|
+
## [3.15.8] - 2026-10-16
|
|
192
|
+
|
|
193
|
+
Your acknowledged memory writes are no longer lost when a dream is running,
|
|
194
|
+
and starting the MCP server no longer deletes old dream insights.
|
|
195
|
+
`AQE_WORKERS_ENABLED=false` now really turns the background workers off.
|
|
196
|
+
Learning pattern lookups and stats, test retries through symlinks and
|
|
197
|
+
per-file coverage from a subfolder also got fixes. Every change was
|
|
198
|
+
reviewed adversarially before merge.
|
|
199
|
+
|
|
200
|
+
### Fixed
|
|
201
|
+
|
|
202
|
+
- **Acknowledged memory writes are no longer lost during a dream**
|
|
203
|
+
([#1060], [#1068]): while a dream was running, a `memory_store` that
|
|
204
|
+
returned `persisted: true`, or any other foreground write, could be
|
|
205
|
+
silently rolled back if the dream was cancelled, failed or was still
|
|
206
|
+
running when the MCP client closed. Dreams no longer hold a database
|
|
207
|
+
savepoint, so those writes stay. Dream results are the same as before. A
|
|
208
|
+
dream that is still running at shutdown is now recorded as `interrupted`
|
|
209
|
+
instead of being left at `running`. Thanks to @pacphi for the report and
|
|
210
|
+
the repro. This is a mitigation: the full rework stays tracked in
|
|
211
|
+
[#1060].
|
|
212
|
+
- **Starting the MCP server no longer deletes old dream insights**
|
|
213
|
+
([#1061], [#1067]): every `aqe-mcp` start used to delete unapplied
|
|
214
|
+
`dream_insights` older than 30 days within about 30 seconds, with no log
|
|
215
|
+
line, even with `AQE_WORKERS_ENABLED=false`. Now:
|
|
216
|
+
- `AQE_WORKERS_ENABLED=false` (also `0`, `off`, `no`) starts neither the
|
|
217
|
+
background workers nor the QualityDaemon.
|
|
218
|
+
- The retention sweep never runs at startup. The first one runs after one
|
|
219
|
+
full worker interval (30 minutes).
|
|
220
|
+
- Every deletion is logged on stderr with the count and the age window.
|
|
221
|
+
- Thanks to @pacphi for the report and the numbers from real stores.
|
|
222
|
+
- **Learning pattern lookups and stats** ([#1055], [#1072]): looking up
|
|
223
|
+
patterns by tag no longer throws a `TypeError`, and `qe/learning/optimize`
|
|
224
|
+
pattern totals and averages count only active patterns. Provenance and
|
|
225
|
+
archive records used to be counted (averages came out as `null`) and
|
|
226
|
+
could push real patterns out of the search. Pattern export writes each
|
|
227
|
+
pattern once, and pattern dates are real dates again. Thanks to @pacphi
|
|
228
|
+
for the diagnosis.
|
|
229
|
+
- **Test retries through a symlinked folder** ([#1047], [#1053]): a Vitest
|
|
230
|
+
retry of a test file reached through a symlink now clears when the real
|
|
231
|
+
file passes. Thanks to @rudycelekli.
|
|
232
|
+
- **Per-file coverage from a subfolder** ([#1030], [#1047], [#1054]):
|
|
233
|
+
relative per-file coverage paths now resolve against the project root
|
|
234
|
+
(`AQE_PROJECT_ROOT`, then the repository root), so quality assessment and
|
|
235
|
+
defect prediction find the file's measurement when the MCP server starts
|
|
236
|
+
in a subfolder. Thanks to @rudycelekli.
|
|
237
|
+
|
|
238
|
+
### Added
|
|
239
|
+
|
|
240
|
+
- **`AQE_DISABLED_WORKERS`**: a comma-separated list of background worker
|
|
241
|
+
ids to skip, for example `learning-consolidation`. Unknown ids are
|
|
242
|
+
reported on stderr.
|
|
243
|
+
- **`AQE_DREAM_INSIGHTS_RETENTION_DAYS`**: how old an unapplied dream
|
|
244
|
+
insight must be before the sweep deletes it. The default is 30. `0` or
|
|
245
|
+
`off` turns the sweep off. Any other value that is not a whole number from
|
|
246
|
+
1 to 36500 prints a warning and the default applies.
|
|
247
|
+
|
|
248
|
+
Both are documented in `docs/v3/reference/configuration.md`.
|
|
249
|
+
|
|
250
|
+
### Changed
|
|
251
|
+
|
|
252
|
+
- **Installs made with `aqe init --no-database` no longer start background
|
|
253
|
+
workers.** Those installs already write `AQE_WORKERS_ENABLED=false`, and
|
|
254
|
+
the MCP server now honours it. Remove that line from your MCP config if
|
|
255
|
+
you want the workers.
|
|
256
|
+
- **Dream branching is off by default.** Dreams no longer run inside a
|
|
257
|
+
savepoint, so they no longer emit branch events or `DREAM_MERGE` /
|
|
258
|
+
`DREAM_DISCARD` witness entries. Library users can still set
|
|
259
|
+
`DreamConfig.enableBranching: true`, but that keeps the original risk: a
|
|
260
|
+
discarded dream rolls back foreground writes made during it ([#1060]).
|
|
261
|
+
If a dream fails part-way, what it already wrote (activations and
|
|
262
|
+
insights for a cycle marked `failed` or `interrupted`) is kept.
|
|
263
|
+
- **Relative coverage paths are project-root relative.** For library users:
|
|
264
|
+
a relative path passed to the per-file coverage readers now resolves
|
|
265
|
+
against the project root instead of the current folder. Absolute paths
|
|
266
|
+
and explicit roots behave as before.
|
|
267
|
+
- **`qe/learning/optimize` totals change.** `patterns` and `dashboard` now
|
|
268
|
+
report active patterns only, so totals can drop and averages become real
|
|
269
|
+
numbers. Readers receive `Date` objects for `createdAt` and `lastUsedAt`.
|
|
270
|
+
- **For library users:** the exported `LearningConsolidationProtocol` can
|
|
271
|
+
now archive low-value patterns in the namespace it reads. Before, it never
|
|
272
|
+
matched anything. Nothing in AQE runs it by default ([#1071]).
|
|
273
|
+
|
|
274
|
+
### Known issues
|
|
275
|
+
|
|
276
|
+
- Dreams still need the full rework: compute first, then commit in one
|
|
277
|
+
short transaction, and cancel on shutdown. A dream killed abruptly
|
|
278
|
+
(`SIGKILL`, crash) can still be left at `running` ([#1060]).
|
|
279
|
+
- The retention sweep still hard-deletes rows instead of archiving them,
|
|
280
|
+
`AQE_DREAM_INSIGHTS_RETENTION_DAYS=false` is treated as invalid (so the
|
|
281
|
+
30-day default applies), worker ids in `AQE_DISABLED_WORKERS` are
|
|
282
|
+
case-sensitive, and the explicit `aqe daemon start` command is not gated by
|
|
283
|
+
`AQE_WORKERS_ENABLED` ([#1066]).
|
|
284
|
+
- `quality_assess` leaves its Queen task slot in use ([#1070]).
|
|
285
|
+
- Learning export, import and the consolidation protocol read a different
|
|
286
|
+
namespace than the one patterns are learned in, and the pattern scan stops
|
|
287
|
+
at about 5,000 patterns with only a log warning ([#1071]).
|
|
288
|
+
- Workspace member dependencies are not scanned from a monorepo root yet
|
|
289
|
+
([#1057]).
|
|
290
|
+
- MCP `test_execute_parallel` runs the test suite twice ([#1059], fix in
|
|
291
|
+
review in [#1065]).
|
|
292
|
+
- Windows paths are unit-tested only, not run on Windows ([#971], [#982]).
|
|
293
|
+
|
|
294
|
+
[#971]: https://github.com/proffesor-for-testing/agentic-qe/issues/971
|
|
295
|
+
[#982]: https://github.com/proffesor-for-testing/agentic-qe/issues/982
|
|
296
|
+
[#1030]: https://github.com/proffesor-for-testing/agentic-qe/issues/1030
|
|
297
|
+
[#1047]: https://github.com/proffesor-for-testing/agentic-qe/issues/1047
|
|
298
|
+
[#1053]: https://github.com/proffesor-for-testing/agentic-qe/pull/1053
|
|
299
|
+
[#1054]: https://github.com/proffesor-for-testing/agentic-qe/pull/1054
|
|
300
|
+
[#1055]: https://github.com/proffesor-for-testing/agentic-qe/issues/1055
|
|
301
|
+
[#1057]: https://github.com/proffesor-for-testing/agentic-qe/issues/1057
|
|
302
|
+
[#1059]: https://github.com/proffesor-for-testing/agentic-qe/issues/1059
|
|
303
|
+
[#1060]: https://github.com/proffesor-for-testing/agentic-qe/issues/1060
|
|
304
|
+
[#1061]: https://github.com/proffesor-for-testing/agentic-qe/issues/1061
|
|
305
|
+
[#1065]: https://github.com/proffesor-for-testing/agentic-qe/pull/1065
|
|
306
|
+
[#1066]: https://github.com/proffesor-for-testing/agentic-qe/issues/1066
|
|
307
|
+
[#1067]: https://github.com/proffesor-for-testing/agentic-qe/pull/1067
|
|
308
|
+
[#1068]: https://github.com/proffesor-for-testing/agentic-qe/pull/1068
|
|
309
|
+
[#1070]: https://github.com/proffesor-for-testing/agentic-qe/issues/1070
|
|
310
|
+
[#1071]: https://github.com/proffesor-for-testing/agentic-qe/issues/1071
|
|
311
|
+
[#1072]: https://github.com/proffesor-for-testing/agentic-qe/pull/1072
|
|
312
|
+
|
|
8
313
|
## [3.15.7] - 2026-10-15
|
|
9
314
|
|
|
10
315
|
AQE no longer reports a dependency scan as clean when the advisory lookup
|
|
@@ -13,6 +13,7 @@ import { createVerificationError, CLAIM_TYPE_TO_METHOD, STRICT_VERIFICATION_TYPE
|
|
|
13
13
|
import { FileBasedVerifier } from './verifiers/file-verifier.js';
|
|
14
14
|
import { TestBasedVerifier } from './verifiers/test-verifier.js';
|
|
15
15
|
import { OutputBasedVerifier } from './verifiers/output-verifier.js';
|
|
16
|
+
import { createSafeRecord, getOwn, setOwn } from '../../shared/utils/safe-record.js';
|
|
16
17
|
/**
|
|
17
18
|
* ClaimVerifierService orchestrates claim verification using specialized verifiers.
|
|
18
19
|
*
|
|
@@ -463,31 +464,35 @@ export class ClaimVerifierService {
|
|
|
463
464
|
*/
|
|
464
465
|
calculateAgentStats() {
|
|
465
466
|
// Use mutable objects for calculation
|
|
466
|
-
|
|
467
|
+
// Agent ids come from claim ids: no prototype, so `constructor` is just a name (#978).
|
|
468
|
+
const stats = createSafeRecord();
|
|
467
469
|
for (const entry of this.history) {
|
|
468
470
|
const agentId = entry.claimId.split('-')[0]; // Extract agent ID from claim ID
|
|
469
|
-
|
|
470
|
-
|
|
471
|
+
let agentStats = getOwn(stats, agentId);
|
|
472
|
+
if (!agentStats) {
|
|
473
|
+
agentStats = {
|
|
471
474
|
claimsSubmitted: 0,
|
|
472
475
|
claimsVerified: 0,
|
|
473
476
|
claimsRejected: 0,
|
|
474
477
|
verificationRate: 0,
|
|
475
478
|
avgConfidence: 0,
|
|
476
479
|
};
|
|
480
|
+
setOwn(stats, agentId, agentStats);
|
|
477
481
|
}
|
|
478
|
-
|
|
482
|
+
agentStats.claimsSubmitted++;
|
|
479
483
|
if (entry.result.verified) {
|
|
480
|
-
|
|
484
|
+
agentStats.claimsVerified++;
|
|
481
485
|
}
|
|
482
486
|
else {
|
|
483
|
-
|
|
487
|
+
agentStats.claimsRejected++;
|
|
484
488
|
}
|
|
485
489
|
}
|
|
486
490
|
// Calculate rates and averages
|
|
487
491
|
for (const agentId of Object.keys(stats)) {
|
|
492
|
+
const agentStats = getOwn(stats, agentId);
|
|
488
493
|
const agentHistory = this.history.filter(h => h.claimId.startsWith(agentId));
|
|
489
|
-
|
|
490
|
-
|
|
494
|
+
agentStats.verificationRate = agentStats.claimsVerified / agentStats.claimsSubmitted;
|
|
495
|
+
agentStats.avgConfidence = this.calculateAverageConfidence(agentHistory);
|
|
491
496
|
}
|
|
492
497
|
return stats;
|
|
493
498
|
}
|
|
@@ -170,12 +170,10 @@ export class CapturedExperienceBridge {
|
|
|
170
170
|
//
|
|
171
171
|
// When the row's `domain` field matches a known QE domain, we ALSO emit a
|
|
172
172
|
// domain-specific event in the legacy flat `basePayload` shape that the
|
|
173
|
-
// existing per-domain handlers already accept
|
|
174
|
-
//
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
// its shape would break out-of-tree subscribers. Future enrichment of the
|
|
178
|
-
// basePayload should add fields, not rename them).
|
|
173
|
+
// existing per-domain handlers already accept. Future enrichment of the
|
|
174
|
+
// basePayload should add fields, not rename them. A domain whose events
|
|
175
|
+
// need data a row does not carry (a run's results, coverage figures) gets
|
|
176
|
+
// no domain-specific event at all — see #1008 and #1095.
|
|
179
177
|
function mapRowToEvents(row) {
|
|
180
178
|
const timestamp = parseTimestamp(row.completed_at);
|
|
181
179
|
const correlationId = row.id;
|
|
@@ -243,14 +241,15 @@ function mapDomainSpecificEvent(row, timestamp, correlationId) {
|
|
|
243
241
|
timestamp,
|
|
244
242
|
payload: basePayload,
|
|
245
243
|
});
|
|
244
|
+
// #1095: a test-execution experience row is a record that the tool ran,
|
|
245
|
+
// not a test run. It carries no run id and no passed/failed/skipped
|
|
246
|
+
// counts, so it must not masquerade as `TestRunCompleted`: consumers key
|
|
247
|
+
// their records by `runId` and would write `...:undefined` kv keys, and
|
|
248
|
+
// learning would record a 0% success rate. The real event is published
|
|
249
|
+
// by the test-execution coordinator with the run's actual results.
|
|
250
|
+
// Learning still receives the row via `learning.ExperienceCaptured`.
|
|
246
251
|
case 'test-execution':
|
|
247
|
-
return
|
|
248
|
-
type: 'test-execution.TestRunCompleted',
|
|
249
|
-
source: 'test-execution',
|
|
250
|
-
correlationId,
|
|
251
|
-
timestamp,
|
|
252
|
-
payload: basePayload,
|
|
253
|
-
});
|
|
252
|
+
return null;
|
|
254
253
|
// #1008: a coverage-analysis experience row is a record that the tool
|
|
255
254
|
// ran, not a coverage report or a gap. It carries no line/branch figures
|
|
256
255
|
// and no gap file, so it must not masquerade as `CoverageReportCreated`
|
package/dist/cli/bundle.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
3
|
-
import{b as x}from"./chunks/chunk-
|
|
2
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
3
|
+
import{b as x}from"./chunks/chunk-YZYDTABJ.js";import{b as v,c as E,e as A}from"./chunks/chunk-32UTLDNY.js";import{d as P}from"./chunks/chunk-REUFWGMA.js";import{a as C}from"./chunks/chunk-JNNZK7KH.js";import{b as S,c as y,d as I}from"./chunks/chunk-2BA45H64.js";import{a as W}from"./chunks/chunk-KTSLTZSG.js";import{b as k,c as F}from"./chunks/chunk-O3JLOVZX.js";import"./chunks/chunk-DGTLJNJH.js";import{a as g,e as T}from"./chunks/chunk-N3KEY4XJ.js";import{Q as w,S as H}from"./chunks/chunk-2I2UPJS7.js";import{h as L}from"./chunks/chunk-PX2B5TS2.js";import"./chunks/chunk-4V27J6YN.js";import"./chunks/chunk-H3KBIWTO.js";import"./chunks/chunk-OXZLKP6C.js";import"./chunks/chunk-SNBYYO6F.js";import"./chunks/chunk-HZ5NC6U5.js";T();H();import{createRequire as G}from"node:module";import{Command as j}from"commander";import l from"chalk";W();F();I();var b=!1;function h(){if(!b){b=!0;try{P()}catch{}try{L()}catch{}try{S()}catch{}}}function R(e,n,c,a){let m=e.command(n).description(c);if(a)for(let u of a)m.alias(u);return m.helpOption(!1),m.allowUnknownOption(!0),m.allowExcessArguments(!0),m}function D(e,n){let c=e.commands,a=c.indexOf(n);a>=0&&c.splice(a,1)}function i(e,n){let c=R(e,n.name,n.description,n.aliases);c.action(async()=>{try{let a=await n.factory();D(e,c),e.addCommand(a),await e.parseAsync(process.argv)}catch(a){console.error(`Failed to load command '${n.name}':`,a instanceof Error?a.message:a),process.exit(1)}})}function d(e,n,c,a,m,u){let f=R(e,n,c,u);f.action(async()=>{try{let p=await a();D(e,f),p.register(e,m),await e.parseAsync(process.argv)}catch(p){console.error(`Failed to load command '${n}':`,p instanceof Error?p.message:p),process.exit(1)}})}I();A();process.on("exit",h);var t={kernel:null,queen:null,router:null,workflowOrchestrator:null,scheduledWorkflows:new Map,persistentScheduler:null,initialized:!1};function q(e,n){let c=e.getDomainAPI("visual-accessibility");if(c?.registerWorkflowActions)try{c.registerWorkflowActions(n)}catch(m){console.error(l.yellow(` Warning: Could not register visual-accessibility workflow actions: ${g(m)}`))}let a=e.getDomainAPI("requirements-validation");if(a?.registerWorkflowActions)try{a.registerWorkflowActions(n)}catch(m){console.error(l.yellow(` Warning: Could not register requirements-validation workflow actions: ${g(m)}`))}}async function B(){let{QEKernelImpl:e}=await import("./chunks/kernel-N7PJ6FCE.js"),{CrossDomainEventRouter:n}=await import("./chunks/cross-domain-router-7UKODQWG.js"),{DefaultProtocolExecutor:c}=await import("./chunks/protocol-executor-QW6XN6QN.js"),{WorkflowOrchestrator:a}=await import("./chunks/workflow-orchestrator-4GAW7HNZ.js"),{createQueenCoordinator:m}=await import("./chunks/queen-coordinator-S4U4MKK2.js"),{createPersistentScheduler:u}=await import("./chunks/scheduler-XXMJCH24.js"),{loadCLIDomainPlugins:f}=await import("./chunks/domain-plugins-GJRWOHQP.js");t.kernel=new e({maxConcurrentAgents:15,memoryBackend:"sqlite",hnswEnabled:!0,lazyLoading:!0,enabledDomains:[...C],enableExperienceBridge:!1}),await t.kernel.initialize();let p=await f(t.kernel.plugins);t.router=new n(t.kernel.eventBus),await t.router.initialize();let O=_=>t.kernel.getDomainAPI(_),V=new c(t.kernel.eventBus,t.kernel.memory,O);t.workflowOrchestrator=new a(t.kernel.eventBus,t.kernel.memory,t.kernel.coordinator),await t.workflowOrchestrator.initialize(),q(t.kernel,t.workflowOrchestrator),t.persistentScheduler=u(),t.queen=m(t.kernel,t.router,V,void 0,p),await t.queen.initialize();let{adoptExternalFleet:M}=await import("./chunks/core-handlers-JSRXQWPE.js");M({kernel:t.kernel,queen:t.queen,router:t.router,workflowOrchestrator:t.workflowOrchestrator}),t.initialized=!0}async function Q(){if(t.initialized&&t.kernel&&t.queen)return!0;let e=await import("fs"),n=await import("path"),{findProjectRoot:c}=await import("./chunks/project-root-X72FSM2F.js"),a=n.join(c(),".agentic-qe");return e.existsSync(a)?s():(console.error(l.red(`
|
|
4
4
|
Error: AQE system not initialized in this directory.`)),console.log(l.yellow("Run `aqe init` first to set up this project.\n")),process.exitCode=1,!1)}async function s(){if(t.initialized&&t.kernel&&t.queen)return!0;let e=E(1);e&&process.stderr.write(l.gray("Auto-initializing v3 system...")+`
|
|
5
5
|
`);let n=3e4,c=new Promise((a,m)=>{setTimeout(()=>m(new Error("Initialization timeout after 30 seconds")),n)});try{return await Promise.race([B(),c]),e&&process.stderr.write(l.green("System ready")+`
|
|
6
6
|
|
|
7
|
-
`),!0}catch(a){return a.message.includes("timeout")?(console.error(l.red("Initialization timed out after 30 seconds.")),console.log(l.yellow("Try running `aqe init` manually."))):(console.error(l.red("Failed to auto-initialize:"),a),console.log(l.yellow("Try running `aqe init` manually."))),process.exitCode=1,!1}}async function o(e=0){try{t.workflowOrchestrator&&t.workflowOrchestrator.dispose().catch(()=>{}),t.queen&&t.queen.dispose().catch(()=>{}),t.router&&t.router.dispose().catch(()=>{}),t.kernel&&t.kernel.dispose().catch(()=>{})}catch{}h(),process.exit(e)}var r=new j,N=G(import.meta.url),de=N("../../package.json").version,z="3.15.
|
|
7
|
+
`),!0}catch(a){return a.message.includes("timeout")?(console.error(l.red("Initialization timed out after 30 seconds.")),console.log(l.yellow("Try running `aqe init` manually."))):(console.error(l.red("Failed to auto-initialize:"),a),console.log(l.yellow("Try running `aqe init` manually."))),process.exitCode=1,!1}}async function o(e=0){try{t.workflowOrchestrator&&t.workflowOrchestrator.dispose().catch(()=>{}),t.queen&&t.queen.dispose().catch(()=>{}),t.router&&t.router.dispose().catch(()=>{}),t.kernel&&t.kernel.dispose().catch(()=>{})}catch{}h(),process.exit(e)}var r=new j,N=G(import.meta.url),de=N("../../package.json").version,z="3.15.9";r.name("aqe").description("Agentic QE - Domain-Driven Quality Engineering").version(z).addHelpText("after",`
|
|
8
8
|
Environment:
|
|
9
9
|
AQE_LOG_LEVEL Internal log level: debug | info | warn | error | silent (default: warn)
|
|
10
10
|
LOG_LEVEL Same as AQE_LOG_LEVEL; AQE_LOG_LEVEL takes precedence
|
|
11
11
|
AQE_VERBOSE=1 Shorthand for info-level logging (full system-init output)
|
|
12
|
-
Diagnostics are written to stderr; stdout carries command output only.`);r.hook("preAction",(e,n)=>{v(n.opts())});d(r,"init","Initialize the AQE v3 system",()=>import("./chunks/init-handler-
|
|
12
|
+
Diagnostics are written to stderr; stdout carries command output only.`);r.hook("preAction",(e,n)=>{v(n.opts())});d(r,"init","Initialize the AQE v3 system",()=>import("./chunks/init-handler-L4KJHVWS.js").then(e=>e.createInitHandler(o)),t);d(r,"status","Show system status",()=>import("./chunks/status-handler-K72XZE4T.js").then(e=>e.createStatusHandler(o,Q)),t);d(r,"health","Check system health",()=>import("./chunks/status-handler-K72XZE4T.js").then(e=>e.createHealthHandler(o,Q)),t);d(r,"task","Manage QE tasks",()=>import("./chunks/task-handler-24S3WFVJ.js").then(e=>e.createTaskHandler(o,s)),t);d(r,"agent","Manage QE agents",()=>import("./chunks/agent-handler-RIYHTHVZ.js").then(e=>e.createAgentHandler(o,s)),t);d(r,"domain","Domain operations",()=>import("./chunks/domain-handler-55ZVYODR.js").then(e=>e.createDomainHandler(o,s)),t);d(r,"protocol","Execute coordination protocols",()=>import("./chunks/protocol-handler-BNRONTQV.js").then(e=>e.createProtocolHandler(o,s)),t);d(r,"brain","Export, import, and inspect QE brain state",()=>import("./chunks/brain-handler-452WCPZC.js").then(e=>e.createBrainHandler(o,s)),t);d(r,"hypergraph","Query the code knowledge hypergraph",()=>import("./chunks/hypergraph-handler-DUMF6SJV.js").then(e=>e.createHypergraphHandler(o,s)),t,["hg"]);d(r,"heartbeat","Manage the token-free heartbeat scheduler",()=>import("./chunks/heartbeat-handler-ZMM53NDY.js").then(e=>e.createHeartbeatHandler(o)),t);d(r,"routing","View routing performance, economics, and accuracy",()=>import("./chunks/routing-handler-WM33ZILE.js").then(e=>e.createRoutingHandler(o)),t);i(r,{name:"workflow",description:"Manage QE workflows and pipelines (ADR-041)",factory:()=>import("./chunks/workflow-QMZPAWQW.js").then(e=>e.createWorkflowCommand(t,o,s))});i(r,{name:"test",description:"Test generation, execution, scheduling, and load testing",factory:()=>import("./chunks/test-XFSGQELD.js").then(e=>e.createTestCommand(t,o,s))});i(r,{name:"coverage",description:"Coverage analysis shortcut",factory:()=>import("./chunks/coverage-VWKTWZ6D.js").then(e=>e.createCoverageCommand(t,o,s))});i(r,{name:"quality",description:"Quality assessment shortcut",factory:()=>import("./chunks/quality-NH2QA4D4.js").then(e=>e.createQualityCommand(t,o,s))});i(r,{name:"quality-gate",description:"Two-gate, three-valued quality verdict against a pinned checklist (ADR-119)",factory:()=>import("./chunks/quality-gate-JTKLF7GW.js").then(e=>e.createQualityGateCommand(t,o,s))});i(r,{name:"security",description:"Security scanning and URL validation",factory:()=>import("./chunks/security-AUDTRX3I.js").then(e=>e.createSecurityCommand(t,o,s))});i(r,{name:"arena",description:"Competitive test-strategy tournaments (ADR-104)",factory:()=>import("./chunks/arena-YAJZX6MC.js").then(e=>e.createArenaCommand(t,o,s))});i(r,{name:"code",description:"Code intelligence analysis",factory:()=>import("./chunks/code-ONKLMVQ2.js").then(e=>e.createCodeCommand(t,o,s))});i(r,{name:"completions",description:"Generate shell completions for aqe",factory:()=>import("./chunks/completions-MHX7GCC7.js").then(e=>e.createCompletionsCommand(o))});i(r,{name:"upgrade",description:"Detect optional native bindings and recommend install / flag changes",factory:()=>import("./chunks/upgrade-4ABM72T4.js").then(e=>e.createUpgradeCommand(o))});i(r,{name:"fleet",description:"Fleet operations with multi-agent progress tracking",factory:()=>import("./chunks/fleet-ADL57COA.js").then(e=>e.createFleetCommand(t,o,s,q))});i(r,{name:"validate",description:"Validation commands for skills and agents",factory:()=>import("./chunks/validate-swarm-TODOUWNN.js").then(e=>e.createValidateSwarmCommand(t,o,s))});i(r,{name:"skill",description:"Skill validation and reporting (ADR-056)",factory:()=>import("./chunks/validate-UDJCWKXI.js").then(e=>e.createValidateCommand(t,o,s))});i(r,{name:"eval",description:"Run skill evaluation suites in parallel",factory:()=>import("./chunks/eval-GO22R4OZ.js").then(e=>e.createEvalCommand())});i(r,{name:"ci",description:"CI/CD pipeline orchestration",factory:()=>import("./chunks/ci-7SGRCFPS.js").then(e=>e.createCICommand(t,o,s))});i(r,{name:"token-usage",description:"View and analyze token consumption metrics (ADR-042)",factory:()=>import("./chunks/token-usage-VLQ6WO2L.js").then(e=>e.createTokenUsageCommand())});i(r,{name:"llm",description:"LLM Router management (ADR-043)",factory:()=>import("./chunks/llm-router-ZFMORP36.js").then(e=>e.createLLMRouterCommand())});i(r,{name:"sync",description:"Sync local learning data to cloud PostgreSQL",factory:()=>import("./chunks/sync-VBD5Y3E2.js").then(e=>e.createSyncCommands())});i(r,{name:"hooks",description:"Self-learning QE hooks for pattern recognition and guidance",factory:()=>import("./chunks/hooks-X62O7TJO.js").then(e=>e.createHooksCommand())});i(r,{name:"learning",description:"AQE self-learning system management (standalone, no claude-flow required)",factory:()=>import("./chunks/learning-4IEEOHJS.js").then(e=>e.createLearningCommand())});i(r,{name:"memory",description:"Memory store, retrieve, search, and delete operations",factory:()=>Promise.all([import("./chunks/memory-W5FZGVAD.js"),import("./chunks/standalone-memory-XNOAI4G4.js")]).then(([e,n])=>e.createMemoryCommand(t,o,n.createEnsureMemoryBackend(t)))});i(r,{name:"mcp",description:"Start the MCP protocol server for Claude Code integration",factory:()=>import("./chunks/mcp-CRZKZE37.js").then(e=>e.createMcpCommand())});i(r,{name:"platform",description:"Manage coding agent platform configurations",factory:()=>import("./chunks/platform-KJDABL5C.js").then(e=>e.createPlatformCommand())});i(r,{name:"prove",description:"Generate a verifiable Proof-of-Quality attestation",factory:()=>import("./chunks/prove-ELLL6XMX.js").then(e=>e.createProveCommand(t,o,s))});i(r,{name:"ruvector",description:"RuVector integration management",factory:()=>import("./chunks/ruvector-commands-BBLXEA7A.js").then(e=>e.createRuVectorCommand())});i(r,{name:"audit",description:"Witness chain audit trail management",factory:()=>import("./chunks/audit-7ZNOXWP3.js").then(e=>e.createAuditCommand(t,o,s))});i(r,{name:"pipeline",description:"Manage YAML deterministic pipelines (Imp-9)",factory:()=>import("./chunks/pipeline-5LMLBIJ7.js").then(e=>e.createPipelineCommand(t,o,s))});i(r,{name:"plugin",description:"Manage external QE domain plugins",factory:()=>import("./chunks/plugin-V4KSBVVM.js").then(e=>e.createPluginCommand())});i(r,{name:"daemon",description:"Manage the QE Quality Daemon",factory:()=>import("./chunks/daemon-SHWJSJW5.js").then(e=>e.createDaemonCommand())});process.on("SIGINT",async()=>{y("SIGINT")||(console.log(l.yellow(`
|
|
13
13
|
|
|
14
14
|
Shutting down...`)),console.log(l.green(`Shutdown complete
|
|
15
15
|
`)),await o(0))});process.on("SIGTERM",async()=>{y("SIGTERM")||(console.log(l.yellow(`
|
|
16
|
-
Received SIGTERM, shutting down gracefully...`)),await o(0))});async function $(){let{isVersionFastPath:e}=await import("./chunks/fast-paths-
|
|
16
|
+
Received SIGTERM, shutting down gracefully...`)),await o(0))});async function $(){let{isVersionFastPath:e}=await import("./chunks/fast-paths-6RGPYALD.js");e(process.argv)&&(console.log(z),process.exit(0)),w();let n=process.argv.slice(2).filter(a=>a!=="--"),c=n[0]==="learning"&&(n[1]==="backup"||n[1]==="restore");if(n[0]==="init"){let{explicitRootError:a}=await import("./chunks/init-guard-S4I2R46S.js"),m=a();if(m){console.error(l.red(`
|
|
17
17
|
${m}
|
|
18
|
-
`)),await o(1);return}}if(!c){let{bootstrapTokenTracking:a}=await import("./chunks/token-bootstrap-
|
|
18
|
+
`)),await o(1);return}}if(!c){let{bootstrapTokenTracking:a}=await import("./chunks/token-bootstrap-EDK6FNQ3.js");await a({enableOptimization:!0,enablePersistence:!0,verbose:process.env.AQE_VERBOSE==="true"})}await r.parseAsync(),!x()&&await o(process.exitCode??0)}$().catch(async e=>{console.error(l.red("Fatal error:"),k(e)),await o(1)});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-PBZI2ZPV.js";import"./chunk-A6YIH4C4.js";import"./chunk-KIXYKUCI.js";import"./chunk-PVIA2FPD.js";import"./chunk-N3KEY4XJ.js";import"./chunk-HZ5NC6U5.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{a as x}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
2
|
+
import{a as x}from"./chunk-KTSLTZSG.js";import{e as f}from"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-HZ5NC6U5.js";x();import{createRequire as w}from"module";var S=f.create("agent-booster-wasm"),t={JavaScript:0,TypeScript:1,Python:2,Rust:3,Go:4,Java:5,C:6,Cpp:7},l={ExactReplace:0,FuzzyReplace:1,InsertAfter:2,InsertBefore:3,Append:4},v={0:"JavaScript",1:"TypeScript",2:"Python",3:"Rust",4:"Go",5:"Java",6:"C",7:"Cpp"},a=null,u=null,p=null;async function g(){if(a)return!0;if(p)return!1;try{if(a=w(import.meta.url)("./agent_booster_wasm.js"),!a)throw new Error("WASM module loaded but is null");return u=new a.AgentBoosterWasm,!0}catch(e){return p=e,console.warn("[AgentBoosterWASM] Failed to load WASM module:",e),!1}}function A(e){return{".js":t.JavaScript,".mjs":t.JavaScript,".cjs":t.JavaScript,".jsx":t.JavaScript,".ts":t.TypeScript,".tsx":t.TypeScript,".mts":t.TypeScript,".cts":t.TypeScript,".py":t.Python,".rs":t.Rust,".go":t.Go,".java":t.Java,".c":t.C,".h":t.C,".cpp":t.Cpp,".cc":t.Cpp,".cxx":t.Cpp,".hpp":t.Cpp}[e.toLowerCase()]??t.JavaScript}var M=[{name:"var-to-const",detect:(e,r)=>e.includes("var ")&&r.includes("const "),apply:(e,r)=>e.replace(/\bvar\s+/g,"const ")},{name:"var-to-let",detect:(e,r)=>e.includes("var ")&&r.includes("let "),apply:(e,r)=>e.replace(/\bvar\s+/g,"let ")},{name:"add-types-function",detect:(e,r)=>e.includes("function")&&!e.includes(":")&&r.includes(":"),apply:(e,r)=>r},{name:"async-wrapper",detect:(e,r)=>!e.includes("async")&&r.includes("async")&&r.includes("await"),apply:(e,r)=>r},{name:"try-catch-wrapper",detect:(e,r)=>!e.includes("try {")&&r.includes("try {"),apply:(e,r)=>r},{name:"null-check",detect:(e,r)=>!e.includes("if (!")&&!e.includes("if (!")&&(r.includes("if (!")||r.includes("?.")),apply:(e,r)=>r},{name:"test-assertion",detect:(e,r)=>e.includes("test(")&&!e.includes("expect(")&&r.includes("expect("),apply:(e,r)=>r}];function y(e,r){for(let n of M)if(n.detect(e,r))try{return{success:!0,code:n.apply(e,r),pattern:n.name}}catch(s){S.debug("Pattern transform failed, trying next",{pattern:n.name,error:s instanceof Error?s.message:String(s)});continue}return{success:!1,code:r}}async function b(e,r,n,s={}){let o=performance.now(),{confidenceThreshold:T=.5,allowFallback:d=!0}=s;if(!e.trim())return{success:!0,mergedCode:r,confidence:1,strategy:l.Append,syntaxValid:!0,source:"fallback",latencyMs:performance.now()-o};if(await g()&&u&&a)try{let c=a.WasmLanguage[v[n]],i=u.apply_edit(e,r,c);return{success:!0,mergedCode:i.merged_code,confidence:i.confidence,strategy:i.strategy,syntaxValid:i.syntax_valid,source:"wasm",latencyMs:performance.now()-o}}catch(c){let i=c;if(d){let m=y(e,r);if(m.success)return{success:!0,mergedCode:m.code,confidence:.7,strategy:l.FuzzyReplace,syntaxValid:!0,source:"pattern",latencyMs:performance.now()-o}}return{success:!1,mergedCode:r,confidence:0,strategy:l.Append,syntaxValid:!1,source:"fallback",latencyMs:performance.now()-o,error:i.message}}if(d){let c=y(e,r);return{success:c.success,mergedCode:c.code,confidence:c.success?.7:0,strategy:l.FuzzyReplace,syntaxValid:!0,source:"pattern",latencyMs:performance.now()-o}}return{success:!1,mergedCode:r,confidence:0,strategy:l.Append,syntaxValid:!1,source:"fallback",latencyMs:performance.now()-o,error:p?.message??"WASM not available"}}async function W(e,r={}){return Promise.all(e.map(({original:n,edit:s,language:o})=>b(n,s,o,r)))}async function C(){return g()}async function L(){return await g()&&a?a.AgentBoosterWasm.version():"unavailable"}async function R(){if(await g(),u&&a)try{u.apply_edit("function x() {}","function x() {}",a.WasmLanguage.JavaScript)}catch(e){console.debug("[AgentBoosterWASM] Warmup error:",e instanceof Error?e.message:e)}}var _={transform:b,batchTransform:W,isWasmAvailable:C,getVersion:L,warmup:R,Language:t,MergeStrategy:l,languageFromExtension:A};export{t as Language,l as MergeStrategy,W as batchTransform,_ as default,L as getVersion,C as isWasmAvailable,A as languageFromExtension,b as transform,R as warmup};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{b as p}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
2
|
+
import{b as p}from"./chunk-P2CXVNKK.js";import{a as g}from"./chunk-6EPHNJTL.js";import"./chunk-7QGYJ5OY.js";import"./chunk-PVIA2FPD.js";import"./chunk-HZ5NC6U5.js";import s from"chalk";var l=class{name="agent";description="Manage QE agents";cleanupAndExit;ensureInitialized;constructor(n,t){this.cleanupAndExit=n,this.ensureInitialized=t}register(n,t){let a=n.command("agent").description(this.description);a.command("list").description("List all agents").option("-d, --domain <domain>","Filter by domain").option("-s, --status <status>","Filter by status").action(async e=>{await this.executeList(e,t)}),a.command("spawn <domain>").description("Spawn an agent in a domain").option("-t, --type <type>","Agent type","worker").option("-c, --capabilities <caps>","Comma-separated capabilities","general").option("--no-progress","Disable progress indicator").action(async(e,o)=>{await this.executeSpawn(e,o,t)})}async executeList(n,t){if(await this.ensureInitialized())try{let a=n.domain?t.queen.getAgentsByDomain(n.domain):t.queen.listAllAgents();if(n.status&&(a=a.filter(e=>e.status===n.status)),console.log(s.blue(`
|
|
3
3
|
Agents (${a.length})
|
|
4
4
|
`)),a.length===0)console.log(s.gray(" No agents found"));else{let e=new Map;for(let i of a)e.has(i.domain)||e.set(i.domain,[]),e.get(i.domain).push(i);let o=Array.from(e.entries());for(let[i,m]of o){console.log(s.cyan(` ${i}:`));for(let r of m)console.log(` ${r.id}`),console.log(` Type: ${r.type}`),console.log(` Status: ${g(r.status)}`),r.startedAt&&console.log(s.gray(` Started: ${r.startedAt.toISOString()}`));console.log("")}}}catch(a){console.error(s.red(`
|
|
5
5
|
Failed to list agents:`),a),await this.cleanupAndExit(1)}}async executeSpawn(n,t,a){if(await this.ensureInitialized())try{let e=t.capabilities.split(",");console.log(s.blue(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
2
|
+
import"./chunk-HZ5NC6U5.js";import{existsSync as i,mkdirSync as d,unlinkSync as s,readdirSync as p,statSync as f}from"fs";import{join as o,basename as l}from"path";var v={branchDir:".agentic-qe/branches",defaultStrategy:"child-wins",orphanMaxAgeMs:36e5},g=class{config;parentAdapter;activeBranches=new Map;witnessChain=null;constructor(t,e){this.parentAdapter=t,this.config={...v,...e}}setWitnessChain(t){this.witnessChain=t}createBranch(t){if(this.activeBranches.has(t))throw new Error(`Branch already exists for agent ${t}`);i(this.config.branchDir)||d(this.config.branchDir,{recursive:!0});let e=o(this.config.branchDir,`${t}.rvf`),r=this.parentAdapter.path(),n=this.parentAdapter.derive(e),a={agentId:t,childPath:e,parentPath:r,childAdapter:n,createdAt:Date.now(),ingestLog:[]};return this.activeBranches.set(t,a),a}recordIngest(t,e){let r=this.activeBranches.get(t);if(r)for(let n of e)r.ingestLog.push({id:n.id,vector:n.vector})}async mergeBranch(t,e){let r=e??this.config.defaultStrategy,n=performance.now(),a=0;if(r==="child-wins"&&t.ingestLog.length>0)try{a=this.parentAdapter.ingest(t.ingestLog).accepted}catch(c){console.warn(`[AgentMemoryBranch] Merge replay failed for ${t.agentId}:`,c)}return this.witnessChain?.append("BRANCH_MERGE",{agentId:t.agentId,strategy:r,vectorsMerged:a,branchPath:t.childPath},`agent-${t.agentId}`),this.cleanupBranchFile(t),this.activeBranches.delete(t.agentId),{vectorsMerged:a,strategy:r,durationMs:performance.now()-n}}discardBranch(t){this.witnessChain?.append("BRANCH_DISCARD",{agentId:t.agentId,action:"discard",branchPath:t.childPath},`agent-${t.agentId}`),this.cleanupBranchFile(t),this.activeBranches.delete(t.agentId)}getBranch(t){return this.activeBranches.get(t)}getActiveBranches(){return Array.from(this.activeBranches.values())}listBranchFiles(){return i(this.config.branchDir)?p(this.config.branchDir).filter(e=>e.endsWith(".rvf")).map(e=>{let r=o(this.config.branchDir,e),n=f(r);return{agentId:l(e,".rvf"),path:r,sizeBytes:n.size,modifiedAt:n.mtime}}):[]}cleanupOrphans(t){let e=t??this.config.orphanMaxAgeMs,r=Date.now(),n=0;for(let a of this.listBranchFiles())if(r-a.modifiedAt.getTime()>e&&!this.activeBranches.has(a.agentId))try{s(a.path);let h=`${a.path}.idmap.json`;i(h)&&s(h),n++}catch{}return n}cleanupBranchFile(t){try{t.childAdapter.close()}catch{}try{i(t.childPath)&&s(t.childPath);let e=`${t.childPath}.idmap.json`;i(e)&&s(e)}catch{}}};export{g as AgentMemoryBranch};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f}from"./chunk-VYLM2YV5.js";import"./chunk-3LYU7BLY.js";import"./chunk-KLGYIEJK.js";import"./chunk-MZS32SYS.js";import"./chunk-GCWSX2NY.js";import"./chunk-2TDIS6YK.js";import"./chunk-F3PQZX44.js";import"./chunk-XWIUFYM3.js";import"./chunk-DDPPSSHW.js";import"./chunk-D6XVGFTI.js";import"./chunk-VRGCKBF7.js";import"./chunk-7JKB3Q7O.js";import"./chunk-UYLYMWV5.js";import"./chunk-XDBD4GXO.js";import"./chunk-7X2Y727E.js";import"./chunk-AVB5QY2Q.js";import"./chunk-OCESWNAZ.js";import"./chunk-ICP2ORGI.js";import"./chunk-PVIA2FPD.js";import"./chunk-OG2UI6A3.js";import"./chunk-V5PXQSFS.js";import"./chunk-5D2I7JUP.js";import"./chunk-EFBLP43U.js";import"./chunk-7KII4CQG.js";import"./chunk-4SUOVLJ6.js";import"./chunk-ZXBCCO2H.js";import"./chunk-BXO536GT.js";import"./chunk-SVHUYVUR.js";import"./chunk-FV7VAG74.js";import"./chunk-JNNZK7KH.js";import"./chunk-2BA45H64.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-N3KEY4XJ.js";import"./chunk-2I2UPJS7.js";import"./chunk-PX2B5TS2.js";import"./chunk-4V27J6YN.js";import"./chunk-H3KBIWTO.js";import"./chunk-OXZLKP6C.js";import"./chunk-SNBYYO6F.js";import"./chunk-6YL6JOQB.js";import"./chunk-6OOYIO3W.js";import"./chunk-HZ5NC6U5.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
|
|
2
|
+
import"./chunk-HZ5NC6U5.js";import*as K from"fs";import*as M from"path";function G(t){let r=t>>>0;return function(){r|=0,r=r+1831565813|0;let n=Math.imul(r^r>>>15,1|r);return n=n+Math.imul(n^n>>>7,61|n)^n,((n^n>>>14)>>>0)/4294967296}}function w(t,r){return Math.floor(t()*r)}var z=[["===","!=="],["!==","==="],["<=","<"],[">=",">"],["&&","||"],["||","&&"],["<","<="],[">",">="],["+","-"],["*","+"]];function H(t){let r=new Array(t.length).fill(!1),n=0,e="code";for(;n<t.length;){let s=t[n],i=t[n+1];e==="code"?(s==="'"?e="single":s==='"'?e="double":s==="`"?e="template":s==="/"&&i==="/"?e="line-comment":s==="/"&&i==="*"&&(e="block-comment"),e!=="code"&&(r[n]=!0)):(r[n]=!0,e==="single"&&s==="'"&&t[n-1]!=="\\"||e==="double"&&s==='"'&&t[n-1]!=="\\"||e==="template"&&s==="`"&&t[n-1]!=="\\"||e==="line-comment"&&s===`
|
|
3
3
|
`?e="code":e==="block-comment"&&s==="*"&&i==="/"&&(r[n+1]=!0,n++,e="code")),n++}return r}function E(t,r){let n=1;for(let e=0;e<r;e++)t[e]===`
|
|
4
4
|
`&&n++;return n}function A(t,r){let n=H(t),e=new Array(t.length).fill(!1),s=[];for(let[i,c]of z){let a=t.indexOf(i);for(;a!==-1;){let u=a+i.length,y=e.slice(a,u).some(Boolean),h=n.slice(a,u).some(Boolean),v=i===">"&&t[a-1]==="=",S=(i==="<"||i===">")&&(t[u]==="="||t[a-1]==="<"||t[a-1]===">");if(!y&&!h&&!v&&!S){for(let d=a;d<u;d++)e[d]=!0;s.push({id:`${r}:${E(t,a)}:${a}:${i}->${c}`,index:a,from:i,to:c,line:E(t,a)})}a=t.indexOf(i,a+1)}}return s.sort((i,c)=>i.index-c.index)}function W(t,r){return t.slice(0,r.index)+r.to+t.slice(r.index+r.from.length)}import*as m from"fs";import*as f from"path";import*as L from"os";import{spawnSync as J}from"child_process";function I(t){let r=f.resolve(t),n=f.join(r,"src"),e=f.join(r,"tests");if(!m.existsSync(n)||!m.existsSync(e))throw new Error(`not an arena fixture (expected src/ and tests/): ${r}`);let s=m.readdirSync(n).filter(c=>c.endsWith(".mjs")).sort().map(c=>f.join("src",c)),i={};for(let c of m.readdirSync(e).filter(a=>a.endsWith(".test.mjs")).sort())i[c.replace(".test.mjs","")]=f.join("tests",c);if(s.length===0||Object.keys(i).length===0)throw new Error(`fixture has no src/*.mjs or tests/*.test.mjs: ${r}`);return{root:r,sourceFiles:s,testGroups:i}}function T(t,r){let n=m.mkdtempSync(f.join(r,"arena-ws-"));m.mkdirSync(f.join(n,"src"),{recursive:!0}),m.mkdirSync(f.join(n,"tests"),{recursive:!0});for(let e of t.layout.sourceFiles){let s=t.mutatedFile&&t.mutatedFile.relPath===e?t.mutatedFile.content:m.readFileSync(f.join(t.layout.root,e),"utf8");m.writeFileSync(f.join(n,e),s)}for(let e of t.groups){let s=t.layout.testGroups[e];m.copyFileSync(f.join(t.layout.root,s),f.join(n,s))}return n}function $(t,r={}){let n=["--test"];r.coverage&&n.push("--experimental-test-coverage");let e=m.readdirSync(f.join(t,"tests")).filter(u=>u.endsWith(".test.mjs")).sort().map(u=>f.join("tests",u));n.push(...e);let s=process.hrtime.bigint(),i=J(process.execPath,n,{cwd:t,timeout:r.timeoutMs??12e4,encoding:"utf8"}),c=Number(process.hrtime.bigint()-s)/1e6,a=null;if(r.coverage){let u=/all files\s*\|\s*([\d.]+)/.exec(i.stdout??"");a=u?Number(u[1]):null}return{ok:i.status===0,durationMs:Math.round(c),coveragePct:a}}function N(){return m.mkdtempSync(f.join(L.tmpdir(),"qe-arena-"))}function B(t){m.rmSync(t,{recursive:!0,force:!0})}var k={kill:.6,coverage:.3,runtimePenalty:.1};function Q(t,r,n){let e=[...t].sort(),s=new Set([e.join("+")]),i=[{id:"s1",name:`all(${e.join("+")})`,groups:e}],c=0;for(;i.length<r&&c++<200;){let a=e.filter(()=>n()<.5);if(a.length===0)continue;let u=a.join("+");s.has(u)||(s.add(u),i.push({id:`s${i.length+1}`,name:u,groups:a}))}return i}function C(t,r,n){let e=r===null?0:r/100,s=k.kill*t+k.coverage*e-k.runtimePenalty*n;return Math.round(s*1e4)/1e4}function D(t,r,n,e){let s=T({layout:t,groups:r.groups},e),i=$(s,{coverage:!0});if(!i.ok)return{baselinePassed:!1,killed:0,total:0,coveragePct:i.coveragePct,runtimeMs:i.durationMs};let c=0,a=0;for(let u of n)for(let y of u.mutants){a++;let h=T({layout:t,groups:r.groups,mutatedFile:{relPath:u.relPath,content:W(u.source,y)}},e);$(h).ok||c++}return{baselinePassed:!0,killed:c,total:a,coveragePct:i.coveragePct,runtimeMs:i.durationMs}}function rt(t){let r=t.seed??42,n=t.log??(()=>{}),e=G(r),s=I(t.target),i=N();try{let c=t.maxMutants??24,a=s.sourceFiles.map(l=>{let o=K.readFileSync(M.join(s.root,l),"utf8");return{relPath:l,source:o,mutants:A(o,l)}}),u=a.flatMap(l=>l.mutants.map(o=>({file:l.relPath,m:o})));if(u.length>c){let l=new Set;for(;l.size<c;)l.add(u[w(e,u.length)].m.id);for(let o of a)o.mutants=o.mutants.filter(p=>l.has(p.id));u=a.flatMap(o=>o.mutants.map(p=>({file:o.relPath,m:p})))}n(`mutants: ${u.length} (of ${a.reduce((l,o)=>l+A(o.source,o.relPath).length,0)} enumerated)`);let y=Q(Object.keys(s.testGroups),t.strategies??4,e),h={},v=y.map(l=>{n(`evaluating ${l.id} [${l.name}] ...`);let o=D(s,l,a,i);return h[l.id]=o.runtimeMs,{s:l,e:o}}),S=Object.keys(s.testGroups).length,d=v.map(({s:l,e:o})=>{let p=o.total>0?Math.round(o.killed/o.total*1e4)/1e4:0,g=Math.round(l.groups.length/S*1e4)/1e4;return{...l,baselinePassed:o.baselinePassed,mutantsKilled:o.killed,mutantsTotal:o.total,killRate:p,coveragePct:o.coveragePct,suiteCostRatio:g,fitness:o.baselinePassed?C(p,o.coveragePct,g):0}}),P=[...d].sort((l,o)=>o.fitness-l.fitness||l.id.localeCompare(o.id)).map(l=>l.id),U=d.map(l=>d.map(o=>l.fitness>o.fitness?1:l.fitness<o.fitness?-1:0)),j=[];if(t.evolveSteps&&t.evolveSteps>0){let l=Object.keys(s.testGroups).sort(),o=d.find(g=>g.id===P[0]).groups,p=d.find(g=>g.id===P[0]).fitness;for(let g=1;g<=t.evolveSteps;g++){let R=l[w(e,l.length)],b=o.includes(R)?o.filter(q=>q!==R):[...o,R].sort();if(b.length===0){j.push({step:g,groups:b,fitness:0,accepted:!1});continue}let x=D(s,{id:`evo${g}`,name:b.join("+"),groups:b},a,i),_=x.total>0?x.killed/x.total:0,F=x.baselinePassed?C(_,x.coveragePct,b.length/l.length):0,O=F>p;j.push({step:g,groups:b,fitness:F,accepted:O}),O&&(o=b,p=F)}}return{contract:"arena-result@1",seed:r,target:M.relative(process.cwd(),s.root)||".",weights:{...k},mutantsTotal:u.length,strategies:d,ranking:P,competitiveArray:U,evolution:j,informational:{runtimesMs:h}}}finally{B(i)}}export{Q as buildStrategies,rt as runArena};
|