agentic-qe 3.14.4 → 3.14.5
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 +93 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/audit/witness-chain.js +29 -22
- package/dist/cli/bundle.js +13 -10
- package/dist/cli/chunks/adapter-IYC62SXA.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-5PC7D2FW.js → agent-booster-wasm-EDNKP3SP.js} +2 -2
- package/dist/cli/chunks/{agent-handler-RDNTK4CA.js → agent-handler-V6CZ7Q6S.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-NAAMBWIR.js → agent-memory-branch-ZMD6ULC3.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-LLOU2IXD.js +2 -0
- package/dist/cli/chunks/{arena-HXTWJ5YY.js → arena-4UPAEHFT.js} +4 -4
- package/dist/cli/chunks/{arena-KXFHRWX4.js → arena-QLSBESC7.js} +2 -2
- package/dist/cli/chunks/{audit-YSGA7UWT.js → audit-CVZQMF55.js} +3 -3
- package/dist/cli/chunks/base-P3Z4IKCT.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-UICJZIDG.js → better-sqlite3-4DSBPDRH.js} +2 -2
- package/dist/cli/chunks/brain-handler-GBY4EZ4P.js +94 -0
- package/dist/cli/chunks/{branch-enumerator-SS7UNVIA.js → branch-enumerator-XYBVXCNO.js} +2 -2
- package/dist/cli/chunks/{browser-77GI6KBE.js → browser-32F6MREU.js} +2 -2
- package/dist/cli/chunks/browser-workflow-YYHQQ25X.js +2 -0
- package/dist/cli/chunks/{chunk-FGYMFUE2.js → chunk-2JGEZHWY.js} +2 -2
- package/dist/cli/chunks/{chunk-MOBNBMFW.js → chunk-2KJQ2UQE.js} +1 -1
- package/dist/cli/chunks/{chunk-C2WU3533.js → chunk-2OMLTYQK.js} +1 -1
- package/dist/cli/chunks/{chunk-CU46J64M.js → chunk-37TUN44F.js} +2 -2
- package/dist/cli/chunks/{chunk-Z3RHREWF.js → chunk-3DDXWYMO.js} +1 -1
- package/dist/cli/chunks/{chunk-Q5DO24IJ.js → chunk-3EZ5DR2R.js} +3 -3
- package/dist/cli/chunks/{chunk-WLG5AJ4N.js → chunk-3KDL6QDK.js} +2 -2
- package/dist/cli/chunks/{chunk-MTZH7AHC.js → chunk-3VIXOHMS.js} +1 -1
- package/dist/cli/chunks/{chunk-ISDMD6EU.js → chunk-3YUB5HER.js} +96 -96
- package/dist/cli/chunks/{chunk-CDKG6EI7.js → chunk-4FWTLJEP.js} +2 -2
- package/dist/cli/chunks/{chunk-HDSAM2RE.js → chunk-52L77RMG.js} +2 -2
- package/dist/cli/chunks/{chunk-MEGDYJPV.js → chunk-5D36YHS3.js} +4 -4
- package/dist/cli/chunks/{chunk-T6BVLVI5.js → chunk-5WOSWNDN.js} +1 -1
- package/dist/cli/chunks/{chunk-M2JBBZQB.js → chunk-67YV75XP.js} +2 -2
- package/dist/cli/chunks/{chunk-KHFNNVJA.js → chunk-6A44AOGN.js} +2 -2
- package/dist/cli/chunks/{chunk-IPR4QP3H.js → chunk-6CR4VQBQ.js} +2 -2
- package/dist/cli/chunks/{chunk-XRT2WRMS.js → chunk-6ITZZIQX.js} +2 -2
- package/dist/cli/chunks/{chunk-4OYFXLBK.js → chunk-6LKDHEBY.js} +2 -2
- package/dist/cli/chunks/{chunk-FLYOJOKN.js → chunk-6TU7FEMD.js} +1 -1
- package/dist/cli/chunks/{chunk-6QYNWR7U.js → chunk-6VAZAHQG.js} +2 -2
- package/dist/cli/chunks/{chunk-TWAWHOP7.js → chunk-73EI4C2E.js} +2 -2
- package/dist/cli/chunks/{chunk-5R3QL7WN.js → chunk-75QJ5HWE.js} +2 -2
- package/dist/cli/chunks/{chunk-Y3MW3YBC.js → chunk-7CD7PBHY.js} +2 -2
- package/dist/cli/chunks/chunk-7DETTOPZ.js +14 -0
- package/dist/cli/chunks/{chunk-KSKEF7LZ.js → chunk-7JZJJA7U.js} +3 -3
- package/dist/cli/chunks/{chunk-AIHDEEJO.js → chunk-7VFY7TUR.js} +2 -2
- package/dist/cli/chunks/chunk-7X7JYWT4.js +27 -0
- package/dist/cli/chunks/chunk-AF4XKLXO.js +2 -0
- package/dist/cli/chunks/{chunk-6KJABXAR.js → chunk-AFEDJ3RU.js} +2 -2
- package/dist/cli/chunks/{chunk-5SJHQ2CO.js → chunk-AMMQOV35.js} +2 -2
- package/dist/cli/chunks/{chunk-6VRA2QGL.js → chunk-BHFR2EXL.js} +1 -1
- package/dist/cli/chunks/{chunk-ZBAKA4YB.js → chunk-BJPL6THQ.js} +1 -1
- package/dist/cli/chunks/{chunk-DOTK76IJ.js → chunk-BXVAVFGU.js} +2 -2
- package/dist/cli/chunks/{chunk-MNW6QGNJ.js → chunk-BYG36QC5.js} +2 -2
- package/dist/cli/chunks/chunk-C3HQL6S4.js +2 -0
- package/dist/cli/chunks/{chunk-PZJOPURC.js → chunk-C3Z4VVHP.js} +5 -5
- package/dist/cli/chunks/{chunk-OULHKEVH.js → chunk-CPC7FN52.js} +2 -2
- package/dist/cli/chunks/{chunk-BFP7KO7P.js → chunk-CVMNJSCB.js} +2 -2
- package/dist/cli/chunks/{chunk-AUXFKCQL.js → chunk-CYE2TJFV.js} +2 -2
- package/dist/cli/chunks/{chunk-7D777LTF.js → chunk-CZO4BJG5.js} +2 -2
- package/dist/cli/chunks/{chunk-VD6QRULW.js → chunk-D6OUCB2H.js} +2 -2
- package/dist/cli/chunks/{chunk-6UWGMOND.js → chunk-DDCIYOGT.js} +2 -2
- package/dist/cli/chunks/{chunk-STJCATGN.js → chunk-DKUBQQFG.js} +2 -2
- package/dist/cli/chunks/{chunk-M4WJKGVK.js → chunk-DLF5BOJD.js} +1 -1
- package/dist/cli/chunks/{chunk-DA5K5754.js → chunk-DO6EI5KB.js} +1 -1
- package/dist/cli/chunks/{chunk-BDESSCVR.js → chunk-DPBRWP4J.js} +3 -3
- package/dist/cli/chunks/{chunk-HV2J7KKQ.js → chunk-E3W6XQ57.js} +2 -2
- package/dist/cli/chunks/{chunk-MDWCE7YW.js → chunk-E4AZXCT5.js} +1 -1
- package/dist/cli/chunks/{chunk-F3SBRQC6.js → chunk-E4EYPYR3.js} +2 -2
- package/dist/cli/chunks/{chunk-55RWDRJD.js → chunk-EFV4ADMO.js} +4 -4
- package/dist/cli/chunks/{chunk-5YPYDPBJ.js → chunk-ELBZON4V.js} +2 -2
- package/dist/cli/chunks/{chunk-PO3IXGMQ.js → chunk-EOR2UT72.js} +2 -2
- package/dist/cli/chunks/{chunk-EDJ3O7RH.js → chunk-F34OAHOM.js} +2 -2
- package/dist/cli/chunks/{chunk-XRYF6JV7.js → chunk-FUNGTIF2.js} +2 -2
- package/dist/cli/chunks/{chunk-EKQ673SA.js → chunk-G3L5L6YQ.js} +1 -1
- package/dist/cli/chunks/{chunk-NJBGXDQ7.js → chunk-G3W6BMVJ.js} +1 -1
- package/dist/cli/chunks/{chunk-CIZ5JPDC.js → chunk-GTKCGPJZ.js} +3 -3
- package/dist/cli/chunks/{chunk-QGIU2WRL.js → chunk-HBCGYMQU.js} +1 -1
- package/dist/cli/chunks/{chunk-V3QLFNA2.js → chunk-HSVKZ5KI.js} +4 -4
- package/dist/cli/chunks/{chunk-BGE6FOLM.js → chunk-HVU64GP5.js} +2 -2
- package/dist/cli/chunks/chunk-HVXJC3OC.js +2 -0
- package/dist/cli/chunks/{chunk-MIQTXNBG.js → chunk-HYEJJJY3.js} +1 -1
- package/dist/cli/chunks/{chunk-CLTMDCSE.js → chunk-I2NENQ44.js} +2 -2
- package/dist/cli/chunks/{chunk-SGYJ4NFZ.js → chunk-I6X3EGJI.js} +1 -1
- package/dist/cli/chunks/{chunk-BOARZKU3.js → chunk-IGBEJ4UJ.js} +2 -2
- package/dist/cli/chunks/{chunk-FWGOHAAB.js → chunk-IIAR5S7Q.js} +2 -2
- package/dist/cli/chunks/{chunk-DHJPWQBR.js → chunk-IJHCIXJC.js} +2 -2
- package/dist/cli/chunks/{chunk-UEM7ZF5K.js → chunk-IUDWEOLX.js} +2 -2
- package/dist/cli/chunks/chunk-IUHB5GVS.js +3 -0
- package/dist/cli/chunks/{chunk-M5QUBZY6.js → chunk-IYTLXUBO.js} +2 -2
- package/dist/cli/chunks/chunk-J27F4NSB.js +2 -0
- package/dist/cli/chunks/{chunk-G6T45OIC.js → chunk-J5UNP6W3.js} +2 -2
- package/dist/cli/chunks/{chunk-3UPAMMCB.js → chunk-JES6R5KP.js} +1 -1
- package/dist/cli/chunks/{chunk-ZBQY5GLF.js → chunk-JROVR6YS.js} +2 -2
- package/dist/cli/chunks/chunk-JSZ663MU.js +2 -0
- package/dist/cli/chunks/{chunk-PFR4G3DJ.js → chunk-JVQBWYHW.js} +2 -2
- package/dist/cli/chunks/{chunk-JBNEE5UH.js → chunk-K27SU3RE.js} +2 -2
- package/dist/cli/chunks/{chunk-JZ3ORVZ3.js → chunk-K7NJHFLZ.js} +3 -3
- package/dist/cli/chunks/{chunk-3VOQRIQM.js → chunk-KEY43ANX.js} +2 -2
- package/dist/cli/chunks/chunk-KIP6WZGV.js +13 -0
- package/dist/cli/chunks/{chunk-UDHKLT4C.js → chunk-KKHYJF5U.js} +1 -1
- package/dist/cli/chunks/{chunk-ZNEMGX5O.js → chunk-KLTP5IDB.js} +1 -1
- package/dist/cli/chunks/{chunk-ONII3572.js → chunk-KO4FNAUR.js} +3 -3
- package/dist/cli/chunks/{chunk-TSRSV3LD.js → chunk-KYA5LARK.js} +1 -1
- package/dist/cli/chunks/{chunk-2JW3BCGG.js → chunk-LSUILON7.js} +1 -1
- package/dist/cli/chunks/chunk-LULD4JV2.js +15 -0
- package/dist/cli/chunks/{chunk-FRH6VAUS.js → chunk-M23ZOZVY.js} +1 -1
- package/dist/cli/chunks/{chunk-R5NE6B2M.js → chunk-M5AEL7IS.js} +2 -2
- package/dist/cli/chunks/chunk-MI5Q55DG.js +65 -0
- package/dist/cli/chunks/chunk-N7H767TP.js +4 -0
- package/dist/cli/chunks/{chunk-RJCYCLZV.js → chunk-NQI7FWCS.js} +2 -2
- package/dist/cli/chunks/{chunk-CXQPR5MY.js → chunk-NRE4NAVA.js} +1 -1
- package/dist/cli/chunks/{chunk-ODKLFVYC.js → chunk-NU7UTXMP.js} +2 -2
- package/dist/cli/chunks/{chunk-MVPCNSPY.js → chunk-NVYBM3R4.js} +2 -2
- package/dist/cli/chunks/{chunk-MVNP7GIR.js → chunk-O3JTQ7N4.js} +1 -1
- package/dist/cli/chunks/{chunk-6CQN24ZK.js → chunk-OEIQTWQP.js} +1 -1
- package/dist/cli/chunks/{chunk-U5K45TFH.js → chunk-PSPKSUF6.js} +1 -1
- package/dist/cli/chunks/{chunk-CDHQFHRP.js → chunk-QIRL6B3C.js} +2 -2
- package/dist/cli/chunks/{chunk-OSLYSG3B.js → chunk-QRCIZFNK.js} +2 -2
- package/dist/cli/chunks/{chunk-BOZZYWCR.js → chunk-QWUXCG2L.js} +1 -1
- package/dist/cli/chunks/{chunk-HIYXCDEP.js → chunk-QYOGD2VW.js} +1 -1
- package/dist/cli/chunks/{chunk-A4FYONNU.js → chunk-QZMUXJHZ.js} +2 -2
- package/dist/cli/chunks/{chunk-3TW5W5LX.js → chunk-R6IU3EWP.js} +2 -2
- package/dist/cli/chunks/{chunk-3X3DJZJJ.js → chunk-R74ZKREV.js} +1 -1
- package/dist/cli/chunks/{chunk-HIVA55CJ.js → chunk-RD2VGOUH.js} +1 -1
- package/dist/cli/chunks/{chunk-TPGED2IF.js → chunk-RD6TEZ64.js} +2 -2
- package/dist/cli/chunks/{chunk-4MHXCAG2.js → chunk-RGGK6VZ7.js} +1 -1
- package/dist/cli/chunks/{chunk-UGVHCMUN.js → chunk-RIZVC4XY.js} +3 -3
- package/dist/cli/chunks/{chunk-R4VL6E65.js → chunk-RKOUXVZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-IFCLB7FJ.js → chunk-RP2ZKPYV.js} +1 -1
- package/dist/cli/chunks/{chunk-34WO57CW.js → chunk-SQF6HRXR.js} +1 -1
- package/dist/cli/chunks/{chunk-YNXS6CGV.js → chunk-SQKW3B6B.js} +1 -1
- package/dist/cli/chunks/{chunk-TDZ53WO2.js → chunk-SX4JLSLV.js} +2 -2
- package/dist/cli/chunks/{chunk-PAWXJ73E.js → chunk-TUSSPKRM.js} +1 -1
- package/dist/cli/chunks/{chunk-DFZCKIGY.js → chunk-TY5WC3FT.js} +3 -3
- package/dist/cli/chunks/{chunk-J6GNQS62.js → chunk-UDHVCKGA.js} +2 -2
- package/dist/cli/chunks/{chunk-CIKSHTEQ.js → chunk-UJWAWIRV.js} +4 -4
- package/dist/cli/chunks/{chunk-XJ7QNVI5.js → chunk-UKGXWW64.js} +3 -3
- package/dist/cli/chunks/{chunk-64PFWE2F.js → chunk-UMGFMKDW.js} +2 -2
- package/dist/cli/chunks/{chunk-DPFRKBOG.js → chunk-URVHZPWY.js} +2 -2
- package/dist/cli/chunks/{chunk-MCUJEZT6.js → chunk-UTBYJ4RF.js} +2 -2
- package/dist/cli/chunks/{chunk-HUWNIPZ5.js → chunk-VD5IO5EO.js} +1 -1
- package/dist/cli/chunks/{chunk-7ZIOFPL3.js → chunk-VTOVWHEM.js} +2 -2
- package/dist/cli/chunks/{chunk-SRKETSFF.js → chunk-W2XCZU62.js} +1 -1
- package/dist/cli/chunks/{chunk-CNG6GQEZ.js → chunk-WJHWH5D2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZJ26AQA5.js → chunk-WJTSY5MC.js} +1 -1
- package/dist/cli/chunks/{chunk-OCWWP5PL.js → chunk-WK7B4B6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-KPA7MZ6C.js → chunk-WLXK2KNU.js} +2 -2
- package/dist/cli/chunks/{chunk-ZBJ4XOOV.js → chunk-WOIGKU2N.js} +4 -4
- package/dist/cli/chunks/{chunk-ZZDIMOOV.js → chunk-WX6RRIGW.js} +2 -2
- package/dist/cli/chunks/{chunk-STM3UDNO.js → chunk-XEZIIQYJ.js} +2 -2
- package/dist/cli/chunks/{chunk-3QHGWY7T.js → chunk-XFPPERA2.js} +2 -2
- package/dist/cli/chunks/{chunk-VIHTL3U2.js → chunk-XLAUGSW7.js} +2 -2
- package/dist/cli/chunks/{chunk-XC7DYDSY.js → chunk-XQSIRBKT.js} +2 -2
- package/dist/cli/chunks/{chunk-GPLQ6DOK.js → chunk-XUR2M2WB.js} +2 -2
- package/dist/cli/chunks/{chunk-KCZR45PA.js → chunk-XZSMZHM2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZNPKDCZR.js → chunk-Y5L3ES4L.js} +2 -2
- package/dist/cli/chunks/{chunk-W7BWUTVV.js → chunk-YDFL445W.js} +2 -2
- package/dist/cli/chunks/{chunk-AWWNB2T7.js → chunk-YQGPQBCX.js} +2 -2
- package/dist/cli/chunks/{chunk-DAEFDCJ4.js → chunk-YXP6BKGS.js} +17 -17
- package/dist/cli/chunks/{chunk-OBAP2TXZ.js → chunk-ZBABIZ2D.js} +2 -2
- package/dist/cli/chunks/{chunk-CSU5NYOX.js → chunk-ZCWERUYB.js} +4 -4
- package/dist/cli/chunks/{ci-464KPQNP.js → ci-RACDAJMR.js} +2 -2
- package/dist/cli/chunks/{ci-output-I7FX2RSO.js → ci-output-EHRSZBKG.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-3FW237WW.js → circuit-breaker-GBV7M5XG.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-6JKMBPGU.js → claude-flow-setup-5LVJOFKP.js} +2 -2
- package/dist/cli/chunks/client-HUVFA5PF.js +2 -0
- package/dist/cli/chunks/{cline-installer-UWFHT6VY.js → cline-installer-W4NMXJSG.js} +2 -2
- package/dist/cli/chunks/{code-KQSUT3FS.js → code-JWXJMYXB.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-PABBNUSC.js → code-index-extractor-RVI2IFTM.js} +2 -2
- package/dist/cli/chunks/codex-installer-3BORJINH.js +14 -0
- package/dist/cli/chunks/{completions-7RWHAUAR.js → completions-A55NCTAO.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-XPOAF33E.js → complexity-analyzer-JCXHGGLY.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-V4F2FIZP.js → continuedev-installer-PUVFMGYW.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-JMICURQB.js → copilot-installer-4DCMYWHB.js} +2 -2
- package/dist/cli/chunks/core-handlers-UEXO3VAA.js +2 -0
- package/dist/cli/chunks/{cost-tracker-5OFHEYFJ.js → cost-tracker-5TV2GGKY.js} +2 -2
- package/dist/cli/chunks/{coverage-QKN57JDS.js → coverage-NNWM7TX3.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-ODU5IZD6.js +2 -0
- package/dist/cli/chunks/{cursor-installer-GBJ7YXSM.js → cursor-installer-4NCHGJGK.js} +2 -2
- package/dist/cli/chunks/{daemon-IAVSO6HK.js → daemon-QIKCXKWO.js} +4 -4
- package/dist/cli/chunks/{daemon-GKP7CMEK.js → daemon-T4JO4IXP.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-S225TCI7.js → dag-attention-scheduler-RPAAIDAD.js} +2 -2
- package/dist/cli/chunks/{detect-IUYH422U.js → detect-SBEEVDSN.js} +2 -2
- package/dist/cli/chunks/{dist-node-2YRE6A7C.js → dist-node-ZHI6NCSU.js} +2 -2
- package/dist/cli/chunks/{domain-handler-PL2TZC6H.js → domain-handler-LBC3GJ7Z.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-HCGLXKIT.js → domain-plugins-H6IZ5USZ.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-KQJRUPXA.js → domain-transfer-JZA5TMW3.js} +2 -2
- package/dist/cli/chunks/dream-HE3OX42F.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-AHTR7CRU.js +3 -0
- package/dist/cli/chunks/{eval-WCK7KNFN.js → eval-DZU2KISM.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-2MSQWSAR.js → experience-capture-middleware-5IQCWKSL.js} +4 -4
- package/dist/cli/chunks/{fast-paths-VYOSIBKF.js → fast-paths-2KLDUWCY.js} +2 -2
- package/dist/cli/chunks/{feature-flags-UJRHFBRX.js → feature-flags-7AC3XDZA.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WCFUKHNQ.js → feature-flags-N6UAEZY4.js} +2 -2
- package/dist/cli/chunks/{file-discovery-JDGL4ZWS.js → file-discovery-5SDIW4V2.js} +2 -2
- package/dist/cli/chunks/{fleet-ROXVMZ2F.js → fleet-ZIQCAZ2Y.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-NIO4ZCO3.js → gnn-wrapper-DUMBZJEV.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-PI42WD3C.js → heartbeat-handler-6HVM6ZMR.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-QUIFGGLX.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-42KB37KP.js +2 -0
- package/dist/cli/chunks/hnsw-index-T2PGO77J.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-YLC7SPK2.js → hnsw-legacy-bridge-5DRL5FLX.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-LG6OS3B7.js → hnswlib-node-GW67GTCL.js} +2 -2
- package/dist/cli/chunks/{hooks-WVALP5GX.js → hooks-QHH6FVO4.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-FRNWYRKH.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-GJEMW3EG.js → hypergraph-engine-7XDCCVG2.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-BLF6LXEV.js → hypergraph-handler-QHF7NOU5.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-A5QYOYBR.js +2 -0
- package/dist/cli/chunks/{init-handler-K25RWRYY.js → init-handler-5UIVOM7K.js} +6 -6
- package/dist/cli/chunks/init-wizard-XBU674YH.js +2 -0
- package/dist/cli/chunks/kernel-DV5MTNZD.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-BXN6WZ7G.js → kilocode-installer-TGGV6K5Q.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-PM362DLN.js → kiro-installer-4XYBHZWW.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-4ACGVJQK.js +2 -0
- package/dist/cli/chunks/{learning-CPERDDRG.js → learning-STE5W6BS.js} +3 -3
- package/dist/cli/chunks/{llm-router-GOAV5FPI.js → llm-router-NKF7J3RI.js} +4 -4
- package/dist/cli/chunks/llm-router-service-PSMASERT.js +2 -0
- package/dist/cli/chunks/{load-2BG6SHAK.js → load-B2T77UJQ.js} +2 -2
- package/dist/cli/chunks/load-test-MRUO2VPF.js +2 -0
- package/dist/cli/chunks/mcp-JGSFCEMH.js +2 -0
- package/dist/cli/chunks/{memory-4NHBYT6S.js → memory-WRFZKG56.js} +6 -6
- package/dist/cli/chunks/memory-backend-2MPGI6JW.js +2 -0
- package/dist/cli/chunks/memory-handlers-XT4HMITB.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-KCWSGCDT.js → multi-model-executor-26Q5BSVG.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-ATZLLK74.js → opencode-installer-J36EMQU7.js} +2 -2
- package/dist/cli/chunks/{orchestrator-RKB7XJRG.js → orchestrator-D5IFV65I.js} +18 -18
- package/dist/cli/chunks/pattern-null-store-TGWUL237.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-7VE4XDAI.js → pattern-usage-recorder-BVMTWI3E.js} +2 -2
- package/dist/cli/chunks/{pipeline-LQZSNDD2.js → pipeline-OWAHDUAQ.js} +2 -2
- package/dist/cli/chunks/platform-ANGBFWBV.js +2 -0
- package/dist/cli/chunks/{plugin-EJ6K2MGU.js → plugin-OO7ON2YW.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-OIHTKJMN.js → prime-radiant-advanced-wasm-HFG3BXWU.js} +2 -2
- package/dist/cli/chunks/project-root-LNOYVTYY.js +2 -0
- package/dist/cli/chunks/protocol-executor-GEVH5KD6.js +2 -0
- package/dist/cli/chunks/{protocol-handler-NRBROAU7.js → protocol-handler-CE3Q6LY4.js} +2 -2
- package/dist/cli/chunks/{prove-EJOGEGD3.js → prove-7XPN53PY.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DJ2JL6QB.js +2 -0
- package/dist/cli/chunks/{quality-E55UC73D.js → quality-TT23JRFX.js} +2 -2
- package/dist/cli/chunks/{quality-gate-OIQATNT3.js → quality-gate-PPPRP255.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-F7E3AS26.js +2 -0
- package/dist/cli/chunks/real-embeddings-EYNZIFJE.js +2 -0
- package/dist/cli/chunks/{ref-validation-OPO6J7OL.js → ref-validation-QQR64ZXD.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-ODY5KRWU.js → roocode-installer-UIGS7ZJD.js} +2 -2
- package/dist/cli/chunks/router-OZH3QSAU.js +2 -0
- package/dist/cli/chunks/routing-feedback-J2E3ADZB.js +2 -0
- package/dist/cli/chunks/{routing-handler-KQM6VWLC.js → routing-handler-6AENUIRG.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-U2GVV6PF.js → ruvector-commands-5AWMEV34.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-HK525Y5Y.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-Q7FB3BKR.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-NWRJ7C22.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-5ZRCGUI6.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-KMIHD3LP.js → rvf-store-integrity-ISKRP563.js} +2 -2
- package/dist/cli/chunks/safe-db-3OYEPVEH.js +2 -0
- package/dist/cli/chunks/schedule-AG4C2EIQ.js +2 -0
- package/dist/cli/chunks/scheduler-SQS2CZFZ.js +2 -0
- package/dist/cli/chunks/{security-P5NM353C.js → security-325A7FMB.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-LVIUOO4S.js → shared-rvf-adapter-NFL6QSZ6.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-2CSG7C4W.js → shared-rvf-dual-writer-THFDYS2Z.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-MAKDFSHC.js +2 -0
- package/dist/cli/chunks/standalone-memory-UD4MJ6GZ.js +2 -0
- package/dist/cli/chunks/{status-handler-6TU6O37R.js → status-handler-CPFTN4XL.js} +2 -2
- package/dist/cli/chunks/{structural-health-KBIJSTXJ.js → structural-health-2MG2IVBL.js} +2 -2
- package/dist/cli/chunks/{sync-LNHI5SB7.js → sync-EE4VVKOW.js} +2 -2
- package/dist/cli/chunks/{sync-UHOX6RJW.js → sync-MBTW5XBF.js} +2 -2
- package/dist/cli/chunks/task-handler-7H5OYJG4.js +54 -0
- package/dist/cli/chunks/task-handlers-NH4GJHCJ.js +9 -0
- package/dist/cli/chunks/{test-DHAAI3DU.js → test-MPHGT4T6.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-XDBZ3QC2.js → test-scheduling-CHQ4ZLLJ.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-SSDCYEKK.js +2 -0
- package/dist/cli/chunks/{token-usage-Q2YG5YQN.js → token-usage-EBXUJNRB.js} +2 -2
- package/dist/cli/chunks/{transformers-F5UQTQCY.js → transformers-ZEKS2OJZ.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-DEGOHS6F.js → tree-sitter-wasm-parser-J6ZMAK37.js} +2 -2
- package/dist/cli/chunks/{types-JQ7EQO5Q.js → types-KYAA5VLV.js} +2 -2
- package/dist/cli/chunks/unified-memory-DDWMC435.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-4JA7SGBK.js +2 -0
- package/dist/cli/chunks/unified-persistence-F6OSNTXY.js +2 -0
- package/dist/cli/chunks/{upgrade-TJRVGHGD.js → upgrade-UJBJ5AYM.js} +2 -2
- package/dist/cli/chunks/{validate-BWPCVHBN.js → validate-RUV6YMWS.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-QVVKCQLP.js → validate-swarm-IVEVMGVM.js} +2 -2
- package/dist/cli/chunks/{vibium-ZFATIWHO.js → vibium-HOGMFJ2Z.js} +2 -2
- package/dist/cli/chunks/visual-security-25SMBIYT.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-KPLY7ONR.js → web-tree-sitter-AVWA6HKE.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-H7XM7ISA.js → windsurf-installer-DAH7HI2W.js} +2 -2
- package/dist/cli/chunks/{witness-chain-RRN6NDCH.js → witness-chain-PJOQPFUX.js} +2 -2
- package/dist/cli/chunks/witness-chain-ZW6KKUZU.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-DFRL42GE.js → witness-key-manager-JSTBMG43.js} +2 -2
- package/dist/cli/chunks/{workflow-2ZQO6WYI.js → workflow-TWOIA6LZ.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-UKSIDM7Q.js +2 -0
- package/dist/cli/chunks/{wrappers-SUS6XEJD.js → wrappers-UR7BLXKV.js} +2 -2
- package/dist/cli/commands/mcp.js +6 -0
- package/dist/cli/commands/memory.d.ts +1 -1
- package/dist/cli/commands/memory.js +8 -8
- package/dist/cli/commands/platform.js +15 -2
- package/dist/cli/commands/upgrade.d.ts +3 -3
- package/dist/cli/commands/upgrade.js +3 -3
- package/dist/cli/handlers/init-handler.d.ts +10 -0
- package/dist/cli/handlers/task-handler.js +24 -3
- package/dist/cli/helpers/standalone-memory.d.ts +12 -0
- package/dist/cli/helpers/standalone-memory.js +46 -0
- package/dist/cli/index.js +37 -41
- package/dist/cli/log-gate.d.ts +66 -0
- package/dist/cli/log-gate.js +170 -0
- package/dist/init/codex-installer.js +18 -6
- package/dist/init/orchestrator.js +1 -0
- package/dist/init/phases/09-assets.d.ts +10 -0
- package/dist/init/phases/09-assets.js +3 -0
- package/dist/init/token-bootstrap.d.ts +1 -1
- package/dist/init/token-bootstrap.js +12 -2
- package/dist/init/types.d.ts +10 -0
- package/dist/integrations/ruvector/brain-exporter.js +17 -0
- package/dist/integrations/ruvector/brain-import-audit.d.ts +20 -0
- package/dist/integrations/ruvector/brain-import-audit.js +22 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +16 -0
- package/dist/integrations/ruvector/brain-shared.js +1 -1
- package/dist/integrations/ruvector/rvf-dual-writer.js +6 -1
- package/dist/kernel/hybrid-backend.d.ts +6 -0
- package/dist/kernel/hybrid-backend.js +18 -0
- package/dist/kernel/kernel.js +9 -14
- package/dist/kernel/project-root.d.ts +1 -1
- package/dist/kernel/project-root.js +24 -3
- package/dist/learning/embedder-identity-store.js +4 -3
- package/dist/learning/pattern-store.js +5 -1
- package/dist/learning/real-embeddings.d.ts +8 -0
- package/dist/learning/real-embeddings.js +16 -0
- package/dist/learning/rvf-pattern-store.js +10 -3
- package/dist/mcp/bundle.js +442 -442
- package/dist/mcp/entry.js +2 -0
- package/dist/mcp/handlers/memory-handlers.d.ts +6 -1
- package/dist/mcp/handlers/memory-handlers.js +44 -22
- package/dist/mcp/handlers/task-handlers.js +14 -1
- package/dist/mcp/protocol-server.js +1 -0
- package/dist/mcp/services/session-store.js +5 -1
- package/dist/plugins/cache.d.ts +2 -0
- package/dist/plugins/cache.js +15 -2
- package/dist/plugins/lifecycle.js +15 -2
- package/dist/plugins/manifest.js +7 -5
- package/dist/plugins/resolver.d.ts +13 -22
- package/dist/plugins/resolver.js +169 -61
- package/dist/plugins/version-policy.d.ts +13 -0
- package/dist/plugins/version-policy.js +18 -0
- package/dist/shared/types/index.d.ts +6 -0
- package/dist/shared/types/index.js +8 -0
- package/package.json +2 -1
- package/dist/cli/chunks/adapter-TNNNJRDG.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +0 -2
- package/dist/cli/chunks/base-KWZHOPSH.js +0 -2
- package/dist/cli/chunks/brain-handler-ET6YAP4B.js +0 -90
- package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +0 -2
- package/dist/cli/chunks/chunk-33YYYWBQ.js +0 -4
- package/dist/cli/chunks/chunk-5Z6XZV7K.js +0 -65
- package/dist/cli/chunks/chunk-6J62K3SW.js +0 -2
- package/dist/cli/chunks/chunk-6TPKK7LD.js +0 -15
- package/dist/cli/chunks/chunk-DEYLEDJN.js +0 -27
- package/dist/cli/chunks/chunk-KGT36Z42.js +0 -14
- package/dist/cli/chunks/chunk-NA7B2QYB.js +0 -2
- package/dist/cli/chunks/chunk-NDPFGIMJ.js +0 -13
- package/dist/cli/chunks/chunk-PEPFCPES.js +0 -2
- package/dist/cli/chunks/chunk-TT23RRB7.js +0 -2
- package/dist/cli/chunks/chunk-XWMZ6D6N.js +0 -2
- package/dist/cli/chunks/client-7E4LM2WW.js +0 -2
- package/dist/cli/chunks/codex-installer-CQ24DTP5.js +0 -14
- package/dist/cli/chunks/core-handlers-IFG3757P.js +0 -2
- package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +0 -2
- package/dist/cli/chunks/dream-NFSCSLY7.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-ZPAG7235.js +0 -3
- package/dist/cli/chunks/heartbeat-scheduler-ZATCDJDK.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-WXQABRCA.js +0 -2
- package/dist/cli/chunks/hnsw-index-TPSWLEA5.js +0 -2
- package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +0 -2
- package/dist/cli/chunks/init-wizard-JUIPBMHG.js +0 -2
- package/dist/cli/chunks/kernel-5BOZQ754.js +0 -2
- package/dist/cli/chunks/knowledge-graph-EWDAENWM.js +0 -2
- package/dist/cli/chunks/llm-router-service-3YT7JGBS.js +0 -2
- package/dist/cli/chunks/load-test-BP2CPLIV.js +0 -2
- package/dist/cli/chunks/mcp-5TTB37DC.js +0 -2
- package/dist/cli/chunks/memory-backend-4PYQBPRM.js +0 -2
- package/dist/cli/chunks/memory-handlers-2B27NITS.js +0 -2
- package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +0 -2
- package/dist/cli/chunks/platform-OD5H5U6G.js +0 -2
- package/dist/cli/chunks/protocol-executor-3ATJTXWG.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +0 -2
- package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +0 -2
- package/dist/cli/chunks/real-embeddings-FPFFNOSZ.js +0 -2
- package/dist/cli/chunks/router-MDHITQ2V.js +0 -2
- package/dist/cli/chunks/routing-feedback-5XLNJ3Y3.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-JBW4O3II.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-BPPQL4XJ.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-V2GHCJKN.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-S4562CG5.js +0 -2
- package/dist/cli/chunks/safe-db-FIRHSXVF.js +0 -2
- package/dist/cli/chunks/schedule-RVXFB4HK.js +0 -2
- package/dist/cli/chunks/scheduler-IKKAMAOO.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-SQ3HCUQ7.js +0 -2
- package/dist/cli/chunks/task-handler-AVDHMLGI.js +0 -49
- package/dist/cli/chunks/task-handlers-KYK4VTRA.js +0 -9
- package/dist/cli/chunks/token-bootstrap-GUTTLPZX.js +0 -2
- package/dist/cli/chunks/unified-memory-CXHLHB5I.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-I7WAE54M.js +0 -2
- package/dist/cli/chunks/unified-persistence-6CPF65WI.js +0 -2
- package/dist/cli/chunks/visual-security-GNPHME5H.js +0 -2
- package/dist/cli/chunks/witness-chain-VT4UHHBR.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-DB3HIECD.js +0 -2
|
@@ -70,6 +70,16 @@ export interface InitJsonOutput {
|
|
|
70
70
|
policy: 'full' | 'compact' | 'none';
|
|
71
71
|
ownedBytes: number;
|
|
72
72
|
};
|
|
73
|
+
codexComponents?: {
|
|
74
|
+
hooks: {
|
|
75
|
+
status: string;
|
|
76
|
+
error?: string;
|
|
77
|
+
};
|
|
78
|
+
skills: {
|
|
79
|
+
status: string;
|
|
80
|
+
error?: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
73
83
|
};
|
|
74
84
|
totalDurationMs: number;
|
|
75
85
|
timestamp: string;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import chalk from 'chalk';
|
|
7
7
|
import { getStatusColor, formatDuration, } from './interfaces.js';
|
|
8
|
+
import { ALL_DOMAINS, isDomainName } from '../../shared/types/index.js';
|
|
8
9
|
import { createTimedSpinner } from '../utils/progress.js';
|
|
9
10
|
import { parseJsonOption } from '../helpers/safe-json.js';
|
|
10
11
|
import { writeOutput, toJSON } from '../utils/ci-output.js';
|
|
@@ -32,7 +33,7 @@ export class TaskHandler {
|
|
|
32
33
|
.option('-d, --domain <domain>', 'Target domain')
|
|
33
34
|
.option('-t, --timeout <ms>', 'Task timeout in ms', '300000')
|
|
34
35
|
.option('--payload <json>', 'Task payload as JSON', '{}')
|
|
35
|
-
.option('--wait', 'Wait for task completion
|
|
36
|
+
.option('--wait', 'Wait for task completion (required: CLI tasks are not persisted)')
|
|
36
37
|
.option('--no-progress', 'Disable progress indicator')
|
|
37
38
|
.action(async (type, options) => {
|
|
38
39
|
await this.executeSubmit(type, options, context);
|
|
@@ -67,6 +68,25 @@ export class TaskHandler {
|
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
70
|
async executeSubmit(type, options, context) {
|
|
71
|
+
// #734 D: reject an unknown domain up front instead of accepting work that
|
|
72
|
+
// no domain will ever run.
|
|
73
|
+
if (options.domain !== undefined && !isDomainName(options.domain)) {
|
|
74
|
+
console.error(chalk.red(`\n Unknown domain: ${options.domain}`));
|
|
75
|
+
console.error(chalk.gray(` Valid domains: ${ALL_DOMAINS.join(', ')}\n`));
|
|
76
|
+
return this.cleanupAndExit(1);
|
|
77
|
+
}
|
|
78
|
+
// #734 C: a CLI-submitted task runs inside this process and is not
|
|
79
|
+
// persisted, so a detached submit would report an ID for work that is
|
|
80
|
+
// abandoned when the command exits. Refuse it rather than claim success.
|
|
81
|
+
if (!options.wait) {
|
|
82
|
+
console.error(chalk.red('\n Detached task submission is not supported.'));
|
|
83
|
+
console.error(chalk.gray(' Tasks submitted from the CLI run inside this process and are not persisted;'));
|
|
84
|
+
console.error(chalk.gray(' the task would be abandoned when the command exits, and `aqe task status`'));
|
|
85
|
+
console.error(chalk.gray(' from another process could not find it.'));
|
|
86
|
+
console.error(chalk.gray(' Re-run with --wait to execute the task and report its result, or submit it'));
|
|
87
|
+
console.error(chalk.gray(' through the MCP server (task_submit), which keeps a long-lived coordinator.\n'));
|
|
88
|
+
return this.cleanupAndExit(1);
|
|
89
|
+
}
|
|
70
90
|
if (!await this.ensureInitialized())
|
|
71
91
|
return this.cleanupAndExit(1);
|
|
72
92
|
try {
|
|
@@ -294,7 +314,8 @@ Submit Options:
|
|
|
294
314
|
-d, --domain <domain> Target domain
|
|
295
315
|
-t, --timeout <ms> Task timeout in milliseconds (default: 300000)
|
|
296
316
|
--payload <json> Task payload as JSON
|
|
297
|
-
--wait Wait for task completion
|
|
317
|
+
--wait Wait for task completion (required; CLI-submitted
|
|
318
|
+
tasks run in this process and are not persisted)
|
|
298
319
|
--no-progress Disable progress indicator
|
|
299
320
|
|
|
300
321
|
List Options:
|
|
@@ -303,7 +324,7 @@ List Options:
|
|
|
303
324
|
-d, --domain <domain> Filter by domain
|
|
304
325
|
|
|
305
326
|
Examples:
|
|
306
|
-
aqe task submit generate-tests --domain test-generation
|
|
327
|
+
aqe task submit generate-tests --domain test-generation --wait
|
|
307
328
|
aqe task submit analyze-coverage --wait --timeout 60000
|
|
308
329
|
aqe task list --status running
|
|
309
330
|
aqe task status task-123
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CLIContext } from '../handlers/interfaces.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build the readiness check for `aqe memory` subcommands.
|
|
4
|
+
*
|
|
5
|
+
* Memory operations only need the project memory backend, so this opens
|
|
6
|
+
* .agentic-qe/memory.db directly instead of booting the full v3 system
|
|
7
|
+
* (kernel, Queen Coordinator, every domain coordinator, SONA engines,
|
|
8
|
+
* DreamScheduler). If a fleet is already running in this process, its kernel
|
|
9
|
+
* memory is used as before.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createEnsureMemoryBackend(context: CLIContext): () => Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=standalone-memory.d.ts.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
5
|
+
/**
|
|
6
|
+
* Build the readiness check for `aqe memory` subcommands.
|
|
7
|
+
*
|
|
8
|
+
* Memory operations only need the project memory backend, so this opens
|
|
9
|
+
* .agentic-qe/memory.db directly instead of booting the full v3 system
|
|
10
|
+
* (kernel, Queen Coordinator, every domain coordinator, SONA engines,
|
|
11
|
+
* DreamScheduler). If a fleet is already running in this process, its kernel
|
|
12
|
+
* memory is used as before.
|
|
13
|
+
*/
|
|
14
|
+
export function createEnsureMemoryBackend(context) {
|
|
15
|
+
let ready = null;
|
|
16
|
+
const open = async () => {
|
|
17
|
+
try {
|
|
18
|
+
const [{ findProjectRoot }, { createKernelMemoryBackend }, { setStandaloneMemoryBackend }] = await Promise.all([
|
|
19
|
+
import('../../kernel/project-root.js'),
|
|
20
|
+
import('../../kernel/hybrid-backend.js'),
|
|
21
|
+
import('../../mcp/handlers/memory-handlers.js'),
|
|
22
|
+
]);
|
|
23
|
+
// Same data directory the kernel resolves when auto-initializing.
|
|
24
|
+
const dataDir = path.join(findProjectRoot(), '.agentic-qe');
|
|
25
|
+
fs.mkdirSync(dataDir, { recursive: true });
|
|
26
|
+
const backend = createKernelMemoryBackend(dataDir);
|
|
27
|
+
await backend.initialize();
|
|
28
|
+
setStandaloneMemoryBackend(backend);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error(chalk.red(` Failed to open memory store: ${toErrorMessage(error)}`));
|
|
33
|
+
// Callers `return` on false; main() then exits with this code, matching
|
|
34
|
+
// ensureInitialized()'s failure path (#758).
|
|
35
|
+
process.exitCode = 1;
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return () => {
|
|
40
|
+
if (context.initialized)
|
|
41
|
+
return Promise.resolve(true);
|
|
42
|
+
ready ??= open();
|
|
43
|
+
return ready;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=standalone-memory.js.map
|
package/dist/cli/index.js
CHANGED
|
@@ -10,47 +10,18 @@
|
|
|
10
10
|
* See: cli/commands/ for additional command modules
|
|
11
11
|
*/
|
|
12
12
|
import { toErrorMessage } from '../shared/error-utils.js';
|
|
13
|
+
import { initFeatureFlagsFromEnv } from '../integrations/ruvector/feature-flags.js';
|
|
13
14
|
import { createRequire } from 'node:module';
|
|
14
15
|
import { Command } from 'commander';
|
|
15
16
|
import chalk from 'chalk';
|
|
16
17
|
import { ALL_DOMAINS } from '../shared/types/index.js';
|
|
17
18
|
// ============================================================================
|
|
18
|
-
//
|
|
19
|
+
// Route internal diagnostics to stderr, filtered by AQE_LOG_LEVEL / LOG_LEVEL /
|
|
20
|
+
// AQE_VERBOSE (default: warn), so stdout stays clean for CI/JSON.
|
|
19
21
|
// ============================================================================
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'[Queen]', '[QUEEN]', '[DomainBreakerRegistry]',
|
|
24
|
-
'[RealEmbeddings]', '[HNSWIndex]', '[PatternStore]',
|
|
25
|
-
'[TestGenerationCoordinator]', '[CodeIntelligence]', '[ProductFactorsBridge]',
|
|
26
|
-
'[LearningOptimizationCoordinator]', '[DreamEngine]', '[DreamScheduler]',
|
|
27
|
-
'[SecurityCompliance]', '[Providers]', '[GNN]',
|
|
28
|
-
'[test-generation]', '[test-execution]', '[coverage-analysis]',
|
|
29
|
-
'[quality-assessment]', '[defect-intelligence]', '[requirements-validation]',
|
|
30
|
-
'[code-intelligence]', '[security-compliance]', '[contract-testing]',
|
|
31
|
-
'[visual-accessibility]', '[chaos-resilience]', '[learning-optimization]',
|
|
32
|
-
'[enterprise-integration]', '[coordination]', '[PatternLearnerService]',
|
|
33
|
-
'[RequirementsValidation]', '[ParserRegistry]', '[AdversarialDefense]',
|
|
34
|
-
'[ContinueGateIntegration]', '[ContinueGate]', '[SQLitePatternStore]',
|
|
35
|
-
'[TokenTracking]', '[InfraHealing]', '[ExperienceCapture]',
|
|
36
|
-
];
|
|
37
|
-
/** Timestamped log pattern: [HH:MM:SS.sss] [LEVEL] */
|
|
38
|
-
const TIMESTAMPED_LOG_RE = /^\[\d{2}:\d{2}:\d{2}\.\d{3}\]\s+\[/;
|
|
39
|
-
const originalConsoleLog = console.log.bind(console);
|
|
40
|
-
console.log = (...args) => {
|
|
41
|
-
const first = typeof args[0] === 'string' ? args[0] : '';
|
|
42
|
-
const trimmed = first.trimStart();
|
|
43
|
-
if (INTERNAL_LOG_PREFIXES.some(prefix => trimmed.startsWith(prefix)) ||
|
|
44
|
-
TIMESTAMPED_LOG_RE.test(trimmed)) {
|
|
45
|
-
process.stderr.write(args.map(String).join(' ') + '\n');
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
originalConsoleLog(...args);
|
|
49
|
-
};
|
|
50
|
-
// Also redirect timestamped INFO/WARN/ERROR log lines (e.g. "[07:12:24.372] [INFO ]")
|
|
51
|
-
console.info = (...args) => {
|
|
52
|
-
process.stderr.write(args.map(String).join(' ') + '\n');
|
|
53
|
-
};
|
|
22
|
+
import { applyCommandVerbosity, installCliLogGate, isCliLogLevelEnabled } from './log-gate.js';
|
|
23
|
+
import { LogLevel } from '../logging/index.js';
|
|
24
|
+
installCliLogGate();
|
|
54
25
|
// ============================================================================
|
|
55
26
|
// CLI State
|
|
56
27
|
// ============================================================================
|
|
@@ -144,10 +115,12 @@ async function ensureInitializedStrict() {
|
|
|
144
115
|
// For diagnostic commands: check if project was explicitly initialized
|
|
145
116
|
const fs = await import('fs');
|
|
146
117
|
const path = await import('path');
|
|
147
|
-
const
|
|
118
|
+
const { findProjectRoot } = await import('../kernel/project-root.js');
|
|
119
|
+
const configDir = path.join(findProjectRoot(), '.agentic-qe');
|
|
148
120
|
if (!fs.existsSync(configDir)) {
|
|
149
121
|
console.error(chalk.red('\nError: AQE system not initialized in this directory.'));
|
|
150
122
|
console.log(chalk.yellow('Run `aqe init` first to set up this project.\n'));
|
|
123
|
+
process.exitCode = 1;
|
|
151
124
|
return false;
|
|
152
125
|
}
|
|
153
126
|
return ensureInitialized();
|
|
@@ -156,14 +129,19 @@ async function ensureInitialized() {
|
|
|
156
129
|
if (context.initialized && context.kernel && context.queen) {
|
|
157
130
|
return true;
|
|
158
131
|
}
|
|
159
|
-
|
|
132
|
+
const showProgress = isCliLogLevelEnabled(LogLevel.INFO);
|
|
133
|
+
if (showProgress) {
|
|
134
|
+
process.stderr.write(chalk.gray('Auto-initializing v3 system...') + '\n');
|
|
135
|
+
}
|
|
160
136
|
const timeout = 30000;
|
|
161
137
|
const timeoutPromise = new Promise((_, reject) => {
|
|
162
138
|
setTimeout(() => reject(new Error('Initialization timeout after 30 seconds')), timeout);
|
|
163
139
|
});
|
|
164
140
|
try {
|
|
165
141
|
await Promise.race([autoInitialize(), timeoutPromise]);
|
|
166
|
-
|
|
142
|
+
if (showProgress) {
|
|
143
|
+
process.stderr.write(chalk.green('System ready') + '\n\n');
|
|
144
|
+
}
|
|
167
145
|
return true;
|
|
168
146
|
}
|
|
169
147
|
catch (err) {
|
|
@@ -176,6 +154,8 @@ async function ensureInitialized() {
|
|
|
176
154
|
console.error(chalk.red('Failed to auto-initialize:'), err);
|
|
177
155
|
console.log(chalk.yellow('Try running `aqe init` manually.'));
|
|
178
156
|
}
|
|
157
|
+
// Callers `return` on false; main() then exits with this code (#758).
|
|
158
|
+
process.exitCode = 1;
|
|
179
159
|
return false;
|
|
180
160
|
}
|
|
181
161
|
}
|
|
@@ -216,7 +196,18 @@ const VERSION = typeof __CLI_VERSION__ !== 'undefined' ? __CLI_VERSION__ : packa
|
|
|
216
196
|
program
|
|
217
197
|
.name('aqe')
|
|
218
198
|
.description('Agentic QE - Domain-Driven Quality Engineering')
|
|
219
|
-
.version(VERSION)
|
|
199
|
+
.version(VERSION)
|
|
200
|
+
.addHelpText('after', `
|
|
201
|
+
Environment:
|
|
202
|
+
AQE_LOG_LEVEL Internal log level: debug | info | warn | error | silent (default: warn)
|
|
203
|
+
LOG_LEVEL Same as AQE_LOG_LEVEL; AQE_LOG_LEVEL takes precedence
|
|
204
|
+
AQE_VERBOSE=1 Shorthand for info-level logging (full system-init output)
|
|
205
|
+
Diagnostics are written to stderr; stdout carries command output only.`);
|
|
206
|
+
// A command's own --verbose flag (aqe sync|status|workflow|eval ... --verbose)
|
|
207
|
+
// raises the log gate to INFO for that run; AQE_LOG_LEVEL / LOG_LEVEL win.
|
|
208
|
+
program.hook('preAction', (_thisCommand, actionCommand) => {
|
|
209
|
+
applyCommandVerbosity(actionCommand.opts());
|
|
210
|
+
});
|
|
220
211
|
// ============================================================================
|
|
221
212
|
// Register Handlers (lazy — each handler loads only when its command runs)
|
|
222
213
|
// ============================================================================
|
|
@@ -338,7 +329,11 @@ registerLazyCommand(program, {
|
|
|
338
329
|
registerLazyCommand(program, {
|
|
339
330
|
name: 'memory',
|
|
340
331
|
description: 'Memory store, retrieve, search, and delete operations',
|
|
341
|
-
|
|
332
|
+
// Memory subcommands open only the memory store, not the full v3 system.
|
|
333
|
+
factory: () => Promise.all([
|
|
334
|
+
import('./commands/memory.js'),
|
|
335
|
+
import('./helpers/standalone-memory.js'),
|
|
336
|
+
]).then(([m, h]) => m.createMemoryCommand(context, cleanupAndExit, h.createEnsureMemoryBackend(context))),
|
|
342
337
|
});
|
|
343
338
|
registerLazyCommand(program, {
|
|
344
339
|
name: 'mcp',
|
|
@@ -402,6 +397,7 @@ async function main() {
|
|
|
402
397
|
console.log(VERSION);
|
|
403
398
|
process.exit(0);
|
|
404
399
|
}
|
|
400
|
+
initFeatureFlagsFromEnv();
|
|
405
401
|
// File recovery must validate its input before anything opens, migrates, or
|
|
406
402
|
// auto-restores the project's database. Commander accepts `--` separators.
|
|
407
403
|
const commandArgs = process.argv.slice(2).filter(arg => arg !== '--');
|
|
@@ -421,7 +417,7 @@ async function main() {
|
|
|
421
417
|
return;
|
|
422
418
|
// If the command didn't explicitly exit, clean up and exit now.
|
|
423
419
|
// This prevents process hangs from active handles (domain init, embeddings, etc.)
|
|
424
|
-
await cleanupAndExit(0);
|
|
420
|
+
await cleanupAndExit(process.exitCode ?? 0);
|
|
425
421
|
}
|
|
426
422
|
main().catch(async (error) => {
|
|
427
423
|
console.error(chalk.red('Fatal error:'), error);
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - CLI Log Gate
|
|
3
|
+
*
|
|
4
|
+
* Single place that decides how much internal diagnostic output a CLI
|
|
5
|
+
* invocation prints. Two kinds of diagnostics exist in the codebase:
|
|
6
|
+
*
|
|
7
|
+
* 1. Structured logger output (LoggerFactory / ConsoleLogger), formatted as
|
|
8
|
+
* "[HH:MM:SS.mmm] [INFO ] [domain] message".
|
|
9
|
+
* 2. Ad-hoc console calls with a bracketed tag, e.g.
|
|
10
|
+
* console.log('[UnifiedMemory] Initialized: ...').
|
|
11
|
+
*
|
|
12
|
+
* Both are routed to stderr (stdout stays clean for JSON/CI consumers) and
|
|
13
|
+
* filtered against one threshold resolved from the environment:
|
|
14
|
+
*
|
|
15
|
+
* AQE_LOG_LEVEL debug | info | warn | error | silent (highest precedence)
|
|
16
|
+
* LOG_LEVEL same values
|
|
17
|
+
* AQE_VERBOSE 1 | true | yes | on -> info
|
|
18
|
+
* (default) warn
|
|
19
|
+
*
|
|
20
|
+
* Regular command output (anything without a bracketed tag) is never touched.
|
|
21
|
+
*/
|
|
22
|
+
import { LogLevel } from '../logging/index.js';
|
|
23
|
+
type ConsoleMethod = 'log' | 'info' | 'debug' | 'warn' | 'error';
|
|
24
|
+
type ConsoleLike = Pick<Console, ConsoleMethod>;
|
|
25
|
+
/** Default threshold for CLI commands when nothing is configured. */
|
|
26
|
+
export declare const DEFAULT_CLI_LOG_LEVEL = LogLevel.WARN;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the effective CLI log level from the environment.
|
|
29
|
+
* Unrecognised values are ignored rather than silently mapped to INFO.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveCliLogLevel(env?: NodeJS.ProcessEnv, defaultLevel?: LogLevel): LogLevel;
|
|
32
|
+
/**
|
|
33
|
+
* Classify a console call. Returns the diagnostic level of the line, or null
|
|
34
|
+
* when the line is regular command output that must pass through untouched.
|
|
35
|
+
*/
|
|
36
|
+
export declare function classifyConsoleLine(method: ConsoleMethod, firstArg: unknown): LogLevel | null;
|
|
37
|
+
/** True when AQE_LOG_LEVEL or LOG_LEVEL holds a recognised level. */
|
|
38
|
+
export declare function hasExplicitCliLogLevel(env?: NodeJS.ProcessEnv): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Honour a command's own `--verbose` flag (e.g. `aqe sync --verbose`): raise
|
|
41
|
+
* the threshold to INFO so the diagnostics the user explicitly asked for are
|
|
42
|
+
* printed (on stderr). An explicit AQE_LOG_LEVEL / LOG_LEVEL still wins.
|
|
43
|
+
* Returns true when the level was raised.
|
|
44
|
+
*/
|
|
45
|
+
export declare function applyCommandVerbosity(options: Record<string, unknown>, env?: NodeJS.ProcessEnv): boolean;
|
|
46
|
+
/** Current CLI log threshold. */
|
|
47
|
+
export declare function getCliLogLevel(): LogLevel;
|
|
48
|
+
/** True when diagnostics at `level` should be printed. */
|
|
49
|
+
export declare function isCliLogLevelEnabled(level: LogLevel): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Change the threshold at runtime. Also reconfigures LoggerFactory so loggers
|
|
52
|
+
* created afterwards filter at the source instead of relying on the gate.
|
|
53
|
+
*/
|
|
54
|
+
export declare function setCliLogLevel(level: LogLevel): void;
|
|
55
|
+
export interface InstallCliLogGateOptions {
|
|
56
|
+
level?: LogLevel;
|
|
57
|
+
target?: ConsoleLike;
|
|
58
|
+
writeStderr?: (text: string) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Patch the console so internal diagnostics are routed to stderr and filtered
|
|
62
|
+
* by the CLI log level. Returns a function that restores the original methods.
|
|
63
|
+
*/
|
|
64
|
+
export declare function installCliLogGate(options?: InstallCliLogGateOptions): () => void;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=log-gate.d.ts.map
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - CLI Log Gate
|
|
3
|
+
*
|
|
4
|
+
* Single place that decides how much internal diagnostic output a CLI
|
|
5
|
+
* invocation prints. Two kinds of diagnostics exist in the codebase:
|
|
6
|
+
*
|
|
7
|
+
* 1. Structured logger output (LoggerFactory / ConsoleLogger), formatted as
|
|
8
|
+
* "[HH:MM:SS.mmm] [INFO ] [domain] message".
|
|
9
|
+
* 2. Ad-hoc console calls with a bracketed tag, e.g.
|
|
10
|
+
* console.log('[UnifiedMemory] Initialized: ...').
|
|
11
|
+
*
|
|
12
|
+
* Both are routed to stderr (stdout stays clean for JSON/CI consumers) and
|
|
13
|
+
* filtered against one threshold resolved from the environment:
|
|
14
|
+
*
|
|
15
|
+
* AQE_LOG_LEVEL debug | info | warn | error | silent (highest precedence)
|
|
16
|
+
* LOG_LEVEL same values
|
|
17
|
+
* AQE_VERBOSE 1 | true | yes | on -> info
|
|
18
|
+
* (default) warn
|
|
19
|
+
*
|
|
20
|
+
* Regular command output (anything without a bracketed tag) is never touched.
|
|
21
|
+
*/
|
|
22
|
+
import { format } from 'node:util';
|
|
23
|
+
import { LogLevel, LoggerFactory } from '../logging/index.js';
|
|
24
|
+
/** Default threshold for CLI commands when nothing is configured. */
|
|
25
|
+
export const DEFAULT_CLI_LOG_LEVEL = LogLevel.WARN;
|
|
26
|
+
const LEVEL_NAMES = {
|
|
27
|
+
debug: LogLevel.DEBUG,
|
|
28
|
+
info: LogLevel.INFO,
|
|
29
|
+
warn: LogLevel.WARN,
|
|
30
|
+
warning: LogLevel.WARN,
|
|
31
|
+
error: LogLevel.ERROR,
|
|
32
|
+
silent: LogLevel.SILENT,
|
|
33
|
+
none: LogLevel.SILENT,
|
|
34
|
+
off: LogLevel.SILENT,
|
|
35
|
+
};
|
|
36
|
+
const TRUTHY = new Set(['1', 'true', 'yes', 'on']);
|
|
37
|
+
// eslint-disable-next-line no-control-regex
|
|
38
|
+
const ANSI_RE = /\x1b\[[0-9;]*m/g;
|
|
39
|
+
/** "[10:01:10.407] [INFO ] ..." or "[2026-09-28T10:01:10.407Z] [WARN ] ..." */
|
|
40
|
+
const STRUCTURED_RE = /^\[(?:\d{2}:\d{2}:\d{2}\.\d{3}|\d{4}-\d{2}-\d{2}T[^\]]+)\]\s+\[(DEBUG|INFO|WARN|ERROR)\s*\]/;
|
|
41
|
+
/**
|
|
42
|
+
* "[UnifiedMemory] ...", "[sona-three-loop] ...", "[quality-assessment/rl] ...".
|
|
43
|
+
* Requires a letter first and whitespace after the closing bracket so JSON
|
|
44
|
+
* arrays such as '["a"]' or '[true]' are never mistaken for diagnostics.
|
|
45
|
+
*
|
|
46
|
+
* Only a tag at column 0 counts. Indented bracketed text is command output:
|
|
47
|
+
* severity markers (" [critical] Code Injection ..." from `aqe security`,
|
|
48
|
+
* " [high] ..." from `aqe status` / `aqe coverage`) and user data such as a
|
|
49
|
+
* stored memory value "[TODO] fix auth" printed by `aqe memory get`.
|
|
50
|
+
*/
|
|
51
|
+
const TAGGED_RE = /^\[[A-Za-z][\w./:-]*\]\s/;
|
|
52
|
+
const TAG_METHOD_LEVEL = {
|
|
53
|
+
debug: LogLevel.DEBUG,
|
|
54
|
+
log: LogLevel.INFO,
|
|
55
|
+
info: LogLevel.INFO,
|
|
56
|
+
warn: LogLevel.WARN,
|
|
57
|
+
error: LogLevel.ERROR,
|
|
58
|
+
};
|
|
59
|
+
let currentLevel = DEFAULT_CLI_LOG_LEVEL;
|
|
60
|
+
function parseLevel(value) {
|
|
61
|
+
if (!value)
|
|
62
|
+
return undefined;
|
|
63
|
+
return LEVEL_NAMES[value.trim().toLowerCase()];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resolve the effective CLI log level from the environment.
|
|
67
|
+
* Unrecognised values are ignored rather than silently mapped to INFO.
|
|
68
|
+
*/
|
|
69
|
+
export function resolveCliLogLevel(env = process.env, defaultLevel = DEFAULT_CLI_LOG_LEVEL) {
|
|
70
|
+
const explicit = parseLevel(env.AQE_LOG_LEVEL) ?? parseLevel(env.LOG_LEVEL);
|
|
71
|
+
if (explicit !== undefined)
|
|
72
|
+
return explicit;
|
|
73
|
+
if (env.AQE_VERBOSE && TRUTHY.has(env.AQE_VERBOSE.trim().toLowerCase())) {
|
|
74
|
+
return LogLevel.INFO;
|
|
75
|
+
}
|
|
76
|
+
return defaultLevel;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Classify a console call. Returns the diagnostic level of the line, or null
|
|
80
|
+
* when the line is regular command output that must pass through untouched.
|
|
81
|
+
*/
|
|
82
|
+
export function classifyConsoleLine(method, firstArg) {
|
|
83
|
+
if (typeof firstArg !== 'string')
|
|
84
|
+
return null;
|
|
85
|
+
const text = firstArg.replace(ANSI_RE, '');
|
|
86
|
+
const structured = STRUCTURED_RE.exec(text.trimStart());
|
|
87
|
+
if (structured) {
|
|
88
|
+
return LEVEL_NAMES[structured[1].toLowerCase()];
|
|
89
|
+
}
|
|
90
|
+
if (TAGGED_RE.test(text)) {
|
|
91
|
+
return TAG_METHOD_LEVEL[method];
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
/** True when AQE_LOG_LEVEL or LOG_LEVEL holds a recognised level. */
|
|
96
|
+
export function hasExplicitCliLogLevel(env = process.env) {
|
|
97
|
+
return parseLevel(env.AQE_LOG_LEVEL) !== undefined || parseLevel(env.LOG_LEVEL) !== undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Honour a command's own `--verbose` flag (e.g. `aqe sync --verbose`): raise
|
|
101
|
+
* the threshold to INFO so the diagnostics the user explicitly asked for are
|
|
102
|
+
* printed (on stderr). An explicit AQE_LOG_LEVEL / LOG_LEVEL still wins.
|
|
103
|
+
* Returns true when the level was raised.
|
|
104
|
+
*/
|
|
105
|
+
export function applyCommandVerbosity(options, env = process.env) {
|
|
106
|
+
if (options.verbose !== true || hasExplicitCliLogLevel(env))
|
|
107
|
+
return false;
|
|
108
|
+
if (isCliLogLevelEnabled(LogLevel.INFO))
|
|
109
|
+
return false;
|
|
110
|
+
setCliLogLevel(LogLevel.INFO);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
/** Current CLI log threshold. */
|
|
114
|
+
export function getCliLogLevel() {
|
|
115
|
+
return currentLevel;
|
|
116
|
+
}
|
|
117
|
+
/** True when diagnostics at `level` should be printed. */
|
|
118
|
+
export function isCliLogLevelEnabled(level) {
|
|
119
|
+
return level >= currentLevel && currentLevel !== LogLevel.SILENT;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Change the threshold at runtime. Also reconfigures LoggerFactory so loggers
|
|
123
|
+
* created afterwards filter at the source instead of relying on the gate.
|
|
124
|
+
*/
|
|
125
|
+
export function setCliLogLevel(level) {
|
|
126
|
+
currentLevel = level;
|
|
127
|
+
LoggerFactory.setLevel(level);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Patch the console so internal diagnostics are routed to stderr and filtered
|
|
131
|
+
* by the CLI log level. Returns a function that restores the original methods.
|
|
132
|
+
*/
|
|
133
|
+
export function installCliLogGate(options = {}) {
|
|
134
|
+
const target = options.target ?? console;
|
|
135
|
+
const writeStderr = options.writeStderr ?? ((text) => { process.stderr.write(text); });
|
|
136
|
+
setCliLogLevel(options.level ?? resolveCliLogLevel());
|
|
137
|
+
const original = {
|
|
138
|
+
log: target.log.bind(target),
|
|
139
|
+
info: target.info.bind(target),
|
|
140
|
+
debug: target.debug.bind(target),
|
|
141
|
+
warn: target.warn.bind(target),
|
|
142
|
+
error: target.error.bind(target),
|
|
143
|
+
};
|
|
144
|
+
const toStderr = (args) => writeStderr(format(...args) + '\n');
|
|
145
|
+
const gate = (method, passthrough, emit) => (...args) => {
|
|
146
|
+
const level = classifyConsoleLine(method, args[0]);
|
|
147
|
+
if (level === null) {
|
|
148
|
+
passthrough(args);
|
|
149
|
+
}
|
|
150
|
+
else if (isCliLogLevelEnabled(level)) {
|
|
151
|
+
emit(args);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
// log/debug output normally goes to stdout; diagnostics are moved to stderr.
|
|
155
|
+
target.log = gate('log', args => original.log(...args), toStderr);
|
|
156
|
+
target.debug = gate('debug', args => original.debug(...args), toStderr);
|
|
157
|
+
// console.info has always been redirected to stderr by the CLI.
|
|
158
|
+
target.info = gate('info', toStderr, toStderr);
|
|
159
|
+
// warn/error already target stderr; keep their native formatting.
|
|
160
|
+
target.warn = gate('warn', args => original.warn(...args), args => original.warn(...args));
|
|
161
|
+
target.error = gate('error', args => original.error(...args), args => original.error(...args));
|
|
162
|
+
return () => {
|
|
163
|
+
target.log = original.log;
|
|
164
|
+
target.info = original.info;
|
|
165
|
+
target.debug = original.debug;
|
|
166
|
+
target.warn = original.warn;
|
|
167
|
+
target.error = original.error;
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=log-gate.js.map
|
|
@@ -9,6 +9,7 @@ import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSyn
|
|
|
9
9
|
import { join, dirname } from 'path';
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
11
|
import { toErrorMessage } from '../shared/error-utils.js';
|
|
12
|
+
import { findPackageRoot } from './find-package-root.js';
|
|
12
13
|
import { selectCodexSkills } from './codex-skill-manifest.js';
|
|
13
14
|
import { createPlatformConfigGenerator, } from './platform-config-generator.js';
|
|
14
15
|
export const CODEX_COMPACT_GUIDANCE_MAX_BYTES = 512;
|
|
@@ -111,7 +112,7 @@ export class CodexInstaller {
|
|
|
111
112
|
result.ownedGuidanceBytes = Buffer.byteLength(marked);
|
|
112
113
|
result.components.rules.status = 'installed';
|
|
113
114
|
}
|
|
114
|
-
else
|
|
115
|
+
else {
|
|
115
116
|
const content = policy === 'compact' ? COMPACT_CODEX_GUIDANCE : rules.content;
|
|
116
117
|
const existing = readFileSync(agentsMdPath, 'utf-8');
|
|
117
118
|
const merged = this.mergeExistingAgentsMdContent(existing, content);
|
|
@@ -125,10 +126,6 @@ export class CodexInstaller {
|
|
|
125
126
|
}
|
|
126
127
|
result.ownedGuidanceBytes = this.measureOwnedAgentsSection(merged);
|
|
127
128
|
}
|
|
128
|
-
else {
|
|
129
|
-
result.components.rules.status = 'preserved';
|
|
130
|
-
result.ownedGuidanceBytes = this.measureOwnedAgentsSection(readFileSync(agentsMdPath, 'utf-8'));
|
|
131
|
-
}
|
|
132
129
|
}
|
|
133
130
|
catch (error) {
|
|
134
131
|
this.recordComponentFailure(result, 'rules', error);
|
|
@@ -147,6 +144,13 @@ export class CodexInstaller {
|
|
|
147
144
|
catch (error) {
|
|
148
145
|
this.recordComponentFailure(result, 'skills', error);
|
|
149
146
|
}
|
|
147
|
+
for (const component of ['hooks', 'skills']) {
|
|
148
|
+
if (result.components[component].status === 'unavailable') {
|
|
149
|
+
const message = `Codex ${component} unavailable: packaged assets could not be located`;
|
|
150
|
+
result.components[component].error = message;
|
|
151
|
+
result.errors.push(message);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
150
154
|
result.success = result.errors.length === 0;
|
|
151
155
|
return result;
|
|
152
156
|
}
|
|
@@ -297,6 +301,11 @@ export class CodexInstaller {
|
|
|
297
301
|
}
|
|
298
302
|
}
|
|
299
303
|
resolvePackageRoot() {
|
|
304
|
+
// Bundled chunks retain their real package location even when npm's aqe
|
|
305
|
+
// bin is a symlink in a global prefix.
|
|
306
|
+
const packagedRoot = findPackageRoot(import.meta.url);
|
|
307
|
+
if (packagedRoot)
|
|
308
|
+
return packagedRoot;
|
|
300
309
|
const moduleDir = dirname(fileURLToPath(import.meta.url));
|
|
301
310
|
const candidates = [
|
|
302
311
|
join(moduleDir, '..', '..'),
|
|
@@ -348,7 +357,10 @@ export class CodexInstaller {
|
|
|
348
357
|
return merged;
|
|
349
358
|
if (existing.length === 0)
|
|
350
359
|
return marked;
|
|
351
|
-
|
|
360
|
+
// The owned block starts at the original EOF. Keeping every pre-existing
|
|
361
|
+
// byte outside the sentinel lets `none` remove the block exactly, even
|
|
362
|
+
// when the user's file has no trailing newline.
|
|
363
|
+
return existing + marked;
|
|
352
364
|
}
|
|
353
365
|
removeOwnedAgentsSections(existing) {
|
|
354
366
|
this.assertOwnedAgentsSectionsWellFormed(existing);
|
|
@@ -158,6 +158,7 @@ export class ModularInitOrchestrator {
|
|
|
158
158
|
claudeMdGenerated: claudeMdResult?.data?.generated ?? false,
|
|
159
159
|
workersStarted: workersResult?.data?.workersConfigured ?? 0,
|
|
160
160
|
codexGuidance: assetsResult?.data?.codexGuidance,
|
|
161
|
+
codexComponents: assetsResult?.data?.codexComponents,
|
|
161
162
|
},
|
|
162
163
|
totalDurationMs: Date.now() - startTime,
|
|
163
164
|
timestamp: new Date(),
|
|
@@ -20,6 +20,16 @@ export interface AssetsResult {
|
|
|
20
20
|
policy: 'full' | 'compact' | 'none';
|
|
21
21
|
ownedBytes: number;
|
|
22
22
|
};
|
|
23
|
+
codexComponents?: {
|
|
24
|
+
hooks: {
|
|
25
|
+
status: string;
|
|
26
|
+
error?: string;
|
|
27
|
+
};
|
|
28
|
+
skills: {
|
|
29
|
+
status: string;
|
|
30
|
+
error?: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
23
33
|
}
|
|
24
34
|
/**
|
|
25
35
|
* Assets phase - installs skills and agents
|
|
@@ -37,6 +37,7 @@ export class AssetsPhase extends BasePhase {
|
|
|
37
37
|
let kiroSkills = 0;
|
|
38
38
|
let kiroHooks = 0;
|
|
39
39
|
let codexGuidance;
|
|
40
|
+
let codexComponents;
|
|
40
41
|
if (options.upgrade) {
|
|
41
42
|
context.services.log(` Upgrade mode: overwriting existing files`);
|
|
42
43
|
}
|
|
@@ -303,6 +304,7 @@ export class AssetsPhase extends BasePhase {
|
|
|
303
304
|
});
|
|
304
305
|
const res = await installer.install();
|
|
305
306
|
codexGuidance = { policy: res.guidancePolicy, ownedBytes: res.ownedGuidanceBytes };
|
|
307
|
+
codexComponents = { hooks: res.components.hooks, skills: res.components.skills };
|
|
306
308
|
if (res.mcpConfigured)
|
|
307
309
|
platformsConfigured.push('codex');
|
|
308
310
|
if (res.errors.length > 0)
|
|
@@ -361,6 +363,7 @@ export class AssetsPhase extends BasePhase {
|
|
|
361
363
|
platformsConfigured,
|
|
362
364
|
browserEngine,
|
|
363
365
|
codexGuidance,
|
|
366
|
+
codexComponents,
|
|
364
367
|
};
|
|
365
368
|
}
|
|
366
369
|
/**
|
|
@@ -13,7 +13,7 @@ export interface TokenBootstrapConfig {
|
|
|
13
13
|
enableOptimization: boolean;
|
|
14
14
|
/** Enable persistence (default: true) */
|
|
15
15
|
enablePersistence: boolean;
|
|
16
|
-
/** Storage directory for metrics (default:
|
|
16
|
+
/** Storage directory for metrics (default: <project>/.agentic-qe) */
|
|
17
17
|
storagePath: string;
|
|
18
18
|
/** Auto-save interval in ms (default: 60000 = 1 minute) */
|
|
19
19
|
autoSaveIntervalMs: number;
|