agentic-qe 3.9.14 → 3.9.16
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/accessibility-testing/SKILL.md +18 -0
- package/.claude/skills/enterprise-integration-testing/SKILL.md +1 -1
- package/.claude/skills/pentest-validation/SKILL.md +1 -1
- package/.claude/skills/qe-browser/evals/qe-browser.yaml +46 -63
- package/.claude/skills/qe-browser/scripts/smoke-test.sh +16 -4
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +52 -0
- package/assets/skills/accessibility-testing/SKILL.md +18 -0
- package/assets/skills/qe-browser/evals/qe-browser.yaml +46 -63
- package/assets/skills/qe-browser/scripts/smoke-test.sh +16 -4
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/brain-commands.d.ts +14 -0
- package/dist/cli/brain-commands.js +24 -0
- package/dist/cli/bundle.js +7 -7
- package/dist/cli/chunks/adapter-XFJIW42U.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-O6EXMPMF.js → agent-booster-wasm-IECTFMRK.js} +2 -2
- package/dist/cli/chunks/{agent-handler-4LPJVTJU.js → agent-handler-HLLTKZ5G.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-PRR323JZ.js → agent-memory-branch-WJUD3DS4.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-UD4SXENM.js +2 -0
- package/dist/cli/chunks/{audit-YCKXQOXD.js → audit-3DLZNWHO.js} +2 -2
- package/dist/cli/chunks/base-ETEN7L2V.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-44RIH62G.js → better-sqlite3-Q356NEQ6.js} +2 -2
- package/dist/cli/chunks/brain-handler-MX2HP7LO.js +89 -0
- package/dist/cli/chunks/{branch-enumerator-RVVS2UYR.js → branch-enumerator-Z3TF3HVO.js} +2 -2
- package/dist/cli/chunks/{browser-L6IKC4PR.js → browser-Z6PQ7FTO.js} +2 -2
- package/dist/cli/chunks/browser-workflow-KVHPOIBA.js +2 -0
- package/dist/cli/chunks/{chunk-JOGKQTCU.js → chunk-2KCMS4UW.js} +3 -3
- package/dist/cli/chunks/{chunk-VUS4VRPQ.js → chunk-2MJEAEOW.js} +2 -2
- package/dist/cli/chunks/{chunk-FNKKENLS.js → chunk-3ADFXSO2.js} +2 -2
- package/dist/cli/chunks/{chunk-JN7MSUGK.js → chunk-3CAPNE2H.js} +2 -2
- package/dist/cli/chunks/{chunk-MFGYMNNY.js → chunk-3EUA73H6.js} +2 -2
- package/dist/cli/chunks/{chunk-ORHCO2I7.js → chunk-3H657FNU.js} +2 -2
- package/dist/cli/chunks/{chunk-OZBTC26R.js → chunk-3K4IX7L4.js} +2 -2
- package/dist/cli/chunks/{chunk-GIUAY4KY.js → chunk-3SLFWPRE.js} +3 -3
- package/dist/cli/chunks/{chunk-P5YSBYZV.js → chunk-3ZGYB23S.js} +1 -1
- package/dist/cli/chunks/{chunk-6BK2S2WE.js → chunk-46K7ALFU.js} +2 -2
- package/dist/cli/chunks/{chunk-I3P5RZX7.js → chunk-4CFQZHUC.js} +3 -3
- package/dist/cli/chunks/{chunk-DMZ2XOEW.js → chunk-4PFHQH4B.js} +2 -2
- package/dist/cli/chunks/{chunk-TOSFK4VG.js → chunk-4ZN4GM7W.js} +1 -1
- package/dist/cli/chunks/{chunk-MXIFVOYA.js → chunk-5A5XANSD.js} +2 -2
- package/dist/cli/chunks/{chunk-UG2J5MTY.js → chunk-5E7FVOOG.js} +1 -1
- package/dist/cli/chunks/chunk-5LDXAVDC.js +2 -0
- package/dist/cli/chunks/{chunk-KFAN5FZM.js → chunk-666L7MC2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZCRLZINE.js → chunk-66BUIFFH.js} +2 -2
- package/dist/cli/chunks/{chunk-6EZY2QVM.js → chunk-6V5P2VMQ.js} +8 -8
- package/dist/cli/chunks/{chunk-YPMBD44A.js → chunk-6XKZ62O7.js} +2 -2
- package/dist/cli/chunks/{chunk-JNLKLC7G.js → chunk-77OVXVN2.js} +2 -2
- package/dist/cli/chunks/{chunk-I5U64MHU.js → chunk-7DP2IQ6F.js} +2 -2
- package/dist/cli/chunks/{chunk-FFACJODG.js → chunk-7IF4LRX2.js} +2 -2
- package/dist/cli/chunks/{chunk-36YZ2UF7.js → chunk-7JFSMXIA.js} +2 -2
- package/dist/cli/chunks/{chunk-VU4QET3C.js → chunk-7MF6LVLH.js} +2 -2
- package/dist/cli/chunks/{chunk-WELNFHDN.js → chunk-7NMLIJHL.js} +1 -1
- package/dist/cli/chunks/{chunk-IOHDE27P.js → chunk-7PHYOV2X.js} +2 -2
- package/dist/cli/chunks/{chunk-YZBY4ZRF.js → chunk-7V2Z3PUJ.js} +2 -2
- package/dist/cli/chunks/{chunk-GM5LIYLQ.js → chunk-AA6IUBCM.js} +2 -2
- package/dist/cli/chunks/{chunk-TJOZPPZR.js → chunk-AFLQFUXA.js} +2 -2
- package/dist/cli/chunks/{chunk-KJB6JJXT.js → chunk-BCT26J7X.js} +1 -1
- package/dist/cli/chunks/{chunk-D6APBW66.js → chunk-BEE5KXQT.js} +1 -1
- package/dist/cli/chunks/{chunk-A2TK52B2.js → chunk-BNDK7JRW.js} +2 -2
- package/dist/cli/chunks/{chunk-4EQWK6P6.js → chunk-CR7LLS26.js} +2 -2
- package/dist/cli/chunks/{chunk-S2KGZJHS.js → chunk-DBCN7R63.js} +1 -1
- package/dist/cli/chunks/{chunk-BNPJMPM3.js → chunk-DF3DZP7H.js} +2 -2
- package/dist/cli/chunks/{chunk-OGLS6HB4.js → chunk-DJPS7H2M.js} +1 -1
- package/dist/cli/chunks/{chunk-G7L5Y47C.js → chunk-ED5OUSYZ.js} +1 -1
- package/dist/cli/chunks/{chunk-PZF5ISGS.js → chunk-EFTK4ZVP.js} +1 -1
- package/dist/cli/chunks/chunk-FEQ5RDQL.js +18 -0
- package/dist/cli/chunks/{chunk-VDGWDDBC.js → chunk-FKQV52TC.js} +2 -2
- package/dist/cli/chunks/{chunk-DD4T7ZUM.js → chunk-FLWIEPAT.js} +1 -1
- package/dist/cli/chunks/{chunk-5DWTU2PN.js → chunk-FQTUUZVK.js} +1 -1
- package/dist/cli/chunks/{chunk-4JYLXYAH.js → chunk-G5DMEEQQ.js} +1 -1
- package/dist/cli/chunks/{chunk-JLBUS4PR.js → chunk-GB6D3SSY.js} +2 -2
- package/dist/cli/chunks/{chunk-HEQ23HBE.js → chunk-GP7IXB3E.js} +2 -2
- package/dist/cli/chunks/{chunk-3NUMJB3U.js → chunk-H3JEGAFC.js} +9 -9
- package/dist/cli/chunks/{chunk-ZFZX2NA3.js → chunk-H4BZJVKU.js} +2 -2
- package/dist/cli/chunks/{chunk-AOYN6XYJ.js → chunk-HFGCLV56.js} +1 -1
- package/dist/cli/chunks/{chunk-XNXOW7BQ.js → chunk-HJUC2DE6.js} +2 -2
- package/dist/cli/chunks/{chunk-NWZYULZE.js → chunk-HN6GVQ4Q.js} +4 -4
- package/dist/cli/chunks/{chunk-RQFC7Q33.js → chunk-HON4X4Z3.js} +2 -2
- package/dist/cli/chunks/{chunk-AEQMQVDJ.js → chunk-HVAW64YW.js} +2 -2
- package/dist/cli/chunks/{chunk-5MWNXDQW.js → chunk-HXF4FUPY.js} +2 -2
- package/dist/cli/chunks/{chunk-HJJTLOWZ.js → chunk-IUQ6HE2J.js} +2 -2
- package/dist/cli/chunks/{chunk-IH4OOAEP.js → chunk-J2ERTUDX.js} +1 -1
- package/dist/cli/chunks/{chunk-DNFDSDKE.js → chunk-JCQ5PXVM.js} +2 -2
- package/dist/cli/chunks/{chunk-XH774Q6Z.js → chunk-JNXIYHLI.js} +1 -1
- package/dist/cli/chunks/{chunk-ERMIIRYN.js → chunk-JUKCBZCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-AHVUILGE.js → chunk-JZOMOYHZ.js} +1 -1
- package/dist/cli/chunks/{chunk-UAAJ3BSW.js → chunk-KLVS6FT2.js} +2 -2
- package/dist/cli/chunks/{chunk-GUEK5DOK.js → chunk-KR7S4IZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-VQB5SLXZ.js → chunk-L2GANTQN.js} +2 -2
- package/dist/cli/chunks/{chunk-GALNZTYE.js → chunk-LJINNQNN.js} +2 -2
- package/dist/cli/chunks/{chunk-IL3ESNHA.js → chunk-LSA4XGSE.js} +3 -3
- package/dist/cli/chunks/{chunk-M2RO34V7.js → chunk-LVA53A5R.js} +4 -4
- package/dist/cli/chunks/{chunk-LJ3WQIBN.js → chunk-LVK2PDUW.js} +1 -1
- package/dist/cli/chunks/{chunk-3ZKTPPIC.js → chunk-LWG7LKOK.js} +1 -1
- package/dist/cli/chunks/{chunk-PFSSI3YR.js → chunk-MECDNFOJ.js} +2 -2
- package/dist/cli/chunks/{chunk-FWI7PK4X.js → chunk-MFRC267A.js} +1 -1
- package/dist/cli/chunks/{chunk-WE7KIXR6.js → chunk-MJKFU6A6.js} +2 -2
- package/dist/cli/chunks/{chunk-5U6M4XCP.js → chunk-MQHP65QB.js} +3 -3
- package/dist/cli/chunks/{chunk-7732TLNA.js → chunk-MTF6ABUH.js} +2 -2
- package/dist/cli/chunks/{chunk-ME4LVBTT.js → chunk-N5ZTPAX7.js} +2 -2
- package/dist/cli/chunks/{chunk-NWGIQCCO.js → chunk-NCXXXZGL.js} +1 -1
- package/dist/cli/chunks/{chunk-DJLRRCR6.js → chunk-NIXMFJJC.js} +2 -2
- package/dist/cli/chunks/{chunk-JWR3NNFA.js → chunk-NLU4XJBN.js} +1 -1
- package/dist/cli/chunks/{chunk-DGUAAG3T.js → chunk-NOJVROCD.js} +1 -1
- package/dist/cli/chunks/{chunk-Z3PSKGBO.js → chunk-OE7SGIX2.js} +2 -2
- package/dist/cli/chunks/{chunk-KHUFPJE4.js → chunk-OP7X434R.js} +2 -2
- package/dist/cli/chunks/{chunk-WUYJYRBY.js → chunk-P4IYRPCB.js} +1 -1
- package/dist/cli/chunks/{chunk-GOTVYSX5.js → chunk-PNZADZSI.js} +3 -3
- package/dist/cli/chunks/{chunk-3PZ2QLLR.js → chunk-PPUEXTH2.js} +3 -3
- package/dist/cli/chunks/{chunk-6J6GXRHX.js → chunk-PQLT3X6X.js} +3 -3
- package/dist/cli/chunks/{chunk-VVKENR4I.js → chunk-QEKZA2NJ.js} +1 -1
- package/dist/cli/chunks/{chunk-S6SM7LJK.js → chunk-QKQAQPXY.js} +2 -2
- package/dist/cli/chunks/{chunk-LWHM5BWD.js → chunk-RFLSJ7OL.js} +2 -2
- package/dist/cli/chunks/{chunk-WSZVSDD5.js → chunk-RVQXMMRO.js} +2 -2
- package/dist/cli/chunks/{chunk-Q4DAYLH4.js → chunk-RYCAVZSD.js} +2 -2
- package/dist/cli/chunks/{chunk-VEAVDXXT.js → chunk-SMNOZEM7.js} +2 -2
- package/dist/cli/chunks/{chunk-4RDTR2OF.js → chunk-T36IXY5W.js} +2 -2
- package/dist/cli/chunks/{chunk-J3XLOHWB.js → chunk-T7VIUEKI.js} +2 -2
- package/dist/cli/chunks/{chunk-J5YOXLBD.js → chunk-TFBEX7ED.js} +1 -1
- package/dist/cli/chunks/{chunk-Y3X5OS5F.js → chunk-TPRYLARW.js} +2 -2
- package/dist/cli/chunks/{chunk-SY74WSBN.js → chunk-TR4NPMRW.js} +2 -2
- package/dist/cli/chunks/{chunk-WVN4YJSF.js → chunk-TUPFBZKO.js} +1 -1
- package/dist/cli/chunks/{chunk-UUVTLYUK.js → chunk-TWEBJWJI.js} +2 -2
- package/dist/cli/chunks/{chunk-QUK34CSU.js → chunk-UH7TV6BY.js} +1 -1
- package/dist/cli/chunks/{chunk-QLWP7ZIT.js → chunk-UT4CXF6C.js} +2 -2
- package/dist/cli/chunks/{chunk-UIYK4Y7K.js → chunk-V2ELGHLG.js} +2 -2
- package/dist/cli/chunks/{chunk-ZU5VHW6P.js → chunk-VK2GKQYI.js} +2 -2
- package/dist/cli/chunks/{chunk-FYBTGEOV.js → chunk-VNAAXZGF.js} +1 -1
- package/dist/cli/chunks/{chunk-G2KQUEGY.js → chunk-VOAECU7B.js} +2 -2
- package/dist/cli/chunks/{chunk-3GIZRGX6.js → chunk-W4ZV6LAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-5HUAD4UU.js → chunk-W6TMZY5R.js} +2 -2
- package/dist/cli/chunks/{chunk-KVN4FTPT.js → chunk-WKLSXJD4.js} +2 -2
- package/dist/cli/chunks/{chunk-BOMJHE4I.js → chunk-WSKASZYC.js} +2 -2
- package/dist/cli/chunks/{chunk-6GKXC6DE.js → chunk-WVFLNGOK.js} +2 -2
- package/dist/cli/chunks/{chunk-SUXUCW5I.js → chunk-WVHH3OQ4.js} +2 -2
- package/dist/cli/chunks/{chunk-CGC63MGF.js → chunk-XAULPLOC.js} +4 -4
- package/dist/cli/chunks/{chunk-L4IWZXSC.js → chunk-XKMMFQSJ.js} +1 -1
- package/dist/cli/chunks/{chunk-7IJBZGZY.js → chunk-XQ6WIPDC.js} +1 -1
- package/dist/cli/chunks/{chunk-LKGLKX2A.js → chunk-ZCE6JNRI.js} +2 -2
- package/dist/cli/chunks/{chunk-BFCMOMOF.js → chunk-ZCZJYM42.js} +1 -1
- package/dist/cli/chunks/{chunk-2L3BCZ2F.js → chunk-ZXLF3IKT.js} +1 -1
- package/dist/cli/chunks/{ci-QQ4F5TYO.js → ci-TTP5HJSW.js} +2 -2
- package/dist/cli/chunks/{ci-output-QC4WRENA.js → ci-output-TKESU45X.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-HFQUNYTK.js → circuit-breaker-GFRV5R7E.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-XNSCWIUN.js → claude-flow-setup-LY6MADFA.js} +2 -2
- package/dist/cli/chunks/client-ZDVM5WFL.js +2 -0
- package/dist/cli/chunks/{cline-installer-S3CECBYL.js → cline-installer-OSAILLDH.js} +2 -2
- package/dist/cli/chunks/{code-QHUELDUH.js → code-ASRSOGYH.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-QLA5EQTE.js → code-index-extractor-AMLGVHB7.js} +2 -2
- package/dist/cli/chunks/{codex-installer-CQ7JNNOA.js → codex-installer-3CKH3WV4.js} +2 -2
- package/dist/cli/chunks/{completions-S33U3KIT.js → completions-MXNPWLOE.js} +91 -10
- package/dist/cli/chunks/{complexity-analyzer-J7IEW3EM.js → complexity-analyzer-2Z347PXF.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-DVU24D37.js → continuedev-installer-LE7K745N.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-DYISOPBC.js → copilot-installer-CHJL3275.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-URJADKKS.js → cost-tracker-C3ZWNNSV.js} +2 -2
- package/dist/cli/chunks/{coverage-NGMKJNW6.js → coverage-6JOXBVDL.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-J5VK276J.js +2 -0
- package/dist/cli/chunks/{cursor-installer-DFBJRDSY.js → cursor-installer-RKCNWO42.js} +2 -2
- package/dist/cli/chunks/{daemon-JSKKVVCV.js → daemon-XXWOT6TM.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-YITFS6MR.js → dag-attention-scheduler-37MG6XR4.js} +2 -2
- package/dist/cli/chunks/{detect-5APZP2D3.js → detect-QOTL36CE.js} +2 -2
- package/dist/cli/chunks/{domain-handler-WHH6XPSZ.js → domain-handler-TJNLNJ7Z.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-SERX53SS.js → domain-transfer-FDHC2MGH.js} +2 -2
- package/dist/cli/chunks/dream-VCLN6RM4.js +2 -0
- package/dist/cli/chunks/esm-node-YZSRCH6T.js +2 -0
- package/dist/cli/chunks/eval-JP7CLUTD.js +15 -0
- package/dist/cli/chunks/{fast-paths-4MSOOJVK.js → fast-paths-CWTVLIIC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-564YFR65.js → feature-flags-H2UU53L4.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WJT57IEJ.js → feature-flags-SKFBAHR3.js} +2 -2
- package/dist/cli/chunks/{file-discovery-5QVG65WF.js → file-discovery-RWVGKIDB.js} +2 -2
- package/dist/cli/chunks/{fleet-CF5JRK5B.js → fleet-JOSUYRTZ.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-NYQ77563.js → gnn-wrapper-WNOZFTDD.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-42QJPKHE.js → heartbeat-handler-73YSR6K7.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-7XEAV74Y.js → heartbeat-scheduler-EN52JZUX.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-Y5HVTNJW.js +2 -0
- package/dist/cli/chunks/hnsw-index-NZTCPZA5.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-ZRR6PGWN.js → hnsw-legacy-bridge-PWD6DXS4.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-DY7NOW76.js → hnswlib-node-VAZOCNY7.js} +2 -2
- package/dist/cli/chunks/{hooks-IRRHEJLR.js → hooks-K7XGDF2Y.js} +6 -6
- package/dist/cli/chunks/{hybrid-router-S4JXJLUY.js → hybrid-router-6W323WKW.js} +2 -2
- package/dist/cli/chunks/{hypergraph-engine-WFHZJMP2.js → hypergraph-engine-R2N4C24I.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-LHUKR7PT.js → hypergraph-handler-AY4YZDOG.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-ROWLIS6H.js +2 -0
- package/dist/cli/chunks/{init-handler-ZBIW7PSB.js → init-handler-UDBW4P3Z.js} +6 -6
- package/dist/cli/chunks/init-wizard-MI76CUL5.js +2 -0
- package/dist/cli/chunks/kernel-5WVAV5RX.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-JYHA4NW7.js → kilocode-installer-J2NZUDEQ.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-OBXTRK77.js → kiro-installer-AHOOKFQH.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-QXL3AWPV.js +2 -0
- package/dist/cli/chunks/{learning-OAEJHEJD.js → learning-VC7X2HKA.js} +3 -3
- package/dist/cli/chunks/{llm-router-NNEOZAVB.js → llm-router-3PU7CH5P.js} +4 -4
- package/dist/cli/chunks/{load-WIKLBESW.js → load-WB4JD6X7.js} +2 -2
- package/dist/cli/chunks/load-test-2JOY7YH6.js +2 -0
- package/dist/cli/chunks/{mcp-KR43GFGP.js → mcp-QUU2DYYK.js} +2 -2
- package/dist/cli/chunks/{memory-KQIYKAYU.js → memory-UAEWPG34.js} +5 -5
- package/dist/cli/chunks/memory-backend-ZKGLAWQZ.js +2 -0
- package/dist/cli/chunks/{memory-handlers-LAI4AO4O.js → memory-handlers-3FBXIZG4.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-NPS3VOAR.js → multi-model-executor-CIUHXR43.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-FE475WME.js → opencode-installer-VV6RIHNR.js} +2 -2
- package/dist/cli/chunks/{orchestrator-MW4MZ3RW.js → orchestrator-WV27PZZM.js} +20 -20
- package/dist/cli/chunks/{pipeline-R2TGZSUA.js → pipeline-JRBCX2U3.js} +2 -2
- package/dist/cli/chunks/{platform-N2GZBCBP.js → platform-TUPMH4ND.js} +2 -2
- package/dist/cli/chunks/{plugin-V2AQF23V.js → plugin-H757CYQK.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-ZQSYRLRS.js → prime-radiant-advanced-wasm-5BWO25RA.js} +2 -2
- package/dist/cli/chunks/protocol-executor-3Q4QY7G6.js +2 -0
- package/dist/cli/chunks/{protocol-handler-V3U724F2.js → protocol-handler-Z6DCNTUU.js} +2 -2
- package/dist/cli/chunks/{prove-NCH56HZB.js → prove-4OGWFOUM.js} +2 -2
- package/dist/cli/chunks/{provider-manager-7NUHS3T5.js → provider-manager-K736L6LN.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-SAMJF3NF.js +2 -0
- package/dist/cli/chunks/{quality-J3IVPPPW.js → quality-YFLEATGZ.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-OFRH67Y2.js +2 -0
- package/dist/cli/chunks/{real-embeddings-VURZXAEY.js → real-embeddings-5QUSL7J4.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-STWFJGMR.js → roocode-installer-HDWE5XW3.js} +2 -2
- package/dist/cli/chunks/router-UDHEENEY.js +2 -0
- package/dist/cli/chunks/routing-feedback-PBZRVFVL.js +2 -0
- package/dist/cli/chunks/{routing-handler-6GZT7EXM.js → routing-handler-P6PP3FYW.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-LCPAH6WH.js → ruvector-commands-VNMTRQML.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-76LWFT5X.js → rvf-dual-writer-A7VW5CAT.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-G7KFWJKY.js → rvf-migration-adapter-QIPSNASM.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-3DXOUPWF.js → rvf-migration-coordinator-XT4XDLRZ.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-CJFEDG74.js +2 -0
- package/dist/cli/chunks/safe-db-YMSZFHWP.js +2 -0
- package/dist/cli/chunks/schedule-B43N6CVB.js +2 -0
- package/dist/cli/chunks/scheduler-ITZH5YQM.js +2 -0
- package/dist/cli/chunks/{security-XDBPYA5T.js → security-E2XCP5CG.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-PV5ZBJ25.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-UGXTS2XI.js → shared-rvf-dual-writer-NPWTXHUI.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-RK5CKPHB.js +2 -0
- package/dist/cli/chunks/{status-handler-ZLXES3QL.js → status-handler-MWVNDZSZ.js} +2 -2
- package/dist/cli/chunks/{structural-health-4PFCOQ7T.js → structural-health-2KZO43IF.js} +2 -2
- package/dist/cli/chunks/{sync-3DROIEZN.js → sync-C5BOK3WU.js} +2 -2
- package/dist/cli/chunks/{task-handler-4UGZ5VIE.js → task-handler-KRVSHJGJ.js} +2 -2
- package/dist/cli/chunks/{task-handlers-I5VVBTWI.js → task-handlers-CKOHD633.js} +2 -2
- package/dist/cli/chunks/{test-Z2MM7O5A.js → test-3B7FK6MJ.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-AP76GKN5.js → test-scheduling-HZIMSTAX.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-P54N6PZV.js → token-bootstrap-JJCANIHJ.js} +2 -2
- package/dist/cli/chunks/{token-usage-AXAZTPA6.js → token-usage-5VCMBZU7.js} +2 -2
- package/dist/cli/chunks/{transformers-VOZ2Z7FS.js → transformers-ETUTMOTF.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-IYKLBTXB.js → tree-sitter-wasm-parser-TMR44BKP.js} +2 -2
- package/dist/cli/chunks/{types-TKDH5EBW.js → types-GYT6373C.js} +2 -2
- package/dist/cli/chunks/unified-memory-LIKELZVA.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-VTN3MUB4.js +2 -0
- package/dist/cli/chunks/unified-persistence-MQVUY5WN.js +2 -0
- package/dist/cli/chunks/upgrade-534QLY7P.js +5 -0
- package/dist/cli/chunks/{validate-ZGF5FVZE.js → validate-UBVF3CSS.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-OPWWUWYA.js → validate-swarm-2XD45EVM.js} +2 -2
- package/dist/cli/chunks/{vibium-HEQUGRKJ.js → vibium-NMT6AQ4S.js} +2 -2
- package/dist/cli/chunks/visual-security-HVJWGY7T.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-JZ7JCJJR.js → web-tree-sitter-RNG6NRDD.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-2SGRCS6C.js → windsurf-installer-RVCDSJT3.js} +2 -2
- package/dist/cli/chunks/witness-chain-5R322YYF.js +2 -0
- package/dist/cli/chunks/{witness-chain-LJUYOCB5.js → witness-chain-YDFB22MT.js} +2 -2
- package/dist/cli/chunks/{workflow-QORI3KO7.js → workflow-MHW4KHNK.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-637BCZI4.js +2 -0
- package/dist/cli/chunks/{wrappers-3NR7LNB5.js → wrappers-SAZY3C2S.js} +2 -2
- package/dist/cli/commands/eval.js +86 -0
- package/dist/cli/commands/upgrade.d.ts +96 -0
- package/dist/cli/commands/upgrade.js +342 -0
- package/dist/cli/completions/index.d.ts +27 -0
- package/dist/cli/completions/index.js +112 -14
- package/dist/cli/handlers/brain-handler.d.ts +2 -0
- package/dist/cli/handlers/brain-handler.js +221 -1
- package/dist/cli/index.js +5 -1
- package/dist/init/browser-engine-installer.d.ts +60 -1
- package/dist/init/browser-engine-installer.js +73 -3
- package/dist/init/phases/09-assets.js +9 -2
- package/dist/integrations/ruvector/brain-diff.d.ts +93 -0
- package/dist/integrations/ruvector/brain-diff.js +281 -0
- package/dist/integrations/ruvector/brain-search.d.ts +78 -0
- package/dist/integrations/ruvector/brain-search.js +154 -0
- package/dist/mcp/bundle.js +1 -1
- package/dist/validation/command-eval-runner.d.ts +154 -0
- package/dist/validation/command-eval-runner.js +293 -0
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.js +4 -0
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-W2EM7ZQ7.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-JQMPNHQU.js +0 -2
- package/dist/cli/chunks/base-EOPYE6JR.js +0 -2
- package/dist/cli/chunks/brain-handler-IAYJBAFL.js +0 -68
- package/dist/cli/chunks/browser-workflow-CSARLAJD.js +0 -2
- package/dist/cli/chunks/chunk-53KLVMAT.js +0 -18
- package/dist/cli/chunks/chunk-STYNOKOM.js +0 -2
- package/dist/cli/chunks/client-3GECKJWB.js +0 -2
- package/dist/cli/chunks/cross-domain-router-UYONX76U.js +0 -2
- package/dist/cli/chunks/dream-Z5QDQJSM.js +0 -2
- package/dist/cli/chunks/esm-node-FOI5Y3O2.js +0 -2
- package/dist/cli/chunks/eval-FM3BLVFO.js +0 -15
- package/dist/cli/chunks/hnsw-adapter-NOAQ76QF.js +0 -2
- package/dist/cli/chunks/hnsw-index-KDIZQRSB.js +0 -2
- package/dist/cli/chunks/impact-analyzer-VDXJBWFG.js +0 -2
- package/dist/cli/chunks/init-wizard-Q6DEACKX.js +0 -2
- package/dist/cli/chunks/kernel-YNQOGTM5.js +0 -2
- package/dist/cli/chunks/knowledge-graph-GOZG3YOM.js +0 -2
- package/dist/cli/chunks/load-test-UJLTMPXW.js +0 -2
- package/dist/cli/chunks/memory-backend-WJH6XER3.js +0 -2
- package/dist/cli/chunks/protocol-executor-LYYYHXAX.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-JK4UKLYY.js +0 -2
- package/dist/cli/chunks/queen-coordinator-6OKLSCHV.js +0 -2
- package/dist/cli/chunks/router-DDZHCGUD.js +0 -2
- package/dist/cli/chunks/routing-feedback-BA66F37P.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-TXTRJNPW.js +0 -2
- package/dist/cli/chunks/safe-db-IFBVWIGF.js +0 -2
- package/dist/cli/chunks/schedule-WMZLOPCW.js +0 -2
- package/dist/cli/chunks/scheduler-WBORWJD5.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-SQQ27EEI.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-XH47B3BG.js +0 -2
- package/dist/cli/chunks/unified-memory-NHJHPLIC.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-IMMCI2XK.js +0 -2
- package/dist/cli/chunks/unified-persistence-JS6CEV35.js +0 -2
- package/dist/cli/chunks/visual-security-XLO5JBVP.js +0 -2
- package/dist/cli/chunks/witness-chain-PPWPHYTY.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-H4DKRHVP.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{b as C}from"./chunk-S6SM7LJK.js";import{a,d as ne}from"./chunk-IH4OOAEP.js";import{b as v,c as oe}from"./chunk-LJ3WQIBN.js";import"./chunk-ZFZX2NA3.js";import"./chunk-UUVTLYUK.js";import"./chunk-STYNOKOM.js";import"./chunk-GUEK5DOK.js";import{b as D,d as re}from"./chunk-DMZ2XOEW.js";import{b as T,c as O}from"./chunk-UIYK4Y7K.js";import"./chunk-LWHM5BWD.js";import"./chunk-J3XLOHWB.js";import"./chunk-JN7MSUGK.js";import{b as se,d as de}from"./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";de();O();var ie={failureThreshold:5,resetTimeoutMs:3e4,halfOpenSuccessThreshold:2,failureWindowMs:6e4,includeTimeouts:!0},Z=class{state="closed";failures=[];successCount=0;totalRequests=0;totalSuccesses=0;totalFailures=0;rejectedCount=0;lastFailureTime;lastSuccessTime;openedAt;halfOpenSuccesses=0;config;providerType;constructor(t,e={}){this.providerType=t,this.config={...ie,...e}}getState(){return this.state==="open"&&this.openedAt&&Date.now()-this.openedAt.getTime()>=this.config.resetTimeoutMs&&this.transitionTo("half-open"),this.state}canExecute(){let t=this.getState();return t==="closed"?!0:t!=="open"}async execute(t){if(this.totalRequests++,this.getState()==="open")throw this.rejectedCount++,a(`Circuit breaker is open for provider ${this.providerType}`,"CIRCUIT_OPEN",{provider:this.providerType,retryable:!0,retryAfterMs:this.getTimeUntilTransition()});try{let r=await t();return this.recordSuccess(),r}catch(r){throw this.recordFailure(T(r)),r}}recordSuccess(){this.successCount++,this.totalSuccesses++,this.lastSuccessTime=new Date,this.getState()==="half-open"&&(this.halfOpenSuccesses++,this.halfOpenSuccesses>=this.config.halfOpenSuccessThreshold&&this.transitionTo("closed"))}recordFailure(t){if(this.totalFailures++,this.lastFailureTime=new Date,(t.message.toLowerCase().includes("timeout")||t.name==="TimeoutError"||t.name==="AbortError")&&!this.config.includeTimeouts)return;this.failures.push({timestamp:new Date,error:t}),this.cleanOldFailures();let r=this.getState();if(r==="half-open"){this.transitionTo("open");return}r==="closed"&&this.failures.length>=this.config.failureThreshold&&this.transitionTo("open")}getStats(){return{state:this.getState(),totalRequests:this.totalRequests,successCount:this.totalSuccesses,failureCount:this.totalFailures,rejectedCount:this.rejectedCount,lastFailureTime:this.lastFailureTime,lastSuccessTime:this.lastSuccessTime,timeUntilTransitionMs:this.getTimeUntilTransition()}}reset(){this.state="closed",this.failures=[],this.successCount=0,this.halfOpenSuccesses=0,this.openedAt=void 0}forceOpen(){this.transitionTo("open")}forceHalfOpen(){this.transitionTo("half-open")}getRecentFailures(t=5){return this.failures.slice(-t).map(e=>`[${e.timestamp.toISOString()}] ${e.error.message}`)}transitionTo(t){if(this.state!==t)switch(this.state=t,t){case"open":this.openedAt=new Date,this.halfOpenSuccesses=0;break;case"half-open":this.halfOpenSuccesses=0;break;case"closed":this.failures=[],this.openedAt=void 0,this.halfOpenSuccesses=0;break}}cleanOldFailures(){let t=Date.now()-this.config.failureWindowMs;this.failures=this.failures.filter(e=>e.timestamp.getTime()>t)}getTimeUntilTransition(){if(this.state==="open"&&this.openedAt){let t=Date.now()-this.openedAt.getTime(),e=this.config.resetTimeoutMs-t;return Math.max(0,e)}}},N=class{breakers=new Map;defaultConfig;constructor(t={}){this.defaultConfig={...ie,...t}}getBreaker(t,e){let r=this.breakers.get(t);return r||(r=new Z(t,{...this.defaultConfig,...e}),this.breakers.set(t,r)),r}getAllStats(){let t={};for(let[e,r]of this.breakers)t[e]=r.getStats();return t}getAvailableProviders(){let t=[];for(let[e,r]of this.breakers)r.canExecute()&&t.push(e);return t}resetAll(){for(let t of this.breakers.values())t.reset()}reset(t){let e=this.breakers.get(t);e&&e.reset()}};var ae={maxSize:1e3,defaultTtlMs:36e5,enableLRU:!0,cacheGenerations:!0,cacheEmbeddings:!0,cacheCompletions:!0},R=class{cache=new Map;accessOrder=[];config;hits=0;misses=0;evictions=0;constructor(t={}){this.config={...ae,...t}}static generateKey(t,e,r){let n=[t,r?.model??"default",String(r?.temperature??.7),String(r?.maxTokens??0),r?.systemPrompt??"",e].join("|"),o=0;for(let i=0;i<n.length;i++){let l=n.charCodeAt(i);o=(o<<5)-o+l,o=o&o}return`${t}:${Math.abs(o).toString(36)}`}get(t){let e=this.cache.get(t);if(!e){this.misses++;return}if(e.ttlMs>0&&Date.now()-e.createdAt.getTime()>e.ttlMs){this.delete(t),this.misses++;return}return this.hits++,e.lastAccessedAt=new Date,e.accessCount++,this.config.enableLRU&&this.updateAccessOrder(t),e.value}set(t,e,r){this.cache.size>=this.config.maxSize&&!this.cache.has(t)&&this.evictLRU();let s={value:e,createdAt:new Date,lastAccessedAt:new Date,accessCount:1,ttlMs:r??this.config.defaultTtlMs,keyHash:t};this.cache.set(t,s),this.config.enableLRU&&this.updateAccessOrder(t)}has(t){let e=this.cache.get(t);return e?e.ttlMs>0&&Date.now()-e.createdAt.getTime()>e.ttlMs?(this.delete(t),!1):!0:!1}delete(t){let e=this.cache.delete(t);if(e){let r=this.accessOrder.indexOf(t);r!==-1&&this.accessOrder.splice(r,1)}return e}clear(){this.cache.clear(),this.accessOrder=[],this.hits=0,this.misses=0,this.evictions=0}getStats(){let t=this.hits+this.misses,e=t>0?this.hits/t:0,r=0;for(let s of this.cache.values())r+=this.estimateSize(s.value);return{size:this.cache.size,maxSize:this.config.maxSize,hits:this.hits,misses:this.misses,hitRate:e,evictions:this.evictions,memoryUsageBytes:r}}keys(){return Array.from(this.cache.keys())}entries(){return Array.from(this.cache.entries())}import(t){for(let[e,r]of t)r.createdAt=new Date(r.createdAt),r.lastAccessedAt=new Date(r.lastAccessedAt),this.cache.set(e,r),this.accessOrder.push(e);for(;this.cache.size>this.config.maxSize;)this.evictLRU()}pruneExpired(){let t=Date.now(),e=0;for(let[r,s]of this.cache.entries())s.ttlMs>0&&t-s.createdAt.getTime()>s.ttlMs&&(this.delete(r),e++);return e}updateAccessOrder(t){let e=this.accessOrder.indexOf(t);e!==-1&&this.accessOrder.splice(e,1),this.accessOrder.push(t)}evictLRU(){if(this.accessOrder.length===0){let e=this.cache.keys().next().value;e&&(this.cache.delete(e),this.evictions++);return}let t=this.accessOrder.shift();t&&(this.cache.delete(t),this.evictions++)}estimateSize(t){return t==null?0:JSON.stringify(t).length*2}},U=class{generationCache;embeddingCache;completionCache;config;constructor(t={}){this.config={...ae,...t},this.generationCache=new R(t),this.embeddingCache=new R(t),this.completionCache=new R(t)}getGeneration(t,e){if(!this.config.cacheGenerations)return;let r=R.generateKey("generation",t,e);return this.generationCache.get(r)}setGeneration(t,e,r,s){if(!this.config.cacheGenerations)return;let n=R.generateKey("generation",t,r);this.generationCache.set(n,e,s)}getEmbedding(t,e){if(!this.config.cacheEmbeddings)return;let r=R.generateKey("embedding",t,e);return this.embeddingCache.get(r)}setEmbedding(t,e,r,s){if(!this.config.cacheEmbeddings)return;let n=R.generateKey("embedding",t,r);this.embeddingCache.set(n,e,s)}getCompletion(t,e){if(!this.config.cacheCompletions)return;let r=R.generateKey("completion",t,e);return this.completionCache.get(r)}setCompletion(t,e,r,s){if(!this.config.cacheCompletions)return;let n=R.generateKey("completion",t,r);this.completionCache.set(n,e,s)}getStats(){let t=this.generationCache.getStats(),e=this.embeddingCache.getStats(),r=this.completionCache.getStats(),s=t.hits+e.hits+r.hits,n=t.misses+e.misses+r.misses,o=s+n;return{generation:t,embedding:e,completion:r,total:{size:t.size+e.size+r.size,maxSize:this.config.maxSize*3,hits:s,misses:n,hitRate:o>0?s/o:0,evictions:t.evictions+e.evictions+r.evictions,memoryUsageBytes:t.memoryUsageBytes+e.memoryUsageBytes+r.memoryUsageBytes}}}clear(){this.generationCache.clear(),this.embeddingCache.clear(),this.completionCache.clear()}pruneExpired(){return this.generationCache.pruneExpired()+this.embeddingCache.pruneExpired()+this.completionCache.pruneExpired()}};O();function Q(g,t,e,r){let s=Math.min(t*Math.pow(2,g),e),n=Math.random()*r*s;return s+n}var me=1e3,he=3e4;function k(g,t=me,e=he){return Q(g,t,e,0)}import{readFileSync as ge}from"fs";import*as ce from"path";var ee=["low","medium","high","xhigh","max"],fe="xhigh";function q(g){return typeof g=="string"&&ee.includes(g)}var K;function ye(g){try{let e=ge(g,"utf8").match(/^\s*effort_level\s*:\s*['"]?([a-z]+)['"]?\s*$/m);return e&&q(e[1])?e[1]:null}catch{return null}}function le(g={}){if(g.override&&q(g.override))return g.override;if(g.agentEffort&&q(g.agentEffort))return g.agentEffort;let e=(g.env??process.env).QE_EFFORT_LEVEL;if(e&&q(e))return e;let r=g.fleetDefaultsPath??ce.join(process.cwd(),"config","fleet-defaults.yaml");return K===void 0&&(K=ye(r)),K||fe}function ue(g,t){let e=ee.indexOf(g),r=ee.indexOf(t);return e>r?t:g}var be={"claude-sonnet-4-5":{name:"Claude Sonnet 4.5",family:"claude",tier:"standard",description:"Most intelligent model, best for complex reasoning and coding tasks",releaseDate:"2025-09-29",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4":{name:"Claude Opus 4",family:"claude",tier:"flagship",description:"Flagship model with exceptional reasoning and reliability",releaseDate:"2025-05-14",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:75}},"claude-opus-4-5":{name:"Claude Opus 4.5",family:"claude",tier:"flagship",description:"Latest flagship model with enhanced reasoning capabilities",releaseDate:"2025-11-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:32768,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:75}},"claude-haiku-3-5":{name:"Claude Haiku 3.5",family:"claude",tier:"economy",description:"Fast and cost-effective for routine tasks",releaseDate:"2024-10-22",deprecationDate:"2026-02-19",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"claude-sonnet-4":{name:"Claude Sonnet 4",family:"claude",tier:"standard",description:"Balanced model for general-purpose tasks",releaseDate:"2025-05-14",deprecationDate:"2026-06-15",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4-7":{name:"Claude Opus 4.7",family:"claude",tier:"flagship",description:"Flagship agentic-coding model (2026-04-16). 1M context at standard pricing, xhigh effort level, adaptive thinking only. New tokenizer emits 1.0\u20131.35\xD7 more tokens.",releaseDate:"2026-04-16",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7"},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-sonnet-4-6":{name:"Claude Sonnet 4.6",family:"claude",tier:"standard",description:"Steady-state agentic-coding workhorse (2026). Standard 200k context, same pricing as Sonnet 4. ADR-093 Tier 3 default for the AQE fleet.",releaseDate:"2026-02-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:64e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-haiku-4-5":{name:"Claude Haiku 4.5",family:"claude",tier:"economy",description:"Fast economy model replacing Haiku 3.5 (retired 2026-02-19). Extended thinking support.",releaseDate:"2025-10-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"gpt-4o":{name:"GPT-4o",family:"gpt",tier:"standard",description:"OpenAI flagship multimodal model, fast and capable",releaseDate:"2024-05-13",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:15,imageCostPerUnit:.00765}},"gpt-4o-mini":{name:"GPT-4o Mini",family:"gpt",tier:"economy",description:"Small, fast, and affordable for lightweight tasks",releaseDate:"2024-07-18",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.15,outputCostPerMillion:.6,imageCostPerUnit:.001275}},"gpt-4-turbo":{name:"GPT-4 Turbo",family:"gpt",tier:"premium",description:"Previous flagship with vision and function calling",releaseDate:"2024-04-09",recommended:!1,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:30}},"gpt-4":{name:"GPT-4",family:"gpt",tier:"premium",description:"Original GPT-4 model, now superseded by GPT-4o",releaseDate:"2023-03-14",deprecationDate:"2025-06-01",recommended:!1,capabilities:{contextLength:8192,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:30,outputCostPerMillion:60}},o1:{name:"OpenAI o1",family:"gpt",tier:"flagship",description:"Reasoning-focused model with extended thinking",releaseDate:"2024-12-05",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:1e5,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:60}},"o1-mini":{name:"OpenAI o1 Mini",family:"gpt",tier:"standard",description:"Faster reasoning model optimized for STEM tasks",releaseDate:"2024-09-12",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:12}},"gemini-pro":{name:"Gemini Pro",family:"gemini",tier:"standard",description:"Google balanced model for diverse tasks",releaseDate:"2023-12-06",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.5,outputCostPerMillion:1.5}},"gemini-pro-1.5":{name:"Gemini Pro 1.5",family:"gemini",tier:"standard",description:"Google mid-size model with 1M context window",releaseDate:"2024-02-15",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:3.5,outputCostPerMillion:10.5}},"gemini-flash-1.5":{name:"Gemini Flash 1.5",family:"gemini",tier:"economy",description:"Fast and efficient with 1M context window",releaseDate:"2024-05-14",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:.075,outputCostPerMillion:.3}},"gemini-ultra":{name:"Gemini Ultra",family:"gemini",tier:"flagship",description:"Google most capable model",releaseDate:"2024-02-08",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:12,outputCostPerMillion:36}},llama3:{name:"Llama 3",family:"llama",tier:"economy",description:"Meta open-source 8B model, runs locally",releaseDate:"2024-04-18",recommended:!0,capabilities:{contextLength:8192,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"llama3.1":{name:"Llama 3.1",family:"llama",tier:"economy",description:"Meta latest open-source model with tool support",releaseDate:"2024-07-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},codellama:{name:"CodeLlama",family:"llama",tier:"economy",description:"Meta code-specialized model",releaseDate:"2023-08-24",recommended:!0,capabilities:{contextLength:1e5,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mistral:{name:"Mistral",family:"mistral",tier:"economy",description:"Mistral AI 7B instruction-tuned model",releaseDate:"2023-09-27",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mixtral:{name:"Mixtral",family:"mistral",tier:"standard",description:"Mistral AI mixture of experts model",releaseDate:"2023-12-11",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},phi3:{name:"Phi-3",family:"phi",tier:"economy",description:"Microsoft small language model, efficient",releaseDate:"2024-04-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},qwen2:{name:"Qwen 2",family:"qwen",tier:"economy",description:"Alibaba multilingual model",releaseDate:"2024-06-07",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}}};function pe(g){let t=ne(g),e=be[t];if(!e)throw new Error(`Model not found in registry: ${g}`);return{...e.capabilities}}var ke={model:"claude-sonnet-4-6",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,anthropicVersion:"2023-06-01",enableCache:!0,enableCircuitBreaker:!0},B=class{type="claude";name="Anthropic Claude";config;requestId=0;constructor(t={}){this.config={...ke,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getApiKey())return{healthy:!1,error:"API key not configured. Set ANTHROPIC_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/messages`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:this.config.model,max_tokens:1,messages:[{role:"user",content:"Hi"}]})},5e3),s=Date.now()-e;if(!r.ok){let n=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${n}`}}return{healthy:!0,latencyMs:s,models:this.getSupportedModels(),details:{apiVersion:this.config.anthropicVersion,defaultModel:this.config.model}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getApiKey())throw a("Anthropic API key not configured","API_KEY_MISSING",{provider:"claude",retryable:!1});let s=this.formatMessages(t),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`claude-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s};e?.systemPrompt&&(h.system=e.systemPrompt),e?.stopSequences&&e.stopSequences.length>0&&(h.stop_sequences=e.stopSequences);try{if(pe(n).supportsEffortXHigh){let u=le({override:e?.effort}),p=ue(u,"xhigh");h.thinking={type:"adaptive",effort:p}}}catch{}try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/v1/messages`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let f=await c.json().catch(()=>({error:{message:"Unknown error"}}));throw this.handleApiError(c.status,f,n)}let p=await c.json(),d={promptTokens:p.usage.input_tokens,completionTokens:p.usage.output_tokens,totalTokens:p.usage.input_tokens+p.usage.output_tokens},y=v.calculateCost(n,d);return C.recordTokenUsage(l,"claude-provider","llm","generate",{inputTokens:p.usage.input_tokens,outputTokens:p.usage.output_tokens,totalTokens:p.usage.input_tokens+p.usage.output_tokens,estimatedCostUsd:y.totalCost}),{content:p.content.filter(f=>f.type==="text").map(f=>f.text).join(""),model:p.model,provider:"claude",usage:d,cost:y,latencyMs:u,finishReason:this.mapFinishReason(p.stop_reason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"claude",model:n,retryable:!0,cause:c})}}async embed(t,e){throw a("Claude does not support native embeddings. Use OpenAI or Ollama for embeddings.","MODEL_NOT_FOUND",{provider:"claude",retryable:!1})}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
|
|
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.16");process.exit(0)}
|
|
2
|
+
import{b as C}from"./chunk-QKQAQPXY.js";import{a,d as ne}from"./chunk-J2ERTUDX.js";import{b as v,c as oe}from"./chunk-LVK2PDUW.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import{b as D,d as re}from"./chunk-4PFHQH4B.js";import{b as T,c as O}from"./chunk-V2ELGHLG.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import{b as se,d as de}from"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";de();O();var ie={failureThreshold:5,resetTimeoutMs:3e4,halfOpenSuccessThreshold:2,failureWindowMs:6e4,includeTimeouts:!0},Z=class{state="closed";failures=[];successCount=0;totalRequests=0;totalSuccesses=0;totalFailures=0;rejectedCount=0;lastFailureTime;lastSuccessTime;openedAt;halfOpenSuccesses=0;config;providerType;constructor(t,e={}){this.providerType=t,this.config={...ie,...e}}getState(){return this.state==="open"&&this.openedAt&&Date.now()-this.openedAt.getTime()>=this.config.resetTimeoutMs&&this.transitionTo("half-open"),this.state}canExecute(){let t=this.getState();return t==="closed"?!0:t!=="open"}async execute(t){if(this.totalRequests++,this.getState()==="open")throw this.rejectedCount++,a(`Circuit breaker is open for provider ${this.providerType}`,"CIRCUIT_OPEN",{provider:this.providerType,retryable:!0,retryAfterMs:this.getTimeUntilTransition()});try{let r=await t();return this.recordSuccess(),r}catch(r){throw this.recordFailure(T(r)),r}}recordSuccess(){this.successCount++,this.totalSuccesses++,this.lastSuccessTime=new Date,this.getState()==="half-open"&&(this.halfOpenSuccesses++,this.halfOpenSuccesses>=this.config.halfOpenSuccessThreshold&&this.transitionTo("closed"))}recordFailure(t){if(this.totalFailures++,this.lastFailureTime=new Date,(t.message.toLowerCase().includes("timeout")||t.name==="TimeoutError"||t.name==="AbortError")&&!this.config.includeTimeouts)return;this.failures.push({timestamp:new Date,error:t}),this.cleanOldFailures();let r=this.getState();if(r==="half-open"){this.transitionTo("open");return}r==="closed"&&this.failures.length>=this.config.failureThreshold&&this.transitionTo("open")}getStats(){return{state:this.getState(),totalRequests:this.totalRequests,successCount:this.totalSuccesses,failureCount:this.totalFailures,rejectedCount:this.rejectedCount,lastFailureTime:this.lastFailureTime,lastSuccessTime:this.lastSuccessTime,timeUntilTransitionMs:this.getTimeUntilTransition()}}reset(){this.state="closed",this.failures=[],this.successCount=0,this.halfOpenSuccesses=0,this.openedAt=void 0}forceOpen(){this.transitionTo("open")}forceHalfOpen(){this.transitionTo("half-open")}getRecentFailures(t=5){return this.failures.slice(-t).map(e=>`[${e.timestamp.toISOString()}] ${e.error.message}`)}transitionTo(t){if(this.state!==t)switch(this.state=t,t){case"open":this.openedAt=new Date,this.halfOpenSuccesses=0;break;case"half-open":this.halfOpenSuccesses=0;break;case"closed":this.failures=[],this.openedAt=void 0,this.halfOpenSuccesses=0;break}}cleanOldFailures(){let t=Date.now()-this.config.failureWindowMs;this.failures=this.failures.filter(e=>e.timestamp.getTime()>t)}getTimeUntilTransition(){if(this.state==="open"&&this.openedAt){let t=Date.now()-this.openedAt.getTime(),e=this.config.resetTimeoutMs-t;return Math.max(0,e)}}},N=class{breakers=new Map;defaultConfig;constructor(t={}){this.defaultConfig={...ie,...t}}getBreaker(t,e){let r=this.breakers.get(t);return r||(r=new Z(t,{...this.defaultConfig,...e}),this.breakers.set(t,r)),r}getAllStats(){let t={};for(let[e,r]of this.breakers)t[e]=r.getStats();return t}getAvailableProviders(){let t=[];for(let[e,r]of this.breakers)r.canExecute()&&t.push(e);return t}resetAll(){for(let t of this.breakers.values())t.reset()}reset(t){let e=this.breakers.get(t);e&&e.reset()}};var ae={maxSize:1e3,defaultTtlMs:36e5,enableLRU:!0,cacheGenerations:!0,cacheEmbeddings:!0,cacheCompletions:!0},R=class{cache=new Map;accessOrder=[];config;hits=0;misses=0;evictions=0;constructor(t={}){this.config={...ae,...t}}static generateKey(t,e,r){let n=[t,r?.model??"default",String(r?.temperature??.7),String(r?.maxTokens??0),r?.systemPrompt??"",e].join("|"),o=0;for(let i=0;i<n.length;i++){let l=n.charCodeAt(i);o=(o<<5)-o+l,o=o&o}return`${t}:${Math.abs(o).toString(36)}`}get(t){let e=this.cache.get(t);if(!e){this.misses++;return}if(e.ttlMs>0&&Date.now()-e.createdAt.getTime()>e.ttlMs){this.delete(t),this.misses++;return}return this.hits++,e.lastAccessedAt=new Date,e.accessCount++,this.config.enableLRU&&this.updateAccessOrder(t),e.value}set(t,e,r){this.cache.size>=this.config.maxSize&&!this.cache.has(t)&&this.evictLRU();let s={value:e,createdAt:new Date,lastAccessedAt:new Date,accessCount:1,ttlMs:r??this.config.defaultTtlMs,keyHash:t};this.cache.set(t,s),this.config.enableLRU&&this.updateAccessOrder(t)}has(t){let e=this.cache.get(t);return e?e.ttlMs>0&&Date.now()-e.createdAt.getTime()>e.ttlMs?(this.delete(t),!1):!0:!1}delete(t){let e=this.cache.delete(t);if(e){let r=this.accessOrder.indexOf(t);r!==-1&&this.accessOrder.splice(r,1)}return e}clear(){this.cache.clear(),this.accessOrder=[],this.hits=0,this.misses=0,this.evictions=0}getStats(){let t=this.hits+this.misses,e=t>0?this.hits/t:0,r=0;for(let s of this.cache.values())r+=this.estimateSize(s.value);return{size:this.cache.size,maxSize:this.config.maxSize,hits:this.hits,misses:this.misses,hitRate:e,evictions:this.evictions,memoryUsageBytes:r}}keys(){return Array.from(this.cache.keys())}entries(){return Array.from(this.cache.entries())}import(t){for(let[e,r]of t)r.createdAt=new Date(r.createdAt),r.lastAccessedAt=new Date(r.lastAccessedAt),this.cache.set(e,r),this.accessOrder.push(e);for(;this.cache.size>this.config.maxSize;)this.evictLRU()}pruneExpired(){let t=Date.now(),e=0;for(let[r,s]of this.cache.entries())s.ttlMs>0&&t-s.createdAt.getTime()>s.ttlMs&&(this.delete(r),e++);return e}updateAccessOrder(t){let e=this.accessOrder.indexOf(t);e!==-1&&this.accessOrder.splice(e,1),this.accessOrder.push(t)}evictLRU(){if(this.accessOrder.length===0){let e=this.cache.keys().next().value;e&&(this.cache.delete(e),this.evictions++);return}let t=this.accessOrder.shift();t&&(this.cache.delete(t),this.evictions++)}estimateSize(t){return t==null?0:JSON.stringify(t).length*2}},U=class{generationCache;embeddingCache;completionCache;config;constructor(t={}){this.config={...ae,...t},this.generationCache=new R(t),this.embeddingCache=new R(t),this.completionCache=new R(t)}getGeneration(t,e){if(!this.config.cacheGenerations)return;let r=R.generateKey("generation",t,e);return this.generationCache.get(r)}setGeneration(t,e,r,s){if(!this.config.cacheGenerations)return;let n=R.generateKey("generation",t,r);this.generationCache.set(n,e,s)}getEmbedding(t,e){if(!this.config.cacheEmbeddings)return;let r=R.generateKey("embedding",t,e);return this.embeddingCache.get(r)}setEmbedding(t,e,r,s){if(!this.config.cacheEmbeddings)return;let n=R.generateKey("embedding",t,r);this.embeddingCache.set(n,e,s)}getCompletion(t,e){if(!this.config.cacheCompletions)return;let r=R.generateKey("completion",t,e);return this.completionCache.get(r)}setCompletion(t,e,r,s){if(!this.config.cacheCompletions)return;let n=R.generateKey("completion",t,r);this.completionCache.set(n,e,s)}getStats(){let t=this.generationCache.getStats(),e=this.embeddingCache.getStats(),r=this.completionCache.getStats(),s=t.hits+e.hits+r.hits,n=t.misses+e.misses+r.misses,o=s+n;return{generation:t,embedding:e,completion:r,total:{size:t.size+e.size+r.size,maxSize:this.config.maxSize*3,hits:s,misses:n,hitRate:o>0?s/o:0,evictions:t.evictions+e.evictions+r.evictions,memoryUsageBytes:t.memoryUsageBytes+e.memoryUsageBytes+r.memoryUsageBytes}}}clear(){this.generationCache.clear(),this.embeddingCache.clear(),this.completionCache.clear()}pruneExpired(){return this.generationCache.pruneExpired()+this.embeddingCache.pruneExpired()+this.completionCache.pruneExpired()}};O();function Q(g,t,e,r){let s=Math.min(t*Math.pow(2,g),e),n=Math.random()*r*s;return s+n}var me=1e3,he=3e4;function k(g,t=me,e=he){return Q(g,t,e,0)}import{readFileSync as ge}from"fs";import*as ce from"path";var ee=["low","medium","high","xhigh","max"],fe="xhigh";function q(g){return typeof g=="string"&&ee.includes(g)}var K;function ye(g){try{let e=ge(g,"utf8").match(/^\s*effort_level\s*:\s*['"]?([a-z]+)['"]?\s*$/m);return e&&q(e[1])?e[1]:null}catch{return null}}function le(g={}){if(g.override&&q(g.override))return g.override;if(g.agentEffort&&q(g.agentEffort))return g.agentEffort;let e=(g.env??process.env).QE_EFFORT_LEVEL;if(e&&q(e))return e;let r=g.fleetDefaultsPath??ce.join(process.cwd(),"config","fleet-defaults.yaml");return K===void 0&&(K=ye(r)),K||fe}function ue(g,t){let e=ee.indexOf(g),r=ee.indexOf(t);return e>r?t:g}var be={"claude-sonnet-4-5":{name:"Claude Sonnet 4.5",family:"claude",tier:"standard",description:"Most intelligent model, best for complex reasoning and coding tasks",releaseDate:"2025-09-29",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4":{name:"Claude Opus 4",family:"claude",tier:"flagship",description:"Flagship model with exceptional reasoning and reliability",releaseDate:"2025-05-14",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:75}},"claude-opus-4-5":{name:"Claude Opus 4.5",family:"claude",tier:"flagship",description:"Latest flagship model with enhanced reasoning capabilities",releaseDate:"2025-11-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:32768,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:75}},"claude-haiku-3-5":{name:"Claude Haiku 3.5",family:"claude",tier:"economy",description:"Fast and cost-effective for routine tasks",releaseDate:"2024-10-22",deprecationDate:"2026-02-19",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"claude-sonnet-4":{name:"Claude Sonnet 4",family:"claude",tier:"standard",description:"Balanced model for general-purpose tasks",releaseDate:"2025-05-14",deprecationDate:"2026-06-15",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4-7":{name:"Claude Opus 4.7",family:"claude",tier:"flagship",description:"Flagship agentic-coding model (2026-04-16). 1M context at standard pricing, xhigh effort level, adaptive thinking only. New tokenizer emits 1.0\u20131.35\xD7 more tokens.",releaseDate:"2026-04-16",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7"},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-sonnet-4-6":{name:"Claude Sonnet 4.6",family:"claude",tier:"standard",description:"Steady-state agentic-coding workhorse (2026). Standard 200k context, same pricing as Sonnet 4. ADR-093 Tier 3 default for the AQE fleet.",releaseDate:"2026-02-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:64e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-haiku-4-5":{name:"Claude Haiku 4.5",family:"claude",tier:"economy",description:"Fast economy model replacing Haiku 3.5 (retired 2026-02-19). Extended thinking support.",releaseDate:"2025-10-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"gpt-4o":{name:"GPT-4o",family:"gpt",tier:"standard",description:"OpenAI flagship multimodal model, fast and capable",releaseDate:"2024-05-13",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:15,imageCostPerUnit:.00765}},"gpt-4o-mini":{name:"GPT-4o Mini",family:"gpt",tier:"economy",description:"Small, fast, and affordable for lightweight tasks",releaseDate:"2024-07-18",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.15,outputCostPerMillion:.6,imageCostPerUnit:.001275}},"gpt-4-turbo":{name:"GPT-4 Turbo",family:"gpt",tier:"premium",description:"Previous flagship with vision and function calling",releaseDate:"2024-04-09",recommended:!1,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:30}},"gpt-4":{name:"GPT-4",family:"gpt",tier:"premium",description:"Original GPT-4 model, now superseded by GPT-4o",releaseDate:"2023-03-14",deprecationDate:"2025-06-01",recommended:!1,capabilities:{contextLength:8192,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:30,outputCostPerMillion:60}},o1:{name:"OpenAI o1",family:"gpt",tier:"flagship",description:"Reasoning-focused model with extended thinking",releaseDate:"2024-12-05",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:1e5,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:60}},"o1-mini":{name:"OpenAI o1 Mini",family:"gpt",tier:"standard",description:"Faster reasoning model optimized for STEM tasks",releaseDate:"2024-09-12",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:12}},"gemini-pro":{name:"Gemini Pro",family:"gemini",tier:"standard",description:"Google balanced model for diverse tasks",releaseDate:"2023-12-06",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.5,outputCostPerMillion:1.5}},"gemini-pro-1.5":{name:"Gemini Pro 1.5",family:"gemini",tier:"standard",description:"Google mid-size model with 1M context window",releaseDate:"2024-02-15",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:3.5,outputCostPerMillion:10.5}},"gemini-flash-1.5":{name:"Gemini Flash 1.5",family:"gemini",tier:"economy",description:"Fast and efficient with 1M context window",releaseDate:"2024-05-14",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:.075,outputCostPerMillion:.3}},"gemini-ultra":{name:"Gemini Ultra",family:"gemini",tier:"flagship",description:"Google most capable model",releaseDate:"2024-02-08",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:12,outputCostPerMillion:36}},llama3:{name:"Llama 3",family:"llama",tier:"economy",description:"Meta open-source 8B model, runs locally",releaseDate:"2024-04-18",recommended:!0,capabilities:{contextLength:8192,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"llama3.1":{name:"Llama 3.1",family:"llama",tier:"economy",description:"Meta latest open-source model with tool support",releaseDate:"2024-07-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},codellama:{name:"CodeLlama",family:"llama",tier:"economy",description:"Meta code-specialized model",releaseDate:"2023-08-24",recommended:!0,capabilities:{contextLength:1e5,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mistral:{name:"Mistral",family:"mistral",tier:"economy",description:"Mistral AI 7B instruction-tuned model",releaseDate:"2023-09-27",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mixtral:{name:"Mixtral",family:"mistral",tier:"standard",description:"Mistral AI mixture of experts model",releaseDate:"2023-12-11",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},phi3:{name:"Phi-3",family:"phi",tier:"economy",description:"Microsoft small language model, efficient",releaseDate:"2024-04-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},qwen2:{name:"Qwen 2",family:"qwen",tier:"economy",description:"Alibaba multilingual model",releaseDate:"2024-06-07",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}}};function pe(g){let t=ne(g),e=be[t];if(!e)throw new Error(`Model not found in registry: ${g}`);return{...e.capabilities}}var ke={model:"claude-sonnet-4-6",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,anthropicVersion:"2023-06-01",enableCache:!0,enableCircuitBreaker:!0},B=class{type="claude";name="Anthropic Claude";config;requestId=0;constructor(t={}){this.config={...ke,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getApiKey())return{healthy:!1,error:"API key not configured. Set ANTHROPIC_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/messages`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:this.config.model,max_tokens:1,messages:[{role:"user",content:"Hi"}]})},5e3),s=Date.now()-e;if(!r.ok){let n=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${n}`}}return{healthy:!0,latencyMs:s,models:this.getSupportedModels(),details:{apiVersion:this.config.anthropicVersion,defaultModel:this.config.model}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getApiKey())throw a("Anthropic API key not configured","API_KEY_MISSING",{provider:"claude",retryable:!1});let s=this.formatMessages(t),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`claude-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s};e?.systemPrompt&&(h.system=e.systemPrompt),e?.stopSequences&&e.stopSequences.length>0&&(h.stop_sequences=e.stopSequences);try{if(pe(n).supportsEffortXHigh){let u=le({override:e?.effort}),p=ue(u,"xhigh");h.thinking={type:"adaptive",effort:p}}}catch{}try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/v1/messages`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let f=await c.json().catch(()=>({error:{message:"Unknown error"}}));throw this.handleApiError(c.status,f,n)}let p=await c.json(),d={promptTokens:p.usage.input_tokens,completionTokens:p.usage.output_tokens,totalTokens:p.usage.input_tokens+p.usage.output_tokens},y=v.calculateCost(n,d);return C.recordTokenUsage(l,"claude-provider","llm","generate",{inputTokens:p.usage.input_tokens,outputTokens:p.usage.output_tokens,totalTokens:p.usage.input_tokens+p.usage.output_tokens,estimatedCostUsd:y.totalCost}),{content:p.content.filter(f=>f.type==="text").map(f=>f.text).join(""),model:p.model,provider:"claude",usage:d,cost:y,latencyMs:u,finishReason:this.mapFinishReason(p.stop_reason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"claude",model:n,retryable:!0,cause:c})}}async embed(t,e){throw a("Claude does not support native embeddings. Use OpenAI or Ollama for embeddings.","MODEL_NOT_FOUND",{provider:"claude",retryable:!1})}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
|
|
3
3
|
|
|
4
4
|
`,"```"]});return{completion:r.content,model:r.model,provider:"claude",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return["claude-opus-4-7","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-3-opus-20240229","claude-3-sonnet-20240229","claude-3-haiku-20240307"]}getCostPerToken(){return v.getCostPerToken(this.config.model)}async dispose(){}getApiKey(){return this.config.apiKey??process.env.ANTHROPIC_API_KEY}getBaseUrl(){return(this.config.baseUrl??"https://api.anthropic.com").replace(/\/$/,"")}getHeaders(){return{"Content-Type":"application/json","x-api-key":this.getApiKey(),"anthropic-version":this.config.anthropicVersion??"2023-06-01"}}formatMessages(t){return typeof t=="string"?[{role:"user",content:t}]:t.filter(e=>e.role!=="system").map(e=>({role:e.role,content:e.content}))}mapFinishReason(t){switch(t){case"end_turn":return"stop";case"max_tokens":return"length";case"stop_sequence":return"stop";default:return"stop"}}handleApiError(t,e,r){let s="error"in e?e.error?.message??"Unknown API error":"Unknown API error",n="error"in e&&"type"in e.error?e.error.type:"";switch(t){case 401:throw a(s,"API_KEY_INVALID",{provider:"claude",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"claude",model:r,retryable:!0,retryAfterMs:6e4});case 400:throw n==="invalid_request_error"&&s.includes("context")?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"claude",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"claude",model:r,retryable:!1});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"claude",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"claude",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"claude",retryable:!0}):o}finally{clearTimeout(n)}}async fetchWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.fetchWithTimeout(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=T(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}sleep(t){return new Promise(e=>setTimeout(e,t))}};O();var Te={model:"gpt-4o",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,enableCache:!0,enableCircuitBreaker:!0},G=class{type="openai";name="OpenAI";config;requestId=0;constructor(t={}){this.config={...Te,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getApiKey())return{healthy:!1,error:"API key not configured. Set OPENAI_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/chat/completions`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:this.config.model,max_tokens:1,messages:[{role:"user",content:"Hi"}]})},5e3),s=Date.now()-e;if(!r.ok){let n=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${n}`}}return{healthy:!0,latencyMs:s,models:this.getSupportedModels(),details:{defaultModel:this.config.model,organization:this.config.organization}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getApiKey())throw a("OpenAI API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=this.formatMessages(t,e?.systemPrompt),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`openai-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s};e?.stopSequences&&e.stopSequences.length>0&&(h.stop=e.stopSequences),this.config.presencePenalty!==void 0&&(h.presence_penalty=this.config.presencePenalty),this.config.frequencyPenalty!==void 0&&(h.frequency_penalty=this.config.frequencyPenalty);try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/v1/chat/completions`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let f=await c.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(c.status,f,n)}let p=await c.json(),d={promptTokens:p.usage.prompt_tokens,completionTokens:p.usage.completion_tokens,totalTokens:p.usage.total_tokens},y=v.calculateCost(n,d);return C.recordTokenUsage(l,"openai-provider","llm","generate",{inputTokens:p.usage.prompt_tokens,outputTokens:p.usage.completion_tokens,totalTokens:p.usage.total_tokens,estimatedCostUsd:y.totalCost}),{content:p.choices[0]?.message?.content??"",model:p.model,provider:"openai",usage:d,cost:y,latencyMs:u,finishReason:this.mapFinishReason(p.choices[0]?.finish_reason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"openai",model:n,retryable:!0,cause:c})}}async embed(t,e){if(!this.getApiKey())throw a("OpenAI API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=e?.model??"text-embedding-3-small",n=Date.now();try{let o=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/embeddings`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:s,input:t})},e?.timeoutMs??this.config.timeoutMs??3e4),i=Date.now()-n;if(!o.ok){let m=await o.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(o.status,m,s)}let l=await o.json();return{embedding:l.data[0].embedding,model:l.model,provider:"openai",tokenCount:l.usage.total_tokens,latencyMs:i,cached:!1}}catch(o){throw o instanceof Error&&"code"in o?o:a(o instanceof Error?o.message:"Embedding request failed","NETWORK_ERROR",{provider:"openai",model:s,retryable:!0,cause:o})}}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
|
|
5
5
|
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a as h,b as i,c as j,d as k,e as l,f as m,g as n}from"./chunk-PPUEXTH2.js";import"./chunk-HN6GVQ4Q.js";import{a as e,b as f,d as g}from"./chunk-BCT26J7X.js";import"./chunk-DBCN7R63.js";import{a,b,c,h as d}from"./chunk-NCXXXZGL.js";import"./chunk-KLVS6FT2.js";import"./chunk-AFLQFUXA.js";import"./chunk-CR7LLS26.js";import"./chunk-TPRYLARW.js";import"./chunk-RVQXMMRO.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import"./chunk-4PFHQH4B.js";import"./chunk-EFTK4ZVP.js";import"./chunk-V2ELGHLG.js";import"./chunk-ED5OUSYZ.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";export{j as AGENT_CAPABILITIES,h as DEFAULT_QE_REASONING_BANK_CONFIG,i as PRETRAINED_PATTERNS,m as QEReasoningBank,l as RELATED_DOMAINS,d as applyPatternTemplate,k as calculateAgentScores,n as createQEReasoningBank,a as detectQEDomain,b as detectQEDomains,g as generateGuidanceContext,f as getCombinedGuidance,e as getGuidance,c as mapQEDomainToAQE};
|
|
@@ -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{c as l,d as u,h as d}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.16");process.exit(0)}
|
|
2
|
+
import{c as l,d as u,h as d}from"./chunk-JUKCBZCZ.js";import"./chunk-NOJVROCD.js";import{Command as w}from"commander";import e from"chalk";function P(g,o,h){return new w("quality").description("Quality assessment shortcut").option("--gate","Run quality gate evaluation").option("-F, --format <format>","Output format (text|json|markdown)","text").option("-o, --output <path>","Write output to file").action(async i=>{if(await h())try{let r=i.format;{r==="text"&&console.log(e.blue(`
|
|
3
3
|
Running quality gate evaluation...
|
|
4
4
|
`));let m=await g.kernel.getDomainAPIAsync("quality-assessment");m||(console.log(e.red("Quality assessment domain not available")),await o(1));let f={coverage:0,testsPassing:0,criticalBugs:0,codeSmells:0,securityVulnerabilities:0,technicalDebt:0,duplications:0},y={coverage:{min:80},testsPassing:{min:95},criticalBugs:{max:0},codeSmells:{max:20},securityVulnerabilities:{max:0},technicalDebt:{max:5},duplications:{max:5}},n=await m.evaluateGate({gateName:"standard",metrics:f,thresholds:y});if(n.success&&n.value){let s=n.value,t={passed:s.passed??s.meetsThreshold??!0,score:s.score??s.grade??"N/A",checks:s.checks||[],recommendations:s.recommendations||[]};if(r==="json")l(u(t),i.output);else if(r==="markdown")l(d(t),i.output);else{let p=t.passed?e.green("\u2713 PASSED"):e.red("\u2717 FAILED");if(console.log(` Quality Gate: ${p}`),console.log(` Score: ${e.cyan(t.score)}
|
|
5
5
|
`),t.checks.length>0){console.log(e.cyan(" Checks:"));for(let a of t.checks){let b=a.passed?e.green("\u2713"):e.red("\u2717");console.log(` ${b} ${a.name}: ${a.value} (threshold: ${a.threshold})`)}}if(t.recommendations&&t.recommendations.length>0){console.log(e.cyan(`
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{c as a,d as b,e as c,f as d}from"./chunk-PQLT3X6X.js";import"./chunk-MFRC267A.js";import"./chunk-W4ZV6LAJ.js";import"./chunk-XKMMFQSJ.js";import"./chunk-FKQV52TC.js";import"./chunk-BEE5KXQT.js";import"./chunk-3ADFXSO2.js";import"./chunk-ZXLF3IKT.js";import"./chunk-DBCN7R63.js";import"./chunk-NCXXXZGL.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-T36IXY5W.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import"./chunk-4PFHQH4B.js";import"./chunk-EFTK4ZVP.js";import"./chunk-V2ELGHLG.js";import"./chunk-ED5OUSYZ.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";export{a as DOMAIN_GROUPS,c as QueenCoordinator,b as TASK_DOMAIN_MAP,d as createQueenCoordinator};
|
|
@@ -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 c,c as d,d as e,e as f,f as g,g as h,h as i}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.16");process.exit(0)}
|
|
2
|
+
import{a as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i}from"./chunk-RVQXMMRO.js";import"./chunk-V2ELGHLG.js";import{a}from"./chunk-HJUC2DE6.js";import"./chunk-NOJVROCD.js";export{b as DEFAULT_EMBEDDING_CONFIG,e as clearEmbeddingCache,d as computeBatchEmbeddings,c as computeRealEmbedding,a as cosineSimilarity,f as getCacheStats,h as getEmbeddingDimension,g as isTransformerAvailable,i as resetInitialization};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{b as p}from"./chunk-HFGCLV56.js";import{a as f,c as v}from"./chunk-V2ELGHLG.js";import"./chunk-NOJVROCD.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("roocode"),e=d(this.projectRoot,t.path);if(r.configPath=e,!n(e)||this.overwrite){let i=h(e);if(n(i)||m(i,{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 s=this.generator.generateBehavioralRules("roocode"),o=d(this.projectRoot,s.path);if(r.modePath=o,!n(o)||this.overwrite){let i=h(o);if(n(i)||m(i,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,s.content);a(o,c)}else a(o,s.content);r.modeInstalled=!0}}catch(t){r.success=!1,r.errors.push(`Roo Code installation failed: ${f(t)}`)}return r}mergeExistingConfig(r,t){try{let e=JSON.parse(u(r,"utf-8")),s=JSON.parse(t);return e.mcpServers||(e.mcpServers={}),Object.assign(e.mcpServers,s.mcpServers),JSON.stringify(e,null,2)+`
|
|
3
3
|
`}catch{return t}}mergeExistingModes(r,t){try{let e=JSON.parse(u(r,"utf-8")),s=JSON.parse(t);if(!Array.isArray(e))return t;let o=e.filter(i=>i.slug!=="qe-engineer");return o.push(...s),JSON.stringify(o,null,2)+`
|
|
4
4
|
`}catch{return t}}};function P(g){return new l(g)}export{l as RooCodeInstaller,P as createRooCodeInstaller};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-RYCAVZSD.js";import"./chunk-HVAW64YW.js";import"./chunk-5A5XANSD.js";import"./chunk-UH7TV6BY.js";import"./chunk-4ZN4GM7W.js";import"./chunk-4PFHQH4B.js";import"./chunk-V2ELGHLG.js";import"./chunk-NOJVROCD.js";export{a as ModelRouter,b as createModelRouter,c as createModelRouterWithAgentBooster};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b}from"./chunk-WSKASZYC.js";import"./chunk-LVK2PDUW.js";import"./chunk-OE7SGIX2.js";import"./chunk-ZCZJYM42.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import"./chunk-4PFHQH4B.js";import"./chunk-V2ELGHLG.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";export{a as RoutingFeedbackCollector,b as createRoutingFeedbackCollector};
|
|
@@ -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{b as u}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.16");process.exit(0)}
|
|
2
|
+
import{b as u}from"./chunk-WSKASZYC.js";import{c as m}from"./chunk-LVK2PDUW.js";import"./chunk-OE7SGIX2.js";import"./chunk-ZCZJYM42.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import"./chunk-4PFHQH4B.js";import{a as l,c as f}from"./chunk-V2ELGHLG.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";f();import o from"chalk";var d=class{name="routing";description="View routing performance, economics, and accuracy";cleanupAndExit;constructor(n){this.cleanupAndExit=n}getHelp(){return["aqe routing economics [--complexity <0-1>] [--json] Show tier efficiency & budget","aqe routing accuracy [--json] Show routing accuracy analysis","aqe routing metrics [--json] Show per-agent performance"].join(`
|
|
3
3
|
`)}register(n,r){let t=n.command("routing").description(this.description);t.command("economics").description("Show economic routing report: tier efficiency, budget, savings").option("-c, --complexity <value>","Task complexity for scoring (0-1)","0.5").option("--json","Output as JSON").action(async e=>{await this.executeEconomics(parseFloat(e.complexity)||.5,!!e.json)}),t.command("accuracy").description("Show routing accuracy analysis").option("--json","Output as JSON").action(async e=>{await this.executeAccuracy(!!e.json)}),t.command("metrics").description("Show per-agent performance metrics").option("--json","Output as JSON").action(async e=>{await this.executeMetrics(!!e.json)})}async executeEconomics(n,r){try{let t=u(100);await t.initialize(),t.enableEconomicRouting({},m());let e=t.getEconomicReport();if(!e){console.error(o.red(`
|
|
4
4
|
Economic routing is not available.
|
|
5
5
|
`)),await this.cleanupAndExit(1);return}if(r){console.log(JSON.stringify(e,(a,s)=>s===1/0?"Infinity":s,2)),await this.cleanupAndExit(0);return}console.log(o.blue(`
|
|
@@ -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 p,c as h}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.16");process.exit(0)}
|
|
2
|
+
import{a as p,c as h}from"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import{S as A,a as u,b as f,c as d}from"./chunk-W6TMZY5R.js";import{a as y}from"./chunk-NOJVROCD.js";A();h();import{Command as S}from"commander";import e from"chalk";var F=[{name:"hnswlib-node",flag:"useNativeHNSW",fallback:"ProgressiveHnswBackend"},{name:"prime-radiant-advanced-wasm",flag:"useCoherenceGate",fallback:"Word-frequency heuristics"},{name:"@ruvector/sona",flag:"useSONAThreeLoop",fallback:"TypeScript MicroLoRA/EWC++"}],D={useQESONA:"Self-Optimizing Neural Architecture",useQEFlashAttention:"SIMD-accelerated attention computation",useQEGNNIndex:"Differentiable search and HNSW indexing",logMigrationMetrics:"Log migration metrics during rollout",useNativeHNSW:"Native HNSW backend (hnswlib-node, C++ Hnswlib reference)",useTemporalCompression:"Temporal tensor compression (ADR-085)",useMetadataFiltering:"SIMD-accelerated metadata filtering",useDeterministicDither:"Cross-platform deterministic dithering",useNeuralRouting:"Neural model routing via FastGRNN (ADR-082)",useSONAThreeLoop:"SONA Three-Loop Engine (Task 2.2)",useCrossDomainTransfer:"Cross-domain transfer learning (ADR-084)",useHnswHealthMonitor:"HNSW health monitor (Task 3.4)",useRegretTracking:"Regret tracking & learning health (Task 2.4)",useCoherenceGate:"Sheaf-gated coherence validation (ADR-083, Task 3.1)",useWitnessChain:"SHA-256 hash-chained witness records (Task 3.1)",useCNNVisualRegression:"CNN visual regression testing (Task 4.3)",useDAGAttention:"DAG attention for test scheduling (Task 4.2)",useCoherenceActionGate:"Coherence-gated agent actions (ADR-083, Task 3.2)",useReasoningQEC:"Reasoning QEC error correction (Task 4.5)",useRVFPatternStore:"RVF-backed PatternStore with persistent HNSW (ADR-066)",useAgentMemoryBranching:"Agent memory branching via RVF COW (ADR-067)",useUnifiedHnsw:"Unified HNSW provider replacing 3 legacy impls (ADR-071)",rvfMigrationStage:"RVF migration stage 0-4: sqlite\u2192hybrid\u2192dual\u2192rvf-primary (ADR-072)",useHDCFingerprinting:"HDC pattern fingerprinting (R1, ADR-087)",useCusumDriftDetection:"CUSUM drift detection (R2, ADR-087)",useDeltaEventSourcing:"Delta event sourcing (R3, ADR-087)",useEwcPlusPlusRegularization:"EWC++ regularization (ADR-087)",useGraphMAEEmbeddings:"GraphMAE self-supervised embeddings (R4, ADR-087)",useHopfieldMemory:"Modern Hopfield memory (R5, ADR-087)",useColdTierGNN:"Cold-tier GNN training (R6, ADR-087)",useMetaLearningEnhancements:"Meta-learning enhancements (R7, ADR-087)",useSublinearSolver:"Sublinear PageRank solver (R8, ADR-087)",useSpectralSparsification:"Spectral graph sparsification (R9, ADR-087)",useReservoirReplay:"Reservoir replay with coherence gating (R10, ADR-087)",useEpropOnlineLearning:"E-prop online learning, RL algorithm #10 (R11, ADR-087)",useGrangerCausality:"Granger causality for test failure prediction (R12, ADR-087)",useCognitiveRouting:"Cognitive routing with predictive delta compression (R13, ADR-087)",useHyperbolicHnsw:"Hyperbolic HNSW with Poincare ball embeddings (R14, ADR-087)"},m={performance:{useNativeHNSW:!0,useTemporalCompression:!0,useDeterministicDither:!0},experimental:{useQESONA:!0,useQEFlashAttention:!0,useQEGNNIndex:!0,logMigrationMetrics:!0,useNativeHNSW:!0,useTemporalCompression:!0,useMetadataFiltering:!0,useDeterministicDither:!0,useNeuralRouting:!0},safe:{useQESONA:!0,useQEFlashAttention:!0,useQEGNNIndex:!0,logMigrationMetrics:!0,useNativeHNSW:!1,useTemporalCompression:!1,useMetadataFiltering:!1,useDeterministicDither:!1,useNeuralRouting:!1}},g=Object.keys(u);function b(o){try{return y.resolve(o),!0}catch{return!1}}function v(o,s){return u[o]===s}function i(o,s){return o.padEnd(s)}function N(o){return o<1024?`${o}B`:o<1024*1024?`${(o/1024).toFixed(1)}KB`:o<1024*1024*1024?`${(o/(1024*1024)).toFixed(1)}MB`:`${(o/(1024*1024*1024)).toFixed(2)}GB`}function k(o){return g.includes(o)}function C(o){return o in m}function T(){let o=f();console.log(""),console.log(e.bold.blue("RuVector Integration Status:")),console.log(e.cyan(" Native Packages:"));for(let t of F){let a=b(t.name)?e.green("installed"):e.gray(`not installed (fallback: ${t.fallback})`);console.log(` ${i(t.name+":",30)} ${a}`)}console.log(""),console.log(e.cyan(" Feature Flags:"));for(let t of g){let r=o[t],a=v(t,r),n=typeof r=="number"?e.cyan(String(r)):r?e.green("true"):e.gray("false"),l=a?e.gray(" (default)"):e.yellow(" (modified)");console.log(` ${i(t+":",30)} ${n}${l}`)}let s=p.listIndexes();if(s.length>0){console.log(""),console.log(e.cyan(" HNSW Memory Usage:"));let t=0,r=0;for(let a of s){let n=p.get(a);if(n){let l=n.size(),c=n.dimensions(),R=l*c*4*3;t+=l,r+=R,console.log(` ${i(a+":",20)} ${e.white(String(l))} vectors, ${e.white(c)}d, ~${e.white(N(R))}`)}}console.log(e.gray(` ${"\u2500".repeat(50)}`)),console.log(` ${i("Total:",20)} ${e.bold.white(String(t))} vectors, ~${e.bold.white(N(r))}`)}else console.log(""),console.log(e.cyan(" HNSW Memory Usage:")),console.log(e.gray(" No active indexes (indexes are created on first use)"));o.useTemporalCompression&&(console.log(""),console.log(e.cyan(" Temporal Compression:")),console.log(e.gray(" Hot tier: 8-bit quantization (frequently accessed patterns)")),console.log(e.gray(" Warm tier: 5-bit quantization (moderately accessed patterns)")),console.log(e.gray(" Cold tier: 3-bit quantization (rarely accessed patterns)")),console.log(e.gray(" Estimated memory savings: 40-60% for cold patterns"))),console.log("")}function x(o){if(o.profile){if(!C(o.profile)){console.log(""),console.log(e.red(` Unknown profile: ${o.profile}`)),console.log(e.gray(` Valid profiles: ${Object.keys(m).join(", ")}`)),console.log(""),process.exit(1);return}let t=m[o.profile];d(t),console.log(""),console.log(e.bold.blue(`Setting ${o.profile} profile:`));for(let[r,a]of Object.entries(t)){let n=a?e.green("true"):e.gray("false");console.log(` ${i(r+":",30)} ${n}`)}console.log("");return}if(o.set){let t=o.set.indexOf("=");if(t<=0){console.log(""),console.log(e.red(" Invalid format. Use: --set flagName=true|false")),console.log(""),process.exit(1);return}let r=o.set.substring(0,t),a=o.set.substring(t+1);if(!k(r)){console.log(""),console.log(e.red(` Unknown flag: ${r}`)),console.log(e.gray(` Valid flags: ${g.join(", ")}`)),console.log(""),process.exit(1);return}if(a!=="true"&&a!=="false"){console.log(""),console.log(e.red(` Invalid value: ${a}. Use true or false.`)),console.log(""),process.exit(1);return}let n=a==="true";d({[r]:n});let l=n?e.green("true"):e.gray("false");console.log(""),console.log(e.green(` Set ${r} = ${l}`)),console.log("");return}let s=f();console.log(""),console.log(e.bold.blue("RuVector Feature Flags:")),console.log(""),console.log(e.bold(" "+i("Flag",28)+i("Value",10)+"Description")),console.log(e.gray(" "+"-".repeat(78)));for(let t of g){let r=s[t],a=v(t,r),n=typeof r=="number"?e.cyan(String(r)):r?e.green("true"):e.gray("false"),l=a?"":e.yellow(" *"),c=D[t];console.log(" "+i(t,28)+i(String(r),10)+e.gray(c)+l)}console.log(""),console.log(e.gray(" * = modified from default")),console.log(""),console.log(e.gray(" Profiles: performance, experimental, safe")),console.log(e.gray(" Usage:")),console.log(e.gray(" aqe ruvector flags --set useNativeHNSW=true")),console.log(e.gray(" aqe ruvector flags --profile=performance")),console.log("")}function E(){let o=new S("ruvector").description("RuVector integration management").addHelpText("after",`
|
|
3
3
|
Examples:
|
|
4
4
|
$ aqe ruvector status Show native packages and flags
|
|
5
5
|
$ aqe ruvector flags List all feature flags
|
|
@@ -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}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.16");process.exit(0)}
|
|
2
|
+
import{a,b}from"./chunk-WVHH3OQ4.js";import"./chunk-NOJVROCD.js";export{a as RvfDualWriter,b as createDualWriter};
|
package/dist/cli/chunks/{rvf-migration-adapter-G7KFWJKY.js → rvf-migration-adapter-QIPSNASM.js}
RENAMED
|
@@ -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}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.16");process.exit(0)}
|
|
2
|
+
import{a,b}from"./chunk-QEKZA2NJ.js";import"./chunk-NOJVROCD.js";export{b as RvfMigrationAdapter,a as STAGE_NAMES};
|
|
@@ -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 m,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.16");process.exit(0)}
|
|
2
|
+
import{a as m,b as p}from"./chunk-QEKZA2NJ.js";import"./chunk-NOJVROCD.js";var v={sampleSize:50,windowDurationMs:6048e5,compactionThreshold:.3,scoreTolerance:.05},l=class{config;db=null;rvfStore=null;history=[];constructor(t){this.config={...v,...t}}setSqliteDb(t){this.db=t}setRvfStore(t){this.rvfStore=t}runCheck(){let t={timestamp:Date.now(),samplesChecked:0,divergences:0,divergenceRate:0,details:[],deadSpaceRatio:null,compactionTriggered:!1};if(!this.db||!this.rvfStore)return this.history.push(t),t;let e=this.getSampleIds(this.config.sampleSize);if(t.samplesChecked=e.length,e.length===0)return this.history.push(t),t;for(let a of e){let n=this.getSqliteEmbedding(a);if(!n){t.divergences++,t.details.push({patternId:a,issue:"missing-in-sqlite"});continue}try{let i=this.rvfStore.search(n,1);i.length===0?(t.divergences++,t.details.push({patternId:a,issue:"missing-in-rvf"})):i[0].id!==a&&i[0].score<.99&&(t.divergences++,t.details.push({patternId:a,issue:"score-mismatch",rvfScore:i[0].score}))}catch{t.divergences++,t.details.push({patternId:a,issue:"missing-in-rvf"})}}t.divergenceRate=t.samplesChecked>0?t.divergences/t.samplesChecked:0;try{let n=this.rvfStore.status().deadSpaceRatio;t.deadSpaceRatio=n??null,n!=null&&n>this.config.compactionThreshold&&(this.triggerCompaction(),t.compactionTriggered=!0)}catch{}return this.history.push(t),this.pruneHistory(),t}getRollingDivergenceRate(){let t=Date.now()-this.config.windowDurationMs,e=this.history.filter(i=>i.timestamp>=t);if(e.length===0)return 0;let a=e.reduce((i,r)=>i+r.samplesChecked,0),n=e.reduce((i,r)=>i+r.divergences,0);return a>0?n/a:0}getCheckCount(){let t=Date.now()-this.config.windowDurationMs;return this.history.filter(e=>e.timestamp>=t).length}getHistory(){let t=Date.now()-this.config.windowDurationMs;return this.history.filter(e=>e.timestamp>=t)}getSampleIds(t){if(!this.db)return[];try{return this.db.prepare("SELECT pattern_id FROM qe_pattern_embeddings ORDER BY RANDOM() LIMIT ?").all(t).map(a=>a.pattern_id)}catch{return[]}}getSqliteEmbedding(t){if(!this.db)return null;try{let e=this.db.prepare("SELECT embedding, dimension FROM qe_pattern_embeddings WHERE pattern_id = ?").get(t);return e?new Float32Array(e.embedding.buffer,e.embedding.byteOffset,e.dimension):null}catch{return null}}triggerCompaction(){try{this.rvfStore.compact?.()}catch{}}pruneHistory(){let t=Date.now()-this.config.windowDurationMs;this.history=this.history.filter(e=>e.timestamp>=t)}};var S={maxDivergenceRate2to3:1e-4,maxReadLatencyRatio2to3:2,maxFallbacks3to4:0,maxWriteLatencyRatio3to4:1.5,minChecksRequired:10},g=class{config;witnessChain=null;constructor(t){this.config={...S,...t}}setWitnessChain(t){this.witnessChain=t}evaluate(t,e,a){let n=Math.min(t+1,4);if(t>=4)return{canPromote:!1,currentStage:t,targetStage:4,checks:[],summary:"Already at maximum stage (4: RVF primary)"};if(t<2)return{canPromote:!0,currentStage:t,targetStage:n,checks:[],summary:`Stage ${t}\u2192${n} has no automated gates \u2014 manual promotion allowed`};let i=[];if(t===2){let s=e.getRollingDivergenceRate(),o=e.getCheckCount();i.push({name:"consistency-checks-count",passed:o>=this.config.minChecksRequired,actual:`${o} checks`,threshold:`>= ${this.config.minChecksRequired} checks`}),i.push({name:"divergence-rate",passed:s<=this.config.maxDivergenceRate2to3,actual:`${(s*100).toFixed(4)}%`,threshold:`<= ${(this.config.maxDivergenceRate2to3*100).toFixed(4)}%`});let c=a.sqliteReadLatencyAvgMs>0?a.rvfReadLatencyAvgMs/a.sqliteReadLatencyAvgMs:0;i.push({name:"read-latency-ratio",passed:c<=this.config.maxReadLatencyRatio2to3||a.rvfReadLatencyAvgMs===0,actual:`${c.toFixed(2)}x`,threshold:`<= ${this.config.maxReadLatencyRatio2to3}x`})}if(t===3){i.push({name:"fallback-count",passed:a.fallbacksUsed<=this.config.maxFallbacks3to4,actual:`${a.fallbacksUsed} fallbacks`,threshold:`<= ${this.config.maxFallbacks3to4} fallbacks`});let s=a.sqliteWriteLatencyAvgMs??a.sqliteReadLatencyAvgMs,o=a.rvfWriteLatencyAvgMs??a.rvfReadLatencyAvgMs,c=s>0?o/s:0;i.push({name:"write-latency-ratio",passed:c<=this.config.maxWriteLatencyRatio3to4||o===0,actual:`${c.toFixed(2)}x`,threshold:`<= ${this.config.maxWriteLatencyRatio3to4}x`})}let r=i.length>0&&i.every(s=>s.passed),u=i.filter(s=>!s.passed).map(s=>s.name);return{canPromote:r,currentStage:t,targetStage:n,checks:i,summary:r?`All gates passed \u2014 safe to promote to stage ${n}`:`Blocked: ${u.join(", ")} failed`}}promote(t,e,a,n=!1){let i=this.evaluate(t,e,a);if(!i.canPromote&&!n)return this.recordWitness("QUALITY_GATE_FAIL",{action:"stage-promotion-blocked",from:t,to:i.targetStage,failedChecks:i.checks.filter(u=>!u.passed),summary:i.summary}),{promoted:!1,newStage:t,result:i};let r=i.targetStage;return this.recordWitness("QUALITY_GATE_PASS",{action:n?"stage-promotion-forced":"stage-promotion-approved",from:t,to:r,checks:i.checks,forced:n,summary:i.summary}),{promoted:!0,newStage:r,result:i}}recordWitness(t,e){try{this.witnessChain?.append(t,e,"rvf-stage-gate")}catch{}}};var d=null,f=class h{adapter;validator;gate;currentStage;initialized=!1;constructor(t){this.currentStage=t?.stage??1,this.adapter=new p({stage:this.currentStage,rvfPath:t?.rvfPath??".agentic-qe/patterns.rvf",dimensions:t?.dimensions??384,enableFallback:!0}),this.validator=new l({sampleSize:50,windowDurationMs:10080*60*1e3,compactionThreshold:.3,scoreTolerance:.05}),this.gate=new g({minChecksRequired:10})}attachSqliteDb(t){this.adapter.setSqliteDb(t),this.validator.setSqliteDb(t)}attachRvfStore(t){this.adapter.setRvfStore(t),this.validator.setRvfStore(t)}attachWitnessChain(t){this.gate.setWitnessChain(t)}async initialize(){if(!this.initialized){if(this.currentStage===1)try{let{getRvfMigrationStage:t}=await import("./feature-flags-SKFBAHR3.js"),e=t();this.currentStage=e,this.adapter.setStage(e)}catch{}try{let{UnifiedMemoryManager:t}=await import("./unified-memory-LIKELZVA.js"),e=t.getInstance();await e.initialize();let a=e.getDatabase();a&&this.attachSqliteDb(a)}catch{}try{let{getSharedRvfAdapter:t}=await import("./shared-rvf-adapter-PV5ZBJ25.js"),e=t();e&&this.attachRvfStore(e)}catch{}try{let{WitnessChain:t}=await import("./witness-chain-5R322YYF.js"),e=new t;await e.initialize(),this.attachWitnessChain(e)}catch{}this.initialized=!0}}getStatus(){let t=this.adapter.getMetrics(),e=this.adapter.status(),a=this.validator.getHistory(),n=this.gate.evaluate(this.currentStage,this.validator,t);return{stage:this.currentStage,stageName:m[this.currentStage],metrics:t,consistencyHistory:{totalChecks:this.validator.getCheckCount(),rollingDivergenceRate:this.validator.getRollingDivergenceRate(),lastCheck:a.length>0?a[a.length-1]:null},gateEvaluation:n,engineStatus:{sqliteVectorCount:e.sqlite.vectorCount,rvfAvailable:e.rvf!==null,rvfVectorCount:e.rvf?.totalVectors??null,rvfDeadSpaceRatio:e.rvf?.deadSpaceRatio??null}}}runConsistencyCheck(){return this.validator.runCheck()}evaluateGate(){return this.gate.evaluate(this.currentStage,this.validator,this.adapter.getMetrics())}promote(t=!1){let e=this.currentStage,{promoted:a,newStage:n,result:i}=this.gate.promote(this.currentStage,this.validator,this.adapter.getMetrics(),t);return a&&(this.currentStage=n,this.adapter.setStage(n)),{promoted:a,previousStage:e,newStage:n,result:i}}write(t,e){return this.adapter.write(t,e)}search(t,e){return this.adapter.search(t,e)}getAdapter(){return this.adapter}static getInstance(t){return d||(d=new h(t)),d}static resetInstance(){d=null}};export{f as RvfMigrationCoordinator};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,f as e}from"./chunk-TPRYLARW.js";import"./chunk-NOJVROCD.js";e();export{a as createRvfStore,d as isRvfNativeAvailable,b as openRvfStore,c as openRvfStoreReadonly};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b}from"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-NOJVROCD.js";b();export{a as openDatabase};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-WVFLNGOK.js";import"./chunk-DF3DZP7H.js";import"./chunk-L2GANTQN.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import"./chunk-4PFHQH4B.js";import"./chunk-V2ELGHLG.js";import"./chunk-ED5OUSYZ.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";export{a as TestScheduleTool};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-SMNOZEM7.js";import"./chunk-3K4IX7L4.js";import"./chunk-4PFHQH4B.js";import"./chunk-EFTK4ZVP.js";import"./chunk-V2ELGHLG.js";import"./chunk-NOJVROCD.js";export{a as PersistentScheduler,b as createPersistentScheduler,d as createScheduleEntry,c as generateScheduleId};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{b as h}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.16");process.exit(0)}
|
|
2
|
+
import{b as h}from"./chunk-LWG7LKOK.js";import{c as g,d as f,e as S,i as w}from"./chunk-JUKCBZCZ.js";import"./chunk-NOJVROCD.js";import{Command as b}from"commander";import e from"chalk";function P(v,a,k){return new b("security").description("Security scanning and URL validation").option("--sast","Run SAST scan").option("--dast","Run DAST scan").option("--compliance <frameworks>","Check compliance (gdpr,hipaa,soc2)","").option("--url-validate <url>","Validate a URL for security threats and PII exposure").option("--no-pii","Disable PII scanning when using --url-validate").option("-t, --target <path>","Target directory to scan",".").option("-F, --format <format>","Output format (text|json|sarif|markdown)","text").option("-o, --output <path>","Write output to file").action(async r=>{if(await k()){if(r.urlValidate){try{let o=r.format,u=r.urlValidate;o==="text"&&console.log(e.blue(`
|
|
3
3
|
Validating URL: ${u}
|
|
4
|
-
`));let{VisualSecurityTool:y}=await import("./visual-security-
|
|
4
|
+
`));let{VisualSecurityTool:y}=await import("./visual-security-HVJWGY7T.js"),c=await new y().invoke({url:u,enablePII:r.pii!==!1});if(c.success&&c.data){let t=c.data;if(o==="json")g(f(t),r.output);else{if(t.urlSecurity.valid)console.log(e.green(" URL Security: CLEAN"));else{console.log(e.red(` URL Security: ${t.urlSecurity.issues.length} issue(s) (risk: ${t.urlSecurity.riskLevel})`));for(let s of t.urlSecurity.issues){let i=s.severity==="critical"?e.red:s.severity==="high"?e.yellow:e.gray;console.log(i(` [${s.severity}] ${s.type}: ${s.description}`))}}if(t.piiExposure.scanned)if(t.piiExposure.found){console.log(e.red(`
|
|
5
5
|
PII Exposure: ${t.piiExposure.types.length} type(s) found in URL`));for(let s of t.piiExposure.details)console.log(e.yellow(` [${s.type}] in ${s.location}: ${s.masked}`))}else console.log(e.green(`
|
|
6
6
|
PII Exposure: none detected`));console.log(`
|
|
7
7
|
${t.summary}
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b,d as c}from"./chunk-AFLQFUXA.js";import"./chunk-TPRYLARW.js";import"./chunk-NOJVROCD.js";c();export{a as getSharedRvfAdapter,b as resetSharedRvfAdapter};
|
package/dist/cli/chunks/{shared-rvf-dual-writer-UGXTS2XI.js → shared-rvf-dual-writer-NPWTXHUI.js}
RENAMED
|
@@ -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}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.16");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-46K7ALFU.js";import"./chunk-NOJVROCD.js";export{c as getSharedMigrationAdapter,a as getSharedRvfDualWriter,b as getSharedRvfDualWriterSync,d as resetSharedRvfDualWriter};
|
|
@@ -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.16");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-KLVS6FT2.js";import"./chunk-RVQXMMRO.js";import"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import"./chunk-5LDXAVDC.js";import"./chunk-KR7S4IZZ.js";import"./chunk-4PFHQH4B.js";import"./chunk-V2ELGHLG.js";import"./chunk-ED5OUSYZ.js";import"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";export{a as DEFAULT_SQLITE_CONFIG,c as SQLitePatternStore,d as createSQLitePatternStore,b as hashEmbedding};
|
|
@@ -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 m,c as y}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.16");process.exit(0)}
|
|
2
|
+
import{a as m,c as y}from"./chunk-DJPS7H2M.js";import{c as g,d as h}from"./chunk-JUKCBZCZ.js";import"./chunk-NOJVROCD.js";import t from"chalk";var p=class{name="status";description="Show system status";cleanupAndExit;ensureInitialized;constructor(o,n){this.cleanupAndExit=o,this.ensureInitialized=n}register(o,n){o.command("status").description(this.description).option("-v, --verbose","Show detailed status").option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async a=>{await this.executeStatus(a,n)})}async executeStatus(o,n){if(await this.ensureInitialized())try{let a=n.queen.getHealth(),e=n.queen.getMetrics();if((o.format||"text")==="json"){let s={};if(o.verbose)for(let[i,l]of a.domainHealth)s[i]={status:l.status,agents:l.agents,errors:l.errors.length};g(h({status:a.status,uptime:e.uptime,workStealing:a.workStealingActive,agents:{total:a.totalAgents,active:a.activeAgents,utilization:e.agentUtilization},tasks:{received:e.tasksReceived,completed:e.tasksCompleted,failed:e.tasksFailed,pending:a.pendingTasks,running:a.runningTasks,stolen:e.tasksStolen},coordination:{protocols:e.protocolsExecuted,workflows:e.workflowsExecuted},...o.verbose?{domains:s}:{},issues:a.issues}),o.output),await this.cleanupAndExit(0);return}if(console.log(t.blue(`
|
|
3
3
|
AQE v3 Status
|
|
4
4
|
`)),console.log(` Status: ${m(a.status)}`),console.log(` Uptime: ${t.cyan(y(e.uptime))}`),console.log(` Work Stealing: ${a.workStealingActive?t.green("active"):t.gray("inactive")}`),console.log(t.blue(`
|
|
5
5
|
Agents:`)),console.log(` Total: ${t.cyan(a.totalAgents)}`),console.log(` Active: ${t.yellow(a.activeAgents)}`),console.log(` Utilization: ${t.cyan((e.agentUtilization*100).toFixed(1))}%`),console.log(t.blue(`
|
|
@@ -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 l}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.16");process.exit(0)}
|
|
2
|
+
import{a as l}from"./chunk-3H657FNU.js";import"./chunk-TFBEX7ED.js";import"./chunk-BEE5KXQT.js";import"./chunk-W6TMZY5R.js";import"./chunk-NOJVROCD.js";var s={healthyThreshold:.4,warningThreshold:.2,maxHistoryEntries:100,enableLogging:!1},n=class{config;minCutService;history=[];constructor(t){this.config={...s,...t},this.minCutService=l()}computeFleetHealth(t){if(t.length===0)return this.emptyFleetResult();let r=this.minCutService.buildTaskGraphFromTopology(t);return this.computeFleetHealthFromGraph(r,t.length)}computeFleetHealthFromGraph(t,r){if(t.nodes.length===0)return this.emptyFleetResult();let e=this.minCutService.getStructuralHealth(t),o=this.determineStatus(e.normalizedLambda),a={lambda:e.lambda,healthy:e.healthy,weakPoints:e.weakPoints,normalizedLambda:e.normalizedLambda,riskScore:e.riskScore,status:o,suggestions:e.suggestions,measuredAt:new Date};return this.addHistoryEntry({lambda:e.lambda,healthy:e.healthy,weakPointCount:e.weakPoints.length,agentCount:r??t.nodes.length,timestamp:a.measuredAt}),this.config.enableLogging&&this.logHealth(a),a}getTrend(){if(this.history.length<2)return"stable";let t=Math.min(5,this.history.length),r=this.history.slice(-t),e=r[0].lambda,a=r[r.length-1].lambda-e;return Math.abs(a)<.05?"stable":a>0?"improving":"degrading"}getHistory(t){let r=[...this.history];return t!==void 0&&t<r.length?r.slice(-t):r}clearHistory(){this.history.length=0}getMinCutService(){return this.minCutService}determineStatus(t){return t>=this.config.healthyThreshold?"healthy":t>=this.config.warningThreshold?"warning":"critical"}addHistoryEntry(t){this.history.push(t),this.history.length>this.config.maxHistoryEntries&&this.history.splice(0,this.history.length-this.config.maxHistoryEntries)}emptyFleetResult(){return{lambda:0,healthy:!1,weakPoints:[],normalizedLambda:0,riskScore:1,status:"empty",suggestions:["No agents in fleet. Spawn agents to build a topology."],measuredAt:new Date}}logHealth(t){console.error(`[StructuralHealth] Status: ${t.status} | Lambda: ${t.normalizedLambda.toFixed(3)} | Weak points: ${t.weakPoints.length} | Risk: ${(t.riskScore*100).toFixed(0)}%`)}};function d(i){return new n(i)}export{s as DEFAULT_STRUCTURAL_HEALTH_CONFIG,n as StructuralHealthMonitor,d as createStructuralHealthMonitor};
|
|
@@ -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 fe}from"./chunk-XH774Q6Z.js";import"./chunk-4JYLXYAH.js";import{b as R,c as w,d as x,f as ne,o as pe}from"./chunk-ZFZX2NA3.js";import"./chunk-UUVTLYUK.js";import{a as P}from"./chunk-STYNOKOM.js";import{c as h}from"./chunk-GUEK5DOK.js";import{a as Te,b as F,d as te}from"./chunk-DMZ2XOEW.js";import{a as l,b as q,c as v}from"./chunk-UIYK4Y7K.js";import{f as z}from"./chunk-G7L5Y47C.js";import{a as $,b as j}from"./chunk-LWHM5BWD.js";import"./chunk-J3XLOHWB.js";import"./chunk-JN7MSUGK.js";import"./chunk-JNLKLC7G.js";import"./chunk-WE7KIXR6.js";import{d as Re}from"./chunk-XNXOW7BQ.js";import"./chunk-JLBUS4PR.js";import"./chunk-DJLRRCR6.js";import"./chunk-5HUAD4UU.js";import{f as Ce}from"./chunk-DGUAAG3T.js";import{Command as Le}from"commander";import a from"chalk";import O from"ora";var A={cloud:{project:process.env.GCP_PROJECT||"",zone:process.env.GCP_ZONE||"",instance:process.env.GCP_INSTANCE||"",database:process.env.GCP_DATABASE||"",user:process.env.GCP_USER||"",tunnelPort:parseInt(process.env.GCP_TUNNEL_PORT||"15432",10)},environment:process.env.AQE_ENV||"all",batchSize:1e3,sources:[{name:"qe-patterns",cloudTable:"aqe.qe_patterns",localTable:"qe_patterns",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","embedding","sync_version"],transforms:{reusable:"boolean-to-int"}},{name:"sona-patterns",cloudTable:"aqe.sona_patterns",localTable:"sona_patterns",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","sync_version"],transforms:{is_active:"boolean-to-int",requires_fine_tuning:"boolean-to-int"}},{name:"goap-actions",cloudTable:"aqe.goap_actions",localTable:"goap_actions",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{duration_estimate:"estimated_duration_ms"}},{name:"goap-plans",cloudTable:"aqe.goap_plans",localTable:"goap_plans",enabled:!0,priority:"medium",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{estimated_duration:"estimated_duration_ms"}},{name:"memory-entries",cloudTable:"aqe.memory_entries",localTable:"kv_store",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{partition:"namespace"}},{name:"learning-experiences",cloudTable:"aqe.learning_experiences",localTable:"captured_experiences",enabled:!0,priority:"high",mode:"append",dropColumns:["id","source_env","sync_version"],columnMap:{agent_id:"agent",task_id:"task",task_type:"domain",state:"result_json",action:"steps_json",reward:"quality",next_state:"routing_json",episode_id:"tags",created_at:"started_at"}},{name:"qlearning-patterns",cloudTable:"aqe.qlearning_patterns",localTable:"rl_q_values",enabled:!0,priority:"medium",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{state:"state_key",action:"action_key",last_update:"updated_at"}},{name:"routing-outcomes",cloudTable:"aqe.routing_outcomes",localTable:"routing_outcomes",enabled:!0,priority:"medium",mode:"append",dropColumns:["source_env","sync_version"]},{name:"qe-trajectories",cloudTable:"aqe.qe_trajectories",localTable:"qe_trajectories",enabled:!0,priority:"medium",mode:"append",dropColumns:["source_env","sync_version","embedding"]},{name:"dream-insights",cloudTable:"aqe.dream_insights",localTable:"dream_insights",enabled:!0,priority:"low",mode:"append",dropColumns:["source_env","sync_version"]},{name:"claude-flow-memory",cloudTable:"aqe.claude_flow_memory",localTable:"kv_store",enabled:!0,priority:"low",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{partition:"namespace"}}]};var m={local:{v3MemoryDb:"./.agentic-qe/memory.db",rootMemoryDb:"./.agentic-qe/memory.db",claudeFlowMemory:"./.claude-flow/memory/store.json",claudeFlowDaemon:"./.claude-flow/daemon-state.json",claudeFlowMetrics:"./.claude-flow/metrics/",intelligenceJson:"./.ruvector/intelligence.json",swarmMemoryDb:"./.swarm/memory.db",v2PatternsDb:""},cloud:{project:process.env.GCP_PROJECT||"",zone:process.env.GCP_ZONE||"",instance:process.env.GCP_INSTANCE||"",database:process.env.GCP_DATABASE||"",user:process.env.GCP_USER||"",tunnelPort:parseInt(process.env.GCP_TUNNEL_PORT||"15432",10)},sync:{mode:"incremental",interval:"1h",batchSize:1e3,conflictResolution:"newer-wins",sourcePriority:{qePatterns:1,sonaPatterns:2,goapActions:3,kvStore:4,experiences:5,claudeFlowMemory:6,intelligenceJson:7},sources:[{name:"root-qe-patterns",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.qe_patterns",priority:"high",mode:"incremental",query:"SELECT id, pattern_type, qe_domain, domain, name, description, confidence, usage_count, success_rate, quality_score, tier, template_json, context_json, successful_uses, created_at, updated_at, last_used_at, tokens_used, input_tokens, output_tokens, latency_ms, reusable, reuse_count, average_token_savings, total_tokens_saved FROM qe_patterns",enabled:!0},{name:"root-sona-patterns",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.sona_patterns",priority:"high",mode:"incremental",query:"SELECT * FROM sona_patterns",enabled:!0},{name:"root-goap-actions",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.goap_actions",priority:"high",mode:"incremental",query:"SELECT * FROM goap_actions",enabled:!0},{name:"root-kv-store",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.memory_entries",priority:"high",mode:"incremental",query:"SELECT key, namespace as partition, CASE WHEN json_valid(value) THEN value ELSE json_quote(value) END as value, created_at, expires_at FROM kv_store WHERE json_valid(value) OR json_valid(json_quote(value))",enabled:!0},{name:"root-captured-experiences",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.learning_experiences",priority:"high",mode:"append",query:"SELECT agent as agent_id, task as task_id, domain as task_type, COALESCE(result_json, '{}') as state, COALESCE(steps_json, '{}') as action, quality as reward, COALESCE(routing_json, '{}') as next_state, tags as episode_id, started_at as created_at FROM captured_experiences",enabled:!0},{name:"root-goap-plans",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.goap_plans",priority:"medium",mode:"incremental",query:"SELECT id, goal_id, action_sequence as sequence, initial_state, goal_state, action_sequence, total_cost, estimated_duration_ms as estimated_duration, status, created_at, completed_at FROM goap_plans",enabled:!0},{name:"root-rl-q-values",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.qlearning_patterns",priority:"medium",mode:"incremental",query:"SELECT DISTINCT state_key as state, action_key as action, q_value, visits, updated_at as last_update, created_at FROM rl_q_values GROUP BY state_key, action_key",enabled:!0},{name:"root-routing-outcomes",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.routing_outcomes",priority:"medium",mode:"append",query:"SELECT * FROM routing_outcomes",enabled:!0},{name:"root-qe-trajectories",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.qe_trajectories",priority:"medium",mode:"append",query:"SELECT * FROM qe_trajectories",enabled:!0},{name:"root-dream-insights",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.dream_insights",priority:"low",mode:"append",query:"SELECT * FROM dream_insights",enabled:!0},{name:"claude-flow-memory",type:"json",path:"./.claude-flow/memory/store.json",targetTable:"aqe.claude_flow_memory",priority:"medium",mode:"full",enabled:!0},{name:"intelligence-qlearning",type:"json",path:"./.ruvector/intelligence.json",targetTable:"aqe.qlearning_patterns",priority:"low",mode:"full",jsonPath:"$.qvalues",enabled:!0}]},environment:process.env.AQE_ENV||"devpod"};j();x();te();v();P();import*as re from"fs";import*as he from"path";var W=h.create("sqlite-reader"),U=class{name;type="sqlite";db=null;config;dbPath;constructor(e){this.config=e,this.name=e.source.name,this.dbPath=he.resolve(e.baseDir,e.source.path)}async initialize(){if(!this.db){if(!re.existsSync(this.dbPath))throw new Error(`SQLite database not found: ${this.dbPath}`);try{this.db=$(this.dbPath,{readonly:!0}),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),console.log(`[SQLiteReader:${this.name}] Initialized: ${this.dbPath}`)}catch(e){throw new Error(`Failed to open SQLite database ${this.dbPath}: ${l(e)}`)}}}async readAll(){if(!this.db)throw new Error("Reader not initialized");let e=this.config.source.query||`SELECT * FROM ${R(this.getTableName())}`;try{return this.tableExists(this.getTableName())?this.db.prepare(e).all().map(r=>this.transformRecord(r)):(console.warn(`[SQLiteReader:${this.name}] Table not found, returning empty`),[])}catch(t){throw new Error(`Failed to read from ${this.name}: ${l(t)}`)}}async readChanged(e){if(!this.db)throw new Error("Reader not initialized");let t=this.findTimestampColumn();if(!t)return console.warn(`[SQLiteReader:${this.name}] No timestamp column found, falling back to readAll`),this.readAll();let n=this.getTableName();if(!this.tableExists(n))return[];let r=e.toISOString(),o=`SELECT * FROM ${R(n)} WHERE ${t} > ?`;try{return this.db.prepare(o).all(r).map(d=>this.transformRecord(d))}catch{return console.warn(`[SQLiteReader:${this.name}] Changed query failed, falling back to readAll`),this.readAll()}}async count(){if(!this.db)throw new Error("Reader not initialized");let e=this.getTableName();if(!this.tableExists(e))return 0;try{return this.db.prepare(`SELECT COUNT(*) as count FROM ${R(e)}`).get().count}catch(t){return W.debug("Record count query failed",{table:e,error:l(t)}),0}}async close(){this.db&&(this.db.close(),this.db=null,console.log(`[SQLiteReader:${this.name}] Closed`))}getTableName(){let e=this.config.source.query;if(e){let r=e.match(/FROM\s+(\w+)/i);if(r)return r[1]}let n=this.config.source.targetTable.split(".");return n[n.length-1]}tableExists(e){if(!this.db)return!1;try{return!!this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(e)}catch(t){return W.debug("Table existence check failed",{table:e,error:t instanceof Error?t.message:String(t)}),!1}}findTimestampColumn(){if(!this.db)return null;let e=this.getTableName(),t=["updated_at","created_at","timestamp","last_used_at","modified_at"];try{let o=this.db.prepare(`PRAGMA table_info(${R(e)})`).all().map(s=>s.name.toLowerCase());for(let s of t)if(o.includes(s))return s}catch(n){return W.debug("Timestamp column detection failed",{table:e,error:n instanceof Error?n.message:String(n)}),null}return null}transformRecord(e){let t={...e,source_env:this.config.environment};for(let[n,r]of Object.entries(t)){if(typeof r=="string"&&this.looksLikeJson(r))try{t[n]=F(r)}catch(o){W.debug("JSON parse failed for record field",{key:n,error:o instanceof Error?o.message:String(o)})}if(n.endsWith("_at")&&typeof r=="number"&&(t[n]=new Date(r).toISOString()),r instanceof Buffer)if(n.includes("embedding")){let o=e.dimension||384;t[n]=Array.from(new Float32Array(r.buffer,r.byteOffset,o))}else t[n]=r.toString("base64")}return t}looksLikeJson(e){if(!e)return!1;let t=e.trim();return t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")}getInfo(){let e=re.existsSync(this.dbPath),t=[];if(e&&this.db)try{t=this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name").all().map(r=>r.name)}catch(n){console.debug("[SQLiteReader] Table listing error:",n instanceof Error?n.message:n)}return{path:this.dbPath,exists:e,tables:t}}};function oe(i){return new U(i)}var be=Ce(Te(),1);v();import{randomUUID as ve}from"crypto";import*as T from"fs";import*as ye from"path";var B=class{name;type="json";config;filePath;data=null;fileModTime=null;constructor(e){this.config=e,this.name=e.source.name,this.filePath=ye.resolve(e.baseDir,e.source.path)}async initialize(){if(!T.existsSync(this.filePath)){console.warn(`[JSONReader:${this.name}] File not found: ${this.filePath}`),this.data=[];return}let e=T.statSync(this.filePath);this.fileModTime=e.mtime,console.log(`[JSONReader:${this.name}] Initialized: ${this.filePath}`)}async readAll(){if(!T.existsSync(this.filePath))return[];try{let e=T.readFileSync(this.filePath,"utf-8"),t=be.default.parse(e);return this.extractRecords(t).map(r=>this.transformRecord(r))}catch(e){return console.error(`[JSONReader:${this.name}] Failed to read: ${l(e)}`),[]}}async readChanged(e){return T.existsSync(this.filePath)?T.statSync(this.filePath).mtime<=e?[]:this.readAll():[]}async count(){return(await this.readAll()).length}async close(){this.data=null,this.fileModTime=null,console.log(`[JSONReader:${this.name}] Closed`)}extractRecords(e){return this.config.source.jsonPath?this.extractByPath(e,this.config.source.jsonPath):this.name.includes("claude-flow-memory")?this.extractClaudeFlowMemory(e):this.name.includes("intelligence")||this.name.includes("qlearning")?this.extractIntelligence(e):this.name.includes("daemon")?this.extractDaemonState(e):Array.isArray(e)?e:typeof e=="object"&&e!==null?Object.entries(e).map(([n,r])=>({key:n,value:r})):[]}extractByPath(e,t){let n=t.replace(/^\$\./,"").split("."),r=e;for(let o of n)if(r&&typeof r=="object"&&o in r)r=r[o];else return[];return Array.isArray(r)?r:typeof r=="object"&&r!==null?Object.entries(r).map(([o,s])=>({state:o,...typeof s=="object"?s:{value:s}})):[]}extractClaudeFlowMemory(e){if(!e||typeof e!="object")return[];let t=[],n=e;for(let[r,o]of Object.entries(n)){if(r.startsWith("_"))continue;let s="general";r.includes("adr")?s="adr-analysis":r.includes("agent")?s="agent-patterns":r.includes("pattern")?s="patterns":r.includes("metric")&&(s="metrics"),t.push({key:r,value:typeof o=="object"?o:{data:o},category:s})}return t}extractIntelligence(e){if(!e||typeof e!="object")return[];let t=[],n=e;if(n.qvalues&&typeof n.qvalues=="object"){let r=n.qvalues;for(let[o,s]of Object.entries(r))if(typeof s=="object"&&s!==null)for(let[c,d]of Object.entries(s)){let u=typeof d=="object"?d:{value:d};t.push({state:o,action:c,q_value:u.value||u.q_value||0,visits:u.visits||0,last_update:u.lastUpdate||u.last_update})}}if(n.memories&&Array.isArray(n.memories)){for(let r of n.memories)if(typeof r=="object"&&r!==null){let o=r;t.push({id:o.id||`mem_${Date.now()}_${ve().slice(0,12)}`,memory_type:o.type||"file_access",content:o.content||o.path,embedding:o.embedding,metadata:o.metadata,timestamp:o.timestamp})}}return t}extractDaemonState(e){if(!e||typeof e!="object")return[];let t=[],n=e;if(n.workers&&typeof n.workers=="object"){let r=n.workers;for(let[o,s]of Object.entries(r))if(typeof s=="object"&&s!==null){let c=s;t.push({worker_type:o,run_count:c.runCount||c.runs||0,success_count:c.successCount||c.successes||0,failure_count:c.failureCount||c.failures||0,avg_duration_ms:c.avgDuration||c.averageDurationMs,last_run:c.lastRun})}}return t}transformRecord(e){let t={...e,source_env:this.config.environment};for(let[n,r]of Object.entries(t))(n.includes("timestamp")||n.endsWith("_at")||n==="last_update")&&(typeof r=="number"?t[n]=new Date(r).toISOString():typeof r=="string"&&!isNaN(Date.parse(r))&&(t[n]=new Date(r).toISOString())),typeof r=="object"&&r!==null&&!Array.isArray(r)&&["value","metadata","embedding"].includes(n);return t.created_at||(t.created_at=new Date().toISOString()),t}getInfo(){let e=T.existsSync(this.filePath),t=0,n=null;if(e){let r=T.statSync(this.filePath);t=r.size,n=r.mtime}return{path:this.filePath,exists:e,modTime:n,size:t}}};function se(i){return new B(i)}P();import{spawn as Pe}from"child_process";import{createConnection as _e}from"net";var $e=h.create("tunnel-manager");function Se(i){try{let e=new URL(i);return e.password&&(e.password="***"),e.toString()}catch(e){return $e.debug("URL parse failed during redaction, using regex fallback",{error:e instanceof Error?e.message:String(e)}),i.replace(/:\/\/([^:]+):([^@]+)@/,"://$1:***@")}}var J=class{process=null;connection=null;config;constructor(e){this.config=e}checkPort(e,t,n=2e3){return new Promise(r=>{let o=_e({host:e,port:t}),s=setTimeout(()=>{o.destroy(),r(!1)},n);o.on("connect",()=>{clearTimeout(s),o.destroy(),r(!0)}),o.on("error",()=>{clearTimeout(s),o.destroy(),r(!1)})})}async start(){return this.process&&this.connection?(console.log("[TunnelManager] Tunnel already running"),this.connection):await this.checkPort("localhost",this.config.tunnelPort)?(console.log(`[TunnelManager] External tunnel detected on port ${this.config.tunnelPort}, reusing`),this.connection={host:"localhost",port:this.config.tunnelPort,startedAt:new Date},this.connection):new Promise((t,n)=>{let r=["compute","start-iap-tunnel",this.config.instance,"5432",`--local-host-port=localhost:${this.config.tunnelPort}`,`--zone=${this.config.zone}`,`--project=${this.config.project}`];console.log(`[TunnelManager] Starting IAP tunnel: gcloud ${r.join(" ")}`),this.process=Pe("gcloud",r,{stdio:["ignore","pipe","pipe"]});let o=!1,s="",c=!1;this.process.stderr?.on("data",d=>{let u=d.toString();console.log(`[TunnelManager] ${u.trim()}`),["Listening on port","tunnel is running","Testing if tunnel connection works"].some(y=>u.includes(y))&&!o&&!c&&(c=!0,setTimeout(async()=>{for(let p=0;p<10;p++){if(console.log(`[TunnelManager] Checking port connectivity (attempt ${p+1}/10)...`),await this.checkPort("localhost",this.config.tunnelPort)){o=!0,this.connection={host:"localhost",port:this.config.tunnelPort,pid:this.process?.pid,startedAt:new Date},console.log(`[TunnelManager] Tunnel ready on port ${this.config.tunnelPort}`),t(this.connection);return}await new Promise(S=>setTimeout(S,1e3))}c=!1},2e3)),s+=u}),this.process.stdout?.on("data",d=>{let u=d.toString();console.log(`[TunnelManager] ${u.trim()}`)}),this.process.on("error",d=>{console.error(`[TunnelManager] Process error: ${d.message}`),o||n(new Error(`Failed to start tunnel: ${d.message}`))}),this.process.on("close",d=>{console.log(`[TunnelManager] Process closed with code ${d}`),this.process=null,this.connection=null,o||n(new Error(`Tunnel process exited with code ${d}: ${s}`))}),setTimeout(()=>{o||(this.stop(),n(new Error("Tunnel connection timeout")))},6e4)})}async stop(){this.process&&(console.log("[TunnelManager] Stopping tunnel"),this.process.kill("SIGTERM"),await new Promise(e=>setTimeout(e,1e3)),this.process&&this.process.kill("SIGKILL"),this.process=null,this.connection=null)}isActive(){return this.process!==null&&this.connection!==null}getConnection(){return this.connection}getConnectionString(){if(!this.connection)throw new Error("Tunnel not active");let{database:e,user:t}=this.config,n=process.env.PGPASSWORD||"",r=this.connection.host,o=this.connection.port;return`postgresql://${t}:${n}@${r}:${o}/${e}`}getRedactedConnectionString(){return Se(this.getConnectionString())}};var Q=class{connection=null;connectionString;constructor(e){this.connectionString=e}async start(){let e=new URL(this.connectionString);return this.connection={host:e.hostname,port:parseInt(e.port||"5432",10),startedAt:new Date},this.connection}async stop(){this.connection=null}isActive(){return this.connection!==null}getConnection(){return this.connection}getConnectionString(){return this.connectionString}getRedactedConnectionString(){return Se(this.connectionString)}};function k(i){return i.connectionString?new Q(i.connectionString):new J(i)}x();v();P();import{createRequire as xe}from"module";var M=h.create("postgres-writer"),Ae=xe(import.meta.url),G=class{client=null;config;inTransaction=!1;connected=!1;constructor(e){this.config=e}async connect(){if(this.connected)return;this.config.tunnelManager.isActive()||await this.config.tunnelManager.start();let e=this.config.tunnelManager.getConnection();if(!e)throw new Error("No tunnel connection available");let t;try{t=Ae("pg")}catch(s){M.debug("pg module not installed, using mock mode",{error:s instanceof Error?s.message:String(s)}),console.warn("[PostgresWriter] pg module not installed, running in mock mode"),this.client=this.createMockClient(),this.connected=!0;return}let n=t.default,r=t.Client||n?.Client;if(!r){console.warn("[PostgresWriter] pg.Client not found in module, running in mock mode"),this.client=this.createMockClient(),this.connected=!0;return}let o={host:e.host,port:e.port,database:this.config.cloud.database,user:this.config.cloud.user,password:process.env.PGPASSWORD||"",connectionTimeoutMillis:this.config.connectionTimeout||1e4};this.client=new r(o),await this.client.connect(),this.connected=!0,console.log(`[PostgresWriter] Connected to ${e.host}:${e.port}/${this.config.cloud.database}`)}async beginTransaction(){if(!this.client)throw new Error("Not connected");await this.client.query("BEGIN"),this.inTransaction=!0}async commit(){if(!this.client||!this.inTransaction)throw new Error("No active transaction");await this.client.query("COMMIT"),this.inTransaction=!1}async rollback(){!this.client||!this.inTransaction||(await this.client.query("ROLLBACK"),this.inTransaction=!1)}async upsert(e,t,n){if(!this.client)throw new Error("Not connected");if(t.length===0)return 0;let r=t[0],o=Object.keys(r),s=n?.conflictColumns||this.inferConflictColumns(e,o),c=n?.updateColumns||o.filter(g=>!s.includes(g)),d=0,u=100;for(let g=0;g<t.length;g+=u){let E=t.slice(g,g+u);try{let y=await this.upsertBatch(e,E,o,s,c,n?.skipIfExists);d+=y}catch(y){let p=Math.floor(g/u)+1,b=Math.ceil(t.length/u);M.debug(`Batch ${p}/${b} failed for ${e}, retrying individually`,{error:l(y)});let S=0;for(let f of E)try{let C=await this.upsertBatch(e,[f],o,s,c,n?.skipIfExists);S+=C}catch(C){let L=f.id||f.key||"?";M.debug(`Skipped record ${String(L).slice(0,50)} in ${e}`,{error:l(C)})}d+=S,S<E.length&&console.warn(`[PostgresWriter] Batch ${p}/${b} for ${e}: ${S}/${E.length} recovered (${E.length-S} skipped)`)}}return d}async upsertBatch(e,t,n,r,o,s){if(!this.client)return 0;let c=[],d=[],u=1;for(let f of t){let C=[];for(let L of n){let Ee=f[L];C.push(`$${u++}`),d.push(this.serializeValue(Ee,L))}c.push(`(${C.join(", ")})`)}let g=w(e),E=n.map(w),y=r.map(w),p=o.map(w),b="";if(y.length>0){if(s)b=`ON CONFLICT (${y.join(", ")}) DO NOTHING`;else if(p.length>0){let f=p.map(C=>`${C} = EXCLUDED.${C}`).join(", ");b=`ON CONFLICT (${y.join(", ")}) DO UPDATE SET ${f}`}}let S=`
|
|
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.16");process.exit(0)}
|
|
2
|
+
import{a as fe}from"./chunk-JNXIYHLI.js";import"./chunk-G5DMEEQQ.js";import{b as R,c as w,d as x,f as ne,o as pe}from"./chunk-H4BZJVKU.js";import"./chunk-TWEBJWJI.js";import{a as P}from"./chunk-5LDXAVDC.js";import{c as h}from"./chunk-KR7S4IZZ.js";import{a as Te,b as F,d as te}from"./chunk-4PFHQH4B.js";import{a as l,b as q,c as v}from"./chunk-V2ELGHLG.js";import{f as z}from"./chunk-ED5OUSYZ.js";import{a as $,b as j}from"./chunk-RFLSJ7OL.js";import"./chunk-T7VIUEKI.js";import"./chunk-3CAPNE2H.js";import"./chunk-77OVXVN2.js";import"./chunk-MJKFU6A6.js";import{d as Re}from"./chunk-HJUC2DE6.js";import"./chunk-GB6D3SSY.js";import"./chunk-NIXMFJJC.js";import"./chunk-W6TMZY5R.js";import{f as Ce}from"./chunk-NOJVROCD.js";import{Command as Le}from"commander";import a from"chalk";import O from"ora";var A={cloud:{project:process.env.GCP_PROJECT||"",zone:process.env.GCP_ZONE||"",instance:process.env.GCP_INSTANCE||"",database:process.env.GCP_DATABASE||"",user:process.env.GCP_USER||"",tunnelPort:parseInt(process.env.GCP_TUNNEL_PORT||"15432",10)},environment:process.env.AQE_ENV||"all",batchSize:1e3,sources:[{name:"qe-patterns",cloudTable:"aqe.qe_patterns",localTable:"qe_patterns",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","embedding","sync_version"],transforms:{reusable:"boolean-to-int"}},{name:"sona-patterns",cloudTable:"aqe.sona_patterns",localTable:"sona_patterns",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","sync_version"],transforms:{is_active:"boolean-to-int",requires_fine_tuning:"boolean-to-int"}},{name:"goap-actions",cloudTable:"aqe.goap_actions",localTable:"goap_actions",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{duration_estimate:"estimated_duration_ms"}},{name:"goap-plans",cloudTable:"aqe.goap_plans",localTable:"goap_plans",enabled:!0,priority:"medium",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{estimated_duration:"estimated_duration_ms"}},{name:"memory-entries",cloudTable:"aqe.memory_entries",localTable:"kv_store",enabled:!0,priority:"high",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{partition:"namespace"}},{name:"learning-experiences",cloudTable:"aqe.learning_experiences",localTable:"captured_experiences",enabled:!0,priority:"high",mode:"append",dropColumns:["id","source_env","sync_version"],columnMap:{agent_id:"agent",task_id:"task",task_type:"domain",state:"result_json",action:"steps_json",reward:"quality",next_state:"routing_json",episode_id:"tags",created_at:"started_at"}},{name:"qlearning-patterns",cloudTable:"aqe.qlearning_patterns",localTable:"rl_q_values",enabled:!0,priority:"medium",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{state:"state_key",action:"action_key",last_update:"updated_at"}},{name:"routing-outcomes",cloudTable:"aqe.routing_outcomes",localTable:"routing_outcomes",enabled:!0,priority:"medium",mode:"append",dropColumns:["source_env","sync_version"]},{name:"qe-trajectories",cloudTable:"aqe.qe_trajectories",localTable:"qe_trajectories",enabled:!0,priority:"medium",mode:"append",dropColumns:["source_env","sync_version","embedding"]},{name:"dream-insights",cloudTable:"aqe.dream_insights",localTable:"dream_insights",enabled:!0,priority:"low",mode:"append",dropColumns:["source_env","sync_version"]},{name:"claude-flow-memory",cloudTable:"aqe.claude_flow_memory",localTable:"kv_store",enabled:!0,priority:"low",mode:"incremental",dropColumns:["source_env","sync_version"],columnMap:{partition:"namespace"}}]};var m={local:{v3MemoryDb:"./.agentic-qe/memory.db",rootMemoryDb:"./.agentic-qe/memory.db",claudeFlowMemory:"./.claude-flow/memory/store.json",claudeFlowDaemon:"./.claude-flow/daemon-state.json",claudeFlowMetrics:"./.claude-flow/metrics/",intelligenceJson:"./.ruvector/intelligence.json",swarmMemoryDb:"./.swarm/memory.db",v2PatternsDb:""},cloud:{project:process.env.GCP_PROJECT||"",zone:process.env.GCP_ZONE||"",instance:process.env.GCP_INSTANCE||"",database:process.env.GCP_DATABASE||"",user:process.env.GCP_USER||"",tunnelPort:parseInt(process.env.GCP_TUNNEL_PORT||"15432",10)},sync:{mode:"incremental",interval:"1h",batchSize:1e3,conflictResolution:"newer-wins",sourcePriority:{qePatterns:1,sonaPatterns:2,goapActions:3,kvStore:4,experiences:5,claudeFlowMemory:6,intelligenceJson:7},sources:[{name:"root-qe-patterns",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.qe_patterns",priority:"high",mode:"incremental",query:"SELECT id, pattern_type, qe_domain, domain, name, description, confidence, usage_count, success_rate, quality_score, tier, template_json, context_json, successful_uses, created_at, updated_at, last_used_at, tokens_used, input_tokens, output_tokens, latency_ms, reusable, reuse_count, average_token_savings, total_tokens_saved FROM qe_patterns",enabled:!0},{name:"root-sona-patterns",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.sona_patterns",priority:"high",mode:"incremental",query:"SELECT * FROM sona_patterns",enabled:!0},{name:"root-goap-actions",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.goap_actions",priority:"high",mode:"incremental",query:"SELECT * FROM goap_actions",enabled:!0},{name:"root-kv-store",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.memory_entries",priority:"high",mode:"incremental",query:"SELECT key, namespace as partition, CASE WHEN json_valid(value) THEN value ELSE json_quote(value) END as value, created_at, expires_at FROM kv_store WHERE json_valid(value) OR json_valid(json_quote(value))",enabled:!0},{name:"root-captured-experiences",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.learning_experiences",priority:"high",mode:"append",query:"SELECT agent as agent_id, task as task_id, domain as task_type, COALESCE(result_json, '{}') as state, COALESCE(steps_json, '{}') as action, quality as reward, COALESCE(routing_json, '{}') as next_state, tags as episode_id, started_at as created_at FROM captured_experiences",enabled:!0},{name:"root-goap-plans",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.goap_plans",priority:"medium",mode:"incremental",query:"SELECT id, goal_id, action_sequence as sequence, initial_state, goal_state, action_sequence, total_cost, estimated_duration_ms as estimated_duration, status, created_at, completed_at FROM goap_plans",enabled:!0},{name:"root-rl-q-values",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.qlearning_patterns",priority:"medium",mode:"incremental",query:"SELECT DISTINCT state_key as state, action_key as action, q_value, visits, updated_at as last_update, created_at FROM rl_q_values GROUP BY state_key, action_key",enabled:!0},{name:"root-routing-outcomes",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.routing_outcomes",priority:"medium",mode:"append",query:"SELECT * FROM routing_outcomes",enabled:!0},{name:"root-qe-trajectories",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.qe_trajectories",priority:"medium",mode:"append",query:"SELECT * FROM qe_trajectories",enabled:!0},{name:"root-dream-insights",type:"sqlite",path:"./.agentic-qe/memory.db",targetTable:"aqe.dream_insights",priority:"low",mode:"append",query:"SELECT * FROM dream_insights",enabled:!0},{name:"claude-flow-memory",type:"json",path:"./.claude-flow/memory/store.json",targetTable:"aqe.claude_flow_memory",priority:"medium",mode:"full",enabled:!0},{name:"intelligence-qlearning",type:"json",path:"./.ruvector/intelligence.json",targetTable:"aqe.qlearning_patterns",priority:"low",mode:"full",jsonPath:"$.qvalues",enabled:!0}]},environment:process.env.AQE_ENV||"devpod"};j();x();te();v();P();import*as re from"fs";import*as he from"path";var W=h.create("sqlite-reader"),U=class{name;type="sqlite";db=null;config;dbPath;constructor(e){this.config=e,this.name=e.source.name,this.dbPath=he.resolve(e.baseDir,e.source.path)}async initialize(){if(!this.db){if(!re.existsSync(this.dbPath))throw new Error(`SQLite database not found: ${this.dbPath}`);try{this.db=$(this.dbPath,{readonly:!0}),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),console.log(`[SQLiteReader:${this.name}] Initialized: ${this.dbPath}`)}catch(e){throw new Error(`Failed to open SQLite database ${this.dbPath}: ${l(e)}`)}}}async readAll(){if(!this.db)throw new Error("Reader not initialized");let e=this.config.source.query||`SELECT * FROM ${R(this.getTableName())}`;try{return this.tableExists(this.getTableName())?this.db.prepare(e).all().map(r=>this.transformRecord(r)):(console.warn(`[SQLiteReader:${this.name}] Table not found, returning empty`),[])}catch(t){throw new Error(`Failed to read from ${this.name}: ${l(t)}`)}}async readChanged(e){if(!this.db)throw new Error("Reader not initialized");let t=this.findTimestampColumn();if(!t)return console.warn(`[SQLiteReader:${this.name}] No timestamp column found, falling back to readAll`),this.readAll();let n=this.getTableName();if(!this.tableExists(n))return[];let r=e.toISOString(),o=`SELECT * FROM ${R(n)} WHERE ${t} > ?`;try{return this.db.prepare(o).all(r).map(d=>this.transformRecord(d))}catch{return console.warn(`[SQLiteReader:${this.name}] Changed query failed, falling back to readAll`),this.readAll()}}async count(){if(!this.db)throw new Error("Reader not initialized");let e=this.getTableName();if(!this.tableExists(e))return 0;try{return this.db.prepare(`SELECT COUNT(*) as count FROM ${R(e)}`).get().count}catch(t){return W.debug("Record count query failed",{table:e,error:l(t)}),0}}async close(){this.db&&(this.db.close(),this.db=null,console.log(`[SQLiteReader:${this.name}] Closed`))}getTableName(){let e=this.config.source.query;if(e){let r=e.match(/FROM\s+(\w+)/i);if(r)return r[1]}let n=this.config.source.targetTable.split(".");return n[n.length-1]}tableExists(e){if(!this.db)return!1;try{return!!this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(e)}catch(t){return W.debug("Table existence check failed",{table:e,error:t instanceof Error?t.message:String(t)}),!1}}findTimestampColumn(){if(!this.db)return null;let e=this.getTableName(),t=["updated_at","created_at","timestamp","last_used_at","modified_at"];try{let o=this.db.prepare(`PRAGMA table_info(${R(e)})`).all().map(s=>s.name.toLowerCase());for(let s of t)if(o.includes(s))return s}catch(n){return W.debug("Timestamp column detection failed",{table:e,error:n instanceof Error?n.message:String(n)}),null}return null}transformRecord(e){let t={...e,source_env:this.config.environment};for(let[n,r]of Object.entries(t)){if(typeof r=="string"&&this.looksLikeJson(r))try{t[n]=F(r)}catch(o){W.debug("JSON parse failed for record field",{key:n,error:o instanceof Error?o.message:String(o)})}if(n.endsWith("_at")&&typeof r=="number"&&(t[n]=new Date(r).toISOString()),r instanceof Buffer)if(n.includes("embedding")){let o=e.dimension||384;t[n]=Array.from(new Float32Array(r.buffer,r.byteOffset,o))}else t[n]=r.toString("base64")}return t}looksLikeJson(e){if(!e)return!1;let t=e.trim();return t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")}getInfo(){let e=re.existsSync(this.dbPath),t=[];if(e&&this.db)try{t=this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name").all().map(r=>r.name)}catch(n){console.debug("[SQLiteReader] Table listing error:",n instanceof Error?n.message:n)}return{path:this.dbPath,exists:e,tables:t}}};function oe(i){return new U(i)}var be=Ce(Te(),1);v();import{randomUUID as ve}from"crypto";import*as T from"fs";import*as ye from"path";var B=class{name;type="json";config;filePath;data=null;fileModTime=null;constructor(e){this.config=e,this.name=e.source.name,this.filePath=ye.resolve(e.baseDir,e.source.path)}async initialize(){if(!T.existsSync(this.filePath)){console.warn(`[JSONReader:${this.name}] File not found: ${this.filePath}`),this.data=[];return}let e=T.statSync(this.filePath);this.fileModTime=e.mtime,console.log(`[JSONReader:${this.name}] Initialized: ${this.filePath}`)}async readAll(){if(!T.existsSync(this.filePath))return[];try{let e=T.readFileSync(this.filePath,"utf-8"),t=be.default.parse(e);return this.extractRecords(t).map(r=>this.transformRecord(r))}catch(e){return console.error(`[JSONReader:${this.name}] Failed to read: ${l(e)}`),[]}}async readChanged(e){return T.existsSync(this.filePath)?T.statSync(this.filePath).mtime<=e?[]:this.readAll():[]}async count(){return(await this.readAll()).length}async close(){this.data=null,this.fileModTime=null,console.log(`[JSONReader:${this.name}] Closed`)}extractRecords(e){return this.config.source.jsonPath?this.extractByPath(e,this.config.source.jsonPath):this.name.includes("claude-flow-memory")?this.extractClaudeFlowMemory(e):this.name.includes("intelligence")||this.name.includes("qlearning")?this.extractIntelligence(e):this.name.includes("daemon")?this.extractDaemonState(e):Array.isArray(e)?e:typeof e=="object"&&e!==null?Object.entries(e).map(([n,r])=>({key:n,value:r})):[]}extractByPath(e,t){let n=t.replace(/^\$\./,"").split("."),r=e;for(let o of n)if(r&&typeof r=="object"&&o in r)r=r[o];else return[];return Array.isArray(r)?r:typeof r=="object"&&r!==null?Object.entries(r).map(([o,s])=>({state:o,...typeof s=="object"?s:{value:s}})):[]}extractClaudeFlowMemory(e){if(!e||typeof e!="object")return[];let t=[],n=e;for(let[r,o]of Object.entries(n)){if(r.startsWith("_"))continue;let s="general";r.includes("adr")?s="adr-analysis":r.includes("agent")?s="agent-patterns":r.includes("pattern")?s="patterns":r.includes("metric")&&(s="metrics"),t.push({key:r,value:typeof o=="object"?o:{data:o},category:s})}return t}extractIntelligence(e){if(!e||typeof e!="object")return[];let t=[],n=e;if(n.qvalues&&typeof n.qvalues=="object"){let r=n.qvalues;for(let[o,s]of Object.entries(r))if(typeof s=="object"&&s!==null)for(let[c,d]of Object.entries(s)){let u=typeof d=="object"?d:{value:d};t.push({state:o,action:c,q_value:u.value||u.q_value||0,visits:u.visits||0,last_update:u.lastUpdate||u.last_update})}}if(n.memories&&Array.isArray(n.memories)){for(let r of n.memories)if(typeof r=="object"&&r!==null){let o=r;t.push({id:o.id||`mem_${Date.now()}_${ve().slice(0,12)}`,memory_type:o.type||"file_access",content:o.content||o.path,embedding:o.embedding,metadata:o.metadata,timestamp:o.timestamp})}}return t}extractDaemonState(e){if(!e||typeof e!="object")return[];let t=[],n=e;if(n.workers&&typeof n.workers=="object"){let r=n.workers;for(let[o,s]of Object.entries(r))if(typeof s=="object"&&s!==null){let c=s;t.push({worker_type:o,run_count:c.runCount||c.runs||0,success_count:c.successCount||c.successes||0,failure_count:c.failureCount||c.failures||0,avg_duration_ms:c.avgDuration||c.averageDurationMs,last_run:c.lastRun})}}return t}transformRecord(e){let t={...e,source_env:this.config.environment};for(let[n,r]of Object.entries(t))(n.includes("timestamp")||n.endsWith("_at")||n==="last_update")&&(typeof r=="number"?t[n]=new Date(r).toISOString():typeof r=="string"&&!isNaN(Date.parse(r))&&(t[n]=new Date(r).toISOString())),typeof r=="object"&&r!==null&&!Array.isArray(r)&&["value","metadata","embedding"].includes(n);return t.created_at||(t.created_at=new Date().toISOString()),t}getInfo(){let e=T.existsSync(this.filePath),t=0,n=null;if(e){let r=T.statSync(this.filePath);t=r.size,n=r.mtime}return{path:this.filePath,exists:e,modTime:n,size:t}}};function se(i){return new B(i)}P();import{spawn as Pe}from"child_process";import{createConnection as _e}from"net";var $e=h.create("tunnel-manager");function Se(i){try{let e=new URL(i);return e.password&&(e.password="***"),e.toString()}catch(e){return $e.debug("URL parse failed during redaction, using regex fallback",{error:e instanceof Error?e.message:String(e)}),i.replace(/:\/\/([^:]+):([^@]+)@/,"://$1:***@")}}var J=class{process=null;connection=null;config;constructor(e){this.config=e}checkPort(e,t,n=2e3){return new Promise(r=>{let o=_e({host:e,port:t}),s=setTimeout(()=>{o.destroy(),r(!1)},n);o.on("connect",()=>{clearTimeout(s),o.destroy(),r(!0)}),o.on("error",()=>{clearTimeout(s),o.destroy(),r(!1)})})}async start(){return this.process&&this.connection?(console.log("[TunnelManager] Tunnel already running"),this.connection):await this.checkPort("localhost",this.config.tunnelPort)?(console.log(`[TunnelManager] External tunnel detected on port ${this.config.tunnelPort}, reusing`),this.connection={host:"localhost",port:this.config.tunnelPort,startedAt:new Date},this.connection):new Promise((t,n)=>{let r=["compute","start-iap-tunnel",this.config.instance,"5432",`--local-host-port=localhost:${this.config.tunnelPort}`,`--zone=${this.config.zone}`,`--project=${this.config.project}`];console.log(`[TunnelManager] Starting IAP tunnel: gcloud ${r.join(" ")}`),this.process=Pe("gcloud",r,{stdio:["ignore","pipe","pipe"]});let o=!1,s="",c=!1;this.process.stderr?.on("data",d=>{let u=d.toString();console.log(`[TunnelManager] ${u.trim()}`),["Listening on port","tunnel is running","Testing if tunnel connection works"].some(y=>u.includes(y))&&!o&&!c&&(c=!0,setTimeout(async()=>{for(let p=0;p<10;p++){if(console.log(`[TunnelManager] Checking port connectivity (attempt ${p+1}/10)...`),await this.checkPort("localhost",this.config.tunnelPort)){o=!0,this.connection={host:"localhost",port:this.config.tunnelPort,pid:this.process?.pid,startedAt:new Date},console.log(`[TunnelManager] Tunnel ready on port ${this.config.tunnelPort}`),t(this.connection);return}await new Promise(S=>setTimeout(S,1e3))}c=!1},2e3)),s+=u}),this.process.stdout?.on("data",d=>{let u=d.toString();console.log(`[TunnelManager] ${u.trim()}`)}),this.process.on("error",d=>{console.error(`[TunnelManager] Process error: ${d.message}`),o||n(new Error(`Failed to start tunnel: ${d.message}`))}),this.process.on("close",d=>{console.log(`[TunnelManager] Process closed with code ${d}`),this.process=null,this.connection=null,o||n(new Error(`Tunnel process exited with code ${d}: ${s}`))}),setTimeout(()=>{o||(this.stop(),n(new Error("Tunnel connection timeout")))},6e4)})}async stop(){this.process&&(console.log("[TunnelManager] Stopping tunnel"),this.process.kill("SIGTERM"),await new Promise(e=>setTimeout(e,1e3)),this.process&&this.process.kill("SIGKILL"),this.process=null,this.connection=null)}isActive(){return this.process!==null&&this.connection!==null}getConnection(){return this.connection}getConnectionString(){if(!this.connection)throw new Error("Tunnel not active");let{database:e,user:t}=this.config,n=process.env.PGPASSWORD||"",r=this.connection.host,o=this.connection.port;return`postgresql://${t}:${n}@${r}:${o}/${e}`}getRedactedConnectionString(){return Se(this.getConnectionString())}};var Q=class{connection=null;connectionString;constructor(e){this.connectionString=e}async start(){let e=new URL(this.connectionString);return this.connection={host:e.hostname,port:parseInt(e.port||"5432",10),startedAt:new Date},this.connection}async stop(){this.connection=null}isActive(){return this.connection!==null}getConnection(){return this.connection}getConnectionString(){return this.connectionString}getRedactedConnectionString(){return Se(this.connectionString)}};function k(i){return i.connectionString?new Q(i.connectionString):new J(i)}x();v();P();import{createRequire as xe}from"module";var M=h.create("postgres-writer"),Ae=xe(import.meta.url),G=class{client=null;config;inTransaction=!1;connected=!1;constructor(e){this.config=e}async connect(){if(this.connected)return;this.config.tunnelManager.isActive()||await this.config.tunnelManager.start();let e=this.config.tunnelManager.getConnection();if(!e)throw new Error("No tunnel connection available");let t;try{t=Ae("pg")}catch(s){M.debug("pg module not installed, using mock mode",{error:s instanceof Error?s.message:String(s)}),console.warn("[PostgresWriter] pg module not installed, running in mock mode"),this.client=this.createMockClient(),this.connected=!0;return}let n=t.default,r=t.Client||n?.Client;if(!r){console.warn("[PostgresWriter] pg.Client not found in module, running in mock mode"),this.client=this.createMockClient(),this.connected=!0;return}let o={host:e.host,port:e.port,database:this.config.cloud.database,user:this.config.cloud.user,password:process.env.PGPASSWORD||"",connectionTimeoutMillis:this.config.connectionTimeout||1e4};this.client=new r(o),await this.client.connect(),this.connected=!0,console.log(`[PostgresWriter] Connected to ${e.host}:${e.port}/${this.config.cloud.database}`)}async beginTransaction(){if(!this.client)throw new Error("Not connected");await this.client.query("BEGIN"),this.inTransaction=!0}async commit(){if(!this.client||!this.inTransaction)throw new Error("No active transaction");await this.client.query("COMMIT"),this.inTransaction=!1}async rollback(){!this.client||!this.inTransaction||(await this.client.query("ROLLBACK"),this.inTransaction=!1)}async upsert(e,t,n){if(!this.client)throw new Error("Not connected");if(t.length===0)return 0;let r=t[0],o=Object.keys(r),s=n?.conflictColumns||this.inferConflictColumns(e,o),c=n?.updateColumns||o.filter(g=>!s.includes(g)),d=0,u=100;for(let g=0;g<t.length;g+=u){let E=t.slice(g,g+u);try{let y=await this.upsertBatch(e,E,o,s,c,n?.skipIfExists);d+=y}catch(y){let p=Math.floor(g/u)+1,b=Math.ceil(t.length/u);M.debug(`Batch ${p}/${b} failed for ${e}, retrying individually`,{error:l(y)});let S=0;for(let f of E)try{let C=await this.upsertBatch(e,[f],o,s,c,n?.skipIfExists);S+=C}catch(C){let L=f.id||f.key||"?";M.debug(`Skipped record ${String(L).slice(0,50)} in ${e}`,{error:l(C)})}d+=S,S<E.length&&console.warn(`[PostgresWriter] Batch ${p}/${b} for ${e}: ${S}/${E.length} recovered (${E.length-S} skipped)`)}}return d}async upsertBatch(e,t,n,r,o,s){if(!this.client)return 0;let c=[],d=[],u=1;for(let f of t){let C=[];for(let L of n){let Ee=f[L];C.push(`$${u++}`),d.push(this.serializeValue(Ee,L))}c.push(`(${C.join(", ")})`)}let g=w(e),E=n.map(w),y=r.map(w),p=o.map(w),b="";if(y.length>0){if(s)b=`ON CONFLICT (${y.join(", ")}) DO NOTHING`;else if(p.length>0){let f=p.map(C=>`${C} = EXCLUDED.${C}`).join(", ");b=`ON CONFLICT (${y.join(", ")}) DO UPDATE SET ${f}`}}let S=`
|
|
3
3
|
INSERT INTO ${g} (${E.join(", ")})
|
|
4
4
|
VALUES ${c.join(", ")}
|
|
5
5
|
${b}
|