agentic-qe 3.9.20 → 3.9.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +24 -0
- package/README.md +39 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-WOEZOCHJ.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-T5JB3MOF.js → agent-booster-wasm-55SQPP6T.js} +2 -2
- package/dist/cli/chunks/{agent-handler-EASMQSQO.js → agent-handler-Q2UXL73Y.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-7GWN2KCG.js → agent-memory-branch-56GIYNGH.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-5AHKLABJ.js +2 -0
- package/dist/cli/chunks/{audit-VHV4GXPW.js → audit-2JQ3URVN.js} +2 -2
- package/dist/cli/chunks/base-RNCRGTZJ.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-GNK7MDXZ.js → better-sqlite3-XGA7Z5YL.js} +2 -2
- package/dist/cli/chunks/{brain-handler-ALXZKWO4.js → brain-handler-TOOZFEK5.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-JNYLOLMM.js → branch-enumerator-2BLPN73D.js} +2 -2
- package/dist/cli/chunks/{browser-FXRW6LID.js → browser-FSVNN36N.js} +2 -2
- package/dist/cli/chunks/browser-workflow-MXHA63OC.js +2 -0
- package/dist/cli/chunks/{chunk-X3NADG4S.js → chunk-2AEWOQWU.js} +2 -2
- package/dist/cli/chunks/{chunk-T3TEQH2H.js → chunk-34BTSZ5D.js} +1 -1
- package/dist/cli/chunks/{chunk-4IUNBRKQ.js → chunk-3Y7OZ2PC.js} +2 -2
- package/dist/cli/chunks/{chunk-EJQRDMON.js → chunk-44BAZASI.js} +1 -1
- package/dist/cli/chunks/{chunk-ICLWWAGZ.js → chunk-4O7YJIOS.js} +2 -2
- package/dist/cli/chunks/{chunk-IHBRFVGA.js → chunk-4XZPDEK5.js} +1 -1
- package/dist/cli/chunks/{chunk-Z5MG54R4.js → chunk-4Z4C7BXV.js} +1 -1
- package/dist/cli/chunks/{chunk-H647PYXW.js → chunk-4ZUXTOUG.js} +1 -1
- package/dist/cli/chunks/{chunk-P2ABIGYB.js → chunk-56DGV2Q3.js} +1 -1
- package/dist/cli/chunks/{chunk-AFMLL2G3.js → chunk-5EYQP3V3.js} +2 -2
- package/dist/cli/chunks/{chunk-CEVIRL2S.js → chunk-5FNEOJSD.js} +2 -2
- package/dist/cli/chunks/{chunk-DERQRIAR.js → chunk-5PZG4WUA.js} +3 -3
- package/dist/cli/chunks/{chunk-J7SDO52P.js → chunk-63PHZGO2.js} +2 -2
- package/dist/cli/chunks/{chunk-BKGCMWFL.js → chunk-65U55JIH.js} +3 -3
- package/dist/cli/chunks/{chunk-F3PX6EJX.js → chunk-6MGACOLN.js} +1 -1
- package/dist/cli/chunks/{chunk-LSYMQG52.js → chunk-6OYRNNP2.js} +1 -1
- package/dist/cli/chunks/{chunk-7OGFOHG5.js → chunk-7P4IZQVQ.js} +2 -2
- package/dist/cli/chunks/{chunk-WF6MKBRI.js → chunk-ACOEV3YB.js} +2 -2
- package/dist/cli/chunks/{chunk-7Q7SCQMQ.js → chunk-ADC73GLJ.js} +2 -2
- package/dist/cli/chunks/{chunk-3CLKKAGH.js → chunk-AEQNCDYD.js} +2 -2
- package/dist/cli/chunks/chunk-AMOCYHP3.js +2 -0
- package/dist/cli/chunks/{chunk-QLZPCEVI.js → chunk-AT25VXEO.js} +1 -1
- package/dist/cli/chunks/{chunk-BXGAXGME.js → chunk-C4CZXAOE.js} +2 -2
- package/dist/cli/chunks/{chunk-RYBFRFKY.js → chunk-CJKR47YY.js} +1 -1
- package/dist/cli/chunks/{chunk-3GPNZPM4.js → chunk-D24HN6BG.js} +1 -1
- package/dist/cli/chunks/{chunk-5ILP2ZDZ.js → chunk-DBW745QA.js} +2 -2
- package/dist/cli/chunks/{chunk-7Y4QQ6JL.js → chunk-DQI5ZR34.js} +1 -1
- package/dist/cli/chunks/{chunk-NWYYWFUO.js → chunk-E2XIPBJ7.js} +1 -1
- package/dist/cli/chunks/{chunk-2J5OO63R.js → chunk-E55MYZGP.js} +2 -2
- package/dist/cli/chunks/{chunk-ZCH5MNST.js → chunk-E5TGH4V3.js} +2 -2
- package/dist/cli/chunks/{chunk-QAZYSC3T.js → chunk-E7J32PW2.js} +2 -2
- package/dist/cli/chunks/{chunk-KMDZOVCF.js → chunk-ETEV7IZI.js} +1 -1
- package/dist/cli/chunks/{chunk-DSPH4GI3.js → chunk-EVWNZEYV.js} +1 -1
- package/dist/cli/chunks/{chunk-3HQ4VKK6.js → chunk-F4VJ4PPI.js} +47 -47
- package/dist/cli/chunks/{chunk-G7HYTJDG.js → chunk-FBCLQTXO.js} +2 -2
- package/dist/cli/chunks/{chunk-3BFNYFXV.js → chunk-FZ2SYLSK.js} +1 -1
- package/dist/cli/chunks/{chunk-U7RTH6F4.js → chunk-G276EI3G.js} +2 -2
- package/dist/cli/chunks/{chunk-7R45TEY6.js → chunk-G7ZYDJZ3.js} +2 -2
- package/dist/cli/chunks/{chunk-NGWGOMOP.js → chunk-GB6ATLR3.js} +2 -2
- package/dist/cli/chunks/{chunk-NQIOXSHW.js → chunk-GDZ6XQRI.js} +1 -1
- package/dist/cli/chunks/{chunk-4G6OH5LQ.js → chunk-GJGFPXWG.js} +2 -2
- package/dist/cli/chunks/{chunk-K2D5L7YV.js → chunk-GLQ6LLKC.js} +1 -1
- package/dist/cli/chunks/{chunk-XJRXB5Z5.js → chunk-GR4RXQXV.js} +2 -2
- package/dist/cli/chunks/{chunk-RXXKU3VP.js → chunk-HC4VOQZJ.js} +2 -2
- package/dist/cli/chunks/{chunk-O3PLWCCD.js → chunk-HIEP3L7H.js} +2 -2
- package/dist/cli/chunks/{chunk-UAE37LHP.js → chunk-HJCJWPN5.js} +2 -2
- package/dist/cli/chunks/{chunk-QKOPJ5CZ.js → chunk-HMMJ6ZI6.js} +2 -2
- package/dist/cli/chunks/{chunk-SMQ5OARZ.js → chunk-HRHKLRBB.js} +1 -1
- package/dist/cli/chunks/{chunk-MXAEZHW6.js → chunk-I3HLZASP.js} +2 -2
- package/dist/cli/chunks/{chunk-GJACTPDK.js → chunk-ICPQR533.js} +2 -2
- package/dist/cli/chunks/{chunk-LJW7BTMK.js → chunk-IM7X6BDZ.js} +2 -2
- package/dist/cli/chunks/{chunk-UHWRRJBH.js → chunk-IS6IES7Q.js} +1 -1
- package/dist/cli/chunks/{chunk-QMGXALN3.js → chunk-ISNDQOXC.js} +2 -2
- package/dist/cli/chunks/{chunk-UABC2Z3S.js → chunk-J3GG3Q4X.js} +2 -2
- package/dist/cli/chunks/{chunk-T5MMSSSF.js → chunk-KDOA7YHW.js} +2 -2
- package/dist/cli/chunks/{chunk-4HD7YRW7.js → chunk-KENZAFI2.js} +2 -2
- package/dist/cli/chunks/{chunk-MXDGMXJA.js → chunk-KID7PTBZ.js} +2 -2
- package/dist/cli/chunks/{chunk-Y6U4CCPP.js → chunk-KRXJ7LFP.js} +1 -1
- package/dist/cli/chunks/{chunk-LGSPAQSP.js → chunk-KWPPF7O4.js} +2 -2
- package/dist/cli/chunks/{chunk-FUTRX4ZT.js → chunk-KYPN6G7T.js} +2 -2
- package/dist/cli/chunks/{chunk-BJF77EFA.js → chunk-LHXIAPKR.js} +2 -2
- package/dist/cli/chunks/chunk-LP52AQE2.js +2 -0
- package/dist/cli/chunks/{chunk-6R7SJ5FS.js → chunk-LYZUB3NP.js} +1 -1
- package/dist/cli/chunks/{chunk-SL7WTN5Z.js → chunk-MJGMH7TW.js} +2 -2
- package/dist/cli/chunks/{chunk-MIST354H.js → chunk-MYZ43VKA.js} +2 -2
- package/dist/cli/chunks/{chunk-DODH6CEQ.js → chunk-ND2TFQF5.js} +1 -1
- package/dist/cli/chunks/{chunk-CQSME43Z.js → chunk-NGT3VL66.js} +24 -16
- package/dist/cli/chunks/{chunk-AVVRA6FG.js → chunk-NJICCYCB.js} +2 -2
- package/dist/cli/chunks/{chunk-S6SRHNJV.js → chunk-NKOGDRZE.js} +2 -2
- package/dist/cli/chunks/{chunk-Z65DB2Z7.js → chunk-NS2ZWXUK.js} +3 -3
- package/dist/cli/chunks/{chunk-4SBMTHTA.js → chunk-NV6AUEIH.js} +2 -2
- package/dist/cli/chunks/{chunk-3ZHUKLU7.js → chunk-OEB3V633.js} +2 -2
- package/dist/cli/chunks/chunk-OHR5ILR3.js +2 -0
- package/dist/cli/chunks/{chunk-TV5OVFKK.js → chunk-OK5JHHXK.js} +1 -1
- package/dist/cli/chunks/{chunk-OD5SVOVP.js → chunk-OXXCWRFU.js} +1 -1
- package/dist/cli/chunks/{chunk-V5UB75TQ.js → chunk-P4Q5TMDH.js} +2 -2
- package/dist/cli/chunks/{chunk-FPBNTPCM.js → chunk-PAXSPZ3F.js} +2 -2
- package/dist/cli/chunks/{chunk-JCPXG42O.js → chunk-PEOTZFNZ.js} +2 -2
- package/dist/cli/chunks/{chunk-7WXYQDML.js → chunk-PGHTRQK6.js} +2 -2
- package/dist/cli/chunks/{chunk-5GA4BUQU.js → chunk-QERANESS.js} +2 -2
- package/dist/cli/chunks/{chunk-QQMHE4RT.js → chunk-QPSPIESU.js} +2 -2
- package/dist/cli/chunks/{chunk-YPUDYGIU.js → chunk-QREO5LNR.js} +1 -1
- package/dist/cli/chunks/{chunk-GXO42P3X.js → chunk-QSLXOYPR.js} +6 -6
- package/dist/cli/chunks/{chunk-EYSGJZ7Y.js → chunk-QU3VFWZZ.js} +13 -13
- package/dist/cli/chunks/{chunk-VQI6JQQP.js → chunk-RDUIN7LO.js} +1 -1
- package/dist/cli/chunks/{chunk-FAQPPMEC.js → chunk-RHAUASC6.js} +2 -2
- package/dist/cli/chunks/{chunk-KNOZWD6E.js → chunk-RIVX6YLS.js} +2 -2
- package/dist/cli/chunks/{chunk-HXQ7GAUV.js → chunk-ROC2SSV3.js} +3 -3
- package/dist/cli/chunks/{chunk-BIODM56C.js → chunk-S3TU7B7D.js} +2 -2
- package/dist/cli/chunks/{chunk-7J34I3CI.js → chunk-S5RNBBJ6.js} +2 -2
- package/dist/cli/chunks/{chunk-TG6P44UT.js → chunk-S6FFUCVZ.js} +4 -4
- package/dist/cli/chunks/{chunk-WALYYW6B.js → chunk-SIW4N4NE.js} +4 -4
- package/dist/cli/chunks/{chunk-DJCLA5AG.js → chunk-SMAC5IX4.js} +2 -2
- package/dist/cli/chunks/{chunk-NN6VRHNL.js → chunk-SMBQERK7.js} +2 -2
- package/dist/cli/chunks/{chunk-UNAVOVD7.js → chunk-T5Z5LL5Y.js} +3 -3
- package/dist/cli/chunks/{chunk-SGGY4QYU.js → chunk-TCNJ5NGT.js} +2 -2
- package/dist/cli/chunks/{chunk-QMUZMIV7.js → chunk-TFAS5UND.js} +3 -3
- package/dist/cli/chunks/{chunk-SH2UPGO7.js → chunk-TMKJXKY2.js} +2 -2
- package/dist/cli/chunks/{chunk-HCFRGEMK.js → chunk-TOE6DKE4.js} +1 -1
- package/dist/cli/chunks/{chunk-RVWGW7TI.js → chunk-UOLIGPDW.js} +2 -2
- package/dist/cli/chunks/{chunk-FHDYN73D.js → chunk-V5AVC4D4.js} +2 -2
- package/dist/cli/chunks/{chunk-LATJ2LKJ.js → chunk-V6GJ3EMZ.js} +1 -1
- package/dist/cli/chunks/{chunk-CPVGZYEP.js → chunk-VGAG5TG7.js} +1 -1
- package/dist/cli/chunks/{chunk-Q4OITFDX.js → chunk-VQLHHNOH.js} +2 -2
- package/dist/cli/chunks/{chunk-QCLEA3CM.js → chunk-VQXHHEPD.js} +2 -2
- package/dist/cli/chunks/{chunk-SYXPLFK7.js → chunk-WI5HBS3C.js} +2 -2
- package/dist/cli/chunks/{chunk-YPVPWDKL.js → chunk-WL5IRCU4.js} +2 -2
- package/dist/cli/chunks/{chunk-7I6ROJGF.js → chunk-WY3H7VHF.js} +2 -2
- package/dist/cli/chunks/{chunk-6LKEFWKI.js → chunk-XEMVYJ2Z.js} +3 -3
- package/dist/cli/chunks/{chunk-MXHJUAM7.js → chunk-Y36AJ462.js} +2 -2
- package/dist/cli/chunks/{chunk-RCPFDAOC.js → chunk-YH7BAX7S.js} +1 -1
- package/dist/cli/chunks/{chunk-4PNLBMKY.js → chunk-YS5WV3CJ.js} +1 -1
- package/dist/cli/chunks/{chunk-5LM2W3NE.js → chunk-YVG4D6P3.js} +1 -1
- package/dist/cli/chunks/{chunk-ZBBHJGPI.js → chunk-YVPPR33H.js} +2 -2
- package/dist/cli/chunks/{chunk-HW47UOFK.js → chunk-ZUTYZIWQ.js} +2 -2
- package/dist/cli/chunks/{ci-TE3744OR.js → ci-GU2HBK5E.js} +2 -2
- package/dist/cli/chunks/{ci-output-GSNS52SY.js → ci-output-FGZTTY3R.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-7ROW7QBW.js → circuit-breaker-6UNLOLMW.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-Z5GPMILN.js → claude-flow-setup-SCOCIDBC.js} +2 -2
- package/dist/cli/chunks/client-XU3ZUFMH.js +2 -0
- package/dist/cli/chunks/{cline-installer-6D4SAAM4.js → cline-installer-G6PQERGI.js} +2 -2
- package/dist/cli/chunks/{code-JZKH7FRS.js → code-RNKTYBI4.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-JJFTZLOK.js → code-index-extractor-A6KAUQOU.js} +2 -2
- package/dist/cli/chunks/{codex-installer-O5KIPN3Z.js → codex-installer-ABWDMKEX.js} +2 -2
- package/dist/cli/chunks/{completions-QNMAUYKK.js → completions-TB4E6O46.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-JYJ7TLYE.js → complexity-analyzer-XS37O7OR.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-JYMVLG6S.js → continuedev-installer-WDY6O2SR.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-SSV6GF5G.js → copilot-installer-SDJ3GYLU.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-2VZ3IMJZ.js → cost-tracker-MWEXRK7F.js} +2 -2
- package/dist/cli/chunks/{coverage-KW4V5D5L.js → coverage-Y3KDB56G.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-KKYQWQE7.js +2 -0
- package/dist/cli/chunks/{cursor-installer-QVGDAHOI.js → cursor-installer-4U7XENLX.js} +2 -2
- package/dist/cli/chunks/{daemon-JKMFDYK2.js → daemon-D6R3BPBJ.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-WKRV7DFE.js → dag-attention-scheduler-EMVUX6ES.js} +2 -2
- package/dist/cli/chunks/{detect-ROCCKX63.js → detect-QIJPCTZO.js} +2 -2
- package/dist/cli/chunks/{dist-node-QGU7TJTW.js → dist-node-4ZYBZKOB.js} +2 -2
- package/dist/cli/chunks/{domain-handler-3UJHQPOR.js → domain-handler-X6CTXJQF.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-R47ISVU5.js → domain-transfer-HK4ER37F.js} +2 -2
- package/dist/cli/chunks/dream-FBYASIID.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-ZVK7WSY2.js → embed-and-insert-pattern-XKTD5DQ3.js} +2 -2
- package/dist/cli/chunks/{eval-WNZWXFOW.js → eval-WEEB3CHY.js} +2 -2
- package/dist/cli/chunks/{fast-paths-QPF47RZJ.js → fast-paths-M2ENEKQX.js} +2 -2
- package/dist/cli/chunks/{feature-flags-PGIG2W3G.js → feature-flags-3WIZC67K.js} +2 -2
- package/dist/cli/chunks/{feature-flags-2MAHHM66.js → feature-flags-CZQXGFGX.js} +2 -2
- package/dist/cli/chunks/{file-discovery-JL6FCXRB.js → file-discovery-ERTPM3C4.js} +2 -2
- package/dist/cli/chunks/{fleet-LMBZU2GU.js → fleet-WBEPTBQR.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-GFNFVEER.js → gnn-wrapper-GVRS33BK.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-YN7ES3AX.js → heartbeat-handler-JQ6NSC6T.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-SII2KJSQ.js → heartbeat-scheduler-7XHIE6IV.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-L7QOLNKP.js +2 -0
- package/dist/cli/chunks/hnsw-index-O2YO7WVU.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-CPMBYE7C.js → hnsw-legacy-bridge-TYO6GZ6Z.js} +2 -2
- package/dist/cli/chunks/hnswlib-node-UHEP6UZZ.js +2 -0
- package/dist/cli/chunks/{hooks-EYSB7XDW.js → hooks-2GU7LGNL.js} +10 -10
- package/dist/cli/chunks/{hybrid-router-BR7O6WT2.js → hybrid-router-Z5V4E5SJ.js} +2 -2
- package/dist/cli/chunks/{hypergraph-engine-HAKGWDYX.js → hypergraph-engine-F435AM7S.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-UCI3LXUF.js → hypergraph-handler-DQMYDUQY.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-37TDXM6V.js +2 -0
- package/dist/cli/chunks/{init-handler-7RYGU3W5.js → init-handler-Y4NPRT2W.js} +6 -6
- package/dist/cli/chunks/init-wizard-ONNAHU4H.js +2 -0
- package/dist/cli/chunks/kernel-3S7RJ7PT.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-W6ITMEFA.js → kilocode-installer-EUTWNH4I.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-2BO34D3O.js → kiro-installer-I3ECJ37F.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-GNJMYFT2.js +2 -0
- package/dist/cli/chunks/{learning-GEXYG72Z.js → learning-5FW7N6DA.js} +3 -3
- package/dist/cli/chunks/{llm-router-EGHA5YOC.js → llm-router-ZRYFNNPU.js} +4 -4
- package/dist/cli/chunks/{load-VU2OOAEF.js → load-7BF33NMJ.js} +2 -2
- package/dist/cli/chunks/load-test-ZHTSLJMB.js +2 -0
- package/dist/cli/chunks/{mcp-NVQFFQ2R.js → mcp-7K6P7FMG.js} +2 -2
- package/dist/cli/chunks/{memory-JNXMKTZQ.js → memory-O2DCN3GS.js} +5 -5
- package/dist/cli/chunks/memory-backend-LN6NWT4F.js +2 -0
- package/dist/cli/chunks/{memory-handlers-NLGQ5I7K.js → memory-handlers-WA63DMQ4.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-SG6OME2A.js → multi-model-executor-SJXBFOK5.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-AY4JCZIM.js → opencode-installer-PE7ZV6SV.js} +2 -2
- package/dist/cli/chunks/{orchestrator-GWI7HQG6.js → orchestrator-N4GT5IGY.js} +5 -5
- package/dist/cli/chunks/{pipeline-7T6IAMC7.js → pipeline-DUTGGNO6.js} +2 -2
- package/dist/cli/chunks/{platform-IXUST66M.js → platform-EGUD7X2R.js} +2 -2
- package/dist/cli/chunks/{plugin-PW7F6MVH.js → plugin-6ZS3HK43.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-BUAZHZCM.js → prime-radiant-advanced-wasm-B5S4RUJS.js} +2 -2
- package/dist/cli/chunks/protocol-executor-ED36SYE4.js +2 -0
- package/dist/cli/chunks/{protocol-handler-6746OC4P.js → protocol-handler-Z3QDY7O6.js} +2 -2
- package/dist/cli/chunks/{prove-VYV5DQGC.js → prove-TQHP2XVD.js} +2 -2
- package/dist/cli/chunks/{provider-manager-GEO3CUOO.js → provider-manager-2JFXKYMZ.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-AC5ZWDAZ.js +2 -0
- package/dist/cli/chunks/{quality-4XXENNNW.js → quality-NXDHVPAS.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-IZ4RQGKV.js +2 -0
- package/dist/cli/chunks/{real-embeddings-ZVEZVXVT.js → real-embeddings-P2LYDBVF.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-ZRNDOIDL.js → roocode-installer-YSRXO4W4.js} +2 -2
- package/dist/cli/chunks/router-DZVPCD7E.js +2 -0
- package/dist/cli/chunks/routing-feedback-3LUE56G4.js +2 -0
- package/dist/cli/chunks/{routing-handler-MPSJ7DDI.js → routing-handler-HVDQQF34.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-V4BVCY2U.js → ruvector-commands-5NJ5FQ3E.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-X4VNU5KH.js → rvf-dual-writer-GZ2HIIKX.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-KOYYJSNH.js → rvf-migration-adapter-QKEYGJFL.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-SF5IBKTK.js → rvf-migration-coordinator-5RBME46Y.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-UTX4WYSI.js +2 -0
- package/dist/cli/chunks/safe-db-PEJN42TX.js +2 -0
- package/dist/cli/chunks/schedule-UULIQP2J.js +2 -0
- package/dist/cli/chunks/scheduler-T57XAXKF.js +2 -0
- package/dist/cli/chunks/{security-AA5GBNNU.js → security-KB4TOOFJ.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-UZVFV2RJ.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-EGP3BYIY.js → shared-rvf-dual-writer-UMDFMGVS.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-W7E26KF3.js +2 -0
- package/dist/cli/chunks/{status-handler-ARHPRXJ4.js → status-handler-T53CO6SX.js} +2 -2
- package/dist/cli/chunks/{structural-health-IDV4RBZV.js → structural-health-AVS2GE7S.js} +2 -2
- package/dist/cli/chunks/{sync-7BRLSLDG.js → sync-Q3UHMELK.js} +2 -2
- package/dist/cli/chunks/{task-handler-XY42QA3K.js → task-handler-UAJWNRMS.js} +2 -2
- package/dist/cli/chunks/{task-handlers-QEHOKEJC.js → task-handlers-HYSHMTJN.js} +3 -3
- package/dist/cli/chunks/{test-TQIHDBEX.js → test-GMXM664Y.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-BBVOLGFT.js → test-scheduling-PYU4NLDU.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-BUHTWVEF.js → token-bootstrap-5SIETJI6.js} +2 -2
- package/dist/cli/chunks/{token-usage-MRVQ7G3H.js → token-usage-3H4KEKTT.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-NWNBNU3W.js → transformers-ZFPUASV4.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-6GDZQNFV.js → tree-sitter-wasm-parser-X72YXRIP.js} +2 -2
- package/dist/cli/chunks/{types-F2LWFMRI.js → types-CB2HAVZ6.js} +2 -2
- package/dist/cli/chunks/unified-memory-SAIRUPOI.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-NQALAER6.js +2 -0
- package/dist/cli/chunks/unified-persistence-XNGQFWFS.js +2 -0
- package/dist/cli/chunks/{upgrade-N676MSDA.js → upgrade-BWAZTJKE.js} +2 -2
- package/dist/cli/chunks/{validate-56AA6YYM.js → validate-3OVVTWN6.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-YPHV7MMC.js → validate-swarm-WJVG4OUQ.js} +2 -2
- package/dist/cli/chunks/{vibium-ABPFT3DX.js → vibium-IIU2F5HC.js} +2 -2
- package/dist/cli/chunks/visual-security-CE37LMFR.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-KN4PWKMV.js → web-tree-sitter-RO4TKGTV.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-IZOJBDNN.js → windsurf-installer-7N5CZTJS.js} +2 -2
- package/dist/cli/chunks/{witness-chain-H2DM5WMB.js → witness-chain-B4CHDDS5.js} +2 -2
- package/dist/cli/chunks/witness-chain-L2KM336B.js +2 -0
- package/dist/cli/chunks/{workflow-R42PK45F.js → workflow-FKJKW36Z.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-BE5PCEBO.js +2 -0
- package/dist/cli/chunks/{wrappers-6TIJNWN4.js → wrappers-HU3SB4FT.js} +2 -2
- package/dist/domains/code-intelligence/coordinator.js +20 -0
- package/dist/integrations/embeddings/index/HNSWIndex.js +16 -6
- package/dist/integrations/ruvector/hypergraph-engine.d.ts +45 -0
- package/dist/integrations/ruvector/hypergraph-engine.js +102 -0
- package/dist/integrations/ruvector/shared-rvf-adapter.js +110 -2
- package/dist/learning/pattern-store.js +38 -1
- package/dist/mcp/bundle.js +300 -292
- package/package.json +2 -2
- package/scripts/preinstall.cjs +54 -0
- package/dist/cli/chunks/adapter-UOX57IAN.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-KZES2SKE.js +0 -2
- package/dist/cli/chunks/base-7MXMBRSW.js +0 -2
- package/dist/cli/chunks/browser-workflow-4C5R54CZ.js +0 -2
- package/dist/cli/chunks/chunk-35HDLA22.js +0 -2
- package/dist/cli/chunks/chunk-F32R4LVS.js +0 -2
- package/dist/cli/chunks/chunk-ZTWHRDUY.js +0 -2
- package/dist/cli/chunks/client-S5TFLKHN.js +0 -2
- package/dist/cli/chunks/cross-domain-router-GZG5GU7Q.js +0 -2
- package/dist/cli/chunks/dream-PGYTIOQS.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-ANJKCXK6.js +0 -2
- package/dist/cli/chunks/hnsw-index-D4CJEP7L.js +0 -2
- package/dist/cli/chunks/impact-analyzer-55JW3OK6.js +0 -2
- package/dist/cli/chunks/init-wizard-MWKJNVB2.js +0 -2
- package/dist/cli/chunks/kernel-5MKKDS4J.js +0 -2
- package/dist/cli/chunks/knowledge-graph-2A7AE7L7.js +0 -2
- package/dist/cli/chunks/load-test-UD4ZXCGG.js +0 -2
- package/dist/cli/chunks/memory-backend-X3Z4IAYG.js +0 -2
- package/dist/cli/chunks/protocol-executor-AB6KPFK5.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-Y4IDDIYA.js +0 -2
- package/dist/cli/chunks/queen-coordinator-GBSTXGA2.js +0 -2
- package/dist/cli/chunks/router-JA2X4MF6.js +0 -2
- package/dist/cli/chunks/routing-feedback-YCVJIWFM.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-5YN7EEB5.js +0 -2
- package/dist/cli/chunks/safe-db-S46Y7IC5.js +0 -2
- package/dist/cli/chunks/schedule-KSDHFWSY.js +0 -2
- package/dist/cli/chunks/scheduler-PLFJHU54.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-MLXVW4N6.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-RK3JWKB4.js +0 -2
- package/dist/cli/chunks/transformers-3PFLFSWR.js +0 -2
- package/dist/cli/chunks/unified-memory-JVZZMZRE.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-EJJHCMFR.js +0 -2
- package/dist/cli/chunks/unified-persistence-IEKOYCBL.js +0 -2
- package/dist/cli/chunks/visual-security-APS7K3TZ.js +0 -2
- package/dist/cli/chunks/witness-chain-DMHO7R75.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-BDHRNVOG.js +0 -2
package/dist/cli/chunks/{tree-sitter-wasm-parser-6GDZQNFV.js → tree-sitter-wasm-parser-X72YXRIP.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{d as L,e as $}from"./chunk-MIST354H.js";import"./chunk-H647PYXW.js";$();import*as U from"node:fs";import G from"node:module";import*as F from"node:path";import{fileURLToPath as V}from"node:url";var b=L("TreeSitterWASM"),R={python:{wasmFile:"tree-sitter-python.wasm",nodeTypes:{functionDecl:["function_definition"],classDecl:["class_definition"],importDecl:["import_statement","import_from_statement"]}},java:{wasmFile:"tree-sitter-java.wasm",nodeTypes:{functionDecl:["method_declaration","constructor_declaration"],classDecl:["class_declaration","interface_declaration"],importDecl:["import_declaration"]}},csharp:{wasmFile:"tree-sitter-c_sharp.wasm",nodeTypes:{functionDecl:["method_declaration","constructor_declaration"],classDecl:["class_declaration","interface_declaration"],importDecl:["using_directive"]}},rust:{wasmFile:"tree-sitter-rust.wasm",nodeTypes:{functionDecl:["function_item"],classDecl:[],importDecl:["use_declaration"],implBlock:"impl_item",structDecl:"struct_item"}},swift:{wasmFile:"tree-sitter-swift.wasm",nodeTypes:{functionDecl:["function_declaration"],classDecl:["class_declaration"],importDecl:["import_declaration"],structDecl:"struct_declaration",protocolDecl:"protocol_declaration"}}},g=null,N=null,x=0,P=3,w=new Map;function A(s){let e=V(new URL(".",import.meta.url)),t=[F.resolve(e,"..","..","..","assets","grammars",s),F.resolve(e,"..","..","assets","grammars",s),F.resolve(process.cwd(),"assets","grammars",s),F.resolve(e,"..","assets","grammars",s)];for(let n of t)if(U.existsSync(n))return n;throw new Error(`Grammar file ${s} not found. Searched: ${t.join(", ")}`)}async function B(){if(x>=P)throw new Error(`web-tree-sitter failed to initialize after ${P} attempts`);if(!g)return N||(N=(async()=>{try{let s=await import("./web-tree-sitter-KN4PWKMV.js"),e=s.default||s;await e.init(),g=e,x=0,b.info("web-tree-sitter WASM runtime initialized")}catch(s){x++,N=null;let e=s instanceof Error?s.message:String(s);throw b.warn(`web-tree-sitter WASM init failed (attempt ${x}/${P}): ${e}. `+(x<P?"Will retry on next parse.":"Falling back to regex permanently.")),s}})()),N}async function J(s){let e=w.get(s);if(e)return e;await B();let t=R[s];if(!t)throw new Error(`No WASM grammar config for ${s}`);try{let n=A(t.wasmFile),i=await g.Language.load(n);return w.set(s,i),b.info(`Loaded tree-sitter WASM grammar for ${s}`),i}catch(n){let i=n instanceof Error?n.message:String(n);throw b.warn(`Failed to load WASM grammar for ${s}: ${i}. Falling back to regex parser.`),n}}function u(s,e){let t=[];for(let n=0;n<s.childCount;n++){let i=s.child(n);e.includes(i.type)&&t.push(i)}return t}function y(s,e,t=10){let n=[];function i(r,o){if(!(o>t))for(let a=0;a<r.childCount;a++){let c=r.child(a);e.includes(c.type)&&n.push(c),i(c,o+1)}}return i(s,0),n}function h(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);(n.type==="modifiers"||n.type==="modifier"||n.type==="visibility_modifier")&&e.push(n.text.trim())}return e}function I(s,e){return h(s).some(t=>t.includes(e))}var X=new Set(["if_statement","if_expression","if_let_statement","while_statement","while_expression","for_statement","for_in_statement","for_expression","enhanced_for_statement","match_expression","switch_statement","switch_expression","case_clause","match_arm","switch_entry","catch_clause","except_clause","catch_block","binary_expression","conditional_expression","ternary_expression"]),Y=new Set(["&&","||","and","or"]);function _(s){if(!s)return 1;let e=1;function t(n){if(X.has(n.type))if(n.type==="binary_expression"){let i=n.childForFieldName("operator");i&&Y.has(i.text)&&e++}else e++;for(let i=0;i<n.childCount;i++)t(n.child(i))}return t(s),e}function S(s,e){if(!s)return[];let t=[];for(let n=0;n<s.childCount;n++){let i=s.child(n);switch(e){case"java":if(i.type==="field_declaration"){let r=h(i),o=i.childForFieldName("type")?.text?.trim(),a=i.childForFieldName("declarator"),c=a?.childForFieldName("name")?.text??a?.text?.split(/[=;]/)[0]?.trim()??"";c&&t.push({name:c,type:o||void 0,isPublic:r.some(l=>l.includes("public")),isReadonly:r.some(l=>l.includes("final"))})}break;case"csharp":if(i.type==="field_declaration"||i.type==="property_declaration"){let r=h(i),o=i.childForFieldName("type")?.text?.trim(),a=i.childForFieldName("name")?.text??"";a&&t.push({name:a,type:o||void 0,isPublic:r.some(c=>c.includes("public")),isReadonly:r.some(c=>c.includes("readonly"))})}break;case"rust":if(i.type==="field_declaration"){let r=i.childForFieldName("name")?.text??"",o=i.childForFieldName("type")?.text?.trim(),a=I(i,"pub");r&&t.push({name:r,type:o||void 0,isPublic:a,isReadonly:!1})}break;case"swift":if(i.type==="property_declaration"){let r=T(i),o=i.childForFieldName("name")?.text??"",a=i.childForFieldName("type")?.text?.trim(),c=r.includes("public")||r.includes("open"),l=i.text.includes("let ");o&&t.push({name:o,type:a||void 0,isPublic:c,isReadonly:l})}break;case"python":if(i.type==="expression_statement"){let r=i.child(0);if(r?.type==="assignment"){let o=r.childForFieldName("left");if(o?.type==="attribute"||o?.type==="identifier"){let a=o.text.replace("self.","");t.push({name:a,type:void 0,isPublic:!a.startsWith("_"),isReadonly:!1})}}}break}}return t}function O(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("parameters"),i=e.childForFieldName("return_type"),r=e.childForFieldName("body"),o=e.text.trimStart().startsWith("async"),a=E(e);return{name:t,parameters:q(n),returnType:i?.text?.trim()||void 0,isAsync:o,isPublic:!t.startsWith("_"),complexity:_(r),decorators:a,genericParams:[],startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function q(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="identifier"){let i=n.text;if(i==="self"||i==="cls")continue;e.push({name:i,type:void 0,isOptional:!1,defaultValue:void 0})}else if(n.type==="typed_parameter"){let i=n.child(0)?.text??"";if(i==="self"||i==="cls")continue;let r=n.childForFieldName("type")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:!1,defaultValue:void 0})}else if(n.type==="default_parameter"||n.type==="typed_default_parameter"){let i=n.childForFieldName("name")?.text??n.child(0)?.text??"";if(i==="self"||i==="cls")continue;let r=n.childForFieldName("type")?.text?.trim(),o=n.childForFieldName("value")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:!0,defaultValue:o||void 0})}else if(n.type==="list_splat_pattern"||n.type==="dictionary_splat_pattern"){let i=n.text;e.push({name:i,type:void 0,isOptional:!0,defaultValue:void 0})}}return e}function E(s){let e=[],t=s.parent;if(!t)return e;if(t.type==="decorated_definition")for(let n=0;n<t.childCount;n++){let i=t.child(n);i.type==="decorator"&&e.push(i.text.trim())}return e}function z(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("body"),i=e.childForFieldName("superclasses"),r=[];if(i)for(let l=0;l<i.childCount;l++){let d=i.child(l);d.isNamed&&r.push(d.text)}let o=n?y(n,["function_definition"],2):[],a=O(o),c=E(e);return{name:t,methods:a,properties:S(n,"python"),isPublic:!t.startsWith("_"),implements:[],extends:r[0]||void 0,decorators:c,startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function Q(s){return s.map(e=>{if(e.type==="import_from_statement"){let n=e.childForFieldName("module_name")?.text??"",i=[];for(let r=0;r<e.childCount;r++){let o=e.child(r);e.fieldNameForChild(r)==="name"&&o.isNamed&&i.push(o.text)}return{module:n,namedImports:i,isTypeOnly:!1}}return{module:e.childForFieldName("name")?.text??"",namedImports:[],isTypeOnly:!1}})}function C(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("type"),i=e.childForFieldName("parameters"),r=e.childForFieldName("body"),a=h(e).some(d=>d.includes("public")),c=n?.text?.includes("CompletableFuture")??!1,l=k(e);return{name:t,parameters:H(i),returnType:n?.text==="void"?void 0:n?.text?.trim(),isAsync:c,isPublic:a,complexity:_(r),decorators:l,genericParams:[],startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function H(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="formal_parameter"||n.type==="spread_parameter"){let i=n.childForFieldName("name")?.text??"",r=n.childForFieldName("type")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:!1,defaultValue:void 0})}}return e}function k(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="modifiers")for(let i=0;i<n.childCount;i++){let r=n.child(i);(r.type==="marker_annotation"||r.type==="annotation")&&e.push(r.text.trim())}}return e}function K(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("body"),r=h(e).some(p=>p.includes("public")),o=e.childForFieldName("superclass")?.text,a=e.childForFieldName("interfaces"),c=[];if(a)for(let p=0;p<a.childCount;p++){let f=a.child(p);f.isNamed&&c.push(f.text)}let l=n?u(n,["method_declaration","constructor_declaration"]):[],d=C(l),m=k(e);return{name:t,methods:d,properties:S(n,"java"),isPublic:r,implements:c,extends:o||void 0,decorators:m,startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function Z(s){return s.map(e=>{let t=e.text.replace(/^\s*import\s+(static\s+)?/,"").replace(/;\s*$/,"").trim(),n=t.split("."),i=n[n.length-1];return{module:t,namedImports:i==="*"?[]:[i],isTypeOnly:!1}})}function ee(s){return y(s,["method_declaration","constructor_declaration"]).map(t=>{let n=t.childForFieldName("name")?.text??"",i=t.childForFieldName("type"),r=t.childForFieldName("parameters"),o=h(t),a=o.some(d=>d.includes("public")),c=o.some(d=>d.includes("async"))||i?.text?.includes("Task")||!1,l=W(t);return{name:n,parameters:te(r),returnType:i?.text==="void"?void 0:i?.text?.trim(),isAsync:c,isPublic:a,complexity:_(t.childForFieldName("body")),decorators:l,genericParams:[],startLine:t.startPosition.row+1,endLine:t.endPosition.row+1}})}function te(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="parameter"){let i=n.childForFieldName("name")?.text??"",r=n.childForFieldName("type")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:r?.endsWith("?")||!1,defaultValue:void 0})}}return e}function W(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);n.type==="attribute_list"&&e.push(n.text.trim())}return e}function ne(s){return y(s,["class_declaration","interface_declaration"]).map(t=>{let n=t.childForFieldName("name")?.text??"",i=t.childForFieldName("body"),o=h(t).some(p=>p.includes("public")),a=t.childForFieldName("bases"),c=[];if(a)for(let p=0;p<a.childCount;p++){let f=a.child(p);f.isNamed&&c.push(f.text)}let l=i?u(i,["method_declaration","constructor_declaration"]):[],d=C(l),m=W(t);return{name:n,methods:d,properties:S(i,"csharp"),isPublic:o,implements:c.slice(1),extends:c[0]||void 0,decorators:m,startLine:t.startPosition.row+1,endLine:t.endPosition.row+1}})}function ie(s){return y(s,["using_directive"]).map(t=>({module:t.text.replace(/^\s*using\s+(static\s+)?/,"").replace(/;\s*$/,"").trim(),namedImports:[],isTypeOnly:!1}))}function se(s,e){let t=[],n=u(s,e.nodeTypes.functionDecl);if(t.push(...n.map(D)),e.nodeTypes.implBlock){let i=u(s,[e.nodeTypes.implBlock]);for(let r of i){let o=r.childForFieldName("body");if(o){let a=u(o,e.nodeTypes.functionDecl);t.push(...a.map(D))}}}return t}function D(s){let e=s.childForFieldName("name")?.text??"",t=s.childForFieldName("parameters"),n=s.childForFieldName("return_type"),i=s.childForFieldName("body"),r=I(s,"pub"),o=s.text.trimStart().startsWith("pub async")||s.text.trimStart().startsWith("async"),a=M(s);return{name:e,parameters:re(t),returnType:n?.text?.trim()||void 0,isAsync:o,isPublic:r,complexity:_(i),decorators:a,genericParams:[],startLine:s.startPosition.row+1,endLine:s.endPosition.row+1}}function re(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="parameter"){let i=n.childForFieldName("pattern"),r=n.childForFieldName("type"),o=i?.text??"",a=r?.text?.trim();e.push({name:o,type:a||void 0,isOptional:!1,defaultValue:void 0})}else if(n.type==="self_parameter")continue}return e}function M(s){let e=[],t=s.previousNamedSibling;for(;t&&t.type==="attribute_item";)e.unshift(t.text.trim()),t=t.previousNamedSibling;return e}function oe(s){let e=[],t=u(s,["struct_item","enum_item","trait_item"]);for(let n of t){let i=n.childForFieldName("name")?.text??"",r=I(n,"pub"),o=M(n),a=n.childForFieldName("body");e.push({name:i,methods:[],properties:S(a,"rust"),isPublic:r,implements:[],extends:void 0,decorators:o,startLine:n.startPosition.row+1,endLine:n.endPosition.row+1})}return e}function ae(s){return u(s,["use_declaration"]).map(t=>({module:t.childForFieldName("argument")?.text??t.text.replace(/^\s*use\s+/,"").replace(/;\s*$/,"").trim(),namedImports:[],isTypeOnly:!1}))}function j(s){return s.map(e=>{let t="",n=[],i,r=T(e),o=r.includes("public")||r.includes("open"),a=!1;for(let l=0;l<e.childCount;l++){let d=e.child(l);e.fieldNameForChild(l)==="name"&&(d.type==="simple_identifier"?t=d.text:t||(i=d.text)),d.type==="parameter"&&n.push(d),(d.type==="async"||d.text==="async")&&(a=!0)}if(!t){for(let l=0;l<e.childCount;l++)if(e.child(l).type==="simple_identifier"){t=e.child(l).text;break}}let c=null;for(let l=0;l<e.childCount;l++)if(e.child(l).type==="function_body"){c=e.child(l);break}return{name:t,parameters:ce(n),returnType:i,isAsync:a,isPublic:o,complexity:_(c),decorators:[],genericParams:[],startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function T(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="modifiers")for(let i=0;i<n.childCount;i++)e.push(n.child(i).text.trim())}return e}function ce(s){return s.map(e=>{let n=e.text.split(":"),i=n[0]?.trim().split(/\s+/)??[],r=i[i.length-1]||"",o=n.slice(1).join(":").trim()||void 0;return{name:r,type:o,isOptional:o?.endsWith("?")||!1,defaultValue:void 0}})}function le(s){return u(s,["class_declaration","struct_declaration","protocol_declaration"]).map(n=>{let i=n.childForFieldName("name"),r=i?.text??"",o=T(n),a=o.includes("public")||o.includes("open"),c=[];for(let p=0;p<n.childCount;p++){let f=n.child(p);f.type==="type_identifier"&&f!==i&&c.push(f.text),(f.type==="inheritance_specifier"||f.type==="user_type")&&c.push(f.text)}let l=n.childForFieldName("body"),d=l?y(l,["function_declaration"],2):[],m=j(d);return{name:r,methods:m,properties:S(l,"swift"),isPublic:a,implements:c.slice(1),extends:c[0]||void 0,decorators:[],startLine:n.startPosition.row+1,endLine:n.endPosition.row+1}})}function de(s){return u(s,["import_declaration"]).map(t=>{let n="";for(let i=0;i<t.childCount;i++){let r=t.child(i);(r.type==="identifier"||r.type==="simple_identifier")&&(n=r.text)}return{module:n,namedImports:[],isTypeOnly:!1}})}var v=class{language;supportedExtensions;constructor(e,t){this.language=e,this.supportedExtensions=t}async parseFile(e,t){let n=await J(this.language),i=new g;i.setLanguage(n);let r=i.parse(e),o=r.rootNode;try{return{...this.extractFromAST(o),language:this.language,filePath:t}}finally{r.delete(),i.delete()}}extractFromAST(e){let t=R[this.language];switch(this.language){case"python":{let n=u(e,t.nodeTypes.functionDecl),i=u(e,["decorated_definition"]).map(d=>{for(let m=0;m<d.childCount;m++)if(t.nodeTypes.functionDecl.includes(d.child(m).type))return d.child(m);return null}).filter(Boolean),r=[...n,...i],o=u(e,t.nodeTypes.classDecl),a=u(e,["decorated_definition"]).map(d=>{for(let m=0;m<d.childCount;m++)if(t.nodeTypes.classDecl.includes(d.child(m).type))return d.child(m);return null}).filter(Boolean),c=[...o,...a],l=u(e,t.nodeTypes.importDecl);return{functions:O(r),classes:z(c),imports:Q(l)}}case"java":{let n=y(e,t.nodeTypes.classDecl),i=u(e,t.nodeTypes.importDecl),o=[...u(e,t.nodeTypes.functionDecl)];for(let a of n){let c=a.childForFieldName("body");c&&o.push(...u(c,t.nodeTypes.functionDecl))}return{functions:C(o),classes:K(n),imports:Z(i)}}case"csharp":return{functions:ee(e),classes:ne(e),imports:ie(e)};case"rust":return{functions:se(e,t),classes:oe(e),imports:ae(e)};case"swift":{let n=y(e,t.nodeTypes.functionDecl);return{functions:j(n),classes:le(e),imports:de(e)}}default:return{functions:[],classes:[],imports:[]}}}},ue={python:[".py"],java:[".java"],csharp:[".cs"],rust:[".rs"],swift:[".swift"]};function ye(){let s=new Map;for(let[e,t]of Object.entries(ue))s.set(e,new v(e,t));return s}function he(){if(process.env.AQE_PARSER_REGEX_ONLY==="1"||process.env.AQE_PARSER_REGEX_ONLY==="true")return!1;try{let{createRequire:s}=G;return s(import.meta.url).resolve("web-tree-sitter"),A("tree-sitter-python.wasm"),!0}catch{return!1}}function xe(){g=null,N=null,x=0,w.clear()}export{v as TreeSitterWASMParser,xe as _resetWasmState,ye as createWasmParsers,he as isWasmAvailable};
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{d as L,e as $}from"./chunk-MYZ43VKA.js";import"./chunk-4ZUXTOUG.js";$();import*as U from"node:fs";import G from"node:module";import*as F from"node:path";import{fileURLToPath as V}from"node:url";var b=L("TreeSitterWASM"),R={python:{wasmFile:"tree-sitter-python.wasm",nodeTypes:{functionDecl:["function_definition"],classDecl:["class_definition"],importDecl:["import_statement","import_from_statement"]}},java:{wasmFile:"tree-sitter-java.wasm",nodeTypes:{functionDecl:["method_declaration","constructor_declaration"],classDecl:["class_declaration","interface_declaration"],importDecl:["import_declaration"]}},csharp:{wasmFile:"tree-sitter-c_sharp.wasm",nodeTypes:{functionDecl:["method_declaration","constructor_declaration"],classDecl:["class_declaration","interface_declaration"],importDecl:["using_directive"]}},rust:{wasmFile:"tree-sitter-rust.wasm",nodeTypes:{functionDecl:["function_item"],classDecl:[],importDecl:["use_declaration"],implBlock:"impl_item",structDecl:"struct_item"}},swift:{wasmFile:"tree-sitter-swift.wasm",nodeTypes:{functionDecl:["function_declaration"],classDecl:["class_declaration"],importDecl:["import_declaration"],structDecl:"struct_declaration",protocolDecl:"protocol_declaration"}}},g=null,N=null,x=0,P=3,w=new Map;function A(s){let e=V(new URL(".",import.meta.url)),t=[F.resolve(e,"..","..","..","assets","grammars",s),F.resolve(e,"..","..","assets","grammars",s),F.resolve(process.cwd(),"assets","grammars",s),F.resolve(e,"..","assets","grammars",s)];for(let n of t)if(U.existsSync(n))return n;throw new Error(`Grammar file ${s} not found. Searched: ${t.join(", ")}`)}async function B(){if(x>=P)throw new Error(`web-tree-sitter failed to initialize after ${P} attempts`);if(!g)return N||(N=(async()=>{try{let s=await import("./web-tree-sitter-RO4TKGTV.js"),e=s.default||s;await e.init(),g=e,x=0,b.info("web-tree-sitter WASM runtime initialized")}catch(s){x++,N=null;let e=s instanceof Error?s.message:String(s);throw b.warn(`web-tree-sitter WASM init failed (attempt ${x}/${P}): ${e}. `+(x<P?"Will retry on next parse.":"Falling back to regex permanently.")),s}})()),N}async function J(s){let e=w.get(s);if(e)return e;await B();let t=R[s];if(!t)throw new Error(`No WASM grammar config for ${s}`);try{let n=A(t.wasmFile),i=await g.Language.load(n);return w.set(s,i),b.info(`Loaded tree-sitter WASM grammar for ${s}`),i}catch(n){let i=n instanceof Error?n.message:String(n);throw b.warn(`Failed to load WASM grammar for ${s}: ${i}. Falling back to regex parser.`),n}}function u(s,e){let t=[];for(let n=0;n<s.childCount;n++){let i=s.child(n);e.includes(i.type)&&t.push(i)}return t}function y(s,e,t=10){let n=[];function i(r,o){if(!(o>t))for(let a=0;a<r.childCount;a++){let c=r.child(a);e.includes(c.type)&&n.push(c),i(c,o+1)}}return i(s,0),n}function h(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);(n.type==="modifiers"||n.type==="modifier"||n.type==="visibility_modifier")&&e.push(n.text.trim())}return e}function I(s,e){return h(s).some(t=>t.includes(e))}var X=new Set(["if_statement","if_expression","if_let_statement","while_statement","while_expression","for_statement","for_in_statement","for_expression","enhanced_for_statement","match_expression","switch_statement","switch_expression","case_clause","match_arm","switch_entry","catch_clause","except_clause","catch_block","binary_expression","conditional_expression","ternary_expression"]),Y=new Set(["&&","||","and","or"]);function _(s){if(!s)return 1;let e=1;function t(n){if(X.has(n.type))if(n.type==="binary_expression"){let i=n.childForFieldName("operator");i&&Y.has(i.text)&&e++}else e++;for(let i=0;i<n.childCount;i++)t(n.child(i))}return t(s),e}function S(s,e){if(!s)return[];let t=[];for(let n=0;n<s.childCount;n++){let i=s.child(n);switch(e){case"java":if(i.type==="field_declaration"){let r=h(i),o=i.childForFieldName("type")?.text?.trim(),a=i.childForFieldName("declarator"),c=a?.childForFieldName("name")?.text??a?.text?.split(/[=;]/)[0]?.trim()??"";c&&t.push({name:c,type:o||void 0,isPublic:r.some(l=>l.includes("public")),isReadonly:r.some(l=>l.includes("final"))})}break;case"csharp":if(i.type==="field_declaration"||i.type==="property_declaration"){let r=h(i),o=i.childForFieldName("type")?.text?.trim(),a=i.childForFieldName("name")?.text??"";a&&t.push({name:a,type:o||void 0,isPublic:r.some(c=>c.includes("public")),isReadonly:r.some(c=>c.includes("readonly"))})}break;case"rust":if(i.type==="field_declaration"){let r=i.childForFieldName("name")?.text??"",o=i.childForFieldName("type")?.text?.trim(),a=I(i,"pub");r&&t.push({name:r,type:o||void 0,isPublic:a,isReadonly:!1})}break;case"swift":if(i.type==="property_declaration"){let r=T(i),o=i.childForFieldName("name")?.text??"",a=i.childForFieldName("type")?.text?.trim(),c=r.includes("public")||r.includes("open"),l=i.text.includes("let ");o&&t.push({name:o,type:a||void 0,isPublic:c,isReadonly:l})}break;case"python":if(i.type==="expression_statement"){let r=i.child(0);if(r?.type==="assignment"){let o=r.childForFieldName("left");if(o?.type==="attribute"||o?.type==="identifier"){let a=o.text.replace("self.","");t.push({name:a,type:void 0,isPublic:!a.startsWith("_"),isReadonly:!1})}}}break}}return t}function O(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("parameters"),i=e.childForFieldName("return_type"),r=e.childForFieldName("body"),o=e.text.trimStart().startsWith("async"),a=E(e);return{name:t,parameters:q(n),returnType:i?.text?.trim()||void 0,isAsync:o,isPublic:!t.startsWith("_"),complexity:_(r),decorators:a,genericParams:[],startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function q(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="identifier"){let i=n.text;if(i==="self"||i==="cls")continue;e.push({name:i,type:void 0,isOptional:!1,defaultValue:void 0})}else if(n.type==="typed_parameter"){let i=n.child(0)?.text??"";if(i==="self"||i==="cls")continue;let r=n.childForFieldName("type")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:!1,defaultValue:void 0})}else if(n.type==="default_parameter"||n.type==="typed_default_parameter"){let i=n.childForFieldName("name")?.text??n.child(0)?.text??"";if(i==="self"||i==="cls")continue;let r=n.childForFieldName("type")?.text?.trim(),o=n.childForFieldName("value")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:!0,defaultValue:o||void 0})}else if(n.type==="list_splat_pattern"||n.type==="dictionary_splat_pattern"){let i=n.text;e.push({name:i,type:void 0,isOptional:!0,defaultValue:void 0})}}return e}function E(s){let e=[],t=s.parent;if(!t)return e;if(t.type==="decorated_definition")for(let n=0;n<t.childCount;n++){let i=t.child(n);i.type==="decorator"&&e.push(i.text.trim())}return e}function z(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("body"),i=e.childForFieldName("superclasses"),r=[];if(i)for(let l=0;l<i.childCount;l++){let d=i.child(l);d.isNamed&&r.push(d.text)}let o=n?y(n,["function_definition"],2):[],a=O(o),c=E(e);return{name:t,methods:a,properties:S(n,"python"),isPublic:!t.startsWith("_"),implements:[],extends:r[0]||void 0,decorators:c,startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function Q(s){return s.map(e=>{if(e.type==="import_from_statement"){let n=e.childForFieldName("module_name")?.text??"",i=[];for(let r=0;r<e.childCount;r++){let o=e.child(r);e.fieldNameForChild(r)==="name"&&o.isNamed&&i.push(o.text)}return{module:n,namedImports:i,isTypeOnly:!1}}return{module:e.childForFieldName("name")?.text??"",namedImports:[],isTypeOnly:!1}})}function C(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("type"),i=e.childForFieldName("parameters"),r=e.childForFieldName("body"),a=h(e).some(d=>d.includes("public")),c=n?.text?.includes("CompletableFuture")??!1,l=k(e);return{name:t,parameters:H(i),returnType:n?.text==="void"?void 0:n?.text?.trim(),isAsync:c,isPublic:a,complexity:_(r),decorators:l,genericParams:[],startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function H(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="formal_parameter"||n.type==="spread_parameter"){let i=n.childForFieldName("name")?.text??"",r=n.childForFieldName("type")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:!1,defaultValue:void 0})}}return e}function k(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="modifiers")for(let i=0;i<n.childCount;i++){let r=n.child(i);(r.type==="marker_annotation"||r.type==="annotation")&&e.push(r.text.trim())}}return e}function K(s){return s.map(e=>{let t=e.childForFieldName("name")?.text??"",n=e.childForFieldName("body"),r=h(e).some(p=>p.includes("public")),o=e.childForFieldName("superclass")?.text,a=e.childForFieldName("interfaces"),c=[];if(a)for(let p=0;p<a.childCount;p++){let f=a.child(p);f.isNamed&&c.push(f.text)}let l=n?u(n,["method_declaration","constructor_declaration"]):[],d=C(l),m=k(e);return{name:t,methods:d,properties:S(n,"java"),isPublic:r,implements:c,extends:o||void 0,decorators:m,startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function Z(s){return s.map(e=>{let t=e.text.replace(/^\s*import\s+(static\s+)?/,"").replace(/;\s*$/,"").trim(),n=t.split("."),i=n[n.length-1];return{module:t,namedImports:i==="*"?[]:[i],isTypeOnly:!1}})}function ee(s){return y(s,["method_declaration","constructor_declaration"]).map(t=>{let n=t.childForFieldName("name")?.text??"",i=t.childForFieldName("type"),r=t.childForFieldName("parameters"),o=h(t),a=o.some(d=>d.includes("public")),c=o.some(d=>d.includes("async"))||i?.text?.includes("Task")||!1,l=W(t);return{name:n,parameters:te(r),returnType:i?.text==="void"?void 0:i?.text?.trim(),isAsync:c,isPublic:a,complexity:_(t.childForFieldName("body")),decorators:l,genericParams:[],startLine:t.startPosition.row+1,endLine:t.endPosition.row+1}})}function te(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="parameter"){let i=n.childForFieldName("name")?.text??"",r=n.childForFieldName("type")?.text?.trim();e.push({name:i,type:r||void 0,isOptional:r?.endsWith("?")||!1,defaultValue:void 0})}}return e}function W(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);n.type==="attribute_list"&&e.push(n.text.trim())}return e}function ne(s){return y(s,["class_declaration","interface_declaration"]).map(t=>{let n=t.childForFieldName("name")?.text??"",i=t.childForFieldName("body"),o=h(t).some(p=>p.includes("public")),a=t.childForFieldName("bases"),c=[];if(a)for(let p=0;p<a.childCount;p++){let f=a.child(p);f.isNamed&&c.push(f.text)}let l=i?u(i,["method_declaration","constructor_declaration"]):[],d=C(l),m=W(t);return{name:n,methods:d,properties:S(i,"csharp"),isPublic:o,implements:c.slice(1),extends:c[0]||void 0,decorators:m,startLine:t.startPosition.row+1,endLine:t.endPosition.row+1}})}function ie(s){return y(s,["using_directive"]).map(t=>({module:t.text.replace(/^\s*using\s+(static\s+)?/,"").replace(/;\s*$/,"").trim(),namedImports:[],isTypeOnly:!1}))}function se(s,e){let t=[],n=u(s,e.nodeTypes.functionDecl);if(t.push(...n.map(D)),e.nodeTypes.implBlock){let i=u(s,[e.nodeTypes.implBlock]);for(let r of i){let o=r.childForFieldName("body");if(o){let a=u(o,e.nodeTypes.functionDecl);t.push(...a.map(D))}}}return t}function D(s){let e=s.childForFieldName("name")?.text??"",t=s.childForFieldName("parameters"),n=s.childForFieldName("return_type"),i=s.childForFieldName("body"),r=I(s,"pub"),o=s.text.trimStart().startsWith("pub async")||s.text.trimStart().startsWith("async"),a=M(s);return{name:e,parameters:re(t),returnType:n?.text?.trim()||void 0,isAsync:o,isPublic:r,complexity:_(i),decorators:a,genericParams:[],startLine:s.startPosition.row+1,endLine:s.endPosition.row+1}}function re(s){if(!s)return[];let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="parameter"){let i=n.childForFieldName("pattern"),r=n.childForFieldName("type"),o=i?.text??"",a=r?.text?.trim();e.push({name:o,type:a||void 0,isOptional:!1,defaultValue:void 0})}else if(n.type==="self_parameter")continue}return e}function M(s){let e=[],t=s.previousNamedSibling;for(;t&&t.type==="attribute_item";)e.unshift(t.text.trim()),t=t.previousNamedSibling;return e}function oe(s){let e=[],t=u(s,["struct_item","enum_item","trait_item"]);for(let n of t){let i=n.childForFieldName("name")?.text??"",r=I(n,"pub"),o=M(n),a=n.childForFieldName("body");e.push({name:i,methods:[],properties:S(a,"rust"),isPublic:r,implements:[],extends:void 0,decorators:o,startLine:n.startPosition.row+1,endLine:n.endPosition.row+1})}return e}function ae(s){return u(s,["use_declaration"]).map(t=>({module:t.childForFieldName("argument")?.text??t.text.replace(/^\s*use\s+/,"").replace(/;\s*$/,"").trim(),namedImports:[],isTypeOnly:!1}))}function j(s){return s.map(e=>{let t="",n=[],i,r=T(e),o=r.includes("public")||r.includes("open"),a=!1;for(let l=0;l<e.childCount;l++){let d=e.child(l);e.fieldNameForChild(l)==="name"&&(d.type==="simple_identifier"?t=d.text:t||(i=d.text)),d.type==="parameter"&&n.push(d),(d.type==="async"||d.text==="async")&&(a=!0)}if(!t){for(let l=0;l<e.childCount;l++)if(e.child(l).type==="simple_identifier"){t=e.child(l).text;break}}let c=null;for(let l=0;l<e.childCount;l++)if(e.child(l).type==="function_body"){c=e.child(l);break}return{name:t,parameters:ce(n),returnType:i,isAsync:a,isPublic:o,complexity:_(c),decorators:[],genericParams:[],startLine:e.startPosition.row+1,endLine:e.endPosition.row+1}})}function T(s){let e=[];for(let t=0;t<s.childCount;t++){let n=s.child(t);if(n.type==="modifiers")for(let i=0;i<n.childCount;i++)e.push(n.child(i).text.trim())}return e}function ce(s){return s.map(e=>{let n=e.text.split(":"),i=n[0]?.trim().split(/\s+/)??[],r=i[i.length-1]||"",o=n.slice(1).join(":").trim()||void 0;return{name:r,type:o,isOptional:o?.endsWith("?")||!1,defaultValue:void 0}})}function le(s){return u(s,["class_declaration","struct_declaration","protocol_declaration"]).map(n=>{let i=n.childForFieldName("name"),r=i?.text??"",o=T(n),a=o.includes("public")||o.includes("open"),c=[];for(let p=0;p<n.childCount;p++){let f=n.child(p);f.type==="type_identifier"&&f!==i&&c.push(f.text),(f.type==="inheritance_specifier"||f.type==="user_type")&&c.push(f.text)}let l=n.childForFieldName("body"),d=l?y(l,["function_declaration"],2):[],m=j(d);return{name:r,methods:m,properties:S(l,"swift"),isPublic:a,implements:c.slice(1),extends:c[0]||void 0,decorators:[],startLine:n.startPosition.row+1,endLine:n.endPosition.row+1}})}function de(s){return u(s,["import_declaration"]).map(t=>{let n="";for(let i=0;i<t.childCount;i++){let r=t.child(i);(r.type==="identifier"||r.type==="simple_identifier")&&(n=r.text)}return{module:n,namedImports:[],isTypeOnly:!1}})}var v=class{language;supportedExtensions;constructor(e,t){this.language=e,this.supportedExtensions=t}async parseFile(e,t){let n=await J(this.language),i=new g;i.setLanguage(n);let r=i.parse(e),o=r.rootNode;try{return{...this.extractFromAST(o),language:this.language,filePath:t}}finally{r.delete(),i.delete()}}extractFromAST(e){let t=R[this.language];switch(this.language){case"python":{let n=u(e,t.nodeTypes.functionDecl),i=u(e,["decorated_definition"]).map(d=>{for(let m=0;m<d.childCount;m++)if(t.nodeTypes.functionDecl.includes(d.child(m).type))return d.child(m);return null}).filter(Boolean),r=[...n,...i],o=u(e,t.nodeTypes.classDecl),a=u(e,["decorated_definition"]).map(d=>{for(let m=0;m<d.childCount;m++)if(t.nodeTypes.classDecl.includes(d.child(m).type))return d.child(m);return null}).filter(Boolean),c=[...o,...a],l=u(e,t.nodeTypes.importDecl);return{functions:O(r),classes:z(c),imports:Q(l)}}case"java":{let n=y(e,t.nodeTypes.classDecl),i=u(e,t.nodeTypes.importDecl),o=[...u(e,t.nodeTypes.functionDecl)];for(let a of n){let c=a.childForFieldName("body");c&&o.push(...u(c,t.nodeTypes.functionDecl))}return{functions:C(o),classes:K(n),imports:Z(i)}}case"csharp":return{functions:ee(e),classes:ne(e),imports:ie(e)};case"rust":return{functions:se(e,t),classes:oe(e),imports:ae(e)};case"swift":{let n=y(e,t.nodeTypes.functionDecl);return{functions:j(n),classes:le(e),imports:de(e)}}default:return{functions:[],classes:[],imports:[]}}}},ue={python:[".py"],java:[".java"],csharp:[".cs"],rust:[".rs"],swift:[".swift"]};function ye(){let s=new Map;for(let[e,t]of Object.entries(ue))s.set(e,new v(e,t));return s}function he(){if(process.env.AQE_PARSER_REGEX_ONLY==="1"||process.env.AQE_PARSER_REGEX_ONLY==="true")return!1;try{let{createRequire:s}=G;return s(import.meta.url).resolve("web-tree-sitter"),A("tree-sitter-python.wasm"),!0}catch{return!1}}function xe(){g=null,N=null,x=0,w.clear()}export{v as TreeSitterWASMParser,xe as _resetWasmState,ye as createWasmParsers,he as isWasmAvailable};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{a,b,c,d,e,f,g}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-HRHKLRBB.js";import"./chunk-4ZUXTOUG.js";export{e as BudgetExceededError,f as ComplexityAnalysisError,b as DEFAULT_BUDGET_CONFIG,c as DEFAULT_ROUTER_CONFIG,d as ModelRouterError,g as RoutingTimeoutError,a as TIER_METADATA};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,o}from"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import{a as c,d,e}from"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.js";o();export{a as ALLOWED_TABLE_NAMES,c as BinaryHeap,i as DEFAULT_UNIFIED_MEMORY_CONFIG,d as UnifiedHnswIndex,k as UnifiedMemoryManager,f as clearProjectRootCache,e as createHnswIndex,g as findProjectRoot,h as getDefaultDbPath,j as getResolvedDefaultConfig,l as getUnifiedMemory,m as initializeUnifiedMemory,n as resetUnifiedMemory,b as validateTableName};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f}from"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e}from"./chunk-WI5HBS3C.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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.9.
|
|
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.9.21");process.exit(0)}
|
|
2
|
+
import{S as m,b as c}from"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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.9.
|
|
2
|
-
import{e as P}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{e as P}from"./chunk-GJGFPXWG.js";import"./chunk-VQXHHEPD.js";import{a as V}from"./chunk-VQLHHNOH.js";import"./chunk-D24HN6BG.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import{b as v,d as F}from"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-5EYQP3V3.js";import"./chunk-4ZUXTOUG.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 V({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 G(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.9.
|
|
2
|
-
import{a as i,b as v,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.9.21");process.exit(0)}
|
|
2
|
+
import{a as i,b as v,c as d,d as p}from"./chunk-GJGFPXWG.js";import{a as h}from"./chunk-4O7YJIOS.js";import"./chunk-VQXHHEPD.js";import{a as k}from"./chunk-VQLHHNOH.js";import"./chunk-YS5WV3CJ.js";import"./chunk-D24HN6BG.js";import"./chunk-P4Q5TMDH.js";import"./chunk-KRXJ7LFP.js";import"./chunk-V6GJ3EMZ.js";import"./chunk-YVG4D6P3.js";import"./chunk-C4CZXAOE.js";import"./chunk-IM7X6BDZ.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-PAXSPZ3F.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.js";import{Command as x}from"commander";import o from"chalk";function _(e,t,a){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 a())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),n={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: ${n.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${n.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${n.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${n.timeout}ms`)),console.log(o.gray(` Retry: ${n.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=k(m),C=v(n,f),w=Date.now();console.log(o.yellow(` Starting parallel validation...
|
|
5
5
|
`));let $=await C.validateSkillsParallel(r,u),s=C.getSummary($),b=Date.now()-w;l.json?T(s):V(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.9.
|
|
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.9.21");process.exit(0)}
|
|
2
|
+
import{c as t}from"./chunk-4ZUXTOUG.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.9.21");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-ISNDQOXC.js";import"./chunk-RHAUASC6.js";import"./chunk-YVPPR33H.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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.9.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import"./chunk-4ZUXTOUG.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.9.
|
|
2
|
-
import{b as u}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{b as u}from"./chunk-EVWNZEYV.js";import{a as f,c as h}from"./chunk-SMBQERK7.js";import"./chunk-4ZUXTOUG.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(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 n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.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")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.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
|
---
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import{a,b,c,d,e,f,g}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-PAXSPZ3F.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h}from"./chunk-TCNJ5NGT.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.21");process.exit(0)}
|
|
2
|
+
import"./chunk-GR4RXQXV.js";import{b as $}from"./chunk-6OYRNNP2.js";import{d as R}from"./chunk-QPSPIESU.js";import{b as k,c as C,d as b}from"./chunk-HJCJWPN5.js";import{c as W}from"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-4ZUXTOUG.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-MXHA63OC.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-MXHA63OC.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-FGZTTY3R.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.9.21");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-WY3H7VHF.js";import"./chunk-UOLIGPDW.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-OK5JHHXK.js";import"./chunk-SMBQERK7.js";import"./chunk-GDZ6XQRI.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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.9.
|
|
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.9.21");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-SMAC5IX4.js";import"./chunk-5FNEOJSD.js";import"./chunk-I3HLZASP.js";import"./chunk-OHR5ILR3.js";import"./chunk-MYZ43VKA.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-DBW745QA.js";import"./chunk-PEOTZFNZ.js";import"./chunk-SMBQERK7.js";import"./chunk-ACOEV3YB.js";import"./chunk-3Y7OZ2PC.js";import"./chunk-FBCLQTXO.js";import"./chunk-5EYQP3V3.js";import"./chunk-63PHZGO2.js";import"./chunk-ZUTYZIWQ.js";import"./chunk-KYPN6G7T.js";import"./chunk-NJICCYCB.js";import"./chunk-NV6AUEIH.js";import"./chunk-4ZUXTOUG.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};
|
|
@@ -308,6 +308,26 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
|
|
|
308
308
|
if (codeIndexResult.files.length > 0) {
|
|
309
309
|
await this.hypergraph.buildFromIndexResult(codeIndexResult);
|
|
310
310
|
logger.info(`Hypergraph rebuilt from ${codeIndexResult.files.length} indexed files`);
|
|
311
|
+
// Synthesize test-coverage shape so findUntestedFunctions /
|
|
312
|
+
// findImpactedTests have data to read. buildFromIndexResult
|
|
313
|
+
// only writes file/entity nodes, `contains` edges (Phase 2),
|
|
314
|
+
// and `imports` edges (Phase 3) — none of which match the
|
|
315
|
+
// `type='test'` + `type='covers'` filters those queries
|
|
316
|
+
// require. The synthesizer re-tags test-shaped file nodes
|
|
317
|
+
// and writes covers edges from each test file to the
|
|
318
|
+
// functions in the source files it imports. (Issue #439 /
|
|
319
|
+
// Jordi P220 follow-up.)
|
|
320
|
+
try {
|
|
321
|
+
const synth = await this.hypergraph.synthesizeTestCoverage();
|
|
322
|
+
if (synth.testsTagged > 0 || synth.coversCreated > 0) {
|
|
323
|
+
logger.info(`Test coverage synthesized: tests_tagged=${synth.testsTagged} covers_created=${synth.coversCreated}`);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
catch (synthError) {
|
|
327
|
+
// Non-fatal — hypergraph nodes/edges from buildFromIndexResult
|
|
328
|
+
// remain useful for module-dependency queries.
|
|
329
|
+
logger.warn(`Test coverage synthesis skipped: ${synthError instanceof Error ? synthError.message : synthError}`);
|
|
330
|
+
}
|
|
311
331
|
}
|
|
312
332
|
}
|
|
313
333
|
catch (hgError) {
|
|
@@ -9,10 +9,18 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module integrations/embeddings/index/HNSWIndex
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
let cachedHnswlibCtor = null;
|
|
13
|
+
function loadHnswlibConstructor() {
|
|
14
|
+
if (cachedHnswlibCtor)
|
|
15
|
+
return cachedHnswlibCtor;
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
17
|
+
const mod = require('hnswlib-node');
|
|
18
|
+
if (!mod.HierarchicalNSW) {
|
|
19
|
+
throw new Error('hnswlib-node module missing HierarchicalNSW export');
|
|
20
|
+
}
|
|
21
|
+
cachedHnswlibCtor = mod.HierarchicalNSW;
|
|
22
|
+
return cachedHnswlibCtor;
|
|
23
|
+
}
|
|
16
24
|
// ADR-071 Phase 2C: Always use unified HnswAdapter backend.
|
|
17
25
|
// The hnswlib-node legacy path below is retained as dead code for
|
|
18
26
|
// emergency rollback only — production always takes the adapter path.
|
|
@@ -86,7 +94,8 @@ export class HNSWEmbeddingIndex {
|
|
|
86
94
|
'dotproduct': 'ip',
|
|
87
95
|
};
|
|
88
96
|
const space = spaceMap[this.config.metric] || 'cosine';
|
|
89
|
-
const
|
|
97
|
+
const HierarchicalNSWCtor = loadHnswlibConstructor();
|
|
98
|
+
const index = new HierarchicalNSWCtor(space, this.config.dimension);
|
|
90
99
|
index.initIndex({
|
|
91
100
|
maxElements: 10000,
|
|
92
101
|
m: this.config.M,
|
|
@@ -221,7 +230,8 @@ export class HNSWEmbeddingIndex {
|
|
|
221
230
|
'dotproduct': 'ip',
|
|
222
231
|
};
|
|
223
232
|
const space = spaceMap[this.config.metric] || 'cosine';
|
|
224
|
-
const
|
|
233
|
+
const HierarchicalNSWCtor = loadHnswlibConstructor();
|
|
234
|
+
const index = new HierarchicalNSWCtor(space, this.config.dimension);
|
|
225
235
|
await index.readIndex(path);
|
|
226
236
|
this.indexes.set(namespace, index);
|
|
227
237
|
this.initialized.add(namespace);
|
|
@@ -348,6 +348,51 @@ export declare class HypergraphEngine {
|
|
|
348
348
|
getStats(): Promise<HypergraphStats>;
|
|
349
349
|
private ensureInitialized;
|
|
350
350
|
private mapEntityTypeToNodeType;
|
|
351
|
+
/**
|
|
352
|
+
* Synthesize test-coverage edges from existing index state.
|
|
353
|
+
*
|
|
354
|
+
* Closes the gap that left `findUntestedFunctions`/`findImpactedTests`
|
|
355
|
+
* blind on every project (issue #439 / Jordi P220 follow-up). The shape
|
|
356
|
+
* of the gap was: those queries filter on `type='test'` source nodes and
|
|
357
|
+
* `type='covers'` edges, but `buildFromIndexResult` only ever wrote
|
|
358
|
+
* `type='file'` nodes and `imports`/`contains` edges. Result: empty
|
|
359
|
+
* answers regardless of indexing activity.
|
|
360
|
+
*
|
|
361
|
+
* This synthesis runs as a post-step over what `buildFromIndexResult`
|
|
362
|
+
* already produced:
|
|
363
|
+
*
|
|
364
|
+
* 1. **Tag test files.** Re-type any file node whose path matches a
|
|
365
|
+
* test naming pattern (`.test.ts`, `.spec.ts`, `_test.py`, …) from
|
|
366
|
+
* `'file'` to `'test'`. Idempotent — re-tagging a node already
|
|
367
|
+
* typed `'test'` is a no-op. Existing-file UPDATEs in Phase 1 of
|
|
368
|
+
* `buildFromIndexResult` only touch `nodesUpdated++` counter (no
|
|
369
|
+
* column UPDATE), so the `'test'` tag survives subsequent indexes.
|
|
370
|
+
*
|
|
371
|
+
* 2. **Synthesize `covers` edges.** For each test file, walk its
|
|
372
|
+
* `imports` edges to find imported source files; for each source
|
|
373
|
+
* file, walk its `contains` edges to find function entities; write
|
|
374
|
+
* `INSERT OR REPLACE` `covers` edges from the test file to each
|
|
375
|
+
* such function. This is a heuristic — Jest/Vitest projects
|
|
376
|
+
* typically `import { Foo } from '../src/foo'` and exercise `Foo`'s
|
|
377
|
+
* methods in `it(...)` blocks; we treat that import structure as
|
|
378
|
+
* proxy evidence of coverage. A proper coverage harness (Istanbul/
|
|
379
|
+
* c8 lcov ingest) would produce sharper edges, but those would
|
|
380
|
+
* slot in via the same `covers` schema.
|
|
381
|
+
*
|
|
382
|
+
* Idempotent: repeated calls converge — `INSERT OR REPLACE` on the same
|
|
383
|
+
* edge id (`${testId}--covers-->${fnId}`) is a no-op for unchanged
|
|
384
|
+
* topology.
|
|
385
|
+
*
|
|
386
|
+
* @returns Counts: `testsTagged` (file→test re-types this call) and
|
|
387
|
+
* `coversCreated` (covers-edge writes this call, including
|
|
388
|
+
* replacements of existing rows).
|
|
389
|
+
*/
|
|
390
|
+
synthesizeTestCoverage(opts?: {
|
|
391
|
+
testPathPatterns?: RegExp[];
|
|
392
|
+
}): Promise<{
|
|
393
|
+
testsTagged: number;
|
|
394
|
+
coversCreated: number;
|
|
395
|
+
}>;
|
|
351
396
|
}
|
|
352
397
|
/**
|
|
353
398
|
* Create a new HypergraphEngine instance
|
|
@@ -767,7 +767,109 @@ export class HypergraphEngine {
|
|
|
767
767
|
};
|
|
768
768
|
return mapping[entityType] ?? 'function';
|
|
769
769
|
}
|
|
770
|
+
/**
|
|
771
|
+
* Synthesize test-coverage edges from existing index state.
|
|
772
|
+
*
|
|
773
|
+
* Closes the gap that left `findUntestedFunctions`/`findImpactedTests`
|
|
774
|
+
* blind on every project (issue #439 / Jordi P220 follow-up). The shape
|
|
775
|
+
* of the gap was: those queries filter on `type='test'` source nodes and
|
|
776
|
+
* `type='covers'` edges, but `buildFromIndexResult` only ever wrote
|
|
777
|
+
* `type='file'` nodes and `imports`/`contains` edges. Result: empty
|
|
778
|
+
* answers regardless of indexing activity.
|
|
779
|
+
*
|
|
780
|
+
* This synthesis runs as a post-step over what `buildFromIndexResult`
|
|
781
|
+
* already produced:
|
|
782
|
+
*
|
|
783
|
+
* 1. **Tag test files.** Re-type any file node whose path matches a
|
|
784
|
+
* test naming pattern (`.test.ts`, `.spec.ts`, `_test.py`, …) from
|
|
785
|
+
* `'file'` to `'test'`. Idempotent — re-tagging a node already
|
|
786
|
+
* typed `'test'` is a no-op. Existing-file UPDATEs in Phase 1 of
|
|
787
|
+
* `buildFromIndexResult` only touch `nodesUpdated++` counter (no
|
|
788
|
+
* column UPDATE), so the `'test'` tag survives subsequent indexes.
|
|
789
|
+
*
|
|
790
|
+
* 2. **Synthesize `covers` edges.** For each test file, walk its
|
|
791
|
+
* `imports` edges to find imported source files; for each source
|
|
792
|
+
* file, walk its `contains` edges to find function entities; write
|
|
793
|
+
* `INSERT OR REPLACE` `covers` edges from the test file to each
|
|
794
|
+
* such function. This is a heuristic — Jest/Vitest projects
|
|
795
|
+
* typically `import { Foo } from '../src/foo'` and exercise `Foo`'s
|
|
796
|
+
* methods in `it(...)` blocks; we treat that import structure as
|
|
797
|
+
* proxy evidence of coverage. A proper coverage harness (Istanbul/
|
|
798
|
+
* c8 lcov ingest) would produce sharper edges, but those would
|
|
799
|
+
* slot in via the same `covers` schema.
|
|
800
|
+
*
|
|
801
|
+
* Idempotent: repeated calls converge — `INSERT OR REPLACE` on the same
|
|
802
|
+
* edge id (`${testId}--covers-->${fnId}`) is a no-op for unchanged
|
|
803
|
+
* topology.
|
|
804
|
+
*
|
|
805
|
+
* @returns Counts: `testsTagged` (file→test re-types this call) and
|
|
806
|
+
* `coversCreated` (covers-edge writes this call, including
|
|
807
|
+
* replacements of existing rows).
|
|
808
|
+
*/
|
|
809
|
+
async synthesizeTestCoverage(opts) {
|
|
810
|
+
this.ensureInitialized();
|
|
811
|
+
const patterns = opts?.testPathPatterns ?? DEFAULT_TEST_PATH_PATTERNS;
|
|
812
|
+
let testsTagged = 0;
|
|
813
|
+
let coversCreated = 0;
|
|
814
|
+
const fileRows = this.config.db
|
|
815
|
+
.prepare(`SELECT id, file_path FROM hypergraph_nodes
|
|
816
|
+
WHERE type IN ('file', 'test') AND file_path IS NOT NULL`)
|
|
817
|
+
.all();
|
|
818
|
+
const testFileIds = [];
|
|
819
|
+
for (const row of fileRows) {
|
|
820
|
+
if (patterns.some((p) => p.test(row.file_path))) {
|
|
821
|
+
testFileIds.push(row.id);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
if (testFileIds.length === 0) {
|
|
825
|
+
return { testsTagged: 0, coversCreated: 0 };
|
|
826
|
+
}
|
|
827
|
+
const tagStmt = this.config.db.prepare(`UPDATE hypergraph_nodes SET type = 'test', updated_at = datetime('now')
|
|
828
|
+
WHERE id = ? AND type = 'file'`);
|
|
829
|
+
const findImportsStmt = this.config.db.prepare(`SELECT target_id FROM hypergraph_edges
|
|
830
|
+
WHERE source_id = ? AND type = 'imports'`);
|
|
831
|
+
const findFunctionsStmt = this.config.db.prepare(`SELECT n.id AS id FROM hypergraph_nodes n
|
|
832
|
+
JOIN hypergraph_edges e ON e.target_id = n.id
|
|
833
|
+
WHERE e.source_id = ? AND e.type = 'contains' AND n.type = 'function'`);
|
|
834
|
+
const insertCoversStmt = this.config.db.prepare(`
|
|
835
|
+
INSERT OR REPLACE INTO hypergraph_edges (id, source_id, target_id, type, weight)
|
|
836
|
+
VALUES (?, ?, ?, 'covers', 1.0)
|
|
837
|
+
`);
|
|
838
|
+
const txn = this.config.db.transaction(() => {
|
|
839
|
+
for (const testId of testFileIds) {
|
|
840
|
+
// (1) Re-tag — only counts the first transition file→test.
|
|
841
|
+
const taggedRows = tagStmt.run(testId).changes;
|
|
842
|
+
if (taggedRows > 0)
|
|
843
|
+
testsTagged++;
|
|
844
|
+
// (2) Walk imports → contains → write covers.
|
|
845
|
+
const importedFileIds = findImportsStmt.all(testId).map((r) => r.target_id);
|
|
846
|
+
for (const fileId of importedFileIds) {
|
|
847
|
+
const functionIds = findFunctionsStmt.all(fileId).map((r) => r.id);
|
|
848
|
+
for (const fnId of functionIds) {
|
|
849
|
+
const edgeId = `${testId}--covers-->${fnId}`;
|
|
850
|
+
insertCoversStmt.run(edgeId, testId, fnId);
|
|
851
|
+
coversCreated++;
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
});
|
|
856
|
+
txn();
|
|
857
|
+
return { testsTagged, coversCreated };
|
|
858
|
+
}
|
|
770
859
|
}
|
|
860
|
+
/**
|
|
861
|
+
* Test-file path patterns matched by {@link HypergraphEngine.synthesizeTestCoverage}.
|
|
862
|
+
* Mirrors `KnowledgeGraphService.isTestFile` so the two layers agree on what
|
|
863
|
+
* "looks like a test file" means.
|
|
864
|
+
*/
|
|
865
|
+
const DEFAULT_TEST_PATH_PATTERNS = [
|
|
866
|
+
/\.test\.[tj]sx?$/,
|
|
867
|
+
/\.spec\.[tj]sx?$/,
|
|
868
|
+
/_test\.[tj]sx?$/,
|
|
869
|
+
/test_.*\.py$/,
|
|
870
|
+
/.*_test\.py$/,
|
|
871
|
+
/.*_test\.go$/,
|
|
872
|
+
];
|
|
771
873
|
// ============================================================================
|
|
772
874
|
// Factory Functions
|
|
773
875
|
// ============================================================================
|