agentic-qe 3.10.2 → 3.10.3
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/release/SKILL.md +10 -10
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +55 -0
- package/assets/grammars/tree-sitter-c_sharp.wasm +0 -0
- package/assets/grammars/tree-sitter-java.wasm +0 -0
- package/assets/grammars/tree-sitter-javascript.wasm +0 -0
- package/assets/grammars/tree-sitter-python.wasm +0 -0
- package/assets/grammars/tree-sitter-rust.wasm +0 -0
- package/assets/grammars/tree-sitter-swift.wasm +0 -0
- package/assets/grammars/tree-sitter-tsx.wasm +0 -0
- package/assets/grammars/tree-sitter-typescript.wasm +0 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/agents/claim-verifier/claim-verifier-service.js +4 -2
- package/dist/agents/claim-verifier/verifiers/test-verifier.js +31 -23
- package/dist/agents/devils-advocate/agent.js +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-BHPUKMJ5.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-DHSIPFTH.js → agent-booster-wasm-NGC6LSQP.js} +2 -2
- package/dist/cli/chunks/{agent-handler-FPQVHGGT.js → agent-handler-P2IJE4GK.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-OLOF5ZHV.js → agent-memory-branch-JXRJ5GKQ.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-JQ5WD2HM.js +2 -0
- package/dist/cli/chunks/{audit-ALRYPHGP.js → audit-BMQ3VESB.js} +2 -2
- package/dist/cli/chunks/base-E32WLGY2.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-ZGSUMHDC.js → better-sqlite3-HP4JZS6K.js} +2 -2
- package/dist/cli/chunks/{brain-handler-ROZUHCOT.js → brain-handler-SACNDFSW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-VK7G4NKJ.js → branch-enumerator-LFOTVUDA.js} +2 -2
- package/dist/cli/chunks/{browser-Q2S75M2F.js → browser-FK7PRF3W.js} +2 -2
- package/dist/cli/chunks/browser-workflow-LNNXXAJG.js +2 -0
- package/dist/cli/chunks/{chunk-UWXH2UQK.js → chunk-2EQVYYBF.js} +2 -2
- package/dist/cli/chunks/{chunk-JF53LRBL.js → chunk-2L73WXA4.js} +2 -2
- package/dist/cli/chunks/{chunk-5HB54RUS.js → chunk-2ULVCLOW.js} +2 -2
- package/dist/cli/chunks/{chunk-UUFOHMUG.js → chunk-3HBWDG62.js} +2 -2
- package/dist/cli/chunks/{chunk-22D6VBPD.js → chunk-3JAOFKEU.js} +2 -2
- package/dist/cli/chunks/{chunk-XPCNUX2U.js → chunk-3LRK7PYN.js} +2 -2
- package/dist/cli/chunks/{chunk-WNR2KAUH.js → chunk-3RZL4QTT.js} +2 -2
- package/dist/cli/chunks/chunk-3VF3HCG4.js +2 -0
- package/dist/cli/chunks/{chunk-3Z4FHA2E.js → chunk-3X2ZQ55B.js} +4 -4
- package/dist/cli/chunks/{chunk-YACT5WFC.js → chunk-4CYLSXA6.js} +2 -2
- package/dist/cli/chunks/{chunk-7QRMARM7.js → chunk-4OUAHZX2.js} +2 -2
- package/dist/cli/chunks/{chunk-G5U6Q42D.js → chunk-4QFAUSWQ.js} +2 -2
- package/dist/cli/chunks/{chunk-SJH3HYNC.js → chunk-5ER3COX3.js} +2 -2
- package/dist/cli/chunks/{chunk-LZCBSFAU.js → chunk-5EWWA4QP.js} +4 -4
- package/dist/cli/chunks/{chunk-VSUTI4G6.js → chunk-5G5AAEFF.js} +2 -2
- package/dist/cli/chunks/{chunk-7V5UHLNY.js → chunk-5IBJURYB.js} +3 -3
- package/dist/cli/chunks/chunk-5LON3MLI.js +2 -0
- package/dist/cli/chunks/{chunk-3RHHKYUR.js → chunk-5SGEOO2F.js} +2 -2
- package/dist/cli/chunks/{chunk-6NZHEM4V.js → chunk-6B4S7PKP.js} +3 -3
- package/dist/cli/chunks/{chunk-MEY43PIQ.js → chunk-6FL3GN4T.js} +2 -2
- package/dist/cli/chunks/{chunk-Y63MBMOV.js → chunk-6GCOIIHY.js} +2 -2
- package/dist/cli/chunks/{chunk-EQBEGDTG.js → chunk-6Q2PPOOF.js} +1 -1
- package/dist/cli/chunks/{chunk-PXTDEO65.js → chunk-6ZK24V2Y.js} +2 -2
- package/dist/cli/chunks/{chunk-7Z46RDDV.js → chunk-72LE6PHL.js} +3 -3
- package/dist/cli/chunks/{chunk-SVYTN2GT.js → chunk-7RMZAVGO.js} +2 -2
- package/dist/cli/chunks/{chunk-S3OZ7XSY.js → chunk-7SEHQTYD.js} +1 -1
- package/dist/cli/chunks/{chunk-UYYBPWU3.js → chunk-7YYTTWGY.js} +1 -1
- package/dist/cli/chunks/{chunk-DRWGK3YO.js → chunk-7ZSPCGTI.js} +2 -2
- package/dist/cli/chunks/{chunk-UVU7XLJY.js → chunk-ADV4DH3W.js} +5 -5
- package/dist/cli/chunks/{chunk-FO43SQXP.js → chunk-AEJVOJPT.js} +2 -2
- package/dist/cli/chunks/{chunk-ETN5563K.js → chunk-B5MMDMH6.js} +2 -2
- package/dist/cli/chunks/{chunk-ZXTO4C7R.js → chunk-BO2OV2RH.js} +2 -2
- package/dist/cli/chunks/{chunk-TJKDATEU.js → chunk-BT3QLWII.js} +2 -2
- package/dist/cli/chunks/{chunk-AV7KYE5P.js → chunk-BWP3UVPE.js} +5 -5
- package/dist/cli/chunks/{chunk-PEK6NGVJ.js → chunk-C6BBRM2J.js} +1 -1
- package/dist/cli/chunks/{chunk-ORF2UKQH.js → chunk-CAMEFWRK.js} +1 -1
- package/dist/cli/chunks/{chunk-EVCOCGVJ.js → chunk-CNEWYJKT.js} +4 -4
- package/dist/cli/chunks/{chunk-MYWQTCS4.js → chunk-CTDO2UB2.js} +1 -1
- package/dist/cli/chunks/{chunk-2OH3ALYB.js → chunk-D2FBUOAR.js} +1 -1
- package/dist/cli/chunks/{chunk-ZDHMZPSL.js → chunk-DF3MJ2YL.js} +1 -1
- package/dist/cli/chunks/{chunk-7SJX4CFK.js → chunk-DY5KEOHX.js} +1 -1
- package/dist/cli/chunks/{chunk-DZZEHPSJ.js → chunk-E2BJT6A7.js} +3 -3
- package/dist/cli/chunks/{chunk-2244IFZA.js → chunk-EETVN2OJ.js} +1 -1
- package/dist/cli/chunks/{chunk-FY3CUPNN.js → chunk-ERYMAYJW.js} +2 -2
- package/dist/cli/chunks/{chunk-ZK2BH23O.js → chunk-FJGSEPFL.js} +2 -2
- package/dist/cli/chunks/{chunk-HJORBNXW.js → chunk-FLTPHVZ3.js} +1 -1
- package/dist/cli/chunks/{chunk-RLXTBL3H.js → chunk-FND6V2RV.js} +22 -22
- package/dist/cli/chunks/{chunk-PIZYRPMT.js → chunk-FU77CDEM.js} +2 -2
- package/dist/cli/chunks/{chunk-HA63NBFK.js → chunk-GELF4ILR.js} +37 -37
- package/dist/cli/chunks/{chunk-U3EUH6LX.js → chunk-GHNNJHH3.js} +2 -2
- package/dist/cli/chunks/{chunk-NZO4WUSO.js → chunk-GJUGSH7T.js} +3 -3
- package/dist/cli/chunks/{chunk-QJ2EHLJ2.js → chunk-GL3HZN3O.js} +1 -1
- package/dist/cli/chunks/{chunk-MMIQ5DMA.js → chunk-H56AROF2.js} +2 -2
- package/dist/cli/chunks/{chunk-AWFIEGR3.js → chunk-HAO3SPOE.js} +2 -2
- package/dist/cli/chunks/{chunk-MNUTRAUV.js → chunk-HM523MTQ.js} +1 -1
- package/dist/cli/chunks/{chunk-IICTTDAA.js → chunk-HMFEPKAR.js} +2 -2
- package/dist/cli/chunks/{chunk-4GTDW2XL.js → chunk-HQJMCTWN.js} +2 -2
- package/dist/cli/chunks/{chunk-5PL7WTCU.js → chunk-HRLXU4LH.js} +2 -2
- package/dist/cli/chunks/{chunk-5WJ3FWL4.js → chunk-HWM2XJ3P.js} +24 -24
- package/dist/cli/chunks/{chunk-BQCSCAUC.js → chunk-I42R57ON.js} +2 -2
- package/dist/cli/chunks/chunk-IL2KOW5W.js +2 -0
- package/dist/cli/chunks/{chunk-QSE67XJO.js → chunk-IRR7YA3Q.js} +2 -2
- package/dist/cli/chunks/{chunk-FPAW77XV.js → chunk-JD2PG4KS.js} +1 -1
- package/dist/cli/chunks/{chunk-LQTWPSYL.js → chunk-JE3C7JYN.js} +1 -1
- package/dist/cli/chunks/{chunk-6KSCXPPL.js → chunk-JLL27IGU.js} +2 -2
- package/dist/cli/chunks/{chunk-7DKYCVJI.js → chunk-JOLDCS6X.js} +2 -2
- package/dist/cli/chunks/{chunk-YNNOY3XN.js → chunk-JP63XACW.js} +2 -2
- package/dist/cli/chunks/{chunk-ZQUXNG5X.js → chunk-JSFYPLMQ.js} +2 -2
- package/dist/cli/chunks/{chunk-MNV3E5KY.js → chunk-JTF6D2RJ.js} +4 -4
- package/dist/cli/chunks/{chunk-OXCEUR5F.js → chunk-JTZ3Q2QS.js} +2 -2
- package/dist/cli/chunks/{chunk-OPFN5LFT.js → chunk-JXIPRMAY.js} +4 -4
- package/dist/cli/chunks/{chunk-XDU624HU.js → chunk-KG5SM36Y.js} +1 -1
- package/dist/cli/chunks/{chunk-SW4OKUTC.js → chunk-KTRB3L53.js} +2 -2
- package/dist/cli/chunks/{chunk-MCZHKXB4.js → chunk-L74CHKFR.js} +2 -2
- package/dist/cli/chunks/{chunk-2EDWGHDA.js → chunk-LZ6TNTGO.js} +2 -2
- package/dist/cli/chunks/{chunk-5PRFFHFV.js → chunk-M5CDW2ZH.js} +2 -2
- package/dist/cli/chunks/{chunk-PYIHZXCI.js → chunk-MBSJ5G4I.js} +4 -4
- package/dist/cli/chunks/{chunk-OIRZJCZY.js → chunk-MC7K44M4.js} +2 -2
- package/dist/cli/chunks/{chunk-2JDLQWSV.js → chunk-MQOFFRTA.js} +2 -2
- package/dist/cli/chunks/{chunk-4BXGVM2C.js → chunk-N7IBYDW5.js} +1 -1
- package/dist/cli/chunks/{chunk-MCOFJHSJ.js → chunk-NEYYLAYS.js} +5 -5
- package/dist/cli/chunks/{chunk-A5RMQG4N.js → chunk-NNVXHC74.js} +3 -3
- package/dist/cli/chunks/{chunk-QBRHKTFT.js → chunk-NNZMEYLT.js} +1 -1
- package/dist/cli/chunks/{chunk-WDMPJ2M2.js → chunk-NRCL3WCP.js} +2 -2
- package/dist/cli/chunks/{chunk-ZGNZJJFF.js → chunk-NXPFGPHV.js} +1 -1
- package/dist/cli/chunks/{chunk-AH7FXNFE.js → chunk-NZHOKLII.js} +3 -3
- package/dist/cli/chunks/{chunk-EA7ZSN3V.js → chunk-OG7CWWFR.js} +1 -1
- package/dist/cli/chunks/{chunk-YWZHMXTO.js → chunk-OPDTDKN3.js} +2 -2
- package/dist/cli/chunks/{chunk-24LUQICS.js → chunk-OX4R55T3.js} +2 -2
- package/dist/cli/chunks/{chunk-QEPFXY6G.js → chunk-PFCAMX6H.js} +1 -1
- package/dist/cli/chunks/{chunk-DMQPO43S.js → chunk-PL5SLO2W.js} +1 -1
- package/dist/cli/chunks/{chunk-XGBAHAGC.js → chunk-PZHZPX3O.js} +4 -4
- package/dist/cli/chunks/{chunk-HJME6G5M.js → chunk-Q7EBD24B.js} +1 -1
- package/dist/cli/chunks/{chunk-4F3ZTXHP.js → chunk-QEODION5.js} +2 -2
- package/dist/cli/chunks/{chunk-AIUSZC6K.js → chunk-QM65UGPV.js} +2 -2
- package/dist/cli/chunks/{chunk-HHCYSAH3.js → chunk-QWG76RHA.js} +2 -2
- package/dist/cli/chunks/{chunk-5QHSLWLP.js → chunk-R5ONQAQL.js} +2 -2
- package/dist/cli/chunks/{chunk-S3ZO7JXS.js → chunk-RNF47IJ5.js} +4 -4
- package/dist/cli/chunks/{chunk-AOI67HA3.js → chunk-RTDHWOAG.js} +1 -1
- package/dist/cli/chunks/{chunk-C2M74HCN.js → chunk-RZCAA2PZ.js} +1 -1
- package/dist/cli/chunks/{chunk-7IVQ6OVR.js → chunk-SL6YZAT4.js} +2 -2
- package/dist/cli/chunks/{chunk-KB5L5TTF.js → chunk-SNTMAVPH.js} +5 -5
- package/dist/cli/chunks/{chunk-XTCUN36Z.js → chunk-SWOG3PBD.js} +2 -2
- package/dist/cli/chunks/{chunk-7IZ2OPC2.js → chunk-T63EK6GH.js} +2 -2
- package/dist/cli/chunks/chunk-U6UK3UMX.js +59 -0
- package/dist/cli/chunks/{chunk-7SWD3D6Y.js → chunk-U7NMPZE2.js} +2 -2
- package/dist/cli/chunks/{chunk-THRTUW4Z.js → chunk-UDV4YB42.js} +1 -1
- package/dist/cli/chunks/{chunk-CV2SBMBW.js → chunk-UHDBM7QS.js} +2 -2
- package/dist/cli/chunks/{chunk-CIRPP7RQ.js → chunk-UIJFU4KD.js} +2 -2
- package/dist/cli/chunks/{chunk-L7VIX22Y.js → chunk-USFZ4IJD.js} +2 -2
- package/dist/cli/chunks/{chunk-CMACGG4Z.js → chunk-UZL366ZI.js} +1 -1
- package/dist/cli/chunks/{chunk-QQNCSEZG.js → chunk-VDTFRMES.js} +2 -2
- package/dist/cli/chunks/{chunk-6ZFHIKQG.js → chunk-VIWIO27R.js} +3 -3
- package/dist/cli/chunks/{chunk-YI6GNRQM.js → chunk-VRXY4T22.js} +2 -2
- package/dist/cli/chunks/{chunk-WSVUSIAZ.js → chunk-WPVCSFDA.js} +2 -2
- package/dist/cli/chunks/{chunk-X2VAOIUY.js → chunk-WWD5IWTV.js} +1 -1
- package/dist/cli/chunks/{chunk-WZJUMJ2S.js → chunk-X2B7SANM.js} +1 -1
- package/dist/cli/chunks/{chunk-R2O6OKT2.js → chunk-X3RJ6SFC.js} +1 -1
- package/dist/cli/chunks/{chunk-OWQ6HEYI.js → chunk-XTP2GHI7.js} +2 -2
- package/dist/cli/chunks/{chunk-XRJECWZE.js → chunk-YDDZJCKY.js} +1 -1
- package/dist/cli/chunks/{chunk-HO37VP4O.js → chunk-YDKYLNKZ.js} +1 -1
- package/dist/cli/chunks/{chunk-ON4D4TJ4.js → chunk-YIYV2JB6.js} +2 -2
- package/dist/cli/chunks/{chunk-RNREAOY4.js → chunk-YX2HY4MX.js} +2 -2
- package/dist/cli/chunks/{chunk-XDSA7YUQ.js → chunk-YXH2CVAF.js} +1 -1
- package/dist/cli/chunks/{chunk-XMJTTF5N.js → chunk-YYAPO3CU.js} +3 -3
- package/dist/cli/chunks/{chunk-STEGWLH5.js → chunk-Z2K5IZM6.js} +2 -2
- package/dist/cli/chunks/{chunk-OIEQF7PG.js → chunk-ZG4P3DTL.js} +2 -2
- package/dist/cli/chunks/{chunk-CTDLI2ON.js → chunk-ZXQNE4QV.js} +1 -1
- package/dist/cli/chunks/{ci-PYCRCL7G.js → ci-AWZ3S5OT.js} +6 -6
- package/dist/cli/chunks/{ci-output-EKQQFE2D.js → ci-output-JLCYTIMT.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-RH3Q2MJO.js → circuit-breaker-BJDKBDIL.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-DUDXB4VV.js → claude-flow-setup-KKOP5ZMO.js} +2 -2
- package/dist/cli/chunks/client-2UKBYFX4.js +2 -0
- package/dist/cli/chunks/{cline-installer-3Q4WIWUG.js → cline-installer-7M525SEA.js} +2 -2
- package/dist/cli/chunks/{code-E4Q6DGOO.js → code-27SUVJDO.js} +20 -19
- package/dist/cli/chunks/{code-index-extractor-2PCISUOW.js → code-index-extractor-TTQQZLAK.js} +2 -2
- package/dist/cli/chunks/{codex-installer-YNNNOLJ6.js → codex-installer-GHNGNPKP.js} +2 -2
- package/dist/cli/chunks/{completions-2F7TUFBD.js → completions-JPJD24DG.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-2B6MHO7W.js → complexity-analyzer-Q74EJV33.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-ENOKRU5M.js → continuedev-installer-ULTRDIML.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-6YD2KM5F.js → copilot-installer-EK52X4CG.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-FCH4QOEA.js → cost-tracker-2GKBRYXL.js} +2 -2
- package/dist/cli/chunks/{coverage-JTOXZE3T.js → coverage-YCLC3W2A.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-FPM3L27L.js +2 -0
- package/dist/cli/chunks/{cursor-installer-QZFBUGLQ.js → cursor-installer-B3ALFW5E.js} +2 -2
- package/dist/cli/chunks/{daemon-M422U3ZA.js → daemon-YWINEHG4.js} +4 -4
- package/dist/cli/chunks/{daemon-K4QFB5FQ.js → daemon-ZKEBVLJA.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-BXAAW33V.js → dag-attention-scheduler-OQPJ6ULA.js} +2 -2
- package/dist/cli/chunks/{detect-UGSWIOAD.js → detect-YMYIQH3Q.js} +2 -2
- package/dist/cli/chunks/{dist-node-FN3HX3OK.js → dist-node-R4FAYQRY.js} +2 -2
- package/dist/cli/chunks/{domain-handler-7PP7VYA7.js → domain-handler-IGWXLF2S.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-XZM44W7I.js → domain-transfer-A7YNO76C.js} +2 -2
- package/dist/cli/chunks/dream-XM33US3V.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-JZVERJ5L.js → embed-and-insert-pattern-KODZAS7Y.js} +2 -2
- package/dist/cli/chunks/{eval-466NFF2D.js → eval-ALQW7Q2S.js} +3 -3
- package/dist/cli/chunks/{experience-capture-middleware-I7IQCC7V.js → experience-capture-middleware-3WK4RXWK.js} +3 -3
- package/dist/cli/chunks/{fast-paths-34OICNZA.js → fast-paths-PQWDFIJZ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-X5WBBWSO.js → feature-flags-6X33B3WX.js} +2 -2
- package/dist/cli/chunks/{feature-flags-6UBIVTAD.js → feature-flags-JRUAZCND.js} +2 -2
- package/dist/cli/chunks/{file-discovery-NLMDBWXX.js → file-discovery-SA3YU3IH.js} +2 -2
- package/dist/cli/chunks/{fleet-W7CYCHDI.js → fleet-7TXCAOKQ.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-K4VTAG5X.js → gnn-wrapper-ZKNYACEC.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ZGKF2Z6T.js → heartbeat-handler-KRZRZ23F.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-GM3M2MTG.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-K62GEHIL.js +2 -0
- package/dist/cli/chunks/hnsw-index-VCAK3TWN.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-ELDRLKK5.js → hnsw-legacy-bridge-LVHQ5SG7.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-5BT5FO64.js → hnswlib-node-64EGGWIC.js} +2 -2
- package/dist/cli/chunks/{hooks-T4CBINAV.js → hooks-6Y3UHYI2.js} +12 -12
- package/dist/cli/chunks/hybrid-router-432QNCNG.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-UWFW3XP5.js → hypergraph-engine-2EZBZMFK.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-PK2BI46K.js → hypergraph-handler-GLPWYII2.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-VTSISNN4.js +2 -0
- package/dist/cli/chunks/{init-handler-HNG6KJOU.js → init-handler-ZSDO5VMA.js} +6 -6
- package/dist/cli/chunks/init-wizard-COB5AH7Q.js +2 -0
- package/dist/cli/chunks/kernel-ROK7X5FM.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-25V7FEJ4.js → kilocode-installer-ATYSDWIV.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-7RMTTCQB.js → kiro-installer-K66YT6PC.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-YUWIDIWW.js +2 -0
- package/dist/cli/chunks/{learning-XQC2MG2R.js → learning-BVYCC4RI.js} +3 -3
- package/dist/cli/chunks/{llm-router-6KTTONH4.js → llm-router-VBCXE6DN.js} +12 -12
- package/dist/cli/chunks/llm-router-service-7VLXJ7VE.js +2 -0
- package/dist/cli/chunks/{load-BV64P3AL.js → load-AREDQE2U.js} +2 -2
- package/dist/cli/chunks/load-test-32524DL3.js +2 -0
- package/dist/cli/chunks/{mcp-U5ZN77TA.js → mcp-NG6H6UC5.js} +2 -2
- package/dist/cli/chunks/{memory-WB5BNBK7.js → memory-Y65EHG6N.js} +5 -5
- package/dist/cli/chunks/memory-backend-BI2V5AAB.js +2 -0
- package/dist/cli/chunks/memory-handlers-NSOFWVFN.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-3X3W3UTY.js → multi-model-executor-VRPRFUZT.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-TTTMG7ZZ.js → opencode-installer-CKQXPM5R.js} +3 -3
- package/dist/cli/chunks/{orchestrator-BLCGSHMZ.js → orchestrator-I7JBKD6G.js} +8 -8
- package/dist/cli/chunks/{pipeline-DZPGMRG7.js → pipeline-MV2RWCBI.js} +2 -2
- package/dist/cli/chunks/{platform-EVMZAUNV.js → platform-VU5P3SOG.js} +2 -2
- package/dist/cli/chunks/{plugin-OR55K4HT.js → plugin-6TERLKCB.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-4ODV27HD.js → prime-radiant-advanced-wasm-WIUIN2DL.js} +2 -2
- package/dist/cli/chunks/protocol-executor-2UPB7SPI.js +2 -0
- package/dist/cli/chunks/{protocol-handler-ZOTI5PID.js → protocol-handler-HKWBGARO.js} +2 -2
- package/dist/cli/chunks/{prove-DIMBYJ7V.js → prove-7CQPHBRJ.js} +2 -2
- package/dist/cli/chunks/provider-manager-PDT37MIJ.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-AQQ2BI4V.js +2 -0
- package/dist/cli/chunks/{quality-7MX4VL6M.js → quality-VLUVXKVG.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-6DVDVEU4.js +2 -0
- package/dist/cli/chunks/{real-embeddings-YPUHWRN2.js → real-embeddings-JPZ64KK2.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-WG5AU4QM.js → roocode-installer-NONVB3UE.js} +2 -2
- package/dist/cli/chunks/router-O2G4KQ6L.js +2 -0
- package/dist/cli/chunks/routing-feedback-TAGTD3KQ.js +2 -0
- package/dist/cli/chunks/{routing-handler-LZB4MN2K.js → routing-handler-YYXDT4J2.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-YE4ADBMC.js → ruvector-commands-5PFMNDLR.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-QS5ATW4C.js → rvf-dual-writer-TF6H7AXH.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-YIGKSBD3.js → rvf-migration-adapter-VNGIUZCO.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-2NDCWP7F.js → rvf-migration-coordinator-VA52YAIY.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-46GRWQJR.js +2 -0
- package/dist/cli/chunks/safe-db-LNIPXXHH.js +2 -0
- package/dist/cli/chunks/schedule-AUH3ZALY.js +2 -0
- package/dist/cli/chunks/scheduler-KK3OYPWW.js +2 -0
- package/dist/cli/chunks/{security-HT4SUT24.js → security-62HEETBF.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-4IZOJL33.js → shared-rvf-adapter-XWTQPGCT.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-ZKFO7CBY.js → shared-rvf-dual-writer-JTZK7LRD.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-CYESP7NG.js +2 -0
- package/dist/cli/chunks/{status-handler-AMEMKBI4.js → status-handler-LSUPUKRF.js} +2 -2
- package/dist/cli/chunks/{structural-health-RBADRLC3.js → structural-health-Z75A666N.js} +2 -2
- package/dist/cli/chunks/{sync-PCB23M4K.js → sync-M3O4T3A3.js} +2 -2
- package/dist/cli/chunks/{sync-ARDDLQBS.js → sync-VI37UHHH.js} +2 -2
- package/dist/cli/chunks/{task-handler-J26FSCH5.js → task-handler-AQBSZAQC.js} +2 -2
- package/dist/cli/chunks/{task-handlers-AQRLR6BL.js → task-handlers-BOZP247V.js} +3 -3
- package/dist/cli/chunks/{test-YXWSIOSB.js → test-FTEGPNN2.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-XY532GI4.js → test-scheduling-IGR4U2VQ.js} +4 -4
- package/dist/cli/chunks/{token-bootstrap-KL2QIQ36.js → token-bootstrap-2DFRVMBM.js} +2 -2
- package/dist/cli/chunks/{token-usage-2MJVE4DT.js → token-usage-VCHV47EO.js} +3 -3
- package/dist/cli/chunks/{transformers-QSNTOD2Z.js → transformers-M27QSNFH.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-IIGEJYFU.js +2 -0
- package/dist/cli/chunks/{types-RNKRSYMO.js → types-RQFPUUKA.js} +2 -2
- package/dist/cli/chunks/unified-memory-RISHEANP.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-2IKXGMNZ.js +2 -0
- package/dist/cli/chunks/unified-persistence-ZTTUJNTU.js +2 -0
- package/dist/cli/chunks/{upgrade-EKJHIFWP.js → upgrade-VJMYX3AL.js} +2 -2
- package/dist/cli/chunks/{validate-KS4T7LWC.js → validate-ML7HUAU5.js} +4 -4
- package/dist/cli/chunks/{validate-swarm-SKKWRP2H.js → validate-swarm-RCR6EYRC.js} +7 -7
- package/dist/cli/chunks/{vibium-FLUQO4IF.js → vibium-ZOOS3W5L.js} +2 -2
- package/dist/cli/chunks/visual-security-D66DTAO5.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-UMC63DWD.js → web-tree-sitter-2YPGYLWK.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-V3FQGJIQ.js → windsurf-installer-GOJWUWC5.js} +2 -2
- package/dist/cli/chunks/{witness-chain-GE74TLSO.js → witness-chain-3MGSS3Q4.js} +2 -2
- package/dist/cli/chunks/witness-chain-RHWHHDLV.js +2 -0
- package/dist/cli/chunks/{workflow-4YZ2RPWA.js → workflow-B5Q77BI4.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-OQMFW2TC.js +2 -0
- package/dist/cli/chunks/{wrappers-37NLMKPE.js → wrappers-MM5VLEPG.js} +2 -2
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/learning.js +5 -5
- package/dist/cli/commands/llm-router.js +1 -1
- package/dist/cli/commands/workflow.js +1 -0
- package/dist/coordination/consensus/providers/native-learning-provider.d.ts +1 -1
- package/dist/coordination/consensus/providers/ollama-provider.d.ts +1 -1
- package/dist/coordination/consensus/providers/openrouter-provider.d.ts +1 -1
- package/dist/coordination/handlers/code-intelligence-handlers.js +6 -0
- package/dist/coordination/mincut/neural-goap.js +24 -20
- package/dist/coordination/protocols/code-intelligence-index.js +31 -25
- package/dist/coordination/queen-coordinator.js +4 -0
- package/dist/coordination/queen-work-stealing.js +1 -2
- package/dist/domains/chaos-resilience/coordinator.js +19 -15
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +5 -2
- package/dist/domains/chaos-resilience/services/load-tester.js +15 -11
- package/dist/domains/code-intelligence/interfaces.d.ts +5 -0
- package/dist/domains/code-intelligence/services/c4-model/index.js +12 -6
- package/dist/domains/code-intelligence/services/impact-analyzer.js +6 -2
- package/dist/domains/code-intelligence/services/knowledge-graph.d.ts +42 -0
- package/dist/domains/code-intelligence/services/knowledge-graph.js +278 -93
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +8 -2
- package/dist/domains/contract-testing/coordinator.js +1 -1
- package/dist/domains/coverage-analysis/coordinator.js +4 -2
- package/dist/domains/learning-optimization/coordinator.js +1 -0
- package/dist/domains/quality-assessment/coherence/gate-controller.js +32 -26
- package/dist/domains/requirements-validation/coordinator.js +1 -0
- package/dist/domains/test-execution/services/e2e/wait-condition-handler.js +1 -1
- package/dist/domains/test-execution/services/retry-handler.js +18 -12
- package/dist/domains/test-generation/coordinator.js +1 -1
- package/dist/domains/test-generation/services/pattern-matcher.js +7 -5
- package/dist/domains/test-generation/services/test-generator.js +3 -2
- package/dist/domains/visual-accessibility/coordinator.js +24 -20
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/init/phases/12-verification.js +3 -3
- package/dist/integrations/agentic-flow/model-router/router.js +1 -1
- package/dist/integrations/embeddings/base/EmbeddingGenerator.js +11 -7
- package/dist/integrations/ruvector/hypergraph-engine.js +2 -2
- package/dist/integrations/ruvector/spectral-math.js +2 -2
- package/dist/integrations/ruvector/spectral-sparsifier.js +1 -1
- package/dist/kernel/kernel.js +1 -1
- package/dist/kernel/unified-memory-hnsw.js +1 -0
- package/dist/learning/experience-capture.js +1 -1
- package/dist/learning/qe-reasoning-bank.js +9 -1
- package/dist/learning/qe-unified-memory.js +8 -6
- package/dist/mcp/bundle.js +354 -354
- package/dist/mcp/handlers/core-handlers.js +2 -2
- package/dist/mcp/handlers/cross-phase-handlers.js +5 -3
- package/dist/mcp/handlers/handler-factory.d.ts +5 -0
- package/dist/mcp/handlers/handler-factory.js +44 -4
- package/dist/mcp/http-server.js +1 -0
- package/dist/mcp/protocol-server.js +2 -2
- package/dist/mcp/tools/code-intelligence/analyze.js +1 -1
- package/dist/mcp/tools/learning-optimization/optimize.js +1 -1
- package/dist/mcp/tools/qx-analysis/heuristics-engine.js +195 -173
- package/dist/mcp/tools/visual-accessibility/index.js +1 -1
- package/dist/mcp/transport/websocket/websocket-transport.js +1 -0
- package/dist/optimization/auto-tuner.js +1 -1
- package/dist/planning/goap-planner.js +1 -0
- package/dist/routing/agent-dependency-graph.js +4 -1
- package/dist/shared/llm/router/config-store.js +1 -1
- package/dist/shared/metrics/system-metrics.js +6 -4
- package/dist/shared/parsers/tree-sitter-wasm-parser.d.ts +12 -0
- package/dist/shared/parsers/tree-sitter-wasm-parser.js +35 -0
- package/dist/shared/parsers/treesitter-ts-extractor.d.ts +39 -0
- package/dist/shared/parsers/treesitter-ts-extractor.js +196 -0
- package/dist/shared/utils/safe-expression-evaluator.js +8 -5
- package/dist/sync/cloud/postgres-writer.js +2 -0
- package/dist/sync/readers/json-reader.js +1 -1
- package/dist/test-scheduling/git-aware/test-selector.js +1 -1
- package/dist/workers/quality-daemon/index.js +26 -24
- package/package.json +5 -4
- package/dist/cli/chunks/adapter-CR6J5C76.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-2MNTHMB6.js +0 -2
- package/dist/cli/chunks/base-AOQNGMTL.js +0 -2
- package/dist/cli/chunks/browser-workflow-UJ4A2ZXO.js +0 -2
- package/dist/cli/chunks/chunk-FO73PZVU.js +0 -2
- package/dist/cli/chunks/chunk-I677W5BT.js +0 -59
- package/dist/cli/chunks/chunk-IAZEDWRX.js +0 -2
- package/dist/cli/chunks/client-RDPWGOSA.js +0 -2
- package/dist/cli/chunks/cross-domain-router-4K5ZVZEZ.js +0 -2
- package/dist/cli/chunks/dream-RPNWM7VS.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-JBCXMMZO.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-3SC2HZIG.js +0 -2
- package/dist/cli/chunks/hnsw-index-FQORAR6K.js +0 -2
- package/dist/cli/chunks/hybrid-router-6CBFDXPR.js +0 -2
- package/dist/cli/chunks/impact-analyzer-SOEFVZWG.js +0 -2
- package/dist/cli/chunks/init-wizard-3E4IU5M4.js +0 -2
- package/dist/cli/chunks/kernel-GFZP4G5J.js +0 -2
- package/dist/cli/chunks/knowledge-graph-BKRKBU26.js +0 -2
- package/dist/cli/chunks/llm-router-service-KE4IGZPP.js +0 -2
- package/dist/cli/chunks/load-test-VSYJV2AO.js +0 -2
- package/dist/cli/chunks/memory-backend-B72RGHRF.js +0 -2
- package/dist/cli/chunks/memory-handlers-NWCH7AUO.js +0 -2
- package/dist/cli/chunks/protocol-executor-V3F37FPO.js +0 -2
- package/dist/cli/chunks/provider-manager-2PN72TT6.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-P665QNIR.js +0 -2
- package/dist/cli/chunks/queen-coordinator-XD4F7BGB.js +0 -2
- package/dist/cli/chunks/router-4SSNWDJC.js +0 -2
- package/dist/cli/chunks/routing-feedback-O2JSIBW6.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-WIUHYXRB.js +0 -2
- package/dist/cli/chunks/safe-db-WL5Y7ZNS.js +0 -2
- package/dist/cli/chunks/schedule-U7QDGU5A.js +0 -2
- package/dist/cli/chunks/scheduler-LXKGQYXA.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-4KFO3SEB.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-QJOKHOIW.js +0 -2
- package/dist/cli/chunks/unified-memory-7AS4LIEF.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-GREESNJX.js +0 -2
- package/dist/cli/chunks/unified-persistence-BPJOMZOA.js +0 -2
- package/dist/cli/chunks/visual-security-BW662FHQ.js +0 -2
- package/dist/cli/chunks/witness-chain-OXVDLNVT.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-KKNR46XV.js +0 -2
|
@@ -98,7 +98,10 @@ export function parseDependenciesFromFrontmatter(content) {
|
|
|
98
98
|
const listStart = trimmed.match(/^-\s+(\w+):\s*(.*)$/);
|
|
99
99
|
if (listStart) {
|
|
100
100
|
if (st.inList) {
|
|
101
|
-
st.section === 'agents'
|
|
101
|
+
if (st.section === 'agents')
|
|
102
|
+
flushAgent();
|
|
103
|
+
else
|
|
104
|
+
flushMcp();
|
|
102
105
|
}
|
|
103
106
|
st.inList = true;
|
|
104
107
|
st.item = { [listStart[1]]: parseYamlValue(listStart[2]) };
|
|
@@ -148,7 +148,7 @@ function stripApiKeys(config) {
|
|
|
148
148
|
return JSON.parse(JSON.stringify(config));
|
|
149
149
|
}
|
|
150
150
|
const cloned = JSON.parse(JSON.stringify(config));
|
|
151
|
-
|
|
151
|
+
const strippedProviders = [];
|
|
152
152
|
if (cloned.providers) {
|
|
153
153
|
for (const provider of Object.keys(cloned.providers)) {
|
|
154
154
|
const entry = cloned.providers[provider];
|
|
@@ -127,10 +127,12 @@ export class SystemMetricsCollector {
|
|
|
127
127
|
return metrics.cpu.loadAverage[2];
|
|
128
128
|
default:
|
|
129
129
|
// For unknown metrics, return from history or 0
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
{
|
|
131
|
+
const history = this.metricHistory.get(metricName);
|
|
132
|
+
return history && history.length > 0
|
|
133
|
+
? history[history.length - 1].value
|
|
134
|
+
: 0;
|
|
135
|
+
}
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
/**
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import type { SupportedLanguage } from '../types/test-frameworks.js';
|
|
14
14
|
import type { ILanguageParser, ParsedFile } from './interfaces.js';
|
|
15
|
+
type SyntaxNode = any;
|
|
15
16
|
export declare class TreeSitterWASMParser implements ILanguageParser {
|
|
16
17
|
readonly language: SupportedLanguage;
|
|
17
18
|
readonly supportedExtensions: string[];
|
|
@@ -25,8 +26,19 @@ export declare function createWasmParsers(): Map<SupportedLanguage, ILanguagePar
|
|
|
25
26
|
* Returns true if the dependency is installed; does NOT initialize WASM.
|
|
26
27
|
*/
|
|
27
28
|
export declare function isWasmAvailable(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Generic grammar loader for callers outside the GRAMMAR_CONFIG set (e.g. the
|
|
31
|
+
* code-intelligence TS/JS extractor). Reuses the proven WASM init + grammar
|
|
32
|
+
* path resolution. Returns a `parse(code)` that yields a tree-sitter tree
|
|
33
|
+
* (caller must call `tree.delete()`), or null if WASM/grammar is unavailable so
|
|
34
|
+
* the caller can fall back.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadWasmGrammar(wasmFile: string): Promise<{
|
|
37
|
+
parse: (code: string) => SyntaxNode;
|
|
38
|
+
} | null>;
|
|
28
39
|
/**
|
|
29
40
|
* Reset internal state — for testing only.
|
|
30
41
|
*/
|
|
31
42
|
export declare function _resetWasmState(): void;
|
|
43
|
+
export {};
|
|
32
44
|
//# sourceMappingURL=tree-sitter-wasm-parser.d.ts.map
|
|
@@ -1027,6 +1027,41 @@ export function isWasmAvailable() {
|
|
|
1027
1027
|
return false;
|
|
1028
1028
|
}
|
|
1029
1029
|
}
|
|
1030
|
+
// Cache of loaded grammars keyed by wasm filename, for the generic loader below.
|
|
1031
|
+
const loadedGrammarsByFile = new Map();
|
|
1032
|
+
/**
|
|
1033
|
+
* Generic grammar loader for callers outside the GRAMMAR_CONFIG set (e.g. the
|
|
1034
|
+
* code-intelligence TS/JS extractor). Reuses the proven WASM init + grammar
|
|
1035
|
+
* path resolution. Returns a `parse(code)` that yields a tree-sitter tree
|
|
1036
|
+
* (caller must call `tree.delete()`), or null if WASM/grammar is unavailable so
|
|
1037
|
+
* the caller can fall back.
|
|
1038
|
+
*/
|
|
1039
|
+
export async function loadWasmGrammar(wasmFile) {
|
|
1040
|
+
if (!isWasmAvailable())
|
|
1041
|
+
return null;
|
|
1042
|
+
try {
|
|
1043
|
+
await ensureTreeSitterInit();
|
|
1044
|
+
let language = loadedGrammarsByFile.get(wasmFile);
|
|
1045
|
+
if (!language) {
|
|
1046
|
+
language = await treeSitterModule.Language.load(resolveGrammarPath(wasmFile));
|
|
1047
|
+
loadedGrammarsByFile.set(wasmFile, language);
|
|
1048
|
+
}
|
|
1049
|
+
return {
|
|
1050
|
+
parse: (code) => {
|
|
1051
|
+
// New parser per call (cheap) to avoid cross-call setLanguage races.
|
|
1052
|
+
const ParserCtor = treeSitterModule.Parser ?? treeSitterModule;
|
|
1053
|
+
const parser = new ParserCtor();
|
|
1054
|
+
parser.setLanguage(language);
|
|
1055
|
+
const tree = parser.parse(code);
|
|
1056
|
+
parser.delete?.();
|
|
1057
|
+
return tree;
|
|
1058
|
+
},
|
|
1059
|
+
};
|
|
1060
|
+
}
|
|
1061
|
+
catch {
|
|
1062
|
+
return null;
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1030
1065
|
/**
|
|
1031
1066
|
* Reset internal state — for testing only.
|
|
1032
1067
|
*/
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter TypeScript/JavaScript extractor for code-intelligence.
|
|
3
|
+
*
|
|
4
|
+
* Extracts functions, classes (+ methods), interfaces and imports from TS/JS/TSX
|
|
5
|
+
* source using bundled tree-sitter WASM grammars — so code-intelligence works
|
|
6
|
+
* WITHOUT the multi-megabyte `typescript` compiler dependency (#511).
|
|
7
|
+
*
|
|
8
|
+
* The KnowledgeGraphService uses this as a fallback when the TypeScript compiler
|
|
9
|
+
* API isn't available. Returns `null` when WASM/grammar can't load so the caller
|
|
10
|
+
* can degrade gracefully.
|
|
11
|
+
*/
|
|
12
|
+
export interface TsFunction {
|
|
13
|
+
name: string;
|
|
14
|
+
startLine: number;
|
|
15
|
+
isAsync: boolean;
|
|
16
|
+
visibility: 'public' | 'private' | 'protected';
|
|
17
|
+
}
|
|
18
|
+
export interface TsClass {
|
|
19
|
+
name: string;
|
|
20
|
+
startLine: number;
|
|
21
|
+
methods: TsFunction[];
|
|
22
|
+
}
|
|
23
|
+
export interface TsInterface {
|
|
24
|
+
name: string;
|
|
25
|
+
startLine: number;
|
|
26
|
+
}
|
|
27
|
+
export interface TsExtraction {
|
|
28
|
+
functions: TsFunction[];
|
|
29
|
+
classes: TsClass[];
|
|
30
|
+
interfaces: TsInterface[];
|
|
31
|
+
imports: string[];
|
|
32
|
+
}
|
|
33
|
+
export declare function isTreeSitterTsExtension(ext: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Extract entities/imports from TS/JS/TSX source. Returns null if the grammar
|
|
36
|
+
* could not be loaded (WASM unavailable) so callers can fall back.
|
|
37
|
+
*/
|
|
38
|
+
export declare function extractTsJs(content: string, extension: string): Promise<TsExtraction | null>;
|
|
39
|
+
//# sourceMappingURL=treesitter-ts-extractor.d.ts.map
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter TypeScript/JavaScript extractor for code-intelligence.
|
|
3
|
+
*
|
|
4
|
+
* Extracts functions, classes (+ methods), interfaces and imports from TS/JS/TSX
|
|
5
|
+
* source using bundled tree-sitter WASM grammars — so code-intelligence works
|
|
6
|
+
* WITHOUT the multi-megabyte `typescript` compiler dependency (#511).
|
|
7
|
+
*
|
|
8
|
+
* The KnowledgeGraphService uses this as a fallback when the TypeScript compiler
|
|
9
|
+
* API isn't available. Returns `null` when WASM/grammar can't load so the caller
|
|
10
|
+
* can degrade gracefully.
|
|
11
|
+
*/
|
|
12
|
+
import { loadWasmGrammar } from './tree-sitter-wasm-parser.js';
|
|
13
|
+
/** Map a file extension to its grammar wasm file. */
|
|
14
|
+
function grammarFor(ext) {
|
|
15
|
+
switch (ext) {
|
|
16
|
+
case 'ts':
|
|
17
|
+
case 'mts':
|
|
18
|
+
case 'cts':
|
|
19
|
+
return 'tree-sitter-typescript.wasm';
|
|
20
|
+
case 'tsx':
|
|
21
|
+
return 'tree-sitter-tsx.wasm';
|
|
22
|
+
case 'js':
|
|
23
|
+
case 'jsx':
|
|
24
|
+
case 'mjs':
|
|
25
|
+
case 'cjs':
|
|
26
|
+
return 'tree-sitter-javascript.wasm';
|
|
27
|
+
default:
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function isTreeSitterTsExtension(ext) {
|
|
32
|
+
return grammarFor(ext) !== null;
|
|
33
|
+
}
|
|
34
|
+
const line = (n) => n.startPosition.row + 1;
|
|
35
|
+
const fieldText = (n, field) => n.childForFieldName(field)?.text ?? '';
|
|
36
|
+
/** Whether a declaration node begins with the `async` keyword. */
|
|
37
|
+
function isAsync(n) {
|
|
38
|
+
for (let i = 0; i < n.childCount; i++) {
|
|
39
|
+
const c = n.child(i);
|
|
40
|
+
if (!c)
|
|
41
|
+
continue;
|
|
42
|
+
if (c.type === 'async')
|
|
43
|
+
return true;
|
|
44
|
+
// keyword precedes the function/method keyword; stop once we pass it
|
|
45
|
+
if (c.type === 'function' || c.type === 'function_declaration')
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
function methodVisibility(n) {
|
|
51
|
+
for (let i = 0; i < n.childCount; i++) {
|
|
52
|
+
const t = n.child(i)?.type;
|
|
53
|
+
if (t === 'accessibility_modifier') {
|
|
54
|
+
const text = n.child(i).text;
|
|
55
|
+
if (text === 'private')
|
|
56
|
+
return 'private';
|
|
57
|
+
if (text === 'protected')
|
|
58
|
+
return 'protected';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return 'public';
|
|
62
|
+
}
|
|
63
|
+
function extractClass(node) {
|
|
64
|
+
const name = fieldText(node, 'name') || '(anonymous)';
|
|
65
|
+
const body = node.childForFieldName('body');
|
|
66
|
+
const methods = [];
|
|
67
|
+
if (body) {
|
|
68
|
+
for (let i = 0; i < body.childCount; i++) {
|
|
69
|
+
const m = body.child(i);
|
|
70
|
+
if (m && m.type === 'method_definition') {
|
|
71
|
+
methods.push({
|
|
72
|
+
name: fieldText(m, 'name'),
|
|
73
|
+
startLine: line(m),
|
|
74
|
+
isAsync: isAsync(m),
|
|
75
|
+
visibility: methodVisibility(m),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return { name, startLine: line(node), methods };
|
|
81
|
+
}
|
|
82
|
+
/** Strip surrounding quotes from an import source literal. */
|
|
83
|
+
function unquote(s) {
|
|
84
|
+
return s.replace(/^['"`]|['"`]$/g, '');
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extract entities/imports from TS/JS/TSX source. Returns null if the grammar
|
|
88
|
+
* could not be loaded (WASM unavailable) so callers can fall back.
|
|
89
|
+
*/
|
|
90
|
+
export async function extractTsJs(content, extension) {
|
|
91
|
+
const wasmFile = grammarFor(extension);
|
|
92
|
+
if (!wasmFile)
|
|
93
|
+
return null;
|
|
94
|
+
const grammar = await loadWasmGrammar(wasmFile);
|
|
95
|
+
if (!grammar)
|
|
96
|
+
return null;
|
|
97
|
+
let tree = null;
|
|
98
|
+
try {
|
|
99
|
+
const parsed = grammar.parse(content);
|
|
100
|
+
tree = parsed;
|
|
101
|
+
const root = parsed.rootNode;
|
|
102
|
+
if (!root)
|
|
103
|
+
return null;
|
|
104
|
+
const out = { functions: [], classes: [], interfaces: [], imports: [] };
|
|
105
|
+
// Iterative walk. We do NOT recurse into function/class bodies (entities are
|
|
106
|
+
// top-level / exported; methods are collected with their class).
|
|
107
|
+
const stack = [root];
|
|
108
|
+
while (stack.length) {
|
|
109
|
+
const node = stack.pop();
|
|
110
|
+
let recurse = true;
|
|
111
|
+
switch (node.type) {
|
|
112
|
+
case 'function_declaration':
|
|
113
|
+
case 'generator_function_declaration':
|
|
114
|
+
out.functions.push({
|
|
115
|
+
name: fieldText(node, 'name'),
|
|
116
|
+
startLine: line(node),
|
|
117
|
+
isAsync: isAsync(node),
|
|
118
|
+
visibility: 'public',
|
|
119
|
+
});
|
|
120
|
+
recurse = false;
|
|
121
|
+
break;
|
|
122
|
+
case 'class_declaration':
|
|
123
|
+
case 'class':
|
|
124
|
+
out.classes.push(extractClass(node));
|
|
125
|
+
recurse = false;
|
|
126
|
+
break;
|
|
127
|
+
case 'interface_declaration':
|
|
128
|
+
out.interfaces.push({ name: fieldText(node, 'name'), startLine: line(node) });
|
|
129
|
+
recurse = false;
|
|
130
|
+
break;
|
|
131
|
+
case 'lexical_declaration':
|
|
132
|
+
case 'variable_declaration': {
|
|
133
|
+
// const/let foo = () => {} | function() {} → treat as a function
|
|
134
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
135
|
+
const d = node.child(i);
|
|
136
|
+
if (!d || d.type !== 'variable_declarator')
|
|
137
|
+
continue;
|
|
138
|
+
const value = d.childForFieldName('value');
|
|
139
|
+
if (value && (value.type === 'arrow_function' ||
|
|
140
|
+
value.type === 'function' ||
|
|
141
|
+
value.type === 'function_expression')) {
|
|
142
|
+
out.functions.push({
|
|
143
|
+
name: fieldText(d, 'name'),
|
|
144
|
+
startLine: line(d),
|
|
145
|
+
isAsync: isAsync(value),
|
|
146
|
+
visibility: 'public',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else if (value && value.type === 'call_expression' &&
|
|
150
|
+
value.child(0)?.text === 'require') {
|
|
151
|
+
// const x = require('y')
|
|
152
|
+
const arg = value.childForFieldName('arguments')?.child(1);
|
|
153
|
+
if (arg && arg.type === 'string')
|
|
154
|
+
out.imports.push(unquote(arg.text));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
recurse = false;
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
case 'import_statement': {
|
|
161
|
+
const src = node.childForFieldName('source');
|
|
162
|
+
if (src)
|
|
163
|
+
out.imports.push(unquote(src.text));
|
|
164
|
+
recurse = false;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'call_expression': {
|
|
168
|
+
// require('x')
|
|
169
|
+
const fn = node.child(0);
|
|
170
|
+
if (fn && fn.text === 'require') {
|
|
171
|
+
const args = node.childForFieldName('arguments');
|
|
172
|
+
const arg = args?.child(1); // ( <string> )
|
|
173
|
+
if (arg && (arg.type === 'string'))
|
|
174
|
+
out.imports.push(unquote(arg.text));
|
|
175
|
+
}
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (recurse) {
|
|
180
|
+
for (let i = node.childCount - 1; i >= 0; i--) {
|
|
181
|
+
const c = node.child(i);
|
|
182
|
+
if (c)
|
|
183
|
+
stack.push(c);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
tree?.delete?.();
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=treesitter-ts-extractor.js.map
|
|
@@ -192,6 +192,7 @@ class Parser {
|
|
|
192
192
|
}
|
|
193
193
|
parseExpression(minPrecedence) {
|
|
194
194
|
let left = this.parseUnary();
|
|
195
|
+
// eslint-disable-next-line no-constant-condition -- tokenizer loop; breaks internally
|
|
195
196
|
while (true) {
|
|
196
197
|
const token = this.current();
|
|
197
198
|
if (token.type !== 'OPERATOR' || !BINARY_OPERATORS.has(token.value)) {
|
|
@@ -229,17 +230,19 @@ class Parser {
|
|
|
229
230
|
case 'IDENTIFIER':
|
|
230
231
|
return this.parseIdentifier();
|
|
231
232
|
case 'LPAREN':
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
{
|
|
234
|
+
this.advance();
|
|
235
|
+
const result = this.parseExpression(0);
|
|
236
|
+
this.expect('RPAREN');
|
|
237
|
+
return result;
|
|
238
|
+
}
|
|
236
239
|
default:
|
|
237
240
|
throw new Error(`Unexpected token: ${token.raw}`);
|
|
238
241
|
}
|
|
239
242
|
}
|
|
240
243
|
parseIdentifier() {
|
|
241
244
|
let value = this.context;
|
|
242
|
-
|
|
245
|
+
const name = this.advance().value;
|
|
243
246
|
// Get initial value from context
|
|
244
247
|
if (typeof value === 'object' && value !== null && name in value) {
|
|
245
248
|
value = value[name];
|
|
@@ -285,6 +285,7 @@ export class PostgresWriter {
|
|
|
285
285
|
let jsonStr = JSON.stringify(value);
|
|
286
286
|
if (columnName && this.isJsonbColumn(columnName)) {
|
|
287
287
|
// Remove NUL chars (PostgreSQL JSONB rejects \u0000)
|
|
288
|
+
// eslint-disable-next-line no-control-regex -- NUL stripping required: PostgreSQL JSONB rejects \u0000
|
|
288
289
|
jsonStr = jsonStr.replace(/\u0000/g, '');
|
|
289
290
|
try {
|
|
290
291
|
JSON.parse(jsonStr);
|
|
@@ -316,6 +317,7 @@ export class PostgresWriter {
|
|
|
316
317
|
}
|
|
317
318
|
// JSONB columns: validate JSON, sanitize NUL chars, wrap if invalid
|
|
318
319
|
if (columnName && this.isJsonbColumn(columnName)) {
|
|
320
|
+
// eslint-disable-next-line no-control-regex -- NUL stripping required: PostgreSQL JSONB rejects \u0000
|
|
319
321
|
const sanitized = value.replace(/\u0000/g, '');
|
|
320
322
|
try {
|
|
321
323
|
JSON.parse(sanitized);
|
|
@@ -50,7 +50,7 @@ export class JSONReader {
|
|
|
50
50
|
const content = fs.readFileSync(this.filePath, 'utf-8');
|
|
51
51
|
const parsed = secureJsonParse.parse(content);
|
|
52
52
|
// Extract data based on JSON path if specified
|
|
53
|
-
|
|
53
|
+
const records = this.extractRecords(parsed);
|
|
54
54
|
// Transform records
|
|
55
55
|
return records.map(record => this.transformRecord(record));
|
|
56
56
|
}
|
|
@@ -191,7 +191,7 @@ export class GitAwareTestSelector {
|
|
|
191
191
|
async mapChangesToTests(changedFiles) {
|
|
192
192
|
const selectedTests = [];
|
|
193
193
|
const mappings = [];
|
|
194
|
-
|
|
194
|
+
const runAllTests = false;
|
|
195
195
|
let runAllReason;
|
|
196
196
|
// Check for config file changes first - these require full test run
|
|
197
197
|
for (const file of changedFiles) {
|
|
@@ -185,35 +185,37 @@ export class QualityDaemon {
|
|
|
185
185
|
const payload = item.payload;
|
|
186
186
|
switch (payload.type) {
|
|
187
187
|
case 'git_commit':
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
type: 'coverage_drop',
|
|
196
|
-
title: 'Coverage Regression Detected',
|
|
197
|
-
message: `Line coverage delta: ${delta.overallDelta.line.toFixed(1)}% (${delta.affectedFiles.length} files affected)`,
|
|
198
|
-
severity: 'high',
|
|
199
|
-
metadata: { delta: delta.overallDelta, commit: payload.commitHash },
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
if (delta.newGaps.length > 0) {
|
|
203
|
-
const suggestions = await this.testSuggester.suggest(delta.newGaps, payload.changedFiles, memory);
|
|
204
|
-
this._suggestionsGenerated += suggestions.length;
|
|
205
|
-
if (suggestions.length > 0) {
|
|
188
|
+
{
|
|
189
|
+
this._commitsAnalyzed++;
|
|
190
|
+
// Trigger coverage analysis for changed files
|
|
191
|
+
const snapshot = await this.coverageDelta.buildSnapshot(memory);
|
|
192
|
+
if (snapshot) {
|
|
193
|
+
const delta = await this.coverageDelta.analyze(snapshot, memory, payload.changedFiles);
|
|
194
|
+
if (delta.regressionDetected) {
|
|
206
195
|
await this.notificationService.send({
|
|
207
|
-
type: '
|
|
208
|
-
title: '
|
|
209
|
-
message:
|
|
210
|
-
severity: '
|
|
211
|
-
metadata: {
|
|
196
|
+
type: 'coverage_drop',
|
|
197
|
+
title: 'Coverage Regression Detected',
|
|
198
|
+
message: `Line coverage delta: ${delta.overallDelta.line.toFixed(1)}% (${delta.affectedFiles.length} files affected)`,
|
|
199
|
+
severity: 'high',
|
|
200
|
+
metadata: { delta: delta.overallDelta, commit: payload.commitHash },
|
|
212
201
|
});
|
|
213
202
|
}
|
|
203
|
+
if (delta.newGaps.length > 0) {
|
|
204
|
+
const suggestions = await this.testSuggester.suggest(delta.newGaps, payload.changedFiles, memory);
|
|
205
|
+
this._suggestionsGenerated += suggestions.length;
|
|
206
|
+
if (suggestions.length > 0) {
|
|
207
|
+
await this.notificationService.send({
|
|
208
|
+
type: 'suggestion_available',
|
|
209
|
+
title: 'New Test Suggestions Available',
|
|
210
|
+
message: `${suggestions.length} test suggestions generated for uncovered code`,
|
|
211
|
+
severity: 'info',
|
|
212
|
+
metadata: { count: suggestions.length },
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
214
216
|
}
|
|
217
|
+
break;
|
|
215
218
|
}
|
|
216
|
-
break;
|
|
217
219
|
case 'coverage_delta': {
|
|
218
220
|
// coverage_delta items are enqueued by analyze() when regression/gaps
|
|
219
221
|
// are found. The analysis itself was already completed by the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.3",
|
|
4
4
|
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -139,13 +139,13 @@
|
|
|
139
139
|
"author": "AQE Development Team",
|
|
140
140
|
"license": "MIT",
|
|
141
141
|
"dependencies": {
|
|
142
|
+
"@huggingface/transformers": "^4.2.0",
|
|
142
143
|
"@ruvector/attention": "0.1.3",
|
|
143
144
|
"@ruvector/gnn": "0.1.25",
|
|
144
145
|
"@ruvector/learning-wasm": "^0.1.29",
|
|
145
146
|
"@ruvector/router": "^0.1.28",
|
|
146
147
|
"@ruvector/rvf-node": "^0.1.7",
|
|
147
148
|
"@ruvector/sona": "0.1.5",
|
|
148
|
-
"@huggingface/transformers": "^4.2.0",
|
|
149
149
|
"axe-core": "^4.11.1",
|
|
150
150
|
"better-sqlite3": "^12.5.0",
|
|
151
151
|
"chalk": "^5.6.2",
|
|
@@ -176,7 +176,6 @@
|
|
|
176
176
|
}
|
|
177
177
|
},
|
|
178
178
|
"optionalDependencies": {
|
|
179
|
-
"hnswlib-node": "^3.0.0",
|
|
180
179
|
"@ruvector/attention-darwin-arm64": "0.1.3",
|
|
181
180
|
"@ruvector/attention-darwin-x64": "0.1.3",
|
|
182
181
|
"@ruvector/attention-linux-arm64-gnu": "0.1.3",
|
|
@@ -190,6 +189,7 @@
|
|
|
190
189
|
"@ruvector/gnn-linux-x64-gnu": "0.1.25",
|
|
191
190
|
"@ruvector/gnn-linux-x64-musl": "npm:@ruvector/gnn-linux-x64-gnu@0.1.25",
|
|
192
191
|
"@ruvector/tiny-dancer-linux-arm64-gnu": "^0.1.17",
|
|
192
|
+
"hnswlib-node": "^3.0.0",
|
|
193
193
|
"rvlite": "^0.2.4"
|
|
194
194
|
},
|
|
195
195
|
"resolutions": {
|
|
@@ -211,6 +211,7 @@
|
|
|
211
211
|
"@opentelemetry/exporter-prometheus": ">=0.217.0"
|
|
212
212
|
},
|
|
213
213
|
"devDependencies": {
|
|
214
|
+
"@claude-flow/guidance": "3.0.0-alpha.1",
|
|
214
215
|
"@faker-js/faker": "^10.2.0",
|
|
215
216
|
"@types/better-sqlite3": "^7.6.13",
|
|
216
217
|
"@types/cli-progress": "^3.11.6",
|
|
@@ -218,13 +219,13 @@
|
|
|
218
219
|
"@types/pg": "^8.16.0",
|
|
219
220
|
"@types/uuid": "^10.0.0",
|
|
220
221
|
"@types/ws": "^8.18.1",
|
|
221
|
-
"@claude-flow/guidance": "3.0.0-alpha.1",
|
|
222
222
|
"@typescript-eslint/eslint-plugin": "^8.59.3",
|
|
223
223
|
"@typescript-eslint/parser": "^8.59.3",
|
|
224
224
|
"@vitest/coverage-v8": "^4.0.16",
|
|
225
225
|
"dotenv": "^17.2.3",
|
|
226
226
|
"esbuild": "^0.28.0",
|
|
227
227
|
"eslint": "^8.55.0",
|
|
228
|
+
"eslint-plugin-unused-imports": "^4.1.4",
|
|
228
229
|
"glob": "^13.0.0",
|
|
229
230
|
"msw": "^2.12.7",
|
|
230
231
|
"tsx": "^4.21.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.2");process.exit(0)}
|
|
2
|
-
import{a,b,c}from"./chunk-NZO4WUSO.js";import"./chunk-AWFIEGR3.js";import"./chunk-HJORBNXW.js";import"./chunk-SW4OKUTC.js";import"./chunk-XPCNUX2U.js";import"./chunk-ORF2UKQH.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.2");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f}from"./chunk-EVCOCGVJ.js";import"./chunk-7Z46RDDV.js";import"./chunk-AV7KYE5P.js";import"./chunk-LQTWPSYL.js";import"./chunk-LZCBSFAU.js";import"./chunk-5PL7WTCU.js";import"./chunk-DMQPO43S.js";import"./chunk-THRTUW4Z.js";import"./chunk-ZGNZJJFF.js";import"./chunk-7DKYCVJI.js";import"./chunk-VSUTI4G6.js";import"./chunk-TJKDATEU.js";import"./chunk-SVYTN2GT.js";import"./chunk-AH7FXNFE.js";import"./chunk-L7VIX22Y.js";import"./chunk-5QHSLWLP.js";import"./chunk-SW4OKUTC.js";import"./chunk-CV2SBMBW.js";import"./chunk-IAZEDWRX.js";import"./chunk-JF53LRBL.js";import"./chunk-FPAW77XV.js";import"./chunk-XPCNUX2U.js";import"./chunk-AOI67HA3.js";import"./chunk-MCZHKXB4.js";import"./chunk-YI6GNRQM.js";import"./chunk-OXCEUR5F.js";import"./chunk-DRWGK3YO.js";import"./chunk-HHCYSAH3.js";import"./chunk-WNR2KAUH.js";import"./chunk-WDMPJ2M2.js";import"./chunk-IICTTDAA.js";import"./chunk-ON4D4TJ4.js";import"./chunk-ORF2UKQH.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.2");process.exit(0)}
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j}from"./chunk-UWXH2UQK.js";import"./chunk-G5U6Q42D.js";import"./chunk-L7VIX22Y.js";import"./chunk-5QHSLWLP.js";import"./chunk-SW4OKUTC.js";import"./chunk-IAZEDWRX.js";import"./chunk-JF53LRBL.js";import"./chunk-XPCNUX2U.js";import"./chunk-AOI67HA3.js";import"./chunk-MCZHKXB4.js";import"./chunk-YI6GNRQM.js";import"./chunk-OXCEUR5F.js";import"./chunk-DRWGK3YO.js";import"./chunk-HHCYSAH3.js";import"./chunk-WNR2KAUH.js";import"./chunk-WDMPJ2M2.js";import"./chunk-IICTTDAA.js";import"./chunk-ON4D4TJ4.js";import"./chunk-ORF2UKQH.js";export{j as MCPToolBase,i as defaultToolLogger,h as getLLMRouter,d as getMemoryBackend,f as getSharedLLMRouter,b as getSharedMemoryBackend,a as registerRvfResetFn,g as resetSharedLLMRouter,c as resetSharedMemoryBackend,e as setSharedLLMRouter};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.2");process.exit(0)}
|
|
2
|
-
import{a}from"./chunk-4F3ZTXHP.js";import"./chunk-UWXH2UQK.js";import"./chunk-G5U6Q42D.js";import"./chunk-L7VIX22Y.js";import"./chunk-5QHSLWLP.js";import"./chunk-SW4OKUTC.js";import"./chunk-IAZEDWRX.js";import"./chunk-JF53LRBL.js";import"./chunk-XPCNUX2U.js";import"./chunk-AOI67HA3.js";import"./chunk-MCZHKXB4.js";import"./chunk-YI6GNRQM.js";import"./chunk-OXCEUR5F.js";import"./chunk-DRWGK3YO.js";import"./chunk-HHCYSAH3.js";import"./chunk-WNR2KAUH.js";import"./chunk-WDMPJ2M2.js";import"./chunk-IICTTDAA.js";import"./chunk-ON4D4TJ4.js";import"./chunk-ORF2UKQH.js";export{a as BrowserWorkflowTool};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.2");process.exit(0)}
|
|
2
|
-
import{g}from"./chunk-I677W5BT.js";import{b as p,c as d}from"./chunk-FPAW77XV.js";import{b as m,c as f}from"./chunk-XPCNUX2U.js";import{i as h}from"./chunk-AOI67HA3.js";f();var I={maxDepth:5,riskWeights:{directImpact:.4,transitiveImpact:.2,testCoverage:.2,criticalPath:.15,dependencyCount:.05},testPatterns:["**/*.test.ts","**/*.test.tsx","**/*.spec.ts","**/*.spec.tsx","**/test_*.py","**/*_test.py","**/*_test.go"],criticalPaths:["**/auth/**","**/security/**","**/payment/**","**/api/**","**/core/**"],namespace:"code-intelligence:impact"},u=class{constructor(e,t,i={}){this.memory=e;this.config={...I,...i},this.knowledgeGraph=t||new g(e)}memory;config;knowledgeGraph;async analyzeImpact(e){try{let{changedFiles:t,depth:i=this.config.maxDepth,includeTests:n=!0}=e;if(t.length===0)return p({directImpact:[],transitiveImpact:[],impactedTests:[],riskLevel:"info",recommendations:[]});let r=await this.analyzeDirectImpact(t),l=await this.analyzeTransitiveImpact(t,r,i),s=[];if(n){let a=await this.getImpactedTests(t);a.success&&(s=a.value)}let c={directImpact:r,transitiveImpact:l,impactedTests:s,riskLevel:"info",recommendations:[]};return c.riskLevel=this.calculateRiskLevel(c),c.recommendations=this.getRecommendations(c),await this.storeAnalysis(t,c),p(c)}catch(t){return d(m(t))}}async getImpactedTests(e){try{let t=new Set;for(let i of e){if(this.isTestFile(i)){t.add(i);continue}let n=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:3});if(n.success)for(let s of n.value.nodes)this.isTestFile(s.path)&&t.add(s.path);let r=this.getBaseName(i),l=[`${r}.test`,`${r}.spec`,`test_${r}`,`${r}_test`];for(let s of l){let c=await this.memory.search(`code-intelligence:kg:node:*${s}*`,10);for(let a of c){let o=await this.memory.get(a);o?.properties?.path&&this.isTestFile(o.properties.path)&&t.add(o.properties.path)}}}return p(Array.from(t))}catch(t){return d(m(t))}}calculateRiskLevel(e){let t=this.config.riskWeights,i=0,n=Math.min(1,e.directImpact.length/10);i+=n*t.directImpact;let r=Math.min(1,e.transitiveImpact.length/20);i+=r*t.transitiveImpact;let l=e.impactedTests.length>0?Math.max(0,1-e.impactedTests.length/(e.directImpact.length||1)):1;i+=l*t.testCoverage;let s=this.countCriticalFiles([...e.directImpact.map(o=>o.file),...e.transitiveImpact.map(o=>o.file)]),c=Math.min(1,s/5);i+=c*t.criticalPath;let a=this.calculateAverageRiskScore([...e.directImpact,...e.transitiveImpact]);return i+=a*t.dependencyCount,i>=.8?"critical":i>=.6?"high":i>=.4?"medium":i>=.2?"low":"info"}getRecommendations(e){let t=[];(e.riskLevel==="critical"||e.riskLevel==="high")&&t.push("This change has significant impact - consider peer review before merging"),e.impactedTests.length===0&&e.directImpact.length>0?t.push("No tests found for impacted files - add test coverage"):e.impactedTests.length<e.directImpact.length/2&&t.push("Test coverage appears low for impacted files"),e.impactedTests.length>0&&(e.impactedTests.length<=10?t.push(`Run these ${e.impactedTests.length} tests: ${e.impactedTests.slice(0,3).join(", ")}${e.impactedTests.length>3?"...":""}`):t.push(`Run all ${e.impactedTests.length} impacted tests before deployment`));let i=[...e.directImpact,...e.transitiveImpact].filter(r=>this.isCriticalPath(r.file));i.length>0&&t.push(`${i.length} critical path files affected - extra scrutiny recommended`),e.transitiveImpact.length>10&&t.push("Large transitive impact - consider breaking down into smaller changes");let n=[...e.directImpact,...e.transitiveImpact].filter(r=>r.riskScore>=.7);return n.length>0&&t.push(`${n.length} high-risk files impacted: ${n.slice(0,2).map(r=>this.getFileName(r.file)).join(", ")}`),t}async analyzeDirectImpact(e){let t=[];for(let i of e){let n=await this.knowledgeGraph.mapDependencies({files:[i],direction:"incoming",depth:1});if(n.success){let{nodes:r,edges:l}=n.value;for(let s of r){if(s.path===i)continue;let c=l.find(o=>o.target===s.id||o.source===s.id),a=this.calculateFileRiskScore(s.path,s.inDegree,s.outDegree);t.push({file:s.path,reason:`Directly ${c?.type||"depends on"} ${this.getFileName(i)}`,distance:1,riskScore:a})}}}return this.deduplicateImpact(t)}async analyzeTransitiveImpact(e,t,i){let n=[],r=new Set([...e,...t.map(s=>s.file)]),l=t.map(s=>({file:s.file,distance:1}));for(;l.length>0;){let s=l.shift();if(s.distance>=i)continue;let c=await this.knowledgeGraph.mapDependencies({files:[s.file],direction:"incoming",depth:1});if(c.success)for(let a of c.value.nodes){if(r.has(a.path)||a.path===s.file)continue;r.add(a.path);let o=this.calculateFileRiskScore(a.path,a.inDegree,a.outDegree,s.distance+1);n.push({file:a.path,reason:`Transitively depends via ${this.getFileName(s.file)}`,distance:s.distance+1,riskScore:o}),l.push({file:a.path,distance:s.distance+1})}}return this.deduplicateImpact(n)}calculateFileRiskScore(e,t,i,n=1){let r=0;return r+=Math.min(.3,t/20),r+=Math.min(.2,i/30),this.isCriticalPath(e)&&(r+=.3),this.isEntryPoint(e)&&(r+=.2),r=r*Math.pow(.8,n-1),Math.min(1,Math.max(0,r))}calculateAverageRiskScore(e){return e.length===0?0:e.reduce((i,n)=>i+n.riskScore,0)/e.length}countCriticalFiles(e){return e.filter(t=>this.isCriticalPath(t)).length}isTestFile(e){return[/\.test\.[tj]sx?$/,/\.spec\.[tj]sx?$/,/_test\.[tj]sx?$/,/test_.*\.py$/,/.*_test\.py$/,/.*_test\.go$/].some(i=>i.test(e))}isCriticalPath(e){return this.config.criticalPaths.map(i=>i.replace(/\*\*/g,".*").replace(/\*/g,"[^/]*")).some(i=>new RegExp(i).test(e))}isEntryPoint(e){return[/\/index\.[tj]sx?$/,/\/main\.[tj]sx?$/,/\/app\.[tj]sx?$/,/^src\/[^/]+\.[tj]sx?$/,/\/server\.[tj]sx?$/,/\/__init__\.py$/,/\/main\.go$/].some(i=>i.test(e))}getBaseName(e){return this.getFileName(e).replace(/\.[^.]+$/,"")}getFileName(e){return e.split(/[/\\]/).pop()||e}deduplicateImpact(e){let t=new Map;for(let i of e){let n=t.get(i.file);(!n||i.distance<n.distance)&&t.set(i.file,i)}return Array.from(t.values()).sort((i,n)=>n.riskScore!==i.riskScore?n.riskScore-i.riskScore:i.distance-n.distance)}async storeAnalysis(e,t){let i=h();await this.memory.set(`${this.config.namespace}:analysis:${i}`,{id:i,changedFiles:e,analysis:t,timestamp:new Date().toISOString()},{namespace:this.config.namespace,persist:!0})}};export{u as a};
|