agentic-qe 3.9.13 → 3.9.14
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 +24 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-W2EM7ZQ7.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-3RBPTJAU.js → agent-booster-wasm-O6EXMPMF.js} +2 -2
- package/dist/cli/chunks/{agent-handler-XV45GCWC.js → agent-handler-4LPJVTJU.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-V6EXWWMY.js → agent-memory-branch-PRR323JZ.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-JQMPNHQU.js +2 -0
- package/dist/cli/chunks/{audit-WXFI4AC4.js → audit-YCKXQOXD.js} +2 -2
- package/dist/cli/chunks/base-EOPYE6JR.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-23MIVVHF.js → better-sqlite3-44RIH62G.js} +2 -2
- package/dist/cli/chunks/{brain-handler-LQUMAACV.js → brain-handler-IAYJBAFL.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-HE37VX7G.js → branch-enumerator-RVVS2UYR.js} +2 -2
- package/dist/cli/chunks/{browser-3VG5M7WM.js → browser-L6IKC4PR.js} +2 -2
- package/dist/cli/chunks/browser-workflow-CSARLAJD.js +2 -0
- package/dist/cli/chunks/chunk-2L3BCZ2F.js +2 -0
- package/dist/cli/chunks/{chunk-WQGP5ULD.js → chunk-36YZ2UF7.js} +2 -2
- package/dist/cli/chunks/{chunk-LHZLH6I4.js → chunk-3GIZRGX6.js} +2 -2
- package/dist/cli/chunks/{chunk-VJN7NQGI.js → chunk-3NUMJB3U.js} +10 -10
- package/dist/cli/chunks/{chunk-Q7TWE55T.js → chunk-3PZ2QLLR.js} +4 -4
- package/dist/cli/chunks/{chunk-4VETZICF.js → chunk-3ZKTPPIC.js} +1 -1
- package/dist/cli/chunks/{chunk-RYPUA6E2.js → chunk-4EQWK6P6.js} +2 -2
- package/dist/cli/chunks/{chunk-RURYOWWU.js → chunk-4JYLXYAH.js} +1 -1
- package/dist/cli/chunks/{chunk-WQIB5ERQ.js → chunk-4RDTR2OF.js} +2 -2
- package/dist/cli/chunks/chunk-53KLVMAT.js +18 -0
- package/dist/cli/chunks/{chunk-TPTKR5ZO.js → chunk-5DWTU2PN.js} +1 -1
- package/dist/cli/chunks/{chunk-W2YCNX4O.js → chunk-5HUAD4UU.js} +2 -2
- package/dist/cli/chunks/{chunk-Q3MQYATA.js → chunk-5MWNXDQW.js} +2 -2
- package/dist/cli/chunks/{chunk-LRHJOYKY.js → chunk-5U6M4XCP.js} +3 -3
- package/dist/cli/chunks/{chunk-OKCI6BNZ.js → chunk-6BK2S2WE.js} +2 -2
- package/dist/cli/chunks/chunk-6EZY2QVM.js +3021 -0
- package/dist/cli/chunks/{chunk-OJGR56BP.js → chunk-6GKXC6DE.js} +2 -2
- package/dist/cli/chunks/{chunk-YBKSENTJ.js → chunk-6J6GXRHX.js} +5 -5
- package/dist/cli/chunks/chunk-7732TLNA.js +5 -0
- package/dist/cli/chunks/{chunk-AXDGBI4Y.js → chunk-7IJBZGZY.js} +1 -1
- package/dist/cli/chunks/{chunk-Y7YSJD4I.js → chunk-A2TK52B2.js} +2 -2
- package/dist/cli/chunks/chunk-AEQMQVDJ.js +2 -0
- package/dist/cli/chunks/{chunk-ZN7KPIJW.js → chunk-AHVUILGE.js} +1 -1
- package/dist/cli/chunks/{chunk-4MZZMWF6.js → chunk-AOYN6XYJ.js} +1 -1
- package/dist/cli/chunks/{chunk-FEGITTAE.js → chunk-BFCMOMOF.js} +1 -1
- package/dist/cli/chunks/{chunk-D22MEX2U.js → chunk-BNPJMPM3.js} +2 -2
- package/dist/cli/chunks/{chunk-3IJ4NRJF.js → chunk-BOMJHE4I.js} +2 -2
- package/dist/cli/chunks/{chunk-TU3JIH3U.js → chunk-CGC63MGF.js} +4 -4
- package/dist/cli/chunks/{chunk-FS4TPAAA.js → chunk-D6APBW66.js} +1 -1
- package/dist/cli/chunks/chunk-DD4T7ZUM.js +3 -0
- package/dist/cli/chunks/{chunk-ERGY45RL.js → chunk-DGUAAG3T.js} +1 -1
- package/dist/cli/chunks/{chunk-JOCR5TWI.js → chunk-DJLRRCR6.js} +2 -2
- package/dist/cli/chunks/{chunk-VCJP7HQG.js → chunk-DMZ2XOEW.js} +2 -2
- package/dist/cli/chunks/{chunk-6GYMFSPA.js → chunk-DNFDSDKE.js} +2 -2
- package/dist/cli/chunks/{chunk-H53V7GI3.js → chunk-ERMIIRYN.js} +1 -1
- package/dist/cli/chunks/{chunk-RMNZSGTE.js → chunk-FFACJODG.js} +2 -2
- package/dist/cli/chunks/{chunk-AV23XNRL.js → chunk-FNKKENLS.js} +2 -2
- package/dist/cli/chunks/{chunk-UDIRBCZW.js → chunk-FWI7PK4X.js} +1 -1
- package/dist/cli/chunks/{chunk-QNUVC6OX.js → chunk-FYBTGEOV.js} +1 -1
- package/dist/cli/chunks/{chunk-ZUW3KVML.js → chunk-G2KQUEGY.js} +2 -2
- package/dist/cli/chunks/{chunk-IQGVQBVS.js → chunk-G7L5Y47C.js} +1 -1
- package/dist/cli/chunks/{chunk-OHG6SNIA.js → chunk-GALNZTYE.js} +2 -2
- package/dist/cli/chunks/chunk-GIUAY4KY.js +12 -0
- package/dist/cli/chunks/chunk-GM5LIYLQ.js +2 -0
- package/dist/cli/chunks/{chunk-DY5JRJXV.js → chunk-GOTVYSX5.js} +3 -3
- package/dist/cli/chunks/{chunk-HHRUXDLT.js → chunk-GUEK5DOK.js} +2 -2
- package/dist/cli/chunks/{chunk-AOTEEGQA.js → chunk-HEQ23HBE.js} +2 -2
- package/dist/cli/chunks/{chunk-MXT7YUOZ.js → chunk-HJJTLOWZ.js} +2 -2
- package/dist/cli/chunks/{chunk-KULWZMVC.js → chunk-I3P5RZX7.js} +4 -4
- package/dist/cli/chunks/{chunk-HJHFGPGP.js → chunk-I5U64MHU.js} +2 -2
- package/dist/cli/chunks/{chunk-VWEGO7BY.js → chunk-IH4OOAEP.js} +1 -1
- package/dist/cli/chunks/{chunk-SSZMISGC.js → chunk-IL3ESNHA.js} +2 -2
- package/dist/cli/chunks/{chunk-6HSHLSGU.js → chunk-IOHDE27P.js} +2 -2
- package/dist/cli/chunks/{chunk-OM7A3YC3.js → chunk-J3XLOHWB.js} +2 -2
- package/dist/cli/chunks/{chunk-OUNZPHTA.js → chunk-J5YOXLBD.js} +1 -1
- package/dist/cli/chunks/{chunk-V2CV6J2A.js → chunk-JLBUS4PR.js} +2 -2
- package/dist/cli/chunks/{chunk-77GZ7LXL.js → chunk-JN7MSUGK.js} +2 -2
- package/dist/cli/chunks/{chunk-YYQVSVBO.js → chunk-JNLKLC7G.js} +2 -2
- package/dist/cli/chunks/chunk-JOGKQTCU.js +24 -0
- package/dist/cli/chunks/{chunk-BUIMIUJA.js → chunk-JWR3NNFA.js} +1 -1
- package/dist/cli/chunks/chunk-KFAN5FZM.js +2 -0
- package/dist/cli/chunks/{chunk-6LDRSG7C.js → chunk-KHUFPJE4.js} +3 -3
- package/dist/cli/chunks/{chunk-TRJRRJV3.js → chunk-KJB6JJXT.js} +1 -1
- package/dist/cli/chunks/{chunk-W6LEOFA4.js → chunk-KVN4FTPT.js} +2 -2
- package/dist/cli/chunks/{chunk-V6UODTBP.js → chunk-L4IWZXSC.js} +1 -1
- package/dist/cli/chunks/{chunk-VHSDZEYF.js → chunk-LJ3WQIBN.js} +1 -1
- package/dist/cli/chunks/{chunk-AEKTVLLF.js → chunk-LKGLKX2A.js} +2 -2
- package/dist/cli/chunks/{chunk-CF5EJGOV.js → chunk-LWHM5BWD.js} +2 -2
- package/dist/cli/chunks/{chunk-I6O4MVEY.js → chunk-M2RO34V7.js} +4 -4
- package/dist/cli/chunks/{chunk-XV42SKJD.js → chunk-ME4LVBTT.js} +2 -2
- package/dist/cli/chunks/chunk-MFGYMNNY.js +2 -0
- package/dist/cli/chunks/{chunk-54A2LVKM.js → chunk-MXIFVOYA.js} +2 -2
- package/dist/cli/chunks/{chunk-TOS3PI5Q.js → chunk-NWGIQCCO.js} +1 -1
- package/dist/cli/chunks/chunk-NWZYULZE.js +65 -0
- package/dist/cli/chunks/{chunk-4PCHU2X7.js → chunk-OGLS6HB4.js} +1 -1
- package/dist/cli/chunks/{chunk-E7P6GAD7.js → chunk-ORHCO2I7.js} +2 -2
- package/dist/cli/chunks/{chunk-X3UVXJIK.js → chunk-OZBTC26R.js} +2 -2
- package/dist/cli/chunks/{chunk-ZXJNX5D2.js → chunk-P5YSBYZV.js} +1 -1
- package/dist/cli/chunks/{chunk-GHAEDZDE.js → chunk-PFSSI3YR.js} +2 -2
- package/dist/cli/chunks/{chunk-QIE76ERL.js → chunk-PZF5ISGS.js} +1 -1
- package/dist/cli/chunks/{chunk-3RM2VNYG.js → chunk-Q4DAYLH4.js} +2 -2
- package/dist/cli/chunks/{chunk-OGHIQCJU.js → chunk-QLWP7ZIT.js} +2 -2
- package/dist/cli/chunks/{chunk-Z6F4GRXY.js → chunk-QUK34CSU.js} +2 -2
- package/dist/cli/chunks/chunk-RQFC7Q33.js +2 -0
- package/dist/cli/chunks/{chunk-OBDM6OJL.js → chunk-S2KGZJHS.js} +1 -1
- package/dist/cli/chunks/{chunk-TNQBHQFH.js → chunk-S6SM7LJK.js} +2 -2
- package/dist/cli/chunks/chunk-STYNOKOM.js +2 -0
- package/dist/cli/chunks/{chunk-2RTGP76Y.js → chunk-SUXUCW5I.js} +2 -2
- package/dist/cli/chunks/chunk-SY74WSBN.js +2 -0
- package/dist/cli/chunks/{chunk-FLML5IT7.js → chunk-TJOZPPZR.js} +2 -2
- package/dist/cli/chunks/{chunk-JV7HKHQS.js → chunk-TOSFK4VG.js} +2 -2
- package/dist/cli/chunks/{chunk-VVVIRGO7.js → chunk-UAAJ3BSW.js} +2 -2
- package/dist/cli/chunks/{chunk-QHCOAG7D.js → chunk-UG2J5MTY.js} +1 -1
- package/dist/cli/chunks/{chunk-3AOWTHLS.js → chunk-UIYK4Y7K.js} +2 -2
- package/dist/cli/chunks/{chunk-XXQYSDLV.js → chunk-UUVTLYUK.js} +2 -2
- package/dist/cli/chunks/{chunk-HXLAXSEM.js → chunk-VDGWDDBC.js} +2 -2
- package/dist/cli/chunks/{chunk-GKRKCJ6D.js → chunk-VEAVDXXT.js} +2 -2
- package/dist/cli/chunks/{chunk-YCQ2GHFH.js → chunk-VQB5SLXZ.js} +2 -2
- package/dist/cli/chunks/{chunk-EC2CI3ZC.js → chunk-VU4QET3C.js} +2 -2
- package/dist/cli/chunks/{chunk-OP54A7C6.js → chunk-VUS4VRPQ.js} +2 -2
- package/dist/cli/chunks/{chunk-DHYJMGKC.js → chunk-VVKENR4I.js} +1 -1
- package/dist/cli/chunks/{chunk-ZS5BM2EE.js → chunk-WE7KIXR6.js} +2 -2
- package/dist/cli/chunks/{chunk-ES6CEZG2.js → chunk-WELNFHDN.js} +1 -1
- package/dist/cli/chunks/{chunk-TWRGM5TY.js → chunk-WSZVSDD5.js} +2 -2
- package/dist/cli/chunks/{chunk-SL66MHDM.js → chunk-WUYJYRBY.js} +1 -1
- package/dist/cli/chunks/{chunk-WVWB7K6H.js → chunk-WVN4YJSF.js} +2 -2
- package/dist/cli/chunks/{chunk-CPRYUCPC.js → chunk-XH774Q6Z.js} +1 -1
- package/dist/cli/chunks/{chunk-AZPDX4KS.js → chunk-XNXOW7BQ.js} +2 -2
- package/dist/cli/chunks/{chunk-7HX2PMBB.js → chunk-Y3X5OS5F.js} +2 -2
- package/dist/cli/chunks/chunk-YPMBD44A.js +2 -0
- package/dist/cli/chunks/{chunk-BE2DYHUB.js → chunk-YZBY4ZRF.js} +2 -2
- package/dist/cli/chunks/{chunk-VU7ENCSU.js → chunk-Z3PSKGBO.js} +2 -2
- package/dist/cli/chunks/{chunk-UCCNB75R.js → chunk-ZCRLZINE.js} +2 -2
- package/dist/cli/chunks/{chunk-EBQUXPIG.js → chunk-ZFZX2NA3.js} +2 -2
- package/dist/cli/chunks/{chunk-5TDHUYYF.js → chunk-ZU5VHW6P.js} +2 -2
- package/dist/cli/chunks/{ci-FEEIAOQN.js → ci-QQ4F5TYO.js} +2 -2
- package/dist/cli/chunks/{ci-output-2WMUTORB.js → ci-output-QC4WRENA.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-MFEE23XA.js → circuit-breaker-HFQUNYTK.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-6D655INK.js → claude-flow-setup-XNSCWIUN.js} +2 -2
- package/dist/cli/chunks/client-3GECKJWB.js +2 -0
- package/dist/cli/chunks/{cline-installer-5PIYMPAG.js → cline-installer-S3CECBYL.js} +2 -2
- package/dist/cli/chunks/{code-ACS453WG.js → code-QHUELDUH.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-5SERI6TM.js → code-index-extractor-QLA5EQTE.js} +2 -2
- package/dist/cli/chunks/{codex-installer-WCUUWHP5.js → codex-installer-CQ7JNNOA.js} +2 -2
- package/dist/cli/chunks/{completions-6WFG3FPJ.js → completions-S33U3KIT.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-IFZEFCB6.js → complexity-analyzer-J7IEW3EM.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-RW6FEEND.js → continuedev-installer-DVU24D37.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-UZPE65RL.js → copilot-installer-DYISOPBC.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-2R4FT6TY.js → cost-tracker-URJADKKS.js} +2 -2
- package/dist/cli/chunks/{coverage-ZUC5U47P.js → coverage-NGMKJNW6.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-UYONX76U.js +2 -0
- package/dist/cli/chunks/{cursor-installer-7JBZT7JZ.js → cursor-installer-DFBJRDSY.js} +2 -2
- package/dist/cli/chunks/daemon-JSKKVVCV.js +19 -0
- package/dist/cli/chunks/{dag-attention-scheduler-MS7D2NFM.js → dag-attention-scheduler-YITFS6MR.js} +2 -2
- package/dist/cli/chunks/{detect-UHOSHYVB.js → detect-5APZP2D3.js} +2 -2
- package/dist/cli/chunks/{domain-handler-BVW4AX7O.js → domain-handler-WHH6XPSZ.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-PA2ENF3D.js → domain-transfer-SERX53SS.js} +2 -2
- package/dist/cli/chunks/dream-Z5QDQJSM.js +2 -0
- package/dist/cli/chunks/esm-node-FOI5Y3O2.js +2 -0
- package/dist/cli/chunks/{eval-Y3ODM7JU.js → eval-FM3BLVFO.js} +2 -2
- package/dist/cli/chunks/{fast-paths-DYQ5NC4Y.js → fast-paths-4MSOOJVK.js} +2 -2
- package/dist/cli/chunks/{feature-flags-YMMGYWT3.js → feature-flags-564YFR65.js} +2 -2
- package/dist/cli/chunks/{feature-flags-V34UZPHG.js → feature-flags-WJT57IEJ.js} +2 -2
- package/dist/cli/chunks/{file-discovery-75ZHSK4G.js → file-discovery-5QVG65WF.js} +2 -2
- package/dist/cli/chunks/{fleet-DD2CFGJL.js → fleet-CF5JRK5B.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-UXM3L5LV.js → gnn-wrapper-NYQ77563.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ANHRYXNS.js → heartbeat-handler-42QJPKHE.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-7XEAV74Y.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-NOAQ76QF.js +2 -0
- package/dist/cli/chunks/hnsw-index-KDIZQRSB.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-IFUEUOVF.js → hnsw-legacy-bridge-ZRR6PGWN.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-GYVDPTWU.js → hnswlib-node-DY7NOW76.js} +2 -2
- package/dist/cli/chunks/{hooks-R3DQNG2F.js → hooks-IRRHEJLR.js} +6 -6
- package/dist/cli/chunks/{hybrid-router-MSCQ2XGU.js → hybrid-router-S4JXJLUY.js} +2 -2
- package/dist/cli/chunks/{hypergraph-engine-3TKB5O7T.js → hypergraph-engine-WFHZJMP2.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-4APYID2S.js → hypergraph-handler-LHUKR7PT.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-VDXJBWFG.js +2 -0
- package/dist/cli/chunks/{init-handler-E7B2GKH3.js → init-handler-ZBIW7PSB.js} +6 -6
- package/dist/cli/chunks/init-wizard-Q6DEACKX.js +2 -0
- package/dist/cli/chunks/kernel-YNQOGTM5.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-WY6VTFSA.js → kilocode-installer-JYHA4NW7.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-SCNF3JXD.js → kiro-installer-OBXTRK77.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-GOZG3YOM.js +2 -0
- package/dist/cli/chunks/learning-OAEJHEJD.js +107 -0
- package/dist/cli/chunks/{llm-router-RBKYYHBJ.js → llm-router-NNEOZAVB.js} +4 -4
- package/dist/cli/chunks/{load-FY64UGHV.js → load-WIKLBESW.js} +2 -2
- package/dist/cli/chunks/load-test-UJLTMPXW.js +2 -0
- package/dist/cli/chunks/{mcp-6VMQOWMX.js → mcp-KR43GFGP.js} +2 -2
- package/dist/cli/chunks/{memory-Y5RO4PGM.js → memory-KQIYKAYU.js} +5 -5
- package/dist/cli/chunks/memory-backend-WJH6XER3.js +2 -0
- package/dist/cli/chunks/{memory-handlers-CMMVHHPG.js → memory-handlers-LAI4AO4O.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-JO3MNMPZ.js → multi-model-executor-NPS3VOAR.js} +3 -3
- package/dist/cli/chunks/{opencode-installer-WQBTY6JT.js → opencode-installer-FE475WME.js} +2 -2
- package/dist/cli/chunks/{orchestrator-4J7OSNSG.js → orchestrator-MW4MZ3RW.js} +5 -5
- package/dist/cli/chunks/{pipeline-63T6HN72.js → pipeline-R2TGZSUA.js} +2 -2
- package/dist/cli/chunks/{platform-UJMD4EPZ.js → platform-N2GZBCBP.js} +2 -2
- package/dist/cli/chunks/{plugin-NDOZ63JW.js → plugin-V2AQF23V.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-ELGHVIFI.js → prime-radiant-advanced-wasm-ZQSYRLRS.js} +2 -2
- package/dist/cli/chunks/protocol-executor-LYYYHXAX.js +2 -0
- package/dist/cli/chunks/{protocol-handler-KYERIMVF.js → protocol-handler-V3U724F2.js} +2 -2
- package/dist/cli/chunks/{prove-ATSSBP4Z.js → prove-NCH56HZB.js} +2 -2
- package/dist/cli/chunks/{provider-manager-YYMIF23V.js → provider-manager-7NUHS3T5.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-JK4UKLYY.js +2 -0
- package/dist/cli/chunks/{quality-2AGJSJW6.js → quality-J3IVPPPW.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-6OKLSCHV.js +2 -0
- package/dist/cli/chunks/{real-embeddings-H36GVXMI.js → real-embeddings-VURZXAEY.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-PMRBAY7O.js → roocode-installer-STWFJGMR.js} +2 -2
- package/dist/cli/chunks/router-DDZHCGUD.js +2 -0
- package/dist/cli/chunks/routing-feedback-BA66F37P.js +2 -0
- package/dist/cli/chunks/{routing-handler-Z7VZSDXW.js → routing-handler-6GZT7EXM.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-N3FZ3ZEE.js → ruvector-commands-LCPAH6WH.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-L5DQHUF3.js → rvf-dual-writer-76LWFT5X.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-NPGFA3SL.js → rvf-migration-adapter-G7KFWJKY.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-MCJDNKXG.js → rvf-migration-coordinator-3DXOUPWF.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-TXTRJNPW.js +2 -0
- package/dist/cli/chunks/safe-db-IFBVWIGF.js +2 -0
- package/dist/cli/chunks/schedule-WMZLOPCW.js +2 -0
- package/dist/cli/chunks/scheduler-WBORWJD5.js +2 -0
- package/dist/cli/chunks/{security-TX7TXUGI.js → security-XDBPYA5T.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-SQQ27EEI.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-6K3ZAG7P.js → shared-rvf-dual-writer-UGXTS2XI.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-XH47B3BG.js +2 -0
- package/dist/cli/chunks/{status-handler-MIRLQRNN.js → status-handler-ZLXES3QL.js} +2 -2
- package/dist/cli/chunks/{structural-health-CIHASLUE.js → structural-health-4PFCOQ7T.js} +2 -2
- package/dist/cli/chunks/{sync-FGLAP7EK.js → sync-3DROIEZN.js} +2 -2
- package/dist/cli/chunks/{task-handler-7HMPRCHY.js → task-handler-4UGZ5VIE.js} +2 -2
- package/dist/cli/chunks/{task-handlers-DQLQCLCT.js → task-handlers-I5VVBTWI.js} +2 -2
- package/dist/cli/chunks/{test-JKDO5ZHU.js → test-Z2MM7O5A.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-2YKZ7PVZ.js → test-scheduling-AP76GKN5.js} +4 -4
- package/dist/cli/chunks/{token-bootstrap-C7UUPMQN.js → token-bootstrap-P54N6PZV.js} +2 -2
- package/dist/cli/chunks/{token-usage-2RVIPCY4.js → token-usage-AXAZTPA6.js} +2 -2
- package/dist/cli/chunks/{transformers-UEMAGHQ5.js → transformers-VOZ2Z7FS.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-MELABICK.js → tree-sitter-wasm-parser-IYKLBTXB.js} +2 -2
- package/dist/cli/chunks/{types-5B4RD7ZV.js → types-TKDH5EBW.js} +2 -2
- package/dist/cli/chunks/unified-memory-NHJHPLIC.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-IMMCI2XK.js +2 -0
- package/dist/cli/chunks/unified-persistence-JS6CEV35.js +2 -0
- package/dist/cli/chunks/{validate-CHDG7SC3.js → validate-ZGF5FVZE.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-LB7GORKE.js → validate-swarm-OPWWUWYA.js} +2 -2
- package/dist/cli/chunks/{vibium-ZMC4G2YA.js → vibium-HEQUGRKJ.js} +2 -2
- package/dist/cli/chunks/visual-security-XLO5JBVP.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-THNO6S2V.js → web-tree-sitter-JZ7JCJJR.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-LRB43BPX.js → windsurf-installer-2SGRCS6C.js} +2 -2
- package/dist/cli/chunks/{witness-chain-JC5UBXPM.js → witness-chain-LJUYOCB5.js} +2 -2
- package/dist/cli/chunks/witness-chain-PPWPHYTY.js +2 -0
- package/dist/cli/chunks/{workflow-Q4IYQ6F2.js → workflow-QORI3KO7.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-H4DKRHVP.js +2 -0
- package/dist/cli/chunks/{wrappers-WSSLMFSE.js → wrappers-3NR7LNB5.js} +2 -2
- package/dist/cli/commands/learning.js +28 -8
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +1 -1
- package/dist/domains/constants.d.ts +1 -1
- package/dist/domains/constants.js +1 -1
- package/dist/domains/contract-testing/services/contract-validator.js +1 -1
- package/dist/domains/learning-optimization/services/learning-coordinator.js +1 -1
- package/dist/domains/test-execution/services/test-executor.js +1 -1
- package/dist/domains/test-generation/services/test-data-generator.d.ts +1 -0
- package/dist/domains/test-generation/services/test-data-generator.js +17 -3
- package/dist/domains/visual-accessibility/services/visual-tester.js +1 -1
- package/dist/mcp/bundle.js +1782 -1790
- package/dist/mcp/protocol-server.js +20 -10
- package/package.json +7 -5
- package/dist/cli/chunks/adapter-VP3WBXE5.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-ASPPEOKQ.js +0 -2
- package/dist/cli/chunks/base-SIAOYPTD.js +0 -2
- package/dist/cli/chunks/browser-workflow-BG3M3RZU.js +0 -2
- package/dist/cli/chunks/chunk-3I6KWFJT.js +0 -2
- package/dist/cli/chunks/chunk-4WJ3BHCN.js +0 -24
- package/dist/cli/chunks/chunk-67TMNSO3.js +0 -3
- package/dist/cli/chunks/chunk-APQYMAKG.js +0 -65
- package/dist/cli/chunks/chunk-BSTCXDVH.js +0 -2
- package/dist/cli/chunks/chunk-F74IVEON.js +0 -2
- package/dist/cli/chunks/chunk-FHWDVN65.js +0 -18
- package/dist/cli/chunks/chunk-HEHGQM2H.js +0 -3029
- package/dist/cli/chunks/chunk-HRD7LL7Q.js +0 -2
- package/dist/cli/chunks/chunk-QKTB5FZP.js +0 -2
- package/dist/cli/chunks/chunk-R4B2B6MZ.js +0 -5
- package/dist/cli/chunks/chunk-SI7AQK7I.js +0 -2
- package/dist/cli/chunks/chunk-TVASP2E6.js +0 -2
- package/dist/cli/chunks/chunk-VLZBQ3XN.js +0 -2
- package/dist/cli/chunks/chunk-Y2ONHWXI.js +0 -2
- package/dist/cli/chunks/chunk-YCTGWMCP.js +0 -12
- package/dist/cli/chunks/client-LMOHUGOA.js +0 -2
- package/dist/cli/chunks/cross-domain-router-IZB5ZMXO.js +0 -2
- package/dist/cli/chunks/daemon-YNF54UYB.js +0 -19
- package/dist/cli/chunks/dream-SAPSS25B.js +0 -2
- package/dist/cli/chunks/esm-node-FTBUMV4L.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-HYVMXCXT.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-CBDRZLXX.js +0 -2
- package/dist/cli/chunks/hnsw-index-EOJG4VF4.js +0 -2
- package/dist/cli/chunks/impact-analyzer-C2TXXYPC.js +0 -2
- package/dist/cli/chunks/init-wizard-IQV7SBMW.js +0 -2
- package/dist/cli/chunks/kernel-NJOPFGK7.js +0 -2
- package/dist/cli/chunks/knowledge-graph-EUMGCQPH.js +0 -2
- package/dist/cli/chunks/learning-Y4OZJFBV.js +0 -107
- package/dist/cli/chunks/load-test-LBYVVG35.js +0 -2
- package/dist/cli/chunks/memory-backend-NQMJKHCQ.js +0 -2
- package/dist/cli/chunks/protocol-executor-ZSWPG5SU.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-4RLPRCGF.js +0 -2
- package/dist/cli/chunks/queen-coordinator-KQ673NYE.js +0 -2
- package/dist/cli/chunks/router-UBNV4H5S.js +0 -2
- package/dist/cli/chunks/routing-feedback-BMMGZ346.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-LXBCTTVF.js +0 -2
- package/dist/cli/chunks/safe-db-FFSPBUAK.js +0 -2
- package/dist/cli/chunks/schedule-2MOMNZ6B.js +0 -2
- package/dist/cli/chunks/scheduler-5VGVANFG.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-6JWYF7WV.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-LCOAORK7.js +0 -2
- package/dist/cli/chunks/unified-memory-CZCWZUFP.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-QEOXVSOZ.js +0 -2
- package/dist/cli/chunks/unified-persistence-HGZAYZGP.js +0 -2
- package/dist/cli/chunks/visual-security-ITKF4E4Z.js +0 -2
- package/dist/cli/chunks/witness-chain-SYFYXQD3.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-GZS2O3KW.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a,c as b}from"./chunk-JLBUS4PR.js";import"./chunk-DJLRRCR6.js";import"./chunk-5HUAD4UU.js";import"./chunk-DGUAAG3T.js";b();export{a as HnswAdapter};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-RQFC7Q33.js";import"./chunk-STYNOKOM.js";import"./chunk-GUEK5DOK.js";import"./chunk-JNLKLC7G.js";import"./chunk-JLBUS4PR.js";import"./chunk-DJLRRCR6.js";import"./chunk-5HUAD4UU.js";import"./chunk-DGUAAG3T.js";export{a as DEFAULT_HNSW_CONFIG,b as HNSWIndex,d as benchmarkHNSW,c as createHNSWIndex};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import"./chunk-DGUAAG3T.js";var s=class{adapter;metadataMap=new Map;insertCount=0;constructor(e){this.adapter=e}async initialize(){}async insert(e,t,r){this.adapter.addByStringId(e,t),this.insertCount++,r&&this.metadataMap.set(e,r)}async search(e,t){return this.adapter.searchByArray(e,t).map(a=>({key:a.id,score:a.score,distance:1-a.score,metadata:this.metadataMap.get(a.id)}))}async batchInsert(e){for(let t of e)await this.insert(t.key,t.vector,t.metadata)}async delete(e){let t=this.adapter.removeByStringId(e);return t&&this.metadataMap.delete(e),t}async getStats(){return{nativeHNSW:!0,backendType:"ruvector-gnn",vectorCount:this.adapter.size(),indexSizeBytes:this.adapter.size()*this.adapter.dimensions()*4,avgSearchLatencyMs:this.adapter.lastSearchLatencyMs,p95SearchLatencyMs:0,p99SearchLatencyMs:0,searchOperations:0,insertOperations:this.insertCount}}async clear(){this.adapter.clear(),this.metadataMap.clear(),this.insertCount=0}isNativeAvailable(){return!0}};export{s as HnswLegacyBridge};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}from"./chunk-7IJBZGZY.js";import"./chunk-DGUAAG3T.js";export{i as DotProductAttention,h as FlashAttention,k as HyperbolicAttention,l as LinearAttention,m as MoEAttention,j as MultiHeadAttention,b as RuvectorLayer,n as SonaEngine,c as TensorCompress,a as default,d as differentiableSearch,f as getCompressionLevel,e as hierarchicalForward,g as init,o as pipeline};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
3
|
-
import{a as S,b as z,c as F}from"./chunk-
|
|
2
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
3
|
+
import{a as S,b as z,c as F}from"./chunk-I3P5RZX7.js";import{a as U,b as Q}from"./chunk-7732TLNA.js";import{g as j}from"./chunk-3PZ2QLLR.js";import"./chunk-NWZYULZE.js";import"./chunk-KJB6JJXT.js";import"./chunk-S2KGZJHS.js";import"./chunk-NWGIQCCO.js";import"./chunk-UAAJ3BSW.js";import"./chunk-TJOZPPZR.js";import{a as L}from"./chunk-VQB5SLXZ.js";import"./chunk-4EQWK6P6.js";import"./chunk-Y3X5OS5F.js";import"./chunk-WSZVSDD5.js";import{f as E,o as O}from"./chunk-ZFZX2NA3.js";import"./chunk-UUVTLYUK.js";import"./chunk-STYNOKOM.js";import"./chunk-GUEK5DOK.js";import{b as M,d as oe}from"./chunk-DMZ2XOEW.js";import"./chunk-PZF5ISGS.js";import"./chunk-UIYK4Y7K.js";import"./chunk-G7L5Y47C.js";import"./chunk-LWHM5BWD.js";import"./chunk-J3XLOHWB.js";import"./chunk-JN7MSUGK.js";import"./chunk-JNLKLC7G.js";import"./chunk-WE7KIXR6.js";import"./chunk-XNXOW7BQ.js";import"./chunk-JLBUS4PR.js";import"./chunk-DJLRRCR6.js";import"./chunk-5HUAD4UU.js";import"./chunk-DGUAAG3T.js";import{Command as ge}from"commander";import A from"chalk";import V from"node:path";O();import{randomUUID as se}from"crypto";import I from"chalk";var v="dream-scheduler:hook-state",G=36e5,J=20,W=3e5;async function N(r){try{let e=await r.get(v);if(!e)return{triggered:!1,reason:"no-state"};let t=Date.now(),o=e.lastDreamTime?new Date(e.lastDreamTime).getTime():0,n=t-o;if(n<W)return{triggered:!1,reason:"too-soon"};let s=n>=G,a=e.experienceCount>=J;if(!s&&!a)return{triggered:!1,reason:"conditions-not-met"};let c=s?"time-interval":"experience-threshold";console.log(I.dim(`[hooks] Dream trigger: ${c} (${e.experienceCount} experiences, ${Math.round(n/6e4)}min since last dream)`));let{createDreamEngine:i}=await import("./dream-Z5QDQJSM.js"),{createQEReasoningBank:h}=await import("./qe-reasoning-bank-JK4UKLYY.js"),u=i({maxDurationMs:1e4,minConceptsRequired:3});await u.initialize();let k=h(r,void 0,{enableLearning:!0,enableGuidance:!1,enableRouting:!1,embeddingDimension:384,useONNXEmbeddings:!0});await k.initialize();let p=await k.searchPatterns("",{limit:100,minConfidence:.3});if(p.success&&p.value.length>0){let R=p.value.map($=>({id:$.pattern.id,name:$.pattern.name,description:$.pattern.description||`${$.pattern.patternType} pattern`,domain:$.pattern.qeDomain||"learning-optimization",patternType:$.pattern.patternType,confidence:$.pattern.confidence,successRate:$.pattern.successRate||.5}));await u.loadPatternsAsConcepts(R)}let f=await u.dream(1e4);return e.lastDreamTime=new Date().toISOString(),e.experienceCount=0,e.totalDreamsThisSession++,await r.set(v,e),await u.close(),{triggered:!0,reason:c,insightsGenerated:f.insights.length}}catch(e){return console.error(I.dim(`[hooks] Dream trigger failed: ${e instanceof Error?e.message:"unknown"}`)),{triggered:!1,reason:"error"}}}async function D(r){try{let e=await r.get(v);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await r.set(v,e),e.experienceCount}catch{return 0}}async function P(r){try{let{getUnifiedMemory:e}=await import("./unified-memory-NHJHPLIC.js"),t=e();t.isInitialized()||await t.initialize();let o=t.getDatabase(),n=`cli-${Date.now()}-${se().slice(0,8)}`,s=r.durationMs||0,a;if(r.success){let c=s>0&&s<5e3?.1:0,i=r.source.includes("post-task")?.1:r.source.includes("post-edit")?.05:0;a=Math.min(.95,.7+c+i)}else{let c=r.source.includes("post-task")?.15:r.source.includes("post-edit")?.1:0;a=Math.min(.6,.3+c)}o.prepare(`
|
|
4
4
|
INSERT OR REPLACE INTO captured_experiences
|
|
5
5
|
(id, task, agent, domain, success, quality, duration_ms,
|
|
6
6
|
started_at, completed_at, source)
|
|
7
7
|
VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
|
|
8
|
-
`).run(n,r.task.slice(0,500),r.agent,r.domain,r.success?1:0,a,s,r.source)}catch(e){console.error(I.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function B(){let{getUnifiedMemory:r}=await import("./unified-memory-
|
|
8
|
+
`).run(n,r.task.slice(0,500),r.agent,r.domain,r.success?1:0,a,s,r.source)}catch(e){console.error(I.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function B(){let{getUnifiedMemory:r}=await import("./unified-memory-NHJHPLIC.js"),e=r();e.isInitialized()||await e.initialize();let t=e.getDatabase(),o=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),n=[["consolidated_into","TEXT DEFAULT NULL"],["consolidation_count","INTEGER DEFAULT 1"],["quality_updated_at","TEXT DEFAULT NULL"],["reuse_success_count","INTEGER DEFAULT 0"],["reuse_failure_count","INTEGER DEFAULT 0"]];for(let[i,h]of n)o.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${h}`);let s=t.prepare(`
|
|
9
9
|
SELECT
|
|
10
10
|
domain,
|
|
11
11
|
agent,
|
|
@@ -22,7 +22,7 @@ import{a as S,b as z,c as F}from"./chunk-KULWZMVC.js";import{a as U,b as Q}from"
|
|
|
22
22
|
HAVING cnt >= 3 AND avg_quality >= 0.5 AND success_rate >= 0.6
|
|
23
23
|
ORDER BY avg_quality DESC
|
|
24
24
|
LIMIT 50
|
|
25
|
-
`).all();if(s.length===0)return 0;let{v4:a}=await import("./esm-node-
|
|
25
|
+
`).all();if(s.length===0)return 0;let{v4:a}=await import("./esm-node-FOI5Y3O2.js"),c=0;for(let i of s)try{let h=new Date().toISOString().slice(0,7),u=`${i.agent}-${i.domain}-${h}`,k=t.prepare(`
|
|
26
26
|
SELECT id FROM qe_patterns
|
|
27
27
|
WHERE qe_domain = ? AND name = ?
|
|
28
28
|
LIMIT 1
|
|
@@ -44,7 +44,7 @@ import{a as S,b as z,c as F}from"./chunk-KULWZMVC.js";import{a as U,b as Q}from"
|
|
|
44
44
|
UPDATE captured_experiences
|
|
45
45
|
SET application_count = application_count + 1
|
|
46
46
|
WHERE domain = ? AND agent = ? AND application_count = 0
|
|
47
|
-
`).run(i.domain,i.agent)}catch{}return c}var d={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function g(){if(d.initializationPromise&&await d.initializationPromise,d.initialized&&d.reasoningBank&&d.hookRegistry)return{reasoningBank:d.reasoningBank,hookRegistry:d.hookRegistry};if(d.initializationPromise=re(),await d.initializationPromise,d.initializationPromise=null,!d.reasoningBank||!d.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:d.reasoningBank,hookRegistry:d.hookRegistry}}async function re(){if(!d.initialized)try{let r=E(),e=V.join(r,".agentic-qe"),t=await T(e);try{d.coherenceService=await U(Q),console.log(A.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log(A.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}d.reasoningBank=j(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},d.coherenceService??void 0);let o=1e4,n=d.reasoningBank.initialize(),s=new Promise((a,c)=>setTimeout(()=>c(new Error("ReasoningBank init timeout")),o));await Promise.race([n,s]);try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-
|
|
47
|
+
`).run(i.domain,i.agent)}catch{}return c}var d={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function g(){if(d.initializationPromise&&await d.initializationPromise,d.initialized&&d.reasoningBank&&d.hookRegistry)return{reasoningBank:d.reasoningBank,hookRegistry:d.hookRegistry};if(d.initializationPromise=re(),await d.initializationPromise,d.initializationPromise=null,!d.reasoningBank||!d.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:d.reasoningBank,hookRegistry:d.hookRegistry}}async function re(){if(!d.initialized)try{let r=E(),e=V.join(r,".agentic-qe"),t=await T(e);try{d.coherenceService=await U(Q),console.log(A.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log(A.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}d.reasoningBank=j(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},d.coherenceService??void 0);let o=1e4,n=d.reasoningBank.initialize(),s=new Promise((a,c)=>setTimeout(()=>c(new Error("ReasoningBank init timeout")),o));await Promise.race([n,s]);try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-UGXTS2XI.js"),c=await a();c&&d.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}d.hookRegistry=F(d.reasoningBank),d.initialized=!0,console.log(A.dim("[hooks] System initialized"))}catch(r){console.warn(A.yellow(`[hooks] Using fallback mode: ${r instanceof Error?r.message:"unknown error"}`));let e=ie();d.reasoningBank=j(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),d.hookRegistry=new z,d.hookRegistry.initialize(d.reasoningBank),d.initialized=!0}}async function T(r){let t=new L({sqlite:{path:V.join(r,"memory.db"),walMode:!0,poolSize:3,busyTimeout:5e3},enableFallback:!0,defaultNamespace:"qe-patterns"}),o=t.initialize(),n=new Promise((s,a)=>setTimeout(()=>a(new Error("Backend init timeout")),5e3));return await Promise.race([o,n]),t}function ie(){let r=new Map;return{initialize:async()=>{},dispose:async()=>{r.clear()},get:async e=>{let t=r.get(e);return t?t.value:void 0},set:async(e,t,o)=>{r.set(e,{value:t})},delete:async e=>r.delete(e),has:async e=>r.has(e),search:async(e,t)=>{let o=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),n=new RegExp(o.replace(/\*/g,".*"));return Array.from(r.keys()).filter(s=>n.test(s))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,o)=>{},count:async e=>{let t=0,o=`${e}:`;for(let n of r.keys())n.startsWith(o)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of r.keys())if(t.startsWith(e))return!0;return!1}}}function m(r){console.log(JSON.stringify(r,null,2))}function b(r){console.log(A.green("\u2713"),r)}function y(r){console.error(A.red("\u2717"),r)}function C(r){if(r.length===0){console.log(A.dim(" No specific guidance"));return}r.forEach((e,t)=>{console.log(A.cyan(` ${t+1}.`),e)})}import _ from"chalk";import ae from"node:path";O();function Z(r){r.command("pre-edit").description("Get context and guidance before editing a file").requiredOption("-f, --file <path>","File path to edit").option("-o, --operation <type>","Operation type: create, update, delete, refactor","update").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await g(),n=(await t.emit(S.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let s=n.guidance||[],c=[n.routing?.recommendedAgent?`Recommended agent: ${n.routing.recommendedAgent} (${(n.routing.confidence*100).toFixed(0)}% confidence).`:"",...s.map(i=>i)].filter(Boolean).join(" ");m({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:n.routing?.patterns?.length||0})}else console.log(_.bold(`
|
|
48
48
|
\u{1F4DD} Pre-Edit Analysis`)),console.log(_.dim(` File: ${e.file}`)),console.log(_.dim(` Operation: ${e.operation}`)),n.routing&&(console.log(_.bold(`
|
|
49
49
|
\u{1F3AF} Recommended Agent:`),_.cyan(n.routing.recommendedAgent)),console.log(_.dim(` Confidence: ${(n.routing.confidence*100).toFixed(1)}%`))),console.log(_.bold(`
|
|
50
50
|
\u{1F4A1} Guidance:`)),C(n.guidance||[]);return}catch(t){throw y(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),r.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await g(),o=e.success||!e.failure,n=e.file||"",s=n.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(s)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${s}`,u=(await t.emit(S.PostTestGeneration,{targetFile:e.file,success:o,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:p}=await g();await p.recordOutcome({patternId:i,success:o,metrics:{executionTimeMs:0},feedback:`Edit ${o?"succeeded":"failed"}: ${n}`})}catch{}try{await P({task:`edit: ${n}`,agent:"cli-hook",domain:c,success:o,source:"cli-hook-post-edit"})}catch{}let k=!1;try{let p=E(),f=ae.join(p,".agentic-qe"),R=await T(f);await D(R)}catch{}e.json?m({success:!0,file:e.file,editSuccess:o,patternsLearned:u.patternsLearned||0,dreamTriggered:k}):(b(`Recorded edit outcome for ${e.file}`),u.patternsLearned&&console.log(_.green(` Patterns learned: ${u.patternsLearned}`)));return}catch(t){throw y(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}O();import{randomUUID as ce}from"crypto";import w from"chalk";import de from"node:path";function K(r){r.command("route").description("Route a task to the optimal QE agent").requiredOption("-t, --task <description>","Task description").option("-d, --domain <domain>","Target QE domain hint").option("-c, --capabilities <caps...>","Required capabilities").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await g(),o={task:e.task,domain:e.domain,capabilities:e.capabilities},n=await t.routeTask(o);if(!n.success)throw new Error(n.error.message);let s=n.value;e.json?m({recommendedAgent:s.recommendedAgent,confidence:s.confidence,alternatives:s.alternatives,domains:s.domains,patternCount:s.patterns.length,guidance:s.guidance,reasoning:s.reasoning}):(console.log(w.bold(`
|
|
@@ -53,7 +53,7 @@ import{a as S,b as z,c as F}from"./chunk-KULWZMVC.js";import{a as U,b as Q}from"
|
|
|
53
53
|
\u{1F504} Alternatives:`)),s.alternatives.forEach(a=>{console.log(w.dim(` - ${a.agent}: ${(a.score*100).toFixed(1)}%`))})),console.log(w.bold(`
|
|
54
54
|
\u{1F4C2} Detected Domains:`),s.domains.join(", ")),console.log(w.bold(`
|
|
55
55
|
\u{1F4A1} Guidance:`)),C(s.guidance),console.log(w.bold(`
|
|
56
|
-
\u{1F4D6} Reasoning:`),w.dim(s.reasoning)));try{let{getUnifiedMemory:a}=await import("./unified-memory-
|
|
56
|
+
\u{1F4D6} Reasoning:`),w.dim(s.reasoning)));try{let{getUnifiedMemory:a}=await import("./unified-memory-NHJHPLIC.js"),c=a();c.isInitialized()||await c.initialize();let i=c.getDatabase(),h=`route-${Date.now()}-${ce().slice(0,8)}`;i.prepare(`
|
|
57
57
|
INSERT OR REPLACE INTO routing_outcomes (
|
|
58
58
|
id, task_json, decision_json, used_agent,
|
|
59
59
|
followed_recommendation, success, quality_score,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{a as b,b as B,c as P,d as O,e as F}from"./chunk-VWEGO7BY.js";import{b as k,c as x,d as _,e as w}from"./chunk-ZN7KPIJW.js";import{a as h,b as z}from"./chunk-ZXJNX5D2.js";import{a as M}from"./chunk-VHSDZEYF.js";import{b as S,c as U}from"./chunk-3AOWTHLS.js";import{f as I}from"./chunk-IQGVQBVS.js";import"./chunk-ERGY45RL.js";var m={heavyweight:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!0,requiresJsonMode:!0,minContextSize:1e5,costSensitivity:"low",latencySensitivity:"low"},standard:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:5e4,costSensitivity:"medium",latencySensitivity:"medium"},lightweight:{requiresReasoning:!1,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:16e3,costSensitivity:"medium",latencySensitivity:"high"},minimal:{requiresReasoning:!1,requiresTools:!1,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!1,minContextSize:4e3,costSensitivity:"high",latencySensitivity:"medium"}},$={security:m.heavyweight,"test-generation":m.standard,"code-analysis":m.standard,learning:m.standard,performance:{...m.lightweight,costSensitivity:"high"},coordination:m.lightweight,general:{...m.lightweight,requiresJsonMode:!1,latencySensitivity:"medium"},documentation:{...m.minimal,minContextSize:16e3},simple:m.minimal};var v=class{rules=[];constructor(e=[]){this.setRules(e)}setRules(e){this.rules=[...e].filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}getRules(){return[...this.rules]}addRule(e){this.rules.push(e),this.rules=this.rules.filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}removeRule(e){let t=this.rules.findIndex(r=>r.id===e);return t>=0?(this.rules.splice(t,1),!0):!1}setRuleEnabled(e,t){let r=this.rules.find(i=>i.id===e);return r?(r.enabled=t,this.rules=this.rules.filter(i=>i.enabled).sort((i,o)=>o.priority-i.priority),!0):!1}evaluate(e){let t=0;for(let r of this.rules)if(t++,this.matchesCondition(e,r.condition))return{rule:r,rulesEvaluated:t};return null}evaluateAll(e){return this.rules.filter(t=>this.matchesCondition(e,t.condition))}matchesCondition(e,t){if(t.agentType!==void 0&&(!e.agentType||!t.agentType.includes(e.agentType))||t.requiresTools!==void 0&&!!e.requiresTools!==t.requiresTools)return!1;if(t.complexity!==void 0){let r=Array.isArray(t.complexity)?t.complexity:[t.complexity];if(!e.complexity||!r.includes(e.complexity))return!1}if(t.localOnly!==void 0&&t.localOnly){let r=["ollama","onnx"];if(e.preferredProvider&&!r.includes(e.preferredProvider))return!1}if(t.requiresReasoning!==void 0&&t.requiresReasoning&&e.complexity==="low")return!1;if(t.tokenRange!==void 0){let r=this.estimateTokens(e);if(t.tokenRange.min!==void 0&&r<t.tokenRange.min||t.tokenRange.max!==void 0&&r>t.tokenRange.max)return!1}return!(t.requiredCapabilities!==void 0&&t.requiredCapabilities.length>0&&(!e.requiredCapabilities||e.requiredCapabilities.length===0||!t.requiredCapabilities.every(i=>e.requiredCapabilities.includes(i)))||t.custom!==void 0&&!t.custom(e))}estimateTokens(e){let t=0;e.systemPrompt&&(t+=Math.ceil(e.systemPrompt.length/4));for(let r of e.messages)t+=Math.ceil(r.content.length/4);return t}},A=[{id:"security-agents-opus",name:"Security Agents to Claude Opus",description:"Route security-critical agents to Claude Opus for best security analysis",condition:{agentType:["security-auditor","security-architect","v3-qe-security-scanner"]},action:{provider:"claude",model:"claude-opus-4-7",temperature:.1},enabled:!0,priority:100},{id:"test-gen-with-tools",name:"Test Generation with Tools",description:"Route test generation requests that need tools to Claude Sonnet",condition:{agentType:["v3-qe-test-generator","tester"],requiresTools:!0},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:95},{id:"high-complexity-reasoning",name:"High Complexity Reasoning",description:"Route high complexity tasks requiring reasoning to advanced models",condition:{complexity:"high",requiresReasoning:!0},action:{provider:"claude",model:"claude-opus-4-7",temperature:.2},enabled:!0,priority:90},{id:"code-analysis-agents",name:"Code Analysis Agents",description:"Route code analysis to Claude Sonnet for balanced performance",condition:{agentType:["code-analyzer","v3-qe-code-intelligence","reviewer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.2},enabled:!0,priority:85},{id:"coverage-analysis",name:"Coverage Analysis Agents",description:"Route coverage analysis to efficient models",condition:{agentType:["v3-qe-coverage-analyzer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.1},enabled:!0,priority:80},{id:"defect-prediction",name:"Defect Prediction Agents",description:"Route defect prediction to capable models",condition:{agentType:["v3-qe-defect-predictor"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:75},{id:"medium-complexity",name:"Medium Complexity Tasks",description:"Route medium complexity to balanced Claude Sonnet",condition:{complexity:"medium"},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:60},{id:"low-complexity-haiku",name:"Low Complexity to Haiku",description:"Route low complexity tasks to Haiku for cost efficiency",condition:{complexity:"low"},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:50},{id:"local-only-ollama",name:"Local Only Requests",description:"Route local-only requests to Ollama",condition:{localOnly:!0},action:{provider:"ollama",model:"llama3.1",temperature:.3},enabled:!0,priority:40},{id:"small-requests-haiku",name:"Small Token Requests",description:"Route small requests to Haiku for efficiency",condition:{tokenRange:{max:500}},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:30}];import{randomUUID as H}from"crypto";var f=class{decisions=[];providerCalls=[];fallbacks=[];cacheHits=0;cacheMisses=0;startTime=new Date;maxRecords;maxCallRecords;constructor(e={}){this.maxRecords=e.maxRecords??1e4,this.maxCallRecords=e.maxCallRecords??5e3}recordRoutingDecision(e,t,r={}){let i={id:`rd-${Date.now()}-${H().slice(0,8)}`,timestamp:new Date,provider:e.providerType,model:e.model,mode:this.inferMode(e.reason),reason:e.reason,latencyMs:t,decisionTimeMs:e.metadata.decisionTimeMs,agentType:r.agentType,success:r.success??!0,tokenUsage:r.tokenUsage,cost:r.cost,wasFallback:e.reason==="fallback",ruleId:e.matchedRule?.id};this.decisions.push(i),this.trimRecords()}recordProviderCall(e,t,r,i,o={}){let n=o.inputTokens??Math.floor(i*.7),a=o.outputTokens??i-n,c={timestamp:new Date,provider:e,model:t,latencyMs:r,inputTokens:n,outputTokens:a,totalTokens:i,success:o.success??!0,cost:o.cost,agentType:o.agentType};this.providerCalls.push(c),this.trimCallRecords()}recordFallback(e,t,r,i){let o={timestamp:new Date,fromProvider:e,toProvider:t,reason:r,agentType:i};this.fallbacks.push(o),this.fallbacks.length>1e3&&(this.fallbacks=this.fallbacks.slice(-1e3))}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(e="all"){let t=this.getWindowStart(e),r=this.filterByTime(this.decisions,t),i=this.filterByTime(this.providerCalls,t),o=this.filterByTime(this.fallbacks,t),n=this.calculateProviderMetrics(r,i),a=this.calculateAgentMetrics(r,i),c=r.map(u=>u.decisionTimeMs),s=r.length,l=this.countByMode(r),d=r.filter(u=>u.wasFallback).length,g=r.filter(u=>u.ruleId).length;return{byProvider:Object.fromEntries(n),byAgentType:a,totalDecisions:s,decisionsByMode:l,avgDecisionTimeMs:this.average(c),p95DecisionTimeMs:this.percentile(c,95),p99DecisionTimeMs:this.percentile(c,99),fallbackRate:s>0?d/s:0,ruleMatchRate:s>0?g/s:0,estimatedCostSavings:this.calculateCostSavings(r),ruleStats:{totalEvaluated:r.reduce((u,y)=>u+1,0),matched:g,avgRulesPerDecision:1},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:t,end:new Date},recentDecisions:r.slice(-50),fallbackStats:this.calculateFallbackStats(o)}}getMetricsByProvider(e){let t=this.decisions.filter(c=>c.provider===e),r=this.providerCalls.filter(c=>c.provider===e),i=r.map(c=>c.latencyMs),o=t.map(c=>c.decisionTimeMs),n=r.filter(c=>c.success),a=r.filter(c=>!c.success);return{provider:e,selectionCount:t.length,ruleMatchCount:t.filter(c=>c.ruleId).length,fallbackCount:t.filter(c=>c.wasFallback).length,avgDecisionTimeMs:this.average(o),successRate:r.length>0?n.length/r.length:1,avgLatencyMs:this.average(i),p95LatencyMs:this.percentile(i,95),p99LatencyMs:this.percentile(i,99),totalCost:r.reduce((c,s)=>c+(s.cost??0),0),totalTokens:r.reduce((c,s)=>c+s.totalTokens,0),totalInputTokens:r.reduce((c,s)=>c+s.inputTokens,0),totalOutputTokens:r.reduce((c,s)=>c+s.outputTokens,0),circuitState:"closed",latencyHistogram:i.slice(-100),decisionTimeHistogram:o.slice(-100),errorCount:a.length,lastError:a.length>0?a[a.length-1].timestamp:void 0,recentCalls:r.slice(-20)}}getMetricsByAgentType(e){let t=this.decisions.filter(s=>s.agentType===e),r=this.providerCalls.filter(s=>s.agentType===e),i=new Map,o=new Map;for(let s of t)i.set(s.provider,(i.get(s.provider)??0)+1),o.set(s.model,(o.get(s.model)??0)+1);let n=r.map(s=>s.latencyMs),a=t.filter(s=>s.wasFallback).length,c=t.filter(s=>s.success).length;return{agentType:e,totalDecisions:t.length,providerDistribution:i,modelDistribution:o,avgLatencyMs:this.average(n),totalCost:r.reduce((s,l)=>s+(l.cost??0),0),totalTokens:r.reduce((s,l)=>s+l.totalTokens,0),fallbackRate:t.length>0?a/t.length:0,successRate:t.length>0?c/t.length:1}}getAuditLog(e={}){let t=this.decisions;e.since&&(t=t.filter(i=>i.timestamp>=e.since)),e.provider&&(t=t.filter(i=>i.provider===e.provider)),e.agentType&&(t=t.filter(i=>i.agentType===e.agentType));let r=e.limit??100;return t.slice(-r).map(i=>({id:i.id,timestamp:i.timestamp,context:{agentType:i.agentType},decision:{providerType:i.provider,model:i.model,providerModelId:i.model,reason:i.reason,confidence:1,metadata:{decisionTimeMs:i.decisionTimeMs,timestamp:i.timestamp}},outcome:{success:i.success,latencyMs:i.latencyMs,tokenUsage:i.tokenUsage,cost:i.cost}}))}resetMetrics(){this.decisions=[],this.providerCalls=[],this.fallbacks=[],this.cacheHits=0,this.cacheMisses=0,this.startTime=new Date}inferMode(e){switch(e){case"manual":return"manual";case"rule-match":return"rule-based";case"cost-optimization":return"cost-optimized";case"performance-optimization":return"performance-optimized";default:return"rule-based"}}trimRecords(){this.decisions.length>this.maxRecords&&(this.decisions=this.decisions.slice(-this.maxRecords))}trimCallRecords(){this.providerCalls.length>this.maxCallRecords&&(this.providerCalls=this.providerCalls.slice(-this.maxCallRecords))}getWindowStart(e){let t=new Date;switch(e){case"1m":return new Date(t.getTime()-60*1e3);case"5m":return new Date(t.getTime()-300*1e3);case"15m":return new Date(t.getTime()-900*1e3);case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);default:return this.startTime}}filterByTime(e,t){return e.filter(r=>r.timestamp>=t)}calculateProviderMetrics(e,t){let r=new Map;for(let i of h){let o=e.filter(l=>l.provider===i),n=t.filter(l=>l.provider===i);if(o.length===0&&n.length===0)continue;let a=n.map(l=>l.latencyMs),c=o.map(l=>l.decisionTimeMs),s=n.filter(l=>l.success);r.set(i,{provider:i,selectionCount:o.length,ruleMatchCount:o.filter(l=>l.ruleId).length,fallbackCount:o.filter(l=>l.wasFallback).length,avgDecisionTimeMs:this.average(c),successRate:n.length>0?s.length/n.length:1,avgLatencyMs:this.average(a),p95LatencyMs:this.percentile(a,95),p99LatencyMs:this.percentile(a,99),totalCost:n.reduce((l,d)=>l+(d.cost??0),0),totalTokens:n.reduce((l,d)=>l+d.totalTokens,0),circuitState:"closed"})}return r}calculateAgentMetrics(e,t){let r=new Set;e.forEach(o=>o.agentType&&r.add(o.agentType)),t.forEach(o=>o.agentType&&r.add(o.agentType));let i=new Map;for(let o of r)i.set(o,this.getMetricsByAgentType(o));return i}countByMode(e){let t={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};for(let r of e)t[r.mode]++;return t}calculateFallbackStats(e){let t=new Map,r=new Map;for(let i of e)t.set(i.fromProvider,(t.get(i.fromProvider)??0)+1),r.set(i.reason,(r.get(i.reason)??0)+1);return{total:e.length,byProvider:t,byReason:r}}calculateCostSavings(e){return e.reduce((t,r)=>r.cost&&r.mode==="cost-optimized"?t+r.cost.totalCost*.2:t,0)}average(e){return e.length===0?0:e.reduce((t,r)=>t+r,0)/e.length}percentile(e,t){if(e.length===0)return 0;let r=[...e].sort((o,n)=>o-n),i=Math.ceil(t/100*r.length)-1;return r[Math.max(0,i)]}};function D(p){return new f(p)}var C=class{records=[];alerts=[];maxRecords;alertCheckInterval;constructor(e={}){this.maxRecords=e.maxRecords??1e4}recordCost(e,t,r,i,o={}){let n=this.calculateCost(t,r,i),a={timestamp:new Date,provider:e,model:t,inputTokens:r,outputTokens:i,inputCost:n.inputCost,outputCost:n.outputCost,totalCost:n.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(a),this.trimRecords(),this.checkAlerts(),a}recordCostFromInfo(e,t,r,i,o={}){let n={timestamp:new Date,provider:e,model:t,inputTokens:r.promptTokens,outputTokens:r.completionTokens,inputCost:i.inputCost,outputCost:i.outputCost,totalCost:i.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(n),this.trimRecords(),this.checkAlerts(),n}getCostByProvider(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Map;for(let o of h){let n=r.filter(s=>s.provider===o);if(n.length===0)continue;let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);i.set(o,{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return i}getCostByAgentType(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(a=>a.agentType&&i.add(a.agentType));let o=new Map;for(let a of i){let c=r.filter(d=>d.agentType===a),s=c.reduce((d,g)=>d+g.totalCost,0),l=c.reduce((d,g)=>d+g.inputTokens+g.outputTokens,0);o.set(a,{totalCost:s,totalTokens:l,totalRequests:c.length,avgCostPerRequest:c.length>0?s/c.length:0,avgCostPerToken:l>0?s/l:0})}let n=r.filter(a=>!a.agentType);if(n.length>0){let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);o.set("unknown",{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return o}getCostByModel(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(n=>i.add(n.model));let o=new Map;for(let n of i){let a=r.filter(l=>l.model===n),c=a.reduce((l,d)=>l+d.totalCost,0),s=a.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0);o.set(n,{totalCost:c,totalTokens:s,totalRequests:a.length,avgCostPerRequest:a.length>0?c/a.length:0,avgCostPerToken:s>0?c/s:0})}return o}getTotalCost(e="all"){let t=this.getPeriodStart(e);return this.filterByTime(t).reduce((i,o)=>i+o.totalCost,0)}getCostTrend(e){let t=new Date,r=[],i,o;switch(e){case"1h":i=300*1e3,o=12;break;case"24h":i=3600*1e3,o=24;break;case"7d":i=1440*60*1e3,o=7;break}for(let n=o-1;n>=0;n--){let a=new Date(t.getTime()-n*i),c=new Date(a.getTime()-i),s=this.records.filter(l=>l.timestamp>=c&&l.timestamp<a);r.push({timestamp:a,cost:s.reduce((l,d)=>l+d.totalCost,0),tokens:s.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0),requests:s.length})}return r}addBudgetAlert(e,t,r){let i={threshold:e,period:t,callback:r,active:!0};return this.alerts.push(i),this.alertCheckInterval||(this.alertCheckInterval=setInterval(()=>this.checkAlerts(),6e4)),`alert-${this.alerts.length-1}`}removeBudgetAlert(e){return e>=0&&e<this.alerts.length?(this.alerts.splice(e,1),this.alerts.length===0&&this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0),!0):!1}getOptimizationSuggestions(){let e=[],t=this.getCostByModel("24h");for(let[n,a]of t)M[n]&&a.totalCost>1&&(n.includes("opus")&&e.push({type:"model-switch",description:"Consider using Sonnet instead of Opus for non-critical tasks",estimatedSavings:a.totalCost*.5,currentCost:a.totalCost,suggestedModel:"claude-sonnet-4-6"}),n==="gpt-4o"&&e.push({type:"model-switch",description:"Consider using GPT-4o-mini for simpler tasks",estimatedSavings:a.totalCost*.7,currentCost:a.totalCost,suggestedModel:"gpt-4o-mini"}));let r=this.getCostByProvider("24h"),i=[...r.values()].reduce((n,a)=>n+a.totalCost,0);return i>10&&!r.has("ollama")&&e.push({type:"provider-switch",description:"Consider using Ollama for development/testing workloads",estimatedSavings:i*.3,currentCost:i,suggestedProvider:"ollama"}),[...t.values()].reduce((n,a)=>n+a.totalRequests,0)>100&&e.push({type:"caching",description:"Enable response caching to reduce redundant API calls",estimatedSavings:i*.15,currentCost:i}),e}getRecords(){return[...this.records]}clear(){this.records=[]}reset(){this.records=[],this.alerts=[],this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}dispose(){this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}calculateCost(e,t,r){let i=M[e];if(!i)return{inputCost:0,outputCost:0,totalCost:0,currency:"USD"};let o=t/1e6*i.input,n=r/1e6*i.output;return{inputCost:o,outputCost:n,totalCost:o+n,currency:"USD"}}trimRecords(){this.records.length>this.maxRecords&&(this.records=this.records.slice(-this.maxRecords))}getPeriodStart(e){let t=new Date;switch(e){case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);case"30d":return new Date(t.getTime()-720*60*60*1e3);default:return new Date(0)}}filterByTime(e){return this.records.filter(t=>t.timestamp>=e)}checkAlerts(){for(let e of this.alerts){if(!e.active)continue;let t=this.getTotalCost(e.period);if(t>=e.threshold){e.active=!1;let r=this.getPeriodStart(e.period),i=this.filterByTime(r),o=i.reduce((n,a)=>n+a.inputTokens+a.outputTokens,0);try{e.callback({totalCost:t,totalTokens:o,totalRequests:i.length,avgCostPerRequest:i.length>0?t/i.length:0,avgCostPerToken:o>0?t/o:0})}catch(n){console.error("Budget alert callback error:",n)}}}}};function E(p){return new C(p)}U();var R=class{cache=new Map;maxSize;ttlMs;constructor(e=100,t=6e4){this.maxSize=e,this.ttlMs=t}get(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.decision:null}set(e,t){if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r)}this.cache.set(e,{decision:t,expiresAt:Date.now()+this.ttlMs})}clear(){this.cache.clear()}getStats(){return{hits:0,misses:0,size:this.cache.size}}},T=class{config;providerManager;ruleEngine;decisionCache;metrics;routerMetrics;costMetrics;initialized=!1;constructor(e,t){this.providerManager=e,this.config={...z,...t};let r=this.config.rules.length>0?this.config.rules:A;this.ruleEngine=new v(r),this.decisionCache=new R(100,this.config.decisionCacheTtlMs),this.metrics=new q,this.routerMetrics=D(),this.costMetrics=E()}async initialize(){this.initialized||(await this.providerManager.initialize(),this.initialized=!0)}getMode(){return this.config.mode}setMode(e){this.config.mode=e,this.decisionCache.clear()}getConfig(){return{...this.config}}updateConfig(e){this.config={...this.config,...e},e.rules&&this.ruleEngine.setRules(e.rules),e.decisionCacheTtlMs&&(this.decisionCache=new R(100,e.decisionCacheTtlMs))}async selectProvider(e){await this.ensureInitialized();let t=Date.now();if(this.config.cacheDecisions){let i=this.generateCacheKey(e),o=this.decisionCache.get(i);if(o)return this.metrics.recordCacheHit(),this.routerMetrics.recordCacheHit(),o;this.metrics.recordCacheMiss(),this.routerMetrics.recordCacheMiss()}let r;switch(this.config.mode){case"manual":r=await this.selectManual(e);break;case"rule-based":r=await this.selectRuleBased(e);break;case"cost-optimized":r=await this.selectCostOptimized(e);break;case"performance-optimized":r=await this.selectPerformanceOptimized(e);break;default:r=await this.selectRuleBased(e)}if(r.metadata.decisionTimeMs=Date.now()-t,this.config.cacheDecisions){let i=this.generateCacheKey(e);this.decisionCache.set(i,r)}return this.metrics.recordDecision(r,this.config.mode),r}async chat(e){await this.ensureInitialized();let t=I(),r=await this.selectProvider(e),i=e.agentType??"";if(_(i)&&(x(r.model)||x(r.providerModelId))){let n=r.model,a=r.providerModelId;r.model=w(i,r.model,k),r.providerModelId=w(i,r.providerModelId,k),console.warn(`[aqe] ADR-093: ${i} pinned to ${r.model} (was ${n}/${a}); set AQE_CYBER_VERIFIED=true after Cyber Verification Program approval`)}return await this.executeWithFallback(e,r,t)}async*stream(e){await this.ensureInitialized();let t=await this.selectProvider(e),r=await this.chat(e),i=100;for(let o=0;o<r.content.length;o+=i){let n=o+i>=r.content.length;yield{type:n?"done":"content",delta:r.content.slice(o,o+i),accumulated:r.content.slice(0,o+i),done:n,tokenCount:Math.ceil((o+i)/4),model:r.model,provider:t.providerType,usage:n?r.usage:void 0}}}getMetrics(){return this.metrics.getMetrics()}getEnhancedMetrics(e){return this.routerMetrics.getMetrics(e)}getProviderMetrics(e){return this.routerMetrics.getMetricsByProvider(e)}getAgentMetrics(e){return this.routerMetrics.getMetricsByAgentType(e)}getCostByProvider(e){return this.costMetrics.getCostByProvider(e)}getCostByAgentType(e){return this.costMetrics.getCostByAgentType(e)}getCostByModel(e){return this.costMetrics.getCostByModel(e)}getTotalCost(e){return this.costMetrics.getTotalCost(e)}getCostTrend(e){return this.costMetrics.getCostTrend(e)}getAuditLog(e){return this.routerMetrics.getAuditLog(e)}getOptimizationSuggestions(){return this.costMetrics.getOptimizationSuggestions()}resetMetrics(){this.metrics.reset(),this.routerMetrics.resetMetrics(),this.costMetrics.reset()}clearCache(){this.decisionCache.clear()}async selectManual(e){let t=e.preferredProvider??this.config.defaultProvider,r=e.model??this.config.defaultModel,i=this.providerManager.getProvider(t);return i?this.createDecision(i,t,r,"manual"):this.createFallbackDecision(e,"manual")}async selectRuleBased(e){let t=this.ruleEngine.evaluate(e);if(t){let{rule:o,rulesEvaluated:n}=t,a=o.action.provider,c=this.providerManager.getProvider(a);if(c){let s=this.createDecision(c,a,o.action.model,"rule-match",o);return s.metadata.rulesEvaluated=n,s}}let r=this.config.defaultProvider,i=this.providerManager.getProvider(r);return i?this.createDecision(i,r,this.config.defaultModel,"default"):this.createFallbackDecision(e,"rule-based")}async selectCostOptimized(e){let t=this.providerManager.getAvailableProviders();if(t.length===0)return this.createFallbackDecision(e,"cost-optimized");let r=1/0,i=t[0],o,n=[];for(let a of t){let c=this.providerManager.getProvider(a);if(!c)continue;let{input:s,output:l}=c.getCostPerToken(),d=this.estimateCostValue(e,s,l);n.push({provider:a,model:c.getConfig().model,reason:`Estimated cost: $${d.toFixed(6)}`,estimatedCost:d,excluded:!1}),d<r&&(r=d,i=a,o=c)}if(o){let a=o.getConfig(),c=this.createDecision(o,i,a.model,"cost-optimization");return c.metadata.estimatedCost=this.createCostEstimate(e,o),c.metadata.alternativesConsidered=n,c}return this.createFallbackDecision(e,"cost-optimized")}async selectPerformanceOptimized(e){let t=this.providerManager.getAvailableProviders(),r=this.providerManager.getMetrics();if(t.length===0)return this.createFallbackDecision(e,"performance-optimized");let i=1/0,o=t[0],n,a=[];for(let c of t){let s=this.providerManager.getProvider(c);if(!s)continue;let d=r[c]?.avgLatencyMs??1/0;a.push({provider:c,model:s.getConfig().model,reason:`Avg latency: ${d}ms`,estimatedLatencyMs:d,excluded:!1}),d<i&&(i=d,o=c,n=s)}if(n){let c=n.getConfig(),s=this.createDecision(n,o,c.model,"performance-optimization");return s.metadata.estimatedLatencyMs=i,s.metadata.alternativesConsidered=a,s}return this.createFallbackDecision(e,"performance-optimized")}async executeWithFallback(e,t,r){let{fallbackChain:i,fallbackBehavior:o}=this.config,n,a=0,c=[{provider:t.providerType,model:t.providerModelId}];for(let s of i.entries)if(!(!s.enabled||s.provider===t.providerType||!["claude","openai","ollama"].includes(s.provider)))for(let d of s.models)c.push({provider:s.provider,model:d});for(let{provider:s,model:l}of c){if(a>=o.maxAttempts)break;let d=this.providerManager.getProvider(s);if(!d)continue;a++;let g=Date.now();try{let u=await d.generate(e.messages,{model:l,temperature:e.temperature,maxTokens:e.maxTokens,systemPrompt:e.systemPrompt,timeoutMs:e.timeoutMs,skipCache:e.skipCache,metadata:e.metadata}),y=Date.now()-g;return this.metrics.recordSuccess(s),this.routerMetrics.recordRoutingDecision(t,y,{agentType:e.agentType,success:!0,tokenUsage:u.usage,cost:u.cost}),this.routerMetrics.recordProviderCall(s,l,y,u.usage.totalTokens,{inputTokens:u.usage.promptTokens,outputTokens:u.usage.completionTokens,success:!0,cost:u.cost.totalCost,agentType:e.agentType}),this.costMetrics.recordCostFromInfo(s,l,u.usage,u.cost,{agentType:e.agentType,requestId:u.requestId}),{content:u.content,model:u.model,providerModelId:u.model,provider:u.provider,usage:u.usage,cost:u.cost,latencyMs:u.latencyMs,finishReason:u.finishReason,cached:u.cached,requestId:u.requestId,routingDecision:t}}catch(u){n=S(u);let y=Date.now()-g;if(this.metrics.recordFailure(s),this.routerMetrics.recordProviderCall(s,l,y,0,{success:!1,agentType:e.agentType}),a<c.length){let L=c[a];L&&this.routerMetrics.recordFallback(s,L.provider,n.message,e.agentType)}if(B(u)&&!u.retryable)throw u;a<o.maxAttempts&&await this.delay(o.delayMs)}}throw b(`All providers failed after ${a} attempts: ${n?.message??"Unknown error"}`,"PROVIDER_UNAVAILABLE",{retryable:!1,cause:n})}createDecision(e,t,r,i,o){let{canonicalModel:n,providerModelId:a}=this.resolveModelIds(r,t);return{provider:e,providerType:t,model:n,providerModelId:a,reason:i,matchedRule:o,confidence:i==="rule-match"?.95:.8,metadata:{decisionTimeMs:0,timestamp:new Date}}}resolveModelIds(e,t){let i={claude:"anthropic",openai:"openai",ollama:"ollama",openrouter:"openrouter",gemini:"gemini","azure-openai":"azure",bedrock:"bedrock"}[t];if(!i)return{canonicalModel:e,providerModelId:e};try{let o=O(e),n=P(o,i);return{canonicalModel:o,providerModelId:n}}catch{try{if(F(e)){let n=P(e,i);return{canonicalModel:e,providerModelId:n}}}catch{}return{canonicalModel:e,providerModelId:e}}}createFallbackDecision(e,t){for(let i of this.config.fallbackChain.entries){if(!i.enabled||!["claude","openai","ollama"].includes(i.provider))continue;let n=this.providerManager.getProvider(i.provider);if(n)return this.createDecision(n,i.provider,i.models[0],"fallback")}let r=this.providerManager.getAvailableProviders();if(r.length>0){let i=r[0],o=this.providerManager.getProvider(i);return this.createDecision(o,i,o.getConfig().model,"fallback")}throw b(`No providers available for ${t} selection`,"PROVIDER_UNAVAILABLE",{retryable:!1})}generateCacheKey(e){return[this.config.mode,e.agentType??"default",e.complexity??"medium",e.requiresTools?"tools":"no-tools",e.preferredProvider??"any"].join(":")}estimateCostValue(e,t,r){let i=0;e.systemPrompt&&(i+=Math.ceil(e.systemPrompt.length/4));for(let n of e.messages)i+=Math.ceil(n.content.length/4);let o=e.maxTokens??1e3;return i*t+o*r}createCostEstimate(e,t){let{input:r,output:i}=t.getCostPerToken(),o=0;e.systemPrompt&&(o+=Math.ceil(e.systemPrompt.length/4));for(let c of e.messages)o+=Math.ceil(c.content.length/4);let n=e.maxTokens??1e3,a=o*r+n*i;return{inputTokens:o,outputTokens:n,totalCostUsd:a,inputCostPer1M:r*1e6,outputCostPer1M:i*1e6}}delay(e){return new Promise(t=>setTimeout(t,e))}async ensureInitialized(){this.initialized||await this.initialize()}},q=class{decisions=new Map;decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};totalDecisions=0;cacheHits=0;cacheMisses=0;totalRulesEvaluated=0;rulesMatched=0;fallbackCount=0;startTime=new Date;recordDecision(e,t){this.totalDecisions++,this.decisionsByMode[t]++,e.metadata.rulesEvaluated&&(this.totalRulesEvaluated+=e.metadata.rulesEvaluated),e.matchedRule&&this.rulesMatched++,e.reason==="fallback"&&this.fallbackCount++;let r=this.decisions.get(e.providerType);r||(r=this.createEmptyMetrics(e.providerType),this.decisions.set(e.providerType,r)),r.selectionCount++,e.reason==="rule-match"&&r.ruleMatchCount++,e.reason==="fallback"&&r.fallbackCount++}recordSuccess(e){let t=this.decisions.get(e);if(t){let r=t.successRate*t.selectionCount;t.successRate=(r+1)/t.selectionCount}}recordFailure(e){}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(){let e={};for(let[r,i]of this.decisions)e[r]={...i};let t=this.totalDecisions>0?this.rulesMatched/this.totalDecisions:0;return{byProvider:e,totalDecisions:this.totalDecisions,decisionsByMode:{...this.decisionsByMode},avgDecisionTimeMs:0,p95DecisionTimeMs:0,p99DecisionTimeMs:0,fallbackRate:this.totalDecisions>0?this.fallbackCount/this.totalDecisions:0,ruleMatchRate:t,estimatedCostSavings:0,ruleStats:{totalEvaluated:this.totalRulesEvaluated,matched:this.rulesMatched,avgRulesPerDecision:this.totalDecisions>0?this.totalRulesEvaluated/this.totalDecisions:0},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:this.startTime,end:new Date}}}reset(){this.decisions.clear(),this.decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0},this.totalDecisions=0,this.cacheHits=0,this.cacheMisses=0,this.totalRulesEvaluated=0,this.rulesMatched=0,this.fallbackCount=0,this.startTime=new Date}createEmptyMetrics(e){return{provider:e,selectionCount:0,ruleMatchCount:0,fallbackCount:0,avgDecisionTimeMs:0,successRate:1,avgLatencyMs:0,p95LatencyMs:0,p99LatencyMs:0,totalCost:0,totalTokens:0,circuitState:"closed"}}};function Je(p,e){return new T(p,e)}function Qe(p){return new T(p,{mode:"rule-based",rules:A,defaultProvider:"claude",defaultModel:"claude-sonnet-4-6",enableMetrics:!0,cacheDecisions:!0})}export{T as HybridRouter,Je as createHybridRouter,Qe as createQERouter};
|
|
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.9.14");process.exit(0)}
|
|
2
|
+
import{a as b,b as B,c as P,d as O,e as F}from"./chunk-IH4OOAEP.js";import{b as k,c as x,d as _,e as w}from"./chunk-AHVUILGE.js";import{a as h,b as z}from"./chunk-P5YSBYZV.js";import{a as M}from"./chunk-LJ3WQIBN.js";import{b as S,c as U}from"./chunk-UIYK4Y7K.js";import{f as I}from"./chunk-G7L5Y47C.js";import"./chunk-DGUAAG3T.js";var m={heavyweight:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!0,requiresJsonMode:!0,minContextSize:1e5,costSensitivity:"low",latencySensitivity:"low"},standard:{requiresReasoning:!0,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:5e4,costSensitivity:"medium",latencySensitivity:"medium"},lightweight:{requiresReasoning:!1,requiresTools:!0,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!0,minContextSize:16e3,costSensitivity:"medium",latencySensitivity:"high"},minimal:{requiresReasoning:!1,requiresTools:!1,requiresVision:!1,requiresExtendedThinking:!1,requiresJsonMode:!1,minContextSize:4e3,costSensitivity:"high",latencySensitivity:"medium"}},$={security:m.heavyweight,"test-generation":m.standard,"code-analysis":m.standard,learning:m.standard,performance:{...m.lightweight,costSensitivity:"high"},coordination:m.lightweight,general:{...m.lightweight,requiresJsonMode:!1,latencySensitivity:"medium"},documentation:{...m.minimal,minContextSize:16e3},simple:m.minimal};var v=class{rules=[];constructor(e=[]){this.setRules(e)}setRules(e){this.rules=[...e].filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}getRules(){return[...this.rules]}addRule(e){this.rules.push(e),this.rules=this.rules.filter(t=>t.enabled).sort((t,r)=>r.priority-t.priority)}removeRule(e){let t=this.rules.findIndex(r=>r.id===e);return t>=0?(this.rules.splice(t,1),!0):!1}setRuleEnabled(e,t){let r=this.rules.find(i=>i.id===e);return r?(r.enabled=t,this.rules=this.rules.filter(i=>i.enabled).sort((i,o)=>o.priority-i.priority),!0):!1}evaluate(e){let t=0;for(let r of this.rules)if(t++,this.matchesCondition(e,r.condition))return{rule:r,rulesEvaluated:t};return null}evaluateAll(e){return this.rules.filter(t=>this.matchesCondition(e,t.condition))}matchesCondition(e,t){if(t.agentType!==void 0&&(!e.agentType||!t.agentType.includes(e.agentType))||t.requiresTools!==void 0&&!!e.requiresTools!==t.requiresTools)return!1;if(t.complexity!==void 0){let r=Array.isArray(t.complexity)?t.complexity:[t.complexity];if(!e.complexity||!r.includes(e.complexity))return!1}if(t.localOnly!==void 0&&t.localOnly){let r=["ollama","onnx"];if(e.preferredProvider&&!r.includes(e.preferredProvider))return!1}if(t.requiresReasoning!==void 0&&t.requiresReasoning&&e.complexity==="low")return!1;if(t.tokenRange!==void 0){let r=this.estimateTokens(e);if(t.tokenRange.min!==void 0&&r<t.tokenRange.min||t.tokenRange.max!==void 0&&r>t.tokenRange.max)return!1}return!(t.requiredCapabilities!==void 0&&t.requiredCapabilities.length>0&&(!e.requiredCapabilities||e.requiredCapabilities.length===0||!t.requiredCapabilities.every(i=>e.requiredCapabilities.includes(i)))||t.custom!==void 0&&!t.custom(e))}estimateTokens(e){let t=0;e.systemPrompt&&(t+=Math.ceil(e.systemPrompt.length/4));for(let r of e.messages)t+=Math.ceil(r.content.length/4);return t}},A=[{id:"security-agents-opus",name:"Security Agents to Claude Opus",description:"Route security-critical agents to Claude Opus for best security analysis",condition:{agentType:["security-auditor","security-architect","v3-qe-security-scanner"]},action:{provider:"claude",model:"claude-opus-4-7",temperature:.1},enabled:!0,priority:100},{id:"test-gen-with-tools",name:"Test Generation with Tools",description:"Route test generation requests that need tools to Claude Sonnet",condition:{agentType:["v3-qe-test-generator","tester"],requiresTools:!0},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:95},{id:"high-complexity-reasoning",name:"High Complexity Reasoning",description:"Route high complexity tasks requiring reasoning to advanced models",condition:{complexity:"high",requiresReasoning:!0},action:{provider:"claude",model:"claude-opus-4-7",temperature:.2},enabled:!0,priority:90},{id:"code-analysis-agents",name:"Code Analysis Agents",description:"Route code analysis to Claude Sonnet for balanced performance",condition:{agentType:["code-analyzer","v3-qe-code-intelligence","reviewer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.2},enabled:!0,priority:85},{id:"coverage-analysis",name:"Coverage Analysis Agents",description:"Route coverage analysis to efficient models",condition:{agentType:["v3-qe-coverage-analyzer"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.1},enabled:!0,priority:80},{id:"defect-prediction",name:"Defect Prediction Agents",description:"Route defect prediction to capable models",condition:{agentType:["v3-qe-defect-predictor"]},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:75},{id:"medium-complexity",name:"Medium Complexity Tasks",description:"Route medium complexity to balanced Claude Sonnet",condition:{complexity:"medium"},action:{provider:"claude",model:"claude-sonnet-4-6",temperature:.3},enabled:!0,priority:60},{id:"low-complexity-haiku",name:"Low Complexity to Haiku",description:"Route low complexity tasks to Haiku for cost efficiency",condition:{complexity:"low"},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:50},{id:"local-only-ollama",name:"Local Only Requests",description:"Route local-only requests to Ollama",condition:{localOnly:!0},action:{provider:"ollama",model:"llama3.1",temperature:.3},enabled:!0,priority:40},{id:"small-requests-haiku",name:"Small Token Requests",description:"Route small requests to Haiku for efficiency",condition:{tokenRange:{max:500}},action:{provider:"claude",model:"claude-haiku-4-5-20251001",temperature:.3},enabled:!0,priority:30}];import{randomUUID as H}from"crypto";var f=class{decisions=[];providerCalls=[];fallbacks=[];cacheHits=0;cacheMisses=0;startTime=new Date;maxRecords;maxCallRecords;constructor(e={}){this.maxRecords=e.maxRecords??1e4,this.maxCallRecords=e.maxCallRecords??5e3}recordRoutingDecision(e,t,r={}){let i={id:`rd-${Date.now()}-${H().slice(0,8)}`,timestamp:new Date,provider:e.providerType,model:e.model,mode:this.inferMode(e.reason),reason:e.reason,latencyMs:t,decisionTimeMs:e.metadata.decisionTimeMs,agentType:r.agentType,success:r.success??!0,tokenUsage:r.tokenUsage,cost:r.cost,wasFallback:e.reason==="fallback",ruleId:e.matchedRule?.id};this.decisions.push(i),this.trimRecords()}recordProviderCall(e,t,r,i,o={}){let n=o.inputTokens??Math.floor(i*.7),a=o.outputTokens??i-n,c={timestamp:new Date,provider:e,model:t,latencyMs:r,inputTokens:n,outputTokens:a,totalTokens:i,success:o.success??!0,cost:o.cost,agentType:o.agentType};this.providerCalls.push(c),this.trimCallRecords()}recordFallback(e,t,r,i){let o={timestamp:new Date,fromProvider:e,toProvider:t,reason:r,agentType:i};this.fallbacks.push(o),this.fallbacks.length>1e3&&(this.fallbacks=this.fallbacks.slice(-1e3))}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(e="all"){let t=this.getWindowStart(e),r=this.filterByTime(this.decisions,t),i=this.filterByTime(this.providerCalls,t),o=this.filterByTime(this.fallbacks,t),n=this.calculateProviderMetrics(r,i),a=this.calculateAgentMetrics(r,i),c=r.map(u=>u.decisionTimeMs),s=r.length,l=this.countByMode(r),d=r.filter(u=>u.wasFallback).length,g=r.filter(u=>u.ruleId).length;return{byProvider:Object.fromEntries(n),byAgentType:a,totalDecisions:s,decisionsByMode:l,avgDecisionTimeMs:this.average(c),p95DecisionTimeMs:this.percentile(c,95),p99DecisionTimeMs:this.percentile(c,99),fallbackRate:s>0?d/s:0,ruleMatchRate:s>0?g/s:0,estimatedCostSavings:this.calculateCostSavings(r),ruleStats:{totalEvaluated:r.reduce((u,y)=>u+1,0),matched:g,avgRulesPerDecision:1},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:t,end:new Date},recentDecisions:r.slice(-50),fallbackStats:this.calculateFallbackStats(o)}}getMetricsByProvider(e){let t=this.decisions.filter(c=>c.provider===e),r=this.providerCalls.filter(c=>c.provider===e),i=r.map(c=>c.latencyMs),o=t.map(c=>c.decisionTimeMs),n=r.filter(c=>c.success),a=r.filter(c=>!c.success);return{provider:e,selectionCount:t.length,ruleMatchCount:t.filter(c=>c.ruleId).length,fallbackCount:t.filter(c=>c.wasFallback).length,avgDecisionTimeMs:this.average(o),successRate:r.length>0?n.length/r.length:1,avgLatencyMs:this.average(i),p95LatencyMs:this.percentile(i,95),p99LatencyMs:this.percentile(i,99),totalCost:r.reduce((c,s)=>c+(s.cost??0),0),totalTokens:r.reduce((c,s)=>c+s.totalTokens,0),totalInputTokens:r.reduce((c,s)=>c+s.inputTokens,0),totalOutputTokens:r.reduce((c,s)=>c+s.outputTokens,0),circuitState:"closed",latencyHistogram:i.slice(-100),decisionTimeHistogram:o.slice(-100),errorCount:a.length,lastError:a.length>0?a[a.length-1].timestamp:void 0,recentCalls:r.slice(-20)}}getMetricsByAgentType(e){let t=this.decisions.filter(s=>s.agentType===e),r=this.providerCalls.filter(s=>s.agentType===e),i=new Map,o=new Map;for(let s of t)i.set(s.provider,(i.get(s.provider)??0)+1),o.set(s.model,(o.get(s.model)??0)+1);let n=r.map(s=>s.latencyMs),a=t.filter(s=>s.wasFallback).length,c=t.filter(s=>s.success).length;return{agentType:e,totalDecisions:t.length,providerDistribution:i,modelDistribution:o,avgLatencyMs:this.average(n),totalCost:r.reduce((s,l)=>s+(l.cost??0),0),totalTokens:r.reduce((s,l)=>s+l.totalTokens,0),fallbackRate:t.length>0?a/t.length:0,successRate:t.length>0?c/t.length:1}}getAuditLog(e={}){let t=this.decisions;e.since&&(t=t.filter(i=>i.timestamp>=e.since)),e.provider&&(t=t.filter(i=>i.provider===e.provider)),e.agentType&&(t=t.filter(i=>i.agentType===e.agentType));let r=e.limit??100;return t.slice(-r).map(i=>({id:i.id,timestamp:i.timestamp,context:{agentType:i.agentType},decision:{providerType:i.provider,model:i.model,providerModelId:i.model,reason:i.reason,confidence:1,metadata:{decisionTimeMs:i.decisionTimeMs,timestamp:i.timestamp}},outcome:{success:i.success,latencyMs:i.latencyMs,tokenUsage:i.tokenUsage,cost:i.cost}}))}resetMetrics(){this.decisions=[],this.providerCalls=[],this.fallbacks=[],this.cacheHits=0,this.cacheMisses=0,this.startTime=new Date}inferMode(e){switch(e){case"manual":return"manual";case"rule-match":return"rule-based";case"cost-optimization":return"cost-optimized";case"performance-optimization":return"performance-optimized";default:return"rule-based"}}trimRecords(){this.decisions.length>this.maxRecords&&(this.decisions=this.decisions.slice(-this.maxRecords))}trimCallRecords(){this.providerCalls.length>this.maxCallRecords&&(this.providerCalls=this.providerCalls.slice(-this.maxCallRecords))}getWindowStart(e){let t=new Date;switch(e){case"1m":return new Date(t.getTime()-60*1e3);case"5m":return new Date(t.getTime()-300*1e3);case"15m":return new Date(t.getTime()-900*1e3);case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);default:return this.startTime}}filterByTime(e,t){return e.filter(r=>r.timestamp>=t)}calculateProviderMetrics(e,t){let r=new Map;for(let i of h){let o=e.filter(l=>l.provider===i),n=t.filter(l=>l.provider===i);if(o.length===0&&n.length===0)continue;let a=n.map(l=>l.latencyMs),c=o.map(l=>l.decisionTimeMs),s=n.filter(l=>l.success);r.set(i,{provider:i,selectionCount:o.length,ruleMatchCount:o.filter(l=>l.ruleId).length,fallbackCount:o.filter(l=>l.wasFallback).length,avgDecisionTimeMs:this.average(c),successRate:n.length>0?s.length/n.length:1,avgLatencyMs:this.average(a),p95LatencyMs:this.percentile(a,95),p99LatencyMs:this.percentile(a,99),totalCost:n.reduce((l,d)=>l+(d.cost??0),0),totalTokens:n.reduce((l,d)=>l+d.totalTokens,0),circuitState:"closed"})}return r}calculateAgentMetrics(e,t){let r=new Set;e.forEach(o=>o.agentType&&r.add(o.agentType)),t.forEach(o=>o.agentType&&r.add(o.agentType));let i=new Map;for(let o of r)i.set(o,this.getMetricsByAgentType(o));return i}countByMode(e){let t={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};for(let r of e)t[r.mode]++;return t}calculateFallbackStats(e){let t=new Map,r=new Map;for(let i of e)t.set(i.fromProvider,(t.get(i.fromProvider)??0)+1),r.set(i.reason,(r.get(i.reason)??0)+1);return{total:e.length,byProvider:t,byReason:r}}calculateCostSavings(e){return e.reduce((t,r)=>r.cost&&r.mode==="cost-optimized"?t+r.cost.totalCost*.2:t,0)}average(e){return e.length===0?0:e.reduce((t,r)=>t+r,0)/e.length}percentile(e,t){if(e.length===0)return 0;let r=[...e].sort((o,n)=>o-n),i=Math.ceil(t/100*r.length)-1;return r[Math.max(0,i)]}};function D(p){return new f(p)}var C=class{records=[];alerts=[];maxRecords;alertCheckInterval;constructor(e={}){this.maxRecords=e.maxRecords??1e4}recordCost(e,t,r,i,o={}){let n=this.calculateCost(t,r,i),a={timestamp:new Date,provider:e,model:t,inputTokens:r,outputTokens:i,inputCost:n.inputCost,outputCost:n.outputCost,totalCost:n.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(a),this.trimRecords(),this.checkAlerts(),a}recordCostFromInfo(e,t,r,i,o={}){let n={timestamp:new Date,provider:e,model:t,inputTokens:r.promptTokens,outputTokens:r.completionTokens,inputCost:i.inputCost,outputCost:i.outputCost,totalCost:i.totalCost,agentType:o.agentType,requestId:o.requestId};return this.records.push(n),this.trimRecords(),this.checkAlerts(),n}getCostByProvider(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Map;for(let o of h){let n=r.filter(s=>s.provider===o);if(n.length===0)continue;let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);i.set(o,{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return i}getCostByAgentType(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(a=>a.agentType&&i.add(a.agentType));let o=new Map;for(let a of i){let c=r.filter(d=>d.agentType===a),s=c.reduce((d,g)=>d+g.totalCost,0),l=c.reduce((d,g)=>d+g.inputTokens+g.outputTokens,0);o.set(a,{totalCost:s,totalTokens:l,totalRequests:c.length,avgCostPerRequest:c.length>0?s/c.length:0,avgCostPerToken:l>0?s/l:0})}let n=r.filter(a=>!a.agentType);if(n.length>0){let a=n.reduce((s,l)=>s+l.totalCost,0),c=n.reduce((s,l)=>s+l.inputTokens+l.outputTokens,0);o.set("unknown",{totalCost:a,totalTokens:c,totalRequests:n.length,avgCostPerRequest:a/n.length,avgCostPerToken:c>0?a/c:0})}return o}getCostByModel(e="all"){let t=this.getPeriodStart(e),r=this.filterByTime(t),i=new Set;r.forEach(n=>i.add(n.model));let o=new Map;for(let n of i){let a=r.filter(l=>l.model===n),c=a.reduce((l,d)=>l+d.totalCost,0),s=a.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0);o.set(n,{totalCost:c,totalTokens:s,totalRequests:a.length,avgCostPerRequest:a.length>0?c/a.length:0,avgCostPerToken:s>0?c/s:0})}return o}getTotalCost(e="all"){let t=this.getPeriodStart(e);return this.filterByTime(t).reduce((i,o)=>i+o.totalCost,0)}getCostTrend(e){let t=new Date,r=[],i,o;switch(e){case"1h":i=300*1e3,o=12;break;case"24h":i=3600*1e3,o=24;break;case"7d":i=1440*60*1e3,o=7;break}for(let n=o-1;n>=0;n--){let a=new Date(t.getTime()-n*i),c=new Date(a.getTime()-i),s=this.records.filter(l=>l.timestamp>=c&&l.timestamp<a);r.push({timestamp:a,cost:s.reduce((l,d)=>l+d.totalCost,0),tokens:s.reduce((l,d)=>l+d.inputTokens+d.outputTokens,0),requests:s.length})}return r}addBudgetAlert(e,t,r){let i={threshold:e,period:t,callback:r,active:!0};return this.alerts.push(i),this.alertCheckInterval||(this.alertCheckInterval=setInterval(()=>this.checkAlerts(),6e4)),`alert-${this.alerts.length-1}`}removeBudgetAlert(e){return e>=0&&e<this.alerts.length?(this.alerts.splice(e,1),this.alerts.length===0&&this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0),!0):!1}getOptimizationSuggestions(){let e=[],t=this.getCostByModel("24h");for(let[n,a]of t)M[n]&&a.totalCost>1&&(n.includes("opus")&&e.push({type:"model-switch",description:"Consider using Sonnet instead of Opus for non-critical tasks",estimatedSavings:a.totalCost*.5,currentCost:a.totalCost,suggestedModel:"claude-sonnet-4-6"}),n==="gpt-4o"&&e.push({type:"model-switch",description:"Consider using GPT-4o-mini for simpler tasks",estimatedSavings:a.totalCost*.7,currentCost:a.totalCost,suggestedModel:"gpt-4o-mini"}));let r=this.getCostByProvider("24h"),i=[...r.values()].reduce((n,a)=>n+a.totalCost,0);return i>10&&!r.has("ollama")&&e.push({type:"provider-switch",description:"Consider using Ollama for development/testing workloads",estimatedSavings:i*.3,currentCost:i,suggestedProvider:"ollama"}),[...t.values()].reduce((n,a)=>n+a.totalRequests,0)>100&&e.push({type:"caching",description:"Enable response caching to reduce redundant API calls",estimatedSavings:i*.15,currentCost:i}),e}getRecords(){return[...this.records]}clear(){this.records=[]}reset(){this.records=[],this.alerts=[],this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}dispose(){this.alertCheckInterval&&(clearInterval(this.alertCheckInterval),this.alertCheckInterval=void 0)}calculateCost(e,t,r){let i=M[e];if(!i)return{inputCost:0,outputCost:0,totalCost:0,currency:"USD"};let o=t/1e6*i.input,n=r/1e6*i.output;return{inputCost:o,outputCost:n,totalCost:o+n,currency:"USD"}}trimRecords(){this.records.length>this.maxRecords&&(this.records=this.records.slice(-this.maxRecords))}getPeriodStart(e){let t=new Date;switch(e){case"1h":return new Date(t.getTime()-3600*1e3);case"24h":return new Date(t.getTime()-1440*60*1e3);case"7d":return new Date(t.getTime()-10080*60*1e3);case"30d":return new Date(t.getTime()-720*60*60*1e3);default:return new Date(0)}}filterByTime(e){return this.records.filter(t=>t.timestamp>=e)}checkAlerts(){for(let e of this.alerts){if(!e.active)continue;let t=this.getTotalCost(e.period);if(t>=e.threshold){e.active=!1;let r=this.getPeriodStart(e.period),i=this.filterByTime(r),o=i.reduce((n,a)=>n+a.inputTokens+a.outputTokens,0);try{e.callback({totalCost:t,totalTokens:o,totalRequests:i.length,avgCostPerRequest:i.length>0?t/i.length:0,avgCostPerToken:o>0?t/o:0})}catch(n){console.error("Budget alert callback error:",n)}}}}};function E(p){return new C(p)}U();var R=class{cache=new Map;maxSize;ttlMs;constructor(e=100,t=6e4){this.maxSize=e,this.ttlMs=t}get(e){let t=this.cache.get(e);return t?Date.now()>t.expiresAt?(this.cache.delete(e),null):t.decision:null}set(e,t){if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r)}this.cache.set(e,{decision:t,expiresAt:Date.now()+this.ttlMs})}clear(){this.cache.clear()}getStats(){return{hits:0,misses:0,size:this.cache.size}}},T=class{config;providerManager;ruleEngine;decisionCache;metrics;routerMetrics;costMetrics;initialized=!1;constructor(e,t){this.providerManager=e,this.config={...z,...t};let r=this.config.rules.length>0?this.config.rules:A;this.ruleEngine=new v(r),this.decisionCache=new R(100,this.config.decisionCacheTtlMs),this.metrics=new q,this.routerMetrics=D(),this.costMetrics=E()}async initialize(){this.initialized||(await this.providerManager.initialize(),this.initialized=!0)}getMode(){return this.config.mode}setMode(e){this.config.mode=e,this.decisionCache.clear()}getConfig(){return{...this.config}}updateConfig(e){this.config={...this.config,...e},e.rules&&this.ruleEngine.setRules(e.rules),e.decisionCacheTtlMs&&(this.decisionCache=new R(100,e.decisionCacheTtlMs))}async selectProvider(e){await this.ensureInitialized();let t=Date.now();if(this.config.cacheDecisions){let i=this.generateCacheKey(e),o=this.decisionCache.get(i);if(o)return this.metrics.recordCacheHit(),this.routerMetrics.recordCacheHit(),o;this.metrics.recordCacheMiss(),this.routerMetrics.recordCacheMiss()}let r;switch(this.config.mode){case"manual":r=await this.selectManual(e);break;case"rule-based":r=await this.selectRuleBased(e);break;case"cost-optimized":r=await this.selectCostOptimized(e);break;case"performance-optimized":r=await this.selectPerformanceOptimized(e);break;default:r=await this.selectRuleBased(e)}if(r.metadata.decisionTimeMs=Date.now()-t,this.config.cacheDecisions){let i=this.generateCacheKey(e);this.decisionCache.set(i,r)}return this.metrics.recordDecision(r,this.config.mode),r}async chat(e){await this.ensureInitialized();let t=I(),r=await this.selectProvider(e),i=e.agentType??"";if(_(i)&&(x(r.model)||x(r.providerModelId))){let n=r.model,a=r.providerModelId;r.model=w(i,r.model,k),r.providerModelId=w(i,r.providerModelId,k),console.warn(`[aqe] ADR-093: ${i} pinned to ${r.model} (was ${n}/${a}); set AQE_CYBER_VERIFIED=true after Cyber Verification Program approval`)}return await this.executeWithFallback(e,r,t)}async*stream(e){await this.ensureInitialized();let t=await this.selectProvider(e),r=await this.chat(e),i=100;for(let o=0;o<r.content.length;o+=i){let n=o+i>=r.content.length;yield{type:n?"done":"content",delta:r.content.slice(o,o+i),accumulated:r.content.slice(0,o+i),done:n,tokenCount:Math.ceil((o+i)/4),model:r.model,provider:t.providerType,usage:n?r.usage:void 0}}}getMetrics(){return this.metrics.getMetrics()}getEnhancedMetrics(e){return this.routerMetrics.getMetrics(e)}getProviderMetrics(e){return this.routerMetrics.getMetricsByProvider(e)}getAgentMetrics(e){return this.routerMetrics.getMetricsByAgentType(e)}getCostByProvider(e){return this.costMetrics.getCostByProvider(e)}getCostByAgentType(e){return this.costMetrics.getCostByAgentType(e)}getCostByModel(e){return this.costMetrics.getCostByModel(e)}getTotalCost(e){return this.costMetrics.getTotalCost(e)}getCostTrend(e){return this.costMetrics.getCostTrend(e)}getAuditLog(e){return this.routerMetrics.getAuditLog(e)}getOptimizationSuggestions(){return this.costMetrics.getOptimizationSuggestions()}resetMetrics(){this.metrics.reset(),this.routerMetrics.resetMetrics(),this.costMetrics.reset()}clearCache(){this.decisionCache.clear()}async selectManual(e){let t=e.preferredProvider??this.config.defaultProvider,r=e.model??this.config.defaultModel,i=this.providerManager.getProvider(t);return i?this.createDecision(i,t,r,"manual"):this.createFallbackDecision(e,"manual")}async selectRuleBased(e){let t=this.ruleEngine.evaluate(e);if(t){let{rule:o,rulesEvaluated:n}=t,a=o.action.provider,c=this.providerManager.getProvider(a);if(c){let s=this.createDecision(c,a,o.action.model,"rule-match",o);return s.metadata.rulesEvaluated=n,s}}let r=this.config.defaultProvider,i=this.providerManager.getProvider(r);return i?this.createDecision(i,r,this.config.defaultModel,"default"):this.createFallbackDecision(e,"rule-based")}async selectCostOptimized(e){let t=this.providerManager.getAvailableProviders();if(t.length===0)return this.createFallbackDecision(e,"cost-optimized");let r=1/0,i=t[0],o,n=[];for(let a of t){let c=this.providerManager.getProvider(a);if(!c)continue;let{input:s,output:l}=c.getCostPerToken(),d=this.estimateCostValue(e,s,l);n.push({provider:a,model:c.getConfig().model,reason:`Estimated cost: $${d.toFixed(6)}`,estimatedCost:d,excluded:!1}),d<r&&(r=d,i=a,o=c)}if(o){let a=o.getConfig(),c=this.createDecision(o,i,a.model,"cost-optimization");return c.metadata.estimatedCost=this.createCostEstimate(e,o),c.metadata.alternativesConsidered=n,c}return this.createFallbackDecision(e,"cost-optimized")}async selectPerformanceOptimized(e){let t=this.providerManager.getAvailableProviders(),r=this.providerManager.getMetrics();if(t.length===0)return this.createFallbackDecision(e,"performance-optimized");let i=1/0,o=t[0],n,a=[];for(let c of t){let s=this.providerManager.getProvider(c);if(!s)continue;let d=r[c]?.avgLatencyMs??1/0;a.push({provider:c,model:s.getConfig().model,reason:`Avg latency: ${d}ms`,estimatedLatencyMs:d,excluded:!1}),d<i&&(i=d,o=c,n=s)}if(n){let c=n.getConfig(),s=this.createDecision(n,o,c.model,"performance-optimization");return s.metadata.estimatedLatencyMs=i,s.metadata.alternativesConsidered=a,s}return this.createFallbackDecision(e,"performance-optimized")}async executeWithFallback(e,t,r){let{fallbackChain:i,fallbackBehavior:o}=this.config,n,a=0,c=[{provider:t.providerType,model:t.providerModelId}];for(let s of i.entries)if(!(!s.enabled||s.provider===t.providerType||!["claude","openai","ollama"].includes(s.provider)))for(let d of s.models)c.push({provider:s.provider,model:d});for(let{provider:s,model:l}of c){if(a>=o.maxAttempts)break;let d=this.providerManager.getProvider(s);if(!d)continue;a++;let g=Date.now();try{let u=await d.generate(e.messages,{model:l,temperature:e.temperature,maxTokens:e.maxTokens,systemPrompt:e.systemPrompt,timeoutMs:e.timeoutMs,skipCache:e.skipCache,metadata:e.metadata}),y=Date.now()-g;return this.metrics.recordSuccess(s),this.routerMetrics.recordRoutingDecision(t,y,{agentType:e.agentType,success:!0,tokenUsage:u.usage,cost:u.cost}),this.routerMetrics.recordProviderCall(s,l,y,u.usage.totalTokens,{inputTokens:u.usage.promptTokens,outputTokens:u.usage.completionTokens,success:!0,cost:u.cost.totalCost,agentType:e.agentType}),this.costMetrics.recordCostFromInfo(s,l,u.usage,u.cost,{agentType:e.agentType,requestId:u.requestId}),{content:u.content,model:u.model,providerModelId:u.model,provider:u.provider,usage:u.usage,cost:u.cost,latencyMs:u.latencyMs,finishReason:u.finishReason,cached:u.cached,requestId:u.requestId,routingDecision:t}}catch(u){n=S(u);let y=Date.now()-g;if(this.metrics.recordFailure(s),this.routerMetrics.recordProviderCall(s,l,y,0,{success:!1,agentType:e.agentType}),a<c.length){let L=c[a];L&&this.routerMetrics.recordFallback(s,L.provider,n.message,e.agentType)}if(B(u)&&!u.retryable)throw u;a<o.maxAttempts&&await this.delay(o.delayMs)}}throw b(`All providers failed after ${a} attempts: ${n?.message??"Unknown error"}`,"PROVIDER_UNAVAILABLE",{retryable:!1,cause:n})}createDecision(e,t,r,i,o){let{canonicalModel:n,providerModelId:a}=this.resolveModelIds(r,t);return{provider:e,providerType:t,model:n,providerModelId:a,reason:i,matchedRule:o,confidence:i==="rule-match"?.95:.8,metadata:{decisionTimeMs:0,timestamp:new Date}}}resolveModelIds(e,t){let i={claude:"anthropic",openai:"openai",ollama:"ollama",openrouter:"openrouter",gemini:"gemini","azure-openai":"azure",bedrock:"bedrock"}[t];if(!i)return{canonicalModel:e,providerModelId:e};try{let o=O(e),n=P(o,i);return{canonicalModel:o,providerModelId:n}}catch{try{if(F(e)){let n=P(e,i);return{canonicalModel:e,providerModelId:n}}}catch{}return{canonicalModel:e,providerModelId:e}}}createFallbackDecision(e,t){for(let i of this.config.fallbackChain.entries){if(!i.enabled||!["claude","openai","ollama"].includes(i.provider))continue;let n=this.providerManager.getProvider(i.provider);if(n)return this.createDecision(n,i.provider,i.models[0],"fallback")}let r=this.providerManager.getAvailableProviders();if(r.length>0){let i=r[0],o=this.providerManager.getProvider(i);return this.createDecision(o,i,o.getConfig().model,"fallback")}throw b(`No providers available for ${t} selection`,"PROVIDER_UNAVAILABLE",{retryable:!1})}generateCacheKey(e){return[this.config.mode,e.agentType??"default",e.complexity??"medium",e.requiresTools?"tools":"no-tools",e.preferredProvider??"any"].join(":")}estimateCostValue(e,t,r){let i=0;e.systemPrompt&&(i+=Math.ceil(e.systemPrompt.length/4));for(let n of e.messages)i+=Math.ceil(n.content.length/4);let o=e.maxTokens??1e3;return i*t+o*r}createCostEstimate(e,t){let{input:r,output:i}=t.getCostPerToken(),o=0;e.systemPrompt&&(o+=Math.ceil(e.systemPrompt.length/4));for(let c of e.messages)o+=Math.ceil(c.content.length/4);let n=e.maxTokens??1e3,a=o*r+n*i;return{inputTokens:o,outputTokens:n,totalCostUsd:a,inputCostPer1M:r*1e6,outputCostPer1M:i*1e6}}delay(e){return new Promise(t=>setTimeout(t,e))}async ensureInitialized(){this.initialized||await this.initialize()}},q=class{decisions=new Map;decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0};totalDecisions=0;cacheHits=0;cacheMisses=0;totalRulesEvaluated=0;rulesMatched=0;fallbackCount=0;startTime=new Date;recordDecision(e,t){this.totalDecisions++,this.decisionsByMode[t]++,e.metadata.rulesEvaluated&&(this.totalRulesEvaluated+=e.metadata.rulesEvaluated),e.matchedRule&&this.rulesMatched++,e.reason==="fallback"&&this.fallbackCount++;let r=this.decisions.get(e.providerType);r||(r=this.createEmptyMetrics(e.providerType),this.decisions.set(e.providerType,r)),r.selectionCount++,e.reason==="rule-match"&&r.ruleMatchCount++,e.reason==="fallback"&&r.fallbackCount++}recordSuccess(e){let t=this.decisions.get(e);if(t){let r=t.successRate*t.selectionCount;t.successRate=(r+1)/t.selectionCount}}recordFailure(e){}recordCacheHit(){this.cacheHits++}recordCacheMiss(){this.cacheMisses++}getMetrics(){let e={};for(let[r,i]of this.decisions)e[r]={...i};let t=this.totalDecisions>0?this.rulesMatched/this.totalDecisions:0;return{byProvider:e,totalDecisions:this.totalDecisions,decisionsByMode:{...this.decisionsByMode},avgDecisionTimeMs:0,p95DecisionTimeMs:0,p99DecisionTimeMs:0,fallbackRate:this.totalDecisions>0?this.fallbackCount/this.totalDecisions:0,ruleMatchRate:t,estimatedCostSavings:0,ruleStats:{totalEvaluated:this.totalRulesEvaluated,matched:this.rulesMatched,avgRulesPerDecision:this.totalDecisions>0?this.totalRulesEvaluated/this.totalDecisions:0},cacheStats:{hits:this.cacheHits,misses:this.cacheMisses,hitRate:this.cacheHits+this.cacheMisses>0?this.cacheHits/(this.cacheHits+this.cacheMisses):0},period:{start:this.startTime,end:new Date}}}reset(){this.decisions.clear(),this.decisionsByMode={manual:0,"rule-based":0,"cost-optimized":0,"performance-optimized":0},this.totalDecisions=0,this.cacheHits=0,this.cacheMisses=0,this.totalRulesEvaluated=0,this.rulesMatched=0,this.fallbackCount=0,this.startTime=new Date}createEmptyMetrics(e){return{provider:e,selectionCount:0,ruleMatchCount:0,fallbackCount:0,avgDecisionTimeMs:0,successRate:1,avgLatencyMs:0,p95LatencyMs:0,p99LatencyMs:0,totalCost:0,totalTokens:0,circuitState:"closed"}}};function Je(p,e){return new T(p,e)}function Qe(p){return new T(p,{mode:"rule-based",rules:A,defaultProvider:"claude",defaultModel:"claude-sonnet-4-6",enableMetrics:!0,cacheDecisions:!0})}export{T as HybridRouter,Je as createHybridRouter,Qe as createQERouter};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{a,b,c,d,e}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e}from"./chunk-ZU5VHW6P.js";import"./chunk-UUVTLYUK.js";import"./chunk-DMZ2XOEW.js";import"./chunk-UIYK4Y7K.js";import"./chunk-G7L5Y47C.js";import"./chunk-DGUAAG3T.js";export{a as DEFAULT_HYPERGRAPH_ENGINE_CONFIG,b as HypergraphEngine,c as createHypergraphEngine,d as createHypergraphEngineSync,e as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import"./chunk-DGUAAG3T.js";import e from"chalk";import{join as m,resolve as h}from"path";import{existsSync as y}from"fs";var c=class{name="hypergraph";description="Query the code knowledge hypergraph";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let s=n.command("hypergraph").alias("hg").description(this.description);s.command("stats").description("Show hypergraph statistics (node/edge counts by type)").option("--db <path>","Database path").action(async t=>{await this.executeStats(t)}),s.command("untested").description("Find functions with no test coverage").option("--db <path>","Database path").option("--limit <number>","Max results","20").action(async t=>{await this.executeUntested(t)}),s.command("impacted <files...>").description("Find tests impacted by changed files").option("--db <path>","Database path").action(async(t,i)=>{await this.executeImpacted(t,i)}),s.command("gaps").description("Find functions with low coverage").option("--db <path>","Database path").option("--max-coverage <number>","Coverage threshold (%)","50").option("--limit <number>","Max results","20").action(async t=>{await this.executeGaps(t)})}async executeStats(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=await r.getStats();if(console.log(e.blue(`
|
|
3
3
|
Hypergraph Statistics
|
|
4
4
|
`)),console.log(e.white(` Total nodes: ${t.totalNodes}`)),console.log(e.white(` Total edges: ${t.totalEdges}`)),t.totalNodes>0){console.log(e.gray(`
|
|
5
5
|
Nodes by type:`));for(let[i,o]of Object.entries(t.nodesByType))o>0&&console.log(e.gray(` ${i}: ${o}`));console.log(e.gray(`
|
|
@@ -15,7 +15,7 @@ import"./chunk-ERGY45RL.js";import e from"chalk";import{join as m,resolve as h}f
|
|
|
15
15
|
`))}finally{i()}await this.cleanupAndExit(0)}async executeGaps(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=parseInt(n.maxCoverage,10)||50,i=parseInt(n.limit,10)||20,o=await r.findCoverageGaps(t),a=o.slice(0,i);if(console.log(e.blue(`
|
|
16
16
|
Coverage Gaps (<= ${t}%) \u2014 ${o.length} total
|
|
17
17
|
`)),a.length===0)console.log(e.green(" No coverage gaps found!"));else{for(let l of a){let d=l.coverage!==void 0?e.red(` ${l.coverage}%`):"",p=l.complexity?e.yellow(` complexity=${l.complexity}`):"";console.log(e.white(` ${l.name}`)+d+e.gray(` ${l.filePath||""}`)+p)}o.length>i&&console.log(e.gray(`
|
|
18
|
-
... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-
|
|
18
|
+
... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-NHJHPLIC.js"),{openDatabase:s}=await import("./safe-db-IFBVWIGF.js"),{createHypergraphEngine:t}=await import("./hypergraph-engine-WFHZJMP2.js"),i=r(),o=n||m(i,".agentic-qe","memory.db");if(!y(o))throw new Error(`Database not found: ${o}
|
|
19
19
|
Run "aqe init --auto" first.`);let a=s(o);try{return{engine:await t({db:a,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:!1}),close:()=>{try{a.close()}catch{}}}}catch(l){try{a.close()}catch{}throw l}}getHelp(){return`
|
|
20
20
|
Query the code knowledge hypergraph for untested functions,
|
|
21
21
|
impacted tests, and coverage gaps.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-GM5LIYLQ.js";import"./chunk-GOTVYSX5.js";import"./chunk-STYNOKOM.js";import"./chunk-GUEK5DOK.js";import"./chunk-DMZ2XOEW.js";import"./chunk-PZF5ISGS.js";import"./chunk-UIYK4Y7K.js";import"./chunk-G7L5Y47C.js";import"./chunk-DGUAAG3T.js";export{a as ImpactAnalyzerService};
|
|
@@ -1,15 +1,15 @@
|
|
|
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.9.
|
|
2
|
-
import{a as m}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a as m}from"./chunk-PZF5ISGS.js";import{a as g,c as f}from"./chunk-UIYK4Y7K.js";import"./chunk-DGUAAG3T.js";import o from"chalk";f();var p=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,t){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>","Memory backend (sqlite|agentdb|hybrid)","hybrid").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP config and AGENTS.md").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default)").option("--with-mcp","Enable MCP server config (default \u2014 kept for backward compatibility)").option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--modular","Use new modular init system (default for --auto)").action(async r=>{await this.execute(r,t)})}async execute(e,t){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let r=process.stderr.write.bind(process.stderr);process.stdout.write=((...s)=>r(...s))}try{if(e.withAllPlatforms&&(e.withCopilot=!0,e.withCursor=!0,e.withCline=!0,e.withKilocode=!0,e.withRoocode=!0,e.withCodex=!0,e.withWindsurf=!0,e.withContinuedev=!0),e.upgrade&&!e.auto&&!e.wizard&&(e.auto=!0),e.wizard||e.auto){if(console.log(o.blue(`
|
|
3
3
|
Agentic QE v3 Initialization
|
|
4
4
|
`)),e.auto||e.modular){await this.runModularInit(e,t);return}await this.runLegacyWizard(e,t);return}await this.runStandardInit(e,t)}catch(r){console.error(o.red(`
|
|
5
|
-
Failed to initialize:`),r),await this.cleanupAndExit(1)}}async runModularInit(e,t){let r=e.json===!0,{createModularInitOrchestrator:s}=await import("./orchestrator-
|
|
5
|
+
Failed to initialize:`),r),await this.cleanupAndExit(1)}}async runModularInit(e,t){let r=e.json===!0,{createModularInitOrchestrator:s}=await import("./orchestrator-MW4MZ3RW.js"),l=s({projectRoot:process.cwd(),autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:e.noMcp&&!e.withMcp,noGovernance:e.noGovernance});console.log(o.white(` Analyzing project...
|
|
6
6
|
`));let n=await l.initialize();if(r){this.originalStdoutWrite&&(process.stdout.write=this.originalStdoutWrite);let i={schemaVersion:1,success:n.success,steps:n.steps.map(c=>({step:c.step,status:c.status,message:c.message,durationMs:c.durationMs})),summary:n.summary,totalDurationMs:n.totalDurationMs,timestamp:n.timestamp.toISOString()};process.stdout.write(JSON.stringify(i,null,2)+`
|
|
7
|
-
`);let d=n.steps.some(c=>c.status==="error");await this.cleanupAndExit(n.success&&!d?0:1);return}for(let i of n.steps){let d=i.status==="success"?"*":i.status==="error"?"x":"!",c=i.status==="success"?o.green:i.status==="error"?o.red:o.yellow;console.log(c(` ${d} ${i.step} (${i.durationMs}ms)`))}console.log("");let a;if(!e.skipClaudeFlow&&(e.withClaudeFlow||n.success))try{let{setupClaudeFlowIntegration:i}=await import("./claude-flow-setup-
|
|
7
|
+
`);let d=n.steps.some(c=>c.status==="error");await this.cleanupAndExit(n.success&&!d?0:1);return}for(let i of n.steps){let d=i.status==="success"?"*":i.status==="error"?"x":"!",c=i.status==="success"?o.green:i.status==="error"?o.red:o.yellow;console.log(c(` ${d} ${i.step} (${i.durationMs}ms)`))}console.log("");let a;if(!e.skipClaudeFlow&&(e.withClaudeFlow||n.success))try{let{setupClaudeFlowIntegration:i}=await import("./claude-flow-setup-XNSCWIUN.js");if(a=await i({projectRoot:process.cwd(),force:e.withClaudeFlow}),a.available)console.log(o.green(" * Claude Flow integration enabled")),a.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),a.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),a.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:d}=await import("./detect-5APZP2D3.js");console.log(o.gray(d())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:i}=await import("./detect-5APZP2D3.js");console.log(o.gray(i())),console.log("")}n.success?(console.log(o.green(` AQE v3 initialized successfully!
|
|
8
8
|
`)),console.log(o.blue(" Summary:")),console.log(o.gray(` - Patterns loaded: ${n.summary.patternsLoaded}`)),console.log(o.gray(` - Skills installed: ${n.summary.skillsInstalled}`)),console.log(o.gray(` - Agents installed: ${n.summary.agentsInstalled}`)),console.log(o.gray(` - Hooks configured: ${n.summary.hooksConfigured?"Yes":"No"}`)),console.log(o.gray(` - Workers started: ${n.summary.workersStarted}`)),console.log(o.gray(` - Claude Flow: ${a?.available?"Enabled":"Standalone mode"}`)),console.log(o.gray(` - Total time: ${n.totalDurationMs}ms
|
|
9
9
|
`)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),n.summary.mcpConfigured&&(console.log(o.gray(`
|
|
10
10
|
MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
|
|
11
11
|
`)))):(console.log(o.red(` Initialization failed. Check errors above.
|
|
12
|
-
`)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,t){let{InitOrchestrator:r}=await import("./init-wizard-
|
|
12
|
+
`)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,t){let{InitOrchestrator:r}=await import("./init-wizard-Q6DEACKX.js"),s={projectRoot:process.cwd(),autoMode:e.auto,minimal:e.minimal,skipPatterns:e.skipPatterns,withN8n:e.withN8n},l=new r(s);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
|
|
13
13
|
`));let a=l.getWizardSteps();for(let i=0;i<a.length;i++)console.log(o.gray(` ${i+1}. ${a[i].title}`)),console.log(o.gray(` ${a[i].description}
|
|
14
14
|
`))}console.log(o.white(` Analyzing project...
|
|
15
15
|
`));let n=await l.initialize();for(let a of n.steps){let i=a.status==="success"?"*":a.status==="error"?"x":"!",d=a.status==="success"?o.green:a.status==="error"?o.red:o.yellow;console.log(d(` ${i} ${a.step} (${a.durationMs}ms)`))}console.log(""),n.success?(console.log(o.green(` AQE v3 initialized successfully!
|
|
@@ -17,7 +17,7 @@ import{a as m}from"./chunk-QIE76ERL.js";import{a as g,c as f}from"./chunk-3AOWTH
|
|
|
17
17
|
`)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),n.summary.mcpConfigured&&(console.log(o.gray(`
|
|
18
18
|
MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
|
|
19
19
|
`)))):(console.log(o.red(` Initialization failed. Check errors above.
|
|
20
|
-
`)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,t){let{QEKernelImpl:r}=await import("./kernel-
|
|
20
|
+
`)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,t){let{QEKernelImpl:r}=await import("./kernel-YNQOGTM5.js"),{CrossDomainEventRouter:s}=await import("./cross-domain-router-UYONX76U.js"),{DefaultProtocolExecutor:l}=await import("./protocol-executor-LYYYHXAX.js"),{WorkflowOrchestrator:n}=await import("./workflow-orchestrator-H4DKRHVP.js"),{createQueenCoordinator:a}=await import("./queen-coordinator-6OKLSCHV.js");console.log(o.blue(`
|
|
21
21
|
Initializing Agentic QE v3...
|
|
22
22
|
`));let i=e.domains==="all"?[...m]:e.domains.split(",").filter(u=>m.includes(u));console.log(o.gray(` Domains: ${i.length}`)),console.log(o.gray(` Max Agents: ${e.maxAgents}`)),console.log(o.gray(` Memory: ${e.memory}`)),console.log(o.gray(` Lazy Loading: ${e.lazy?"enabled":"disabled"}
|
|
23
23
|
`)),t.kernel=new r({maxConcurrentAgents:parseInt(e.maxAgents,10),memoryBackend:e.memory,hnswEnabled:!0,lazyLoading:e.lazy||!1,enabledDomains:i}),await t.kernel.initialize(),console.log(o.green(" * Kernel initialized")),t.router=new s(t.kernel.eventBus),await t.router.initialize(),console.log(o.green(" * Cross-domain router initialized"));let d=u=>t.kernel.getDomainAPI(u),c=new l(t.kernel.eventBus,t.kernel.memory,d);console.log(o.green(" * Protocol executor initialized")),t.workflowOrchestrator=new n(t.kernel.eventBus,t.kernel.memory,t.kernel.coordinator),await t.workflowOrchestrator.initialize(),this.registerDomainWorkflowActions(t.kernel,t.workflowOrchestrator),console.log(o.green(" * Workflow orchestrator initialized")),t.queen=a(t.kernel,t.router,c,void 0),await t.queen.initialize(),console.log(o.green(" * Queen Coordinator initialized")),t.initialized=!0,console.log(o.green(`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-CGC63MGF.js";import"./chunk-HEQ23HBE.js";import"./chunk-BFCMOMOF.js";import"./chunk-XH774Q6Z.js";import"./chunk-L4IWZXSC.js";import"./chunk-DMZ2XOEW.js";import"./chunk-UIYK4Y7K.js";import"./chunk-LWHM5BWD.js";import"./chunk-J3XLOHWB.js";import"./chunk-DGUAAG3T.js";export{a as InitOrchestrator,b as createInitOrchestrator,d as formatInitResult,c as quickInit};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{v as a,w as b}from"./chunk-6EZY2QVM.js";import"./chunk-JWR3NNFA.js";import"./chunk-J5YOXLBD.js";import"./chunk-I3P5RZX7.js";import"./chunk-UG2J5MTY.js";import"./chunk-G2KQUEGY.js";import"./chunk-KHUFPJE4.js";import"./chunk-5DWTU2PN.js";import"./chunk-36YZ2UF7.js";import"./chunk-VDGWDDBC.js";import"./chunk-D6APBW66.js";import"./chunk-FNKKENLS.js";import"./chunk-2L3BCZ2F.js";import"./chunk-GIUAY4KY.js";import"./chunk-M2RO34V7.js";import"./chunk-HJJTLOWZ.js";import"./chunk-JOGKQTCU.js";import"./chunk-7732TLNA.js";import"./chunk-3PZ2QLLR.js";import"./chunk-NWZYULZE.js";import"./chunk-KJB6JJXT.js";import"./chunk-S2KGZJHS.js";import"./chunk-NWGIQCCO.js";import"./chunk-UAAJ3BSW.js";import"./chunk-ZCRLZINE.js";import"./chunk-SUXUCW5I.js";import"./chunk-TJOZPPZR.js";import"./chunk-VQB5SLXZ.js";import"./chunk-6BK2S2WE.js";import"./chunk-ME4LVBTT.js";import"./chunk-5MWNXDQW.js";import"./chunk-RQFC7Q33.js";import"./chunk-4EQWK6P6.js";import"./chunk-GM5LIYLQ.js";import"./chunk-GOTVYSX5.js";import"./chunk-ZU5VHW6P.js";import"./chunk-SY74WSBN.js";import"./chunk-Y3X5OS5F.js";import"./chunk-WSZVSDD5.js";import"./chunk-KVN4FTPT.js";import"./chunk-ZFZX2NA3.js";import"./chunk-UUVTLYUK.js";import"./chunk-4RDTR2OF.js";import"./chunk-STYNOKOM.js";import"./chunk-GUEK5DOK.js";import"./chunk-VU4QET3C.js";import"./chunk-DMZ2XOEW.js";import"./chunk-PZF5ISGS.js";import"./chunk-UIYK4Y7K.js";import"./chunk-G7L5Y47C.js";import"./chunk-A2TK52B2.js";import"./chunk-LWHM5BWD.js";import"./chunk-J3XLOHWB.js";import"./chunk-JN7MSUGK.js";import"./chunk-JNLKLC7G.js";import"./chunk-WE7KIXR6.js";import"./chunk-XNXOW7BQ.js";import"./chunk-JLBUS4PR.js";import"./chunk-DJLRRCR6.js";import"./chunk-5HUAD4UU.js";import"./chunk-DGUAAG3T.js";export{a as QEKernelImpl,b as createKernel};
|
|
@@ -1,4 +1,4 @@
|
|
|
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.9.
|
|
2
|
-
import{b as p}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{b as p}from"./chunk-AOYN6XYJ.js";import{a as f,c as v}from"./chunk-UIYK4Y7K.js";import"./chunk-DGUAAG3T.js";v();import{existsSync as n,mkdirSync as m,readFileSync as u,writeFileSync as a}from"fs";import{join as d,dirname as h}from"path";var l=class{projectRoot;overwrite;generator;constructor(r){this.projectRoot=r.projectRoot,this.overwrite=r.overwrite??!1,this.generator=p()}async install(){let r={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode"),e=d(this.projectRoot,t.path);if(r.configPath=e,!n(e)||this.overwrite){let s=h(e);if(n(s)||m(s,{recursive:!0}),n(e)&&this.overwrite){let c=this.mergeExistingConfig(e,t.content);a(e,c)}else a(e,t.content);r.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=d(this.projectRoot,i.path);if(r.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||m(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);r.modeInstalled=!0}}catch(t){r.success=!1,r.errors.push(`Kilo Code installation failed: ${f(t)}`)}return r}mergeExistingConfig(r,t){try{let e=JSON.parse(u(r,"utf-8")),i=JSON.parse(t);return e.mcpServers||(e.mcpServers={}),Object.assign(e.mcpServers,i.mcpServers),JSON.stringify(e,null,2)+`
|
|
3
3
|
`}catch{return t}}mergeExistingModes(r,t){try{let e=JSON.parse(u(r,"utf-8")),i=JSON.parse(t);if(!Array.isArray(e))return t;let o=e.filter(s=>s.slug!=="qe-engineer");return o.push(...i),JSON.stringify(o,null,2)+`
|
|
4
4
|
`}catch{return t}}};function x(g){return new l(g)}export{l as KiloCodeInstaller,x as createKiloCodeInstaller};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{a as b}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{a as b}from"./chunk-XH774Q6Z.js";import{a as k,c as $}from"./chunk-UIYK4Y7K.js";import"./chunk-DGUAAG3T.js";$();import{existsSync as u,mkdirSync as y,readdirSync as S,readFileSync as q,writeFileSync as v}from"fs";import{join as o,dirname as E}from"path";import{fileURLToPath as P}from"url";var R=P(import.meta.url),M=E(R),A=class{projectRoot;options;openCodeDir;constructor(t){this.projectRoot=t.projectRoot,this.options={installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:!1,...t},this.openCodeDir=this.findOpenCodeDir()}findOpenCodeDir(){let t=[o(M,"../../.opencode"),o(M,"../../assets/opencode")],e=b(import.meta.url);e&&(t.push(o(e,".opencode")),t.push(o(e,"assets/opencode"))),t.push(o(process.cwd(),"node_modules/agentic-qe/assets/opencode"),o(process.cwd(),"node_modules/agentic-qe/.opencode"));for(let n of t)if(u(n)&&(u(o(n,"agents"))||u(o(n,"skills"))))return n;let s=o(process.cwd(),".opencode");return u(s)&&(u(o(s,"agents"))||u(o(s,"skills")))?s:t[0]}async install(){let t=o(this.projectRoot,".kiro"),e={success:!0,agentsInstalled:[],skillsInstalled:[],hooksInstalled:[],steeringInstalled:[],mcpConfigured:!1,errors:[],targetDir:t};try{if(e.mcpConfigured=this.installMcpConfig(t),this.options.installAgents){let s=this.installAgents(t);e.agentsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSkills){let s=this.installSkills(t);e.skillsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installHooks){let s=this.installHooks(t);e.hooksInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSteering){let s=this.installSteering(t);e.steeringInstalled=s.installed,e.errors.push(...s.errors)}}catch(s){e.success=!1,e.errors.push(`Kiro installation failed: ${k(s)}`)}return e}installMcpConfig(t){let e=o(t,"settings"),s=o(e,"mcp.json");return u(s)&&!this.options.overwrite?!1:(y(e,{recursive:!0}),v(s,JSON.stringify({mcpServers:{"agentic-qe":{command:"npx",args:["-y","agentic-qe@latest","mcp"],env:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"},disabled:!1,autoApprove:["fleet_init","fleet_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","memory_store","memory_query"]}}},null,2)+`
|
|
3
3
|
`),!0)}installAgents(t){let e=[],s=[],n=o(this.openCodeDir,"agents"),l=o(t,"agents");if(!u(n))return y(l,{recursive:!0}),this.writeDefaultQEAgent(l),e.push("qe-specialist"),{installed:e,errors:s};y(l,{recursive:!0});let i=S(n).filter(r=>r.endsWith(".yaml"));for(let r of i){let c=r.replace(".yaml",""),a=o(l,`${c}.json`);if(!(u(a)&&!this.options.overwrite))try{let p=q(o(n,r),"utf-8"),m=this.parseYamlAgent(p),d=this.convertToKiroAgent(m);v(a,JSON.stringify(d,null,2)+`
|
|
4
4
|
`),e.push(c)}catch(p){s.push(`Failed to convert agent ${r}: ${k(p)}`)}}let g=o(this.options.projectRoot,".claude","agents");if(u(g)){let r=["subagents","n8n","testing","analysis"];for(let c of r){let a=o(g,c);if(!u(a))continue;let p=S(a,{recursive:!1}).filter(m=>typeof m=="string"&&m.endsWith(".md")&&m!=="README.md");for(let m of p){let d=m.replace(".md",""),h=o(l,`${d}.json`);if(!(u(h)&&!this.options.overwrite))try{let f=q(o(a,m),"utf-8"),w=this.convertMdAgentToKiro(f,d);w&&(v(h,JSON.stringify(w,null,2)+`
|
|
5
5
|
`),e.push(d))}catch(f){s.push(`Failed to convert subagent ${m}: ${k(f)}`)}}}}return{installed:e,errors:s}}convertMdAgentToKiro(t,e){let s=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!s)return null;let n=s[1],l=s[2].trim(),i=d=>{let h=new RegExp(`^${d}:\\s*"?([^"
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.14");process.exit(0)}
|
|
2
|
+
import{g as a}from"./chunk-GOTVYSX5.js";import"./chunk-STYNOKOM.js";import"./chunk-GUEK5DOK.js";import"./chunk-DMZ2XOEW.js";import"./chunk-PZF5ISGS.js";import"./chunk-UIYK4Y7K.js";import"./chunk-DGUAAG3T.js";export{a as KnowledgeGraphService};
|