agentic-qe 3.10.0 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +72 -0
- package/README.md +35 -8
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-3JS2CN7C.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-5UDM2PWG.js → agent-booster-wasm-FZLWOPSX.js} +2 -2
- package/dist/cli/chunks/{agent-handler-JSYER5YC.js → agent-handler-KAGRVCKS.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-T2SAHI4F.js → agent-memory-branch-JJKFEXQW.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-Q4GFNGU6.js +2 -0
- package/dist/cli/chunks/{audit-HIBRVGXG.js → audit-DN5SY4JJ.js} +2 -2
- package/dist/cli/chunks/base-Q3MAL22Y.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-TA4DZV62.js → better-sqlite3-XGPW4HK5.js} +2 -2
- package/dist/cli/chunks/{brain-handler-N6AWIMXG.js → brain-handler-O7MP5BGY.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-VYQGBVEJ.js → branch-enumerator-ZPTN5J6V.js} +2 -2
- package/dist/cli/chunks/{browser-2X4WKZPT.js → browser-PAZE2JSD.js} +2 -2
- package/dist/cli/chunks/browser-workflow-JX3M2UWG.js +2 -0
- package/dist/cli/chunks/{chunk-SGONA5GS.js → chunk-25QGPRWN.js} +2 -2
- package/dist/cli/chunks/{chunk-NT4PI5HI.js → chunk-2ETDES5W.js} +2 -2
- package/dist/cli/chunks/{chunk-UGX4EHT5.js → chunk-2KTRRSKD.js} +2 -2
- package/dist/cli/chunks/{chunk-UCIJCRPB.js → chunk-2S4XHK26.js} +2 -2
- package/dist/cli/chunks/{chunk-KNL3QWVA.js → chunk-2TDWCXZ6.js} +2 -2
- package/dist/cli/chunks/{chunk-HZPXOAFW.js → chunk-2UN4DOBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-T7DLX3LS.js → chunk-32R7EA7B.js} +3 -3
- package/dist/cli/chunks/{chunk-CU4IUJ2K.js → chunk-3YOPJ7DY.js} +2 -2
- package/dist/cli/chunks/{chunk-55JPAF56.js → chunk-4AWJ5PE4.js} +1 -1
- package/dist/cli/chunks/{chunk-GPKZ4MMH.js → chunk-57NJQV57.js} +1 -1
- package/dist/cli/chunks/{chunk-G2HA2O3R.js → chunk-5EU2VQK3.js} +2 -2
- package/dist/cli/chunks/{chunk-BXCS55GB.js → chunk-5KFCH7RH.js} +1 -1
- package/dist/cli/chunks/{chunk-WC6KZDPM.js → chunk-5OTYBWRL.js} +2 -2
- package/dist/cli/chunks/{chunk-ALCQRJDY.js → chunk-5ZCVMR5E.js} +2 -2
- package/dist/cli/chunks/{chunk-FX4SYT6Y.js → chunk-622MIAOR.js} +3 -3
- package/dist/cli/chunks/{chunk-J5RJYFRM.js → chunk-6A2NIR2E.js} +2 -2
- package/dist/cli/chunks/{chunk-6F3WJOU2.js → chunk-6D57DWQ6.js} +2 -2
- package/dist/cli/chunks/{chunk-Z6JLPPAY.js → chunk-6E7GI2UB.js} +1 -1
- package/dist/cli/chunks/{chunk-M73IL7FA.js → chunk-6LRCMFLV.js} +2 -2
- package/dist/cli/chunks/{chunk-L4N6PTIC.js → chunk-6QFONVEE.js} +2 -2
- package/dist/cli/chunks/{chunk-6H5MRVJS.js → chunk-6VQ5MFJ6.js} +3 -3
- package/dist/cli/chunks/{chunk-JUICZG3T.js → chunk-6ZRMQXVL.js} +2 -2
- package/dist/cli/chunks/{chunk-RARSTEUO.js → chunk-7CKVAYP3.js} +1 -1
- package/dist/cli/chunks/{chunk-KDFW7MVM.js → chunk-7MSYTHZM.js} +2 -2
- package/dist/cli/chunks/{chunk-DY7IRNE2.js → chunk-7SQD2TTQ.js} +1 -1
- package/dist/cli/chunks/{chunk-IQNR662U.js → chunk-AABKTWXC.js} +2 -2
- package/dist/cli/chunks/{chunk-LYVFC7C7.js → chunk-AUVC3DDB.js} +2 -2
- package/dist/cli/chunks/{chunk-OWMGD7FO.js → chunk-BECU52UY.js} +3 -3
- package/dist/cli/chunks/chunk-BF7MUYWC.js +2 -0
- package/dist/cli/chunks/{chunk-BQT4J3BD.js → chunk-BGBSYF3K.js} +2 -2
- package/dist/cli/chunks/{chunk-TR7BZLB6.js → chunk-BN7ERYXI.js} +1 -1
- package/dist/cli/chunks/{chunk-DQJJS4AX.js → chunk-CKECJH2A.js} +2 -2
- package/dist/cli/chunks/{chunk-I4T4JPR2.js → chunk-COZDJLIL.js} +1 -1
- package/dist/cli/chunks/{chunk-URVDWF2Y.js → chunk-CR4ERDS2.js} +2 -2
- package/dist/cli/chunks/chunk-DMIYWPQQ.js +2 -0
- package/dist/cli/chunks/{chunk-Y4I5JBOL.js → chunk-DQIS6J77.js} +2 -2
- package/dist/cli/chunks/{chunk-7ZIRDBXH.js → chunk-DVOH75S4.js} +1 -1
- package/dist/cli/chunks/{chunk-Z2SCTEZD.js → chunk-EBQ6YKP2.js} +2 -2
- package/dist/cli/chunks/{chunk-2GL4GH52.js → chunk-ECPB7IAH.js} +4 -4
- package/dist/cli/chunks/{chunk-LQ3TA22E.js → chunk-EIROAH6N.js} +2 -2
- package/dist/cli/chunks/{chunk-UCXQQCIP.js → chunk-ELUERFGA.js} +2 -2
- package/dist/cli/chunks/{chunk-KOSKGZK4.js → chunk-ELZ67OHQ.js} +2 -2
- package/dist/cli/chunks/{chunk-WVCIZIKH.js → chunk-EO4B5GS4.js} +1 -1
- package/dist/cli/chunks/{chunk-HD6CZBZV.js → chunk-EUJHHXE6.js} +2 -2
- package/dist/cli/chunks/{chunk-KCHFF4IE.js → chunk-F3OVFA6W.js} +2 -2
- package/dist/cli/chunks/{chunk-7Y54QZKF.js → chunk-FJSR2U65.js} +2 -2
- package/dist/cli/chunks/{chunk-5QJDH4Z5.js → chunk-G3BQU3Q6.js} +2 -2
- package/dist/cli/chunks/{chunk-LDMG4372.js → chunk-G5DTENO3.js} +2 -2
- package/dist/cli/chunks/{chunk-JKVNZASH.js → chunk-GMKGLZJU.js} +2 -2
- package/dist/cli/chunks/{chunk-O3NAUNFC.js → chunk-GRG3OP34.js} +2 -2
- package/dist/cli/chunks/{chunk-3U77XX6J.js → chunk-GRYXNWPF.js} +4 -4
- package/dist/cli/chunks/{chunk-3QULDB7K.js → chunk-GTGONWGX.js} +1 -1
- package/dist/cli/chunks/{chunk-OGT45MZN.js → chunk-GTRXZJNX.js} +2 -2
- package/dist/cli/chunks/{chunk-TEJPHJMW.js → chunk-GXJ4BCGC.js} +2 -2
- package/dist/cli/chunks/{chunk-4NQ6KANC.js → chunk-H22MMMYY.js} +2 -2
- package/dist/cli/chunks/{chunk-VTIXFHZR.js → chunk-H44WD7QX.js} +2 -2
- package/dist/cli/chunks/{chunk-X4U5NYB6.js → chunk-HPNEZ7YN.js} +1 -1
- package/dist/cli/chunks/{chunk-FQ5FT7IE.js → chunk-HRDGN3OK.js} +1 -1
- package/dist/cli/chunks/{chunk-6HCHW5TS.js → chunk-IHDUWPFY.js} +2 -2
- package/dist/cli/chunks/{chunk-DQLEZBWV.js → chunk-IITKJCPK.js} +2 -2
- package/dist/cli/chunks/{chunk-VMJXNTJT.js → chunk-IJ4BUSJN.js} +4 -4
- package/dist/cli/chunks/{chunk-MJBXQXSX.js → chunk-IK6AJX3C.js} +1 -1
- package/dist/cli/chunks/{chunk-NLCUQMUR.js → chunk-IPRDHKSI.js} +2 -2
- package/dist/cli/chunks/{chunk-ZYZWBNKT.js → chunk-JLKHPIQF.js} +1 -1
- package/dist/cli/chunks/chunk-K22TPWOJ.js +3 -0
- package/dist/cli/chunks/{chunk-L3IFZ4IX.js → chunk-K4T3RDCB.js} +2 -2
- package/dist/cli/chunks/{chunk-XFUU2RCA.js → chunk-KCTH5MHE.js} +2 -2
- package/dist/cli/chunks/{chunk-L2AIES7X.js → chunk-KEC5FBAW.js} +1 -1
- package/dist/cli/chunks/{chunk-M4HDBRVJ.js → chunk-KKNBYXYA.js} +1 -1
- package/dist/cli/chunks/{chunk-5UOV7T36.js → chunk-KRXKU54J.js} +2 -2
- package/dist/cli/chunks/{provider-manager-HV55NIIO.js → chunk-KZJXVIAW.js} +13 -13
- package/dist/cli/chunks/{chunk-YHNEBCYQ.js → chunk-LF7URN2X.js} +2 -2
- package/dist/cli/chunks/{chunk-HD5NQDOL.js → chunk-MQYTW2IN.js} +2 -2
- package/dist/cli/chunks/{chunk-66GIKUI2.js → chunk-MVGVD6LS.js} +2 -2
- package/dist/cli/chunks/{chunk-M3M7HXDH.js → chunk-NDCPEXDN.js} +2 -2
- package/dist/cli/chunks/{chunk-RF6QKV7M.js → chunk-NOCYYXK4.js} +2 -2
- package/dist/cli/chunks/{chunk-U56TIYGP.js → chunk-NPSBMDVU.js} +2 -2
- package/dist/cli/chunks/{chunk-OUJJ34JH.js → chunk-NQZYUH6S.js} +1 -1
- package/dist/cli/chunks/{chunk-F363JJUI.js → chunk-NRLT44YB.js} +1 -1
- package/dist/cli/chunks/{chunk-27ACATRH.js → chunk-OC3OJWLB.js} +2 -2
- package/dist/cli/chunks/{chunk-XFMSHTXG.js → chunk-OQP5OFRR.js} +1 -1
- package/dist/cli/chunks/{chunk-RGONSQ44.js → chunk-OVENSL64.js} +210 -210
- package/dist/cli/chunks/{chunk-DXV6NRG3.js → chunk-P7T5Y735.js} +2 -2
- package/dist/cli/chunks/{chunk-QU54GUEA.js → chunk-PLRSKAFZ.js} +2 -2
- package/dist/cli/chunks/{chunk-NWHSEXHA.js → chunk-PUXDXIUE.js} +1 -1
- package/dist/cli/chunks/{chunk-RH3PHCJT.js → chunk-PW6MOFXG.js} +2 -2
- package/dist/cli/chunks/{chunk-3BO7EKGO.js → chunk-PXFQSVA2.js} +3 -3
- package/dist/cli/chunks/{chunk-UE3XXKLN.js → chunk-Q24OJX44.js} +2 -2
- package/dist/cli/chunks/{chunk-LXHA55EB.js → chunk-Q5VHBI4U.js} +1 -1
- package/dist/cli/chunks/{chunk-OKGK7DBT.js → chunk-QNW335PD.js} +2 -2
- package/dist/cli/chunks/{chunk-S4CNA6Z5.js → chunk-RPL6K623.js} +3 -3
- package/dist/cli/chunks/{chunk-FCSJ7GIZ.js → chunk-RRLQFFCO.js} +4 -4
- package/dist/cli/chunks/{chunk-W6U7SIIK.js → chunk-RWYW573C.js} +3 -3
- package/dist/cli/chunks/{chunk-BTIVIWIG.js → chunk-SLNGJW4G.js} +1 -1
- package/dist/cli/chunks/{chunk-P6XYFDXN.js → chunk-SQBB2DC6.js} +1 -1
- package/dist/cli/chunks/{chunk-SCYF5CQA.js → chunk-T3UXMPXX.js} +1 -1
- package/dist/cli/chunks/{chunk-C5QESAYA.js → chunk-TFNLXAK5.js} +1 -1
- package/dist/cli/chunks/{chunk-ZFBMBCKN.js → chunk-TL5F2S3Z.js} +2 -2
- package/dist/cli/chunks/{chunk-HIWBW4IQ.js → chunk-TNGGVMPQ.js} +1 -1
- package/dist/cli/chunks/{chunk-5RQT7EJP.js → chunk-TNVYKYTO.js} +3 -3
- package/dist/cli/chunks/{chunk-4WYGUTSF.js → chunk-TP77PNN6.js} +2 -2
- package/dist/cli/chunks/{chunk-WG6I7YF3.js → chunk-TX7SNQKL.js} +1 -1
- package/dist/cli/chunks/{chunk-WLLE54TA.js → chunk-UDFLR7GR.js} +1 -1
- package/dist/cli/chunks/{chunk-KYLJERZ3.js → chunk-UDVX34ZG.js} +2 -2
- package/dist/cli/chunks/{chunk-YYDHTBHE.js → chunk-UU2Q6XWF.js} +1 -1
- package/dist/cli/chunks/{chunk-JCKX2LEJ.js → chunk-VKRMVTWU.js} +49 -49
- package/dist/cli/chunks/{chunk-AFFYJSW2.js → chunk-VOIWDPIU.js} +2 -2
- package/dist/cli/chunks/chunk-VPCE5CIT.js +2 -0
- package/dist/cli/chunks/{chunk-4UUDFWOP.js → chunk-W2DT3CDE.js} +2 -2
- package/dist/cli/chunks/{chunk-VTO5O7DA.js → chunk-W6ZF2CPN.js} +1 -1
- package/dist/cli/chunks/{chunk-BQX5QDU5.js → chunk-WDTCCPK4.js} +1 -1
- package/dist/cli/chunks/{chunk-PNDO4W4L.js → chunk-WL2J6ECN.js} +2 -2
- package/dist/cli/chunks/chunk-WMG5F6R6.js +2 -0
- package/dist/cli/chunks/{chunk-QL3U5VSM.js → chunk-WO7KYT3X.js} +2 -2
- package/dist/cli/chunks/{chunk-S33246T4.js → chunk-WPNZSL4S.js} +1 -1
- package/dist/cli/chunks/{chunk-IBXNBLGM.js → chunk-WQEZKAUR.js} +2 -2
- package/dist/cli/chunks/{chunk-3OSCWD7Z.js → chunk-WS4XVJHI.js} +1 -1
- package/dist/cli/chunks/{chunk-GXCD7GNH.js → chunk-XGUQYVJR.js} +2 -2
- package/dist/cli/chunks/{chunk-I4E6CLC4.js → chunk-XKOKMS5A.js} +2 -2
- package/dist/cli/chunks/{chunk-ZCNVFULO.js → chunk-XRK7FBTY.js} +2 -2
- package/dist/cli/chunks/{chunk-FEBXP74Y.js → chunk-Y2DPXMOR.js} +1 -1
- package/dist/cli/chunks/{chunk-MF3XRML3.js → chunk-Y357YFLF.js} +2 -2
- package/dist/cli/chunks/{chunk-LRISVDVO.js → chunk-YGRTMAWB.js} +1 -1
- package/dist/cli/chunks/{chunk-VEOQH4W6.js → chunk-YPOTBXPU.js} +2 -2
- package/dist/cli/chunks/{chunk-2POXDKUB.js → chunk-YYWIA5FX.js} +1 -1
- package/dist/cli/chunks/{chunk-QWBO76AU.js → chunk-ZEMXMDD3.js} +2 -2
- package/dist/cli/chunks/{chunk-V5TRAL57.js → chunk-ZTMWJQTZ.js} +2 -2
- package/dist/cli/chunks/{ci-7TR4NQ5I.js → ci-EHRUN7O6.js} +2 -2
- package/dist/cli/chunks/{ci-output-SLTICF3O.js → ci-output-EXDXVXKB.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-7GVVTMBY.js → circuit-breaker-LM4QRAAL.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-TYCWYEMM.js → claude-flow-setup-ZHUCZVW7.js} +2 -2
- package/dist/cli/chunks/client-PA3UJIHH.js +2 -0
- package/dist/cli/chunks/{cline-installer-ESIAJOLK.js → cline-installer-WMFLQOW2.js} +2 -2
- package/dist/cli/chunks/{code-I42JGOVI.js → code-L7KRLU5E.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-2CCXPCQW.js → code-index-extractor-FTMUYQC6.js} +2 -2
- package/dist/cli/chunks/{codex-installer-HEZRDNUT.js → codex-installer-B3F6WI3Z.js} +2 -2
- package/dist/cli/chunks/{completions-44HLIZGI.js → completions-3JZQRNB6.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-SOCSFDVO.js → complexity-analyzer-LB2FFEKX.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-Q7O4HLIM.js → continuedev-installer-WH6IMV7R.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-GIWCVLCS.js → copilot-installer-NOIEOFJM.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-G7BONKEV.js → cost-tracker-IKX2VYSA.js} +2 -2
- package/dist/cli/chunks/{coverage-5TWVP7KY.js → coverage-TD37CYSY.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-BVJRP2ZX.js +2 -0
- package/dist/cli/chunks/{cursor-installer-43EQZSB5.js → cursor-installer-4NSVGRM5.js} +2 -2
- package/dist/cli/chunks/{daemon-ZXHFRDKG.js → daemon-LYDV7NRW.js} +3 -3
- package/dist/cli/chunks/{daemon-QQZE4BU2.js → daemon-UWEBUIDT.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-GOZAVAZQ.js → dag-attention-scheduler-NECJGCHC.js} +2 -2
- package/dist/cli/chunks/{detect-X777GVJ4.js → detect-4XGC7ILO.js} +2 -2
- package/dist/cli/chunks/{dist-node-EZZK46TB.js → dist-node-GGJDXRKJ.js} +2 -2
- package/dist/cli/chunks/{domain-handler-ZT32DKYY.js → domain-handler-UOFONAUT.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-LHQVSLJW.js → domain-transfer-6JLNOYPA.js} +2 -2
- package/dist/cli/chunks/dream-BXZUEIW2.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-XFYPPWG7.js → embed-and-insert-pattern-ZM75DQ4J.js} +2 -2
- package/dist/cli/chunks/{eval-V4NYJZUZ.js → eval-CYZJTHEB.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-HXX2W4GL.js → experience-capture-middleware-RBOJLDUB.js} +3 -3
- package/dist/cli/chunks/{fast-paths-RBPWQSFJ.js → fast-paths-S5BWZR3L.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NX5EXRO3.js → feature-flags-6E7H3NYP.js} +2 -2
- package/dist/cli/chunks/{feature-flags-INJJZBMN.js → feature-flags-DUNQPDU3.js} +2 -2
- package/dist/cli/chunks/{file-discovery-SNFSG6NK.js → file-discovery-PFFKDGYG.js} +2 -2
- package/dist/cli/chunks/{fleet-6SDN4UWE.js → fleet-RCDZZFXN.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-2JDRTDDK.js → gnn-wrapper-5AG3WDWF.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-QLK6E7KA.js → heartbeat-handler-O2KAEX4Y.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-LEKAWFJF.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-2TCEG5M2.js +2 -0
- package/dist/cli/chunks/hnsw-index-VDPUTEES.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-Q2ZEZQKB.js → hnsw-legacy-bridge-C7FG6YGW.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-Y6GX6CGB.js → hnswlib-node-YX6OOBN6.js} +2 -2
- package/dist/cli/chunks/{hooks-D4YENHO2.js → hooks-FUHNE2P7.js} +10 -10
- package/dist/cli/chunks/hybrid-router-2EMDIYIG.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-G72U446M.js → hypergraph-engine-LQRYBNPV.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-TRZ5FDRH.js → hypergraph-handler-AFFNLZVD.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-HFD6CPWC.js +2 -0
- package/dist/cli/chunks/{init-handler-3ZD4GCT4.js → init-handler-BQ6IDBX4.js} +6 -6
- package/dist/cli/chunks/init-wizard-552QIVRC.js +2 -0
- package/dist/cli/chunks/kernel-5DN6O6EE.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-AXSIW3XW.js → kilocode-installer-KS72HUSG.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-JQGIFWBK.js → kiro-installer-2ZEFLGRX.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-76Y77MB6.js +2 -0
- package/dist/cli/chunks/{learning-SPO7TGWX.js → learning-GGHGJ6B6.js} +3 -3
- package/dist/cli/chunks/llm-router-LP6K5BJF.js +36 -0
- package/dist/cli/chunks/llm-router-service-4O6GCEFH.js +2 -0
- package/dist/cli/chunks/{load-XIDDK64U.js → load-2MLKXOT2.js} +2 -2
- package/dist/cli/chunks/load-test-FCI2IWRJ.js +2 -0
- package/dist/cli/chunks/{mcp-3JXRGXO4.js → mcp-CDJBJG5H.js} +2 -2
- package/dist/cli/chunks/{memory-A66KRS2P.js → memory-4LAX7JZS.js} +5 -5
- package/dist/cli/chunks/memory-backend-MKNCBNDE.js +2 -0
- package/dist/cli/chunks/memory-handlers-OBAFR4WV.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-XCDGUVCE.js → multi-model-executor-SLJV73HE.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-GELXWLF2.js → opencode-installer-M76SONWV.js} +2 -2
- package/dist/cli/chunks/{orchestrator-CCS3K6NH.js → orchestrator-TJPUDJMP.js} +5 -5
- package/dist/cli/chunks/{pipeline-Z5C72H5S.js → pipeline-2PVNFT6J.js} +2 -2
- package/dist/cli/chunks/{platform-4AK7XJ3Y.js → platform-KCSEDKEE.js} +2 -2
- package/dist/cli/chunks/{plugin-7RYBIZI7.js → plugin-QX47QF5U.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-E5PARKRX.js → prime-radiant-advanced-wasm-L6VWL7VR.js} +2 -2
- package/dist/cli/chunks/protocol-executor-IA7WNT23.js +2 -0
- package/dist/cli/chunks/{protocol-handler-R6QJQFNL.js → protocol-handler-WDNJDEUE.js} +2 -2
- package/dist/cli/chunks/{prove-7ESQ2YAL.js → prove-3B75DA3S.js} +2 -2
- package/dist/cli/chunks/provider-manager-3K5KB5A6.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-V5Z3BBYY.js +2 -0
- package/dist/cli/chunks/{quality-4UE345QA.js → quality-UGASS5WM.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-QOMPA27Z.js +2 -0
- package/dist/cli/chunks/{real-embeddings-TYIVN3N5.js → real-embeddings-COBP2LHS.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-2KOANC47.js → roocode-installer-TOZ4VLFT.js} +2 -2
- package/dist/cli/chunks/router-P5RZUPC4.js +2 -0
- package/dist/cli/chunks/routing-feedback-3PS3OZQC.js +2 -0
- package/dist/cli/chunks/{routing-handler-JFEYTN7T.js → routing-handler-5TDVSILX.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-KSLSZRJX.js → ruvector-commands-AM63KWQN.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-EPBL226J.js → rvf-dual-writer-UANIFE2M.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-25KSI6SF.js → rvf-migration-adapter-LNPYWAPI.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-2XBYHPZP.js → rvf-migration-coordinator-U47L63DQ.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-TT7OJPKM.js +2 -0
- package/dist/cli/chunks/safe-db-PEW7VBAE.js +2 -0
- package/dist/cli/chunks/schedule-QHOTHBQE.js +2 -0
- package/dist/cli/chunks/scheduler-KXJBYTRT.js +2 -0
- package/dist/cli/chunks/{security-4XWYKI4O.js → security-KDQ2AH7G.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-WRZ3HGDQ.js → shared-rvf-adapter-5MAGLLYJ.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-DX2N5STR.js → shared-rvf-dual-writer-GF2OPPM5.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-TPXJK34J.js +2 -0
- package/dist/cli/chunks/{status-handler-V75OSXMQ.js → status-handler-XZKEL7LO.js} +2 -2
- package/dist/cli/chunks/{structural-health-TLX3JHZ6.js → structural-health-27QKWW25.js} +2 -2
- package/dist/cli/chunks/{sync-DXZFMVZQ.js → sync-INNKS6UK.js} +2 -2
- package/dist/cli/chunks/{sync-KGBEXUF7.js → sync-V3HGPEJT.js} +2 -2
- package/dist/cli/chunks/{task-handler-T3OJ6R7H.js → task-handler-LDUVOM6G.js} +2 -2
- package/dist/cli/chunks/{task-handlers-NJYR54AS.js → task-handlers-HTCPV7OO.js} +3 -3
- package/dist/cli/chunks/{test-KMVDNNQA.js → test-PCUVGVJL.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-R5EQ2XGV.js → test-scheduling-GYVXWCAA.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-PFKVV3RO.js → token-bootstrap-MJ2ANC4P.js} +2 -2
- package/dist/cli/chunks/{token-usage-ZLOGA6LR.js → token-usage-ZREHROTF.js} +2 -2
- package/dist/cli/chunks/{transformers-TNPSPQI3.js → transformers-6B3FWFYL.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-A2EEB5BF.js → tree-sitter-wasm-parser-JVV234MN.js} +2 -2
- package/dist/cli/chunks/{types-DIXPI4NR.js → types-MVZTJI2F.js} +2 -2
- package/dist/cli/chunks/unified-memory-ROS2NKR5.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-FLEUF3XO.js +2 -0
- package/dist/cli/chunks/unified-persistence-QC5L7UNQ.js +2 -0
- package/dist/cli/chunks/{upgrade-LX5KP6VO.js → upgrade-MKTFEILD.js} +2 -2
- package/dist/cli/chunks/{validate-3L6F7M36.js → validate-IABGALSW.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-FD42ZKAQ.js → validate-swarm-RHF53RF6.js} +2 -2
- package/dist/cli/chunks/{vibium-GSBSJR53.js → vibium-RAKW6FMF.js} +2 -2
- package/dist/cli/chunks/visual-security-NLIOUQCR.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-TXHMO4BW.js → web-tree-sitter-PYK7F4JZ.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-3EUZ6RD3.js → windsurf-installer-S3U2HWZ4.js} +2 -2
- package/dist/cli/chunks/{witness-chain-ONAUEJ4M.js → witness-chain-435NKQLB.js} +2 -2
- package/dist/cli/chunks/witness-chain-U7X6JX5J.js +2 -0
- package/dist/cli/chunks/{workflow-E7A6BV4C.js → workflow-5UHJCZ6J.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-APE6BAXH.js +2 -0
- package/dist/cli/chunks/{wrappers-AHHAQJM3.js → wrappers-RD3NCMLK.js} +2 -2
- package/dist/cli/commands/llm-router.js +83 -26
- package/dist/domains/chaos-resilience/coordinator.d.ts +2 -1
- package/dist/domains/chaos-resilience/coordinator.js +3 -2
- package/dist/domains/chaos-resilience/plugin.d.ts +4 -2
- package/dist/domains/chaos-resilience/plugin.js +8 -5
- package/dist/domains/code-intelligence/coordinator.d.ts +2 -1
- package/dist/domains/code-intelligence/coordinator.js +3 -2
- package/dist/domains/code-intelligence/plugin.d.ts +4 -2
- package/dist/domains/code-intelligence/plugin.js +8 -5
- package/dist/domains/contract-testing/coordinator.d.ts +2 -1
- package/dist/domains/contract-testing/coordinator.js +3 -2
- package/dist/domains/contract-testing/plugin.d.ts +4 -2
- package/dist/domains/contract-testing/plugin.js +8 -5
- package/dist/domains/coverage-analysis/coordinator.d.ts +2 -1
- package/dist/domains/coverage-analysis/coordinator.js +4 -3
- package/dist/domains/coverage-analysis/plugin.d.ts +3 -2
- package/dist/domains/coverage-analysis/plugin.js +4 -4
- package/dist/domains/defect-intelligence/coordinator.d.ts +2 -1
- package/dist/domains/defect-intelligence/coordinator.js +4 -3
- package/dist/domains/defect-intelligence/plugin.d.ts +4 -2
- package/dist/domains/defect-intelligence/plugin.js +9 -6
- package/dist/domains/learning-optimization/coordinator.d.ts +2 -1
- package/dist/domains/learning-optimization/coordinator.js +3 -2
- package/dist/domains/learning-optimization/plugin.d.ts +4 -2
- package/dist/domains/learning-optimization/plugin.js +8 -5
- package/dist/domains/quality-assessment/coordinator.d.ts +2 -1
- package/dist/domains/quality-assessment/coordinator.js +4 -3
- package/dist/domains/quality-assessment/plugin.d.ts +4 -2
- package/dist/domains/quality-assessment/plugin.js +10 -6
- package/dist/domains/requirements-validation/coordinator.d.ts +2 -1
- package/dist/domains/requirements-validation/coordinator.js +3 -2
- package/dist/domains/requirements-validation/plugin.d.ts +4 -2
- package/dist/domains/requirements-validation/plugin.js +8 -5
- package/dist/domains/security-compliance/coordinator.d.ts +2 -1
- package/dist/domains/security-compliance/coordinator.js +4 -2
- package/dist/domains/security-compliance/plugin.d.ts +4 -2
- package/dist/domains/security-compliance/plugin.js +11 -6
- package/dist/domains/test-execution/coordinator.d.ts +3 -2
- package/dist/domains/test-execution/coordinator.js +6 -5
- package/dist/domains/test-execution/plugin.d.ts +4 -2
- package/dist/domains/test-execution/plugin.js +6 -4
- package/dist/domains/test-generation/coordinator.d.ts +2 -1
- package/dist/domains/test-generation/coordinator.js +4 -3
- package/dist/domains/test-generation/plugin.d.ts +4 -2
- package/dist/domains/test-generation/plugin.js +12 -7
- package/dist/domains/visual-accessibility/coordinator.d.ts +2 -1
- package/dist/domains/visual-accessibility/coordinator.js +4 -3
- package/dist/domains/visual-accessibility/plugin.d.ts +4 -2
- package/dist/domains/visual-accessibility/plugin.js +9 -6
- package/dist/kernel/interfaces.d.ts +37 -0
- package/dist/kernel/kernel.d.ts +39 -0
- package/dist/kernel/kernel.js +157 -17
- package/dist/mcp/bundle.js +417 -395
- package/dist/mcp/qe-tool-bridge.js +8 -1
- package/dist/mcp/tools/base.d.ts +56 -0
- package/dist/mcp/tools/base.js +104 -1
- package/dist/mcp/tools/chaos-resilience/inject.js +4 -2
- package/dist/mcp/tools/code-intelligence/analyze.js +5 -3
- package/dist/mcp/tools/contract-testing/validate.js +4 -2
- package/dist/mcp/tools/coverage-analysis/index.js +11 -5
- package/dist/mcp/tools/defect-intelligence/predict.js +5 -10
- package/dist/mcp/tools/learning-optimization/optimize.js +4 -2
- package/dist/mcp/tools/registry.js +8 -1
- package/dist/mcp/tools/test-generation/generate.js +10 -6
- package/dist/mcp/tools/visual-accessibility/index.js +7 -4
- package/dist/shared/llm/llm-router-service.d.ts +77 -0
- package/dist/shared/llm/llm-router-service.js +166 -0
- package/dist/shared/llm/providers/gemini.js +5 -2
- package/dist/shared/llm/router/config-store.d.ts +89 -0
- package/dist/shared/llm/router/config-store.js +261 -0
- package/dist/shared/llm/router/hybrid-router.js +33 -11
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-WTE6UVGP.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-LCLEBU7D.js +0 -2
- package/dist/cli/chunks/base-73I73HBF.js +0 -2
- package/dist/cli/chunks/browser-workflow-2NSV5O6W.js +0 -2
- package/dist/cli/chunks/chunk-6MONUYQ5.js +0 -2
- package/dist/cli/chunks/chunk-X73CRYF4.js +0 -2
- package/dist/cli/chunks/client-7GB4WWUD.js +0 -2
- package/dist/cli/chunks/cross-domain-router-7HQ74TLE.js +0 -2
- package/dist/cli/chunks/dream-G5SEFHI4.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-NG7BY3FR.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-TDSLUI7K.js +0 -2
- package/dist/cli/chunks/hnsw-index-OWLQSOQH.js +0 -2
- package/dist/cli/chunks/hybrid-router-URU2XLBD.js +0 -2
- package/dist/cli/chunks/impact-analyzer-NMTN75KA.js +0 -2
- package/dist/cli/chunks/init-wizard-SHBFYGBV.js +0 -2
- package/dist/cli/chunks/kernel-7KVY2JGO.js +0 -2
- package/dist/cli/chunks/knowledge-graph-V4G5J5B7.js +0 -2
- package/dist/cli/chunks/llm-router-G6N2OKDA.js +0 -36
- package/dist/cli/chunks/load-test-N4RNPLG4.js +0 -2
- package/dist/cli/chunks/memory-backend-HPGJ5YDQ.js +0 -2
- package/dist/cli/chunks/memory-handlers-K33YVCVQ.js +0 -2
- package/dist/cli/chunks/protocol-executor-GNVWUJUP.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-DDSBHO6D.js +0 -2
- package/dist/cli/chunks/queen-coordinator-BQJ5O63C.js +0 -2
- package/dist/cli/chunks/router-C2RKWB7J.js +0 -2
- package/dist/cli/chunks/routing-feedback-RHATTSJ6.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-QG4CXHLL.js +0 -2
- package/dist/cli/chunks/safe-db-A4KQ2IDB.js +0 -2
- package/dist/cli/chunks/schedule-O7MLASQT.js +0 -2
- package/dist/cli/chunks/scheduler-HT7RNYQ2.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-4NNKJ6CQ.js +0 -2
- package/dist/cli/chunks/unified-memory-CMNJVHOJ.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-JQLU2KI6.js +0 -2
- package/dist/cli/chunks/unified-persistence-I25TEDIU.js +0 -2
- package/dist/cli/chunks/visual-security-AJJIEV5V.js +0 -2
- package/dist/cli/chunks/witness-chain-762QQBTN.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-ZGPYISKY.js +0 -2
|
@@ -14,14 +14,16 @@ import { ComplianceValidatorService, } from './services/compliance-validator.js'
|
|
|
14
14
|
// ============================================================================
|
|
15
15
|
export class SecurityCompliancePlugin extends BaseDomainPlugin {
|
|
16
16
|
agentCoordinator;
|
|
17
|
+
llmRouter;
|
|
17
18
|
coordinator = null;
|
|
18
19
|
securityScanner = null;
|
|
19
20
|
securityAuditor = null;
|
|
20
21
|
complianceValidator = null;
|
|
21
22
|
pluginConfig;
|
|
22
|
-
constructor(eventBus, memory, agentCoordinator, config = {}) {
|
|
23
|
+
constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
|
|
23
24
|
super(eventBus, memory);
|
|
24
25
|
this.agentCoordinator = agentCoordinator;
|
|
26
|
+
this.llmRouter = llmRouter;
|
|
25
27
|
this.pluginConfig = config;
|
|
26
28
|
}
|
|
27
29
|
// ==========================================================================
|
|
@@ -126,12 +128,15 @@ export class SecurityCompliancePlugin extends BaseDomainPlugin {
|
|
|
126
128
|
// Lifecycle Methods
|
|
127
129
|
// ==========================================================================
|
|
128
130
|
async onInitialize() {
|
|
129
|
-
// Create services
|
|
130
|
-
|
|
131
|
+
// Create services.
|
|
132
|
+
// ADR-043 wiring: SecurityScannerService accepts a dependency bag
|
|
133
|
+
// form that includes llmRouter — this is what makes
|
|
134
|
+
// SASTScanner.isLLMAnalysisAvailable() return true in production.
|
|
135
|
+
this.securityScanner = new SecurityScannerService({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.securityScanner);
|
|
131
136
|
this.securityAuditor = new SecurityAuditorService(this.memory, this.pluginConfig.securityAuditor);
|
|
132
137
|
this.complianceValidator = new ComplianceValidatorService(this.memory, this.pluginConfig.complianceValidator);
|
|
133
138
|
// Create coordinator
|
|
134
|
-
this.coordinator = new SecurityComplianceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
|
|
139
|
+
this.coordinator = new SecurityComplianceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
|
|
135
140
|
// Initialize coordinator
|
|
136
141
|
await this.coordinator.initialize();
|
|
137
142
|
// Issue #205 fix: Start with 'idle' status (0 agents)
|
|
@@ -361,7 +366,7 @@ export class SecurityCompliancePlugin extends BaseDomainPlugin {
|
|
|
361
366
|
// ============================================================================
|
|
362
367
|
// Factory Function
|
|
363
368
|
// ============================================================================
|
|
364
|
-
export function createSecurityCompliancePlugin(eventBus, memory, agentCoordinator, config) {
|
|
365
|
-
return new SecurityCompliancePlugin(eventBus, memory, agentCoordinator, config);
|
|
369
|
+
export function createSecurityCompliancePlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
|
|
370
|
+
return new SecurityCompliancePlugin(eventBus, memory, agentCoordinator, config, llmRouter);
|
|
366
371
|
}
|
|
367
372
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { Result } from '../../shared/types';
|
|
6
6
|
import { TestExecutionAPI, SimpleTestRequest, ExecuteTestsRequest, ParallelExecutionRequest, TestRunResult, FlakyDetectionRequest, FlakyTestReport, RetryRequest, RetryResult, ExecutionStats } from './interfaces';
|
|
7
7
|
import { EventBus, MemoryBackend } from '../../kernel/interfaces';
|
|
8
|
+
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
8
9
|
import { TestExecutorConfig } from './services/test-executor';
|
|
9
10
|
import { FlakyDetectorConfig } from './services/flaky-detector';
|
|
10
11
|
import { RetryHandlerConfig } from './services/retry-handler';
|
|
@@ -105,7 +106,7 @@ export declare class TestExecutionCoordinator extends BaseDomainCoordinator<Test
|
|
|
105
106
|
private readonly prioritizer;
|
|
106
107
|
private readonly e2eRunner?;
|
|
107
108
|
private readonly activeRuns;
|
|
108
|
-
constructor(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig
|
|
109
|
+
constructor(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig>, llmRouter?: HybridRouter);
|
|
109
110
|
protected onInitialize(): Promise<void>;
|
|
110
111
|
protected onDispose(): Promise<void>;
|
|
111
112
|
/**
|
|
@@ -254,5 +255,5 @@ export declare class TestExecutionCoordinator extends BaseDomainCoordinator<Test
|
|
|
254
255
|
*/
|
|
255
256
|
private verifyTestFailureAnalysis;
|
|
256
257
|
}
|
|
257
|
-
export declare function createTestExecutionCoordinator(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig
|
|
258
|
+
export declare function createTestExecutionCoordinator(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig>, llmRouter?: HybridRouter): ITestExecutionCoordinator;
|
|
258
259
|
//# sourceMappingURL=coordinator.d.ts.map
|
|
@@ -44,7 +44,7 @@ export class TestExecutionCoordinator extends BaseDomainCoordinator {
|
|
|
44
44
|
prioritizer;
|
|
45
45
|
e2eRunner;
|
|
46
46
|
activeRuns = new Set();
|
|
47
|
-
constructor(eventBus, memory, config = {}) {
|
|
47
|
+
constructor(eventBus, memory, config = {}, llmRouter) {
|
|
48
48
|
const fullConfig = {
|
|
49
49
|
...DEFAULT_COORDINATOR_CONFIG,
|
|
50
50
|
...config,
|
|
@@ -54,8 +54,9 @@ export class TestExecutionCoordinator extends BaseDomainCoordinator {
|
|
|
54
54
|
...fullConfig.consensusConfig,
|
|
55
55
|
});
|
|
56
56
|
this.memory = memory;
|
|
57
|
-
//
|
|
58
|
-
|
|
57
|
+
// ADR-043 wiring: pass llmRouter into TestExecutorService so its
|
|
58
|
+
// ADR-051 analyzeFailuresWithLLM branch becomes reachable.
|
|
59
|
+
this.executor = new TestExecutorService({ memory, llmRouter }, {
|
|
59
60
|
simulateForTesting: fullConfig.simulateForTesting,
|
|
60
61
|
...fullConfig.executorConfig,
|
|
61
62
|
});
|
|
@@ -945,7 +946,7 @@ export class TestExecutionCoordinator extends BaseDomainCoordinator {
|
|
|
945
946
|
// ============================================================================
|
|
946
947
|
// Factory Function
|
|
947
948
|
// ============================================================================
|
|
948
|
-
export function createTestExecutionCoordinator(eventBus, memory, config) {
|
|
949
|
-
return new TestExecutionCoordinator(eventBus, memory, config);
|
|
949
|
+
export function createTestExecutionCoordinator(eventBus, memory, config, llmRouter) {
|
|
950
|
+
return new TestExecutionCoordinator(eventBus, memory, config, llmRouter);
|
|
950
951
|
}
|
|
951
952
|
//# sourceMappingURL=coordinator.js.map
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
import { DomainName, DomainEvent } from '../../shared/types';
|
|
6
6
|
import { BaseDomainPlugin, TaskHandler } from '../domain-interface';
|
|
7
7
|
import { EventBus, MemoryBackend } from '../../kernel/interfaces';
|
|
8
|
+
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
8
9
|
export declare class TestExecutionPlugin extends BaseDomainPlugin {
|
|
10
|
+
private readonly llmRouter?;
|
|
9
11
|
private coordinator;
|
|
10
|
-
constructor(eventBus: EventBus, memory: MemoryBackend);
|
|
12
|
+
constructor(eventBus: EventBus, memory: MemoryBackend, llmRouter?: HybridRouter | undefined);
|
|
11
13
|
get name(): DomainName;
|
|
12
14
|
get version(): string;
|
|
13
15
|
get dependencies(): DomainName[];
|
|
@@ -28,5 +30,5 @@ export declare class TestExecutionPlugin extends BaseDomainPlugin {
|
|
|
28
30
|
private handleQualityGateEvaluated;
|
|
29
31
|
private handleCoverageGapDetected;
|
|
30
32
|
}
|
|
31
|
-
export declare function createTestExecutionPlugin(eventBus: EventBus, memory: MemoryBackend): TestExecutionPlugin;
|
|
33
|
+
export declare function createTestExecutionPlugin(eventBus: EventBus, memory: MemoryBackend, llmRouter?: HybridRouter): TestExecutionPlugin;
|
|
32
34
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -10,9 +10,11 @@ import { getGlobalInfraHealing } from '../../strange-loop/infra-healing/global-i
|
|
|
10
10
|
// Plugin Implementation
|
|
11
11
|
// ============================================================================
|
|
12
12
|
export class TestExecutionPlugin extends BaseDomainPlugin {
|
|
13
|
+
llmRouter;
|
|
13
14
|
coordinator = null;
|
|
14
|
-
constructor(eventBus, memory) {
|
|
15
|
+
constructor(eventBus, memory, llmRouter) {
|
|
15
16
|
super(eventBus, memory);
|
|
17
|
+
this.llmRouter = llmRouter;
|
|
16
18
|
}
|
|
17
19
|
get name() {
|
|
18
20
|
return 'test-execution';
|
|
@@ -125,7 +127,7 @@ export class TestExecutionPlugin extends BaseDomainPlugin {
|
|
|
125
127
|
async onInitialize() {
|
|
126
128
|
// ADR-057: Inject infra-healing orchestrator if available
|
|
127
129
|
const infraHealing = getGlobalInfraHealing() ?? undefined;
|
|
128
|
-
this.coordinator = createTestExecutionCoordinator(this.eventBus, this.memory, { infraHealing });
|
|
130
|
+
this.coordinator = createTestExecutionCoordinator(this.eventBus, this.memory, { infraHealing }, this.llmRouter);
|
|
129
131
|
await this.coordinator.initialize();
|
|
130
132
|
// Issue #205 fix: Start with 'idle' status (0 agents)
|
|
131
133
|
this.updateHealth({
|
|
@@ -215,7 +217,7 @@ export class TestExecutionPlugin extends BaseDomainPlugin {
|
|
|
215
217
|
// ============================================================================
|
|
216
218
|
// Factory Function
|
|
217
219
|
// ============================================================================
|
|
218
|
-
export function createTestExecutionPlugin(eventBus, memory) {
|
|
219
|
-
return new TestExecutionPlugin(eventBus, memory);
|
|
220
|
+
export function createTestExecutionPlugin(eventBus, memory, llmRouter) {
|
|
221
|
+
return new TestExecutionPlugin(eventBus, memory, llmRouter);
|
|
220
222
|
}
|
|
221
223
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { Result } from '../../shared/types';
|
|
11
11
|
import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces';
|
|
12
|
+
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
12
13
|
import { GenerateTestsRequest, GeneratedTests, TDDRequest, TDDResult, PropertyTestRequest, PropertyTests, TestDataRequest, TestData, LearnPatternsRequest, LearnedPatterns, TestGenerationAPI } from './interfaces';
|
|
13
14
|
import type { QEHookRegistry } from '../../learning/qe-hooks.js';
|
|
14
15
|
import { type ConsensusEnabledConfig } from '../../coordination/mixins/consensus-enabled-domain';
|
|
@@ -75,7 +76,7 @@ export declare class TestGenerationCoordinator extends BaseDomainCoordinator<Coo
|
|
|
75
76
|
private testEmbeddings;
|
|
76
77
|
private recentDreamInsights;
|
|
77
78
|
private coherenceGate;
|
|
78
|
-
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, coherenceService?: (ICoherenceService | null) | undefined, hookRegistry?: (QEHookRegistry | null) | undefined);
|
|
79
|
+
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, llmRouter?: HybridRouter, coherenceService?: (ICoherenceService | null) | undefined, hookRegistry?: (QEHookRegistry | null) | undefined);
|
|
79
80
|
protected onInitialize(): Promise<void>;
|
|
80
81
|
protected onDispose(): Promise<void>;
|
|
81
82
|
/**
|
|
@@ -12,7 +12,7 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
12
12
|
import { err, } from '../../shared/types';
|
|
13
13
|
import { toError } from '../../shared/error-utils.js';
|
|
14
14
|
import { TestGenerationEvents, LearningOptimizationEvents, createEvent, } from '../../shared/events/domain-events';
|
|
15
|
-
import {
|
|
15
|
+
import { createTestGeneratorServiceWithDependencies, } from './services/test-generator';
|
|
16
16
|
import { PatternMatcherService, } from './services/pattern-matcher';
|
|
17
17
|
import { QE_HOOK_EVENTS } from '../../learning/qe-hooks.js';
|
|
18
18
|
// CQ-002: Base domain coordinator
|
|
@@ -87,7 +87,7 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
|
|
|
87
87
|
recentDreamInsights = [];
|
|
88
88
|
// Coherence gate (ADR-052)
|
|
89
89
|
coherenceGate = null;
|
|
90
|
-
constructor(eventBus, memory, agentCoordinator, config = {}, coherenceService, hookRegistry) {
|
|
90
|
+
constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter, coherenceService, hookRegistry) {
|
|
91
91
|
const fullConfig = { ...DEFAULT_CONFIG, ...config };
|
|
92
92
|
super(eventBus, 'test-generation', fullConfig, {
|
|
93
93
|
verifyFindingTypes: [
|
|
@@ -102,7 +102,8 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
|
|
|
102
102
|
this.agentCoordinator = agentCoordinator;
|
|
103
103
|
this.coherenceService = coherenceService;
|
|
104
104
|
this.hookRegistry = hookRegistry;
|
|
105
|
-
|
|
105
|
+
// ADR-043 wiring: dependencies factory accepts llmRouter.
|
|
106
|
+
this.testGenerator = createTestGeneratorServiceWithDependencies({ memory, llmRouter });
|
|
106
107
|
this.patternMatcher = new PatternMatcherService(memory);
|
|
107
108
|
// Initialize coherence gate if service is provided (ADR-052)
|
|
108
109
|
if (this.config.enableCoherenceGate && coherenceService) {
|
|
@@ -7,6 +7,7 @@ import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfac
|
|
|
7
7
|
import { BaseDomainPlugin, TaskHandler } from '../domain-interface';
|
|
8
8
|
import { TestGenerationAPI } from './interfaces';
|
|
9
9
|
import { ITestGenerationCoordinator, CoordinatorConfig } from './coordinator';
|
|
10
|
+
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
10
11
|
import { ITestGenerationService, TestGeneratorConfig } from './services/test-generator';
|
|
11
12
|
import { IPatternMatchingService, PatternMatcherConfig } from './services/pattern-matcher';
|
|
12
13
|
/**
|
|
@@ -34,11 +35,12 @@ export interface TestGenerationExtendedAPI extends TestGenerationAPI {
|
|
|
34
35
|
*/
|
|
35
36
|
export declare class TestGenerationPlugin extends BaseDomainPlugin {
|
|
36
37
|
private readonly agentCoordinator;
|
|
38
|
+
private readonly llmRouter?;
|
|
37
39
|
private coordinator;
|
|
38
40
|
private testGenerator;
|
|
39
41
|
private patternMatcher;
|
|
40
42
|
private readonly pluginConfig;
|
|
41
|
-
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig);
|
|
43
|
+
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig, llmRouter?: HybridRouter | undefined);
|
|
42
44
|
get name(): DomainName;
|
|
43
45
|
get version(): string;
|
|
44
46
|
get dependencies(): DomainName[];
|
|
@@ -71,5 +73,5 @@ export declare class TestGenerationPlugin extends BaseDomainPlugin {
|
|
|
71
73
|
/**
|
|
72
74
|
* Factory function to create a TestGenerationPlugin
|
|
73
75
|
*/
|
|
74
|
-
export declare function createTestGenerationPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig): TestGenerationPlugin;
|
|
76
|
+
export declare function createTestGenerationPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig, llmRouter?: HybridRouter): TestGenerationPlugin;
|
|
75
77
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { err } from '../../shared/types';
|
|
6
6
|
import { BaseDomainPlugin } from '../domain-interface';
|
|
7
7
|
import { TestGenerationCoordinator, } from './coordinator';
|
|
8
|
-
import {
|
|
8
|
+
import { createTestGeneratorServiceWithDependencies, } from './services/test-generator';
|
|
9
9
|
import { toError } from '../../shared/error-utils.js';
|
|
10
10
|
import { PatternMatcherService, } from './services/pattern-matcher';
|
|
11
11
|
/**
|
|
@@ -14,13 +14,15 @@ import { PatternMatcherService, } from './services/pattern-matcher';
|
|
|
14
14
|
*/
|
|
15
15
|
export class TestGenerationPlugin extends BaseDomainPlugin {
|
|
16
16
|
agentCoordinator;
|
|
17
|
+
llmRouter;
|
|
17
18
|
coordinator = null;
|
|
18
19
|
testGenerator = null;
|
|
19
20
|
patternMatcher = null;
|
|
20
21
|
pluginConfig;
|
|
21
|
-
constructor(eventBus, memory, agentCoordinator, config = {}) {
|
|
22
|
+
constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
|
|
22
23
|
super(eventBus, memory);
|
|
23
24
|
this.agentCoordinator = agentCoordinator;
|
|
25
|
+
this.llmRouter = llmRouter;
|
|
24
26
|
this.pluginConfig = config;
|
|
25
27
|
}
|
|
26
28
|
// ============================================================================
|
|
@@ -141,11 +143,14 @@ export class TestGenerationPlugin extends BaseDomainPlugin {
|
|
|
141
143
|
// Lifecycle Methods
|
|
142
144
|
// ============================================================================
|
|
143
145
|
async onInitialize() {
|
|
144
|
-
// Create services using factory function for proper DI
|
|
145
|
-
|
|
146
|
+
// Create services using factory function for proper DI.
|
|
147
|
+
// ADR-043 wiring: pass llmRouter into TestGeneratorService via the
|
|
148
|
+
// dependencies factory (createTestGeneratorServiceWithDependencies)
|
|
149
|
+
// so analyzeXxxWithLLM branches become reachable.
|
|
150
|
+
this.testGenerator = createTestGeneratorServiceWithDependencies({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.testGenerator);
|
|
146
151
|
this.patternMatcher = new PatternMatcherService(this.memory, this.pluginConfig.patternMatcher);
|
|
147
152
|
// Create coordinator
|
|
148
|
-
this.coordinator = new TestGenerationCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
|
|
153
|
+
this.coordinator = new TestGenerationCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
|
|
149
154
|
// Initialize coordinator
|
|
150
155
|
await this.coordinator.initialize();
|
|
151
156
|
// Issue #205 fix: Start with 'idle' status (0 agents)
|
|
@@ -320,7 +325,7 @@ export class TestGenerationPlugin extends BaseDomainPlugin {
|
|
|
320
325
|
/**
|
|
321
326
|
* Factory function to create a TestGenerationPlugin
|
|
322
327
|
*/
|
|
323
|
-
export function createTestGenerationPlugin(eventBus, memory, agentCoordinator, config) {
|
|
324
|
-
return new TestGenerationPlugin(eventBus, memory, agentCoordinator, config);
|
|
328
|
+
export function createTestGenerationPlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
|
|
329
|
+
return new TestGenerationPlugin(eventBus, memory, agentCoordinator, config, llmRouter);
|
|
325
330
|
}
|
|
326
331
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Orchestrates the visual and accessibility testing workflows
|
|
4
4
|
*/
|
|
5
5
|
import { Result } from '../../shared/types/index.js';
|
|
6
|
+
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
6
7
|
import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js';
|
|
7
8
|
import { IVisualAccessibilityCoordinator, Viewport, VisualTestReport, AccessibilityAuditReport, AccessibilityViolation, RemediationPlan, VisualTestingStatus, VisualTestItem, VisualTestPrioritizationContext, VisualTestPrioritizationResult } from './interfaces.js';
|
|
8
9
|
import { VisualTesterConfig } from './services/visual-tester.js';
|
|
@@ -59,7 +60,7 @@ export declare class VisualAccessibilityCoordinator extends BaseDomainCoordinato
|
|
|
59
60
|
readonly responsiveTester: ResponsiveTesterService;
|
|
60
61
|
private a2cAlgorithm?;
|
|
61
62
|
private flashAttention?;
|
|
62
|
-
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, visualConfig?: Partial<VisualTesterConfig>, accessibilityConfig?: Partial<AccessibilityTesterConfig>, responsiveConfig?: Partial<ResponsiveTestConfig
|
|
63
|
+
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, visualConfig?: Partial<VisualTesterConfig>, accessibilityConfig?: Partial<AccessibilityTesterConfig>, responsiveConfig?: Partial<ResponsiveTestConfig>, llmRouter?: HybridRouter);
|
|
63
64
|
/**
|
|
64
65
|
* Initialize the coordinator
|
|
65
66
|
* CQ-002: Domain-specific initialization
|
|
@@ -8,7 +8,7 @@ import { toError, toErrorMessage } from '../../shared/error-utils.js';
|
|
|
8
8
|
import { ok, err, } from '../../shared/types/index.js';
|
|
9
9
|
import { FilePath } from '../../shared/value-objects/index.js';
|
|
10
10
|
import { cosineSimilarity } from '../../shared/utils/vector-math.js';
|
|
11
|
-
import {
|
|
11
|
+
import { createVisualTesterServiceWithDependencies, } from './services/visual-tester.js';
|
|
12
12
|
import { AccessibilityTesterService, } from './services/accessibility-tester.js';
|
|
13
13
|
import { ResponsiveTesterService, } from './services/responsive-tester.js';
|
|
14
14
|
import { A2CAlgorithm } from '../../integrations/rl-suite/algorithms/a2c.js';
|
|
@@ -48,7 +48,7 @@ export class VisualAccessibilityCoordinator extends BaseDomainCoordinator {
|
|
|
48
48
|
a2cAlgorithm;
|
|
49
49
|
// Flash Attention Integration: QEFlashAttention for image similarity
|
|
50
50
|
flashAttention;
|
|
51
|
-
constructor(eventBus, memory, agentCoordinator, config = {}, visualConfig = {}, accessibilityConfig = {}, responsiveConfig = {}) {
|
|
51
|
+
constructor(eventBus, memory, agentCoordinator, config = {}, visualConfig = {}, accessibilityConfig = {}, responsiveConfig = {}, llmRouter) {
|
|
52
52
|
const fullConfig = { ...DEFAULT_CONFIG, ...config };
|
|
53
53
|
super(eventBus, 'visual-accessibility', fullConfig, {
|
|
54
54
|
verifyFindingTypes: [
|
|
@@ -59,7 +59,8 @@ export class VisualAccessibilityCoordinator extends BaseDomainCoordinator {
|
|
|
59
59
|
});
|
|
60
60
|
this.memory = memory;
|
|
61
61
|
this.agentCoordinator = agentCoordinator;
|
|
62
|
-
|
|
62
|
+
// ADR-043 wiring: dependency-bag factory for LLM-aware visual tester.
|
|
63
|
+
this.visualTester = createVisualTesterServiceWithDependencies({ memory, llmRouter }, visualConfig);
|
|
63
64
|
this.accessibilityTester = new AccessibilityTesterService(memory, accessibilityConfig);
|
|
64
65
|
this.responsiveTester = new ResponsiveTesterService(memory, responsiveConfig);
|
|
65
66
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { DomainName, DomainEvent, Result } from '../../shared/types/index.js';
|
|
6
6
|
import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js';
|
|
7
7
|
import { BaseDomainPlugin, TaskHandler } from '../domain-interface.js';
|
|
8
|
+
import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
|
|
8
9
|
import type { WorkflowOrchestrator } from '../../coordination/workflow-orchestrator.js';
|
|
9
10
|
import { Viewport, VisualTestReport, AccessibilityAuditReport, AccessibilityViolation, RemediationPlan, VisualTestingStatus, AccessibilityReport, ContrastAnalysis, WCAGValidationResult, KeyboardNavigationReport, Screenshot, CaptureOptions, AuditOptions } from './interfaces.js';
|
|
10
11
|
import { IVisualAccessibilityCoordinatorExtended, CoordinatorConfig } from './coordinator.js';
|
|
@@ -49,12 +50,13 @@ export interface VisualAccessibilityAPI {
|
|
|
49
50
|
*/
|
|
50
51
|
export declare class VisualAccessibilityPlugin extends BaseDomainPlugin {
|
|
51
52
|
private readonly agentCoordinator;
|
|
53
|
+
private readonly llmRouter?;
|
|
52
54
|
private coordinator;
|
|
53
55
|
private visualTester;
|
|
54
56
|
private accessibilityTester;
|
|
55
57
|
private responsiveTester;
|
|
56
58
|
private readonly pluginConfig;
|
|
57
|
-
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig);
|
|
59
|
+
constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig, llmRouter?: HybridRouter | undefined);
|
|
58
60
|
get name(): DomainName;
|
|
59
61
|
get version(): string;
|
|
60
62
|
get dependencies(): DomainName[];
|
|
@@ -115,5 +117,5 @@ export declare class VisualAccessibilityPlugin extends BaseDomainPlugin {
|
|
|
115
117
|
/**
|
|
116
118
|
* Factory function to create a VisualAccessibilityPlugin
|
|
117
119
|
*/
|
|
118
|
-
export declare function createVisualAccessibilityPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig): VisualAccessibilityPlugin;
|
|
120
|
+
export declare function createVisualAccessibilityPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig, llmRouter?: HybridRouter): VisualAccessibilityPlugin;
|
|
119
121
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { ok, err } from '../../shared/types/index.js';
|
|
6
6
|
import { BaseDomainPlugin } from '../domain-interface.js';
|
|
7
7
|
import { VisualAccessibilityCoordinator, } from './coordinator.js';
|
|
8
|
-
import {
|
|
8
|
+
import { createVisualTesterServiceWithDependencies, } from './services/visual-tester.js';
|
|
9
9
|
import { AccessibilityTesterService, } from './services/accessibility-tester.js';
|
|
10
10
|
import { toError } from '../../shared/error-utils.js';
|
|
11
11
|
import { ResponsiveTesterService, } from './services/responsive-tester.js';
|
|
@@ -15,14 +15,16 @@ import { ResponsiveTesterService, } from './services/responsive-tester.js';
|
|
|
15
15
|
*/
|
|
16
16
|
export class VisualAccessibilityPlugin extends BaseDomainPlugin {
|
|
17
17
|
agentCoordinator;
|
|
18
|
+
llmRouter;
|
|
18
19
|
coordinator = null;
|
|
19
20
|
visualTester = null;
|
|
20
21
|
accessibilityTester = null;
|
|
21
22
|
responsiveTester = null;
|
|
22
23
|
pluginConfig;
|
|
23
|
-
constructor(eventBus, memory, agentCoordinator, config = {}) {
|
|
24
|
+
constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
|
|
24
25
|
super(eventBus, memory);
|
|
25
26
|
this.agentCoordinator = agentCoordinator;
|
|
27
|
+
this.llmRouter = llmRouter;
|
|
26
28
|
this.pluginConfig = config;
|
|
27
29
|
}
|
|
28
30
|
// ============================================================================
|
|
@@ -135,11 +137,12 @@ export class VisualAccessibilityPlugin extends BaseDomainPlugin {
|
|
|
135
137
|
// ============================================================================
|
|
136
138
|
async onInitialize() {
|
|
137
139
|
// Create services using factory function for proper DI
|
|
138
|
-
|
|
140
|
+
// ADR-043 wiring: dependencies factory accepts llmRouter.
|
|
141
|
+
this.visualTester = createVisualTesterServiceWithDependencies({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.visualTester);
|
|
139
142
|
this.accessibilityTester = new AccessibilityTesterService(this.memory, this.pluginConfig.accessibilityTester);
|
|
140
143
|
this.responsiveTester = new ResponsiveTesterService(this.memory, this.pluginConfig.responsiveTester);
|
|
141
144
|
// Create coordinator
|
|
142
|
-
this.coordinator = new VisualAccessibilityCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.pluginConfig.visualTester, this.pluginConfig.accessibilityTester, this.pluginConfig.responsiveTester);
|
|
145
|
+
this.coordinator = new VisualAccessibilityCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.pluginConfig.visualTester, this.pluginConfig.accessibilityTester, this.pluginConfig.responsiveTester, this.llmRouter);
|
|
143
146
|
// Initialize coordinator
|
|
144
147
|
await this.coordinator.initialize();
|
|
145
148
|
// Issue #205 fix: Start with 'idle' status (0 agents)
|
|
@@ -552,7 +555,7 @@ export class VisualAccessibilityPlugin extends BaseDomainPlugin {
|
|
|
552
555
|
/**
|
|
553
556
|
* Factory function to create a VisualAccessibilityPlugin
|
|
554
557
|
*/
|
|
555
|
-
export function createVisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config) {
|
|
556
|
-
return new VisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config);
|
|
558
|
+
export function createVisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
|
|
559
|
+
return new VisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config, llmRouter);
|
|
557
560
|
}
|
|
558
561
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -259,6 +259,17 @@ export interface QEKernel extends Initializable, Disposable {
|
|
|
259
259
|
readonly plugins: PluginLoader;
|
|
260
260
|
/** Get the memory backend */
|
|
261
261
|
readonly memory: MemoryBackend;
|
|
262
|
+
/**
|
|
263
|
+
* Get the LLM router (ADR-043). Returns undefined when no provider
|
|
264
|
+
* keys are present in env and the project has no router config — the
|
|
265
|
+
* kernel boots fine without a router; the LLM-enhancement branches
|
|
266
|
+
* in domain services simply stay dark.
|
|
267
|
+
*
|
|
268
|
+
* Type intentionally returned as `unknown` here to avoid a hard
|
|
269
|
+
* dependency from kernel/interfaces.ts on shared/llm/router/. Callers
|
|
270
|
+
* who need the typed HybridRouter import it directly.
|
|
271
|
+
*/
|
|
272
|
+
readonly llmRouter?: unknown;
|
|
262
273
|
/** Get a domain's API (synchronous, returns undefined if not loaded) */
|
|
263
274
|
getDomainAPI<T>(domain: DomainName): T | undefined;
|
|
264
275
|
/** Get a domain's API with lazy loading support */
|
|
@@ -324,6 +335,32 @@ export interface KernelConfig {
|
|
|
324
335
|
* DreamEngine init cost.
|
|
325
336
|
*/
|
|
326
337
|
enableDreamScheduler?: boolean;
|
|
338
|
+
/**
|
|
339
|
+
* LLM router configuration (ADR-043). Controls whether the kernel
|
|
340
|
+
* boots a HybridRouter and injects it into domain plugins so the
|
|
341
|
+
* isLLMAnalysisAvailable() branches in 14 services actually fire.
|
|
342
|
+
*
|
|
343
|
+
* - `enabled: 'auto'` (default): build a router iff at least one
|
|
344
|
+
* provider API key is present in env, OR the project's
|
|
345
|
+
* .agentic-qe/llm-config.json explicitly enables a provider.
|
|
346
|
+
* - `enabled: true`: always try to build a router; if no provider is
|
|
347
|
+
* available, log a warning and continue without one.
|
|
348
|
+
* - `enabled: false`: skip the router entirely. Use this to revert to
|
|
349
|
+
* the pre-wiring behavior (deterministic-only scanners).
|
|
350
|
+
*
|
|
351
|
+
* `configOverride` is merged on top of the disk + env config (highest
|
|
352
|
+
* precedence) — useful for tests.
|
|
353
|
+
*/
|
|
354
|
+
llmRouter?: {
|
|
355
|
+
enabled?: 'auto' | true | false;
|
|
356
|
+
configOverride?: Partial<import('../shared/llm/router/types').RouterConfig>;
|
|
357
|
+
/**
|
|
358
|
+
* Inject a pre-built ProviderManager (for tests). When supplied,
|
|
359
|
+
* config-store loading is skipped and the provided manager is used
|
|
360
|
+
* directly. Typed as unknown to avoid the dependency.
|
|
361
|
+
*/
|
|
362
|
+
providerManager?: unknown;
|
|
363
|
+
};
|
|
327
364
|
}
|
|
328
365
|
/**
|
|
329
366
|
* Event middleware interface for anti-drift and other event processing (ADR-060)
|
package/dist/kernel/kernel.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { DomainName } from '../shared/types';
|
|
|
6
6
|
import { QEKernel, EventBus, AgentCoordinator, PluginLoader, MemoryBackend, KernelHealth, KernelConfig } from './interfaces';
|
|
7
7
|
import { ToolCallSignatureTracker } from './anti-drift-middleware.js';
|
|
8
8
|
import type { LoopDetectionResult } from './anti-drift-middleware.js';
|
|
9
|
+
import type { HybridRouter } from '../shared/llm/router/hybrid-router.js';
|
|
9
10
|
import '../domains/test-generation';
|
|
10
11
|
import '../domains/coverage-analysis';
|
|
11
12
|
import '../domains/security-compliance';
|
|
@@ -22,12 +23,50 @@ export declare class QEKernelImpl implements QEKernel {
|
|
|
22
23
|
private _loopTracker;
|
|
23
24
|
private _experienceBridge?;
|
|
24
25
|
private _dreamScheduler?;
|
|
26
|
+
private _llmRouter?;
|
|
27
|
+
private _llmRouterBuild?;
|
|
25
28
|
constructor(config?: Partial<KernelConfig>);
|
|
26
29
|
get eventBus(): EventBus;
|
|
27
30
|
get coordinator(): AgentCoordinator;
|
|
28
31
|
get plugins(): PluginLoader;
|
|
29
32
|
get memory(): MemoryBackend;
|
|
33
|
+
/**
|
|
34
|
+
* ADR-043: Get the LLM router built during initialize(). Returns
|
|
35
|
+
* undefined when llmRouter.enabled is false or no provider was
|
|
36
|
+
* available. Domain plugins receive this as their factory's 4th arg
|
|
37
|
+
* via DOMAIN_FACTORIES.
|
|
38
|
+
*/
|
|
39
|
+
get llmRouter(): HybridRouter | undefined;
|
|
30
40
|
initialize(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* ADR-043: Build the kernel-singleton HybridRouter.
|
|
43
|
+
*
|
|
44
|
+
* Behavior is gated, in order:
|
|
45
|
+
* 1. AQE_LLM_ROUTER_DISABLED env var (kill-switch): if set to a truthy
|
|
46
|
+
* value, ALWAYS skip — even when config.llmRouter.enabled === true.
|
|
47
|
+
* This is the env-only opt-out for users who upgrade with a
|
|
48
|
+
* provider key already in env and don't want billing surprises.
|
|
49
|
+
* 2. config.llmRouter.enabled:
|
|
50
|
+
* 'auto' (default): build iff at least one provider key is in env,
|
|
51
|
+
* or the project's llm-config.json enables a provider
|
|
52
|
+
* true: attempt to build; emit error event if no provider
|
|
53
|
+
* false: skip entirely (sets _llmRouter to undefined)
|
|
54
|
+
*
|
|
55
|
+
* On any error we publish a structured kernel.llm-router.init-failed
|
|
56
|
+
* event so monitoring catches misconfiguration. We also keep the
|
|
57
|
+
* console.warn for direct visibility in dev. The kernel still boots —
|
|
58
|
+
* a kernel that boots without LLMs is strictly better than a kernel
|
|
59
|
+
* that won't boot — but the failure is now observable.
|
|
60
|
+
*/
|
|
61
|
+
private _initializeLLMRouter;
|
|
62
|
+
/**
|
|
63
|
+
* ADR-043: emit a structured event on the kernel event bus when the
|
|
64
|
+
* LLM router can't be built. Observability hook for monitoring and
|
|
65
|
+
* alerting — a silent warn is not enough for production systems where
|
|
66
|
+
* "tests run without LLM analysis" is a quality regression worth
|
|
67
|
+
* paging on.
|
|
68
|
+
*/
|
|
69
|
+
private _publishLLMRouterEvent;
|
|
31
70
|
dispose(): Promise<void>;
|
|
32
71
|
getDomainAPI<T>(domain: DomainName): T | undefined;
|
|
33
72
|
/**
|