codebaseiq 0.3.0 → 0.4.0
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/CHANGELOG.md +80 -0
- package/dist/augment-vue-worker.js +1 -1
- package/dist/{chunk-7GAK2F3H.js → chunk-23AD24QZ.js} +12 -12
- package/dist/chunk-24TEZJST.js +2 -0
- package/dist/{chunk-356EZBIP.js → chunk-26EDDGAX.js} +2 -2
- package/dist/{chunk-O2M3VNDY.js → chunk-26EZWQ24.js} +2 -2
- package/dist/{chunk-U33PMPNW.js → chunk-2L3NCI52.js} +2 -2
- package/dist/{chunk-MSI3K7PJ.js → chunk-2QJAVISG.js} +2 -2
- package/dist/{chunk-4LK5OIPW.js → chunk-2ZBZRYX4.js} +2 -2
- package/dist/chunk-33AXWMO2.js +2 -0
- package/dist/{chunk-EQNMD62X.js → chunk-37K55EG3.js} +2 -2
- package/dist/{chunk-ITSJMNUD.js → chunk-3EFZ5KQ4.js} +2 -2
- package/dist/{chunk-D7DOB27N.js → chunk-3F23W57G.js} +2 -2
- package/dist/{chunk-BGGB5N53.js → chunk-3GKKCVKK.js} +2 -2
- package/dist/{chunk-MQW6SJ4P.js → chunk-3SYRGMCL.js} +2 -2
- package/dist/{chunk-PFC44E6D.js → chunk-3VDL7GTY.js} +2 -2
- package/dist/{chunk-7JELP5YE.js → chunk-3XBZ5PKL.js} +2 -2
- package/dist/{chunk-75KJGYX7.js → chunk-42PXSE74.js} +2 -2
- package/dist/{chunk-FEIZXBLH.js → chunk-4GIERC2P.js} +2 -2
- package/dist/{chunk-W7YLRXZE.js → chunk-4UXDBRIF.js} +2 -2
- package/dist/chunk-4XMZYLW5.js +2 -0
- package/dist/{chunk-6BF3VYEF.js → chunk-55NUXP2V.js} +2 -2
- package/dist/chunk-5AJQCOZZ.js +21 -0
- package/dist/{chunk-5DSL3NT2.js → chunk-5NUPFZFA.js} +2 -2
- package/dist/{chunk-RJVAPMHF.js → chunk-65QIFIF6.js} +2 -2
- package/dist/{chunk-36JC5BG2.js → chunk-66Q5VLH6.js} +2 -2
- package/dist/{chunk-D7AZAOZX.js → chunk-6CQPIIS7.js} +2 -2
- package/dist/{chunk-GV2CEZCW.js → chunk-6CTSFS7R.js} +2 -2
- package/dist/{chunk-Q4XEU3UH.js → chunk-6EBUAKJT.js} +2 -2
- package/dist/chunk-6I55VYFG.js +4 -0
- package/dist/chunk-6NUURWPF.js +3 -0
- package/dist/{chunk-MHWMEZDA.js → chunk-6P5QMOM7.js} +2 -2
- package/dist/{chunk-LZSQ6X7E.js → chunk-6S5FE4ZF.js} +2 -2
- package/dist/chunk-74LRKLNC.js +22 -0
- package/dist/chunk-75A23IID.js +3 -0
- package/dist/chunk-75VNTSO6.js +7 -0
- package/dist/chunk-7HBBVZJ6.js +3 -0
- package/dist/{chunk-VWYGCMV5.js → chunk-7PPBMBH6.js} +2 -2
- package/dist/{chunk-3RSBGWGL.js → chunk-7WG57A5X.js} +2 -2
- package/dist/{chunk-FWQGH2N2.js → chunk-7XHZX6FX.js} +2 -2
- package/dist/{chunk-RIYJ4L33.js → chunk-A5HJ3CJW.js} +2 -2
- package/dist/{chunk-LONKINMJ.js → chunk-AJ5HVC5Z.js} +2 -2
- package/dist/{chunk-ZAFGY22Q.js → chunk-AYRHOFLV.js} +2 -2
- package/dist/chunk-AZDY3EKD.js +93 -0
- package/dist/{chunk-CW6AXOLR.js → chunk-AZZNG5Z2.js} +2 -2
- package/dist/chunk-BEKCTUPY.js +3 -0
- package/dist/{chunk-CR3OG6SQ.js → chunk-BKKX2OU5.js} +2 -2
- package/dist/{chunk-5LL4KEHO.js → chunk-BQKRYKDD.js} +2 -2
- package/dist/{chunk-FOZ74V56.js → chunk-BVDQU2XJ.js} +2 -2
- package/dist/chunk-C3PPB2T5.js +5 -0
- package/dist/chunk-CABIZQXQ.js +21 -0
- package/dist/{chunk-M2Y6PCFE.js → chunk-CAH322MC.js} +2 -2
- package/dist/{chunk-EIBGSU2R.js → chunk-CBOOHUK4.js} +2 -2
- package/dist/chunk-CFIICAOM.js +2 -0
- package/dist/{chunk-XMJ53WG4.js → chunk-CPWYEPWQ.js} +2 -2
- package/dist/{chunk-LQHYYIOB.js → chunk-CRT7I7RJ.js} +2 -2
- package/dist/{chunk-IZDPGOZR.js → chunk-CZVSQQDU.js} +2 -2
- package/dist/{chunk-TNJGTQWO.js → chunk-D3KE26FS.js} +2 -2
- package/dist/{chunk-GP7C5VAE.js → chunk-DNRHRVKS.js} +2 -2
- package/dist/{chunk-SGMNWYTH.js → chunk-DOQLO74K.js} +2 -2
- package/dist/{chunk-AURCQHSG.js → chunk-DP3EJ6XL.js} +2 -2
- package/dist/{chunk-C7QWUBR2.js → chunk-DQZF7MP6.js} +2 -2
- package/dist/{chunk-E52K4L2W.js → chunk-DTM4EHD2.js} +2 -2
- package/dist/{chunk-YRKP7PM7.js → chunk-DUM7GR6B.js} +2 -2
- package/dist/{chunk-I22IZYDI.js → chunk-DZ4QOIRY.js} +2 -2
- package/dist/{chunk-EXZ7VLRY.js → chunk-E3R6TJ5T.js} +2 -2
- package/dist/chunk-E4DP45YU.js +3 -0
- package/dist/{chunk-PUVNH4PO.js → chunk-E5U6N5WI.js} +2 -2
- package/dist/chunk-E7T22WET.js +21 -0
- package/dist/{chunk-QEOWONKY.js → chunk-ED7ZAZ5V.js} +2 -2
- package/dist/{chunk-RCIGX23V.js → chunk-EDMG5CSO.js} +2 -2
- package/dist/{chunk-IHSLIIL3.js → chunk-EOSUV7H5.js} +2 -2
- package/dist/{chunk-FQTIFWLR.js → chunk-ESWVTSHU.js} +2 -2
- package/dist/{chunk-6VREELBC.js → chunk-ETZBIG6K.js} +2 -2
- package/dist/chunk-EYSJHKX6.js +3 -0
- package/dist/{chunk-Q23IMHXS.js → chunk-F4AGM7ZE.js} +37 -37
- package/dist/{chunk-FTTV7IRX.js → chunk-FPUJRBHL.js} +50 -50
- package/dist/{chunk-CCIYWXX6.js → chunk-G2UU6PQP.js} +2 -2
- package/dist/{chunk-C6WKPKCF.js → chunk-G3KRXNNT.js} +2 -2
- package/dist/{chunk-TEANKHUU.js → chunk-G3ZBP72R.js} +2 -2
- package/dist/{chunk-NBCQZSGR.js → chunk-GC4I33OD.js} +2 -2
- package/dist/{chunk-NDKOVQFG.js → chunk-GLXEWYQY.js} +2 -2
- package/dist/{chunk-AEXQYQD7.js → chunk-GRHNPFHT.js} +2 -2
- package/dist/{chunk-NBZKSTXP.js → chunk-GWESWURK.js} +2 -2
- package/dist/{chunk-Q3ZCQY2Y.js → chunk-GXOFPAIR.js} +2 -2
- package/dist/{chunk-USOAJHY7.js → chunk-H4FGIFEU.js} +2 -2
- package/dist/{chunk-LKUTSP4G.js → chunk-HOGS6JFP.js} +2 -2
- package/dist/{chunk-UQE4XFSA.js → chunk-HSJLK5MC.js} +2 -2
- package/dist/{chunk-BWL3PMPT.js → chunk-HTPEUJ42.js} +2 -2
- package/dist/{chunk-3RR2K7EZ.js → chunk-IBPXUGJV.js} +2 -2
- package/dist/{chunk-BFBIMTCJ.js → chunk-ITA3N7G6.js} +2 -2
- package/dist/chunk-JG5OWAEB.js +22 -0
- package/dist/{chunk-2PRONPAS.js → chunk-JGJKRTTB.js} +2 -2
- package/dist/{chunk-TJWVT4DO.js → chunk-JGXLB7PR.js} +2 -2
- package/dist/{chunk-K7JLSGCJ.js → chunk-JKUF2UG6.js} +3 -3
- package/dist/{chunk-CIYA2KZN.js → chunk-JOYASZRF.js} +2 -2
- package/dist/{chunk-U7NUXDQO.js → chunk-K3PFL5QQ.js} +2 -2
- package/dist/{chunk-WK2IQJPK.js → chunk-KAXBWTSX.js} +2 -2
- package/dist/{chunk-5ZI2PPI7.js → chunk-KHHAGHAW.js} +2 -2
- package/dist/{chunk-UW6KD57C.js → chunk-KJLUQVBG.js} +2 -2
- package/dist/{chunk-WWCV4E6J.js → chunk-KOVUXHIZ.js} +2 -2
- package/dist/chunk-KPMMOAV5.js +4 -0
- package/dist/{chunk-GDHWOA57.js → chunk-LKJZNGMA.js} +2 -2
- package/dist/{chunk-3VJ3OCRE.js → chunk-LMPOC372.js} +2 -2
- package/dist/{chunk-F3QSL4W2.js → chunk-LTPNP6D5.js} +2 -2
- package/dist/{chunk-MVRGB4KJ.js → chunk-M3IBH6C3.js} +9 -9
- package/dist/{chunk-PHNCEUXX.js → chunk-MAGBSB6E.js} +2 -2
- package/dist/{chunk-QMOZZ2VX.js → chunk-MFMHD36E.js} +2 -2
- package/dist/{chunk-LMTSB3TB.js → chunk-MJX2J5QE.js} +2 -2
- package/dist/{chunk-PTQPPPG2.js → chunk-N26LGGSF.js} +2 -2
- package/dist/{chunk-J7AMBVWF.js → chunk-NB2DAVPP.js} +2 -2
- package/dist/{chunk-JYI7CV25.js → chunk-NJDXNYLG.js} +2 -2
- package/dist/{chunk-BRQL7AFJ.js → chunk-NMKQOIYZ.js} +2 -2
- package/dist/{chunk-ICUL7XRT.js → chunk-NRNVMB2R.js} +2 -2
- package/dist/{chunk-DDN2F6GB.js → chunk-O5BWFNIH.js} +2 -2
- package/dist/{chunk-HVFB3PME.js → chunk-O7PCDZ5B.js} +2 -2
- package/dist/{chunk-KPZGTB2O.js → chunk-OAJYNPRU.js} +2 -2
- package/dist/{chunk-2EDX3JT5.js → chunk-OFUC6R46.js} +2 -2
- package/dist/chunk-OSZ7PW5K.js +5 -0
- package/dist/{chunk-B3UYV66Z.js → chunk-OZ2M2X7A.js} +2 -2
- package/dist/{chunk-6O3KXIDL.js → chunk-OZI44VCR.js} +2 -2
- package/dist/{chunk-XN3EKMLI.js → chunk-PCKIKOUA.js} +2 -2
- package/dist/{chunk-NCJILOAK.js → chunk-PFMQRHC6.js} +2 -2
- package/dist/chunk-PVKSZBX5.js +82 -0
- package/dist/{chunk-NEWHKGVD.js → chunk-QANCT4MO.js} +2 -2
- package/dist/{chunk-ZNH33XIB.js → chunk-QEWN7BLP.js} +2 -2
- package/dist/{chunk-OQUCBKOI.js → chunk-QFJ46F6F.js} +2 -2
- package/dist/{chunk-2E6OUPCF.js → chunk-QPQWR6CW.js} +2 -2
- package/dist/{chunk-YTJHCGYB.js → chunk-QX4HDF2I.js} +2 -2
- package/dist/{chunk-J3GLP7Q5.js → chunk-R2F2CTBA.js} +2 -2
- package/dist/{chunk-2OMXFE64.js → chunk-R7PXHYMY.js} +2 -2
- package/dist/{chunk-F74LZWCE.js → chunk-RGBZDOUO.js} +2 -2
- package/dist/{chunk-362QOSFD.js → chunk-RNPG5P4P.js} +2 -2
- package/dist/{chunk-D62CTZX6.js → chunk-RS6UYNEP.js} +2 -2
- package/dist/{chunk-VGWZ4MOY.js → chunk-RVBRPBLQ.js} +2 -2
- package/dist/{chunk-5IZRKWTZ.js → chunk-RWAZCEJD.js} +2 -2
- package/dist/{chunk-ZQ62NNKN.js → chunk-RWDIONS7.js} +2 -2
- package/dist/{chunk-HQA7EBSK.js → chunk-S3CJYDXP.js} +2 -2
- package/dist/{chunk-GL6UTNUB.js → chunk-S6UTKCBT.js} +2 -2
- package/dist/chunk-SLLFJXTW.js +27 -0
- package/dist/{chunk-TOTWJZIX.js → chunk-T3KTMLQT.js} +2 -2
- package/dist/{chunk-67VJAYVR.js → chunk-TB575ZGO.js} +2 -2
- package/dist/{chunk-YHPG3S2U.js → chunk-TG4GMU73.js} +2 -2
- package/dist/{chunk-CVHOQONG.js → chunk-THKM7OXM.js} +2 -2
- package/dist/{chunk-GVAF222T.js → chunk-TNLOX4TN.js} +2 -2
- package/dist/{chunk-HENP2O4A.js → chunk-UHFZDQZJ.js} +2 -2
- package/dist/{chunk-YT4DVWUV.js → chunk-UUMAM5LM.js} +2 -2
- package/dist/{chunk-JX6ZWDOS.js → chunk-UUT5P3V7.js} +2 -2
- package/dist/{chunk-Z6RL7XOE.js → chunk-VEPK6M5C.js} +2 -2
- package/dist/{chunk-C7OUW52M.js → chunk-VPCHKZ3I.js} +2 -2
- package/dist/{chunk-GIDCP7KV.js → chunk-VZY3XOBU.js} +2 -2
- package/dist/{chunk-XQAVQVIL.js → chunk-W6E6ME7G.js} +2 -2
- package/dist/{chunk-XQPPURLQ.js → chunk-WGYZBS5S.js} +2 -2
- package/dist/{chunk-GUFPEFBG.js → chunk-WUP24Q4U.js} +2 -2
- package/dist/chunk-WXUHXSLN.js +2 -0
- package/dist/{chunk-HINZQKSY.js → chunk-X4YZD2MP.js} +2 -2
- package/dist/chunk-XARPGCTL.js +2 -0
- package/dist/{chunk-5FWR5HLG.js → chunk-XDQ6QJF5.js} +20 -20
- package/dist/{chunk-JCMFBF4Z.js → chunk-XRH7R5SX.js} +2 -2
- package/dist/{chunk-BBP7HVBJ.js → chunk-XVJ2E7W7.js} +2 -2
- package/dist/{chunk-D53LWANR.js → chunk-Y7GFAU5N.js} +2 -2
- package/dist/{chunk-T6MQNNAC.js → chunk-YBDLHFZZ.js} +2 -2
- package/dist/{chunk-ZB4C5TTR.js → chunk-YI3CJPOY.js} +2 -2
- package/dist/chunk-YMAGXBLT.js +3 -0
- package/dist/{chunk-MZNMASFM.js → chunk-YRAGNEBZ.js} +2 -2
- package/dist/chunk-YXZAAQHZ.js +3 -0
- package/dist/chunk-Z2L5H2HF.js +3 -0
- package/dist/{chunk-JSNTHRLQ.js → chunk-ZHK7TVAJ.js} +2 -2
- package/dist/chunk-ZJNV27DZ.js +4 -0
- package/dist/{chunk-GQLDYCWS.js → chunk-ZQ6GAIUV.js} +2 -2
- package/dist/{chunk-TPO7XC5Z.js → chunk-ZQE2QYAC.js} +2 -2
- package/dist/chunk-ZUQ2MDFT.js +2 -0
- package/dist/cli-context-4R2LREXQ.js +3 -0
- package/dist/cli-context-6X7JYARX.js +2 -0
- package/dist/cli-failure-RECEHOM2.js +3 -0
- package/dist/cli-program-MXA3WTAO.js +7 -0
- package/dist/cli.js +1 -1
- package/dist/{code-viewer-VHLBLIUM.js → code-viewer-C6HE4DFC.js} +2 -2
- package/dist/{code-viewer-KIXEYQNJ.js → code-viewer-XHSSAMBX.js} +2 -2
- package/dist/{command-descriptors-YCLATF5I.js → command-descriptors-NWW34Z54.js} +171 -171
- package/dist/{command-descriptors-F5P2V3NW.js → command-descriptors-XHK3PK2I.js} +116 -116
- package/dist/{command-panels-SZONPMLJ.js → command-panels-OXMCJ2QZ.js} +2 -2
- package/dist/direct-navigation-236VXYBZ.js +3 -0
- package/dist/direct-navigation-36YSILY6.js +2 -0
- package/dist/index.js +1 -1
- package/dist/invocation-command-descriptors-35JULLNR.js +3 -0
- package/dist/invocation-command-descriptors-FEWSFUO2.js +2 -0
- package/dist/output-continuation-command-MJBVH3A5.js +2 -0
- package/dist/output-continuation-command-TBXIOPHQ.js +3 -0
- package/dist/project-reindex-5TCGOVSK.js +2 -0
- package/dist/project-reindex-BUNTSYKM.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/anchors.js +1 -1
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.js +1 -1
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/reference-neighborhood.js +1 -1
- package/dist/queries/reference-reachability.js +1 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.js +1 -1
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system-map.js +1 -1
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/value-flow.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +1 -1
- package/dist/reindex.js +30 -30
- package/dist/runtime.js +1 -1
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/sentinel-ensure-command-3MZCLPQY.js +2 -0
- package/dist/sentinel-ensure-command-LEWHIRLL.js +3 -0
- package/dist/sentinel-worker.js +1 -1
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +6 -6
- package/docs/COMMAND_REFERENCE.md +2 -2
- package/docs/SECURITY_MODEL.md +3 -0
- package/package.json +1 -1
- package/skills/codebaseiq/SKILL.md +15 -3
- package/dist/chunk-23C5AD3B.js +0 -2
- package/dist/chunk-2I2UHZET.js +0 -2
- package/dist/chunk-5IC2WZAL.js +0 -22
- package/dist/chunk-5T44HG5Y.js +0 -88
- package/dist/chunk-6JMAVFL4.js +0 -3
- package/dist/chunk-6WAPPQ5F.js +0 -82
- package/dist/chunk-7UCDGXRW.js +0 -8
- package/dist/chunk-AQI4N64O.js +0 -22
- package/dist/chunk-DAKIGMIK.js +0 -21
- package/dist/chunk-DUKHVPU5.js +0 -4
- package/dist/chunk-DVWO7RBC.js +0 -2
- package/dist/chunk-FH5WG4LE.js +0 -2
- package/dist/chunk-GQXXOS55.js +0 -2
- package/dist/chunk-GWYZVVKY.js +0 -21
- package/dist/chunk-JFIA2JI3.js +0 -3
- package/dist/chunk-JLZLLLW5.js +0 -3
- package/dist/chunk-MEUHIDI3.js +0 -7
- package/dist/chunk-OFGOOL6U.js +0 -3
- package/dist/chunk-P4NVCOM7.js +0 -2
- package/dist/chunk-SMDIEDM4.js +0 -27
- package/dist/chunk-SX72EVMY.js +0 -3
- package/dist/chunk-T5X7DK6C.js +0 -3
- package/dist/chunk-T75DS2E6.js +0 -21
- package/dist/chunk-TJBOJUVN.js +0 -3
- package/dist/chunk-UC2FD2PS.js +0 -4
- package/dist/chunk-UQYQBLJX.js +0 -5
- package/dist/chunk-Z35GOVEH.js +0 -2
- package/dist/cli-context-FJL2JHOE.js +0 -3
- package/dist/cli-context-PQNWHMCQ.js +0 -2
- package/dist/cli-program-UO7PZD6V.js +0 -7
- package/dist/direct-navigation-4XJTXIDT.js +0 -2
- package/dist/direct-navigation-J5MVYYAD.js +0 -3
- package/dist/invocation-command-descriptors-RWV4VAI4.js +0 -2
- package/dist/invocation-command-descriptors-U76PN7IY.js +0 -3
- package/dist/output-continuation-command-BL25S26S.js +0 -3
- package/dist/output-continuation-command-BTETTXEC.js +0 -2
- package/dist/project-reindex-CRJU3IFG.js +0 -2
- package/dist/project-reindex-TQFCOA2O.js +0 -3
- package/dist/sentinel-ensure-command-OSWGCFFL.js +0 -3
- package/dist/sentinel-ensure-command-SPW7XQLB.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as j}from"./chunk-6BF3VYEF.js";import{d as D}from"./chunk-GVAF222T.js";var y=["execution","runtime","dataflow","state","temporal","contract","identity","ownership","dependencies"];import{createHash as ie}from"crypto";var Q=[{id:"general-interprocedural-value-flow",families:["dataflow"],capability:"Whole-program definition-use flow through arbitrary calls and returns is unavailable.",consequence:"Missing dataflow edges cannot establish that a value never crosses an unmodeled call.",recoverWith:["value-flow","dependence-slice","inspect","code"]},{id:"heap-aliasing",families:["dataflow","state"],capability:"Heap points-to and cross-instance alias analysis are unavailable.",consequence:"Missing field or state edges cannot establish that two references never reach the same object.",recoverWith:["value-flow","dependence-slice","inspect","code"]},{id:"exceptional-flow",families:["execution","dataflow","temporal"],capability:"Interprocedural exception propagation and finally completion flow are unavailable.",consequence:"Normal-path reachability and ordering do not establish behavior after a throw or rejection.",recoverWith:["dependence-slice","inspect","code"]},{id:"reflection",families:["execution","runtime","identity","dependencies"],capability:"Reflective lookup, dynamic loading, and name-computed invocation are unavailable without exact evidence.",consequence:"Missing static edges cannot establish that a construct is unreachable through reflection.",recoverWith:["search","inspect","code"]},{id:"generated-dispatch",families:["execution","runtime","identity"],capability:"Dispatch tables or names created only by generated or unavailable source are unavailable.",consequence:"Missing dispatch edges cannot establish that no generated consumer exists.",recoverWith:["search","inspect","code"]},{id:"unsupported-framework-adapters",families:["runtime","dataflow","state","temporal"],capability:"Framework runtime crossings without a registered source adapter are unavailable.",consequence:"Missing boundary edges cannot establish that no producer, consumer, state effect, or ordering exists.",recoverWith:["search","inspect","code"]}];function Z(e){let t=new Set(e);return Q.filter(n=>n.families.some(a=>t.has(a)))}function $(e){return Z(e).map(t=>`[${t.id}] ${t.capability} ${t.consequence} Recover selected paths with: ${t.recoverWith.map(n=>`codebaseiq ${n}`).join(", ")}.`)}var ee=["incoming","outgoing","both"];function h(e,t,n,a={}){return{family:e,subtype:t,...a.match?{match:a.match}:{},directions:ee,evidenceStrengths:a.strengths??["exact","derived","mixed"],supportCeiling:a.supportCeiling??"partial",establishes:n,nonClaims:a.nonClaims??[],recoverWith:a.recoverWith??["inspect","code"]}}var te=["predicate-consequence","predicate-alternative","predicate-fallthrough","predicate-case","predicate-default","predicate-return","predicate-throw","loop-iteration","loop-exit","exception-handler","finally-cleanup","handler-return","handler-throw"],ne=["captured-value-to-state","constant-to-state","expression-to-state","property-to-state","return-to-state","value-to-state"],re=["await-completion-before","awaits-completion","inside-lock-scope","lexical-successor"],oe=[{id:"indexed-program-identity",label:"SCIP/compiler identity and source ownership",requirements:["indexed-graph"],relations:[h("execution","call","The source construct may call the resolved target.",{nonClaims:["Static may-call reachability does not prove that an invocation occurred at runtime."],recoverWith:["call-graph","inspect","code"]}),h("execution","result-callback","The referenced callable can produce the result consumed by this path.",{nonClaims:["A callback relationship does not prove invocation order or runtime selection."],recoverWith:["call-graph","inspect","code"]}),h("contract","uses-contract-symbol","The source construct refers to the identified contract symbol.",{supportCeiling:"exact",nonClaims:["Contract identity does not prove runtime invocation or behavioral conformance."],recoverWith:["hierarchy","inspect","code"]}),h("identity","references","The occurrence resolves to the identified compiler-owned symbol.",{supportCeiling:"exact",nonClaims:["A reference does not establish execution or value transfer."],recoverWith:["refs","trace","inspect"]}),h("ownership","contains","The owner contains the identified program construct.",{supportCeiling:"exact",nonClaims:["Structural containment does not establish runtime lifetime or sharing scope."],recoverWith:["outline","inspect"]}),h("ownership","contains-","The owner contains the identified program construct.",{match:"prefix",supportCeiling:"exact",nonClaims:["Structural containment does not establish runtime lifetime or sharing scope."],recoverWith:["outline","inspect"]}),h("ownership","owns-","The owner owns the identified source or runtime observation.",{match:"prefix",supportCeiling:"exact",nonClaims:["Observation ownership does not establish singleton lifetime or exclusive ownership."],recoverWith:["inspect","code"]}),h("dependencies","imports","The source file or module statically imports the indexed target.",{nonClaims:["An import does not establish that imported code executes."],recoverWith:["imports","deps","code"]}),h("dependencies","imports-external","The source region statically imports an external package.",{nonClaims:["An external import does not establish which package behavior executes."],recoverWith:["imports","code"]})]},{id:"runtime-boundary-join",label:"source-grounded runtime-boundary joins",requirements:["indexed-graph","source-facts"],relations:[h("runtime","runtime-handoff","A producer and consumer share a source-grounded runtime rendezvous.",{strengths:["exact","derived","candidate","mixed"],nonClaims:["A candidate or unresolved join does not prove a runtime handoff."],recoverWith:["evidence","inspect","code"]}),h("runtime","discriminator-dispatch","A serialized discriminator selects the reported consumer.",{strengths:["exact","derived","mixed"],nonClaims:["The dispatch edge does not prove delivery, retry, or successful handling."],recoverWith:["evidence","inspect","code"]}),h("dataflow","serialized-discriminator-transfer","The producer serializes the discriminator consumed by dispatch.",{strengths:["exact","derived","mixed"],nonClaims:["This edge does not establish the flow of every payload field."],recoverWith:["value-flow","inspect","code"]}),h("temporal","enqueue-before-consume","The reported enqueue precedes a possible consume through the queue.",{strengths:["exact","derived","mixed"],nonClaims:["Queue order does not establish delivery time, uniqueness, retry count, or durability."],recoverWith:["evidence","inspect","code"]})]},{id:"parser-control-dependence",label:"parser-proved intraprocedural control dependence",requirements:["indexed-graph","source-facts"],relations:[...te.map(e=>h("execution",e,"The outcome is control-dependent on the reported predicate or handler.",{strengths:["exact"],nonClaims:["Local control dependence does not establish that the containing function executes."],recoverWith:["dependence-slice","inspect","code"]})),h("execution","returns","The selected construct contains the reported return terminal.",{strengths:["exact"],nonClaims:["A local return terminal does not establish that the containing callable executes."],recoverWith:["inspect","code"]}),h("execution","throws","The selected construct contains the reported throw terminal.",{strengths:["exact"],nonClaims:["A local throw terminal does not establish propagation, handling, or callable execution."],recoverWith:["inspect","code"]})]},{id:"bounded-static-value-flow",label:"compiler callsites and bounded static value evaluation",requirements:["indexed-graph","source-facts"],relations:[...["argument-to-parameter","constant-to-parameter","property-to-parameter","return-to-parameter","return-to-call-result"].map(e=>h("dataflow",e,"The reported value may reach the target through the evidenced callsite transfer.",{strengths:["exact","derived","mixed"],nonClaims:["This provider does not establish general local definition-use, alias, field, or heap flow."],recoverWith:["value-flow","dependence-slice","inspect","code"]}))]},{id:"typescript-local-dependence",label:"TypeScript compiler identities, control-flow graph, and reaching definitions",requirements:["typescript-semantic"],relations:[h("dataflow","definition-to-use","The definition reaches the reported read on a feasible local control-flow path.",{strengths:["exact"],nonClaims:["Local reaching definitions do not establish heap aliasing, exceptional flow, or the runtime order of closure invocation."],recoverWith:["value-flow","dependence-slice","inspect","code"]}),h("dataflow","value-to-definition","The reported right-hand-side read supplies the assigned local definition.",{strengths:["exact"],nonClaims:["A local assignment edge does not establish field or heap points-to flow."],recoverWith:["value-flow","dependence-slice","inspect","code"]}),h("dataflow","closure-capture","The nested callable reads the reported binding from an enclosing callable.",{strengths:["candidate"],supportCeiling:"candidate",nonClaims:["Closure capture does not establish whether or when the nested callable executes."],recoverWith:["call-graph","inspect","code"]}),h("dataflow","field-definition-to-use","The reported same-owner field definition can reach the field read.",{strengths:["exact","candidate"],nonClaims:["Field-name identity does not establish whole-program heap aliasing or cross-instance flow."],recoverWith:["value-flow","dependence-slice","inspect","code"]}),h("execution","control-dependence","Execution of the reported statement depends on the outcome of the predicate.",{strengths:["exact"],nonClaims:["Intraprocedural control dependence does not establish that the containing callable executes."],recoverWith:["dependence-slice","inspect","code"]})]},{id:"parser-state-temporal",label:"parser-proved local state and temporal facts",requirements:["indexed-graph","source-facts"],relations:[...ne.map(e=>h("dataflow",e,"The reported source value is assigned into the identified state resource.",{strengths:["exact"],nonClaims:["The edge does not establish alias, heap, or later read flow."],recoverWith:["value-flow","inspect","code"]})),...["writes-resource","deletes-resource","reads-resource","enqueues-resource","consumes-resource"].map(e=>h("state",e,"The reported construct performs the named operation on the identified resource.",{strengths:["exact"],nonClaims:["A state operation does not establish transactionality, durability, or exclusive ownership."],recoverWith:["evidence","inspect","code"]})),...re.map(e=>h("temporal",e,"The reported source constructs have the named local ordering relationship.",{strengths:["exact"],nonClaims:["Local source order does not establish cross-process happens-before or durable completion."],recoverWith:["evidence","inspect","code"]}))]}];function q(e,t){let n=oe.flatMap(a=>a.relations.filter(r=>r.family===e&&(r.match==="prefix"?t.startsWith(r.subtype):t===r.subtype)).map(r=>({provider:a,relation:r})));if(n.length>1)throw new Error(`Ambiguous graph relation provider for ${e}/${t}: ${n.map(a=>a.provider.id).join(", ")}`);return n[0]??null}var Ne=["causal","structure","complete"],ae={causal:["execution","runtime","dataflow","state","temporal"],structure:["contract","identity","ownership","dependencies"],complete:y},se=2,ce=48,k=64,de=5e4;function We(e,t,n={}){let a=E([...t.symbols??[],...t.locations??[]]),r=E(t.searches??[]);if(a.length===0&&r.length===0)throw new Error("evidence requires at least one positional symbol, --symbol, --at, or --search selector.");let o=n.view??"causal",i=le(n.families,o),s=n.direction??"both",u=E(n.subtypes??[]),l=n.connecting??!1,c=n.inventoryOnly??!1,p=E(n.foldIds??[]),g=n.maxDepth??se,f=n.maxEdges??ce;if(!Number.isSafeInteger(g)||g<0)throw new RangeError(`Evidence depth must be a non-negative safe integer; received ${g}.`);if(!Number.isSafeInteger(f)||f<=0)throw new RangeError(`Evidence max edges must be a positive safe integer; received ${f}.`);if(!["incoming","outgoing","both"].includes(s))throw new Error(`Unsupported graph evidence direction: ${s}.`);if(c&&p.length>0)throw new Error("Evidence fold materialization cannot be combined with --inventory-only.");let m=j(e,{symbols:a,searches:r,maxDepth:g,maxTopologyCharacters:de,relations:pe(i)}),R=new Map(m.nodes.map(d=>[d.id,d])),b=m.edges.filter(d=>d.disposition==="emitted"||d.disposition==="folded").flatMap(d=>ue(d,R)),v=b.filter(d=>i.includes(d.family)).filter(d=>u.length===0||u.includes(d.subtype)),x=new Set(m.anchors.flatMap(d=>d.nodeIds));if(l&&x.size<2)throw new Error("Connecting evidence requires at least two resolved root nodes.");let S=new Set(v.map(d=>d.id)),_=A(b,x,"incoming").filter(d=>S.has(d.id)),F=A(b,x,"outgoing").filter(d=>S.has(d.id)),O=A(b,x,"both").filter(d=>S.has(d.id)),B=ve(i,u,_,F,O),M=s==="incoming"?_:s==="outgoing"?F:O,N=l?Re(M,[...x],s):M,z=Ce(N,x,s),w=[...N].sort((d,X)=>Te(d,X,z)),W=ye(w,f),Y=be(W,p),G=c?[]:p.length>0?w.filter(d=>Y.has(d.id)):w,C=p.length>0?G:G.slice(0,f),K=p.length>0||c?[]:W,T=Math.max(0,G.length-C.length),J=m.frontiers.filter(d=>d.disposition==="unsupported").length,I=m.coverage.status==="incomplete"?"incomplete":T>0?"bounded":"accounted";return{kind:"graph",view:n.families&&n.families.length>0?"custom":o,families:i,selection:{direction:s,subtypes:u,connecting:l,inventoryOnly:c,foldIds:p},targets:m.anchors.map(d=>({kind:d.kind,query:d.query,status:d.status,nodeIds:[...d.nodeIds],omittedCandidates:d.omittedCandidates})),inventory:B,edges:C,folds:K,coverage:{status:I,topologyStatus:m.coverage.status,scope:m.coverage.scope,maxDepth:g,maxEdges:f,matchedEdges:w.length,eligibleEdges:G.length,returnedEdges:C.length,omittedEdges:T,frontierGroups:m.frontiers.length,unsupportedFrontiers:J,blindSpots:E([...m.coverage.blindSpots,...$(i)]),explanation:c?`${w.length} relationship(s) match the explicit projection; only exact inventory counts were requested.`:p.length>0?`Every relationship in ${p.length} explicitly selected recoverable fold(s) was emitted.`:I==="accounted"?"Every selected relationship in the bounded topology was emitted.":I==="bounded"?`${T} selected relationship(s) were withheld by the explicit edge budget.`:m.coverage.explanation}}}function le(e,t){let n=e&&e.length>0?e:ae[t],a=n.filter(r=>!y.includes(r));if(a.length>0)throw new Error(`Unsupported graph evidence family: ${a.join(", ")}.`);return E(n)}function pe(e){return["call","contract-symbol","import","reference","runtime-boundary"]}function ue(e,t){let n=t.get(e.fromNodeId),a=t.get(e.toNodeId);return!n||!a?[]:(e.semantics??[]).flatMap((r,o)=>{let i=ge(r);if(!i)return[];let s=q(i,r.subtype);if(!s)throw new Error(`No graph relation provider contract is registered for ${i}/${r.subtype}.`);let u=fe(e);if(!s.relation.evidenceStrengths.includes(u))throw new Error(`Graph relation provider ${s.provider.id} does not admit ${u} evidence for ${i}/${r.subtype}.`);return[{id:`${e.id}:${o}:${i}`,family:i,semanticFamily:r.family,subtype:r.subtype,from:L(n),to:L(a),sourceKind:e.kind,providerId:s.provider.id,supportCeiling:s.relation.supportCeiling,establishes:s.relation.establishes,nonClaims:[...s.relation.nonClaims],recoverWith:[...s.relation.recoverWith],evidenceStrength:u,evidenceMethods:E(e.evidence.map(l=>l.method)),evidenceConstituents:he(e.evidence),context:r.context?{...r.context}:null,attributes:r.attributes?{...r.attributes}:null}]})}function he(e){let t=new Map;for(let n of e)t.set(`${n.method}\0${n.strength}`,n);return[...t.values()].map(({method:n,strength:a})=>({method:n,strength:a}))}function ge(e){switch(e.family){case"control":return e.context?.crossesRuntimeBoundary===!0||e.subtype==="runtime-handoff"?"runtime":"execution";case"data":return"dataflow";case"state":return"state";case"temporal":return"temporal";case"contract":return"contract";case"identity":return e.subtype.startsWith("contains")||e.subtype.startsWith("owns-")?"ownership":e.subtype.startsWith("import")?"dependencies":"identity"}}function L(e){let t=me(e);return{id:e.id,kind:e.kind,label:t?D(t):e.label,symbol:t,location:e.location?{...e.location}:null}}function me(e){return e.kind!=="symbol"||!e.id.startsWith("symbol:")?null:decodeURIComponent(e.id.slice(7))}function fe(e){let t=E(e.evidence.map(n=>n.strength));return t.length===1?t[0]:t.includes("exact")&&t.every(n=>n==="exact"||n==="derived")?"mixed":t.includes("candidate")?"candidate":t.includes("unknown")||t.length===0?"unknown":"mixed"}function A(e,t,n){let a=P(e,n),r=new Map,o=new Map,i=[...t].sort();for(let s of i)o.set(s,0);for(let s=0;s<i.length;s+=1){let u=i[s],l=o.get(u);for(let c of a.get(u)??[])r.set(c.edge.id,c.edge),!o.has(c.next)&&(o.set(c.next,l+1),i.push(c.next))}return[...r.values()]}function P(e,t){let n=new Map,a=(r,o,i)=>{let s=n.get(r)??[];s.push({edge:i,next:o}),n.set(r,s)};for(let r of e)t!=="incoming"&&a(r.from.id,r.to.id,r),t!=="outgoing"&&a(r.to.id,r.from.id,r);for(let r of n.values())r.sort((o,i)=>o.edge.id.localeCompare(i.edge.id)||o.next.localeCompare(i.next));return n}function ve(e,t,n,a,r){let o=new Set;for(let c of[...n,...a,...r])o.add(`${c.family}\0${c.subtype}`);if(t.length>0)for(let c of e)for(let p of t)o.add(`${c}\0${p}`);let i=c=>{let p=new Map;for(let g of c){let f=`${g.family}\0${g.subtype}`;p.set(f,(p.get(f)??0)+1)}return p},s=i(n),u=i(a),l=i(r);return[...o].map(c=>{let[p,g]=c.split("\0");return{family:p,subtype:g,incoming:s.get(c)??0,outgoing:u.get(c)??0,both:l.get(c)??0}}).sort((c,p)=>y.indexOf(c.family)-y.indexOf(p.family)||c.subtype.localeCompare(p.subtype))}function ye(e,t){let n=e.slice(t),a=new Map;for(let i of n){let s=Ee(i),u=`${i.family}\0${s}`,l=a.get(u)??[];l.push(i),a.set(u,l)}let r=new Map(e.map((i,s)=>[i.id,s+1])),o=[];for(let[i,s]of[...a].sort(([u],[l])=>u.localeCompare(l))){let[u,l]=i.split("\0"),c=[...s].sort((p,g)=>p.id.localeCompare(g.id));for(let p=0;p<c.length;p+=k){let g=c.slice(p,p+k),f=g.map(v=>v.id),m=E(g.map(v=>v.subtype)).sort(),R=m.length===1?m[0]:"mixed",b=[...new Set(g.flatMap(v=>[v.from.id,v.to.id]))].sort();o.push({id:Ge(u,m.join("\0"),f),mode:xe(g),family:u,subtype:R,subtypes:m,region:l,edgeCount:f.length,edgeIds:f,nodeIds:b,minimumMaxEdges:Math.max(...f.map(v=>r.get(v)??e.length))})}}return o.sort((i,s)=>y.indexOf(i.family)-y.indexOf(s.family)||(i.region??"").localeCompare(s.region??"")||i.id.localeCompare(s.id))}function Ee(e){let t=e.from.location?.file??`kind:${e.from.kind}`,n=e.to.location?.file??`kind:${e.to.kind}`;return t===n?t:`${t} -> ${n}`}function be(e,t){if(t.length===0)return new Set;let n=new Map(e.map(r=>[r.id,r])),a=t.filter(r=>!n.has(r));if(a.length>0){let r=e.map(o=>o.id).sort();throw new Error(`Unknown evidence fold ${a.join(", ")} for this projection. Available folds: ${r.join(", ")||"(none)"}.`)}return new Set(t.flatMap(r=>n.get(r).edgeIds))}function xe(e){let t=new Map,n=new Map,a=new Set;for(let o of e){a.add(o.from.id),a.add(o.to.id);let i=t.get(o.from.id)??new Set;i.add(o.to.id),t.set(o.from.id,i);let s=n.get(o.to.id)??new Set;s.add(o.from.id),n.set(o.to.id,s)}return we(a,t)?"scc":[...a].every(o=>(n.get(o)?.size??0)<=1&&(t.get(o)?.size??0)<=1)?"linear":"topology"}function we(e,t){let n=new Set,a=new Set,r=o=>{if(n.has(o))return!0;if(a.has(o))return!1;n.add(o);for(let i of t.get(o)??[])if(r(i))return!0;return n.delete(o),a.add(o),!1};return[...e].some(r)}function Ge(e,t,n){return`fold:${ie("sha256").update([e,t,...n].join("\0")).digest("hex").slice(0,16)}`}function Re(e,t,n){let a=new Map,r=[...new Set(t)].sort();for(let o=0;o<r.length;o+=1)for(let i=o+1;i<r.length;i+=1)for(let s of Se(e,r[o],r[i],n))a.set(s.id,s);return[...a.values()]}function Se(e,t,n,a){let r=P(e,a),o=new Map([[t,0]]),i=new Map,s=[t];for(let l=0;l<s.length;l+=1){let c=s[l],p=o.get(c);if(c!==n)for(let g of r.get(c)??[])o.has(g.next)||(o.set(g.next,p+1),i.set(g.next,{node:c,edge:g.edge}),s.push(g.next))}if(!o.has(n))return[];let u=[];for(let l=n;l!==t;){let c=i.get(l);if(!c)return[];u.push(c.edge),l=c.node}return u.reverse()}function Ce(e,t,n){let a=P(e,n),r=new Map,o=[...t];for(let i of t)r.set(i,0);for(let i=0;i<o.length;i+=1){let s=o[i],u=r.get(s);for(let{next:l}of a.get(s)??[])r.has(l)||(r.set(l,u+1),o.push(l))}return r}function Te(e,t,n){return H(e,n)-H(t,n)||U(e)-U(t)||V(e.evidenceStrength)-V(t.evidenceStrength)||y.indexOf(e.family)-y.indexOf(t.family)||e.from.label.localeCompare(t.from.label)||e.to.label.localeCompare(t.to.label)||e.subtype.localeCompare(t.subtype)||e.id.localeCompare(t.id)}function H(e,t){return Math.min(t.get(e.from.id)??Number.MAX_SAFE_INTEGER,t.get(e.to.id)??Number.MAX_SAFE_INTEGER)}function U(e){let t=[e.from,e.to].filter(n=>n.kind==="structural-region").length;return t===2?2:t}function V(e){switch(e){case"exact":return 0;case"mixed":return 1;case"derived":return 2;case"candidate":return 3;case"unknown":return 4}}function E(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}export{y as a,Ne as b,We as c};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as j}from"./chunk-55NUXP2V.js";import{d as D}from"./chunk-TNLOX4TN.js";var y=["execution","runtime","dataflow","state","temporal","contract","identity","ownership","dependencies"];import{createHash as ie}from"crypto";var Q=[{id:"general-interprocedural-value-flow",families:["dataflow"],capability:"Whole-program definition-use flow through arbitrary calls and returns is unavailable.",consequence:"Missing dataflow edges cannot establish that a value never crosses an unmodeled call.",recoverWith:["value-flow","dependence-slice","inspect","code"]},{id:"heap-aliasing",families:["dataflow","state"],capability:"Heap points-to and cross-instance alias analysis are unavailable.",consequence:"Missing field or state edges cannot establish that two references never reach the same object.",recoverWith:["value-flow","dependence-slice","inspect","code"]},{id:"exceptional-flow",families:["execution","dataflow","temporal"],capability:"Interprocedural exception propagation and finally completion flow are unavailable.",consequence:"Normal-path reachability and ordering do not establish behavior after a throw or rejection.",recoverWith:["dependence-slice","inspect","code"]},{id:"reflection",families:["execution","runtime","identity","dependencies"],capability:"Reflective lookup, dynamic loading, and name-computed invocation are unavailable without exact evidence.",consequence:"Missing static edges cannot establish that a construct is unreachable through reflection.",recoverWith:["search","inspect","code"]},{id:"generated-dispatch",families:["execution","runtime","identity"],capability:"Dispatch tables or names created only by generated or unavailable source are unavailable.",consequence:"Missing dispatch edges cannot establish that no generated consumer exists.",recoverWith:["search","inspect","code"]},{id:"unsupported-framework-adapters",families:["runtime","dataflow","state","temporal"],capability:"Framework runtime crossings without a registered source adapter are unavailable.",consequence:"Missing boundary edges cannot establish that no producer, consumer, state effect, or ordering exists.",recoverWith:["search","inspect","code"]}];function Z(e){let t=new Set(e);return Q.filter(n=>n.families.some(a=>t.has(a)))}function $(e){return Z(e).map(t=>`[${t.id}] ${t.capability} ${t.consequence} Recover selected paths with: ${t.recoverWith.map(n=>`codebaseiq ${n}`).join(", ")}.`)}var ee=["incoming","outgoing","both"];function h(e,t,n,a={}){return{family:e,subtype:t,...a.match?{match:a.match}:{},directions:ee,evidenceStrengths:a.strengths??["exact","derived","mixed"],supportCeiling:a.supportCeiling??"partial",establishes:n,nonClaims:a.nonClaims??[],recoverWith:a.recoverWith??["inspect","code"]}}var te=["predicate-consequence","predicate-alternative","predicate-fallthrough","predicate-case","predicate-default","predicate-return","predicate-throw","loop-iteration","loop-exit","exception-handler","finally-cleanup","handler-return","handler-throw"],ne=["captured-value-to-state","constant-to-state","expression-to-state","property-to-state","return-to-state","value-to-state"],re=["await-completion-before","awaits-completion","inside-lock-scope","lexical-successor"],oe=[{id:"indexed-program-identity",label:"SCIP/compiler identity and source ownership",requirements:["indexed-graph"],relations:[h("execution","call","The source construct may call the resolved target.",{nonClaims:["Static may-call reachability does not prove that an invocation occurred at runtime."],recoverWith:["call-graph","inspect","code"]}),h("execution","result-callback","The referenced callable can produce the result consumed by this path.",{nonClaims:["A callback relationship does not prove invocation order or runtime selection."],recoverWith:["call-graph","inspect","code"]}),h("contract","uses-contract-symbol","The source construct refers to the identified contract symbol.",{supportCeiling:"exact",nonClaims:["Contract identity does not prove runtime invocation or behavioral conformance."],recoverWith:["hierarchy","inspect","code"]}),h("identity","references","The occurrence resolves to the identified compiler-owned symbol.",{supportCeiling:"exact",nonClaims:["A reference does not establish execution or value transfer."],recoverWith:["refs","trace","inspect"]}),h("ownership","contains","The owner contains the identified program construct.",{supportCeiling:"exact",nonClaims:["Structural containment does not establish runtime lifetime or sharing scope."],recoverWith:["outline","inspect"]}),h("ownership","contains-","The owner contains the identified program construct.",{match:"prefix",supportCeiling:"exact",nonClaims:["Structural containment does not establish runtime lifetime or sharing scope."],recoverWith:["outline","inspect"]}),h("ownership","owns-","The owner owns the identified source or runtime observation.",{match:"prefix",supportCeiling:"exact",nonClaims:["Observation ownership does not establish singleton lifetime or exclusive ownership."],recoverWith:["inspect","code"]}),h("dependencies","imports","The source file or module statically imports the indexed target.",{nonClaims:["An import does not establish that imported code executes."],recoverWith:["imports","deps","code"]}),h("dependencies","imports-external","The source region statically imports an external package.",{nonClaims:["An external import does not establish which package behavior executes."],recoverWith:["imports","code"]})]},{id:"runtime-boundary-join",label:"source-grounded runtime-boundary joins",requirements:["indexed-graph","source-facts"],relations:[h("runtime","runtime-handoff","A producer and consumer share a source-grounded runtime rendezvous.",{strengths:["exact","derived","candidate","mixed"],nonClaims:["A candidate or unresolved join does not prove a runtime handoff."],recoverWith:["evidence","inspect","code"]}),h("runtime","discriminator-dispatch","A serialized discriminator selects the reported consumer.",{strengths:["exact","derived","mixed"],nonClaims:["The dispatch edge does not prove delivery, retry, or successful handling."],recoverWith:["evidence","inspect","code"]}),h("dataflow","serialized-discriminator-transfer","The producer serializes the discriminator consumed by dispatch.",{strengths:["exact","derived","mixed"],nonClaims:["This edge does not establish the flow of every payload field."],recoverWith:["value-flow","inspect","code"]}),h("temporal","enqueue-before-consume","The reported enqueue precedes a possible consume through the queue.",{strengths:["exact","derived","mixed"],nonClaims:["Queue order does not establish delivery time, uniqueness, retry count, or durability."],recoverWith:["evidence","inspect","code"]})]},{id:"parser-control-dependence",label:"parser-proved intraprocedural control dependence",requirements:["indexed-graph","source-facts"],relations:[...te.map(e=>h("execution",e,"The outcome is control-dependent on the reported predicate or handler.",{strengths:["exact"],nonClaims:["Local control dependence does not establish that the containing function executes."],recoverWith:["dependence-slice","inspect","code"]})),h("execution","returns","The selected construct contains the reported return terminal.",{strengths:["exact"],nonClaims:["A local return terminal does not establish that the containing callable executes."],recoverWith:["inspect","code"]}),h("execution","throws","The selected construct contains the reported throw terminal.",{strengths:["exact"],nonClaims:["A local throw terminal does not establish propagation, handling, or callable execution."],recoverWith:["inspect","code"]})]},{id:"bounded-static-value-flow",label:"compiler callsites and bounded static value evaluation",requirements:["indexed-graph","source-facts"],relations:[...["argument-to-parameter","constant-to-parameter","property-to-parameter","return-to-parameter","return-to-call-result"].map(e=>h("dataflow",e,"The reported value may reach the target through the evidenced callsite transfer.",{strengths:["exact","derived","mixed"],nonClaims:["This provider does not establish general local definition-use, alias, field, or heap flow."],recoverWith:["value-flow","dependence-slice","inspect","code"]}))]},{id:"typescript-local-dependence",label:"TypeScript compiler identities, control-flow graph, and reaching definitions",requirements:["typescript-semantic"],relations:[h("dataflow","definition-to-use","The definition reaches the reported read on a feasible local control-flow path.",{strengths:["exact"],nonClaims:["Local reaching definitions do not establish heap aliasing, exceptional flow, or the runtime order of closure invocation."],recoverWith:["value-flow","dependence-slice","inspect","code"]}),h("dataflow","value-to-definition","The reported right-hand-side read supplies the assigned local definition.",{strengths:["exact"],nonClaims:["A local assignment edge does not establish field or heap points-to flow."],recoverWith:["value-flow","dependence-slice","inspect","code"]}),h("dataflow","closure-capture","The nested callable reads the reported binding from an enclosing callable.",{strengths:["candidate"],supportCeiling:"candidate",nonClaims:["Closure capture does not establish whether or when the nested callable executes."],recoverWith:["call-graph","inspect","code"]}),h("dataflow","field-definition-to-use","The reported same-owner field definition can reach the field read.",{strengths:["exact","candidate"],nonClaims:["Field-name identity does not establish whole-program heap aliasing or cross-instance flow."],recoverWith:["value-flow","dependence-slice","inspect","code"]}),h("execution","control-dependence","Execution of the reported statement depends on the outcome of the predicate.",{strengths:["exact"],nonClaims:["Intraprocedural control dependence does not establish that the containing callable executes."],recoverWith:["dependence-slice","inspect","code"]})]},{id:"parser-state-temporal",label:"parser-proved local state and temporal facts",requirements:["indexed-graph","source-facts"],relations:[...ne.map(e=>h("dataflow",e,"The reported source value is assigned into the identified state resource.",{strengths:["exact"],nonClaims:["The edge does not establish alias, heap, or later read flow."],recoverWith:["value-flow","inspect","code"]})),...["writes-resource","deletes-resource","reads-resource","enqueues-resource","consumes-resource"].map(e=>h("state",e,"The reported construct performs the named operation on the identified resource.",{strengths:["exact"],nonClaims:["A state operation does not establish transactionality, durability, or exclusive ownership."],recoverWith:["evidence","inspect","code"]})),...re.map(e=>h("temporal",e,"The reported source constructs have the named local ordering relationship.",{strengths:["exact"],nonClaims:["Local source order does not establish cross-process happens-before or durable completion."],recoverWith:["evidence","inspect","code"]}))]}];function q(e,t){let n=oe.flatMap(a=>a.relations.filter(r=>r.family===e&&(r.match==="prefix"?t.startsWith(r.subtype):t===r.subtype)).map(r=>({provider:a,relation:r})));if(n.length>1)throw new Error(`Ambiguous graph relation provider for ${e}/${t}: ${n.map(a=>a.provider.id).join(", ")}`);return n[0]??null}var Ne=["causal","structure","complete"],ae={causal:["execution","runtime","dataflow","state","temporal"],structure:["contract","identity","ownership","dependencies"],complete:y},se=2,ce=48,k=64,de=5e4;function We(e,t,n={}){let a=E([...t.symbols??[],...t.locations??[]]),r=E(t.searches??[]);if(a.length===0&&r.length===0)throw new Error("evidence requires at least one positional symbol, --symbol, --at, or --search selector.");let o=n.view??"causal",i=le(n.families,o),s=n.direction??"both",u=E(n.subtypes??[]),l=n.connecting??!1,c=n.inventoryOnly??!1,p=E(n.foldIds??[]),g=n.maxDepth??se,f=n.maxEdges??ce;if(!Number.isSafeInteger(g)||g<0)throw new RangeError(`Evidence depth must be a non-negative safe integer; received ${g}.`);if(!Number.isSafeInteger(f)||f<=0)throw new RangeError(`Evidence max edges must be a positive safe integer; received ${f}.`);if(!["incoming","outgoing","both"].includes(s))throw new Error(`Unsupported graph evidence direction: ${s}.`);if(c&&p.length>0)throw new Error("Evidence fold materialization cannot be combined with --inventory-only.");let m=j(e,{symbols:a,searches:r,maxDepth:g,maxTopologyCharacters:de,relations:pe(i)}),R=new Map(m.nodes.map(d=>[d.id,d])),b=m.edges.filter(d=>d.disposition==="emitted"||d.disposition==="folded").flatMap(d=>ue(d,R)),v=b.filter(d=>i.includes(d.family)).filter(d=>u.length===0||u.includes(d.subtype)),x=new Set(m.anchors.flatMap(d=>d.nodeIds));if(l&&x.size<2)throw new Error("Connecting evidence requires at least two resolved root nodes.");let S=new Set(v.map(d=>d.id)),_=A(b,x,"incoming").filter(d=>S.has(d.id)),F=A(b,x,"outgoing").filter(d=>S.has(d.id)),O=A(b,x,"both").filter(d=>S.has(d.id)),B=ve(i,u,_,F,O),M=s==="incoming"?_:s==="outgoing"?F:O,N=l?Re(M,[...x],s):M,z=Ce(N,x,s),w=[...N].sort((d,X)=>Te(d,X,z)),W=ye(w,f),Y=be(W,p),G=c?[]:p.length>0?w.filter(d=>Y.has(d.id)):w,C=p.length>0?G:G.slice(0,f),K=p.length>0||c?[]:W,T=Math.max(0,G.length-C.length),J=m.frontiers.filter(d=>d.disposition==="unsupported").length,I=m.coverage.status==="incomplete"?"incomplete":T>0?"bounded":"accounted";return{kind:"graph",view:n.families&&n.families.length>0?"custom":o,families:i,selection:{direction:s,subtypes:u,connecting:l,inventoryOnly:c,foldIds:p},targets:m.anchors.map(d=>({kind:d.kind,query:d.query,status:d.status,nodeIds:[...d.nodeIds],omittedCandidates:d.omittedCandidates})),inventory:B,edges:C,folds:K,coverage:{status:I,topologyStatus:m.coverage.status,scope:m.coverage.scope,maxDepth:g,maxEdges:f,matchedEdges:w.length,eligibleEdges:G.length,returnedEdges:C.length,omittedEdges:T,frontierGroups:m.frontiers.length,unsupportedFrontiers:J,blindSpots:E([...m.coverage.blindSpots,...$(i)]),explanation:c?`${w.length} relationship(s) match the explicit projection; only exact inventory counts were requested.`:p.length>0?`Every relationship in ${p.length} explicitly selected recoverable fold(s) was emitted.`:I==="accounted"?"Every selected relationship in the bounded topology was emitted.":I==="bounded"?`${T} selected relationship(s) were withheld by the explicit edge budget.`:m.coverage.explanation}}}function le(e,t){let n=e&&e.length>0?e:ae[t],a=n.filter(r=>!y.includes(r));if(a.length>0)throw new Error(`Unsupported graph evidence family: ${a.join(", ")}.`);return E(n)}function pe(e){return["call","contract-symbol","import","reference","runtime-boundary"]}function ue(e,t){let n=t.get(e.fromNodeId),a=t.get(e.toNodeId);return!n||!a?[]:(e.semantics??[]).flatMap((r,o)=>{let i=ge(r);if(!i)return[];let s=q(i,r.subtype);if(!s)throw new Error(`No graph relation provider contract is registered for ${i}/${r.subtype}.`);let u=fe(e);if(!s.relation.evidenceStrengths.includes(u))throw new Error(`Graph relation provider ${s.provider.id} does not admit ${u} evidence for ${i}/${r.subtype}.`);return[{id:`${e.id}:${o}:${i}`,family:i,semanticFamily:r.family,subtype:r.subtype,from:L(n),to:L(a),sourceKind:e.kind,providerId:s.provider.id,supportCeiling:s.relation.supportCeiling,establishes:s.relation.establishes,nonClaims:[...s.relation.nonClaims],recoverWith:[...s.relation.recoverWith],evidenceStrength:u,evidenceMethods:E(e.evidence.map(l=>l.method)),evidenceConstituents:he(e.evidence),context:r.context?{...r.context}:null,attributes:r.attributes?{...r.attributes}:null}]})}function he(e){let t=new Map;for(let n of e)t.set(`${n.method}\0${n.strength}`,n);return[...t.values()].map(({method:n,strength:a})=>({method:n,strength:a}))}function ge(e){switch(e.family){case"control":return e.context?.crossesRuntimeBoundary===!0||e.subtype==="runtime-handoff"?"runtime":"execution";case"data":return"dataflow";case"state":return"state";case"temporal":return"temporal";case"contract":return"contract";case"identity":return e.subtype.startsWith("contains")||e.subtype.startsWith("owns-")?"ownership":e.subtype.startsWith("import")?"dependencies":"identity"}}function L(e){let t=me(e);return{id:e.id,kind:e.kind,label:t?D(t):e.label,symbol:t,location:e.location?{...e.location}:null}}function me(e){return e.kind!=="symbol"||!e.id.startsWith("symbol:")?null:decodeURIComponent(e.id.slice(7))}function fe(e){let t=E(e.evidence.map(n=>n.strength));return t.length===1?t[0]:t.includes("exact")&&t.every(n=>n==="exact"||n==="derived")?"mixed":t.includes("candidate")?"candidate":t.includes("unknown")||t.length===0?"unknown":"mixed"}function A(e,t,n){let a=P(e,n),r=new Map,o=new Map,i=[...t].sort();for(let s of i)o.set(s,0);for(let s=0;s<i.length;s+=1){let u=i[s],l=o.get(u);for(let c of a.get(u)??[])r.set(c.edge.id,c.edge),!o.has(c.next)&&(o.set(c.next,l+1),i.push(c.next))}return[...r.values()]}function P(e,t){let n=new Map,a=(r,o,i)=>{let s=n.get(r)??[];s.push({edge:i,next:o}),n.set(r,s)};for(let r of e)t!=="incoming"&&a(r.from.id,r.to.id,r),t!=="outgoing"&&a(r.to.id,r.from.id,r);for(let r of n.values())r.sort((o,i)=>o.edge.id.localeCompare(i.edge.id)||o.next.localeCompare(i.next));return n}function ve(e,t,n,a,r){let o=new Set;for(let c of[...n,...a,...r])o.add(`${c.family}\0${c.subtype}`);if(t.length>0)for(let c of e)for(let p of t)o.add(`${c}\0${p}`);let i=c=>{let p=new Map;for(let g of c){let f=`${g.family}\0${g.subtype}`;p.set(f,(p.get(f)??0)+1)}return p},s=i(n),u=i(a),l=i(r);return[...o].map(c=>{let[p,g]=c.split("\0");return{family:p,subtype:g,incoming:s.get(c)??0,outgoing:u.get(c)??0,both:l.get(c)??0}}).sort((c,p)=>y.indexOf(c.family)-y.indexOf(p.family)||c.subtype.localeCompare(p.subtype))}function ye(e,t){let n=e.slice(t),a=new Map;for(let i of n){let s=Ee(i),u=`${i.family}\0${s}`,l=a.get(u)??[];l.push(i),a.set(u,l)}let r=new Map(e.map((i,s)=>[i.id,s+1])),o=[];for(let[i,s]of[...a].sort(([u],[l])=>u.localeCompare(l))){let[u,l]=i.split("\0"),c=[...s].sort((p,g)=>p.id.localeCompare(g.id));for(let p=0;p<c.length;p+=k){let g=c.slice(p,p+k),f=g.map(v=>v.id),m=E(g.map(v=>v.subtype)).sort(),R=m.length===1?m[0]:"mixed",b=[...new Set(g.flatMap(v=>[v.from.id,v.to.id]))].sort();o.push({id:Ge(u,m.join("\0"),f),mode:xe(g),family:u,subtype:R,subtypes:m,region:l,edgeCount:f.length,edgeIds:f,nodeIds:b,minimumMaxEdges:Math.max(...f.map(v=>r.get(v)??e.length))})}}return o.sort((i,s)=>y.indexOf(i.family)-y.indexOf(s.family)||(i.region??"").localeCompare(s.region??"")||i.id.localeCompare(s.id))}function Ee(e){let t=e.from.location?.file??`kind:${e.from.kind}`,n=e.to.location?.file??`kind:${e.to.kind}`;return t===n?t:`${t} -> ${n}`}function be(e,t){if(t.length===0)return new Set;let n=new Map(e.map(r=>[r.id,r])),a=t.filter(r=>!n.has(r));if(a.length>0){let r=e.map(o=>o.id).sort();throw new Error(`Unknown evidence fold ${a.join(", ")} for this projection. Available folds: ${r.join(", ")||"(none)"}.`)}return new Set(t.flatMap(r=>n.get(r).edgeIds))}function xe(e){let t=new Map,n=new Map,a=new Set;for(let o of e){a.add(o.from.id),a.add(o.to.id);let i=t.get(o.from.id)??new Set;i.add(o.to.id),t.set(o.from.id,i);let s=n.get(o.to.id)??new Set;s.add(o.from.id),n.set(o.to.id,s)}return we(a,t)?"scc":[...a].every(o=>(n.get(o)?.size??0)<=1&&(t.get(o)?.size??0)<=1)?"linear":"topology"}function we(e,t){let n=new Set,a=new Set,r=o=>{if(n.has(o))return!0;if(a.has(o))return!1;n.add(o);for(let i of t.get(o)??[])if(r(i))return!0;return n.delete(o),a.add(o),!1};return[...e].some(r)}function Ge(e,t,n){return`fold:${ie("sha256").update([e,t,...n].join("\0")).digest("hex").slice(0,16)}`}function Re(e,t,n){let a=new Map,r=[...new Set(t)].sort();for(let o=0;o<r.length;o+=1)for(let i=o+1;i<r.length;i+=1)for(let s of Se(e,r[o],r[i],n))a.set(s.id,s);return[...a.values()]}function Se(e,t,n,a){let r=P(e,a),o=new Map([[t,0]]),i=new Map,s=[t];for(let l=0;l<s.length;l+=1){let c=s[l],p=o.get(c);if(c!==n)for(let g of r.get(c)??[])o.has(g.next)||(o.set(g.next,p+1),i.set(g.next,{node:c,edge:g.edge}),s.push(g.next))}if(!o.has(n))return[];let u=[];for(let l=n;l!==t;){let c=i.get(l);if(!c)return[];u.push(c.edge),l=c.node}return u.reverse()}function Ce(e,t,n){let a=P(e,n),r=new Map,o=[...t];for(let i of t)r.set(i,0);for(let i=0;i<o.length;i+=1){let s=o[i],u=r.get(s);for(let{next:l}of a.get(s)??[])r.has(l)||(r.set(l,u+1),o.push(l))}return r}function Te(e,t,n){return H(e,n)-H(t,n)||U(e)-U(t)||V(e.evidenceStrength)-V(t.evidenceStrength)||y.indexOf(e.family)-y.indexOf(t.family)||e.from.label.localeCompare(t.from.label)||e.to.label.localeCompare(t.to.label)||e.subtype.localeCompare(t.subtype)||e.id.localeCompare(t.id)}function H(e,t){return Math.min(t.get(e.from.id)??Number.MAX_SAFE_INTEGER,t.get(e.to.id)??Number.MAX_SAFE_INTEGER)}function U(e){let t=[e.from,e.to].filter(n=>n.kind==="structural-region").length;return t===2?2:t}function V(e){switch(e){case"exact":return 0;case"mixed":return 1;case"derived":return 2;case"candidate":return 3;case"unknown":return 4}}function E(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}export{y as a,Ne as b,We as c};
|
|
2
|
+
//# sourceMappingURL=chunk-PFMQRHC6.js.map
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import{q as on}from"./chunk-37K55EG3.js";import{a as sn,b as ln}from"./chunk-33AXWMO2.js";import{B as W,C as X,F as ie,H as N,O as ae,P as Ae,e as U,o as ne,p as A,s as Te,u as ke,x as $e,y as rn}from"./chunk-G3KRXNNT.js";import{c as z}from"./chunk-W6E6ME7G.js";import{b as fe,c as re,d as M,f as st,g as lt,h as an}from"./chunk-DRENNWRG.js";import{G as D,J as nn,a as pe,c as Zt,i as Xt,j as Qt,k as _e,l as L,q as Yt,r as en,y as Be,z as tn}from"./chunk-XDQ6QJF5.js";import{a as Gt,d as Ht}from"./chunk-E7T22WET.js";import{a as $,b as Pe,e as Le,f as Jt}from"./chunk-UUMAM5LM.js";import{a as zt}from"./chunk-EDMG5CSO.js";import{b as Vt,e as S,h as qt}from"./chunk-3F23W57G.js";import{i as Z}from"./chunk-R2NOK63J.js";import{c as Kt}from"./chunk-OZI44VCR.js";import{A as Wt,B as te,h as Mt,n as Ot,o as jt,z as Ut}from"./chunk-C3PPB2T5.js";import{join as De}from"path";var Zo=6,Xo=5e3,Sr="watch.lock",br="watch-state.json",vr="watch-activity.json",xr="watch-refresh-requests";function Qo(e){return{lockPath:De(e,Sr),statePath:De(e,br),activityPath:De(e,vr),refreshRequestsPath:De(e,xr)}}function Jo(e){try{return Rr(JSON.parse(Mt(e,"watch service state")))}catch{return null}}function Rr(e){if(!e||typeof e!="object")return null;let t=e;if(t.version!==1||typeof t.protocolVersion!="number"||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.projectRoot!="string"||t.worktreeId!==void 0&&(typeof t.worktreeId!="string"||t.worktreeId.length===0)||typeof t.cliVersion!="string"||!P(t.startedAt)||!P(t.heartbeatAt)||!P(t.lastActivityAt)||!Ir(t.watcher)||t.idleDeadlineAt!==void 0&&!P(t.idleDeadlineAt))return null;if(t.processIdentity!==void 0){let n=Kt(t.processIdentity);if(!n||n.pid!==t.pid)return null;t.processIdentity=n}return t.indexGeneration!==void 0&&!/^[a-f0-9]{64}$/.test(t.indexGeneration)||t.lastError!==void 0&&!wr(t.lastError)||t.lastRefresh!==void 0&&!Cr(t.lastRefresh)||t.reindexActivity!==void 0&&!Nr(t.reindexActivity)||t.refreshRequests!==void 0&&!Er(t.refreshRequests)||t.typescriptSemantic!==void 0&&!Pr(t.typescriptSemantic)||t.typescriptIndex!==void 0&&!_r(t.typescriptIndex)||t.queryLane!==void 0&&!Lr(t.queryLane)?null:t}function P(e){return Vt(e)}function Ir(e){if(!e||typeof e!="object"||!("state"in e))return!1;let t=e;switch(t.state){case"idle":return!0;case"waiting":return B(t.changedFiles)&&B(t.reindexAt);case"indexing":return B(t.startedAt);case"cooldown":return B(t.until)&&typeof t.dirty=="boolean";case"budget-paused":return B(t.until)&&typeof t.dirty=="boolean"&&typeof t.reason=="string"&&S(t.rebuilt)&&S(t.estimatedWriteBytes);case"draining":return B(t.startedAt)&&typeof t.reason=="string";default:return!1}}function wr(e){if(!e||typeof e!="object")return!1;let t=e;return P(t.at)&&typeof t.message=="string"}function Cr(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.trigger?.kind=="string"&&typeof t.result=="string"&&P(t.startedAt)&&P(t.completedAt)&&B(t.durationMs)}function Nr(e){if(!e||typeof e!="object")return!1;let t=e;return t.confidence!==void 0&&t.confidence!=="complete"&&t.confidence!=="partial"&&t.confidence!=="unavailable"||t.recordsRead!==void 0&&!S(t.recordsRead)||t.invalidRecords!==void 0&&!S(t.invalidRecords)||t.skippedRecords!==void 0&&!S(t.skippedRecords)||t.readErrors!==void 0&&!S(t.readErrors)||t.ignoredPartialTailBytes!==void 0&&!S(t.ignoredPartialTailBytes)||!P(t.windowStartedAt)||!P(t.windowEndedAt)||!S(t.runs)||!S(t.rebuilt)||!S(t.reused)||!S(t.failed)||!S(t.suppressed)||!B(t.estimatedLogicalOutputBytes)||t.estimatedWriteBytes!==void 0&&!S(t.estimatedWriteBytes)||t.reflinkedBytes!==void 0&&!S(t.reflinkedBytes)||t.fallbackCopiedBytes!==void 0&&!S(t.fallbackCopiedBytes)||t.oldestRebuildAt!==void 0&&!P(t.oldestRebuildAt)||t.oldestWriteAt!==void 0&&!P(t.oldestWriteAt)||t.languageAttribution!==void 0&&t.languageAttribution!=="complete"&&t.languageAttribution!=="partial"&&t.languageAttribution!=="unavailable"||t.attributedRuns!==void 0&&!S(t.attributedRuns)||t.unattributedRuns!==void 0&&!S(t.unattributedRuns)||t.invalidLanguageDetails!==void 0&&!S(t.invalidLanguageDetails)||t.estimatedLogicalOutputBytes<0||!t.byTrigger||typeof t.byTrigger!="object"||Array.isArray(t.byTrigger)||t.byLanguage!==void 0&&!Fr(t.byLanguage)?!1:Object.values(t.byTrigger).every(n=>n===void 0||S(n))}function Fr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;for(let[t,n]of Object.entries(e)){if(!Gt.includes(t)||!n||typeof n!="object")return!1;let r=n;if(!S(r.runs)||!S(r.rebuilt)||!S(r.reused)||!S(r.producedOutputBytes)||!qt(r.durationMs)||r.rebuilt+r.reused!==r.runs)return!1}return!0}function Er(e){if(!e||typeof e!="object")return!1;let t=e;return S(t.pending)&&S(t.claimed)&&S(t.completed)&&S(t.expired)&&S(t.invalid)&&(t.oldestPendingAt===void 0||P(t.oldestPendingAt))}function Pr(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&(t.state==="idle"||t.state==="ready"||t.state==="unavailable"||t.state==="error")&&B(t.requests)&&B(t.sessionsCreated)&&B(t.sessionsReused)&&B(t.sessionsRefreshed)&&B(t.sessionsReplaced)&&B(t.projectsCreated)&&(t.lastRequestAt===void 0||P(t.lastRequestAt))&&(t.lastError===void 0||typeof t.lastError=="string")&&(t.busyUntil===void 0||P(t.busyUntil))&&(t.mailbox===void 0||cn(t.mailbox))}function _r(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&(t.state==="idle"||t.state==="ready"||t.state==="unavailable"||t.state==="error")&&S(t.requests)&&S(t.sessionsCreated)&&S(t.sessionsReplaced)&&S(t.initializations)&&S(t.programUpdates)&&S(t.documentsEmitted)&&S(t.documentsRemoved)&&(t.lastRequestAt===void 0||P(t.lastRequestAt))&&(t.lastDurationMs===void 0||B(t.lastDurationMs)&&t.lastDurationMs>=0)&&(t.lastError===void 0||typeof t.lastError=="string")&&(t.busyUntil===void 0||P(t.busyUntil))&&(t.mailbox===void 0||cn(t.mailbox))}function Lr(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&typeof t.socketPath=="string"&&t.socketPath.length>0&&S(t.requests)&&(t.lastRequestAt===void 0||P(t.lastRequestAt))&&(t.lastError===void 0||typeof t.lastError=="string")}function cn(e){if(!e||typeof e!="object")return!1;let t=e;return S(t.pending)&&S(t.inflight)&&S(t.responses)&&S(t.deadLetters)&&S(t.invalid)&&S(t.totalItems)&&B(t.totalBytes)&&t.totalBytes>=0&&t.totalItems===t.pending+t.inflight+t.responses+t.deadLetters&&(t.oldestPendingAt===void 0||P(t.oldestPendingAt))}function B(e){return typeof e=="number"&&Number.isFinite(e)}var un=Qt({kind:"file-dependency-graph",invalidation:_e("file-dependency-graph"),serialize:e=>JSON.stringify(e),deserialize:Mr}),Br=$("file-dep-graph",{clearGroups:["whole-project"]});function Me(e,t,n={}){let r=n.scipEdges??"all-references",i=n.sourceEdges??"imports-only",a=$r(t,r,i);return Br.get(e,a,()=>{let o=new Set(Le(e,{includeIgnored:!1})),s=Zt(e),l=0,c=0,u=null,d=!1,p=0,f=0;return Z("file-dep-graph.product",()=>{if(s){let h=un.read(e,a,s);if(h){d=!0;let v=Dr(h);return l=h.sourceFileCount,c=h.sourceEdgeCount,p=h.scipEdgeCount,f=v.size,u=h.sourceDependencyFingerprint,v}}let m=Z("file-dep-graph.source-imports",()=>{let h=Tr(e,o,t,i);return l=h.files.length,c=h.edges.length,u=h.fingerprint,h},()=>({scope:t??null,sourceEdges:i,files:l,edges:c})),g=new Map,b=(h,v)=>qr(e,g,o,h,v);Z("file-dep-graph.scip-edges",()=>{for(let h of Vr(e,t,r))p+=1,b(h.from_file,h.to_file)},()=>({scope:t??null,edges:p}));for(let h of m.edges)b(h.fromFile,h.toFile);return f=g.size,s&&un.write(e,a,s,{sourceDependencyFingerprint:m.fingerprint,sourceFileCount:m.files.length,sourceEdgeCount:m.edges.length,scipEdgeCount:p,graph:Ar(g)}),g},()=>({scope:t??null,available:s!==null,hit:d,files:l,sourceEdges:c,sourceEdgeMode:i,scipEdges:p,graphFiles:f,sourceDependencyFingerprint:u}))})}function Tr(e,t,n,r){let i=[],a=[];for(let o of t)if(!(n&&!o.includes(n))){i.push(o);for(let s of A(e,o))s.sourcePath&&a.push({fromFile:o,toFile:s.sourcePath});if(r==="imports-and-reexports")for(let s of ne(e,o))s.sourcePath&&a.push({fromFile:o,toFile:s.sourcePath})}return{files:i,edges:a,fingerprint:kr(i,a)}}function kr(e,t){let n=t.map(r=>`${r.fromFile}\0${r.toFile}`).sort();return pe(JSON.stringify({files:e,edges:n}))}function $r(e,t,n){return`edge-mode-v3:${t}:${n}:${e??"<all>"}`}function Ar(e){return[...e].map(([t,n])=>[t,[...n]])}function Dr(e){return new Map(e.graph.map(([t,n])=>[t,new Set(n)]))}function Mr(e){let t=JSON.parse(e);return Or(t)?t:null}function Or(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.sourceDependencyFingerprint=="string"&&typeof t.sourceFileCount=="number"&&typeof t.sourceEdgeCount=="number"&&typeof t.scipEdgeCount=="number"&&Array.isArray(t.graph)&&t.graph.every(jr)}function jr(e){return Array.isArray(e)&&e.length===2&&typeof e[0]=="string"&&Array.isArray(e[1])&&e[1].every(t=>typeof t=="string")}function Vr(e,t,n){let r=t?"AND d1.relative_path LIKE ?":"",i=t?[`%${t}%`]:[],a=n==="imports-only"?"AND m.role = 2":"AND m.role != 1";return e.all(`SELECT DISTINCT
|
|
2
|
+
d1.relative_path AS from_file,
|
|
3
|
+
d2.relative_path AS to_file
|
|
4
|
+
FROM mentions m
|
|
5
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
6
|
+
JOIN documents d1 ON c.document_id = d1.id
|
|
7
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
8
|
+
JOIN (
|
|
9
|
+
SELECT m2.symbol_id, c2.document_id
|
|
10
|
+
FROM mentions m2
|
|
11
|
+
JOIN chunks c2 ON m2.chunk_id = c2.id
|
|
12
|
+
WHERE m2.role = 1
|
|
13
|
+
GROUP BY m2.symbol_id
|
|
14
|
+
) sym_def ON sym_def.symbol_id = gs.id
|
|
15
|
+
JOIN documents d2 ON sym_def.document_id = d2.id
|
|
16
|
+
WHERE d1.id != d2.id
|
|
17
|
+
${a}
|
|
18
|
+
${e.pathExclusionsFor("d1","d2")}
|
|
19
|
+
${r}`,...i)}function qr(e,t,n,r,i){if(r===i||e.isIgnored(r)||e.isIgnored(i)||!n.has(i))return;let a=t.get(r);a||(a=new Set,t.set(r,a)),a.add(i)}function je(e){let t=Oe(e.projectFiles),n=new Set(t),r=new Map(e.snapshot.files.map(d=>[d.path,d])),i=e.snapshot.files.filter(d=>{let p=Ot(d.path,["typescript"]);return p==="config"||p==="ambient"}).map(d=>d.path),a=Oe([...t,...i]),o=a.find(d=>!r.has(d)),s=new Set(e.snapshot.files.map(d=>d.path)).size!==e.snapshot.files.length,l=!o&&a.some(d=>dn(r.get(d))),c=pe(JSON.stringify({pnpmWorkspaces:e.snapshot.pnpmWorkspaces,typescriptProjectMode:e.snapshot.typescriptProjectMode,typescriptProjects:Oe(e.snapshot.typescriptProjects),membership:t})),u=new Map;return{identityFor(d,p){if(!n.has(d))return oe("target-outside-project");if(s)return oe("duplicate-input-path");if(o)return oe("missing-input-fingerprint");if(l)return oe("unreadable-input");let f=[],m,g;if(e.graph===null)f.push("dependency-graph-unavailable"),g="whole-project",m=a;else{let v=Hr(d,e.graph,u);if(v.find(x=>!r.has(x)))return oe("missing-input-fingerprint");if(m=Oe([...v,...i]),m.some(x=>dn(r.get(x))))return oe("unreadable-input");g="dependency-closure"}let b=m.map(v=>zr(r.get(v)));return{version:1,key:pe(JSON.stringify({version:1,engineIdentity:e.engineIdentity,schemaVersion:p,projectIdentity:c,inputs:b})),mode:g,inputFiles:m,reasons:f}}}}function Gr(e,t){let n=new Set,r=[e];for(let i=0;i<r.length;i+=1){let a=r[i];if(!(a===void 0||n.has(a))){n.add(a);for(let o of[...t.get(a)??[]].sort())n.has(o)||r.push(o)}}return[...n].sort()}function Hr(e,t,n){let r=n.get(e);if(r)return r;let i=Gr(e,t);return n.set(e,i),i}function zr(e){return{path:e.path,size:e.size,hash:e.hash}}function dn(e){return e.size<0||e.hash==="unreadable"}function oe(e){return{version:1,key:null,mode:"unkeyed",inputFiles:[],reasons:[e]}}function Oe(e){return[...new Set(e)].sort()}var Ur=Pe("typescript-semantic-identity-context",{clearGroups:["whole-project"]});function ct(e,t,n){let r=Ur.get(e,()=>Wr(e));if(!r)return null;let i=`${n}\0${t}`,a=r.identities.get(i);if(a)return a;let o=r.builder.identityFor(t,n);return r.identities.set(i,o),o}function me(e){return Le(e,{includeIgnored:!1}).filter(Te).sort()}function Wr(e){try{if(!e.generation.metadataRaw)return null;let t=Ht(e.generation.metadataRaw);if(t.kind!=="legacy"&&t.kind!=="supported"||!t.capabilities.usableForEvidenceCache)return null;let n=jt(t.metadata.fingerprint);return n?{builder:je({projectFiles:me(e),snapshot:n,graph:Me(e),engineIdentity:ke()}),identities:new Map}:null}catch{return null}}var ut="typescript-reference-fragment-v3-incomplete-scan",Ve=Xt({kind:"typescript-reference-fragments",invalidation:_e("typescript-reference-fragments"),serialize:e=>JSON.stringify(e),deserialize:Zr});function Fs(e,t,n,r=e){let i=me(e),a=je({projectFiles:i,snapshot:t,graph:Me(e),engineIdentity:ke()}),o=[...n].map(([s,l])=>({relativePath:s,contentHash:a.identityFor(s,ut).key,value:[...l]}));if(o.some(s=>s.contentHash===null))throw new Error("TypeScript reference fragment identity is unavailable for an affected document.");return Ve.writeBatch(r,o.map(s=>({...s,contentHash:s.contentHash}))),o.length}function Es(e,t,n,r){let i=t.filter(o=>Te(o.relativePath));if(i.length===0)return ye("no TypeScript definitions");let a=ye("shadow did not run");return Z("typescript.reference-fragments.shadow",()=>{try{let o=r(i[0].relativePath);if(!o.availability().available||!o.referenceFragmentsForFiles)return a=ye("TypeScript reference fragment provider is unavailable"),a;let s=me(e),l=new Set(s),c=o.referenceFragmentsForFiles(s),u=s.filter(m=>!c.has(m));if(u.length>0)return a=ye(`TypeScript reference lookup was incomplete for ${u.length} file(s)`),a;let d=$e(i,c),p=rn(i,Kr(n,l),d);if(!p.passed)return a={state:"failing",files:s.length,keyedFiles:0,writtenFiles:0,...p},a;let f=[];for(let m of s){let g=ct(e,m,ut);g?.key&&f.push({relativePath:m,contentHash:g.key,value:c.get(m)??[]})}return Ve.writeBatch(e,f),a={state:"passing",files:s.length,keyedFiles:f.length,writtenFiles:f.length,...p},a}catch(o){return a=ye(o instanceof Error?o.message:String(o)),a}},()=>({...a}))}function Kr(e,t){return new Map([...e].map(([n,r])=>[n,r.filter(i=>t.has(i.file))]))}function Ps(e,t,n){if(t.length===0)return{references:new Map,files:0,cacheHits:0,cacheMisses:0,computedFiles:0};let r="fallback",i=0,a=0,o=0,s=0;return Z("typescript.reference-fragments.materialize",()=>{try{let l=me(e);i=l.length;let c=new Map,u=new Map,d=[];for(let m of l){let g=ct(e,m,ut);if(!g?.key)return null;c.set(m,g.key);let b=Ve.read(e,m,g.key);b===null?(o+=1,d.push(m)):(a+=1,u.set(m,b))}if(o===0)return r="hit",{references:$e(t,u),files:i,cacheHits:a,cacheMisses:o,computedFiles:s};let p=n(t[0].relativePath);if(!p.availability().available||!p.referenceFragmentsForFiles)return null;let f=p.referenceFragmentsForFiles(d);if(d.some(m=>!f.has(m)))return null;s=f.size,Ve.writeBatch(e,d.map(m=>({relativePath:m,contentHash:c.get(m),value:f.get(m)??[]})));for(let[m,g]of f)u.set(m,g);return r="computed",{references:$e(t,u),files:i,cacheHits:a,cacheMisses:o,computedFiles:s}}catch{return null}},()=>({state:r,files:i,cacheHits:a,cacheMisses:o,computedFiles:s}))}function ye(e){return{state:"unavailable",files:0,keyedFiles:0,writtenFiles:0,expectedCount:0,actualCount:0,missing:[],extra:[],reason:e}}function Zr(e){try{let t=JSON.parse(e);return!Array.isArray(t)||!t.every(Xr)?null:t}catch{return null}}function Xr(e){if(!e||typeof e!="object")return!1;let t=e,n=t.location;return typeof t.targetSymbol=="string"&&!!n&&typeof n.file=="string"&&typeof n.line=="number"&&typeof n.column=="number"}var Qr=$("symbol-resolution",{clearGroups:[]});function Os(e,t){return Jr(e,t).match}function Jr(e,t){return Qr.get(e,t,()=>{let n=mn(e,t.trim()).filter(o=>!e.isIgnored(o.relative_path));if(n.length>0)return se(e,n);let r=oi(e,t);if(r&&!e.isIgnored(r.relative_path))return se(e,[r]);let i=Yr(e,t);if(i.length>0)return se(e,i);let a=ei(e,t);return a.length>0?se(e,a):ii(e,t)})}function Yr(e,t){let n=t.trim().replace(/\(\)$/u,""),r=n.lastIndexOf(":");if(r<=0||r===n.length-1||n.startsWith("local:"))return[];let i=n.slice(r+1);if(!/^[\p{L}_$][\p{L}\p{N}_$]*$/u.test(i))return[];let a=[`/${i}().`,`/${i}.`,`/${i}#`,`#${i}().`,`#${i}.`,`/${i}/`],o=`gs.display_name = ? OR ${a.map(()=>"instr(gs.symbol, ?) > 0").join(" OR ")}`,s=[i,...a],l=W(e,{where:o,params:s,orderBy:"d.relative_path, der.start_line",limit:200}),c=l.length>0?[]:X(e,{where:o,params:s,orderBy:"d.relative_path, start_line",limit:200}),u=ie(l,c).filter(d=>!e.isIgnored(d.relative_path)).filter(d=>re(d.symbol).replace(/\(\)$/u,"")===n);return[...new Map(u.map(d=>[`${d.symbol}\0${d.relative_path}`,d])).values()]}function ei(e,t){let n=qe(t),r=dt(n);if(!r)return[];let i=`%${r.path}%`,a=r.leaf;return ti(e,i,a,n)}function ti(e,t,n,r){let i=ie([],[...ni(e,t,n),...ri(e,t,n)]).filter(a=>!e.isIgnored(a.relative_path)).filter(a=>le(a,r)>1);return i.sort((a,o)=>le(o,r)-le(a,r)||a.end_line-a.start_line-(o.end_line-o.start_line)||a.start_line-o.start_line||a.symbol.localeCompare(o.symbol)),i}function ni(e,t,n){return W(e,{where:"d.relative_path LIKE ? AND (gs.display_name = ? OR gs.symbol LIKE ?)",params:[t,n,`%/${n}.%`]})}function ri(e,t,n){return X(e,{where:"d.relative_path LIKE ? AND (gs.display_name = ? OR gs.symbol LIKE ?)",params:[t,n,`%/${n}.%`]})}function ii(e,t){let n=qe(t),r=pi(t),i=ui(e,r),a=fi(i,t,n).filter(s=>!e.isIgnored(s.relative_path));if(a.length>0)return se(e,a);let o=[];for(let s of i){if(e.isIgnored(s.relative_path))continue;let l=di(s,t,n,r);l<=0||o.push({row:s,score:l})}return o.sort((s,l)=>l.score-s.score||s.row.end_line-s.row.start_line-(l.row.end_line-l.row.start_line)||s.row.relative_path.localeCompare(l.row.relative_path)||s.row.symbol.localeCompare(l.row.symbol)),se(e,o.map(s=>s.row))}function se(e,t){let n=t.map(i=>Ae(e,i)),r=n[0]??null;return{match:r,candidates:r?ai(n,r):[],total:n.length}}function ai(e,t){let n=new Set([`${t.symbolId}:${t.relativePath}:${t.startLine}`]),r=[];for(let i of e){let a=`${i.symbolId}:${i.relativePath}:${i.startLine}`;if(!n.has(a)&&(n.add(a),r.push({symbol:i.symbol,shortName:re(i.symbol),relativePath:i.relativePath,startLine:i.startLine}),r.length>=5))break}return r}function oi(e,t){let n=t.match(/^(.+):(\d+)(?:-(\d+))?$/);if(!n)return;let[,r,i,a]=n,o=Jt(e,r,{allowMultiple:!1})[0]?.relativePath;if(!o)return;let s=Math.max(0,parseInt(i,10)-1),l=a?Math.max(s,parseInt(a,10)-1):s;return si(e,o,s,l)??li(e,o,s,l)}function si(e,t,n,r){return W(e,{where:"d.relative_path = ? AND der.start_line <= ? AND der.end_line >= ?",params:[t,n,r],orderBy:"(der.end_line - der.start_line) ASC",limit:1})[0]}function li(e,t,n,r){return X(e,{where:"d.relative_path = ? AND c.start_line <= ? AND c.end_line >= ?",params:[t,n,r],orderBy:"(MAX(c.end_line) - MIN(c.start_line)) ASC",limit:1})[0]}function js(e,t){let n=mn(e,t).find(r=>!e.isIgnored(r.relative_path));return n?Ae(e,n):null}function mn(e,t){let n=W(e,{where:"gs.symbol = ?",params:[t],orderBy:"d.relative_path, der.start_line"}),r=n.length>0?[]:X(e,{where:"gs.symbol = ?",params:[t],orderBy:"d.relative_path, start_line"});return ie(n,r)}function ge(e,t){if("symbol"in t&&"relativePath"in t)return t;let n=ci(e,t.symbolId)[0];return n?Ae(e,n):null}function ci(e,t){let n=W(e,{where:"gs.id = ?",params:[t],orderBy:"der.start_line, der.end_line"}),r=X(e,{where:"gs.id = ?",params:[t],orderBy:"start_line, end_line"});return ie(n,r)}function ui(e,t){let n=t.map(()=>"(gs.symbol LIKE ? OR d.relative_path LIKE ? OR COALESCE(gs.display_name, '') LIKE ?)"),r=t.flatMap(s=>{let l=`%${s}%`;return[l,l,l]}),i=n.join(`
|
|
20
|
+
AND `),a=W(e,{where:i,params:r,limit:200}),o=X(e,{where:i,params:r,limit:200});return ie(a,o)}function di(e,t,n,r){let i=t.trim(),a=n,o=a.replace(/\(\)$/,""),s=t.toLowerCase(),l=n.toLowerCase(),c=l.replace(/\(\)$/,""),u=e.symbol,d=re(e.symbol),p=M(e.symbol),f=e.display_name??"",m=e.symbol.toLowerCase(),g=d.toLowerCase(),b=p.toLowerCase(),h=f.toLowerCase(),v=e.relative_path.toLowerCase(),F=/[/:.]/.test(n),x=dt(n),w=x?.leaf.toLowerCase(),y=0;return(u===i||u===a)&&(y+=1150),(d===i||d===a)&&(y+=1100),f===o&&(y+=1180),p===o&&(y+=1160),(`${p}()`===i||`${p}()`===a)&&(y+=955),(m===s||m===l)&&(y+=1e3),(g===s||g===l)&&(y+=950),(v===s||v===l)&&(y+=925),(v.endsWith(`/${l}`)||v.endsWith(`/${s}`))&&(y+=875),h===c&&(y+=850),b===c&&(y+=825),(`${b}()`===s||`${b}()`===l)&&(y+=820),(g.endsWith(`:${l}`)||g.endsWith(`:${c}`)||g.endsWith(`:${c}()`))&&(y+=800),m.includes(l)&&(y+=120),g.includes(l)&&(y+=140),v.includes(l)&&(y+=140),h.includes(l)&&(y+=110),r.every(R=>{let I=R.toLowerCase();return m.includes(I)||g.includes(I)||v.includes(I)||h.includes(I)})&&(y+=100+r.length*15),x&&v.includes(x.path.toLowerCase())&&(y+=360,w&&(b===w||`${b}()`===w||`${b}()`==`${w}()`)&&(y+=700),st(e.symbol)&&(y+=180)),lt(e.symbol)&&b===c&&(y+=60),!F&&an(e.symbol)&&(y-=160),y-=Math.min(50,Math.max(0,e.end_line-e.start_line)),y}function dt(e){let t=e.trim().replace(/\\/g,"/"),n=t.lastIndexOf("/");if(n<=0||n===t.length-1)return null;let r=t.slice(n+1).replace(/\(\)$/,"");return!r||r.includes(".")?null:{path:t.slice(0,n),leaf:r}}function qe(e){return e.trim().replace(/\(\)$/,"").replace(/\(.*$/,"")}function pi(e){let t=qe(e),n=t.split(/[^A-Za-z0-9_]+/).map(r=>r.trim()).filter(r=>r.length>0);return n.length>0?[...new Set(n)]:[t]}function fi(e,t,n){let r=t.trim(),i=e.filter(s=>{let l=re(s.symbol),c=M(s.symbol),u=(s.display_name??"").trim();return s.symbol===r||l===r||l===n||c===r||c===n||`${c}()`===r||u===r||u===n||`${u}()`===r||le(s,n)>1||s.relative_path===r});if(i.length===0)return[];let a=n.replace(/\(\)$/u,""),o=i.filter(s=>M(s.symbol)===a);if(o.length>0){o.sort((l,c)=>pn(l,c,n));let s=o.filter(l=>lt(l.symbol));return s.length>0?s:o}return i.sort((s,l)=>pn(s,l,n)),i}function pn(e,t,n){return le(t,n)-le(e,n)||e.end_line-e.start_line-(t.end_line-t.start_line)||e.relative_path.localeCompare(t.relative_path)||e.symbol.localeCompare(t.symbol)}function le(e,t){let n=dt(t);if(!n)return 0;let r=e.relative_path.toLowerCase(),i=M(e.symbol).toLowerCase(),a=n.path.toLowerCase(),o=n.leaf.toLowerCase();return r.includes(a)?i!==o?1:st(e.symbol)?fe(e.symbol)===null?5:4:fe(e.symbol)===null?3:2:0}function Vs(e,t,n=5){let r=fn(t);if(!r)return[];let i=W(e,{where:"1 = 1",orderBy:"d.relative_path, der.start_line",limit:5e3}),a=new Map;for(let o of i){if(e.isIgnored(o.relative_path))continue;let s=re(o.symbol),l=M(o.symbol),c=o.display_name??l,u=[s,l,c].filter(f=>f.trim().length>0),d=Math.min(...u.map(f=>mi(fn(f),r))),p=a.get(s);(!p||d<p.distance)&&a.set(s,{shortName:s,distance:d})}return[...a.values()].sort((o,s)=>o.distance-s.distance||o.shortName.localeCompare(s.shortName)).slice(0,n).map(o=>o.shortName)}function fn(e){return qe(e).toLowerCase().replace(/[^a-z0-9_]+/g,"")}function mi(e,t){if(e===t)return 0;if(e.length===0)return t.length;if(t.length===0)return e.length;let n=Array.from({length:t.length+1},(r,i)=>i);for(let r=0;r<e.length;r++){let i=[r+1];for(let a=0;a<t.length;a++){let o=e[r]===t[a]?0:1;i[a+1]=Math.min(i[a]+1,n[a+1]+1,n[a]+o)}n=i}return n[t.length]}function Xs(e,t){let n=yn(e);return n?t.filter(r=>yn(r.file)===n):t}function Qs(e,t,n,r,i){let a=n.find(o=>o.file===t);if(a)return a;if(r){let o=i?.match(/^[A-Za-z_$][\w$]*/u)?.[0];if(!o)return null;let s=A(e,t),l=new Set(s.filter(p=>p.localName===o||p.importedName===o).map(p=>p.sourcePath).filter(p=>!!p));for(let p of n)for(let f of l)if(te(f,p.file))return p;let c=yi(L(e,t)??"",o);if(c.size===0)return null;let u=new Set(s.filter(p=>c.has(p.localName??p.importedName)).map(p=>p.sourcePath).filter(p=>!!p)),d=n.filter(p=>c.has(fe(p.symbol)??"")&&[...u].some(f=>te(f,p.file)));return d.length===1?d[0]:null}return n.length===1?n[0]:null}function yi(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),r=new Set,i=[new RegExp(`\\b${n}\\s*:\\s*([A-Za-z_$][\\w$]*)`,"gu"),new RegExp(`\\b${n}\\s*=\\s*(?:new\\s+)?([A-Za-z_$][\\w$]*)\\s*\\(`,"gu")];for(let a of i)for(let o of e.matchAll(a))r.add(o[1]);return r.size===1?r:new Set}function yn(e){let t=Be(e);return t?t==="typescript"||t==="tsx"||t==="javascript"?"javascript-family":t:null}var gi=Pe("global-leaf-index",{clearGroups:["whole-project"]});function pt(e){return gi.get(e,()=>{let t=e.all(`SELECT gs.id, gs.symbol,
|
|
21
|
+
COALESCE(der_doc.relative_path, mention_doc.relative_path) AS relative_path
|
|
22
|
+
FROM global_symbols gs
|
|
23
|
+
LEFT JOIN defn_enclosing_ranges der ON der.symbol_id = gs.id
|
|
24
|
+
LEFT JOIN documents der_doc ON der_doc.id = der.document_id
|
|
25
|
+
LEFT JOIN (
|
|
26
|
+
SELECT m.symbol_id, MIN(d.relative_path) AS relative_path
|
|
27
|
+
FROM mentions m
|
|
28
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
29
|
+
JOIN documents d ON c.document_id = d.id
|
|
30
|
+
WHERE m.role = 1
|
|
31
|
+
GROUP BY m.symbol_id
|
|
32
|
+
) mention_doc ON mention_doc.symbol_id = gs.id
|
|
33
|
+
WHERE 1 = 1
|
|
34
|
+
${e.symbolNoiseFor("gs")}`),n=new Map;for(let r of t){if(!r.relative_path||e.isIgnored(r.relative_path))continue;let i=M(r.symbol);if(!i)continue;let a=n.get(i);a||(a=[],n.set(i,a)),a.some(o=>o.symbolId===r.id)||a.push({symbol:r.symbol,symbolId:r.id,file:r.relative_path})}return n})}function Ge(e,t,n,r={}){if(!n)return[];let i=L(e,t);return i?i.indexOf(n)===-1?[]:(ft(e,t).get(n)??[]).filter(o=>!hi(o,r)):[]}function hi(e,t){return typeof t.excludeStartLine=="number"&&typeof t.excludeEndLine=="number"&&e>=t.excludeStartLine&&e<=t.excludeEndLine}var Si=$("file-identifiers",{clearGroups:["whole-project","source-file"]});function gn(e,t){let n=U(e,t);return n?n.fileIdentifiers:Si.get(e,t,()=>new Set(ft(e,t).keys()))}var bi=$("file-ident-lines",{clearGroups:["whole-project","source-file"]});function ft(e,t){let n=U(e,t);return n?n.identifierLineMap:bi.get(e,t,()=>xi(e,t))}var vi=$("file-idents-by-line",{clearGroups:["whole-project","source-file"]});function rl(e,t){let n=U(e,t);return n?n.identifiersByLine:vi.get(e,t,()=>{let r=ft(e,t),i=0;for(let o of r.values()){let s=o[o.length-1];s!==void 0&&s>i&&(i=s)}let a=new Array(i+1);for(let o=0;o<=i;o+=1)a[o]=new Set;for(let[o,s]of r)for(let l of s)a[l].add(o);return a})}function xi(e,t){let n=new Map,r=(s,l)=>{let c=n.get(s);if(!c){n.set(s,[l]);return}c[c.length-1]!==l&&c.push(l)},i=L(e,t);if(!i)return n;let a=en(i).split(/\r?\n/),o=/\b([A-Za-z_$][\w$]*)\b/g;for(let s=0;s<a.length;s+=1){let l=a[s]??"";for(let c of l.matchAll(o))c[1]&&r(c[1],s)}return n}var hn=/[A-Za-z_$][A-Za-z0-9_$]*/g,Sn=/^[A-Za-z_$][A-Za-z0-9_$]*$/,Ri=512;function mt(e){let t=[],n=!1;for(let r of e)r&&(n=!0,Sn.test(r)||t.push(r));return{candidateNames:e,hasUsableCandidate:n,nonIdentifierNames:t}}function bn(e,t){let n=Ii(t)?t:mt(t);if(n.candidateNames.size===0||!n.hasUsableCandidate)return!0;if(n.candidateNames.size<=Ri){for(let i of n.candidateNames)if(i){if(Sn.test(i)){if(wi(i).test(e))return!0;continue}if(e.includes(i))return!0}return!1}hn.lastIndex=0;let r;for(;(r=hn.exec(e))!==null;)if(n.candidateNames.has(r[0]))return!0;for(let i of n.nonIdentifierNames)if(e.includes(i))return!0;return!1}function Ii(e){return"candidateNames"in e}function wi(e){return new RegExp(`(?<![A-Za-z_$0-9])${Yt(e)}(?![A-Za-z_$0-9])`)}var Ci=$("source-import-paths-by-local-name",{clearGroups:["whole-project","source-file"]});function xn(e,t){let n=Ut(t);return Ci.get(e,n,()=>Ni(e,n))}function Ni(e,t){let n=new Map;for(let r of A(e,t)){if(!r.sourcePath)continue;let i=r.localName??r.importedName;if(i&&vn(n,i,r.sourcePath),r.kind==="namespace")for(let a of r.usedMembers)vn(n,a,r.sourcePath)}return n}function vn(e,t,n){let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)}function yt(e,t,n){let r=pt(e).get(n);if(!r||r.length===0)return[];if(r.length===1)return[he(r[0])];let i=r.filter(l=>l.file===t);if(i.length>0)return i.map(he);let a=xn(e,t),o=a.get(n);if(o)for(let l of o){let c=r.filter(u=>te(l,u.file));if(c.length>0)return c.map(he)}let s=new Set;for(let l of a.values())for(let c of l)s.add(c);for(let l of s){let c=r.filter(u=>te(l,u.file));if(c.length>0&&c.length===r.length)return c.map(he)}return[]}function xl(e,t,n){let r=yt(e,t,n);if(r.length>0)return r;let i=pt(e).get(n);return!i||i.length===0?[]:i.map(he)}function Rn(e,t,n={}){let r=Fi(e,t);if(!r)return[];let i=ge(e,t);if(n.semantic!==!1&&n.semanticEvidence){let o=n.semanticEvidence.references(e,{...i,leaf:r.identifier,parentTypeName:null,isFunctionLike:!1,isTypeLike:!1,kind:null,documentation:null,enclosingSymbol:null});if(o.length>0){let s=new Map;for(let l of o){let c=s.get(l.file)??[];c.push(l.line),s.set(l.file,c)}return He(e,s)}}let a=new Map;for(let o of z(e)){let s=Ei(e,r,o);s.length>0&&a.set(o,s)}return He(e,a)}function Fi(e,t){let n=ge(e,t);if(!n)return null;let r=M(n.symbol);return r?{symbolId:n.symbolId,relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine,identifier:r}:null}function Ei(e,t,n){let r=L(e,n);return!r||r.indexOf(t.identifier)===-1?[]:n!==t.relativePath&&!yt(e,n,t.identifier).some(a=>a.symbolId===t.symbolId)?[]:Ge(e,n,t.identifier,n===t.relativePath?{excludeStartLine:t.startLine,excludeEndLine:t.endLine}:{})}function Rl(e,t,n={}){let r=new Map;for(let l of t){if(!l.leaf)continue;let c=r.get(l.leaf)??[];c.push(l),r.set(l.leaf,c)}if(r.size===0)return new Map;let i=new Set(t.map(l=>l.symbolId)),a=new Set(r.keys()),o=mt(a),s=new Map;for(let l of z(e)){if(n.skipPath?.(l)||!bn(L(e,l),o))continue;let c=gn(e,l);if(c.size!==0){for(let u of c)if(r.has(u))for(let d of yt(e,l,u)){if(!i.has(d.symbolId)||l===d.relativePath)continue;let p=s.get(d.symbolId);p||(p=new Set,s.set(d.symbolId,p)),p.add(l)}}}return s}function he(e){return{symbolId:e.symbolId,symbol:e.symbol,relativePath:e.file}}function He(e,t){let n=[],r=new Set;for(let[i,a]of t){let o=N(e,i);for(let s of a){let l=ae(o,s),c=`${i}|${s}|${l?.symbol??""}`;r.has(c)||(r.add(c),n.push({file:i,line:s,enclosingSymbol:l?.symbol??null}))}}return n}function Pi(e,t){return _i(e,[t]).get(t.symbolId)??[]}function _i(e,t){let n=t.map(a=>({symbolId:a.symbolId,prelude:$i(e,a)})).filter(a=>a.prelude!==null),r=Bi(e,n.map(a=>a.symbolId)),i=new Map;for(let{symbolId:a,prelude:o}of n){let s=Li(e,r.get(a)??new Map,o.match,o.identifier);i.set(a,He(e,s))}return i}function Pl(e,t,n={}){return gt(e,t,n).map(r=>({file:r.file,line:r.line,enclosingSymbol:r.enclosingSymbol}))}function gt(e,t,n={}){let r=Rn(e,t,{semantic:n.semantic,semanticEvidence:n.semanticEvidence}),i=r.length>0?In(r,"source-attribution"):In(Pi(e,t),"scip-reference-chunk");return n.includeIgnored===!0?i:i.filter(a=>!e.isIgnored(a.file))}function In(e,t){return e.map(n=>({...n,provenance:t}))}function Li(e,t,n,r){let i=new Map;for(let[a,o]of t)i.set(a,Ti(e,a,o,n,r));return i}function Bi(e,t){let n=new Map;for(let r of on(e,t)){if(e.isIgnored(r.relative_path))continue;let i=n.get(r.symbol_id);i||(i=new Map,n.set(r.symbol_id,i));let a=i.get(r.relative_path);a||(a=[],i.set(r.relative_path,a)),a.push({start_line:r.chunk_start,end_line:r.chunk_end})}return n}function Ti(e,t,n,r,i){let a=t===r.relativePath?{excludeStartLine:r.startLine,excludeEndLine:r.endLine}:{},o=i?Ge(e,t,i,a):[];return n.flatMap(s=>ki(o,s))}function ki(e,t){let n=e.filter(r=>r>=t.start_line&&r<=t.end_line);return n.length>0?n:[t.start_line]}function $i(e,t){let n=ge(e,t);return n?{match:n,identifier:M(n.symbol)||null}:null}import{spawn as Ai}from"child_process";import{platform as wn}from"os";import{performance as Cn}from"perf_hooks";var $l={probe:1e4,git:3e4,analysis:18e4,install:3e5,indexer:18e5},be=class extends Error{constructor(n,r,i,a={}){super(i,a.cause===void 0?void 0:{cause:a.cause});this.kind=n;this.label=r;this.name="BoundedProcessError",this.timedOut=a.timedOut??!1,this.reaped=a.reaped??!1,this.stdout=a.stdout??"",this.stderr=a.stderr??"",this.stdoutTruncated=a.stdoutTruncated??!1,this.stderrTruncated=a.stderrTruncated??!1}kind;label;timedOut;reaped;stdout;stderr;stdoutTruncated;stderrTruncated};function Se(e,t){if(!Number.isFinite(e)||e<=0)throw new TypeError(`${t} must be a positive finite number.`)}function Nn(e,t,n,r){let i=Math.max(0,r-n);i>0&&e.push(t.subarray(0,i))}function Fn(e,t,n){let r=Buffer.concat([...e,t]);e.length=0,e.push(r.subarray(Math.max(0,r.length-n)))}function Al(e){Se(e.timeoutMs,"timeoutMs"),Se(e.maxStdoutBytes,"maxStdoutBytes"),Se(e.maxStderrBytes,"maxStderrBytes");let t=e.terminationGraceMs??1e3;Se(t,"terminationGraceMs");let n=e.terminationForceMs??t;return Se(n,"terminationForceMs"),new Promise((r,i)=>{let a=Cn.now(),o;try{let y=wn()!=="win32";o=Ai(e.command,[...e.args??[]],{cwd:e.cwd,env:e.env,detached:y?!0:e.detached,stdio:["pipe","pipe","pipe"],windowsHide:!0})}catch(y){i(new be("spawn",e.label,`${e.label} could not start.`,{cause:y,reaped:!0}));return}let s=[],l=[],c=0,u=0,d=!1,p=!1,f=null,m=!1,g=wn()!=="win32",b=o.pid===void 0?null:sn(o.pid,g),h=()=>{clearTimeout(x),e.signal?.removeEventListener("abort",w)},v=y=>{if(m||!f)return;m=!0,h();let R=Buffer.concat(s).toString("utf8"),I=Buffer.concat(l).toString("utf8"),E=y.reaped||!y.detail?"":` Process-tree cleanup failed: ${y.detail}`;i(new be(f.kind,e.label,`${f.message}${E}`,{timedOut:f.timedOut,reaped:y.reaped,stdout:R,stderr:I,stdoutTruncated:d,stderrTruncated:p}))},F=y=>{if(!(f||m)){if(f=y,!b){v({reaped:o.pid===void 0,reason:o.pid===void 0?"terminated":"identity-unavailable"});return}ln(b,{gracefulMs:t,forceMs:n}).then(v,R=>{v({reaped:!1,reason:"signal-failed",detail:R instanceof Error?R.message:String(R)})})}},x=setTimeout(()=>{F({kind:"timeout",timedOut:!0,message:`${e.label} timed out after ${e.timeoutMs}ms.`})},e.timeoutMs);x.unref();let w=()=>{F({kind:"aborted",timedOut:!1,message:`${e.label} was cancelled.`})};e.signal?.addEventListener("abort",w,{once:!0}),e.signal?.aborted&&w(),o.stdout.on("data",y=>{let R=Buffer.isBuffer(y)?y:Buffer.from(y);e.outputLimitBehavior==="truncate-tail"?Fn(s,R,e.maxStdoutBytes):Nn(s,R,c,e.maxStdoutBytes),c+=R.length,c>e.maxStdoutBytes&&(d=!0,e.outputLimitBehavior!=="truncate-tail"&&F({kind:"stdout-limit",timedOut:!1,message:`${e.label} exceeded stdout limit (${e.maxStdoutBytes} bytes).`}))}),o.stderr.on("data",y=>{let R=Buffer.isBuffer(y)?y:Buffer.from(y);e.outputLimitBehavior==="truncate-tail"?Fn(l,R,e.maxStderrBytes):Nn(l,R,u,e.maxStderrBytes),u+=R.length,u>e.maxStderrBytes&&(p=!0,e.outputLimitBehavior!=="truncate-tail"&&F({kind:"stderr-limit",timedOut:!1,message:`${e.label} exceeded stderr limit (${e.maxStderrBytes} bytes).`}))}),o.on("error",y=>{if(!m&&!f){if(o.pid===void 0){h(),m=!0,i(new be("spawn",e.label,`${e.label} could not start: ${y.message}`,{cause:y,reaped:!0}));return}F({kind:"spawn",timedOut:!1,message:`${e.label} failed after start: ${y.message}`})}}),o.on("close",(y,R)=>{if(m||f)return;m=!0,h();let I=Buffer.concat(s).toString("utf8"),E=Buffer.concat(l).toString("utf8");r({status:y,signal:R,stdout:I,stderr:E,timedOut:!1,durationMs:Cn.now()-a,stdoutTruncated:d,stderrTruncated:p})}),e.input===void 0?o.stdin.end():o.stdin.end(e.input)})}function En(e){let t=Wt(e);return Di(t)?"test":Mi(t)?"worker":Oi(t)?"entry":ji(t)?"barrel":"source"}function Di(e){return!!(/\.(?:test|spec)\.[a-z0-9]+$/i.test(e)||/(?:^|\/)(?:_)?test_[^/]+$/i.test(e)||/(?:^|\/)spec_[^/]+$/i.test(e)||/(?:^|\/)[^/]+_test\.[a-z0-9]+$/i.test(e)||/(?:^|\/)[^/]+_tests\.rs$/i.test(e)||/(?:^|\/)tests\.rs$/i.test(e)||/(?:^|\/)[^/]+_spec\.[a-z0-9]+$/i.test(e)||/(?:^|\/)__tests__\//i.test(e)||/(?:^|\/)test\//i.test(e)||/(?:^|\/)tests\//i.test(e)||/(?:^|\/)__fixtures__\//i.test(e)||/(?:^|\/)__mocks__\//i.test(e)||/(?:^|\/)test-support\//i.test(e)||/(?:^|\/)test-utils\//i.test(e)||/(?:^|\/)testing\//i.test(e))}function Mi(e){return/(?:^|\/)[^/]*worker\.(?:ts|tsx|js|mjs|cjs|rs|py|go)$/.test(e)}function Oi(e){let t=e.split("/"),n=t[t.length-1]??e;return n==="cli.ts"||n==="cli.js"||n==="postinstall.ts"||n==="postinstall.js"||n==="main.ts"||n==="main.js"||n==="main.rs"||n==="main.go"||n==="main.py"||n==="build.rs"||n==="lib.rs"||/\bsrc\/bin\/[^/]+\.rs$/.test(e)||/(?:^|\/)examples\/[^/]+\.rs$/.test(e)||/(?:^|\/)tests\/[^/]+\.rs$/.test(e)||/(?:^|\/)benches\/[^/]+\.rs$/.test(e)?!0:n==="index.ts"||n==="index.js"?/(?:^|\/)(?:apps|services)\/[^/]+\/src\/index\.(?:ts|js)$/.test(e)?!0:t.length<=2:!1}function ji(e){return e==="index.ts"||e==="index.js"||e.endsWith("/index.ts")||e.endsWith("/index.js")||e.endsWith("/mod.rs")||e.endsWith("/__init__.py")}function ze(e){let t=e.replaceAll("\\","/");return En(t)==="test"?/(?:^|\/)__fixtures__\//iu.test(t)?"fixture":"test":/(?:^|\/)(?:fixtures?|testdata)\//iu.test(t)?"fixture":/(?:^|\/)(?:examples?|demos?|previews?)\//iu.test(t)?"example":/(?:^|\/)(?:generated|dist|build|coverage)\//iu.test(t)||/\.generated\./iu.test(t)?"generated":/^(?:scripts?|tools?)\//iu.test(t)?"script":"production"}var Vi=4;function Q(e,t,n,r={}){return Pn(e,t,n,r.maxReexportDepth??Vi,0,new Set)}function Pn(e,t,n,r,i,a){let o=`${t}\0${n}`;if(a.has(o)||i>r)return[];a.add(o);let s=N(e,t).filter(l=>l.leaf===n);return s.length>0?s:ne(e,t).flatMap(l=>l.sourcePath?l.kind==="named"&&!l.names.includes(n)?[]:Pn(e,l.sourcePath,n,r,i+1,new Set(a)):[])}import{createHash as mr}from"crypto";import{createHash as oa}from"crypto";var Ue=8;function ce(e,t,n){return xt(_n(e,t,bt(n),0,new Set))}function vt(e,t,n){return ht(e,t,n,0,new Set)}function _n(e,t,n,r,i){if(r>Ue)return[];let a=/^([A-Za-z_$][\w$]*)\.([A-Za-z_$][\w$]*)$/u.exec(n);return a?Ln(e,t,a[1],a[2],r,i):/^[A-Za-z_$][\w$]*$/u.test(n)?Bn(e,t,n,r,i):[]}function Ln(e,t,n,r,i,a){let o=[];for(let s of ht(e,t,n,i+1,new Set(a))){let l=Ui(s.initializer);for(let c of l.namedChildren){if(c.type==="pair"){let u=c.childForFieldName("key")??c.namedChild(0);if(Wi(u)!==r)continue;let d=c.childForFieldName("value")??c.namedChild(1);d&&o.push(..._n(e,s.definition.relativePath,bt(d.text),i+1,new Set(a)));continue}if(/(?:method|function)/u.test(c.type)){if((c.childForFieldName("name")??c.namedChild(0))?.text!==r)continue;let d=Hi(e,s.definition.relativePath,r,c);o.push(...d.length>0?d:[qi(s.definition,r,c)]);continue}if(c.type==="spread_element"){let u=c.namedChild(0);if(!u)continue;for(let d of ht(e,s.definition.relativePath,bt(u.text),i+1,new Set(a)))o.push(...Ln(e,d.definition.relativePath,d.definition.leaf,r,i+1,new Set(a)))}}}return xt(o)}function qi(e,t,n){return{documentId:e.documentId,symbolId:-1,symbol:`source-callable:${e.relativePath}:${n.startPosition.row}:${t}`,relativePath:e.relativePath,startLine:n.startPosition.row,startChar:n.startPosition.column,endLine:n.endPosition.row,endChar:n.endPosition.column,leaf:t,parentTypeName:e.leaf,isFunctionLike:!0,isTypeLike:!1,kind:null,documentation:null,enclosingSymbol:e.symbol}}function ht(e,t,n,r,i){return r>Ue||!/^[A-Za-z_$][\w$]*$/u.test(n)?[]:Bn(e,t,n,r,i).flatMap(a=>{let o=D(e,a.relativePath)?.rootNode,s=o?zi(o,a.leaf):null;return s?[{definition:a,initializer:s}]:[]})}function Bn(e,t,n,r,i){if(r>Ue)return[];let a=`${t}\0${n}`;if(i.has(a))return[];i.add(a);let o=N(e,t).filter(c=>c.leaf===n);if(o.length>0)return o;let s=Gi(e,t,n);if(s.length>0)return s;let l=A(e,t).find(c=>c.localName===n&&c.sourcePath);if(l?.sourcePath){let c=l.kind==="namespace"||l.importedName==="default"?n:l.importedName;return St(e,l.sourcePath,c,r+1,new Set(i))}return St(e,t,n,r+1,new Set(i))}function Gi(e,t,n){let r=e.get("SELECT id FROM documents WHERE relative_path = ?",t)?.id;return r===void 0?[]:(U(e,t)?.callables??[]).filter(i=>i.name===n).map(i=>({documentId:r,symbolId:-1,symbol:`source-callable:${t}:${i.startLine}:${n}`,relativePath:t,startLine:i.startLine,startChar:0,endLine:i.endLine,endChar:0,leaf:n,parentTypeName:null,isFunctionLike:!0,isTypeLike:!1,kind:null,documentation:null,enclosingSymbol:null}))}function St(e,t,n,r,i){if(r>Ue)return[];let a=N(e,t).filter(o=>o.leaf===n);return a.length>0?a:xt(ne(e,t).flatMap(o=>o.sourcePath?o.kind==="named"&&!o.names.includes(n)?[]:St(e,o.sourcePath,n,r+1,new Set(i)):[]))}function Hi(e,t,n,r){return N(e,t).filter(i=>i.leaf===n&&i.startLine<=r.startPosition.row&&i.endLine>=r.endPosition.row)}function zi(e,t){let n=null;return Tn(e,r=>{n||r.type!=="variable_declarator"||(r.childForFieldName("name")??r.namedChild(0))?.text.trim()!==t||(n=r.childForFieldName("value")??r.namedChild(1))}),n}function Ui(e){let t=e;for(;["as_expression","satisfies_expression","type_assertion","parenthesized_expression"].includes(t.type)&&t.namedChildren.length>0;)t=t.namedChildren[0];return t}function Wi(e){return e?.text.replace(/^['"`]|['"`]$/gu,"")??null}function bt(e){return e.replace(/\s+/gu,"").replace(/^\.\.\./u,"")}function xt(e){return[...new Map(e.map(t=>[t.symbol,t])).values()]}function Tn(e,t){t(e);for(let n of e.namedChildren)Tn(n,t)}var Ki=8;function V(e,t){return t?ue(e,t,0,new Set):null}function ue(e,t,n,r){if(n>Ki)return G(t,"value-evaluation-depth");let i=$n(t),a=ea(i);if(a)return ta(e.file,i,a.term,a.value,a.precision);if(i.type==="binary_expression"&&/\+/u.test(i.text)){let l=i.namedChildren.map(c=>ue(e,c,n+1,new Set(r)));if(l.length>=2&&l.every(c=>c!==null)){let c={kind:"concat",parts:l.map(d=>d.term)},u=l.map(d=>d.value).join("");return na(e.file,i,c,u,l.some(d=>d.precision!=="literal")?"constrained-pattern":"literal",l)}}let o=i.text.trim();if(/^[A-Za-z_$][\w$]*$/u.test(o))return Ji(e,o,i,n,r);let s=ra(i);return s?Yi(e,s.base,s.properties,i,n,r):i.type==="call_expression"||i.type==="call"?Zi(e,i,n,r):G(i,`unsupported-expression:${i.type}`)}function Zi(e,t,n,r){let a=(t.childForFieldName("function")??t.namedChild(0))?.text.replace(/\s+/gu,"").replace(/<.*>$/u,"")??"",o=Xi(e,a);if(o.length!==1)return G(t,o.length===0?"call-target-unresolved":"call-target-ambiguous");let s=o[0],l=`${s.relativePath}\0${s.symbol}`;if(r.has(l))return G(t,"call-return-cycle");let c=D(e.db,s.relativePath)?.rootNode;if(!c)return G(t,"call-target-unparsed");let u=aa(c,s.startLine,s.endLine);if(!u)return G(t,"call-target-syntax-unavailable");let d=Qi(u);if(!d)return G(t,"call-return-not-single-expression");let p=new Set(r);p.add(l);let f=ue({db:e.db,file:s.relativePath,root:c},d,n+1,p);return f?We(t,"bounded-call-return",f,s.symbol):G(t,"call-return-unresolved")}function Xi(e,t){if(/^[A-Za-z_$][\w$]*$/u.test(t)){let i=N(e.db,e.file).filter(o=>o.isFunctionLike&&o.leaf===t);if(i.length>0)return i;let a=A(e.db,e.file).find(o=>o.localName===t&&o.sourcePath&&o.kind!=="namespace");return a?.sourcePath?Q(e.db,a.sourcePath,a.importedName==="default"?t:a.importedName).filter(o=>o.isFunctionLike):[]}let n=/^([A-Za-z_$][\w$]*)\.([A-Za-z_$][\w$]*)$/u.exec(t);if(!n)return[];let r=A(e.db,e.file).find(i=>i.kind==="namespace"&&i.localName===n[1]&&i.sourcePath);return r?.sourcePath?Q(e.db,r.sourcePath,n[2]).filter(i=>i.isFunctionLike):[]}function Qi(e){let t=e.childForFieldName("body");if(e.type==="arrow_function"&&t&&t.type!=="statement_block")return t;let n=[];return kn(t??e,t??e,n),n.length!==1?null:n[0].childForFieldName("argument")??n[0].namedChild(0)}function kn(e,t,n){if(!(t!==e&&(/(?:function|method|lambda)/u.test(t.type)||t.type==="arrow_function"))){if(t.type==="return_statement"){n.push(t);return}for(let r of t.namedChildren)kn(e,r,n)}}function Ji(e,t,n,r,i){let a=`${e.file}\0${t}`;if(i.has(a))return G(n,"value-cycle");i.add(a);let o=Rt(e.root,t);if(o){let m=ue(e,o,r+1,i);return m?We(n,"local-constant",m):G(n,"non-foldable-local")}let s=A(e.db,e.file).find(m=>m.localName===t&&m.sourcePath);if(!s?.sourcePath)return j(n,t,"unresolved-identifier");if(s.kind==="namespace")return j(n,t,"namespace-import-requires-property");let l=s.importedName==="default"?t:s.importedName,c=Q(e.db,s.sourcePath,l);if(c.length!==1)return j(n,t,c.length===0?"import-definition-missing":"import-definition-ambiguous");let u=c[0],d=D(e.db,u.relativePath)?.rootNode;if(!d)return j(n,u.symbol,"import-definition-unparsed");let p=Rt(d,u.leaf);if(!p)return j(n,u.symbol,"import-definition-non-value");let f=ue({db:e.db,file:u.relativePath,root:d},p,r+1,i);return f?We(n,"imported-constant",f,u.symbol):j(n,u.symbol,"import-value-unresolved")}function Yi(e,t,n,r,i,a){let o=A(e.db,e.file).find(f=>f.localName===t&&f.sourcePath),s=e.file,l=t,c;if(o?.sourcePath){o.kind==="namespace"?(l=n[0]??"",n=n.slice(1)):l=o.importedName==="default"?t:o.importedName;let f=Q(e.db,o.sourcePath,l);if(f.length!==1)return j(r,`${t}.${n.join(".")}`,f.length===0?"member-definition-missing":"member-definition-ambiguous");s=f[0].relativePath,l=f[0].leaf,c=f[0].symbol}let u=s===e.file?e.root:D(e.db,s)?.rootNode;if(!u)return j(r,c??t,"member-definition-unparsed");let d=Rt(u,l);if(!d)return j(r,c??t,"member-base-non-value");for(let f of n){let m=$n(d);if(d=ia(m,f),!d)return j(r,c??`${t}.${n.join(".")}`,`member-property-missing:${f}`)}let p=ue({db:e.db,file:s,root:u},d,i+1,a);return p?We(r,"member-constant",p,c):j(r,c??t,"member-value-unresolved")}function ea(e){let t=e.text.trim(),n=t[0];if(n!=="'"&&n!=='"'&&n!=="`"||t.at(-1)!==n)return null;let r=t.slice(1,-1);if(n!=="`"||!r.includes("${"))return{term:{kind:"literal",value:r},value:r,precision:"literal"};let i=[],a=0,o=/\$\{([^}]*)\}/gu;for(let s of r.matchAll(o)){let l=s.index??0;l>a&&i.push({kind:"literal",value:r.slice(a,l)}),i.push({kind:"unknown",reason:`template-hole:${s[1]?.trim()||"expression"}`}),a=l+s[0].length}return a<r.length&&i.push({kind:"literal",value:r.slice(a)}),{term:{kind:"pattern",language:"template",value:r.replace(o,"{}")},value:r.replace(o,"{}"),precision:"constrained-pattern"}}function ta(e,t,n,r,i){return{value:r,evidence:"literal",term:n,precision:i,derivation:Ke("direct-literal","direct",e,t)}}function na(e,t,n,r,i,a){return{value:r,evidence:"constant",term:n,precision:i,derivation:{...Ke("constant-concatenation","mechanically-derived",e,t),inputFactIds:a.flatMap(o=>o.derivation.inputFactIds),sourceSpans:a.flatMap(o=>o.derivation.sourceSpans)}}}function We(e,t,n,r){return n.evidence==="expression"?{...n,derivation:{kind:"heuristic",rule:t,ruleVersion:"1",inputFactIds:[...n.derivation.inputFactIds,...r?[r]:[]],sourceSpans:n.derivation.sourceSpans}}:{...n,evidence:"constant",derivation:{kind:"mechanically-derived",rule:t,ruleVersion:"1",inputFactIds:[...n.derivation.inputFactIds,...r?[r]:[]],sourceSpans:n.derivation.sourceSpans}}}function j(e,t,n){return{value:e.text.trim(),evidence:"expression",term:{kind:"symbol",symbol:t},precision:"symbolic",derivation:Ke(n,"heuristic","",e)}}function G(e,t){return{value:e.text.trim(),evidence:"expression",term:{kind:"unknown",reason:t},precision:"unknown",derivation:Ke(t,"heuristic","",e)}}function Ke(e,t,n,r){return{kind:t,rule:e,ruleVersion:"1",inputFactIds:[],sourceSpans:n?[{file:n,startLine:r.startPosition.row,endLine:r.endPosition.row}]:[]}}function ra(e){let t=e.text.replace(/\s+/gu,"");if(!/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)+$/u.test(t))return null;let[n,...r]=t.split(".");return n?{base:n,properties:r}:null}function Rt(e,t){let n=null;return It(e,r=>{if(n||r.type!=="variable_declarator"||(r.childForFieldName("name")??r.namedChild(0))?.text.trim()!==t)return;let a=r.parent;!a||a.type!=="lexical_declaration"||!/^\s*(?:export\s+)?const\b/u.test(a.text)||(n=r.childForFieldName("value")??r.namedChild(1))}),n}function ia(e,t){for(let n of e.namedChildren)if(!(n.type!=="pair"||(n.childForFieldName("key")??n.namedChild(0))?.text.replace(/^['"`]|['"`]$/gu,"")!==t))return n.childForFieldName("value")??n.namedChild(1);return null}function $n(e){let t=e;for(;["as_expression","satisfies_expression","type_assertion","parenthesized_expression"].includes(t.type)&&t.namedChildren.length>0;)t=t.namedChildren[0];return t}function aa(e,t,n){let r=null;return It(e,i=>{!/(?:function|method|lambda)/u.test(i.type)&&i.type!=="arrow_function"||i.startPosition.row>t||i.endPosition.row<n||(!r||i.endIndex-i.startIndex<r.endIndex-r.startIndex)&&(r=i)}),r}function It(e,t){t(e);for(let n of e.namedChildren)It(n,t)}var On=new Set(["delete","get","head","options","patch","post","put"]),sa=/(?:^|\.)(?:app|router|server)$/u,la=new Set(["findFirst","findMany","findUnique","from","get","select"]),ca=new Set(["create","delete","insert","remove","update","upsert"]),ua=new Set(["execute","query","raw"]),Nt=[ma(),fa(),da(),ya(),ha(),Sa(),va()],Ct=new Set(["exec","execFile","execFileSync","execSync","fork","spawn","spawnSync"]);function da(){return{id:"builtin.node-child-process",supports:e=>/(?:from\s*|require\s*\(\s*)['"](?:node:)?child_process['"]/u.test(e)&&/\b(?:exec|execFile|execFileSync|execSync|fork|spawn|spawnSync)\s*\(/u.test(e),extract:e=>{let t=pa(e.source),n=[];return q(e.root,r=>{if(r.type!=="call_expression")return;let i=Re(r);if(!i)return;let a=t.direct.get(i),o=/^(.*?)\.([A-Za-z_$][\w$]*)$/u.exec(i),s=o&&t.namespaces.has(o[1])?o[2]:null,l=a??s;if(!l||!Ct.has(l))return;let c=J(r),u=O(c[0],e)??{value:c[0]?.text.trim()||"<missing>",evidence:"expression"},d=["exec","execFile","execFileSync","execSync"].includes(l)?"process.exec":"process.spawn";n.push(T(e,r,"builtin.node-child-process",d,[{name:"operation",value:l,evidence:"literal"},{name:"executable",...u}],"exact","node-child-process-import"))}),n}}}function pa(e){let t=new Map,n=new Set,r=String.raw`['"](?:node:)?child_process['"]`,i=new RegExp(String.raw`\bimport\s*\{([^}]*)\}\s*from\s*${r}`,"gu");for(let l of e.matchAll(i))for(let c of(l[1]??"").split(",")){let u=/^\s*([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?\s*$/u.exec(c);u&&Ct.has(u[1])&&t.set(u[2]??u[1],u[1])}let a=new RegExp(String.raw`\b(?:const|let)\s*\{([^}]*)\}\s*=\s*require\s*\(\s*${r}\s*\)`,"gu");for(let l of e.matchAll(a))for(let c of(l[1]??"").split(",")){let u=/^\s*([A-Za-z_$][\w$]*)(?:\s*:\s*([A-Za-z_$][\w$]*))?\s*$/u.exec(c);u&&Ct.has(u[1])&&t.set(u[2]??u[1],u[1])}let o=new RegExp(String.raw`\bimport\s*\*\s*as\s*([A-Za-z_$][\w$]*)\s*from\s*${r}`,"gu");for(let l of e.matchAll(o))n.add(l[1]);let s=new RegExp(String.raw`\b(?:const|let)\s+([A-Za-z_$][\w$]*)\s*=\s*require\s*\(\s*${r}\s*\)`,"gu");for(let l of e.matchAll(s))n.add(l[1]);return{direct:t,namespaces:n}}function k(e,t){let n=D(e,t)?.rootNode;if(!n)return null;let r=L(e,t),i=N(e,t),a=U(e,t)?.callables??[];return{db:e,file:t,source:r,root:n,constants:Na(n),ownerAt:o=>{let s=i.filter(c=>c.startLine<=o&&c.endLine>=o).sort((c,u)=>c.endLine-c.startLine-(u.endLine-u.startLine)||c.startLine-u.startLine)[0];if(s)return{file:t,symbol:s.symbol,name:s.leaf,startLine:s.startLine,endLine:s.endLine};let l=a.filter(c=>c.startLine<=o&&c.endLine>=o).sort((c,u)=>c.endLine-c.startLine-(u.endLine-u.startLine)||c.startLine-u.startLine)[0];return{file:t,symbol:null,name:l?.name??null,startLine:l?.startLine??o,endLine:l?.endLine??o}}}}function fa(){return{id:"builtin.effect-httpapi",supports:e=>ve(e,"HttpApiEndpoint").size>0||ve(e,"HttpApiBuilder").size>0,extract:e=>{let t=[],n=ve(e.source,"HttpApiEndpoint"),r=ve(e.source,"HttpApiGroup"),i=ve(e.source,"HttpApiBuilder");return q(e.root,a=>{if(a.type!=="call_expression")return;let o=jn(a);if(!o)return;let s=J(a);if(n.has(o.receiver)&&On.has(o.member)){let g=O(s[0],e),b=O(s[1],e),h=Dn(a,r,"make",0,e);if(!g||!b||!h)return;let v=o.member.toUpperCase();t.push(T(e,a,"builtin.effect-httpapi","http.handle",[{name:"method",value:v,evidence:"literal"},{name:"path",...b}],H([{name:"path",...b}]),"effect-httpapi-endpoint-declaration")),t.push(T(e,a,"builtin.effect-httpapi","framework.declare",wt(h,g),H(wt(h,g)),"effect-httpapi-operation-declaration"));return}if(!["handle","handleRaw"].includes(o.member))return;let l=Dn(a,i,"group",1,e),c=O(s[0],e),u=s[1];if(!l||!c||!u)return;let d=wt(l,c),p=ce(e.db,e.file,u.text),f=T(e,a,"builtin.effect-httpapi","framework.handle",d,p.length===1?H(d):"candidate","effect-httpapi-handler-registration"),m=p[0];p.length===1&&m&&(f.owner={file:m.relativePath,symbol:m.symbol,name:m.leaf,startLine:m.startLine,endLine:m.endLine}),t.push(f)}),t}}}function wt(e,t){return[{name:"adapter",value:"effect-httpapi",evidence:"literal"},{name:"group",...e},{name:"operation",...t}]}function ve(e,t){let n=new Set,r=/\bimport\s*\{([\s\S]*?)\}\s*from\s*['"]([^'"]+)['"]/gu;for(let a of e.matchAll(r)){let o=a[2]??"";if(An(o))for(let s of(a[1]??"").split(",")){let l=s.trim().replace(/^type\s+/u,""),c=/^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/u.exec(l);c?.[1]===t&&n.add(c[2]??c[1])}}let i=/\bimport\s*\*\s*as\s*([A-Za-z_$][\w$]*)\s*from\s*['"]([^'"]+)['"]/gu;for(let a of e.matchAll(i)){let o=a[2]??"";o.endsWith(`/${t}`)&&An(o)&&n.add(a[1])}return n}function An(e){return e==="effect/unstable/httpapi"||e==="@effect/platform"||e.startsWith("@effect/platform/HttpApi")}function Dn(e,t,n,r,i){let a=e.parent;for(;a;){if(a.type==="call_expression"){let o=Mn(a,t,n,r,i);if(o)return o;let s=a.childForFieldName("function")??a.namedChild(0),l=null;if(s&&q(s,c=>{!l&&c.type==="call_expression"&&(l=Mn(c,t,n,r,i))}),l)return l}a=a.parent}return null}function Mn(e,t,n,r,i){let a=jn(e);return!a||a.member!==n||!t.has(a.receiver)?null:O(J(e)[r],i)}function jn(e){let t=e.childForFieldName("function")??e.namedChild(0);if(!t||!["member_expression","subscript_expression"].includes(t.type))return null;let n=t.childForFieldName("object")??t.namedChild(0),r=t.childForFieldName("property")??t.childForFieldName("index")??t.namedChild(1);return!n||!r?null:{receiver:n.text.replace(/\s+/gu,""),member:r.text.replace(/^['"`]|['"`]$/gu,"")}}function ma(){return{id:"builtin.http",supports:e=>/\bfetch\s*\(|\baxios\b|\b(?:app|router|server)\s*\.\s*(?:get|post|put|patch|delete|options|head)\s*\(/u.test(e)||xe(e,["axios"])||/\b(?:FastAPI|Flask|APIRouter|axum|Router::new)\b/u.test(e),extract:e=>{let t=[];return q(e.root,n=>{if(n.type==="decorator"){let p=/^@[^\s(]+\.(get|post|put|patch|delete|options|head)\s*\(\s*(['"`])([^'"`]+)\2/iu.exec(n.text.trim());if(!p||!xe(e.source,["fastapi","flask"]))return;t.push(T(e,n,"builtin.http","http.handle",[{name:"method",value:p[1].toUpperCase(),evidence:"literal"},{name:"path",value:p[3],evidence:"literal"}],"exact","framework-decorator"));return}if(n.type!=="call_expression")return;let r=Re(n);if(!r)return;let i=r.split(".").at(-1)?.toLowerCase()??"",a=r.includes(".")?r.slice(0,r.lastIndexOf(".")):"",o=J(n);if(i==="route"&&xe(e.source,["axum"])){let p=O(o[0],e),f=/^\s*(get|post|put|patch|delete|options|head)\s*\(/iu.exec(o[1]?.text??"")?.[1];if(!p||!f)return;t.push(T(e,n,"builtin.http","http.handle",[{name:"method",value:f.toUpperCase(),evidence:"literal"},{name:"path",...p}],H([{name:"path",...p}]),"framework-adapter"));return}if(r==="fetch"||r.endsWith(".fetch")){let p=O(o[0],e);if(!p)return;let m=/\bmethod\s*:\s*['"`]([A-Za-z]+)['"`]/u.exec(o[1]?.text??"")?.[1]?.toUpperCase()??(o[1]?null:"GET"),g=[...m?[{name:"method",value:m,evidence:"literal"}]:[],{name:"path",...p}];t.push(T(e,n,"builtin.http","http.request",g,m?H(g):"candidate","call-expression"));return}if(!On.has(i))return;let s=O(o[0],e);if(!s)return;let l=i.toUpperCase();if(sa.test(a)&&xe(e.source,["express","fastify","hono","koa-router","@koa/router"])){t.push(T(e,n,"builtin.http","http.handle",[{name:"method",value:l,evidence:"literal"},{name:"path",...s}],H([{name:"path",...s}]),"framework-adapter"));return}let u=Ia(e.source,["axios"]),d=a.split(".")[0]??"";u.has(d)&&t.push(T(e,n,"builtin.http","http.request",[{name:"method",value:l,evidence:"literal"},{name:"path",...s}],H([{name:"path",...s}]),"client-adapter"))}),t}}}function ya(){return{id:"builtin.capability-registry",supports:e=>/\b(?:execute|handler|invoke|run)\s*(?:[:(])/u.test(e)||/['"`][^'"`\n]{0,256}\b[A-Za-z_$][\w$-]*\s*\(/u.test(e),extract:e=>{let t=[],n=new Set;return q(e.root,r=>{if(r.type==="pair"){let a=r.childForFieldName("key")??r.namedChild(0),o=r.childForFieldName("value")??r.namedChild(1),s=a?.text.replace(/^['"`]|['"`]$/gu,"");if(s!=="name"&&s!=="id")return;let l=Vn(o,e),c=Ea(r);if(!l||l.evidence!=="literal"||!c)return;let u=`handle\0${l.value}\0${c.startPosition.row}`;if(n.has(u))return;n.add(u),t.push(T(e,c,"builtin.capability-registry","registry.handle",[{name:"key",...l}],"exact","capability-descriptor"));return}if(!["string","string_literal","template_string"].includes(r.type))return;let i=r.text.replace(/^['"`]|['"`]$/gu,"");for(let a of i.matchAll(/\b([A-Za-z_$][\w$-]*)\s*\(/gu)){let o=a[1];if(!ga(i,o,a.index))continue;let s=`reference\0${o}\0${r.startPosition.row}`;n.has(s)||(n.add(s),t.push(T(e,r,"builtin.capability-registry","registry.reference",[{name:"key",value:o,evidence:"literal"}],"exact","capability-instruction-reference")))}}),t}}}function ga(e,t,n){if(t.includes("_")||t.includes("-"))return!0;let r=e.slice(Math.max(0,n-64),n);return/\b(?:use|call|invoke|run|via|with|read|stop)(?:\s+the)?(?:\s+(?:tool|capability|command))?\s*$/iu.test(r)}function ha(){return{id:"builtin.registry",supports:e=>/(?:Handlers?|Registry|Routes?)\b/iu.test(e),extract:e=>{let t=[];return q(e.root,n=>{if(n.type==="pair"){let a=Fa(n);if(!a)return;let o=n.childForFieldName("key")??n.namedChild(0),s=n.childForFieldName("value")??n.namedChild(1),l=Vn(o,e);if(!l||!s||!qn(s))return;let c=Ft(s)?"exact":"candidate";t.push(T(e,n,"builtin.registry","registry.handle",[{name:"registry",value:a,evidence:"identifier"},{name:"key",...l}],H([{name:"key",...l}],c),"object-member"));return}if(n.type!=="call_expression")return;let r=n.childForFieldName("function")??n.namedChild(0);if(!r)return;let i=/^([A-Za-z_$][\w$]*)\s*\[\s*(['"`])([^'"`]+)\2\s*\]$/u.exec(r.text.trim());i&&t.push(T(e,n,"builtin.registry","registry.dispatch",[{name:"registry",value:i[1],evidence:"identifier"},{name:"key",value:i[3],evidence:"literal"}],"exact","indexed-access-call"))}),t}}}function Sa(){return{id:"builtin.persistence",supports:e=>/\b(?:db|database|prisma|drizzle|[A-Za-z_$][\w$]*(?:Repository|Repo))\b[^;]{0,1024}?\.\s*(?:findFirst|findMany|findUnique|from|get|select|create|delete|insert|remove|update|upsert|execute|query|raw|transaction)(?:\s*<[^()]{1,512}>)?\s*\(/iu.test(e),extract:e=>{let t=[],n=_a(e.root);return q(e.root,r=>{if(r.type!=="call_expression")return;let i=Re(r);if(!i)return;let a=i.split("."),o=a.at(-1)??"",s=J(r),l=s[0]?.text??"",c=Pa(o,l);if(!c)return;let u=Gn(a,n);if(!u)return;let d=ba(s[0],e)??La(l),p=Ba(u,a,o,d);if(!p)return;let f=o==="insert"?"persistence-insert":c==="database.read"&&/\bFOR\s+UPDATE\s+SKIP\s+LOCKED\b/iu.test(l)?"persistence-skip-locked-claim":"persistence-adapter";t.push(T(e,r,"builtin.persistence",c,[{name:"resource",...p}],H([{name:"resource",...p}]),f))}),t}}}function ba(e,t){if(!e)return null;let n=e.text.replace(/\s+/gu,"");return/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*$/u.test(n)?{value:n.split(".").at(-1),evidence:"identifier",term:{kind:"symbol",symbol:n}}:O(e,t)}function va(){return{id:"builtin.queue",supports:e=>xe(e,["amqplib","bullmq","kafkajs","@aws-sdk/client-sqs","rabbitmq"])&&/\.(?:sendToQueue|consume|send|subscribe)\s*\(/u.test(e),extract:e=>{let t=[];return q(e.root,n=>{if(n.type!=="call_expression")return;let r=Re(n);if(!r)return;let i=r.split(".").at(-1)??"",a=J(n),o=i==="sendToQueue"||i==="send"?"queue.send":i==="consume"||i==="subscribe"?"queue.consume":null;if(!o)return;let s=i==="send"||i==="subscribe"?wa(a[0],"topic",e):O(a[0],e);s&&t.push(T(e,n,"builtin.queue",o,[{name:"address",...s}],H([{name:"address",...s}]),"framework-adapter"))}),t}}}function T(e,t,n,r,i,a,o){let s=e.ownerAt(t.startPosition.row),l=JSON.stringify({extractor:n,action:r,file:e.file,line:t.startPosition.row,keyParts:i});return{id:`boundary:${oa("sha256").update(l).digest("hex").slice(0,16)}`,extractor:n,action:r,owner:s,source:{file:e.file,startLine:t.startPosition.row,endLine:t.endPosition.row},keyParts:i,evidence:o,strength:a,protocol:r.split(".")[0]??r,role:xa(r),executionDomain:Ra(e.file),derivation:{kind:a==="candidate"?"heuristic":a==="derived"?"mechanically-derived":"direct",rule:o,ruleVersion:"1",inputFactIds:i.flatMap(c=>c.derivation?.inputFactIds??[]),sourceSpans:[{file:e.file,startLine:t.startPosition.row,endLine:t.endPosition.row},...i.flatMap(c=>c.derivation?.sourceSpans??[])]},valuePrecision:i.some(c=>c.evidence==="expression")?"unknown":i.some(c=>c.evidence==="identifier")?"symbolic":"literal",modality:"may",resolution:"unresolved",sourceScope:ze(e.file)}}function xa(e){let t=e.split(".").at(-1)??e;return["handle","subscribe","consume","read"].includes(t)?"consumer":["request","publish","send","write","dispatch","reference","invoke","spawn","exec"].includes(t)?"producer":"observe"}function Ra(e){let t=e.replaceAll("\\","/"),n=/^(apps|services|packages)\/([^/]+)/u.exec(t);return n?`${n[1]}/${n[2]}`:null}function xe(e,t){return t.some(n=>{let r=n.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return new RegExp(`(?:\\bfrom\\s+${r}\\b|\\buse\\s+${r}\\b|(?:\\bfrom\\s*|\\brequire\\s*\\(\\s*)['"]${r}(?:[/']|"))`,"u").test(e)})}function Ia(e,t){let n=new Set;for(let r of t){let i=r.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),a=new RegExp(`(?:import\\s+([A-Za-z_$][\\w$]*)[^;]*?\\sfrom\\s*|(?:const|let)\\s+([A-Za-z_$][\\w$]*)\\s*=\\s*require\\s*\\(\\s*)['"]${i}(?:[/']|")`,"gu");for(let o of e.matchAll(a)){let s=o[1]??o[2];s&&n.add(s)}}return n}function Ze(e,t,n,r,i,a,o){return T(e,t,n,r,i,a,o)}function Re(e){return(e.childForFieldName("function")??e.namedChild(0))?.text.replace(/\s+/gu,"")??null}function J(e){return(e.childForFieldName("arguments")??e.namedChildren.find(n=>n.type==="arguments"))?.namedChildren??[]}function O(e,t){let n=V(t,e);return n?{value:n.value,evidence:n.evidence,term:n.term,derivation:n.derivation}:null}function wa(e,t,n){if(!e)return null;let r=e.namedChildren.find(a=>a.type!=="pair"?!1:(a.childForFieldName("key")??a.namedChild(0))?.text.replace(/^['"`]|['"`]$/gu,"")===t),i=r?.childForFieldName("value")??r?.namedChild(1);return O(i,n)}function Vn(e,t){if(!e)return null;let n=O(e,t);if(n?.evidence==="literal"||n?.evidence==="constant")return n;let r=e.text.trim();return/^[A-Za-z_$][\w$]*$/u.test(r)?{value:r,evidence:"identifier",term:{kind:"symbol",symbol:r}}:n}function H(e,t="exact"){return t==="candidate"||e.some(n=>n.evidence==="expression")?"candidate":t==="derived"||e.some(n=>n.evidence==="constant")?"derived":"exact"}function Ca(e){let t=e.text.trim(),n=t[0];if(n!=="'"&&n!=='"'&&n!=="`"||t.at(-1)!==n)return null;let r=t.slice(1,-1);return n==="`"&&r.includes("${")?null:r}function Na(e){let t=new Map;return q(e,n=>{if(n.type!=="variable_declarator")return;let r=n.childForFieldName("name")??n.namedChild(0),i=n.childForFieldName("value")??n.namedChild(1);if(!r||!i||!/^[A-Za-z_$][\w$]*$/u.test(r.text))return;let a=Ca(i);a!==null&&t.set(r.text,a)}),t}function Fa(e){let t=e.parent,n=t?.parent??null;for(;n&&["as_expression","satisfies_expression","type_assertion","parenthesized_expression"].includes(n.type);)n=n.parent;if(!t||!n||n.type!=="variable_declarator")return null;let i=(n.childForFieldName("name")??n.namedChild(0))?.text??"";return/(?:handlers?|registry|routes?)$/iu.test(i)?i:null}function Ft(e){return/(?:function|lambda|method)/u.test(e.type)||e.type==="arrow_function"}function qn(e){return Ft(e)||e.type==="member_expression"?!0:e.type==="identifier"&&/(?:command|controller|dispatch|handle|handler)/iu.test(e.text)}function Ea(e){let t=e.parent;for(;t&&t.type!=="variable_declarator";){if(["object","object_literal","dictionary"].includes(t.type))for(let n of t.namedChildren){if(n.type==="pair"){let i=n.childForFieldName("key")??n.namedChild(0),a=n.childForFieldName("value")??n.namedChild(1),o=i?.text.replace(/^['"`]|['"`]$/gu,"");if(o&&["execute","handler","invoke","run"].includes(o)&&a&&qn(a))return t}let r=n.childForFieldName("name")??n.namedChild(0);if(r&&["execute","handler","invoke","run"].includes(r.text.replace(/^['"`]|['"`]$/gu,""))&&/(?:function|method)/u.test(n.type))return t}t=t.parent}return null}function Gn(e,t=new Set){let n=e.slice(0,-1).map(r=>r.replace(/\([^)]*\)/gu,""));return n.some(r=>/^(?:prisma|drizzle)$/iu.test(r))?"orm":n.some(r=>/(?:Repository|Repo)$/u.test(r))?"repository":n.some(r=>/^(?:db|database)$/iu.test(r)||t.has(r))?"database":null}function Pa(e,t){if(la.has(e))return"database.read";if(ca.has(e))return"database.write";if(!ua.has(e))return null;let n=/\b(SELECT|INSERT|UPDATE|DELETE)\b/iu.exec(t)?.[1]?.toUpperCase();return n==="SELECT"?"database.read":n?"database.write":null}function _a(e){let t=new Set;return q(e,n=>{if(n.type!=="call_expression")return;let r=Re(n);if(!r)return;let i=r.split(".");if(!(i.at(-1)!=="transaction"||!Gn(i)))for(let a of J(n)){if(!Ft(a))continue;let s=(a.childForFieldName("parameters")??a.namedChildren.find(c=>/parameters/u.test(c.type)))?.namedChildren[0],l=s?Hn(s):null;l&&t.add(l)}}),t}function Hn(e){if(e.type==="identifier")return e.text;let t=e.childForFieldName("name")??e.childForFieldName("pattern");return t?Hn(t):e.namedChildren.find(n=>n.type==="identifier")?.text??null}function La(e){let t=zn(e);return t?{value:t,evidence:"identifier",term:{kind:"symbol",symbol:t}}:null}function Ba(e,t,n,r){if(e==="orm"&&t.length>=3)return{value:t.at(-2).replace(/\([^)]*\)/gu,""),evidence:"identifier"};if(e==="repository"){let a=t.at(-2)?.replace(/(?:Repository|Repo)$/u,"");return a?{value:a,evidence:"identifier"}:null}if(!r)return null;if(n==="from"||n==="insert")return r;let i=zn(r.value);return i?{value:i,evidence:r.evidence}:null}function zn(e){return/\b(?:from|into|update|table)\s+(?:\$\{\s*)?['"`]?([A-Za-z_$][\w$.-]*)/iu.exec(e)?.[1]??null}function q(e,t){t(e);for(let n of e.namedChildren)q(n,t)}var Ta=$("resolved-call-syntax",{clearGroups:[]}),ka=$("resolved-call-sites",{clearGroups:[]});function Ie(e,t){return ka.get(e,t.symbolId,()=>$a(e,t))}function $a(e,t){let n=[],r=[],i=new Set,a=new Set;for(let o of gt(e,t,{semantic:!1})){i.add(o.file);let s=Ta.get(e,o.file,()=>Aa(e,o.file));if(!s){r.push({callee:t,file:o.file,line:o.line,reason:"ast-unavailable",candidates:0,referenceProvenance:o.provenance});continue}let l=(s.byLeaf.get(t.leaf)??[]).filter(({callNode:d})=>d.startPosition.row<=o.line&&d.endPosition.row>=o.line);if(l.length!==1){r.push({callee:t,file:o.file,line:o.line,reason:l.length===0?"call-not-found":"ambiguous-call",candidates:l.length,referenceProvenance:o.provenance});continue}let c=l[0],u=`${o.file}\0${c.callNode.startIndex}\0${c.callNode.endIndex}`;a.has(u)||(a.add(u),n.push({callee:t,caller:ae(N(e,o.file),c.callNode.startPosition.row),file:o.file,line:o.line,startLine:c.callNode.startPosition.row,endLine:c.callNode.endPosition.row,targetText:c.targetNode.text,callNode:c.callNode,targetNode:c.targetNode,arguments:c.arguments,referenceProvenance:o.provenance}))}return{sites:n,unresolved:r,filesVisited:i.size}}function Aa(e,t){let n=D(e,t)?.rootNode;if(!n)return null;let r=new Map;return Un(n,i=>{if(i.type!=="call_expression"&&i.type!=="call")return;let a=i.childForFieldName("function")??i.namedChild(0);if(!a)return;let o=nn(a);if(!o)return;let s=i.childForFieldName("arguments")??i.namedChildren.find(u=>u.type==="arguments"),l={callNode:i,targetNode:a,arguments:s?.namedChildren??[]},c=r.get(o);c?c.push(l):r.set(o,[l])}),{byLeaf:r}}function Un(e,t){t(e);for(let n of e.namedChildren)Un(n,t)}var Da=$("call-parameter-value-flow",{clearGroups:[]});function we(e,t){let n=`${t.callee.symbolId}\0${t.file}\0${t.callNode.startIndex}\0${t.callNode.endIndex}`;return Da.get(e,n,()=>Ma(e,t))}function Ce(e,t){let n=new Set(t);return[...new Set(e.transfers.flatMap(r=>n.has(r.calleePosition)?[r.callerPosition]:[]))].sort((r,i)=>r-i)}function Ma(e,t){let n={file:t.file,startLine:t.startLine,endLine:t.endLine};if(!t.caller)return{callee:t.callee,caller:null,call:n,transfers:[],unknown:t.arguments.map((l,c)=>({calleePosition:c,argumentText:l.text.trim(),reason:"caller-unavailable",proof:n}))};let r=D(e,t.caller.relativePath)?.rootNode,i=r?Oa(r,t.caller.startLine,t.caller.endLine):null;if(!i)return{callee:t.callee,caller:t.caller,call:n,transfers:[],unknown:t.arguments.map((l,c)=>({calleePosition:c,argumentText:l.text.trim(),reason:"caller-syntax-unavailable",proof:n}))};let a=ja(i),o=[],s=[];return t.arguments.forEach((l,c)=>{let u=l.text.trim(),d=a.indexOf(u);d>=0?o.push({calleePosition:c,callerPosition:d,argumentText:u,proof:n}):s.push({calleePosition:c,argumentText:u,reason:"argument-not-direct-parameter",proof:n})}),{callee:t.callee,caller:t.caller,call:n,transfers:o,unknown:s}}function Oa(e,t,n){let r=null;return Kn(e,i=>{!/(?:function|method|lambda)/u.test(i.type)&&i.type!=="arrow_function"||i.startPosition.row>t||i.endPosition.row<n||(!r||i.endIndex-i.startIndex<r.endIndex-r.startIndex)&&(r=i)}),r}function ja(e){return(e.childForFieldName("parameters")??e.namedChildren.find(n=>/parameters/u.test(n.type)))?.namedChildren.map(Wn)??[]}function Wn(e){if(e.type==="identifier")return e.text;let t=e.childForFieldName("name")??e.childForFieldName("pattern");return t?Wn(t):e.namedChildren.find(n=>n.type==="identifier")?.text??null}function Kn(e,t){t(e);for(let n of e.namedChildren)Kn(n,t)}var Va=8,qa=8;function Xn(e,t){let n=[],r=Ga(e,n),i=r.summaries,a=Ha(e,t,i,n),o=za(e,t,n);return{observations:no([...a.observations,...o]),bodySummaries:i.size,discriminatorSummaries:a.summaries,filesInspected:r.filesInspected,errors:n}}function Ga(e,t){let n=new Map,r=[],i=z(e);for(let a of i){let o=L(e,a);if(!/\bJSON\.stringify\s*\(/u.test(o)||!/\bbody\s*:/u.test(o))continue;let s=k(e,a);if(s)for(let[l,c]of Ua(s)){let u={definition:l,parameterIndexes:c,depth:0,proofSpans:[{file:a,startLine:l.startLine,endLine:l.endLine}]};n.set(l.symbol,u),r.push(u)}}for(;r.length>0;){let a=r.shift();if(!(a.depth>=Va))try{for(let o of Ie(e,a.definition).sites){if(!k(e,o.file))continue;let l=o.caller;if(!l)continue;let c=Ce(we(e,o),a.parameterIndexes);if(c.length===0)continue;let u={definition:l,parameterIndexes:rr(c),depth:a.depth+1,proofSpans:[...a.proofSpans,{file:o.file,startLine:o.startLine,endLine:o.endLine}]};Xa(n,u)&&r.push(n.get(l.symbol))}}catch(o){t.push(`builtin.carrier body summary failed for ${a.definition.relativePath}: ${Lt(o)}`)}}return{summaries:n,filesInspected:i.length}}function Ha(e,t,n,r){let i=new Map,a=[],o=[];for(let s of t){if(s.action!=="http.request"||s.strength==="candidate"||s.sourceScope!=="production")continue;let l=Qn(s);if(!l)continue;let c=k(e,s.source.file);if(!c)continue;let u=er(c.root,s.source.startLine),d=u.find(v=>v.startPosition.row===s.source.startLine)??u[0];if(!d)continue;let p=_t(d);if(!p)continue;let f=ce(e,s.source.file,p.text);if(f.length!==1)continue;let m=n.get(f[0].symbol);if(!m)continue;let g=s.owner.symbol?N(e,s.owner.file).find(v=>v.symbol===s.owner.symbol):null;if(!g)continue;let b=Qa(c,g),h=Qe(d);for(let v of m.parameterIndexes){let F=Ya(c,h[v]);if(F)for(let x of eo(F)){let w=tr(x),y=nr(x);if(!w||!y)continue;let R=b.indexOf(y.text.trim());if(R>=0){let E={definition:g,carrier:l,field:w,parameterIndex:R,depth:0,proofObservationIds:[s.id],proofSpans:[s.source,{file:s.source.file,startLine:x.startPosition.row,endLine:x.endPosition.row}]},_=Zn(E);i.has(_)||(i.set(_,E),a.push(E));continue}let I=V(c,y);!I||I.evidence==="expression"||o.push(Pt(c,x,"carrier.publish",l,w,I.value,[s.id]))}}}for(;a.length>0;){let s=a.shift();if(!(s.depth>=qa))try{for(let l of Ie(e,s.definition).sites){let c=k(e,l.file);if(!c)continue;let u=l.callNode,d=Qe(u)[s.parameterIndex];if(!d)continue;let p=V(c,d);p&&p.evidence!=="expression"&&o.push(Pt(c,u,"carrier.publish",s.carrier,s.field,p.value,s.proofObservationIds));let f=l.caller;if(!f)continue;let m=we(e,l).transfers.find(h=>h.calleePosition===s.parameterIndex)?.callerPosition;if(m===void 0)continue;let g={...s,definition:f,parameterIndex:m,depth:s.depth+1,proofSpans:[...s.proofSpans,{file:l.file,startLine:l.startLine,endLine:l.endLine}]},b=Zn(g);i.has(b)||(i.set(b,g),a.push(g))}}catch(l){r.push(`builtin.carrier discriminator summary failed for ${s.definition.relativePath}: ${Lt(l)}`)}}return{observations:o,summaries:i.size}}function za(e,t,n){let r=[],i=t.filter(a=>a.action==="registry.handle"&&a.strength!=="candidate"&&a.sourceScope==="production");for(let a of t){if(a.action!=="http.handle"||a.strength==="candidate"||a.sourceScope!=="production")continue;let o=Qn(a);if(!o)continue;let s=k(e,a.source.file);if(!s)continue;let l=er(s.root,a.source.startLine)[0];if(l)for(let c of Qe(l).slice(1)){let u=ce(e,a.source.file,c.text);for(let d of u)try{let p=k(e,d.relativePath);if(!p)continue;let f=Xe(p.root,d.startLine,d.endLine);if(!f)continue;K(f,m=>{if(m.type!=="call_expression")return;let g=_t(m);if(!g)return;let b=/^([A-Za-z_$][\w$]*)\s*\[\s*([A-Za-z_$][\w$]*)\s*\]$/u.exec(g.text.trim());if(!b)return;let h=b[1],v=b[2],F=Ka(e,p,d,v);if(!F)return;let x=Za(e,d.relativePath,h);for(let w of i){let y=w.keyParts.find(_=>_.name==="registry")?.value,R=w.keyParts.find(_=>_.name==="key")?.value;if(!y||!R||!x.some(_=>_.file===w.source.file&&_.binding===y))continue;let I=k(e,w.source.file),E=I?Ja(I.root,w.source.startLine):null;!I||!E||r.push(Pt(I,E,"carrier.consume",o,F,R,[a.id,w.id]))}})}catch(p){n.push(`builtin.carrier consumer analysis failed for ${d.relativePath}: ${Lt(p)}`)}}}return r}function Ua(e){let t=N(e.db,e.file),n=new Map;return K(e.root,r=>{if(r.type!=="pair"||tr(r)?.toLowerCase()!=="body")return;let i=nr(r);if(!i||!/\bJSON\.stringify\s*\(/u.test(i.text))return;let a=ae(t,r.startPosition.row),o=Wa(r);if(!a||!o)return;let s=Jn(o),l=new Set;to(i,s,l);let c=n.get(a.symbol)??new Set;s.forEach((u,d)=>{u&&l.has(u)&&c.add(d)}),c.size>0&&n.set(a.symbol,c)}),t.flatMap(r=>{let i=n.get(r.symbol);return i?[[r,[...i].sort((a,o)=>a-o)]]:[]})}function Wa(e){let t=e.parent;for(;t;){if(/(?:function|method|lambda)/u.test(t.type)||t.type==="arrow_function")return t;t=t.parent}return null}function Ka(e,t,n,r){let i=Xe(t.root,n.startLine,n.endLine);if(!i)return null;let a=new RegExp(`\\.body\\??\\.${Et(r)}\\b`,"u");if(a.test(i.text))return r;let o=null;if(K(i,u=>{if(o||u.type!=="variable_declarator")return;let d=u.childForFieldName("name")??u.namedChild(0),p=u.childForFieldName("value")??u.namedChild(1);!d||!p||!new RegExp(`(?:^|[,{}])\\s*${Et(r)}\\s*(?:[,}]|$)`,"u").test(d.text)||p.type==="call_expression"&&(o=_t(p)?.text??null)}),!o)return null;let s=ce(e,n.relativePath,o);if(s.length!==1)return null;let l=k(e,s[0].relativePath),c=l?Xe(l.root,s[0].startLine,s[0].endLine):null;return c&&a.test(c.text)&&new RegExp(`\\b${Et(r)}\\s*[,}]`,"u").test(c.text)?r:null}function Za(e,t,n){let r=[];for(let i of vt(e,t,n)){let a=Ne(i.initializer);if(a.type==="call_expression")for(let o of Qe(a)){let s=o.text.trim();if(/^[A-Za-z_$][\w$]*$/u.test(s))for(let l of vt(e,i.definition.relativePath,s))r.push({file:l.definition.relativePath,binding:l.definition.leaf})}}return[...new Map(r.map(i=>[`${i.file}\0${i.binding}`,i])).values()]}function Pt(e,t,n,r,i,a,o){let l=Ze(e,t,"builtin.carrier",n,[{name:"carrier",value:r,evidence:"constant",term:{kind:"literal",value:r}},{name:"field",value:i,evidence:"literal",term:{kind:"literal",value:i}},{name:"value",value:a,evidence:"constant",term:{kind:"literal",value:a}}],"derived","http-body-registry-discriminator");return l.derivation={kind:"mechanically-derived",rule:"http-body-registry-discriminator",ruleVersion:"1",inputFactIds:[...o],sourceSpans:[l.source]},l}function Qn(e){let t=e.keyParts.find(r=>r.name==="method"&&r.evidence!=="expression")?.value,n=e.keyParts.find(r=>r.name==="path"&&r.evidence!=="expression")?.value;return t&&n?`${t.toUpperCase()} ${n}`:null}function Xa(e,t){let n=e.get(t.definition.symbol);if(!n)return e.set(t.definition.symbol,t),!0;let r=rr([...n.parameterIndexes,...t.parameterIndexes]);return r.length===n.parameterIndexes.length&&t.depth>=n.depth?!1:(e.set(t.definition.symbol,{...n,parameterIndexes:r,depth:Math.min(n.depth,t.depth),proofSpans:[...n.proofSpans,...t.proofSpans]}),!0)}function Zn(e){return`${e.definition.symbol}\0${e.carrier}\0${e.field}\0${e.parameterIndex}`}function Qa(e,t){let n=Xe(e.root,t.startLine,t.endLine);return n?Jn(n):[]}function Jn(e){return(e.childForFieldName("parameters")??e.namedChildren.find(n=>/parameters/u.test(n.type)))?.namedChildren.map(Yn)??[]}function Yn(e){if(e.type==="identifier")return e.text;let t=e.childForFieldName("name")??e.childForFieldName("pattern");return t?Yn(t):e.namedChildren.find(n=>n.type==="identifier")?.text??null}function Xe(e,t,n){let r=null;return K(e,i=>{!/(?:function|method|lambda)/u.test(i.type)&&i.type!=="arrow_function"||i.startPosition.row>t||i.endPosition.row<n||(!r||i.endIndex-i.startIndex<r.endIndex-r.startIndex)&&(r=i)}),r}function Ja(e,t){let n=null;return K(e,r=>{r.startPosition.row>t||r.endPosition.row<t||(!n||r.endIndex-r.startIndex<n.endIndex-n.startIndex)&&(n=r)}),n}function er(e,t){let n=[];return K(e,r=>{r.type==="call_expression"&&r.startPosition.row<=t&&r.endPosition.row>=t&&n.push(r)}),n.sort((r,i)=>r.endIndex-r.startIndex-(i.endIndex-i.startIndex))}function _t(e){return e.childForFieldName("function")??e.namedChild(0)}function Qe(e){return(e.childForFieldName("arguments")??e.namedChildren.find(n=>n.type==="arguments"))?.namedChildren??[]}function Ya(e,t){if(!t)return null;let n=t.text.trim();if(!/^[A-Za-z_$][\w$]*$/u.test(n))return Ne(t);let r=null;return K(e.root,i=>{r||i.type!=="variable_declarator"||(i.childForFieldName("name")??i.namedChild(0))?.text.trim()!==n||(r=i.childForFieldName("value")??i.namedChild(1))}),Ne(r||t)}function eo(e){let t=Ne(e);return t.type==="object"?t.namedChildren.filter(n=>n.type==="pair"||n.type==="shorthand_property_identifier"):[]}function tr(e){return e.type==="shorthand_property_identifier"?e.text:(e.childForFieldName("key")??e.namedChild(0))?.text.replace(/^['"`]|['"`]$/gu,"")??null}function nr(e){return e.type==="shorthand_property_identifier"?e:e.childForFieldName("value")??e.namedChild(1)}function Ne(e){let t=e;for(;["as_expression","satisfies_expression","type_assertion","parenthesized_expression"].includes(t.type)&&t.namedChildren.length>0;)t=t.namedChildren[0];return t}function to(e,t,n){let r=new Set(e.text.match(/[A-Za-z_$][\w$]*/gu)??[]);for(let i of t)i&&r.has(i)&&n.add(i)}function rr(e){return[...new Set(e)].sort((t,n)=>t-n)}function no(e){return[...new Map(e.map(t=>[t.id,t])).values()]}function Et(e){return e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function Lt(e){return e instanceof Error?e.message:String(e)}function K(e,t){t(e);for(let n of e.namedChildren)K(n,t)}import{createHash as ro}from"crypto";function ir(e,t){let n=new Map;for(let a of t){if(a.action!=="http.handle"||a.sourceScope!=="production")continue;let o=n.get(a.source.file)??[];o.push(a),n.set(a.source.file,o)}let r=[],i=io(e);for(let a of i.mounts)for(let o of a.targetFiles)for(let s of n.get(o)??[]){let l=s.keyParts.find(p=>p.name==="path");if(!l||l.evidence==="expression")continue;let c=oo(a.prefix.value,l.value),u=s.keyParts.map(p=>p.name==="path"?{name:"path",value:c,evidence:"constant",term:{kind:"concat",parts:[a.prefix.term??{kind:"literal",value:a.prefix.value},l.term??{kind:"literal",value:l.value}]},derivation:{kind:"mechanically-derived",rule:"http.mount-prefix",ruleVersion:"1",inputFactIds:[s.id],sourceSpans:[s.source,{file:a.file,startLine:a.line,endLine:a.line},...a.prefix.derivation?.sourceSpans??[],...l.derivation?.sourceSpans??[]]}}:p),d=`${s.id}\0${a.file}\0${a.line}\0${c}`;r.push({...s,id:`boundary:${ro("sha256").update(d).digest("hex").slice(0,16)}`,keyParts:u,strength:"derived",evidence:"framework-mount-composition",derivation:{kind:"mechanically-derived",rule:"http.mount-prefix",ruleVersion:"1",inputFactIds:[s.id],sourceSpans:[s.source,{file:a.file,startLine:a.line,endLine:a.line}]},resolution:"unresolved"}),s.strength="candidate",s.resolution="unresolved"}return{observations:r,filesInspected:i.filesInspected,mounts:i.mounts.length}}function io(e){let t=[],n=z(e);for(let r of n){let i=L(e,r);if(!so(i))continue;let a=k(e,r);a&&ar(a.root,o=>{if(o.type!=="call_expression")return;let s=o.childForFieldName("function")??o.namedChild(0);if(!s||!/\.use$/u.test(s.text.replace(/\s+/gu,"")))return;let l=lo(o);if(l.length<2)return;let c=V(a,l[0]);if(!c||c.evidence==="expression")return;let u=ao(e,r,l[1]);u.length!==0&&t.push({file:r,line:o.startPosition.row,prefix:{value:c.value,evidence:c.evidence,term:c.term,derivation:c.derivation},targetFiles:u})})}return{mounts:t,filesInspected:n.length}}function ao(e,t,n){let r=n.text.replace(/\s+/gu,""),i=/^([A-Za-z_$][\w$]*)/u.exec(r)?.[1];if(!i)return[];let a=A(e,t).find(l=>l.localName===i&&l.sourcePath);if(!a?.sourcePath)return[t];if(a.kind==="namespace")return[a.sourcePath];let o=a.importedName==="default"?i:a.importedName,s=Q(e,a.sourcePath,o);return[...new Set(s.map(l=>l.relativePath))]}function oo(e,t){let n=e==="/"?"":e.replace(/\/+$/u,""),r=t.startsWith("/")?t:`/${t}`;return`${n}${r}`||"/"}function so(e){return/(?:\bfrom\s*|\brequire\s*\(\s*)['"](?:express|fastify|hono|koa-router|@koa\/router)(?:[/']|")/u.test(e)}function lo(e){return(e.childForFieldName("arguments")??e.namedChildren.find(n=>n.type==="arguments"))?.namedChildren??[]}function ar(e,t){t(e);for(let n of e.namedChildren)ar(n,t)}import{createHash as co}from"crypto";var Bt=new Set(["DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT"]),uo=8;function lr(e,t){let n=new Map,r=[],i=[],a=new Set,o=[],s=[];for(let l of t){if(l.action!=="http.request"||!l.owner.symbol||l.evidence!=="call-expression"&&l.evidence!=="client-adapter")continue;let c=N(e,l.owner.file).find(f=>f.symbol===l.owner.symbol);if(!c)continue;let u=k(e,c.relativePath);if(!u)continue;let d=or(u,c),p={definition:c,...d,constantMethods:l.keyParts.flatMap(f=>f.name==="method"&&f.evidence!=="expression"&&Bt.has(f.value.toUpperCase())?[f.value.toUpperCase()]:[]),depth:0,proofObservationIds:[l.id],proofSpans:[l.source]};sr(n,p)&&r.push(n.get(c.symbol))}for(;r.length>0;){let l=r.shift();if(!(l.depth>=uo))try{let c=Ie(e,l.definition);s.push(...c.unresolved.map(u=>po(l,u)));for(let u of c.sites){let d=k(e,u.file);if(!d)continue;a.add(u.file);let p=u.callNode,f=mo(l,p,d);f&&i.push(f);let m=u.caller;if(!m)continue;let g=or(d,m),b=yo(e,l,u),h={definition:m,pathParameterIndexes:Je([...g.pathParameterIndexes,...b.pathParameterIndexes]),methodParameterIndexes:Je([...g.methodParameterIndexes,...b.methodParameterIndexes]),constantMethods:de([...l.constantMethods,...g.constantMethods]),depth:l.depth+1,proofObservationIds:de([...l.proofObservationIds,...f?[f.id]:[]]),proofSpans:[...l.proofSpans,{file:u.file,startLine:u.startLine,endLine:u.endLine}]};sr(n,h)&&r.push(n.get(m.symbol))}}catch(c){o.push(`builtin.http-summary failed for ${l.definition.relativePath}:${l.definition.startLine+1}: ${c instanceof Error?c.message:String(c)}`)}}return{observations:i,frontiers:fo(s),summaries:n.size,filesInspected:a.size,errors:o}}function po(e,t){let n=de([...e.pathParameterIndexes.length>0?["path"]:[],...e.methodParameterIndexes.length>0&&e.constantMethods.length!==1?["method"]:[]]),r=e.constantMethods.length===1?e.constantMethods[0]:"?",i=`${e.definition.symbol}\0${t.file}\0${t.line}\0${t.reason}`;return{observationId:`frontier:${co("sha256").update(i).digest("hex").slice(0,16)}`,kind:"call-resolution",action:"http.request",strength:"candidate",source:{file:t.file,startLine:t.line,endLine:t.line},ownerShortName:null,address:`method=${r??"?"} path=?`,reason:`Compiler identity found a reference to ${e.definition.leaf}, but exact call recovery stopped with ${t.reason} (${t.candidates} syntax candidate(s)); HTTP value propagation did not cross this site.`,missingKeyParts:n.length>0?n:["call"],sourceScope:ze(t.file)}}function fo(e){return[...new Map(e.map(t=>[t.observationId,t])).values()].sort((t,n)=>t.observationId.localeCompare(n.observationId))}function mo(e,t,n){let r=ur(t),i=e.pathParameterIndexes.flatMap(d=>{let p=V(n,r[d]);return p&&p.evidence!=="expression"&&bo(p.value)?[{index:d,value:p}]:[]}),a=e.methodParameterIndexes.flatMap(d=>{let p=V(n,r[d]),f=p?.value.toUpperCase();return p&&f&&p.evidence!=="expression"&&Bt.has(f)?[{index:d,value:{...p,value:f}}]:[]}),o=de([...e.constantMethods,...a.map(d=>d.value.value)]);if(i.length!==1||o.length!==1)return null;let s=i[0].value,l=a.find(d=>d.value.value===o[0])?.value,c=[{name:"method",value:o[0],evidence:l?"constant":"literal",term:l?.term??{kind:"literal",value:o[0]},derivation:l?.derivation},{name:"path",value:s.value,evidence:"constant",term:s.term,derivation:s.derivation}],u=Ze(n,t,"builtin.http-summary","http.request",c,"derived","compiler-resolved-http-summary");return u.derivation={kind:"mechanically-derived",rule:"compiler-resolved-http-summary",ruleVersion:"1",inputFactIds:e.proofObservationIds,sourceSpans:[...e.proofSpans,u.source]},u}function or(e,t){let n=So(e.root,t.startLine,t.endLine);if(!n)return{pathParameterIndexes:[],methodParameterIndexes:[],constantMethods:[]};let r=ho(n),i=new Set,a=new Set,o=new Set;return Tt(n,s=>{if(s.type==="call_expression"&&((s.childForFieldName("function")??s.namedChild(0))?.text.replace(/\s+/gu,"").split(".").at(-1)??"")==="fetch"){let f=ur(s);Fe(f[0],r,i);let m=go(f[1],"method");if(m){Fe(m,r,a);let g=V(e,m),b=g?.value.toUpperCase();b&&g?.evidence!=="expression"&&Bt.has(b)&&o.add(b)}else Fe(f[1],r,a)}if(s.type!=="pair")return;let l=s.childForFieldName("key")??s.namedChild(0),c=s.childForFieldName("value")??s.namedChild(1),u=l?.text.replace(/^['"`]|['"`]$/gu,"").toLowerCase();(u==="url"||u==="path"||u==="endpoint")&&Fe(c,r,i),(u==="init"||u==="requestinit"||u==="options")&&Fe(c,r,a)}),{pathParameterIndexes:r.flatMap((s,l)=>s&&i.has(s)?[l]:[]),methodParameterIndexes:r.flatMap((s,l)=>s&&a.has(s)?[l]:[]),constantMethods:[...o].sort()}}function yo(e,t,n){let r=we(e,n);return{pathParameterIndexes:Ce(r,t.pathParameterIndexes),methodParameterIndexes:Ce(r,t.methodParameterIndexes)}}function sr(e,t){let n=e.get(t.definition.symbol);if(!n)return e.set(t.definition.symbol,t),!0;let r=Je([...n.pathParameterIndexes,...t.pathParameterIndexes]),i=Je([...n.methodParameterIndexes,...t.methodParameterIndexes]),a=de([...n.constantMethods,...t.constantMethods]);return r.length!==n.pathParameterIndexes.length||i.length!==n.methodParameterIndexes.length||a.length!==n.constantMethods.length||t.depth<n.depth?(e.set(t.definition.symbol,{...n,pathParameterIndexes:r,methodParameterIndexes:i,constantMethods:a,depth:Math.min(n.depth,t.depth),proofObservationIds:de([...n.proofObservationIds,...t.proofObservationIds]),proofSpans:[...n.proofSpans,...t.proofSpans]}),!0):!1}function go(e,t){if(!e)return null;for(let n of e.namedChildren)if(!(n.type!=="pair"||(n.childForFieldName("key")??n.namedChild(0))?.text.replace(/^['"`]|['"`]$/gu,"").toLowerCase()!==t))return n.childForFieldName("value")??n.namedChild(1);return null}function Fe(e,t,n){if(!e)return;let r=new Set(e.text.match(/[A-Za-z_$][\w$]*/gu)??[]);for(let i of t)i&&r.has(i)&&n.add(i)}function ho(e){return(e.childForFieldName("parameters")??e.namedChildren.find(n=>/parameters/u.test(n.type)))?.namedChildren.map(cr)??[]}function cr(e){if(e.type==="identifier")return e.text;let t=e.childForFieldName("name")??e.childForFieldName("pattern");return t?cr(t):e.namedChildren.find(n=>n.type==="identifier")?.text??null}function So(e,t,n){let r=null;return Tt(e,i=>{!/(?:function|method|lambda)/u.test(i.type)&&i.type!=="arrow_function"||i.startPosition.row>t||i.endPosition.row<n||(!r||i.endIndex-i.startIndex<r.endIndex-r.startIndex)&&(r=i)}),r}function ur(e){return(e.childForFieldName("arguments")??e.namedChildren.find(n=>n.type==="arguments"))?.namedChildren??[]}function bo(e){return e.startsWith("/")||/^https?:\/\//iu.test(e)}function Je(e){return[...new Set(e)].sort((t,n)=>t-n)}function de(e){return[...new Set(e)].sort()}function Tt(e,t){t(e);for(let n of e.namedChildren)Tt(n,t)}import{createHash as vo}from"crypto";function fr(e){let t=dr(e.filter(r=>r.action==="database.read"&&r.evidence==="persistence-skip-locked-claim")),n=dr(e.filter(r=>r.action==="database.write"&&r.evidence==="persistence-insert"));return e.flatMap(r=>r.action==="database.write"&&r.evidence==="persistence-insert"?kt(r).flatMap(i=>{let a=t.get(i)?.[0];return a?[pr(r,a,i,"queue.send")]:[]}):r.action==="database.read"&&r.evidence==="persistence-skip-locked-claim"?kt(r).flatMap(i=>{let a=n.get(i)?.[0];return a?[pr(r,a,i,"queue.consume")]:[]}):[])}function dr(e){let t=new Map;for(let n of e)for(let r of kt(n)){let i=t.get(r);i?i.push(n):t.set(r,[n])}for(let n of t.values())n.sort((r,i)=>r.id.localeCompare(i.id));return t}function kt(e){return e.keyParts.filter(t=>t.name==="resource").map(t=>t.value)}function pr(e,t,n,r){let i=`database:${n}`,a=r==="queue.send"?"database-queue-insert":"database-queue-skip-locked-claim",o=[e.id,r,i,a].join("\0");return{...e,id:`boundary:${vo("sha256").update(o).digest("hex").slice(0,16)}`,extractor:"builtin.database-queue",action:r,keyParts:[{name:"address",value:i,evidence:"identifier",term:{kind:"symbol",symbol:n},derivation:{kind:"mechanically-derived",rule:"database-work-queue.resource",ruleVersion:"1",inputFactIds:[e.id,t.id],sourceSpans:[e.source,t.source]}}],evidence:a,strength:"derived",protocol:"queue",role:r==="queue.send"?"producer":"consumer",derivation:{kind:"mechanically-derived",rule:"database-work-queue.insert-skip-locked",ruleVersion:"1",inputFactIds:[e.id,t.id],sourceSpans:[e.source,t.source]},valuePrecision:"symbolic",resolution:"unresolved"}}var $t="runtime-boundaries-v15",tt=[{id:"http.method-path",protocol:"http",producerActions:["http.request"],consumerActions:["http.handle"],keyNames:["method","path"],traversable:!0},{id:"registry.identity-key",protocol:"registry",producerActions:["registry.dispatch"],consumerActions:["registry.handle"],keyNames:["registry","key"],traversable:!0},{id:"registry.capability-key",protocol:"registry",producerActions:["registry.reference"],consumerActions:["registry.handle"],keyNames:["key"],traversable:!0,requireUniqueConsumer:!0},{id:"queue.address",protocol:"queue",producerActions:["queue.send"],consumerActions:["queue.consume"],keyNames:["address"],traversable:!0},{id:"carrier.discriminator",protocol:"carrier",producerActions:["carrier.publish"],consumerActions:["carrier.consume"],keyNames:["carrier","field","value"],traversable:!0},{id:"resource.identity",protocol:"database",producerActions:["database.write"],consumerActions:["database.read"],keyNames:["resource"],traversable:!1},{id:"framework.effect-httpapi-operation",protocol:"framework",producerActions:[],consumerActions:["framework.handle"],declarationActions:["framework.declare"],keyNames:["adapter","group","operation"],traversable:!0,linkFrom:"declaration",requireUniquePair:!0}],xo=64;function Ro(e,t={}){let n=z(e),r=new Set(n),i=new Set((t.affectedFiles??[]).map(No)),a=t.previousGraph?.fileCoverage,o=i.size>0&&t.previousGraph?.extractorVersion===$t&&a!==void 0&&a.length===t.previousGraph.coverage.filesScanned,s=o?a.filter(C=>r.has(C.file)&&!i.has(C.file)):[],l=new Set(s.flatMap(C=>C.observationIds)),c=o?t.previousGraph.observations.filter(C=>l.has(C.id)&&r.has(C.source.file)):[],u=o?n.filter(C=>i.has(C)):n,d=[],p=a?.reduce((C,ot)=>C+ot.observationIds.length,0)??0,f=performance.now(),m=Io(e,u);Y(d,"direct-extraction",f,u.length,m.observations.length,{filesVisited:u.length,filesReused:s.length,factsReused:c.length,factsInvalidated:Math.max(0,p-c.length)});let g=[...s,...m.fileCoverage].sort((C,ot)=>C.file.localeCompare(ot.file)),b=Co(g),h=g.flatMap(C=>C.extractionErrors),v=Ee([...c,...m.observations]),F=Ee([...v,...fr(v)]);f=performance.now();let x=lr(e,F);Y(d,"http-summary",f,F.length,x.observations.length,{filesVisited:x.filesInspected}),b.set("builtin.wrapper",{id:"builtin.wrapper",applicableFiles:x.filesInspected,observations:x.observations.length,errors:x.errors.length}),h.push(...x.errors);let w=Ee([...F,...x.observations]);f=performance.now();let y=ir(e,w);Y(d,"http-mount",f,w.length,y.observations.length,{filesVisited:y.filesInspected});let R=Ee([...w,...y.observations]);f=performance.now();let I=Xn(e,R);Y(d,"carrier",f,R.length,I.observations.length,{filesVisited:I.filesInspected}),b.set("builtin.carrier",{id:"builtin.carrier",applicableFiles:I.bodySummaries,observations:I.observations.length,errors:I.errors.length}),h.push(...I.errors);let E=Ee([...R,...I.observations]);f=performance.now();let _=Fo(E);Y(d,"relations",f,E.length,_.length),f=performance.now();let At=Po(E,_);Y(d,"links",f,_.length,At.length),_o(E,_),f=performance.now();let Dt=To([...Lo(E,_),...x.frontiers]);return Y(d,"frontiers",f,E.length,Dt.length),{schemaVersion:2,extractorVersion:$t,observations:E,relationGroups:_,links:At,frontiers:Dt,coverage:{filesScanned:n.length,filesWithAst:g.filter(C=>C.hasAst).length,filesWithoutAst:g.filter(C=>!C.hasAst).length,...o?{filesReused:s.length}:{},extractors:[...b.values()],extractionErrors:h,phases:d},fileCoverage:g}}function Y(e,t,n,r,i,a={}){e.push({id:t,durationMs:Math.max(0,performance.now()-n),inputFacts:r,outputFacts:i,...a})}function Io(e,t){let n=[],r=[];for(let i of t){let a=L(e,i),o=Nt.filter(c=>c.supports(a)),s=o.length>0?k(e,i):null,l={file:i,hasAst:s!==null||wo(i,a),observationIds:[],extractors:[],extractionErrors:[]};if(s)for(let c of o){let u={id:c.id,applicableFiles:1,observations:0,errors:0};try{let d=c.extract(s);u.observations=d.length,n.push(...d),l.observationIds.push(...d.map(p=>p.id))}catch(d){u.errors=1,l.extractionErrors.push(`${c.id} failed for ${i}: ${d instanceof Error?d.message:String(d)}`)}l.extractors.push(u)}r.push(l)}return{observations:n,fileCoverage:r}}function wo(e,t){return t?tn(e)?/<script\b/iu.test(t):Be(e)!==null:!1}function Co(e){let t=new Map(Nt.map(n=>[n.id,{id:n.id,applicableFiles:0,observations:0,errors:0}]));for(let n of e)for(let r of n.extractors){let i=t.get(r.id);i&&(i.applicableFiles+=r.applicableFiles,i.observations+=r.observations,i.errors+=r.errors)}return t}function No(e){return e.replaceAll("\\","/").replace(/^\.\//u,"")}function Fo(e){let t=new Map;for(let n of tt){let r=new Set([...n.producerActions,...n.consumerActions,...n.declarationActions??[]]);for(let i of e){if(!r.has(i.action)||i.strength==="candidate")continue;let a=ko(i,n.keyNames);if(!a)continue;let o=a.map(d=>`${d.name}=${gr(d.name,d.value)}`).join("\0"),s=i.sourceScope==="production"?"production":i.sourceScope,l=`${n.id}\0${s}\0${o}`,c=`boundary-group:${mr("sha256").update(l).digest("hex").slice(0,16)}`,u=t.get(c)??{id:c,protocol:n.protocol,joinRule:n.id,normalizedKey:o,keyParts:a,producerIds:[],consumerIds:[],declarationIds:[],derivation:{kind:"mechanically-derived",rule:n.id,ruleVersion:"2",inputFactIds:[],sourceSpans:[]}};n.producerActions.includes(i.action)&&u.producerIds.push(i.id),n.consumerActions.includes(i.action)&&u.consumerIds.push(i.id),n.declarationActions?.includes(i.action)&&u.declarationIds.push(i.id),u.derivation.inputFactIds.push(i.id),u.derivation.sourceSpans.push(i.source),t.set(c,u)}}return[...t.values()].map(Eo).sort(Ao)}function Eo(e){return{...e,producerIds:Ye(e.producerIds),consumerIds:Ye(e.consumerIds),declarationIds:Ye(e.declarationIds),derivation:{...e.derivation,inputFactIds:Ye(e.derivation.inputFactIds),sourceSpans:[...new Map(e.derivation.sourceSpans.map(t=>[`${t.file}:${t.startLine}:${t.endLine}`,t])).values()]}}}function Po(e,t){let n=new Map(e.map(i=>[i.id,i])),r=new Map;for(let i of t){let a=tt.find(s=>s.id===i.joinRule);if(!a?.traversable)continue;let o=a.linkFrom==="declaration"?i.declarationIds:i.producerIds;if(!(o.length===0||i.consumerIds.length===0)&&!(a.requireUniquePair&&(o.length!==1||i.consumerIds.length!==1))&&!(a.requireUniqueConsumer&&i.consumerIds.length!==1)&&!(o.length*i.consumerIds.length>xo))for(let s of o)for(let l of i.consumerIds){let c=n.get(s),u=n.get(l);if(!c||!u||$o(c,u))continue;let d=c.strength==="derived"||u.strength==="derived"?"derived":"exact",p=`${i.joinRule}\0${s}\0${l}`,f={id:`boundary-link:${mr("sha256").update(p).digest("hex").slice(0,16)}`,from:s,to:l,joinRule:i.joinRule,matchedKeyParts:i.keyParts,strength:d,derivation:{kind:"mechanically-derived",rule:i.joinRule,ruleVersion:"2",inputFactIds:[s,l],sourceSpans:[c.source,u.source]}};r.set(f.id,f)}}return[...r.values()].sort(Do)}function _o(e,t){let n=new Set(t.filter(yr).flatMap(et)),r=new Set(t.filter(Bo).flatMap(et));for(let i of e)i.resolution=n.has(i.id)?"locally-linked":r.has(i.id)?"ambiguous":"unresolved"}function Lo(e,t){let n=new Set(e.filter(a=>a.strength!=="candidate").map(a=>`${a.action}\0${a.source.file}\0${a.source.startLine}\0${a.source.endLine}`)),r=new Set(t.flatMap(et)),i=new Set(t.filter(yr).flatMap(et));return e.filter(a=>a.sourceScope==="production").filter(a=>a.strength!=="candidate"||!n.has(`${a.action}\0${a.source.file}\0${a.source.startLine}\0${a.source.endLine}`)).filter(a=>!i.has(a.id)).map(a=>{let o=a.keyParts.filter(l=>l.evidence==="expression"||l.value.length===0).map(l=>l.name),s=o.length>0?`${a.extractor} observed ${a.action}, but ${o.join(", ")} remained symbolic or unknown.`:a.resolution==="ambiguous"?`${a.extractor} established the address for ${a.action}, but more than one indexed peer has the same runtime key.`:r.has(a.id)?`${a.extractor} established the address for ${a.action}, but the indexed production scope contains no counterpart role in that relation group.`:`${a.extractor} observed ${a.action}, but no supported factorization rule could establish its addressed relation.`;return{observationId:a.id,reason:s,missingKeyParts:o,sourceScope:a.sourceScope}}).sort((a,o)=>a.observationId.localeCompare(o.observationId))}function et(e){return[...e.producerIds,...e.consumerIds,...e.declarationIds]}function yr(e){let t=tt.find(r=>r.id===e.joinRule);if(!t)return!1;let n=t.linkFrom==="declaration"?e.declarationIds:e.producerIds;return n.length===0||e.consumerIds.length===0?!1:!t.requireUniquePair||n.length===1&&e.consumerIds.length===1}function Bo(e){let t=tt.find(r=>r.id===e.joinRule);if(!t?.requireUniquePair)return!1;let n=t.linkFrom==="declaration"?e.declarationIds:e.producerIds;return n.length>0&&e.consumerIds.length>0&&(n.length!==1||e.consumerIds.length!==1)}function To(e){return[...new Map(e.map(t=>[t.observationId,t])).values()].sort((t,n)=>t.observationId.localeCompare(n.observationId))}function ko(e,t){let n=[];for(let r of t){let i=e.keyParts.find(a=>a.name===r);if(!i||i.evidence==="expression"||i.value.length===0)return null;n.push({...i,value:gr(r,i.value)})}return n}function gr(e,t){if(e==="method")return t.toUpperCase();if(e!=="path")return t;let n=t.startsWith("/")?t:`/${t}`;return n.length>1?n.replace(/\/+$/u,""):n}function $o(e,t){return e.source.file===t.source.file&&e.source.startLine===t.source.startLine}function Ee(e){return[...new Map(e.map(t=>[t.id,t])).values()].sort((t,n)=>t.source.file.localeCompare(n.source.file)||t.source.startLine-n.source.startLine||t.action.localeCompare(n.action))}function Ye(e){return[...new Set(e)].sort()}function Ao(e,t){return e.joinRule.localeCompare(t.joinRule)||e.normalizedKey.localeCompare(t.normalizedKey)}function Do(e,t){return e.joinRule.localeCompare(t.joinRule)||e.from.localeCompare(t.from)||e.to.localeCompare(t.to)}import Mo from"better-sqlite3";var rt="codebaseiq_runtime_boundaries",ee="codebaseiq_runtime_observations",it="codebaseiq_runtime_relation_groups",at="codebaseiq_runtime_relation_participants";function Oo(e,t){let n=new Mo(zt(e));try{n.exec(`
|
|
35
|
+
CREATE TABLE IF NOT EXISTS ${rt} (
|
|
36
|
+
singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
|
|
37
|
+
schema_version INTEGER NOT NULL,
|
|
38
|
+
extractor_version TEXT NOT NULL,
|
|
39
|
+
payload TEXT NOT NULL
|
|
40
|
+
)
|
|
41
|
+
`),Vo(n),n.transaction(()=>{n.prepare(`INSERT OR REPLACE INTO ${rt} (singleton, schema_version, extractor_version, payload) VALUES (1, ?, ?, ?)`).run(t.schemaVersion,t.extractorVersion,JSON.stringify(t)),n.prepare(`DELETE FROM ${ee}`).run(),n.prepare(`DELETE FROM ${at}`).run(),n.prepare(`DELETE FROM ${it}`).run();let r=n.prepare(`INSERT INTO ${ee}
|
|
42
|
+
(id, protocol, action, role, strength, source_scope, resolution, file, start_line, end_line, owner_symbol, payload)
|
|
43
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);for(let o of t.observations)r.run(o.id,o.protocol,o.action,o.role,o.strength,o.sourceScope,o.resolution,o.source.file,o.source.startLine,o.source.endLine,o.owner.symbol,JSON.stringify(o));let i=n.prepare(`INSERT INTO ${it} (id, protocol, join_rule, normalized_key, payload) VALUES (?, ?, ?, ?, ?)`),a=n.prepare(`INSERT INTO ${at} (group_id, observation_id, participant_role) VALUES (?, ?, ?)`);for(let o of t.relationGroups){i.run(o.id,o.protocol,o.joinRule,o.normalizedKey,JSON.stringify(o));for(let s of o.producerIds)a.run(o.id,s,"producer");for(let s of o.consumerIds)a.run(o.id,s,"consumer");for(let s of o.declarationIds)a.run(o.id,s,"declaration")}})()}finally{n.close()}}function jo(e,t={}){if(!qo(e,ee))return hr(e)?.observations??[];let n=[],r=[];return nt(n,r,"protocol",t.protocols),nt(n,r,"action",t.actions),nt(n,r,"source_scope",t.sourceScopes),nt(n,r,"file",t.files),e.all(`SELECT payload FROM ${ee}${n.length>0?` WHERE ${n.join(" AND ")}`:""} ORDER BY file, start_line, id`,...r).flatMap(a=>Go(a.payload))}function Vo(e){e.exec(`
|
|
44
|
+
CREATE TABLE IF NOT EXISTS ${ee} (
|
|
45
|
+
id TEXT PRIMARY KEY,
|
|
46
|
+
protocol TEXT NOT NULL,
|
|
47
|
+
action TEXT NOT NULL,
|
|
48
|
+
role TEXT NOT NULL,
|
|
49
|
+
strength TEXT NOT NULL,
|
|
50
|
+
source_scope TEXT NOT NULL,
|
|
51
|
+
resolution TEXT NOT NULL,
|
|
52
|
+
file TEXT NOT NULL,
|
|
53
|
+
start_line INTEGER NOT NULL,
|
|
54
|
+
end_line INTEGER NOT NULL,
|
|
55
|
+
owner_symbol TEXT,
|
|
56
|
+
payload TEXT NOT NULL
|
|
57
|
+
);
|
|
58
|
+
CREATE INDEX IF NOT EXISTS idx_runtime_observations_protocol_action_scope
|
|
59
|
+
ON ${ee}(protocol, action, source_scope);
|
|
60
|
+
CREATE INDEX IF NOT EXISTS idx_runtime_observations_file_line
|
|
61
|
+
ON ${ee}(file, start_line);
|
|
62
|
+
|
|
63
|
+
CREATE TABLE IF NOT EXISTS ${it} (
|
|
64
|
+
id TEXT PRIMARY KEY,
|
|
65
|
+
protocol TEXT NOT NULL,
|
|
66
|
+
join_rule TEXT NOT NULL,
|
|
67
|
+
normalized_key TEXT NOT NULL,
|
|
68
|
+
payload TEXT NOT NULL
|
|
69
|
+
);
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_runtime_groups_protocol_key
|
|
71
|
+
ON ${it}(protocol, join_rule, normalized_key);
|
|
72
|
+
|
|
73
|
+
CREATE TABLE IF NOT EXISTS ${at} (
|
|
74
|
+
group_id TEXT NOT NULL,
|
|
75
|
+
observation_id TEXT NOT NULL,
|
|
76
|
+
participant_role TEXT NOT NULL,
|
|
77
|
+
PRIMARY KEY (group_id, observation_id, participant_role)
|
|
78
|
+
);
|
|
79
|
+
CREATE INDEX IF NOT EXISTS idx_runtime_participants_observation
|
|
80
|
+
ON ${at}(observation_id, participant_role);
|
|
81
|
+
`)}function qo(e,t){return!!e.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?",t)}function nt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Go(e){try{return[JSON.parse(e)]}catch{return[]}}function hr(e){if(!e.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?",rt))return null;let n=e.get(`SELECT schema_version, payload FROM ${rt} WHERE singleton = 1`);if(!n||n.schema_version!==2)return null;try{let r=JSON.parse(n.payload);return r.schemaVersion===2&&Array.isArray(r.observations)&&Array.isArray(r.relationGroups)&&Array.isArray(r.links)?r:null}catch{return null}}export{Me as a,je as b,ct as c,Fs as d,Es as e,Ps as f,En as g,ze as h,Q as i,V as j,Ge as k,ft as l,rl as m,Os as n,Jr as o,js as p,Vs as q,Xs as r,Qs as s,pt as t,mt as u,bn as v,xn as w,yt as x,xl as y,Fi as z,Ei as A,Rl as B,Pi as C,_i as D,Pl as E,gt as F,Ie as G,we as H,$t as I,Ro as J,Oo as K,jo as L,hr as M,Zo as N,Xo as O,Sr as P,Qo as Q,Jo as R,P as S,$l as T,be as U,Al as V};
|
|
82
|
+
//# sourceMappingURL=chunk-PVKSZBX5.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{b as I}from"./chunk-
|
|
1
|
+
import{b as I}from"./chunk-G2UU6PQP.js";import{b as y}from"./chunk-B75HZHUP.js";import{a as w}from"./chunk-NMKQOIYZ.js";import{d as k}from"./chunk-RGBZDOUO.js";import{K as R}from"./chunk-NRNVMB2R.js";import{w as b}from"./chunk-23AD24QZ.js";var C=60;function nt(t,s={}){let{scope:n,limit:e=30,scanLimit:i,rotDays:r=C}=s,c=y(R(t,{extensions:[".ts",".tsx",".js",".jsx",".mjs",".cjs"]}).filter(a=>w(a)==="test").filter(a=>!n||a.includes(n)).filter(a=>!t.isIgnored(a)).sort(),i),o=[],l=[],p=[];for(let a of c){let d=b(t,a);if(!d)continue;let x=k(d),h=K(d);for(let u of j(x,h))h.add(u);let O=P(x);for(let u of O){if(u.skip){l.push(H(t,a,u,r));continue}if(u.kind==="describe")continue;let S=F(d,u.argsStart),m=x.slice(u.argsStart,u.callEnd),M=d.slice(u.argsStart,u.callEnd);_(m,h)||o.push({file:a,startLine:f(d,u.callStart),endLine:f(d,u.callEnd),title:S,severity:/\bawait\b/.test(m)?"low":"high"});let A=B(m,M);A&&p.push({file:a,startLine:f(d,u.callStart),endLine:f(d,u.callEnd),title:S,echoedValue:A})}}return{assertionFree:e?o.slice(0,e):o,skipped:e?l.slice(0,e):l,mockEcho:e?p.slice(0,e):p}}var E=/(?<!\.)\b(?:x(it|test|describe)|(it|test|describe)(?:\.\s*(skip|only|todo|each\s*\([^)]*\)))?)\s*\(/g;function P(t){let s=[];E.lastIndex=0;let n;for(;n=E.exec(t);){let e=n[1],i=e??n[2];if(!i)continue;let r=n[3]?.split(/\s*\(/)[0],c=n.index,o=n.index+n[0].length-1,l=g(t,o);E.lastIndex=o+1,r!=="each"&&s.push({kind:i,skip:e!==void 0||r==="skip"||r==="todo",skipKind:r==="todo"?"todo":"skip",callStart:c,argsStart:o+1,callEnd:l+1})}return s}function g(t,s){let n=0;for(let e=s;e<t.length;e+=1){let i=t[e];if(i==="(")n+=1;else if(i===")"&&(n-=1,n===0))return e}return t.length-1}function f(t,s){let n=0;for(let e=0;e<s&&e<t.length;e+=1)t[e]===`
|
|
2
2
|
`&&(n+=1);return n}function F(t,s){let n=t.slice(s,s+400),e=/^\s*(['"`])((?:\\.|(?!\1)[\s\S])*)\1/.exec(n);return e?e[2]:"(anonymous)"}var D=new Set(["vitest","chai","jest","@jest/globals","assert","node:assert","node:assert/strict","assert/strict","uvu/assert","expect","chai-as-promised"]),L=/import\s+(?:\*\s+as\s+(\w+)|\{([^}]*)\}|(\w+))\s+from\s+['"]([^'"]+)['"]/g;function K(t){let s=new Set(["expect","assert"]);L.lastIndex=0;let n;for(;n=L.exec(t);){let[,e,i,r,c]=n;if(!(!c||!D.has(c))&&(e&&s.add(e),r&&s.add(r),i))for(let o of i.split(",")){let l=o.trim().replace(/^type\s+/,"");if(!l)continue;let p=/^(\w+)\s+as\s+(\w+)$/.exec(l);s.add(p?p[2]:l)}}return s}function _(t,s){if(/\.should\b/.test(t)||/\bawait\s+(?:[\w$.]+\.)?findBy[A-Z]\w*\s*\(/.test(t)||/\bawait\s+\w*waitFor(?:Text|Value|Condition|Result|Event)\s*\(/.test(t)||/\bthrow\b/.test(t))return!0;for(let n of s){let e=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`\\b${e}\\s*(?:<[^<>]*>)?\\s*[.(]`).test(t))return!0}return!1}var v=/\bfunction\s+(\w+)\s*\(/g,V=/\b(?:const|let)\s+(\w+)\s*=\s*(?:async\s*)?\(/g,$=60;function j(t,s){let n=new Set;for(let e of[v,V]){e.lastIndex=0;let i;for(;i=e.exec(t);){let r=i[1],c=i.index+i[0].length-1,o=g(t,c),l=t.indexOf("{",o+1);if(l===-1||l-o>$)continue;let p=Q(t,l),a=t.slice(l+1,p);_(a,s)&&n.add(r)}}return n}function Q(t,s){let n=0;for(let e=s;e<t.length;e+=1){let i=t[e];if(i==="{")n+=1;else if(i==="}"&&(n-=1,n===0))return e}return t.length-1}var U=/\bmock(?:ReturnValue|ResolvedValue)(?:Once)?\s*\(/g,T=/\bexpect\s*\(/g,q=/^\s*\.\s*(?:toBe|toEqual|toStrictEqual)\s*\(/,N=/^(?:-?\d+(?:\.\d+)?|(['"`]).+\1)$/;function B(t,s){let n=G(t,s,U);if(n.length===0)return null;let e=Y(t,s);for(let i of e)if(n.includes(i))return i;return null}function G(t,s,n){let e=[];n.lastIndex=0;let i;for(;i=n.exec(t);){let r=i.index+i[0].length-1,c=g(t,r),o=s.slice(r+1,c).trim();N.test(o)&&e.push(o),n.lastIndex=c+1}return e}function Y(t,s){let n=[];T.lastIndex=0;let e;for(;e=T.exec(t);){let i=e.index+e[0].length-1,r=g(t,i),c=t.slice(r+1),o=q.exec(c);if(T.lastIndex=r+1,!o)continue;let l=r+1+o[0].length-1,p=g(t,l),a=s.slice(l+1,p).trim();N.test(a)&&n.push(a)}return n}function H(t,s,n,e){let i=b(t,s),r=F(i,n.argsStart),c=f(i,n.callStart),o=X(t.config.projectRoot,s,c),l=o===null?"unknown":o>=e?"rot":"workflow";return{file:s,startLine:c,title:r,skipKind:n.skipKind,blockKind:n.kind,ageDays:o,rot:l}}function X(t,s,n){let e=n+1;try{let i=I(t,["blame","-L",`${e},${e}`,"--porcelain","--",s]),r=/^author-time (\d+)$/m.exec(i);if(!r)return null;let c=Number(r[1]);return Number.isFinite(c)?Math.max(0,Math.round((Date.now()/1e3-c)/86400)):null}catch{return null}}export{nt as a};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-QANCT4MO.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d}from"./chunk-OTOKVOJ3.js";import{M as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{d}from"./chunk-OTOKVOJ3.js";import{M as p}from"./chunk-NRNVMB2R.js";function y(t,e={}){let{minTotalLines:i=800,minTemplateLines:n=300,minScriptLines:r=300,minStyleLines:u=500,limit:o=20,scope:a,scanLimit:l,filePattern:m}=e;return p(t).vueProfiles({scope:a,scanLimit:l}).filter(s=>!m||s.file.includes(m)).map(s=>L(s,{minTotalLines:i,minTemplateLines:n,minScriptLines:r,minStyleLines:u})).filter(s=>s!==null).sort((s,c)=>c.totalLines-s.totalLines||s.file.localeCompare(c.file)).slice(0,o)}function L(t,e){let i=d(t,b(e),"total"),{reasons:n}=i;if(n.length===0)return null;let r=i.dominantPressure,u=i.pressureKinds.includes("total")?[...new Set([...i.pressureKinds,r])]:i.pressureKinds,o=g(t.file),a=x(r,o),l=t.totalLines+t.delegatedComposableLines;return{file:t.file,totalLines:l,sfcLines:t.sfcLines,templateLines:t.templateLines,scriptLines:t.scriptLines,styleLines:t.styleLines,externalScriptLines:t.externalScriptLines,externalScriptPaths:t.externalScriptPaths,customBlockLines:t.customBlockLines,delegatedComposableLines:t.delegatedComposableLines,delegatedComposablePaths:t.delegatedComposablePaths,dominantPressure:r,pressureKinds:u,contextKind:o,recommendationKind:a,recommendation:f(a,o),reasons:n,loc:l}}function b(t){return[{axis:"total",value:e=>e.totalLines+e.delegatedComposableLines,qualifies:(e,i)=>i>=t.minTotalLines,reason:(e,i)=>e.delegatedComposableLines>0?`${i} total line(s) (${e.totalLines} component + ${e.delegatedComposableLines} delegated composable line(s) across ${e.delegatedComposablePaths.length} file(s))`:`${i} total component line(s)`,dominantEligible:!1},{axis:"template",value:e=>e.templateLines,qualifies:(e,i)=>i>=t.minTemplateLines,reason:(e,i)=>`${i} template line(s)`},{axis:"script",value:e=>e.scriptLines-e.externalScriptLines,qualifies:e=>e.scriptLines>=t.minScriptLines,reason:e=>`${e.scriptLines} script line(s)`},{axis:"style",value:e=>e.styleLines,qualifies:(e,i)=>i>=t.minStyleLines,reason:(e,i)=>`${i} style line(s)`},{axis:"external-script",value:e=>e.externalScriptLines,qualifies:(e,i)=>i>=t.minScriptLines},{axis:"custom-block",value:e=>e.customBlockLines,qualifies:()=>!1}]}function g(t){return t.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).some(n=>w.has(n))||/(?:view|page|route)\.vue$/i.test(t)||/(?:^|\/)(views|pages|routes)\//i.test(t)?"route-page":"component"}function x(t,e){return t==="style"?"style-decomposition":t==="template"?"template-decomposition":t==="external-script"?"external-script-boundary":t==="custom-block"?"custom-block-review":e==="route-page"?"route-page-decomposition":t==="script"?"script-behavior-extraction":"total-size-review"}function f(t,e){switch(t){case"template-decomposition":return e==="route-page"?"Split route template sections into named panels before extracting script behavior.":"Split repeated template sections into named presentational components.";case"script-behavior-extraction":return"Extract independent script behavior into composables, controllers, or feature modules.";case"style-decomposition":return"Review UI/style decomposition; move repeated styling to component or style primitives, not composables.";case"external-script-boundary":return"Review the external script boundary and split controller/composable modules by workflow.";case"custom-block-review":return"Review custom block ownership before splitting template or script code.";case"route-page-decomposition":return"Split route/page orchestration from reusable panels and feature controllers.";case"total-size-review":return"Review the largest block first, then split by the dominant reason to change."}}var w=new Set(["landing","page","pages","route","routes","view","views"]);export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-QEWN7BLP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as x}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as x}from"./chunk-G2UU6PQP.js";import{a as u}from"./chunk-NMKQOIYZ.js";import{a as p}from"./chunk-6CTSFS7R.js";import{h as y}from"./chunk-YMAGXBLT.js";function ee(e){return b.test(e)}var b=/(?:^|\/)(?:package-lock\.json|pnpm-lock\.yaml|yarn\.lock|Cargo\.lock|uv\.lock|poetry\.lock|Pipfile\.lock|bun\.lockb?|\.SRCINFO|CHANGELOG(?:\.[a-z]+)?|.*\.(?:map|tsbuildinfo))$|(?:^|\/)(?:dist|build|out|node_modules|docs\/plans)\//i;function te(e,t,n={}){let{minTogether:s=4,minConfidence:i=.6,limit:a=30,maxFilesPerCommit:l=20}=n,g=x(e,{historyMode:n.historyMode,...n.head?{head:n.head}:{}}),r=g.commitHistory(),c=t!==void 0,d=g.coChangePairs({minTogether:c?Math.min(s,2):s,minConfidence:c?0:i,maxFilesPerCommit:l});if(!r||!d)return{available:!1,commitsAnalyzed:0,findings:[]};let f=typeof n.scanLimit=="number"?d.slice(0,n.scanLimit):d,R=p(e),j=E(e),L=F(e,R,j),v=n.includeLinked===!0||c,h=[];for(let o of f){if(b.test(o.fileA)||b.test(o.fileB)||!P(e,o.fileA)||!P(e,o.fileB)||c&&!o.fileA.includes(t)&&!o.fileB.includes(t)||!c&&(u(o.fileA)==="test"||u(o.fileB)==="test"||O(o.fileA,o.fileB)||I(o.fileA,o.fileB)))continue;let m=L(o.fileA,o.fileB);if(!v&&m)continue;let C=w(o.fileA,o.fileB),S=$(o,C,m);if(h.push({...o,structurallyLinked:m,partnerClass:C.partnerClass,partnerClassReasons:C.reasons,...S?{declaredCouplingSuggestion:S}:{}}),h.length>=a)break}return{available:!0,commitsAnalyzed:r.commits.length,findings:h}}function P(e,t){return y(e.config.projectRoot,t)}function w(e,t){let n=A(e),s=A(t),i=[],a=r=>{i.includes(r)||i.push(r)},l=(r,c)=>n.tags.has(r)&&s.tags.has(c)||n.tags.has(c)&&s.tags.has(r);if(l("doc","code"))return a("one side is documentation and the other is executable source"),{partnerClass:"doc-code",reasons:i};if(n.tags.has("test")||s.tags.has("test"))return a("one side is classified as a test file"),{partnerClass:"test-code",reasons:i};if(l("schema","script"))return a("schema or contract file changes with a script or generated-code path"),{partnerClass:"schema-script",reasons:i};if(l("model","view"))return a("model or state path changes with a view or component path"),{partnerClass:"model-view",reasons:i};if(l("config","code"))return a("configuration file changes with executable source"),{partnerClass:"config-code",reasons:i};let g=K(n.tokens,s.tokens).filter(r=>!Z.has(r));return k(e,t)||g.length>=2?(a(k(e,t)?"both files live in the same directory":`files share feature tokens: ${g.slice(0,4).join(", ")}`),{partnerClass:"same-feature",reasons:i}):(a("no specific relationship pattern matched"),{partnerClass:"unknown",reasons:i})}function $(e,t,n){if(n||e.together<4||e.confidence<.75||e.commitScope==="broad-sweep"||e.recency==="stale"||!W.has(t.partnerClass))return;let s=[e.fileA,e.fileB].sort();return{name:`co-change ${t.partnerClass}: ${U(s)}`,files:s,reason:`${t.partnerClass} pair changed together ${e.together}x with ${Math.round(e.confidence*100)}% confidence; declare it if future edits should require both sides.`}}function F(e,t=p(e),n=E(e)){return(s,i)=>D(t,n,s,i)}var _=/(?:^|\/)(?:locales|i18n)\//i;function T(e){return _.test(e)}function I(e,t){return T(e)&&T(t)?!0:N(e,t)}function N(e,t){if(!e.endsWith(".json")||!t.endsWith(".json"))return!1;let n=e.lastIndexOf("/"),s=t.lastIndexOf("/");if(n<0||s<0)return!1;let i=e.slice(0,n),a=t.slice(0,s);if(i===a)return!1;let l=e.slice(n+1),g=t.slice(s+1);if(l!==g)return!1;let r=i.lastIndexOf("/"),c=a.lastIndexOf("/"),d=r>=0?i.slice(0,r):"",f=c>=0?a.slice(0,c):"";return d===f}function O(e,t){let n=e.lastIndexOf("/"),s=t.lastIndexOf("/");if(e.slice(0,n)!==t.slice(0,s))return!1;let i=e.slice(n+1).split(".")[0],a=t.slice(s+1).split(".")[0];return i!==""&&i===a}function E(e){return(e.config.declaredCouplings??[]).filter(t=>Array.isArray(t.files)&&t.files.length>=2).map(t=>new Set(t.files))}function D(e,t,n,s){return e.get(n)?.has(s)===!0||e.get(s)?.has(n)===!0?!0:t.some(i=>i.has(n)&&i.has(s))}var B=/(?:^|\/)(?:readme|docs?|guides?|adr|architecture|design)(?:\/|$)|\.(?:md|mdx|rst|adoc|txt)$/i,M=/(?:^|\/)(?:\.[a-z0-9-]+rc|config|configs|settings|\.github)(?:\/|$)|(?:^|\/)(?:package\.json|tsconfig(?:\.[^.]+)?\.json|vite\.config\.[cm]?[jt]s|rollup\.config\.[cm]?[jt]s|eslint\.config\.[cm]?[jt]s)$|\.(?:json|ya?ml|toml|ini|env)$/i,z=/(?:^|\/)(?:schemas?|contracts?|migrations?|models?|types?)(?:\/|$)|(?:^|\/)[^/]*(?:schema|contract|migration|model|types?)[^/]*|(?:\.schema)?\.(?:graphql|gql|proto|prisma)$/i,G=/(?:^|\/)(?:scripts?|bin|tools?|tasks?|generators?|codegen|migrations?|seeds?)(?:\/|$)|(?:^|\/)[^/]*(?:generate|codegen|migrate|seed|script)[^/]*\.[cm]?[jt]s$/i,H=/(?:^|\/)(?:models?|entities|domain|state|stores?|reducers?)(?:\/|$)|(?:^|\/)[^/]*(?:model|entity|state|store|reducer|viewmodel)[^/]*\.[^.]+$/i,q=/(?:^|\/)(?:views?|pages?|components?|screens?|routes?|templates?)(?:\/|$)|(?:^|\/)[^/]*(?:view|page|component|screen|template)[^/]*\.[^.]+$|\.(?:vue|svelte|tsx|jsx)$/i,W=new Set(["doc-code","config-code","schema-script","model-view","test-code"]),Z=new Set(["src","lib","app","apps","packages","frontend","backend","examples","python","typescript","javascript","test","tests","spec","index","main","utils","util","types","type","config","docs","doc","package","requirements","ts","tsx","js","jsx","mjs","cjs","vue","py","md","mdx","json","yaml","yml","toml","txt"]);function A(e){let t=e.replace(/\\/g,"/"),n=new Set;return B.test(t)&&n.add("doc"),M.test(t)&&n.add("config"),z.test(t)&&n.add("schema"),G.test(t)&&n.add("script"),H.test(t)&&n.add("model"),q.test(t)&&n.add("view"),u(t)==="test"&&n.add("test"),!n.has("doc")&&!n.has("config")&&n.add("code"),{tags:n,tokens:J(t)}}function k(e,t){let n=e.lastIndexOf("/"),s=t.lastIndexOf("/"),i=n>=0?e.slice(0,n):"",a=s>=0?t.slice(0,s):"";return i!==""&&i===a}function J(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).map(t=>t.toLowerCase()).filter(t=>t.length>=2)}function K(e,t){let n=new Set(t);return[...new Set(e.filter(s=>n.has(s)))].sort()}function U(e){return e.map(t=>t.split("/").pop()?.replace(/\.[^.]+$/,"")||t).join(" + ")}export{ee as a,te as b,w as c,$ as d,F as e};
|
|
2
|
+
//# sourceMappingURL=chunk-QFJ46F6F.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{K as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{K as c}from"./chunk-NRNVMB2R.js";import{h as a,w as u,y as p}from"./chunk-23AD24QZ.js";var g=a("suppression-inventory",{clearGroups:["whole-project"]});function b(t){return g.get(t,()=>y(t))}function y(t){let e={dead:0,stale:0,wrapper:0,passthrough:0,drift:0,extract:0,similar:0,twin:0,uncategorized:0},n=new Map,o=0;for(let r of c(t)){let i=u(t,r);if(!(!i||!i.includes("codebaseiq")))for(let f of i.split(/\r?\n/)){let s=p(f);if(s===null)continue;o+=1,n.set(r,(n.get(r)??0)+1);let d=l(s);e[d]+=1}}for(let r of t.config.suppressions??[])r.expiresAt&&Date.parse(r.expiresAt)<=Date.now()||(o+=1,r.file&&n.set(r.file,(n.get(r.file)??0)+1),e[l(r.check)]+=1);return{total:o,byCategory:e,byFile:n}}function l(t){if(!t)return"uncategorized";let e=t.toLowerCase();return e==="dead-code"||e==="new-dead"?"dead":e.includes("twin")?"twin":e.includes("similar")||e.includes("duplicate")?"similar":e.includes("wrapper")?"wrapper":e.includes("passthrough")?"passthrough":e.includes("drift")?"drift":e.includes("extract")?"extract":e.includes("stale")?"stale":"uncategorized"}export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-QPQWR6CW.js.map
|