agentic-qe 3.10.3 → 3.10.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/qcsd-development-swarm/SKILL.md +27 -6
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +104 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/arena/arena.d.ts +68 -0
- package/dist/arena/arena.js +169 -0
- package/dist/arena/mutator.d.ts +23 -0
- package/dist/arena/mutator.js +112 -0
- package/dist/arena/rng.d.ts +15 -0
- package/dist/arena/rng.js +34 -0
- package/dist/arena/runner.d.ts +44 -0
- package/dist/arena/runner.js +79 -0
- package/dist/cli/bundle.js +7 -7
- package/dist/cli/chunks/adapter-XZVL3DHO.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-NGC6LSQP.js → agent-booster-wasm-3BC5LIEB.js} +2 -2
- package/dist/cli/chunks/{agent-handler-P2IJE4GK.js → agent-handler-QLXWVZZF.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-JXRJ5GKQ.js → agent-memory-branch-3U5PDYW7.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-YIL25K6W.js +2 -0
- package/dist/cli/chunks/arena-BMJQK4RD.js +18 -0
- package/dist/cli/chunks/arena-XENAGV4I.js +4 -0
- package/dist/cli/chunks/audit-WPIRUJNZ.js +3 -0
- package/dist/cli/chunks/base-YCYV23Q3.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-64EGGWIC.js → better-sqlite3-6AGIBSVE.js} +2 -2
- package/dist/cli/chunks/{brain-handler-SACNDFSW.js → brain-handler-PHSWG5PR.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-LFOTVUDA.js → branch-enumerator-LNSYT34I.js} +2 -2
- package/dist/cli/chunks/{browser-FK7PRF3W.js → browser-M5BVQMBI.js} +2 -2
- package/dist/cli/chunks/browser-workflow-ALCOCRA2.js +2 -0
- package/dist/cli/chunks/{chunk-ZXQNE4QV.js → chunk-24A7KD3D.js} +1 -1
- package/dist/cli/chunks/{chunk-6Q2PPOOF.js → chunk-253TDTPH.js} +1 -1
- package/dist/cli/chunks/{chunk-MC7K44M4.js → chunk-2RLRPKCG.js} +2 -2
- package/dist/cli/chunks/{chunk-VRXY4T22.js → chunk-2UQWVF4P.js} +2 -2
- package/dist/cli/chunks/{chunk-UDV4YB42.js → chunk-2Z7HIT5I.js} +1 -1
- package/dist/cli/chunks/{chunk-CTDO2UB2.js → chunk-3BGGNHHZ.js} +1 -1
- package/dist/cli/chunks/{chunk-HWM2XJ3P.js → chunk-3JWV4GE6.js} +2 -2
- package/dist/cli/chunks/{chunk-BT3QLWII.js → chunk-3KGUP2SD.js} +2 -2
- package/dist/cli/chunks/{chunk-T63EK6GH.js → chunk-3WOQY6UL.js} +2 -2
- package/dist/cli/chunks/{chunk-QM65UGPV.js → chunk-4FTO3TPH.js} +2 -2
- package/dist/cli/chunks/{chunk-WWD5IWTV.js → chunk-4K7T6AKM.js} +1 -1
- package/dist/cli/chunks/{chunk-XTP2GHI7.js → chunk-4Z7XH4JE.js} +2 -2
- package/dist/cli/chunks/{chunk-FND6V2RV.js → chunk-54IPDQIZ.js} +8 -8
- package/dist/cli/chunks/{chunk-KTRB3L53.js → chunk-56RA6YPN.js} +2 -2
- package/dist/cli/chunks/{chunk-7YYTTWGY.js → chunk-5D7GLMT3.js} +1 -1
- package/dist/cli/chunks/{chunk-M5CDW2ZH.js → chunk-66LOFIBP.js} +2 -2
- package/dist/cli/chunks/{chunk-3X2ZQ55B.js → chunk-6SAU7GXO.js} +3 -3
- package/dist/cli/chunks/{chunk-DF3MJ2YL.js → chunk-75MP7JMV.js} +1 -1
- package/dist/cli/chunks/{chunk-RTDHWOAG.js → chunk-7DU35D4M.js} +1 -1
- package/dist/cli/chunks/{chunk-Q7EBD24B.js → chunk-7JZCEQFR.js} +1 -1
- package/dist/cli/chunks/{chunk-JXIPRMAY.js → chunk-A3BDPU5F.js} +4 -4
- package/dist/cli/chunks/{chunk-I42R57ON.js → chunk-A7HGS7FW.js} +2 -2
- package/dist/cli/chunks/{chunk-NNZMEYLT.js → chunk-AMBIOEMO.js} +1 -1
- package/dist/cli/chunks/{chunk-BO2OV2RH.js → chunk-AVQD7KEN.js} +2 -2
- package/dist/cli/chunks/{chunk-6GCOIIHY.js → chunk-AZCKTAUI.js} +2 -2
- package/dist/cli/chunks/{chunk-GL3HZN3O.js → chunk-B4F5EPNR.js} +1 -1
- package/dist/cli/chunks/{chunk-HAO3SPOE.js → chunk-BB7MEGXD.js} +2 -2
- package/dist/cli/chunks/{chunk-VDTFRMES.js → chunk-BSRCL6RU.js} +2 -2
- package/dist/cli/chunks/{chunk-RZCAA2PZ.js → chunk-CS3UB2OL.js} +1 -1
- package/dist/cli/chunks/{chunk-4OUAHZX2.js → chunk-CTG3GJIM.js} +2 -2
- package/dist/cli/chunks/{chunk-BWP3UVPE.js → chunk-CUAM34RQ.js} +3 -3
- package/dist/cli/chunks/chunk-CUY2EUSQ.js +2 -0
- package/dist/cli/chunks/{chunk-X2B7SANM.js → chunk-D3Q4443B.js} +1 -1
- package/dist/cli/chunks/{chunk-5IBJURYB.js → chunk-D4WDJ4ZF.js} +2 -2
- package/dist/cli/chunks/chunk-D7NKRCIL.js +2 -0
- package/dist/cli/chunks/{chunk-JP63XACW.js → chunk-DBR4TQPK.js} +2 -2
- package/dist/cli/chunks/{chunk-FLTPHVZ3.js → chunk-DIJ74M7V.js} +1 -1
- package/dist/cli/chunks/{chunk-PFCAMX6H.js → chunk-DJQYZ4RZ.js} +1 -1
- package/dist/cli/chunks/{chunk-5LON3MLI.js → chunk-DN65ILSI.js} +2 -2
- package/dist/cli/chunks/{chunk-6ZK24V2Y.js → chunk-DWLGFYXV.js} +2 -2
- package/dist/cli/chunks/{chunk-5EWWA4QP.js → chunk-EIL7FQC4.js} +6 -6
- package/dist/cli/chunks/{chunk-IRR7YA3Q.js → chunk-FE3FGMNB.js} +2 -2
- package/dist/cli/chunks/{chunk-ADV4DH3W.js → chunk-FLYFNNSN.js} +3 -3
- package/dist/cli/chunks/{chunk-SWOG3PBD.js → chunk-FNJZBIR3.js} +2 -2
- package/dist/cli/chunks/chunk-FPWA73N6.js +2 -0
- package/dist/cli/chunks/{chunk-NEYYLAYS.js → chunk-FW3C4LWU.js} +2 -2
- package/dist/cli/chunks/{chunk-5G5AAEFF.js → chunk-G4GX6YKX.js} +2 -2
- package/dist/cli/chunks/{chunk-NNVXHC74.js → chunk-G5UIGH4C.js} +3 -3
- package/dist/cli/chunks/{chunk-QEODION5.js → chunk-G6FP3S3G.js} +2 -2
- package/dist/cli/chunks/{chunk-ZG4P3DTL.js → chunk-GDUGW6FZ.js} +2 -2
- package/dist/cli/chunks/{chunk-GJUGSH7T.js → chunk-GKG6IQP6.js} +3 -3
- package/dist/cli/chunks/chunk-GMU7P5O3.js +2 -0
- package/dist/cli/chunks/{chunk-NRCL3WCP.js → chunk-GTVXVYKE.js} +2 -2
- package/dist/cli/chunks/{chunk-2ULVCLOW.js → chunk-HHEHGERJ.js} +2 -2
- package/dist/cli/chunks/{chunk-6FL3GN4T.js → chunk-HKJ3LG3N.js} +2 -2
- package/dist/cli/chunks/{chunk-E2BJT6A7.js → chunk-HNYSBE5J.js} +2 -2
- package/dist/cli/chunks/{chunk-JTZ3Q2QS.js → chunk-HPKYIK7R.js} +2 -2
- package/dist/cli/chunks/{chunk-GHNNJHH3.js → chunk-HRORJ352.js} +2 -2
- package/dist/cli/chunks/{chunk-5ER3COX3.js → chunk-IIFCTJOF.js} +2 -2
- package/dist/cli/chunks/{chunk-UIJFU4KD.js → chunk-IOE6LDPF.js} +2 -2
- package/dist/cli/chunks/{chunk-JD2PG4KS.js → chunk-IRS4HKAR.js} +1 -1
- package/dist/cli/chunks/{chunk-VIWIO27R.js → chunk-IT7CEHAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-JE3C7JYN.js → chunk-IUKERFLT.js} +1 -1
- package/dist/cli/chunks/{chunk-YDKYLNKZ.js → chunk-IVKSZNMI.js} +1 -1
- package/dist/cli/chunks/{chunk-3RZL4QTT.js → chunk-IWRORKD7.js} +2 -2
- package/dist/cli/chunks/{chunk-NZHOKLII.js → chunk-J533CJUN.js} +3 -3
- package/dist/cli/chunks/{chunk-5SGEOO2F.js → chunk-JPOEI7CJ.js} +2 -2
- package/dist/cli/chunks/{chunk-MBSJ5G4I.js → chunk-JY7T2AQQ.js} +4 -4
- package/dist/cli/chunks/{chunk-4QFAUSWQ.js → chunk-K5KKZWED.js} +2 -2
- package/dist/cli/chunks/{chunk-L74CHKFR.js → chunk-KIMJPTHD.js} +2 -2
- package/dist/cli/chunks/{chunk-N7IBYDW5.js → chunk-MEN3UW7W.js} +1 -1
- package/dist/cli/chunks/{chunk-UHDBM7QS.js → chunk-MFQIJ3HV.js} +2 -2
- package/dist/cli/chunks/{chunk-SL6YZAT4.js → chunk-MGCW5FWH.js} +2 -2
- package/dist/cli/chunks/{chunk-U6UK3UMX.js → chunk-MIMJVKJJ.js} +3 -3
- package/dist/cli/chunks/{chunk-7ZSPCGTI.js → chunk-MJRYHHOG.js} +2 -2
- package/dist/cli/chunks/{chunk-FU77CDEM.js → chunk-MRXKIXVV.js} +2 -2
- package/dist/cli/chunks/{chunk-DY5KEOHX.js → chunk-MWPFUBXS.js} +2 -2
- package/dist/cli/chunks/{chunk-C6BBRM2J.js → chunk-N2TJXGHG.js} +1 -1
- package/dist/cli/chunks/{chunk-MQOFFRTA.js → chunk-NGSA53GC.js} +2 -2
- package/dist/cli/chunks/{chunk-YXH2CVAF.js → chunk-NKW7VOZV.js} +1 -1
- package/dist/cli/chunks/{chunk-YIYV2JB6.js → chunk-O5OOUMBB.js} +2 -2
- package/dist/cli/chunks/{chunk-HM523MTQ.js → chunk-OATHXZYW.js} +1 -1
- package/dist/cli/chunks/{chunk-WPVCSFDA.js → chunk-OJNG6ZXG.js} +2 -2
- package/dist/cli/chunks/{chunk-7SEHQTYD.js → chunk-PGNQR2VM.js} +1 -1
- package/dist/cli/chunks/{chunk-UZL366ZI.js → chunk-PPM5D7LH.js} +1 -1
- package/dist/cli/chunks/{chunk-ERYMAYJW.js → chunk-PYBVFG6T.js} +2 -2
- package/dist/cli/chunks/{chunk-FJGSEPFL.js → chunk-Q6BKJZTG.js} +2 -2
- package/dist/cli/chunks/chunk-QAW6RVAR.js +699 -0
- package/dist/cli/chunks/chunk-QTDZS4U6.js +2 -0
- package/dist/cli/chunks/{chunk-USFZ4IJD.js → chunk-R573V37S.js} +15 -15
- package/dist/cli/chunks/{chunk-Z2K5IZM6.js → chunk-RCAIOTIF.js} +2 -2
- package/dist/cli/chunks/{chunk-7RMZAVGO.js → chunk-RFNEEDPQ.js} +2 -2
- package/dist/cli/chunks/{chunk-IL2KOW5W.js → chunk-RFVZMNYX.js} +2 -2
- package/dist/cli/chunks/{chunk-B5MMDMH6.js → chunk-RLU7764Y.js} +2 -2
- package/dist/cli/chunks/chunk-RLZDXQNM.js +2 -0
- package/dist/cli/chunks/{chunk-QWG76RHA.js → chunk-RONMVGCT.js} +2 -2
- package/dist/cli/chunks/{chunk-X3RJ6SFC.js → chunk-RR55MLD4.js} +1 -1
- package/dist/cli/chunks/{chunk-PL5SLO2W.js → chunk-RUQV3BTV.js} +1 -1
- package/dist/cli/chunks/{chunk-NXPFGPHV.js → chunk-RZ7D5SHS.js} +1 -1
- package/dist/cli/chunks/{chunk-3LRK7PYN.js → chunk-S73KENCH.js} +2 -2
- package/dist/cli/chunks/{chunk-3HBWDG62.js → chunk-S7FGTHFE.js} +2 -2
- package/dist/cli/chunks/{chunk-CAMEFWRK.js → chunk-S7HQOGVD.js} +1 -1
- package/dist/cli/chunks/{chunk-PZHZPX3O.js → chunk-SK6YRNXI.js} +2 -2
- package/dist/cli/chunks/{chunk-JTF6D2RJ.js → chunk-SXQIH2QA.js} +2 -2
- package/dist/cli/chunks/{chunk-6B4S7PKP.js → chunk-TISBFSDJ.js} +1 -1
- package/dist/cli/chunks/{chunk-72LE6PHL.js → chunk-TMD6IC6D.js} +2 -2
- package/dist/cli/chunks/{chunk-YDDZJCKY.js → chunk-TMTLWSSA.js} +1 -1
- package/dist/cli/chunks/{chunk-HQJMCTWN.js → chunk-UOIT5JZ6.js} +2 -2
- package/dist/cli/chunks/{chunk-OPDTDKN3.js → chunk-UTORITJT.js} +2 -2
- package/dist/cli/chunks/{chunk-3JAOFKEU.js → chunk-VB7DZVCI.js} +1 -1
- package/dist/cli/chunks/{chunk-2L73WXA4.js → chunk-VC256KH2.js} +2 -2
- package/dist/cli/chunks/{chunk-SNTMAVPH.js → chunk-VESYE5YO.js} +3 -3
- package/dist/cli/chunks/{chunk-YYAPO3CU.js → chunk-VKWDMOR4.js} +2 -2
- package/dist/cli/chunks/{chunk-HRLXU4LH.js → chunk-VWN66V7U.js} +2 -2
- package/dist/cli/chunks/{chunk-CNEWYJKT.js → chunk-W5C7R2LS.js} +3 -3
- package/dist/cli/chunks/{chunk-JLL27IGU.js → chunk-W7KGHW4T.js} +2 -2
- package/dist/cli/chunks/{chunk-H56AROF2.js → chunk-WFZ4DRIC.js} +2 -2
- package/dist/cli/chunks/{chunk-4CYLSXA6.js → chunk-WFZUKXV5.js} +2 -2
- package/dist/cli/chunks/{chunk-AEJVOJPT.js → chunk-X4B3R3ZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-KG5SM36Y.js → chunk-XI6ZZMX7.js} +1 -1
- package/dist/cli/chunks/{chunk-R5ONQAQL.js → chunk-YEO2Z3UX.js} +2 -2
- package/dist/cli/chunks/{chunk-D2FBUOAR.js → chunk-YZD4VIE5.js} +1 -1
- package/dist/cli/chunks/{chunk-U7NMPZE2.js → chunk-YZFNPTGN.js} +2 -2
- package/dist/cli/chunks/{chunk-OX4R55T3.js → chunk-ZCYKWEAM.js} +2 -2
- package/dist/cli/chunks/{chunk-OG7CWWFR.js → chunk-ZG3DSWUA.js} +1 -1
- package/dist/cli/chunks/{chunk-EETVN2OJ.js → chunk-ZS4BGJJV.js} +1 -1
- package/dist/cli/chunks/{chunk-LZ6TNTGO.js → chunk-ZT7JSFGT.js} +2 -2
- package/dist/cli/chunks/{chunk-HMFEPKAR.js → chunk-ZTC64OJE.js} +2 -2
- package/dist/cli/chunks/{chunk-RNF47IJ5.js → chunk-ZUBJBAUD.js} +15 -15
- package/dist/cli/chunks/{ci-AWZ3S5OT.js → ci-M2BSQBLL.js} +2 -2
- package/dist/cli/chunks/{ci-output-JLCYTIMT.js → ci-output-Z4TMK6GZ.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-BJDKBDIL.js → circuit-breaker-E3G4GGWB.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-KKOP5ZMO.js → claude-flow-setup-MASRQU54.js} +2 -2
- package/dist/cli/chunks/client-RPB6RYVY.js +2 -0
- package/dist/cli/chunks/{cline-installer-7M525SEA.js → cline-installer-P3BWAKQA.js} +2 -2
- package/dist/cli/chunks/{code-27SUVJDO.js → code-7HY5HQAV.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-TTQQZLAK.js → code-index-extractor-MBVKLOEU.js} +2 -2
- package/dist/cli/chunks/{codex-installer-GHNGNPKP.js → codex-installer-WZ6QO2PH.js} +2 -2
- package/dist/cli/chunks/{completions-JPJD24DG.js → completions-TOJC2UFP.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-Q74EJV33.js → complexity-analyzer-QYVDIAAW.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-ULTRDIML.js → continuedev-installer-J72CV7P4.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-EK52X4CG.js → copilot-installer-ACDA3GEA.js} +2 -2
- package/dist/cli/chunks/core-handlers-QFJT5NX6.js +2 -0
- package/dist/cli/chunks/{cost-tracker-2GKBRYXL.js → cost-tracker-BAYQJELE.js} +2 -2
- package/dist/cli/chunks/{coverage-YCLC3W2A.js → coverage-QD3XJV6W.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-5GJ7WZKX.js +2 -0
- package/dist/cli/chunks/{cursor-installer-B3ALFW5E.js → cursor-installer-SPGZ4TQM.js} +2 -2
- package/dist/cli/chunks/{daemon-ZKEBVLJA.js → daemon-3EVOL2UH.js} +3 -3
- package/dist/cli/chunks/daemon-N4JKD5SO.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-OQPJ6ULA.js → dag-attention-scheduler-3BVLL3L5.js} +2 -2
- package/dist/cli/chunks/{detect-YMYIQH3Q.js → detect-SWACKB45.js} +2 -2
- package/dist/cli/chunks/{dist-node-R4FAYQRY.js → dist-node-LU4E7PI6.js} +2 -2
- package/dist/cli/chunks/{domain-handler-IGWXLF2S.js → domain-handler-5AKKAC43.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-A7YNO76C.js → domain-transfer-LB6H7RPX.js} +2 -2
- package/dist/cli/chunks/dream-C6VNLTON.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-KODZAS7Y.js → embed-and-insert-pattern-7RBA5NDK.js} +2 -2
- package/dist/cli/chunks/{eval-ALQW7Q2S.js → eval-ZZFPRENX.js} +5 -5
- package/dist/cli/chunks/{experience-capture-middleware-3WK4RXWK.js → experience-capture-middleware-HRO3EGIW.js} +3 -3
- package/dist/cli/chunks/{fast-paths-PQWDFIJZ.js → fast-paths-IRRNQBTY.js} +2 -2
- package/dist/cli/chunks/{feature-flags-JRUAZCND.js → feature-flags-R5N5IWI2.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6X33B3WX.js → feature-flags-W54ABAUA.js} +2 -2
- package/dist/cli/chunks/{file-discovery-SA3YU3IH.js → file-discovery-6CIDLVID.js} +2 -2
- package/dist/cli/chunks/{fleet-7TXCAOKQ.js → fleet-YTFN64WE.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-ZKNYACEC.js → gnn-wrapper-RXMPLMV2.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-KRZRZ23F.js → heartbeat-handler-HQQWEEQQ.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-4SBO27BG.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-W7G6VNXW.js +2 -0
- package/dist/cli/chunks/hnsw-index-LENA5QML.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-LVHQ5SG7.js → hnsw-legacy-bridge-GPZIKYFD.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-HP4JZS6K.js → hnswlib-node-P6HSEFLW.js} +2 -2
- package/dist/cli/chunks/hooks-AYLAGFOK.js +285 -0
- package/dist/cli/chunks/hybrid-router-IXHIC45P.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-2EZBZMFK.js → hypergraph-engine-56FMXI3T.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-GLPWYII2.js → hypergraph-handler-APEVT5IE.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-DKGVMYU6.js +2 -0
- package/dist/cli/chunks/{init-handler-ZSDO5VMA.js → init-handler-5DWF4REQ.js} +6 -6
- package/dist/cli/chunks/init-wizard-BBY3LY3F.js +2 -0
- package/dist/cli/chunks/kernel-7CUW7G62.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-ATYSDWIV.js → kilocode-installer-XKAUA5VA.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-K66YT6PC.js → kiro-installer-NI2KIYJE.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-Q5CP47IP.js +2 -0
- package/dist/cli/chunks/{learning-BVYCC4RI.js → learning-ZIUMUNXZ.js} +3 -3
- package/dist/cli/chunks/{llm-router-VBCXE6DN.js → llm-router-IL52EF2V.js} +4 -4
- package/dist/cli/chunks/llm-router-service-MTXCX7TO.js +2 -0
- package/dist/cli/chunks/{load-AREDQE2U.js → load-B5LFYD6O.js} +2 -2
- package/dist/cli/chunks/load-test-YBWXASBO.js +2 -0
- package/dist/cli/chunks/{mcp-NG6H6UC5.js → mcp-K6GZLWBC.js} +2 -2
- package/dist/cli/chunks/{memory-Y65EHG6N.js → memory-NCQRVSN6.js} +5 -5
- package/dist/cli/chunks/memory-backend-52LANEA3.js +2 -0
- package/dist/cli/chunks/memory-handlers-KFW3HYAP.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-VRPRFUZT.js → multi-model-executor-R4LBSJWK.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-CKQXPM5R.js → opencode-installer-I6CBR3PV.js} +2 -2
- package/dist/cli/chunks/{orchestrator-I7JBKD6G.js → orchestrator-5FXUCES6.js} +10 -10
- package/dist/cli/chunks/{pipeline-MV2RWCBI.js → pipeline-GDKCTXJH.js} +2 -2
- package/dist/cli/chunks/{platform-VU5P3SOG.js → platform-ZFY3F4T3.js} +2 -2
- package/dist/cli/chunks/{plugin-6TERLKCB.js → plugin-HQMEN3OS.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-WIUIN2DL.js → prime-radiant-advanced-wasm-LSJGF4CV.js} +2 -2
- package/dist/cli/chunks/protocol-executor-TRYUS77M.js +2 -0
- package/dist/cli/chunks/{protocol-handler-HKWBGARO.js → protocol-handler-BMDNIGPP.js} +2 -2
- package/dist/cli/chunks/{prove-7CQPHBRJ.js → prove-ABVGAG4Z.js} +2 -2
- package/dist/cli/chunks/provider-manager-6XQQN7FX.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-3IUPE4DJ.js +2 -0
- package/dist/cli/chunks/{quality-VLUVXKVG.js → quality-ENJXPNP5.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-VWPH4XPX.js +2 -0
- package/dist/cli/chunks/{real-embeddings-JPZ64KK2.js → real-embeddings-W3GNAEJO.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-NONVB3UE.js → roocode-installer-4FJNQ7PU.js} +2 -2
- package/dist/cli/chunks/router-OIB6ODHA.js +2 -0
- package/dist/cli/chunks/routing-feedback-EKYPCZYG.js +2 -0
- package/dist/cli/chunks/{routing-handler-YYXDT4J2.js → routing-handler-GFS5FA4F.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-5PFMNDLR.js → ruvector-commands-GBMYNJKN.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-TF6H7AXH.js → rvf-dual-writer-STUAQT6U.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-VNGIUZCO.js → rvf-migration-adapter-LO6DBNJH.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-VA52YAIY.js → rvf-migration-coordinator-I5AD4VJ2.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-7RXP2Q4Q.js +2 -0
- package/dist/cli/chunks/safe-db-MNKFEPBX.js +2 -0
- package/dist/cli/chunks/schedule-AJXABVXX.js +2 -0
- package/dist/cli/chunks/scheduler-LDWYHIAW.js +2 -0
- package/dist/cli/chunks/{security-62HEETBF.js → security-X3WCA5K5.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-Z4FSPWNP.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-JTZK7LRD.js → shared-rvf-dual-writer-QOPOIRIC.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-A6GKDMOJ.js +2 -0
- package/dist/cli/chunks/{status-handler-LSUPUKRF.js → status-handler-B2B5QBVK.js} +2 -2
- package/dist/cli/chunks/{structural-health-Z75A666N.js → structural-health-KT47LBVH.js} +2 -2
- package/dist/cli/chunks/sync-CKID22IW.js +2 -0
- package/dist/cli/chunks/{sync-M3O4T3A3.js → sync-VWD6OOUR.js} +2 -2
- package/dist/cli/chunks/{task-handler-AQBSZAQC.js → task-handler-X5JT5YBF.js} +2 -2
- package/dist/cli/chunks/{task-handlers-BOZP247V.js → task-handlers-IW4GQDW4.js} +3 -3
- package/dist/cli/chunks/{test-FTEGPNN2.js → test-MBZSUASD.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-IGR4U2VQ.js → test-scheduling-E5KHKRZS.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-TIDPJ5IG.js +2 -0
- package/dist/cli/chunks/{token-usage-VCHV47EO.js → token-usage-ECJSPOQB.js} +2 -2
- package/dist/cli/chunks/{transformers-M27QSNFH.js → transformers-UZJAQ7OZ.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-IIGEJYFU.js → tree-sitter-wasm-parser-H6BU2E5R.js} +2 -2
- package/dist/cli/chunks/{types-RQFPUUKA.js → types-PM7NT3MH.js} +2 -2
- package/dist/cli/chunks/unified-memory-27QJHABO.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-76VUXR4H.js +2 -0
- package/dist/cli/chunks/unified-persistence-QRCGDEXH.js +2 -0
- package/dist/cli/chunks/{upgrade-VJMYX3AL.js → upgrade-FS2XYC2P.js} +2 -2
- package/dist/cli/chunks/{validate-ML7HUAU5.js → validate-4Y2BNN3A.js} +3 -3
- package/dist/cli/chunks/{validate-swarm-RCR6EYRC.js → validate-swarm-Z7QXZSUE.js} +4 -4
- package/dist/cli/chunks/{vibium-ZOOS3W5L.js → vibium-VZ6L3O2G.js} +2 -2
- package/dist/cli/chunks/visual-security-KB27O7BE.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-2YPGYLWK.js → web-tree-sitter-H7P37W5U.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-GOJWUWC5.js → windsurf-installer-IB2VHSZS.js} +2 -2
- package/dist/cli/chunks/{witness-chain-3MGSS3Q4.js → witness-chain-C4DISYJN.js} +2 -2
- package/dist/cli/chunks/witness-chain-EYPXHRDV.js +2 -0
- package/dist/cli/chunks/{workflow-B5Q77BI4.js → workflow-IGM7KVIO.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-6AQZ3USU.js +2 -0
- package/dist/cli/chunks/wrappers-PQXC263L.js +2 -0
- package/dist/cli/commands/arena.d.ts +10 -0
- package/dist/cli/commands/arena.js +129 -0
- package/dist/cli/commands/hooks-handlers/command-hooks.js +38 -2
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.d.ts +4 -0
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +66 -3
- package/dist/cli/commands/hooks-handlers/nesting-provenance.d.ts +27 -0
- package/dist/cli/commands/hooks-handlers/nesting-provenance.js +46 -0
- package/dist/cli/commands/hooks-handlers/task-hooks.js +72 -1
- package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.d.ts +71 -0
- package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.js +142 -0
- package/dist/cli/index.js +17 -0
- package/dist/contracts/verdicts.d.ts +297 -0
- package/dist/contracts/verdicts.js +178 -0
- package/dist/coordination/queen-types.d.ts +4 -0
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +15 -6
- package/dist/integrations/agentic-flow/reasoning-bank/trajectory-tracker.js +12 -0
- package/dist/integrations/ruvector/shared-rvf-adapter.js +12 -1
- package/dist/integrations/ruvector/shared-rvf-dual-writer.js +6 -2
- package/dist/kernel/project-root.d.ts +33 -0
- package/dist/kernel/project-root.js +86 -0
- package/dist/kernel/unified-memory.d.ts +2 -19
- package/dist/kernel/unified-memory.js +8 -64
- package/dist/learning/local-judge-client.d.ts +55 -0
- package/dist/learning/local-judge-client.js +127 -0
- package/dist/learning/nagual-client.d.ts +73 -0
- package/dist/learning/nagual-client.js +150 -0
- package/dist/learning/pattern-store.js +10 -3
- package/dist/mcp/bundle.js +393 -391
- package/dist/mcp/entry.js +44 -33
- package/dist/mcp/handlers/core-handlers.d.ts +20 -0
- package/dist/mcp/handlers/core-handlers.js +28 -0
- package/dist/mcp/handlers/domain-handler-configs.d.ts +3 -0
- package/dist/mcp/handlers/domain-handler-configs.js +22 -10
- package/dist/mcp/transport/stdio.d.ts +7 -0
- package/dist/mcp/transport/stdio.js +39 -2
- package/dist/shared/llm/cost-tracker.js +6 -2
- package/dist/shared/llm/interfaces.d.ts +4 -0
- package/dist/shared/llm/providers/claude.js +16 -2
- package/dist/shared/reasoning-scrub.d.ts +29 -0
- package/dist/shared/reasoning-scrub.js +75 -0
- package/dist/workers/daemon.js +2 -0
- package/dist/workers/quality-daemon/git-watcher.js +2 -0
- package/dist/workers/quality-daemon/index.js +2 -0
- package/dist/workers/worker-manager.js +4 -0
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-BHPUKMJ5.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-JQ5WD2HM.js +0 -2
- package/dist/cli/chunks/audit-BMQ3VESB.js +0 -3
- package/dist/cli/chunks/base-E32WLGY2.js +0 -2
- package/dist/cli/chunks/browser-workflow-LNNXXAJG.js +0 -2
- package/dist/cli/chunks/chunk-2EQVYYBF.js +0 -2
- package/dist/cli/chunks/chunk-3VF3HCG4.js +0 -2
- package/dist/cli/chunks/chunk-GELF4ILR.js +0 -699
- package/dist/cli/chunks/chunk-JOLDCS6X.js +0 -2
- package/dist/cli/chunks/chunk-JSFYPLMQ.js +0 -2
- package/dist/cli/chunks/chunk-YX2HY4MX.js +0 -2
- package/dist/cli/chunks/client-2UKBYFX4.js +0 -2
- package/dist/cli/chunks/cross-domain-router-FPM3L27L.js +0 -2
- package/dist/cli/chunks/daemon-YWINEHG4.js +0 -10
- package/dist/cli/chunks/dream-XM33US3V.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-GM3M2MTG.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-K62GEHIL.js +0 -2
- package/dist/cli/chunks/hnsw-index-VCAK3TWN.js +0 -2
- package/dist/cli/chunks/hooks-6Y3UHYI2.js +0 -248
- package/dist/cli/chunks/hybrid-router-432QNCNG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-VTSISNN4.js +0 -2
- package/dist/cli/chunks/init-wizard-COB5AH7Q.js +0 -2
- package/dist/cli/chunks/kernel-ROK7X5FM.js +0 -2
- package/dist/cli/chunks/knowledge-graph-YUWIDIWW.js +0 -2
- package/dist/cli/chunks/llm-router-service-7VLXJ7VE.js +0 -2
- package/dist/cli/chunks/load-test-32524DL3.js +0 -2
- package/dist/cli/chunks/memory-backend-BI2V5AAB.js +0 -2
- package/dist/cli/chunks/memory-handlers-NSOFWVFN.js +0 -2
- package/dist/cli/chunks/protocol-executor-2UPB7SPI.js +0 -2
- package/dist/cli/chunks/provider-manager-PDT37MIJ.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-AQQ2BI4V.js +0 -2
- package/dist/cli/chunks/queen-coordinator-6DVDVEU4.js +0 -2
- package/dist/cli/chunks/router-O2G4KQ6L.js +0 -2
- package/dist/cli/chunks/routing-feedback-TAGTD3KQ.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-46GRWQJR.js +0 -2
- package/dist/cli/chunks/safe-db-LNIPXXHH.js +0 -2
- package/dist/cli/chunks/schedule-AUH3ZALY.js +0 -2
- package/dist/cli/chunks/scheduler-KK3OYPWW.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-XWTQPGCT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-CYESP7NG.js +0 -2
- package/dist/cli/chunks/sync-VI37UHHH.js +0 -2
- package/dist/cli/chunks/token-bootstrap-2DFRVMBM.js +0 -2
- package/dist/cli/chunks/unified-memory-RISHEANP.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-2IKXGMNZ.js +0 -2
- package/dist/cli/chunks/unified-persistence-ZTTUJNTU.js +0 -2
- package/dist/cli/chunks/visual-security-D66DTAO5.js +0 -2
- package/dist/cli/chunks/witness-chain-RHWHHDLV.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-OQMFW2TC.js +0 -2
- package/dist/cli/chunks/wrappers-MM5VLEPG.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.5");process.exit(0)}
|
|
2
|
+
import{a,b,e as h,f as i,g as j,h as k,i as l,j as m,k as n,m as o}from"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import{a as f,b as g}from"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-S73KENCH.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import{a as c,d,e}from"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";o();export{a as ALLOWED_TABLE_NAMES,c as BinaryHeap,i as DEFAULT_UNIFIED_MEMORY_CONFIG,d as UnifiedHnswIndex,k as UnifiedMemoryManager,f as clearProjectRootCache,e as createHnswIndex,g as findProjectRoot,h as getDefaultDbPath,j as getResolvedDefaultConfig,l as getUnifiedMemory,m as initializeUnifiedMemory,n as resetUnifiedMemory,b as validateTableName};
|
|
@@ -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.10.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f}from"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";f();export{a as BinaryHeap,b as InMemoryHNSWIndex,c as RuvectorFlatIndex,d as UnifiedHnswIndex,e as createHnswIndex};
|
|
@@ -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.10.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e}from"./chunk-CUY2EUSQ.js";import"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-S73KENCH.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";export{a as DEFAULT_UNIFIED_CONFIG,b as UnifiedPersistenceManager,c as getUnifiedPersistence,d as initializeUnifiedPersistence,e as resetUnifiedPersistence};
|
|
@@ -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.10.
|
|
2
|
-
import{S as m,b as c}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.5");process.exit(0)}
|
|
2
|
+
import{S as m,b as c}from"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";m();import{Command as f}from"commander";import n from"chalk";import{createRequire as u}from"node:module";import{platform as p,arch as v}from"node:os";var y=[{packageName:"better-sqlite3",role:"SQLite storage (required \u2014 memory.db, patterns, audit)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"web-tree-sitter",role:"Tree-sitter WASM parser runtime (required \u2014 code intelligence)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"hnswlib-node",role:"Canonical HNSW vector index (default since ADR-090)",fallback:"ProgressiveHnswBackend (JS) \u2014 correct but slower on large codebases",affectsFlags:["useNativeHNSW"],required:!1},{packageName:"@ruvector/rvf-node",role:"Persistent HNSW pattern store + RVF brain export format",fallback:"SQLite-backed HNSW + JSONL brain export",affectsFlags:["useRVFPatternStore"],required:!1},{packageName:"@ruvector/solver-node",role:"Sublinear PageRank on the pattern citation graph",fallback:"TypeScript power iteration \u2014 O(n\xB7m) (practical cap \u2248 50K nodes)",affectsFlags:["useSublinearSolver"],required:!1},{packageName:"@ruvector/attention",role:"Flash Attention with SIMD acceleration",fallback:"Plain attention \u2014 2.5\u20137\xD7 slower on large sequences",affectsFlags:["useQEFlashAttention"],required:!1},{packageName:"@ruvector/gnn",role:"GraphMAE native acceleration",fallback:"TypeScript GraphMAE \u2014 correct but slower",affectsFlags:["useGraphMAEEmbeddings"],required:!1}];function b(){let r=u(import.meta.url);return o=>{try{return r(o),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a:new Error(String(a))}}}}function N(r,o){return r.map(a=>{let s=o(a.packageName);if(s.ok)return{...a,status:"loaded"};let t=E(s.error),e=a.required?"required-missing":"missing";return{...a,status:e,loadError:s.error.message}})}function E(r){return r.code==="MODULE_NOT_FOUND"}var R={RUVECTOR_USE_RVF_PATTERN_STORE:"useRVFPatternStore",RUVECTOR_USE_SUBLINEAR_SOLVER:"useSublinearSolver",RUVECTOR_USE_NATIVE_HNSW:"useNativeHNSW",RUVECTOR_USE_GNN_INDEX:"useQEGNNIndex",RUVECTOR_USE_FLASH_ATTENTION:"useQEFlashAttention",RUVECTOR_USE_GRAPH_MAE_EMBEDDINGS:"useGraphMAEEmbeddings"};function S(r){let o=[];for(let[a,s]of Object.entries(R)){let t=r[a];t!==void 0&&o.push({envVar:a,value:t,flagName:s})}return o}function k(r){let o=[],a=new Map(r.natives.map(e=>[e.packageName,e]));for(let e of r.natives)e.status==="required-missing"&&o.push({severity:"error",message:`Required dependency missing: ${e.packageName} \u2014 ${e.role}`,action:`npm install ${e.packageName}`});for(let e of r.natives)e.status==="missing"&&!e.required&&o.push({severity:"warn",message:`Optional native missing: ${e.packageName} \u2014 falls back to ${e.fallback}`,action:`npm install ${e.packageName}`});let s={...r.flags};for(let e of r.envOverrides){let i=r.natives.filter(d=>d.affectsFlags.includes(e.flagName)),l=i.some(d=>d.status==="loaded");if((e.value==="true"||e.value==="1")&&i.length>0&&!l){let d=i.map(g=>g.packageName).join(", ");o.push({severity:"warn",message:`${e.envVar}=${e.value} requests flag ${e.flagName}=true, but required native(s) not loaded: ${d}. The flag will silently fall back.`,action:i[0]?`npm install ${i[0].packageName}`:void 0})}}return r.natives.filter(e=>!e.required&&e.status==="missing").length===0&&r.natives.every(e=>e.status!=="required-missing")&&o.push({severity:"info",message:"All recommended native bindings are loaded \u2014 no action required."}),o}function q(r){let o=N(y,r.probe),a=S(r.env),s=k({natives:o,flags:r.flags,envOverrides:a}),t=o.filter(l=>!l.required&&l.status==="loaded").length,e=o.filter(l=>!l.required&&l.status==="missing").length,i=o.filter(l=>l.required).every(l=>l.status==="loaded");return{aqeVersion:r.aqeVersion,platform:{os:p(),arch:v(),node:process.version},natives:o,flags:r.flags,envOverrides:a,recommendations:s,summary:{requiredOk:i,optionalMissingCount:e,optionalLoadedCount:t}}}function h(r,o){return r.summary.requiredOk?o&&r.summary.optionalMissingCount>0?1:0:2}function O(r){let o=[],a=(e="")=>o.push(e);a(""),a(n.bold.blue(" aqe upgrade \u2014 native binding report")),a(n.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),a(""),a(` AQE: ${n.cyan(r.aqeVersion)}`),a(` Platform: ${n.cyan(`${r.platform.os} ${r.platform.arch}`)}`),a(` Node: ${n.cyan(r.platform.node)}`),a(""),a(n.blue(" Native bindings:"));for(let e of r.natives){let i=$(e.status);a(` ${i} ${n.bold(e.packageName.padEnd(28))} ${n.gray(e.role)}`),e.status!=="loaded"&&e.loadError&&a(` ${n.gray(e.loadError.split(`
|
|
3
3
|
`)[0])}`)}a(""),a(n.blue(" Flag state (after env overrides):"));let s=Object.entries(r.flags);for(let[e,i]of s){let l=i?n.green("on "):n.yellow("off");a(` ${l} ${e}`)}if(r.envOverrides.length>0){a(""),a(n.blue(" Env overrides in effect:"));for(let e of r.envOverrides)a(` ${n.cyan(e.envVar)}=${n.cyan(e.value)} ${n.gray(`\u2192 ${e.flagName}`)}`)}if(a(""),a(n.blue(" Recommendations:")),r.recommendations.length===0)a(n.gray(" (none)"));else for(let e of r.recommendations){let i=F(e.severity);a(` ${i} ${e.message}`),e.action&&a(` ${n.gray("\u2192")} ${n.cyan(e.action)}`)}a("");let t=r.summary.requiredOk?n.green("OK"):n.red("FAIL");return a(` Summary: required ${t} optional loaded ${n.cyan(r.summary.optionalLoadedCount)} / ${n.cyan(r.summary.optionalLoadedCount+r.summary.optionalMissingCount)}`),a(""),o.join(`
|
|
4
4
|
`)}function $(r){switch(r){case"loaded":return n.green("\u2713");case"missing":return n.yellow("\u2026");case"required-missing":return n.red("\u2717")}}function F(r){switch(r){case"info":return n.green("\u2713");case"warn":return n.yellow("!");case"error":return n.red("\u2717")}}function U(r){return new f("upgrade").description("Detect optional native bindings and recommend install / flag changes (read-only)").option("--json","Emit the report as JSON to stdout",!1).option("--strict","Exit non-zero if any recommended optional native is missing",!1).action(async a=>{let s=A(),t=c(),e=q({aqeVersion:s,probe:b(),env:process.env,flags:{useRVFPatternStore:t.useRVFPatternStore,useSublinearSolver:t.useSublinearSolver,useNativeHNSW:t.useNativeHNSW,useGraphMAEEmbeddings:t.useGraphMAEEmbeddings,useQEFlashAttention:t.useQEFlashAttention}});a.json?process.stdout.write(JSON.stringify(e,null,2)+`
|
|
5
5
|
`):process.stdout.write(O(e)),await r(h(e,a.strict===!0))})}function A(){try{return u(import.meta.url)("../../../package.json").version??"unknown"}catch{return"unknown"}}export{y as NATIVE_CATALOG,k as buildRecommendations,q as buildReport,b as createDefaultLoadProbe,U as createUpgradeCommand,N as detectNatives,h as exitCodeFor,S as readEnvOverrides,O as renderReportHuman};
|
|
@@ -1,9 +1,9 @@
|
|
|
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.10.
|
|
2
|
-
import{e as
|
|
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.10.5");process.exit(0)}
|
|
2
|
+
import{e as V}from"./chunk-DWLGFYXV.js";import"./chunk-HNYSBE5J.js";import{a as P}from"./chunk-AVQD7KEN.js";import"./chunk-ZS4BGJJV.js";import{b as v,d as F}from"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-S73KENCH.js";import"./chunk-MJRYHHOG.js";import"./chunk-S7HQOGVD.js";F();import{Command as M}from"commander";import{readFileSync as A,writeFileSync as S,existsSync as C,readdirSync as O,statSync as B}from"fs";import{join as b,resolve as j,basename as I}from"path";import e from"chalk";function R(i){let n=j(i);if(!C(n))throw new Error(`Input path not found: ${n}`);if(B(n).isDirectory()){let r=[],t=O(n).filter(o=>o.endsWith(".json")).map(o=>b(n,o));for(let o of t)try{let u=v(A(o,"utf-8"));if($(u))r.push(u);else if(Array.isArray(u))for(let d of u)$(d)&&r.push(d)}catch{console.warn(e.yellow(`Warning: Could not parse ${I(o)}`))}return r}else{let r=v(A(n,"utf-8"));if($(r))return[r];if(Array.isArray(r))return r.filter($);throw new Error("Invalid input format. Expected ParallelValidationRunResult or array of results.")}}function $(i){return typeof i=="object"&&i!==null&&"runId"in i&&"model"in i&&"outcomes"in i&&Array.isArray(i.outcomes)}function D(){return P({storeQEPattern:async()=>{},searchQEPatterns:async()=>({success:!0,value:[]}),addFact:async()=>({success:!0,value:void 0}),query:async()=>({success:!0,value:{results:[],confidence:0}}),getStats:()=>({totalPatterns:0,totalFacts:0,indexHealth:1,lastCompaction:new Date})})}function T(){let i=process.cwd(),n=[b(i,".claude/skills/trust-tier-manifest.json"),b(i,".claude/skills/skills-manifest.json")];for(let g of n)if(C(g))return g;return b(i,".claude/skills/trust-tier-manifest.json")}function L(i,n,g){let r=g.format||"markdown";if(r==="markdown"||r==="both"){let t=n.generateMarkdownReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".md"):g.output;S(o,t),console.log(e.green(`Markdown report written to: ${o}`))}else console.log(`
|
|
3
3
|
`+t)}if(r==="json"||r==="both"){let t=n.generateJsonReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".json"):g.output;S(o,t),console.log(e.green(`JSON report written to: ${o}`))}else console.log(`
|
|
4
4
|
`+t)}}function W(i,n,g){let r=new M("skill").description("Skill validation and reporting (ADR-056)");return r.command("report").description("Generate aggregated report from validation results").requiredOption("-i, --input <path>","Input file or directory containing validation results").option("-o, --output <path>","Output file path (default: stdout)").option("-f, --format <format>","Output format: markdown, json, or both","markdown").option("-b, --baseline <path>","Baseline directory for regression detection").option("--detect-regressions","Enable regression detection against historical data").option("--update-manifest","Update trust tier manifest with new pass rates").option("-t, --threshold <number>","Regression threshold (0-1)",parseFloat).option("-v, --verbose","Verbose output").action(async t=>{try{t.verbose&&(console.log(e.blue(`
|
|
5
5
|
Validation Result Aggregator`)),console.log(e.gray(`ADR-056 Phase 5
|
|
6
|
-
`))),console.log(e.gray(`Loading results from: ${t.input}`));let o=R(t.input);if(o.length===0){console.log(e.yellow("No validation results found")),await n(0);return}console.log(e.gray(`Loaded ${o.length} validation run(s)`));let u=T(),d=D(),f=
|
|
6
|
+
`))),console.log(e.gray(`Loading results from: ${t.input}`));let o=R(t.input);if(o.length===0){console.log(e.yellow("No validation results found")),await n(0);return}console.log(e.gray(`Loaded ${o.length} validation run(s)`));let u=T(),d=D(),f=V(d,u,{regressionThreshold:t.threshold??.1,autoUpdateManifest:t.updateManifest??!1});console.log(e.gray("Aggregating results..."));let a=await f.aggregateResults(o);if(console.log(`
|
|
7
7
|
`+e.bold("Summary:")),console.log(` Total Skills: ${e.white(a.summary.totalSkills)}`),console.log(` Passed: ${e.green(a.summary.passedSkills)}`),console.log(` Failed: ${e.red(a.summary.failedSkills)}`),console.log(` Avg Pass Rate: ${e.cyan((a.summary.avgPassRate*100).toFixed(1)+"%")}`),console.log(` Total Tests: ${e.white(a.summary.totalTests)}`),console.log(` Duration: ${e.gray((a.summary.totalDurationMs/1e3).toFixed(1)+"s")}`),a.regressions.length>0){console.log(`
|
|
8
8
|
`+e.bold.red("Regressions Detected:"));for(let c of a.regressions.slice(0,5)){let m=c.regressionAmount>.2?e.red(" !"):e.yellow(" !");console.log(`${m} ${c.skill} (${c.model}): ${(c.previousPassRate*100).toFixed(1)}% -> ${(c.currentPassRate*100).toFixed(1)}%`)}a.regressions.length>5&&console.log(e.gray(` ... and ${a.regressions.length-5} more`))}if(a.recommendations.length>0&&t.verbose){console.log(`
|
|
9
9
|
`+e.bold("Recommendations:"));for(let c of a.recommendations)console.log(e.cyan(` - ${c}`))}L(a,f,t),t.updateManifest&&(console.log(e.gray(`
|
|
@@ -1,7 +1,7 @@
|
|
|
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.10.
|
|
2
|
-
import{a as i,b as
|
|
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.10.5");process.exit(0)}
|
|
2
|
+
import{a as i,b as k,c as d,d as p}from"./chunk-DWLGFYXV.js";import"./chunk-HNYSBE5J.js";import{a as v}from"./chunk-SXQIH2QA.js";import{a as h}from"./chunk-AVQD7KEN.js";import"./chunk-PGNQR2VM.js";import"./chunk-ZS4BGJJV.js";import"./chunk-SK6YRNXI.js";import"./chunk-7JZCEQFR.js";import"./chunk-UOIT5JZ6.js";import"./chunk-IUKERFLT.js";import"./chunk-RZ7D5SHS.js";import"./chunk-RFNEEDPQ.js";import"./chunk-J533CJUN.js";import"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-IRS4HKAR.js";import"./chunk-S73KENCH.js";import"./chunk-7DU35D4M.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";import{Command as x}from"commander";import o from"chalk";function j(e,t,n){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await n())try{console.log(o.blue(`
|
|
3
3
|
Swarm Skill Validation
|
|
4
|
-
`));let r=l.skills==="all"?[...d]:l.skills.split(",").map(y=>y.trim()),u=l.models.split(",").map(y=>y.trim()),g=P(l.topology),a={topology:g,maxConcurrentSkills:parseInt(l.maxConcurrent,10)||i.maxConcurrentSkills,maxConcurrentModels:parseInt(l.maxModels,10)||i.maxConcurrentModels,timeout:parseInt(l.timeout,10)||i.timeout,continueOnFailure:!0,retry:l.retry!==!1?i.retry:void 0};l.verbose&&(console.log(o.gray("Configuration:")),console.log(o.gray(` Topology: ${a.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${a.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${a.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${a.timeout}ms`)),console.log(o.gray(` Retry: ${a.retry?"enabled":"disabled"}`)),console.log("")),console.log(o.cyan(` Skills: ${r.join(", ")}`)),console.log(o.cyan(` Models: ${u.join(", ")}`)),console.log(o.cyan(` Topology: ${g}`)),console.log("");let m=await R(e),f=h(m),C=
|
|
4
|
+
`));let r=l.skills==="all"?[...d]:l.skills.split(",").map(y=>y.trim()),u=l.models.split(",").map(y=>y.trim()),g=P(l.topology),a={topology:g,maxConcurrentSkills:parseInt(l.maxConcurrent,10)||i.maxConcurrentSkills,maxConcurrentModels:parseInt(l.maxModels,10)||i.maxConcurrentModels,timeout:parseInt(l.timeout,10)||i.timeout,continueOnFailure:!0,retry:l.retry!==!1?i.retry:void 0};l.verbose&&(console.log(o.gray("Configuration:")),console.log(o.gray(` Topology: ${a.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${a.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${a.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${a.timeout}ms`)),console.log(o.gray(` Retry: ${a.retry?"enabled":"disabled"}`)),console.log("")),console.log(o.cyan(` Skills: ${r.join(", ")}`)),console.log(o.cyan(` Models: ${u.join(", ")}`)),console.log(o.cyan(` Topology: ${g}`)),console.log("");let m=await R(e),f=h(m),C=k(a,f),$=Date.now();console.log(o.yellow(` Starting parallel validation...
|
|
5
5
|
`));let b=await C.validateSkillsParallel(r,u),s=C.getSummary(b),w=Date.now()-$;l.json?T(s):D(s,l.verbose),console.log(o.blue(`
|
|
6
6
|
Summary
|
|
7
7
|
`)),console.log(` Total validations: ${o.white(s.results.length)}`),console.log(` Passed: ${o.green(s.successCount)}`),console.log(` Failed: ${o.red(s.failureCount)}`),console.log(` Pass rate: ${V(s.overallPassRate)}`),console.log(` Total time: ${o.gray(S(w))}`),console.log(` Avg time per validation: ${o.gray(S(s.avgDurationMs))}`),console.log("");let M=s.failureCount>0?1:0;await t(M)}catch(r){console.error(o.red(`
|
|
@@ -10,5 +10,5 @@ Validation failed:`),r),await t(1)}}),c.command("list").description("List availa
|
|
|
10
10
|
`));for(let l of d)console.log(` ${o.green("*")} ${o.white(l)}`);console.log(o.gray(`
|
|
11
11
|
Total: ${d.length} skills
|
|
12
12
|
`)),console.log(o.cyan(` Default Models:
|
|
13
|
-
`));for(let l of p)console.log(` ${o.blue("*")} ${o.white(l)}`);console.log(""),await t(0)}),c}function P(e){let t=e.toLowerCase().trim();return t==="hierarchical"||t==="mesh"?t:(console.log(o.yellow(` Warning: Invalid topology "${e}", using hierarchical`)),"hierarchical")}async function R(e){return
|
|
13
|
+
`));for(let l of p)console.log(` ${o.blue("*")} ${o.white(l)}`);console.log(""),await t(0)}),c}function P(e){let t=e.toLowerCase().trim();return t==="hierarchical"||t==="mesh"?t:(console.log(o.yellow(` Warning: Invalid topology "${e}", using hierarchical`)),"hierarchical")}async function R(e){return v({sqlite:{dbPath:".agentic-qe/validation.db",walMode:!0},embeddings:{quantized:!0,enableCache:!0,maxCacheSize:5e3},enableLearning:!0,enableRouting:!0,enableGuidance:!1,hnsw:{M:16,efConstruction:200,efSearch:100},routingWeights:{similarity:.4,performance:.35,capabilities:.25}})}function T(e){let t={summary:{totalSkills:e.totalSkills,totalModels:e.totalModels,successCount:e.successCount,failureCount:e.failureCount,overallPassRate:e.overallPassRate,totalDurationMs:e.totalDurationMs,avgDurationMs:e.avgDurationMs,topology:e.topology},results:e.results.map(n=>({skill:n.skill,model:n.model,schemaValid:n.schemaValid,validatorPassed:n.validatorPassed,evalPassRate:n.evalPassRate,durationMs:n.durationMs,errors:n.errors,trustTier:n.trustTier,validationLevel:n.validationLevel,retryCount:n.retryCount,timestamp:n.timestamp.toISOString()}))};console.log(JSON.stringify(t,null,2))}function D(e,t){console.log(o.cyan(` Results by Skill:
|
|
14
14
|
`));for(let[n,c]of e.bySkill){let l=c.filter(a=>a.errors.length===0&&a.evalPassRate>=.9).length,r=c.length,u=r>0?l/r:0,g=u>=.9?o.green("*"):u>=.7?o.yellow("!"):o.red("x");if(console.log(` ${g} ${o.white(n)}`),console.log(o.gray(` Pass rate: ${(u*100).toFixed(1)}% (${l}/${r})`)),t)for(let a of c){let m=a.errors.length===0?o.green("+"):o.red("-");if(console.log(` ${m} ${a.model}: ${(a.evalPassRate*100).toFixed(1)}% (${S(a.durationMs)})`),a.errors.length>0)for(let f of a.errors)console.log(o.red(` Error: ${f}`))}console.log("")}}function V(e){let t=`${(e*100).toFixed(1)}%`;return e>=.9?o.green(t):e>=.7?o.yellow(t):o.red(t)}function S(e){if(e<1e3)return`${Math.round(e)}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/6e4),n=(e%6e4/1e3).toFixed(0);return`${t}m ${n}s`}export{j as createValidateSwarmCommand};
|
|
@@ -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.10.
|
|
2
|
-
import{c as t}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.10.5");process.exit(0)}
|
|
2
|
+
import{c as t}from"./chunk-S7HQOGVD.js";import{createRequire as o}from"module";var i,e,a,c,l,p,s,m,u,d,A,f,h,_,b,v,L,n=t(()=>{i=o(import.meta.url),e=i("vibium"),a=e,{RuvectorLayer:c,TensorCompress:l,differentiableSearch:p,hierarchicalForward:s,getCompressionLevel:m,init:u,FlashAttention:d,DotProductAttention:A,MultiHeadAttention:f,HyperbolicAttention:h,LinearAttention:_,MoEAttention:b,SonaEngine:v,pipeline:L}=e||{}});n();export{A as DotProductAttention,d as FlashAttention,h as HyperbolicAttention,_ as LinearAttention,b as MoEAttention,f as MultiHeadAttention,c as RuvectorLayer,v as SonaEngine,l as TensorCompress,a as default,p as differentiableSearch,m as getCompressionLevel,s as hierarchicalForward,u as init,L as pipeline};
|
|
@@ -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.10.5");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-YZFNPTGN.js";import"./chunk-GMU7P5O3.js";import"./chunk-K5KKZWED.js";import"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-S73KENCH.js";import"./chunk-7DU35D4M.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";export{a as VisualSecurityTool};
|
|
@@ -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.10.
|
|
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.10.5");process.exit(0)}
|
|
2
|
+
import"./chunk-S7HQOGVD.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
|
|
@@ -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.10.
|
|
2
|
-
import{b as u}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.10.5");process.exit(0)}
|
|
2
|
+
import{b as u}from"./chunk-TMTLWSSA.js";import{a as f,c as h}from"./chunk-S73KENCH.js";import"./chunk-S7HQOGVD.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.mcpServers),JSON.stringify(r,null,2)+`
|
|
3
3
|
`}catch{return t}}mergeExistingRules(e,t){try{let r=g(e,"utf-8");return r.includes("Agentic QE")||r.includes("fleet_init")?r:r.trimEnd()+`
|
|
4
4
|
|
|
5
5
|
---
|
|
@@ -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.10.
|
|
2
|
-
import{a,b,c,d,e,f,g}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.10.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-UOIT5JZ6.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
|
|
@@ -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.10.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i}from"./chunk-G4GX6YKX.js";import"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-S73KENCH.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,i as _resetWitnessChainForTests,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
|
|
@@ -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.10.
|
|
2
|
-
import{b as $}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.5");process.exit(0)}
|
|
2
|
+
import{b as $}from"./chunk-3BGGNHHZ.js";import"./chunk-4Z7XH4JE.js";import{d as R}from"./chunk-HKJ3LG3N.js";import{b as k,c as C,d as b}from"./chunk-VKWDMOR4.js";import{c as W}from"./chunk-56RA6YPN.js";import"./chunk-IRS4HKAR.js";import"./chunk-S73KENCH.js";import"./chunk-S7HQOGVD.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-ALCOCRA2.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-ALCOCRA2.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-Z4TMK6GZ.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.10.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-IT7CEHAJ.js";import"./chunk-FE3FGMNB.js";import"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-IRS4HKAR.js";import"./chunk-S73KENCH.js";import"./chunk-7DU35D4M.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
|
|
@@ -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.10.5");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-BSRCL6RU.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-IOE6LDPF.js";import"./chunk-R573V37S.js";import"./chunk-YEO2Z3UX.js";import"./chunk-D7NKRCIL.js";import"./chunk-56RA6YPN.js";import"./chunk-RLZDXQNM.js";import"./chunk-VC256KH2.js";import"./chunk-S73KENCH.js";import"./chunk-KIMJPTHD.js";import"./chunk-2UQWVF4P.js";import"./chunk-HPKYIK7R.js";import"./chunk-MJRYHHOG.js";import"./chunk-RONMVGCT.js";import"./chunk-IWRORKD7.js";import"./chunk-GTVXVYKE.js";import"./chunk-ZTC64OJE.js";import"./chunk-O5OOUMBB.js";import"./chunk-S7HQOGVD.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};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - qe-arena CLI (ADR-104, Phase 1)
|
|
3
|
+
*
|
|
4
|
+
* Competitive test-strategy tournaments over an arena fixture:
|
|
5
|
+
* real mutation kill rates, real coverage, seeded reproducibility.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import type { CLIContext } from '../handlers/interfaces.js';
|
|
9
|
+
export declare function createArenaCommand(_context: CLIContext, cleanupAndExit: (code: number) => Promise<never>, ensureInitialized: () => Promise<boolean>): Command;
|
|
10
|
+
//# sourceMappingURL=arena.d.ts.map
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - qe-arena CLI (ADR-104, Phase 1)
|
|
3
|
+
*
|
|
4
|
+
* Competitive test-strategy tournaments over an arena fixture:
|
|
5
|
+
* real mutation kill rates, real coverage, seeded reproducibility.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
10
|
+
export function createArenaCommand(_context, cleanupAndExit, ensureInitialized) {
|
|
11
|
+
const arena = new Command('arena')
|
|
12
|
+
.description('Competitive test-strategy tournaments (ADR-104)')
|
|
13
|
+
.addHelpText('after', `
|
|
14
|
+
Examples:
|
|
15
|
+
# Run a 4-strategy tournament against the demo fixture (reproducible under --seed)
|
|
16
|
+
aqe arena run --strategies 4 --target fixtures/arena-demo --seed 42
|
|
17
|
+
|
|
18
|
+
# Evolve the winner with 3 hill-climb steps
|
|
19
|
+
aqe arena run --target fixtures/arena-demo --seed 42 --evolve 3
|
|
20
|
+
|
|
21
|
+
# List persisted runs
|
|
22
|
+
aqe arena list
|
|
23
|
+
`);
|
|
24
|
+
arena
|
|
25
|
+
.command('run')
|
|
26
|
+
.description('Run a seeded strategy tournament against an arena fixture')
|
|
27
|
+
.requiredOption('--target <dir>', 'Arena fixture directory (src/*.mjs + tests/*.test.mjs)')
|
|
28
|
+
.option('--strategies <n>', 'Number of strategies', '4')
|
|
29
|
+
.option('--seed <n>', 'RNG seed (same seed = same tournament)', '42')
|
|
30
|
+
.option('--max-mutants <n>', 'Mutant sample cap', '24')
|
|
31
|
+
.option('--evolve <steps>', 'Hill-climb steps from the winner', '0')
|
|
32
|
+
.option('--json', 'Output the full arena-result@1 envelope as JSON')
|
|
33
|
+
.action(async (options) => {
|
|
34
|
+
try {
|
|
35
|
+
const { runArena } = await import('../../arena/arena.js');
|
|
36
|
+
const result = runArena({
|
|
37
|
+
target: options.target,
|
|
38
|
+
strategies: parseInt(options.strategies, 10),
|
|
39
|
+
seed: parseInt(options.seed, 10),
|
|
40
|
+
maxMutants: parseInt(options.maxMutants, 10),
|
|
41
|
+
evolveSteps: parseInt(options.evolve, 10),
|
|
42
|
+
log: options.json ? () => { } : (line) => console.error(chalk.dim(` ${line}`)),
|
|
43
|
+
});
|
|
44
|
+
// Persist fail-soft (memory.db may be unavailable; the run itself
|
|
45
|
+
// is standalone by design)
|
|
46
|
+
try {
|
|
47
|
+
const { getUnifiedMemory } = await import('../../kernel/unified-memory.js');
|
|
48
|
+
const um = getUnifiedMemory();
|
|
49
|
+
if (!um.isInitialized())
|
|
50
|
+
await um.initialize();
|
|
51
|
+
um.getDatabase()
|
|
52
|
+
.prepare(`INSERT OR REPLACE INTO kv_store (namespace, key, value) VALUES ('arena', ?, ?)`)
|
|
53
|
+
.run(`run:${result.seed}:${result.target}`, JSON.stringify(result));
|
|
54
|
+
}
|
|
55
|
+
catch (persistError) {
|
|
56
|
+
console.error(chalk.dim(` note: run not persisted (${toErrorMessage(persistError)})`));
|
|
57
|
+
}
|
|
58
|
+
if (options.json) {
|
|
59
|
+
console.log(JSON.stringify(result, null, 2));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const byId = new Map(result.strategies.map((s) => [s.id, s]));
|
|
63
|
+
console.log(chalk.blue(`\n Arena: ${result.target} · seed ${result.seed} · ${result.mutantsTotal} mutants\n`));
|
|
64
|
+
console.log(' rank id kill-rate coverage cost fitness groups');
|
|
65
|
+
result.ranking.forEach((id, i) => {
|
|
66
|
+
const s = byId.get(id);
|
|
67
|
+
const cov = s.coveragePct === null ? ' n/a' : `${s.coveragePct.toFixed(2)}%`.padStart(7);
|
|
68
|
+
console.log(` ${String(i + 1).padEnd(5)}${s.id.padEnd(5)}` +
|
|
69
|
+
`${(s.killRate * 100).toFixed(1).padStart(6)}% ${cov} ${s.suiteCostRatio.toFixed(2).padEnd(6)}` +
|
|
70
|
+
`${s.fitness.toFixed(4).padEnd(9)}${s.name}` +
|
|
71
|
+
(s.baselinePassed ? '' : chalk.red(' [baseline FAILED]')));
|
|
72
|
+
});
|
|
73
|
+
console.log(`\n competitive array (row beats column = 1):`);
|
|
74
|
+
const ids = result.strategies.map((s) => s.id);
|
|
75
|
+
console.log(` ${ids.map((i) => i.padEnd(4)).join('')}`);
|
|
76
|
+
result.competitiveArray.forEach((row, i) => {
|
|
77
|
+
console.log(` ${ids[i].padEnd(4)}${row.map((v) => String(v).padStart(2).padEnd(4)).join('')}`);
|
|
78
|
+
});
|
|
79
|
+
if (result.evolution.length > 0) {
|
|
80
|
+
console.log(`\n evolution:`);
|
|
81
|
+
for (const e of result.evolution) {
|
|
82
|
+
console.log(` step ${e.step}: [${e.groups.join('+')}] fitness ${e.fitness.toFixed(4)} ${e.accepted ? chalk.green('accepted') : 'rejected'}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const winner = byId.get(result.ranking[0]);
|
|
86
|
+
console.log(chalk.green(`\n winner: ${winner.id} [${winner.name}] — kill ${(winner.killRate * 100).toFixed(1)}%, fitness ${winner.fitness.toFixed(4)}\n`));
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error(chalk.red(` ✗ ${toErrorMessage(error)}`));
|
|
90
|
+
await cleanupAndExit(1);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
arena
|
|
94
|
+
.command('list')
|
|
95
|
+
.description('List persisted arena runs')
|
|
96
|
+
.option('--json', 'Output as JSON')
|
|
97
|
+
.action(async (options) => {
|
|
98
|
+
if (!await ensureInitialized())
|
|
99
|
+
return;
|
|
100
|
+
try {
|
|
101
|
+
const { getUnifiedMemory } = await import('../../kernel/unified-memory.js');
|
|
102
|
+
const um = getUnifiedMemory();
|
|
103
|
+
if (!um.isInitialized())
|
|
104
|
+
await um.initialize();
|
|
105
|
+
const rows = um.getDatabase()
|
|
106
|
+
.prepare(`SELECT key, value FROM kv_store WHERE namespace = 'arena' ORDER BY key`)
|
|
107
|
+
.all();
|
|
108
|
+
if (options.json) {
|
|
109
|
+
console.log(JSON.stringify(rows.map((r) => ({ key: r.key, result: JSON.parse(r.value) })), null, 2));
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (rows.length === 0) {
|
|
113
|
+
console.log(chalk.yellow(' no persisted arena runs'));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
for (const row of rows) {
|
|
117
|
+
const r = JSON.parse(row.value);
|
|
118
|
+
const winner = r.strategies.find((s) => s.id === r.ranking[0]);
|
|
119
|
+
console.log(` ${chalk.green(row.key)} — winner ${winner?.id} [${winner?.name}] fitness ${winner?.fitness}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error(chalk.red(` ✗ ${toErrorMessage(error)}`));
|
|
124
|
+
await cleanupAndExit(1);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return arena;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=arena.js.map
|
|
@@ -11,6 +11,7 @@ import path from 'node:path';
|
|
|
11
11
|
import { QE_HOOK_EVENTS } from '../../../learning/qe-hooks.js';
|
|
12
12
|
import { findProjectRoot, getUnifiedMemory } from '../../../kernel/unified-memory.js';
|
|
13
13
|
import { applyHookBusyTimeout, getHooksSystem, createHybridBackendWithTimeout, incrementDreamExperience, persistCommandExperience, printJson, printSuccess, printError, } from './hooks-shared.js';
|
|
14
|
+
import { ToolLoopGuardrail, createProjectToolLoopGuardrail, } from './tool-loop-guardrail.js';
|
|
14
15
|
/**
|
|
15
16
|
* Detect test framework from a Bash command. Returns null when no recognized
|
|
16
17
|
* framework is invoked.
|
|
@@ -142,7 +143,7 @@ export function registerCommandHooks(hooks) {
|
|
|
142
143
|
}
|
|
143
144
|
return;
|
|
144
145
|
}
|
|
145
|
-
catch
|
|
146
|
+
catch {
|
|
146
147
|
// On error, allow (fail-open for non-critical guard)
|
|
147
148
|
if (options.json) {
|
|
148
149
|
printJson({
|
|
@@ -191,6 +192,35 @@ export function registerCommandHooks(hooks) {
|
|
|
191
192
|
const warnings = warningPatterns
|
|
192
193
|
.filter(p => p.pattern.test(command))
|
|
193
194
|
.map(p => p.reason);
|
|
195
|
+
// ADR-100: tool-loop circuit breaker — flag commands that keep
|
|
196
|
+
// failing consecutively (state recorded by post-command). Fail-open.
|
|
197
|
+
let loopCheck = null;
|
|
198
|
+
try {
|
|
199
|
+
loopCheck = createProjectToolLoopGuardrail(findProjectRoot()).check(command);
|
|
200
|
+
}
|
|
201
|
+
catch { /* guardrail must never break the hook */ }
|
|
202
|
+
if (loopCheck && loopCheck.verdict === 'block' && ToolLoopGuardrail.isStrict()) {
|
|
203
|
+
// Strict mode: deny like a dangerous command
|
|
204
|
+
if (options.json) {
|
|
205
|
+
printJson({
|
|
206
|
+
hookSpecificOutput: {
|
|
207
|
+
hookEventName: 'PreToolUse',
|
|
208
|
+
permissionDecision: 'deny',
|
|
209
|
+
permissionDecisionReason: `Tool-loop breaker (AQE_STRICT_TOOL_LOOP): ${loopCheck.hint}`,
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
printError(`Blocked by tool-loop breaker: ${loopCheck.hint}`);
|
|
215
|
+
}
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (loopCheck && loopCheck.verdict === 'block') {
|
|
219
|
+
warnings.push(`🛑 TOOL-LOOP BREAKER: ${loopCheck.hint}`);
|
|
220
|
+
}
|
|
221
|
+
else if (loopCheck && loopCheck.verdict === 'warn') {
|
|
222
|
+
warnings.push(`Tool-loop breaker: ${loopCheck.hint}`);
|
|
223
|
+
}
|
|
194
224
|
if (dangerMatch) {
|
|
195
225
|
// BLOCK the command
|
|
196
226
|
if (options.json) {
|
|
@@ -228,7 +258,7 @@ export function registerCommandHooks(hooks) {
|
|
|
228
258
|
}
|
|
229
259
|
return;
|
|
230
260
|
}
|
|
231
|
-
catch
|
|
261
|
+
catch {
|
|
232
262
|
// Fail-open on error
|
|
233
263
|
if (options.json) {
|
|
234
264
|
printJson({
|
|
@@ -256,6 +286,12 @@ export function registerCommandHooks(hooks) {
|
|
|
256
286
|
const success = options.success === 'true' || options.success === true;
|
|
257
287
|
const exitCode = options.exitCode ? parseInt(options.exitCode, 10) : (success ? 0 : 1);
|
|
258
288
|
const command = (options.command || '').substring(0, 200);
|
|
289
|
+
// ADR-100: feed the tool-loop breaker — success resets, failure
|
|
290
|
+
// increments. Synchronous sidecar write; fail-open.
|
|
291
|
+
try {
|
|
292
|
+
createProjectToolLoopGuardrail(findProjectRoot()).record(command, success);
|
|
293
|
+
}
|
|
294
|
+
catch { /* guardrail must never break the hook */ }
|
|
259
295
|
// Determine if this is a test/build/lint command for richer learning
|
|
260
296
|
const isTestCmd = /\b(test|vitest|jest|pytest|mocha)\b/i.test(command);
|
|
261
297
|
const isBuildCmd = /\b(build|compile|tsc)\b/i.test(command);
|
|
@@ -106,6 +106,10 @@ export declare function persistTaskOutcome(opts: {
|
|
|
106
106
|
domain?: string;
|
|
107
107
|
success: boolean;
|
|
108
108
|
durationMs?: number;
|
|
109
|
+
/** ADR-101: agent that spawned this task (nesting provenance) */
|
|
110
|
+
parentAgentId?: string;
|
|
111
|
+
/** ADR-101: nesting depth, 0 = top-level */
|
|
112
|
+
depth?: number;
|
|
109
113
|
}): Promise<TaskOutcomeResult>;
|
|
110
114
|
/**
|
|
111
115
|
* Q-learning Bellman update for the hook-router state-action pair.
|
|
@@ -266,6 +266,61 @@ export async function persistTaskOutcome(opts) {
|
|
|
266
266
|
db.pragma('busy_timeout = 60000');
|
|
267
267
|
}
|
|
268
268
|
catch { /* hook-side patient timeout (ADR-001 / patch 260) */ }
|
|
269
|
+
// Fresh-project fix (found by ADR-101 E2E): captured_experiences is created
|
|
270
|
+
// by the experience-capture middleware, not the unified schema — on a fresh
|
|
271
|
+
// .agentic-qe the whole Stream B transaction silently failed against the
|
|
272
|
+
// missing table. Same canonical DDL as experience-replay.ts ensureSchema.
|
|
273
|
+
// Fail-soft: an unexpected legacy shape must not kill the learning txn —
|
|
274
|
+
// the inserts below will surface real problems.
|
|
275
|
+
try {
|
|
276
|
+
db.exec(`
|
|
277
|
+
CREATE TABLE IF NOT EXISTS captured_experiences (
|
|
278
|
+
id TEXT PRIMARY KEY,
|
|
279
|
+
task TEXT NOT NULL,
|
|
280
|
+
agent TEXT NOT NULL,
|
|
281
|
+
domain TEXT NOT NULL DEFAULT '',
|
|
282
|
+
success INTEGER NOT NULL DEFAULT 0,
|
|
283
|
+
quality REAL NOT NULL DEFAULT 0.5,
|
|
284
|
+
duration_ms INTEGER NOT NULL DEFAULT 0,
|
|
285
|
+
model_tier INTEGER,
|
|
286
|
+
routing_json TEXT,
|
|
287
|
+
steps_json TEXT,
|
|
288
|
+
result_json TEXT,
|
|
289
|
+
error TEXT,
|
|
290
|
+
started_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
291
|
+
completed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
292
|
+
source TEXT DEFAULT 'middleware',
|
|
293
|
+
application_count INTEGER DEFAULT 0,
|
|
294
|
+
avg_token_savings REAL DEFAULT 0,
|
|
295
|
+
embedding BLOB,
|
|
296
|
+
embedding_dimension INTEGER,
|
|
297
|
+
tags TEXT,
|
|
298
|
+
last_applied_at TEXT
|
|
299
|
+
);
|
|
300
|
+
CREATE TABLE IF NOT EXISTS experience_applications (
|
|
301
|
+
id TEXT PRIMARY KEY,
|
|
302
|
+
experience_id TEXT NOT NULL,
|
|
303
|
+
task TEXT NOT NULL,
|
|
304
|
+
success INTEGER NOT NULL,
|
|
305
|
+
tokens_saved INTEGER DEFAULT 0,
|
|
306
|
+
feedback TEXT,
|
|
307
|
+
applied_at TEXT DEFAULT (datetime('now')),
|
|
308
|
+
FOREIGN KEY (experience_id) REFERENCES captured_experiences(id) ON DELETE CASCADE
|
|
309
|
+
);
|
|
310
|
+
CREATE INDEX IF NOT EXISTS idx_exp_apps_experience ON experience_applications(experience_id);
|
|
311
|
+
`);
|
|
312
|
+
}
|
|
313
|
+
catch { /* legacy shape — inserts below report real failures */ }
|
|
314
|
+
// ADR-101 hotfix (v3.10.5 publish gate): qe_trajectories created by older
|
|
315
|
+
// versions (and minimal test fixtures) lacks metadata_json — naming it in
|
|
316
|
+
// the INSERT threw and aborted the whole transaction. Migrate in place.
|
|
317
|
+
try {
|
|
318
|
+
const trajCols = db.prepare(`PRAGMA table_info(qe_trajectories)`).all();
|
|
319
|
+
if (trajCols.length > 0 && !trajCols.some((c) => c.name === 'metadata_json')) {
|
|
320
|
+
db.exec(`ALTER TABLE qe_trajectories ADD COLUMN metadata_json TEXT`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch { /* fail-soft */ }
|
|
269
324
|
const experienceId = `exp-${Date.now()}-${randomUUID().slice(0, 8)}`;
|
|
270
325
|
const taskField = `${opts.agent}:${opts.taskId}`;
|
|
271
326
|
const durationMs = opts.durationMs ?? 0;
|
|
@@ -394,11 +449,19 @@ export async function persistTaskOutcome(opts) {
|
|
|
394
449
|
console.error(chalk.dim(`[hooks] post-task bridge: ${bridgeErr instanceof Error ? bridgeErr.message : 'unknown'}`));
|
|
395
450
|
}
|
|
396
451
|
// 5. Single-step qe_trajectories row
|
|
452
|
+
// ADR-101: nesting provenance lands in the metadata_json blob (stage 1 —
|
|
453
|
+
// no dedicated columns / schema migration)
|
|
397
454
|
const trajId = `traj-${Date.now()}-${randomUUID().slice(0, 8)}`;
|
|
455
|
+
const provenanceJson = opts.parentAgentId !== undefined || opts.depth !== undefined
|
|
456
|
+
? JSON.stringify({
|
|
457
|
+
...(opts.parentAgentId !== undefined ? { parentAgentId: opts.parentAgentId } : {}),
|
|
458
|
+
...(opts.depth !== undefined ? { depth: opts.depth } : {}),
|
|
459
|
+
})
|
|
460
|
+
: null;
|
|
398
461
|
db.prepare(`
|
|
399
|
-
INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json)
|
|
400
|
-
VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?)
|
|
401
|
-
`).run(trajId, taskField, opts.agent, opts.domain ?? 'general', opts.success ? 1 : 0, JSON.stringify([{ step: 1, task: opts.taskId, success: opts.success }]));
|
|
462
|
+
INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json, metadata_json)
|
|
463
|
+
VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?, ?)
|
|
464
|
+
`).run(trajId, taskField, opts.agent, opts.domain ?? 'general', opts.success ? 1 : 0, JSON.stringify([{ step: 1, task: opts.taskId, success: opts.success }]), provenanceJson);
|
|
402
465
|
// 6. Multi-step stitch — siblings sharing the same suffix taskId in the
|
|
403
466
|
// last hour. Only fires when ≥2 unconsolidated siblings exist.
|
|
404
467
|
try {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Nested-Subagent Provenance Validation (ADR-101)
|
|
3
|
+
*
|
|
4
|
+
* Parses and validates the `--parent-agent-id` / `--depth` flags on
|
|
5
|
+
* `aqe hooks post-task`. Anthropic announced nested subagent support
|
|
6
|
+
* (depth=5) on 2026-06-09; recording which agent spawned a task and at
|
|
7
|
+
* what depth lets ReasoningBank segment patterns per hierarchy level —
|
|
8
|
+
* useful today for flat depth-1 spawns, and ready for deep chains the
|
|
9
|
+
* day the upstream `Task` denylist lifts.
|
|
10
|
+
*/
|
|
11
|
+
/** Defensive bound — well above Anthropic's announced depth=5 cap */
|
|
12
|
+
export declare const MAX_NESTING_DEPTH = 32;
|
|
13
|
+
export interface NestingProvenance {
|
|
14
|
+
parentAgentId?: string;
|
|
15
|
+
depth?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface NestingProvenanceResult extends NestingProvenance {
|
|
18
|
+
/** Set when validation failed; the caller should reject the invocation */
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Validate raw flag values. Both flags are optional and independent;
|
|
23
|
+
* depth=0 is a valid value (top-level) and must survive as 0, not be
|
|
24
|
+
* coerced to undefined.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseNestingProvenance(parentAgentIdRaw?: string, depthRaw?: string | number): NestingProvenanceResult;
|
|
27
|
+
//# sourceMappingURL=nesting-provenance.d.ts.map
|