agentic-qe 3.13.12 → 3.14.1
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/helpers/brain-checkpoint.cjs +2 -1
- package/.claude/helpers/validate-v3-config.sh +6 -5
- package/.claude/hooks/aqe-hook.cjs +14 -14
- package/.claude/skills/qe-browser/evals/qe-browser.yaml +30 -41
- package/.claude/skills/qe-browser/fixtures/serve-skills.js +37 -0
- package/.claude/skills/qe-browser/scripts/lib/vibium.js +1 -1
- package/.claude/skills/qe-browser/scripts/smoke-test.sh +56 -25
- package/.claude/skills/qe-browser/scripts/visual-diff.js +24 -15
- package/.claude/skills/qe-court/SKILL.md +4 -4
- package/.claude/skills/qe-court/config-schema.json +38 -0
- package/.claude/skills/qe-court/evals/qe-court.yaml +8 -8
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +130 -0
- package/assets/skills/qe-browser/evals/qe-browser.yaml +30 -41
- package/assets/skills/qe-browser/fixtures/serve-skills.js +37 -0
- package/assets/skills/qe-browser/scripts/lib/vibium.js +1 -1
- package/assets/skills/qe-browser/scripts/smoke-test.sh +56 -25
- package/assets/skills/qe-browser/scripts/visual-diff.js +24 -15
- package/assets/skills/qe-court/SKILL.md +4 -4
- package/assets/skills/qe-court/config-schema.json +38 -0
- package/assets/skills/qe-court/evals/qe-court.yaml +8 -8
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/brain-commands.d.ts +1 -0
- package/dist/cli/brain-commands.js +1 -0
- package/dist/cli/bundle.js +7 -7
- package/dist/cli/chunks/adapter-I2N7PEKG.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-7I7LZFNC.js → agent-booster-wasm-OY5Y2CUM.js} +2 -2
- package/dist/cli/chunks/{agent-handler-QZZT52BH.js → agent-handler-TUOH55LD.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-MLQS5Y26.js → agent-memory-branch-XM3IYKT3.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-U4ALUH6A.js +2 -0
- package/dist/cli/chunks/{arena-WRIY37EJ.js → arena-DOCLIEBL.js} +4 -4
- package/dist/cli/chunks/{arena-IM4CP6LP.js → arena-UMFJZKG7.js} +2 -2
- package/dist/cli/chunks/{audit-BSAQ4EFN.js → audit-KZLU5VLW.js} +3 -3
- package/dist/cli/chunks/base-RCYIBNHM.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-X2XZUXWZ.js → better-sqlite3-MIEZBNUI.js} +2 -2
- package/dist/cli/chunks/brain-handler-6PZN46B7.js +90 -0
- package/dist/cli/chunks/{branch-enumerator-NI4Q7DSJ.js → branch-enumerator-XCETHA4F.js} +2 -2
- package/dist/cli/chunks/{browser-PXBLORUZ.js → browser-UEXISDCJ.js} +2 -2
- package/dist/cli/chunks/browser-workflow-L6TDB5O5.js +2 -0
- package/dist/cli/chunks/{chunk-5PNQNBDZ.js → chunk-3AYNHOWS.js} +1 -1
- package/dist/cli/chunks/{chunk-NL2SCAGJ.js → chunk-3BRR2FLH.js} +3 -3
- package/dist/cli/chunks/chunk-3FFMUB3B.js +14 -0
- package/dist/cli/chunks/{chunk-GJJWXRAD.js → chunk-3JMSXOU4.js} +2 -2
- package/dist/cli/chunks/{chunk-MB2KLJ6Q.js → chunk-3TMUCJNJ.js} +1 -1
- package/dist/cli/chunks/{chunk-JVFZAJ5N.js → chunk-3WSH4HD2.js} +2 -2
- package/dist/cli/chunks/{chunk-SCQNISGS.js → chunk-3XRXUVUI.js} +1 -1
- package/dist/cli/chunks/{chunk-Z56BBX77.js → chunk-45S5553E.js} +2 -2
- package/dist/cli/chunks/{chunk-6BSZHNOC.js → chunk-4MT62HKK.js} +1 -1
- package/dist/cli/chunks/{chunk-PVINNJ4P.js → chunk-4ZLFUO4I.js} +2 -2
- package/dist/cli/chunks/{chunk-MYVKTG55.js → chunk-5F5V4QYU.js} +3 -3
- package/dist/cli/chunks/{chunk-2W3D5A4R.js → chunk-5KP62DC3.js} +2 -2
- package/dist/cli/chunks/{chunk-BODFJ3DC.js → chunk-5NSSJUWW.js} +2 -2
- package/dist/cli/chunks/{chunk-KXSUDN46.js → chunk-5T6PAUZD.js} +1 -1
- package/dist/cli/chunks/{chunk-7ZVO7I4Q.js → chunk-5TYGSQOL.js} +1 -1
- package/dist/cli/chunks/{chunk-M7CPJW53.js → chunk-5Y2QFSVZ.js} +2 -2
- package/dist/cli/chunks/{chunk-VQD2ELNL.js → chunk-6B77GPWL.js} +2 -2
- package/dist/cli/chunks/{chunk-GJUGG6UR.js → chunk-6DDMHZWH.js} +2 -2
- package/dist/cli/chunks/{chunk-IPZEBALY.js → chunk-6HMNN2Y2.js} +54 -54
- package/dist/cli/chunks/{chunk-M73KM3AZ.js → chunk-6YIMLUH6.js} +160 -26
- package/dist/cli/chunks/{chunk-UBOGJHWC.js → chunk-6Z6Y3YBX.js} +1 -1
- package/dist/cli/chunks/{chunk-M3354CE4.js → chunk-75SC3GEX.js} +2 -2
- package/dist/cli/chunks/{chunk-TJVTV3HP.js → chunk-7AF55H2D.js} +2 -2
- package/dist/cli/chunks/{chunk-3XVZHJQT.js → chunk-7AYTM426.js} +1 -1
- package/dist/cli/chunks/{chunk-U5G6OC2C.js → chunk-7GF6IRSU.js} +2 -2
- package/dist/cli/chunks/{chunk-LRO74LPA.js → chunk-7XL2D56F.js} +4 -4
- package/dist/cli/chunks/{chunk-MGKH4LCM.js → chunk-A6RB34Y6.js} +1 -1
- package/dist/cli/chunks/{chunk-X2SZCVDA.js → chunk-AESYVAPH.js} +8 -7
- package/dist/cli/chunks/{chunk-3ASVQILY.js → chunk-AZUC7E5S.js} +2 -2
- package/dist/cli/chunks/{chunk-R7LGVJMZ.js → chunk-B6Y6AF4M.js} +2 -2
- package/dist/cli/chunks/chunk-C3XNFIOM.js +2 -0
- package/dist/cli/chunks/{chunk-ZSAGRDXA.js → chunk-CBWF42ET.js} +2 -2
- package/dist/cli/chunks/{chunk-VNODKACB.js → chunk-CCZZZBAO.js} +2 -2
- package/dist/cli/chunks/{chunk-5E76HULA.js → chunk-CGDW47WP.js} +2 -2
- package/dist/cli/chunks/chunk-CGZ7LTUK.js +2 -0
- package/dist/cli/chunks/{chunk-6KI6LAAZ.js → chunk-D6RCRTTR.js} +2 -2
- package/dist/cli/chunks/{chunk-TB2N3CAK.js → chunk-DFXQLHQM.js} +2 -2
- package/dist/cli/chunks/chunk-DKSLJZVA.js +2 -0
- package/dist/cli/chunks/{chunk-JTYCOFTD.js → chunk-DKUKGBJE.js} +1 -1
- package/dist/cli/chunks/{chunk-AN5CGTTJ.js → chunk-DKXSJDII.js} +2 -2
- package/dist/cli/chunks/chunk-EEJP3WTQ.js +4 -0
- package/dist/cli/chunks/{chunk-ZMYV4R32.js → chunk-EHW62JL2.js} +1 -1
- package/dist/cli/chunks/{chunk-WYFAPA2G.js → chunk-EPBWFTHH.js} +2 -2
- package/dist/cli/chunks/{chunk-P6EFKHNI.js → chunk-ERTGGFXZ.js} +2 -2
- package/dist/cli/chunks/{chunk-G45AOQDZ.js → chunk-F7TRO2OM.js} +1 -1
- package/dist/cli/chunks/{chunk-XT473WPO.js → chunk-FFRKTZYP.js} +2 -2
- package/dist/cli/chunks/{chunk-5VSS2RBD.js → chunk-FH7SCX2I.js} +2 -2
- package/dist/cli/chunks/{chunk-44NPKZGI.js → chunk-FHBGALBG.js} +2 -2
- package/dist/cli/chunks/{chunk-NTALX2YC.js → chunk-FOAFRC2W.js} +2 -2
- package/dist/cli/chunks/{chunk-7LATB5IR.js → chunk-FPBQ7BXU.js} +2 -2
- package/dist/cli/chunks/{chunk-AKUDUB3O.js → chunk-FRRRDCXY.js} +2 -2
- package/dist/cli/chunks/{chunk-NG6A7LCG.js → chunk-FZ47ZCRL.js} +1 -1
- package/dist/cli/chunks/{chunk-VD53LBF7.js → chunk-GH3NJOTC.js} +3 -3
- package/dist/cli/chunks/{chunk-NDRZZSD5.js → chunk-GO66DCIZ.js} +2 -2
- package/dist/cli/chunks/{chunk-Z6DSYLAG.js → chunk-GRVR3Y6I.js} +1 -1
- package/dist/cli/chunks/chunk-GYTWUOKU.js +65 -0
- package/dist/cli/chunks/{chunk-6KKVMPPR.js → chunk-H2DX36SC.js} +2 -2
- package/dist/cli/chunks/{chunk-NJ3QXJ54.js → chunk-H5LSXVWY.js} +2 -2
- package/dist/cli/chunks/{chunk-HQWFZQMJ.js → chunk-HBAQVJDP.js} +2 -2
- package/dist/cli/chunks/{chunk-33YZGOT6.js → chunk-HCCILQGN.js} +2 -2
- package/dist/cli/chunks/{chunk-KRZYWVS3.js → chunk-HJD52N32.js} +2 -2
- package/dist/cli/chunks/{chunk-IPDM3CAK.js → chunk-HKU5PPS7.js} +1 -1
- package/dist/cli/chunks/{chunk-7RVLVIAI.js → chunk-HPQU6XZH.js} +1 -1
- package/dist/cli/chunks/{chunk-TWUWLSGQ.js → chunk-HRUQWABO.js} +10 -10
- package/dist/cli/chunks/{chunk-HAJG44BD.js → chunk-IGRTQ6VT.js} +2 -2
- package/dist/cli/chunks/{chunk-WXU7FAEB.js → chunk-IIBXGHZT.js} +2 -2
- package/dist/cli/chunks/{chunk-QG5L2JM5.js → chunk-IYB3GRXF.js} +10 -10
- package/dist/cli/chunks/{chunk-NNLZAVFH.js → chunk-IYIMLLUV.js} +1 -1
- package/dist/cli/chunks/{chunk-SXFSJJZF.js → chunk-J2VF7ZO7.js} +2 -2
- package/dist/cli/chunks/{chunk-4FVOJBEU.js → chunk-J33LKXVH.js} +1 -1
- package/dist/cli/chunks/{chunk-IOJ34SXJ.js → chunk-J7VAD4RG.js} +2 -2
- package/dist/cli/chunks/{chunk-VQCLSX7T.js → chunk-JJ4GUO4K.js} +1 -1
- package/dist/cli/chunks/{chunk-QM4Z7TQH.js → chunk-JMULRLD4.js} +1 -1
- package/dist/cli/chunks/{chunk-LXVT6JXO.js → chunk-JNSTKE3K.js} +2 -2
- package/dist/cli/chunks/{chunk-SOS37ECY.js → chunk-JZUWPDVS.js} +1 -1
- package/dist/cli/chunks/chunk-KHUO4NCW.js +11 -0
- package/dist/cli/chunks/chunk-KXMW7XTJ.js +2 -0
- package/dist/cli/chunks/{chunk-4AITMWFZ.js → chunk-KXTN3FR4.js} +2 -2
- package/dist/cli/chunks/{chunk-4Z4X2ND4.js → chunk-L4WATX6B.js} +2 -2
- package/dist/cli/chunks/{chunk-GMLRIZ4E.js → chunk-L66BWYQH.js} +1 -1
- package/dist/cli/chunks/{chunk-52VGZJSD.js → chunk-LJ63HPPN.js} +1 -1
- package/dist/cli/chunks/{chunk-WE3VKDMK.js → chunk-LMPK63PO.js} +3 -3
- package/dist/cli/chunks/{chunk-S6WHYOWV.js → chunk-LQDFWLKK.js} +27 -25
- package/dist/cli/chunks/{chunk-EG73WYAW.js → chunk-LSXQPMPI.js} +2 -2
- package/dist/cli/chunks/{chunk-NJ4YVAG7.js → chunk-MDLLEUFN.js} +3 -3
- package/dist/cli/chunks/{chunk-YQOQVSYU.js → chunk-MFAN5W27.js} +1 -1
- package/dist/cli/chunks/{chunk-A5RWLPVT.js → chunk-MZ2PJUN6.js} +2 -2
- package/dist/cli/chunks/{chunk-HRTSYT4N.js → chunk-N22LMACN.js} +2 -2
- package/dist/cli/chunks/{chunk-L3GBNX7B.js → chunk-NAJCQJSK.js} +2 -2
- package/dist/cli/chunks/{chunk-XM5I7J5S.js → chunk-ND6JBUVH.js} +2 -2
- package/dist/cli/chunks/{chunk-YL2GOJF6.js → chunk-NEEZ6M4W.js} +2 -2
- package/dist/cli/chunks/{chunk-DGFINXUE.js → chunk-NNJ63W77.js} +1 -1
- package/dist/cli/chunks/{chunk-G6FJHDUG.js → chunk-O7KF3GBV.js} +1 -1
- package/dist/cli/chunks/{chunk-RP2BRRLX.js → chunk-OBKMLOHU.js} +2 -2
- package/dist/cli/chunks/{chunk-AOOCV56W.js → chunk-OBLHI4HA.js} +1 -1
- package/dist/cli/chunks/{chunk-OZ53BIY5.js → chunk-ODNLKYOM.js} +1 -1
- package/dist/cli/chunks/{chunk-VBHA4SDU.js → chunk-PMREFRPP.js} +2 -2
- package/dist/cli/chunks/{chunk-ASWWBNX2.js → chunk-PMUF7WU6.js} +2 -2
- package/dist/cli/chunks/{chunk-I5SXLV7D.js → chunk-PS5NIMWJ.js} +2 -2
- package/dist/cli/chunks/chunk-PS6Y662P.js +13 -0
- package/dist/cli/chunks/{chunk-N4OQ4D4V.js → chunk-PYAH4K2U.js} +2 -2
- package/dist/cli/chunks/{chunk-H3GAR4SV.js → chunk-PZZX57ZA.js} +2 -2
- package/dist/cli/chunks/chunk-QAE4BOIV.js +2 -0
- package/dist/cli/chunks/{chunk-7A4WTRWI.js → chunk-QIY43XQJ.js} +1 -1
- package/dist/cli/chunks/{chunk-MLXLGBQZ.js → chunk-QM6EJHP5.js} +1 -1
- package/dist/cli/chunks/{chunk-4ANJV6I4.js → chunk-QMTBWHGR.js} +3 -3
- package/dist/cli/chunks/{chunk-IT5QIUUA.js → chunk-RCHDSUVU.js} +2 -2
- package/dist/cli/chunks/{chunk-AYH3DMW2.js → chunk-RUEHSOE6.js} +1 -1
- package/dist/cli/chunks/{chunk-DCVFHVPR.js → chunk-RVCMZUSJ.js} +2 -2
- package/dist/cli/chunks/{chunk-2JAC57JE.js → chunk-RXHI6CKK.js} +1 -1
- package/dist/cli/chunks/{chunk-QXO35J6F.js → chunk-RXPHQ4ZE.js} +2 -2
- package/dist/cli/chunks/{chunk-FI6J3UHJ.js → chunk-RYHCYTFE.js} +1 -1
- package/dist/cli/chunks/{chunk-DFLASG3B.js → chunk-S4WIAKPL.js} +1 -1
- package/dist/cli/chunks/{chunk-2VY7FL6A.js → chunk-S53ZUAVI.js} +2 -2
- package/dist/cli/chunks/{chunk-4M7YZ2X7.js → chunk-SEKOMKNG.js} +1 -1
- package/dist/cli/chunks/{chunk-UC4EIULB.js → chunk-SZRDEPUY.js} +19 -19
- package/dist/cli/chunks/chunk-T7XYQX5G.js +24 -0
- package/dist/cli/chunks/{chunk-OG3DBHIV.js → chunk-TF33GKWA.js} +2 -2
- package/dist/cli/chunks/{chunk-2VTX4SYW.js → chunk-TGFJUL6M.js} +2 -2
- package/dist/cli/chunks/{chunk-4THFPRFM.js → chunk-TLD727EF.js} +2 -2
- package/dist/cli/chunks/{chunk-7PCIN7UN.js → chunk-TQ2JZVZ3.js} +2 -2
- package/dist/cli/chunks/{chunk-UWZYXI3R.js → chunk-TT7DF2GX.js} +2 -2
- package/dist/cli/chunks/{chunk-X3JNFQW2.js → chunk-UCJEAK7D.js} +2 -2
- package/dist/cli/chunks/{chunk-AM42ROKZ.js → chunk-UN7EHLRV.js} +1 -1
- package/dist/cli/chunks/{chunk-42AS3HPO.js → chunk-UUE5CBZQ.js} +2 -2
- package/dist/cli/chunks/{chunk-E67ZXRG6.js → chunk-UWRMPRY5.js} +1 -1
- package/dist/cli/chunks/{chunk-4YFXF5AQ.js → chunk-VEWYUEVY.js} +5 -5
- package/dist/cli/chunks/{chunk-UJUK6T4V.js → chunk-VUXHJPUS.js} +2 -2
- package/dist/cli/chunks/{chunk-VA2ORJB5.js → chunk-VVP2ROXD.js} +2 -2
- package/dist/cli/chunks/{chunk-BZIPYXSW.js → chunk-WFJKLM6Z.js} +3 -3
- package/dist/cli/chunks/{chunk-MLFELTJX.js → chunk-X5G3UDWP.js} +2 -2
- package/dist/cli/chunks/{chunk-IQH2RDN3.js → chunk-Y63V33M6.js} +5 -5
- package/dist/cli/chunks/{chunk-XIKYUBIV.js → chunk-YXN47QOI.js} +2 -2
- package/dist/cli/chunks/{chunk-RP5VFZJO.js → chunk-Z5YU2TDS.js} +2 -2
- package/dist/cli/chunks/{chunk-KYJBJ56M.js → chunk-ZAHCVRR7.js} +2 -2
- package/dist/cli/chunks/{chunk-66OQ7AB3.js → chunk-ZC3HC6FO.js} +1 -1
- package/dist/cli/chunks/{ci-QAUD62WH.js → ci-Q2VX75PS.js} +2 -2
- package/dist/cli/chunks/{ci-output-TZDVTNE7.js → ci-output-MD5GTVR2.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ZWPHJ7YJ.js → circuit-breaker-JMRLG2XI.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-SCB4EURN.js → claude-flow-setup-IMXYALBU.js} +2 -2
- package/dist/cli/chunks/client-L4PIXCGV.js +2 -0
- package/dist/cli/chunks/{cline-installer-EHZLMLXF.js → cline-installer-HWFASEGE.js} +2 -2
- package/dist/cli/chunks/{code-3N6PBJMK.js → code-3V37TCAD.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-6DIKHNRI.js → code-index-extractor-5V54WGFL.js} +2 -2
- package/dist/cli/chunks/codex-installer-UCA5AVE6.js +14 -0
- package/dist/cli/chunks/{completions-5MKWWCCE.js → completions-2DMRCQU6.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-TPM4IPEK.js → complexity-analyzer-MMQRXBTD.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-VXODKGVX.js → continuedev-installer-FAARXP3S.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-PVD5O56P.js → copilot-installer-AKQALMB5.js} +2 -2
- package/dist/cli/chunks/core-handlers-KROSXP4V.js +2 -0
- package/dist/cli/chunks/{cost-tracker-JOMZEQF3.js → cost-tracker-AXWHDND5.js} +2 -2
- package/dist/cli/chunks/{coverage-HTXLEV3B.js → coverage-ZLSKKCG5.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-WMTYBOON.js +2 -0
- package/dist/cli/chunks/{cursor-installer-SHKDTDDZ.js → cursor-installer-UALCQKVD.js} +2 -2
- package/dist/cli/chunks/{daemon-FCFEWVVJ.js → daemon-4LNOPJGN.js} +3 -3
- package/dist/cli/chunks/{daemon-PN4FEPLE.js → daemon-K3DFGCXC.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-PLOHU5SR.js → dag-attention-scheduler-LCQ7MYKC.js} +2 -2
- package/dist/cli/chunks/{detect-F3H4ZEZY.js → detect-P7PEN3MZ.js} +2 -2
- package/dist/cli/chunks/{dist-node-5TC665N6.js → dist-node-I72BJC2D.js} +2 -2
- package/dist/cli/chunks/{domain-handler-ZIWVFXCU.js → domain-handler-LROF6KWN.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-7Q5JYMYR.js → domain-transfer-M2ZSSTPV.js} +2 -2
- package/dist/cli/chunks/dream-AV63YQ2Y.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-MTBPUGO4.js +3 -0
- package/dist/cli/chunks/{eval-E2K2T75A.js → eval-O24ALB3W.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-Z5SE2O53.js → experience-capture-middleware-7JXEOGRE.js} +3 -3
- package/dist/cli/chunks/{fast-paths-3H52RSUK.js → fast-paths-4CFYJV4U.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ONIKUZVK.js → feature-flags-CHPUA7IM.js} +2 -2
- package/dist/cli/chunks/{feature-flags-LUHSMHPS.js → feature-flags-E6PIM6ZB.js} +2 -2
- package/dist/cli/chunks/{file-discovery-FLYSYSS4.js → file-discovery-2ANIAUCP.js} +2 -2
- package/dist/cli/chunks/{fleet-6OJUAAKV.js → fleet-2MQ3OGCP.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-PUL6B7KZ.js → gnn-wrapper-P7JW3622.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-HGHHDUDY.js → heartbeat-handler-WWWZSA7V.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-5IZUGMC2.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-NV2NNBJL.js +2 -0
- package/dist/cli/chunks/hnsw-index-GRJ3KA2O.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-NDZSNMYX.js → hnsw-legacy-bridge-W634ZOTV.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-PISLKSO2.js → hnswlib-node-SLZDLMKM.js} +2 -2
- package/dist/cli/chunks/{hooks-WYG54MRI.js → hooks-3BFAZGG7.js} +10 -10
- package/dist/cli/chunks/{hypergraph-engine-EDHKHZZ2.js → hypergraph-engine-XJSGXP2J.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-OCHZAPPL.js → hypergraph-handler-RVUWZMOX.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-YM4QUWVH.js +2 -0
- package/dist/cli/chunks/{init-handler-5TCJ672H.js → init-handler-FYOZNNNO.js} +9 -8
- package/dist/cli/chunks/init-wizard-YESXGIK6.js +2 -0
- package/dist/cli/chunks/kernel-VH5SKESU.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-SWUQRCTZ.js → kilocode-installer-MAAKFVSB.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-L22EBAM5.js → kiro-installer-GX3TLZC5.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-F3NL4WJV.js +2 -0
- package/dist/cli/chunks/learning-T4QZ6C26.js +122 -0
- package/dist/cli/chunks/{llm-router-F2L4LFT2.js → llm-router-N2M4WXOC.js} +14 -14
- package/dist/cli/chunks/llm-router-service-HQYCJMPK.js +2 -0
- package/dist/cli/chunks/{load-A4ZF2KHC.js → load-6RU3G4P2.js} +2 -2
- package/dist/cli/chunks/load-test-GWRGKWMN.js +2 -0
- package/dist/cli/chunks/{mcp-T2Z46NNK.js → mcp-EFBO7BAU.js} +2 -2
- package/dist/cli/chunks/{memory-PUC3J6XC.js → memory-AXU2M3DN.js} +5 -5
- package/dist/cli/chunks/memory-backend-7A2PFKPV.js +2 -0
- package/dist/cli/chunks/memory-handlers-65CXN76C.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-U5L4FI4O.js → multi-model-executor-W7AFGVNH.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-UWI6KHYH.js → opencode-installer-KJE2RLCH.js} +2 -2
- package/dist/cli/chunks/{orchestrator-3BEI7R5D.js → orchestrator-CL6MLGVU.js} +22 -24
- package/dist/cli/chunks/pattern-null-store-K2WPRYCP.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-EGWUI5LU.js → pattern-usage-recorder-7SNSJ7K2.js} +2 -2
- package/dist/cli/chunks/{pipeline-JG6M4RHD.js → pipeline-3UU6ON3F.js} +2 -2
- package/dist/cli/chunks/platform-SNMPIDIT.js +2 -0
- package/dist/cli/chunks/{plugin-EEGN3PMK.js → plugin-65IIUUCU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-7KZAINFT.js → prime-radiant-advanced-wasm-WWWJRLRP.js} +2 -2
- package/dist/cli/chunks/protocol-executor-TJDLEHND.js +2 -0
- package/dist/cli/chunks/{protocol-handler-UCEHYK2R.js → protocol-handler-SEBHCLLJ.js} +2 -2
- package/dist/cli/chunks/{prove-JSNG75VD.js → prove-N4X7CCJ4.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-CGRMFPDM.js +2 -0
- package/dist/cli/chunks/{quality-7SRM2HBM.js → quality-LBCJWXMU.js} +2 -2
- package/dist/cli/chunks/quality-gate-KZIQI7QT.js +7 -0
- package/dist/cli/chunks/queen-coordinator-FKP6QZAQ.js +2 -0
- package/dist/cli/chunks/real-embeddings-XCZFHFME.js +2 -0
- package/dist/cli/chunks/{roocode-installer-UYQK64BZ.js → roocode-installer-P3O6B7PT.js} +2 -2
- package/dist/cli/chunks/router-KZ5BISAM.js +2 -0
- package/dist/cli/chunks/routing-feedback-O4Y5TTR6.js +2 -0
- package/dist/cli/chunks/{routing-handler-PY3KPDTH.js → routing-handler-OXZ4DOV4.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-GCAOUTYS.js → ruvector-commands-PSY5IDSL.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-NG3UF3D5.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-PUHVTKQY.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-4SUT7GTJ.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-ODXFKZ6G.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-HNDKOM4L.js → rvf-store-integrity-TCKC22FH.js} +2 -2
- package/dist/cli/chunks/safe-db-BUQDNH2R.js +2 -0
- package/dist/cli/chunks/schedule-ZXNDZNNB.js +2 -0
- package/dist/cli/chunks/scheduler-YUQQWWW3.js +2 -0
- package/dist/cli/chunks/{security-MQ2VB7PY.js → security-RQGUQGSI.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-TAZEU6QK.js → shared-rvf-adapter-ZJFN52C2.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-B7N6AOCY.js → shared-rvf-dual-writer-V2R37HWV.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-HVSX46C7.js +2 -0
- package/dist/cli/chunks/{status-handler-NZP7DFHE.js → status-handler-XEKWNVDR.js} +2 -2
- package/dist/cli/chunks/{structural-health-ALLUQ4X6.js → structural-health-QMIW6WUN.js} +2 -2
- package/dist/cli/chunks/{sync-WJJG5J6V.js → sync-GDYJ2ULT.js} +2 -2
- package/dist/cli/chunks/{sync-MM7OCUYD.js → sync-H5SXWXPP.js} +2 -2
- package/dist/cli/chunks/{task-handler-CAQUEEB4.js → task-handler-EPLKCQHY.js} +2 -2
- package/dist/cli/chunks/{task-handlers-25BJ7D3W.js → task-handlers-22NTLWTC.js} +3 -3
- package/dist/cli/chunks/{test-HW7GVGVN.js → test-WHJFRZ3F.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-HTMFJMSP.js → test-scheduling-KZVFZOQN.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-BW5WA6PY.js +2 -0
- package/dist/cli/chunks/{token-usage-RJZDMBDP.js → token-usage-4A4O57R6.js} +2 -2
- package/dist/cli/chunks/{transformers-3YFW3EUO.js → transformers-FYTBRV46.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-U3PQPIK7.js → tree-sitter-wasm-parser-TZIJPLF3.js} +2 -2
- package/dist/cli/chunks/{types-7Q762WDO.js → types-B2L6LKFA.js} +2 -2
- package/dist/cli/chunks/unified-memory-AHN4RVBP.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-XB7JPF74.js +2 -0
- package/dist/cli/chunks/unified-persistence-53KWNFQJ.js +2 -0
- package/dist/cli/chunks/{upgrade-F7MKJWBQ.js → upgrade-O6U7EA7V.js} +2 -2
- package/dist/cli/chunks/{validate-B27AVRA6.js → validate-FHNZ5XL3.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-GYZR3GNL.js → validate-swarm-YOLLUEHE.js} +2 -2
- package/dist/cli/chunks/{vibium-W4XQMPJP.js → vibium-UXRPEIXB.js} +2 -2
- package/dist/cli/chunks/visual-security-CRPYS7L7.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-I7CDCFJU.js → web-tree-sitter-JJ5UIYFD.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-UYLHFDHU.js → windsurf-installer-I4QMQPIL.js} +2 -2
- package/dist/cli/chunks/witness-chain-5WCR2CAS.js +2 -0
- package/dist/cli/chunks/{witness-chain-B66SYZKU.js → witness-chain-BIJ7WDGS.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-U4JPAHVW.js → witness-key-manager-3SMMLJLP.js} +2 -2
- package/dist/cli/chunks/{workflow-DYMO47FF.js → workflow-33PUXXJV.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-RZWCLTT5.js +2 -0
- package/dist/cli/chunks/{wrappers-7S6DQTEA.js → wrappers-ASAU36VK.js} +2 -2
- package/dist/cli/commands/learning.js +44 -0
- package/dist/cli/commands/llm-router.js +27 -21
- package/dist/cli/commands/platform.d.ts +1 -0
- package/dist/cli/commands/platform.js +28 -6
- package/dist/cli/commands/quality-gate.js +25 -3
- package/dist/cli/handlers/brain-handler.js +2 -0
- package/dist/cli/handlers/init-handler.d.ts +5 -0
- package/dist/cli/handlers/init-handler.js +6 -0
- package/dist/cli/index.js +4 -1
- package/dist/context/compaction/index.d.ts +1 -0
- package/dist/context/compaction/index.js +3 -0
- package/dist/context/compaction/instruction-provenance.d.ts +20 -0
- package/dist/context/compaction/instruction-provenance.js +18 -0
- package/dist/context/compaction/tier2-session-summary.d.ts +8 -0
- package/dist/context/compaction/tier2-session-summary.js +20 -0
- package/dist/context/compaction/tier3-llm-compact.d.ts +4 -0
- package/dist/context/compaction/tier3-llm-compact.js +32 -4
- package/dist/contracts/verdicts.d.ts +625 -0
- package/dist/contracts/verdicts.js +202 -14
- package/dist/coordination/handlers/coverage-handlers.js +8 -1
- package/dist/domains/chaos-resilience/diagnosis/corpus.d.ts +5 -0
- package/dist/domains/chaos-resilience/diagnosis/corpus.js +141 -0
- package/dist/domains/chaos-resilience/diagnosis/detectors.d.ts +11 -0
- package/dist/domains/chaos-resilience/diagnosis/detectors.js +109 -0
- package/dist/domains/chaos-resilience/diagnosis/index.d.ts +5 -0
- package/dist/domains/chaos-resilience/diagnosis/index.js +5 -0
- package/dist/domains/chaos-resilience/diagnosis/scorer.d.ts +8 -0
- package/dist/domains/chaos-resilience/diagnosis/scorer.js +128 -0
- package/dist/domains/chaos-resilience/diagnosis/types.d.ts +171 -0
- package/dist/domains/chaos-resilience/diagnosis/types.js +3 -0
- package/dist/domains/chaos-resilience/index.d.ts +1 -0
- package/dist/domains/chaos-resilience/index.js +1 -0
- package/dist/domains/index.d.ts +1 -0
- package/dist/domains/index.js +1 -0
- package/dist/early-exit/early-exit-controller.d.ts +4 -2
- package/dist/early-exit/early-exit-controller.js +95 -7
- package/dist/early-exit/index.d.ts +1 -1
- package/dist/early-exit/speculative-executor.js +3 -0
- package/dist/early-exit/types.d.ts +51 -0
- package/dist/early-exit/types.js +3 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -1
- package/dist/init/browser-engine-installer.d.ts +11 -0
- package/dist/init/browser-engine-installer.js +35 -5
- package/dist/init/codex-installer.d.ts +11 -1
- package/dist/init/codex-installer.js +90 -24
- package/dist/init/init-wizard-hooks.js +11 -11
- package/dist/init/orchestrator.js +2 -0
- package/dist/init/phases/07-hooks.d.ts +3 -3
- package/dist/init/phases/07-hooks.js +19 -21
- package/dist/init/phases/09-assets.d.ts +4 -0
- package/dist/init/phases/09-assets.js +13 -10
- package/dist/init/phases/phase-interface.d.ts +2 -0
- package/dist/init/types.d.ts +4 -0
- package/dist/integrations/embeddings/base/EmbeddingGenerator.js +4 -2
- package/dist/integrations/ruvector/brain-exporter.d.ts +1 -1
- package/dist/integrations/ruvector/brain-exporter.js +15 -3
- package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +4 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +118 -37
- package/dist/integrations/ruvector/brain-search.d.ts +1 -1
- package/dist/integrations/ruvector/brain-search.js +1 -1
- package/dist/integrations/ruvector/brain-shared.d.ts +4 -2
- package/dist/integrations/ruvector/brain-shared.js +11 -4
- package/dist/integrations/ruvector/brain-table-ddl.d.ts +2 -2
- package/dist/integrations/ruvector/brain-table-ddl.js +20 -8
- package/dist/integrations/ruvector/cognitive-container.js +1 -1
- package/dist/integrations/ruvector/rvf-dual-writer.d.ts +4 -0
- package/dist/integrations/ruvector/rvf-dual-writer.js +57 -9
- package/dist/integrations/ruvector/rvf-store-integrity.js +1 -1
- package/dist/kernel/unified-memory-schemas.d.ts +4 -3
- package/dist/kernel/unified-memory-schemas.js +19 -9
- package/dist/kernel/unified-memory.d.ts +2 -0
- package/dist/kernel/unified-memory.js +19 -0
- package/dist/learning/embed-and-insert-pattern.js +6 -3
- package/dist/learning/embedding-space.d.ts +50 -0
- package/dist/learning/embedding-space.js +128 -0
- package/dist/learning/evidence-admission-store.d.ts +15 -0
- package/dist/learning/evidence-admission-store.js +68 -0
- package/dist/learning/index.d.ts +7 -0
- package/dist/learning/index.js +4 -0
- package/dist/learning/learning-evidence-admission.d.ts +44 -0
- package/dist/learning/learning-evidence-admission.js +97 -0
- package/dist/learning/pattern-mutation-error.d.ts +9 -0
- package/dist/learning/pattern-mutation-error.js +14 -0
- package/dist/learning/pattern-store.d.ts +5 -0
- package/dist/learning/pattern-store.js +60 -9
- package/dist/learning/qe-flywheel/coupled-anchor.d.ts +8 -0
- package/dist/learning/qe-flywheel/coupled-anchor.js +46 -3
- package/dist/learning/qe-reasoning-bank.js +28 -5
- package/dist/learning/real-embeddings.d.ts +3 -0
- package/dist/learning/real-embeddings.js +40 -3
- package/dist/learning/real-qe-reasoning-bank.js +7 -3
- package/dist/learning/rvf-pattern-migration.d.ts +2 -0
- package/dist/learning/rvf-pattern-migration.js +5 -3
- package/dist/learning/rvf-pattern-store.d.ts +3 -0
- package/dist/learning/rvf-pattern-store.js +44 -6
- package/dist/learning/sqlite-persistence.d.ts +7 -2
- package/dist/learning/sqlite-persistence.js +58 -21
- package/dist/learning/structural-retrieval/corpus.d.ts +5 -0
- package/dist/learning/structural-retrieval/corpus.js +97 -0
- package/dist/learning/structural-retrieval/evaluate.d.ts +7 -0
- package/dist/learning/structural-retrieval/evaluate.js +124 -0
- package/dist/learning/structural-retrieval/index.d.ts +6 -0
- package/dist/learning/structural-retrieval/index.js +4 -0
- package/dist/learning/structural-retrieval/receipt.d.ts +14 -0
- package/dist/learning/structural-retrieval/receipt.js +36 -0
- package/dist/learning/structural-retrieval/types.d.ts +83 -0
- package/dist/learning/structural-retrieval/types.js +2 -0
- package/dist/mcp/bundle.js +589 -433
- package/dist/mcp/handlers/memory-handlers.js +6 -2
- package/dist/mcp/services/session-resume.d.ts +15 -19
- package/dist/mcp/services/session-resume.js +204 -194
- package/dist/mcp/tools/quality-assessment/gate.d.ts +8 -5
- package/dist/mcp/tools/quality-assessment/gate.js +9 -4
- package/dist/migrations/20260830_add_learning_evidence_tables.d.ts +7 -0
- package/dist/migrations/20260830_add_learning_evidence_tables.js +173 -0
- package/dist/persistence/rvf-migration-adapter.d.ts +2 -0
- package/dist/persistence/rvf-migration-adapter.js +56 -12
- package/dist/shared/llm/llm-router-service.d.ts +8 -0
- package/dist/shared/llm/llm-router-service.js +21 -3
- package/dist/shared/sql-safety.js +4 -0
- package/dist/skills/qe-court/cli.d.ts +3 -0
- package/dist/skills/qe-court/cli.js +54 -0
- package/dist/validation/quality-gate-runner.d.ts +27 -4
- package/dist/validation/quality-gate-runner.js +33 -4
- package/dist/validation/verification-reach.d.ts +90 -0
- package/dist/validation/verification-reach.js +187 -0
- package/dist/verification/adversarial-verify/calibrate.d.ts +46 -2
- package/dist/verification/adversarial-verify/calibrate.js +104 -2
- package/dist/verification/adversarial-verify/index.d.ts +2 -2
- package/dist/verification/adversarial-verify/index.js +1 -1
- package/dist/verification/adversarial-verify/measurement-receipt.d.ts +13 -0
- package/dist/verification/adversarial-verify/measurement-receipt.js +136 -0
- package/dist/verification/adversarial-verify/synthesize.js +7 -10
- package/dist/verification/adversarial-verify/types.d.ts +35 -0
- package/dist/verification/adversarial-verify/verify.js +6 -1
- package/package.json +14 -6
- package/schemas/coverage-gap.schema.json +41 -0
- package/schemas/finding-verdict.schema.json +470 -0
- package/schemas/risk-decision.schema.json +41 -0
- package/dist/cli/chunks/adapter-FUV6LBJT.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-QNFNA3J4.js +0 -2
- package/dist/cli/chunks/base-37W2XIXC.js +0 -2
- package/dist/cli/chunks/brain-handler-TVTTWZGP.js +0 -89
- package/dist/cli/chunks/browser-workflow-PDIUEK7B.js +0 -2
- package/dist/cli/chunks/chunk-5PI75QYP.js +0 -4
- package/dist/cli/chunks/chunk-EDRPTLAX.js +0 -2
- package/dist/cli/chunks/chunk-GEQWCK4F.js +0 -2
- package/dist/cli/chunks/chunk-GQLJYTXN.js +0 -2
- package/dist/cli/chunks/chunk-NLZUGANH.js +0 -11
- package/dist/cli/chunks/chunk-O4BWESH5.js +0 -2
- package/dist/cli/chunks/chunk-PGFCKE4G.js +0 -12
- package/dist/cli/chunks/chunk-RACWX2ZX.js +0 -9
- package/dist/cli/chunks/chunk-SNC73DWF.js +0 -2
- package/dist/cli/chunks/chunk-TDVMILKO.js +0 -2
- package/dist/cli/chunks/chunk-TK5XLF3Z.js +0 -65
- package/dist/cli/chunks/chunk-UQ4UCHO7.js +0 -2
- package/dist/cli/chunks/chunk-VZGP77YU.js +0 -12
- package/dist/cli/chunks/chunk-WA6CSEOX.js +0 -2
- package/dist/cli/chunks/chunk-WYIXNHPF.js +0 -2
- package/dist/cli/chunks/client-4W3KWTAU.js +0 -2
- package/dist/cli/chunks/codex-installer-P7DPQMYL.js +0 -15
- package/dist/cli/chunks/core-handlers-BDU2XBLO.js +0 -2
- package/dist/cli/chunks/cross-domain-router-BPB6IHN4.js +0 -2
- package/dist/cli/chunks/dream-WFCZGFDY.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-VESJQSYD.js +0 -3
- package/dist/cli/chunks/heartbeat-scheduler-HWS4SHRM.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-7QOBHKRB.js +0 -2
- package/dist/cli/chunks/hnsw-index-6WUKYJH7.js +0 -2
- package/dist/cli/chunks/hybrid-router-525JTRA5.js +0 -2
- package/dist/cli/chunks/impact-analyzer-GG6CJEOK.js +0 -2
- package/dist/cli/chunks/init-wizard-4VFAOK4Y.js +0 -2
- package/dist/cli/chunks/kernel-N3FQGOST.js +0 -2
- package/dist/cli/chunks/knowledge-graph-I5QIHB4G.js +0 -2
- package/dist/cli/chunks/learning-TQOGG3CR.js +0 -119
- package/dist/cli/chunks/llm-router-service-NCJZYJLG.js +0 -2
- package/dist/cli/chunks/load-test-DCJEYIXD.js +0 -2
- package/dist/cli/chunks/memory-backend-O6KO2KTX.js +0 -2
- package/dist/cli/chunks/memory-handlers-4Z43WEKD.js +0 -2
- package/dist/cli/chunks/pattern-null-store-5WIJKX2K.js +0 -2
- package/dist/cli/chunks/platform-F76G6RUI.js +0 -2
- package/dist/cli/chunks/protocol-executor-5TPNAZTB.js +0 -2
- package/dist/cli/chunks/provider-manager-3VMOZ6HV.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-BATV4NTT.js +0 -2
- package/dist/cli/chunks/quality-gate-A5MPWHST.js +0 -7
- package/dist/cli/chunks/queen-coordinator-EIHGYBUO.js +0 -2
- package/dist/cli/chunks/real-embeddings-ZBF5EQOG.js +0 -2
- package/dist/cli/chunks/router-EMVGY4HU.js +0 -2
- package/dist/cli/chunks/routing-feedback-JUP4OFB2.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-BUNP4SKD.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-VSOAPLMB.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-LSWEHAWX.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-LOC42TQ6.js +0 -2
- package/dist/cli/chunks/safe-db-WQ62IQKV.js +0 -2
- package/dist/cli/chunks/schedule-XJRP57TE.js +0 -2
- package/dist/cli/chunks/scheduler-EZH5SDIM.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-HPEVCTIB.js +0 -2
- package/dist/cli/chunks/token-bootstrap-F2DCLWGW.js +0 -2
- package/dist/cli/chunks/unified-memory-ATILROKR.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-XJXAX7DW.js +0 -2
- package/dist/cli/chunks/unified-persistence-3TN5PBWE.js +0 -2
- package/dist/cli/chunks/visual-security-VFWRBCNA.js +0 -2
- package/dist/cli/chunks/witness-chain-JC5LEXRV.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-TKQUF2KN.js +0 -2
|
@@ -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.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.1");process.exit(0)}
|
|
2
|
+
import{b as $}from"./chunk-HPQU6XZH.js";import"./chunk-PMREFRPP.js";import{d as R}from"./chunk-UUE5CBZQ.js";import{b as k,c as C,d as b}from"./chunk-5Y2QFSVZ.js";import{c as W}from"./chunk-VVP2ROXD.js";import"./chunk-UWRMPRY5.js";import"./chunk-NAJCQJSK.js";import"./chunk-EHW62JL2.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.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(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
|
|
3
3
|
Running workflow from: ${t}
|
|
4
4
|
`));let s=k(c);if(!s.success||!s.workflow){console.log(o.red("Failed to parse pipeline:"));for(let w of s.errors)console.log(o.red(` ${w}`));await a(1)}let r={...W(l.params,"params")};if(s.pipeline){for(let w of s.pipeline.stages)if(w.params)for(let[S,h]of Object.entries(w.params))r[S]=h}if(!d.workflowOrchestrator.getWorkflow(s.workflow.id)){let w=d.workflowOrchestrator.registerWorkflow(s.workflow);w.success||(console.log(o.red(`Failed to register workflow: ${w.error.message}`)),await a(1))}let n=await d.workflowOrchestrator.executeWorkflow(s.workflow.id,r);if(!n.success){console.log(o.red(`Failed to start workflow: ${n.error.message}`)),await a(1);return}let p=n.value;if(console.log(o.cyan(` Execution ID: ${p}`)),console.log(o.gray(` Workflow: ${s.workflow.name}`)),console.log(o.gray(` Stages: ${s.workflow.steps.length}`)),console.log(""),l.watch){console.log(o.blue(`Workflow Progress:
|
|
5
5
|
`));let w,S=Date.now();for(;;){let g=d.workflowOrchestrator.getWorkflowStatus(p);if(!g)break;if(!w||w.progress!==g.progress||w.status!==g.status||JSON.stringify(w.currentSteps)!==JSON.stringify(g.currentSteps)){process.stdout.write("\r\x1B[K");let v="\u2588".repeat(Math.floor(g.progress/5))+"\u2591".repeat(20-Math.floor(g.progress/5)),D=g.status==="completed"?o.green:g.status==="failed"?o.red:g.status==="running"?o.yellow:o.gray;console.log(` [${v}] ${g.progress}% - ${D(g.status)}`),g.currentSteps.length>0&&l.verbose&&console.log(o.gray(` Running: ${g.currentSteps.join(", ")}`)),w=g}if(g.status==="completed"||g.status==="failed"||g.status==="cancelled")break;await new Promise(v=>setTimeout(v,500))}let h=d.workflowOrchestrator.getWorkflowStatus(p);if(h){console.log("");let g=h.duration||Date.now()-S;h.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(g)}`)),console.log(o.gray(` Completed: ${h.completedSteps.length} stages`)),h.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${h.skippedSteps.length} stages`))):h.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${h.error}`)),console.log(o.gray(` Failed stages: ${h.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${h.status}`))}}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${p}' to check progress`));console.log(""),await a(0)}catch(s){console.error(o.red(`
|
|
@@ -35,10 +35,10 @@ Workflow cancelled: ${t}
|
|
|
35
35
|
`)):console.log(o.red(`
|
|
36
36
|
Failed to cancel workflow: ${l.error.message}
|
|
37
37
|
`)),await a(l.success?0:1)}catch(l){console.error(o.red(`
|
|
38
|
-
Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-
|
|
38
|
+
Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-L6TDB5O5.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
|
|
39
39
|
Browser Workflow Templates:
|
|
40
40
|
`));for(let u of e.data.availableTemplates)console.log(` ${o.cyan(u)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await a(0)}catch(t){console.error(o.red(`
|
|
41
|
-
Failed:`),t),await a(1)}}),y.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)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-
|
|
41
|
+
Failed:`),t),await a(1)}}),y.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)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-L6TDB5O5.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-MD5GTVR2.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
|
|
42
42
|
File not found: ${p}
|
|
43
43
|
`)),await a(1)),f.workflowYaml=i.readFileSync(p,"utf-8")}else f.templateName=t;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.14.1");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-FH7SCX2I.js";import"./chunk-HCCILQGN.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-UWRMPRY5.js";import"./chunk-NAJCQJSK.js";import"./chunk-LJ63HPPN.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.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.
|
|
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.14.1");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-TQ2JZVZ3.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-S53ZUAVI.js";import"./chunk-6YIMLUH6.js";import"./chunk-HJD52N32.js";import"./chunk-AZUC7E5S.js";import"./chunk-CGZ7LTUK.js";import"./chunk-J7VAD4RG.js";import"./chunk-D6RCRTTR.js";import"./chunk-VVP2ROXD.js";import"./chunk-NAJCQJSK.js";import"./chunk-45S5553E.js";import"./chunk-CGDW47WP.js";import"./chunk-FPBQ7BXU.js";import"./chunk-L4WATX6B.js";import"./chunk-7GF6IRSU.js";import"./chunk-3WSH4HD2.js";import"./chunk-TGFJUL6M.js";import"./chunk-PYAH4K2U.js";import"./chunk-DKXSJDII.js";import"./chunk-EHW62JL2.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};
|
|
@@ -21,6 +21,8 @@ import { createLearningMetricsTracker, } from '../../learning/metrics-tracker.js
|
|
|
21
21
|
import { createRegretTracker, } from '../../learning/regret-tracker.js';
|
|
22
22
|
import { openDatabase } from '../../shared/safe-db.js';
|
|
23
23
|
import { createSQLitePatternStore } from '../../learning/sqlite-persistence.js';
|
|
24
|
+
import { getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
|
|
25
|
+
import { inspectEmbeddingSpaceRows } from '../../learning/embedding-space.js';
|
|
24
26
|
// Extracted helpers
|
|
25
27
|
import { initializeLearningSystem, printJson, printSuccess, printError, printInfo, displayDashboard, getDbPath, compressFile, decompressFile, verifyDatabaseIntegrity, getSchemaVersion, padRight, EXPORT_FORMAT_VERSION, DOMAIN_MAPPING, PATTERN_TYPE_MAPPING, } from './learning-helpers.js';
|
|
26
28
|
// ============================================================================
|
|
@@ -65,12 +67,54 @@ Examples:
|
|
|
65
67
|
registerImportMergeCommand(learning);
|
|
66
68
|
registerDreamCommand(learning);
|
|
67
69
|
registerBackfillEmbeddingsCommand(learning);
|
|
70
|
+
registerEmbeddingHealthCommand(learning);
|
|
68
71
|
registerRepairCommand(learning);
|
|
69
72
|
registerHealthCommand(learning);
|
|
70
73
|
registerLoopHealthCommand(learning);
|
|
71
74
|
return learning;
|
|
72
75
|
}
|
|
73
76
|
// ============================================================================
|
|
77
|
+
// Subcommand: embedding-health (#633)
|
|
78
|
+
// ============================================================================
|
|
79
|
+
function registerEmbeddingHealthCommand(learning) {
|
|
80
|
+
learning
|
|
81
|
+
.command('embedding-health')
|
|
82
|
+
.description('Display active and stored embedding-space provenance')
|
|
83
|
+
.option('--json', 'Output as JSON')
|
|
84
|
+
.action(async (options) => {
|
|
85
|
+
const dbPath = path.join(findProjectRoot(), '.agentic-qe', 'memory.db');
|
|
86
|
+
if (!existsSync(dbPath)) {
|
|
87
|
+
throw new Error('Database not found. Run "aqe init --auto" first.');
|
|
88
|
+
}
|
|
89
|
+
const db = openDatabase(dbPath, { readonly: true });
|
|
90
|
+
try {
|
|
91
|
+
const table = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get();
|
|
92
|
+
const hasSpaceId = table
|
|
93
|
+
? db.prepare("PRAGMA table_info('qe_pattern_embeddings')").all()
|
|
94
|
+
.some((column) => column.name === 'space_id')
|
|
95
|
+
: false;
|
|
96
|
+
const rows = table
|
|
97
|
+
? db.prepare(`SELECT ${hasSpaceId ? 'space_id' : 'NULL'} AS spaceId FROM qe_pattern_embeddings`).all()
|
|
98
|
+
: [];
|
|
99
|
+
const diagnostics = inspectEmbeddingSpaceRows(rows, getActiveEmbeddingSpaceIdentity()?.spaceId ?? null);
|
|
100
|
+
if (options.json) {
|
|
101
|
+
printJson(diagnostics);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
console.log(chalk.bold('\nEmbedding Space Health\n'));
|
|
105
|
+
console.log(` Status: ${diagnostics.status}`);
|
|
106
|
+
console.log(` Active space: ${diagnostics.activeSpaceId ?? '(runtime not initialized)'}`);
|
|
107
|
+
console.log(` Stored spaces: ${diagnostics.storedSpaceIds.join(', ') || '(none)'}`);
|
|
108
|
+
console.log(` Verified vectors: ${diagnostics.verifiedVectors}`);
|
|
109
|
+
console.log(` Mismatched vectors: ${diagnostics.mismatchedVectors}`);
|
|
110
|
+
console.log(` Unverified vectors: ${diagnostics.unverifiedVectors}\n`);
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
db.close();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
// ============================================================================
|
|
74
118
|
// Subcommand: backfill-embeddings
|
|
75
119
|
// ============================================================================
|
|
76
120
|
function registerBackfillEmbeddingsCommand(learning) {
|
|
@@ -687,29 +687,35 @@ async function executeAdvise(options) {
|
|
|
687
687
|
console.log(chalk.gray('Consulting advisor...'));
|
|
688
688
|
}
|
|
689
689
|
// Lazy-load to keep CLI cold-start fast when advise is not used
|
|
690
|
-
const {
|
|
691
|
-
const {
|
|
692
|
-
const
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
//
|
|
696
|
-
//
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
690
|
+
const { createLLMRouterService } = await import('../../shared/llm/llm-router-service.js');
|
|
691
|
+
const { MultiModelExecutor, DEFAULT_ADVISOR_MODEL } = await import('../../routing/advisor/multi-model-executor.js');
|
|
692
|
+
const requestedProvider = options.provider;
|
|
693
|
+
// Use the same config-aware construction path as the kernel. In particular,
|
|
694
|
+
// loadRouterConfig() registers ADR-127 external providers before the
|
|
695
|
+
// ProviderManager is built. The old minimal bootstrap bypassed that step,
|
|
696
|
+
// so `llm providers` recognized a declared host while `llm advise` rejected
|
|
697
|
+
// the same identity as unknown (#628).
|
|
698
|
+
const built = await createLLMRouterService({
|
|
699
|
+
projectRoot: configProjectRoot(),
|
|
700
|
+
// Advisor transcripts may be paired with ambient API credentials. A
|
|
701
|
+
// repository-controlled baseUrl must never become their destination.
|
|
702
|
+
allowProjectProviderEndpoints: false,
|
|
703
|
+
override: {
|
|
704
|
+
mode: 'manual',
|
|
705
|
+
...(requestedProvider ? { defaultProvider: requestedProvider } : {}),
|
|
706
|
+
...(options.model ? { defaultModel: options.model } : {}),
|
|
704
707
|
},
|
|
705
708
|
});
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
const
|
|
709
|
+
if (!built) {
|
|
710
|
+
throw new Error(`No enabled LLM provider is available for advisor${requestedProvider ? ` provider "${requestedProvider}"` : ''}.`);
|
|
711
|
+
}
|
|
712
|
+
// With no CLI/MCP override, honor the project's resolved default. Falling
|
|
713
|
+
// back to OpenRouter here made declared external defaults unreachable when
|
|
714
|
+
// an OpenRouter key happened to coexist in the environment.
|
|
715
|
+
const provider = requestedProvider ?? built.resolvedConfig.defaultProvider;
|
|
716
|
+
const model = options.model ?? built.resolvedConfig.providers?.[provider]?.defaultModel ??
|
|
717
|
+
built.resolvedConfig.defaultModel ?? DEFAULT_ADVISOR_MODEL;
|
|
718
|
+
const executor = new MultiModelExecutor(built.router);
|
|
713
719
|
const redactMode = (options.redact ?? 'strict');
|
|
714
720
|
const result = await executor.consult(transcript, {
|
|
715
721
|
provider,
|
|
@@ -22,6 +22,7 @@ export interface PlatformVerificationResult {
|
|
|
22
22
|
export interface PlatformVerificationOptions {
|
|
23
23
|
expectMcp?: boolean;
|
|
24
24
|
expectRuflo?: boolean;
|
|
25
|
+
guidancePolicy?: 'full' | 'compact' | 'none';
|
|
25
26
|
}
|
|
26
27
|
/** Inspect the complete installed surface for a platform without changing it. */
|
|
27
28
|
export declare function verifyPlatformConfiguration(projectRoot: string, platformId: PlatformId, options?: PlatformVerificationOptions): PlatformVerificationResult;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* setup - Set up a specific platform by name
|
|
8
8
|
* verify - Verify a platform's configuration
|
|
9
9
|
*/
|
|
10
|
-
import { Command } from 'commander';
|
|
10
|
+
import { Command, Option } from 'commander';
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import { existsSync, readFileSync } from 'node:fs';
|
|
13
13
|
import path from 'node:path';
|
|
@@ -65,6 +65,14 @@ function checkAqeEntry(filePath, _platform) {
|
|
|
65
65
|
return false;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
function detectCodexGuidance(content) {
|
|
69
|
+
const start = '<!-- BEGIN AGENTIC-QE CODEX -->';
|
|
70
|
+
const end = '<!-- END AGENTIC-QE CODEX -->';
|
|
71
|
+
const blocks = content.match(/<!-- BEGIN AGENTIC-QE CODEX -->[\s\S]*?<!-- END AGENTIC-QE CODEX -->/g) || [];
|
|
72
|
+
if (blocks.length === 0)
|
|
73
|
+
return content.includes(start) || content.includes(end) ? 'malformed' : 'none';
|
|
74
|
+
return blocks[0].includes('Discover AQE tools and skills from their live schemas') ? 'compact' : 'full';
|
|
75
|
+
}
|
|
68
76
|
/** Inspect the complete installed surface for a platform without changing it. */
|
|
69
77
|
export function verifyPlatformConfiguration(projectRoot, platformId, options = {}) {
|
|
70
78
|
const platform = PLATFORM_REGISTRY[platformId];
|
|
@@ -90,10 +98,14 @@ export function verifyPlatformConfiguration(projectRoot, platformId, options = {
|
|
|
90
98
|
}
|
|
91
99
|
const rulesPath = path.join(projectRoot, platform.rulesPath);
|
|
92
100
|
const rulesExists = existsSync(rulesPath);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
add('
|
|
101
|
+
if (platformId === 'codex') {
|
|
102
|
+
const expected = options.guidancePolicy ?? 'full';
|
|
103
|
+
const actual = rulesExists ? detectCodexGuidance(readFileSync(rulesPath, 'utf-8')) : 'none';
|
|
104
|
+
add('Behavioral rules', expected === 'none' || rulesExists, expected === 'none' ? 'intentionally disabled' : (rulesExists ? platform.rulesPath : `missing: ${platform.rulesPath}`));
|
|
105
|
+
add('Codex guidance', actual === expected, `selected=${expected}, detected=${actual}`);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
add('Behavioral rules', rulesExists, rulesExists ? platform.rulesPath : `missing: ${platform.rulesPath}`);
|
|
97
109
|
}
|
|
98
110
|
if (platformId === 'codex') {
|
|
99
111
|
const hooksPath = path.join(projectRoot, '.codex', 'hooks.json');
|
|
@@ -175,6 +187,9 @@ export function createPlatformCommand() {
|
|
|
175
187
|
.description('Set up a specific platform configuration')
|
|
176
188
|
.option('--overwrite', 'Overwrite existing configuration files')
|
|
177
189
|
.option('--with-ruflo', 'Add optional Ruflo guidance and lifecycle hooks (Codex only)')
|
|
190
|
+
.addOption(new Option('--codex-guidance <mode>', 'Codex AGENTS.md guidance policy')
|
|
191
|
+
.choices(['full', 'compact', 'none'])
|
|
192
|
+
.default('full'))
|
|
178
193
|
.action(async (name, options) => {
|
|
179
194
|
const projectRoot = process.cwd();
|
|
180
195
|
if (!isValidPlatformId(name)) {
|
|
@@ -222,7 +237,10 @@ export function createPlatformCommand() {
|
|
|
222
237
|
const installer = factory({
|
|
223
238
|
projectRoot,
|
|
224
239
|
overwrite: options.overwrite,
|
|
225
|
-
...(name === 'codex' ? {
|
|
240
|
+
...(name === 'codex' ? {
|
|
241
|
+
includeRuflo: options.withRuflo,
|
|
242
|
+
guidancePolicy: options.codexGuidance,
|
|
243
|
+
} : {}),
|
|
226
244
|
});
|
|
227
245
|
const result = await installer.install();
|
|
228
246
|
if (result.success) {
|
|
@@ -262,6 +280,9 @@ export function createPlatformCommand() {
|
|
|
262
280
|
.description('Verify a platform configuration is correct')
|
|
263
281
|
.option('--no-mcp', 'Verify a deliberately MCP-free platform installation')
|
|
264
282
|
.option('--with-ruflo', 'Require optional Ruflo guidance and lifecycle hooks (Codex only)')
|
|
283
|
+
.addOption(new Option('--codex-guidance <mode>', 'Expected Codex AGENTS.md guidance policy')
|
|
284
|
+
.choices(['full', 'compact', 'none'])
|
|
285
|
+
.default('full'))
|
|
265
286
|
.action(async (name, options) => {
|
|
266
287
|
const projectRoot = process.cwd();
|
|
267
288
|
if (!isValidPlatformId(name)) {
|
|
@@ -279,6 +300,7 @@ export function createPlatformCommand() {
|
|
|
279
300
|
const verification = verifyPlatformConfiguration(projectRoot, name, {
|
|
280
301
|
expectMcp: options.mcp !== false,
|
|
281
302
|
expectRuflo: options.withRuflo,
|
|
303
|
+
guidancePolicy: options.codexGuidance,
|
|
282
304
|
});
|
|
283
305
|
for (const check of verification.checks) {
|
|
284
306
|
const message = ` [${check.passed ? 'pass' : 'fail'}] ${check.label}: ${check.detail}`;
|
|
@@ -19,7 +19,7 @@ import { runQualityGate, listChecklistIds, } from '../../validation/quality-gate
|
|
|
19
19
|
import { createRouterFrontierJudge, createUnavailableJudge, } from '../../validation/frontier-judge.js';
|
|
20
20
|
export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitialized) {
|
|
21
21
|
return new Command('quality-gate')
|
|
22
|
-
.description('
|
|
22
|
+
.description('Fail-closed quality and verification-reach verdict against a pinned checklist')
|
|
23
23
|
.option('-c, --checklist <id>', 'Pinned anchor checklist id (e.g. A1-inRange)')
|
|
24
24
|
.option('-a, --artifact-file <path>', 'File containing the artifact under judgement')
|
|
25
25
|
.option('--artifact <text>', 'Inline artifact text (alternative to --artifact-file)')
|
|
@@ -27,6 +27,7 @@ export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitia
|
|
|
27
27
|
.option('--baseline-passed', 'Tests executed against the reference implementation')
|
|
28
28
|
.option('--oracle-file <path>', 'JSON file with { passed, baselinePassed } from the ADR-113 oracle')
|
|
29
29
|
.option('--anchor <path>', 'Override the frozen anchor path (ADR-117)')
|
|
30
|
+
.option('--verification-manifest <path>', 'Revision-bound failure-mode reach manifest (#651)')
|
|
30
31
|
.option('--model <id>', 'Frontier judge model id (ADR-111: always frontier-tier)')
|
|
31
32
|
.option('--list', 'List the available pinned checklist ids and exit')
|
|
32
33
|
.option('-F, --format <format>', 'Output format (text|json)', 'text')
|
|
@@ -64,13 +65,14 @@ export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitia
|
|
|
64
65
|
checklistId: options.checklist,
|
|
65
66
|
judge,
|
|
66
67
|
anchorPath: options.anchor,
|
|
68
|
+
verificationManifest: resolveVerificationManifest(options.verificationManifest),
|
|
67
69
|
};
|
|
68
70
|
const result = await runQualityGate(request);
|
|
69
71
|
if (format === 'json') {
|
|
70
72
|
writeOutput(toJSON(result), options.output);
|
|
71
73
|
}
|
|
72
74
|
else {
|
|
73
|
-
printVerdict(result.verdict, result.mechanical, result.specCoverage, result.unmet, result.reason);
|
|
75
|
+
printVerdict(result.verdict, result.qualityVerdict, result.coverageVerdict, result.mechanical, result.specCoverage, result.unmet, result.reason, result.verification);
|
|
74
76
|
}
|
|
75
77
|
// Exit codes: 0 pass, 1 fail, 3 inconclusive (distinct so CI can branch).
|
|
76
78
|
const code = result.verdict === 'pass' ? 0 : result.verdict === 'fail' ? 1 : 3;
|
|
@@ -82,6 +84,11 @@ export function createQualityGateCommand(_context, cleanupAndExit, _ensureInitia
|
|
|
82
84
|
}
|
|
83
85
|
});
|
|
84
86
|
}
|
|
87
|
+
function resolveVerificationManifest(path) {
|
|
88
|
+
if (!path)
|
|
89
|
+
return undefined;
|
|
90
|
+
return JSON.parse(fs.readFileSync(path, 'utf8'));
|
|
91
|
+
}
|
|
85
92
|
function resolveArtifact(options) {
|
|
86
93
|
if (typeof options.artifact === 'string')
|
|
87
94
|
return options.artifact;
|
|
@@ -121,11 +128,13 @@ export async function buildJudge(model) {
|
|
|
121
128
|
logger: (message) => console.error(message),
|
|
122
129
|
});
|
|
123
130
|
}
|
|
124
|
-
function printVerdict(verdict, mechanical, specCoverage, unmet, reason) {
|
|
131
|
+
function printVerdict(verdict, qualityVerdict, coverageVerdict, mechanical, specCoverage, unmet, reason, verification) {
|
|
125
132
|
const icon = verdict === 'pass' ? chalk.green('✓ PASS')
|
|
126
133
|
: verdict === 'fail' ? chalk.red('✗ FAIL')
|
|
127
134
|
: chalk.yellow('? INCONCLUSIVE');
|
|
128
135
|
console.log(`\n Quality Gate: ${icon}`);
|
|
136
|
+
console.log(` Quality verdict: ${qualityVerdict}`);
|
|
137
|
+
console.log(` Coverage verdict: ${coverageVerdict}`);
|
|
129
138
|
console.log(` Mechanical gate: ${mechanical === 'pass' ? chalk.green('pass') : chalk.red('fail')}`);
|
|
130
139
|
if (specCoverage != null)
|
|
131
140
|
console.log(` Spec coverage: ${chalk.cyan((specCoverage * 100).toFixed(0) + '%')}`);
|
|
@@ -134,6 +143,19 @@ function printVerdict(verdict, mechanical, specCoverage, unmet, reason) {
|
|
|
134
143
|
for (const u of unmet)
|
|
135
144
|
console.log(chalk.gray(` - ${u}`));
|
|
136
145
|
}
|
|
146
|
+
if (verification.kind === 'legacy-unknown') {
|
|
147
|
+
console.log(chalk.yellow(` Verification reach: ${verification.reason}`));
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
console.log(chalk.cyan(' Verification reach:'));
|
|
151
|
+
for (const risk of verification.risks) {
|
|
152
|
+
const direct = risk.directCheckIds.join(', ') || 'none';
|
|
153
|
+
const partial = risk.partialCheckIds.join(', ') || 'none';
|
|
154
|
+
const uncovered = risk.uncoveredObservations.join(', ') || 'none';
|
|
155
|
+
console.log(` ${risk.riskId}: ${risk.verdict}`);
|
|
156
|
+
console.log(chalk.gray(` direct=${direct}; partial=${partial}; uncovered=${uncovered}`));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
137
159
|
console.log(chalk.gray(` ${reason}\n`));
|
|
138
160
|
}
|
|
139
161
|
//# sourceMappingURL=quality-gate.js.map
|
|
@@ -29,6 +29,7 @@ export class BrainHandler {
|
|
|
29
29
|
.requiredOption('-o, --output <path>', 'Output directory path')
|
|
30
30
|
.option('--format <format>', 'Export format: rvf (default) or jsonl', 'rvf')
|
|
31
31
|
.option('--db <path>', 'Source database path')
|
|
32
|
+
.option('--force-overwrite-richer', 'Allow replacing an existing RVF with fewer patterns', false)
|
|
32
33
|
.action(async (options) => {
|
|
33
34
|
await this.executeExport(options);
|
|
34
35
|
});
|
|
@@ -90,6 +91,7 @@ export class BrainHandler {
|
|
|
90
91
|
const manifest = await exportBrain(dbPath, {
|
|
91
92
|
outputPath: path.resolve(options.output),
|
|
92
93
|
format: options.format,
|
|
94
|
+
allowOverwriteRicher: options.forceOverwriteRicher,
|
|
93
95
|
});
|
|
94
96
|
console.log(chalk.green(' Export complete.'));
|
|
95
97
|
console.log(` Format: ${chalk.cyan('format' in manifest ? manifest.format ?? 'jsonl' : 'jsonl')}`);
|
|
@@ -66,6 +66,10 @@ export interface InitJsonOutput {
|
|
|
66
66
|
agents: number;
|
|
67
67
|
skills: number;
|
|
68
68
|
};
|
|
69
|
+
codexGuidance?: {
|
|
70
|
+
policy: 'full' | 'compact' | 'none';
|
|
71
|
+
ownedBytes: number;
|
|
72
|
+
};
|
|
69
73
|
};
|
|
70
74
|
totalDurationMs: number;
|
|
71
75
|
timestamp: string;
|
|
@@ -94,6 +98,7 @@ interface InitOptions {
|
|
|
94
98
|
withRoocode?: boolean;
|
|
95
99
|
withCodex?: boolean;
|
|
96
100
|
withRuflo?: boolean;
|
|
101
|
+
codexGuidance?: 'full' | 'compact' | 'none';
|
|
97
102
|
withWindsurf?: boolean;
|
|
98
103
|
withContinuedev?: boolean;
|
|
99
104
|
withAllPlatforms?: boolean;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Handles the 'aqe init' command for system initialization.
|
|
5
5
|
*/
|
|
6
|
+
import { Option } from 'commander';
|
|
6
7
|
import chalk from 'chalk';
|
|
7
8
|
import { createRequire } from 'node:module';
|
|
8
9
|
import { ALL_DOMAINS } from '../../shared/types/index.js';
|
|
@@ -49,6 +50,9 @@ export class InitHandler {
|
|
|
49
50
|
.option('--with-kilocode', 'Include Kilo Code MCP config and custom QE mode')
|
|
50
51
|
.option('--with-roocode', 'Include Roo Code MCP config and custom QE mode')
|
|
51
52
|
.option('--with-codex', 'Include OpenAI Codex CLI MCP, AGENTS.md, hooks, and QE skills')
|
|
53
|
+
.addOption(new Option('--codex-guidance <mode>', 'Codex AGENTS.md guidance policy')
|
|
54
|
+
.choices(['full', 'compact', 'none'])
|
|
55
|
+
.default('full'))
|
|
52
56
|
.option('--with-ruflo', 'Add optional Ruflo guidance and lifecycle hooks to the Codex setup')
|
|
53
57
|
.option('--with-windsurf', 'Include Windsurf MCP config and rules')
|
|
54
58
|
.option('--with-continuedev', 'Include Continue.dev MCP config and rules')
|
|
@@ -181,6 +185,7 @@ export class InitHandler {
|
|
|
181
185
|
withRooCode: options.withRoocode,
|
|
182
186
|
withCodex: options.withCodex,
|
|
183
187
|
withRuflo: options.withRuflo,
|
|
188
|
+
codexGuidance: options.codexGuidance,
|
|
184
189
|
withWindsurf: options.withWindsurf,
|
|
185
190
|
withContinueDev: options.withContinuedev,
|
|
186
191
|
noMcp: options.noMcp && !options.withMcp,
|
|
@@ -447,6 +452,7 @@ Options:
|
|
|
447
452
|
--with-n8n Install n8n workflow testing agents and skills
|
|
448
453
|
--with-opencode Include OpenCode agent/skill provisioning
|
|
449
454
|
--with-codex Include OpenAI Codex hooks, instructions, skills, and MCP
|
|
455
|
+
--codex-guidance <mode> Codex AGENTS.md guidance: full, compact, or none
|
|
450
456
|
--with-ruflo Opt into Ruflo guidance and lifecycle hooks for Codex
|
|
451
457
|
--auto-migrate Automatically migrate from v2 if detected
|
|
452
458
|
--with-claude-flow Force Claude Flow integration setup
|
package/dist/cli/index.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* See: cli/commands/ for additional command modules
|
|
11
11
|
*/
|
|
12
12
|
import { toErrorMessage } from '../shared/error-utils.js';
|
|
13
|
+
import { createRequire } from 'node:module';
|
|
13
14
|
import { Command } from 'commander';
|
|
14
15
|
import chalk from 'chalk';
|
|
15
16
|
import { ALL_DOMAINS } from '../shared/types/index.js';
|
|
@@ -207,7 +208,9 @@ async function cleanupAndExit(code = 0) {
|
|
|
207
208
|
// CLI Program
|
|
208
209
|
// ============================================================================
|
|
209
210
|
const program = new Command();
|
|
210
|
-
const
|
|
211
|
+
const require = createRequire(import.meta.url);
|
|
212
|
+
const packageVersion = require('../../package.json').version;
|
|
213
|
+
const VERSION = typeof __CLI_VERSION__ !== 'undefined' ? __CLI_VERSION__ : packageVersion;
|
|
211
214
|
program
|
|
212
215
|
.name('aqe')
|
|
213
216
|
.description('Agentic QE - Domain-Driven Quality Engineering')
|
|
@@ -24,6 +24,7 @@ export { Tier1Microcompact, type Tier1Result } from './tier1-microcompact';
|
|
|
24
24
|
export { Tier2SessionSummary, type ConversationMessage, type Tier2Result, type SessionSummaryOptions } from './tier2-session-summary';
|
|
25
25
|
export { Tier3LLMCompact, type Tier3Result, type LLMCompactCaller, type Tier3Options } from './tier3-llm-compact';
|
|
26
26
|
export { Tier4Reactive, type Tier4Result, type Tier4Options } from './tier4-reactive';
|
|
27
|
+
export { hashContextContent, leastTrustedAuthority, type ContextSourceKind, type InstructionAuthority, type InstructionProvenance, type ProvenancedContent, } from './instruction-provenance';
|
|
27
28
|
export interface CompactionPipelineOptions {
|
|
28
29
|
/** Total context budget in tokens (default: 100_000) */
|
|
29
30
|
totalBudget?: number;
|
|
@@ -25,6 +25,7 @@ export { Tier1Microcompact } from './tier1-microcompact.js';
|
|
|
25
25
|
export { Tier2SessionSummary } from './tier2-session-summary.js';
|
|
26
26
|
export { Tier3LLMCompact } from './tier3-llm-compact.js';
|
|
27
27
|
export { Tier4Reactive } from './tier4-reactive.js';
|
|
28
|
+
export { hashContextContent, leastTrustedAuthority, } from './instruction-provenance.js';
|
|
28
29
|
// ============================================================================
|
|
29
30
|
// CompactionPipeline
|
|
30
31
|
// ============================================================================
|
|
@@ -138,6 +139,8 @@ export class CompactionPipeline {
|
|
|
138
139
|
content: t3.summary,
|
|
139
140
|
timestamp: Date.now(),
|
|
140
141
|
estimatedTokens: t3.summaryTokens,
|
|
142
|
+
id: t3.summaryItem?.id,
|
|
143
|
+
provenance: t3.summaryItem,
|
|
141
144
|
}];
|
|
142
145
|
this.budget.releaseTokens(t3.tokensSaved);
|
|
143
146
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type InstructionAuthority = 'system-effective' | 'user-authorized' | 'assistant-derived' | 'tool-observation' | 'memory-derived' | 'unknown';
|
|
2
|
+
export type ContextSourceKind = 'user' | 'tool' | 'file' | 'web' | 'agent' | 'memory' | 'skill' | 'goal' | 'schedule';
|
|
3
|
+
export interface InstructionProvenance {
|
|
4
|
+
authority: InstructionAuthority;
|
|
5
|
+
/** Immutable authority at the start of this item's derivation chain. */
|
|
6
|
+
originAuthority: InstructionAuthority;
|
|
7
|
+
sourceKind: ContextSourceKind;
|
|
8
|
+
sourceRef?: string;
|
|
9
|
+
parentIds: string[];
|
|
10
|
+
contentHash: string;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
mayInduceAction: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ProvenancedContent extends InstructionProvenance {
|
|
15
|
+
id: string;
|
|
16
|
+
content: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function hashContextContent(content: string): string;
|
|
19
|
+
export declare function leastTrustedAuthority(authorities: InstructionAuthority[]): InstructionAuthority;
|
|
20
|
+
//# sourceMappingURL=instruction-provenance.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
const AUTHORITY_TRUST = {
|
|
3
|
+
unknown: 0,
|
|
4
|
+
'tool-observation': 1,
|
|
5
|
+
'memory-derived': 1,
|
|
6
|
+
'assistant-derived': 2,
|
|
7
|
+
'user-authorized': 3,
|
|
8
|
+
'system-effective': 4,
|
|
9
|
+
};
|
|
10
|
+
export function hashContextContent(content) {
|
|
11
|
+
return createHash('sha256').update(content).digest('hex');
|
|
12
|
+
}
|
|
13
|
+
export function leastTrustedAuthority(authorities) {
|
|
14
|
+
if (authorities.length === 0)
|
|
15
|
+
return 'unknown';
|
|
16
|
+
return authorities.reduce((least, current) => AUTHORITY_TRUST[current] < AUTHORITY_TRUST[least] ? current : least);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=instruction-provenance.js.map
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* - Retains at least `minRecentTokens` of recent conversation
|
|
13
13
|
* - Caps summary at `maxSummaryTokens`
|
|
14
14
|
*/
|
|
15
|
+
import { type InstructionProvenance, type ProvenancedContent } from './instruction-provenance';
|
|
15
16
|
export interface ConversationMessage {
|
|
16
17
|
role: 'user' | 'assistant' | 'tool_use' | 'tool_result';
|
|
17
18
|
content: string;
|
|
@@ -20,6 +21,10 @@ export interface ConversationMessage {
|
|
|
20
21
|
estimatedTokens?: number;
|
|
21
22
|
/** If this is a tool_use, the ID linking it to its tool_result pair */
|
|
22
23
|
toolUseId?: string;
|
|
24
|
+
/** Stable item identity used by derived summaries. */
|
|
25
|
+
id?: string;
|
|
26
|
+
/** Missing legacy provenance is treated as unknown and non-authorizing. */
|
|
27
|
+
provenance?: InstructionProvenance;
|
|
23
28
|
}
|
|
24
29
|
export interface SessionSummaryOptions {
|
|
25
30
|
/** Minimum tokens of recent conversation to preserve (default: 10_000) */
|
|
@@ -31,6 +36,8 @@ export interface Tier2Result {
|
|
|
31
36
|
tier: 2;
|
|
32
37
|
/** The condensed summary text */
|
|
33
38
|
summary: string;
|
|
39
|
+
/** Non-authorizing envelope for the derived summary. */
|
|
40
|
+
summaryItem?: ProvenancedContent;
|
|
34
41
|
/** Tokens in the summary */
|
|
35
42
|
summaryTokens: number;
|
|
36
43
|
/** Messages preserved verbatim (recent tail) */
|
|
@@ -58,6 +65,7 @@ export declare class Tier2SessionSummary {
|
|
|
58
65
|
* 3. Return summary + preserved tail.
|
|
59
66
|
*/
|
|
60
67
|
compact(messages: ConversationMessage[]): Tier2Result;
|
|
68
|
+
private deriveSummaryItem;
|
|
61
69
|
/**
|
|
62
70
|
* Walk backward to find the first index where we've accumulated enough
|
|
63
71
|
* recent tokens. Never splits a tool_use/tool_result pair.
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* - Caps summary at `maxSummaryTokens`
|
|
14
14
|
*/
|
|
15
15
|
import { estimateTokensPadded } from '../../mcp/middleware/microcompact.js';
|
|
16
|
+
import { hashContextContent, leastTrustedAuthority, } from './instruction-provenance.js';
|
|
16
17
|
// ============================================================================
|
|
17
18
|
// Defaults
|
|
18
19
|
// ============================================================================
|
|
@@ -63,11 +64,13 @@ export class Tier2SessionSummary {
|
|
|
63
64
|
const preservedTokens = toPreserve.reduce((s, m) => s + m.estimatedTokens, 0);
|
|
64
65
|
// Build summary from the older messages
|
|
65
66
|
const summary = this.buildSummary(toSummarize);
|
|
67
|
+
const summaryItem = summary ? this.deriveSummaryItem(summary, toSummarize) : undefined;
|
|
66
68
|
const summaryTokens = Math.min(estimateTokensPadded(summary), this.maxSummaryTokens);
|
|
67
69
|
const tokensSaved = originalTokens - preservedTokens - summaryTokens;
|
|
68
70
|
return {
|
|
69
71
|
tier: 2,
|
|
70
72
|
summary,
|
|
73
|
+
summaryItem,
|
|
71
74
|
summaryTokens,
|
|
72
75
|
preservedMessages: toPreserve,
|
|
73
76
|
preservedTokens,
|
|
@@ -76,6 +79,23 @@ export class Tier2SessionSummary {
|
|
|
76
79
|
tokensSaved: Math.max(0, tokensSaved),
|
|
77
80
|
};
|
|
78
81
|
}
|
|
82
|
+
deriveSummaryItem(summary, parents) {
|
|
83
|
+
const parentIds = parents.map(message => message.id ?? `sha256:${hashContextContent(message.content)}`);
|
|
84
|
+
const originAuthority = leastTrustedAuthority(parents.map(message => message.provenance?.originAuthority ?? 'unknown'));
|
|
85
|
+
const contentHash = hashContextContent(summary);
|
|
86
|
+
return {
|
|
87
|
+
id: `tier2:${contentHash}`,
|
|
88
|
+
content: summary,
|
|
89
|
+
authority: 'assistant-derived',
|
|
90
|
+
originAuthority,
|
|
91
|
+
sourceKind: 'agent',
|
|
92
|
+
sourceRef: 'context-compaction:tier2',
|
|
93
|
+
parentIds,
|
|
94
|
+
contentHash,
|
|
95
|
+
createdAt: new Date().toISOString(),
|
|
96
|
+
mayInduceAction: true,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
79
99
|
// --------------------------------------------------------------------------
|
|
80
100
|
// Internal
|
|
81
101
|
// --------------------------------------------------------------------------
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* 9. Suggested Next Action
|
|
19
19
|
*/
|
|
20
20
|
import type { ConversationMessage } from './tier2-session-summary';
|
|
21
|
+
import { type ProvenancedContent } from './instruction-provenance';
|
|
21
22
|
export interface Tier3Options {
|
|
22
23
|
/** Max tokens reserved for the summary output (default: 20_000) */
|
|
23
24
|
maxSummaryTokens?: number;
|
|
@@ -39,6 +40,8 @@ export interface Tier3Result {
|
|
|
39
40
|
tier: 3;
|
|
40
41
|
/** The structured 9-section summary */
|
|
41
42
|
summary: string;
|
|
43
|
+
/** Non-authorizing envelope retaining the summary's derivation chain. */
|
|
44
|
+
summaryItem?: ProvenancedContent;
|
|
42
45
|
/** Tokens in the summary */
|
|
43
46
|
summaryTokens: number;
|
|
44
47
|
/** Original message count */
|
|
@@ -59,6 +62,7 @@ export declare class Tier3LLMCompact {
|
|
|
59
62
|
compact(messages: ConversationMessage[]): Promise<Tier3Result>;
|
|
60
63
|
/** Build a compact transcript for the LLM prompt. */
|
|
61
64
|
private buildTranscript;
|
|
65
|
+
private deriveSummaryItem;
|
|
62
66
|
/** Extractive fallback when no LLM is available. */
|
|
63
67
|
private extractiveFallback;
|
|
64
68
|
}
|