agentic-qe 3.10.1 → 3.10.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/hooks/README.txt +17 -0
- package/.claude/hooks/aqe-hook.cjs +98 -0
- package/.claude/hooks/cross-phase-memory.yaml +296 -0
- package/.claude/hooks/post-task-sync.sh +113 -0
- package/.claude/hooks/v3-domain-workers.json +121 -0
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +76 -0
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-CR6J5C76.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-FZLWOPSX.js → agent-booster-wasm-DHSIPFTH.js} +2 -2
- package/dist/cli/chunks/{agent-handler-KAGRVCKS.js → agent-handler-FPQVHGGT.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-JJKFEXQW.js → agent-memory-branch-OLOF5ZHV.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-2MNTHMB6.js +2 -0
- package/dist/cli/chunks/{audit-DN5SY4JJ.js → audit-ALRYPHGP.js} +2 -2
- package/dist/cli/chunks/base-AOQNGMTL.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-YX6OOBN6.js → better-sqlite3-5BT5FO64.js} +2 -2
- package/dist/cli/chunks/{brain-handler-O7MP5BGY.js → brain-handler-ROZUHCOT.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-ZPTN5J6V.js → branch-enumerator-VK7G4NKJ.js} +2 -2
- package/dist/cli/chunks/{browser-PAZE2JSD.js → browser-Q2S75M2F.js} +2 -2
- package/dist/cli/chunks/browser-workflow-UJ4A2ZXO.js +2 -0
- package/dist/cli/chunks/{chunk-WDTCCPK4.js → chunk-2244IFZA.js} +1 -1
- package/dist/cli/chunks/{chunk-WPNZSL4S.js → chunk-22D6VBPD.js} +1 -1
- package/dist/cli/chunks/{chunk-2KTRRSKD.js → chunk-24LUQICS.js} +2 -2
- package/dist/cli/chunks/{chunk-IHDUWPFY.js → chunk-2EDWGHDA.js} +2 -2
- package/dist/cli/chunks/{chunk-TP77PNN6.js → chunk-2JDLQWSV.js} +2 -2
- package/dist/cli/chunks/{chunk-GTGONWGX.js → chunk-2OH3ALYB.js} +1 -1
- package/dist/cli/chunks/{chunk-WMG5F6R6.js → chunk-3RHHKYUR.js} +2 -2
- package/dist/cli/chunks/{chunk-6E7GI2UB.js → chunk-3Z4FHA2E.js} +1 -1
- package/dist/cli/chunks/{chunk-JLKHPIQF.js → chunk-4BXGVM2C.js} +1 -1
- package/dist/cli/chunks/{chunk-6D57DWQ6.js → chunk-4F3ZTXHP.js} +2 -2
- package/dist/cli/chunks/{chunk-3YOPJ7DY.js → chunk-4GTDW2XL.js} +2 -2
- package/dist/cli/chunks/{chunk-W2DT3CDE.js → chunk-5HB54RUS.js} +2 -2
- package/dist/cli/chunks/{chunk-LF7URN2X.js → chunk-5PL7WTCU.js} +2 -2
- package/dist/cli/chunks/{chunk-Y357YFLF.js → chunk-5PRFFHFV.js} +2 -2
- package/dist/cli/chunks/{chunk-GXJ4BCGC.js → chunk-5QHSLWLP.js} +2 -2
- package/dist/cli/chunks/{chunk-TL5F2S3Z.js → chunk-5WJ3FWL4.js} +2 -2
- package/dist/cli/chunks/{chunk-ZTMWJQTZ.js → chunk-6KSCXPPL.js} +2 -2
- package/dist/cli/chunks/{chunk-SQBB2DC6.js → chunk-6NZHEM4V.js} +1 -1
- package/dist/cli/chunks/{chunk-EUJHHXE6.js → chunk-6ZFHIKQG.js} +2 -2
- package/dist/cli/chunks/{chunk-YPOTBXPU.js → chunk-7DKYCVJI.js} +2 -2
- package/dist/cli/chunks/{chunk-DQIS6J77.js → chunk-7IVQ6OVR.js} +2 -2
- package/dist/cli/chunks/{chunk-DMIYWPQQ.js → chunk-7IZ2OPC2.js} +2 -2
- package/dist/cli/chunks/{chunk-VOIWDPIU.js → chunk-7QRMARM7.js} +2 -2
- package/dist/cli/chunks/{chunk-KEC5FBAW.js → chunk-7SJX4CFK.js} +1 -1
- package/dist/cli/chunks/{chunk-2S4XHK26.js → chunk-7SWD3D6Y.js} +2 -2
- package/dist/cli/chunks/{chunk-RRLQFFCO.js → chunk-7V5UHLNY.js} +2 -2
- package/dist/cli/chunks/{chunk-G3BQU3Q6.js → chunk-7Z46RDDV.js} +2 -2
- package/dist/cli/chunks/{chunk-TNVYKYTO.js → chunk-A5RMQG4N.js} +3 -3
- package/dist/cli/chunks/{chunk-PXFQSVA2.js → chunk-AH7FXNFE.js} +3 -3
- package/dist/cli/chunks/{chunk-K22TPWOJ.js → chunk-AIUSZC6K.js} +2 -2
- package/dist/cli/chunks/{chunk-IK6AJX3C.js → chunk-AOI67HA3.js} +1 -1
- package/dist/cli/chunks/{chunk-6VQ5MFJ6.js → chunk-AV7KYE5P.js} +7 -7
- package/dist/cli/chunks/{chunk-GTRXZJNX.js → chunk-AWFIEGR3.js} +2 -2
- package/dist/cli/chunks/{chunk-6A2NIR2E.js → chunk-BQCSCAUC.js} +2 -2
- package/dist/cli/chunks/{chunk-NQZYUH6S.js → chunk-C2M74HCN.js} +1 -1
- package/dist/cli/chunks/{chunk-5EU2VQK3.js → chunk-CIRPP7RQ.js} +2 -2
- package/dist/cli/chunks/{chunk-Q5VHBI4U.js → chunk-CMACGG4Z.js} +1 -1
- package/dist/cli/chunks/{chunk-YGRTMAWB.js → chunk-CTDLI2ON.js} +1 -1
- package/dist/cli/chunks/{chunk-P7T5Y735.js → chunk-CV2SBMBW.js} +2 -2
- package/dist/cli/chunks/{chunk-UDFLR7GR.js → chunk-DMQPO43S.js} +1 -1
- package/dist/cli/chunks/{chunk-XKOKMS5A.js → chunk-DRWGK3YO.js} +2 -2
- package/dist/cli/chunks/{chunk-EBQ6YKP2.js → chunk-DZZEHPSJ.js} +2 -2
- package/dist/cli/chunks/{chunk-7SQD2TTQ.js → chunk-EA7ZSN3V.js} +1 -1
- package/dist/cli/chunks/{chunk-KKNBYXYA.js → chunk-EQBEGDTG.js} +1 -1
- package/dist/cli/chunks/{chunk-2UN4DOBJ.js → chunk-ETN5563K.js} +2 -2
- package/dist/cli/chunks/{chunk-BECU52UY.js → chunk-EVCOCGVJ.js} +3 -3
- package/dist/cli/chunks/{chunk-OC3OJWLB.js → chunk-FO43SQXP.js} +2 -2
- package/dist/cli/chunks/{chunk-CKECJH2A.js → chunk-FO73PZVU.js} +2 -2
- package/dist/cli/chunks/{chunk-Y2DPXMOR.js → chunk-FPAW77XV.js} +1 -1
- package/dist/cli/chunks/{chunk-UDVX34ZG.js → chunk-FY3CUPNN.js} +20 -17
- package/dist/cli/chunks/{chunk-EIROAH6N.js → chunk-G5U6Q42D.js} +2 -2
- package/dist/cli/chunks/{chunk-VKRMVTWU.js → chunk-HA63NBFK.js} +9 -9
- package/dist/cli/chunks/{chunk-2ETDES5W.js → chunk-HHCYSAH3.js} +2 -2
- package/dist/cli/chunks/{chunk-57NJQV57.js → chunk-HJME6G5M.js} +1 -1
- package/dist/cli/chunks/{chunk-BN7ERYXI.js → chunk-HJORBNXW.js} +1 -1
- package/dist/cli/chunks/{chunk-5KFCH7RH.js → chunk-HO37VP4O.js} +1 -1
- package/dist/cli/chunks/{chunk-622MIAOR.js → chunk-I677W5BT.js} +3 -3
- package/dist/cli/chunks/chunk-IAZEDWRX.js +2 -0
- package/dist/cli/chunks/{chunk-KRXKU54J.js → chunk-IICTTDAA.js} +2 -2
- package/dist/cli/chunks/{chunk-BGBSYF3K.js → chunk-JF53LRBL.js} +2 -2
- package/dist/cli/chunks/{chunk-RPL6K623.js → chunk-KB5L5TTF.js} +3 -3
- package/dist/cli/chunks/{chunk-Q24OJX44.js → chunk-L7VIX22Y.js} +2 -2
- package/dist/cli/chunks/{chunk-TFNLXAK5.js → chunk-LQTWPSYL.js} +1 -1
- package/dist/cli/chunks/{chunk-ECPB7IAH.js → chunk-LZCBSFAU.js} +4 -4
- package/dist/cli/chunks/{chunk-G5DTENO3.js → chunk-MCOFJHSJ.js} +2 -2
- package/dist/cli/chunks/{chunk-XRK7FBTY.js → chunk-MCZHKXB4.js} +2 -2
- package/dist/cli/chunks/{chunk-H44WD7QX.js → chunk-MEY43PIQ.js} +2 -2
- package/dist/cli/chunks/{chunk-WL2J6ECN.js → chunk-MMIQ5DMA.js} +2 -2
- package/dist/cli/chunks/{chunk-PUXDXIUE.js → chunk-MNUTRAUV.js} +1 -1
- package/dist/cli/chunks/{chunk-KCTH5MHE.js → chunk-MNV3E5KY.js} +2 -2
- package/dist/cli/chunks/{chunk-EO4B5GS4.js → chunk-MYWQTCS4.js} +1 -1
- package/dist/cli/chunks/{chunk-32R7EA7B.js → chunk-NZO4WUSO.js} +3 -3
- package/dist/cli/chunks/{chunk-NOCYYXK4.js → chunk-OIEQF7PG.js} +2 -2
- package/dist/cli/chunks/{chunk-IPRDHKSI.js → chunk-OIRZJCZY.js} +2 -2
- package/dist/cli/chunks/{chunk-ELZ67OHQ.js → chunk-ON4D4TJ4.js} +2 -2
- package/dist/cli/chunks/chunk-OPFN5LFT.js +95 -0
- package/dist/cli/chunks/{chunk-4AWJ5PE4.js → chunk-ORF2UKQH.js} +1 -1
- package/dist/cli/chunks/{chunk-6LRCMFLV.js → chunk-OWQ6HEYI.js} +2 -2
- package/dist/cli/chunks/{chunk-GRG3OP34.js → chunk-OXCEUR5F.js} +2 -2
- package/dist/cli/chunks/{chunk-SLNGJW4G.js → chunk-PEK6NGVJ.js} +1 -1
- package/dist/cli/chunks/{chunk-5ZCVMR5E.js → chunk-PIZYRPMT.js} +2 -2
- package/dist/cli/chunks/{chunk-K4T3RDCB.js → chunk-PXTDEO65.js} +2 -2
- package/dist/cli/chunks/{chunk-GRYXNWPF.js → chunk-PYIHZXCI.js} +12 -12
- package/dist/cli/chunks/{chunk-HRDGN3OK.js → chunk-QBRHKTFT.js} +1 -1
- package/dist/cli/chunks/{chunk-COZDJLIL.js → chunk-QEPFXY6G.js} +1 -1
- package/dist/cli/chunks/{chunk-HPNEZ7YN.js → chunk-QJ2EHLJ2.js} +1 -1
- package/dist/cli/chunks/{chunk-GMKGLZJU.js → chunk-QQNCSEZG.js} +2 -2
- package/dist/cli/chunks/{chunk-CR4ERDS2.js → chunk-QSE67XJO.js} +2 -2
- package/dist/cli/chunks/{chunk-7CKVAYP3.js → chunk-R2O6OKT2.js} +1 -1
- package/dist/cli/chunks/{chunk-OVENSL64.js → chunk-RLXTBL3H.js} +8 -8
- package/dist/cli/chunks/{chunk-PW6MOFXG.js → chunk-RNREAOY4.js} +2 -2
- package/dist/cli/chunks/{chunk-YYWIA5FX.js → chunk-S3OZ7XSY.js} +1 -1
- package/dist/cli/chunks/{chunk-KZJXVIAW.js → chunk-S3ZO7JXS.js} +2 -2
- package/dist/cli/chunks/{chunk-ZEMXMDD3.js → chunk-SJH3HYNC.js} +2 -2
- package/dist/cli/chunks/{chunk-5OTYBWRL.js → chunk-STEGWLH5.js} +2 -2
- package/dist/cli/chunks/{chunk-F3OVFA6W.js → chunk-SVYTN2GT.js} +2 -2
- package/dist/cli/chunks/{chunk-QNW335PD.js → chunk-SW4OKUTC.js} +2 -2
- package/dist/cli/chunks/{chunk-WS4XVJHI.js → chunk-THRTUW4Z.js} +1 -1
- package/dist/cli/chunks/{chunk-NPSBMDVU.js → chunk-TJKDATEU.js} +2 -2
- package/dist/cli/chunks/{chunk-H22MMMYY.js → chunk-U3EUH6LX.js} +2 -2
- package/dist/cli/chunks/{chunk-FJSR2U65.js → chunk-UUFOHMUG.js} +2 -2
- package/dist/cli/chunks/{chunk-RWYW573C.js → chunk-UVU7XLJY.js} +3 -3
- package/dist/cli/chunks/{chunk-BF7MUYWC.js → chunk-UWXH2UQK.js} +2 -2
- package/dist/cli/chunks/{chunk-UU2Q6XWF.js → chunk-UYYBPWU3.js} +1 -1
- package/dist/cli/chunks/{chunk-AUVC3DDB.js → chunk-VSUTI4G6.js} +2 -2
- package/dist/cli/chunks/{chunk-25QGPRWN.js → chunk-WDMPJ2M2.js} +2 -2
- package/dist/cli/chunks/{chunk-MVGVD6LS.js → chunk-WNR2KAUH.js} +2 -2
- package/dist/cli/chunks/{chunk-NDCPEXDN.js → chunk-WSVUSIAZ.js} +2 -2
- package/dist/cli/chunks/{chunk-T3UXMPXX.js → chunk-WZJUMJ2S.js} +1 -1
- package/dist/cli/chunks/{chunk-TX7SNQKL.js → chunk-X2VAOIUY.js} +1 -1
- package/dist/cli/chunks/{chunk-DVOH75S4.js → chunk-XDSA7YUQ.js} +1 -1
- package/dist/cli/chunks/{chunk-TNGGVMPQ.js → chunk-XDU624HU.js} +1 -1
- package/dist/cli/chunks/{chunk-6ZRMQXVL.js → chunk-XGBAHAGC.js} +2 -2
- package/dist/cli/chunks/{chunk-IITKJCPK.js → chunk-XMJTTF5N.js} +2 -2
- package/dist/cli/chunks/{chunk-2TDWCXZ6.js → chunk-XPCNUX2U.js} +2 -2
- package/dist/cli/chunks/{chunk-W6ZF2CPN.js → chunk-XRJECWZE.js} +1 -1
- package/dist/cli/chunks/{chunk-MQYTW2IN.js → chunk-XTCUN36Z.js} +2 -2
- package/dist/cli/chunks/{chunk-7MSYTHZM.js → chunk-Y63MBMOV.js} +2 -2
- package/dist/cli/chunks/{chunk-6QFONVEE.js → chunk-YACT5WFC.js} +2 -2
- package/dist/cli/chunks/{chunk-PLRSKAFZ.js → chunk-YI6GNRQM.js} +2 -2
- package/dist/cli/chunks/chunk-YNNOY3XN.js +62 -0
- package/dist/cli/chunks/{chunk-XGUQYVJR.js → chunk-YWZHMXTO.js} +2 -2
- package/dist/cli/chunks/{chunk-OQP5OFRR.js → chunk-ZDHMZPSL.js} +1 -1
- package/dist/cli/chunks/{chunk-NRLT44YB.js → chunk-ZGNZJJFF.js} +1 -1
- package/dist/cli/chunks/{chunk-ELUERFGA.js → chunk-ZK2BH23O.js} +2 -2
- package/dist/cli/chunks/{chunk-AABKTWXC.js → chunk-ZQUXNG5X.js} +2 -2
- package/dist/cli/chunks/{chunk-WQEZKAUR.js → chunk-ZXTO4C7R.js} +2 -2
- package/dist/cli/chunks/{ci-EHRUN7O6.js → ci-PYCRCL7G.js} +2 -2
- package/dist/cli/chunks/{ci-output-EXDXVXKB.js → ci-output-EKQQFE2D.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-LM4QRAAL.js → circuit-breaker-RH3Q2MJO.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-ZHUCZVW7.js → claude-flow-setup-DUDXB4VV.js} +2 -2
- package/dist/cli/chunks/client-RDPWGOSA.js +2 -0
- package/dist/cli/chunks/{cline-installer-WMFLQOW2.js → cline-installer-3Q4WIWUG.js} +2 -2
- package/dist/cli/chunks/{code-L7KRLU5E.js → code-E4Q6DGOO.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-FTMUYQC6.js → code-index-extractor-2PCISUOW.js} +2 -2
- package/dist/cli/chunks/{codex-installer-B3F6WI3Z.js → codex-installer-YNNNOLJ6.js} +2 -2
- package/dist/cli/chunks/{completions-3JZQRNB6.js → completions-2F7TUFBD.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-LB2FFEKX.js → complexity-analyzer-2B6MHO7W.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-WH6IMV7R.js → continuedev-installer-ENOKRU5M.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-NOIEOFJM.js → copilot-installer-6YD2KM5F.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-IKX2VYSA.js → cost-tracker-FCH4QOEA.js} +2 -2
- package/dist/cli/chunks/{coverage-TD37CYSY.js → coverage-JTOXZE3T.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-4K5ZVZEZ.js +2 -0
- package/dist/cli/chunks/{cursor-installer-4NSVGRM5.js → cursor-installer-QZFBUGLQ.js} +2 -2
- package/dist/cli/chunks/{daemon-LYDV7NRW.js → daemon-K4QFB5FQ.js} +3 -3
- package/dist/cli/chunks/{daemon-UWEBUIDT.js → daemon-M422U3ZA.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-NECJGCHC.js → dag-attention-scheduler-BXAAW33V.js} +2 -2
- package/dist/cli/chunks/{detect-4XGC7ILO.js → detect-UGSWIOAD.js} +2 -2
- package/dist/cli/chunks/{dist-node-GGJDXRKJ.js → dist-node-FN3HX3OK.js} +2 -2
- package/dist/cli/chunks/{domain-handler-UOFONAUT.js → domain-handler-7PP7VYA7.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-6JLNOYPA.js → domain-transfer-XZM44W7I.js} +2 -2
- package/dist/cli/chunks/dream-RPNWM7VS.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-ZM75DQ4J.js → embed-and-insert-pattern-JZVERJ5L.js} +2 -2
- package/dist/cli/chunks/{eval-CYZJTHEB.js → eval-466NFF2D.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-RBOJLDUB.js → experience-capture-middleware-I7IQCC7V.js} +3 -3
- package/dist/cli/chunks/{fast-paths-S5BWZR3L.js → fast-paths-34OICNZA.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6E7H3NYP.js → feature-flags-6UBIVTAD.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DUNQPDU3.js → feature-flags-X5WBBWSO.js} +2 -2
- package/dist/cli/chunks/{file-discovery-PFFKDGYG.js → file-discovery-NLMDBWXX.js} +2 -2
- package/dist/cli/chunks/{fleet-RCDZZFXN.js → fleet-W7CYCHDI.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-5AG3WDWF.js → gnn-wrapper-K4VTAG5X.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-O2KAEX4Y.js → heartbeat-handler-ZGKF2Z6T.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-JBCXMMZO.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-3SC2HZIG.js +2 -0
- package/dist/cli/chunks/hnsw-index-FQORAR6K.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-C7FG6YGW.js → hnsw-legacy-bridge-ELDRLKK5.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-XGPW4HK5.js → hnswlib-node-ZGSUMHDC.js} +2 -2
- package/dist/cli/chunks/{hooks-FUHNE2P7.js → hooks-T4CBINAV.js} +13 -13
- package/dist/cli/chunks/hybrid-router-6CBFDXPR.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-LQRYBNPV.js → hypergraph-engine-UWFW3XP5.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-AFFNLZVD.js → hypergraph-handler-PK2BI46K.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-SOEFVZWG.js +2 -0
- package/dist/cli/chunks/{init-handler-BQ6IDBX4.js → init-handler-HNG6KJOU.js} +6 -6
- package/dist/cli/chunks/init-wizard-3E4IU5M4.js +2 -0
- package/dist/cli/chunks/kernel-GFZP4G5J.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-KS72HUSG.js → kilocode-installer-25V7FEJ4.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-2ZEFLGRX.js → kiro-installer-7RMTTCQB.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-BKRKBU26.js +2 -0
- package/dist/cli/chunks/{learning-GGHGJ6B6.js → learning-XQC2MG2R.js} +3 -3
- package/dist/cli/chunks/{llm-router-LP6K5BJF.js → llm-router-6KTTONH4.js} +4 -4
- package/dist/cli/chunks/llm-router-service-KE4IGZPP.js +2 -0
- package/dist/cli/chunks/{load-2MLKXOT2.js → load-BV64P3AL.js} +2 -2
- package/dist/cli/chunks/load-test-VSYJV2AO.js +2 -0
- package/dist/cli/chunks/{mcp-CDJBJG5H.js → mcp-U5ZN77TA.js} +2 -2
- package/dist/cli/chunks/{memory-4LAX7JZS.js → memory-WB5BNBK7.js} +5 -5
- package/dist/cli/chunks/memory-backend-B72RGHRF.js +2 -0
- package/dist/cli/chunks/{memory-handlers-OBAFR4WV.js → memory-handlers-NWCH7AUO.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-SLJV73HE.js → multi-model-executor-3X3W3UTY.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-M76SONWV.js → opencode-installer-TTTMG7ZZ.js} +2 -2
- package/dist/cli/chunks/{orchestrator-TJPUDJMP.js → orchestrator-BLCGSHMZ.js} +18 -18
- package/dist/cli/chunks/{pipeline-2PVNFT6J.js → pipeline-DZPGMRG7.js} +2 -2
- package/dist/cli/chunks/{platform-KCSEDKEE.js → platform-EVMZAUNV.js} +2 -2
- package/dist/cli/chunks/{plugin-QX47QF5U.js → plugin-OR55K4HT.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-L6VWL7VR.js → prime-radiant-advanced-wasm-4ODV27HD.js} +2 -2
- package/dist/cli/chunks/protocol-executor-V3F37FPO.js +2 -0
- package/dist/cli/chunks/{protocol-handler-WDNJDEUE.js → protocol-handler-ZOTI5PID.js} +2 -2
- package/dist/cli/chunks/{prove-3B75DA3S.js → prove-DIMBYJ7V.js} +2 -2
- package/dist/cli/chunks/provider-manager-2PN72TT6.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-P665QNIR.js +2 -0
- package/dist/cli/chunks/{quality-UGASS5WM.js → quality-7MX4VL6M.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-XD4F7BGB.js +2 -0
- package/dist/cli/chunks/{real-embeddings-COBP2LHS.js → real-embeddings-YPUHWRN2.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-TOZ4VLFT.js → roocode-installer-WG5AU4QM.js} +2 -2
- package/dist/cli/chunks/router-4SSNWDJC.js +2 -0
- package/dist/cli/chunks/routing-feedback-O2JSIBW6.js +2 -0
- package/dist/cli/chunks/{routing-handler-5TDVSILX.js → routing-handler-LZB4MN2K.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-AM63KWQN.js → ruvector-commands-YE4ADBMC.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-UANIFE2M.js → rvf-dual-writer-QS5ATW4C.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-LNPYWAPI.js → rvf-migration-adapter-YIGKSBD3.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-U47L63DQ.js → rvf-migration-coordinator-2NDCWP7F.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-WIUHYXRB.js +2 -0
- package/dist/cli/chunks/safe-db-WL5Y7ZNS.js +2 -0
- package/dist/cli/chunks/schedule-U7QDGU5A.js +2 -0
- package/dist/cli/chunks/scheduler-LXKGQYXA.js +2 -0
- package/dist/cli/chunks/{security-KDQ2AH7G.js → security-HT4SUT24.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-5MAGLLYJ.js → shared-rvf-adapter-4IZOJL33.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-GF2OPPM5.js → shared-rvf-dual-writer-ZKFO7CBY.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-4KFO3SEB.js +2 -0
- package/dist/cli/chunks/{status-handler-XZKEL7LO.js → status-handler-AMEMKBI4.js} +2 -2
- package/dist/cli/chunks/{structural-health-27QKWW25.js → structural-health-RBADRLC3.js} +2 -2
- package/dist/cli/chunks/{sync-V3HGPEJT.js → sync-ARDDLQBS.js} +2 -2
- package/dist/cli/chunks/{sync-INNKS6UK.js → sync-PCB23M4K.js} +2 -2
- package/dist/cli/chunks/{task-handler-LDUVOM6G.js → task-handler-J26FSCH5.js} +2 -2
- package/dist/cli/chunks/{task-handlers-HTCPV7OO.js → task-handlers-AQRLR6BL.js} +3 -3
- package/dist/cli/chunks/{test-PCUVGVJL.js → test-YXWSIOSB.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-GYVXWCAA.js → test-scheduling-XY532GI4.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-MJ2ANC4P.js → token-bootstrap-KL2QIQ36.js} +2 -2
- package/dist/cli/chunks/{token-usage-ZREHROTF.js → token-usage-2MJVE4DT.js} +2 -2
- package/dist/cli/chunks/{transformers-6B3FWFYL.js → transformers-QSNTOD2Z.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-JVV234MN.js → tree-sitter-wasm-parser-QJOKHOIW.js} +2 -2
- package/dist/cli/chunks/{types-MVZTJI2F.js → types-RNKRSYMO.js} +2 -2
- package/dist/cli/chunks/unified-memory-7AS4LIEF.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-GREESNJX.js +2 -0
- package/dist/cli/chunks/unified-persistence-BPJOMZOA.js +2 -0
- package/dist/cli/chunks/{upgrade-MKTFEILD.js → upgrade-EKJHIFWP.js} +2 -2
- package/dist/cli/chunks/{validate-IABGALSW.js → validate-KS4T7LWC.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-RHF53RF6.js → validate-swarm-SKKWRP2H.js} +2 -2
- package/dist/cli/chunks/{vibium-RAKW6FMF.js → vibium-FLUQO4IF.js} +2 -2
- package/dist/cli/chunks/visual-security-BW662FHQ.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-PYK7F4JZ.js → web-tree-sitter-UMC63DWD.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-S3U2HWZ4.js → windsurf-installer-V3FQGJIQ.js} +2 -2
- package/dist/cli/chunks/{witness-chain-435NKQLB.js → witness-chain-GE74TLSO.js} +2 -2
- package/dist/cli/chunks/witness-chain-OXVDLNVT.js +2 -0
- package/dist/cli/chunks/{workflow-5UHJCZ6J.js → workflow-4YZ2RPWA.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-KKNR46XV.js +2 -0
- package/dist/cli/chunks/{wrappers-RD3NCMLK.js → wrappers-37NLMKPE.js} +2 -2
- package/dist/cli/commands/hooks-handlers/command-hooks.js +1 -1
- package/dist/cli/commands/hooks-handlers/routing-hooks.js +1 -1
- package/dist/cli/commands/hooks-handlers/task-hooks.js +1 -1
- package/dist/init/init-wizard-hooks.js +271 -271
- package/dist/init/phases/07-hooks.d.ts +7 -0
- package/dist/init/phases/07-hooks.js +132 -96
- package/dist/learning/agent-routing.d.ts +19 -0
- package/dist/learning/agent-routing.js +27 -1
- package/dist/learning/dream/dream-scheduler.d.ts +11 -36
- package/dist/learning/dream/dream-scheduler.js +44 -0
- package/dist/learning/experience-consolidation.d.ts +16 -0
- package/dist/learning/experience-consolidation.js +55 -11
- package/dist/learning/pattern-lifecycle.d.ts +21 -0
- package/dist/learning/pattern-lifecycle.js +70 -6
- package/dist/mcp/bundle.js +352 -349
- package/dist/mcp/protocol-server.js +13 -14
- package/dist/mcp/transport/stdio.d.ts +20 -0
- package/dist/mcp/transport/stdio.js +35 -2
- package/dist/shared/utils/rabitq.d.ts +133 -0
- package/dist/shared/utils/rabitq.js +201 -0
- package/package.json +8 -2
- package/dist/cli/chunks/adapter-3JS2CN7C.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-Q4GFNGU6.js +0 -2
- package/dist/cli/chunks/base-Q3MAL22Y.js +0 -2
- package/dist/cli/chunks/browser-workflow-JX3M2UWG.js +0 -2
- package/dist/cli/chunks/chunk-IJ4BUSJN.js +0 -95
- package/dist/cli/chunks/chunk-VPCE5CIT.js +0 -2
- package/dist/cli/chunks/chunk-WO7KYT3X.js +0 -62
- package/dist/cli/chunks/client-PA3UJIHH.js +0 -2
- package/dist/cli/chunks/cross-domain-router-BVJRP2ZX.js +0 -2
- package/dist/cli/chunks/dream-BXZUEIW2.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-LEKAWFJF.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-2TCEG5M2.js +0 -2
- package/dist/cli/chunks/hnsw-index-VDPUTEES.js +0 -2
- package/dist/cli/chunks/hybrid-router-2EMDIYIG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-HFD6CPWC.js +0 -2
- package/dist/cli/chunks/init-wizard-552QIVRC.js +0 -2
- package/dist/cli/chunks/kernel-5DN6O6EE.js +0 -2
- package/dist/cli/chunks/knowledge-graph-76Y77MB6.js +0 -2
- package/dist/cli/chunks/llm-router-service-4O6GCEFH.js +0 -2
- package/dist/cli/chunks/load-test-FCI2IWRJ.js +0 -2
- package/dist/cli/chunks/memory-backend-MKNCBNDE.js +0 -2
- package/dist/cli/chunks/protocol-executor-IA7WNT23.js +0 -2
- package/dist/cli/chunks/provider-manager-3K5KB5A6.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-V5Z3BBYY.js +0 -2
- package/dist/cli/chunks/queen-coordinator-QOMPA27Z.js +0 -2
- package/dist/cli/chunks/router-P5RZUPC4.js +0 -2
- package/dist/cli/chunks/routing-feedback-3PS3OZQC.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-TT7OJPKM.js +0 -2
- package/dist/cli/chunks/safe-db-PEW7VBAE.js +0 -2
- package/dist/cli/chunks/schedule-QHOTHBQE.js +0 -2
- package/dist/cli/chunks/scheduler-KXJBYTRT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-TPXJK34J.js +0 -2
- package/dist/cli/chunks/unified-memory-ROS2NKR5.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-FLEUF3XO.js +0 -2
- package/dist/cli/chunks/unified-persistence-QC5L7UNQ.js +0 -2
- package/dist/cli/chunks/visual-security-NLIOUQCR.js +0 -2
- package/dist/cli/chunks/witness-chain-U7X6JX5J.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-APE6BAXH.js +0 -2
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* ADR-039: Integrated with connection pooling, load balancing, and performance monitoring
|
|
7
7
|
*/
|
|
8
|
-
import { createStdioTransport, JSON_RPC_ERRORS, } from './transport';
|
|
8
|
+
import { createStdioTransport, JSON_RPC_ERRORS, isJsonRpcCodedError, McpError, } from './transport';
|
|
9
9
|
import { createToolRegistry } from './tool-registry';
|
|
10
10
|
import { MiddlewareChain } from './middleware/middleware-chain';
|
|
11
11
|
import { createMicrocompactMiddleware } from './middleware/microcompact';
|
|
@@ -156,7 +156,15 @@ export class MCPProtocolServer {
|
|
|
156
156
|
return await this.handleRequest(request);
|
|
157
157
|
}
|
|
158
158
|
catch (err) {
|
|
159
|
-
//
|
|
159
|
+
// Errors that carry a JSON-RPC `code` (e.g. METHOD_NOT_FOUND for an
|
|
160
|
+
// unknown tool/method — thrown as McpError or a legacy plain
|
|
161
|
+
// `{ code, message }` object) are real protocol errors: re-throw so the
|
|
162
|
+
// transport serializes them as a proper JSON-RPC error response with the
|
|
163
|
+
// correct code/message, instead of flattening to "[object Object]".
|
|
164
|
+
if (isJsonRpcCodedError(err)) {
|
|
165
|
+
throw err;
|
|
166
|
+
}
|
|
167
|
+
// Last-resort safety net: catch anything else that escapes handleToolsCall
|
|
160
168
|
// to prevent MCP connection from being killed (-32000)
|
|
161
169
|
const message = err instanceof Error ? err.message : String(err);
|
|
162
170
|
console.error(`[MCP] Unhandled error in request handler: ${message}`);
|
|
@@ -307,10 +315,7 @@ export class MCPProtocolServer {
|
|
|
307
315
|
return { pong: true };
|
|
308
316
|
// Unknown method
|
|
309
317
|
default:
|
|
310
|
-
throw {
|
|
311
|
-
code: JSON_RPC_ERRORS.METHOD_NOT_FOUND,
|
|
312
|
-
message: `Unknown method: ${method}`,
|
|
313
|
-
};
|
|
318
|
+
throw new McpError(JSON_RPC_ERRORS.METHOD_NOT_FOUND, `Unknown method: ${method}`);
|
|
314
319
|
}
|
|
315
320
|
}
|
|
316
321
|
async handleNotification(notification) {
|
|
@@ -333,10 +338,7 @@ export class MCPProtocolServer {
|
|
|
333
338
|
// ============================================================================
|
|
334
339
|
async handleInitialize(params) {
|
|
335
340
|
if (this.initialized) {
|
|
336
|
-
throw
|
|
337
|
-
code: JSON_RPC_ERRORS.INVALID_REQUEST,
|
|
338
|
-
message: 'Server already initialized',
|
|
339
|
-
};
|
|
341
|
+
throw new McpError(JSON_RPC_ERRORS.INVALID_REQUEST, 'Server already initialized');
|
|
340
342
|
}
|
|
341
343
|
// Store client info
|
|
342
344
|
if (params.clientInfo) {
|
|
@@ -371,10 +373,7 @@ export class MCPProtocolServer {
|
|
|
371
373
|
const { name, arguments: args = {} } = params;
|
|
372
374
|
const tool = this.tools.get(name);
|
|
373
375
|
if (!tool) {
|
|
374
|
-
throw {
|
|
375
|
-
code: JSON_RPC_ERRORS.METHOD_NOT_FOUND,
|
|
376
|
-
message: `Unknown tool: ${name}`,
|
|
377
|
-
};
|
|
376
|
+
throw new McpError(JSON_RPC_ERRORS.METHOD_NOT_FOUND, `Unknown tool: ${name}`);
|
|
378
377
|
}
|
|
379
378
|
// ADR-039: Track tool invocation with performance monitoring
|
|
380
379
|
const startTime = performance.now();
|
|
@@ -43,6 +43,26 @@ export declare const JSON_RPC_ERRORS: {
|
|
|
43
43
|
readonly INTERNAL_ERROR: -32603;
|
|
44
44
|
readonly SERVER_ERROR: -32000;
|
|
45
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Error subclass that carries a JSON-RPC error `code` so it can be surfaced as a
|
|
48
|
+
* proper JSON-RPC error response (instead of being flattened to "[object Object]").
|
|
49
|
+
* Mirrors the OAuthProviderError pattern used in the security layer.
|
|
50
|
+
*/
|
|
51
|
+
export declare class McpError extends Error {
|
|
52
|
+
readonly code: number;
|
|
53
|
+
readonly data?: unknown | undefined;
|
|
54
|
+
constructor(code: number, message: string, data?: unknown | undefined);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Type guard for any thrown value that carries a JSON-RPC `code` + `message`.
|
|
58
|
+
* Accepts both the McpError subclass and legacy plain `{ code, message }` objects
|
|
59
|
+
* so existing throw sites continue to map to the right JSON-RPC error code.
|
|
60
|
+
*/
|
|
61
|
+
export declare function isJsonRpcCodedError(err: unknown): err is {
|
|
62
|
+
code: number;
|
|
63
|
+
message: string;
|
|
64
|
+
data?: unknown;
|
|
65
|
+
};
|
|
46
66
|
export declare class StdioTransport {
|
|
47
67
|
private readonly inputStream;
|
|
48
68
|
private readonly outputStream;
|
|
@@ -16,6 +16,32 @@ export const JSON_RPC_ERRORS = {
|
|
|
16
16
|
INTERNAL_ERROR: -32603,
|
|
17
17
|
SERVER_ERROR: -32000,
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Error subclass that carries a JSON-RPC error `code` so it can be surfaced as a
|
|
21
|
+
* proper JSON-RPC error response (instead of being flattened to "[object Object]").
|
|
22
|
+
* Mirrors the OAuthProviderError pattern used in the security layer.
|
|
23
|
+
*/
|
|
24
|
+
export class McpError extends Error {
|
|
25
|
+
code;
|
|
26
|
+
data;
|
|
27
|
+
constructor(code, message, data) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.code = code;
|
|
30
|
+
this.data = data;
|
|
31
|
+
this.name = 'McpError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Type guard for any thrown value that carries a JSON-RPC `code` + `message`.
|
|
36
|
+
* Accepts both the McpError subclass and legacy plain `{ code, message }` objects
|
|
37
|
+
* so existing throw sites continue to map to the right JSON-RPC error code.
|
|
38
|
+
*/
|
|
39
|
+
export function isJsonRpcCodedError(err) {
|
|
40
|
+
return (typeof err === 'object' &&
|
|
41
|
+
err !== null &&
|
|
42
|
+
typeof err.code === 'number' &&
|
|
43
|
+
typeof err.message === 'string');
|
|
44
|
+
}
|
|
19
45
|
// ============================================================================
|
|
20
46
|
// Stdio Transport Implementation
|
|
21
47
|
// ============================================================================
|
|
@@ -205,8 +231,15 @@ export class StdioTransport {
|
|
|
205
231
|
});
|
|
206
232
|
}
|
|
207
233
|
catch (err) {
|
|
208
|
-
|
|
209
|
-
|
|
234
|
+
// Honor a JSON-RPC `code` carried by the thrown value (McpError or a legacy
|
|
235
|
+
// plain `{ code, message }` object); otherwise fall back to INTERNAL_ERROR.
|
|
236
|
+
if (isJsonRpcCodedError(err)) {
|
|
237
|
+
await this.sendError(request.id, err.code, err.message, err.data);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
const error = err;
|
|
241
|
+
await this.sendError(request.id, JSON_RPC_ERRORS.INTERNAL_ERROR, error.message || 'Internal error');
|
|
242
|
+
}
|
|
210
243
|
}
|
|
211
244
|
}
|
|
212
245
|
async handleNotification(notification) {
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RaBitQ-style 1-bit sign signatures for fast vector retrieval.
|
|
3
|
+
*
|
|
4
|
+
* Ports ruflo's perf-M4 optimization: sign-random-projection + Hamming popcount
|
|
5
|
+
* as a cheap prefilter ahead of exact cosine reranking.
|
|
6
|
+
*
|
|
7
|
+
* ## Why this works
|
|
8
|
+
*
|
|
9
|
+
* For unit-normalized embeddings, the sign of each coordinate is a valid
|
|
10
|
+
* Locality-Sensitive Hash (LSH) for cosine similarity: the probability that two
|
|
11
|
+
* vectors agree on the sign of a random projection is `1 - theta/pi`, where
|
|
12
|
+
* `theta` is the angle between them (Charikar 2002, "SimHash"). The AQE
|
|
13
|
+
* canonical embedding dimension is 384 (patterns.rvf dim=384); the coordinate
|
|
14
|
+
* basis itself acts as the random projection family, so `bit_i = (vec[i] >= 0)`
|
|
15
|
+
* yields a Hamming distance that is monotonically related to cosine angle.
|
|
16
|
+
*
|
|
17
|
+
* We therefore use Hamming distance over packed 1-bit signatures as a *cheap*
|
|
18
|
+
* ranking proxy to shrink the candidate pool, then run *exact* cosine on the
|
|
19
|
+
* survivors. With a large enough rerank pool the final top-k is identical to a
|
|
20
|
+
* full exact scan — only the work is reduced.
|
|
21
|
+
*
|
|
22
|
+
* ## Memory
|
|
23
|
+
*
|
|
24
|
+
* A 384-dim Float32 vector costs 1536 bytes. Its sign signature costs 48 bytes
|
|
25
|
+
* (12 × uint32). That is a 32× index-memory reduction for the prefilter stage.
|
|
26
|
+
*
|
|
27
|
+
* Self-contained: no I/O, no side effects, pure functions + one ranking helper.
|
|
28
|
+
*
|
|
29
|
+
* @module shared/utils/rabitq
|
|
30
|
+
*/
|
|
31
|
+
/** AQE canonical embedding dimension (patterns.rvf dim=384). */
|
|
32
|
+
export declare const SIGNATURE_DIM = 384;
|
|
33
|
+
/**
|
|
34
|
+
* Bytes per signature for the canonical 384-dim embedding:
|
|
35
|
+
* ceil(384 / 32) = 12 words × 4 bytes = 48 bytes.
|
|
36
|
+
* (vs 384 × 4 = 1536 bytes for the raw Float32 vector → 32× reduction.)
|
|
37
|
+
*/
|
|
38
|
+
export declare const SIGNATURE_BYTES: number;
|
|
39
|
+
/**
|
|
40
|
+
* Build a 1-bit sign signature from a vector.
|
|
41
|
+
*
|
|
42
|
+
* `bit_i = (vec[i] >= 0)`. Bits are packed LSB-first into Uint32 words:
|
|
43
|
+
* coordinate `i` lives in word `i >> 5` at bit `i & 31`.
|
|
44
|
+
*
|
|
45
|
+
* For a 384-dim input this returns 12 words (48 bytes). Inputs of other
|
|
46
|
+
* dimensions are supported (signature length = ceil(dim / 32) words).
|
|
47
|
+
*
|
|
48
|
+
* @param vec Embedding vector (assumed unit-normalized for the LSH guarantee,
|
|
49
|
+
* but the function works on any real vector).
|
|
50
|
+
* @returns Packed sign bits as a Uint32Array.
|
|
51
|
+
*/
|
|
52
|
+
export declare function signSignature(vec: number[] | Float32Array): Uint32Array;
|
|
53
|
+
/**
|
|
54
|
+
* Hamming distance between two packed signatures: popcount(a XOR b) summed
|
|
55
|
+
* over all words.
|
|
56
|
+
*
|
|
57
|
+
* @throws If the two signatures have different word lengths.
|
|
58
|
+
*/
|
|
59
|
+
export declare function hammingDistance(a: Uint32Array, b: Uint32Array): number;
|
|
60
|
+
/**
|
|
61
|
+
* Hamming similarity in [0, 1]: `1 - hammingDistance / bits`.
|
|
62
|
+
*
|
|
63
|
+
* This is a monotonic proxy for cosine similarity (higher = closer). `bits`
|
|
64
|
+
* should be the true embedding dimension (e.g. 384), not `words × 32`, so that
|
|
65
|
+
* trailing padding bits — which are always 0 in both signatures and never
|
|
66
|
+
* contribute to the distance — don't deflate the normalization.
|
|
67
|
+
*/
|
|
68
|
+
export declare function hammingSimilarity(a: Uint32Array, b: Uint32Array, bits: number): number;
|
|
69
|
+
/** A retrieval candidate. `signature` is optional and lazily built if absent. */
|
|
70
|
+
export interface RaBitQCandidate {
|
|
71
|
+
id: string;
|
|
72
|
+
vector: number[] | Float32Array;
|
|
73
|
+
/** Precomputed sign signature; built on demand from `vector` if omitted. */
|
|
74
|
+
signature?: Uint32Array;
|
|
75
|
+
}
|
|
76
|
+
/** A scored result. `score` is the exact cosine similarity (or Hamming proxy). */
|
|
77
|
+
export interface RaBitQResult {
|
|
78
|
+
id: string;
|
|
79
|
+
score: number;
|
|
80
|
+
}
|
|
81
|
+
/** Tuning knobs for {@link topKBySignature}. */
|
|
82
|
+
export interface TopKOptions {
|
|
83
|
+
/**
|
|
84
|
+
* Below this candidate count, skip RaBitQ entirely and do an exact cosine
|
|
85
|
+
* top-k. RaBitQ's signature-build + Hamming-scan overhead is not worth it for
|
|
86
|
+
* small N. Default 100 (matches ruflo's gate).
|
|
87
|
+
*/
|
|
88
|
+
gateN?: number;
|
|
89
|
+
/**
|
|
90
|
+
* How many Hamming-ranked candidates to feed into the exact rerank.
|
|
91
|
+
*
|
|
92
|
+
* Larger pool → higher recall, more exact-cosine work. **Default is
|
|
93
|
+
* recall-aware**: `max(4 × k, ceil(0.4 × N))`.
|
|
94
|
+
*
|
|
95
|
+
* IMPORTANT — empirically measured tradeoff (384-dim, see
|
|
96
|
+
* scripts/benchmark-rabitq.ts): a 1-bit sign signature is a *coarse*
|
|
97
|
+
* quantization, so a small fixed pool (e.g. `4 × k = 40`) does NOT preserve
|
|
98
|
+
* recall@10 at scale — at N=1000 it captures only ~70-85% of the true top-10,
|
|
99
|
+
* and worse at N=5000. To keep recall@10 ≥ ~0.95 the pool must be a sizeable
|
|
100
|
+
* fraction of N (~40% empirically), which limits the achievable speedup.
|
|
101
|
+
* Callers that can tolerate lower recall may pass a smaller pool for more
|
|
102
|
+
* speed; callers that need exact output should not use RaBitQ at all.
|
|
103
|
+
*/
|
|
104
|
+
rerankPool?: number;
|
|
105
|
+
/**
|
|
106
|
+
* If true (default), run full cosineSimilarity on the Hamming-top pool and
|
|
107
|
+
* return the true top-k by cosine. If false, return the Hamming-only ranking
|
|
108
|
+
* (faster, approximate).
|
|
109
|
+
*/
|
|
110
|
+
exactRerank?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Retrieve the top-k candidates for a query using a RaBitQ Hamming prefilter
|
|
114
|
+
* followed by an exact cosine rerank.
|
|
115
|
+
*
|
|
116
|
+
* Behavior:
|
|
117
|
+
* - `candidates.length < gateN` → plain exact cosine top-k (gate; RaBitQ
|
|
118
|
+
* overhead not worth it for small N).
|
|
119
|
+
* - otherwise → build/reuse sign signatures, rank ALL candidates by Hamming
|
|
120
|
+
* distance (cheap), take the top `rerankPool`, then:
|
|
121
|
+
* - `exactRerank=true` (default): run FULL cosine on just that pool and
|
|
122
|
+
* return the true top-k. Output equals an exact scan whenever the true
|
|
123
|
+
* top-k all fall within the Hamming top-`rerankPool` — recall is
|
|
124
|
+
* preserved by the rerank, only speed changes.
|
|
125
|
+
* - `exactRerank=false`: return the Hamming-only top-k (approximate).
|
|
126
|
+
*
|
|
127
|
+
* @param query Query vector (same dimension as candidate vectors).
|
|
128
|
+
* @param candidates Candidate set.
|
|
129
|
+
* @param k Number of results to return.
|
|
130
|
+
* @param opts Tuning knobs (see {@link TopKOptions}).
|
|
131
|
+
*/
|
|
132
|
+
export declare function topKBySignature(query: number[] | Float32Array, candidates: RaBitQCandidate[], k: number, opts?: TopKOptions): RaBitQResult[];
|
|
133
|
+
//# sourceMappingURL=rabitq.d.ts.map
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RaBitQ-style 1-bit sign signatures for fast vector retrieval.
|
|
3
|
+
*
|
|
4
|
+
* Ports ruflo's perf-M4 optimization: sign-random-projection + Hamming popcount
|
|
5
|
+
* as a cheap prefilter ahead of exact cosine reranking.
|
|
6
|
+
*
|
|
7
|
+
* ## Why this works
|
|
8
|
+
*
|
|
9
|
+
* For unit-normalized embeddings, the sign of each coordinate is a valid
|
|
10
|
+
* Locality-Sensitive Hash (LSH) for cosine similarity: the probability that two
|
|
11
|
+
* vectors agree on the sign of a random projection is `1 - theta/pi`, where
|
|
12
|
+
* `theta` is the angle between them (Charikar 2002, "SimHash"). The AQE
|
|
13
|
+
* canonical embedding dimension is 384 (patterns.rvf dim=384); the coordinate
|
|
14
|
+
* basis itself acts as the random projection family, so `bit_i = (vec[i] >= 0)`
|
|
15
|
+
* yields a Hamming distance that is monotonically related to cosine angle.
|
|
16
|
+
*
|
|
17
|
+
* We therefore use Hamming distance over packed 1-bit signatures as a *cheap*
|
|
18
|
+
* ranking proxy to shrink the candidate pool, then run *exact* cosine on the
|
|
19
|
+
* survivors. With a large enough rerank pool the final top-k is identical to a
|
|
20
|
+
* full exact scan — only the work is reduced.
|
|
21
|
+
*
|
|
22
|
+
* ## Memory
|
|
23
|
+
*
|
|
24
|
+
* A 384-dim Float32 vector costs 1536 bytes. Its sign signature costs 48 bytes
|
|
25
|
+
* (12 × uint32). That is a 32× index-memory reduction for the prefilter stage.
|
|
26
|
+
*
|
|
27
|
+
* Self-contained: no I/O, no side effects, pure functions + one ranking helper.
|
|
28
|
+
*
|
|
29
|
+
* @module shared/utils/rabitq
|
|
30
|
+
*/
|
|
31
|
+
import { cosineSimilarity } from './vector-math.js';
|
|
32
|
+
// ============================================================================
|
|
33
|
+
// Constants
|
|
34
|
+
// ============================================================================
|
|
35
|
+
/** Bits packed per Uint32 word. */
|
|
36
|
+
const BITS_PER_WORD = 32;
|
|
37
|
+
/** AQE canonical embedding dimension (patterns.rvf dim=384). */
|
|
38
|
+
export const SIGNATURE_DIM = 384;
|
|
39
|
+
/**
|
|
40
|
+
* Bytes per signature for the canonical 384-dim embedding:
|
|
41
|
+
* ceil(384 / 32) = 12 words × 4 bytes = 48 bytes.
|
|
42
|
+
* (vs 384 × 4 = 1536 bytes for the raw Float32 vector → 32× reduction.)
|
|
43
|
+
*/
|
|
44
|
+
export const SIGNATURE_BYTES = Math.ceil(SIGNATURE_DIM / BITS_PER_WORD) * 4; // 48
|
|
45
|
+
// ============================================================================
|
|
46
|
+
// Popcount (Brian-Kernighan)
|
|
47
|
+
// ============================================================================
|
|
48
|
+
/**
|
|
49
|
+
* Population count (number of set bits) of a 32-bit word.
|
|
50
|
+
*
|
|
51
|
+
* Uses the SWAR (SIMD-within-a-register) bit-twiddle which is branchless and
|
|
52
|
+
* faster than a per-byte table lookup for 32-bit words. The hdc-fingerprint
|
|
53
|
+
* module uses a 256-entry per-byte table + Brian-Kernighan for its Uint8Array
|
|
54
|
+
* vectors; here we operate on Uint32 words, so the SWAR variant is the natural
|
|
55
|
+
* fit and avoids importing/splitting words into bytes.
|
|
56
|
+
*/
|
|
57
|
+
function popcount32(n) {
|
|
58
|
+
// Force unsigned 32-bit semantics.
|
|
59
|
+
n = n >>> 0;
|
|
60
|
+
n = n - ((n >>> 1) & 0x55555555);
|
|
61
|
+
n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);
|
|
62
|
+
n = (n + (n >>> 4)) & 0x0f0f0f0f;
|
|
63
|
+
return (Math.imul(n, 0x01010101) >>> 24) & 0xff;
|
|
64
|
+
}
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// Signature construction
|
|
67
|
+
// ============================================================================
|
|
68
|
+
/**
|
|
69
|
+
* Build a 1-bit sign signature from a vector.
|
|
70
|
+
*
|
|
71
|
+
* `bit_i = (vec[i] >= 0)`. Bits are packed LSB-first into Uint32 words:
|
|
72
|
+
* coordinate `i` lives in word `i >> 5` at bit `i & 31`.
|
|
73
|
+
*
|
|
74
|
+
* For a 384-dim input this returns 12 words (48 bytes). Inputs of other
|
|
75
|
+
* dimensions are supported (signature length = ceil(dim / 32) words).
|
|
76
|
+
*
|
|
77
|
+
* @param vec Embedding vector (assumed unit-normalized for the LSH guarantee,
|
|
78
|
+
* but the function works on any real vector).
|
|
79
|
+
* @returns Packed sign bits as a Uint32Array.
|
|
80
|
+
*/
|
|
81
|
+
export function signSignature(vec) {
|
|
82
|
+
const dim = vec.length;
|
|
83
|
+
const words = Math.ceil(dim / BITS_PER_WORD);
|
|
84
|
+
const sig = new Uint32Array(words);
|
|
85
|
+
for (let i = 0; i < dim; i++) {
|
|
86
|
+
if (vec[i] >= 0) {
|
|
87
|
+
sig[i >> 5] |= 1 << (i & 31);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return sig;
|
|
91
|
+
}
|
|
92
|
+
// ============================================================================
|
|
93
|
+
// Hamming distance / similarity
|
|
94
|
+
// ============================================================================
|
|
95
|
+
/**
|
|
96
|
+
* Hamming distance between two packed signatures: popcount(a XOR b) summed
|
|
97
|
+
* over all words.
|
|
98
|
+
*
|
|
99
|
+
* @throws If the two signatures have different word lengths.
|
|
100
|
+
*/
|
|
101
|
+
export function hammingDistance(a, b) {
|
|
102
|
+
if (a.length !== b.length) {
|
|
103
|
+
throw new Error(`Signature length mismatch: ${a.length} vs ${b.length} words`);
|
|
104
|
+
}
|
|
105
|
+
let dist = 0;
|
|
106
|
+
for (let i = 0; i < a.length; i++) {
|
|
107
|
+
dist += popcount32((a[i] ^ b[i]) >>> 0);
|
|
108
|
+
}
|
|
109
|
+
return dist;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Hamming similarity in [0, 1]: `1 - hammingDistance / bits`.
|
|
113
|
+
*
|
|
114
|
+
* This is a monotonic proxy for cosine similarity (higher = closer). `bits`
|
|
115
|
+
* should be the true embedding dimension (e.g. 384), not `words × 32`, so that
|
|
116
|
+
* trailing padding bits — which are always 0 in both signatures and never
|
|
117
|
+
* contribute to the distance — don't deflate the normalization.
|
|
118
|
+
*/
|
|
119
|
+
export function hammingSimilarity(a, b, bits) {
|
|
120
|
+
if (bits <= 0)
|
|
121
|
+
return 0;
|
|
122
|
+
return 1 - hammingDistance(a, b) / bits;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Exact cosine top-k over all candidates. Shared by the small-N gate and the
|
|
126
|
+
* rerank stage.
|
|
127
|
+
*/
|
|
128
|
+
function exactTopK(query, candidates, k) {
|
|
129
|
+
const scored = new Array(candidates.length);
|
|
130
|
+
for (let i = 0; i < candidates.length; i++) {
|
|
131
|
+
scored[i] = {
|
|
132
|
+
id: candidates[i].id,
|
|
133
|
+
score: cosineSimilarity(query, candidates[i].vector),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
scored.sort((a, b) => b.score - a.score);
|
|
137
|
+
return scored.slice(0, k);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Retrieve the top-k candidates for a query using a RaBitQ Hamming prefilter
|
|
141
|
+
* followed by an exact cosine rerank.
|
|
142
|
+
*
|
|
143
|
+
* Behavior:
|
|
144
|
+
* - `candidates.length < gateN` → plain exact cosine top-k (gate; RaBitQ
|
|
145
|
+
* overhead not worth it for small N).
|
|
146
|
+
* - otherwise → build/reuse sign signatures, rank ALL candidates by Hamming
|
|
147
|
+
* distance (cheap), take the top `rerankPool`, then:
|
|
148
|
+
* - `exactRerank=true` (default): run FULL cosine on just that pool and
|
|
149
|
+
* return the true top-k. Output equals an exact scan whenever the true
|
|
150
|
+
* top-k all fall within the Hamming top-`rerankPool` — recall is
|
|
151
|
+
* preserved by the rerank, only speed changes.
|
|
152
|
+
* - `exactRerank=false`: return the Hamming-only top-k (approximate).
|
|
153
|
+
*
|
|
154
|
+
* @param query Query vector (same dimension as candidate vectors).
|
|
155
|
+
* @param candidates Candidate set.
|
|
156
|
+
* @param k Number of results to return.
|
|
157
|
+
* @param opts Tuning knobs (see {@link TopKOptions}).
|
|
158
|
+
*/
|
|
159
|
+
export function topKBySignature(query, candidates, k, opts = {}) {
|
|
160
|
+
const gateN = opts.gateN ?? 100;
|
|
161
|
+
const exactRerank = opts.exactRerank ?? true;
|
|
162
|
+
const n = candidates.length;
|
|
163
|
+
if (n === 0 || k <= 0)
|
|
164
|
+
return [];
|
|
165
|
+
// Recall-aware default pool: a 1-bit signature in high dimensions is coarse,
|
|
166
|
+
// so the pool must scale with N to keep recall high (see rerankPool docs).
|
|
167
|
+
const rerankPool = opts.rerankPool ?? Math.max(4 * k, Math.ceil(0.4 * n));
|
|
168
|
+
// Small-N gate: exact cosine, skip signature machinery entirely.
|
|
169
|
+
if (n < gateN) {
|
|
170
|
+
return exactTopK(query, candidates, Math.min(k, n));
|
|
171
|
+
}
|
|
172
|
+
const bits = query.length;
|
|
173
|
+
const querySig = signSignature(query);
|
|
174
|
+
// Rank ALL candidates by Hamming distance (cheap popcount scan).
|
|
175
|
+
const hammingRanked = new Array(n);
|
|
176
|
+
for (let i = 0; i < n; i++) {
|
|
177
|
+
const cand = candidates[i];
|
|
178
|
+
const sig = cand.signature ?? signSignature(cand.vector);
|
|
179
|
+
hammingRanked[i] = { idx: i, dist: hammingDistance(querySig, sig) };
|
|
180
|
+
}
|
|
181
|
+
// Ascending distance = descending similarity.
|
|
182
|
+
hammingRanked.sort((a, b) => a.dist - b.dist);
|
|
183
|
+
const poolSize = Math.min(rerankPool, n);
|
|
184
|
+
if (!exactRerank) {
|
|
185
|
+
// Hamming-only ranking: return the top-k by Hamming proxy similarity.
|
|
186
|
+
const topK = Math.min(k, n);
|
|
187
|
+
const out = new Array(topK);
|
|
188
|
+
for (let i = 0; i < topK; i++) {
|
|
189
|
+
const { idx, dist } = hammingRanked[i];
|
|
190
|
+
out[i] = { id: candidates[idx].id, score: 1 - dist / bits };
|
|
191
|
+
}
|
|
192
|
+
return out;
|
|
193
|
+
}
|
|
194
|
+
// Exact rerank: full cosine over the Hamming-top pool, return true top-k.
|
|
195
|
+
const pool = new Array(poolSize);
|
|
196
|
+
for (let i = 0; i < poolSize; i++) {
|
|
197
|
+
pool[i] = candidates[hammingRanked[i].idx];
|
|
198
|
+
}
|
|
199
|
+
return exactTopK(query, pool, Math.min(k, poolSize));
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=rabitq.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.2",
|
|
4
4
|
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -68,7 +68,8 @@
|
|
|
68
68
|
"test:mcp:integration": "npm test -- --run tests/integration/mcp/",
|
|
69
69
|
"test:integration:fast": "NODE_OPTIONS='--max-old-space-size=2048 --expose-gc' vitest run tests/integration/mcp/fleet-init-wires-daemon.test.ts tests/integration/workers/workers-reach-domains.test.ts tests/integration/learning/coordinator-roundtrip.test.ts tests/integration/bridge/bridge-end-to-end.test.ts",
|
|
70
70
|
"test:integration": "NODE_OPTIONS='--max-old-space-size=4096 --expose-gc' vitest run tests/integration/ --exclude='**/browser/**' --exclude='**/browser-integration/**' --exclude='**/*.e2e.test.ts'",
|
|
71
|
-
"mcp:validate": "
|
|
71
|
+
"mcp:validate": "node scripts/smoke-mcp-protocol.mjs",
|
|
72
|
+
"mcp:parity": "node scripts/audit-mcp-tool-parity.mjs",
|
|
72
73
|
"mcp:report": "echo 'MCP Report: uses vitest for test reporting' && exit 0",
|
|
73
74
|
"test:code-intelligence": "npm test -- --run tests/unit/domains/code-intelligence/ tests/unit/coordination/mincut/",
|
|
74
75
|
"verify:counts": "node -e \"const fs=require('fs'),g=require('glob'),p=require('path');const src=g.globSync('src/**/*.ts',{ignore:'src/**/*.test.ts'});const tests=g.globSync('tests/**/*.test.ts');const agents=g.globSync('.claude/agents/v3/qe-*.md');const skills=g.globSync('.claude/skills/**/*.md');const ok=src.length>500&&tests.length>300;const r={status:ok?'pass':'fail',srcFiles:src.length,testFiles:tests.length,agents:agents.length,skills:skills.length};fs.mkdirSync('reports',{recursive:true});fs.writeFileSync(p.join('reports','verification-counts.json'),JSON.stringify(r,null,2));console.log('Counts:',JSON.stringify(r));if(!ok)process.exit(1)\"",
|
|
@@ -85,6 +86,10 @@
|
|
|
85
86
|
"performance:gate": "npx tsx src/performance/run-gates.ts",
|
|
86
87
|
"test:integration:browser": "VIBIUM_REAL_TESTS=true vitest run tests/integrations/vibium/vibium-real.test.ts",
|
|
87
88
|
"benchmark:token-reduction": "vitest bench tests/benchmarks/code-intelligence-token-reduction.bench.ts",
|
|
89
|
+
"benchmark:self-learning": "tsx scripts/benchmark-self-learning.ts",
|
|
90
|
+
"benchmark:rabitq": "tsx scripts/benchmark-rabitq.ts",
|
|
91
|
+
"plugin:smoke": "bash plugins/agentic-qe-fleet/scripts/smoke.sh",
|
|
92
|
+
"pretrain:history": "tsx scripts/pretrain-from-history.ts",
|
|
88
93
|
"dev": "node dist/cli/bundle.js",
|
|
89
94
|
"start": "node dist/cli/bundle.js",
|
|
90
95
|
"typecheck": "tsc --noEmit",
|
|
@@ -256,6 +261,7 @@
|
|
|
256
261
|
".claude/skills",
|
|
257
262
|
".claude/commands",
|
|
258
263
|
".claude/helpers",
|
|
264
|
+
".claude/hooks",
|
|
259
265
|
".opencode/agents",
|
|
260
266
|
".opencode/skills",
|
|
261
267
|
".opencode/tools",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-32R7EA7B.js";import"./chunk-GTRXZJNX.js";import"./chunk-BN7ERYXI.js";import"./chunk-QNW335PD.js";import"./chunk-2TDWCXZ6.js";import"./chunk-4AWJ5PE4.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-BECU52UY.js";import"./chunk-G3BQU3Q6.js";import"./chunk-6VQ5MFJ6.js";import"./chunk-TFNLXAK5.js";import"./chunk-ECPB7IAH.js";import"./chunk-LF7URN2X.js";import"./chunk-UDFLR7GR.js";import"./chunk-WS4XVJHI.js";import"./chunk-NRLT44YB.js";import"./chunk-YPOTBXPU.js";import"./chunk-AUVC3DDB.js";import"./chunk-NPSBMDVU.js";import"./chunk-F3OVFA6W.js";import"./chunk-PXFQSVA2.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-P7T5Y735.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-Y2DPXMOR.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j}from"./chunk-BF7MUYWC.js";import"./chunk-EIROAH6N.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{j as MCPToolBase,i as defaultToolLogger,h as getLLMRouter,d as getMemoryBackend,f as getSharedLLMRouter,b as getSharedMemoryBackend,a as registerRvfResetFn,g as resetSharedLLMRouter,c as resetSharedMemoryBackend,e as setSharedLLMRouter};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
|
|
2
|
-
import{a}from"./chunk-6D57DWQ6.js";import"./chunk-BF7MUYWC.js";import"./chunk-EIROAH6N.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{a as BrowserWorkflowTool};
|