agentic-qe 3.12.1 → 3.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +48 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-RL6GNUOS.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-P4VYM5KK.js → agent-booster-wasm-3KYNICBC.js} +2 -2
- package/dist/cli/chunks/{agent-handler-PBQ7L2TO.js → agent-handler-NGPTMI6E.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-UPWO3X6V.js → agent-memory-branch-GNTQKQMG.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-UEEW6AQG.js +2 -0
- package/dist/cli/chunks/{arena-QYTP3FG6.js → arena-HQEP2NWI.js} +4 -4
- package/dist/cli/chunks/{arena-LEUTILZ7.js → arena-PA7VIYD4.js} +2 -2
- package/dist/cli/chunks/{audit-TB6M2YLK.js → audit-XSDM57GC.js} +3 -3
- package/dist/cli/chunks/base-JQA5YULE.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-62RTSHAY.js → better-sqlite3-RQCOOAZC.js} +2 -2
- package/dist/cli/chunks/{brain-handler-JF3OK35F.js → brain-handler-T7RDPKNM.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-WEIP3DXB.js → branch-enumerator-ZW7RNMUF.js} +2 -2
- package/dist/cli/chunks/{browser-HY6VLXHZ.js → browser-4LU22CPP.js} +2 -2
- package/dist/cli/chunks/browser-workflow-XTKUHTIT.js +2 -0
- package/dist/cli/chunks/{chunk-OXVAGR64.js → chunk-2L7K2J2T.js} +2 -2
- package/dist/cli/chunks/{chunk-3I3Z4C5X.js → chunk-2R7J4ZGT.js} +1 -1
- package/dist/cli/chunks/{chunk-BBNQDHGF.js → chunk-2R7XZ2WP.js} +2 -2
- package/dist/cli/chunks/{chunk-MIAY35K6.js → chunk-327YEKBU.js} +2 -2
- package/dist/cli/chunks/{chunk-LAJHHR3Q.js → chunk-3AJUJAUJ.js} +1 -1
- package/dist/cli/chunks/{chunk-7KK6XSYK.js → chunk-3LELACAQ.js} +2 -2
- package/dist/cli/chunks/{chunk-NK2Z6FGF.js → chunk-4FHJYJCH.js} +2 -2
- package/dist/cli/chunks/{chunk-6BCVKCG5.js → chunk-4KEOBDEI.js} +2 -2
- package/dist/cli/chunks/{chunk-REJGZP27.js → chunk-56MXYSYY.js} +2 -2
- package/dist/cli/chunks/{chunk-YGB3MT3R.js → chunk-5CGTBAVF.js} +1 -1
- package/dist/cli/chunks/{chunk-W52R3G22.js → chunk-5SM57X4D.js} +2 -2
- package/dist/cli/chunks/{chunk-OJORNYN3.js → chunk-5YLY2WT2.js} +3 -3
- package/dist/cli/chunks/{chunk-J4IAMQZI.js → chunk-6FBXYS6X.js} +2 -2
- package/dist/cli/chunks/{chunk-QXZOUETY.js → chunk-6N62KS3C.js} +2 -2
- package/dist/cli/chunks/{chunk-M5P5WNXA.js → chunk-6SWR2BN7.js} +1 -1
- package/dist/cli/chunks/{chunk-FFSS3Y6W.js → chunk-6X65BGGK.js} +2 -2
- package/dist/cli/chunks/{chunk-UZXDYT6O.js → chunk-7DV42KFP.js} +2 -2
- package/dist/cli/chunks/{chunk-X2K3BTI4.js → chunk-7KMYBRKJ.js} +2 -2
- package/dist/cli/chunks/{chunk-KQV5644J.js → chunk-7OD6HFCP.js} +3 -3
- package/dist/cli/chunks/chunk-ABHKXMOJ.js +2 -0
- package/dist/cli/chunks/{chunk-IE6FDICX.js → chunk-ACDZ2CRV.js} +2 -2
- package/dist/cli/chunks/{chunk-CYYT6YEV.js → chunk-ADZTWGEB.js} +2 -2
- package/dist/cli/chunks/{chunk-QORWBION.js → chunk-AJ6DZXKK.js} +2 -2
- package/dist/cli/chunks/{chunk-PQ4NSXZM.js → chunk-AL5QT6OX.js} +2 -2
- package/dist/cli/chunks/{chunk-VTFYY4SH.js → chunk-AMPYON7M.js} +2 -2
- package/dist/cli/chunks/{chunk-XDRAU3W6.js → chunk-APVXTHTA.js} +2 -2
- package/dist/cli/chunks/{chunk-774X6OJY.js → chunk-B7DI76SY.js} +2 -2
- package/dist/cli/chunks/{chunk-C2K4LQI5.js → chunk-BDVOXGY5.js} +1 -1
- package/dist/cli/chunks/{chunk-3W2FZXFD.js → chunk-BDX54WJV.js} +1 -1
- package/dist/cli/chunks/{chunk-XTAXSKPC.js → chunk-BMRR3MBR.js} +2 -2
- package/dist/cli/chunks/{chunk-6432JORM.js → chunk-BOR5MME3.js} +1 -1
- package/dist/cli/chunks/{chunk-BXIJY6SB.js → chunk-BPSEFLJ6.js} +1 -1
- package/dist/cli/chunks/{chunk-PRA73XZY.js → chunk-BUKGW63B.js} +2 -2
- package/dist/cli/chunks/{chunk-UR655D4K.js → chunk-C7VNQ4PY.js} +2 -2
- package/dist/cli/chunks/{chunk-ZNITDSWL.js → chunk-CDMAVNV5.js} +1 -1
- package/dist/cli/chunks/{chunk-O65OPAZH.js → chunk-CKFZOPZN.js} +2 -2
- package/dist/cli/chunks/{chunk-HDI3FD4G.js → chunk-CMKCPRWX.js} +1 -1
- package/dist/cli/chunks/{chunk-JWZNWVLG.js → chunk-CQKEVUMO.js} +2 -2
- package/dist/cli/chunks/{chunk-USTUWUCE.js → chunk-CTFW7CMI.js} +2 -2
- package/dist/cli/chunks/{chunk-2PQ7YADF.js → chunk-DGOZ3CGB.js} +2 -2
- package/dist/cli/chunks/{chunk-6ONUCDVL.js → chunk-DTXHRALB.js} +2 -2
- package/dist/cli/chunks/{chunk-DSNFOX22.js → chunk-E5XWCGSX.js} +2 -2
- package/dist/cli/chunks/{chunk-4LKQZW2H.js → chunk-EGU54SNK.js} +1 -1
- package/dist/cli/chunks/{chunk-DQ3J7ZT6.js → chunk-EKTWIEEO.js} +2 -2
- package/dist/cli/chunks/{chunk-4U5MJX2H.js → chunk-ERQL3D2O.js} +2 -2
- package/dist/cli/chunks/{chunk-UGPBL7LX.js → chunk-EZ3JVN6S.js} +2 -2
- package/dist/cli/chunks/{chunk-BPM7NEHS.js → chunk-F3CKOVZM.js} +4 -4
- package/dist/cli/chunks/{chunk-42GFB7VX.js → chunk-FKUH33L3.js} +2 -2
- package/dist/cli/chunks/{chunk-LF5XOYR7.js → chunk-FTG4ZVTX.js} +11 -11
- package/dist/cli/chunks/{chunk-JRHRC2MP.js → chunk-FUBN5GPY.js} +1 -1
- package/dist/cli/chunks/{chunk-BCBITOMT.js → chunk-GCQATSMK.js} +2 -2
- package/dist/cli/chunks/{chunk-55MQ2SFP.js → chunk-GECWGFRR.js} +2 -2
- package/dist/cli/chunks/{chunk-SFQFBLWQ.js → chunk-GP7IXYOY.js} +1 -1
- package/dist/cli/chunks/{chunk-S42RFOZJ.js → chunk-GUGUYFU5.js} +2 -2
- package/dist/cli/chunks/{chunk-NVXSM7UO.js → chunk-HH5Y4NCR.js} +2 -2
- package/dist/cli/chunks/{chunk-IHWWZOHP.js → chunk-HNU32LN3.js} +1 -1
- package/dist/cli/chunks/{chunk-U5ITD7ZD.js → chunk-HU6ETNA7.js} +1 -1
- package/dist/cli/chunks/{chunk-BKKJEKNT.js → chunk-IKIKIHFQ.js} +2 -2
- package/dist/cli/chunks/{chunk-OEXSBR72.js → chunk-ILNQPPKB.js} +1 -1
- package/dist/cli/chunks/{chunk-6RX5QZMU.js → chunk-IQ56KMMH.js} +1 -1
- package/dist/cli/chunks/{chunk-74VIADSJ.js → chunk-J6EFAKDQ.js} +2 -2
- package/dist/cli/chunks/{chunk-7N2SCRWJ.js → chunk-K43YXI7C.js} +2 -2
- package/dist/cli/chunks/{chunk-XJTGLG7G.js → chunk-KBAXD6PH.js} +1 -1
- package/dist/cli/chunks/{chunk-HZGFER4N.js → chunk-KBXW7S3W.js} +3 -3
- package/dist/cli/chunks/{chunk-BNMV5DCM.js → chunk-KDGLNJPB.js} +1 -1
- package/dist/cli/chunks/{chunk-UBWSYDO5.js → chunk-KJJP446A.js} +1 -1
- package/dist/cli/chunks/{chunk-JIM4VSLF.js → chunk-KNOO6TFO.js} +3 -3
- package/dist/cli/chunks/{chunk-TGIKKD43.js → chunk-KPV4N4KT.js} +2 -2
- package/dist/cli/chunks/{chunk-C7HGYLNF.js → chunk-KV5OZ6T3.js} +2 -2
- package/dist/cli/chunks/{chunk-I4BZLVFE.js → chunk-LGEPR7MH.js} +3 -3
- package/dist/cli/chunks/{chunk-BALFQQB7.js → chunk-LIAW5FD7.js} +2 -2
- package/dist/cli/chunks/{chunk-FBYFDD7L.js → chunk-LOZAUP6L.js} +2 -2
- package/dist/cli/chunks/{chunk-GASACVTU.js → chunk-LWVUNBZO.js} +2 -2
- package/dist/cli/chunks/{chunk-WBDV4V3H.js → chunk-M4XVEUUM.js} +2 -2
- package/dist/cli/chunks/{chunk-J6ZCULWG.js → chunk-MALFTRCT.js} +2 -2
- package/dist/cli/chunks/{chunk-45QNHMTP.js → chunk-MF4FULAI.js} +1 -1
- package/dist/cli/chunks/{chunk-4KI72C2E.js → chunk-MNHGBG4D.js} +1 -1
- package/dist/cli/chunks/{chunk-ZCDGLNJ7.js → chunk-MNNNA57O.js} +2 -2
- package/dist/cli/chunks/{chunk-SHKOPOPD.js → chunk-N57BKUVE.js} +1 -1
- package/dist/cli/chunks/{chunk-QZBPXJ5C.js → chunk-NDAJWCXN.js} +2 -2
- package/dist/cli/chunks/{chunk-PDS5P5QD.js → chunk-OELLHV7S.js} +2 -2
- package/dist/cli/chunks/{chunk-GXMNCW2M.js → chunk-OEZNUXY7.js} +1 -1
- package/dist/cli/chunks/{chunk-ONSNNY6J.js → chunk-OIUIVV2N.js} +1 -1
- package/dist/cli/chunks/{chunk-AGWKCY42.js → chunk-OMIGKGJJ.js} +2 -2
- package/dist/cli/chunks/{chunk-GGF5FZWS.js → chunk-OSAPKOGN.js} +1 -1
- package/dist/cli/chunks/{chunk-VFRWLSQO.js → chunk-P2FYRAC5.js} +1 -1
- package/dist/cli/chunks/{chunk-BLU7OLQZ.js → chunk-P65S7AZA.js} +2 -2
- package/dist/cli/chunks/{chunk-EOBZJDJR.js → chunk-PHIEJAQK.js} +3 -3
- package/dist/cli/chunks/chunk-PSA2SOON.js +18 -0
- package/dist/cli/chunks/{chunk-VHJCQBD2.js → chunk-PXKVW6PT.js} +2 -2
- package/dist/cli/chunks/{chunk-PZ3Q34OT.js → chunk-QYST2TZW.js} +2 -2
- package/dist/cli/chunks/{chunk-XYV6YUWS.js → chunk-R554WVIG.js} +2 -2
- package/dist/cli/chunks/{chunk-NOCPO55P.js → chunk-R5HC6JVJ.js} +2 -2
- package/dist/cli/chunks/{chunk-NTMN2ZJY.js → chunk-R6LDR3IO.js} +2 -2
- package/dist/cli/chunks/{chunk-5H5A74U2.js → chunk-RFQIC6ZF.js} +1 -1
- package/dist/cli/chunks/{chunk-GW3M7GQH.js → chunk-RXEQB4OT.js} +2 -2
- package/dist/cli/chunks/{chunk-LZ6TJ7XL.js → chunk-RXH2TC2K.js} +2 -2
- package/dist/cli/chunks/{chunk-MCUILJ33.js → chunk-SVUWAV6Y.js} +1 -1
- package/dist/cli/chunks/{chunk-7KHIOWBN.js → chunk-SYLTJKN2.js} +1 -1
- package/dist/cli/chunks/{chunk-QOAI6ETC.js → chunk-T6TQPF5P.js} +3 -3
- package/dist/cli/chunks/{chunk-CJTXZI37.js → chunk-T75VH6NT.js} +2 -2
- package/dist/cli/chunks/{chunk-BWNMAXV7.js → chunk-TERRRQVY.js} +1 -1
- package/dist/cli/chunks/{chunk-HHMTQQUE.js → chunk-TFVWUR2U.js} +2 -2
- package/dist/cli/chunks/{chunk-D72N5V2S.js → chunk-TLYZPOA7.js} +2 -2
- package/dist/cli/chunks/{chunk-WPEGG6DX.js → chunk-TMQ3S7HR.js} +1 -1
- package/dist/cli/chunks/{chunk-XS6BIOPQ.js → chunk-TQNNKW7K.js} +2 -2
- package/dist/cli/chunks/{chunk-NHRBKOYD.js → chunk-TRHUH24V.js} +2 -2
- package/dist/cli/chunks/{chunk-BAHXVVX3.js → chunk-UEIIIDBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-R4A6PY5D.js → chunk-UF3YOGHV.js} +2 -2
- package/dist/cli/chunks/{chunk-X2CEX4KC.js → chunk-UFPCNUJA.js} +10 -10
- package/dist/cli/chunks/{chunk-JRNDFC23.js → chunk-V2QYW5KW.js} +2 -2
- package/dist/cli/chunks/{chunk-GLO53MUQ.js → chunk-VHYACXLN.js} +2 -2
- package/dist/cli/chunks/chunk-VM6VBRRU.js +43 -0
- package/dist/cli/chunks/{chunk-WPG5LXR7.js → chunk-VOHYQ6MX.js} +2 -2
- package/dist/cli/chunks/{chunk-5HMGDB7B.js → chunk-VQU2JXTK.js} +3 -3
- package/dist/cli/chunks/{chunk-U55X2ZUM.js → chunk-W7LBT3BF.js} +2 -2
- package/dist/cli/chunks/{chunk-PZZDAECU.js → chunk-WC5PM33J.js} +3 -3
- package/dist/cli/chunks/{chunk-JDZIBSMY.js → chunk-WE5QHYL7.js} +1 -1
- package/dist/cli/chunks/chunk-WKWIUS5G.js +3 -0
- package/dist/cli/chunks/chunk-WL5VMIO4.js +2 -0
- package/dist/cli/chunks/{chunk-RJ7TU2MP.js → chunk-WMNGPIP3.js} +1 -1
- package/dist/cli/chunks/{chunk-TMPRR3FZ.js → chunk-WRMUQVKY.js} +2 -2
- package/dist/cli/chunks/{chunk-HGKSU4QV.js → chunk-WY5CX3VH.js} +2 -2
- package/dist/cli/chunks/{chunk-42PYEEYQ.js → chunk-WYFEVPLO.js} +1 -1
- package/dist/cli/chunks/{chunk-UBPJQKYS.js → chunk-X47GHZY3.js} +2 -2
- package/dist/cli/chunks/{chunk-UKF4V7LE.js → chunk-XNNYHQLW.js} +5 -5
- package/dist/cli/chunks/{chunk-IC6SOVGO.js → chunk-YDZIPP3Y.js} +2 -2
- package/dist/cli/chunks/{chunk-RIASOMB2.js → chunk-YRO7HNS4.js} +2 -2
- package/dist/cli/chunks/{chunk-NEXJUTHF.js → chunk-YSCEUK55.js} +2 -2
- package/dist/cli/chunks/chunk-YY4KXDI6.js +2 -0
- package/dist/cli/chunks/{chunk-CP4GSICY.js → chunk-YYV3FYVB.js} +1 -1
- package/dist/cli/chunks/{chunk-CXUHD2O5.js → chunk-YZ44FUVJ.js} +2 -2
- package/dist/cli/chunks/{chunk-UEC53US3.js → chunk-Z3FA5KR6.js} +4 -4
- package/dist/cli/chunks/{chunk-QJXUK54J.js → chunk-Z63IOTDW.js} +2 -2
- package/dist/cli/chunks/{chunk-75AVUS5U.js → chunk-ZBYMF2QJ.js} +1 -1
- package/dist/cli/chunks/{chunk-N3PSRG6F.js → chunk-ZF65VOQH.js} +2 -2
- package/dist/cli/chunks/{chunk-LRWBOJ5Y.js → chunk-ZHWXI4SK.js} +2 -2
- package/dist/cli/chunks/{chunk-YNXQMJGJ.js → chunk-ZL7ZOIHO.js} +1 -1
- package/dist/cli/chunks/{ci-IU5HVUL5.js → ci-NT4DUGQ4.js} +2 -2
- package/dist/cli/chunks/{ci-output-CLI4A43F.js → ci-output-PXBD2QPH.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ZR5OFMW7.js → circuit-breaker-ZPCCEEDX.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-UBMA6ZHJ.js → claude-flow-setup-CZCDFZOE.js} +2 -2
- package/dist/cli/chunks/client-S7DIRNFJ.js +2 -0
- package/dist/cli/chunks/{cline-installer-EWYELOBI.js → cline-installer-6J2S7GLM.js} +2 -2
- package/dist/cli/chunks/{code-YSPF4MXN.js → code-UTERK5AP.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-WW5OKSTN.js → code-index-extractor-O3MJTOS2.js} +2 -2
- package/dist/cli/chunks/{codex-installer-GLADK5PY.js → codex-installer-AZJIVXJR.js} +2 -2
- package/dist/cli/chunks/{completions-2KTWZ3AK.js → completions-A6ANQSZN.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-KMX4OWKB.js → complexity-analyzer-MRSN7VUP.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-4FHU4OEJ.js → continuedev-installer-6LMKQRUI.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-AKR4WE7B.js → copilot-installer-KP3TWUNO.js} +2 -2
- package/dist/cli/chunks/core-handlers-NM2KCI6Z.js +2 -0
- package/dist/cli/chunks/{cost-tracker-BUJ6WEWY.js → cost-tracker-R3C5IQPZ.js} +2 -2
- package/dist/cli/chunks/{coverage-OB6HVQS4.js → coverage-MR4QA2NM.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-3TSZMCBM.js +2 -0
- package/dist/cli/chunks/{cursor-installer-3AOE4O3Q.js → cursor-installer-LPZ7NGOS.js} +2 -2
- package/dist/cli/chunks/{daemon-JGSPLYGO.js → daemon-K3KW2UDV.js} +4 -4
- package/dist/cli/chunks/{daemon-4RAL5URG.js → daemon-X5KXHRY3.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-DSBTHIMH.js → dag-attention-scheduler-J4FJSGNN.js} +2 -2
- package/dist/cli/chunks/{detect-6CVW2VUQ.js → detect-22TX2NCA.js} +2 -2
- package/dist/cli/chunks/{dist-node-EWPKBTYA.js → dist-node-QI4I4QPS.js} +2 -2
- package/dist/cli/chunks/{domain-handler-HLVIJU25.js → domain-handler-ZYZGPNOQ.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-7Y3BR3YU.js → domain-transfer-2EEQTNIU.js} +2 -2
- package/dist/cli/chunks/dream-QIIJONYI.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-ZMJ3263X.js → embed-and-insert-pattern-LYCTU5BS.js} +2 -2
- package/dist/cli/chunks/eval-SOA72GUX.js +17 -0
- package/dist/cli/chunks/{experience-capture-middleware-OGJ3JOSQ.js → experience-capture-middleware-AFFYOMYM.js} +3 -3
- package/dist/cli/chunks/{fast-paths-5XCY3Y6U.js → fast-paths-WNMHOSUH.js} +2 -2
- package/dist/cli/chunks/{feature-flags-R5V2FRJR.js → feature-flags-FT4YBZH4.js} +2 -2
- package/dist/cli/chunks/{feature-flags-VULQI6KY.js → feature-flags-HAP5IAAY.js} +2 -2
- package/dist/cli/chunks/{file-discovery-HW33C3HC.js → file-discovery-B4FFOH3Z.js} +2 -2
- package/dist/cli/chunks/{fleet-NH3XR5OY.js → fleet-2ICPYV3J.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-L3XMLPTG.js → gnn-wrapper-XIBJAHMW.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-TIQFBT4D.js → heartbeat-handler-NSLSKDOI.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-CDNGLJJO.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-CR7Y4OAM.js +2 -0
- package/dist/cli/chunks/hnsw-index-TEDO4MQC.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-YL2SUIPA.js → hnsw-legacy-bridge-FTV4CCBB.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-IPKCAVLS.js → hnswlib-node-BCASOCNU.js} +2 -2
- package/dist/cli/chunks/{hooks-UR2ZF54G.js → hooks-SM4EU52N.js} +10 -10
- package/dist/cli/chunks/hybrid-router-O24ZDIP5.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-NX45AOPY.js → hypergraph-engine-RRMX4N3L.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-LUM4YI4K.js → hypergraph-handler-MNFGDKAP.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-PDM4SDB6.js +2 -0
- package/dist/cli/chunks/{init-handler-YTKKNTVV.js → init-handler-BNHIJ5TX.js} +6 -6
- package/dist/cli/chunks/init-wizard-F4KODPNW.js +2 -0
- package/dist/cli/chunks/kernel-77UM35L6.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-ZW7DVH7T.js → kilocode-installer-GFKUKPLY.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-IA7INW4N.js → kiro-installer-YBIYKODN.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-R6ZWWV2K.js +2 -0
- package/dist/cli/chunks/{learning-4AZ5PGTT.js → learning-QEWUPCK6.js} +3 -3
- package/dist/cli/chunks/{llm-router-WQ4E3AOP.js → llm-router-D5FQIMVQ.js} +5 -5
- package/dist/cli/chunks/llm-router-service-7QYCZ66H.js +2 -0
- package/dist/cli/chunks/{load-4FAH7CZO.js → load-CLBUCKZQ.js} +2 -2
- package/dist/cli/chunks/load-test-AWVA3CAQ.js +2 -0
- package/dist/cli/chunks/{mcp-KLLHI6DG.js → mcp-VOMG5DPV.js} +2 -2
- package/dist/cli/chunks/{memory-Q5HLIUC6.js → memory-WZO63VSC.js} +5 -5
- package/dist/cli/chunks/memory-backend-YESSIHFW.js +2 -0
- package/dist/cli/chunks/memory-handlers-EOOWSUHI.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-ABI73AFV.js → multi-model-executor-7UKW43VV.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-KRPQ6JOJ.js → opencode-installer-MLFPRRL2.js} +2 -2
- package/dist/cli/chunks/{orchestrator-SUPEONRG.js → orchestrator-XNYDBGIN.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-X3UXLJNL.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-R4GKK6RZ.js → pattern-usage-recorder-ZAP7ASQI.js} +2 -2
- package/dist/cli/chunks/{pipeline-LCUETNGD.js → pipeline-4EJYOPBC.js} +2 -2
- package/dist/cli/chunks/{platform-WJDIB4X3.js → platform-ALPOWCOH.js} +2 -2
- package/dist/cli/chunks/{plugin-2X5NY2RF.js → plugin-S2RX3KHR.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-3T665QC6.js → prime-radiant-advanced-wasm-P2JB73XX.js} +2 -2
- package/dist/cli/chunks/protocol-executor-KXDCTMWI.js +2 -0
- package/dist/cli/chunks/{protocol-handler-JTXRF7GU.js → protocol-handler-ZBJXSESA.js} +2 -2
- package/dist/cli/chunks/{prove-BFPWWPOC.js → prove-MYJ5YV45.js} +2 -2
- package/dist/cli/chunks/provider-manager-XJZVHYI6.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-DPHPNIC6.js +2 -0
- package/dist/cli/chunks/{quality-F7UZU4RN.js → quality-NIACQC4M.js} +2 -2
- package/dist/cli/chunks/{quality-gate-R5L4UZIX.js → quality-gate-OAZ23ON5.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-EVGWME5C.js +2 -0
- package/dist/cli/chunks/{real-embeddings-LZD6HTQF.js → real-embeddings-6I4LP7PL.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-6TTG7VSH.js → roocode-installer-LRQHP6MK.js} +2 -2
- package/dist/cli/chunks/router-R2N7TMAS.js +2 -0
- package/dist/cli/chunks/routing-feedback-G6W3H26L.js +2 -0
- package/dist/cli/chunks/{routing-handler-SW442GK7.js → routing-handler-A7BW7MV4.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-CLFGKXMW.js → ruvector-commands-ZDRRFSJS.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-EVPPXXXS.js → rvf-dual-writer-QWE3Z6BB.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-NOHDIRIP.js → rvf-migration-adapter-6UDAP7QB.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-BYJ3M7WZ.js → rvf-migration-coordinator-FEW2N4R4.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-D7R2GWXK.js +2 -0
- package/dist/cli/chunks/safe-db-CQZGF2KA.js +2 -0
- package/dist/cli/chunks/schedule-UP7E3LRC.js +2 -0
- package/dist/cli/chunks/scheduler-ENIZHYSL.js +2 -0
- package/dist/cli/chunks/{security-IXDKBPSG.js → security-KFXBV65O.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-VCOK3OVD.js → shared-rvf-adapter-HDDCXCHY.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-FFKBKYNL.js → shared-rvf-dual-writer-CXXTB7CU.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-CEVJVWS5.js +2 -0
- package/dist/cli/chunks/status-handler-CXSVM236.js +47 -0
- package/dist/cli/chunks/{structural-health-55X6BTLT.js → structural-health-LMHSM7MJ.js} +2 -2
- package/dist/cli/chunks/{sync-NUG67HGK.js → sync-DMOUY2EY.js} +2 -2
- package/dist/cli/chunks/{sync-BUGDXW3Y.js → sync-REEFKICL.js} +2 -2
- package/dist/cli/chunks/{task-handler-T6ZKXV4S.js → task-handler-DMSNFIH3.js} +2 -2
- package/dist/cli/chunks/{task-handlers-H63TB2UI.js → task-handlers-3Z3QV7X7.js} +3 -3
- package/dist/cli/chunks/{test-VEK76SBT.js → test-U6CGMDLN.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-QZM6PNZH.js → test-scheduling-YHYA3BP5.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-W5IAMJW4.js → token-bootstrap-MQCTJURQ.js} +2 -2
- package/dist/cli/chunks/{token-usage-OBY6UEUR.js → token-usage-EOOTM7Q3.js} +2 -2
- package/dist/cli/chunks/{transformers-EFNY2MRX.js → transformers-EKDJW2H6.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-EU2S5NVM.js → tree-sitter-wasm-parser-HTGAXDQA.js} +2 -2
- package/dist/cli/chunks/{types-3DYRKX23.js → types-GLRXY4RY.js} +2 -2
- package/dist/cli/chunks/unified-memory-PXOQ4N53.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-VEXD6ASE.js +2 -0
- package/dist/cli/chunks/unified-persistence-46G6MZYC.js +2 -0
- package/dist/cli/chunks/{upgrade-H5V53FRF.js → upgrade-KU55H77X.js} +2 -2
- package/dist/cli/chunks/{validate-IL22VB5I.js → validate-26VSBOJN.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-WZKECK3W.js → validate-swarm-OIALRDKF.js} +2 -2
- package/dist/cli/chunks/{vibium-KKM23OTQ.js → vibium-LOTWW25P.js} +2 -2
- package/dist/cli/chunks/visual-security-4X3T3MFL.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-NJM5YBOY.js → web-tree-sitter-6LWPPBYU.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-SLP43TVT.js → windsurf-installer-ILOQYENG.js} +2 -2
- package/dist/cli/chunks/witness-chain-XW4S3LVW.js +2 -0
- package/dist/cli/chunks/{witness-chain-XBEPT4XD.js → witness-chain-YBS6OHS4.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-DAAMNYOW.js → witness-key-manager-SI3WV3ZQ.js} +2 -2
- package/dist/cli/chunks/{workflow-SZOOU6D3.js → workflow-GY6SJRQW.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-IIVV6TCP.js +2 -0
- package/dist/cli/chunks/{wrappers-I2CBKWGF.js → wrappers-MMO5YKOZ.js} +2 -2
- package/dist/cli/commands/eval.js +73 -3
- package/dist/cli/commands/llm-router.js +2 -0
- package/dist/cli/handlers/status-handler.d.ts +5 -0
- package/dist/cli/handlers/status-handler.js +35 -0
- package/dist/coordination/consensus/providers/index.js +11 -0
- package/dist/mcp/bundle.js +412 -393
- package/dist/shared/llm/billing-modes.d.ts +24 -0
- package/dist/shared/llm/billing-modes.js +56 -0
- package/dist/shared/llm/cost-tracker.js +2 -0
- package/dist/shared/llm/interfaces.d.ts +61 -3
- package/dist/shared/llm/provider-manager.d.ts +34 -0
- package/dist/shared/llm/provider-manager.js +152 -3
- package/dist/shared/llm/providers/claude-code.d.ts +57 -0
- package/dist/shared/llm/providers/claude-code.js +312 -0
- package/dist/shared/llm/providers/cognitum.d.ts +64 -0
- package/dist/shared/llm/providers/cognitum.js +369 -0
- package/dist/shared/llm/providers/index.d.ts +2 -0
- package/dist/shared/llm/providers/index.js +2 -0
- package/dist/shared/llm/router/config-store.d.ts +31 -11
- package/dist/shared/llm/router/config-store.js +82 -12
- package/dist/shared/llm/router/hybrid-router.js +16 -0
- package/dist/shared/llm/router/types.js +7 -0
- package/dist/shared/llm/spend-ledger.d.ts +64 -0
- package/dist/shared/llm/spend-ledger.js +115 -0
- package/dist/shared/llm/translation/message-formatter.js +2 -0
- package/dist/shared/llm/translation/prompt-translator.js +2 -0
- package/dist/shared/llm/translation/tool-translator.js +2 -0
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.js +2 -0
- package/dist/validation/provider-llm-executor.d.ts +45 -0
- package/dist/validation/provider-llm-executor.js +98 -0
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-X4UEC6UJ.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-5FG7JCY7.js +0 -2
- package/dist/cli/chunks/base-CWPMFSZG.js +0 -2
- package/dist/cli/chunks/browser-workflow-A77OFBVY.js +0 -2
- package/dist/cli/chunks/chunk-CDVKFAYP.js +0 -18
- package/dist/cli/chunks/chunk-FNMEVLSN.js +0 -2
- package/dist/cli/chunks/chunk-P7G5LGUE.js +0 -3
- package/dist/cli/chunks/chunk-R7XEACKR.js +0 -2
- package/dist/cli/chunks/chunk-RAS7WRN5.js +0 -24
- package/dist/cli/chunks/client-KKCFGD7R.js +0 -2
- package/dist/cli/chunks/core-handlers-KRSSJEO5.js +0 -2
- package/dist/cli/chunks/cross-domain-router-27QGWU27.js +0 -2
- package/dist/cli/chunks/dream-M6K47Q4H.js +0 -2
- package/dist/cli/chunks/eval-73XW2WJD.js +0 -15
- package/dist/cli/chunks/heartbeat-scheduler-URXBF5RW.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-WWAGM6HK.js +0 -2
- package/dist/cli/chunks/hnsw-index-UFV2HSZE.js +0 -2
- package/dist/cli/chunks/hybrid-router-3U6Q6OTL.js +0 -2
- package/dist/cli/chunks/impact-analyzer-EUEX6ZRO.js +0 -2
- package/dist/cli/chunks/init-wizard-POKY2LRY.js +0 -2
- package/dist/cli/chunks/kernel-HPAONLZY.js +0 -2
- package/dist/cli/chunks/knowledge-graph-2WCUFG63.js +0 -2
- package/dist/cli/chunks/llm-router-service-D5VMG6SD.js +0 -2
- package/dist/cli/chunks/load-test-DHG26REU.js +0 -2
- package/dist/cli/chunks/memory-backend-GLWQ4DAL.js +0 -2
- package/dist/cli/chunks/memory-handlers-P72I4VV4.js +0 -2
- package/dist/cli/chunks/pattern-null-store-Y2YFTE3V.js +0 -2
- package/dist/cli/chunks/protocol-executor-HNT67NN5.js +0 -2
- package/dist/cli/chunks/provider-manager-5YGPZIEZ.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-Z5UGOA3F.js +0 -2
- package/dist/cli/chunks/queen-coordinator-P5LU5NWI.js +0 -2
- package/dist/cli/chunks/router-CRGHUAVR.js +0 -2
- package/dist/cli/chunks/routing-feedback-BVX5ZBCF.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-FZJSQOJM.js +0 -2
- package/dist/cli/chunks/safe-db-USYNEOC6.js +0 -2
- package/dist/cli/chunks/schedule-KCRCQ3PS.js +0 -2
- package/dist/cli/chunks/scheduler-CX3UHI4U.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-K23C4TFH.js +0 -2
- package/dist/cli/chunks/status-handler-M5W64S5U.js +0 -46
- package/dist/cli/chunks/unified-memory-NCDBQLLF.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-T7NSGQ2H.js +0 -2
- package/dist/cli/chunks/unified-persistence-XUAYDCMM.js +0 -2
- package/dist/cli/chunks/visual-security-3TUC4GPP.js +0 -2
- package/dist/cli/chunks/witness-chain-QLOKUZXC.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-6JAYTZ7L.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f}from"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";f();export{a as BinaryHeap,b as InMemoryHNSWIndex,c as RuvectorFlatIndex,d as UnifiedHnswIndex,e as createHnswIndex};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e}from"./chunk-RXEQB4OT.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import"./chunk-CKFZOPZN.js";import"./chunk-P65S7AZA.js";import"./chunk-X47GHZY3.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";export{a as DEFAULT_UNIFIED_CONFIG,b as UnifiedPersistenceManager,c as getUnifiedPersistence,d as initializeUnifiedPersistence,e as resetUnifiedPersistence};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.
|
|
2
|
-
import{S as m,b as c}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{S as m,b as c}from"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";m();import{Command as f}from"commander";import n from"chalk";import{createRequire as u}from"node:module";import{platform as p,arch as v}from"node:os";var y=[{packageName:"better-sqlite3",role:"SQLite storage (required \u2014 memory.db, patterns, audit)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"web-tree-sitter",role:"Tree-sitter WASM parser runtime (required \u2014 code intelligence)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"hnswlib-node",role:"Canonical HNSW vector index (default since ADR-090)",fallback:"ProgressiveHnswBackend (JS) \u2014 correct but slower on large codebases",affectsFlags:["useNativeHNSW"],required:!1},{packageName:"@ruvector/rvf-node",role:"Persistent HNSW pattern store + RVF brain export format",fallback:"SQLite-backed HNSW + JSONL brain export",affectsFlags:["useRVFPatternStore"],required:!1},{packageName:"@ruvector/solver-node",role:"Sublinear PageRank on the pattern citation graph",fallback:"TypeScript power iteration \u2014 O(n\xB7m) (practical cap \u2248 50K nodes)",affectsFlags:["useSublinearSolver"],required:!1},{packageName:"@ruvector/attention",role:"Flash Attention with SIMD acceleration",fallback:"Plain attention \u2014 2.5\u20137\xD7 slower on large sequences",affectsFlags:["useQEFlashAttention"],required:!1},{packageName:"@ruvector/gnn",role:"GraphMAE native acceleration",fallback:"TypeScript GraphMAE \u2014 correct but slower",affectsFlags:["useGraphMAEEmbeddings"],required:!1}];function b(){let r=u(import.meta.url);return o=>{try{return r(o),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a:new Error(String(a))}}}}function N(r,o){return r.map(a=>{let s=o(a.packageName);if(s.ok)return{...a,status:"loaded"};let t=E(s.error),e=a.required?"required-missing":"missing";return{...a,status:e,loadError:s.error.message}})}function E(r){return r.code==="MODULE_NOT_FOUND"}var R={RUVECTOR_USE_RVF_PATTERN_STORE:"useRVFPatternStore",RUVECTOR_USE_SUBLINEAR_SOLVER:"useSublinearSolver",RUVECTOR_USE_NATIVE_HNSW:"useNativeHNSW",RUVECTOR_USE_GNN_INDEX:"useQEGNNIndex",RUVECTOR_USE_FLASH_ATTENTION:"useQEFlashAttention",RUVECTOR_USE_GRAPH_MAE_EMBEDDINGS:"useGraphMAEEmbeddings"};function S(r){let o=[];for(let[a,s]of Object.entries(R)){let t=r[a];t!==void 0&&o.push({envVar:a,value:t,flagName:s})}return o}function k(r){let o=[],a=new Map(r.natives.map(e=>[e.packageName,e]));for(let e of r.natives)e.status==="required-missing"&&o.push({severity:"error",message:`Required dependency missing: ${e.packageName} \u2014 ${e.role}`,action:`npm install ${e.packageName}`});for(let e of r.natives)e.status==="missing"&&!e.required&&o.push({severity:"warn",message:`Optional native missing: ${e.packageName} \u2014 falls back to ${e.fallback}`,action:`npm install ${e.packageName}`});let s={...r.flags};for(let e of r.envOverrides){let i=r.natives.filter(d=>d.affectsFlags.includes(e.flagName)),l=i.some(d=>d.status==="loaded");if((e.value==="true"||e.value==="1")&&i.length>0&&!l){let d=i.map(g=>g.packageName).join(", ");o.push({severity:"warn",message:`${e.envVar}=${e.value} requests flag ${e.flagName}=true, but required native(s) not loaded: ${d}. The flag will silently fall back.`,action:i[0]?`npm install ${i[0].packageName}`:void 0})}}return r.natives.filter(e=>!e.required&&e.status==="missing").length===0&&r.natives.every(e=>e.status!=="required-missing")&&o.push({severity:"info",message:"All recommended native bindings are loaded \u2014 no action required."}),o}function q(r){let o=N(y,r.probe),a=S(r.env),s=k({natives:o,flags:r.flags,envOverrides:a}),t=o.filter(l=>!l.required&&l.status==="loaded").length,e=o.filter(l=>!l.required&&l.status==="missing").length,i=o.filter(l=>l.required).every(l=>l.status==="loaded");return{aqeVersion:r.aqeVersion,platform:{os:p(),arch:v(),node:process.version},natives:o,flags:r.flags,envOverrides:a,recommendations:s,summary:{requiredOk:i,optionalMissingCount:e,optionalLoadedCount:t}}}function h(r,o){return r.summary.requiredOk?o&&r.summary.optionalMissingCount>0?1:0:2}function O(r){let o=[],a=(e="")=>o.push(e);a(""),a(n.bold.blue(" aqe upgrade \u2014 native binding report")),a(n.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),a(""),a(` AQE: ${n.cyan(r.aqeVersion)}`),a(` Platform: ${n.cyan(`${r.platform.os} ${r.platform.arch}`)}`),a(` Node: ${n.cyan(r.platform.node)}`),a(""),a(n.blue(" Native bindings:"));for(let e of r.natives){let i=$(e.status);a(` ${i} ${n.bold(e.packageName.padEnd(28))} ${n.gray(e.role)}`),e.status!=="loaded"&&e.loadError&&a(` ${n.gray(e.loadError.split(`
|
|
3
3
|
`)[0])}`)}a(""),a(n.blue(" Flag state (after env overrides):"));let s=Object.entries(r.flags);for(let[e,i]of s){let l=i?n.green("on "):n.yellow("off");a(` ${l} ${e}`)}if(r.envOverrides.length>0){a(""),a(n.blue(" Env overrides in effect:"));for(let e of r.envOverrides)a(` ${n.cyan(e.envVar)}=${n.cyan(e.value)} ${n.gray(`\u2192 ${e.flagName}`)}`)}if(a(""),a(n.blue(" Recommendations:")),r.recommendations.length===0)a(n.gray(" (none)"));else for(let e of r.recommendations){let i=F(e.severity);a(` ${i} ${e.message}`),e.action&&a(` ${n.gray("\u2192")} ${n.cyan(e.action)}`)}a("");let t=r.summary.requiredOk?n.green("OK"):n.red("FAIL");return a(` Summary: required ${t} optional loaded ${n.cyan(r.summary.optionalLoadedCount)} / ${n.cyan(r.summary.optionalLoadedCount+r.summary.optionalMissingCount)}`),a(""),o.join(`
|
|
4
4
|
`)}function $(r){switch(r){case"loaded":return n.green("\u2713");case"missing":return n.yellow("\u2026");case"required-missing":return n.red("\u2717")}}function F(r){switch(r){case"info":return n.green("\u2713");case"warn":return n.yellow("!");case"error":return n.red("\u2717")}}function U(r){return new f("upgrade").description("Detect optional native bindings and recommend install / flag changes (read-only)").option("--json","Emit the report as JSON to stdout",!1).option("--strict","Exit non-zero if any recommended optional native is missing",!1).action(async a=>{let s=A(),t=c(),e=q({aqeVersion:s,probe:b(),env:process.env,flags:{useRVFPatternStore:t.useRVFPatternStore,useSublinearSolver:t.useSublinearSolver,useNativeHNSW:t.useNativeHNSW,useGraphMAEEmbeddings:t.useGraphMAEEmbeddings,useQEFlashAttention:t.useQEFlashAttention}});a.json?process.stdout.write(JSON.stringify(e,null,2)+`
|
|
5
5
|
`):process.stdout.write(O(e)),await r(h(e,a.strict===!0))})}function A(){try{return u(import.meta.url)("../../../package.json").version??"unknown"}catch{return"unknown"}}export{y as NATIVE_CATALOG,k as buildRecommendations,q as buildReport,b as createDefaultLoadProbe,U as createUpgradeCommand,N as detectNatives,h as exitCodeFor,S as readEnvOverrides,O as renderReportHuman};
|
|
@@ -1,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.12.
|
|
2
|
-
import{e as V}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.12.2");process.exit(0)}
|
|
2
|
+
import{e as V}from"./chunk-VQU2JXTK.js";import"./chunk-PSA2SOON.js";import{a as P}from"./chunk-RXH2TC2K.js";import"./chunk-WKWIUS5G.js";import"./chunk-VM6VBRRU.js";import"./chunk-OELLHV7S.js";import"./chunk-ABHKXMOJ.js";import"./chunk-LOZAUP6L.js";import"./chunk-WL5VMIO4.js";import"./chunk-SYLTJKN2.js";import"./chunk-GP7IXYOY.js";import"./chunk-K43YXI7C.js";import"./chunk-N57BKUVE.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import{b as v,d as F}from"./chunk-CKFZOPZN.js";import"./chunk-P65S7AZA.js";import"./chunk-X47GHZY3.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";F();import{Command as M}from"commander";import{readFileSync as A,writeFileSync as S,existsSync as C,readdirSync as O,statSync as B}from"fs";import{join as b,resolve as j,basename as I}from"path";import e from"chalk";function R(i){let n=j(i);if(!C(n))throw new Error(`Input path not found: ${n}`);if(B(n).isDirectory()){let r=[],t=O(n).filter(o=>o.endsWith(".json")).map(o=>b(n,o));for(let o of t)try{let u=v(A(o,"utf-8"));if($(u))r.push(u);else if(Array.isArray(u))for(let d of u)$(d)&&r.push(d)}catch{console.warn(e.yellow(`Warning: Could not parse ${I(o)}`))}return r}else{let r=v(A(n,"utf-8"));if($(r))return[r];if(Array.isArray(r))return r.filter($);throw new Error("Invalid input format. Expected ParallelValidationRunResult or array of results.")}}function $(i){return typeof i=="object"&&i!==null&&"runId"in i&&"model"in i&&"outcomes"in i&&Array.isArray(i.outcomes)}function D(){return P({storeQEPattern:async()=>{},searchQEPatterns:async()=>({success:!0,value:[]}),addFact:async()=>({success:!0,value:void 0}),query:async()=>({success:!0,value:{results:[],confidence:0}}),getStats:()=>({totalPatterns:0,totalFacts:0,indexHealth:1,lastCompaction:new Date})})}function T(){let i=process.cwd(),n=[b(i,".claude/skills/trust-tier-manifest.json"),b(i,".claude/skills/skills-manifest.json")];for(let g of n)if(C(g))return g;return b(i,".claude/skills/trust-tier-manifest.json")}function L(i,n,g){let r=g.format||"markdown";if(r==="markdown"||r==="both"){let t=n.generateMarkdownReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".md"):g.output;S(o,t),console.log(e.green(`Markdown report written to: ${o}`))}else console.log(`
|
|
3
3
|
`+t)}if(r==="json"||r==="both"){let t=n.generateJsonReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".json"):g.output;S(o,t),console.log(e.green(`JSON report written to: ${o}`))}else console.log(`
|
|
4
4
|
`+t)}}function W(i,n,g){let r=new M("skill").description("Skill validation and reporting (ADR-056)");return r.command("report").description("Generate aggregated report from validation results").requiredOption("-i, --input <path>","Input file or directory containing validation results").option("-o, --output <path>","Output file path (default: stdout)").option("-f, --format <format>","Output format: markdown, json, or both","markdown").option("-b, --baseline <path>","Baseline directory for regression detection").option("--detect-regressions","Enable regression detection against historical data").option("--update-manifest","Update trust tier manifest with new pass rates").option("-t, --threshold <number>","Regression threshold (0-1)",parseFloat).option("-v, --verbose","Verbose output").action(async t=>{try{t.verbose&&(console.log(e.blue(`
|
|
5
5
|
Validation Result Aggregator`)),console.log(e.gray(`ADR-056 Phase 5
|
|
@@ -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.12.
|
|
2
|
-
import{a as i,b as k,c as d,d 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.12.2");process.exit(0)}
|
|
2
|
+
import{a as i,b as k,c as d,d as p}from"./chunk-VQU2JXTK.js";import"./chunk-PSA2SOON.js";import{a as v}from"./chunk-NDAJWCXN.js";import{a as h}from"./chunk-RXH2TC2K.js";import"./chunk-MNHGBG4D.js";import"./chunk-WKWIUS5G.js";import"./chunk-VM6VBRRU.js";import"./chunk-OELLHV7S.js";import"./chunk-ABHKXMOJ.js";import"./chunk-LOZAUP6L.js";import"./chunk-WL5VMIO4.js";import"./chunk-SYLTJKN2.js";import"./chunk-GP7IXYOY.js";import"./chunk-K43YXI7C.js";import"./chunk-N57BKUVE.js";import"./chunk-TFVWUR2U.js";import"./chunk-YYV3FYVB.js";import"./chunk-IKIKIHFQ.js";import"./chunk-5CGTBAVF.js";import"./chunk-BDX54WJV.js";import"./chunk-TQNNKW7K.js";import"./chunk-PHIEJAQK.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import"./chunk-CKFZOPZN.js";import"./chunk-6SWR2BN7.js";import"./chunk-P65S7AZA.js";import"./chunk-EGU54SNK.js";import"./chunk-X47GHZY3.js";import"./chunk-ZBYMF2QJ.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";import{Command as x}from"commander";import o from"chalk";function j(e,t,n){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await n())try{console.log(o.blue(`
|
|
3
3
|
Swarm Skill Validation
|
|
4
4
|
`));let r=l.skills==="all"?[...d]:l.skills.split(",").map(y=>y.trim()),u=l.models.split(",").map(y=>y.trim()),g=P(l.topology),a={topology:g,maxConcurrentSkills:parseInt(l.maxConcurrent,10)||i.maxConcurrentSkills,maxConcurrentModels:parseInt(l.maxModels,10)||i.maxConcurrentModels,timeout:parseInt(l.timeout,10)||i.timeout,continueOnFailure:!0,retry:l.retry!==!1?i.retry:void 0};l.verbose&&(console.log(o.gray("Configuration:")),console.log(o.gray(` Topology: ${a.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${a.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${a.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${a.timeout}ms`)),console.log(o.gray(` Retry: ${a.retry?"enabled":"disabled"}`)),console.log("")),console.log(o.cyan(` Skills: ${r.join(", ")}`)),console.log(o.cyan(` Models: ${u.join(", ")}`)),console.log(o.cyan(` Topology: ${g}`)),console.log("");let m=await R(e),f=h(m),C=k(a,f),$=Date.now();console.log(o.yellow(` Starting parallel validation...
|
|
5
5
|
`));let b=await C.validateSkillsParallel(r,u),s=C.getSummary(b),w=Date.now()-$;l.json?T(s):D(s,l.verbose),console.log(o.blue(`
|
|
@@ -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.12.
|
|
2
|
-
import{c as t}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{c as t}from"./chunk-HU6ETNA7.js";import{createRequire as o}from"module";var i,e,a,c,l,p,s,m,u,d,A,f,h,_,b,v,L,n=t(()=>{i=o(import.meta.url),e=i("vibium"),a=e,{RuvectorLayer:c,TensorCompress:l,differentiableSearch:p,hierarchicalForward:s,getCompressionLevel:m,init:u,FlashAttention:d,DotProductAttention:A,MultiHeadAttention:f,HyperbolicAttention:h,LinearAttention:_,MoEAttention:b,SonaEngine:v,pipeline:L}=e||{}});n();export{A as DotProductAttention,d as FlashAttention,h as HyperbolicAttention,_ as LinearAttention,b as MoEAttention,f as MultiHeadAttention,c as RuvectorLayer,v as SonaEngine,l as TensorCompress,a as default,p as differentiableSearch,m as getCompressionLevel,s as hierarchicalForward,u as init,L as pipeline};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-6X65BGGK.js";import"./chunk-LIAW5FD7.js";import"./chunk-ZHWXI4SK.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import"./chunk-CKFZOPZN.js";import"./chunk-P65S7AZA.js";import"./chunk-X47GHZY3.js";import"./chunk-ZBYMF2QJ.js";import"./chunk-ERQL3D2O.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";export{a as VisualSecurityTool};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import"./chunk-HU6ETNA7.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.
|
|
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.12.2");process.exit(0)}
|
|
2
|
+
import{b as u}from"./chunk-BPSEFLJ6.js";import{a as f,c as d}from"./chunk-X47GHZY3.js";import"./chunk-HU6ETNA7.js";d();import{existsSync as i,mkdirSync as h,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf",{memoryBackend:this.options.memoryBackend}),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||h(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let s=this.generator.generateBehavioralRules("windsurf"),n=p(this.projectRoot,s.path);if(e.rulesPath=n,!i(n)||this.overwrite){if(i(n)&&this.overwrite){let o=this.mergeExistingRules(n,s.content);a(n,o)}else a(n,s.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),s=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,s.mcpServers),JSON.stringify(r,null,2)+`
|
|
3
3
|
`}catch{return t}}mergeExistingRules(e,t){try{let r=g(e,"utf-8");return r.includes("Agentic QE")||r.includes("fleet_init")?r:r.trimEnd()+`
|
|
4
4
|
|
|
5
5
|
---
|
|
@@ -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.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i}from"./chunk-ADZTWGEB.js";import"./chunk-2L7K2J2T.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import"./chunk-CKFZOPZN.js";import"./chunk-P65S7AZA.js";import"./chunk-X47GHZY3.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,i as _resetWitnessChainForTests,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
|
|
@@ -1,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.12.
|
|
2
|
-
import{a,b,c,d,e,f,g}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-IKIKIHFQ.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
|
|
@@ -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.12.
|
|
2
|
-
import{a,b,c}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-2L7K2J2T.js";import"./chunk-ACDZ2CRV.js";import"./chunk-HU6ETNA7.js";export{a as WitnessKeyManager,c as _resetDefaultWitnessKeyManagerForTests,b as getDefaultWitnessKeyManager};
|
|
@@ -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.12.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import"./chunk-7KMYBRKJ.js";import{b as $}from"./chunk-MF4FULAI.js";import{d as R}from"./chunk-YSCEUK55.js";import{b as k,c as C,d as b}from"./chunk-4FHJYJCH.js";import{c as W}from"./chunk-CKFZOPZN.js";import"./chunk-EGU54SNK.js";import"./chunk-X47GHZY3.js";import"./chunk-HU6ETNA7.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
|
|
3
3
|
Running workflow from: ${t}
|
|
4
4
|
`));let s=k(c);if(!s.success||!s.workflow){console.log(o.red("Failed to parse pipeline:"));for(let w of s.errors)console.log(o.red(` ${w}`));await a(1)}let r={...W(l.params,"params")};if(s.pipeline){for(let w of s.pipeline.stages)if(w.params)for(let[S,h]of Object.entries(w.params))r[S]=h}if(!d.workflowOrchestrator.getWorkflow(s.workflow.id)){let w=d.workflowOrchestrator.registerWorkflow(s.workflow);w.success||(console.log(o.red(`Failed to register workflow: ${w.error.message}`)),await a(1))}let n=await d.workflowOrchestrator.executeWorkflow(s.workflow.id,r);if(!n.success){console.log(o.red(`Failed to start workflow: ${n.error.message}`)),await a(1);return}let p=n.value;if(console.log(o.cyan(` Execution ID: ${p}`)),console.log(o.gray(` Workflow: ${s.workflow.name}`)),console.log(o.gray(` Stages: ${s.workflow.steps.length}`)),console.log(""),l.watch){console.log(o.blue(`Workflow Progress:
|
|
5
5
|
`));let w,S=Date.now();for(;;){let g=d.workflowOrchestrator.getWorkflowStatus(p);if(!g)break;if(!w||w.progress!==g.progress||w.status!==g.status||JSON.stringify(w.currentSteps)!==JSON.stringify(g.currentSteps)){process.stdout.write("\r\x1B[K");let v="\u2588".repeat(Math.floor(g.progress/5))+"\u2591".repeat(20-Math.floor(g.progress/5)),D=g.status==="completed"?o.green:g.status==="failed"?o.red:g.status==="running"?o.yellow:o.gray;console.log(` [${v}] ${g.progress}% - ${D(g.status)}`),g.currentSteps.length>0&&l.verbose&&console.log(o.gray(` Running: ${g.currentSteps.join(", ")}`)),w=g}if(g.status==="completed"||g.status==="failed"||g.status==="cancelled")break;await new Promise(v=>setTimeout(v,500))}let h=d.workflowOrchestrator.getWorkflowStatus(p);if(h){console.log("");let g=h.duration||Date.now()-S;h.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(g)}`)),console.log(o.gray(` Completed: ${h.completedSteps.length} stages`)),h.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${h.skippedSteps.length} stages`))):h.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${h.error}`)),console.log(o.gray(` Failed stages: ${h.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${h.status}`))}}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${p}' to check progress`));console.log(""),await a(0)}catch(s){console.error(o.red(`
|
|
@@ -35,10 +35,10 @@ Workflow cancelled: ${t}
|
|
|
35
35
|
`)):console.log(o.red(`
|
|
36
36
|
Failed to cancel workflow: ${l.error.message}
|
|
37
37
|
`)),await a(l.success?0:1)}catch(l){console.error(o.red(`
|
|
38
|
-
Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-
|
|
38
|
+
Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-XTKUHTIT.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
|
|
39
39
|
Browser Workflow Templates:
|
|
40
40
|
`));for(let u of e.data.availableTemplates)console.log(` ${o.cyan(u)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await a(0)}catch(t){console.error(o.red(`
|
|
41
|
-
Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-
|
|
41
|
+
Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-XTKUHTIT.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-PXBD2QPH.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
|
|
42
42
|
File not found: ${p}
|
|
43
43
|
`)),await a(1)),f.workflowYaml=i.readFileSync(p,"utf-8")}else f.templateName=t;else console.log(o.red(`
|
|
44
44
|
Provide a template name or --yaml. Use "workflow browser-list" to see templates.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-GCQATSMK.js";import"./chunk-56MXYSYY.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import"./chunk-CKFZOPZN.js";import"./chunk-P65S7AZA.js";import"./chunk-EGU54SNK.js";import"./chunk-X47GHZY3.js";import"./chunk-ZBYMF2QJ.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
|
|
@@ -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.12.
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-
|
|
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.12.2");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-VOHYQ6MX.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-DTXHRALB.js";import"./chunk-APVXTHTA.js";import"./chunk-AL5QT6OX.js";import"./chunk-YY4KXDI6.js";import"./chunk-R5HC6JVJ.js";import"./chunk-ACDZ2CRV.js";import"./chunk-CKFZOPZN.js";import"./chunk-P65S7AZA.js";import"./chunk-X47GHZY3.js";import"./chunk-WRMUQVKY.js";import"./chunk-UF3YOGHV.js";import"./chunk-V2QYW5KW.js";import"./chunk-4KEOBDEI.js";import"./chunk-C7VNQ4PY.js";import"./chunk-QYST2TZW.js";import"./chunk-YZ44FUVJ.js";import"./chunk-YDZIPP3Y.js";import"./chunk-CTFW7CMI.js";import"./chunk-HU6ETNA7.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
|
|
@@ -15,7 +15,8 @@ import chalk from 'chalk';
|
|
|
15
15
|
import * as fs from 'fs';
|
|
16
16
|
import * as path from 'path';
|
|
17
17
|
import * as yaml from 'yaml';
|
|
18
|
-
import { createParallelEvalRunner, DEFAULT_PARALLEL_EVAL_CONFIG, } from '../../validation/parallel-eval-runner.js';
|
|
18
|
+
import { createParallelEvalRunner, DEFAULT_PARALLEL_EVAL_CONFIG, MockLLMExecutor, } from '../../validation/parallel-eval-runner.js';
|
|
19
|
+
import { resolveEvalExecutor } from '../../validation/provider-llm-executor.js';
|
|
19
20
|
import { createCommandEvalRunner, isCommandEvalSuite, } from '../../validation/command-eval-runner.js';
|
|
20
21
|
import { createSkillValidationLearner, } from '../../learning/skill-validation-learner.js';
|
|
21
22
|
import { createRealQEReasoningBank, } from '../../learning/real-qe-reasoning-bank.js';
|
|
@@ -54,6 +55,16 @@ const P2_SKILLS = [
|
|
|
54
55
|
/**
|
|
55
56
|
* Get skills for a specific tier
|
|
56
57
|
*/
|
|
58
|
+
/**
|
|
59
|
+
* ADR-123: propagate a `--max-budget-usd` flag to the provider layer via the
|
|
60
|
+
* AQE_MAX_BUDGET_USD env var, which ProviderManager reads as a per-run cap.
|
|
61
|
+
*/
|
|
62
|
+
function applyMaxBudget(maxBudgetUsd) {
|
|
63
|
+
if (typeof maxBudgetUsd === 'number' && Number.isFinite(maxBudgetUsd) && maxBudgetUsd > 0) {
|
|
64
|
+
process.env.AQE_MAX_BUDGET_USD = String(maxBudgetUsd);
|
|
65
|
+
console.log(chalk.gray(` Budget cap: $${maxBudgetUsd.toFixed(2)} for this run`));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
57
68
|
function getSkillsByTier(tier) {
|
|
58
69
|
switch (tier) {
|
|
59
70
|
case 3:
|
|
@@ -295,6 +306,36 @@ async function handleRunCommand(options) {
|
|
|
295
306
|
}
|
|
296
307
|
process.exit(result.passed ? 0 : 1);
|
|
297
308
|
}
|
|
309
|
+
// Issue #557 follow-up: resolve a REAL LLM executor by default. `--mock`
|
|
310
|
+
// opts into canned responses (offline testing only). If neither a provider
|
|
311
|
+
// is configured nor --mock is passed, fail loudly rather than fabricate.
|
|
312
|
+
let executor;
|
|
313
|
+
let evalManager;
|
|
314
|
+
if (options.mock) {
|
|
315
|
+
console.log(chalk.yellow.bold(' ⚠️ MOCK MODE: canned responses, NOT real model output. Results are not valid eval evidence.'));
|
|
316
|
+
executor = new MockLLMExecutor();
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
const resolved = await resolveEvalExecutor();
|
|
320
|
+
if (!resolved.executor) {
|
|
321
|
+
console.error(chalk.red('\n Cannot run real eval: ') + (resolved.reason ?? 'no provider'));
|
|
322
|
+
process.exit(1);
|
|
323
|
+
}
|
|
324
|
+
executor = resolved.executor;
|
|
325
|
+
evalManager = resolved.manager;
|
|
326
|
+
const modeLabel = resolved.billingMode === 'subscription'
|
|
327
|
+
? chalk.green('subscription (no per-token charge)')
|
|
328
|
+
: resolved.billingMode === 'local'
|
|
329
|
+
? chalk.green('local (no cost)')
|
|
330
|
+
: resolved.billingMode === 'metered-capped'
|
|
331
|
+
? chalk.yellow('metered (server-side cap)')
|
|
332
|
+
: chalk.red('pay-per-token API');
|
|
333
|
+
console.log(` LLM provider: ${chalk.cyan(resolved.providerType)} billing: ${modeLabel}`);
|
|
334
|
+
if (process.env.AQE_MAX_BUDGET_USD) {
|
|
335
|
+
console.log(chalk.gray(` Budget cap: $${process.env.AQE_MAX_BUDGET_USD} for this run`));
|
|
336
|
+
}
|
|
337
|
+
console.log('');
|
|
338
|
+
}
|
|
298
339
|
const { runner, reasoningBank } = await initializeRunner();
|
|
299
340
|
try {
|
|
300
341
|
// Configure runner
|
|
@@ -305,7 +346,7 @@ async function handleRunCommand(options) {
|
|
|
305
346
|
timeout: options.timeout,
|
|
306
347
|
retryFailedTests: options.retry,
|
|
307
348
|
};
|
|
308
|
-
const customRunner = createParallelEvalRunner(createSkillValidationLearner(reasoningBank), config);
|
|
349
|
+
const customRunner = createParallelEvalRunner(createSkillValidationLearner(reasoningBank), config, executor);
|
|
309
350
|
// Set up progress reporting
|
|
310
351
|
if (options.verbose) {
|
|
311
352
|
customRunner.onProgress(displayProgress);
|
|
@@ -333,11 +374,30 @@ async function handleRunCommand(options) {
|
|
|
333
374
|
}
|
|
334
375
|
finally {
|
|
335
376
|
await reasoningBank.dispose();
|
|
377
|
+
if (evalManager)
|
|
378
|
+
await evalManager.dispose();
|
|
336
379
|
}
|
|
337
380
|
}
|
|
338
381
|
async function handleRunAllCommand(options) {
|
|
339
382
|
console.log(chalk.bold('\nAQE Parallel Eval Runner - Multi-Skill'));
|
|
340
383
|
console.log(chalk.dim('ADR-056 Phase 5: Worker Pool Pattern\n'));
|
|
384
|
+
// Issue #557 follow-up: real executor by default; --mock is offline-only.
|
|
385
|
+
let executor;
|
|
386
|
+
let evalManager;
|
|
387
|
+
if (options.mock) {
|
|
388
|
+
console.log(chalk.yellow.bold(' ⚠️ MOCK MODE: canned responses, NOT real model output. Results are not valid eval evidence.'));
|
|
389
|
+
executor = new MockLLMExecutor();
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
const resolved = await resolveEvalExecutor();
|
|
393
|
+
if (!resolved.executor) {
|
|
394
|
+
console.error(chalk.red('\n Cannot run real eval: ') + (resolved.reason ?? 'no provider'));
|
|
395
|
+
process.exit(1);
|
|
396
|
+
}
|
|
397
|
+
executor = resolved.executor;
|
|
398
|
+
evalManager = resolved.manager;
|
|
399
|
+
console.log(` LLM provider: ${chalk.cyan(resolved.providerType)} billing: ${resolved.billingMode}`);
|
|
400
|
+
}
|
|
341
401
|
const { runner, learner, reasoningBank } = await initializeRunner();
|
|
342
402
|
try {
|
|
343
403
|
// Get skills for tier
|
|
@@ -353,7 +413,7 @@ async function handleRunAllCommand(options) {
|
|
|
353
413
|
...DEFAULT_PARALLEL_EVAL_CONFIG,
|
|
354
414
|
maxWorkers: options.parallel ? options.workers : 1,
|
|
355
415
|
};
|
|
356
|
-
const customRunner = createParallelEvalRunner(learner, config);
|
|
416
|
+
const customRunner = createParallelEvalRunner(learner, config, executor);
|
|
357
417
|
// Run all evals
|
|
358
418
|
const results = await customRunner.runMultipleEvalsParallel(skills, models);
|
|
359
419
|
// Flatten results for display
|
|
@@ -394,6 +454,8 @@ async function handleRunAllCommand(options) {
|
|
|
394
454
|
}
|
|
395
455
|
finally {
|
|
396
456
|
await reasoningBank.dispose();
|
|
457
|
+
if (evalManager)
|
|
458
|
+
await evalManager.dispose();
|
|
397
459
|
}
|
|
398
460
|
}
|
|
399
461
|
async function handleStatusCommand(skill) {
|
|
@@ -531,7 +593,10 @@ export function createEvalCommand() {
|
|
|
531
593
|
.option('--no-retry', 'Disable retry of failed tests')
|
|
532
594
|
.option('-o, --output <path>', 'Output file path for results')
|
|
533
595
|
.option('-v, --verbose', 'Show progress during execution', false)
|
|
596
|
+
.option('--max-budget-usd <n>', 'ADR-123: cap total LLM spend for this run in USD (aborts with COST_LIMIT_EXCEEDED past the cap)', parseFloat)
|
|
597
|
+
.option('--mock', 'Use canned responses instead of real model calls (offline testing only — results are NOT valid eval evidence)', false)
|
|
534
598
|
.action(async (opts) => {
|
|
599
|
+
applyMaxBudget(opts.maxBudgetUsd);
|
|
535
600
|
await handleRunCommand({
|
|
536
601
|
skill: opts.skill,
|
|
537
602
|
model: opts.model,
|
|
@@ -542,6 +607,7 @@ export function createEvalCommand() {
|
|
|
542
607
|
retry: opts.retry !== false,
|
|
543
608
|
output: opts.output,
|
|
544
609
|
verbose: opts.verbose,
|
|
610
|
+
mock: opts.mock === true,
|
|
545
611
|
});
|
|
546
612
|
});
|
|
547
613
|
// Run all evals
|
|
@@ -554,7 +620,10 @@ export function createEvalCommand() {
|
|
|
554
620
|
.option('-w, --workers <n>', 'Number of parallel workers', parseInt, 5)
|
|
555
621
|
.option('-o, --output <path>', 'Output file path for report')
|
|
556
622
|
.option('-v, --verbose', 'Show progress during execution', false)
|
|
623
|
+
.option('--max-budget-usd <n>', 'ADR-123: cap total LLM spend for this run in USD (aborts with COST_LIMIT_EXCEEDED past the cap)', parseFloat)
|
|
624
|
+
.option('--mock', 'Use canned responses instead of real model calls (offline testing only — results are NOT valid eval evidence)', false)
|
|
557
625
|
.action(async (opts) => {
|
|
626
|
+
applyMaxBudget(opts.maxBudgetUsd);
|
|
558
627
|
await handleRunAllCommand({
|
|
559
628
|
skillsTier: opts.skillsTier,
|
|
560
629
|
models: opts.models,
|
|
@@ -562,6 +631,7 @@ export function createEvalCommand() {
|
|
|
562
631
|
workers: opts.workers,
|
|
563
632
|
output: opts.output,
|
|
564
633
|
verbose: opts.verbose,
|
|
634
|
+
mock: opts.mock === true,
|
|
565
635
|
});
|
|
566
636
|
});
|
|
567
637
|
// Status command
|
|
@@ -399,12 +399,14 @@ function formatCost(cost) {
|
|
|
399
399
|
function getDefaultModelForProvider(provider) {
|
|
400
400
|
const defaults = {
|
|
401
401
|
claude: 'claude-sonnet-4-6',
|
|
402
|
+
'claude-code': 'sonnet',
|
|
402
403
|
openai: 'gpt-4o',
|
|
403
404
|
ollama: 'llama3.1',
|
|
404
405
|
openrouter: 'anthropic/claude-sonnet-4',
|
|
405
406
|
gemini: 'gemini-2.0-pro',
|
|
406
407
|
'azure-openai': 'gpt-4o',
|
|
407
408
|
bedrock: 'anthropic.claude-sonnet-4-v1:0',
|
|
409
|
+
cognitum: 'cognitum-auto',
|
|
408
410
|
onnx: 'phi-4',
|
|
409
411
|
};
|
|
410
412
|
return defaults[provider] || '';
|
|
@@ -22,6 +22,11 @@ export interface DaemonLivenessStatus {
|
|
|
22
22
|
* tracks a *different*, in-process `QualityDaemon` instance that can't see a
|
|
23
23
|
* truly detached process across separate CLI invocations anyway.
|
|
24
24
|
*/
|
|
25
|
+
/**
|
|
26
|
+
* ADR-123 (issue #557): print how the active LLM provider bills, plus any
|
|
27
|
+
* configured per-run budget cap. Best-effort — never throws into `aqe health`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function printLlmBilling(): void;
|
|
25
30
|
export declare function checkDaemonLiveness(): DaemonLivenessStatus;
|
|
26
31
|
export declare class StatusHandler implements ICommandHandler {
|
|
27
32
|
readonly name = "status";
|
|
@@ -9,6 +9,8 @@ import { join } from 'node:path';
|
|
|
9
9
|
import { getStatusColor, formatUptime, } from './interfaces.js';
|
|
10
10
|
import { writeOutput, toJSON } from '../utils/ci-output.js';
|
|
11
11
|
import { findProjectRoot } from '../../kernel/unified-memory.js';
|
|
12
|
+
import { loadRouterConfig } from '../../shared/llm/router/config-store.js';
|
|
13
|
+
import { billingModeForType } from '../../shared/llm/billing-modes.js';
|
|
12
14
|
/**
|
|
13
15
|
* Check whether the detached background-worker daemon (`.agentic-qe/workers/
|
|
14
16
|
* start-daemon.cjs`, PID recorded in `daemon.pid` — see `10-workers.ts`) is
|
|
@@ -19,6 +21,36 @@ import { findProjectRoot } from '../../kernel/unified-memory.js';
|
|
|
19
21
|
* tracks a *different*, in-process `QualityDaemon` instance that can't see a
|
|
20
22
|
* truly detached process across separate CLI invocations anyway.
|
|
21
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* ADR-123 (issue #557): print how the active LLM provider bills, plus any
|
|
26
|
+
* configured per-run budget cap. Best-effort — never throws into `aqe health`.
|
|
27
|
+
*/
|
|
28
|
+
export function printLlmBilling() {
|
|
29
|
+
try {
|
|
30
|
+
const config = loadRouterConfig();
|
|
31
|
+
const primary = config.defaultProvider;
|
|
32
|
+
const mode = billingModeForType(primary);
|
|
33
|
+
const modeLabel = {
|
|
34
|
+
'metered-api': `${chalk.red('●')} pay-per-token API key (no cap)`,
|
|
35
|
+
'metered-capped': `${chalk.yellow('●')} pay-per-token with server-side cap`,
|
|
36
|
+
subscription: `${chalk.green('●')} Claude subscription (no per-token charge)`,
|
|
37
|
+
local: `${chalk.green('●')} local (no cost)`,
|
|
38
|
+
};
|
|
39
|
+
console.log(chalk.blue('\n LLM Billing:'));
|
|
40
|
+
console.log(` Provider: ${chalk.cyan(primary)} ${modeLabel[mode] ?? mode}`);
|
|
41
|
+
const cap = Number.parseFloat(process.env.AQE_MAX_BUDGET_USD ?? '');
|
|
42
|
+
if (Number.isFinite(cap) && cap > 0) {
|
|
43
|
+
console.log(` Per-run budget cap: ${chalk.cyan('$' + cap.toFixed(2))}`);
|
|
44
|
+
}
|
|
45
|
+
else if (mode === 'metered-api') {
|
|
46
|
+
console.log(chalk.gray(' No budget cap set — use AQE_MAX_BUDGET_USD or --max-budget-usd.'));
|
|
47
|
+
console.log(chalk.gray(' Tip: AQE_LLM_PROVIDER=claude-code runs on your Claude subscription.'));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Billing display is informational; failures must not break health.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
22
54
|
export function checkDaemonLiveness() {
|
|
23
55
|
try {
|
|
24
56
|
const pidFile = join(findProjectRoot(), '.agentic-qe', 'workers', 'daemon.pid');
|
|
@@ -291,6 +323,9 @@ export class HealthHandler {
|
|
|
291
323
|
else {
|
|
292
324
|
console.log(` ${chalk.red('\u25CF')} Not running (stale PID: ${daemon.pid ?? 'unknown'}) \u2014 learning/consolidation snapshots will not advance`);
|
|
293
325
|
}
|
|
326
|
+
// ADR-123 (issue #557): make LLM billing visible so a paid API key is
|
|
327
|
+
// never a silent surprise.
|
|
328
|
+
printLlmBilling();
|
|
294
329
|
}
|
|
295
330
|
console.log('');
|
|
296
331
|
await this.cleanupAndExit(0);
|
|
@@ -184,6 +184,17 @@ export function registerProvidersFromEnv(enableLogging = false) {
|
|
|
184
184
|
config.claude = {
|
|
185
185
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
|
186
186
|
};
|
|
187
|
+
// ADR-123 (issue #557): this consensus/multi-model-verification path bills
|
|
188
|
+
// the pay-per-token Anthropic API, not a Claude subscription, and has no
|
|
189
|
+
// budget cap of its own. Surface it so the spend isn't silent. (Full
|
|
190
|
+
// subscription + budget support for the consensus ModelProvider layer is
|
|
191
|
+
// tracked as ADR-123 follow-up — it uses a different interface than the
|
|
192
|
+
// shared LLM ProviderManager.)
|
|
193
|
+
if ((process.env.AQE_LLM_NO_BILLING_NOTICE ?? '') !== '1') {
|
|
194
|
+
// eslint-disable-next-line no-console
|
|
195
|
+
console.error('⚠️ Consensus verification will use the Anthropic API key (pay-per-token, ' +
|
|
196
|
+
'no budget cap). Unset ANTHROPIC_API_KEY to disable this path.');
|
|
197
|
+
}
|
|
187
198
|
}
|
|
188
199
|
// Detect OpenAI
|
|
189
200
|
if (process.env.OPENAI_API_KEY) {
|