agentic-qe 3.13.11 → 3.14.0
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/.helpers-version +1 -1
- package/.claude/helpers/helpers.manifest.json +2 -2
- package/.claude/helpers/statusline.cjs +89 -40
- 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 +93 -0
- 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 +5 -5
- package/dist/cli/chunks/adapter-3VBXL7DO.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-5ARDZYNO.js → agent-booster-wasm-JZO6VUW4.js} +2 -2
- package/dist/cli/chunks/{agent-handler-SVKEPF7B.js → agent-handler-534KFGEJ.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-QDL7OVHC.js → agent-memory-branch-B7KWLWY4.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-NXRNKJNA.js +2 -0
- package/dist/cli/chunks/{arena-7OCKBN6O.js → arena-7CCD3S3I.js} +2 -2
- package/dist/cli/chunks/{arena-HQLSNQZ3.js → arena-OW5MELJX.js} +4 -4
- package/dist/cli/chunks/{audit-2EQJW5UE.js → audit-BHVKN4E2.js} +3 -3
- package/dist/cli/chunks/base-F6GMOKU2.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-OBFNNE4T.js → better-sqlite3-P5FA6WFK.js} +2 -2
- package/dist/cli/chunks/brain-handler-WNW5LOV7.js +90 -0
- package/dist/cli/chunks/{branch-enumerator-6B4L5O3D.js → branch-enumerator-TVZ2ODKH.js} +2 -2
- package/dist/cli/chunks/{browser-VDMGBWNK.js → browser-TCEB2W2F.js} +2 -2
- package/dist/cli/chunks/browser-workflow-QRDC46LR.js +2 -0
- package/dist/cli/chunks/{chunk-M3MRFZKD.js → chunk-2D7UBX5S.js} +1 -1
- package/dist/cli/chunks/{chunk-IZF3VLNW.js → chunk-2HYVOX6N.js} +1 -1
- package/dist/cli/chunks/{chunk-U6G6RUFI.js → chunk-2NO4H35K.js} +1 -1
- package/dist/cli/chunks/{chunk-4TJJU5Y2.js → chunk-2O4DDPEA.js} +19 -19
- package/dist/cli/chunks/{chunk-24XW7KUX.js → chunk-3EM2MK3Z.js} +2 -2
- package/dist/cli/chunks/chunk-3GUO4ERR.js +24 -0
- package/dist/cli/chunks/{chunk-YRCNWQBO.js → chunk-3JIJBR4V.js} +2 -2
- package/dist/cli/chunks/{chunk-2E2QCIGR.js → chunk-3QT6S3A3.js} +3 -3
- package/dist/cli/chunks/{chunk-W2T36CS5.js → chunk-3RYTAYR6.js} +1 -1
- package/dist/cli/chunks/chunk-43GPSYAL.js +14 -0
- package/dist/cli/chunks/{chunk-YYAJEPRD.js → chunk-4FEJEVG7.js} +1 -1
- package/dist/cli/chunks/{chunk-4DTBGQWA.js → chunk-4MK2G6TK.js} +2 -2
- package/dist/cli/chunks/{chunk-CK7ZLMD2.js → chunk-4XTHRAUV.js} +1 -1
- package/dist/cli/chunks/{chunk-LM727BVL.js → chunk-4ZVGSVHV.js} +4 -4
- package/dist/cli/chunks/{chunk-DPZ4AU6W.js → chunk-52DFCV57.js} +2 -2
- package/dist/cli/chunks/{chunk-PADCR4LY.js → chunk-5LEAGKX5.js} +2 -2
- package/dist/cli/chunks/{chunk-P736OKQN.js → chunk-5MZF4N4Q.js} +1 -1
- package/dist/cli/chunks/{chunk-XZI4QXJJ.js → chunk-5VDVYTO5.js} +2 -2
- package/dist/cli/chunks/chunk-5XGVSQS2.js +11 -0
- package/dist/cli/chunks/{chunk-AAPJG3WI.js → chunk-6AOZU3UN.js} +2 -2
- package/dist/cli/chunks/{chunk-NC7HTDH5.js → chunk-6AYO3IR2.js} +2 -2
- package/dist/cli/chunks/{chunk-TJ67B7S7.js → chunk-6DPAMYLU.js} +2 -2
- package/dist/cli/chunks/{chunk-PZHAPI47.js → chunk-6IJMD2ZL.js} +3 -3
- package/dist/cli/chunks/{chunk-RGUKQXKL.js → chunk-6IZQSLYZ.js} +2 -2
- package/dist/cli/chunks/{chunk-2E3PRDEX.js → chunk-6W42XWLL.js} +2 -2
- package/dist/cli/chunks/{chunk-ATRUE6CT.js → chunk-7BOPFN3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-LIGDJP6H.js → chunk-7OUMJCJT.js} +1 -1
- package/dist/cli/chunks/{chunk-2Y3PW5EJ.js → chunk-7RAB2BZY.js} +160 -26
- package/dist/cli/chunks/{chunk-XEUUWOSS.js → chunk-7RVAHJQZ.js} +3 -3
- package/dist/cli/chunks/{chunk-HHEWINDL.js → chunk-A2WZEMWT.js} +1 -1
- package/dist/cli/chunks/{chunk-36ONUM43.js → chunk-A7SKM6JL.js} +1 -1
- package/dist/cli/chunks/chunk-AFGT26NR.js +2 -0
- package/dist/cli/chunks/{chunk-23E37MDA.js → chunk-AR6SATU3.js} +2 -2
- package/dist/cli/chunks/{chunk-IYMV4CU5.js → chunk-AVLA5PBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-OLPJGYO5.js → chunk-B3H4K7CY.js} +2 -2
- package/dist/cli/chunks/{chunk-JWT675RM.js → chunk-BQCTO7UB.js} +2 -2
- package/dist/cli/chunks/{chunk-JKP2BUF5.js → chunk-BZ4QVFP2.js} +2 -2
- package/dist/cli/chunks/{chunk-WINYWMQP.js → chunk-CIUOC5F3.js} +1 -1
- package/dist/cli/chunks/{chunk-SJJFU7KK.js → chunk-CIZ6LSNV.js} +2 -2
- package/dist/cli/chunks/{chunk-2D7SBOZ4.js → chunk-DDPJUAXQ.js} +2 -2
- package/dist/cli/chunks/{chunk-H7QWOJF2.js → chunk-DJITEQYS.js} +2 -2
- package/dist/cli/chunks/{chunk-DMHQ4ZUZ.js → chunk-DOWCOZDO.js} +2 -2
- package/dist/cli/chunks/{chunk-PBJ5I2NS.js → chunk-E4NU4BJA.js} +2 -2
- package/dist/cli/chunks/{chunk-E54QUKAD.js → chunk-E722WNWC.js} +2 -2
- package/dist/cli/chunks/chunk-ECTPFCON.js +2 -0
- package/dist/cli/chunks/{chunk-MUAW4AJ6.js → chunk-EJ6IP7DE.js} +5 -5
- package/dist/cli/chunks/{chunk-NHL37QAZ.js → chunk-ENGKLFLY.js} +2 -2
- package/dist/cli/chunks/{chunk-VU3ARH4S.js → chunk-FF43SRP6.js} +1 -1
- package/dist/cli/chunks/{chunk-PJNIDDER.js → chunk-FOHYBR3O.js} +1 -1
- package/dist/cli/chunks/{chunk-LREIHR2A.js → chunk-FRL3X2QA.js} +2 -2
- package/dist/cli/chunks/{chunk-WYQM7GXW.js → chunk-GKNDP5VK.js} +2 -2
- package/dist/cli/chunks/{chunk-JK6ENS3J.js → chunk-GVEJP5T7.js} +2 -2
- package/dist/cli/chunks/{chunk-H3BHOIT6.js → chunk-H3YDDKBW.js} +3 -3
- package/dist/cli/chunks/{chunk-3SPYI7TS.js → chunk-H6NFDOMK.js} +1 -1
- package/dist/cli/chunks/{chunk-AZVV7POX.js → chunk-H76TV4UU.js} +3 -3
- package/dist/cli/chunks/{chunk-2HT5HRAA.js → chunk-HJIAVR6P.js} +2 -2
- package/dist/cli/chunks/{chunk-UZ7OWJ75.js → chunk-HLNQDRHA.js} +1 -1
- package/dist/cli/chunks/{chunk-IGW5L7YM.js → chunk-HNKPLVYS.js} +1 -1
- package/dist/cli/chunks/{chunk-Y2S6SS7M.js → chunk-HQ7243G3.js} +2 -2
- package/dist/cli/chunks/{chunk-TZA45FI7.js → chunk-HQHLHSJO.js} +2 -2
- package/dist/cli/chunks/{chunk-YEPJS4AM.js → chunk-I3VHXA2W.js} +2 -2
- package/dist/cli/chunks/{chunk-W2NQDAJZ.js → chunk-IE5LC7MB.js} +2 -2
- package/dist/cli/chunks/{chunk-TU4BYSXR.js → chunk-IL4AEB3J.js} +27 -25
- package/dist/cli/chunks/{chunk-JTQSXU6V.js → chunk-IL6QRXRP.js} +6 -6
- package/dist/cli/chunks/{chunk-UX5SM2PW.js → chunk-IQ3JFHZN.js} +1 -1
- package/dist/cli/chunks/{chunk-RAV2NJNX.js → chunk-IQLRA4FV.js} +1 -1
- package/dist/cli/chunks/{chunk-S3FNAHNC.js → chunk-J3XSHJGK.js} +2 -2
- package/dist/cli/chunks/{chunk-AHG2O5HT.js → chunk-JAK5UUWH.js} +2 -2
- package/dist/cli/chunks/{chunk-XDK2TPI5.js → chunk-JGROLJ33.js} +1 -1
- package/dist/cli/chunks/{chunk-MWTFFGU3.js → chunk-JMKMDSXG.js} +2 -2
- package/dist/cli/chunks/{chunk-BVKFBJX6.js → chunk-JRKEBESE.js} +2 -2
- package/dist/cli/chunks/{chunk-76NSSNB3.js → chunk-JTWJR2KY.js} +2 -2
- package/dist/cli/chunks/{chunk-QYHRDBKI.js → chunk-JY4VZ6BN.js} +2 -2
- package/dist/cli/chunks/{chunk-DLL3AJH7.js → chunk-K6CGQR5R.js} +1 -1
- package/dist/cli/chunks/{chunk-7HTYM6XY.js → chunk-KDIZQHG5.js} +2 -2
- package/dist/cli/chunks/{chunk-B646CE3C.js → chunk-KTSCZ7AW.js} +2 -2
- package/dist/cli/chunks/{chunk-LLP3UW62.js → chunk-L4C42WYI.js} +2 -2
- package/dist/cli/chunks/{chunk-H3AKF2HS.js → chunk-LCSVROU7.js} +10 -10
- package/dist/cli/chunks/{chunk-HZR4G6I3.js → chunk-LKR7T3OZ.js} +1 -1
- package/dist/cli/chunks/{chunk-Z5ARI4XT.js → chunk-LZHTCUCO.js} +2 -2
- package/dist/cli/chunks/{chunk-YDEYB6Z2.js → chunk-M3HUZD2I.js} +1 -1
- package/dist/cli/chunks/{chunk-GWTGBQ6X.js → chunk-MO7EITJK.js} +2 -2
- package/dist/cli/chunks/{chunk-5364DBZG.js → chunk-N2YAUDAV.js} +2 -2
- package/dist/cli/chunks/{chunk-XVFSZLRS.js → chunk-NDPQ2WPU.js} +1 -1
- package/dist/cli/chunks/{chunk-CTS545BF.js → chunk-NKWO2X3T.js} +1 -1
- package/dist/cli/chunks/{chunk-GPJDZFFV.js → chunk-NOPVFBQM.js} +2 -2
- package/dist/cli/chunks/{chunk-VNVGCJCS.js → chunk-NYARYONH.js} +1 -1
- package/dist/cli/chunks/{chunk-WRZ5WZG3.js → chunk-O2MZZL54.js} +2 -2
- package/dist/cli/chunks/{chunk-EKFKQGIT.js → chunk-OIYUSWHX.js} +1 -1
- package/dist/cli/chunks/{chunk-ZNGFSR5M.js → chunk-OONCRNFA.js} +2 -2
- package/dist/cli/chunks/{chunk-LUAXQB57.js → chunk-PEW6FZ47.js} +1 -1
- package/dist/cli/chunks/{chunk-W7BB4XLP.js → chunk-Q73RRTLE.js} +2 -2
- package/dist/cli/chunks/{chunk-JKPMV5VB.js → chunk-QKQZ4IJF.js} +5 -5
- package/dist/cli/chunks/{chunk-EHZQIXH6.js → chunk-QMMDN4WX.js} +3 -3
- package/dist/cli/chunks/chunk-QQCENKCX.js +2 -0
- package/dist/cli/chunks/{chunk-7YL7P5XG.js → chunk-QSPRQPEL.js} +2 -2
- package/dist/cli/chunks/{chunk-DXQMVATY.js → chunk-QZPFUFZG.js} +2 -2
- package/dist/cli/chunks/chunk-R2B6EE45.js +2 -0
- package/dist/cli/chunks/{chunk-VLW63UA2.js → chunk-R6WJF4D5.js} +2 -2
- package/dist/cli/chunks/{chunk-EWH7PFV6.js → chunk-RGVD6ZUX.js} +1 -1
- package/dist/cli/chunks/{chunk-UGFHEVG4.js → chunk-RKUYVVGJ.js} +2 -2
- package/dist/cli/chunks/{chunk-V7QZMOG3.js → chunk-S5YVLPXU.js} +2 -2
- package/dist/cli/chunks/{chunk-UDFTDQ6C.js → chunk-SROZXIMT.js} +37 -37
- package/dist/cli/chunks/{chunk-AFXMTSO3.js → chunk-SSV6KSFT.js} +1 -1
- package/dist/cli/chunks/{chunk-HGPMS6JL.js → chunk-SUSMHSXT.js} +2 -2
- package/dist/cli/chunks/{chunk-BL5BHBXR.js → chunk-T3BZAFLP.js} +1 -1
- package/dist/cli/chunks/{chunk-K652SCBA.js → chunk-TGOGCA74.js} +2 -2
- package/dist/cli/chunks/{chunk-VHNAN7E2.js → chunk-TKYEP7OR.js} +1 -1
- package/dist/cli/chunks/{chunk-OJUI65TR.js → chunk-TQJE7DNL.js} +2 -2
- package/dist/cli/chunks/{chunk-MS5CAEPA.js → chunk-TRDEULS7.js} +2 -2
- package/dist/cli/chunks/{chunk-YRV45WDT.js → chunk-U4GZWPKM.js} +2 -2
- package/dist/cli/chunks/{chunk-2BDTZYQN.js → chunk-UI6WSPEK.js} +3 -3
- package/dist/cli/chunks/{chunk-TMY2Y7SC.js → chunk-UUJ5VQJM.js} +1 -1
- package/dist/cli/chunks/{chunk-4CTKRLRX.js → chunk-VESOYP6A.js} +2 -2
- package/dist/cli/chunks/{chunk-UPMQHCC2.js → chunk-VOSISOFD.js} +1 -1
- package/dist/cli/chunks/{chunk-IZOWGVTU.js → chunk-VPVZHJSU.js} +2 -2
- package/dist/cli/chunks/{chunk-TBO64O56.js → chunk-VRRG66XB.js} +1 -1
- package/dist/cli/chunks/{chunk-WJB6YYMJ.js → chunk-VXU53F7Z.js} +2 -2
- package/dist/cli/chunks/{chunk-4TUGQESL.js → chunk-VYENTZ45.js} +2 -2
- package/dist/cli/chunks/chunk-WJXHE52V.js +65 -0
- package/dist/cli/chunks/{chunk-EN36AFRJ.js → chunk-WKNWRDA5.js} +1 -1
- package/dist/cli/chunks/{chunk-4X4GTEQY.js → chunk-WTHAVFIC.js} +1 -1
- package/dist/cli/chunks/{chunk-LPDT27EC.js → chunk-WWWX76QB.js} +2 -2
- package/dist/cli/chunks/{chunk-TCVEXQLL.js → chunk-XITTURP2.js} +2 -2
- package/dist/cli/chunks/{chunk-HV6LJ57R.js → chunk-XXFKN7LB.js} +1 -1
- package/dist/cli/chunks/{chunk-UJ2NRIAS.js → chunk-YEAC3DC6.js} +2 -2
- package/dist/cli/chunks/{chunk-FBASWZ7G.js → chunk-YKWMKRYB.js} +1 -1
- package/dist/cli/chunks/chunk-YKZV7O65.js +2 -0
- package/dist/cli/chunks/{chunk-PT6U3IIK.js → chunk-YW4RNZWT.js} +2 -2
- package/dist/cli/chunks/{chunk-H5DS7S4B.js → chunk-ZAAYOENS.js} +2 -2
- package/dist/cli/chunks/chunk-ZBKGX72B.js +13 -0
- package/dist/cli/chunks/{chunk-WVNLNXXI.js → chunk-ZBOWR4XT.js} +2 -2
- package/dist/cli/chunks/{chunk-FPX4JSFH.js → chunk-ZCVJCCQQ.js} +2 -2
- package/dist/cli/chunks/{chunk-OQWG7GOD.js → chunk-ZI3UO7QR.js} +8 -7
- package/dist/cli/chunks/{chunk-BPPEN7SS.js → chunk-ZNSMVQCG.js} +2 -2
- package/dist/cli/chunks/{chunk-EI4KYBNI.js → chunk-ZQSXG7FA.js} +2 -2
- package/dist/cli/chunks/{ci-M6WYL2XY.js → ci-B432UH6N.js} +2 -2
- package/dist/cli/chunks/{ci-output-JFC3WOHX.js → ci-output-GTHH7WYG.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-IMVBU6WP.js → circuit-breaker-VW75DLME.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-M5T5ZUXX.js → claude-flow-setup-RE3IVT7U.js} +2 -2
- package/dist/cli/chunks/client-HNBZUEVV.js +2 -0
- package/dist/cli/chunks/{cline-installer-LSFAUHXC.js → cline-installer-NUBZZ55N.js} +2 -2
- package/dist/cli/chunks/{code-N3SWJ3XL.js → code-K6JCWKNW.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-WPGRG36B.js → code-index-extractor-I4ILB5JN.js} +2 -2
- package/dist/cli/chunks/{codex-installer-LKRCSDU5.js → codex-installer-AKQ5BCHU.js} +2 -2
- package/dist/cli/chunks/{completions-E5TBZ5AB.js → completions-V3KJVJF4.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-3FOSOELK.js → complexity-analyzer-HRG7OOY3.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-ZSVFWMQB.js → continuedev-installer-CNTDONWG.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-POSKHPZM.js → copilot-installer-XPWWIWYA.js} +2 -2
- package/dist/cli/chunks/core-handlers-TB7NLYXL.js +2 -0
- package/dist/cli/chunks/{cost-tracker-3UWDCNGC.js → cost-tracker-MFNLQ56K.js} +2 -2
- package/dist/cli/chunks/{coverage-HPBO67JF.js → coverage-KOIK654V.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-MDSI553U.js +2 -0
- package/dist/cli/chunks/{cursor-installer-DSW3L62X.js → cursor-installer-S5MKLRQQ.js} +2 -2
- package/dist/cli/chunks/{daemon-2622ZCMJ.js → daemon-DUS6JYW6.js} +3 -3
- package/dist/cli/chunks/{daemon-33KTKDUM.js → daemon-Z7VPGWHY.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-YFT5JMM6.js → dag-attention-scheduler-7CQ3ARNI.js} +2 -2
- package/dist/cli/chunks/{detect-COR3Q6BE.js → detect-WORBCAYF.js} +2 -2
- package/dist/cli/chunks/{dist-node-5TRNTNWI.js → dist-node-KRNI6OYW.js} +2 -2
- package/dist/cli/chunks/{domain-handler-TZC4GCF6.js → domain-handler-KRUR2VQG.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-D2TENM3Y.js → domain-transfer-VEOVLV54.js} +2 -2
- package/dist/cli/chunks/dream-X7ISHFEE.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-QU3NQVA5.js +3 -0
- package/dist/cli/chunks/{eval-5ID5D77H.js → eval-AYQ7BSUP.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-MT4Z74TD.js → experience-capture-middleware-AWQBL6LT.js} +3 -3
- package/dist/cli/chunks/{fast-paths-MACRZGSE.js → fast-paths-V5EL4BYJ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-LFNL6BHS.js → feature-flags-BXX7BP22.js} +2 -2
- package/dist/cli/chunks/{feature-flags-JZX6ZBUX.js → feature-flags-P34BPRWU.js} +2 -2
- package/dist/cli/chunks/{file-discovery-DA5BEAO2.js → file-discovery-MS6BKQ2U.js} +2 -2
- package/dist/cli/chunks/{fleet-35I4F7D2.js → fleet-7WVVPA4W.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-2W3HM3ZI.js → gnn-wrapper-7WQ3LEPG.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-6O2D2FU2.js → heartbeat-handler-P7QD3BZH.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-2C5XGFQT.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-KCVMXLUL.js +2 -0
- package/dist/cli/chunks/hnsw-index-OGWZS6MP.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-GWBXEMQR.js → hnsw-legacy-bridge-Y3GAR3UP.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-TZ4VLARU.js → hnswlib-node-5QUXZQWQ.js} +2 -2
- package/dist/cli/chunks/{hooks-723GPTQ4.js → hooks-2D64KPRY.js} +10 -10
- package/dist/cli/chunks/{hypergraph-engine-ILRYFJM5.js → hypergraph-engine-5INXEZDP.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-523TSK4P.js → hypergraph-handler-YJJJ3ESZ.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-IBJ43GQL.js +2 -0
- package/dist/cli/chunks/{init-handler-RBDYIXNV.js → init-handler-QSFYJN5Q.js} +6 -6
- package/dist/cli/chunks/init-wizard-6XMFD5LP.js +2 -0
- package/dist/cli/chunks/kernel-UDUMUPB3.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-E2QSX7Z7.js → kilocode-installer-3N3QGTJU.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-EZZLT2R5.js → kiro-installer-GIWVTFZQ.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-JRYTUG3W.js +2 -0
- package/dist/cli/chunks/learning-SGO2DQ5Q.js +122 -0
- package/dist/cli/chunks/llm-router-HBBULO65.js +37 -0
- package/dist/cli/chunks/llm-router-service-KF5ZALUQ.js +2 -0
- package/dist/cli/chunks/{load-QFQ3YOBQ.js → load-B5OFYB4H.js} +2 -2
- package/dist/cli/chunks/load-test-LHMBCNCH.js +2 -0
- package/dist/cli/chunks/{mcp-FPBBJJFY.js → mcp-FG3LNQR4.js} +2 -2
- package/dist/cli/chunks/{memory-RKN6KV75.js → memory-SPS7ZWLC.js} +5 -5
- package/dist/cli/chunks/memory-backend-WZHKHBZK.js +2 -0
- package/dist/cli/chunks/memory-handlers-P7FTPWP3.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-OUNW3JM5.js → multi-model-executor-PUB7E6KH.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-FXETYGGY.js → opencode-installer-TGCSGVG2.js} +2 -2
- package/dist/cli/chunks/{orchestrator-35UTVXSP.js → orchestrator-S5FTJFGB.js} +10 -13
- package/dist/cli/chunks/pattern-null-store-UZSHCRL2.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-YEQDS7DN.js → pattern-usage-recorder-LCXXGRAB.js} +2 -2
- package/dist/cli/chunks/{pipeline-YDJMWCAR.js → pipeline-ENOSRHKW.js} +2 -2
- package/dist/cli/chunks/{platform-L3LPNVKT.js → platform-WCRBO3Z7.js} +2 -2
- package/dist/cli/chunks/{plugin-55EYFJH5.js → plugin-JZ5ODJSU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-SUZT6RTM.js → prime-radiant-advanced-wasm-DPJUPNCG.js} +2 -2
- package/dist/cli/chunks/protocol-executor-42NLVDTC.js +2 -0
- package/dist/cli/chunks/{protocol-handler-QNBFRJNY.js → protocol-handler-IP4NLVY3.js} +2 -2
- package/dist/cli/chunks/{prove-3X5NQP4L.js → prove-P6FM4RU7.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-W74RSMMU.js +2 -0
- package/dist/cli/chunks/{quality-5ZONTNA6.js → quality-UHP4XO26.js} +2 -2
- package/dist/cli/chunks/{quality-gate-JPNREEVR.js → quality-gate-63DDBSGM.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-XELKSRMS.js +2 -0
- package/dist/cli/chunks/real-embeddings-6SO5MFRQ.js +2 -0
- package/dist/cli/chunks/{roocode-installer-ZK73O2GD.js → roocode-installer-WTWUOFCH.js} +2 -2
- package/dist/cli/chunks/router-GTW2EQZV.js +2 -0
- package/dist/cli/chunks/routing-feedback-NVOBWEMK.js +2 -0
- package/dist/cli/chunks/{routing-handler-2UN5GRHJ.js → routing-handler-IK7HYERQ.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-EQQUEVWN.js → ruvector-commands-THLB4NIM.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-5OPVMXNL.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-5S4YFTX4.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-BUKCSHBD.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-LYSJHEVX.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-66FEC3MD.js → rvf-store-integrity-ECTADZIN.js} +2 -2
- package/dist/cli/chunks/safe-db-AEB3JMLD.js +2 -0
- package/dist/cli/chunks/schedule-4QNPCQNT.js +2 -0
- package/dist/cli/chunks/scheduler-S3DFHX6A.js +2 -0
- package/dist/cli/chunks/{security-H7PEUUCV.js → security-HN4UXFXX.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-XETNK4ID.js → shared-rvf-adapter-XJCPX5SN.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-PXD54BWJ.js → shared-rvf-dual-writer-23X5PNY5.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-L2KISU2H.js +2 -0
- package/dist/cli/chunks/status-handler-ZXANTHKT.js +47 -0
- package/dist/cli/chunks/{structural-health-EIFBDCRI.js → structural-health-LR6WI3AH.js} +2 -2
- package/dist/cli/chunks/{sync-PECWQ64K.js → sync-4OEI3BC2.js} +2 -2
- package/dist/cli/chunks/{sync-3SU4H6R3.js → sync-I5IUJF33.js} +2 -2
- package/dist/cli/chunks/{task-handler-ZTUAT6YF.js → task-handler-R3ATJKU5.js} +2 -2
- package/dist/cli/chunks/{task-handlers-4RIO7LJJ.js → task-handlers-4X357AEW.js} +3 -3
- package/dist/cli/chunks/{test-EV7BSUTI.js → test-PR2B5H2F.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-4WVI5DLE.js → test-scheduling-ZNOSQVLD.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-LYXOI72S.js +2 -0
- package/dist/cli/chunks/{token-usage-FR3JOWYB.js → token-usage-R6EQZBX2.js} +2 -2
- package/dist/cli/chunks/{transformers-FENO33LA.js → transformers-COQWK27J.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-YFGJLSMB.js → tree-sitter-wasm-parser-LLIW2X3M.js} +2 -2
- package/dist/cli/chunks/{types-N3Y565RZ.js → types-MEYTZITK.js} +2 -2
- package/dist/cli/chunks/unified-memory-5KQMA7FV.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-PQRPTYOD.js +2 -0
- package/dist/cli/chunks/unified-persistence-YDONVPJB.js +2 -0
- package/dist/cli/chunks/{upgrade-33ZVVZFW.js → upgrade-DVIJ456A.js} +2 -2
- package/dist/cli/chunks/{validate-CS5PXGDF.js → validate-UYTSMJ5X.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-GRZPWYNM.js → validate-swarm-P32WCJR6.js} +2 -2
- package/dist/cli/chunks/{vibium-IO7N4VEE.js → vibium-JGVOLM6X.js} +2 -2
- package/dist/cli/chunks/visual-security-RJ7RTNGJ.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-UQXR5HHR.js → web-tree-sitter-5ZGNCTPN.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-BCKLSLZT.js → windsurf-installer-IILSSQAE.js} +2 -2
- package/dist/cli/chunks/{witness-chain-R3V26QWL.js → witness-chain-JZMXCG3B.js} +2 -2
- package/dist/cli/chunks/witness-chain-YXXXNGAM.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-Y36HMPEM.js → witness-key-manager-UUTLNUIH.js} +2 -2
- package/dist/cli/chunks/{workflow-4TCIUUFQ.js → workflow-NS7HXVHZ.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-5KUAVSTH.js +2 -0
- package/dist/cli/chunks/{wrappers-MD4JRHJH.js → wrappers-XKEDSV5W.js} +2 -2
- package/dist/cli/commands/learning.js +44 -0
- package/dist/cli/commands/llm-router.js +62 -27
- package/dist/cli/handlers/brain-handler.js +2 -0
- package/dist/cli/handlers/status-handler.js +18 -2
- 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/init/phases/07-hooks.js +0 -3
- 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 +4 -0
- package/dist/learning/index.js +2 -0
- package/dist/learning/learning-evidence-admission.d.ts +44 -0
- package/dist/learning/learning-evidence-admission.js +97 -0
- package/dist/learning/pattern-store.d.ts +5 -0
- package/dist/learning/pattern-store.js +36 -7
- 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 +4 -0
- 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 +21 -1
- package/dist/learning/sqlite-persistence.d.ts +7 -2
- package/dist/learning/sqlite-persistence.js +58 -21
- package/dist/mcp/bundle.js +607 -443
- package/dist/mcp/handlers/memory-handlers.js +6 -2
- 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/billing-modes.d.ts +5 -0
- package/dist/shared/llm/billing-modes.js +42 -3
- package/dist/shared/llm/index.d.ts +4 -1
- package/dist/shared/llm/index.js +5 -1
- package/dist/shared/llm/interfaces.d.ts +34 -3
- package/dist/shared/llm/interfaces.js +17 -0
- package/dist/shared/llm/llm-router-service.d.ts +8 -0
- package/dist/shared/llm/llm-router-service.js +21 -3
- package/dist/shared/llm/provider-manager.js +8 -1
- package/dist/shared/llm/provider-registry.d.ts +135 -0
- package/dist/shared/llm/provider-registry.js +227 -0
- package/dist/shared/llm/providers/external-cli.d.ts +129 -0
- package/dist/shared/llm/providers/external-cli.js +385 -0
- package/dist/shared/llm/router/config-store.d.ts +14 -0
- package/dist/shared/llm/router/config-store.js +102 -14
- package/dist/shared/llm/router/external-provider-config.d.ts +47 -0
- package/dist/shared/llm/router/external-provider-config.js +105 -0
- package/dist/shared/llm/router/types.d.ts +50 -4
- package/dist/shared/llm/router/types.js +10 -0
- package/dist/shared/llm/translation/message-formatter.js +7 -1
- 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/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 +1 -1
- package/dist/verification/adversarial-verify/index.js +1 -1
- package/package.json +12 -3
- package/dist/cli/chunks/adapter-YBSKQFQ4.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-3H7DRDD4.js +0 -2
- package/dist/cli/chunks/base-ZTD6PFD7.js +0 -2
- package/dist/cli/chunks/brain-handler-FV2AJZ4A.js +0 -89
- package/dist/cli/chunks/browser-workflow-GKWDM25H.js +0 -2
- package/dist/cli/chunks/chunk-2CBEQV6R.js +0 -2
- package/dist/cli/chunks/chunk-4ZQOJ7Q2.js +0 -2
- package/dist/cli/chunks/chunk-CYQRZ645.js +0 -2
- package/dist/cli/chunks/chunk-FXKOHZBN.js +0 -2
- package/dist/cli/chunks/chunk-GJTGHVAX.js +0 -65
- package/dist/cli/chunks/chunk-GP5QBJVO.js +0 -3
- package/dist/cli/chunks/chunk-JGXP67BP.js +0 -2
- package/dist/cli/chunks/chunk-SW56PB22.js +0 -2
- package/dist/cli/chunks/chunk-T5M4TZRB.js +0 -12
- package/dist/cli/chunks/chunk-UDSNWQQI.js +0 -2
- package/dist/cli/chunks/chunk-VC77SDNH.js +0 -9
- package/dist/cli/chunks/chunk-WRMJWQUI.js +0 -12
- package/dist/cli/chunks/chunk-YXUFGDGS.js +0 -2
- package/dist/cli/chunks/client-4Q5JE7RY.js +0 -2
- package/dist/cli/chunks/core-handlers-4GKEYGPS.js +0 -2
- package/dist/cli/chunks/cross-domain-router-PBJ2ZGPJ.js +0 -2
- package/dist/cli/chunks/dream-4EXVFHUJ.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-COAZZGS6.js +0 -3
- package/dist/cli/chunks/heartbeat-scheduler-UNEYR3WR.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-JQG66H4L.js +0 -2
- package/dist/cli/chunks/hnsw-index-2NOROILM.js +0 -2
- package/dist/cli/chunks/hybrid-router-FXTAJATE.js +0 -2
- package/dist/cli/chunks/impact-analyzer-VHZSBWMT.js +0 -2
- package/dist/cli/chunks/init-wizard-EML4OET2.js +0 -2
- package/dist/cli/chunks/kernel-TMRJOEO2.js +0 -2
- package/dist/cli/chunks/knowledge-graph-FMKVCMJQ.js +0 -2
- package/dist/cli/chunks/learning-II2U3EV2.js +0 -119
- package/dist/cli/chunks/llm-router-WC66OXZH.js +0 -36
- package/dist/cli/chunks/llm-router-service-GOSVGMKM.js +0 -2
- package/dist/cli/chunks/load-test-WIRGDZIA.js +0 -2
- package/dist/cli/chunks/memory-backend-XBBIXDZU.js +0 -2
- package/dist/cli/chunks/memory-handlers-SQHNK3DK.js +0 -2
- package/dist/cli/chunks/pattern-null-store-PFLKHRVU.js +0 -2
- package/dist/cli/chunks/protocol-executor-GAMNY2JB.js +0 -2
- package/dist/cli/chunks/provider-manager-VTIG5AKU.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-KAX63PXV.js +0 -2
- package/dist/cli/chunks/queen-coordinator-UYW2MDKI.js +0 -2
- package/dist/cli/chunks/real-embeddings-HHR75AR5.js +0 -2
- package/dist/cli/chunks/router-NVDU7IIA.js +0 -2
- package/dist/cli/chunks/routing-feedback-KHR3J2J3.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-43L75WLF.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-Y5OVCYTO.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-NEPDFB3N.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-PQ4IOTZU.js +0 -2
- package/dist/cli/chunks/safe-db-QHSFV63M.js +0 -2
- package/dist/cli/chunks/schedule-JGZFHJGM.js +0 -2
- package/dist/cli/chunks/scheduler-NGCDQIW5.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-3JSNWL6I.js +0 -2
- package/dist/cli/chunks/status-handler-CTXOH3FX.js +0 -47
- package/dist/cli/chunks/token-bootstrap-3P22AYZ4.js +0 -2
- package/dist/cli/chunks/unified-memory-4VO5KSHP.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-ZR2FZXOB.js +0 -2
- package/dist/cli/chunks/unified-persistence-VFPW5MFM.js +0 -2
- package/dist/cli/chunks/visual-security-SNADRUPR.js +0 -2
- package/dist/cli/chunks/witness-chain-2TXUTEJE.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-ON6UYRVE.js +0 -2
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 — Config-driven external provider registration
|
|
3
|
+
* ADR-127 (issue #628)
|
|
4
|
+
*
|
|
5
|
+
* Turns the `externalProviders` block of `.agentic-qe/llm-config.json` into
|
|
6
|
+
* live entries in the provider registry.
|
|
7
|
+
*
|
|
8
|
+
* This is the half of ADR-127 that actually unblocks the requester. An
|
|
9
|
+
* in-process `registerProvider()` call cannot reach the `aqe` CLI bundle or the
|
|
10
|
+
* MCP server bundle — they are separate esbuild artifacts spawned as
|
|
11
|
+
* subprocesses — but both call `loadRouterConfig()`, so a declaration on disk
|
|
12
|
+
* reaches both. No third-party code is imported: a declaration is data, and the
|
|
13
|
+
* provider it produces is AQE's own `ExternalCliProvider`.
|
|
14
|
+
*
|
|
15
|
+
* Untrusted-input discipline (inherited from ADR-125's `sanitizeAgentOverrides`):
|
|
16
|
+
* entries are validated and dropped **individually** with a warning. One
|
|
17
|
+
* malformed declaration must never fail router construction for the project.
|
|
18
|
+
*/
|
|
19
|
+
import { ExternalCliProvider, validateExternalCliConfig, } from '../providers/external-cli.js';
|
|
20
|
+
import { tryRegisterProvider, unregisterProvider, validateProviderType, } from '../provider-registry.js';
|
|
21
|
+
/**
|
|
22
|
+
* Types THIS module registered on the last load. Reaping is keyed off actual
|
|
23
|
+
* ownership rather than off the `source` metadata field, because that field is
|
|
24
|
+
* caller-supplied: an in-process embedder that passes `source: 'config'` must
|
|
25
|
+
* not have its registration silently reaped by an unrelated config reload.
|
|
26
|
+
*/
|
|
27
|
+
const configOwnedTypes = new Set();
|
|
28
|
+
/**
|
|
29
|
+
* Register every valid declaration in an `externalProviders` block.
|
|
30
|
+
*
|
|
31
|
+
* Idempotent: re-registering the same type replaces the previous entry, and
|
|
32
|
+
* config-sourced registrations that are no longer declared are removed. API
|
|
33
|
+
* registrations (`registerProvider()`) are never touched — a config reload must
|
|
34
|
+
* not silently unregister a provider an embedder installed in-process.
|
|
35
|
+
*/
|
|
36
|
+
export function registerExternalProviders(declarations, options = {}) {
|
|
37
|
+
const registered = [];
|
|
38
|
+
const warnings = [];
|
|
39
|
+
const sourceDetail = options.sourceDetail ?? '.agentic-qe/llm-config.json';
|
|
40
|
+
const declared = new Set(Object.keys(declarations ?? {}));
|
|
41
|
+
// Drop declarations this module previously registered that are no longer in
|
|
42
|
+
// the file, so removing an entry actually removes the provider. Types we do
|
|
43
|
+
// not own are left alone. If the registry was reset out from under us,
|
|
44
|
+
// `unregisterProvider` simply no-ops and the set is rebuilt below.
|
|
45
|
+
for (const owned of configOwnedTypes) {
|
|
46
|
+
if (!declared.has(owned)) {
|
|
47
|
+
unregisterProvider(owned);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
configOwnedTypes.clear();
|
|
51
|
+
for (const [type, declaration] of Object.entries(declarations ?? {})) {
|
|
52
|
+
const typeProblem = validateProviderType(type);
|
|
53
|
+
if (typeProblem) {
|
|
54
|
+
warnings.push(`externalProviders["${type}"] ignored: ${typeProblem}`);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const configProblem = validateExternalCliConfig(type, declaration);
|
|
58
|
+
if (configProblem) {
|
|
59
|
+
warnings.push(`${configProblem} — ignoring this entry.`);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const registrationProblem = tryRegisterProvider(type,
|
|
63
|
+
// The declaration is captured here, so each construction gets a fresh
|
|
64
|
+
// provider built from the same validated data.
|
|
65
|
+
() => new ExternalCliProvider(type, declaration), {
|
|
66
|
+
billingMode: declaration.billingMode,
|
|
67
|
+
displayName: declaration.displayName,
|
|
68
|
+
models: declaration.models,
|
|
69
|
+
config: declaration,
|
|
70
|
+
source: 'config',
|
|
71
|
+
sourceDetail,
|
|
72
|
+
});
|
|
73
|
+
if (registrationProblem) {
|
|
74
|
+
warnings.push(`externalProviders["${type}"] ignored: ${registrationProblem}`);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
configOwnedTypes.add(type);
|
|
78
|
+
registered.push(type);
|
|
79
|
+
}
|
|
80
|
+
return { registered, warnings };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extract and shallow-validate an `externalProviders` block read off disk.
|
|
84
|
+
* Returns only entries that are objects; deeper validation happens at
|
|
85
|
+
* registration so every rejection is reported through one path.
|
|
86
|
+
*/
|
|
87
|
+
export function sanitizeExternalProviders(raw) {
|
|
88
|
+
const declarations = {};
|
|
89
|
+
const warnings = [];
|
|
90
|
+
if (raw === undefined)
|
|
91
|
+
return { declarations, warnings };
|
|
92
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
93
|
+
warnings.push('externalProviders must be an object keyed by provider type; ignoring it.');
|
|
94
|
+
return { declarations, warnings };
|
|
95
|
+
}
|
|
96
|
+
for (const [type, value] of Object.entries(raw)) {
|
|
97
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
98
|
+
warnings.push(`externalProviders["${type}"] must be an object; ignoring this entry.`);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
declarations[type] = value;
|
|
102
|
+
}
|
|
103
|
+
return { declarations, warnings };
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=external-provider-config.js.map
|
|
@@ -18,12 +18,33 @@
|
|
|
18
18
|
* @see ADR-011 - LLM Provider System for QE (foundation)
|
|
19
19
|
* @see ADR-043 - Vendor-Independent LLM Support (this extension)
|
|
20
20
|
*/
|
|
21
|
-
import {
|
|
21
|
+
import type { ExternalCliProviderConfig } from '../providers/external-cli';
|
|
22
|
+
import { BuiltinProviderType, LLMProviderType, LLMProvider, Message, GenerateOptions, TokenUsage, CostInfo, HealthCheckResult } from '../interfaces';
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
24
|
+
* The closed set of extended provider types AQE ships. Exhaustive — this is
|
|
25
|
+
* what a `Record` of per-provider constants must be keyed on, so that adding a
|
|
26
|
+
* built-in provider still fails the build until every map is updated.
|
|
27
|
+
*
|
|
28
|
+
* ADR-127: `BuiltinProviderType` covers the ten runtime-constructible
|
|
29
|
+
* providers; `onnx` exists in the type system (routing/translation know about
|
|
30
|
+
* it) but `ProviderManager` has no case for it yet.
|
|
31
|
+
*/
|
|
32
|
+
export type BuiltinExtendedProviderType = BuiltinProviderType | 'onnx';
|
|
33
|
+
/**
|
|
34
|
+
* Extended provider types including new ADR-043 providers.
|
|
35
|
+
*
|
|
36
|
+
* ADR-127: open, because `LLMProviderType` is open — a registered external
|
|
37
|
+
* provider is a valid routing target everywhere an extended type is accepted.
|
|
38
|
+
* Use `BuiltinExtendedProviderType` when you need exhaustiveness.
|
|
25
39
|
*/
|
|
26
|
-
export type ExtendedProviderType = LLMProviderType | '
|
|
40
|
+
export type ExtendedProviderType = LLMProviderType | 'onnx';
|
|
41
|
+
/**
|
|
42
|
+
* Type guard for the closed extended set. Use before indexing any
|
|
43
|
+
* `Record<BuiltinExtendedProviderType, _>` with an open provider type, so the
|
|
44
|
+
* external-provider case is handled explicitly rather than yielding
|
|
45
|
+
* `undefined` at a site the compiler believed was total (ADR-127).
|
|
46
|
+
*/
|
|
47
|
+
export declare function isBuiltinExtendedProviderType(type: string): type is BuiltinExtendedProviderType;
|
|
27
48
|
/**
|
|
28
49
|
* All supported provider types as a const array for iteration
|
|
29
50
|
*/
|
|
@@ -585,6 +606,31 @@ export interface RouterConfig {
|
|
|
585
606
|
* Unset fields keep their category default. Never put API keys here.
|
|
586
607
|
*/
|
|
587
608
|
agentOverrides?: Record<string, AgentProviderOverride>;
|
|
609
|
+
/**
|
|
610
|
+
* ADR-127 (issue #628): external provider declarations. Each key becomes a
|
|
611
|
+
* selectable provider identity — `AQE_LLM_PROVIDER=<key>`,
|
|
612
|
+
* `defaultProvider`, `fallbackChain`, and `agentOverrides` all accept it —
|
|
613
|
+
* backed by a generic subprocess provider built from the declaration.
|
|
614
|
+
*
|
|
615
|
+
* Declared by data, never by a module path: AQE does not import third-party
|
|
616
|
+
* code on the strength of a config file. See ADR-127 for why.
|
|
617
|
+
*
|
|
618
|
+
* @example
|
|
619
|
+
* ```jsonc
|
|
620
|
+
* {
|
|
621
|
+
* "externalProviders": {
|
|
622
|
+
* "my-host": {
|
|
623
|
+
* "kind": "cli",
|
|
624
|
+
* "command": ["my-host", "exec"],
|
|
625
|
+
* "billingMode": "subscription",
|
|
626
|
+
* "models": ["default"]
|
|
627
|
+
* }
|
|
628
|
+
* }
|
|
629
|
+
* }
|
|
630
|
+
* ```
|
|
631
|
+
* Declaring a host also enables it. Never put API keys here.
|
|
632
|
+
*/
|
|
633
|
+
externalProviders?: Record<string, ExternalCliProviderConfig>;
|
|
588
634
|
}
|
|
589
635
|
/**
|
|
590
636
|
* On-disk, per-agent-type routing override (issue #568).
|
|
@@ -18,6 +18,16 @@
|
|
|
18
18
|
* @see ADR-011 - LLM Provider System for QE (foundation)
|
|
19
19
|
* @see ADR-043 - Vendor-Independent LLM Support (this extension)
|
|
20
20
|
*/
|
|
21
|
+
import { isBuiltinProviderType, } from '../interfaces.js';
|
|
22
|
+
/**
|
|
23
|
+
* Type guard for the closed extended set. Use before indexing any
|
|
24
|
+
* `Record<BuiltinExtendedProviderType, _>` with an open provider type, so the
|
|
25
|
+
* external-provider case is handled explicitly rather than yielding
|
|
26
|
+
* `undefined` at a site the compiler believed was total (ADR-127).
|
|
27
|
+
*/
|
|
28
|
+
export function isBuiltinExtendedProviderType(type) {
|
|
29
|
+
return type === 'onnx' || isBuiltinProviderType(type);
|
|
30
|
+
}
|
|
21
31
|
/**
|
|
22
32
|
* All supported provider types as a const array for iteration
|
|
23
33
|
*/
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* - Response normalization across formats
|
|
8
8
|
* - Message role mapping
|
|
9
9
|
*/
|
|
10
|
+
import { isBuiltinExtendedProviderType } from '../router/types.js';
|
|
10
11
|
// ============================================================================
|
|
11
12
|
// System Prompt Handling
|
|
12
13
|
// ============================================================================
|
|
@@ -36,7 +37,12 @@ const SYSTEM_PROMPT_STRATEGIES = {
|
|
|
36
37
|
* - Others: May need to prepend to first user message
|
|
37
38
|
*/
|
|
38
39
|
export function handleSystemPrompt(systemPrompt, targetProvider) {
|
|
39
|
-
|
|
40
|
+
// ADR-127: an externally registered provider has no entry here. Falling back
|
|
41
|
+
// to 'first-message' is the safe default — it inlines the system prompt into
|
|
42
|
+
// the conversation, which every chat-shaped provider understands.
|
|
43
|
+
const strategy = isBuiltinExtendedProviderType(targetProvider)
|
|
44
|
+
? SYSTEM_PROMPT_STRATEGIES[targetProvider]
|
|
45
|
+
: 'first-message';
|
|
40
46
|
// Clean up the system prompt
|
|
41
47
|
const cleanedPrompt = systemPrompt.trim();
|
|
42
48
|
// For providers that don't support system prompts natively,
|
|
@@ -45,6 +45,10 @@ export const ALLOWED_TABLE_NAMES = new Set([
|
|
|
45
45
|
// Learning/metrics tables
|
|
46
46
|
'learning_daily_snapshots', 'metrics_outcomes',
|
|
47
47
|
'experience_consolidation_log', 'qe_pattern_reuse',
|
|
48
|
+
// Qualified learning-evidence and lineage tables
|
|
49
|
+
'learning_evidence_manifests', 'learning_evidence_segments',
|
|
50
|
+
'learning_segment_edges', 'learning_evidence_admissions',
|
|
51
|
+
'pattern_manifest_lineage', 'pattern_segment_lineage',
|
|
48
52
|
// Co-execution tables
|
|
49
53
|
'qe_agent_co_execution',
|
|
50
54
|
]);
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync, realpathSync } from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { resolveVerdict, shouldEmitScore, validateCourtConfig, validatePanel, } from './referee.js';
|
|
5
|
+
const MUTANT = {
|
|
6
|
+
id: 'boundary-off-by-one', fatal: true, reproduced: true, depthFound: 1,
|
|
7
|
+
};
|
|
8
|
+
export function runRefereeCli(argv) {
|
|
9
|
+
const [command, value] = argv;
|
|
10
|
+
if (command === 'validate-config' && value) {
|
|
11
|
+
const config = JSON.parse(readFileSync(value, 'utf8'));
|
|
12
|
+
const violations = validateCourtConfig(config);
|
|
13
|
+
process.stdout.write(JSON.stringify({ valid: violations.length === 0, violations }) + '\n');
|
|
14
|
+
return violations.length === 0 ? 0 : 2;
|
|
15
|
+
}
|
|
16
|
+
if (command === 'self-test' && value) {
|
|
17
|
+
const passed = runOracle(value);
|
|
18
|
+
process.stdout.write(JSON.stringify({ oracle: value, passed }) + '\n');
|
|
19
|
+
return passed ? 0 : 3;
|
|
20
|
+
}
|
|
21
|
+
process.stderr.write('Usage: aqe-court-referee validate-config <config.json> | self-test <oracle>\n');
|
|
22
|
+
return 64;
|
|
23
|
+
}
|
|
24
|
+
function runOracle(name) {
|
|
25
|
+
switch (name) {
|
|
26
|
+
case 'overturn-catches-mutant':
|
|
27
|
+
return resolveVerdict([MUTANT], 2) === 'BLOCK';
|
|
28
|
+
case 'overturn-disabled':
|
|
29
|
+
return resolveVerdict([MUTANT], 0) === 'SHIP';
|
|
30
|
+
case 'writer-not-juror':
|
|
31
|
+
return validatePanel([
|
|
32
|
+
{ role: 'writer', provider: 'codex' },
|
|
33
|
+
{ role: 'jury', provider: 'codex' },
|
|
34
|
+
{ role: 'prosecutor', provider: 'claude-code' },
|
|
35
|
+
]).includes('writerIsNeverJuror');
|
|
36
|
+
case 'vendor-diversity':
|
|
37
|
+
return validatePanel([
|
|
38
|
+
{ role: 'writer', provider: 'cognitum-low' },
|
|
39
|
+
{ role: 'jury', provider: 'cognitum-high' },
|
|
40
|
+
]).includes('vendor-diversity');
|
|
41
|
+
case 'doe-score-gate':
|
|
42
|
+
return !shouldEmitScore(false, true) && shouldEmitScore(true, true);
|
|
43
|
+
case 'verdict-classes':
|
|
44
|
+
return resolveVerdict([{ ...MUTANT, depthFound: 0 }], 2) === 'BLOCK'
|
|
45
|
+
&& resolveVerdict([{ ...MUTANT, fatal: false, depthFound: 0 }], 2) === 'REMAND'
|
|
46
|
+
&& resolveVerdict([], 2) === 'SHIP';
|
|
47
|
+
default:
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (process.argv[1] && realpathSync(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
52
|
+
process.exitCode = runRefereeCli(process.argv.slice(2));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -7,11 +7,52 @@
|
|
|
7
7
|
* — a deterministic stub (characterize the k-of-n aggregation) or a real LLM
|
|
8
8
|
* (empirical false-kill on a labeled corpus).
|
|
9
9
|
*/
|
|
10
|
-
import type { AdversarialVerifyOptions, Finding } from './types.js';
|
|
10
|
+
import type { AdversarialVerifyOptions, Finding, FindingSeverity } from './types.js';
|
|
11
11
|
export interface LabeledFinding {
|
|
12
12
|
finding: Finding;
|
|
13
13
|
/** Ground truth: is this a genuine, actionable problem? */
|
|
14
14
|
isReal: boolean;
|
|
15
|
+
failureType?: string;
|
|
16
|
+
domain?: string;
|
|
17
|
+
expectedSeverity?: FindingSeverity;
|
|
18
|
+
source?: 'human' | 'oracle' | 'controlled-intervention';
|
|
19
|
+
}
|
|
20
|
+
export interface ConfidenceInterval {
|
|
21
|
+
low: number;
|
|
22
|
+
high: number;
|
|
23
|
+
level: 0.95;
|
|
24
|
+
}
|
|
25
|
+
export type QualificationDisposition = 'automate' | 'human-review' | 'abstain';
|
|
26
|
+
export interface QualificationSlice {
|
|
27
|
+
key: string;
|
|
28
|
+
support: number;
|
|
29
|
+
precision: number;
|
|
30
|
+
recall: number;
|
|
31
|
+
falseKillRate: number;
|
|
32
|
+
falseKeepRate: number;
|
|
33
|
+
uncertainRate: number;
|
|
34
|
+
intervals: {
|
|
35
|
+
precision: ConfidenceInterval;
|
|
36
|
+
recall: ConfidenceInterval;
|
|
37
|
+
falseKillRate: ConfidenceInterval;
|
|
38
|
+
falseKeepRate: ConfidenceInterval;
|
|
39
|
+
};
|
|
40
|
+
disposition: QualificationDisposition;
|
|
41
|
+
}
|
|
42
|
+
export interface QualificationOptions {
|
|
43
|
+
minSupport?: number;
|
|
44
|
+
minRecall?: number;
|
|
45
|
+
minPrecision?: number;
|
|
46
|
+
maxFalseKillRate?: number;
|
|
47
|
+
maxFalseKeepRate?: number;
|
|
48
|
+
criticalSeverities?: FindingSeverity[];
|
|
49
|
+
}
|
|
50
|
+
export interface JudgeQualification {
|
|
51
|
+
status: 'qualified' | 'restricted' | 'unqualified';
|
|
52
|
+
automatedSlices: string[];
|
|
53
|
+
humanReviewSlices: string[];
|
|
54
|
+
abstainSlices: string[];
|
|
55
|
+
reasons: string[];
|
|
15
56
|
}
|
|
16
57
|
export interface CalibrationReport {
|
|
17
58
|
total: number;
|
|
@@ -26,7 +67,10 @@ export interface CalibrationReport {
|
|
|
26
67
|
correctConfirm: number;
|
|
27
68
|
correctKill: number;
|
|
28
69
|
uncertain: number;
|
|
70
|
+
slices: QualificationSlice[];
|
|
71
|
+
qualification: JudgeQualification;
|
|
29
72
|
}
|
|
73
|
+
export declare function qualifyJudge(slices: QualificationSlice[], criticalSliceKeys?: string[]): JudgeQualification;
|
|
30
74
|
/** Run the verifier over a labeled set and report the confusion vs ground truth. */
|
|
31
|
-
export declare function calibrate(labeled: LabeledFinding[], opts: AdversarialVerifyOptions): Promise<CalibrationReport>;
|
|
75
|
+
export declare function calibrate(labeled: LabeledFinding[], opts: AdversarialVerifyOptions, qualificationOptions?: QualificationOptions): Promise<CalibrationReport>;
|
|
32
76
|
//# sourceMappingURL=calibrate.d.ts.map
|
|
@@ -1,11 +1,90 @@
|
|
|
1
1
|
import { adversarialVerify } from './verify.js';
|
|
2
|
+
const DEFAULT_QUALIFICATION = {
|
|
3
|
+
minSupport: 10,
|
|
4
|
+
minRecall: 0.8,
|
|
5
|
+
minPrecision: 0.8,
|
|
6
|
+
maxFalseKillRate: 0.1,
|
|
7
|
+
maxFalseKeepRate: 0.1,
|
|
8
|
+
criticalSeverities: ['critical', 'high'],
|
|
9
|
+
};
|
|
10
|
+
function wilson(successes, total) {
|
|
11
|
+
if (total === 0)
|
|
12
|
+
return { low: 0, high: 1, level: 0.95 };
|
|
13
|
+
const z = 1.959963984540054;
|
|
14
|
+
const p = successes / total;
|
|
15
|
+
const z2 = z * z;
|
|
16
|
+
const denominator = 1 + z2 / total;
|
|
17
|
+
const centre = (p + z2 / (2 * total)) / denominator;
|
|
18
|
+
const margin = z * Math.sqrt((p * (1 - p) + z2 / (4 * total)) / total) / denominator;
|
|
19
|
+
return { low: Math.max(0, centre - margin), high: Math.min(1, centre + margin), level: 0.95 };
|
|
20
|
+
}
|
|
21
|
+
function buildSlice(key, entries, policy) {
|
|
22
|
+
const real = entries.filter(entry => entry.label.isReal);
|
|
23
|
+
const falseEntries = entries.filter(entry => !entry.label.isReal);
|
|
24
|
+
const upheldReal = real.filter(entry => entry.verdict === 'upheld').length;
|
|
25
|
+
const upheldFalse = falseEntries.filter(entry => entry.verdict === 'upheld').length;
|
|
26
|
+
const falseKill = real.filter(entry => entry.verdict === 'refuted').length;
|
|
27
|
+
const falseKeep = upheldFalse;
|
|
28
|
+
const uncertain = entries.filter(entry => entry.verdict === 'uncertain').length;
|
|
29
|
+
const upheld = upheldReal + upheldFalse;
|
|
30
|
+
const precision = upheld ? upheldReal / upheld : 0;
|
|
31
|
+
const recall = real.length ? upheldReal / real.length : 0;
|
|
32
|
+
const falseKillRate = real.length ? falseKill / real.length : 0;
|
|
33
|
+
const falseKeepRate = falseEntries.length ? falseKeep / falseEntries.length : 0;
|
|
34
|
+
const intervals = {
|
|
35
|
+
precision: wilson(upheldReal, upheld),
|
|
36
|
+
recall: wilson(upheldReal, real.length),
|
|
37
|
+
falseKillRate: wilson(falseKill, real.length),
|
|
38
|
+
falseKeepRate: wilson(falseKeep, falseEntries.length),
|
|
39
|
+
};
|
|
40
|
+
let disposition = 'automate';
|
|
41
|
+
if (entries.length < policy.minSupport || real.length === 0)
|
|
42
|
+
disposition = 'abstain';
|
|
43
|
+
else if (intervals.recall.low < policy.minRecall
|
|
44
|
+
|| intervals.precision.low < policy.minPrecision
|
|
45
|
+
|| intervals.falseKillRate.high > policy.maxFalseKillRate
|
|
46
|
+
|| intervals.falseKeepRate.high > policy.maxFalseKeepRate) {
|
|
47
|
+
disposition = 'human-review';
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
key, support: entries.length, precision, recall, falseKillRate, falseKeepRate,
|
|
51
|
+
uncertainRate: entries.length ? uncertain / entries.length : 0,
|
|
52
|
+
intervals,
|
|
53
|
+
disposition,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function qualifyJudge(slices, criticalSliceKeys = []) {
|
|
57
|
+
const automatedSlices = slices.filter(s => s.disposition === 'automate').map(s => s.key);
|
|
58
|
+
const humanReviewSlices = slices.filter(s => s.disposition === 'human-review').map(s => s.key);
|
|
59
|
+
const abstainSlices = slices.filter(s => s.disposition === 'abstain').map(s => s.key);
|
|
60
|
+
const presentKeys = new Set(slices.map(s => s.key));
|
|
61
|
+
const missingCriticalKeys = criticalSliceKeys.filter(key => !presentKeys.has(key));
|
|
62
|
+
const criticalFailures = slices.filter(s => criticalSliceKeys.includes(s.key) && s.disposition !== 'automate');
|
|
63
|
+
const status = criticalFailures.length > 0 || missingCriticalKeys.length > 0
|
|
64
|
+
? 'unqualified'
|
|
65
|
+
: humanReviewSlices.length > 0 || abstainSlices.length > 0
|
|
66
|
+
? 'restricted'
|
|
67
|
+
: 'qualified';
|
|
68
|
+
return {
|
|
69
|
+
status, automatedSlices, humanReviewSlices, abstainSlices,
|
|
70
|
+
reasons: [
|
|
71
|
+
...criticalFailures.map(s => `Critical slice ${s.key} is ${s.disposition}`),
|
|
72
|
+
...missingCriticalKeys.map(key => `Critical slice ${key} is missing`),
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
2
76
|
/** Run the verifier over a labeled set and report the confusion vs ground truth. */
|
|
3
|
-
export async function calibrate(labeled, opts) {
|
|
77
|
+
export async function calibrate(labeled, opts, qualificationOptions = {}) {
|
|
4
78
|
const verdicts = await adversarialVerify(labeled.map((l) => l.finding), opts);
|
|
79
|
+
const policy = { ...DEFAULT_QUALIFICATION, ...qualificationOptions };
|
|
5
80
|
const r = {
|
|
6
81
|
total: labeled.length, realCount: 0, falseCount: 0,
|
|
7
82
|
falseKill: 0, falseKillRate: 0, falseKeep: 0, falseKeepRate: 0,
|
|
8
|
-
correctConfirm: 0, correctKill: 0, uncertain: 0,
|
|
83
|
+
correctConfirm: 0, correctKill: 0, uncertain: 0, slices: [],
|
|
84
|
+
qualification: {
|
|
85
|
+
status: 'restricted', automatedSlices: [], humanReviewSlices: [],
|
|
86
|
+
abstainSlices: [], reasons: [],
|
|
87
|
+
},
|
|
9
88
|
};
|
|
10
89
|
labeled.forEach((l, i) => {
|
|
11
90
|
const v = verdicts[i].verdict;
|
|
@@ -28,6 +107,29 @@ export async function calibrate(labeled, opts) {
|
|
|
28
107
|
});
|
|
29
108
|
r.falseKillRate = r.realCount ? r.falseKill / r.realCount : 0;
|
|
30
109
|
r.falseKeepRate = r.falseCount ? r.falseKeep / r.falseCount : 0;
|
|
110
|
+
const entries = labeled.map((label, index) => ({ label, verdict: verdicts[index].verdict }));
|
|
111
|
+
const groups = new Map();
|
|
112
|
+
const add = (key, entry) => {
|
|
113
|
+
const group = groups.get(key) ?? [];
|
|
114
|
+
group.push(entry);
|
|
115
|
+
groups.set(key, group);
|
|
116
|
+
};
|
|
117
|
+
entries.forEach(entry => {
|
|
118
|
+
add('overall', entry);
|
|
119
|
+
if (entry.label.failureType)
|
|
120
|
+
add(`failureType:${entry.label.failureType}`, entry);
|
|
121
|
+
if (entry.label.domain)
|
|
122
|
+
add(`domain:${entry.label.domain}`, entry);
|
|
123
|
+
const severity = entry.label.expectedSeverity ?? entry.label.finding.severity;
|
|
124
|
+
add(`severity:${severity}`, entry);
|
|
125
|
+
});
|
|
126
|
+
const criticalKeys = policy.criticalSeverities.map(severity => `severity:${severity}`);
|
|
127
|
+
for (const key of criticalKeys) {
|
|
128
|
+
if (!groups.has(key))
|
|
129
|
+
groups.set(key, []);
|
|
130
|
+
}
|
|
131
|
+
r.slices = [...groups.entries()].map(([key, group]) => buildSlice(key, group, policy));
|
|
132
|
+
r.qualification = qualifyJudge(r.slices, criticalKeys);
|
|
31
133
|
return r;
|
|
32
134
|
}
|
|
33
135
|
//# sourceMappingURL=calibrate.js.map
|
|
@@ -15,6 +15,6 @@ export type { Finding, FindingVerdict, FindingSeverity, FindingOutcome, RefuterV
|
|
|
15
15
|
export { adversarialVerify, partitionVerdicts } from './verify.js';
|
|
16
16
|
export { synthesizeVerdict, majorityKill, isFindingVerdict } from './synthesize.js';
|
|
17
17
|
export { refuterPrompt, DEFAULT_LENSES } from './prompts.js';
|
|
18
|
-
export { calibrate, type LabeledFinding, type
|
|
18
|
+
export { calibrate, qualifyJudge, type CalibrationReport, type ConfidenceInterval, type JudgeQualification, type LabeledFinding, type QualificationDisposition, type QualificationOptions, type QualificationSlice, } from './calibrate.js';
|
|
19
19
|
export { verifyGate, type VerifyGateOptions, type VerifyGateResult } from './gate.js';
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { adversarialVerify, partitionVerdicts } from './verify.js';
|
|
2
2
|
export { synthesizeVerdict, majorityKill, isFindingVerdict } from './synthesize.js';
|
|
3
3
|
export { refuterPrompt, DEFAULT_LENSES } from './prompts.js';
|
|
4
|
-
export { calibrate } from './calibrate.js';
|
|
4
|
+
export { calibrate, qualifyJudge, } from './calibrate.js';
|
|
5
5
|
export { verifyGate } from './gate.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
"import": "./dist/shared/index.js",
|
|
23
23
|
"types": "./dist/shared/index.d.ts"
|
|
24
24
|
},
|
|
25
|
+
"./shared/llm": {
|
|
26
|
+
"import": "./dist/shared/llm/index.js",
|
|
27
|
+
"types": "./dist/shared/llm/index.d.ts"
|
|
28
|
+
},
|
|
25
29
|
"./cli": {
|
|
26
30
|
"import": "./dist/cli/index.js"
|
|
27
31
|
},
|
|
@@ -48,13 +52,18 @@
|
|
|
48
52
|
"./verification/adversarial-verify": {
|
|
49
53
|
"import": "./dist/verification/adversarial-verify/index.js",
|
|
50
54
|
"types": "./dist/verification/adversarial-verify/index.d.ts"
|
|
55
|
+
},
|
|
56
|
+
"./skills/qe-court/referee": {
|
|
57
|
+
"import": "./dist/skills/qe-court/referee.js",
|
|
58
|
+
"types": "./dist/skills/qe-court/referee.d.ts"
|
|
51
59
|
}
|
|
52
60
|
},
|
|
53
61
|
"bin": {
|
|
54
62
|
"agentic-qe": "./dist/cli/bundle.js",
|
|
55
63
|
"aqe": "./dist/cli/bundle.js",
|
|
56
64
|
"aqe-v3": "./dist/cli/bundle.js",
|
|
57
|
-
"aqe-mcp": "./dist/mcp/bundle.js"
|
|
65
|
+
"aqe-mcp": "./dist/mcp/bundle.js",
|
|
66
|
+
"aqe-court-referee": "./dist/skills/qe-court/cli.js"
|
|
58
67
|
},
|
|
59
68
|
"scripts": {
|
|
60
69
|
"preinstall": "node scripts/preinstall.cjs || true",
|
|
@@ -69,7 +78,7 @@
|
|
|
69
78
|
"mcp": "tsx src/mcp/entry.ts",
|
|
70
79
|
"test": "NODE_OPTIONS='--max-old-space-size=1024 --expose-gc' vitest run",
|
|
71
80
|
"test:unit": "npm run test:unit:fast && npm run test:unit:heavy && npm run test:unit:mcp",
|
|
72
|
-
"test:unit:fast": "vitest run --exclude='**/qe-reasoning-bank.test.ts' --exclude='**/qe-reasoning-bank-feedback-loop.test.ts' --exclude='**/aqe-learning-engine.test.ts' --exclude='**/aqe-learning-engine-patterns.test.ts' tests/unit/adapters tests/unit/shared tests/unit/cli tests/unit/learning tests/unit/kernel tests/unit/workers tests/unit/routing tests/unit/strange-loop tests/unit/sync tests/unit/feedback tests/unit/error-paths tests/unit/early-exit tests/unit/causal-discovery tests/unit/neural-optimizer tests/unit/test-scheduling tests/unit/logging tests/unit/validation tests/unit/memory tests/unit/performance tests/unit/scripts tests/unit/planning",
|
|
81
|
+
"test:unit:fast": "vitest run --exclude='**/qe-reasoning-bank.test.ts' --exclude='**/qe-reasoning-bank-feedback-loop.test.ts' --exclude='**/aqe-learning-engine.test.ts' --exclude='**/aqe-learning-engine-patterns.test.ts' tests/unit/adapters tests/unit/shared tests/unit/cli tests/unit/learning tests/unit/kernel tests/unit/workers tests/unit/routing tests/unit/strange-loop tests/unit/sync tests/unit/feedback tests/unit/error-paths tests/unit/early-exit tests/unit/causal-discovery tests/unit/neural-optimizer tests/unit/test-scheduling tests/unit/logging tests/unit/validation tests/unit/memory tests/unit/performance tests/unit/scripts tests/unit/planning tests/context",
|
|
73
82
|
"test:unit:heavy": "vitest run tests/unit/coordination tests/unit/domains tests/unit/integrations tests/unit/optimization tests/unit/init --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/browser-swarm-coordinator.test.ts'",
|
|
74
83
|
"test:unit:mcp": "vitest run tests/unit/mcp --exclude='**/mcp/handlers/domain-handlers.test.ts' --fileParallelism=false",
|
|
75
84
|
"test:ci": "vitest run --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/integration/browser/**' --exclude='**/browser-swarm-coordinator.test.ts' --exclude='**/mcp/handlers/domain-handlers.test.ts' --exclude='**/fixtures/init-corpus/**'",
|
|
@@ -1,2 +0,0 @@
|
|
|
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.13.11");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-2BDTZYQN.js";import"./chunk-76NSSNB3.js";import"./chunk-UX5SM2PW.js";import"./chunk-TZA45FI7.js";import"./chunk-TCVEXQLL.js";import"./chunk-LUAXQB57.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +0,0 @@
|
|
|
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.13.11");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-2E2QCIGR.js";import"./chunk-GPJDZFFV.js";import"./chunk-JTQSXU6V.js";import"./chunk-GJTGHVAX.js";import"./chunk-TMY2Y7SC.js";import"./chunk-5364DBZG.js";import"./chunk-P736OKQN.js";import"./chunk-36ONUM43.js";import"./chunk-AFXMTSO3.js";import"./chunk-MWTFFGU3.js";import"./chunk-YEPJS4AM.js";import"./chunk-JWT675RM.js";import"./chunk-E54QUKAD.js";import"./chunk-UGFHEVG4.js";import"./chunk-TU4BYSXR.js";import"./chunk-T5M4TZRB.js";import"./chunk-2Y3PW5EJ.js";import"./chunk-SJJFU7KK.js";import"./chunk-WYQM7GXW.js";import"./chunk-CYQRZ645.js";import"./chunk-QYHRDBKI.js";import"./chunk-LREIHR2A.js";import"./chunk-TZA45FI7.js";import"./chunk-UPMQHCC2.js";import"./chunk-2D7SBOZ4.js";import"./chunk-FXKOHZBN.js";import"./chunk-XDK2TPI5.js";import"./chunk-TCVEXQLL.js";import"./chunk-PJNIDDER.js";import"./chunk-EI4KYBNI.js";import"./chunk-RGUKQXKL.js";import"./chunk-B646CE3C.js";import"./chunk-WJB6YYMJ.js";import"./chunk-AHG2O5HT.js";import"./chunk-23E37MDA.js";import"./chunk-NC7HTDH5.js";import"./chunk-PT6U3IIK.js";import"./chunk-NHL37QAZ.js";import"./chunk-LUAXQB57.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,2 +0,0 @@
|
|
|
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.13.11");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-YRCNWQBO.js";import"./chunk-24XW7KUX.js";import"./chunk-2Y3PW5EJ.js";import"./chunk-SJJFU7KK.js";import"./chunk-WYQM7GXW.js";import"./chunk-CYQRZ645.js";import"./chunk-QYHRDBKI.js";import"./chunk-LREIHR2A.js";import"./chunk-TZA45FI7.js";import"./chunk-TCVEXQLL.js";import"./chunk-PJNIDDER.js";import"./chunk-4TUGQESL.js";import"./chunk-EI4KYBNI.js";import"./chunk-RGUKQXKL.js";import"./chunk-B646CE3C.js";import"./chunk-WJB6YYMJ.js";import"./chunk-AHG2O5HT.js";import"./chunk-23E37MDA.js";import"./chunk-NC7HTDH5.js";import"./chunk-PT6U3IIK.js";import"./chunk-NHL37QAZ.js";import"./chunk-LUAXQB57.js";export{l as MCPToolBase,k as defaultToolLogger,j as getKernel,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};
|