agentic-qe 3.15.11 → 3.15.13
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/hooks/aqe-hook.cjs +38 -2
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +267 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-KCQDVYY2.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-TIDSQ3ZK.js → agent-booster-wasm-6RRQWMNE.js} +2 -2
- package/dist/cli/chunks/{agent-handler-G3EPBVA7.js → agent-handler-AOH6TV7W.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-ARC5C7GW.js → agent-memory-branch-2P54SF5N.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-SAQOHSGN.js +2 -0
- package/dist/cli/chunks/{arena-K4I4QDXB.js → arena-NSVFCAF5.js} +2 -2
- package/dist/cli/chunks/{arena-36DTATJV.js → arena-X6MOGQHA.js} +4 -4
- package/dist/cli/chunks/{audit-WQSJSJZF.js → audit-27DJLQNM.js} +3 -3
- package/dist/cli/chunks/base-WCACU3FN.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-BB4K67MT.js → better-sqlite3-BU5GXILS.js} +2 -2
- package/dist/cli/chunks/{brain-handler-CU3GOIU3.js → brain-handler-GTQNHHZS.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-NJQX7ZNB.js → branch-enumerator-5CLULOCU.js} +2 -2
- package/dist/cli/chunks/{browser-6YJF4FQW.js → browser-R4DMU3LN.js} +2 -2
- package/dist/cli/chunks/browser-workflow-G6IASEAP.js +2 -0
- package/dist/cli/chunks/{chunk-G4FAPO57.js → chunk-2G7TVT6W.js} +2 -2
- package/dist/cli/chunks/{chunk-HDNWSKHA.js → chunk-32ZMWEP3.js} +2 -2
- package/dist/cli/chunks/{chunk-FWSGPE3V.js → chunk-3AN5TNGD.js} +3 -3
- package/dist/cli/chunks/{chunk-X4J73KP3.js → chunk-3LJ7LQMV.js} +1 -1
- package/dist/cli/chunks/{chunk-3RHOPP7A.js → chunk-3QZEGE67.js} +1 -1
- package/dist/cli/chunks/{chunk-RBZCA7SD.js → chunk-3RZV5DGO.js} +2 -2
- package/dist/cli/chunks/{chunk-DDEOZPWJ.js → chunk-3Y2ROSCL.js} +2 -2
- package/dist/cli/chunks/{chunk-LD5CFK53.js → chunk-3Y7TJFHU.js} +2 -2
- package/dist/cli/chunks/{chunk-I36CRDHF.js → chunk-3YNLWPBF.js} +2 -2
- package/dist/cli/chunks/{chunk-ZMC543GI.js → chunk-42J34YG4.js} +2 -2
- package/dist/cli/chunks/{chunk-YNOCQ2SL.js → chunk-4OVC4RIL.js} +1 -1
- package/dist/cli/chunks/{chunk-2KFFEKSI.js → chunk-526QYFJU.js} +2 -2
- package/dist/cli/chunks/{chunk-LBX7M4LW.js → chunk-5FKWCZNF.js} +2 -2
- package/dist/cli/chunks/{chunk-OH5V5EJW.js → chunk-5K26BEYB.js} +2 -2
- package/dist/cli/chunks/{chunk-TCYSBC7Y.js → chunk-5MDERQH3.js} +1 -1
- package/dist/cli/chunks/{chunk-V5AADCBC.js → chunk-5VMAV6T6.js} +1 -1
- package/dist/cli/chunks/{chunk-YBBT3YYG.js → chunk-5ZGM3RMH.js} +1 -1
- package/dist/cli/chunks/{chunk-RTY7VSZB.js → chunk-6KATY3KS.js} +2 -2
- package/dist/cli/chunks/{chunk-LPU6PAJE.js → chunk-6Z7PRBSG.js} +2 -2
- package/dist/cli/chunks/{chunk-6NA3KZZT.js → chunk-72ASBE35.js} +7 -7
- package/dist/cli/chunks/{chunk-GBFUANTC.js → chunk-756CGMEH.js} +1 -1
- package/dist/cli/chunks/{chunk-UTTSH4NH.js → chunk-75RDHBAX.js} +3 -3
- package/dist/cli/chunks/{chunk-XGPTZUKQ.js → chunk-7CMTY45A.js} +2 -2
- package/dist/cli/chunks/{chunk-NC6K7SCQ.js → chunk-7JUC2MVZ.js} +2 -2
- package/dist/cli/chunks/{chunk-RTFKTKSO.js → chunk-7NA7JXNB.js} +2 -2
- package/dist/cli/chunks/{chunk-GWJWSLDA.js → chunk-7PLIEBY7.js} +2 -2
- package/dist/cli/chunks/{chunk-OURITHFV.js → chunk-7YTGHGK4.js} +2 -2
- package/dist/cli/chunks/{chunk-ITL3IN2E.js → chunk-A64JFBWI.js} +2 -2
- package/dist/cli/chunks/{chunk-OHR7C777.js → chunk-AL6FBH3E.js} +2 -2
- package/dist/cli/chunks/{chunk-5N25I53C.js → chunk-AQSVJNEH.js} +2 -2
- package/dist/cli/chunks/{chunk-FL32MTKT.js → chunk-ARJW4I2O.js} +2 -2
- package/dist/cli/chunks/{chunk-ZQHDA4O7.js → chunk-ASQYASNV.js} +1 -1
- package/dist/cli/chunks/{chunk-4HJKQIX5.js → chunk-BEGR4D6N.js} +2 -2
- package/dist/cli/chunks/{chunk-G77MLBDF.js → chunk-BK577VL7.js} +2 -2
- package/dist/cli/chunks/{chunk-NPZOBSAN.js → chunk-BLSLEVDI.js} +2 -2
- package/dist/cli/chunks/{chunk-R5LGV6GZ.js → chunk-BTVEYBW2.js} +2 -2
- package/dist/cli/chunks/{chunk-2CW7VRPH.js → chunk-C6JTLKG7.js} +5 -5
- package/dist/cli/chunks/{chunk-EWPUQCN4.js → chunk-C7JM7CD3.js} +2 -2
- package/dist/cli/chunks/{chunk-325QCVDI.js → chunk-CCMKSHAT.js} +2 -2
- package/dist/cli/chunks/{chunk-V7DA4HAK.js → chunk-CE7B5LU7.js} +1 -1
- package/dist/cli/chunks/{chunk-4RAQ7PJA.js → chunk-CM4LSLKR.js} +2 -2
- package/dist/cli/chunks/chunk-CRWPZT74.js +62 -0
- package/dist/cli/chunks/{chunk-U3LJNNVJ.js → chunk-CT6SAVXQ.js} +2 -2
- package/dist/cli/chunks/chunk-CV77DMDQ.js +2 -0
- package/dist/cli/chunks/{chunk-UMVSWQNB.js → chunk-DFUASIKA.js} +2 -2
- package/dist/cli/chunks/{chunk-KSE5TDM5.js → chunk-DLD7RUZ4.js} +2 -2
- package/dist/cli/chunks/{chunk-4MUBW4RT.js → chunk-DNDL7SOS.js} +2 -2
- package/dist/cli/chunks/{chunk-EJPK7OTR.js → chunk-DVGRPK7A.js} +2 -2
- package/dist/cli/chunks/{chunk-WCVCOT4E.js → chunk-E56B6IDX.js} +2 -2
- package/dist/cli/chunks/{chunk-7HEMJHPP.js → chunk-E7CLYGS7.js} +1 -1
- package/dist/cli/chunks/{chunk-R5GRABPQ.js → chunk-EXGMJFAT.js} +1 -1
- package/dist/cli/chunks/chunk-F3YS57NF.js +21 -0
- package/dist/cli/chunks/{chunk-I4K2HTQU.js → chunk-FZ76G4QJ.js} +1 -1
- package/dist/cli/chunks/{chunk-4UX35V7P.js → chunk-G2Q66Z23.js} +2 -2
- package/dist/cli/chunks/{chunk-KJCIMNHS.js → chunk-G6WDYBLQ.js} +1 -1
- package/dist/cli/chunks/{chunk-VWUZSNVC.js → chunk-G77ERMUD.js} +1 -1
- package/dist/cli/chunks/{chunk-FZHSG75I.js → chunk-GB6HBNH2.js} +2 -2
- package/dist/cli/chunks/{chunk-KDI5JOYZ.js → chunk-GHM6MQNK.js} +2 -2
- package/dist/cli/chunks/{chunk-H7BLYMNU.js → chunk-GHY6Z6KO.js} +5 -5
- package/dist/cli/chunks/{chunk-TFW7CCKS.js → chunk-GII6UM3F.js} +1 -1
- package/dist/cli/chunks/{chunk-DOBZPSKE.js → chunk-GU5HNCWI.js} +1 -1
- package/dist/cli/chunks/{chunk-AFFN6E6Q.js → chunk-H4GG2NLO.js} +2 -2
- package/dist/cli/chunks/{chunk-7R5HC56U.js → chunk-H4H2YSFH.js} +1 -1
- package/dist/cli/chunks/{chunk-J4JMCZVA.js → chunk-HD7YIFOI.js} +2 -2
- package/dist/cli/chunks/{chunk-5MTWCCZJ.js → chunk-HOAJUIBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-T5KHJ3J7.js → chunk-HQZGPJYG.js} +2 -2
- package/dist/cli/chunks/{chunk-VEEYL2CZ.js → chunk-HZ5NXFXH.js} +2 -2
- package/dist/cli/chunks/{chunk-LQ4NUC6Q.js → chunk-I3C7JOXC.js} +2 -2
- package/dist/cli/chunks/{chunk-Z2EA7A4Z.js → chunk-IC3TQEOA.js} +1 -1
- package/dist/cli/chunks/{chunk-E44NNCEU.js → chunk-IJUHSJ2U.js} +2 -2
- package/dist/cli/chunks/{chunk-EH2S6AOR.js → chunk-J2ZIFFM6.js} +2 -2
- package/dist/cli/chunks/{chunk-GVKVJJQX.js → chunk-JGZ722G3.js} +2 -2
- package/dist/cli/chunks/{chunk-EK5GMOSO.js → chunk-JQGMW45H.js} +1 -1
- package/dist/cli/chunks/{chunk-XGBU3KEM.js → chunk-JRRXCODW.js} +2 -2
- package/dist/cli/chunks/{chunk-5WYZHDIZ.js → chunk-K3TLLJMX.js} +1 -1
- package/dist/cli/chunks/{chunk-LXQ3B4RY.js → chunk-K4CZA77U.js} +2 -2
- package/dist/cli/chunks/chunk-K65CGKLD.js +8 -0
- package/dist/cli/chunks/{chunk-HFFPYC4G.js → chunk-KADFXPPN.js} +2 -2
- package/dist/cli/chunks/{chunk-APPZATXA.js → chunk-KB56CPU4.js} +2 -2
- package/dist/cli/chunks/{chunk-25P77WA5.js → chunk-KCW47QR5.js} +1 -1
- package/dist/cli/chunks/{chunk-WM3SRRA6.js → chunk-KDNJ4F3P.js} +2 -2
- package/dist/cli/chunks/{chunk-5ERFHEEE.js → chunk-KDVZND5Q.js} +1 -1
- package/dist/cli/chunks/{chunk-YOCULVHR.js → chunk-KUAKV3IW.js} +1 -1
- package/dist/cli/chunks/{chunk-M5XYIQYZ.js → chunk-KV4T4MXK.js} +2 -2
- package/dist/cli/chunks/{chunk-MIK4RBEH.js → chunk-KWYH3FI4.js} +1 -1
- package/dist/cli/chunks/{chunk-UKKYMW3S.js → chunk-LFJALJOA.js} +2 -2
- package/dist/cli/chunks/{chunk-K7V2WZNF.js → chunk-LL7LDPXS.js} +1 -1
- package/dist/cli/chunks/{chunk-55CH76ZO.js → chunk-LUZNKJE6.js} +3 -3
- package/dist/cli/chunks/{chunk-OV5RPLKV.js → chunk-LWR3FV3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-SMVVAVN2.js → chunk-LZYQHVD4.js} +2 -2
- package/dist/cli/chunks/{chunk-672XOJDG.js → chunk-M6AAGIG7.js} +1 -1
- package/dist/cli/chunks/{chunk-WCAVIJ64.js → chunk-MAMQA43L.js} +1 -1
- package/dist/cli/chunks/chunk-MB46UBGY.js +3 -0
- package/dist/cli/chunks/{chunk-AP3ADWDK.js → chunk-MFW5HSG4.js} +2 -2
- package/dist/cli/chunks/{chunk-NKTWKYHB.js → chunk-MGZ5FJUW.js} +2 -2
- package/dist/cli/chunks/{chunk-ERN43HOX.js → chunk-MVVB7C2E.js} +410 -410
- package/dist/cli/chunks/{chunk-57LNKSW7.js → chunk-N4CYAKOX.js} +2 -2
- package/dist/cli/chunks/chunk-NT4DBXSX.js +2 -0
- package/dist/cli/chunks/{chunk-BZPE3LDO.js → chunk-NU3W5WFT.js} +2 -2
- package/dist/cli/chunks/chunk-NURIILUB.js +2 -0
- package/dist/cli/chunks/{chunk-ITPGWGQS.js → chunk-NW7IBHJA.js} +4 -4
- package/dist/cli/chunks/{chunk-OD5D4LSZ.js → chunk-NZ3GUMB2.js} +2 -2
- package/dist/cli/chunks/{chunk-35M2X3C5.js → chunk-NZD4DPSU.js} +2 -2
- package/dist/cli/chunks/{chunk-EIDJNT5C.js → chunk-O6FGXMHD.js} +1 -1
- package/dist/cli/chunks/{chunk-OYJC3YON.js → chunk-OCAEXYFA.js} +2 -2
- package/dist/cli/chunks/{chunk-Y7B5EUIJ.js → chunk-OFACHK5O.js} +2 -2
- package/dist/cli/chunks/{chunk-5MNASJOH.js → chunk-P7A4NKTZ.js} +2 -2
- package/dist/cli/chunks/{chunk-M7XFBSIK.js → chunk-PB6J6HAA.js} +2 -2
- package/dist/cli/chunks/{chunk-5HQP4SLM.js → chunk-PHP5UBT4.js} +2 -2
- package/dist/cli/chunks/{chunk-KXS3Y2AX.js → chunk-PIDQVU3L.js} +2 -2
- package/dist/cli/chunks/{chunk-4UBVAJFO.js → chunk-PSFSPGUD.js} +2 -2
- package/dist/cli/chunks/chunk-PT4FMJPQ.js +3 -0
- package/dist/cli/chunks/{chunk-HDJUYAZG.js → chunk-Q3UDLV5Z.js} +1 -1
- package/dist/cli/chunks/{chunk-CIAL4YRY.js → chunk-QDEJ4CI2.js} +2 -2
- package/dist/cli/chunks/{chunk-S6IYEBAI.js → chunk-QPNG5ZN2.js} +2 -2
- package/dist/cli/chunks/{chunk-YPX2TV3M.js → chunk-R7SYRCRP.js} +1 -1
- package/dist/cli/chunks/{chunk-XNLIWQYE.js → chunk-RF7HWBHN.js} +2 -2
- package/dist/cli/chunks/{chunk-5YLOLACR.js → chunk-RFNW2LGD.js} +2 -2
- package/dist/cli/chunks/{chunk-2VLYUF7U.js → chunk-S5AZCIZS.js} +2 -2
- package/dist/cli/chunks/{chunk-ETVAYGCB.js → chunk-SE4VNN4I.js} +3 -3
- package/dist/cli/chunks/{chunk-E6PF35JZ.js → chunk-SG3NX7QE.js} +2 -2
- package/dist/cli/chunks/{chunk-VYTILW4R.js → chunk-SSU73QAX.js} +2 -2
- package/dist/cli/chunks/{chunk-ZP75ASUU.js → chunk-SVLQRAMF.js} +1 -1
- package/dist/cli/chunks/{chunk-JGJXXAS6.js → chunk-SYV2V3PL.js} +4 -4
- package/dist/cli/chunks/{chunk-4RH5I24Q.js → chunk-T3PGQFDI.js} +2 -2
- package/dist/cli/chunks/{chunk-O4JAKWWM.js → chunk-TCBBNUBP.js} +17 -17
- package/dist/cli/chunks/{chunk-QDESWOZP.js → chunk-TOQWL2ZF.js} +2 -2
- package/dist/cli/chunks/{chunk-NTB342NJ.js → chunk-TSQC2KKZ.js} +4 -4
- package/dist/cli/chunks/{chunk-NQZNMCZU.js → chunk-TWDW32W2.js} +2 -2
- package/dist/cli/chunks/{chunk-CO3DX2AX.js → chunk-TWJTK4CC.js} +2 -2
- package/dist/cli/chunks/{chunk-FUYOOKTH.js → chunk-U2FUXDDJ.js} +3 -3
- package/dist/cli/chunks/{chunk-XDI5X3FR.js → chunk-UDQSYWVF.js} +1 -1
- package/dist/cli/chunks/chunk-UOC3O6RP.js +5 -0
- package/dist/cli/chunks/chunk-UT2VZ33P.js +2 -0
- package/dist/cli/chunks/{chunk-IOZRKXR5.js → chunk-UTRV7T2N.js} +2 -2
- package/dist/cli/chunks/{chunk-ZMHCMJ4J.js → chunk-UXZSUMEA.js} +2 -2
- package/dist/cli/chunks/{chunk-G4CKPWF6.js → chunk-VRHRBAEM.js} +1 -1
- package/dist/cli/chunks/{chunk-AUUJBXWX.js → chunk-VRVMIPTM.js} +2 -2
- package/dist/cli/chunks/{chunk-IENZSO3K.js → chunk-VTDFVFST.js} +2 -2
- package/dist/cli/chunks/{chunk-JFLU7L3W.js → chunk-VTOBUZL6.js} +2 -2
- package/dist/cli/chunks/{chunk-KKYO2NKV.js → chunk-VU5TBX2V.js} +2 -2
- package/dist/cli/chunks/{chunk-XS2XF3YG.js → chunk-W26B7ERY.js} +1 -1
- package/dist/cli/chunks/{chunk-DOFREOPQ.js → chunk-W2QWSQVE.js} +2 -2
- package/dist/cli/chunks/{chunk-KSLLHFVY.js → chunk-W3INMZZ6.js} +1 -1
- package/dist/cli/chunks/{chunk-FLU5FDSC.js → chunk-W3PPFHI5.js} +59 -59
- package/dist/cli/chunks/chunk-WKGTGOYS.js +13 -0
- package/dist/cli/chunks/{chunk-4X4MWMHB.js → chunk-WNQS4WTS.js} +2 -2
- package/dist/cli/chunks/{chunk-XJKZ7FTR.js → chunk-WO274FRI.js} +2 -2
- package/dist/cli/chunks/{chunk-76SNL7GU.js → chunk-WOCGL4QP.js} +2 -2
- package/dist/cli/chunks/{chunk-HYXUN7BW.js → chunk-WQL7WCIZ.js} +1 -1
- package/dist/cli/chunks/{chunk-BTVWA35P.js → chunk-X2Z7F4EU.js} +2 -2
- package/dist/cli/chunks/{chunk-VBK2YAYY.js → chunk-X7N2JF2X.js} +2 -2
- package/dist/cli/chunks/{chunk-NT7JRHMH.js → chunk-XEAEYC6Y.js} +1 -1
- package/dist/cli/chunks/{chunk-G2IJFNZS.js → chunk-XNBOGCF3.js} +2 -2
- package/dist/cli/chunks/{chunk-LCVEEII4.js → chunk-XPRVF4YE.js} +2 -2
- package/dist/cli/chunks/{chunk-AMZKAJLJ.js → chunk-YBQH2VOP.js} +2 -2
- package/dist/cli/chunks/{chunk-JUMICXM6.js → chunk-YQFLQE53.js} +2 -2
- package/dist/cli/chunks/{chunk-M5RQ6U3G.js → chunk-YSZ5OE3Z.js} +2 -2
- package/dist/cli/chunks/{chunk-RQMCZQN2.js → chunk-YXRASAPI.js} +2 -2
- package/dist/cli/chunks/{chunk-X3PZCXWG.js → chunk-YZEXYO4W.js} +1 -1
- package/dist/cli/chunks/{chunk-TL6OFMXF.js → chunk-YZWBNBTW.js} +2 -2
- package/dist/cli/chunks/{chunk-CFWGGRE7.js → chunk-ZAKQLAHT.js} +1 -1
- package/dist/cli/chunks/ci-ENOASTYB.js +81 -0
- package/dist/cli/chunks/{ci-config-J665XNOX.js → ci-config-B26OXHQM.js} +2 -2
- package/dist/cli/chunks/{ci-output-PEQQQWVD.js → ci-output-JTCLLNOQ.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-HHB2JSKH.js → circuit-breaker-23JMFNM5.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-JKUJRWPN.js → claude-flow-setup-ON6L462G.js} +2 -2
- package/dist/cli/chunks/client-TV3V2YZ5.js +2 -0
- package/dist/cli/chunks/{cline-installer-Y77BWTAN.js → cline-installer-OWQ4D2FQ.js} +2 -2
- package/dist/cli/chunks/{code-LV2HAGJY.js → code-2ZRL7SEU.js} +19 -18
- package/dist/cli/chunks/{code-index-extractor-4GKKSETB.js → code-index-extractor-JXSQVM67.js} +2 -2
- package/dist/cli/chunks/{codex-installer-WMKBYE5Y.js → codex-installer-7LXZYBSQ.js} +2 -2
- package/dist/cli/chunks/{completions-SBGFAOIJ.js → completions-C2LR623C.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-AQHFIJXC.js → complexity-analyzer-TGQLHCYJ.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-26AYFS2E.js → continuedev-installer-RUGD24D2.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-4UD3DK55.js → copilot-installer-ZLFVLEJP.js} +2 -2
- package/dist/cli/chunks/core-handlers-PZT4OLWR.js +2 -0
- package/dist/cli/chunks/{cost-tracker-TP4NZCG4.js → cost-tracker-RT4QL745.js} +2 -2
- package/dist/cli/chunks/{coverage-B2KIXHAI.js → coverage-NV3C4IMM.js} +11 -10
- package/dist/cli/chunks/cross-domain-router-QOFCZ7G4.js +2 -0
- package/dist/cli/chunks/{cursor-installer-AVZEQZ4W.js → cursor-installer-LJKLNFF6.js} +2 -2
- package/dist/cli/chunks/{daemon-XM2A7LQU.js → daemon-BMDXCQT5.js} +3 -3
- package/dist/cli/chunks/{daemon-P574WWBW.js → daemon-FBH3IRYN.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-MIWOZ6ET.js → dag-attention-scheduler-JGDED55I.js} +2 -2
- package/dist/cli/chunks/{detect-TYR7HT23.js → detect-SZIHIVCJ.js} +2 -2
- package/dist/cli/chunks/{dist-node-2DGVQGLS.js → dist-node-FV3KWXQ6.js} +2 -2
- package/dist/cli/chunks/{domain-handler-RRA4ZOMF.js → domain-handler-GI5JWQOV.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-IVZEZ5RB.js → domain-plugins-BUWY36TL.js} +2 -2
- package/dist/cli/chunks/domain-transfer-GCY7W5DA.js +2 -0
- package/dist/cli/chunks/dream-TRFBGDSQ.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-VNIEOVPO.js → embed-and-insert-pattern-GPRR3ZGD.js} +2 -2
- package/dist/cli/chunks/{eval-QV4LVPUF.js → eval-XPB3IGAP.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-DAPKT763.js → experience-capture-middleware-2E554UB3.js} +3 -3
- package/dist/cli/chunks/{fast-paths-WVRFPHX7.js → fast-paths-ZSMWZPUC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DEFTUIYT.js → feature-flags-GIWVDVVC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-O7ZXDDCD.js → feature-flags-N7EOGE5P.js} +2 -2
- package/dist/cli/chunks/file-discovery-WCKGMSPZ.js +2 -0
- package/dist/cli/chunks/fleet-HCHDOUCX.js +44 -0
- package/dist/cli/chunks/{gnn-wrapper-LS4LZJDR.js → gnn-wrapper-CZNCNXXZ.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-RFTERD4K.js → heartbeat-handler-6YUIF2YQ.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-P44A2OX3.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-ZJQIQJKC.js +2 -0
- package/dist/cli/chunks/hnsw-index-HMG2GH3Z.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-GPKGFFHY.js → hnsw-legacy-bridge-J3M3IK24.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-PHL3F2PR.js → hnswlib-node-ULGTGDZW.js} +2 -2
- package/dist/cli/chunks/{hooks-GYJ6D4QM.js → hooks-C4BUGYUQ.js} +28 -28
- package/dist/cli/chunks/hybrid-backend-B7M74PZG.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-YGEQPCKJ.js → hypergraph-engine-WINGVMPG.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-ZIMM647V.js → hypergraph-handler-GADMWKAU.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-PZYOVKQO.js +2 -0
- package/dist/cli/chunks/{init-guard-VOMBXJXG.js → init-guard-K2T4QWAO.js} +2 -2
- package/dist/cli/chunks/{init-handler-PSMUBWK5.js → init-handler-PCZTDZYI.js} +6 -6
- package/dist/cli/chunks/init-wizard-TZDJQK3U.js +2 -0
- package/dist/cli/chunks/kernel-Y6RRIOKW.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-2YNTFBWJ.js → kilocode-installer-XENXNEIU.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-XHJDPVAZ.js → kiro-installer-3PG2TJ67.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-BVD5Z66M.js +2 -0
- package/dist/cli/chunks/{learning-GNSIDRNG.js → learning-6KDH7FK4.js} +3 -3
- package/dist/cli/chunks/{llm-router-LQDM7IU2.js → llm-router-RKVDEWU2.js} +4 -4
- package/dist/cli/chunks/llm-router-service-KHCAMSUU.js +2 -0
- package/dist/cli/chunks/{load-YATHI72E.js → load-ITHC564X.js} +2 -2
- package/dist/cli/chunks/load-test-RUF7DZA5.js +2 -0
- package/dist/cli/chunks/{mcp-4Y6GDLYK.js → mcp-TCL5UW3N.js} +2 -2
- package/dist/cli/chunks/{memory-OUW3L7H2.js → memory-BKDAY2N2.js} +5 -5
- package/dist/cli/chunks/memory-backend-7ZLFOVGG.js +2 -0
- package/dist/cli/chunks/{memory-handlers-G3LFF53U.js → memory-handlers-WN4FXFOA.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-UBZJXAD2.js → multi-model-executor-VHAT7ZPF.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-AMMNWVH5.js → opencode-installer-E3VM3EEY.js} +2 -2
- package/dist/cli/chunks/{orchestrator-Y44WDOER.js → orchestrator-BMQ6X762.js} +58 -20
- package/dist/cli/chunks/pattern-null-store-RY6CVYHP.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-ESR42RME.js → pattern-usage-recorder-GOOR2BV5.js} +2 -2
- package/dist/cli/chunks/{pipeline-EDTS6OSC.js → pipeline-5NSFQQIX.js} +2 -2
- package/dist/cli/chunks/{platform-5WONJSUX.js → platform-SQM34J5G.js} +2 -2
- package/dist/cli/chunks/{plugin-IJXPCLD4.js → plugin-UQJZRMZG.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-5ECKGZK6.js → prime-radiant-advanced-wasm-WMDJOL4S.js} +2 -2
- package/dist/cli/chunks/project-root-IO5KRNGL.js +2 -0
- package/dist/cli/chunks/protocol-executor-U2CUDWDE.js +2 -0
- package/dist/cli/chunks/{protocol-handler-DRD3GVNW.js → protocol-handler-OBDCVY6X.js} +2 -2
- package/dist/cli/chunks/{prove-KTGW2HMJ.js → prove-XDC7I4XT.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DQSSX2IP.js +2 -0
- package/dist/cli/chunks/{quality-DV2WPRRS.js → quality-L4GQ6WX4.js} +2 -2
- package/dist/cli/chunks/{quality-gate-HFUAFVZC.js → quality-gate-MJG66LKN.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-6FN4BZIX.js +2 -0
- package/dist/cli/chunks/real-embeddings-HW4G2LWL.js +2 -0
- package/dist/cli/chunks/{ref-validation-QWSKS5OY.js → ref-validation-FC7JOJ2C.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-RBAYRCHX.js → roocode-installer-KWS4CEIC.js} +2 -2
- package/dist/cli/chunks/router-YUO3I7RU.js +2 -0
- package/dist/cli/chunks/routing-feedback-36SLQGJE.js +2 -0
- package/dist/cli/chunks/{routing-handler-FMPP3XKO.js → routing-handler-QF4WVB2S.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-KZZT4HWF.js → ruvector-commands-2MTCOUK6.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-FRYZH3WZ.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-XXNITL5I.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-7CHEV35N.js → rvf-migration-coordinator-BREJCXWN.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-D2WWKJIV.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-Q2TH52SN.js → rvf-store-integrity-KKC6HOJD.js} +2 -2
- package/dist/cli/chunks/safe-db-4RRIGRXD.js +2 -0
- package/dist/cli/chunks/schedule-25RTO4DQ.js +2 -0
- package/dist/cli/chunks/scheduler-BPIOJZ5P.js +2 -0
- package/dist/cli/chunks/{security-CUEA3UIM.js → security-OSAE7VAP.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-DROMBRV2.js → shared-rvf-adapter-COUOS665.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-DBNABOP7.js → shared-rvf-dual-writer-YXMPZKQE.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-EDF47DDX.js +2 -0
- package/dist/cli/chunks/{standalone-memory-IAHA3M6B.js → standalone-memory-E6JBMOIL.js} +2 -2
- package/dist/cli/chunks/{status-handler-AFUCASTX.js → status-handler-AFTCIYIX.js} +2 -2
- package/dist/cli/chunks/{structural-health-AQRV6JJ6.js → structural-health-2FROCEI4.js} +2 -2
- package/dist/cli/chunks/{sync-XW5TLZ7M.js → sync-VAYTOWDC.js} +2 -2
- package/dist/cli/chunks/{sync-GX7FMJHL.js → sync-YIQYOFGW.js} +2 -2
- package/dist/cli/chunks/task-handler-KVQHDEX3.js +62 -0
- package/dist/cli/chunks/task-handlers-MVVECQA6.js +9 -0
- package/dist/cli/chunks/{test-D2XDJNDX.js → test-5JSVTOMY.js} +4 -4
- package/dist/cli/chunks/test-runner-process-LEPF2OSS.js +2 -0
- package/dist/cli/chunks/{test-scheduling-TS6I2PR7.js → test-scheduling-HBOHVLI3.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-HBBLPCZ3.js → token-bootstrap-5VEPTPFA.js} +2 -2
- package/dist/cli/chunks/{token-usage-3MBUX4PR.js → token-usage-TBJHDLY6.js} +2 -2
- package/dist/cli/chunks/{transformers-ZWMQO3L2.js → transformers-VAWYMHMZ.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TSZTCMFV.js +2 -0
- package/dist/cli/chunks/{types-5YEMGPSQ.js → types-R5SDZU2E.js} +2 -2
- package/dist/cli/chunks/unified-memory-TLGSSLMI.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-MSUR7ZOO.js +2 -0
- package/dist/cli/chunks/unified-persistence-VFFOTWK7.js +2 -0
- package/dist/cli/chunks/{upgrade-2TPBKIHI.js → upgrade-K5PIHXRB.js} +2 -2
- package/dist/cli/chunks/{validate-XRAXXFW6.js → validate-RPTS7RYJ.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-IYSCS3BZ.js → validate-swarm-B2ZL556X.js} +2 -2
- package/dist/cli/chunks/visual-security-6Q44XNLB.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-PZQ3ZG2P.js → web-tree-sitter-K4DUJC32.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-U6XWFRVT.js → windsurf-installer-OK2AJN35.js} +2 -2
- package/dist/cli/chunks/witness-chain-KDOMXDQX.js +2 -0
- package/dist/cli/chunks/witness-chain-N3OY2RMH.js +2 -0
- package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-L6Y5RFXR.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-N4CW7FZX.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-YBNKMOP6.js → witness-key-manager-TDNPS3WD.js} +2 -2
- package/dist/cli/chunks/{workflow-UAJUILFQ.js → workflow-XRZA3YCY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-CVNNT2RJ.js +2 -0
- package/dist/cli/chunks/{wrappers-AVZ3GPAL.js → wrappers-5JIFWKN6.js} +2 -2
- package/dist/cli/commands/ci.js +7 -0
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/coverage.js +7 -1
- package/dist/cli/commands/fleet-run.d.ts +12 -0
- package/dist/cli/commands/fleet-run.js +175 -0
- package/dist/cli/commands/fleet.js +2 -117
- package/dist/cli/commands/hooks-handlers/stats-hooks.d.ts +4 -3
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +22 -4
- package/dist/cli/handlers/task-handler.d.ts +5 -0
- package/dist/cli/handlers/task-handler.js +26 -0
- package/dist/cli/utils/coverage-verdict.d.ts +11 -2
- package/dist/cli/utils/coverage-verdict.js +26 -6
- package/dist/cli/utils/fleet-operation.d.ts +10 -2
- package/dist/cli/utils/fleet-operation.js +20 -3
- package/dist/cli/utils/fleet-result.d.ts +20 -4
- package/dist/cli/utils/fleet-result.js +32 -21
- package/dist/cli/utils/fleet-shard.d.ts +36 -0
- package/dist/cli/utils/fleet-shard.js +110 -0
- package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
- package/dist/coordination/handlers/coverage-collection.d.ts +2 -0
- package/dist/coordination/handlers/coverage-collection.js +2 -1
- package/dist/coordination/handlers/coverage-evidence.d.ts +75 -0
- package/dist/coordination/handlers/coverage-evidence.js +159 -0
- package/dist/coordination/handlers/coverage-handlers.js +16 -3
- package/dist/coordination/handlers/coverage-scope.d.ts +40 -0
- package/dist/coordination/handlers/coverage-scope.js +321 -0
- package/dist/coordination/handlers/coverage-target.d.ts +9 -0
- package/dist/coordination/handlers/coverage-target.js +15 -5
- package/dist/coordination/handlers/handler-types.d.ts +2 -2
- package/dist/coordination/handlers/handler-utils.d.ts +11 -0
- package/dist/coordination/handlers/handler-utils.js +22 -8
- package/dist/coordination/handlers/misc-handlers.js +5 -2
- package/dist/coordination/handlers/quality-handlers.js +2 -2
- package/dist/coordination/handlers/security-handlers.js +12 -2
- package/dist/coordination/protocols/security-audit.js +11 -1
- package/dist/coordination/task-executor.js +7 -2
- package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
- package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
- package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
- package/dist/domains/code-intelligence/coordinator.js +24 -27
- package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
- package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +4 -1
- package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +51 -5
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +144 -78
- package/dist/domains/coverage-analysis/collected-metrics.d.ts +10 -0
- package/dist/domains/coverage-analysis/collected-metrics.js +29 -0
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +11 -3
- package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
- package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
- package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
- package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
- package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
- package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
- package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
- package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
- package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
- package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
- package/dist/domains/quality-assessment/coordinator.js +10 -4
- package/dist/domains/quality-assessment/interfaces.d.ts +2 -0
- package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
- package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
- package/dist/domains/security-compliance/index.d.ts +1 -1
- package/dist/domains/security-compliance/interfaces.d.ts +46 -5
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
- package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
- package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
- package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
- package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
- package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
- package/dist/domains/security-compliance/services/scanners/index.js +1 -1
- package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
- package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
- package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
- package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
- package/dist/domains/security-compliance/services/security-auditor.js +106 -65
- package/dist/domains/test-execution/coordinator.d.ts +2 -1
- package/dist/domains/test-execution/coordinator.js +33 -27
- package/dist/domains/test-execution/interfaces.d.ts +5 -0
- package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
- package/dist/domains/test-execution/services/test-executor.js +16 -4
- package/dist/domains/visual-accessibility/coordinator.js +34 -9
- package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
- package/dist/domains/visual-accessibility/plugin.js +5 -0
- package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
- package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
- package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
- package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
- package/dist/init/phases/10-workers.js +42 -4
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +23 -1
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +50 -15
- package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +7 -2
- package/dist/integrations/agentic-flow/reasoning-bank/index.js +8 -0
- package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
- package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
- package/dist/learning/embedder-endpoint-client.d.ts +8 -0
- package/dist/learning/embedder-endpoint-client.js +20 -0
- package/dist/learning/embedder-recovery.d.ts +63 -0
- package/dist/learning/embedder-recovery.js +94 -0
- package/dist/learning/qe-reasoning-bank-types.d.ts +5 -0
- package/dist/learning/qe-reasoning-bank.d.ts +21 -0
- package/dist/learning/qe-reasoning-bank.js +54 -8
- package/dist/learning/real-embeddings.d.ts +23 -0
- package/dist/learning/real-embeddings.js +69 -2
- package/dist/learning/real-qe-reasoning-bank.d.ts +24 -4
- package/dist/learning/real-qe-reasoning-bank.js +58 -20
- package/dist/logging/redaction.js +142 -12
- package/dist/mcp/bundle.js +509 -497
- package/dist/mcp/daemon-mode.d.ts +126 -0
- package/dist/mcp/daemon-mode.js +257 -0
- package/dist/mcp/entry.d.ts +4 -0
- package/dist/mcp/entry.js +50 -2
- package/dist/mcp/handlers/domain-handler-configs.d.ts +8 -0
- package/dist/mcp/handlers/domain-handler-configs.js +14 -2
- package/dist/mcp/handlers/handler-factory.js +3 -0
- package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
- package/dist/mcp/handlers/model-route-handlers.js +139 -0
- package/dist/mcp/handlers/orchestrate-routes.d.ts +6 -1
- package/dist/mcp/handlers/orchestrate-routes.js +94 -3
- package/dist/mcp/handlers/task-handlers.d.ts +3 -242
- package/dist/mcp/handlers/task-handlers.js +11 -788
- package/dist/mcp/handlers/task-inference.d.ts +26 -0
- package/dist/mcp/handlers/task-inference.js +156 -0
- package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
- package/dist/mcp/handlers/task-learning-handlers.js +230 -0
- package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
- package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
- package/dist/mcp/protocol-server.js +15 -2
- package/dist/mcp/services/reasoning-bank-service.d.ts +6 -1
- package/dist/mcp/services/reasoning-bank-service.js +9 -0
- package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
- package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
- package/dist/mcp/tools/coverage-analysis/index.js +8 -2
- package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
- package/dist/mcp/tools/visual-accessibility/index.js +29 -13
- package/dist/mcp/types.d.ts +14 -0
- package/dist/routing/advisor/redaction.js +22 -2
- package/dist/shared/events/domain-events.d.ts +2 -0
- package/dist/shared/llm/providers/response-deadline.js +16 -2
- package/dist/shared/metrics/code-metrics.js +21 -3
- package/dist/shared/parsers/typescript-parser.d.ts +6 -0
- package/dist/shared/parsers/typescript-parser.js +13 -1
- package/dist/shared/types/index.js +3 -1
- package/dist/strange-loop/infra-healing/infra-aware-agent-provider.js +8 -1
- package/package.json +3 -3
- package/dist/cli/chunks/adapter-V4GSGOOK.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +0 -2
- package/dist/cli/chunks/base-AK7BXBX2.js +0 -2
- package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +0 -2
- package/dist/cli/chunks/chunk-2DTX7YAZ.js +0 -6
- package/dist/cli/chunks/chunk-72ZBJD2E.js +0 -3
- package/dist/cli/chunks/chunk-EBPJY4DI.js +0 -3
- package/dist/cli/chunks/chunk-H43AFUKL.js +0 -2
- package/dist/cli/chunks/chunk-HJ3XNTTJ.js +0 -2
- package/dist/cli/chunks/chunk-IO5537OM.js +0 -2
- package/dist/cli/chunks/chunk-IW6WDGHM.js +0 -2
- package/dist/cli/chunks/chunk-K2HBNYAZ.js +0 -62
- package/dist/cli/chunks/chunk-LRL56ZYL.js +0 -21
- package/dist/cli/chunks/chunk-VLD7Z2ED.js +0 -13
- package/dist/cli/chunks/chunk-VO3DRK4P.js +0 -3
- package/dist/cli/chunks/ci-6GUFAZMJ.js +0 -81
- package/dist/cli/chunks/client-HL2COSFM.js +0 -2
- package/dist/cli/chunks/core-handlers-IX7ATLM6.js +0 -2
- package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +0 -2
- package/dist/cli/chunks/domain-transfer-DOBI67K6.js +0 -2
- package/dist/cli/chunks/dream-T6EP7B3F.js +0 -2
- package/dist/cli/chunks/file-discovery-JYMVTDMU.js +0 -2
- package/dist/cli/chunks/fleet-FVAUMKUT.js +0 -46
- package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +0 -2
- package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +0 -2
- package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +0 -2
- package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +0 -2
- package/dist/cli/chunks/init-wizard-FUC7KDVX.js +0 -2
- package/dist/cli/chunks/kernel-ZCPMCVMW.js +0 -2
- package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +0 -2
- package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +0 -2
- package/dist/cli/chunks/load-test-ZHQ2MUGO.js +0 -2
- package/dist/cli/chunks/memory-backend-AAMQG6WH.js +0 -2
- package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +0 -2
- package/dist/cli/chunks/project-root-7QL4KP5C.js +0 -2
- package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +0 -2
- package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +0 -2
- package/dist/cli/chunks/real-embeddings-RQRVOKVM.js +0 -2
- package/dist/cli/chunks/router-LQB5SWAF.js +0 -2
- package/dist/cli/chunks/routing-feedback-OEEXA55N.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +0 -2
- package/dist/cli/chunks/safe-db-PE6G3L55.js +0 -2
- package/dist/cli/chunks/schedule-OLKQ6QYW.js +0 -2
- package/dist/cli/chunks/scheduler-LSGBDFAT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +0 -2
- package/dist/cli/chunks/task-handler-TFKVUTNF.js +0 -60
- package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +0 -9
- package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +0 -2
- package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +0 -2
- package/dist/cli/chunks/unified-persistence-UCV7YETW.js +0 -2
- package/dist/cli/chunks/visual-security-ZLXRIQZV.js +0 -2
- package/dist/cli/chunks/witness-chain-CVIWYTD2.js +0 -2
- package/dist/cli/chunks/witness-chain-VBKORKOX.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +0 -2
|
@@ -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.13");process.exit(0)}
|
|
2
|
+
import{a as h,b as i,c as j,d as k}from"./chunk-TWJTK4CC.js";import"./chunk-GHM6MQNK.js";import{a,b,c,d,e,f,g}from"./chunk-XEAEYC6Y.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";export{g as CHAIN_REANCHOR_ACTION,a as GENESIS_PREV_HASH,h as WitnessChain,k as _resetWitnessChainForTests,j as createWitnessChain,i as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256,f as signaturePayload};
|
package/dist/cli/chunks/{witness-chain-repair-K7YX2AO6.js → witness-chain-repair-L6Y5RFXR.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.
|
|
2
|
-
import{a as E}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.13");process.exit(0)}
|
|
2
|
+
import{a as E}from"./chunk-TWJTK4CC.js";import"./chunk-GHM6MQNK.js";import{b as R,c as b,e as A,h as y,k as C}from"./chunk-XEAEYC6Y.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import{d as g,e as _}from"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";_();import{existsSync as v}from"node:fs";import{basename as I}from"node:path";var w={includeArchive:!0};function l(e){let r=n=>C(e,n)?e.prepare(`SELECT COUNT(*) AS n FROM ${n}`).get().n:0;return{live:r("witness_chain"),archive:r("witness_chain_archive")}}function O(e){return{status:e.status,entriesChecked:e.entriesChecked,forks:e.forks.length,unacknowledgedForks:e.forks.length-e.acknowledgedForks.length,...e.tamperedAt!==void 0?{tamperedAt:e.tamperedAt}:{},...e.tamperReason?{tamperReason:e.tamperReason}:{}}}function $(e){return e.forkDetails.filter(r=>!r.acknowledged).map(({id:r,parentId:n,prevHash:s,actionHash:c})=>({id:r,parentId:n,prevHash:s,actionHash:c}))}function x(e,r){let n=new Set,s=e.prepare("SELECT prev_hash FROM witness_chain UNION ALL SELECT prev_hash FROM witness_chain_archive").pluck().iterate();for(let t of s)n.add(t);let c=[],a=new Set;for(let t of["witness_chain","witness_chain_archive"]){let f=e.prepare(`SELECT * FROM ${t} ORDER BY id ASC`).iterate();for(let o of f){if(o.id===r||a.has(o.id))continue;a.add(o.id);let i=A(o);!n.has(b(i))&&!n.has(R(i))&&c.push({id:o.id,hash:y(o)})}}return c.sort((t,f)=>t.id-f.id)}function S(e){return`Refusing to repair: tampering detected at id=${e.tamperedAt} (${e.tamperReason}). Only accidental forks can be re-anchored; restore from a backup and investigate.`}function M(e){let r=`${e}.bak-${Math.floor(Date.now()/1e3)}`;if(!v(r))return r;let n=1;for(;v(`${r}-${n}`);)n++;return`${r}-${n}`}function W(e,r){let n=M(e),s=g(e,{readonly:!0,fileMustExist:!0});try{s.prepare("VACUUM INTO ?").run(n)}finally{s.close()}let c=g(n,{readonly:!0,fileMustExist:!0});try{let a=c.pragma("integrity_check",{simple:!0});if(a!=="ok")throw new Error(`backup integrity_check failed: ${String(a)}`);let t=l(c);if(t.live!==r.live||t.archive!==r.archive)throw new Error(`backup holds ${JSON.stringify(t)} witness rows, expected ${JSON.stringify(r)}`)}finally{c.close()}return n}async function L(e,r){let n=r.dryRun===!0,s=new E(e,r.keyManager??void 0);await s.initialize();let c=l(e),a=s.verify(w),t={dryRun:n,before:O(a),rowsBefore:c,rowsAfter:c};if(a.tampered)return{...t,action:"refused",message:S(a),forksAcknowledged:[]};let f=$(a);if(f.length===0){let d=a.forks.length>0?`Nothing to repair: all ${a.forks.length} fork(s) are already re-anchored.`:"Nothing to repair: the audit chain has no forks.";return{...t,action:"none",message:d,forksAcknowledged:[]}}if(n)return{...t,action:"would-reanchor",forksAcknowledged:f.map(d=>d.id),message:`Dry run: would back up the database and append a CHAIN_REANCHOR entry acknowledging ${f.length} fork(s). Nothing was written.`};let o,i=e.transaction(()=>{let d=l(e),p=s.verify(w);if(p.tampered)return{kind:"refused",check:p};let h=$(p);if(h.length===0)return{kind:"noop"};o=W(r.dbPath,d);let m=e.prepare("SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1").get(),T=s.append("CHAIN_REANCHOR",{reason:"fork-repair",issue:"https://github.com/proffesor-for-testing/agentic-qe/issues/753",note:"Acknowledges accidental forks from pre-3.14.5 concurrent appends; no rows were changed.",forkCount:h.length,forks:h,pins:x(e,m.id),verifiedTipId:m.id,verifiedTipHash:y(m),entriesChecked:p.entriesChecked,rows:d,backup:I(o)},r.actor??"aqe-audit-repair"),k=l(e);if(k.live!==d.live+1||k.archive!==d.archive)throw new Error(`row-count check failed: before ${JSON.stringify(d)}, after ${JSON.stringify(k)}`);return{kind:"reanchored",entry:T,forks:h,txAfter:k}}).immediate();if(i.kind==="refused")return{...t,action:"refused",message:S(i.check),forksAcknowledged:[]};if(i.kind==="noop")return{...t,action:"none",message:"Nothing to repair (another process re-anchored first).",forksAcknowledged:[]};let u=s.verify(w),N=u.valid&&!u.tampered;return{...t,action:"reanchored",after:O(u),rowsAfter:i.txAfter,forksAcknowledged:i.forks.map(d=>d.id),reanchorId:i.entry.id,backupPath:o,message:N?`Re-anchored ${i.forks.length} fork(s) with CHAIN_REANCHOR id=${i.entry.id}; chain now ${u.status}. Backup: ${o}`:`Appended CHAIN_REANCHOR id=${i.entry.id}, but the chain still verifies as ${u.status}. Backup: ${o}`}}export{L as repairWitnessChainForks};
|
package/dist/cli/chunks/{witness-chain-verifier-GUTC3W7N.js → witness-chain-verifier-N4CW7FZX.js}
RENAMED
|
@@ -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{g as a,h as b,i as c,j as d,k as e}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.13");process.exit(0)}
|
|
2
|
+
import{g as a,h as b,i as c,j as d,k as e}from"./chunk-XEAEYC6Y.js";import"./chunk-ZAKQLAHT.js";export{a as CHAIN_REANCHOR_ACTION,c as WitnessChainVerifier,b as ownHash,e as tableExists,d as verifyWitnessChain};
|
|
@@ -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}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.13");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-GHM6MQNK.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-ZAKQLAHT.js";export{a as WitnessKeyManager,c as _resetDefaultWitnessKeyManagerForTests,b as getDefaultWitnessKeyManager};
|
|
@@ -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 $}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.13");process.exit(0)}
|
|
2
|
+
import{b as $}from"./chunk-G77ERMUD.js";import"./chunk-E56B6IDX.js";import{a as k,b as W,c as b,g as C}from"./chunk-NU3W5WFT.js";import"./chunk-5MDERQH3.js";import{c as v}from"./chunk-VTOBUZL6.js";import"./chunk-NURIILUB.js";import"./chunk-3Y2ROSCL.js";import"./chunk-ZAKQLAHT.js";import{Command as D}from"commander";import o from"chalk";function O(f,i){let h=f.indexOf("=");return h>0&&(i[f.substring(0,h)]=f.substring(h+1)),i}function V(f,i,h){let m=new D("workflow").description("Manage QE workflows and pipelines (ADR-041)");return m.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(n,t)=>{if(!await h())return;let c=(await import("path")).resolve(n);try{console.log(o.blue(`
|
|
3
3
|
Running workflow from: ${n}
|
|
4
4
|
`));let l=k(c);if(!l.success||!l.workflow){console.log(o.red("Failed to parse pipeline:"));for(let d of l.errors)console.log(o.red(` ${d}`));await i(1)}let u={...v(t.params,"params")};if(l.pipeline){for(let d of l.pipeline.stages)if(d.params)for(let[y,p]of Object.entries(d.params))u[y]=p}if(!f.workflowOrchestrator.getWorkflow(l.workflow.id)){let d=f.workflowOrchestrator.registerWorkflow(l.workflow);d.success||(console.log(o.red(`Failed to register workflow: ${d.error.message}`)),await i(1))}let g=await f.workflowOrchestrator.executeWorkflow(l.workflow.id,u);if(!g.success){console.log(o.red(`Failed to start workflow: ${g.error.message}`)),await i(1);return}let a=g.value;if(console.log(o.cyan(` Execution ID: ${a}`)),console.log(o.gray(` Workflow: ${l.workflow.name}`)),console.log(o.gray(` Stages: ${l.workflow.steps.length}`)),console.log(""),t.watch){console.log(o.blue(`Workflow Progress:
|
|
5
5
|
`));let d,y=Date.now();for(;;){let w=f.workflowOrchestrator.getWorkflowStatus(a);if(!w)break;if(!d||d.progress!==w.progress||d.status!==w.status||JSON.stringify(d.currentSteps)!==JSON.stringify(w.currentSteps)){process.stdout.write("\r\x1B[K");let S="\u2588".repeat(Math.floor(w.progress/5))+"\u2591".repeat(20-Math.floor(w.progress/5)),R=w.status==="completed"?o.green:w.status==="failed"?o.red:w.status==="running"?o.yellow:o.gray;console.log(` [${S}] ${w.progress}% - ${R(w.status)}`),w.currentSteps.length>0&&t.verbose&&console.log(o.gray(` Running: ${w.currentSteps.join(", ")}`)),d=w}if(w.status==="completed"||w.status==="failed"||w.status==="cancelled")break;await new Promise(S=>setTimeout(S,500))}let p=f.workflowOrchestrator.getWorkflowStatus(a);if(p){console.log("");let w=p.duration||Date.now()-y;p.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(w)}`)),console.log(o.gray(` Completed: ${p.completedSteps.length} stages`)),p.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${p.skippedSteps.length} stages`))):p.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${p.error}`)),console.log(o.gray(` Failed stages: ${p.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${p.status}`))}console.log(""),await i(p?.status==="completed"?0:1);return}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${a}' to check progress`));console.log(""),await i(0)}catch(l){console.error(o.red(`
|
|
@@ -35,10 +35,10 @@ Workflow cancelled: ${n}
|
|
|
35
35
|
`)):console.log(o.red(`
|
|
36
36
|
Failed to cancel workflow: ${t.error.message}
|
|
37
37
|
`)),await i(t.success?0:1)}catch(t){console.error(o.red(`
|
|
38
|
-
Failed to cancel workflow:`),t),await i(1)}}),m.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:n}=await import("./browser-workflow-
|
|
38
|
+
Failed to cancel workflow:`),t),await i(1)}}),m.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:n}=await import("./browser-workflow-G6IASEAP.js"),e=await new n().invoke({});if(e.success&&e.data){console.log(o.blue(`
|
|
39
39
|
Browser Workflow Templates:
|
|
40
40
|
`));for(let c of e.data.availableTemplates)console.log(` ${o.cyan(c)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await i(0)}catch(n){console.error(o.red(`
|
|
41
|
-
Failed:`),n),await i(1)}}),m.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",O,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(n,t)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-
|
|
41
|
+
Failed:`),n),await i(1)}}),m.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",O,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(n,t)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-G6IASEAP.js"),{writeOutput:c,toJSON:l}=await import("./ci-output-JTCLLNOQ.js"),s=new e,u={variables:t.var||{}};if(t.yaml)u.workflowYaml=t.yaml;else if(n)if(n.endsWith(".yaml")||n.endsWith(".yml")){let g=await import("fs"),d=(await import("path")).resolve(n);g.existsSync(d)||(console.log(o.red(`
|
|
42
42
|
File not found: ${d}
|
|
43
43
|
`)),await i(1)),u.workflowYaml=g.readFileSync(d,"utf-8")}else u.templateName=n;else console.log(o.red(`
|
|
44
44
|
Provide a template name or --yaml. Use "workflow browser-list" to see templates.
|
|
@@ -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.13");process.exit(0)}
|
|
2
|
+
import{a,b,d as c,e as d}from"./chunk-HQZGPJYG.js";import"./chunk-X2Z7F4EU.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-H4H2YSFH.js";import"./chunk-NURIILUB.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
|
|
@@ -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,q,r,s,t,u,v as L,w as M,x as N}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.13");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-HZ5NXFXH.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-YQFLQE53.js";import"./chunk-3Y7TJFHU.js";import"./chunk-7CMTY45A.js";import"./chunk-VTOBUZL6.js";import"./chunk-KDNJ4F3P.js";import"./chunk-JRRXCODW.js";import"./chunk-XNBOGCF3.js";import"./chunk-KV4T4MXK.js";import"./chunk-TWDW32W2.js";import"./chunk-AQSVJNEH.js";import"./chunk-OCAEXYFA.js";import"./chunk-DVGRPK7A.js";import"./chunk-TOQWL2ZF.js";import"./chunk-UT2VZ33P.js";import"./chunk-GB6HBNH2.js";import"./chunk-UOC3O6RP.js";import"./chunk-NT4DBXSX.js";import"./chunk-WOCGL4QP.js";import"./chunk-J2ZIFFM6.js";import"./chunk-RF7HWBHN.js";import"./chunk-DNDL7SOS.js";import"./chunk-3Y2ROSCL.js";import"./chunk-WO274FRI.js";import"./chunk-ZAKQLAHT.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
|
package/dist/cli/commands/ci.js
CHANGED
|
@@ -86,6 +86,13 @@ async function executePhase(phase, context, outputDir, phaseIndex, coverageThres
|
|
|
86
86
|
const pct = (v) => (v === null || v === undefined ? 'n/a' : `${Math.round(v * 10) / 10}%`);
|
|
87
87
|
switch (outcome.kind) {
|
|
88
88
|
case 'measured': {
|
|
89
|
+
if (outcome.insufficientEvidence.length > 0) {
|
|
90
|
+
// #1154: target files missing from the report, or a stale report.
|
|
91
|
+
status = 'warning';
|
|
92
|
+
phaseExitCode = coverageExitCode(outcome, threshold);
|
|
93
|
+
summary = `INSUFFICIENT EVIDENCE — ${outcome.insufficientEvidence.join('; ')}`;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
89
96
|
status = outcome.verdict.meetsThreshold ? 'passed' : 'warning';
|
|
90
97
|
summary = `Line: ${pct(outcome.summary.line)}, Branch: ${pct(outcome.summary.branch)} — ` +
|
|
91
98
|
`${outcome.verdict.meetsThreshold ? 'meets' : 'below'} ${threshold}% threshold (measured)`;
|
|
@@ -148,6 +148,10 @@ Examples:
|
|
|
148
148
|
writeOutput(toJSON(search), options.output);
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
|
+
// #1224: say when no embedding model ranked the results.
|
|
152
|
+
if (search.mode === 'lexical-only') {
|
|
153
|
+
console.log(chalk.yellow(` Text match only (no vector search): ${search.reason}\n`));
|
|
154
|
+
}
|
|
151
155
|
console.log(chalk.green(`Found ${search.total} results (${search.searchTime}ms)\n`));
|
|
152
156
|
for (const r of search.results) {
|
|
153
157
|
const filePath = r.file.replace(process.cwd() + '/', '');
|
|
@@ -158,7 +162,9 @@ Examples:
|
|
|
158
162
|
}
|
|
159
163
|
}
|
|
160
164
|
else {
|
|
165
|
+
// #1224: a search that could not run (e.g. nothing indexed) is a failed command.
|
|
161
166
|
console.log(chalk.red(`Failed: ${result.error?.message || 'Unknown error'}`));
|
|
167
|
+
return await cleanupAndExit(1);
|
|
162
168
|
}
|
|
163
169
|
}
|
|
164
170
|
else if (action === 'impact') {
|
|
@@ -149,7 +149,13 @@ missing coverage evidence.`)
|
|
|
149
149
|
console.log(` Branches: ${color(summary.branch)(fmt(summary.branch))}`);
|
|
150
150
|
console.log(` Functions: ${color(summary.function)(fmt(summary.function))}`);
|
|
151
151
|
console.log(` Statements: ${color(summary.statement)(fmt(summary.statement))}`);
|
|
152
|
-
if (outcome.kind === 'measured') {
|
|
152
|
+
if (outcome.kind === 'measured' && outcome.insufficientEvidence.length > 0) {
|
|
153
|
+
// #1154: figures over part of the target, or from a stale report, are not a pass.
|
|
154
|
+
console.log(`\n Threshold: ${chalk.red(`Not met (${threshold}%) — INSUFFICIENT EVIDENCE`)}`);
|
|
155
|
+
for (const reason of outcome.insufficientEvidence)
|
|
156
|
+
console.log(chalk.yellow(` - ${reason}`));
|
|
157
|
+
}
|
|
158
|
+
else if (outcome.kind === 'measured') {
|
|
153
159
|
console.log(`\n Threshold: ${outcome.verdict.meetsThreshold ? chalk.green(`Met (${threshold}%)`) : chalk.red(`Not met (${threshold}%)`)}`);
|
|
154
160
|
}
|
|
155
161
|
else {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - `aqe fleet run` command
|
|
3
|
+
*
|
|
4
|
+
* Runs a coordinated fleet operation (test|analyze|scan) on real domain
|
|
5
|
+
* handlers and judges what they returned (#1125). The target's files are
|
|
6
|
+
* split across the workers (#1146), and `--format json` prints every worker's
|
|
7
|
+
* result as the handler returned it.
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import type { CLIContext } from '../handlers/interfaces.js';
|
|
11
|
+
export declare function registerFleetRunCommand(fleetCmd: Command, context: CLIContext, cleanupAndExit: (code: number) => Promise<never>, ensureInitialized: () => Promise<boolean>): void;
|
|
12
|
+
//# sourceMappingURL=fleet-run.d.ts.map
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - `aqe fleet run` command
|
|
3
|
+
*
|
|
4
|
+
* Runs a coordinated fleet operation (test|analyze|scan) on real domain
|
|
5
|
+
* handlers and judges what they returned (#1125). The target's files are
|
|
6
|
+
* split across the workers (#1146), and `--format json` prints every worker's
|
|
7
|
+
* result as the handler returned it.
|
|
8
|
+
*/
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import { FleetProgressManager } from '../utils/progress.js';
|
|
11
|
+
import { FLEET_OPERATIONS, planFleetOperation } from '../utils/fleet-operation.js';
|
|
12
|
+
import { judgeFleetRun, reportFleetVerdict } from '../utils/fleet-result.js';
|
|
13
|
+
import { shardFleetPayload } from '../utils/fleet-shard.js';
|
|
14
|
+
import { writeOutput, toJSON } from '../utils/ci-output.js';
|
|
15
|
+
/** How long a worker waits for its task to reach a terminal state. */
|
|
16
|
+
const TASK_TIMEOUT_MS = 60000;
|
|
17
|
+
const POLL_INTERVAL_MS = 250;
|
|
18
|
+
/** JSON output draws no progress bars on stdout. */
|
|
19
|
+
const SILENT_PROGRESS = {
|
|
20
|
+
start: () => { }, addAgent: () => { }, updateAgent: () => { }, completeAgent: () => { }, stop: () => { },
|
|
21
|
+
};
|
|
22
|
+
/** Submit one worker's task and wait for its terminal result. */
|
|
23
|
+
async function runWorkerTask({ queen, type, domain, payload }) {
|
|
24
|
+
const submitted = await queen.submitTask({ type, priority: 'p1', targetDomains: [domain], payload, timeout: TASK_TIMEOUT_MS });
|
|
25
|
+
if (!submitted.success)
|
|
26
|
+
throw submitted.error;
|
|
27
|
+
// Submission is only an acknowledgement. Keep the process alive until the
|
|
28
|
+
// domain reports a terminal result or the task expires.
|
|
29
|
+
const deadline = Date.now() + TASK_TIMEOUT_MS;
|
|
30
|
+
while (Date.now() < deadline) {
|
|
31
|
+
const task = queen.getTaskStatus(submitted.value);
|
|
32
|
+
if (!task)
|
|
33
|
+
throw new Error(`Task status unavailable: ${submitted.value}`);
|
|
34
|
+
if (task.status === 'completed')
|
|
35
|
+
return task.result;
|
|
36
|
+
if (task.status === 'failed' || task.status === 'cancelled')
|
|
37
|
+
throw new Error(task.error || `Task ${task.status}`);
|
|
38
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`Task timed out: ${submitted.value}`);
|
|
41
|
+
}
|
|
42
|
+
function parseParallel(value) {
|
|
43
|
+
if (value === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
const count = Number(value);
|
|
46
|
+
if (!Number.isSafeInteger(count) || count < 1)
|
|
47
|
+
throw new Error('--parallel must be a positive integer');
|
|
48
|
+
return count;
|
|
49
|
+
}
|
|
50
|
+
export function registerFleetRunCommand(fleetCmd, context, cleanupAndExit, ensureInitialized) {
|
|
51
|
+
fleetCmd
|
|
52
|
+
.command('run')
|
|
53
|
+
.description('Run a coordinated fleet operation')
|
|
54
|
+
.argument('<operation>', 'Operation type (test|analyze|scan)')
|
|
55
|
+
.option('-t, --target <path>', 'Target path', '.')
|
|
56
|
+
.option('--parallel <count>', 'Workers to split the target\'s files across (default 4; analyze runs as one task)')
|
|
57
|
+
.option('-F, --format <format>', 'Output format (text|json)', 'text')
|
|
58
|
+
.option('-o, --output <path>', 'Write output to file')
|
|
59
|
+
.action(async (operation, options) => {
|
|
60
|
+
const json = options.format === 'json';
|
|
61
|
+
const fail = async (error) => {
|
|
62
|
+
if (json)
|
|
63
|
+
writeOutput(toJSON({ operation, target: options.target, status: 'refused', error }), options.output);
|
|
64
|
+
else
|
|
65
|
+
console.error(chalk.red(`\n Operation '${operation}' cannot run: ${error}`));
|
|
66
|
+
return cleanupAndExit(1);
|
|
67
|
+
};
|
|
68
|
+
if (!await ensureInitialized())
|
|
69
|
+
return cleanupAndExit(1);
|
|
70
|
+
try {
|
|
71
|
+
if (options.format !== 'text' && !json)
|
|
72
|
+
throw new Error(`Unsupported format: ${options.format} (text|json)`);
|
|
73
|
+
const requested = parseParallel(options.parallel);
|
|
74
|
+
if (!FLEET_OPERATIONS.includes(operation)) {
|
|
75
|
+
throw new Error(`Unsupported operation: ${operation}`);
|
|
76
|
+
}
|
|
77
|
+
const op = operation;
|
|
78
|
+
// #1125: each operation runs a real domain handler with the input it
|
|
79
|
+
// needs, taken from the target; without that input it is refused.
|
|
80
|
+
const plan = await planFleetOperation(op, options.target);
|
|
81
|
+
if (!plan.success)
|
|
82
|
+
return fail(plan.error);
|
|
83
|
+
const { domain, payload } = plan.task;
|
|
84
|
+
const taskType = plan.task.type;
|
|
85
|
+
// #1081: refuse an operation whose task no domain plugin executes,
|
|
86
|
+
// instead of submitting work that can only fail at dispatch.
|
|
87
|
+
const executable = context.queen.validateTaskExecutable(taskType, [domain]);
|
|
88
|
+
if (!executable.success)
|
|
89
|
+
return fail(executable.error.message);
|
|
90
|
+
// #1146: each worker handles its own share of the target's files.
|
|
91
|
+
const shards = shardFleetPayload(op, payload, requested);
|
|
92
|
+
const workers = shards.payloads.map((shardPayload, i) => ({
|
|
93
|
+
id: `${operation}-agent-${i + 1}`,
|
|
94
|
+
name: `${operation}-worker-${i + 1}`,
|
|
95
|
+
files: shards.files[i],
|
|
96
|
+
payload: { ...shardPayload, target: options.target, workerId: `${operation}-agent-${i + 1}` },
|
|
97
|
+
}));
|
|
98
|
+
if (!json) {
|
|
99
|
+
console.log(chalk.blue(`\n Fleet Operation: ${operation}\n`));
|
|
100
|
+
if (shards.note)
|
|
101
|
+
console.log(chalk.yellow(` Note: ${shards.note}`));
|
|
102
|
+
}
|
|
103
|
+
const progress = json ? SILENT_PROGRESS : new FleetProgressManager({
|
|
104
|
+
title: `${operation.charAt(0).toUpperCase() + operation.slice(1)} Progress`,
|
|
105
|
+
showEta: true,
|
|
106
|
+
});
|
|
107
|
+
progress.start(workers.length);
|
|
108
|
+
for (const w of workers)
|
|
109
|
+
progress.addAgent({ id: w.id, name: w.name, status: 'pending', progress: 0 });
|
|
110
|
+
const results = await Promise.all(workers.map(async (w) => {
|
|
111
|
+
progress.updateAgent(w.id, 0, { status: 'running' });
|
|
112
|
+
const run = { id: w.id, name: w.name, files: w.files };
|
|
113
|
+
try {
|
|
114
|
+
const result = await runWorkerTask({ queen: context.queen, type: taskType, domain, payload: w.payload });
|
|
115
|
+
progress.completeAgent(w.id, true);
|
|
116
|
+
return { ...run, success: true, result };
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
120
|
+
if (!json)
|
|
121
|
+
console.error(chalk.red(` ${w.name}: ${message}`));
|
|
122
|
+
progress.completeAgent(w.id, false);
|
|
123
|
+
return { ...run, success: false, result: undefined, error: message };
|
|
124
|
+
}
|
|
125
|
+
}));
|
|
126
|
+
const verdict = judgeFleetRun(op, results, plan.task.insufficientEvidence);
|
|
127
|
+
// #1168: the completion line only says "successfully" when the verdict passes.
|
|
128
|
+
progress.stop({ verdictFailed: !verdict.passed });
|
|
129
|
+
if (json) {
|
|
130
|
+
writeOutput(toJSON({
|
|
131
|
+
operation,
|
|
132
|
+
target: options.target,
|
|
133
|
+
status: verdict.passed ? 'passed' : 'failed',
|
|
134
|
+
verdict: { passed: verdict.passed, reasons: verdict.reasons },
|
|
135
|
+
...(verdict.summary ? { summary: verdict.summary.lines } : {}),
|
|
136
|
+
...(plan.task.insufficientEvidence ? { insufficientEvidence: plan.task.insufficientEvidence } : {}),
|
|
137
|
+
...(shards.note ? { note: shards.note } : {}),
|
|
138
|
+
combined: verdict.combined,
|
|
139
|
+
workers: results.map(({ id, files, success, result, error }) => ({
|
|
140
|
+
id, files, status: success ? 'completed' : 'failed', ...(error ? { error } : { result }),
|
|
141
|
+
})),
|
|
142
|
+
}), options.output);
|
|
143
|
+
return cleanupAndExit(verdict.passed ? 0 : 1);
|
|
144
|
+
}
|
|
145
|
+
const failed = results.filter(r => !r.success).length;
|
|
146
|
+
console.log(chalk.blue('\n Operation Summary:'));
|
|
147
|
+
console.log(chalk.gray(` Operation: ${operation}`));
|
|
148
|
+
console.log(chalk.gray(` Target: ${options.target}`));
|
|
149
|
+
const split = shards.files.map(f => f.length);
|
|
150
|
+
if (split.some(n => n > 0)) {
|
|
151
|
+
console.log(chalk.gray(` Workers: ${results.length}, files per worker: ${split.join(', ')}`));
|
|
152
|
+
}
|
|
153
|
+
console.log(chalk.gray(` Completed: ${results.length - failed}`));
|
|
154
|
+
if (failed > 0)
|
|
155
|
+
console.log(chalk.red(` Failed: ${failed}`));
|
|
156
|
+
// #1125 review: a completed task is not a passed check.
|
|
157
|
+
const passed = reportFleetVerdict(op, results, undefined, plan.task.insufficientEvidence);
|
|
158
|
+
console.log('');
|
|
159
|
+
await cleanupAndExit(passed ? 0 : 1);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (json) {
|
|
163
|
+
writeOutput(toJSON({
|
|
164
|
+
operation, target: options.target, status: 'error',
|
|
165
|
+
error: error instanceof Error ? error.message : String(error),
|
|
166
|
+
}), options.output);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
console.error(chalk.red('\n Fleet operation failed:'), error);
|
|
170
|
+
}
|
|
171
|
+
await cleanupAndExit(1);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=fleet-run.js.map
|
|
@@ -16,8 +16,7 @@ import { createPersistentScheduler } from '../scheduler/index.js';
|
|
|
16
16
|
import { integrateCodeIntelligence } from '../../init/fleet-integration.js';
|
|
17
17
|
import { runFleetInitWizard } from '../wizards/fleet-wizard.js';
|
|
18
18
|
import { FleetProgressManager, createTimedSpinner } from '../utils/progress.js';
|
|
19
|
-
import {
|
|
20
|
-
import { reportFleetVerdict } from '../utils/fleet-result.js';
|
|
19
|
+
import { registerFleetRunCommand } from './fleet-run.js';
|
|
21
20
|
import { writeOutput, toJSON } from '../utils/ci-output.js';
|
|
22
21
|
export function createFleetCommand(context, cleanupAndExit, ensureInitialized, registerDomainWorkflowActions) {
|
|
23
22
|
const fleetCmd = new Command('fleet')
|
|
@@ -215,121 +214,7 @@ export function createFleetCommand(context, cleanupAndExit, ensureInitialized, r
|
|
|
215
214
|
await cleanupAndExit(1);
|
|
216
215
|
}
|
|
217
216
|
});
|
|
218
|
-
fleetCmd
|
|
219
|
-
.command('run')
|
|
220
|
-
.description('Run a coordinated fleet operation')
|
|
221
|
-
.argument('<operation>', 'Operation type (test|analyze|scan)')
|
|
222
|
-
.option('-t, --target <path>', 'Target path', '.')
|
|
223
|
-
.option('--parallel <count>', 'Number of parallel agents', '4')
|
|
224
|
-
.action(async (operation, options) => {
|
|
225
|
-
if (!await ensureInitialized())
|
|
226
|
-
return cleanupAndExit(1);
|
|
227
|
-
try {
|
|
228
|
-
const parallelCount = Number(options.parallel);
|
|
229
|
-
if (!Number.isSafeInteger(parallelCount) || parallelCount < 1) {
|
|
230
|
-
throw new Error('--parallel must be a positive integer');
|
|
231
|
-
}
|
|
232
|
-
if (!FLEET_OPERATIONS.includes(operation)) {
|
|
233
|
-
throw new Error(`Unsupported operation: ${operation}`);
|
|
234
|
-
}
|
|
235
|
-
// #1125: each operation runs a real domain handler with the input it
|
|
236
|
-
// needs, taken from the target; without that input it is refused.
|
|
237
|
-
const plan = await planFleetOperation(operation, options.target);
|
|
238
|
-
if (!plan.success) {
|
|
239
|
-
console.error(chalk.red(`\n Operation '${operation}' cannot run: ${plan.error}`));
|
|
240
|
-
return cleanupAndExit(1);
|
|
241
|
-
}
|
|
242
|
-
const { domain, payload } = plan.task;
|
|
243
|
-
const taskType = plan.task.type;
|
|
244
|
-
// #1081: refuse an operation whose task no domain plugin executes,
|
|
245
|
-
// instead of submitting work that can only fail at dispatch.
|
|
246
|
-
const executable = context.queen.validateTaskExecutable(taskType, [domain]);
|
|
247
|
-
if (!executable.success) {
|
|
248
|
-
console.error(chalk.red(`\n Operation '${operation}' cannot run: ${executable.error.message}`));
|
|
249
|
-
return cleanupAndExit(1);
|
|
250
|
-
}
|
|
251
|
-
console.log(chalk.blue(`\n Fleet Operation: ${operation}\n`));
|
|
252
|
-
const progress = new FleetProgressManager({
|
|
253
|
-
title: `${operation.charAt(0).toUpperCase() + operation.slice(1)} Progress`,
|
|
254
|
-
showEta: true,
|
|
255
|
-
});
|
|
256
|
-
progress.start(parallelCount);
|
|
257
|
-
const agentOperations = Array.from({ length: parallelCount }, (_, i) => {
|
|
258
|
-
const agentId = `${operation}-agent-${i + 1}`;
|
|
259
|
-
return {
|
|
260
|
-
id: agentId,
|
|
261
|
-
name: `${operation}-worker-${i + 1}`,
|
|
262
|
-
domain,
|
|
263
|
-
};
|
|
264
|
-
});
|
|
265
|
-
for (const op of agentOperations) {
|
|
266
|
-
progress.addAgent({
|
|
267
|
-
id: op.id,
|
|
268
|
-
name: op.name,
|
|
269
|
-
status: 'pending',
|
|
270
|
-
progress: 0,
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
const results = await Promise.all(agentOperations.map(async (op) => {
|
|
274
|
-
progress.updateAgent(op.id, 0, { status: 'running' });
|
|
275
|
-
try {
|
|
276
|
-
const taskResult = await context.queen.submitTask({
|
|
277
|
-
type: taskType,
|
|
278
|
-
priority: 'p1',
|
|
279
|
-
targetDomains: [domain],
|
|
280
|
-
payload: { ...payload, target: options.target, workerId: op.id },
|
|
281
|
-
timeout: 60000,
|
|
282
|
-
});
|
|
283
|
-
if (!taskResult.success) {
|
|
284
|
-
throw taskResult.error;
|
|
285
|
-
}
|
|
286
|
-
// Submission is only an acknowledgement. Keep the process alive
|
|
287
|
-
// until the domain reports a terminal result or the task expires.
|
|
288
|
-
const deadline = Date.now() + 60000;
|
|
289
|
-
while (Date.now() < deadline) {
|
|
290
|
-
const task = context.queen.getTaskStatus(taskResult.value);
|
|
291
|
-
if (!task)
|
|
292
|
-
throw new Error(`Task status unavailable: ${taskResult.value}`);
|
|
293
|
-
if (task.status === 'completed') {
|
|
294
|
-
progress.completeAgent(op.id, true);
|
|
295
|
-
return { id: op.id, success: true, result: task.result };
|
|
296
|
-
}
|
|
297
|
-
if (task.status === 'failed' || task.status === 'cancelled') {
|
|
298
|
-
throw new Error(task.error || `Task ${task.status}`);
|
|
299
|
-
}
|
|
300
|
-
await new Promise(resolve => setTimeout(resolve, 250));
|
|
301
|
-
}
|
|
302
|
-
throw new Error(`Task timed out: ${taskResult.value}`);
|
|
303
|
-
}
|
|
304
|
-
catch (error) {
|
|
305
|
-
console.error(chalk.red(` ${op.name}: ${error instanceof Error ? error.message : String(error)}`));
|
|
306
|
-
progress.completeAgent(op.id, false);
|
|
307
|
-
return { id: op.id, success: false, result: undefined };
|
|
308
|
-
}
|
|
309
|
-
}));
|
|
310
|
-
// #1168: a completed agent is not a passed check, so the completion
|
|
311
|
-
// line only says "successfully" when the verdict passes.
|
|
312
|
-
const verdictPassed = reportFleetVerdict(operation, results, () => { });
|
|
313
|
-
progress.stop({ verdictFailed: !verdictPassed });
|
|
314
|
-
const successful = results.filter(r => r.success).length;
|
|
315
|
-
const failed = results.filter(r => !r.success).length;
|
|
316
|
-
console.log(chalk.blue('\n Operation Summary:'));
|
|
317
|
-
console.log(chalk.gray(` Operation: ${operation}`));
|
|
318
|
-
console.log(chalk.gray(` Target: ${options.target}`));
|
|
319
|
-
console.log(chalk.gray(` Completed: ${successful}`));
|
|
320
|
-
if (failed > 0) {
|
|
321
|
-
console.log(chalk.red(` Failed: ${failed}`));
|
|
322
|
-
}
|
|
323
|
-
// #1125 review: a completed task is not a passed check.
|
|
324
|
-
const passed = reportFleetVerdict(operation, results);
|
|
325
|
-
console.log('');
|
|
326
|
-
await cleanupAndExit(passed ? 0 : 1);
|
|
327
|
-
}
|
|
328
|
-
catch (error) {
|
|
329
|
-
console.error(chalk.red('\n Fleet operation failed:'), error);
|
|
330
|
-
await cleanupAndExit(1);
|
|
331
|
-
}
|
|
332
|
-
});
|
|
217
|
+
registerFleetRunCommand(fleetCmd, context, cleanupAndExit, ensureInitialized);
|
|
333
218
|
fleetCmd
|
|
334
219
|
.command('status')
|
|
335
220
|
.description('Show fleet status with agent progress')
|
|
@@ -11,12 +11,13 @@ import { Command } from 'commander';
|
|
|
11
11
|
* - `sqlite`: an embedder produced the vector and SQLite holds it (vector
|
|
12
12
|
* search uses it now); only the ANN index (patterns.rvf) was not open in
|
|
13
13
|
* this process. It is ingested automatically the next time the index opens.
|
|
14
|
-
* - `pending`: no vector (no embedding runtime
|
|
15
|
-
* embedder
|
|
14
|
+
* - `pending`: no vector (no embedding runtime, or #1204: the configured
|
|
15
|
+
* embedder failed); text search only until an embedder works and
|
|
16
|
+
* `aqe learning backfill-embeddings` runs.
|
|
16
17
|
*/
|
|
17
18
|
export declare function describeVectorIndexState(pattern: {
|
|
18
19
|
embedding?: ArrayLike<number>;
|
|
19
|
-
}, indexUnavailableCause?: string): {
|
|
20
|
+
}, indexUnavailableCause?: string, embedderFailure?: string | null): {
|
|
20
21
|
vectorIndex: 'indexed' | 'sqlite' | 'pending';
|
|
21
22
|
notice?: string;
|
|
22
23
|
};
|
|
@@ -9,6 +9,7 @@ import { QE_HOOK_EVENTS } from '../../../learning/qe-hooks.js';
|
|
|
9
9
|
import { safeJsonParse } from '../../../shared/safe-json.js';
|
|
10
10
|
import { committedPendingIndexPatternId } from '../../../learning/pattern-mutation-error.js';
|
|
11
11
|
import { formatLearningOutcomes, formatPatternSuccessRate } from '../../../learning/usage-outcome.js';
|
|
12
|
+
import { redactEndpoint } from '../../../learning/embedder-endpoint-client.js';
|
|
12
13
|
import { getHooksSystem, printJson, printSuccess, printError, } from './hooks-shared.js';
|
|
13
14
|
/**
|
|
14
15
|
* How a learned pattern reached vector search, by cause (#981, review N1).
|
|
@@ -16,11 +17,28 @@ import { getHooksSystem, printJson, printSuccess, printError, } from './hooks-sh
|
|
|
16
17
|
* - `sqlite`: an embedder produced the vector and SQLite holds it (vector
|
|
17
18
|
* search uses it now); only the ANN index (patterns.rvf) was not open in
|
|
18
19
|
* this process. It is ingested automatically the next time the index opens.
|
|
19
|
-
* - `pending`: no vector (no embedding runtime
|
|
20
|
-
* embedder
|
|
20
|
+
* - `pending`: no vector (no embedding runtime, or #1204: the configured
|
|
21
|
+
* embedder failed); text search only until an embedder works and
|
|
22
|
+
* `aqe learning backfill-embeddings` runs.
|
|
21
23
|
*/
|
|
22
|
-
export function describeVectorIndexState(pattern, indexUnavailableCause) {
|
|
24
|
+
export function describeVectorIndexState(pattern, indexUnavailableCause, embedderFailure) {
|
|
23
25
|
const hasVector = Boolean(pattern.embedding && pattern.embedding.length > 0);
|
|
26
|
+
if (!hasVector && embedderFailure) {
|
|
27
|
+
const endpoint = process.env.AQE_EMBEDDER_ENDPOINT;
|
|
28
|
+
const embedder = endpoint
|
|
29
|
+
? `the configured embedding endpoint (AQE_EMBEDDER_ENDPOINT=${redactEndpoint(endpoint)})`
|
|
30
|
+
: 'the embedder';
|
|
31
|
+
// The embedder's own wording says "transformer" for the endpoint path too.
|
|
32
|
+
const reason = endpoint
|
|
33
|
+
? embedderFailure.replace(/^(Transformer initialization previously failed|Failed to initialize transformer model): /, '')
|
|
34
|
+
: embedderFailure;
|
|
35
|
+
return {
|
|
36
|
+
vectorIndex: 'pending',
|
|
37
|
+
notice: `Pattern stored in SQLite without a vector: ${embedder} failed: ${reason}. ` +
|
|
38
|
+
'Text search finds it now. Once the embedder works again, run ' +
|
|
39
|
+
'`aqe learning backfill-embeddings` to enable semantic search for it.',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
24
42
|
if (!hasVector) {
|
|
25
43
|
return {
|
|
26
44
|
vectorIndex: 'pending',
|
|
@@ -212,7 +230,7 @@ export function registerStatsHooks(hooks) {
|
|
|
212
230
|
if (!pattern) {
|
|
213
231
|
throw new Error('learn failed: no pattern returned');
|
|
214
232
|
}
|
|
215
|
-
const { vectorIndex, notice: pendingWarning } = describeVectorIndexState(pattern, indexCause);
|
|
233
|
+
const { vectorIndex, notice: pendingWarning } = describeVectorIndexState(pattern, indexCause, reasoningBank.getEmbedderFailure());
|
|
216
234
|
if (options.json) {
|
|
217
235
|
printJson({
|
|
218
236
|
success: true,
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
import { ICommandHandler, CLIContext } from './interfaces.js';
|
|
8
|
+
/**
|
|
9
|
+
* What a completed task's result says it could not check (#1135, #1052):
|
|
10
|
+
* `incompleteChecks`, or a top-level status of incomplete/failed with its reason.
|
|
11
|
+
*/
|
|
12
|
+
export declare function incompleteResultReasons(result: unknown): string[];
|
|
8
13
|
export declare class TaskHandler implements ICommandHandler {
|
|
9
14
|
readonly name = "task";
|
|
10
15
|
readonly description = "Manage QE tasks";
|
|
@@ -13,6 +13,20 @@ import { writeOutput, toJSON } from '../utils/ci-output.js';
|
|
|
13
13
|
// ============================================================================
|
|
14
14
|
// Task Handler
|
|
15
15
|
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* What a completed task's result says it could not check (#1135, #1052):
|
|
18
|
+
* `incompleteChecks`, or a top-level status of incomplete/failed with its reason.
|
|
19
|
+
*/
|
|
20
|
+
export function incompleteResultReasons(result) {
|
|
21
|
+
if (!result || typeof result !== 'object')
|
|
22
|
+
return [];
|
|
23
|
+
const { status, error, incompleteChecks } = result;
|
|
24
|
+
const reasons = Array.isArray(incompleteChecks) ? incompleteChecks.filter((reason) => typeof reason === 'string') : [];
|
|
25
|
+
if (reasons.length === 0 && (status === 'incomplete' || status === 'failed')) {
|
|
26
|
+
reasons.push(typeof error === 'string' ? error : `result status is ${status}`);
|
|
27
|
+
}
|
|
28
|
+
return reasons;
|
|
29
|
+
}
|
|
16
30
|
export class TaskHandler {
|
|
17
31
|
name = 'task';
|
|
18
32
|
description = 'Manage QE tasks';
|
|
@@ -149,6 +163,12 @@ export class TaskHandler {
|
|
|
149
163
|
const taskStatus = context.queen.getTaskStatus(taskId);
|
|
150
164
|
if (taskStatus) {
|
|
151
165
|
if (taskStatus.status === 'completed') {
|
|
166
|
+
// #1135, #1052: a result that reports an incomplete or failed check is not a clean run.
|
|
167
|
+
const incomplete = incompleteResultReasons(taskStatus.result);
|
|
168
|
+
if (incomplete.length > 0) {
|
|
169
|
+
waitSpinner.fail(`Task completed, but its result is incomplete: ${incomplete.join('; ')}`);
|
|
170
|
+
return this.cleanupAndExit(1);
|
|
171
|
+
}
|
|
152
172
|
waitSpinner.succeed('Task completed successfully');
|
|
153
173
|
completed = true;
|
|
154
174
|
}
|
|
@@ -185,6 +205,12 @@ export class TaskHandler {
|
|
|
185
205
|
async executeList(options, context) {
|
|
186
206
|
if (!await this.ensureInitialized())
|
|
187
207
|
return this.cleanupAndExit(1);
|
|
208
|
+
// #1117: an unvalidated filter silently matches nothing, which reads as
|
|
209
|
+
// "no tasks" rather than "bad flag". Parity with `task submit`.
|
|
210
|
+
if (options.priority !== undefined && !isPriority(options.priority)) {
|
|
211
|
+
console.error(chalk.red(`\n ${invalidPriorityMessage(options.priority)}\n`));
|
|
212
|
+
return this.cleanupAndExit(1);
|
|
213
|
+
}
|
|
188
214
|
try {
|
|
189
215
|
const tasks = context.queen.listTasks({
|
|
190
216
|
status: options.status,
|