agentic-qe 3.15.8 → 3.15.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +434 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
- package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
- package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
- package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
- package/dist/adapters/ag-ui/json-patch.js +10 -6
- package/dist/agents/claim-verifier/claim-verifier-service.js +13 -8
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/bridge/captured-experience-bridge.js +12 -13
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
- package/dist/cli/chunks/{agent-handler-2NQFHAWE.js → agent-handler-SVXSHEET.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-457ECHHK.js → agent-memory-branch-WKQH36XL.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
- package/dist/cli/chunks/{arena-JV3WSEHU.js → arena-EKOOFVST.js} +2 -2
- package/dist/cli/chunks/{arena-IYBQ3GPY.js → arena-OPS36NFZ.js} +4 -4
- package/dist/cli/chunks/{audit-5OS3T3K6.js → audit-AO5NDZRI.js} +3 -3
- package/dist/cli/chunks/base-GTB6POYE.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-IQKBFVAO.js → better-sqlite3-TFLVEMMY.js} +2 -2
- package/dist/cli/chunks/{brain-handler-KA3SGAFM.js → brain-handler-ADBBJPYW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-QZDU2VOQ.js → branch-enumerator-HGHUYYL5.js} +2 -2
- package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
- package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
- package/dist/cli/chunks/{chunk-CRUQ6RXU.js → chunk-2SXBBUM6.js} +2 -2
- package/dist/cli/chunks/{chunk-4GUVVGJX.js → chunk-2T7RRL6G.js} +1 -1
- package/dist/cli/chunks/{chunk-OJWEZYLR.js → chunk-2XGVTYVX.js} +2 -2
- package/dist/cli/chunks/{chunk-LVHZK7GW.js → chunk-2ZI5FKSF.js} +2 -2
- package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
- package/dist/cli/chunks/{chunk-62T7U25U.js → chunk-37OWRCUN.js} +1 -1
- package/dist/cli/chunks/{chunk-UQLAN5TX.js → chunk-3P34JFQH.js} +5 -5
- package/dist/cli/chunks/{chunk-UDCYQLTD.js → chunk-3Y7SPD72.js} +2 -2
- package/dist/cli/chunks/{chunk-PPIM7B5G.js → chunk-4G63WT4F.js} +2 -2
- package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
- package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
- package/dist/cli/chunks/{chunk-4TZLZRZ4.js → chunk-5LPYV3TK.js} +1 -1
- package/dist/cli/chunks/{chunk-YUP3APSN.js → chunk-62OAY5KJ.js} +1 -1
- package/dist/cli/chunks/{chunk-VQRBBR27.js → chunk-6C3II5OM.js} +2 -2
- package/dist/cli/chunks/{chunk-RG42LDOB.js → chunk-6GP6W46M.js} +2 -2
- package/dist/cli/chunks/{chunk-KMZW2P3R.js → chunk-6KIL6CMD.js} +2 -2
- package/dist/cli/chunks/{chunk-UKKFZJME.js → chunk-6MVVSSID.js} +1 -1
- package/dist/cli/chunks/{chunk-VVK4ECVJ.js → chunk-6P7424AO.js} +2 -2
- package/dist/cli/chunks/{chunk-A2UGPKCS.js → chunk-6PX4OXQO.js} +2 -2
- package/dist/cli/chunks/{chunk-JLTGO5BB.js → chunk-6S3WJGUV.js} +2 -2
- package/dist/cli/chunks/{chunk-GSOK4M6V.js → chunk-6TB6YOCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-VWRNG3UK.js → chunk-6X5DHU6Q.js} +1 -1
- package/dist/cli/chunks/{chunk-5YOO5QSE.js → chunk-6XCMKIZN.js} +1 -1
- package/dist/cli/chunks/{chunk-4C3RYBTT.js → chunk-7LFZ4CHM.js} +2 -2
- package/dist/cli/chunks/{chunk-O4RRVTXN.js → chunk-7OZVZIBE.js} +2 -2
- package/dist/cli/chunks/{chunk-2JCLACCS.js → chunk-7PJIR4ST.js} +2 -2
- package/dist/cli/chunks/{chunk-NWFBF3KT.js → chunk-7TB6FK4B.js} +1 -1
- package/dist/cli/chunks/{chunk-FJAO4UX2.js → chunk-7ZCDZHDB.js} +2 -2
- package/dist/cli/chunks/chunk-A55QKKT2.js +2 -0
- package/dist/cli/chunks/{chunk-ZOVAZTXE.js → chunk-ABFFWZPC.js} +273 -278
- package/dist/cli/chunks/{chunk-FWXNFPLS.js → chunk-ACWFKES2.js} +2 -2
- package/dist/cli/chunks/{chunk-IJSFZO7P.js → chunk-AH3ZD3NJ.js} +2 -2
- package/dist/cli/chunks/{chunk-7SLEUVPZ.js → chunk-AI4VYSFS.js} +2 -2
- package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
- package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
- package/dist/cli/chunks/{chunk-2GSAAUW3.js → chunk-B6LTH6YV.js} +2 -2
- package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
- package/dist/cli/chunks/{chunk-7XGM7Q2N.js → chunk-C522H7XR.js} +54 -33
- package/dist/cli/chunks/{chunk-7DHSHD5B.js → chunk-CESIR27V.js} +2 -2
- package/dist/cli/chunks/{chunk-V7VZSNDK.js → chunk-CFBEBXLO.js} +3 -3
- package/dist/cli/chunks/{chunk-NZATJ2C6.js → chunk-CMBLM26R.js} +2 -2
- package/dist/cli/chunks/{chunk-7CVMT64N.js → chunk-CZ2IF6MC.js} +1 -1
- package/dist/cli/chunks/{chunk-YVWMJZ6O.js → chunk-CZGOSJQ4.js} +2 -2
- package/dist/cli/chunks/{chunk-TMNEK7TP.js → chunk-D6DA2KFD.js} +2 -2
- package/dist/cli/chunks/{chunk-UTNKMPTC.js → chunk-DBMNJSBV.js} +1 -1
- package/dist/cli/chunks/{chunk-JFWQFB3S.js → chunk-DE4YJQJF.js} +2 -2
- package/dist/cli/chunks/{chunk-767SR7WH.js → chunk-DEF34AFL.js} +2 -2
- package/dist/cli/chunks/{chunk-ZWMFKZEQ.js → chunk-DKAC3E3B.js} +2 -2
- package/dist/cli/chunks/{chunk-CDLG3Q2O.js → chunk-DMFTELBS.js} +2 -2
- package/dist/cli/chunks/{chunk-P4UT4LBE.js → chunk-DNRWGATA.js} +10 -10
- package/dist/cli/chunks/{chunk-PUYQ6EKC.js → chunk-DT7SIJOA.js} +2 -2
- package/dist/cli/chunks/{chunk-ST7ASEJO.js → chunk-DURHK377.js} +69 -69
- package/dist/cli/chunks/{chunk-V4QJ3MMT.js → chunk-EAU5KDFO.js} +1 -1
- package/dist/cli/chunks/{chunk-BLZEOGQE.js → chunk-EDLFX4ZB.js} +2 -2
- package/dist/cli/chunks/{chunk-ZBI7PJFX.js → chunk-EN2QSKFF.js} +2 -2
- package/dist/cli/chunks/{chunk-U7CIY3YR.js → chunk-ERQKYIP7.js} +2 -2
- package/dist/cli/chunks/{chunk-X7ZQIFES.js → chunk-ESUO3GTJ.js} +2 -2
- package/dist/cli/chunks/{chunk-SHEVM5PF.js → chunk-EWFECZ2U.js} +2 -2
- package/dist/cli/chunks/{chunk-JWPYMRIX.js → chunk-FAUCT5KR.js} +3 -3
- package/dist/cli/chunks/{chunk-KMVFBYJO.js → chunk-FB6TI3BH.js} +2 -2
- package/dist/cli/chunks/{chunk-22DOS3PM.js → chunk-FBXTQNRH.js} +2 -2
- package/dist/cli/chunks/{chunk-W5A36V3Z.js → chunk-FESZBPUB.js} +2 -2
- package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
- package/dist/cli/chunks/{chunk-VWSGWYRB.js → chunk-FKL3R5JQ.js} +2 -2
- package/dist/cli/chunks/{chunk-2DPHFCMW.js → chunk-FPUDRSFJ.js} +2 -2
- package/dist/cli/chunks/{chunk-VKFVJCIH.js → chunk-FZOWULMH.js} +1 -1
- package/dist/cli/chunks/{chunk-HXCGV5UJ.js → chunk-G3CZCUPM.js} +2 -2
- package/dist/cli/chunks/{chunk-GENNJRNK.js → chunk-G5I6KGMW.js} +22 -22
- package/dist/cli/chunks/{chunk-J7FLNP5L.js → chunk-GHBNRMSJ.js} +2 -2
- package/dist/cli/chunks/{chunk-I77D65X5.js → chunk-GJHWY3ZX.js} +2 -2
- package/dist/cli/chunks/{chunk-DKFSCJEF.js → chunk-GJMLK5UT.js} +2 -2
- package/dist/cli/chunks/{chunk-52YRSWPS.js → chunk-GRCIBCJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-NW7HTOSN.js → chunk-GWZZ7DAO.js} +2 -2
- package/dist/cli/chunks/{chunk-D4IBIMWI.js → chunk-GZLZCZ42.js} +2 -2
- package/dist/cli/chunks/{chunk-FEN2DHFM.js → chunk-H2PYU7MN.js} +1 -1
- package/dist/cli/chunks/{chunk-4I35ARWW.js → chunk-H32EPIR2.js} +1 -1
- package/dist/cli/chunks/{chunk-MUDBF2JC.js → chunk-H74Q7TJN.js} +1 -1
- package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
- package/dist/cli/chunks/{chunk-MMY52Y6R.js → chunk-I33O4BRQ.js} +2 -2
- package/dist/cli/chunks/{chunk-ZG7UKWBB.js → chunk-IKISCIGH.js} +2 -2
- package/dist/cli/chunks/{chunk-SFPGLUXS.js → chunk-IPJ7Q3AJ.js} +1 -1
- package/dist/cli/chunks/{chunk-2ZRNXEVI.js → chunk-IU2IV4NE.js} +1 -1
- package/dist/cli/chunks/{chunk-XOOBLZXR.js → chunk-JHIY4VCC.js} +2 -2
- package/dist/cli/chunks/{chunk-PJGQ2TKN.js → chunk-KG336OV3.js} +2 -2
- package/dist/cli/chunks/{chunk-YRH7KMTU.js → chunk-KI73QCR5.js} +2 -2
- package/dist/cli/chunks/{chunk-FAYXES7R.js → chunk-KNQ2ERFX.js} +2 -2
- package/dist/cli/chunks/{chunk-CQ3SBRDP.js → chunk-KOBVYY6H.js} +2 -2
- package/dist/cli/chunks/{chunk-3N627QRU.js → chunk-KSIWGGJI.js} +8 -8
- package/dist/cli/chunks/{chunk-2UN4JOTN.js → chunk-LMS3Y7JD.js} +2 -2
- package/dist/cli/chunks/{chunk-RSMPJWQH.js → chunk-LQEURY7C.js} +1 -1
- package/dist/cli/chunks/{chunk-NQDYOF35.js → chunk-LRZY4KS2.js} +2 -2
- package/dist/cli/chunks/{chunk-U3BWBP6B.js → chunk-M2QV7PT7.js} +2 -2
- package/dist/cli/chunks/{chunk-WLXGUQOZ.js → chunk-MA7JIQ6U.js} +2 -2
- package/dist/cli/chunks/{chunk-Y5ZBF7MA.js → chunk-MG27QY4D.js} +2 -2
- package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
- package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
- package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
- package/dist/cli/chunks/{chunk-DCYUHCPK.js → chunk-NGKNYIQZ.js} +1 -1
- package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
- package/dist/cli/chunks/{chunk-UTFMMZ57.js → chunk-NPPHWFA2.js} +3 -3
- package/dist/cli/chunks/chunk-NSHU347M.js +2 -0
- package/dist/cli/chunks/{chunk-NF63NHJH.js → chunk-NVYIZCSR.js} +2 -2
- package/dist/cli/chunks/{chunk-YNQPHRUZ.js → chunk-NW5JUCCG.js} +1 -1
- package/dist/cli/chunks/{chunk-G6CLO74Q.js → chunk-NZYLNXT6.js} +3 -3
- package/dist/cli/chunks/{chunk-R2NHGESM.js → chunk-OBAREPDC.js} +2 -2
- package/dist/cli/chunks/{chunk-X3HM7SV4.js → chunk-ODJNUMV3.js} +2 -2
- package/dist/cli/chunks/{chunk-OCLAMZJG.js → chunk-OEKP73MC.js} +2 -2
- package/dist/cli/chunks/{chunk-5MBNRTT5.js → chunk-OPFGRS5S.js} +2 -2
- package/dist/cli/chunks/{chunk-K5R3WUJP.js → chunk-OY2AHLSF.js} +1 -1
- package/dist/cli/chunks/{chunk-KJNUETCB.js → chunk-OY3NJNP2.js} +1 -1
- package/dist/cli/chunks/{chunk-P2EA62YS.js → chunk-PCEW6Q2C.js} +1 -1
- package/dist/cli/chunks/{chunk-HNGNRIZZ.js → chunk-PFG6VQ5Z.js} +2 -2
- package/dist/cli/chunks/{chunk-DN3AKAPY.js → chunk-PGYMKGOE.js} +2 -2
- package/dist/cli/chunks/{chunk-BEVWCF3Q.js → chunk-PPSAMXYN.js} +3 -3
- package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
- package/dist/cli/chunks/{chunk-6E7EOHMN.js → chunk-RPHY2DU6.js} +2 -2
- package/dist/cli/chunks/{chunk-7C6FMLQR.js → chunk-RWWOHCMG.js} +25 -20
- package/dist/cli/chunks/{chunk-5ONJ7AV6.js → chunk-S75EYIJG.js} +1 -1
- package/dist/cli/chunks/chunk-SKQUUE4F.js +5 -0
- package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
- package/dist/cli/chunks/{chunk-SWY6KGMF.js → chunk-SU5H66SD.js} +2 -2
- package/dist/cli/chunks/{chunk-ZOHS32SI.js → chunk-SY2IB442.js} +2 -2
- package/dist/cli/chunks/{chunk-MV4S3TEC.js → chunk-TBLI254A.js} +2 -2
- package/dist/cli/chunks/{chunk-5DZDLOY6.js → chunk-TNMBRDCA.js} +3 -3
- package/dist/cli/chunks/{chunk-FEPFXXI7.js → chunk-TYFZXDGZ.js} +2 -2
- package/dist/cli/chunks/{chunk-A6GCO6ZU.js → chunk-U4OICXV2.js} +2 -2
- package/dist/cli/chunks/{chunk-G77Q22EN.js → chunk-U53ZB4IX.js} +2 -2
- package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
- package/dist/cli/chunks/{chunk-6GIC2263.js → chunk-UCJMVXO4.js} +2 -2
- package/dist/cli/chunks/{chunk-DAFMHM64.js → chunk-UHTTW3IT.js} +2 -2
- package/dist/cli/chunks/{chunk-2QRGIEQV.js → chunk-V2M2XCR5.js} +1 -1
- package/dist/cli/chunks/{chunk-XZQVC3GD.js → chunk-V2RSNVMW.js} +1 -1
- package/dist/cli/chunks/{chunk-GGSTLKY5.js → chunk-V6JBOIMX.js} +1 -1
- package/dist/cli/chunks/{chunk-BTMEOZYY.js → chunk-VFKF2XO7.js} +1 -1
- package/dist/cli/chunks/{chunk-4C7KE2EL.js → chunk-VFSYMOAL.js} +2 -2
- package/dist/cli/chunks/{chunk-D4O3TJI7.js → chunk-VJQYDYAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-PZ7FJ4UG.js → chunk-VKRTTFB6.js} +2 -2
- package/dist/cli/chunks/{chunk-CQ5G64EA.js → chunk-VWNFAW2M.js} +2 -2
- package/dist/cli/chunks/{chunk-DY37YMMQ.js → chunk-WBM6N6IM.js} +1 -1
- package/dist/cli/chunks/{chunk-K4N2MBCE.js → chunk-WDQ7IEZY.js} +2 -2
- package/dist/cli/chunks/{chunk-HI6OBDDY.js → chunk-WDVRE6GN.js} +2 -2
- package/dist/cli/chunks/{chunk-PICEGWGB.js → chunk-WQ4PYWSW.js} +1 -1
- package/dist/cli/chunks/{chunk-NHOMVBCI.js → chunk-WSF24I3D.js} +2 -2
- package/dist/cli/chunks/{chunk-LPSMVBB3.js → chunk-XBVUVFJK.js} +2 -2
- package/dist/cli/chunks/{chunk-J6LL25QJ.js → chunk-XEB3NLJR.js} +2 -2
- package/dist/cli/chunks/{chunk-SJMZZMHP.js → chunk-XFVTGAAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-KVMKYUOE.js → chunk-XLZYRTNO.js} +2 -2
- package/dist/cli/chunks/chunk-XUZDBQ5X.js +6 -0
- package/dist/cli/chunks/{chunk-WAWKAYPY.js → chunk-Y76IAYQD.js} +1 -1
- package/dist/cli/chunks/{chunk-3LFLO2WK.js → chunk-YAKGBHO4.js} +2 -2
- package/dist/cli/chunks/{chunk-TC52M542.js → chunk-YBSBABOS.js} +2 -2
- package/dist/cli/chunks/{chunk-BQUIZ5QT.js → chunk-YCGP5VFP.js} +2 -2
- package/dist/cli/chunks/{chunk-T2TDTBFV.js → chunk-YDAQK5UF.js} +1 -1
- package/dist/cli/chunks/{chunk-LHRVSK44.js → chunk-YK3BVZY6.js} +2 -2
- package/dist/cli/chunks/{chunk-QFYUZYRA.js → chunk-YK7JN5N7.js} +4 -4
- package/dist/cli/chunks/{chunk-IMSRWNWF.js → chunk-YKMU4LBV.js} +1 -1
- package/dist/cli/chunks/{chunk-NLYUC63R.js → chunk-YYTGXD3R.js} +2 -2
- package/dist/cli/chunks/{chunk-OWBFVAEH.js → chunk-Z2O2YJAF.js} +2 -2
- package/dist/cli/chunks/{chunk-KITKQUBX.js → chunk-Z7IYW5U7.js} +1 -1
- package/dist/cli/chunks/{chunk-4NTLGGXO.js → chunk-ZG5666GJ.js} +1 -1
- package/dist/cli/chunks/{chunk-4YUBWU3E.js → chunk-ZXPY654C.js} +1 -1
- package/dist/cli/chunks/{ci-7NUCRGWO.js → ci-MSKMVH5X.js} +2 -2
- package/dist/cli/chunks/{ci-config-VQVECCFI.js → ci-config-7ODMNAUM.js} +2 -2
- package/dist/cli/chunks/{ci-output-P7GQ6TKF.js → ci-output-FXZ7ZZW3.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-5YP6N6HE.js → circuit-breaker-4VOUEPOX.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-W5H7CMU6.js → claude-flow-setup-7D4SGLM4.js} +2 -2
- package/dist/cli/chunks/client-POSVREVS.js +2 -0
- package/dist/cli/chunks/{cline-installer-OYANSZ54.js → cline-installer-WRRT7BGQ.js} +2 -2
- package/dist/cli/chunks/{code-OMT4UEZI.js → code-ZDJRIL3S.js} +25 -24
- package/dist/cli/chunks/{code-index-extractor-M2JEWKNF.js → code-index-extractor-4S4SHM56.js} +2 -2
- package/dist/cli/chunks/{codex-installer-YBS6N5O3.js → codex-installer-YTRHNDWR.js} +2 -2
- package/dist/cli/chunks/{completions-U7GS5RG6.js → completions-6N64JUXJ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-QSXPIUIU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-W5TTT743.js → continuedev-installer-IIDR66LB.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-KC2RT24C.js → copilot-installer-SVVFY3S2.js} +2 -2
- package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
- package/dist/cli/chunks/{cost-tracker-OQPVR6V4.js → cost-tracker-VGFS6IBX.js} +2 -2
- package/dist/cli/chunks/{coverage-TCO2A2NX.js → coverage-B7MCGNTE.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
- package/dist/cli/chunks/{cursor-installer-MH7GWD4L.js → cursor-installer-UPETT57E.js} +2 -2
- package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
- package/dist/cli/chunks/{daemon-UJEARJZ2.js → daemon-CQFNZLXU.js} +7 -7
- package/dist/cli/chunks/{dag-attention-scheduler-F3SUJU5O.js → dag-attention-scheduler-PJVABHON.js} +2 -2
- package/dist/cli/chunks/{detect-5QTCRB32.js → detect-56SKAGWX.js} +2 -2
- package/dist/cli/chunks/{dist-node-XKZPHDBO.js → dist-node-UYTYUMLN.js} +2 -2
- package/dist/cli/chunks/{domain-handler-V3UEADKW.js → domain-handler-YOYLBYJE.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-7PES4UHZ.js → domain-plugins-7TARX2XF.js} +2 -2
- package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
- package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-D2HWORHF.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
- package/dist/cli/chunks/{eval-UF2UBAUC.js → eval-GNB574IM.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-2OUCEHHM.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
- package/dist/cli/chunks/{fast-paths-KV5DKKHC.js → fast-paths-KTZ5SF54.js} +2 -2
- package/dist/cli/chunks/{feature-flags-MTW6NMR3.js → feature-flags-ITX5LQ57.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6YWMTNO5.js → feature-flags-KFHSR5YF.js} +2 -2
- package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
- package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
- package/dist/cli/chunks/{gnn-wrapper-52V6ANOY.js → gnn-wrapper-RLFW3GSX.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-X7NHNRC7.js → heartbeat-handler-EM2URCYZ.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
- package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-DZBE3KMK.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-2AWWUJAZ.js → hnswlib-node-CBP73QHY.js} +2 -2
- package/dist/cli/chunks/{hooks-XLPVROL3.js → hooks-IP7XE34Z.js} +34 -34
- package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-6TI7YP6P.js → hypergraph-engine-ONAYHU25.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-DBIBBOXS.js → hypergraph-handler-VINJRAID.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
- package/dist/cli/chunks/{init-guard-OSO6MIDD.js → init-guard-RYVV5R3Z.js} +2 -2
- package/dist/cli/chunks/{init-handler-7S7IHMUF.js → init-handler-MPRGWMOE.js} +6 -6
- package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
- package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-2KBRFXMA.js → kilocode-installer-OPD7JBRL.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-5VFR4OQZ.js → kiro-installer-M4OPUNK2.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
- package/dist/cli/chunks/{learning-G5NHL3DV.js → learning-4UWTQLMF.js} +24 -24
- package/dist/cli/chunks/{llm-router-4EAPPMHS.js → llm-router-SQ56FF6Z.js} +4 -4
- package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
- package/dist/cli/chunks/{load-UYMZPEY6.js → load-HPHKDGGL.js} +2 -2
- package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
- package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
- package/dist/cli/chunks/{memory-QL53YIHP.js → memory-PFQ3KPVJ.js} +5 -5
- package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
- package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-PDDDXF2B.js → multi-model-executor-3VDRX6TZ.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-75D2SKOT.js → opencode-installer-PJ576R63.js} +2 -2
- package/dist/cli/chunks/{orchestrator-3WIZBV4T.js → orchestrator-72QP4UU7.js} +64 -19
- package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-TEX2JGHA.js → pattern-usage-recorder-754YQW7C.js} +2 -2
- package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
- package/dist/cli/chunks/{platform-WPSKRJE7.js → platform-3E3DXLYB.js} +2 -2
- package/dist/cli/chunks/{plugin-UUFOVVMU.js → plugin-7FUQAKRE.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-PDFSYWKZ.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
- package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
- package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
- package/dist/cli/chunks/{protocol-handler-3VRYRIQB.js → protocol-handler-BQRYMUTG.js} +2 -2
- package/dist/cli/chunks/{prove-2NAUROGF.js → prove-H52QGC6B.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
- package/dist/cli/chunks/{quality-ZIEI2WGA.js → quality-QO4XPAUM.js} +2 -2
- package/dist/cli/chunks/{quality-gate-KWJO4SWQ.js → quality-gate-FBKE5E6F.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
- package/dist/cli/chunks/{real-embeddings-TSZ4UIAE.js → real-embeddings-RWGOVOXO.js} +2 -2
- package/dist/cli/chunks/{ref-validation-DWFFRETJ.js → ref-validation-LF76ZOBD.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-XTZHLUBO.js → roocode-installer-3BYEBTQ7.js} +2 -2
- package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
- package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
- package/dist/cli/chunks/{routing-handler-GG525TDM.js → routing-handler-DST7BVCU.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-QKRJDM7Z.js → ruvector-commands-XE32PGKC.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-FF52OS6Q.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-M6DXTAZ4.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
- package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
- package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
- package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
- package/dist/cli/chunks/{security-EHXSW22U.js → security-VSPNKCDS.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-6EH7UVJL.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-WML274E7.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
- package/dist/cli/chunks/{standalone-memory-C7QKAXS4.js → standalone-memory-O4QUTK6L.js} +2 -2
- package/dist/cli/chunks/{status-handler-VLI7MRLM.js → status-handler-Z2BP6EOG.js} +2 -2
- package/dist/cli/chunks/{structural-health-3LPG6MQN.js → structural-health-R36WNLQG.js} +2 -2
- package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
- package/dist/cli/chunks/{sync-JFJEJBVK.js → sync-QF5Y3EMZ.js} +2 -2
- package/dist/cli/chunks/{task-handler-IED3K6E4.js → task-handler-43PYE75J.js} +13 -7
- package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
- package/dist/cli/chunks/{test-GPKT3CKZ.js → test-UWA377D4.js} +16 -16
- package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
- package/dist/cli/chunks/{test-scheduling-Z42XXZP6.js → test-scheduling-YQZPJRRN.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
- package/dist/cli/chunks/{token-usage-6Y2ERYIY.js → token-usage-DO6WLMXP.js} +2 -2
- package/dist/cli/chunks/{transformers-MB63T2XO.js → transformers-H5RGFKVO.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
- package/dist/cli/chunks/{types-J4J6QV3I.js → types-PJS2FGPF.js} +2 -2
- package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
- package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
- package/dist/cli/chunks/{upgrade-U4XU7LFM.js → upgrade-4IC4F6AB.js} +2 -2
- package/dist/cli/chunks/{validate-B57HA4YK.js → validate-DHUWW7PF.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-UPPA4M6T.js → validate-swarm-OERQNOX5.js} +2 -2
- package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-GDZMUKOZ.js → web-tree-sitter-TV7DMKES.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-VJRWCHXP.js → windsurf-installer-QZPWSH37.js} +2 -2
- package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
- package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
- package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-Z23FVABW.js → witness-chain-verifier-YXENHB42.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-745MJ7WO.js → witness-key-manager-HL26AGFO.js} +2 -2
- package/dist/cli/chunks/{workflow-T245QNQM.js → workflow-EOVVCN2E.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
- package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
- package/dist/cli/commands/code.js +8 -0
- package/dist/cli/commands/daemon.js +8 -0
- package/dist/cli/commands/fleet.js +27 -15
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
- package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
- package/dist/cli/commands/learning.js +5 -3
- package/dist/cli/commands/ruvector-commands.js +2 -1
- package/dist/cli/commands/test.js +6 -0
- package/dist/cli/handlers/task-handler.js +21 -1
- package/dist/cli/utils/ci-output.d.ts +9 -0
- package/dist/cli/utils/fleet-operation.d.ts +32 -0
- package/dist/cli/utils/fleet-operation.js +71 -0
- package/dist/cli/utils/fleet-result.d.ts +31 -0
- package/dist/cli/utils/fleet-result.js +124 -0
- package/dist/context/sources/git-source.js +6 -2
- package/dist/coordination/handlers/code-intelligence-handlers.js +74 -7
- package/dist/coordination/handlers/coverage-collection.js +9 -10
- package/dist/coordination/handlers/coverage-handlers.js +31 -4
- 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/requirements-handlers.js +16 -2
- package/dist/coordination/handlers/security-handlers.js +11 -1
- package/dist/coordination/handlers/test-execution-handlers.js +57 -12
- package/dist/coordination/index.d.ts +2 -2
- package/dist/coordination/index.js +1 -1
- package/dist/coordination/mincut/queen-integration.d.ts +39 -1
- package/dist/coordination/mincut/queen-integration.js +83 -6
- package/dist/coordination/protocols/learning-consolidation-archive.d.ts +35 -0
- package/dist/coordination/protocols/learning-consolidation-archive.js +34 -0
- package/dist/coordination/protocols/learning-consolidation.d.ts +62 -3
- package/dist/coordination/protocols/learning-consolidation.js +187 -60
- package/dist/coordination/queen-coordinator.d.ts +13 -2
- package/dist/coordination/queen-coordinator.js +43 -8
- package/dist/coordination/queen-event-handlers.js +15 -1
- package/dist/coordination/queen-lifecycle.js +9 -0
- package/dist/coordination/queen-task-management.d.ts +18 -24
- package/dist/coordination/queen-task-management.js +94 -127
- package/dist/coordination/queen-task-queue.d.ts +41 -0
- package/dist/coordination/queen-task-queue.js +194 -0
- package/dist/coordination/queen-types.d.ts +11 -1
- package/dist/coordination/queen-types.js +8 -0
- package/dist/coordination/queen-work-stealing.d.ts +6 -1
- package/dist/coordination/queen-work-stealing.js +7 -4
- package/dist/coordination/result-saver-adapters.d.ts +15 -0
- package/dist/coordination/result-saver-adapters.js +57 -0
- package/dist/coordination/result-saver.d.ts +1 -1
- package/dist/coordination/result-saver.js +8 -5
- 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/coordination/yaml-pipeline-loader.js +5 -2
- package/dist/domains/code-intelligence/coordinator.js +35 -9
- package/dist/domains/code-intelligence/index-path-guard.d.ts +52 -0
- package/dist/domains/code-intelligence/index-path-guard.js +95 -0
- package/dist/domains/code-intelligence/interfaces.d.ts +12 -0
- package/dist/domains/code-intelligence/plugin.js +5 -1
- 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/code-intelligence/services/metric-collector/index.d.ts +2 -2
- package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
- package/dist/domains/contract-testing/coordinator.js +3 -1
- package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
- package/dist/domains/contract-testing/services/contract-validator.js +6 -4
- package/dist/domains/contract-testing/services/schema-validator.js +8 -5
- package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
- package/dist/domains/defect-intelligence/plugin.js +11 -2
- package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
- package/dist/domains/defect-intelligence/prediction-history.js +68 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +29 -12
- package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
- package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
- package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
- package/dist/domains/learning-optimization/active-patterns.d.ts +14 -14
- package/dist/domains/learning-optimization/active-patterns.js +17 -14
- 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 +52 -107
- package/dist/domains/learning-optimization/index.d.ts +1 -1
- package/dist/domains/learning-optimization/interfaces.d.ts +62 -6
- package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
- package/dist/domains/learning-optimization/pattern-archive.js +56 -0
- package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
- package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
- package/dist/domains/learning-optimization/plugin.js +11 -1
- package/dist/domains/learning-optimization/reward-source.d.ts +50 -0
- package/dist/domains/learning-optimization/reward-source.js +65 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +7 -5
- package/dist/domains/learning-optimization/services/learning-coordinator.js +98 -75
- 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/security-compliance/plugin.js +17 -3
- package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
- package/dist/domains/security-compliance/sast-path-guard.js +17 -0
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
- package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
- package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
- package/dist/domains/test-execution/coordinator.d.ts +5 -0
- package/dist/domains/test-execution/coordinator.js +35 -20
- package/dist/domains/test-execution/interfaces.d.ts +41 -0
- package/dist/domains/test-execution/plugin.js +19 -4
- package/dist/domains/test-execution/services/flaky-detector.js +9 -7
- package/dist/domains/test-execution/services/retry-handler.js +46 -7
- package/dist/domains/test-execution/services/runner-test-cases.d.ts +32 -0
- package/dist/domains/test-execution/services/runner-test-cases.js +87 -0
- package/dist/domains/test-execution/services/test-executor.d.ts +5 -0
- package/dist/domains/test-execution/services/test-executor.js +31 -9
- package/dist/domains/test-generation/plugin.js +7 -2
- package/dist/domains/test-generation/services/test-data-generator.js +3 -1
- package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
- package/dist/hooks/cross-phase-hooks.js +2 -1
- 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 +51 -6
- package/dist/integrations/browser/agent-browser/client.js +37 -52
- package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
- package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
- package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
- package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
- package/dist/integrations/browser/web-content-fetcher.js +9 -3
- package/dist/integrations/vibium/client.js +2 -2
- package/dist/integrations/vibium/runtime.d.ts +1 -1
- package/dist/integrations/vibium/runtime.js +14 -11
- 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/kernel/unified-memory-schemas.d.ts +3 -2
- package/dist/kernel/unified-memory-schemas.js +3 -2
- package/dist/kernel/unified-memory.js +25 -6
- package/dist/learning/dream/dream-commit.d.ts +65 -0
- package/dist/learning/dream/dream-commit.js +104 -0
- package/dist/learning/dream/dream-engine.d.ts +81 -31
- package/dist/learning/dream/dream-engine.js +225 -168
- package/dist/learning/dream/dream-insights-pruner.d.ts +24 -4
- package/dist/learning/dream/dream-insights-pruner.js +85 -11
- package/dist/learning/dream/index.d.ts +3 -2
- package/dist/learning/dream/index.js +3 -1
- package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
- package/dist/learning/dream/rvcow-branch-manager.js +8 -1
- package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
- package/dist/learning/dream/speculative-dreamer.js +64 -111
- package/dist/learning/dream/spreading-activation.d.ts +2 -1
- package/dist/learning/dream/spreading-activation.js +15 -6
- package/dist/learning/experience-capture.d.ts +9 -0
- package/dist/learning/experience-capture.js +18 -4
- package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
- package/dist/learning/qe-reasoning-bank.js +22 -11
- package/dist/learning/skill-validation-learner.d.ts +2 -0
- package/dist/learning/skill-validation-learner.js +29 -21
- package/dist/learning/sqlite-persistence.d.ts +6 -0
- package/dist/learning/sqlite-persistence.js +16 -2
- package/dist/learning/usage-outcome.d.ts +68 -0
- package/dist/learning/usage-outcome.js +84 -0
- package/dist/mcp/background-workers.d.ts +13 -1
- package/dist/mcp/background-workers.js +23 -3
- package/dist/mcp/bundle.js +602 -551
- package/dist/mcp/handlers/core-handlers.js +11 -0
- package/dist/mcp/handlers/domain-handler-configs.d.ts +19 -0
- package/dist/mcp/handlers/domain-handler-configs.js +76 -30
- package/dist/mcp/handlers/handler-factory.d.ts +2 -1
- package/dist/mcp/handlers/handler-factory.js +37 -15
- package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
- package/dist/mcp/handlers/orchestrate-routes.js +88 -0
- package/dist/mcp/handlers/task-handlers.d.ts +3 -0
- package/dist/mcp/handlers/task-handlers.js +69 -6
- package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
- 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 +10 -3
- package/dist/mcp/security/schema-validator.js +3 -2
- package/dist/mcp/tools/code-intelligence/c4.js +11 -1
- package/dist/mcp/tools/coverage-analysis/index.js +31 -2
- package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
- package/dist/mcp/tools/learning-optimization/dream.js +38 -34
- package/dist/mcp/tools/learning-optimization/optimize.d.ts +52 -5
- package/dist/mcp/tools/learning-optimization/optimize.js +164 -80
- package/dist/mcp/tools/quality-assessment/gate.js +12 -1
- package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
- package/dist/memory/crdt/lww-register.js +11 -1
- package/dist/migration/agent-compat.js +7 -5
- package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
- package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
- 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/git/git-analyzer.d.ts +49 -0
- package/dist/shared/git/git-analyzer.js +159 -319
- package/dist/shared/git/git-process.d.ts +22 -0
- package/dist/shared/git/git-process.js +37 -0
- package/dist/shared/git/index.d.ts +1 -0
- package/dist/shared/git/index.js +1 -0
- package/dist/shared/io/payload-path-guard.d.ts +75 -0
- package/dist/shared/io/payload-path-guard.js +190 -0
- package/dist/shared/llm/cache.js +4 -1
- package/dist/shared/llm/router/agent-router-config.js +2 -1
- package/dist/shared/llm/translation/tool-translator.js +2 -1
- package/dist/shared/security/compliance-patterns.js +3 -1
- package/dist/shared/test-runner-args.d.ts +5 -0
- package/dist/shared/test-runner-args.js +6 -1
- package/dist/shared/test-runner-process.d.ts +32 -0
- package/dist/shared/test-runner-process.js +105 -0
- package/dist/shared/test-runner-verdict.d.ts +9 -1
- package/dist/shared/test-runner-verdict.js +15 -4
- 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 +56 -0
- package/dist/shared/utils/namespaced-search.js +71 -0
- package/dist/shared/utils/safe-expression-evaluator.js +4 -3
- 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/strange-loop/infra-healing/recovery-playbook.js +13 -3
- package/dist/validation/gate-reexecute.js +7 -4
- package/dist/workers/daemon.d.ts +2 -0
- package/dist/workers/daemon.js +23 -6
- 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/quality-daemon/git-watcher.js +9 -9
- package/dist/workers/worker-env.d.ts +16 -8
- package/dist/workers/worker-env.js +25 -12
- package/dist/workers/worker-manager.js +4 -0
- package/dist/workers/workers/defect-predictor.d.ts +8 -3
- package/dist/workers/workers/defect-predictor.js +48 -49
- package/dist/workers/workers/learning-consolidation.d.ts +3 -1
- package/dist/workers/workers/learning-consolidation.js +22 -8
- package/dist/workflows/browser/workflow-loader.js +8 -5
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-FC4EY447.js +0 -2
- package/dist/cli/chunks/agent-booster-wasm-W3V5P7LE.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-AUAL6UBL.js +0 -2
- package/dist/cli/chunks/base-2XML4WH7.js +0 -2
- package/dist/cli/chunks/browser-ZL7OLKJQ.js +0 -4
- package/dist/cli/chunks/browser-workflow-2IFEUAAK.js +0 -2
- package/dist/cli/chunks/chunk-4GYFONJB.js +0 -4
- package/dist/cli/chunks/chunk-6CKTLVYV.js +0 -2
- package/dist/cli/chunks/chunk-7H3GNRNA.js +0 -4
- package/dist/cli/chunks/chunk-EUVSSIGR.js +0 -12
- package/dist/cli/chunks/chunk-I4U7YCXG.js +0 -180
- package/dist/cli/chunks/chunk-J7RCI25Q.js +0 -2
- package/dist/cli/chunks/chunk-KNHLOANK.js +0 -4
- package/dist/cli/chunks/chunk-KNQUHGNY.js +0 -2
- package/dist/cli/chunks/chunk-LZWBUVCK.js +0 -5
- package/dist/cli/chunks/chunk-PIEKGKW6.js +0 -12
- package/dist/cli/chunks/chunk-PWA6XBW4.js +0 -120
- package/dist/cli/chunks/chunk-X6VYQVUM.js +0 -2
- package/dist/cli/chunks/chunk-YTYS2XSY.js +0 -2
- package/dist/cli/chunks/chunk-Z3LDUPLQ.js +0 -6
- package/dist/cli/chunks/client-RFUSQRUZ.js +0 -2
- package/dist/cli/chunks/core-handlers-ZC7QB432.js +0 -2
- package/dist/cli/chunks/cross-domain-router-GRBK7YFZ.js +0 -2
- package/dist/cli/chunks/daemon-JER6HE2J.js +0 -12
- package/dist/cli/chunks/domain-transfer-NF7UJW7B.js +0 -2
- package/dist/cli/chunks/dream-VALD726W.js +0 -2
- package/dist/cli/chunks/file-discovery-VL73ASNI.js +0 -2
- package/dist/cli/chunks/fleet-GJ66QFXK.js +0 -43
- package/dist/cli/chunks/heartbeat-scheduler-FSX7A3ZA.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-UX2QT6RL.js +0 -2
- package/dist/cli/chunks/hnsw-index-WRDDAMXH.js +0 -2
- package/dist/cli/chunks/hybrid-backend-O67NGIB5.js +0 -2
- package/dist/cli/chunks/impact-analyzer-6VXWWYWM.js +0 -2
- package/dist/cli/chunks/init-wizard-VH34J4TL.js +0 -2
- package/dist/cli/chunks/kernel-KJD24NO7.js +0 -2
- package/dist/cli/chunks/knowledge-graph-343O2HEZ.js +0 -2
- package/dist/cli/chunks/llm-router-service-2M4BT2AO.js +0 -2
- package/dist/cli/chunks/load-test-OTQ2JQ5F.js +0 -2
- package/dist/cli/chunks/mcp-NOTDZBW5.js +0 -2
- package/dist/cli/chunks/memory-backend-4QSNRRV6.js +0 -2
- package/dist/cli/chunks/memory-handlers-YFFYRSM6.js +0 -2
- package/dist/cli/chunks/pattern-null-store-5USH5MNR.js +0 -2
- package/dist/cli/chunks/pipeline-7ATPA6LU.js +0 -19
- package/dist/cli/chunks/project-root-SRTA6TBL.js +0 -2
- package/dist/cli/chunks/protocol-executor-4WYPCNBS.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-I4D6SFS4.js +0 -2
- package/dist/cli/chunks/queen-coordinator-24UMTZTE.js +0 -2
- package/dist/cli/chunks/router-AUD4GATI.js +0 -2
- package/dist/cli/chunks/routing-feedback-2FE6SIKQ.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-P5LEUF25.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-ZCYD5YJS.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-QGV6BW2W.js +0 -2
- package/dist/cli/chunks/safe-db-Q6JUKG2A.js +0 -2
- package/dist/cli/chunks/schedule-44OSMGE5.js +0 -2
- package/dist/cli/chunks/scheduler-V3HO2QQT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-N5T7DWMR.js +0 -2
- package/dist/cli/chunks/sync-4IMMQEPT.js +0 -2
- package/dist/cli/chunks/task-handlers-FH6DNTHW.js +0 -9
- package/dist/cli/chunks/token-bootstrap-HMM3AHXM.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-56GDQCMR.js +0 -2
- package/dist/cli/chunks/unified-memory-RQ3Q4CU3.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-ZOP5FEYX.js +0 -2
- package/dist/cli/chunks/unified-persistence-72OCJJKK.js +0 -2
- package/dist/cli/chunks/visual-security-7F5UV23J.js +0 -2
- package/dist/cli/chunks/witness-chain-KZ57QUFE.js +0 -2
- package/dist/cli/chunks/witness-chain-LFASSMZK.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-TPHN4DXN.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-ZNWEUYBN.js +0 -2
- package/dist/cli/chunks/wrappers-WCAYIQUX.js +0 -2
|
@@ -0,0 +1,46 @@
|
|
|
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.10");process.exit(0)}
|
|
2
|
+
import{a as S,b as re,c as j,d as N,e as se,f as B,g as ie,j as le}from"./chunk-PCEW6Q2C.js";import{a as ce}from"./chunk-5E6GHSTY.js";import{b as L}from"./chunk-FESZBPUB.js";import{d as A,e as E}from"./chunk-FAUCT5KR.js";import{a as M,b as ae}from"./chunk-TYFZXDGZ.js";import{a as oe}from"./chunk-3P34JFQH.js";import"./chunk-FPUDRSFJ.js";import"./chunk-7LFZ4CHM.js";import{e as te}from"./chunk-4G63WT4F.js";import{a as ne}from"./chunk-WBM6N6IM.js";import"./chunk-6MVVSSID.js";import{j as J,k as Z,n as P}from"./chunk-XUZDBQ5X.js";import{a as ee}from"./chunk-CESIR27V.js";import{K as U,w as O}from"./chunk-ABFFWZPC.js";import"./chunk-SY2IB442.js";import"./chunk-TNMBRDCA.js";import"./chunk-CMBLM26R.js";import"./chunk-DKAC3E3B.js";import"./chunk-FZOWULMH.js";import"./chunk-KG336OV3.js";import"./chunk-NNFZUTDH.js";import"./chunk-UARKIZAS.js";import"./chunk-V6JBOIMX.js";import"./chunk-NGKNYIQZ.js";import"./chunk-VFKF2XO7.js";import"./chunk-B6LTH6YV.js";import"./chunk-LQEURY7C.js";import"./chunk-2ZMF4NCF.js";import"./chunk-FFTPAWM6.js";import"./chunk-6S3WJGUV.js";import{d as Q}from"./chunk-MA7JIQ6U.js";import"./chunk-LRZY4KS2.js";import{d as Y}from"./chunk-SO45NA4D.js";import"./chunk-7TB6FK4B.js";import"./chunk-Z7IYW5U7.js";import"./chunk-KI73QCR5.js";import"./chunk-RPHY2DU6.js";import"./chunk-ERQKYIP7.js";import"./chunk-IU2IV4NE.js";import{a as X}from"./chunk-MG27QY4D.js";import"./chunk-DBMNJSBV.js";import"./chunk-EAU5KDFO.js";import"./chunk-DE4YJQJF.js";import"./chunk-G5I6KGMW.js";import"./chunk-APSRPR4W.js";import"./chunk-YAKGBHO4.js";import"./chunk-MNN5J4GU.js";import"./chunk-7ZCDZHDB.js";import"./chunk-BQUAE3CP.js";import"./chunk-2XGVTYVX.js";import"./chunk-YCGP5VFP.js";import"./chunk-WDVRE6GN.js";import"./chunk-NAXGWDVM.js";import"./chunk-2ZI5FKSF.js";import"./chunk-YYTGXD3R.js";import"./chunk-ODJNUMV3.js";import"./chunk-ESUO3GTJ.js";import"./chunk-UHTTW3IT.js";import"./chunk-H32EPIR2.js";import"./chunk-SU5H66SD.js";import"./chunk-6X5DHU6Q.js";import"./chunk-6C3II5OM.js";import"./chunk-DNRWGATA.js";import"./chunk-H2PYU7MN.js";import"./chunk-YK7JN5N7.js";import"./chunk-FBXTQNRH.js";import"./chunk-37OWRCUN.js";import"./chunk-62OAY5KJ.js";import"./chunk-6XCMKIZN.js";import"./chunk-TBLI254A.js";import"./chunk-XEB3NLJR.js";import"./chunk-2T7RRL6G.js";import"./chunk-7OZVZIBE.js";import"./chunk-FB6TI3BH.js";import"./chunk-DEF34AFL.js";import"./chunk-RK73HB2F.js";import"./chunk-NPPHWFA2.js";import"./chunk-EDLFX4ZB.js";import"./chunk-NW5JUCCG.js";import"./chunk-I33O4BRQ.js";import"./chunk-WDQ7IEZY.js";import"./chunk-2SXBBUM6.js";import"./chunk-KNQ2ERFX.js";import"./chunk-XFVTGAAJ.js";import"./chunk-DT7SIJOA.js";import"./chunk-RWWOHCMG.js";import"./chunk-6TB6YOCZ.js";import"./chunk-G3CZCUPM.js";import"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-6KIL6CMD.js";import"./chunk-PPSAMXYN.js";import"./chunk-6PX4OXQO.js";import"./chunk-WQ4PYWSW.js";import"./chunk-LMS3Y7JD.js";import{a as x}from"./chunk-NSHU347M.js";import"./chunk-AH3ZD3NJ.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import{a as K,e as Se}from"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-NVYIZCSR.js";import"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-V2M2XCR5.js";import"./chunk-KOBVYY6H.js";import{a as R,b as De}from"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";import{Command as Ae}from"commander";import s from"chalk";Se();De();import w from"chalk";import{existsSync as ve}from"fs";import{join as q}from"path";var W=class{projectRoot;options;orchestrator;constructor(e){this.options=e,this.projectRoot=e.projectRoot}async checkCodeIntelligence(){if(this.options.skipCodeScan)return console.log(w.yellow(" Code intelligence scan skipped (--skip-code-scan flag)")),{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!1,scanRequested:!1},shouldProceed:!0,skipReason:"skip-flag"};if(await this.hasCodeIntelligenceIndex()){let o=await this.getKGEntryCount();return console.log(w.green(` \u2713 Code intelligence index found (${o} entries)`)),{codeIntelligence:{hasIndex:!0,entryCount:o,wasPrompted:!1,scanRequested:!1},shouldProceed:!0}}return!this.options.nonInteractive&&(console.log(w.yellow(`
|
|
3
|
+
\u26A0 No code intelligence index found`)),console.log(w.gray(" Building a knowledge graph improves agent accuracy by 80%")),console.log(w.gray(" This is a one-time operation and can be run later with:")),console.log(w.cyan(` aqe code-intelligence index
|
|
4
|
+
`)),await this.promptScan())?{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!0,scanRequested:!0},shouldProceed:!1,skipReason:"scan-requested"}:(console.log(w.gray(" Continuing without code intelligence index")),{codeIntelligence:{hasIndex:!1,entryCount:0,wasPrompted:!this.options.nonInteractive,scanRequested:!1},shouldProceed:!0})}async runCodeIntelligenceScan(){try{if(console.log(w.blue(`
|
|
5
|
+
Building code intelligence knowledge graph...`)),this.orchestrator||(this.orchestrator=new oe({projectRoot:this.projectRoot,autoMode:!0,...this.options.initOptions})),await this.hasCodeIntelligenceIndex()){let i=await this.getKGEntryCount();return console.log(w.green(` \u2713 Index already exists (${i} entries)`)),{success:!0,entries:i}}let{KnowledgeGraphService:o}=await import("./knowledge-graph-YPVVIKEU.js"),{InMemoryBackend:a}=await import("./memory-backend-ZW4BTRNK.js"),d=new a;await d.initialize();let n=new o(d,{namespace:"code-intelligence:kg",enableVectorEmbeddings:!0,projectRoot:this.projectRoot}),{glob:c}=await import("tinyglobby"),l=await c(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:this.projectRoot,ignore:["node_modules/**","dist/**","coverage/**",".agentic-qe/**"],expandDirectories:!1});console.log(w.gray(` Indexing ${l.length} files...`));let r=await n.index({paths:l.map(i=>q(this.projectRoot,i)),incremental:!1,includeTests:!0});if(n.destroy(),r.success){let i=r.value.nodesCreated+r.value.edgesCreated;return console.log(w.green(` \u2713 Indexed ${i} knowledge graph entries`)),{success:!0,entries:i}}return console.log(w.yellow(" \u26A0 Code intelligence scan completed with warnings")),{success:!1,entries:0}}catch(e){return console.error(w.red(" \u2717 Code intelligence scan failed:"),K(e)),{success:!1,entries:0}}}async getStatusForAgents(){let e=await this.hasCodeIntelligenceIndex(),o=e?await this.getKGEntryCount():0;return{codeIntelligenceAvailable:e,knowledgeGraphSize:o,recommendedCapabilities:e?["semantic-search","code-analysis","context-aware"]:["basic-analysis"]}}async hasCodeIntelligenceIndex(){let e=q(this.projectRoot,".agentic-qe","memory.db");if(!ve(e))return!1;try{let o=R(e),a=o.prepare(`
|
|
6
|
+
SELECT COUNT(*) as count FROM kv_store
|
|
7
|
+
WHERE namespace = 'code-intelligence:kg'
|
|
8
|
+
`).get();return o.close(),a.count>0}catch{return!1}}async getKGEntryCount(){let e=q(this.projectRoot,".agentic-qe","memory.db");try{let o=R(e),a=o.prepare(`
|
|
9
|
+
SELECT COUNT(*) as count FROM kv_store
|
|
10
|
+
WHERE namespace LIKE 'code-intelligence:kg%'
|
|
11
|
+
`).get();return o.close(),a.count}catch{return 0}}async promptScan(){let o=(await import("readline")).createInterface({input:process.stdin,output:process.stdout});return new Promise(a=>{o.question(w.white(" Run code intelligence scan now? [Y/n]: "),d=>{o.close();let n=d.trim().toLowerCase();a(n===""||n==="y"||n==="yes")})})}};function Ie(t){return new W(t)}async function de(t,e={}){return await Ie({projectRoot:t,...e}).checkCodeIntelligence()}var _={"test-generation":{description:"AI-powered test creation and generation",agentTypes:["test-generator","mutation-tester"]},"test-execution":{description:"Parallel execution, retry, flaky detection",agentTypes:["test-executor","flaky-detector"]},"coverage-analysis":{description:"Sublinear O(log n) gap detection",agentTypes:["coverage-analyzer","gap-detector"]},"quality-assessment":{description:"Quality gates and deployment decisions",agentTypes:["quality-gate","deployment-validator"]},"defect-intelligence":{description:"Prediction and root cause analysis",agentTypes:["defect-predictor","rca-analyst"]},"requirements-validation":{description:"BDD scenarios and testability scoring",agentTypes:["requirements-validator","bdd-generator"]},"code-intelligence":{description:"Knowledge graph and semantic search",agentTypes:["code-indexer","semantic-searcher"]},"security-compliance":{description:"SAST/DAST and compliance scanning",agentTypes:["security-scanner","compliance-auditor"]},"contract-testing":{description:"API contracts and GraphQL validation",agentTypes:["contract-validator","api-tester"]},"visual-accessibility":{description:"Visual regression and a11y testing",agentTypes:["visual-tester","a11y-scanner"]},"chaos-resilience":{description:"Chaos engineering and load testing",agentTypes:["chaos-engineer","load-tester"]},"learning-optimization":{description:"Cross-domain learning and optimization",agentTypes:["learning-optimizer","pattern-recognizer"]}},ue={hierarchical:{description:"Queen-led hierarchy with direct worker control",recommended:"Large teams, clear task delegation"},mesh:{description:"Fully connected peer network for collaboration",recommended:"Small teams, equal peer collaboration"},ring:{description:"Sequential message passing in a ring",recommended:"Pipeline workflows, sequential processing"},adaptive:{description:"Dynamic topology based on workload",recommended:"Variable workloads, auto-scaling needs"},"hierarchical-mesh":{description:"Hybrid combining hierarchy with peer connections",recommended:"Most projects (best of both worlds)"}},ge={sqlite:{description:"SQLite-based persistent storage",features:["Cross-platform","No setup required","Good for development"]},agentdb:{description:"AgentDB with HNSW vector indexing",features:["150x-12,500x faster search","Vector embeddings","Semantic queries"]},hybrid:{description:"Combined SQLite + AgentDB",features:["Best of both","Fallback support","Production recommended"]}},V=class extends se{constructor(e){let o=Object.keys(_);super({id:"domains",stepNumber:"3/6",title:"Domain Focus",description:'Select which DDD domains to enable (comma-separated numbers or "all")',instructions:"Each domain brings specialized agents and capabilities",options:[{key:"0",value:"all",label:"all",description:"Enable all 12 domains"},...o.map((a,d)=>({key:String(d+1),value:a,label:a,description:_[a].description,isDefaultSelected:e.includes(a)||e.includes("all")}))],defaultValue:e,validValues:["all",...o],allowEmpty:!1})}async execute(e){let o=await super.execute(e);return o.value.includes("all")?{value:["all"],continue:!0}:o}},G=class extends le{constructor(e={}){super(e)}getTitle(){return"Fleet Initialization Wizard"}getSubtitle(){return"Configure your AQE v3 multi-agent fleet"}getConfirmationPrompt(){return"Initialize fleet with these settings?"}isNonInteractive(){return this.options.nonInteractive??!1}getCommands(){let e=re.checkPatternsExist(this.cwd);return[new N({id:"topology",stepNumber:"1/6",title:"Topology Type",description:"Select the coordination topology for your agent fleet",options:Object.entries(ue).map(([o,a],d)=>({key:String(d+1),value:o,label:o,description:`${a.description}
|
|
12
|
+
Best for: ${a.recommended}`,isRecommended:o==="hierarchical-mesh"})),defaultValue:this.options.defaultTopology||"hierarchical-mesh",validValues:["hierarchical","mesh","ring","adaptive","hierarchical-mesh"]}),new ie({id:"maxAgents",stepNumber:"2/6",title:"Max agents",description:"Set the maximum number of agents in your fleet (5-50). More agents = more parallelism, but higher resource usage.",presets:[{key:"1",value:5,label:"5 agents - Minimal (development/testing)"},{key:"2",value:10,label:"10 agents - Small team"},{key:"3",value:15,label:"15 agents - Standard (recommended)"},{key:"4",value:25,label:"25 agents - Large team"},{key:"5",value:50,label:"50 agents - Maximum capacity"}],defaultValue:this.options.defaultMaxAgents||15,min:5,max:50}),new V(this.options.defaultDomains||["all"]),new N({id:"memoryBackend",stepNumber:"4/6",title:"Memory Backend",description:"Select the memory storage backend for agent coordination",options:Object.entries(ge).map(([o,a],d)=>({key:String(d+1),value:o,label:o,description:`${a.description}
|
|
13
|
+
Features: ${a.features.join(", ")}`,isRecommended:o==="hybrid"})),defaultValue:this.options.defaultMemoryBackend||"hybrid",validValues:["sqlite","agentdb","hybrid"]}),new B({id:"lazyLoading",stepNumber:"5/6",title:"Enable lazy loading",description:"Enable lazy loading for agents and domains",additionalInfo:"Reduces startup time by loading components on-demand",defaultValue:this.options.defaultLazyLoading??!0}),new B({id:"loadPatterns",stepNumber:"6/6",title:"Load pre-trained patterns",description:"Load pre-trained intelligence patterns from repository",additionalInfo:e?"Pre-trained patterns detected in project":"No pre-trained patterns found (will start fresh)",defaultValue:this.options.defaultLoadPatterns??e})]}buildResult(e){return{topology:e.topology,maxAgents:e.maxAgents,domains:e.domains,memoryBackend:e.memoryBackend,lazyLoading:e.lazyLoading,loadPatterns:e.loadPatterns,cancelled:!1}}printSummary(e){S.printSummaryHeader(),S.printSummaryField("Topology",e.topology),S.printSummaryField("Max Agents",String(e.maxAgents));let o=e.domains.includes("all")?"all (12 domains)":e.domains.join(", ");S.printSummaryField("Domains",o),S.printSummaryField("Memory Backend",e.memoryBackend),S.printSummaryField("Lazy Loading",j.enabledDisabled(e.lazyLoading)),S.printSummaryField("Load Patterns",j.yesNo(e.loadPatterns));let a=ue[e.topology],d=ge[e.memoryBackend],n={"Topology style":a.description,"Memory features":d.features.slice(0,2).join(", ")};if(!e.domains.includes("all")){let c=new Set;for(let r of e.domains)if(r!=="all"){let i=_[r];i&&i.agentTypes.forEach(g=>c.add(g))}let l=Array.from(c);n["Agent types"]=l.slice(0,4).join(", ")+(l.length>4?"...":"")}S.printDerivedSettings(n)}getDefaults(){return{topology:this.options.defaultTopology||"hierarchical-mesh",maxAgents:this.options.defaultMaxAgents||15,domains:this.options.defaultDomains||["all"],memoryBackend:this.options.defaultMemoryBackend||"hybrid",lazyLoading:this.options.defaultLazyLoading??!0,loadPatterns:this.options.defaultLoadPatterns??!1,cancelled:!1}}getCancelled(){return{topology:"hierarchical-mesh",maxAgents:15,domains:["all"],memoryBackend:"hybrid",lazyLoading:!0,loadPatterns:!1,cancelled:!0}}};async function me(t={}){return new G(t).run()}import{existsSync as Fe,statSync as ze}from"node:fs";import{extname as Te,resolve as Ce}from"node:path";var ye=["test","analyze","scan"],T=80,pe=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs"]),I=t=>({success:!1,error:t});async function fe(t,e){let o=Ce(e);if(!Fe(o))return I(`Target does not exist: ${e}`);switch(t){case"test":{let a=L(o,{includeTests:!1});return a.length===0?I(`No source files under ${e} to generate tests for.`):{success:!0,task:{domain:"test-generation",type:"generate-tests",payload:{sourceFiles:a}}}}case"scan":{let a=L(o,{includeTests:!0}).filter(n=>pe.has(Te(n).toLowerCase()));if(a.length===0)return I(`No files under ${e} that the SAST scanner covers (${[...pe].join(" ")}).`);let d=a.filter(n=>ze(n).size>O);return d.length>0?I(`${d.length} files under ${e} are over the ${O/(1024*1024)} MB SAST limit (${d.slice(0,5).join(", ")}${d.length>5?", \u2026":""}). Narrow --target to the source to scan.`):{success:!0,task:{domain:"security-compliance",type:"sast-scan",payload:{files:a}}}}case"analyze":{let a=await J(o);if(a.status==="no-report")return I(`No coverage report for project ${a.projectRoot}, so there is no coverage to analyze. Run your tests with coverage first (e.g. \`npm test -- --coverage\`), or pass the report file as --target.`);if(a.status==="target-missing")return I(P("target-missing",e,null));let{evaluation:d,projectRoot:n}=a;return d.status!=="measured"?I(P(d.reason,e,n)):{success:!0,task:{domain:"coverage-analysis",type:"analyze-coverage",payload:{coverageData:{files:d.files,summary:ce(d.files)},threshold:T}}}}}}import he from"chalk";var $e=["critical","high","medium","low","informational"],C=10,F=t=>t!==null&&typeof t=="object"?t:void 0,we=t=>typeof t=="number"?`${t}%`:"n/a";function xe(t){let e=F(t.summary),o=Array.isArray(t.vulnerabilities)?t.vulnerabilities:void 0;if(!e||!o)return $("scan");let a=i=>Number(e[i]??0),d=F(t.coverage),n=F(t.evidence),c=typeof n?.completeness=="string"?n.completeness:"unknown",l=[`Findings: ${$e.map(i=>`${i} ${a(i)}`).join(", ")}`,`Files scanned: ${d?.filesScanned??"n/a"} (evidence: ${c})`,...o.slice(0,C).map(i=>` [${i.severity??"?"}] ${i.title??"untitled"} @ ${i.location?.file??"?"}:${i.location?.line??"?"}`)];o.length>C&&l.push(` \u2026 ${o.length-C} more`);let r=[];return a("critical")+a("high")>0&&r.push(`${a("critical")} critical and ${a("high")} high findings`),c!=="complete"&&r.push(`scan evidence is ${c}: not every requested file was analyzed`),{lines:l,passed:r.length===0,reasons:r}}function Re(t){if(!Array.isArray(t.tests))return $("test");let e=t.tests,o=e.reduce((l,r)=>l+(typeof r.assertions=="number"?r.assertions:0),0),a=[...new Set(e.map(l=>l.generationMode).filter(l=>typeof l=="string"))],d=e.filter(l=>F(l.qualityGateResult)?.passed===!1),n=[`Tests generated: ${e.length}, assertions: ${o}`+(a.length>0?`, generation mode: ${a.join(", ")}`:""),`Quality gate: ${d.length===0?"passed":`failed for ${d.length} of ${e.length} tests`}`,...d.slice(0,C).map(l=>` ${l.testFile??l.name??l.id}`)],c=[];return e.length===0&&c.push("no tests were generated"),d.length>0&&c.push(`${d.length} generated tests failed the test quality gate`),{lines:n,passed:c.length===0,reasons:c}}function Oe(t){let e=F(t.summary);if(!e||typeof e.line!="number")return $("analyze");let o=F(t.collected),a=i=>o?.[i]!==!1,d=i=>a(i)?we(e[i]):"n/a (not collected)",n=i=>typeof e[i]=="number"?e[i]:0,c=Z({line:n("line"),branch:n("branch"),function:n("function"),statement:n("statement")},T,{branch:a("branch"),function:a("function"),statement:a("statement")}),l=[`Coverage: line ${we(e.line)}, branch ${d("branch")}, function ${d("function")}, statement ${d("statement")} over ${e.files??"n/a"} files`,`Overall over collected metrics: ${c.overall.toFixed(1)}% (threshold ${T}%)`],r=c.meetsThreshold?[]:[`coverage is below the ${T}% threshold`];return{lines:l,passed:r.length===0,reasons:r}}function $(t){let e=`the ${t} result has no readable summary`;return{lines:[`Result: ${e}`],passed:!1,reasons:[e]}}function Pe(t,e){let o=F(e);if(!o)return $(t);switch(t){case"scan":return xe(o);case"test":return Re(o);case"analyze":return Oe(o)}}function be(t,e,o=a=>console.log(a)){let a=e.filter(l=>l.success).map(l=>Pe(t,l.result)),d=new Set;for(let l of a){let r=l.lines.join(`
|
|
14
|
+
`);if(!d.has(r)){d.add(r),o("");for(let i of l.lines)o(` ${i}`)}}let n=e.filter(l=>!l.success).length,c=[...new Set(a.flatMap(l=>l.reasons))];return n>0&&c.unshift(`${n} of ${e.length} workers did not complete`),o(""),o(c.length===0?he.green(" Verdict: PASSED"):he.red(` Verdict: FAILED (${c.join("; ")})`)),c.length===0}function St(t,e,o,a){let d=new Ae("fleet").description("Fleet operations with multi-agent progress tracking");return d.command("init").description("Initialize fleet with interactive wizard").option("--wizard","Run interactive fleet initialization wizard").option("-t, --topology <type>","Fleet topology (hierarchical|mesh|ring|adaptive|hierarchical-mesh)","hierarchical-mesh").option("-m, --max-agents <count>","Maximum agent count (5-50)","15").option("-d, --domains <domains>",'Domains to enable (comma-separated or "all")',"all").option("--memory <backend>","Memory backend (sqlite|agentdb|hybrid)","hybrid").option("--lazy","Enable lazy loading",!0).option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-scan","Skip code intelligence index check").option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async n=>{try{let c=n.topology,l=parseInt(n.maxAgents,10),r=n.domains,i=n.memory,g=n.lazy,b=!n.skipPatterns;if(console.log(s.blue(`
|
|
15
|
+
Code Intelligence Check
|
|
16
|
+
`)),!(await de(process.cwd(),{skipCodeScan:n.skipCodeScan,nonInteractive:!n.wizard})).shouldProceed){console.log(s.blue(`
|
|
17
|
+
Please run the code intelligence scan first:`)),console.log(s.cyan(` aqe code-intelligence index
|
|
18
|
+
`)),console.log(s.gray(` Then re-run fleet init when ready.
|
|
19
|
+
`)),await e(0);return}if(n.wizard){console.log(s.blue(`
|
|
20
|
+
Fleet Initialization Wizard
|
|
21
|
+
`));let u=await me({defaultTopology:n.topology!=="hierarchical-mesh"?n.topology:void 0,defaultMaxAgents:n.maxAgents!=="15"?parseInt(n.maxAgents,10):void 0,defaultDomains:n.domains!=="all"?n.domains.split(","):void 0,defaultMemoryBackend:n.memory!=="hybrid"?n.memory:void 0});u.cancelled&&(console.log(s.yellow(`
|
|
22
|
+
Fleet initialization cancelled.
|
|
23
|
+
`)),await e(0)),c=u.topology,l=u.maxAgents,r=u.domains.join(","),i=u.memoryBackend,g=u.lazyLoading,b=u.loadPatterns,console.log(s.green(`
|
|
24
|
+
Starting fleet initialization...
|
|
25
|
+
`))}let m=r==="all"?[...x]:r.split(",").filter(u=>x.includes(u));if(console.log(s.blue(`
|
|
26
|
+
Fleet Configuration
|
|
27
|
+
`)),console.log(s.gray(` Topology: ${c}`)),console.log(s.gray(` Max Agents: ${l}`)),console.log(s.gray(` Domains: ${m.length}`)),console.log(s.gray(` Memory: ${i}`)),console.log(s.gray(` Lazy Loading: ${g?"enabled":"disabled"}`)),console.log(s.gray(` Pre-trained Patterns: ${b?"load":"skip"}
|
|
28
|
+
`)),!t.initialized){t.kernel=new U({maxConcurrentAgents:l,memoryBackend:i,hnswEnabled:!0,lazyLoading:g,enabledDomains:m,enableExperienceBridge:!1}),await t.kernel.initialize();let u=await ne(t.kernel.plugins);console.log(s.green(" * Kernel initialized")),t.router=new X(t.kernel.eventBus),await t.router.initialize(),console.log(s.green(" * Cross-domain router initialized")),t.workflowOrchestrator=new Q(t.kernel.eventBus,t.kernel.memory,t.kernel.coordinator),await t.workflowOrchestrator.initialize(),a(t.kernel,t.workflowOrchestrator),console.log(s.green(" * Workflow orchestrator initialized")),t.persistentScheduler=te(),console.log(s.green(" * Persistent scheduler initialized"));let D=z=>t.kernel.getDomainAPI(z),y=new ee(t.kernel.eventBus,t.kernel.memory,D);t.queen=Y(t.kernel,t.router,y,void 0,u),await t.queen.initialize(),console.log(s.green(" * Queen coordinator initialized")),t.initialized=!0}(n.format||"text")==="json"?A(E({status:"initialized",topology:c,maxAgents:l,domains:m,memoryBackend:i,lazyLoading:g,loadPatterns:b}),n.output):(console.log(s.green(`
|
|
29
|
+
Fleet initialized successfully!
|
|
30
|
+
`)),console.log(s.white("Next steps:")),console.log(s.gray(" 1. Spawn agents: aqe fleet spawn --domains test-generation")),console.log(s.gray(" 2. Run operation: aqe fleet run test --target ./src")),console.log(s.gray(` 3. Check status: aqe fleet status
|
|
31
|
+
`))),await e(0)}catch(c){console.error(s.red(`
|
|
32
|
+
Fleet initialization failed:`),c),await e(1)}}),d.command("spawn").description("Spawn multiple agents with progress tracking").option("-d, --domains <domains>","Comma-separated domains","test-generation,coverage-analysis").option("-t, --type <type>","Agent type for all","worker").option("-c, --count <count>","Number of agents per domain","1").action(async n=>{if(await o())try{let c=n.domains.split(","),l=parseInt(n.count,10);console.log(s.blue(`
|
|
33
|
+
Fleet Spawn Operation
|
|
34
|
+
`));let r=new M({title:"Agent Spawn Progress",showEta:!0}),i=c.length*l;r.start(i);let g=[],b=0;for(let p of c)for(let u=0;u<l;u++){let D=`${p}-${n.type}-${u+1}`,y=`agent-${b++}`;r.addAgent({id:y,name:D,status:"pending",progress:0}),r.updateAgent(y,10,{status:"running"});try{r.updateAgent(y,30,{message:"Initializing..."});let z=await t.queen.requestAgentSpawn(p,n.type,["general"]);r.updateAgent(y,80,{message:"Configuring..."}),z.success?(r.completeAgent(y,!0),g.push({id:z.value,domain:p,success:!0})):(r.completeAgent(y,!1),g.push({id:y,domain:p,success:!1}))}catch{r.completeAgent(y,!1),g.push({id:y,domain:p,success:!1})}}r.stop();let h=g.filter(p=>p.success).length,m=g.filter(p=>!p.success).length;console.log(s.blue(`
|
|
35
|
+
Fleet Summary:`)),console.log(s.gray(` Domains: ${c.join(", ")}`)),console.log(s.green(` Successful: ${h}`)),m>0&&console.log(s.red(` Failed: ${m}`)),console.log(""),await e(m>0?1:0)}catch(c){console.error(s.red(`
|
|
36
|
+
Fleet spawn failed:`),c),await e(1)}}),d.command("run").description("Run a coordinated fleet operation").argument("<operation>","Operation type (test|analyze|scan)").option("-t, --target <path>","Target path",".").option("--parallel <count>","Number of parallel agents","4").action(async(n,c)=>{if(!await o())return e(1);try{let l=Number(c.parallel);if(!Number.isSafeInteger(l)||l<1)throw new Error("--parallel must be a positive integer");if(!ye.includes(n))throw new Error(`Unsupported operation: ${n}`);let r=await fe(n,c.target);if(!r.success)return console.error(s.red(`
|
|
37
|
+
Operation '${n}' cannot run: ${r.error}`)),e(1);let{domain:i,payload:g}=r.task,b=r.task.type,h=t.queen.validateTaskExecutable(b,[i]);if(!h.success)return console.error(s.red(`
|
|
38
|
+
Operation '${n}' cannot run: ${h.error.message}`)),e(1);console.log(s.blue(`
|
|
39
|
+
Fleet Operation: ${n}
|
|
40
|
+
`));let m=new M({title:`${n.charAt(0).toUpperCase()+n.slice(1)} Progress`,showEta:!0});m.start(l);let p=Array.from({length:l},(f,k)=>({id:`${n}-agent-${k+1}`,name:`${n}-worker-${k+1}`,domain:i}));for(let f of p)m.addAgent({id:f.id,name:f.name,status:"pending",progress:0});let u=await Promise.all(p.map(async f=>{m.updateAgent(f.id,0,{status:"running"});try{let k=await t.queen.submitTask({type:b,priority:"p1",targetDomains:[i],payload:{...g,target:c.target,workerId:f.id},timeout:6e4});if(!k.success)throw k.error;let H=Date.now()+6e4;for(;Date.now()<H;){let v=t.queen.getTaskStatus(k.value);if(!v)throw new Error(`Task status unavailable: ${k.value}`);if(v.status==="completed")return m.completeAgent(f.id,!0),{id:f.id,success:!0,result:v.result};if(v.status==="failed"||v.status==="cancelled")throw new Error(v.error||`Task ${v.status}`);await new Promise(ke=>setTimeout(ke,250))}throw new Error(`Task timed out: ${k.value}`)}catch(k){return console.error(s.red(` ${f.name}: ${k instanceof Error?k.message:String(k)}`)),m.completeAgent(f.id,!1),{id:f.id,success:!1,result:void 0}}}));m.stop();let D=u.filter(f=>f.success).length,y=u.filter(f=>!f.success).length;console.log(s.blue(`
|
|
41
|
+
Operation Summary:`)),console.log(s.gray(` Operation: ${n}`)),console.log(s.gray(` Target: ${c.target}`)),console.log(s.gray(` Completed: ${D}`)),y>0&&console.log(s.red(` Failed: ${y}`));let z=be(n,u);console.log(""),await e(z?0:1)}catch(l){console.error(s.red(`
|
|
42
|
+
Fleet operation failed:`),l),await e(1)}}),d.command("status").description("Show fleet status with agent progress").option("-w, --watch","Watch mode with live updates").option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async n=>{if(await o())try{let c=async()=>{let r=t.queen.getHealth(),i=t.queen.getMetrics();console.log(s.blue(`
|
|
43
|
+
Fleet Status
|
|
44
|
+
`));let g="\u2588".repeat(Math.min(Math.round(i.agentUtilization*20),20))+"\u2591".repeat(Math.max(20-Math.round(i.agentUtilization*20),0));console.log(s.white(`Fleet Utilization ${s.cyan(g)} ${(i.agentUtilization*100).toFixed(0)}%`)),console.log(""),console.log(s.white("Agent Progress:"));for(let[b,h]of r.domainHealth){let m=h.agents.active,p=h.agents.total,u=p>0?Math.round(m/p*100):0,D=h.status==="healthy"?s.green("\u2713"):h.status==="degraded"?s.yellow("\u25B6"):s.red("\u2717"),y="\u2588".repeat(Math.round(u/5))+"\u2591".repeat(20-Math.round(u/5));console.log(` ${b.padEnd(28)} ${s.cyan(y)} ${u.toString().padStart(3)}% ${D}`)}console.log(""),console.log(s.gray(` Active: ${r.activeAgents}/${r.totalAgents} agents`)),console.log(s.gray(` Tasks: ${r.runningTasks} running, ${r.pendingTasks} pending`)),console.log("")};if((n.format||"text")==="json"){let r=t.queen.getHealth(),i=t.queen.getMetrics(),g={};for(let[b,h]of r.domainHealth)g[b]={status:h.status,agents:h.agents,errors:h.errors.length};A(E({status:r.status,utilization:i.agentUtilization,activeAgents:r.activeAgents,totalAgents:r.totalAgents,runningTasks:r.runningTasks,pendingTasks:r.pendingTasks,domains:g}),n.output),await e(0);return}if(n.watch){ae("Watching fleet status (Ctrl+C to exit)").spinner.stop(),await c();let i=setInterval(async()=>{console.clear(),await c()},2e3);i.unref?.(),process.once("SIGINT",async()=>{clearInterval(i),console.log(s.yellow(`
|
|
45
|
+
Stopped watching.`)),await e(0)})}else await c(),await e(0)}catch(c){console.error(s.red(`
|
|
46
|
+
Failed to get fleet status:`),c),await e(1)}}),d}export{St as createFleetCommand};
|
|
@@ -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,b,c,d,e,f,g,h,i,j,k,l,m,n,o,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.10");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"./chunk-ESUO3GTJ.js";import"./chunk-ACWFKES2.js";import"./chunk-GJMLK5UT.js";import"./chunk-XLZYRTNO.js";import"./chunk-OY2AHLSF.js";export{e as GNNLayerFactory,c as QEGNNEmbeddingIndex,d as QEGNNIndexFactory,f as TensorCompressionFactory,p as batchDifferentiableSearch,i as getDifferentiableSearch,k as getGetCompressionLevel,j as getHierarchicalForward,l as getInit,g as getRuvectorLayer,h as getTensorCompress,b as initGNN,a as isGNNAvailable,m as toFloat32Array,o as toIEmbedding,n as toNumberArray};
|
|
@@ -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 d}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.10");process.exit(0)}
|
|
2
|
+
import{b as d}from"./chunk-ZXPY654C.js";import"./chunk-FZOWULMH.js";import{a as c,e as f}from"./chunk-GHBNRMSJ.js";import"./chunk-OY2AHLSF.js";import*as s from"fs";import*as l from"path";import e from"chalk";f();var h=class{name="heartbeat";description="Manage the token-free heartbeat scheduler";cleanupAndExit;worker;constructor(t){this.cleanupAndExit=t}async getWorker(){if(!this.worker){let{HeartbeatSchedulerWorker:t}=await import("./heartbeat-scheduler-QH5V6G2P.js");this.worker=new t}return this.worker}register(t,o){let a=t.command("heartbeat").description(this.description);a.command("status").description("Show heartbeat worker status, health, and schedule").action(async()=>{await this.executeStatus()}),a.command("run-now").description("Trigger an immediate heartbeat cycle").option("-t, --timeout <ms>","Timeout in milliseconds (default: worker built-in 60s)").action(async n=>{let i=n.timeout?parseInt(n.timeout,10):void 0;await this.executeRunNow(i)}),a.command("history").description("Show recent heartbeat results").option("-n, --count <count>","Number of entries to show","10").action(async n=>{await this.executeHistory(parseInt(n.count,10)||10)}),a.command("log").description("Show today's daily log entries").option("-d, --date <date>","Show log for specific date (YYYY-MM-DD)").action(async n=>{await this.executeLog(n.date)}),a.command("pause").description("Pause the heartbeat worker").action(async()=>{await this.executePause()}),a.command("resume").description("Resume the heartbeat worker").action(async()=>{await this.executeResume()})}async executeStatus(){try{this.worker=await this.getWorker(),await this.worker.initialize();let t=this.worker.getHealth(),o=this.worker.lastResult;if(console.log(e.blue(`
|
|
3
3
|
Heartbeat Scheduler Status`)),console.log(e.gray(" "+"\u2500".repeat(35))),console.log(` Status: ${x(t.status)}`),console.log(` Health Score: ${y(t.healthScore)}${e.gray("/100")}`),this.worker.lastRunAt){let n=p(this.worker.lastRunAt);console.log(` Last Run: ${e.cyan(this.worker.lastRunAt.toISOString().replace("T"," ").slice(0,19))} ${e.gray(`(${n})`)}`)}else console.log(` Last Run: ${e.gray("never")}`);if(this.worker.nextRunAt){let n=p(this.worker.nextRunAt,!0);console.log(` Next Run: ${e.cyan(this.worker.nextRunAt.toISOString().replace("T"," ").slice(0,19))} ${e.gray(`(${n})`)}`)}console.log(` Total Runs: ${e.cyan(String(t.totalExecutions))}`);let a=t.totalExecutions>0?(t.successfulExecutions/t.totalExecutions*100).toFixed(1):"100.0";if(console.log(` Success Rate: ${e.cyan(a+"%")}`),o?.metrics?.domainMetrics){let n=o.metrics.domainMetrics;console.log(""),console.log(e.blue(" Last Result:")),console.log(` Promoted: ${e.cyan(String(n.promoted??0))} patterns`),console.log(` Deprecated: ${e.cyan(String(n.deprecated??0))} patterns`),console.log(` Decayed: ${e.cyan(String(n.decayed??0))} patterns`),console.log(` Pending Exp: ${e.cyan(String(n.pendingExperiences??0))}`),console.log(` Avg Conf: ${e.cyan(String(n.avgConfidence??0))}`)}console.log(""),await this.cleanupAndExit(0)}catch(t){console.error(e.red(`
|
|
4
4
|
Failed to get heartbeat status:`),c(t)),await this.cleanupAndExit(1)}}async executeRunNow(t){try{this.worker=await this.getWorker(),console.log(e.blue(`
|
|
5
5
|
Triggering heartbeat cycle...
|
|
@@ -8,7 +8,7 @@ import{b as d}from"./chunk-4YUBWU3E.js";import"./chunk-VKFVJCIH.js";import{a as
|
|
|
8
8
|
Heartbeat History (last ${o.length})`)),console.log(e.gray(" "+"\u2500".repeat(60)));for(let a of o){let n=a.success?e.green("OK"):e.red("FAIL"),i=a.timestamp.slice(0,19).replace("T"," "),u=a.domainMetrics||{};console.log(` ${e.gray(i)} ${n} score:${e.cyan(String(a.healthScore))} +${u.promoted??0}/-${u.deprecated??0} ${e.gray(d(a.durationMs))}`)}console.log(""),await this.cleanupAndExit(0)}catch(o){console.error(e.red(`
|
|
9
9
|
Failed to load history:`),c(o)),await this.cleanupAndExit(1)}}async executeLog(t){try{let o=t||new Date().toISOString().split("T")[0];if(!/^\d{4}-\d{2}-\d{2}$/.test(o)){console.error(e.red(`
|
|
10
10
|
Invalid date format: "${o}". Use YYYY-MM-DD.
|
|
11
|
-
`)),await this.cleanupAndExit(1);return}let{findProjectRoot:a}=await import("./unified-memory-
|
|
11
|
+
`)),await this.cleanupAndExit(1);return}let{findProjectRoot:a}=await import("./unified-memory-EHD4VNFW.js"),n=l.join(a(),".agentic-qe","logs"),i=l.join(n,`${o}.md`);if(!s.existsSync(i)){console.log(e.yellow(`
|
|
12
12
|
No daily log found for ${o}.
|
|
13
13
|
`)),await this.cleanupAndExit(0);return}let u=s.readFileSync(i,"utf-8");console.log(e.blue(`
|
|
14
14
|
Daily Log \u2014 ${o}`)),console.log(e.gray(" "+"\u2500".repeat(40)));for(let g of u.split(`
|
|
@@ -45,4 +45,4 @@ Examples:
|
|
|
45
45
|
aqe heartbeat log --date 2026-03-25
|
|
46
46
|
aqe heartbeat pause
|
|
47
47
|
aqe heartbeat resume
|
|
48
|
-
`}},m=100;async function w(){let{findProjectRoot:r}=await import("./unified-memory-
|
|
48
|
+
`}},m=100;async function w(){let{findProjectRoot:r}=await import("./unified-memory-EHD4VNFW.js");return l.join(r(),".agentic-qe","heartbeat-history.json")}async function b(r){try{let t=await w(),o=l.dirname(t);s.existsSync(o)||s.mkdirSync(o,{recursive:!0});let a=[];if(s.existsSync(t))try{a=JSON.parse(s.readFileSync(t,"utf-8"))}catch{a=[]}a.unshift({timestamp:r.timestamp.toISOString(),success:r.success,durationMs:r.durationMs,healthScore:r.metrics.healthScore,domainMetrics:r.metrics.domainMetrics}),a.length>m&&(a=a.slice(0,m)),s.writeFileSync(t,JSON.stringify(a,null,2))}catch{}}async function S(r){try{let t=await w();return s.existsSync(t)?JSON.parse(s.readFileSync(t,"utf-8")).slice(0,r):[]}catch{return[]}}function x(r){switch(r){case"idle":return e.cyan(r);case"running":return e.yellow(r);case"paused":return e.yellow(r);case"stopped":return e.gray(r);case"error":return e.red(r);default:return e.white(r)}}function y(r){return r>=80?e.green(String(r)):r>=50?e.yellow(String(r)):e.red(String(r))}function k(r){switch(r){case"improving":return e.green(r);case"stable":return e.cyan(r);case"degrading":return e.red(r);default:return e.gray(r)}}function p(r,t=!1){let o=t?r.getTime()-Date.now():Date.now()-r.getTime();return o<0?t?"now":"just now":o<6e4?`${Math.floor(o/1e3)}s ${t?"from now":"ago"}`:o<36e5?`${Math.floor(o/6e4)}m ${t?"from now":"ago"}`:`${Math.floor(o/36e5)}h ${t?"from now":"ago"}`}function A(r){return new h(r)}export{h as HeartbeatHandler,A as createHeartbeatHandler};
|
|
@@ -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.10");process.exit(0)}
|
|
2
|
+
import{b as a}from"./chunk-GJHWY3ZX.js";import"./chunk-KSIWGGJI.js";import"./chunk-5LPYV3TK.js";import"./chunk-ZG5666GJ.js";import"./chunk-37OWRCUN.js";import"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-6PX4OXQO.js";import"./chunk-AH3ZD3NJ.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";export{a as HeartbeatSchedulerWorker};
|
|
@@ -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.10");process.exit(0)}
|
|
2
|
+
import{a,b}from"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-XLZYRTNO.js";import"./chunk-OY2AHLSF.js";b();export{a as HnswAdapter};
|
|
@@ -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.10");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-6C3II5OM.js";import"./chunk-6GP6W46M.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-XLZYRTNO.js";import"./chunk-OY2AHLSF.js";export{a as DEFAULT_HNSW_CONFIG,b as HNSWIndex,d as benchmarkHNSW,c as createHNSWIndex};
|
|
@@ -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.10");process.exit(0)}
|
|
2
|
+
import"./chunk-OY2AHLSF.js";var s=class{adapter;metadataMap=new Map;insertCount=0;constructor(e){this.adapter=e}async initialize(){}async insert(e,t,r){this.adapter.addByStringId(e,t),this.insertCount++,r&&this.metadataMap.set(e,r)}async search(e,t){return this.adapter.searchByArray(e,t).map(a=>({key:a.id,score:a.score,distance:1-a.score,metadata:this.metadataMap.get(a.id)}))}async batchInsert(e){for(let t of e)await this.insert(t.key,t.vector,t.metadata)}async delete(e){let t=this.adapter.removeByStringId(e);return t&&this.metadataMap.delete(e),t}async getStats(){return{nativeHNSW:!0,backendType:"ruvector-gnn",vectorCount:this.adapter.size(),indexSizeBytes:this.adapter.size()*this.adapter.dimensions()*4,avgSearchLatencyMs:this.adapter.lastSearchLatencyMs,p95SearchLatencyMs:0,p99SearchLatencyMs:0,searchOperations:0,insertOperations:this.insertCount}}async clear(){this.adapter.clear(),this.metadataMap.clear(),this.insertCount=0}isNativeAvailable(){return!0}};export{s as HnswLegacyBridge};
|
|
@@ -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.10");process.exit(0)}
|
|
2
|
+
import"./chunk-OY2AHLSF.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("hnswlib-node"),i=e,{RuvectorLayer:r,TensorCompress:a,differentiableSearch:c,hierarchicalForward:l,getCompressionLevel:s,init:p,FlashAttention:d,DotProductAttention:m,MultiHeadAttention:u,HyperbolicAttention:A,LinearAttention:h,MoEAttention:f,SonaEngine:_,pipeline:b}=e||{};export{m as DotProductAttention,d as FlashAttention,A as HyperbolicAttention,h as LinearAttention,f as MoEAttention,u as MultiHeadAttention,r as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,s as getCompressionLevel,l as hierarchicalForward,p as init,b as pipeline};
|
|
@@ -1,11 +1,11 @@
|
|
|
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{a as
|
|
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.10");process.exit(0)}
|
|
3
|
+
import{a as A,b as Ee,c as Te}from"./chunk-TNMBRDCA.js";import{c as ke,d as ye}from"./chunk-2ZI5FKSF.js";import{a as Y}from"./chunk-H32EPIR2.js";import{d as W,h as ne}from"./chunk-DNRWGATA.js";import"./chunk-H2PYU7MN.js";import{b as me}from"./chunk-YK7JN5N7.js";import"./chunk-FBXTQNRH.js";import{b as K}from"./chunk-37OWRCUN.js";import"./chunk-62OAY5KJ.js";import"./chunk-6XCMKIZN.js";import"./chunk-TBLI254A.js";import"./chunk-XEB3NLJR.js";import"./chunk-2T7RRL6G.js";import{a as ue}from"./chunk-FB6TI3BH.js";import{d as fe,e as he}from"./chunk-RWWOHCMG.js";import{a as pe,b as ge}from"./chunk-6TB6YOCZ.js";import"./chunk-G3CZCUPM.js";import{r as M,v as U}from"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import{b as le,d as Me}from"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-PPSAMXYN.js";import"./chunk-6PX4OXQO.js";import"./chunk-WQ4PYWSW.js";import"./chunk-NSHU347M.js";import"./chunk-AH3ZD3NJ.js";import{a as je}from"./chunk-HOZUDE4C.js";import{c as de}from"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-NVYIZCSR.js";import{c as R}from"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-V2M2XCR5.js";import"./chunk-KOBVYY6H.js";import"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";import{Command as pt}from"commander";import $ from"chalk";import be from"node:path";U();import{randomUUID as B}from"crypto";import I from"chalk";var H="dream-scheduler:hook-state";async function _e(r,e,t){try{let{computeRealEmbedding:n}=await import("./real-embeddings-RWGOVOXO.js"),o=await n(t.slice(0,512));r.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(o).buffer),o.length,e)}catch(n){console.error(I.dim(`[hooks] embedding persistence: ${n instanceof Error?n.message:"unknown"}`))}}async function x(r){try{let e=await r.get(H);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await r.set(H,e),e.experienceCount}catch{return 0}}async function G(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-EHD4VNFW.js"),t=e();t.isInitialized()||await t.initialize();let{initializeExperienceCapture:n}=await import("./experience-capture-middleware-RCAOCKM7.js");await n();let o=t.getDatabase();try{o.pragma("busy_timeout = 60000")}catch{}let s=`cli-${Date.now()}-${B().slice(0,8)}`,a=r.durationMs||0,c;if(r.success){let i=a>0&&a<5e3?.1:0,f=r.source.includes("post-task")?.1:r.source.includes("post-edit")?.05:0;c=Math.min(.95,.7+i+f)}else{let i=r.source.includes("post-task")?.15:r.source.includes("post-edit")?.1:0;c=Math.min(.6,.3+i)}o.prepare(`
|
|
4
4
|
INSERT OR REPLACE INTO captured_experiences
|
|
5
5
|
(id, task, agent, domain, success, quality, duration_ms,
|
|
6
6
|
started_at, completed_at, source)
|
|
7
7
|
VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
|
|
8
|
-
`).run(s,r.task.slice(0,500),r.agent,r.domain,r.success?1:0,c,a,r.source),await
|
|
8
|
+
`).run(s,r.task.slice(0,500),r.agent,r.domain,r.success?1:0,c,a,r.source),await _e(o,s,`${r.domain}: ${r.task}`)}catch(e){console.error(I.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function re(r){let{getUnifiedMemory:e}=await import("./unified-memory-EHD4VNFW.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}try{n.exec(`
|
|
9
9
|
CREATE TABLE IF NOT EXISTS captured_experiences (
|
|
10
10
|
id TEXT PRIMARY KEY,
|
|
11
11
|
task TEXT NOT NULL,
|
|
@@ -89,7 +89,7 @@ import{a as v,b as ke,c as ye}from"./chunk-5DZDLOY6.js";import{c as fe,d as he}f
|
|
|
89
89
|
WHERE actionable = 1 AND (applied = 0 OR applied IS NULL)
|
|
90
90
|
ORDER BY created_at DESC
|
|
91
91
|
LIMIT 3
|
|
92
|
-
`).all();if(u.length>0){let{createDreamEngine:E}=await import("./dream-
|
|
92
|
+
`).all();if(u.length>0){let{createDreamEngine:E}=await import("./dream-UA7MKOPQ.js"),g=E();await g.initialize();try{for(let T of u){let D=await g.applyInsight(T.id);D.success&&D.patternId&&d++}}finally{await g.close()}}}catch(u){console.error(I.dim(`[hooks] post-task insight apply: ${u instanceof Error?u.message:"unknown"}`))}return await _e(n,o,`${r.domain??"general"}: ${s}`),{experienceId:o,qualityScore:f,bridge:l,stitchedSiblings:p,insightsApplied:d}}async function J(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-EHD4VNFW.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}let o=`${r.taskType}|${r.priority}|${r.domain||"any"}`,s=r.agent,a=`q-learning:aqe-hook-router:${o}:${s}`,c=r.success?.1:-1,i=.1,f=.9,l=n.prepare(`
|
|
93
93
|
SELECT q_value FROM rl_q_values WHERE id = ?
|
|
94
94
|
`).get(a),p=l&&typeof l.q_value=="number"?l.q_value:0,d=n.prepare(`
|
|
95
95
|
SELECT MAX(q_value) AS m FROM rl_q_values WHERE state_key = ?
|
|
@@ -102,7 +102,7 @@ import{a as v,b as ke,c as ye}from"./chunk-5DZDLOY6.js";import{c as fe,d as he}f
|
|
|
102
102
|
visits = visits + 1,
|
|
103
103
|
last_reward = excluded.last_reward,
|
|
104
104
|
updated_at = datetime('now')
|
|
105
|
-
`).run(a,o,s,u,c,r.domain||"any")}catch(e){console.error(I.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function oe(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-
|
|
105
|
+
`).run(a,o,s,u,c,r.domain||"any")}catch(e){console.error(I.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function oe(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-EHD4VNFW.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}n.prepare(`
|
|
106
106
|
UPDATE routing_outcomes
|
|
107
107
|
SET success = ?, quality_score = ?, duration_ms = ?
|
|
108
108
|
WHERE id IN (
|
|
@@ -113,7 +113,7 @@ import{a as v,b as ke,c as ye}from"./chunk-5DZDLOY6.js";import{c as fe,d as he}f
|
|
|
113
113
|
ORDER BY (CASE WHEN used_agent = ? THEN 0 ELSE 1 END), created_at DESC
|
|
114
114
|
LIMIT 1
|
|
115
115
|
)
|
|
116
|
-
`).run(r.success?1:0,r.qualityScore,r.durationMs,r.agent)}catch(e){console.error(I.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function se(){let{getUnifiedMemory:r}=await import("./unified-memory-
|
|
116
|
+
`).run(r.success?1:0,r.qualityScore,r.durationMs,r.agent)}catch(e){console.error(I.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function se(){let{getUnifiedMemory:r}=await import("./unified-memory-EHD4VNFW.js"),e=r();e.isInitialized()||await e.initialize();let t=e.getDatabase();try{t.pragma("busy_timeout = 60000")}catch{}let n=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),o=[["consolidated_into","TEXT DEFAULT NULL"],["consolidation_count","INTEGER DEFAULT 1"],["quality_updated_at","TEXT DEFAULT NULL"],["reuse_success_count","INTEGER DEFAULT 0"],["reuse_failure_count","INTEGER DEFAULT 0"]];for(let[i,f]of o)n.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${f}`);let s=t.prepare(`
|
|
117
117
|
SELECT
|
|
118
118
|
domain,
|
|
119
119
|
agent,
|
|
@@ -129,11 +129,11 @@ import{a as v,b as ke,c as ye}from"./chunk-5DZDLOY6.js";import{c as fe,d as he}f
|
|
|
129
129
|
HAVING cnt >= 3 AND avg_quality >= 0.5 AND success_rate >= 0.6
|
|
130
130
|
ORDER BY avg_quality DESC
|
|
131
131
|
LIMIT 50
|
|
132
|
-
`).all();if(s.length===0)return 0;let{v4:a}=await import("./dist-node-
|
|
132
|
+
`).all();if(s.length===0)return 0;let{v4:a}=await import("./dist-node-UYTYUMLN.js"),c=0;for(let i of s)try{let f=new Date().toISOString().slice(0,7),l=`${i.agent}-${i.domain}-${f}`,p=t.prepare(`
|
|
133
133
|
SELECT id FROM qe_patterns
|
|
134
134
|
WHERE qe_domain = ? AND name = ?
|
|
135
135
|
LIMIT 1
|
|
136
|
-
`).get(i.domain,l);if(p)ge(t,{patternId:p.id,usageCount:i.cnt,successfulUses:i.successes,metrics:{source:"session-consolidation",domain:i.domain,agent:i.agent}}),t.prepare(`
|
|
136
|
+
`).get(i.domain,l);if(p)ge(t,{patternId:p.id,usageCount:i.cnt,successfulUses:i.successes,metrics:{source:"session-consolidation",domain:i.domain,agent:i.agent,outcome:"unmeasured",outcomeBasis:"session-consolidation"}}),t.prepare(`
|
|
137
137
|
UPDATE qe_patterns
|
|
138
138
|
SET confidence = MIN(0.99, confidence + 0.01), updated_at = datetime('now')
|
|
139
139
|
WHERE id = ?
|
|
@@ -148,27 +148,27 @@ import{a as v,b as ke,c as ye}from"./chunk-5DZDLOY6.js";import{c as fe,d as he}f
|
|
|
148
148
|
confidence, usage_count, success_rate, quality_score, tier,
|
|
149
149
|
template_json, context_json, created_at, last_used_at, successful_uses
|
|
150
150
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
|
|
151
|
-
`).run(d,"workflow",i.domain,i.domain,l,E,k,i.cnt,i.success_rate,u,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:g,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:T}=await import("./embed-and-insert-pattern-
|
|
151
|
+
`).run(d,"workflow",i.domain,i.domain,l,E,k,i.cnt,i.success_rate,u,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:g,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:T}=await import("./embed-and-insert-pattern-IS6HSR66.js");await T(t,d,l,E,g),c++}t.prepare(`
|
|
152
152
|
UPDATE captured_experiences
|
|
153
153
|
SET application_count = application_count + 1
|
|
154
154
|
WHERE domain = ? AND agent = ? AND application_count = 0
|
|
155
|
-
`).run(i.domain,i.agent)}catch{}return c}var m={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function
|
|
155
|
+
`).run(i.domain,i.agent)}catch{}return c}var m={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function Se(){let r=m.reasoningBank;try{r&&await r.dispose()}catch{}try{let{resetSharedRvfDualWriter:e}=await import("./shared-rvf-dual-writer-MX4FC2JE.js");e()}catch{}try{let{resetSharedRvfAdapter:e}=await import("./shared-rvf-adapter-HX6AHL3P.js");e()}catch{}m.reasoningBank=null,m.hookRegistry=null,m.coherenceService=null,m.sessionId=null,m.initialized=!1,m.initializationPromise=null}async function _(){if(m.initializationPromise&&await m.initializationPromise,m.initialized&&m.reasoningBank&&m.hookRegistry)return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry};if(m.initializationPromise=Ue(),await m.initializationPromise,m.initializationPromise=null,!m.reasoningBank||!m.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry}}async function Ue(){if(!m.initialized)try{let r=R(),e=be.join(r,".agentic-qe"),t=await O(e);try{m.coherenceService=await ke(ye),console.log($.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log($.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}m.reasoningBank=ne(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},m.coherenceService??void 0);let n=1e4,o=new AbortController,s=setTimeout(()=>o.abort(new Error("ReasoningBank init timeout")),n);try{await m.reasoningBank.initialize({signal:o.signal})}finally{clearTimeout(s)}try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-MX4FC2JE.js"),c=await a();c&&m.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}m.hookRegistry=Te(m.reasoningBank),m.initialized=!0,console.log($.dim("[hooks] System initialized"))}catch(r){console.warn($.yellow(`[hooks] Using fallback mode: ${r instanceof Error?r.message:"unknown error"}`));let e=Be();m.reasoningBank=ne(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),m.hookRegistry=new Ee,m.hookRegistry.initialize(m.reasoningBank),m.initialized=!0}}function q(r){try{r.pragma("busy_timeout = 60000")}catch{}}async function O(r){let t=new ue({sqlite:{path:be.join(r,"memory.db"),walMode:!0,poolSize:3,busyTimeout:6e4},enableFallback:!0,defaultNamespace:"qe-patterns"}),n=new AbortController,o=setTimeout(()=>n.abort(new Error("Backend init timeout")),5e3);try{await t.initialize({signal:n.signal})}finally{clearTimeout(o)}return t}function Be(){let r=new Map;return{initialize:async()=>{},dispose:async()=>{r.clear()},get:async e=>{let t=r.get(e);return t?t.value:void 0},set:async(e,t,n)=>{r.set(e,{value:t})},delete:async e=>r.delete(e),has:async e=>r.has(e),search:async(e,t)=>{let n=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(n.replace(/\*/g,".*"));return Array.from(r.keys()).filter(s=>o.test(s))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,n)=>{},count:async e=>{let t=0,n=`${e}:`;for(let o of r.keys())o.startsWith(n)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of r.keys())if(t.startsWith(e))return!0;return!1}}}function h(r){console.log(JSON.stringify(r,null,2))}function N(r){console.log($.green("\u2713"),r)}function S(r){console.error($.red("\u2717"),r)}function Z(r){if(r.length===0){console.log($.dim(" No specific guidance"));return}r.forEach((e,t)=>{console.log($.cyan(` ${t+1}.`),e)})}async function F(r=500){return process.stdin.isTTY?"":new Promise(e=>{let t="",n=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.pause(),e(t)},r);process.stdin.setEncoding("utf8"),process.stdin.on("data",o=>{t+=o}),process.stdin.on("end",()=>{clearTimeout(n),e(t)}),process.stdin.on("error",()=>{clearTimeout(n),e(t)}),process.stdin.resume()})}function we(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return""}let t=e.tool_input,n=e.toolInput,o=[t?.file_path,t?.filePath,n?.file_path,n?.filePath,e.file_path,e.filePath];for(let s of o)if(typeof s=="string"&&s.trim())return s;return""}function Re(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return""}let t=e.tool_input,n=e.toolInput,o=[t?.subagent_type,t?.subagentType,n?.subagent_type,n?.subagentType,e.subagent_type,e.subagentType];for(let s of o)if(typeof s=="string"&&s.trim())return s;return""}import P from"chalk";import He from"node:path";U();function ve(r){r.command("pre-edit").description("Get context and guidance before editing a file").requiredOption("-f, --file <path>","File path to edit").option("-o, --operation <type>","Operation type: create, update, delete, refactor","update").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),o=(await t.emit(A.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let s=o.guidance||[],c=[o.routing?.recommendedAgent?`Recommended agent: ${o.routing.recommendedAgent} (${(o.routing.confidence*100).toFixed(0)}% confidence).`:"",...s.map(i=>i)].filter(Boolean).join(" ");h({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:o.routing?.patterns?.length||0})}else console.log(P.bold(`
|
|
156
156
|
\u{1F4DD} Pre-Edit Analysis`)),console.log(P.dim(` File: ${e.file}`)),console.log(P.dim(` Operation: ${e.operation}`)),o.routing&&(console.log(P.bold(`
|
|
157
157
|
\u{1F3AF} Recommended Agent:`),P.cyan(o.routing.recommendedAgent)),console.log(P.dim(` Confidence: ${(o.routing.confidence*100).toFixed(1)}%`))),console.log(P.bold(`
|
|
158
|
-
\u{1F4A1} Guidance:`)),Z(o.guidance||[]);return}catch(t){throw S(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=e.success||!e.failure,o=e.file||"";if(!o.trim())try{let p=await F();o=
|
|
159
|
-
\u{1F3AF} Task Routing Result`)),console.log(
|
|
160
|
-
\u{1F464} Recommended Agent:`),
|
|
161
|
-
\u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(
|
|
162
|
-
\u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(
|
|
163
|
-
\u{1F4A1} Guidance:`)),Z(a.guidance),console.log(
|
|
164
|
-
\u{1F4D6} Reasoning:`),
|
|
158
|
+
\u{1F4A1} Guidance:`)),Z(o.guidance||[]);return}catch(t){throw S(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=e.success||!e.failure,o=e.file||"";if(!o.trim())try{let p=await F();o=we(p)}catch{}let s=o.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(s)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${s}`,l=(await t.emit(A.PostTestGeneration,{targetFile:o,success:n,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:p}=await _();await p.recordOutcome({patternId:i,success:n,metrics:{executionTimeMs:0},feedback:`Edit ${n?"succeeded":"failed"}: ${o}`})}catch{}try{await G({task:`edit: ${o}`,agent:"cli-hook",domain:c,success:n,source:"cli-hook-post-edit"})}catch{}try{let p=R(),d=He.join(p,".agentic-qe"),k=await O(d);await x(k)}catch{}e.json?h({success:!0,file:o,editSuccess:n,patternsLearned:l.patternsLearned||0,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Recorded edit outcome for ${o||"(unknown file)"}`),l.patternsLearned&&console.log(P.green(` Patterns learned: ${l.patternsLearned}`)));return}catch(t){throw S(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}import{randomUUID as Fe}from"crypto";U();import v from"chalk";import ze from"node:path";function We(r){if(!r.trim())return"";let e;try{e=JSON.parse(r)}catch{return r.trim()}let t=[e.prompt,e.user_prompt,e.command,e.tool_input?.prompt,e.tool_input?.description,e.toolInput?.prompt,e.toolInput?.description];for(let n of t)if(typeof n=="string"&&n.trim())return n;return""}function Ae(r){r.command("route").description("Route a task to the optimal QE agent").option("-t, --task <description>","Task description (falls back to stdin event JSON)").option("-d, --domain <domain>","Target QE domain hint").option("-c, --capabilities <caps...>","Required capabilities").option("--json","Output as JSON").action(async e=>{try{let t=e.task??"";if(!t.trim()){let c=await F();t=We(c)}if(!t.trim())throw new Error("No task provided. Pass --task <description> or pipe a Claude Code hook event JSON to stdin.");let{reasoningBank:n}=await _(),o={task:t,domain:e.domain,capabilities:e.capabilities,includePatternGuidance:!0},s=await n.routeTask(o);if(!s.success)throw new Error(s.error.message);let a=s.value;e.json?h({recommendedAgent:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,domains:a.domains,patternCount:a.patterns.length,patterns:a.patterns.map(c=>({id:c.id,name:c.name,description:c.description,confidence:c.confidence})),guidance:a.guidance,reasoning:a.reasoning,exploration:a.exploration??!1,criticality:a.criticality??null,qWeight:a.qWeight??null}):(console.log(v.bold(`
|
|
159
|
+
\u{1F3AF} Task Routing Result`)),console.log(v.dim(` Task: "${t}"`)),console.log(v.bold(`
|
|
160
|
+
\u{1F464} Recommended Agent:`),v.cyan(a.recommendedAgent)),console.log(v.dim(` Confidence: ${(a.confidence*100).toFixed(1)}%`)),a.alternatives.length>0&&(console.log(v.bold(`
|
|
161
|
+
\u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(v.dim(` - ${c.agent}: ${(c.score*100).toFixed(1)}%`))})),console.log(v.bold(`
|
|
162
|
+
\u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(v.bold(`
|
|
163
|
+
\u{1F4A1} Guidance:`)),Z(a.guidance),console.log(v.bold(`
|
|
164
|
+
\u{1F4D6} Reasoning:`),v.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-EHD4VNFW.js"),i=c();i.isInitialized()||await i.initialize();let f=i.getDatabase();q(f),Y(f);let l=`route-${Date.now()}-${Fe().slice(0,8)}`,p=a.confidence<.5,d=a;f.prepare(`
|
|
165
165
|
INSERT OR REPLACE INTO routing_outcomes (
|
|
166
166
|
id, task_json, decision_json, used_agent,
|
|
167
167
|
followed_recommendation, success, quality_score,
|
|
168
168
|
duration_ms, error,
|
|
169
169
|
exploration, criticality, q_weight
|
|
170
170
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
171
|
-
`).run(l,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:p,exploration:d.exploration??!1,criticality:d.criticality??null,qWeight:d.qWeight??null}),a.recommendedAgent,1,0,-1,0,p?"low-confidence":null,d.exploration?1:0,d.criticality??null,d.qWeight??null);let k=R(),u=
|
|
171
|
+
`).run(l,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:p,exploration:d.exploration??!1,criticality:d.criticality??null,qWeight:d.qWeight??null}),a.recommendedAgent,1,0,-1,0,p?"low-confidence":null,d.exploration?1:0,d.criticality??null,d.qWeight??null);let k=R(),u=ze.join(k,".agentic-qe"),E=await O(u);await x(E)}catch(c){console.error(v.dim(`[hooks] route persist: ${c instanceof Error?c.message:"unknown"}`))}return}catch(t){throw S(`route failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-route").description("Close the most-recent route sentinel from a Stop hook (#451)").option("--success [bool]","Whether the turn completed successfully","true").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=.325+(t?.25:0)+.1,o=M();o.isInitialized()||await o.initialize();let s=o.getDatabase();q(s);let a=s.prepare(`
|
|
172
172
|
SELECT id, task_json, used_agent FROM routing_outcomes
|
|
173
173
|
WHERE quality_score = -1
|
|
174
174
|
AND task_json NOT LIKE '%"taskId"%'
|
|
@@ -187,20 +187,20 @@ import{a as v,b as ke,c as ye}from"./chunk-5DZDLOY6.js";import{c as fe,d as he}f
|
|
|
187
187
|
WHERE quality_score = -1
|
|
188
188
|
AND task_json NOT LIKE '%"taskId"%'
|
|
189
189
|
AND created_at < datetime('now', '-300 seconds')
|
|
190
|
-
`).run();e.json?h({success:!0,resolved:c.changes>0,staleSwept:i.changes,qualityScore:n,turnSuccess:t}):i.changes>0&&console.log(
|
|
190
|
+
`).run();e.json?h({success:!0,resolved:c.changes>0,staleSwept:i.changes,qualityScore:n,turnSuccess:t}):i.changes>0&&console.log(v.dim(`[hooks] post-route: swept ${i.changes} stale sentinel(s)`));return}catch(t){e.json?h({success:!1,error:t instanceof Error?t.message:"unknown"}):console.error(v.dim(`[hooks] post-route: ${t instanceof Error?t.message:"unknown"}`));return}})}import y from"chalk";Me();function Ge(r,e){return!(r.embedding&&r.embedding.length>0)?{vectorIndex:"pending",notice:"Pattern stored in SQLite without a vector (no embedding runtime is available). Text search finds it now. Set AQE_EMBEDDER_ENDPOINT or install @huggingface/transformers, then run `aqe learning backfill-embeddings` to enable semantic search for it."}:e?{vectorIndex:"sqlite",notice:`Pattern stored; its vector is stored in SQLite and vector search can use it now. The ANN index (patterns.rvf) was not open in this process (${e}); the vector is added to it automatically the next time the index opens.`}:{vectorIndex:"indexed"}}function Oe(r){r.command("stats").description("Display hooks system statistics").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.getStats();if(e.json)h(n);else{console.log(y.bold(`
|
|
191
191
|
\u{1F4CA} Hooks System Statistics
|
|
192
192
|
`)),console.log(y.bold("Patterns:")),console.log(` Total: ${y.cyan(n.totalPatterns)}`),console.log(` Short-term: ${n.patternStoreStats.byTier.shortTerm}`),console.log(` Long-term: ${n.patternStoreStats.byTier.longTerm}`),console.log(y.bold(`
|
|
193
193
|
By Domain:`));for(let[o,s]of Object.entries(n.byDomain))s>0&&console.log(` ${o}: ${s}`);console.log(y.bold(`
|
|
194
194
|
Routing:`)),console.log(` Requests: ${n.routingRequests}`),console.log(` Avg Confidence: ${(n.avgRoutingConfidence*100).toFixed(1)}%`),console.log(y.bold(`
|
|
195
|
-
Learning:`)),console.log(` Outcomes: ${n
|
|
196
|
-
Search Performance:`)),console.log(` Operations: ${n.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${n.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${n.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw S(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=t.getRegisteredEvents();if(e.json)h({events:n,totalEvents:Object.keys(
|
|
195
|
+
Learning:`)),console.log(` Outcomes: ${fe(n)}`),console.log(` Success Rate: ${he(n)}`),console.log(y.bold(`
|
|
196
|
+
Search Performance:`)),console.log(` Operations: ${n.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${n.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${n.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw S(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=t.getRegisteredEvents();if(e.json)h({events:n,totalEvents:Object.keys(A).length,registeredEvents:n.length});else{console.log(y.bold(`
|
|
197
197
|
\u{1F4CB} Registered QE Hook Events
|
|
198
|
-
`)),console.log(y.bold("All Available Events:"));for(let[o,s]of Object.entries(
|
|
199
|
-
Registered: ${n.length}/${Object.keys(
|
|
200
|
-
\u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${o.length}`)),o.forEach((s,a)=>{let c=s.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${s.success?"success":s.error}`),s.patternsLearned&&console.log(y.green(` Patterns learned: ${s.patternsLearned}`))}))}catch(t){throw S(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("learn").description("Store a new pattern in the reasoning bank").requiredOption("-n, --name <name>","Pattern name").requiredOption("-d, --description <desc>","Pattern description").option("-t, --type <type>","Pattern type","test-template").option("--domain <domain>","QE domain").option("--tags <tags...>","Pattern tags").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}}),o=n.success?n.value:null,s;if(!n.success){let i=me(n.error);if(!i)throw new Error(n.error.message);if(o=await t.getPattern(i),!o)throw new Error(n.error.message);let f=n.error.cause;s=f instanceof Error?f.message:"the vector index is unavailable"}if(!o)throw new Error("learn failed: no pattern returned");let{vectorIndex:a,notice:c}=
|
|
198
|
+
`)),console.log(y.bold("All Available Events:"));for(let[o,s]of Object.entries(A)){let c=n.includes(s)?y.green("\u2713"):y.dim("\u25CB");console.log(` ${c} ${o}: ${y.dim(s)}`)}console.log(y.dim(`
|
|
199
|
+
Registered: ${n.length}/${Object.keys(A).length}`))}}catch(t){throw S(`list failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("emit").description("Emit a QE hook event").requiredOption("-e, --event <name>","Event name (e.g., qe:pattern-applied)").option("-d, --data <json>","Event data as JSON","{}").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n;try{n=le(e.data)}catch{throw new Error(`Invalid JSON data: ${e.data}`)}let o=await t.emit(e.event,n);e.json?h({event:e.event,results:o}):(console.log(y.bold(`
|
|
200
|
+
\u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${o.length}`)),o.forEach((s,a)=>{let c=s.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${s.success?"success":s.error}`),s.patternsLearned&&console.log(y.green(` Patterns learned: ${s.patternsLearned}`))}))}catch(t){throw S(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("learn").description("Store a new pattern in the reasoning bank").requiredOption("-n, --name <name>","Pattern name").requiredOption("-d, --description <desc>","Pattern description").option("-t, --type <type>","Pattern type","test-template").option("--domain <domain>","QE domain").option("--tags <tags...>","Pattern tags").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}}),o=n.success?n.value:null,s;if(!n.success){let i=me(n.error);if(!i)throw new Error(n.error.message);if(o=await t.getPattern(i),!o)throw new Error(n.error.message);let f=n.error.cause;s=f instanceof Error?f.message:"the vector index is unavailable"}if(!o)throw new Error("learn failed: no pattern returned");let{vectorIndex:a,notice:c}=Ge(o,s);e.json?h({success:!0,pattern:{id:o.id,name:o.name,type:o.patternType,domain:o.qeDomain},vectorIndex:a,...c?{warning:c}:{}}):(N(`Pattern stored: ${o.name}`),console.log(y.dim(` ID: ${o.id}`)),console.log(y.dim(` Domain: ${o.qeDomain}`)),console.log(y.dim(` Tier: ${o.tier}`)),c&&console.log(y.yellow(` ${a==="pending"?"Vector index pending":"Vector index"}: ${c}`)))}catch(t){throw S(`learn failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("search").description("Search for patterns in the reasoning bank").requiredOption("-q, --query <query>","Search query").option("-l, --limit <n>","Maximum results","10").option("-d, --domain <domain>","Filter by domain").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.searchPatterns(e.query,{limit:parseInt(e.limit,10),domain:e.domain});if(!n.success)throw new Error(n.error.message);let o=n.value;e.json?h({query:e.query,total:o.length,patterns:o.map(s=>({id:s.pattern.id,name:s.pattern.name,score:s.score,domain:s.pattern.qeDomain,matchType:s.matchType}))}):(console.log(y.bold(`
|
|
201
201
|
\u{1F50D} Search Results for "${e.query}"
|
|
202
|
-
`)),o.length===0?console.log(y.dim(" No patterns found")):o.forEach((s,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${s.pattern.name} ${y.dim(`(${(s.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${s.pattern.qeDomain}`)),console.log(y.dim(` Match: ${s.matchType}`)),console.log(y.dim(` ID: ${s.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${o.length} pattern(s)`)))}catch(t){throw S(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}U();import Q from"chalk";import
|
|
203
|
-
`)){let t=e.match(/^(?:export\s+)?NAGUAL_CLOUD_KEY=(.+)/);if(t)return t[1].trim().replace(/^['"]|['"]$/g,"")}}catch{}}var
|
|
202
|
+
`)),o.length===0?console.log(y.dim(" No patterns found")):o.forEach((s,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${s.pattern.name} ${y.dim(`(${(s.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${s.pattern.qeDomain}`)),console.log(y.dim(` Match: ${s.matchType}`)),console.log(y.dim(` ID: ${s.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${o.length} pattern(s)`)))}catch(t){throw S(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}U();import Q from"chalk";import Je from"node:path";function Ne(r){r.command("session-start").description("Initialize session state when Claude Code session starts").option("-s, --session-id <id>","Session ID").option("--json","Output as JSON").action(async e=>{try{let t=e.sessionId||`session-${Date.now()}`;m.sessionId=t;let{reasoningBank:n}=await _(),o=await n.getStats(),s=R(),a=Je.join(s,".agentic-qe"),c=await O(a),i=await c.get(H),f=!i||!i.sessionStartTime;i?(i.sessionStartTime=new Date().toISOString(),i.totalDreamsThisSession=0):i={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0},await c.set(H,i);let l=[];l.push(`AQE Learning: ${o.totalPatterns} patterns loaded`);let p=Object.entries(o.byDomain).filter(([,k])=>k>0).sort(([,k],[,u])=>u-k).slice(0,5);p.length>0&&l.push(`Top domains: ${p.map(([k,u])=>`${k}(${u})`).join(", ")}`),o.patternSuccessRate!==null&&o.patternSuccessRate>0&&l.push(`Pattern success rate: ${(o.patternSuccessRate*100).toFixed(0)}%`),o.routingRequests>0&&l.push(`Routing confidence: ${(o.avgRoutingConfidence*100).toFixed(0)}% across ${o.routingRequests} requests`);let d=l.join(". ")+".";e.json?h({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:d},sessionId:t,initialized:!0,patternsLoaded:o.totalPatterns,dreamScheduler:{enabled:!0,lastDreamTime:i.lastDreamTime,pendingExperiences:i.experienceCount}}):(N(`Session started: ${t}`),console.log(Q.dim(` Patterns loaded: ${o.totalPatterns}`)),console.log(Q.dim(` Dream scheduler: enabled (${i.experienceCount} pending experiences)`)));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("session-end").description("Save session state when Claude Code session ends").option("--save-state","Save learning state to disk").option("--export-metrics","Export session metrics").option("--json","Output as JSON").action(async e=>{try{let t=m.sessionId||"unknown",n=null;if(m.initialized&&m.reasoningBank)try{n=await m.reasoningBank.getStats()}catch{}let o=0;try{o=await se()}catch{}if(e.json){let s=n?`Session complete: ${n.totalPatterns} patterns, ${n.routingRequests} routings, ${n.patternSuccessRate===null?"success rate: insufficient evidence":`${(n.patternSuccessRate*100).toFixed(0)}% success rate`}`:"Session complete";h({continue:!0,sessionId:t,stateSaved:e.saveState||!1,metricsExported:e.exportMetrics||!1,patternsConsolidated:o,finalStats:n?{patternsLearned:n.totalPatterns,routingRequests:n.routingRequests,successRate:n.patternSuccessRate}:null})}else N(`Session ended: ${t}`),n&&(console.log(Q.dim(` Patterns: ${n.totalPatterns}`)),console.log(Q.dim(` Routing requests: ${n.routingRequests}`))),o>0&&console.log(Q.dim(` Patterns consolidated: ${o}`));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{createHash as et,randomUUID as tt}from"node:crypto";import w from"chalk";import nt from"node:path";U();je();import{readFileSync as Qe}from"node:fs";import{homedir as Ve}from"node:os";var ee=de.create("nagual-client");function Xe(){try{let r=Qe(`${Ve()}/.nagual/cloud-hooks.env`,"utf8");for(let e of r.split(`
|
|
203
|
+
`)){let t=e.match(/^(?:export\s+)?NAGUAL_CLOUD_KEY=(.+)/);if(t)return t[1].trim().replace(/^['"]|['"]$/g,"")}}catch{}}var Ke="http://localhost:3333",De=3e3,Ye=5e3;var ie=class{baseUrl;token;enabled;constructor(){this.baseUrl=process.env.NAGUAL_URL??Ke,this.token=process.env.NAGUAL_CLOUD_KEY??process.env.NAGUAL_API_TOKEN??Xe(),this.enabled=!0}async search(e,t,n=5){try{let o=await fetch(`${this.baseUrl}/api/patterns/search`,{method:"POST",headers:this.headers(),body:JSON.stringify({query:e,domain:t,limit:n}),signal:AbortSignal.timeout(De)});return o.ok?(await o.json()).patterns??[]:[]}catch{return[]}}async recordOutcome(e,t){try{let n=await fetch(`${this.baseUrl}/api/patterns/${encodeURIComponent(e)}/outcome`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(De)});n.ok||ee.debug("nagual recordOutcome non-OK",{patternId:e,status:n.status})}catch(n){ee.debug("nagual recordOutcome failed (non-fatal)",{patternId:e,err:n})}}async promotePattern(e){let t={problem:e.problem,solution:e.solution,domain:e.domain,reward:e.reward*.8,tags:[...e.tags??[],"source:aqe",e.source_project?`project:${e.source_project}`:null].filter(n=>n!==null)};try{let n=await fetch(`${this.baseUrl}/api/patterns`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(Ye)});n.ok||ee.debug("nagual promotePattern non-OK",{status:n.status})}catch(n){ee.debug("nagual promotePattern failed (non-fatal)",{err:n})}}headers(){let e={"Content-Type":"application/json"};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}},ae;function xe(){return ae||(ae=new ie),ae}var Ze=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/;function Ie(r,e){let t={};if(r!==void 0){if(!Ze.test(r))return{error:`Invalid --parent-agent-id "${r}": must start with a letter or digit and contain only letters, digits, "_", ".", ":", "-" (max 128 chars)`};t.parentAgentId=r}if(e!==void 0){let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n))return{error:`Invalid --depth "${e}": must be an integer`};if(n<0)return{error:`Invalid --depth ${n}: must be >= 0`};if(n>32)return{error:`Invalid --depth ${n}: must be <= 32`};t.depth=n}return t}var rt="task-bridge",ot=6e5,$e=.5;function st(r){return et("sha256").update(r).digest("hex").slice(0,16)}var at=new Set(["test-generation","coverage-analysis","defect-intelligence","security-compliance","quality-assessment","requirements-validation"]),it=80;async function ct(r,e){return!process.env.NAGUAL_URL&&!process.env.NAGUAL_CLOUD_URL&&!process.env.NAGUAL_CLOUD_KEY?[]:r.length<it?[]:e&&!at.has(e)?[]:xe().search(r.slice(0,300),e,3)}function Pe(r){r.command("pre-task").description("Get context and guidance before spawning a Task agent").option("--task-id <id>","Task identifier").option("-d, --description <desc>","Task description").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=null;if(e.description){let d=await t.routeTask({task:e.description});d.success&&(n=d.value)}let o=(n?.patterns??[]).slice(0,5).map(d=>d?.id).filter(d=>typeof d=="string"),s=n?.domains?.[0],a=e.description?await ct(String(e.description),s):[],c=null,i=[],f=0,l=null;try{let d=M();d.isInitialized()||await d.initialize();let k=d.getDatabase();q(k);try{let u=k.prepare(`
|
|
204
204
|
SELECT used_agent AS agent,
|
|
205
205
|
ROUND(AVG(quality_score), 3) AS avgQuality,
|
|
206
206
|
COUNT(*) AS n
|
|
@@ -220,26 +220,26 @@ Registered: ${n.length}/${Object.keys(v).length}`))}}catch(t){throw S(`list fail
|
|
|
220
220
|
SELECT COALESCE(SUM(average_token_savings), 0) AS sum
|
|
221
221
|
FROM qe_patterns
|
|
222
222
|
WHERE id IN (${u})
|
|
223
|
-
`).get(...o);f=Math.max(0,Math.round(E?.sum??0))}catch{}if(e.description)try{let u=String(e.description),E=W(u),g="normal",T=n?.domains?.[0]??"any",D=Math.max(0,Math.min(10,Math.round(Math.min(u.length/200,1)*10)));l=`task:${
|
|
223
|
+
`).get(...o);f=Math.max(0,Math.round(E?.sum??0))}catch{}if(e.description)try{let u=String(e.description),E=W(u),g="normal",T=n?.domains?.[0]??"any",D=Math.max(0,Math.min(10,Math.round(Math.min(u.length/200,1)*10)));l=`task:${st(u)}`;let L=JSON.stringify({selectedPatternIds:o,agent:n?.recommendedAgent??null,description:u.slice(0,200),taskType:E,priority:g,domain:T,complexityBucket:D,estimatedTokenSavings:f,ts:Date.now()}),C=Date.now()+ot;k.prepare(`
|
|
224
224
|
INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at, created_at)
|
|
225
225
|
VALUES (?, ?, ?, ?, strftime('%s','now')*1000)
|
|
226
|
-
`).run(l,
|
|
226
|
+
`).run(l,rt,L,C)}catch(u){console.error(w.dim(`[hooks] pre-task bridge: ${u instanceof Error?u.message:"unknown"}`))}if(n?.recommendedAgent)try{Y(k);let u=e.taskId||`hook-${Date.now()}`,E=`route-${Date.now()}-${tt().slice(0,8)}`,g=n.confidence<$e,T=n;k.prepare(`
|
|
227
227
|
INSERT INTO routing_outcomes (
|
|
228
228
|
id, task_json, decision_json, used_agent,
|
|
229
229
|
followed_recommendation, success, quality_score,
|
|
230
230
|
duration_ms, error,
|
|
231
231
|
exploration, criticality, q_weight
|
|
232
232
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
233
|
-
`).run(E,JSON.stringify({description:e.description,taskId:u}),JSON.stringify({recommended:n.recommendedAgent,confidence:n.confidence,alternatives:n.alternatives,lowConfidence:g,exploration:T.exploration??!1,criticality:T.criticality??null,qWeight:T.qWeight??null}),n.recommendedAgent,1,0,-1,0,g?"low-confidence":null,T.exploration?1:0,T.criticality??null,T.qWeight??null)}catch(u){console.error(w.dim(`[hooks] pre-task sentinel: ${u instanceof Error?u.message:"unknown"}`))}}catch(d){console.error(w.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let p=n?n.confidence
|
|
233
|
+
`).run(E,JSON.stringify({description:e.description,taskId:u}),JSON.stringify({recommended:n.recommendedAgent,confidence:n.confidence,alternatives:n.alternatives,lowConfidence:g,exploration:T.exploration??!1,criticality:T.criticality??null,qWeight:T.qWeight??null}),n.recommendedAgent,1,0,-1,0,g?"low-confidence":null,T.exploration?1:0,T.criticality??null,T.qWeight??null)}catch(u){console.error(w.dim(`[hooks] pre-task sentinel: ${u instanceof Error?u.message:"unknown"}`))}}catch(d){console.error(w.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let p=n?n.confidence<$e:!1;if(e.json)h({success:!0,taskId:e.taskId,description:e.description,recommendedAgent:n?.recommendedAgent,confidence:n?.confidence,guidance:n?.guidance||[],selectedPatternIds:o,historicalBest:c,priorVerdicts:i,estimatedTokenSavings:f,lowConfidence:p,bridgeKey:l,nagualPatterns:a.map(d=>({id:d.id,problem:d.problem,solution:d.solution.slice(0,400),domain:d.domain,reward:d.reward}))});else if(console.log(w.bold(`
|
|
234
234
|
\u{1F680} Pre-Task Analysis`)),console.log(w.dim(` Task ID: ${e.taskId||"N/A"}`)),n&&(console.log(w.bold(`
|
|
235
235
|
\u{1F3AF} Recommended:`),w.cyan(n.recommendedAgent)),console.log(w.dim(` Confidence: ${(n.confidence*100).toFixed(1)}%`)),p&&console.log(w.yellow(" \u26A0 Low confidence \u2014 consider providing more context"))),a.length>0){console.log(w.bold(`
|
|
236
|
-
\u{1F4DA} Nagual context (cross-project):`));for(let d of a)console.log(w.dim(` [${d.domain}] ${d.problem.slice(0,80)} (reward: ${d.reward.toFixed(2)})`))}return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("post-task").description("Record task outcome for pattern learning").option("--task-id <id>","Task identifier").option("--success [bool]","Whether task succeeded","true").option("--agent <name>","Agent that executed the task").option("--duration <ms>","Task duration in milliseconds").option("-d, --description <desc>","Task description \u2014 fallback Q-state source when pre-task bridge is absent (issue #499)").option("--parent-agent-id <id>","Agent that spawned this task (ADR-101 nesting provenance)").option("--depth <n>","Nesting depth of this task, 0 = top-level (ADR-101)").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0;if(!e.agent||!String(e.agent).trim())try{let s=await F(),a=
|
|
236
|
+
\u{1F4DA} Nagual context (cross-project):`));for(let d of a)console.log(w.dim(` [${d.domain}] ${d.problem.slice(0,80)} (reward: ${d.reward.toFixed(2)})`))}return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),r.command("post-task").description("Record task outcome for pattern learning").option("--task-id <id>","Task identifier").option("--success [bool]","Whether task succeeded","true").option("--agent <name>","Agent that executed the task").option("--duration <ms>","Task duration in milliseconds").option("-d, --description <desc>","Task description \u2014 fallback Q-state source when pre-task bridge is absent (issue #499)").option("--parent-agent-id <id>","Agent that spawned this task (ADR-101 nesting provenance)").option("--depth <n>","Nesting depth of this task, 0 = top-level (ADR-101)").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0;if(!e.agent||!String(e.agent).trim())try{let s=await F(),a=Re(s);a&&(e.agent=a)}catch{}let n=Ie(e.parentAgentId,e.depth);if(n.error){e.json?console.log(JSON.stringify({success:!1,error:n.error})):console.error(w.red(` \u2717 ${n.error}`)),process.exitCode=1;return}let o=0;try{let{hookRegistry:s,reasoningBank:a}=await _();o=(await s.emit(A.QEAgentCompletion,{taskId:e.taskId,success:t,agent:e.agent,duration:e.duration?parseInt(e.duration,10):void 0,timestamp:Date.now()})).reduce((p,d)=>p+(d.patternsLearned||0),0);{let p=e.taskId||`hook-${Date.now()}`,d=e.agent||"unknown",k=e.duration?parseInt(e.duration,10):0,u=(n.parentAgentId?`, Parent: ${n.parentAgentId}`:"")+(n.depth!==void 0?`, Depth: ${n.depth}`:"");await a.recordOutcome({patternId:`task:${d}:${p}`,success:t,metrics:{executionTimeMs:k},feedback:`Agent: ${d}, Task: ${p}${u}`});let E=await re({taskId:p,agent:d,durationMs:k,success:t,parentAgentId:n.parentAgentId,depth:n.depth}),g=d==="unknown"&&E.bridge?.agent?E.bridge.agent:d;await oe({agent:g,success:t,durationMs:k,qualityScore:E.qualityScore});let T=String(e.description??"");if(E.bridge||T){let D=E.bridge?.taskType??W(T),L=E.bridge?.priority??"normal",C=E.bridge?.domain??K(T)[0]??"any";await J({taskType:D,priority:L,domain:C,agent:g,success:t})}}let i=R(),f=nt.join(i,".agentic-qe"),l=await O(f);await x(l)}catch(s){console.error(w.dim(`[hooks] Learning init: ${s instanceof Error?s.message:"unknown"}`))}e.json?h({success:!0,taskId:e.taskId,taskSuccess:t,patternsLearned:o,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Task completed: ${e.taskId||"unknown"}`),console.log(w.dim(` Success: ${t}`)),o>0&&console.log(w.green(` Patterns learned: ${o}`)));return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{existsSync as dt,readFileSync as lt}from"node:fs";import{randomUUID as Le}from"node:crypto";import X from"chalk";import Ce from"node:path";U();import*as z from"fs";import*as te from"path";var V=class r{statePath;warnThreshold;blockThreshold;halfOpenAfterMs;staleAfterMs;constructor(e){this.statePath=e.statePath,this.warnThreshold=e.warnThreshold??3,this.blockThreshold=e.blockThreshold??5,this.halfOpenAfterMs=e.halfOpenAfterMs??12e4,this.staleAfterMs=e.staleAfterMs??30*6e4}static signature(e){return e.trim().replace(/\s+/g," ").slice(0,200)}check(e,t=Date.now()){let n=r.signature(e);if(!n)return{verdict:"allow",consecutiveFailures:0,halfOpen:!1};let o=this.readState()[n];if(!o||o.consecutiveFailures<this.warnThreshold)return{verdict:"allow",consecutiveFailures:o?.consecutiveFailures??0,halfOpen:!1};let s=o.consecutiveFailures;return s>=this.blockThreshold?t-o.lastFailureAt>=this.halfOpenAfterMs?{verdict:"warn",consecutiveFailures:s,halfOpen:!0,hint:`This command has failed ${s}x consecutively; allowing one probe attempt. If it fails again it will be flagged immediately.`}:{verdict:"block",consecutiveFailures:s,halfOpen:!1,hint:`The same command failed ${s}x consecutively. Re-running it unchanged is unlikely to succeed \u2014 inspect the error output, change the approach, or fix the underlying problem first. (A successful run resets this breaker.)`}:{verdict:"warn",consecutiveFailures:s,halfOpen:!1,hint:`This command has failed ${s}x consecutively \u2014 consider changing approach before retrying.`}}record(e,t,n=Date.now()){let o=r.signature(e);if(o)try{let s=this.readState();if(t){s[o]&&(delete s[o],this.writeState(s,n));return}let a=s[o]??{consecutiveFailures:0,lastFailureAt:n};a.consecutiveFailures+=1,a.lastFailureAt=n,s[o]=a,this.writeState(s,n)}catch{}}static isStrict(e=process.env){return e.AQE_STRICT_TOOL_LOOP==="1"||e.AQE_STRICT_TOOL_LOOP==="true"}readState(){try{let e=z.readFileSync(this.statePath,"utf8"),t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}writeState(e,t){for(let[n,o]of Object.entries(e))t-o.lastFailureAt>this.staleAfterMs&&delete e[n];z.mkdirSync(te.dirname(this.statePath),{recursive:!0}),z.writeFileSync(this.statePath,JSON.stringify(e))}};function ce(r){return new V({statePath:te.join(r,".agentic-qe","tool-loop-state.json")})}function ut(r){return/\bjest\b/i.test(r)?"jest":/\bvitest\b/i.test(r)?"vitest":/\bpytest\b/i.test(r)?"pytest":/\bmocha\b/i.test(r)?"mocha":null}async function mt(r){try{let e=M();e.isInitialized()||await e.initialize();let t=e.getDatabase();q(t);let n=r.framework==="pytest"?"python":"javascript",o=r.command.split(/\s+/).slice(0,3).join("-").slice(0,80);t.prepare(`
|
|
237
237
|
INSERT INTO test_outcomes (
|
|
238
238
|
id, test_id, test_name, generated_by, framework, language, domain,
|
|
239
239
|
passed, execution_time_ms, maintainability_score, created_at
|
|
240
240
|
) VALUES (?, ?, ?, 'cli-hook-post-command', ?, ?, 'test-execution',
|
|
241
241
|
?, ?, 0.5, datetime('now'))
|
|
242
|
-
`).run(`to-${Date.now()}-${
|
|
242
|
+
`).run(`to-${Date.now()}-${Le().slice(0,8)}`,`cmd:${o}`,r.command.slice(0,200),r.framework,n,r.success?1:0,r.durationMs);try{let s=Ce.join(process.cwd(),"coverage","coverage-summary.json");if(dt(s)){let c=JSON.parse(lt(s,"utf-8")).total??{},i=Number(c.lines?.pct??0),f=Number(c.branches?.pct??0),l=Number(c.functions?.pct??0),p=t.prepare(`
|
|
243
243
|
SELECT after_lines, after_branches, after_functions
|
|
244
244
|
FROM coverage_sessions
|
|
245
245
|
WHERE target_path = ?
|
|
@@ -253,8 +253,8 @@ Registered: ${n.length}/${Object.keys(v).length}`))}}catch(t){throw S(`list fail
|
|
|
253
253
|
tests_generated, tests_passed, duration_ms,
|
|
254
254
|
started_at, completed_at
|
|
255
255
|
) VALUES (?, ?, 'cli-hook-post-command', ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?)
|
|
256
|
-
`).run(`cs-${Date.now()}-${
|
|
257
|
-
\u26A0\uFE0F Command Warnings:`)),a.forEach(i=>console.log(X.yellow(` - ${i}`))));return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("post-command").description("Record Bash command outcome").option("-c, --command <cmd>","Command that was executed").option("--success [bool]","Whether command succeeded","true").option("--exit-code <code>","Command exit code").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=e.exitCode?parseInt(e.exitCode,10):t?0:1,o=(e.command||"").substring(0,200);try{ce(R()).record(o,t)}catch{}let s=/\b(test|vitest|jest|pytest|mocha)\b/i.test(o),a=/\b(build|compile|tsc)\b/i.test(o),c=/\b(lint|eslint|prettier)\b/i.test(o),i=0,f=!1;try{let{reasoningBank:l}=await _();if(s){let{hookRegistry:T}=await _();await T.emit(
|
|
256
|
+
`).run(`cs-${Date.now()}-${Le().slice(0,8)}`,process.cwd(),r.framework,p?.after_lines??0,p?.after_branches??0,p?.after_functions??0,i,f,l,r.success?1:0,r.durationMs,d,d)}}catch(s){console.error(X.dim(`[hooks] coverage_sessions: ${s instanceof Error?s.message:"unknown"}`))}}catch(e){console.error(X.dim(`[hooks] test_outcomes: ${e instanceof Error?e.message:"unknown"}`))}}function qe(r){r.command("guard").description("File guardian - block edits to protected files").requiredOption("-f, --file <path>","File path to check").option("--json","Output as JSON (required for hook API)").action(async e=>{try{let t=e.file||"",n=t.replace(/\\/g,"/"),s=[{pattern:/^\.env($|\.)/,reason:"Environment file contains secrets"},{pattern:/\.env\.[a-zA-Z]+$/,reason:"Environment file contains secrets"},{pattern:/\.lock$/,reason:"Lock files are auto-generated"},{pattern:/(^|\/)node_modules\//,reason:"node_modules is managed by package manager"},{pattern:/(^|\/)\.agentic-qe\/memory\.db/,reason:"AQE memory database must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-wal$/,reason:"AQE WAL file must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-shm$/,reason:"AQE shared memory file must not be directly edited"}].find(a=>a.pattern.test(n));s?e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Protected file: ${s.reason} (${t})`}}):S(`Blocked: ${s.reason} (${t})`):e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}):N(`Allowed: ${t}`);return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("pre-command").description("Get context before executing a Bash command").option("-c, --command <cmd>","Command to be executed").option("--json","Output as JSON").action(async e=>{try{let t=e.command||"",n=[{pattern:/rm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?-[a-zA-Z]*r[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+(-[a-zA-Z]*r[a-zA-Z]*\s+)?-[a-zA-Z]*f[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+-rf\s+~/,reason:"Recursive delete of home directory"},{pattern:/DROP\s+(TABLE|DATABASE|SCHEMA)/i,reason:"Destructive SQL operation"},{pattern:/git\s+push\s+.*--force(?!-)/,reason:"Force push can overwrite remote history"},{pattern:/git\s+reset\s+--hard/,reason:"Hard reset discards uncommitted changes"},{pattern:/>\s*\/dev\/sd[a-z]/,reason:"Direct write to block device"},{pattern:/dd\s+if=.*of=\/dev\/sd/,reason:"Direct disk write via dd"},{pattern:/chmod\s+777\s/,reason:"World-writable permissions are a security risk"},{pattern:/:\(\)\s*\{\s*:\|\s*:&\s*\}\s*;?\s*:/,reason:"Fork bomb detected"},{pattern:/mkfs\./,reason:"Filesystem format operation"},{pattern:/>\s*\/dev\/null\s*2>&1\s*&\s*disown/,reason:"Stealth background process"}],o=[{pattern:/\.agentic-qe.*rm/,reason:"Deleting AQE data files"},{pattern:/rm\s+-rf\s/,reason:"Recursive force delete"},{pattern:/git\s+clean\s+-[a-zA-Z]*f/,reason:"Force cleaning untracked files"}],s=n.find(i=>i.pattern.test(t)),a=o.filter(i=>i.pattern.test(t)).map(i=>i.reason),c=null;try{c=ce(R()).check(t)}catch{}if(c&&c.verdict==="block"&&V.isStrict()){e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Tool-loop breaker (AQE_STRICT_TOOL_LOOP): ${c.hint}`}}):S(`Blocked by tool-loop breaker: ${c.hint}`);return}if(c&&c.verdict==="block"?a.push(`\u{1F6D1} TOOL-LOOP BREAKER: ${c.hint}`):c&&c.verdict==="warn"&&a.push(`Tool-loop breaker: ${c.hint}`),s)e.json?h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Dangerous command blocked: ${s.reason}`}}):S(`Blocked: ${s.reason}`);else if(e.json){let i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}};a.length>0&&(i.hookSpecificOutput.additionalContext=`Warnings: ${a.join("; ")}`),h(i)}else a.length>0&&(console.log(X.yellow(`
|
|
257
|
+
\u26A0\uFE0F Command Warnings:`)),a.forEach(i=>console.log(X.yellow(` - ${i}`))));return}catch{e.json&&h({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),r.command("post-command").description("Record Bash command outcome").option("-c, --command <cmd>","Command that was executed").option("--success [bool]","Whether command succeeded","true").option("--exit-code <code>","Command exit code").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=e.exitCode?parseInt(e.exitCode,10):t?0:1,o=(e.command||"").substring(0,200);try{ce(R()).record(o,t)}catch{}let s=/\b(test|vitest|jest|pytest|mocha)\b/i.test(o),a=/\b(build|compile|tsc)\b/i.test(o),c=/\b(lint|eslint|prettier)\b/i.test(o),i=0,f=!1;try{let{reasoningBank:l}=await _();if(s){let{hookRegistry:T}=await _();await T.emit(A.TestExecutionResult,{runId:`cmd-${Date.now()}`,patternId:`cmd:test:${o.split(/\s+/).slice(0,3).join("-")}`,passed:t?1:0,failed:t?0:1,duration:0,flaky:!1})}let p=o.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80),d=s?"test-execution":a?"code-intelligence":c?"quality-assessment":"code-intelligence";await l.recordOutcome({patternId:`cmd:${p}`,success:t,metrics:{executionTimeMs:0},feedback:`Command: ${o}, exit: ${n}`}),i=1,(s||a||c)&&(await G({task:`bash: ${o}`,agent:"cli-hook",domain:d,success:t,source:"cli-hook-post-command"}),f=!0);let k=ut(o);k&&await mt({command:o,framework:k,success:t,durationMs:0});let u=R(),E=Ce.join(u,".agentic-qe"),g=await O(E);await x(g)}catch(l){console.error(X.dim(`[hooks] post-command learning: ${l instanceof Error?l.message:"unknown"}`))}e.json&&h({success:!0,command:o.substring(0,100),commandSuccess:t,exitCode:n,patternsLearned:i,experienceRecorded:f});return}catch(t){e.json&&h({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}function Bn(){let r=new pt("hooks").description("Self-learning QE hooks for pattern recognition and guidance").addHelpText("after",`
|
|
258
258
|
Examples:
|
|
259
259
|
# File editing hooks (learning from edits)
|
|
260
260
|
aqe hooks pre-edit --file src/utils.ts --operation create
|
|
@@ -279,4 +279,4 @@ Examples:
|
|
|
279
279
|
aqe hooks search --query "authentication"
|
|
280
280
|
aqe hooks stats
|
|
281
281
|
aqe hooks list
|
|
282
|
-
`);return
|
|
282
|
+
`);return ve(r),Ae(r),Oe(r),Ne(r),Pe(r),qe(r),r.hook("postAction",async()=>{await Se()}),r}export{A as QE_HOOK_EVENTS,Bn as createHooksCommand,Se as disposeHooksSystem,_ as getHooksSystem,m as hooksState};
|