scip-query 0.23.0 → 0.26.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 +491 -2
- package/README.md +111 -122
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-PRVFAGTQ.js +2 -0
- package/dist/call-graph-DVPAQV2F.js +2 -0
- package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
- package/dist/chunk-2FSBGL5P.js +2 -0
- package/dist/chunk-2HLAFUCY.js +2 -0
- package/dist/chunk-2IWUT6CJ.js +3 -0
- package/dist/chunk-2KNN7GTQ.js +2 -0
- package/dist/chunk-2LHXRE2B.js +8 -0
- package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
- package/dist/chunk-36SGVCGX.js +2 -0
- package/dist/chunk-3ABBFPTP.js +2 -0
- package/dist/chunk-3IVFU4FD.js +3 -0
- package/dist/chunk-3JIQS44J.js +7 -0
- package/dist/chunk-3ZRB6DNK.js +7 -0
- package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
- package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
- package/dist/chunk-4BP3UBDG.js +2 -0
- package/dist/chunk-4D6RO7G4.js +2 -0
- package/dist/chunk-4FEWQ6RH.js +2 -0
- package/dist/chunk-4IGEOBG7.js +2 -0
- package/dist/chunk-4QZXBUKC.js +2 -0
- package/dist/chunk-4WBDEVX2.js +4 -0
- package/dist/chunk-4WCUBZU3.js +8 -0
- package/dist/chunk-4WTUBQ36.js +40 -0
- package/dist/chunk-4XQ4O6IM.js +3 -0
- package/dist/chunk-55UQAMZO.js +4 -0
- package/dist/chunk-5D2LVK7O.js +125 -0
- package/dist/chunk-5IYJ56TT.js +2 -0
- package/dist/chunk-5PLMJC7Q.js +2 -0
- package/dist/chunk-5TNQJUR2.js +5 -0
- package/dist/chunk-62BDNPMI.js +2 -0
- package/dist/chunk-64DZ5TXR.js +7 -0
- package/dist/chunk-65245JCM.js +2 -0
- package/dist/chunk-6FFVZZL4.js +2 -0
- package/dist/chunk-6KO5JHAR.js +2 -0
- package/dist/chunk-6LRXOOSX.js +2 -0
- package/dist/chunk-6LSEIIF7.js +2 -0
- package/dist/chunk-6YMNWD3H.js +6 -0
- package/dist/chunk-72AD6ZRR.js +5 -0
- package/dist/chunk-73AAKPUC.js +4 -0
- package/dist/chunk-76CZ77DF.js +2 -0
- package/dist/chunk-7VPEEAAG.js +2 -0
- package/dist/chunk-7WTPQ4NX.js +14 -0
- package/dist/chunk-7Y5T6XDP.js +2 -0
- package/dist/chunk-A2IIGFMJ.js +5 -0
- package/dist/chunk-AB5KCTEV.js +2 -0
- package/dist/chunk-AC566WBP.js +6 -0
- package/dist/chunk-AGWFSTXC.js +3 -0
- package/dist/chunk-AOSIYPTA.js +2 -0
- package/dist/chunk-AUVEWPIF.js +2 -0
- package/dist/chunk-B56T42J3.js +25 -0
- package/dist/chunk-BIQEF5NE.js +2 -0
- package/dist/chunk-BL6XJKTA.js +3 -0
- package/dist/chunk-BMKOQJRI.js +2 -0
- package/dist/chunk-BOZ4EXBB.js +3 -0
- package/dist/chunk-BUTWYEPH.js +2 -0
- package/dist/chunk-BZB4QPIP.js +2 -0
- package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
- package/dist/chunk-CFN45HFP.js +2 -0
- package/dist/chunk-CFYMZFXT.js +368 -0
- package/dist/chunk-CN5EH7O3.js +2 -0
- package/dist/chunk-D254DNNQ.js +4 -0
- package/dist/chunk-D3FDISIC.js +2 -0
- package/dist/chunk-D3NX5XIE.js +3 -0
- package/dist/chunk-DA7RPPDF.js +3 -0
- package/dist/chunk-DDMC3FON.js +3 -0
- package/dist/chunk-DIO3FUSG.js +2 -0
- package/dist/chunk-DJ2NNSUK.js +3 -0
- package/dist/chunk-DKYQIM3C.js +18 -0
- package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
- package/dist/chunk-DVFP6PZI.js +2 -0
- package/dist/chunk-E3FDPXZK.js +2 -0
- package/dist/chunk-E7YNJLCB.js +2 -0
- package/dist/chunk-EFGW5JPH.js +2 -0
- package/dist/chunk-EJVTR244.js +13 -0
- package/dist/chunk-EOV7RTRZ.js +2 -0
- package/dist/chunk-ETOIKRHO.js +2 -0
- package/dist/chunk-EYK3ZAO2.js +3 -0
- package/dist/chunk-F2V2LPET.js +52 -0
- package/dist/chunk-F4LUHJTF.js +2 -0
- package/dist/chunk-F4PUT6IT.js +2 -0
- package/dist/chunk-F56GCXXS.js +5 -0
- package/dist/chunk-FC2EVQRM.js +2 -0
- package/dist/chunk-FL7NBMHP.js +3 -0
- package/dist/chunk-FMRN2TRL.js +3 -0
- package/dist/chunk-FVULPZDF.js +20 -0
- package/dist/chunk-GCKCF5FL.js +43 -0
- package/dist/chunk-GH2PYF46.js +2 -0
- package/dist/chunk-GHJAGXIP.js +2 -0
- package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
- package/dist/chunk-GS6KDO4R.js +2 -0
- package/dist/chunk-GUUBXNN7.js +2 -0
- package/dist/chunk-GVWX5T43.js +80 -0
- package/dist/chunk-GZKFETP5.js +2 -0
- package/dist/chunk-H4EQHO6J.js +9 -0
- package/dist/chunk-H73WY2RM.js +2 -0
- package/dist/chunk-H75GSPRV.js +60 -0
- package/dist/chunk-HDR3AHSV.js +61 -0
- package/dist/chunk-HQBSL74Y.js +2 -0
- package/dist/chunk-HRRFKWPZ.js +2 -0
- package/dist/chunk-HXENDJC6.js +2 -0
- package/dist/chunk-IIBAZNSW.js +21 -0
- package/dist/chunk-INLMWEUU.js +12 -0
- package/dist/chunk-IWQPAF4F.js +2 -0
- package/dist/chunk-IZJ6YUKP.js +35 -0
- package/dist/chunk-J2TMAIN5.js +60 -0
- package/dist/chunk-J5FJMODQ.js +142 -0
- package/dist/chunk-J7HZPIO3.js +2 -0
- package/dist/chunk-JEVRKFRL.js +2 -0
- package/dist/chunk-JFXSGAEB.js +30 -0
- package/dist/chunk-JVRTHGFS.js +3 -0
- package/dist/chunk-JYWEX7RR.js +360 -0
- package/dist/chunk-K3YL22N6.js +2 -0
- package/dist/chunk-K4CN7GXK.js +12 -0
- package/dist/chunk-K5TBVXU4.js +30 -0
- package/dist/chunk-KDDIE2DP.js +9 -0
- package/dist/chunk-KHWRRPV4.js +2 -0
- package/dist/chunk-KI6NBKDY.js +14 -0
- package/dist/chunk-KU3QRSTH.js +2 -0
- package/dist/chunk-KZBJWZJB.js +2 -0
- package/dist/chunk-L7GFM3NP.js +3 -0
- package/dist/chunk-LMO6PK3V.js +35 -0
- package/dist/chunk-LN4YXJJU.js +2 -0
- package/dist/chunk-LOVIZBJ4.js +43 -0
- package/dist/chunk-LPCRK4A2.js +11 -0
- package/dist/chunk-MMHZKBFA.js +2 -0
- package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
- package/dist/chunk-N2WN6I3L.js +2 -0
- package/dist/chunk-N3ORQT7L.js +2 -0
- package/dist/chunk-NAZ3RAIW.js +2 -0
- package/dist/chunk-NDUNO5JQ.js +2 -0
- package/dist/chunk-NEIWRNAZ.js +4 -0
- package/dist/chunk-NJJMVD65.js +2 -0
- package/dist/chunk-NLOQOBXI.js +20 -0
- package/dist/chunk-NOLZOVCU.js +2 -0
- package/dist/chunk-NOWINRRN.js +2 -0
- package/dist/chunk-NZAXKGRL.js +16 -0
- package/dist/chunk-O2C4UILI.js +2 -0
- package/dist/chunk-O3RHA6ZT.js +3 -0
- package/dist/chunk-O4UZSPPI.js +3 -0
- package/dist/chunk-OGFV2BUX.js +2 -0
- package/dist/chunk-OZCJXZK6.js +499 -0
- package/dist/chunk-P6ODM7BY.js +2 -0
- package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
- package/dist/chunk-PH52RA7D.js +2 -0
- package/dist/chunk-PKN354TH.js +3 -0
- package/dist/chunk-PWOASWEG.js +11 -0
- package/dist/chunk-QIWXRW72.js +2 -0
- package/dist/chunk-QJRMOK5N.js +2 -0
- package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
- package/dist/chunk-QXEUDXBT.js +3 -0
- package/dist/chunk-QYUVVBMR.js +6 -0
- package/dist/chunk-QZ7KQZRN.js +2 -0
- package/dist/chunk-R6LQBUDH.js +2 -0
- package/dist/chunk-RBS42E55.js +20 -0
- package/dist/chunk-RSJKPCFX.js +26 -0
- package/dist/chunk-S6CZA3MV.js +2 -0
- package/dist/chunk-STMVAHJP.js +2 -0
- package/dist/chunk-SYVPTTVW.js +2 -0
- package/dist/chunk-T3I6NHBH.js +2 -0
- package/dist/chunk-T6DK3ZP7.js +2 -0
- package/dist/chunk-TKD34PHN.js +4 -0
- package/dist/chunk-TNNQFH7W.js +2 -0
- package/dist/chunk-TNV7SSUF.js +2 -0
- package/dist/chunk-TO7ZR3EH.js +8 -0
- package/dist/chunk-TOU3CHK4.js +2 -0
- package/dist/chunk-TRBI4UKT.js +2 -0
- package/dist/chunk-TZCVNCAN.js +4 -0
- package/dist/chunk-U4LZA5LL.js +3 -0
- package/dist/chunk-U5RIG3JP.js +3 -0
- package/dist/chunk-UP5KXN2I.js +2 -0
- package/dist/chunk-UQFR3NDH.js +5 -0
- package/dist/chunk-UXYXF7GV.js +2 -0
- package/dist/chunk-VB3GOKOS.js +2 -0
- package/dist/chunk-VF5JZICY.js +2 -0
- package/dist/chunk-VTY3VK6E.js +2 -0
- package/dist/chunk-VX2O4RIS.js +2 -0
- package/dist/chunk-WKPV2TDZ.js +2 -0
- package/dist/chunk-WOFQ5DTB.js +2 -0
- package/dist/chunk-WS4C6TCK.js +2 -0
- package/dist/chunk-WXU3DGPU.js +2 -0
- package/dist/chunk-X6RMKHJQ.js +81 -0
- package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
- package/dist/chunk-XHTVFLWW.js +2 -0
- package/dist/chunk-XKIDJCIK.js +2 -0
- package/dist/chunk-XTYTYZPT.js +2 -0
- package/dist/chunk-Y2JHHTTA.js +2 -0
- package/dist/chunk-YGVRMGYN.js +4 -0
- package/dist/chunk-YNQCGEQE.js +2 -0
- package/dist/chunk-YOQVEXVE.js +14 -0
- package/dist/chunk-YRT2WLYY.js +2 -0
- package/dist/chunk-YTAP5Y2G.js +2 -0
- package/dist/chunk-YTYWI7VB.js +2 -0
- package/dist/chunk-YULZRALL.js +2 -0
- package/dist/chunk-Z33WQG4Q.js +2 -0
- package/dist/chunk-ZGTYGDMF.js +16 -0
- package/dist/chunk-ZHMRSZFD.js +43 -0
- package/dist/chunk-ZHSP366W.js +10 -0
- package/dist/chunk-ZIBYCYKK.js +7 -0
- package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
- package/dist/chunk-ZO4YXUT6.js +4 -0
- package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
- package/dist/cli-main.js +6 -6
- package/dist/cli.js +1 -1
- package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
- package/dist/code-IL5WH3NZ.js +2 -0
- package/dist/code-result-json-ANTBEDFP.js +4 -0
- package/dist/command-descriptors-HEEMDHTU.js +222 -0
- package/dist/deps-EOWFC6FD.js +2 -0
- package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
- package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
- package/dist/files-K4AI3JUM.js +2 -0
- package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
- package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
- package/dist/hierarchy-6W5NDIFI.js +2 -0
- package/dist/imports-WH365QY4.js +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/members-K3PHMF5S.js +2 -0
- package/dist/methods-E7KVMBX4.js +2 -0
- package/dist/output-continuation-command-BJSY67SN.js +3 -0
- package/dist/output-pagination-UZJ5ACIX.js +24 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-EP24WT4X.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +15 -4
- 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.d.ts +3 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +1 -0
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +3 -3
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +20 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity.d.ts +6 -3
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +1 -7
- package/dist/queries/context.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dead.d.ts +2 -0
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/dependence-slice.d.ts +46 -22
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.d.ts +1 -7
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +29 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +2 -4
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.d.ts +121 -61
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +1 -0
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -3
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +17 -65
- package/dist/queries/index.js +1 -1
- package/dist/queries/locality-candidates.d.ts +4 -4
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.d.ts +2 -6
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +9 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +19 -3
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +22 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +17 -3
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +4 -14
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +4 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/review.d.ts +188 -0
- package/dist/queries/review.js +2 -0
- package/dist/queries/similar-files.d.ts +7 -10
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +19 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice-cohesion.d.ts +205 -0
- package/dist/queries/slice-cohesion.js +2 -0
- package/dist/queries/source-inspection.d.ts +6 -202
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.d.ts +2 -3
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stats.d.ts +1 -0
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +4 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/twin-drift.d.ts +23 -7
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +3 -15
- package/dist/queries/unused-params.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/query-service-fastpath.js +5 -5
- package/dist/query-service-server.js +4 -4
- package/dist/refs-CCBJG7WK.js +2 -0
- package/dist/refs-pagination-DRNLVU4S.js +2 -0
- package/dist/reindex-worker.js +79 -29
- package/dist/reindex.js +45 -45
- package/dist/repository-cache-worker.js +2 -0
- package/dist/runtime.d.ts +8 -8
- package/dist/runtime.js +3 -4
- 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/service-queries-2WAJI7R6.js +6 -0
- package/dist/source-inspection-91U9zdO3.d.ts +341 -0
- package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
- package/dist/stats-G7DIV6VU.js +2 -0
- package/dist/surface-IO55UALI.js +2 -0
- package/dist/system-ZBMSHJXU.js +2 -0
- package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
- package/dist/typescript-indexer.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +3 -3
- package/docs/AGENT_GUIDE.md +19 -128
- package/docs/CLI_JSON_OUTPUT.md +21 -17
- package/docs/COMMAND_REFERENCE.md +34 -49
- package/docs/CURRENT_COMMANDS.md +123 -0
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
- package/docs/DETECTOR_GUIDE.md +55 -12
- package/docs/PRODUCT_VISION.md +135 -0
- package/docs/PROPERTY_TESTING.md +73 -0
- package/docs/REVIEW.md +76 -0
- package/docs/SKILLS.md +51 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
- package/docs/accuracy-audit-checklist.md +70 -13
- package/docs/analyzer-inventory.md +2 -2
- package/docs/locality-analyzer-design.md +9 -9
- package/package.json +18 -80
- package/scripts/evidence-product-contract.mjs +7 -3
- package/scripts/record-review-coverage.mjs +118 -0
- package/scripts/scip-windows-provenance.mjs +29 -19
- package/skills/scip-architecture-review/SKILL.md +57 -0
- package/skills/scip-architecture-review/agents/openai.yaml +4 -0
- package/skills/scip-architecture-review/references/design-checks.md +17 -0
- package/skills/scip-explore/SKILL.md +15 -59
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-explore/references/external-evidence.md +2 -2
- package/skills/scip-explore/references/information-model.md +26 -29
- package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
- package/skills/scip-integrity-audit/SKILL.md +53 -181
- package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
- package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
- package/skills/scip-plan/SKILL.md +39 -65
- package/skills/scip-plan/agents/openai.yaml +2 -2
- package/skills/scip-query/SKILL.md +28 -81
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-query/references/command-guide.md +169 -0
- package/skills/scip-setup/SKILL.md +4 -2
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/by-kind-XI2CSWEY.js +0 -2
- package/dist/call-graph-UONR6JR5.js +0 -2
- package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
- package/dist/chunk-26CT72HM.js +0 -2
- package/dist/chunk-2E7CX53V.js +0 -2
- package/dist/chunk-2GRUZAQF.js +0 -43
- package/dist/chunk-2LDBDR6J.js +0 -29
- package/dist/chunk-2OOY75BW.js +0 -2
- package/dist/chunk-2R3V3PSD.js +0 -4
- package/dist/chunk-2WC2OEDO.js +0 -4
- package/dist/chunk-35NLDRZC.js +0 -2
- package/dist/chunk-3AF4TUFK.js +0 -3
- package/dist/chunk-3D3QG236.js +0 -2
- package/dist/chunk-3FHOF22C.js +0 -21
- package/dist/chunk-3JKSW6LJ.js +0 -2
- package/dist/chunk-3L2ZBPEX.js +0 -133
- package/dist/chunk-3PJABJSU.js +0 -2
- package/dist/chunk-3SVF22I5.js +0 -2
- package/dist/chunk-3WR4E3A3.js +0 -3
- package/dist/chunk-4FTZ4P5G.js +0 -2
- package/dist/chunk-4UX2F3JX.js +0 -2
- package/dist/chunk-4WNW27SX.js +0 -2
- package/dist/chunk-5ENOG4VP.js +0 -61
- package/dist/chunk-64BFSI5I.js +0 -2
- package/dist/chunk-66DVSJQG.js +0 -455
- package/dist/chunk-6HFCYNYE.js +0 -9
- package/dist/chunk-6PQNKL3G.js +0 -3
- package/dist/chunk-6V5CNXL6.js +0 -2
- package/dist/chunk-6VVV4WRR.js +0 -4
- package/dist/chunk-7BWFZPPZ.js +0 -2
- package/dist/chunk-7CYG22FH.js +0 -2
- package/dist/chunk-7F45LJKI.js +0 -2
- package/dist/chunk-7IWV2EG3.js +0 -3
- package/dist/chunk-7KCZELVM.js +0 -2
- package/dist/chunk-AFHTBORT.js +0 -2
- package/dist/chunk-AVRYW5OZ.js +0 -2
- package/dist/chunk-B3X6KU75.js +0 -2
- package/dist/chunk-B5D7QPBE.js +0 -4
- package/dist/chunk-BBCIS4DX.js +0 -16
- package/dist/chunk-BDUVI7TO.js +0 -3
- package/dist/chunk-BE7ZZTMC.js +0 -2
- package/dist/chunk-BHVUJOCQ.js +0 -3
- package/dist/chunk-BJT7LSPK.js +0 -3
- package/dist/chunk-BKVWUP7Y.js +0 -2
- package/dist/chunk-BQGB4HBD.js +0 -2
- package/dist/chunk-BRV7PIFF.js +0 -2
- package/dist/chunk-CEEZJXEF.js +0 -2
- package/dist/chunk-CIYLO6SI.js +0 -7
- package/dist/chunk-CJZXN4NU.js +0 -2
- package/dist/chunk-CNO7TOKL.js +0 -2
- package/dist/chunk-COF23M5F.js +0 -2
- package/dist/chunk-CWFP7GM5.js +0 -2
- package/dist/chunk-D2DHWI3D.js +0 -2
- package/dist/chunk-D4N5SQ2M.js +0 -4
- package/dist/chunk-DBRSYFXR.js +0 -2
- package/dist/chunk-DHUIOLDT.js +0 -2
- package/dist/chunk-DIRJWYBM.js +0 -6
- package/dist/chunk-DIUFNHRJ.js +0 -35
- package/dist/chunk-DRENNWRG.js +0 -2
- package/dist/chunk-DTZCKZEU.js +0 -4
- package/dist/chunk-DULC3QFP.js +0 -5
- package/dist/chunk-DYGHBZ2N.js +0 -16
- package/dist/chunk-E5R6AQ73.js +0 -40
- package/dist/chunk-E73UNJTF.js +0 -38
- package/dist/chunk-EKV5HX33.js +0 -2
- package/dist/chunk-EQHFIL6T.js +0 -3
- package/dist/chunk-ESIQ66Z7.js +0 -2
- package/dist/chunk-EVFUMY4R.js +0 -3
- package/dist/chunk-F7DY272B.js +0 -2
- package/dist/chunk-FBN2FGXG.js +0 -2
- package/dist/chunk-FDLOBR6P.js +0 -4
- package/dist/chunk-FESCRNVV.js +0 -5
- package/dist/chunk-FFRKR4EQ.js +0 -2
- package/dist/chunk-FGA2U4OR.js +0 -8
- package/dist/chunk-FIQRSHVM.js +0 -2
- package/dist/chunk-FPYLNQPT.js +0 -2
- package/dist/chunk-FRUSVINH.js +0 -2
- package/dist/chunk-GSP44ENC.js +0 -2
- package/dist/chunk-GUFSG5TX.js +0 -2
- package/dist/chunk-GYIZ4NXB.js +0 -2
- package/dist/chunk-GZIUDL6G.js +0 -2
- package/dist/chunk-H5EXS3HM.js +0 -2
- package/dist/chunk-HCXEQRFF.js +0 -18
- package/dist/chunk-HEHOQQKH.js +0 -2
- package/dist/chunk-HKGFPJ4T.js +0 -4
- package/dist/chunk-HLZTEXRA.js +0 -2
- package/dist/chunk-HOENASQM.js +0 -3
- package/dist/chunk-HVF5VBG6.js +0 -2
- package/dist/chunk-I55I7XXP.js +0 -2
- package/dist/chunk-IDFEUFKS.js +0 -2
- package/dist/chunk-IHGQTTVW.js +0 -2
- package/dist/chunk-IICPE7B2.js +0 -20
- package/dist/chunk-IL676XCC.js +0 -18
- package/dist/chunk-IW5XQG5G.js +0 -2
- package/dist/chunk-IZDPJ2QI.js +0 -2
- package/dist/chunk-J66VOFW6.js +0 -5
- package/dist/chunk-JFMEXGFE.js +0 -2
- package/dist/chunk-JGKUET5J.js +0 -3
- package/dist/chunk-JS4PGXMV.js +0 -3
- package/dist/chunk-JWTGMPIT.js +0 -80
- package/dist/chunk-JYR66JN5.js +0 -5
- package/dist/chunk-KFOYCQAJ.js +0 -9
- package/dist/chunk-KLFEXGQA.js +0 -2
- package/dist/chunk-KMVGRIO2.js +0 -2
- package/dist/chunk-KYSDI3GE.js +0 -5
- package/dist/chunk-L6PJPETJ.js +0 -29
- package/dist/chunk-LDVT66YM.js +0 -2
- package/dist/chunk-LEECKFCJ.js +0 -2
- package/dist/chunk-LMZ5PRUV.js +0 -2
- package/dist/chunk-LQRQN2XA.js +0 -2
- package/dist/chunk-LXABEJX3.js +0 -2
- package/dist/chunk-MNV5FSBW.js +0 -3
- package/dist/chunk-MPQ4OTBM.js +0 -2
- package/dist/chunk-MTDBHTSF.js +0 -2
- package/dist/chunk-MV3CDXPI.js +0 -38
- package/dist/chunk-MWN53KRN.js +0 -60
- package/dist/chunk-MXNGIEPU.js +0 -3
- package/dist/chunk-N2ZSIIGR.js +0 -117
- package/dist/chunk-N5B2NILC.js +0 -5
- package/dist/chunk-NJITK2GP.js +0 -2
- package/dist/chunk-NOGJXYFO.js +0 -2
- package/dist/chunk-NOYBFVJA.js +0 -554
- package/dist/chunk-NWQXSFFU.js +0 -3
- package/dist/chunk-ODDUPDP7.js +0 -13
- package/dist/chunk-OLIWTZI3.js +0 -3
- package/dist/chunk-OLNV6I6U.js +0 -2
- package/dist/chunk-OR2E3AGZ.js +0 -2
- package/dist/chunk-OSR2GEHQ.js +0 -2
- package/dist/chunk-OSSESPDX.js +0 -3
- package/dist/chunk-OWOOWNJ5.js +0 -7
- package/dist/chunk-P42EIXTA.js +0 -2
- package/dist/chunk-PJFGPYTU.js +0 -2
- package/dist/chunk-PP7KNN7L.js +0 -2
- package/dist/chunk-PU7T5QYQ.js +0 -2
- package/dist/chunk-PWWAJSKV.js +0 -74
- package/dist/chunk-PZL5T7SU.js +0 -73
- package/dist/chunk-QBE3YX64.js +0 -23
- package/dist/chunk-QGVTFRY2.js +0 -7
- package/dist/chunk-QOJONDS7.js +0 -2
- package/dist/chunk-QU5XRYB5.js +0 -4
- package/dist/chunk-QUU5OBVK.js +0 -11
- package/dist/chunk-RBLQNW26.js +0 -20
- package/dist/chunk-RTQ7NEKG.js +0 -81
- package/dist/chunk-SQXRS7BG.js +0 -4
- package/dist/chunk-SSK6LDPC.js +0 -2
- package/dist/chunk-SZHGTCPP.js +0 -7
- package/dist/chunk-T4N4P2K5.js +0 -16
- package/dist/chunk-TA3QKLLU.js +0 -2
- package/dist/chunk-TEBQMNVI.js +0 -43
- package/dist/chunk-TPFHAQ2G.js +0 -2
- package/dist/chunk-TQPCBMWT.js +0 -5
- package/dist/chunk-TQZV7KV4.js +0 -2
- package/dist/chunk-TRNAEQ6P.js +0 -3
- package/dist/chunk-TY7CRN3Z.js +0 -2
- package/dist/chunk-UHFYCMZO.js +0 -35
- package/dist/chunk-UICY4GTQ.js +0 -7
- package/dist/chunk-UVGEWT4Y.js +0 -26
- package/dist/chunk-UXW33INU.js +0 -29
- package/dist/chunk-VMPRET3I.js +0 -5
- package/dist/chunk-VNLGKHS6.js +0 -6
- package/dist/chunk-VQILFTEH.js +0 -2
- package/dist/chunk-VUPHCS7Y.js +0 -57
- package/dist/chunk-VVZSBTSU.js +0 -23
- package/dist/chunk-VZRNID6A.js +0 -2
- package/dist/chunk-W5OXRYGE.js +0 -7
- package/dist/chunk-W6STWDQI.js +0 -57
- package/dist/chunk-W7CXK74K.js +0 -2
- package/dist/chunk-WB3WYIRE.js +0 -4
- package/dist/chunk-WDNVY4E7.js +0 -20
- package/dist/chunk-WK46TNUM.js +0 -3
- package/dist/chunk-WNTFFKAX.js +0 -12
- package/dist/chunk-WOIKCX6A.js +0 -2
- package/dist/chunk-WUN6KBHV.js +0 -2
- package/dist/chunk-WYCTJDVR.js +0 -2
- package/dist/chunk-WYPL7GF7.js +0 -2
- package/dist/chunk-XDAUYDFT.js +0 -2
- package/dist/chunk-XDQMU3BT.js +0 -2
- package/dist/chunk-XFA4SSO3.js +0 -3
- package/dist/chunk-XGZEP6GR.js +0 -8
- package/dist/chunk-XPDPNWTQ.js +0 -368
- package/dist/chunk-XRYABF57.js +0 -8
- package/dist/chunk-YBGKCQIS.js +0 -2
- package/dist/chunk-YEN6CYC7.js +0 -16
- package/dist/chunk-YF5IB2LF.js +0 -2
- package/dist/chunk-YI2AWIHC.js +0 -3
- package/dist/chunk-YPWBKGFU.js +0 -2
- package/dist/chunk-YPWHBBIS.js +0 -2
- package/dist/chunk-YSH6U3L4.js +0 -3
- package/dist/chunk-YU5DZUZI.js +0 -10
- package/dist/chunk-YWO5DDRC.js +0 -16
- package/dist/chunk-Z4CDXYNQ.js +0 -2
- package/dist/chunk-ZF5KHH7C.js +0 -2
- package/dist/chunk-ZOHS7AQV.js +0 -21
- package/dist/chunk-ZTI4SBFV.js +0 -3
- package/dist/code-MI6F2TTU.js +0 -2
- package/dist/code-result-json-FXALY4HE.js +0 -2
- package/dist/command-descriptors-P34VABY5.js +0 -343
- package/dist/dataflow-4KEMJPC6.js +0 -2
- package/dist/dependence-slice-R7FPWD5M.js +0 -2
- package/dist/deps-7EMQUYUT.js +0 -2
- package/dist/direct-navigation-6YO234F2.js +0 -3
- package/dist/entry-map-KOOLR26E.js +0 -2
- package/dist/files-OPIPJIGZ.js +0 -2
- package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
- package/dist/hierarchy-QPD2CAER.js +0 -2
- package/dist/imports-M6HUXRXC.js +0 -2
- package/dist/members-I5MEFOCT.js +0 -2
- package/dist/methods-5JYGGHXA.js +0 -2
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
- package/dist/output-continuation-command-UPQAAKBP.js +0 -3
- package/dist/output-pagination-3OFL2MJV.js +0 -19
- package/dist/project-reindex-UKKQ5PLS.js +0 -3
- package/dist/queries/anchors.d.ts +0 -123
- package/dist/queries/anchors.js +0 -2
- package/dist/queries/complexity-hotspots.d.ts +0 -40
- package/dist/queries/complexity-hotspots.js +0 -2
- package/dist/queries/convergence.d.ts +0 -33
- package/dist/queries/convergence.js +0 -2
- package/dist/queries/dataflow.d.ts +0 -77
- package/dist/queries/dataflow.js +0 -2
- package/dist/queries/deep-chains.d.ts +0 -5
- package/dist/queries/deep-chains.js +0 -2
- package/dist/queries/extract-candidates.d.ts +0 -52
- package/dist/queries/extract-candidates.js +0 -2
- package/dist/queries/isolated.d.ts +0 -24
- package/dist/queries/isolated.js +0 -2
- package/dist/queries/plan-context.d.ts +0 -33
- package/dist/queries/plan-context.js +0 -2
- package/dist/queries/reference-neighborhood.d.ts +0 -4
- package/dist/queries/reference-neighborhood.js +0 -2
- package/dist/queries/reference-reachability.d.ts +0 -48
- package/dist/queries/reference-reachability.js +0 -2
- package/dist/queries/self-audit.d.ts +0 -63
- package/dist/queries/self-audit.js +0 -2
- package/dist/queries/similar-chains.d.ts +0 -48
- package/dist/queries/similar-chains.js +0 -2
- package/dist/queries/slice.d.ts +0 -4
- package/dist/queries/slice.js +0 -2
- package/dist/queries/stale-abstractions.d.ts +0 -72
- package/dist/queries/stale-abstractions.js +0 -2
- package/dist/queries/system-map.d.ts +0 -449
- package/dist/queries/system-map.js +0 -2
- package/dist/queries/trace.js +0 -2
- package/dist/queries/twin-ab.d.ts +0 -66
- package/dist/queries/twin-ab.js +0 -2
- package/dist/queries/value-flow.d.ts +0 -43
- package/dist/queries/value-flow.js +0 -2
- package/dist/queries/wrapper-candidates.d.ts +0 -34
- package/dist/queries/wrapper-candidates.js +0 -2
- package/dist/refs-PSU4JZZW.js +0 -2
- package/dist/refs-pagination-JG6CJMRC.js +0 -2
- package/dist/slice-HYRATV64.js +0 -2
- package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
- package/dist/stats-OOJ74B32.js +0 -2
- package/dist/surface-VTGDYWF5.js +0 -2
- package/dist/symbol-resolution-WD5EU5JE.js +0 -2
- package/dist/system-LRQNFOR2.js +0 -2
- package/dist/trace-F4B6OLL4.js +0 -2
- package/dist/value-flow-VRPZY72V.js +0 -2
- package/skills/concrete-plan/SKILL.md +0 -8
- package/skills/concrete-plan/agents/openai.yaml +0 -4
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{a as Mt,b as _n,c as Nt,d as wt}from"./chunk-D3NX5XIE.js";import{a as F}from"./chunk-VTY3VK6E.js";import{a as Lt,b as Rt}from"./chunk-2FSBGL5P.js";import{a as ne}from"./chunk-3TNRNKAT.js";import{a as sn,b as ln,c as It,d as We,e as Dn,f as Te,g as An,h as $n}from"./chunk-YGVRMGYN.js";import{a as Ct}from"./chunk-GMVSHUKZ.js";import{b as On}from"./chunk-N2WN6I3L.js";import{a as bt,b as Bn,c as ht,d as St,h as vt,i as Et}from"./chunk-F2V2LPET.js";import{b as xt}from"./chunk-YRT2WLYY.js";import{d as U}from"./chunk-BOJ5SVE2.js";import{b as yt}from"./chunk-6LSEIIF7.js";import{C as ft,a as Ne,b as we,c as dt,d as an,e as Tn,h as ve,q as He,r as Ue,s as pt,t as Fn,u as mt,v as Pn,w as gt,x as kn}from"./chunk-4WTUBQ36.js";import{a as qe}from"./chunk-NZAXKGRL.js";import{b as ut}from"./chunk-YNQCGEQE.js";import{b as wn}from"./chunk-FMRN2TRL.js";import{f as st,h as lt}from"./chunk-4WCUBZU3.js";import{c as rn}from"./chunk-E3FDPXZK.js";import{d as ct}from"./chunk-72AD6ZRR.js";import{F as Nn,d as $,k as V,u as at,x as Se}from"./chunk-5D2LVK7O.js";import{g as j,s as on,u as it}from"./chunk-7WTPQ4NX.js";import{G as he,H as Ke,O as ee,S as Rn,T as Mn,a as tt,b as ot,q as rt}from"./chunk-FVULPZDF.js";import{d as be}from"./chunk-A2IIGFMJ.js";import{d as Ln}from"./chunk-5TNQJUR2.js";import{createHash as vd}from"crypto";var ie=["execution","runtime","dataflow","state","temporal","contract","identity","ownership","dependencies"];function Fe(e){return e.includes("symbol-anchor")?0:e.includes("literal-owner")?1:e.some(n=>n.startsWith("boundary-import:"))?2:e.includes("reference-owner")?3:4}function Tt(e,n){return Fe(e.origins)-Fe(n.origins)||e.depth-n.depth||e.startLine-n.startLine||e.shortName.localeCompare(n.shortName)}var pr=16,mr=4,gr=3e3,fr=800,yr=new Set(["assignment","const_declaration","const_item","field_declaration","lexical_declaration","local_declaration_statement","local_variable_declaration","static_item","variable_declaration"]);function Ot(e,n,t={}){let o=t.maxSteps??pr;if(!Number.isSafeInteger(o)||o<=0)throw new RangeError(`maxSteps must be a positive safe integer; received ${o}`);let r=Ur(t.focusLocations??[]),i=br(n,r,o),{candidateNodeIds:a,selectedNodeIds:s,selectedNodeIdSet:l}=i,d=new Map(s.map(y=>[y,ri(y)])),{steps:c,matchedFocusLocations:u}=vr(e,n,i,r,d),p=Er(n,i,d),m=new Map(p.map(y=>[y.edgeId,y.id])),f=xr(n,d,m),g=c.flatMap(y=>y.location?[`${y.location.file}:${y.location.line+1}`]:[]);return{status:Cr(n,c,f),steps:c,transitions:p,paths:f,coverage:{candidateNodes:a.length,returnedNodes:s.length,omittedNodeIds:a.filter(y=>!l.has(y)),returnedTransitions:p.length,withheldStatements:c.reduce((y,b)=>y+(b.behavior?.coverage.omittedStatements??0),0),requestedFocusLocations:r,matchedFocusLocations:r.filter(y=>u.has(Pe(y.file,y.line))),unmatchedFocusLocations:r.filter(y=>!u.has(Pe(y.file,y.line)))},behaviorCommand:At(g,"behavior"),exactSourceCommand:At(g,"source")}}function br(e,n,t){let o=new Map(e.nodes.map(S=>[S.id,S])),r=new Map(e.edges.map(S=>[S.id,S])),i=ue(e.paths.flatMap(S=>S.nodeIds)),a=ue(e.anchors.filter(S=>S.status==="matched").flatMap(S=>S.nodeIds)),s=e.nodes.filter(S=>S.disposition==="emitted"&&S.attributes.upstreamCausalPath===!0).sort((S,O)=>Number(O.attributes.upstreamCausalDistance??0)-Number(S.attributes.upstreamCausalDistance??0)||S.id.localeCompare(O.id)).map(S=>S.id),l=new Set(s),d=Math.max(0,t-a.length),u=Ir(e,a,n,d).slice(0,d),p=new Set(u),m=new Set(u),f=new Set([...i,...s,...a]),g=e.edges.filter(S=>S.disposition==="emitted"&&S.kind!=="structural-membership"),y=e.edges.filter(S=>S.disposition!=="excluded"&&S.disposition!=="unsupported"&&S.kind!=="structural-membership"),b=new Set([...e.paths.flatMap(S=>S.edgeIds),...g.filter(S=>l.has(S.fromNodeId)&&l.has(S.toNodeId)).map(S=>S.id)]),h=e.paths.some(S=>S.edgeIds.length>0),x=hr(e,r,a,u),M=ti(a,y,o,mr),T=ue(g.filter(S=>S.kind==="call"&&a.includes(S.fromNodeId)).map(S=>S.toNodeId)),E=new Set(ue([...M,...h?[]:T]));for(let S of E)x.add(S);let P=ue(g.flatMap(S=>f.has(S.fromNodeId)||f.has(S.toNodeId)?[S.fromNodeId,S.toNodeId]:[])),v=e.nodes.filter(S=>S.disposition==="emitted"&&S.kind!=="structural-region"&&g.some(O=>O.fromNodeId===S.id||O.toNodeId===S.id)).map(S=>S.id),z=ue([...s,...i,...a,...u,...E,...P,...v]).filter(S=>o.has(S)),X=Sr(z,t,h,f,p,E),I=new Set(X);return{nodeById:o,edgeById:r,knownCausalEdges:y,candidateNodeIds:z,selectedNodeIds:X,selectedNodeIdSet:I,connectorNodeIds:new Set([...i,...s]),expansiveNodeIds:x,supplementalNodeIds:E,completeOutlineNodeIds:m,pathEdgeIds:b}}function hr(e,n,t,o){let r=new Set(t);for(let i of o)r.add(i);if(ai(e,n,r),e.paths.every(i=>i.nodeIds.length===0))for(let i of e.anchors)for(let a of i.nodeIds)r.add(a);return r}function Sr(e,n,t,o,r,i){let a=[];for(let s of e)t&&!o.has(s)&&!r.has(s)&&!i.has(s)||a.length>=n&&!o.has(s)||a.push(s);return a}function vr(e,n,t,o,r){let{connectorNodeIds:i,selectedNodeIds:a,nodeById:s,knownCausalEdges:l,pathEdgeIds:d,expansiveNodeIds:c,supplementalNodeIds:u,completeOutlineNodeIds:p}=t,m=new Set,f=new Set(n.anchors.flatMap(y=>y.nodeIds));return{steps:a.map((y,b)=>{let h=s.get(y),x=Hr(h,o);for(let M of x)m.add(Pe(h.location.file,M));return{id:r.get(y),nodeId:y,order:b,role:f.has(y)?"anchor":i.has(y)?"connector":"junction",kind:h.kind,label:h.label,location:h.location,behavior:Lr(e,h,f.has(y),[...new Set([...x,..._r(e,h,l,s,d,c)])],x,c.has(h.id)&&(x.length===0||f.has(h.id)),u.has(h.id),p.has(h.id)&&x.length===0)}}),matchedFocusLocations:m}}function Er(e,n,t){let{edgeById:o,knownCausalEdges:r,selectedNodeIdSet:i}=n,a=new Map;for(let d of e.paths)for(let c=0;c<d.edgeIds.length;c+=1){let u=o.get(d.edgeIds[c]),p=d.nodeIds[c],m=d.nodeIds[c+1];!u||!p||!m||a.set(u.id,u.fromNodeId===p&&u.toNodeId===m?"forward":"reverse")}return r.filter(d=>i.has(d.fromNodeId)&&i.has(d.toNodeId)).sort((d,c)=>oi(d,c,e)).map((d,c)=>({id:ii(d.id),edgeId:d.id,order:c,kind:d.kind,fromStepId:t.get(d.fromNodeId),toStepId:t.get(d.toNodeId),directed:!0,pathTraversal:a.get(d.id)??"adjacent",evidence:d.evidence}))}function xr(e,n,t){return e.paths.map(r=>({id:r.id,status:r.status,stepIds:r.nodeIds.flatMap(i=>{let a=n.get(i);return a?[a]:[]}),transitionIds:r.edgeIds.flatMap(i=>{let a=t.get(i);return a?[a]:[]})}))}function Cr(e,n,t){return n.length===0?"unavailable":e.anchors.some(o=>o.status==="ambiguous")?"ambiguous":t.some(o=>o.status==="partial")?"partial":"connected"}function Ir(e,n,t,o){if(o<=0||t.length===0)return[];let r=new Set(n),i=new Set(t.map(a=>Pe(a.file,a.line)));return ue(e.edges.filter(a=>a.disposition!=="excluded"&&a.disposition!=="unsupported"&&["call","runtime-boundary"].includes(a.kind)&&r.has(a.fromNodeId)&&a.evidence.some(s=>!["candidate","unknown"].includes(s.strength)&&s.location&&i.has(Pe(s.location.file,s.location.line)))).sort((a,s)=>{let l=a.evidence.find(c=>c.location)?.location,d=s.evidence.find(c=>c.location)?.location;return(l?.file??"").localeCompare(d?.file??"")||(l?.line??Number.MAX_SAFE_INTEGER)-(d?.line??Number.MAX_SAFE_INTEGER)||a.id.localeCompare(s.id)}).map(a=>a.toNodeId)).slice(0,o)}function _t(e){return e.location!=null&&["symbol","source-construct","runtime-boundary-participant"].includes(e.kind)}function Lr(e,n,t,o,r,i,a,s){if(!_t(n))return null;let{sourceLines:l,range:d,inRangeFocusLines:c,outline:u,causalOutline:p,connectorSlice:m}=Mr(e,n,o,i),f=l.slice(d.startLine,d.endLine+1).join(`
|
|
2
|
+
`).length,g=Tr(e,n.location.file,d,l),y=M=>Pr(e,n,d.startLine,d.endLine,r.filter(T=>T>=d.startLine&&T<=d.endLine),M),b=Nr(n,a,f),h=t&&(c.length===0||b),x=Rr(u,m,s||h,b,g,p?.outlineCharacters??f);return y(x??Fr(e,n.location.file,d,l,n.label))}function Rr(e,n,t,o,r,i){return e&&t?Ft(e):!t&&!o&&wr(n,r,i)?n:e?Ft(e):null}function Mr(e,n,t,o){let r=n.location.endLine??n.location.line,i=be(e,n.location.file),a=t.length>0?t:[n.location.line],s=n.kind==="runtime-boundary-participant"?We(e,n.location.file,0,Math.max(0,i.length-1),[n.location.line]):We(e,n.location.file,n.location.line,r,a),l=t.filter(p=>p>=s.startLine&&p<=s.endLine),d=sn(e,n.location.file,s.startLine,s.endLine,l),c=d??(l.length>0?sn(e,n.location.file,s.startLine,s.endLine,l,{requireSavings:!1}):null),u=l.length>0?Jr(e,n,s.startLine,s.endLine,l,c,o):null;return{sourceLines:i,range:s,inRangeFocusLines:l,outline:d,causalOutline:c,connectorSlice:u}}function Nr(e,n,t){return(n||e.kind==="runtime-boundary-participant"||e.anchorIds.length>0)&&t<=gr}function wr(e,n,t){return e!==null&&!n&&e.renderedCharacters<t}function Tr(e,n,t,o){let r=Te(e,n,t.startLine,t.endLine);return o.slice(t.startLine,t.endLine+1).some((i,a)=>i.length>fr&&(r.get(t.startLine+a)??[]).some(s=>["binding","branch","loop","call","return","throw","mutation"].includes(s)))}function Fr(e,n,t,o,r){let i=o.slice(t.startLine,t.endLine+1),a=i.join(`
|
|
3
|
+
`),s=Te(e,n,t.startLine,t.endLine);return{kind:"source",constructKind:"source construct",signature:i.find(l=>l.trim().length>0)?.trim()??r,lines:i.map((l,d)=>({line:t.startLine+d,endLine:t.startLine+d,depth:0,signals:s.get(t.startLine+d)??[],text:l,copied:!0})),coverage:{sourceStatements:i.length,representedStatements:i.length,copiedStatements:i.length,omittedStatements:0},rawCharacters:a.length,renderedCharacters:a.length}}function Pr(e,n,t,o,r,i){if(!n.location)return i;let a=Fn(e,n.location.file,t,o);if(!a.available)return i;let s=kr(e,n.location.file,t,o,r,a.targets),l=Dr(e,s),d=[...new Map([...s,...l].map(p=>[p.definition.symbol,p])).values()].sort((p,m)=>p.definition.relativePath.localeCompare(m.definition.relativePath)||p.definition.startLine-m.definition.startLine||p.definition.symbol.localeCompare(m.definition.symbol)),c=[],u=[];for(let{definition:p,kind:m}of d){let f=$r(e,{definition:p,kind:m});"reason"in f?u.push(f):c.push(f)}return{...i,...c.length===0?{}:{supportingDeclarations:c},...u.length===0?{}:{omittedSupportingDeclarations:u}}}function kr(e,n,t,o,r,i){let a=Te(e,n,t,o),s=new Set(r);for(let l of r){let d=Gn(e,n,l,o)[0];d!==void 0&&s.add(d)}return[...new Map(i.flatMap(l=>{let d=Br(e,n,t,o,r,a,s,l);return d?[[d.definition.symbol,d]]:[]})).values()].sort((l,d)=>l.definition.relativePath.localeCompare(d.definition.relativePath)||l.definition.startLine-d.definition.startLine||l.definition.symbol.localeCompare(d.definition.symbol))}function Gt(e,n,t,o){let r=e.relativePath===n&&e.startLine<=o&&e.endLine>=t;return!e.isTypeLike&&!r}function Br(e,n,t,o,r,i,a,s){let l=s.definition;if(!Gt(l,n,t,o))return null;let d=kn(e,l),c=r.length>0&&d&&i.get(s.sourceLine)?.includes("return"),u=d&&a.has(s.sourceLine);return d&&!c&&!u?null:{definition:l,kind:c?"return-value-transformer":u?"focused-causal-target":"compiler-referenced-declaration"}}function Dr(e,n){let t=[],o=n.filter(({kind:s})=>s!=="compiler-referenced-declaration").map(({definition:s})=>({owner:s,depth:1})),r=new Set,i=new Set(n.map(({definition:s})=>s.symbol)),a=(s,l,d,c)=>{for(let u of d){let p=Ar(e,s,u,c);if(!p)continue;let{definition:m}=p;i.has(m.symbol)||(i.add(m.symbol),t.push(p)),p.kind==="focused-causal-target"&&l<2&&o.push({owner:m,depth:l+1})}};for(;o.length>0;){let s=o.shift();if(!s||r.has(s.owner.symbol))continue;r.add(s.owner.symbol);let{owner:l,depth:d}=s,c=Fn(e,l.relativePath,l.startLine,l.endLine);if(!c.available)continue;let u=Te(e,l.relativePath,l.startLine,l.endLine);a(l,d,c.targets,u)}return t}function Ar(e,n,t,o){let r=t.definition;if(!Gt(r,n.relativePath,n.startLine,n.endLine))return null;let i=kn(e,r),a=i&&Gn(e,n.relativePath,t.sourceLine,n.endLine).some(l=>(o.get(l)??[]).some(d=>["branch","return","throw"].includes(d))),s=i&&((o.get(t.sourceLine)??[]).some(l=>["branch","return","throw"].includes(l))||a);return i&&!s?null:{definition:r,kind:i?"focused-causal-target":"compiler-referenced-declaration"}}function $r(e,{definition:n,kind:t}){let o=t==="compiler-referenced-declaration"?Or(e,n.relativePath,n.startLine,n.endLine):{startLine:n.startLine,endLine:n.endLine},r=be(e,n.relativePath).slice(o.startLine,o.endLine+1).join(`
|
|
4
|
+
`),i=t==="compiler-referenced-declaration"?null:sn(e,n.relativePath,n.startLine,n.endLine,[]),a=i?[i.signature,...i.lines.map(u=>`${u.line+1}${u.signals.length>0?`[${u.signals.join(",")}]`:""} ${u.text}`)].join(" | "):null,s=a&&a.length<r.length?a:r,l={symbol:n.symbol,label:n.leaf,file:n.relativePath,line:o.startLine,endLine:o.endLine},d=t==="compiler-referenced-declaration"?1e3:8e3,c=t==="compiler-referenced-declaration"?12:120;return s.length>d||o.endLine-o.startLine>c?{...l,reason:"source-too-large"}:{kind:t,...l,text:s}}function Or(e,n,t,o){let r=ee(e,n);if(!r)return{startLine:t,endLine:o};let i=[];jt(r.rootNode,s=>{yr.has(s.type)&&s.startPosition.row<=t&&s.endPosition.row>=o&&i.push(s)});let a=i.sort((s,l)=>s.endPosition.row-s.startPosition.row-(l.endPosition.row-l.startPosition.row)||s.endIndex-s.startIndex-(l.endIndex-l.startIndex))[0];return a?{startLine:a.startPosition.row,endLine:a.endPosition.row}:{startLine:t,endLine:o}}function jt(e,n){n(e);for(let t of e.namedChildren)jt(t,n)}function Ft(e){return{kind:"outline",constructKind:e.constructKind,signature:e.signature,lines:e.lines,coverage:e.coverage,rawCharacters:e.rawCharacters,renderedCharacters:e.outlineCharacters}}function _r(e,n,t,o,r,i){if(!_t(n))return[];let a=new Set,s=new Set(j(e,n.location.file)?.callSites.map(l=>l.line)??[]);n.kind==="runtime-boundary-participant"&&a.add(n.location.line),i.has(n.id)&&Gr(e,n.location).forEach(l=>a.add(l));for(let l of t){if(l.fromNodeId!==n.id&&l.toNodeId!==n.id)continue;let d=o.get(l.fromNodeId===n.id?l.toNodeId:l.fromNodeId);jr(n,l,d,r,i)&&Kr(e,n.location,l,d,s).forEach(c=>a.add(c))}return[...a].sort((l,d)=>l-d)}function Gr(e,n){return vt(e,{files:[n.file]}).filter(t=>t.source.startLine>=n.line&&t.source.startLine<=(n.endLine??n.line)).map(t=>t.source.startLine)}function jr(e,n,t,o,r){let i=r.has(e.id)&&["call","reference","runtime-boundary"].includes(n.kind)&&n.fromNodeId===e.id;return o.has(n.id)||i||(t?.anchorIds.length??0)>0}function Kr(e,n,t,o,r){let i=t.evidence.flatMap(d=>d.location?.file===n.file?[d.location.line]:[]),a=i.filter(d=>r.has(d)),s=a.length>0?a:i,l=qr(e,n,o?.attributes.leaf,r);return l!==void 0&&s.push(l),s}function qr(e,n,t,o){if(typeof t!="string"||t.length===0)return;let r=qe(e,n.file,t).filter(i=>i>=n.line&&i<=(n.endLine??n.line));return r.find(i=>o.has(i))??r[0]}function Hr(e,n){if(!e.location)return[];let t=e.location.endLine??e.location.line;return n.filter(o=>o.file===e.location.file&&o.line>=e.location.line&&o.line<=t).map(o=>o.line)}function Ur(e){let n=new Map;for(let t of e){if(!t.file||!Number.isSafeInteger(t.line)||t.line<0)throw new RangeError(`Behavior focus locations require a repository file and non-negative line; received ${JSON.stringify(t)}.`);n.set(Pe(t.file,t.line),{file:t.file,line:t.line})}return[...n.values()].sort((t,o)=>t.file.localeCompare(o.file)||t.line-o.line)}function Pe(e,n){return`${e}\0${n}`}function Wr(e,n){let{db:t,file:o,startLine:r,endLine:i,outline:a}=e;return a?[...new Map(n.flatMap(s=>a.lines.filter(l=>l.text.length<=500&&l.signals.some(d=>["branch","loop","catch","finally"].includes(d))&&s>=l.line&&s<=l.endLine).sort((l,d)=>l.endLine-l.line-(d.endLine-d.line)||l.line-d.line).slice(0,2).map(l=>[`${l.line}\0${l.endLine}`,l]))).values()]:ln(t,o,r,i,n)}function zr(e,n){let{outline:t,endLine:o,sourceLines:r,behaviorSignals:i}=e,a=(t?.lines??[]).find(l=>l.line===n)??{line:n,endLine:Math.min(o,n+40),depth:0,signals:i.get(n)??[],text:(r[n]??"").trim(),copied:!0};return(t?.lines??r.slice(a.line,a.endLine+1).map((l,d)=>{let c=a.line+d;return{line:c,endLine:c,depth:0,signals:i.get(c)??[],text:l.trim(),copied:!0}})).filter(l=>l.line>=a.line&&l.line<=a.endLine&&l.text.length<=500&&l.signals.some(d=>["binding","branch","call","mutation"].includes(d)))}function Vr(e,n,t){let{db:o,file:r,endLine:i,behaviorSignals:a}=e,s=[];for(let l of n){let d=Gn(o,r,l,i),c=d[0];c!==void 0&&t.add(c);let u=d.find(p=>(a.get(p)??[]).some(m=>m==="branch"||m==="loop"));u!==void 0&&(t.add(u),s.push({focusLine:l,governingUse:u,lines:zr(e,u)}))}for(let l of s.sort((d,c)=>c.governingUse-c.focusLine-(d.governingUse-d.focusLine)||d.focusLine-c.focusLine).slice(0,2))for(let d of l.lines.slice(0,14))t.add(d.line)}function Kt(e,n,t,o){for(let r of n)for(let i of e?.lines??[])i.line<r.line||i.line>r.endLine||i.signals.some(a=>o.has(a))&&t.add(i.line)}function Yr(e,n,t,o){let{behaviorSignals:r,outline:i,focusLines:a}=e;return Zr([...r.get(n)??[],...i?.lines.filter(s=>n>=s.line&&n<=s.endLine).flatMap(s=>s.signals)??[],...t.get(n)??[],...a.includes(n)?["anchor"]:[],...o.has(n)?["call"]:[]])}function Qr(e,n,t,o){let{db:r,file:i,startLine:a,endLine:s,outline:l,sourceLines:d}=e,c=j(r,i),u=new Set(c?.callSites.map(y=>y.line)??[]),p=new Map([...l?.lines??[],...t].filter(y=>y.signals.some(b=>["branch","loop","catch","finally"].includes(b))).map(y=>[y.line,y])),m=new Map((l?.lines??[]).filter(y=>y.text.length<=500&&y.signals.includes("shape")&&(y.signals.includes("call")||y.signals.includes("mutation")||y.signals.includes("return"))).sort((y,b)=>y.endLine-y.line-(b.endLine-b.line)||y.line-b.line).map(y=>[y.line,y])),f=new Map((o?.lines??[]).map(y=>[y.line,y.signals.filter(b=>b!=="lifecycle")])),g=[...n].filter(y=>y>=a&&y<=s).sort((y,b)=>y-b).map(y=>{let b=p.get(y)??m.get(y);return{line:y,endLine:b?.endLine??y,depth:b?.depth??0,signals:Yr(e,y,f,u),text:b?.text??(d[y]??"").trim(),copied:b?.copied??!0}}).filter(y=>y.text.length>0);return g.length===0?null:Xr(e,g,o)}function Xr(e,n,t){let{db:o,file:r,label:i,startLine:a,endLine:s,outline:l,sourceLines:d}=e,c=t?.candidateLines??Dn(o,r,a,s,{minimumBodyLines:0})?.candidateLines??0,u=Math.max(l?.coverage.sourceStatements??0,c,n.length),p=l?.signature??(d[a]??i).trim(),m=p.length+n.reduce((g,y)=>g+y.text.length+y.signals.join(",").length+12,0),f=d.slice(a,s+1).join(`
|
|
5
|
+
`).length;return{kind:"connector-slice",constructKind:l?.constructKind??"source construct",signature:p,lines:n,coverage:{sourceStatements:u,representedStatements:n.length,copiedStatements:n.filter(g=>g.copied).length,omittedStatements:Math.max(0,u-n.length)},rawCharacters:f,renderedCharacters:m}}function Jr(e,n,t,o,r,i,a){if(!n.location)return null;let s=qt(e,n.location.file);if(!s)return null;let l=be(e,n.location.file),d=Te(e,n.location.file,t,o),c={db:e,file:n.location.file,label:n.label,startLine:t,endLine:o,focusLines:r,outline:i,sourceLines:l,behaviorSignals:d},u=[...d].filter(([,b])=>b.length>0).map(([b])=>b).sort((b,h)=>b-h),p=r.map(b=>(d.get(b)??[]).length>0?b:u.find(h=>h>b&&h-b<=8)??b),m=new Set([...r,...p]),f=a?Dn(e,c.file,t,o,{minimumBodyLines:0}):null,g=Wr(c,p);for(let b of f?.lines??[])m.add(b.line);for(let b of g)m.add(b.line);for(let[b,h]of d)h.includes("call")&&h.includes("shape")&&m.add(b);Vr(c,p,m);let y=new Set(["binding","branch","loop","call","return","throw","mutation"]);return Kt(i,g,m,y),ei(s,m,c,y),Qr(c,m,g,f)}function Zr(e){let n=["anchor","signature","binding","branch","loop","call","await","return","throw","mutation","shape","spread","catch","finally"],t=new Set(e);return n.filter(o=>t.has(o))}var Pt=new WeakMap;function qt(e,n){let t=j(e,n)?.language;if(t!=="typescript"&&t!=="tsx"&&t!=="javascript")return null;let o=be(e,n).join(`
|
|
6
|
+
`),r=Pt.get(e);r||(r=new Map,Pt.set(e,r));let i=r.get(n);if(i?.source===o)return i.bindings;let a=ct(n,o),s=a.errors.length===0?xt(a):null;return r.set(n,{source:o,bindings:s}),s}function Gn(e,n,t,o){return[...new Set((qt(e,n)??[]).filter(r=>r.startLine<=t&&r.endLine>=t).flatMap(r=>r.referenceLines.filter(i=>i>t&&i<=o)))].sort((r,i)=>r-i)}function ei(e,n,t,o){let{behaviorSignals:r,startLine:i,endLine:a,outline:s}=t,l=e.filter(c=>c.startLine>=i&&c.endLine<=a&&(c.startLine!==i||c.endLine!==a)),d=!0;for(;d;){let c=n.size;for(let p of l){if(!(p.referenceLines.some(y=>n.has(y))||[...n].some(y=>y>=p.startLine&&y<=p.endLine)))continue;let f=Array.from({length:p.endLine-p.startLine+1},(y,b)=>p.startLine+b),g=p.referenceLines.filter(y=>y>=i&&y<=a&&(r.get(y)??[]).some(b=>o.has(b)));for(let y of[...f,...g])n.has(y)||n.add(y)}let u=(s?.lines??[]).filter(p=>n.has(p.line)&&p.signals.some(m=>["branch","loop","catch","finally"].includes(m)));Kt(s,u,n,o),d=n.size!==c}}function ni(e,n,t){return ue(e.flatMap(o=>{let r=t.get(o),i=n.filter(a=>a.kind==="call"&&a.toNodeId===o).map(a=>({edge:a,node:t.get(a.fromNodeId)})).filter(a=>a.node!==void 0&&["symbol","source-construct","runtime-boundary-participant"].includes(a.node.kind)&&a.node.location!==null).sort((a,s)=>{let l=kt(s.edge)-kt(a.edge);if(l!==0)return l;let d=Bt(a.node,r)?0:1,c=Bt(s.node,r)?0:1,u=$t(a.node),p=$t(s.node);return d-c||u-p||a.node.label.localeCompare(s.node.label)});return i[0]?[i[0].node.id]:[]}))}function kt(e){let n={exact:4,mixed:3,derived:2,candidate:1,unknown:0};return Math.max(0,...e.evidence.map(t=>n[t.strength]))}function Bt(e,n){return!e.location||!n?.location?!1:Dt(e.location.file)===Dt(n.location.file)}function Dt(e){return e.split("/").filter(Boolean).slice(0,2).join("/")}function ti(e,n,t,o){let r=new Set(e),i=new Set,a=[],s=ue(e);for(let l=0;l<o&&s.length>0;l+=1){let d=s.filter(u=>!i.has(u));for(let u of d)i.add(u);let c=ni(d,n,t);s=[];for(let u of c)!r.has(u)&&!a.includes(u)&&a.push(u),i.has(u)||s.push(u)}return a}function oi(e,n,t){let o=new Map(t.paths.flatMap(r=>r.edgeIds).map((r,i)=>[r,i]));return(o.get(e.id)??Number.MAX_SAFE_INTEGER)-(o.get(n.id)??Number.MAX_SAFE_INTEGER)||e.id.localeCompare(n.id)}function ri(e){return`step:${e}`}function ii(e){return`transition:${e}`}function At(e,n){return e.length===0?null:`scip-query inspect ${e.map(t=>`--at ${F(t)}`).join(" ")} --view ${n}`}function ue(e){return[...new Set(e)]}function ai(e,n,t){for(let o of e.paths){let r=o.nodeIds[0],i=n.get(o.edgeIds[0]??""),a=o.nodeIds[1];r&&a&&i?.fromNodeId===r&&i.toNodeId===a&&t.add(r)}}function $t(e){return(e.location?.endLine??e.location?.line??0)-(e.location?.line??0)}var Ht=["call","contract-symbol","import","reference","runtime-boundary"],si={call:[{family:"control",subtype:"call"}],"contract-symbol":[{family:"contract",subtype:"uses-contract-symbol"}],import:[{family:"identity",subtype:"imports"}],reference:[{family:"identity",subtype:"references"}]},li={"structural-membership":[{family:"identity",subtype:"contains"}],"boundary-observation":[{family:"identity",subtype:"owns-runtime-observation"}],"external-import":[{family:"identity",subtype:"imports-external"}]};function Ut(e){if(e.kind!=="runtime-boundary")return Wt(si[e.kind]);let n=di(e),t=[{family:"control",subtype:"runtime-handoff",context:n}];return e.evidence==="runtime-boundary:carrier.discriminator"&&(t.push({family:"control",subtype:"discriminator-dispatch",context:{...n},attributes:{joinRule:"carrier.discriminator",...e.fromBoundaryParticipant?.action?{producerAction:e.fromBoundaryParticipant.action}:{},...e.toBoundaryParticipant?.action?{consumerAction:e.toBoundaryParticipant.action}:{}}}),t.push({family:"data",subtype:"serialized-discriminator-transfer",context:{...n},attributes:{joinRule:"carrier.discriminator"}})),e.evidence==="runtime-boundary:queue.address"&&e.fromBoundaryParticipant?.action==="queue.send"&&e.toBoundaryParticipant?.action==="queue.consume"&&t.push({family:"temporal",subtype:"enqueue-before-consume",context:{...n},attributes:{producerAction:e.fromBoundaryParticipant.action,consumerAction:e.toBoundaryParticipant.action,retryPolicy:"unknown"}}),t}function dn(e){return Wt(li[e])}function Wt(e){return e.map(n=>({...n,...n.context?{context:{...n.context}}:{},...n.attributes?{attributes:{...n.attributes}}:{}}))}function di(e){let n=e.fromBoundaryParticipant?.protocol??e.toBoundaryParticipant?.protocol;return{crossesRuntimeBoundary:!0,...n?{protocol:n}:{},...e.runtimeBoundaryKey?{runtimeKey:e.runtimeBoundaryKey}:{}}}function ci(e,n=new Map){let t=new Map,o=new Map,r=[];for(let i of e.transfers){if(!e.caller)continue;let a=cn(e.caller,i.callerPosition),s=cn(e.callee,i.calleePosition);ze(t,a),ze(t,s),Kn(o,e.caller,a),Kn(o,e.callee,s);let l=B("edge","data-transfer",ke(e),i.proof.file,String(i.proof.startLine),String(i.callerPosition),String(i.calleePosition));o.set(l,{id:l,kind:"data-transfer",fromNodeId:a.id,toNodeId:s.id,directed:!0,disposition:"folded",semantics:[{family:"data",subtype:"argument-to-parameter",attributes:{argumentText:i.argumentText,callerPosition:i.callerPosition,calleePosition:i.calleePosition}}],evidence:[{method:"compiler-callsite-direct-parameter-transfer",strength:"exact",identity:`${e.caller.symbol}:${i.callerPosition} -> ${e.callee.symbol}:${i.calleePosition}`,location:{file:i.proof.file,line:i.proof.startLine,endLine:i.proof.endLine}}]})}return e.unknown.forEach((i,a)=>{let s=!["callee-parameter-unavailable","argument-without-parameter","callee-parameter-transform"].includes(i.reason),l=s?cn(e.callee,i.calleePosition):{...zt(e,i.calleePosition,i.argumentText),id:B("argument-mapping",ke(e),String(i.calleePosition)),kind:"unresolved-argument-mapping",label:`Unresolved argument ${i.calleePosition+1}: ${i.reason}`,attributes:{calleeSymbol:e.callee.symbol,argumentPosition:i.calleePosition,reason:i.reason}};ze(t,l),s&&Kn(o,e.callee,l);let d=n.get(i.calleePosition);if(s&&d&&Ii(d)){Ci(o,t,e,i.calleePosition,i.argumentText,d);return}let c=zt(e,i.calleePosition,i.argumentText);ze(t,c),Xt(o,e,c);let u=B("edge","data-transfer-unsupported",ke(e),i.proof.file,String(i.proof.startLine),String(i.calleePosition),String(a));o.set(u,{id:u,kind:"data-transfer",fromNodeId:c.id,toNodeId:l.id,directed:!0,disposition:"unsupported",semantics:[{family:"data",subtype:"argument-to-parameter",attributes:{argumentText:i.argumentText,calleePosition:i.calleePosition}}],evidence:[{method:"compiler-callsite-argument-expression",strength:"exact",identity:i.argumentText,location:{file:i.proof.file,line:i.proof.startLine,endLine:i.proof.endLine}}]}),r.push({id:B("frontier","data-transfer",u),kind:"data-transfer",direction:"unresolved",fromNodeIds:[c.id,...e.caller?[Be(e.caller.symbol)]:[]],edgeIds:[u],memberNodeIds:[l.id,Be(e.callee.symbol)],memberCount:2,disposition:"unsupported",reason:d?.derivation.rule??i.reason,expansion:null})}),{nodes:[...t.values()],edges:[...o.values()],frontiers:r,blindSpots:[]}}function Vt(e,n,t=[]){let o=Yt(),r=new Map,i=new Set;for(let a of n)pi(e,a,r,i,o);for(let a of t)gi(e,a,o);return o.blindSpots=[...new Set(o.blindSpots)].sort(),o}function ui(e,n,t,o){if(n.kind!=="call"||!n.fromSymbol||!n.toSymbol||n.line===null)return[];let r=Ei(t,e,n.toFile,n.toSymbol);if(!r)return[];let i=ht(e,r),a=i.sites.filter(s=>s.file===n.fromFile&&s.startLine<=n.line&&s.endLine>=n.line&&s.caller?.symbol===n.fromSymbol);if(a.length===0){let s=i.unresolved.find(l=>l.file===n.fromFile&&l.line===n.line);return s&&o.blindSpots.push(`Parameter flow unresolved at ${n.fromFile}:${n.line+1}: ${s.reason}.`),[]}return a.map(s=>({site:s,callee:r}))}function pi(e,n,t,o,r){let i=ui(e,n,t,r);for(let{site:a,callee:s}of i){let l=`${a.file}\0${a.callNode.startIndex}\0${a.callNode.endIndex}\0${s.symbol}`;if(o.has(l))continue;o.add(l);let d=St(e,a),c=mi(e,a,d);Qt(r,ci(d,c)),d.caller&&Si(a.callNode)&&vi(r,d,a.callNode)}}function mi(e,n,t){let o=ee(e,n.file)?.rootNode,r=new Map;if(o)for(let i of t.unknown){let a=bt({db:e,file:n.file,root:o},n.arguments[i.calleePosition]);a&&r.set(i.calleePosition,a)}return r}function gi(e,n,t){if(!n.location||!["source-construct","symbol"].includes(n.kind))return;let o=n.location.endLine??n.location.line,r=On(e,n.location.file,n.location.line,o,n.location);if(r){Qt(t,fi(n,r.points,r.edges));for(let i of r.coverage.unsupported)t.blindSpots.push(`TypeScript local flow is partial for ${n.location.file}:${n.location.line+1}-${o+1}: ${i} Recover with: scip-query inspect --at '${n.location.file}:${n.location.line+1}-${o+1}' --view behavior.`)}}function fi(e,n,t){let o=Yt(),r=new Map,i=new Map,a=new Map,s=e.location.file;for(let l of n){let d=yi(e,s,l);a.set(l.id,d.id),r.set(d.id,d),bi(i,e,d)}for(let l of t){let d=a.get(l.fromPointId),c=a.get(l.toPointId);if(!d||!c)continue;let u=hi(l),p=B("edge","typescript-local-flow",s,l.id);i.set(p,{id:p,kind:l.kind==="control-dependence"?"control-dependence":"data-transfer",fromNodeId:d,toNodeId:c,directed:!0,disposition:"folded",semantics:[u],evidence:[{method:"typescript-compiler-cfg-reaching-definitions",strength:l.strength,identity:l.reason,location:r.get(d)?.location??e.location}]})}return o.nodes=[...r.values()],o.edges=[...i.values()],o}function yi(e,n,t){return{id:B("local-flow-point",n,String(t.start),String(t.end),t.kind,t.symbolKey??t.name),kind:t.kind==="parameter-definition"||t.kind==="definition"?"local-definition":t.kind==="use"?"local-use":t.kind==="predicate"?"control-predicate":"local-statement",label:t.name,disposition:"folded",location:{file:n,line:t.line,endLine:t.line},anchorIds:[],attributes:{ownerNodeId:e.id,pointKind:t.kind,callableId:t.callableId,symbolKey:t.symbolKey,column:t.column}}}function bi(e,n,t){let o=B("edge","local-flow-owner",n.id,t.id);e.has(o)||e.set(o,{id:o,kind:"local-flow-owner",fromNodeId:n.id,toNodeId:t.id,directed:!0,disposition:"folded",semantics:[{family:"identity",subtype:"contains"}],evidence:[{method:"typescript-compiler-local-flow-owner",strength:"exact",identity:n.id,location:t.location}]})}function hi(e){switch(e.kind){case"reaching-definition":return{family:"data",subtype:"definition-to-use"};case"value-source":return{family:"data",subtype:"value-to-definition"};case"closure-capture":return{family:"data",subtype:"closure-capture"};case"field-definition-to-use":return{family:"data",subtype:"field-definition-to-use"};case"control-dependence":return{family:"control",subtype:"control-dependence"}}}function Si(e){let n=e;for(;n.parent&&["await_expression","yield_expression","parenthesized_expression","as_expression","type_assertion"].includes(n.parent.type);)n=n.parent;return n.parent!==null&&n.parent.type!=="expression_statement"}function vi(e,n,t){if(!n.caller)return;let o={id:B("call-result",n.call.file,String(t.startIndex),String(t.endIndex),n.callee.symbol),kind:"call-result",label:`result of ${n.callee.leaf}`,disposition:"folded",location:{file:n.call.file,line:n.call.startLine,endLine:n.call.endLine},anchorIds:[],attributes:{calleeSymbol:n.callee.symbol,callerSymbol:n.caller.symbol}},r=B("edge","return-to-call-result",n.callee.symbol,o.id),i=B("edge","call-result-owner",n.caller.symbol,o.id);e.nodes.push(o),e.edges.push({id:r,kind:"data-transfer",fromNodeId:Be(n.callee.symbol),toNodeId:o.id,directed:!0,disposition:"folded",semantics:[{family:"data",subtype:"return-to-call-result"}],evidence:[{method:"compiler-callsite-used-result",strength:"exact",identity:`${n.callee.symbol} -> ${n.caller.symbol}`,location:o.location}]},{id:i,kind:"call-result-owner",fromNodeId:Be(n.caller.symbol),toNodeId:o.id,directed:!0,disposition:"folded",semantics:[{family:"identity",subtype:"contains-call-result"}],evidence:[{method:"compiler-call-result-owner",strength:"exact",identity:n.caller.symbol,location:o.location}]})}function Yt(){return{nodes:[],edges:[],frontiers:[],blindSpots:[]}}function Qt(e,n){jn(e.nodes,n.nodes),jn(e.edges,n.edges),jn(e.frontiers,n.frontiers),e.blindSpots.push(...n.blindSpots)}function jn(e,n){let t=new Set(e.map(o=>o.id));for(let o of n)t.has(o.id)||(t.add(o.id),e.push(o))}function Ei(e,n,t,o){let r=`${t}\0${o}`,i=e.get(r);if(i!==void 0)return i;let a=Se(n,t).find(s=>s.symbol===o)??null;return e.set(r,a),a}function cn(e,n){return{id:Mi(e.symbol,n),kind:"parameter",label:`${e.leaf} parameter ${n}`,disposition:"folded",location:{file:e.relativePath,line:e.startLine,endLine:e.endLine},anchorIds:[],attributes:{ownerSymbol:e.symbol,position:n}}}function zt(e,n,t){return{id:B("argument-expression",ke(e),e.call.file,String(e.call.startLine),String(e.call.endLine),String(n)),kind:"argument-expression",label:t,disposition:"unsupported",location:{file:e.call.file,line:e.call.startLine,endLine:e.call.endLine},anchorIds:[],attributes:{calleeSymbol:e.callee.symbol,position:n}}}function xi(e,n,t){return{id:B("static-value",ke(e),e.call.file,String(e.call.startLine),String(e.call.endLine),String(n)),kind:"static-value",label:t.value,disposition:"folded",location:{file:e.call.file,line:e.call.startLine,endLine:e.call.endLine},anchorIds:[],attributes:{value:t.value,precision:t.precision,evidence:t.evidence,termKind:t.term.kind,derivationRule:t.derivation.rule}}}function Ci(e,n,t,o,r,i){let a=xi(t,o,i),s=cn(t.callee,o);ze(n,a),Xt(e,t,a);let l=B("edge","static-value-transfer",ke(t),t.call.file,String(t.call.startLine),String(o));e.set(l,{id:l,kind:"data-transfer",fromNodeId:a.id,toNodeId:s.id,directed:!0,disposition:"folded",semantics:[{family:"data",subtype:Li(i),attributes:{argumentText:r,calleePosition:o,value:i.value,precision:i.precision,derivationRule:i.derivation.rule}}],evidence:Ri(i,t)})}function Ii(e){return e.derivation.kind!=="heuristic"&&e.precision!=="symbolic"&&e.precision!=="unknown"}function Li(e){return e.derivation.rule==="bounded-call-return"?"return-to-parameter":e.derivation.rule==="member-constant"||e.term.kind==="property"?"property-to-parameter":"constant-to-parameter"}function Ri(e,n){return(e.derivation.sourceSpans.length>0?e.derivation.sourceSpans:[n.call]).map(o=>({method:`static-value:${e.derivation.rule}`,strength:e.derivation.kind==="direct"?"exact":"derived",identity:e.derivation.inputFactIds.join(",")||e.value,location:{file:o.file,line:o.startLine,endLine:o.endLine}}))}function ze(e,n){e.has(n.id)||e.set(n.id,n)}function Xt(e,n,t){if(!n.caller)return;let o=B("edge","argument-owner",n.caller.symbol,t.id);e.set(o,{id:o,kind:"argument-owner",fromNodeId:Be(n.caller.symbol),toNodeId:t.id,directed:!0,disposition:"folded",semantics:[{family:"identity",subtype:"contains"}],evidence:[{method:"compiler-callsite-argument-owner",strength:"exact",identity:n.caller.symbol,location:t.location}]})}function Kn(e,n,t){let o=B("edge","parameter-owner",n.symbol,t.id);e.has(o)||e.set(o,{id:o,kind:"parameter-owner",fromNodeId:Be(n.symbol),toNodeId:t.id,directed:!0,disposition:"folded",semantics:[{family:"identity",subtype:"contains"}],evidence:[{method:"compiler-parameter-owner",strength:"exact",identity:n.symbol,location:{file:n.relativePath,line:n.startLine,endLine:n.endLine}}]})}function Mi(e,n){return B("parameter",e,String(n))}function Be(e){return B("symbol",e)}function ke(e){return B(e.callee.symbol,e.call.file,String(e.call.startLine),String(e.call.startColumn??""),String(e.call.endLine),String(e.call.endColumn??""))}function B(...e){return e.map(n=>encodeURIComponent(n)).join(":")}function Jt(e,n){let t={nodes:[],edges:[],frontiers:[],blindSpots:[]};for(let o of n)for(let{call:r,external:i,declarations:a,implementationReason:s}of Ni(e,o))Fi(t,o,r,i,a,s);return t}function Ni(e,n){let t=n.location;if(!t||!["symbol","source-construct","file"].includes(n.kind))return[];let o=j(e,t.file);if(!o)return[];let r=Ue(e,t.file,t.line,n.kind==="file"?Number.MAX_SAFE_INTEGER:t.endLine??t.line),i=He(e,t.file);return o.callSites.filter(a=>wi(a,n)&&!r.targets.some(s=>s.implementationStatus!=="unresolved"&&ve(s.sourceRange,a.targetRange))).map(a=>({call:a,external:Ti(a,i)&&!pt(e,t.file,a),declarations:(r.declarations??[]).filter(s=>ve(s.sourceRange,a.targetRange)).map(s=>s.definition.symbol),implementationReason:r.targets.find(s=>ve(s.sourceRange,a.targetRange))?.implementationReason}))}function wi(e,n){if(!e.targetRange)return!1;if(n.kind==="file")return e.owner===null;let t=n.location;return e.owner?.startLine===t.line&&e.owner.endLine===t.endLine&&e.owner.startColumn===t.startColumn&&e.owner.endColumn===t.endColumn}function Ti(e,n){return!n?.locals?.some(o=>ve({startLine:o.line,startColumn:o.startChar,endLine:o.endLine,endColumn:o.endChar},e.targetRange))&&!!n?.externalRanges?.some(o=>ve(o,e.targetRange))}function Fi(e,n,t,o,r,i){let a=n.location;if(!t.targetRange)return;let s=i??(r.length?"observed-or-possible-write; execution-order-not-established":"missing-or-indirect-binding"),l=r.length?`Invocation ${t.calleeText} has no established repository implementation target at ${a.file}:${t.targetRange.startLine+1}:${t.targetRange.startColumn+1}. Compiler declaration reference for ${t.calleeText}: ${r.join(", ")}. Runtime implementation remains unresolved (${s}); the declaration reference is preserved and does not establish executable reachability.`:o?`Compiler reference for ${t.calleeText} has no indexed repository body; external behavior is unavailable.`:`Invocation ${t.calleeText} has no established repository implementation target; indirect, mutated, or missing bindings cannot establish reachability.`,d=`execution-unresolved:${n.id}:${t.targetRange.startLine}:${t.targetRange.startColumn}:${t.targetRange.endColumn}`,c=`edge:${d}`,u={file:a.file,line:t.targetRange.startLine,endLine:t.targetRange.endLine,startColumn:t.targetRange.startColumn,endColumn:t.targetRange.endColumn};e.nodes.push({id:d,kind:"unresolved-invocation",label:t.calleeText??t.calleeLeaf,disposition:"unsupported",location:u,anchorIds:[],attributes:{ownerNodeId:n.id,targetResolution:o&&!r.length?"external":"unresolved",referencedDeclaration:r.length===1?r[0]:null,declarationCount:r.length,implementationReason:s}}),e.edges.push({id:c,kind:"control-dependence",fromNodeId:n.id,toNodeId:d,directed:!0,disposition:"unsupported",semantics:[{family:"control",subtype:"unresolved-call-target",attributes:{referencedDeclaration:r.length===1?r[0]:null,declarationCount:r.length,implementationReason:s}}],evidence:[{method:"parser-invocation-without-repository-target",strength:"exact",identity:l,location:u}]}),e.frontiers.push({id:`frontier:${d}`,kind:"control-dependence",direction:"unresolved",fromNodeIds:[n.id],edgeIds:[c],memberNodeIds:[d],memberCount:1,disposition:"unsupported",reason:l,expansion:null})}function Zt(e,n){let t=new Map,o=new Map,r=new Map,i=new Set;for(let a of n){if(!a.location||!["source-construct","symbol"].includes(a.kind))continue;let s=a.location.endLine??a.location.line,l=It(e,a.location.file,a.location.line,s,a.location);if(!l){i.add(`Control dependence unavailable for ${a.location.file}:${a.location.line+1}-${s+1}: no supported syntax tree or covering construct.`);continue}for(let d of l.facts){let c=qn(a,d.controller),u=qn(a,d.outcome);t.set(c.id,c),t.set(u.id,u),Pi(o,a,c);let p=Re("edge","control-dependence",c.id,u.id,d.subtype);o.set(p,{id:p,kind:"control-dependence",fromNodeId:c.id,toNodeId:u.id,directed:!0,disposition:"folded",semantics:[{family:"control",subtype:d.subtype,attributes:{...d.attributes}}],evidence:[{method:"parser-control-dependence",strength:"exact",identity:`${a.location.file}:${d.controller.startLine+1}-${d.outcome.startLine+1}`,location:{file:a.location.file,line:d.controller.startLine,endLine:d.controller.endLine}}]})}ki(a,l.terminals,t,o);for(let d of l.unsupported){let c=Re("control-unsupported",a.location.file,String(d.startLine),String(d.endLine),d.reason);t.set(c,{id:c,kind:"control-unsupported",label:d.reason,disposition:"unsupported",location:{file:a.location.file,line:d.startLine,endLine:d.endLine},anchorIds:[],attributes:{ownerNodeId:a.id}});let u=Re("edge","control-unsupported",a.id,c);o.set(u,{id:u,kind:"control-dependence",fromNodeId:a.id,toNodeId:c,directed:!0,disposition:"unsupported",semantics:[{family:"control",subtype:"unresolved-control-construct"}],evidence:[{method:"parser-control-construct",strength:"exact",identity:d.reason,location:{file:a.location.file,line:d.startLine,endLine:d.endLine}}]});let p=Re("frontier","control-dependence",c);r.set(p,{id:p,kind:"control-dependence",direction:"unresolved",fromNodeIds:[a.id],edgeIds:[u],memberNodeIds:[c],memberCount:1,disposition:"unsupported",reason:d.reason,expansion:null})}}return{nodes:[...t.values()],edges:[...o.values()],frontiers:[...r.values()],blindSpots:[...i].sort()}}function qn(e,n){let t=e.location.file;return{id:Re(`control-${n.kind}`,t,String(n.startLine),String(n.endLine),n.label,e.id,String(n.startColumn??""),String(n.endColumn??"")),kind:`control-${n.kind}`,label:n.label,disposition:"folded",location:{file:t,line:n.startLine,endLine:n.endLine,startColumn:n.startColumn,endColumn:n.endColumn},anchorIds:[],attributes:{ownerNodeId:e.id,constructKind:n.kind,implicit:n.implicit}}}function Pi(e,n,t){let o=Re("edge","control-owner",n.id,t.id);e.has(o)||e.set(o,{id:o,kind:"control-owner",fromNodeId:n.id,toNodeId:t.id,directed:!0,disposition:"folded",semantics:[{family:"identity",subtype:"contains-control"}],evidence:[{method:"parser-control-owner",strength:"exact",identity:n.id,location:n.location}]})}function Re(...e){return e.map(n=>encodeURIComponent(n)).join(":")}function ki(e,n,t,o){for(let r of n){let i=qn(e,r);t.set(i.id,i);let a=r.label.startsWith("throw")||r.label.startsWith("raise")?"throw":"return",s=Re("edge","control-terminal",e.id,i.id,a);o.set(s,{id:s,kind:"control-terminal",fromNodeId:e.id,toNodeId:i.id,directed:!0,disposition:"folded",semantics:[{family:"control",subtype:a==="throw"?"throws":"returns"}],evidence:[{method:"parser-terminal-statement",strength:"exact",identity:r.label,location:{file:e.location.file,line:r.startLine,endLine:r.endLine}}]})}}var Ye=new Set(["block","body","compound_statement","declaration_list","statement_block"]),Bi=new Set(["assignment","assignment_expression","augmented_assignment_expression"]),Hn=new Set(["update_expression"]),eo=new Set(["array_access","element_access_expression","subscript_expression"]),no=new Set(["attribute","field_access","field_expression","member_access_expression","member_expression","selector_expression"]),Di=new Set(["false","null","null_literal","number","number_literal","string","string_literal","template_string","true"]),Ai=new Set(["call_expression","method_invocation","object_creation_expression"]),$i=new Set(["comment","else_clause","formal_parameters","parameters","type_parameters"]);function to(e,n,t,o,r={}){let i=ee(e,n);if(!i)return null;let a=Ke(i.rootNode,t,o,he,r);if(!a)return null;let s=[],l=[],d=[],c=an(n,i.rootNode);return Qe(a,u=>{if(Bi.has(u.type)||Hn.has(u.type)||oo(u)){let p=Oi(u,c);p?s.push(p):d.push({family:"state",startLine:u.startPosition.row,endLine:u.endPosition.row,reason:`Mutation target ${ae(u.text)} could not be resolved to an exact source resource.`})}}),Qe(a,u=>{if(!Ye.has(u.type))return;let p=Ui(u);for(let m=0;m<p.length-1;m+=1)l.push({from:Ve(p[m]),to:Ve(p[m+1]),subtype:"lexical-successor",synchronizationScope:null,attributes:{sameScope:!0,executionConditional:!0}});for(let m=0;m<p.length;m+=1){let f=p[m],g=Vi(f).filter(y=>y.type==="await_expression");for(let y of g){let b=De("event",`await ${ae(y.text.replace(/^await\s+/u,""))}`,y);l.push({from:Ve(f),to:b,subtype:"awaits-completion",synchronizationScope:null,attributes:{completionRequired:!0,executionConditional:!0}});let h=p[m+1];h&&qi(y,f)&&l.push({from:b,to:Ve(h),subtype:"await-completion-before",synchronizationScope:null,attributes:{continuationOnly:!0}})}}}),Qe(a,u=>{if(u.type!=="synchronized_statement")return;let p=u.childForFieldName("object")??u.childForFieldName("condition")??u.namedChildren.find(b=>!Ye.has(b.type)),m=u.childForFieldName("body")??u.namedChildren.find(b=>Ye.has(b.type));if(!p||!m){d.push({family:"temporal",startLine:u.startPosition.row,endLine:u.endPosition.row,reason:"Synchronized scope has no structurally resolved monitor or body."});return}let f=ae(p.text).replace(/^\(|\)$/gu,""),g=De("lock",f,p),y=zi(m).filter(b=>b.parent!==null&&ro(b));for(let b of Wi(y))l.push({from:g,to:Ve(b),subtype:"inside-lock-scope",synchronizationScope:f,attributes:{syntaxNative:!0}})}),{mutations:s,temporal:l,unsupported:d}}function Oi(e,n){let t=oo(e),o=_i(e,t);if(!o)return null;let r=ji(o);if(!r)return null;let i=Gi(e,o,t),a=t||Hn.has(e.type)?null:e.childForFieldName("right");return{event:De("event",ae(e.text),e),resource:{...De("resource",r.name,o),...n.resource(o)},operation:i,durabilityClass:"in-memory",recordIdentity:r.recordIdentity,value:a?De("value",ae(a.text),a):null,dataSubtype:a?Ki(a,n):null}}function _i(e,n){return e.childForFieldName("left")??e.childForFieldName("argument")??(n?e.namedChildren.at(-1)??null:e.namedChildren[0]??null)}function Gi(e,n,t){return t?"delete":Hn.has(e.type)||!Hi(e,n).startsWith("=")?"update":"assign"}function ji(e){return eo.has(e.type)?Yi(e):no.has(e.type)?{name:ae(e.text),recordIdentity:null}:/^(?:identifier|property_identifier|field_identifier)$/u.test(e.type)?{name:ae(e.text),recordIdentity:null}:null}function Ki(e,n){return e.type==="template_string"&&e.namedChildren.some(t=>t.type==="template_substitution")?"expression-to-state":Di.has(e.type)||/(?:integer|float|decimal|boolean|character)_literal$/u.test(e.type)?"constant-to-state":Ai.has(e.type)?"return-to-state":no.has(e.type)||eo.has(e.type)?"property-to-state":/identifier$/u.test(e.type)?n.isCaptured(e)?"captured-value-to-state":"value-to-state":"expression-to-state"}function qi(e,n){if(!["expression_statement","lexical_declaration","variable_declaration","local_variable_declaration"].includes(n.type))return!1;for(let t=e.parent;t&&(t.startIndex!==n.startIndex||t.endIndex!==n.endIndex||t.type!==n.type);t=t.parent)if(Ye.has(t.type)||/(?:statement|clause)$/u.test(t.type))return!1;return!0}function Hi(e,n){let t=e.childForFieldName("right"),o=Math.max(0,n.endIndex-e.startIndex),r=t?Math.max(o,t.startIndex-e.startIndex):e.text.length;return e.text.slice(o,r).trim()}function oo(e){return(e.type==="delete_expression"||e.type==="unary_expression")&&/^delete\b/u.test(e.text.trim())}function Ui(e){return e.namedChildren.filter(n=>ro(n))}function ro(e){return $i.has(e.type)||Ye.has(e.type)?!1:/(?:statement|declaration)$/u.test(e.type)||e.type==="expression_statement"||e.type==="local_variable_declaration"}function Wi(e){let n=new Set(e);return e.filter(t=>{let o=t.parent;for(;o;){if(n.has(o))return!1;o=o.parent}return!0})}function Ve(e){return De("event",ae(e.text),e)}function De(e,n,t){return{kind:e,label:n,startLine:t.startPosition.row,endLine:t.endPosition.row,startColumn:t.startPosition.column,endColumn:t.endPosition.column}}function zi(e){let n=[];return Qe(e,t=>n.push(t)),n}function Vi(e){let n=[],t=o=>{n.push(o);for(let r of o.namedChildren)r!==e&&he.has(r.type)||t(r)};return t(e),n}function Qe(e,n){n(e);for(let t of e.namedChildren)he.has(t.type)||Qe(t,n)}function ae(e){return e.trim().replace(/\s+/gu," ")}function Yi(e){let n=e.childForFieldName("object")??e.childForFieldName("array")??e.namedChildren[0]??null,t=e.childForFieldName("index")??e.childForFieldName("subscript")??e.namedChildren[1]??null;return!n||!t?null:{name:`${ae(n.text)}[]`,recordIdentity:ae(t.text)}}function so(e,n,t=[]){let o=new Map,r=new Map,i=new Map,a=new Set,s=(p,m)=>{let f=pn(p,m.event),g=na(p,m.resource,m.durabilityClass);if(o.set(f.id,f),o.set(g.id,g),mn(r,p,f,"contains-state-effect"),gn(r,{kind:"state-resource",from:f,to:g,semantics:[{family:"state",subtype:m.operation==="delete"?"deletes-resource":"writes-resource",attributes:{operation:m.operation,durabilityClass:m.durabilityClass,resource:m.resource.label,recordIdentity:m.recordIdentity,transactionMembership:"unknown"}}],method:"parser-state-mutation",identity:m.event.label}),m.value&&m.dataSubtype){let y=pn(p,m.value);o.set(y.id,y),gn(r,{kind:"data-to-state",from:y,to:g,semantics:[{family:"data",subtype:m.dataSubtype,attributes:{operation:m.operation,resource:m.resource.label,recordIdentity:m.recordIdentity,value:m.value.label}}],method:"parser-assignment-value",identity:`${m.value.label} -> ${m.resource.label}`})}},l=(p,m)=>{let f=pn(p,m.from),g=pn(p,m.to);o.set(f.id,f),o.set(g.id,g),mn(r,p,f,m.from.kind==="lock"?"contains-lock-scope":"contains-event"),mn(r,p,g,"contains-event"),gn(r,{kind:"temporal-order",from:f,to:g,semantics:[{family:"temporal",subtype:m.subtype,context:m.synchronizationScope?{synchronizationScope:m.synchronizationScope}:void 0,attributes:{...m.attributes}}],method:m.subtype==="inside-lock-scope"?"parser-synchronized-scope":"parser-program-order",identity:`${m.from.label} -> ${m.to.label}`})},d=(p,m,f)=>{let g=pe(`${m.family}-unsupported`,f.file,String(m.startLine),String(m.endLine),m.reason);o.set(g,{id:g,kind:`${m.family}-unsupported`,label:m.reason,disposition:"unsupported",location:{file:f.file,line:m.startLine,endLine:m.endLine},anchorIds:[],attributes:{ownerNodeId:p.id}});let y=pe("edge",`${m.family}-unsupported`,p.id,g);r.set(y,{id:y,kind:`${m.family}-unsupported`,fromNodeId:p.id,toNodeId:g,directed:!0,disposition:"unsupported",semantics:[{family:m.family,subtype:`unresolved-${m.family}-construct`}],evidence:[{method:`parser-${m.family}-construct`,strength:"exact",identity:m.reason,location:{file:f.file,line:m.startLine,endLine:m.endLine}}]});let b=pe("frontier",m.family,g);i.set(b,{id:b,kind:m.family,direction:"unresolved",fromNodeIds:[p.id],edgeIds:[y],memberNodeIds:[g],memberCount:1,disposition:"unsupported",reason:m.reason,expansion:null})},c=()=>{for(let p of n.filter(m=>m.kind==="runtime-boundary-participant")){let m=un(p,"protocol"),f=un(p,"action"),g=un(p,"address")??p.label;!m||!f||!ao(m,f)||io(o,r,p,{observationId:p.id,action:f,strength:"exact",file:p.location?.file??"",line:p.location?.line??0,address:g,protocol:m,role:un(p,"role")??void 0,resolution:"locally-linked"})}},u=()=>{for(let p of t){if(!p.protocol||!ao(p.protocol,p.action))continue;let m=Zi(n,p.file,p.line,p.ownerShortName??null);if(!m){a.add(`State observation ${p.observationId} at ${p.file}:${p.line+1} has no materialized owner node.`);continue}io(o,r,m,p)}};for(let p of n){if(!p.location||!["source-construct","symbol"].includes(p.kind))continue;let m=p.location.endLine??p.location.line,f=to(e,p.location.file,p.location.line,m,p.location);if(!f){a.add(`State and temporal analysis unavailable for ${p.location.file}:${p.location.line+1}-${m+1}: no supported syntax tree or covering construct.`);continue}for(let g of f.mutations)s(p,g);for(let g of f.temporal)l(p,g);for(let g of f.unsupported)d(p,g,p.location)}return c(),u(),{nodes:[...o.values()],edges:[...r.values()],frontiers:[...i.values()],blindSpots:[...a].sort()}}function io(e,n,t,o){let r=Xi(o),a={id:pe("runtime-state-event",o.observationId),kind:"runtime-state-event",label:`${o.action} ${r}`,disposition:"folded",location:{file:o.file,line:o.line},anchorIds:[],attributes:{action:o.action,protocol:o.protocol??null,modality:o.modality??null,resolution:o.resolution??null}},s=o.protocol==="database"?"external-durable-intent":"external",l={id:pe("runtime-state-resource",o.protocol??"unknown",r),kind:"runtime-state-resource",label:r,disposition:"folded",location:{file:o.file,line:o.line},anchorIds:[],attributes:{protocol:o.protocol??null,durabilityClass:s}};e.set(a.id,a),e.set(l.id,l),mn(n,t,a,"contains-runtime-state-effect");let d=Qi(o.action);gn(n,{kind:"runtime-state-resource",from:a,to:l,semantics:[{family:"state",subtype:d,context:{crossesRuntimeBoundary:!0,protocol:o.protocol},attributes:{operation:o.action,durabilityClass:s,resource:r,recordIdentity:Ji(o),modality:o.modality??null,resolution:o.resolution??null,transactionMembership:"unknown",commitState:o.protocol==="database"?"unknown":null}}],method:`runtime-boundary-${o.strength}`,identity:o.observationId})}function Qi(e){return e==="database.read"?"reads-resource":e==="queue.send"?"enqueues-resource":e==="queue.consume"?"consumes-resource":"writes-resource"}function Xi(e){return(e.keyParts?.find(t=>["address","resource"].includes(t.name))?.value??e.address)||e.observationId}function Ji(e){return e.keyParts?.find(t=>/^(?:id|key|record)$/u.test(t.name))?.value??null}function ao(e,n){return e==="database"&&["database.read","database.write"].includes(n)||e==="queue"&&["queue.consume","queue.send"].includes(n)}function un(e,n){let t=e.attributes[n];return typeof t=="string"?t:null}function Zi(e,n,t,o){let r=e.filter(a=>a.location?.file===n&&["source-construct","symbol"].includes(a.kind)),i=r.filter(a=>a.location.line<=t&&(a.location.endLine??a.location.line)>=t).sort(ea)[0];if(i)return i;if(o){let a=r.find(s=>s.label===o||s.label.endsWith(`.${o}`)||s.label.includes(o));if(a)return a}return r.length===1?r[0]:null}function ea(e,n){let t=(e.location?.endLine??e.location?.line??0)-(e.location?.line??0),o=(n.location?.endLine??n.location?.line??0)-(n.location?.line??0);return t-o}function pn(e,n){let t=e.location.file;return{id:pe(`program-${n.kind}`,t,String(n.startLine),String(n.endLine),n.label,e.id,String(n.startColumn??""),String(n.endColumn??"")),kind:`program-${n.kind}`,label:n.label,disposition:"folded",location:{file:t,line:n.startLine,endLine:n.endLine,startColumn:n.startColumn,endColumn:n.endColumn},anchorIds:[],attributes:{ownerNodeId:e.id,constructKind:n.kind}}}function na(e,n,t){let o=e.location.file;return{id:pe("program-resource",o,e.id,n.resourceKey??n.label,t),kind:"program-resource",label:n.label,disposition:"folded",location:{file:o,line:n.startLine,endLine:n.endLine},anchorIds:[],attributes:{ownerNodeId:e.id,durabilityClass:t,identityBasis:n.identityBasis??"runtime-observation",heapIdentity:"unknown"}}}function mn(e,n,t,o){let r=pe("edge","program-owner",n.id,t.id,o);e.has(r)||e.set(r,{id:r,kind:"program-owner",fromNodeId:n.id,toNodeId:t.id,directed:!0,disposition:"folded",semantics:[{family:"identity",subtype:o}],evidence:[{method:"parser-program-owner",strength:"exact",identity:n.id,location:t.location}]})}function gn(e,n){let t=pe("edge",n.kind,n.from.id,n.to.id,n.semantics[0].subtype);e.set(t,{id:t,kind:n.kind,fromNodeId:n.from.id,toNodeId:n.to.id,directed:!0,disposition:"folded",semantics:n.semantics,evidence:[{method:n.method,strength:"exact",identity:n.identity,location:n.from.location}]})}function pe(...e){return e.map(n=>encodeURIComponent(n)).join(":")}var ta=new Set(["control","data","state","temporal"]),fn=new Set(["contains-control","contains-event","contains-lock-scope","contains-state-effect","contains-runtime-state-effect","contains","owns-parameter","owns-runtime-observation"]),po=new Set(["discriminator-dispatch","result-callback","returns","runtime-handoff","throws"]);function mo(e,n={}){let t=new Map(e.nodes.map(v=>[v.id,v])),o=ha(e.nodes,n.focusLocations),r=Sa(e.edges,n.focusLocations),i=va(e.edges,r),a=new Set(e.paths.flatMap(v=>v.edgeIds)),s=me(e.anchors.filter(v=>v.status==="matched").flatMap(v=>v.nodeIds)),d=e.edges.filter(uo).filter(v=>oa(v,o,r,a)),c=d.filter(v=>ya(v,o,r,i,t,a)),u=lo(s,c,"forward"),p=pa(u,c),m=lo(p,c,"backward"),f=new Set([...u].filter(v=>m.has(v)));for(let v of s)f.add(v);let g=new Set(c.filter(v=>f.has(v.fromNodeId)&&f.has(v.toNodeId)).map(v=>v.id)),y=new Set(f),b=new Set(g);ia(d,y,b,o,r);let h=e.frontiers.filter(v=>xa(v,y)),x=me(h.filter(v=>v.disposition==="unsupported").map(v=>v.id)),M=me(e.edges.filter(v=>!uo(v)&&fo(v)&&Ea(v,y)).map(v=>v.id)),T=me(h.map(v=>v.id)),E=[];s.length===0&&E.push("No matched anchor node starts the corridor."),p.length===0&&E.push("No proved mechanical outcome is reachable from a matched anchor."),x.length>0&&E.push(`${x.length} unsupported frontier(s) touch the protected corridor.`),M.length>0&&E.push(`${M.length} candidate or unknown edge(s) touch the protected corridor.`);let P=E.length===0?"complete":"incomplete";return{schemaVersion:1,status:P,startNodeIds:s,outcomeNodeIds:p,baseNodeIds:me([...f]),baseEdgeIds:me([...g]),nodeIds:me([...y]),edgeIds:me([...b]),accountedFrontierIds:T,unresolvedFrontierIds:x,unresolvedEdgeIds:M,coverage:{protectedNodes:y.size,protectedEdges:b.size,baseNodes:f.size,baseEdges:g.size,accountedFrontiers:T.length,unresolvedFrontiers:x.length,unresolvedEdges:M.length},explanation:P==="complete"?"Every proved anchor-to-outcome path is closed over its material causal facts within reported coverage.":E.join(" ")}}function oa(e,n,t,o){return n===null||e.disposition==="emitted"||o.has(e.id)||t?.has(e.id)===!0?!0:(e.semantics??[]).some(r=>r.family==="identity"&&fn.has(r.subtype)?n.has(e.toNodeId):r.family==="contract"?n.has(e.fromNodeId)&&n.has(e.toNodeId):r.family==="state"?n.has(e.fromNodeId):r.family==="data"||r.family==="temporal"?n.has(e.fromNodeId)||n.has(e.toNodeId):r.family==="control"?ra(e,r,n):!1)}function ra(e,n,t){return yo(n)?t.has(e.fromNodeId):["returns","throws"].includes(n.subtype)?t.has(e.toNodeId):n.subtype==="completion-callback"?t.has(e.fromNodeId)||t.has(e.toNodeId):!1}function ia(e,n,t,o,r){let i=!0;for(;i;){i=!1;for(let a of e)ua(a,n,o,r)&&(t.has(a.id)||(t.add(a.id),i=!0),n.has(a.fromNodeId)||(n.add(a.fromNodeId),i=!0),n.has(a.toNodeId)||(n.add(a.toNodeId),i=!0))}}function aa(e,n){return go(e)||["returns","throws"].includes(e.subtype)&&!n.toProtected&&!n.toFocused?!1:po.has(e.subtype)||yo(e)||e.subtype==="completion-callback"}function sa(e,n){return e.subtype!=="lexical-successor"||n.fromProtected&&n.toProtected}function la(e,n){return fn.has(e.subtype)&&(n.toProtected||n.toFocused)}function da(e,n){switch(e.family){case"identity":return la(e,n);case"contract":return!0;case"state":return n.fromProtected&&n.fromFocused;case"temporal":return sa(e,n);case"data":return ca(n);case"control":return aa(e,n);default:return!1}}function ca(e){return e.toProtected&&(e.fromProtected||e.fromFocused||e.edgeFocused)}function ua(e,n,t,o){let r=n.has(e.fromNodeId),i=n.has(e.toNodeId);if(!r&&!i)return!1;let a={fromProtected:r,toProtected:i,fromFocused:t===null||t.has(e.fromNodeId),toFocused:t===null||t.has(e.toNodeId),edgeFocused:o?.has(e.id)===!0};return(e.semantics??[]).some(s=>da(s,a))}function pa(e,n){let t=new Set,o=new Map,r=new Map;for(let i of n)!e.has(i.fromNodeId)||!e.has(i.toNodeId)||(o.set(i.fromNodeId,(o.get(i.fromNodeId)??0)+1),r.set(i.toNodeId,(r.get(i.toNodeId)??0)+1),(i.semantics??[]).some(a=>a.family==="state"||a.family==="control"&&po.has(a.subtype))&&t.add(i.toNodeId));return Ca(e,r,o,t),me([...t])}function lo(e,n,t){let o=new Map;for(let a of n){let s=t==="forward"?a.fromNodeId:a.toNodeId,l=t==="forward"?a.toNodeId:a.fromNodeId,d=o.get(s)??[];d.push(l),o.set(s,d)}let r=new Set(e),i=[...e];for(;i.length>0;){let a=i.shift();for(let s of o.get(a)??[])r.has(s)||(r.add(s),i.push(s))}return r}function ma(e,n,t){return e.subtype==="lexical-successor"?n&&t:n||t}function ga(e,n,t,o,r){let i=t.has(n.fromNodeId),a=t.has(n.toNodeId);switch(e.family){case"state":return i;case"data":return i||a||o?.has(n.id)===!0;case"temporal":return ma(e,i,a);case"control":return ba(n,r)&&(i||a);default:return!1}}function fa(e,n,t,o,r,i){return e.family==="identity"&&fn.has(e.subtype)?t===null||t.has(n.toNodeId)||r?.has(n.toNodeId)===!0:!ta.has(e.family)||go(e)?!1:t===null?!0:e.family==="control"&&["returns","throws"].includes(e.subtype)?t.has(n.toNodeId):ga(e,n,t,o,i)}function ya(e,n,t,o,r,i){return(e.semantics??[]).some(a=>e.disposition==="emitted"||i.has(e.id)?!0:fa(a,e,n,t,o,r))}function go(e){return e.family==="control"&&["call","discriminator-dispatch","result-callback","runtime-handoff"].includes(e.subtype)}function ba(e,n){let t=n.get(e.fromNodeId),o=n.get(e.toNodeId);if(!t||!o)return!1;let r=co(t,"ownerNodeId")??(t.kind==="symbol"?t.id:null),i=co(o,"ownerNodeId")??(o.kind==="symbol"?o.id:null);return r!==null&&r===i}function ha(e,n){if(!n)return null;let t=new Map;for(let o of n){let r=t.get(o.file)??[];r.push(o.line),t.set(o.file,r)}return new Set(e.filter(o=>{if(!o.location||o.kind==="parameter")return!1;let r=t.get(o.location.file)??[],i=o.location.endLine??o.location.line;return r.some(a=>a>=o.location.line&&a<=i)}).map(o=>o.id))}function Sa(e,n){if(!n)return null;let t=new Map;for(let o of n){let r=t.get(o.file)??[];r.push(o.line),t.set(o.file,r)}return new Set(e.filter(o=>o.evidence.some(r=>{if(!r.location)return!1;let i=t.get(r.location.file)??[],a=r.location.endLine??r.location.line;return i.some(s=>s>=r.location.line&&s<=a)})).map(o=>o.id))}function va(e,n){return n===null?null:new Set(e.filter(t=>n.has(t.id)).flatMap(t=>[t.fromNodeId,t.toNodeId]))}function co(e,n){let t=e.attributes[n];return typeof t=="string"?t:null}function uo(e){return e.disposition==="excluded"||e.disposition==="unsupported"||!fo(e)?!1:e.evidence.some(n=>n.strength==="exact"||n.strength==="derived")}function fo(e){return(e.semantics??[]).some(n=>n.family!=="identity"||fn.has(n.subtype))}function yo(e){return e.subtype.startsWith("predicate-")||e.subtype.startsWith("loop-")||e.subtype.startsWith("exception-")||e.subtype.startsWith("finally-")||e.subtype.startsWith("handler-")}function Ea(e,n){return n.has(e.fromNodeId)||n.has(e.toNodeId)}function xa(e,n){return[...e.fromNodeIds,...e.memberNodeIds].some(t=>n.has(t))}function me(e){return[...new Set(e)].sort()}function Ca(e,n,t,o){for(let r of e)(n.get(r)??0)>0&&(t.get(r)??0)===0&&o.add(r)}import{createHash as Ia}from"crypto";var yn=["identity","contract","control","data","state","temporal"],La=new Set(yn);function hn(e){let n=$e(e.anchors,"anchor"),t=$e(e.nodes,"node"),o=$e(e.edges,"edge"),r=$e(e.paths??[],"path"),i=$e(e.frontiers??[],"frontier"),a=new Set(n.map(m=>m.id)),s=new Set(t.map(m=>m.id)),l=new Set(o.map(m=>m.id)),d=e.routeCatalog?{...e.routeCatalog,routes:$e(e.routeCatalog.routes,"route"),selectedRouteIds:W(e.routeCatalog.selectedRouteIds)}:void 0;Ra(n,t,o,r,a,s,l),Ma(i,d,s,l);let c=W(e.incompleteReasons??[]),u=c.length===0?"accounted":"incomplete",p=n.reduce((m,f)=>m+f.omittedCandidates,0);return{schemaVersion:1,anchors:n,nodes:t,edges:o,paths:r,frontiers:i,coverage:{status:u,scope:e.scope,nodes:xo(t),edges:xo(o),matchedAnchors:n.filter(m=>m.status==="matched").length,ambiguousAnchors:n.filter(m=>m.status==="ambiguous").length,missingAnchors:n.filter(m=>m.status==="missing").length,omittedCandidates:p,frontierGroups:i.length,programEdges:wa(o),blindSpots:W(e.blindSpots??[]),explanation:u==="accounted"?"Every node and edge discovered within the declared query scope is emitted, folded with recoverable identity, explicitly excluded, or reported unsupported.":`The declared query scope is not fully accounted for: ${c.join("; ")}`},completion:ka(u,r,e.scope),...d?{routeCatalog:d}:{}}}function Ra(e,n,t,o,r,i,a){for(let s of e)Y(`anchor ${s.id}`,[...s.nodeIds,...s.candidateNodeIds],i,"node");for(let s of n)Y(`node ${s.id}`,s.anchorIds,r,"anchor");for(let s of t){if(Y(`edge ${s.id}`,[s.fromNodeId,s.toNodeId],i,"node"),s.evidence.length===0)throw new Error(`Exploration edge ${s.id} has no evidence source.`);Ta(s)}for(let s of o)Y(`path ${s.id}`,[s.fromAnchorId,s.toAnchorId],r,"anchor"),Y(`path ${s.id}`,s.nodeIds,i,"node"),Y(`path ${s.id}`,s.edgeIds,a,"edge")}function Ma(e,n,t,o){for(let r of e)if(Y(`frontier ${r.id}`,r.fromNodeIds,t,"node"),Y(`frontier ${r.id}`,r.edgeIds,o,"edge"),Y(`frontier ${r.id}`,r.memberNodeIds,t,"node"),r.memberCount!==r.memberNodeIds.length)throw new Error(`Exploration frontier ${r.id} reports ${r.memberCount} member(s) but identifies ${r.memberNodeIds.length}.`);for(let r of n?.routes??[])Y(`route ${r.id}`,r.nodeIds,t,"node"),Y(`route ${r.id}`,r.edgeIds,o,"edge"),Y(`route ${r.id}`,[r.anchorNodeId,r.endpointNodeId],t,"node");n&&Y("route catalog selection",n.selectedRouteIds,new Set(n.routes.map(r=>r.id)),"route")}function Na(e){return e.flatMap(n=>Fa(n.semantics??[]).map(t=>({id:Pa(n.id,t),sourceEdgeId:n.id,sourceKind:n.kind,fromNodeId:n.fromNodeId,toNodeId:n.toNodeId,directed:!0,disposition:n.disposition,evidence:[...n.evidence],family:t.family,subtype:t.subtype,...t.context?{context:{...t.context}}:{},...t.attributes?{attributes:{...t.attributes}}:{}}))).sort((n,t)=>n.id.localeCompare(t.id))}function wa(e){let n=Na(e),t=new Set(n.map(a=>a.sourceEdgeId)),o=new Map(yn.map(a=>[a,new Set])),r=new Map(yn.map(a=>[a,new Set])),i=new Map(yn.map(a=>[a,0]));for(let a of n)o.get(a.family).add(a.sourceEdgeId),r.get(a.family).add(a.subtype),i.set(a.family,i.get(a.family)+1);return{sourceEdges:e.length,mappedSourceEdges:t.size,projectedEdges:n.length,unmappedSourceEdges:e.length-t.size,unsupportedSourceEdges:e.filter(a=>a.disposition==="unsupported").length,unmappedKinds:W(e.filter(a=>!t.has(a.id)).map(a=>a.kind)),families:{identity:Ae("identity",o,i,r),contract:Ae("contract",o,i,r),control:Ae("control",o,i,r),data:Ae("data",o,i,r),state:Ae("state",o,i,r),temporal:Ae("temporal",o,i,r)}}}function Ae(e,n,t,o){return{sourceEdges:n.get(e)?.size??0,projectedEdges:t.get(e)??0,subtypes:[...o.get(e)??[]].sort()}}function Ta(e){let n=new Set;for(let t of e.semantics??[]){if(!La.has(t.family))throw new Error(`Exploration edge ${e.id} has unknown program edge family: ${t.family}.`);if(t.subtype.trim().length===0)throw new Error(`Exploration edge ${e.id} has an empty program edge subtype.`);let o=Un(t);if(n.has(o))throw new Error(`Exploration edge ${e.id} repeats program edge semantic ${o}.`);n.add(o)}}function Fa(e){return[...e].sort((n,t)=>Un(n).localeCompare(Un(t)))}function Un(e){return`${e.family}:${e.subtype}`}function Pa(e,n){return`program:${encodeURIComponent(e)}:${n.family}:${encodeURIComponent(n.subtype)}`}function ka(e,n,t){return e==="incomplete"||n.some(o=>o.status!=="connected")?{status:"coverage-incomplete",scope:t,explanation:"The declared graph query has an ambiguous, missing, candidate-only, or disconnected anchor relationship."}:n.length>0?{status:"connector-complete",scope:t,explanation:"Every requested anchor pair has a selected path supported by proved repository relationships."}:{status:"frontier-accounted",scope:t,explanation:"Every discovered direction in the declared graph query is emitted or represented by an exact frontier."}}function Co(e,n={}){let t=n.maxSelectedNodes??24;if(!Number.isSafeInteger(t)||t<=0)throw new RangeError(`maxSelectedNodes must be a positive safe integer; received ${t}`);let o=new Set(e.anchors.flatMap(m=>[...m.nodeIds,...m.candidateNodeIds])),r=$a(e,o),i=W(n.routeIds??[]),a=ja(e,i),l=Ba(a,i).map(m=>({anchorNodeId:m.anchorNodeId,endpointNodeId:m.endpointNodeId,endpointKind:m.endpointKind,endpointPriority:2,nodeIds:[...m.nodeIds].reverse(),edgeIds:[...m.edgeIds].reverse()}));for(let m of l)m.nodeIds.forEach(f=>o.add(f));let d=r.length===0||r.some(m=>m.edgeIds.length>0);d&&Eo(e,o,t),_a(e,o,n.expandedFrontierIds),d&&Eo(e,o,t);let c=Ga(e,l,o),u=Da(e,r,l,o),p=hn({anchors:e.anchors,nodes:c,edges:u,paths:r,frontiers:[...e.frontiers.filter(m=>m.disposition!=="folded"),...Ro({...e,nodes:c,edges:u},o)],scope:e.coverage.scope,blindSpots:e.coverage.blindSpots,incompleteReasons:e.coverage.status==="incomplete"?[e.coverage.explanation]:[],routeCatalog:a});return Aa(p),p}function Ba(e,n){let t=new Set(e.routes.map(i=>i.id)),o=n.filter(i=>!t.has(i));if(o.length>0)throw new Error(`Unknown exploration route id(s): ${o.join(", ")}`);return e.routes.filter(i=>n.includes(i.id))}function Da(e,n,t,o){let r=new Set([...n.flatMap(a=>a.edgeIds),...t.flatMap(a=>a.edgeIds)]);return e.edges.map(a=>({...a,disposition:a.disposition==="excluded"||a.disposition==="unsupported"?a.disposition:r.has(a.id)||o.has(a.fromNodeId)&&o.has(a.toNodeId)?"emitted":"folded"}))}function Aa(e){let n=new Set(e.frontiers.flatMap(o=>o.edgeIds)),t=e.edges.filter(o=>o.disposition==="folded"&&!n.has(o.id)).map(o=>o.id);if(t.length>0)throw new Error(`Folded exploration edge(s) are not frontier-accounted: ${t.sort().join(", ")}`)}function $a(e,n){let t=[],o=e.anchors.filter(r=>r.status!=="missing"&&r.nodeIds.length+r.candidateNodeIds.length>0);for(let r=0;r<o.length;r+=1)for(let i=r+1;i<o.length;i+=1){let a=o[r],s=o[i],l=Oa(e,a,s);l.nodeIds.forEach(d=>n.add(d)),t.push(l)}return t}function Oa(e,n,t){let o=So(e,n,t,!1),i=o??So(e,n,t,!0);return i?{id:bn("path",n.id,t.id),fromAnchorId:n.id,toAnchorId:t.id,status:!o||n.status==="ambiguous"||t.status==="ambiguous"?"candidate":"connected",nodeIds:i.nodeIds,edgeIds:i.edgeIds}:{id:bn("path",n.id,t.id),fromAnchorId:n.id,toAnchorId:t.id,status:"partial",nodeIds:[],edgeIds:[]}}function _a(e,n,t){let o=Ro(e,n),r=new Set(t??[]),i=new Set(o.map(s=>s.id)),a=[...r].filter(s=>!i.has(s)).sort();if(a.length>0)throw new Error(`Unknown exploration frontier id(s): ${a.join(", ")}`);for(let s of o)r.has(s.id)&&s.memberNodeIds.forEach(l=>n.add(l))}function Ga(e,n,t){let o=new Map(n.map(s=>[s.endpointNodeId,s.endpointKind])),r=new Set(n.flatMap(s=>s.nodeIds)),i=new Map;for(let s of n)for(let l=0;l<s.nodeIds.length;l+=1){let d=s.nodeIds[l],c=l;i.set(d,Math.max(i.get(d)??0,c))}return e.nodes.map(s=>{let l=o.get(s.id),d=r.has(s.id)?{upstreamCausalPath:!0,upstreamCausalDistance:i.get(s.id)??0,...l?{upstreamCausalEndpoint:l}:{}}:{};return{...s,attributes:{...s.attributes,...d},disposition:s.disposition==="excluded"||s.disposition==="unsupported"?s.disposition:t.has(s.id)?"emitted":"folded"}})}var Io=10;function ja(e,n=[]){let t=new Map(e.nodes.map(y=>[y.id,y])),o=new Map(e.edges.map(y=>[y.id,y])),r=qa(e),i=W(e.anchors.filter(y=>y.status==="matched").flatMap(y=>y.nodeIds)),a=new Map,s=new Set,l=(y,b,h)=>{Ka(e,t,o,a,y,b,h)};for(let y of i)Ha(y,t,r,l,s);let d=[...a.values()].sort(Lo),c=new Set(d.map(y=>y.id)),u=W(n.filter(y=>c.has(y))),p=W(d.map(y=>y.anchorNodeId)),m=i.filter(y=>!p.includes(y)),f=[...s].sort(),g=e.coverage.status==="accounted"&&f.length===0?"accounted":"incomplete";return{schemaVersion:1,routes:d,selectedRouteIds:u,coverage:{status:g,scope:"Distinct proved public-entry and runtime-boundary endpoints reachable upstream in the supplied topology.",enumeration:"one-shortest-proved-path-per-endpoint",maximumDepth:Io,anchorNodeIds:i,anchorsWithRoutes:p,anchorsWithoutRoutes:m,depthLimitedAnchorNodeIds:f,routeCount:d.length,explanation:g==="accounted"?"Every distinct proved upstream public/runtime endpoint in the supplied topology has one stable shortest route.":"Route enumeration is incomplete because the supplied topology has incomplete coverage or a traversal reached the route-depth bound."}}}function Ka(e,n,t,o,r,i,a){let s=i.nodeIds[i.nodeIds.length-1],l=n.get(s),d=n.get(r);if(!l?.location||!d)return;let c=[...i.nodeIds].reverse(),u=[...i.edgeIds].reverse(),p=new Set(c),m=u.flatMap(h=>{let x=t.get(h);return x?[x]:[]}),f=e.edges.filter(h=>h.disposition!=="excluded"&&h.disposition!=="unsupported"&&(p.has(h.fromNodeId)||p.has(h.toNodeId))),g={id:bn("route",r,s,a,...u),status:"proved",anchorNodeId:r,anchorLabel:d.label,endpointNodeId:s,endpointLabel:l.label,endpointLocation:{...l.location},endpointKind:a,nodeIds:c,edgeIds:u,evidenceStrengths:W(m.flatMap(h=>h.evidence.map(x=>x.strength))),spineEdgeFamilies:bo(m,!0),relatedEdgeFamilies:bo(f,!1),crossesRuntimeBoundary:m.some(Xe)},y=`${r}\0${s}\0${a}`,b=o.get(y);(!b||Lo(g,b)<0)&&o.set(y,g)}function qa(e){let n=new Map;for(let t of e.edges){if(!Wa(t))continue;let o=n.get(t.toNodeId)??[];o.push(t),n.set(t.toNodeId,o)}for(let t of n.values())t.sort((o,r)=>Number(Xe(r))-Number(Xe(o))||ho(r)-ho(o)||o.fromNodeId.localeCompare(r.fromNodeId)||o.id.localeCompare(r.id));return n}function Ha(e,n,t,o,r){n.get(e)?.attributes.publicEntry===!0&&o(e,{nodeIds:[e],edgeIds:[]},"public-entry");let i=[{nodeIds:[e],edgeIds:[]}],a=new Map([[e,0]]);for(let s=0;s<i.length;s+=1){let l=i[s],d=l.nodeIds[l.nodeIds.length-1];l.edgeIds.length>0&&n.get(d)?.location&&n.get(d)?.attributes.publicEntry===!0&&o(e,l,"public-entry");let c=t.get(d)??[];if(l.edgeIds.length>=Io){c.some(u=>!l.nodeIds.includes(u.fromNodeId))&&r.add(e);continue}Ua(e,l,c,a,n,o,i)}}function Ua(e,n,t,o,r,i,a){for(let s of t){if(n.nodeIds.includes(s.fromNodeId))continue;let l=n.edgeIds.length+1,d=o.get(s.fromNodeId);if(d!==void 0&&d<=l)continue;let c={nodeIds:[...n.nodeIds,s.fromNodeId],edgeIds:[...n.edgeIds,s.id]};if(o.set(s.fromNodeId,l),Xe(s)&&r.get(s.fromNodeId)?.location){i(e,c,"runtime-boundary");continue}a.push(c)}}function bo(e,n){let t=e.flatMap(o=>o.semantics?.map(r=>r.family)??[]);return n&&e.length>0&&t.length===0&&t.push("control"),W(t)}function Lo(e,n){return e.anchorNodeId.localeCompare(n.anchorNodeId)||e.edgeIds.length-n.edgeIds.length||e.endpointKind.localeCompare(n.endpointKind)||e.endpointNodeId.localeCompare(n.endpointNodeId)||e.id.localeCompare(n.id)}function Wa(e){return e.disposition!=="excluded"&&e.disposition!=="unsupported"&&za(e)&&e.evidence.some(n=>["exact","derived","mixed"].includes(n.strength))}function za(e){return Xe(e)||e.kind==="boundary-observation"||e.kind==="call"||e.kind==="compiler:call"}function Xe(e){return e.kind==="runtime-boundary"||e.kind.startsWith("runtime:")}function ho(e){let n={exact:5,derived:4,mixed:3,candidate:1,unknown:0};return Math.max(0,...e.evidence.map(t=>n[t.strength]))}function So(e,n,t,o){return vo(e,n,t,o)??vo(e,t,n,o)}function vo(e,n,t,o){let r=[...n.nodeIds,...n.candidateNodeIds].sort(),i=new Set([...t.nodeIds,...t.candidateNodeIds]);if(r.some(s=>i.has(s)))return{nodeIds:[r.find(l=>i.has(l))],edgeIds:[]};let a=Va(e,o);return Ya(r,i,a)}function Va(e,n){let t=new Set(e.nodes.filter(r=>r.kind==="structural-region").map(r=>r.id)),o=new Map;for(let r of e.edges)r.disposition==="excluded"||r.disposition==="unsupported"||r.kind==="structural-membership"||t.has(r.fromNodeId)||t.has(r.toNodeId)||r.evidence.every(a=>["candidate","unknown"].includes(a.strength))&&!n||Qa(o,r.fromNodeId,r.toNodeId,r.id);for(let r of o.values())r.sort((i,a)=>i.nodeId.localeCompare(a.nodeId)||i.edgeId.localeCompare(a.edgeId));return o}function Ya(e,n,t){let o=e.map(i=>({nodeId:i,nodeIds:[i],edgeIds:[]})),r=new Set(e);for(let i=0;i<o.length;i+=1){let a=o[i];for(let s of t.get(a.nodeId)??[]){if(r.has(s.nodeId))continue;let l={nodeId:s.nodeId,nodeIds:[...a.nodeIds,s.nodeId],edgeIds:[...a.edgeIds,s.edgeId]};if(n.has(s.nodeId))return l;r.add(s.nodeId),o.push(l)}}return null}function Qa(e,n,t,o){let r=e.get(n)??[];r.push({nodeId:t,edgeId:o}),e.set(n,r)}function Xa(e,n,t){let o=Ja(e),{boundaryCandidates:r,selectedNeighborsByCandidate:i}=Za(e,n),a=[...i].filter(([s,l])=>{if(r.has(s))return!0;let d=o.get(s)??{incoming:0,outgoing:0};return(d.incoming>1||d.outgoing>1)&&l.size>1}).sort(([s,l],[d,c])=>Number(r.has(d))-Number(r.has(s))||c.size-l.size||s.localeCompare(d)).map(([s])=>s);for(let s of a){if(n.size>=t)break;n.add(s)}}function Ja(e){let n=new Map;for(let t of e.edges){let o=n.get(t.fromNodeId)??{incoming:0,outgoing:0},r=n.get(t.toNodeId)??{incoming:0,outgoing:0};o.outgoing+=1,r.incoming+=1,n.set(t.fromNodeId,o),n.set(t.toNodeId,r)}return n}function Za(e,n){let t=new Set,o=new Map;for(let r of e.edges){let i=n.has(r.fromNodeId),a=n.has(r.toNodeId);if(i===a)continue;let s=i?r.toNodeId:r.fromNodeId,l=i?r.fromNodeId:r.toNodeId,d=e.nodes.find(p=>p.id===s);if(d?.kind==="structural-region")continue;let c=o.get(s)??new Set;c.add(l),o.set(s,c),(/(?:runtime-boundary|external)/u.test(r.kind)||d&&/(?:frontier|external)/u.test(d.kind))&&t.add(s)}return{boundaryCandidates:t,selectedNeighborsByCandidate:o}}function Eo(e,n,t){let o=-1;for(;n.size!==o&&n.size<t;)o=n.size,Xa(e,n,t)}function Ro(e,n){let t=new Set(e.nodes.filter(a=>!n.has(a.id)&&a.disposition!=="excluded"&&a.disposition!=="unsupported").map(a=>a.id)),o=es(e,t),r=[],i=new Set;for(let a of[...t].sort()){if(i.has(a))continue;let s=[],l=[a];i.add(a);for(let d=0;d<l.length;d+=1){let c=l[d];s.push(c);for(let u of[...o.get(c)??[]].sort())i.has(u)||(i.add(u),l.push(u))}r.push(s.sort())}return r.map(a=>{let s=new Set(a),l=e.edges.filter(f=>s.has(f.fromNodeId)||s.has(f.toNodeId)),d=l.filter(f=>s.has(f.fromNodeId)!==s.has(f.toNodeId)),c=W(d.map(f=>s.has(f.fromNodeId)?f.toNodeId:f.fromNodeId)),u=new Set(d.map(f=>s.has(f.toNodeId)?"outgoing":"incoming")),p=W(l.map(f=>f.id)),m=W(d.map(f=>f.kind));return{id:bn("frontier",...a,...p),kind:m.join("+")||"disconnected",direction:u.size===1?[...u][0]:"undirected",fromNodeIds:c,edgeIds:p,memberNodeIds:a,memberCount:a.length,disposition:"folded",reason:d.length>0?"Connected evidence is folded beyond the first edge leaving the selected connector graph.":"Discovered evidence is disconnected from every selected anchor connector under the declared relation scope.",expansion:null}})}function bn(e,...n){let t=Ia("sha256").update(n.join("\0")).digest("hex").slice(0,16);return`${e}:${t}`}function $e(e,n){let t=[...e].sort((o,r)=>o.id.localeCompare(r.id));for(let o=1;o<t.length;o+=1)if(t[o-1].id===t[o].id)throw new Error(`Duplicate exploration ${n} id: ${t[o].id}`);return t}function Y(e,n,t,o){let r=W(n.filter(i=>!t.has(i)));if(r.length>0)throw new Error(`Exploration ${e} references missing ${o}(s): ${r.join(", ")}`)}function xo(e){return{total:e.length,emitted:e.filter(n=>n.disposition==="emitted").length,folded:e.filter(n=>n.disposition==="folded").length,excluded:e.filter(n=>n.disposition==="excluded").length,unsupported:e.filter(n=>n.disposition==="unsupported").length}}function W(e){return[...new Set(e)].sort()}function es(e,n){let t=new Map;for(let o of e.edges){if(!n.has(o.fromNodeId)||!n.has(o.toNodeId))continue;let r=t.get(o.fromNodeId)??new Set,i=t.get(o.toNodeId)??new Set;r.add(o.toNodeId),i.add(o.fromNodeId),t.set(o.fromNodeId,r),t.set(o.toNodeId,i)}return t}var ns=5,ts=12,os=8,rs=3,Mo=8,is=6,as=12,No=12,ss=12,ls=2,ds=new Set(["branch","loop","call","await","return","throw","mutation","catch","finally"]),cs=9e3,wo=Ht,To=new WeakMap;function _o(e,n){return Us(e,n,"topology")}function us(e,n,t,o,r,i=!1){let a=e.get(n);if(a)return a.depth=Math.min(a.depth,t),a.primary||=r,a.promoteBoundaryImports||=i,a.origins.add(o),a;let s={file:n,depth:t,primary:r,promoteBoundaryImports:i,origins:new Set([o]),processed:!1};return e.set(n,s),s}function ps(e,n,t,o,r,i,a="none",s=!1){let l=e.get(t.symbol);if(l)return l.depth=Math.min(l.depth,o),l.origins.add(r),i&&l.anchorQueries.add(i),l.referenceScope=ed(l.referenceScope,a),n(t.relativePath,o,r,!0,s),l;let d={definition:t,depth:o,origins:new Set([r]),anchorQueries:new Set(i?[i]:[]),referenceScope:a,processed:!1};return e.set(t.symbol,d),n(t.relativePath,o,r,!0,s),d}function ms(e,n,t,o,r,i,a=!1,s=!0){let l=se(t),d=e.get(l);if(d)return d.depth=Math.min(d.depth,o),d.origins.add(r),i&&d.anchorQueries.add(i),d.reverseCallExpansion||=a,d.traversalEligible||=s,n(t.file,o,r,d.traversalEligible,!0),d;let c={...t,depth:o,origins:new Set([r]),anchorQueries:new Set(i?[i]:[]),reverseCallExpansion:a,traversalEligible:s};return e.set(l,c),n(t.file,o,r,s,!0),c}function gs(e){let{db:n,index:t,pendingRelations:o,addFile:r,addSymbol:i,addSourceConstruct:a,observation:s,depth:l,origin:d}=e;r(s.source.file,l,d,!0,!0),s.owner.file!==s.source.file&&r(s.owner.file,l,`${d}:owner`,!0,!0);let c=Se(n,s.owner.file),u=s.owner.symbol?Me(n,t,s.owner.symbol).matches.find(f=>f.relativePath===s.owner.file):null,p=(u&&!V(u.symbol)?u:null)??Nn(c,s.source.startLine);if(p&&!V(p.symbol))return i(p,l,d,void 0,"none",!0),p.symbol;s.owner.name&&a({file:s.owner.file,name:s.owner.name,startLine:s.owner.startLine,endLine:s.owner.endLine},l,`${d}:source-owner`,void 0,!0);let m=e.index.definitionsForFile(s.source.file).filter(f=>!!f.leaf&&qe(n,s.source.file,f.leaf).some(g=>g>=s.source.startLine&&g<=s.source.endLine));if(m.length===1){let f=m[0];i(f,l,`${d}:handler-identifier`,void 0,"none",!0),Q(o,{kind:"runtime-boundary",evidence:"runtime-boundary:handler-identifier",fromFile:s.source.file,fromSymbol:null,toFile:f.relativePath,toSymbol:f.symbol,fromBoundaryParticipant:En(s),line:s.source.startLine,strength:"derived"})}return null}function fs(e){let n=0,t=0;for(let r of e.searches){let i=ys(e,r);for(let a of i.materializedMatches)bs(e,r,a,i.activeTraversalSeeds.has(Ze(a)));e.anchors.push(hs(r,i)),i.broad&&(n+=1,t+=i.matches.length)}let o=0;for(let r of e.symbolQueries)o+=Ss(e,r);return{omittedSymbolCandidates:o,broadLiteralAnchors:n,withheldLiteralMatches:t}}function ys(e,n){let t=kl(e.db,e.index,n,e.boundaryObservationLocations),o=t.filter(s=>Hl(s,e.sourceAllowed)),r=!e.opts.fullLiteralTraversal&&(t.length>ts||o.length>os),i=r?[]:t,a=new Set((r?[]:e.opts.fullLiteralTraversal?o:[...o].sort(Ol).slice(0,rs)).map(Ze));return{matches:t,traversalEligible:o,broad:r,materializedMatches:i,activeTraversalSeeds:a}}function bs(e,n,t,o){let r=o&&!t.ownerSymbol&&t.ownerStartLine!==null&&t.ownerEndLine!==null;e.addFile(t.relativePath,0,`${o?"literal-anchor":"literal-match"}:${n}`,r,r),r&&e.addSourceConstruct({file:t.relativePath,name:t.ownerShortName??`${t.relativePath}:${t.ownerStartLine+1}`,startLine:t.ownerStartLine,endLine:t.ownerEndLine},0,`literal-source-owner:${n}`,n,!0),o&&t.ownerSymbol&&fd(e,n,t.ownerSymbol),e.literalHits.push({query:n,file:t.relativePath,line:t.line,ownerSymbol:t.ownerSymbol,ownerShortName:t.ownerShortName,ownerStartLine:t.ownerStartLine,ownerEndLine:t.ownerEndLine,ownerStartColumn:t.ownerStartColumn,ownerEndColumn:t.ownerEndColumn,sourceLine:t.sourceLine.trim(),matchKind:t.matchKind,traversalSeed:o})}function hs(e,n){let{matches:t,traversalEligible:o,broad:r,materializedMatches:i,activeTraversalSeeds:a}=n;return{kind:"literal",query:e,status:t.length>0?"matched":"missing",matchedRegionIds:[],matchingLines:Oe(t),seedMatchingLines:r?0:Oe(t.filter(s=>a.has(Ze(s)))),matchOnlyLines:Oe(t.filter(s=>!a.has(Ze(s)))),eligibleSeedMatchingLines:Oe(o),materializedMatchingLines:Oe(i),withheldMatchingLines:r?Oe(t):0,literalTraversal:r?"withheld-broad":"materialized",representativeMatches:r?Ul(e,t):void 0,narrowingCommands:r?zl(e,t):void 0,exhaustiveTraversalCommand:r||a.size<o.length?`scip-query system-map --search ${F(e)} --full-literal-traversal`:void 0,seedRegionIds:[],matchOnlyRegionIds:[]}}function Ss(e,n){let t=Me(e.db,e.index,n),o=jl(e.db,n),r=t.matches.filter(d=>!V(d.symbol)),i=o!==null&&r.length===0;i&&e.addSourceConstruct(o,0,"source-construct-anchor",n,!0);let a=i?r:t.matches;for(let d of a)e.addSymbol(d,0,"symbol-anchor",n,"all",!0);let s=i?Kl(o):null,l=i?1:t.total;return e.anchors.push({kind:"symbol",query:n,status:l===0?"missing":l===1?"matched":"ambiguous",matchedRegionIds:[],symbolCandidates:[...s?[s]:[],...a.map(Xl)],totalSymbolCandidates:l,omittedSymbolCandidates:t.omitted}),t.omitted}function vs(e){let{db:n,opts:t,mode:o,searches:r,symbolQueries:i,maxDepth:a,maxTopologyCharacters:s,requestedRelationKinds:l,evidenceFloor:d,includedSourceScopes:c,workspaces:u,runtimeBoundaries:p,boundaryObservations:m,representedBoundaryLinkIds:f,files:g,symbols:y,sourceConstructs:b,literalHits:h,pendingRelations:x,externalImports:M,anchors:T,omittedSymbolCandidates:E,broadLiteralAnchors:P,withheldLiteralMatches:v,filteredUnverifiedCallEdges:z,memberCallCandidateEdges:X,unresolvedMemberCallsites:I,sourceAllowed:S}=e,O=new Set(l),_=new Map;for(let C of g.keys())_.set(C,en(C,u));let oe=[...x.values()].filter(C=>_.has(C.fromFile)&&_.has(C.toFile)).map(C=>({...C,fromRegionId:_.get(C.fromFile).id,toRegionId:_.get(C.toFile).id})).sort(Qo),re=dd(oe),ye=new Set(t.expand??[]),G=id(g,y,h,oe,re,_,ye),le=new Set([...g.values()].filter(C=>[...C.origins].some(H=>H.startsWith("literal-anchor:")||H==="literal-owner"||H==="symbol-anchor")).map(C=>_.get(C.file).id)),de=Tl(G),R=new Set(G.map(C=>C.id)),ce=[...ye].filter(C=>!R.has(C)).sort();for(let C of T)if(C.matchedRegionIds=ud(C,h,y,_),C.kind==="literal"){let H=h.filter(D=>D.query===C.query);C.seedRegionIds=w(H.filter(D=>D.traversalSeed).map(D=>_.get(D.file).id)),C.matchOnlyRegionIds=w(H.filter(D=>!D.traversalSeed).map(D=>_.get(D.file).id))}let nn=[...y.values()].filter(C=>!C.processed).length,tn=[...g.values()].filter(C=>C.primary&&!C.processed).length,Ee=[...g.values()].filter(C=>!C.primary&&!C.processed).length,N=[...y.values()].filter(C=>C.processed),J=()=>{let C=L=>!L.source||!L.action||!L.strength?[]:!O.has("runtime-boundary")||!S(L.source.file)||d==="exact"||!g.has(L.source.file)?[]:[{observationId:L.observationId,action:L.action,strength:L.strength,file:L.source.file,line:L.source.startLine,ownerShortName:L.ownerShortName??null,address:L.address??L.missingKeyParts.join(", "),reason:L.reason}],H=(p?.frontiers??[]).flatMap(L=>{let k=m.get(L.observationId);return k?!O.has("runtime-boundary")||!S(k.source.file)||d==="exact"&&k.strength!=="exact"||!g.has(k.source.file)?[]:[{observationId:k.id,action:k.action,strength:k.strength,file:k.source.file,line:k.source.startLine,ownerShortName:k.owner.name,address:Yo(k),reason:L.reason,protocol:k.protocol,role:k.role,modality:k.modality,resolution:k.resolution,sourceScope:k.sourceScope,keyParts:k.keyParts.map(Le=>({name:Le.name,value:Le.value,evidence:Le.evidence}))}]:C(L)}).sort((L,k)=>L.file.localeCompare(k.file)||L.line-k.line),D=(p?.links??[]).filter(L=>{if(!O.has("runtime-boundary")||d==="exact"&&L.strength!=="exact")return!1;let k=m.get(L.from),Le=m.get(L.to);return!!(k&&Le&&S(k.source.file)&&S(Le.source.file)&&(g.has(k.source.file)||g.has(Le.source.file)))}),Ie=D.filter(L=>L.strength==="exact").length,A=D.filter(L=>L.strength==="derived").length,lr=D.filter(L=>L.strength==="candidate").length,dr=p?.links.filter(L=>L.strength==="exact").length??0,cr=p?.links.filter(L=>L.strength==="derived").length??0,ur=p?.links.filter(L=>L.strength==="candidate").length??0;return{boundaryFrontiers:H,exactBoundaryLinks:Ie,derivedBoundaryLinks:A,candidateBoundaryLinks:lr,repositoryExactBoundaryLinks:dr,repositoryDerivedBoundaryLinks:cr,repositoryCandidateBoundaryLinks:ur}},{boundaryFrontiers:q,exactBoundaryLinks:xe,derivedBoundaryLinks:Ce,candidateBoundaryLinks:je,repositoryExactBoundaryLinks:ir,repositoryDerivedBoundaryLinks:ar,repositoryCandidateBoundaryLinks:sr}=J(),Cn=cd(M,_),Zn=Ko(T,E),In=Zn.length===0?"accounted":"incomplete",et=[...P>0?[`${P} broad literal anchor(s) withheld ${v} exact match(es) before graph traversal; representative identities and scoped search commands preserve recovery without treating every textual occurrence as relevant.`]:[],`Literal matches outside the included source scopes (${c.join(", ")}) remain visible as match-only evidence and do not seed traversal.`,p?"Runtime observations retain their own proof strength; possible peers remain candidate links when deployment, broker, receiver, or dataflow identity is unproved. Unsupported frameworks, reflection, generated names, and unresolved dependency wiring remain coverage limits.":"Runtime-boundary evidence is unavailable for this index; run scip-query reindex with this build to extract supported HTTP, event, registry, and persistence observations.","Reverse references do not recursively expand from discovered callers or callees.","Member calls use compiler occurrences, exact constructor-assigned fields, bounded unique service providers, direct factory-return members, and compiler-resolved object-literal callbacks when available. Ambiguous providers remain candidate frontiers; callback values routed through mutation, reflection, or unsupported dependency containers remain unrepresented.","Literal traversal is bounded to the smallest parser-delimited source construct; parser gaps may reduce an owner to one source line and leave its continuation untraversed.","Schema consumers stay within forward-flow regions; cross-workspace contracts may discover consumers in other workspaces. Add an explicit symbol anchor to widen either scope.",`Traversal stops after depth ${a}; nonzero frontier counts identify evidence that was discovered but not traversed.`,"Region labels are structural path groupings, not inferred runtime or architectural boundaries."],Z=Sl({db:n,anchors:T,regions:G,symbolStates:y,sourceConstructStates:b,literalHits:h,relations:oe,externalBoundaries:Cn,boundaryFrontiers:q,regionForFile:_,closureStatus:In,omittedSymbolCandidates:E,maxDepth:a,requestedRelationKinds:l,evidenceFloor:d,includedSourceScopes:c,blindSpots:et,topologyFrontiers:t.topologyFrontiers??[],routeIds:t.routeIds??[],expandedRegionIds:[...ye],maxTopologyCharacters:s,fullLiteralTraversal:t.fullLiteralTraversal??!1});if(o==="topology")return Z;let nt=(()=>{let C=(t.behaviorFocusLocations?.length??0)>0?new Set([...Z.anchors.flatMap(Ie=>Ie.nodeIds),...Z.paths.flatMap(Ie=>Ie.nodeIds)]).size:void 0,H=Ot(n,Z,{focusLocations:t.behaviorFocusLocations,...C?{maxSteps:C}:{}});wt(n,Z,H);let D=Qs(n,Z,H,t.behaviorFocusLocations??[]);return Z.corridor=mo(Z,{focusLocations:D}),H})();return(()=>{let C=Nt(n,Z,nt,{sourceAllowed:S,selectionTerms:t.selectionTerms}),H=Ll(Z),D=Nl(r,i,a,l,d,c,t.fullLiteralTraversal??!1,s,G,re,le,ye,H),Ie=Ml(r,i,a,G.filter(A=>H.has(A.id)),le,l,d,c,t.fullLiteralTraversal??!1,s);return{anchors:T,regions:G,regionRelations:re,externalBoundaries:Cn,boundaryFrontiers:q,unmatchedExpansions:ce,expansion:Ie,drilldown:de,presentation:D,topology:Z,behavior:nt,nextAnchors:C,closure:{status:In,emitted:{regions:G.length,relations:oe.length,runtimeLinks:f.size},withheld:{symbols:nn,files:tn+Ee,regions:Z.nodes.filter(A=>A.kind==="structural-region"&&A.disposition==="folded").length,drillAnchors:(de?.omittedAnchors??0)+C.omittedAnchors,literalMatches:v},ambiguous:{anchors:T.filter(A=>A.status==="ambiguous").length,omittedSymbolCandidates:E},external:Cn.length,unresolved:q.length,explanation:In==="accounted"?"Every fact reached under the declared anchors, relations, depth, evidence floor, source scopes, and installed analyzers is accounted for as emitted, withheld, ambiguous, external, or unresolved.":Zn.join("; ")},coverage:{explicitAnchorCount:T.length,requestedRelationKinds:l,evidenceFloor:d,includedSourceScopes:c,matchedAnchorCount:T.filter(A=>A.status!=="missing").length,literalSearchesComplete:!0,broadLiteralAnchors:P,withheldLiteralMatches:v,symbolCandidateSetsComplete:E===0,omittedSymbolCandidates:E,maxTraversalDepth:a,frontierSymbols:nn,frontierFiles:tn,supportFilesNotTraversed:Ee,filteredUnverifiedCallEdges:z,memberCallCandidateEdges:X,unresolvedMemberCallsites:I,runtimeBoundaryEvidenceAvailable:p!==null,runtimeBoundaryObservations:p?.observations.length??0,runtimeBoundaryExactLinks:xe,runtimeBoundaryDerivedLinks:Ce,runtimeBoundaryCandidateLinks:je,repositoryRuntimeBoundaryExactLinks:ir,repositoryRuntimeBoundaryDerivedLinks:ar,repositoryRuntimeBoundaryCandidateLinks:sr,runtimeBoundaryTraversedLinks:f.size,runtimeBoundaryFrontiers:q.length,referenceExpansionEligibleSymbols:N.filter(A=>A.referenceScope!=="none").length,referenceExpansionSkippedSymbols:N.filter(A=>A.referenceScope==="none").length,dynamicDispatchRepresented:p?.links.some(A=>A.joinRule==="carrier.discriminator"&&f.has(A.id))??!1,runtimeGeneratedLinksRepresented:p!==null,regionBoundariesAreStructural:!0,relationFamilies:{"literal-anchor":{evidence:"exact-source",scope:"all indexed documents for each explicit literal",completeWithinScope:!0},reference:{evidence:"compiler-graph",scope:"all cross-file indexed/source-attributed sites for explicit anchors and promoted non-module boundary symbols",completeWithinScope:!0},call:{evidence:"mixed",scope:"static callees plus exact SCIP call occurrences in traversed source ranges, exact constructor-assigned member receivers, and uniquely attributed direct-import member candidates",completeWithinScope:!0},"contract-symbol":{evidence:"compiler-graph",scope:"explicit compiler references to type declarations; behavioral conformance is not inferred",completeWithinScope:!0},import:{evidence:"compiler-graph",scope:"all indexed or source-resolved imports of traversed primary files",completeWithinScope:!0},"runtime-boundary":{evidence:"exact-source",scope:"direct and mechanically derived links produced by grounded runtime adapters and factorized relation groups",completeWithinScope:!0}},blindSpots:et}}})()}function Es(e,n){return e.startLine<=n.endLine&&e.endLine>=n.startLine}function Go(e,n,t,o,r,i){let{db:a,addSymbol:s,addSourceConstruct:l}=e,d=Uo(a,t,o);if(i==="local"&&d&&se(d)===se(Je(a,n)))return null;let c=d&&d.startColumn!==void 0&&d.endColumn!==void 0?we(a,t,Se(a,t)).get(Ne({...d,startColumn:d.startColumn,endColumn:d.endColumn})):void 0;if(c&&!V(c.symbol))return s(c,r,`reverse-${i}-call-owner`,void 0,i==="local"?"forward-regions":"cross-workspace-or-forward",!0),{fromSymbol:c.symbol,fromSourceConstruct:void 0};if(!d)return null;let u=l(d,r,`reverse-${i}-call-source-owner`,void 0,!0);return u?{fromSymbol:null,fromSourceConstruct:te(u)}:null}function xs(e,n,t){let{db:o,pendingRelations:r}=e,i=j(o,n.file);if((i?.callables??[]).filter(s=>s.name===n.name&&Es(s,n)).length===1){let s=(i?.callSites??[]).filter(l=>l.calleeLeaf===n.name&&!l.memberAccess);for(let l of s){let d=Go(e,n,n.file,l.line,t+1,"local");d&&Q(r,{kind:"call",evidence:"ast-callsite",fromFile:n.file,...d,toFile:n.file,toSymbol:null,toSourceConstruct:te(n),line:l.line,strength:"candidate"})}}}function Cs(e,n,t){let{db:o,reverseFileGraph:r,serviceCallerFilesBySourceConstruct:i,sourceAllowed:a,memberCallTargetsForWholeFile:s,pendingRelations:l}=e,d=new Set([...r.get(n.file)??[],...i.get(se(n))??[],...Mt(o,n.file).flatMap(c=>[...r.get(c)??[]])]);for(let c of d){if(!a(c))continue;let p=s(c).targets.filter(m=>m.targetFile===n.file&&m.targetStartLine<=n.endLine&&m.targetEndLine>=n.startLine);for(let m of p){let f=Go(e,n,c,m.line,t+1,"member");f&&Q(l,{kind:"call",...jo(m),fromFile:c,...f,toFile:n.file,toSymbol:null,toSourceConstruct:te(n),line:m.line})}}}function Is(e,n){let{relationPolicy:t,sourceConstructs:o,reverseExpandedSourceConstructs:r}=e;if(!t.has("call"))return;let i=[...o.values()].filter(a=>a.traversalEligible&&a.reverseCallExpansion&&a.depth<=n&&!r.has(se(a)));for(let a of i)r.add(se(a)),xs(e,a,n),Cs(e,a,n)}function Ls(e,n){let{db:t,index:o,sourceAllowed:r,files:i,workspaces:a,relationPolicy:s}=e;return zo(t,o,n.definition).filter(l=>r(l.file)&&Vo(n,l.file,i,a)).flatMap(l=>{let d=l.enclosingSymbol?Me(t,o,l.enclosingSymbol).matches[0]:void 0,c={site:l,callEvidence:null,owner:d&&!V(d.symbol)?d:void 0},p=(l.compilerBound?He(t,l.file):null)?.targets.filter(f=>f.sourceLine===l.line&&f.definition.symbol===n.definition.symbol);return(p?p.map(f=>{let g=gt(t,l.file,f);return{...c,sourceRange:g.sourceRange,owner:g.sourceDefinition??void 0,sourceOwner:g.sourceOwner??null}}):[c]).flatMap(f=>s.has("call")?Rs(e,f,n.definition):[f])})}function Rs(e,n,t){let{db:o,index:r,referenceCallFiles:i}=e,{site:a}=n;if(a.line===null)return[n];let s=i.get(a.file);s||(s={calls:Ue(o,a.file,0,Number.MAX_SAFE_INTEGER),owners:we(o,a.file,r.definitionsForFile(a.file))},i.set(a.file,s));let{calls:l,owners:d}=s;if(l.available){let u=l.targets.filter(p=>p.sourceLine===a.line&&p.definition.symbol===t.symbol&&(!n.sourceRange||ve(p.sourceRange,n.sourceRange)));return u.length>0?u.map(p=>Fo(n,"scip-occurrence-callsite",p.sourceOwner,d,p.implementationStatus)):[n]}if(a.compilerBound)return[n];let c=(j(o,a.file)?.callSites??[]).filter(u=>u.line===a.line&&el(o,a.file,u,t));return c.length>0?c.map(u=>Fo(n,"ast-callsite",u.owner,d)):[n]}function Fo(e,n,t,o,r){return{...e,callEvidence:{evidence:n,strength:n==="scip-occurrence-callsite"&&t!==void 0&&r!=="unresolved"?"exact":"candidate"},sourceOwner:t,owner:t===void 0?e.owner:o.get(Ne(t))}}function Ms(e,n,t){let{db:o,workspaces:r}=e,i=fe(n.relativePath,r).relativeDir,a=t.flatMap(({callEvidence:d,owner:c})=>{if(!d||!c)return[];let u=fe(c.relativePath,r).relativeDir;return[{symbol:c.symbol,workspace:u,local:u===i,priority:nl(o,c),span:c.endLine-c.startLine}]}).sort((d,c)=>Number(c.local)-Number(d.local)||c.priority-d.priority||d.span-c.span||d.symbol.localeCompare(c.symbol)),s=new Set,l=new Set;for(let d of a){if(s.size>=ls)break;s.has(d.symbol)||l.has(d.workspace)||(s.add(d.symbol),l.add(d.workspace))}return s}function Ns(e,n,t,o,r){let{db:i,addSymbol:a,addSourceConstruct:s}=e,{site:l,owner:d,callEvidence:c,sourceOwner:u}=t;if(d)return a(d,r+1,"reference-owner",void 0,c&&o.has(d.symbol)?n.referenceScope:"none"),{fromSymbol:d.symbol,fromSourceConstruct:void 0};let p=u===void 0?l.line===null?null:Uo(i,l.file,l.line):u?{file:l.file,name:u.name??"<anonymous>",startLine:u.startLine,endLine:u.endLine,startColumn:u.startColumn,endColumn:u.endColumn}:null,m=p?s(p,r+1,"reference-source-owner",void 0,c!==null):null;return{fromSymbol:null,fromSourceConstruct:m?te(m):void 0}}function ws(e,n,t){let{relationPolicy:o,addFile:r,pendingRelations:i}=e;if(n.referenceScope==="none"||!o.has("call")&&!o.has("reference")&&!o.has("contract-symbol"))return;let a=Ls(e,n),s=Ms(e,n.definition,a);for(let l of a){let{site:d,callEvidence:c}=l;r(d.file,t+1,`reference:${$(n.definition.symbol)}`,!0);let u={fromFile:d.file,...Ns(e,n,l,s,t),toFile:n.definition.relativePath,toSymbol:n.definition.symbol,line:d.line};o.has("reference")&&Q(i,{...u,kind:"reference",evidence:"indexed-or-source-reference",strength:"mixed"}),c&&Q(i,{...u,kind:"call",...c})}}function Ts(e,n,t){if(n.referenceScope==="none"||!n.definition.isTypeLike||!e.relationPolicy.has("contract-symbol"))return;let{db:o,index:r,sourceAllowed:i,files:a,workspaces:s,addSymbol:l,addFile:d,pendingRelations:c}=e,u=zo(o,r,n.definition).filter(p=>i(p.file)&&Vo(n,p.file,a,s));for(let p of new Set(u.map(m=>m.file))){let m=we(o,p,r.definitionsForFile(p)),f=Pn(o,p,0,Number.MAX_SAFE_INTEGER);for(let g of f.targets){if(g.definition.symbol!==n.definition.symbol)continue;let y=g.sourceOwner?m.get(Ne(g.sourceOwner)):g.sourceDefinition??void 0;y&&l(y,t+1,"type-reference-owner",void 0,"none",!0),d(p,t+1,"type-reference",!0),Q(c,{kind:"contract-symbol",evidence:"scip-occurrence-type-reference",strength:"exact",fromFile:p,fromSymbol:y?.symbol??null,toFile:n.definition.relativePath,toSymbol:n.definition.symbol,line:g.sourceLine})}}}function Fs(e,n,t,o){let{db:r,index:i,sourceAllowed:a,fileGraph:s,traversalMetrics:l,addSymbol:d,pendingRelations:c}=e;for(let u of t){let p=Me(r,i,u.symbol).matches.find(f=>f.relativePath===u.file);if(!p||!a(p.relativePath))continue;if(!(p.relativePath===n.relativePath||(s.get(n.relativePath)??new Set).has(p.relativePath))){l.filteredUnverifiedCallEdges+=1;continue}d(p,o+1,`call:${$(n.symbol)}`,void 0,"none",!0),Q(c,{kind:"call",evidence:u.source,fromFile:n.relativePath,fromSymbol:n.symbol,toFile:p.relativePath,toSymbol:p.symbol,line:null,strength:ft(u.source)})}}function Ps(e,n){let{index:t,relationPolicy:o,symbols:r}=e,i=[...r.values()].filter(s=>!s.processed&&s.depth<=n),a=o.has("call")?t.calleeMap(i.map(s=>s.definition),{additive:!1,semantic:!1}):new Map;for(let s of i)s.processed=!0,ws(e,s,n),Ts(e,s,n),Fs(e,s.definition,a.get(s.definition.symbolId)??[],n)}function ks(e,n,t){let{db:o,sourceConstructs:r,symbols:i,boundaryObservations:a,boundaryObservationDepths:s}=e,l=[...r.values()].filter(b=>b.traversalEligible&&b.file===n.file&&b.depth<=t),d=[...i.values()].filter(b=>b.definition.relativePath===n.file&&b.depth<=t).map(b=>{let h=An(o,n.file,b.definition.startLine);return{startLine:h?.startLine??b.definition.startLine,endLine:h?.endLine??b.definition.endLine}}),c=b=>[...i.values()].filter(h=>h.definition.relativePath===n.file&&h.definition.startLine<=b&&h.definition.endLine>=b).sort((h,x)=>h.definition.endLine-h.definition.startLine-(x.definition.endLine-x.definition.startLine)||h.definition.startLine-x.definition.startLine)[0],u=we(o,n.file,[...i.values()].filter(b=>b.definition.relativePath===n.file).map(b=>b.definition)),p=[...a.values()].filter(b=>b.source.file===n.file&&s.has(b.id)),m=[...l.map(b=>({startLine:b.startLine,endLine:b.endLine})),...p.map(b=>({...Do(o,b)}))],f=[...d,...m],g=(j(o,n.file)?.callSites??[]).filter(b=>f.some(h=>b.line>=h.startLine&&b.line<=h.endLine));return{state:n,traversalRanges:f,sourceOwnedCallsites:g,sourceRelationAtLine:(b,h)=>{let x=h===void 0?void 0:u.get(Ne(h)),M=h===void 0?c(b):x?i.get(x.symbol):void 0,T=l.find(P=>P.startLine<=b&&P.endLine>=b&&(h===void 0||h!==null&&P.startLine===h.startLine&&P.endLine===h.endLine&&P.startColumn===h.startColumn&&P.endColumn===h.endColumn)),E=p.find(P=>{let v=Do(o,P);return v.startLine<=b&&v.endLine>=b});return{fromFile:n.file,fromSymbol:M?.definition.symbol??null,fromBoundaryParticipant:E?En(E):void 0,fromSourceConstruct:T?te(T):void 0}},compilerResolvedCallsiteKeys:new Set}}function Wn(e,n,t,o){let{db:r,relationPolicy:i}=e;if(!i.has(o))return;let{state:a,traversalRanges:s}=n;for(let l of s){let d=o==="call"?Ue(r,a.file,l.startLine,l.endLine):o==="contract-symbol"?Pn(r,a.file,l.startLine,l.endLine):mt(r,a.file,l.startLine,l.endLine);for(let c of d.targets)Bs(e,n,t,o,c)}}function Bs(e,n,t,o,r){let{sourceAllowed:i,addSymbol:a,pendingRelations:s}=e,{state:l,sourceRelationAtLine:d,compilerResolvedCallsiteKeys:c}=n;if(!i(r.definition.relativePath))return;let u=`${r.sourceLine}\0${r.calleeLeaf}`;if(o==="reference"&&c.has(u))return;let p=d(r.sourceLine,r.sourceOwner);if(r.sourceDefinition!==void 0){if(r.sourceDefinition&&!e.symbols.has(r.sourceDefinition.symbol)&&!p.fromSourceConstruct)return;p.fromSymbol=r.sourceDefinition?.symbol??null}o==="reference"&&p.fromSymbol===r.definition.symbol||(a(r.definition,t+1,`scip-occurrence-${o}:${l.file}:${r.sourceLine+1}`,void 0,"none",!0),Q(s,{kind:o,evidence:o==="call"?"scip-occurrence-callsite":o==="contract-symbol"?"scip-occurrence-type-reference":"scip-occurrence-reference",...p,toFile:r.definition.relativePath,toSymbol:r.definition.symbol,line:r.sourceLine,strength:o==="call"&&(r.sourceOwner===void 0||r.implementationStatus==="unresolved")?"candidate":"exact"}),o==="call"&&c.add(u))}function Ds(e,n,t){let{db:o,relationPolicy:r,traversalMetrics:i,pendingRelations:a}=e,{state:s,traversalRanges:l,compilerResolvedCallsiteKeys:d,sourceRelationAtLine:c}=n,u=r.has("call")?_n(o,s.file,{ranges:l,excludeIndexedTargets:!1}):{targets:[],unresolvedCallsites:0};i.unresolvedMemberCallsites+=u.unresolvedCallsites;let p=u.targets.filter(m=>!d.has(`${m.line}\0${m.calleeLeaf}`));i.memberCallCandidateEdges+=p.filter(m=>m.strength!=="exact"&&(m.resolution!=="imported-service-object-member"||(m.resolutionAlternativeCount??0)>1)).length;for(let m of p){let{targetDefinition:f,targetConstruct:g}=As(e,s.file,t,m);Q(a,{kind:"call",...jo(m),...c(m.line),toFile:m.targetFile,toSymbol:f?.symbol??null,toSourceConstruct:g?te(g):void 0,line:m.line})}}function jo(e){return{evidence:e.resolution==="constructed-member-receiver"?"ast-constructed-member-callsite":e.resolution==="factory-callback-member"?"ast-factory-callback-callsite":e.resolution==="imported-service-object-member"?"ast-service-member-callsite":"ast-member-import-candidate",strength:e.resolution==="imported-service-object-member"?(e.resolutionAlternativeCount??0)===1?"derived":"candidate":e.strength??"candidate"}}function As(e,n,t,o){let{db:r,addSourceConstruct:i,serviceCallerFilesBySourceConstruct:a,reverseFileGraph:s,addSymbol:l}=e,d=(o.resolutionAlternativeCount??1)===1,c=o.targetSymbol?Se(r,o.targetFile).find(p=>p.symbol===o.targetSymbol):void 0;if(c)return l(c,t+1,`member-call:${n}`,void 0,"none",!0),{targetDefinition:c,targetConstruct:null};let u=i({file:o.targetFile,name:o.calleeLeaf,startLine:o.targetStartLine,endLine:o.targetEndLine},t+1,`member-call:${n}`,void 0,o.resolution==="imported-service-object-member"&&d,d);if(u&&o.serviceFile){let p=se(u),m=a.get(p)??new Set;for(let f of s.get(o.serviceFile)??[])m.add(f);a.set(p,m)}return{targetDefinition:c,targetConstruct:u}}function $s(e,n,t){let{db:o,relationPolicy:r,externalImports:i,sourceAllowed:a,addFile:s,pendingRelations:l}=e,{state:d}=n;if(r.has("import"))for(let c of e.reverseFileGraph.get(d.file)??[])!a(c)||!ko(o,c).some(u=>u.fromFile===d.file)||(s(c,t+1,`reverse-import:${d.file}`,!1),Q(l,{kind:"import",evidence:"indexed-or-source-import",fromFile:c,fromSymbol:null,toFile:d.file,toSymbol:null,line:null,strength:"mixed"}));for(let c of r.has("import")||r.has("call")?ko(o,d.file):[]){if(!c.fromFile){if(r.has("import")){let p=i.get(c.shortName)??{name:c.shortName,fromFiles:new Set,unresolved:c.resolution==="unresolved"};p.fromFiles.add(d.file),i.set(c.shortName,p)}continue}if(!a(c.fromFile))continue;r.has("import")&&(s(c.fromFile,t+1,`import:${d.file}`,!1),Q(l,{kind:"import",evidence:"indexed-or-source-import",fromFile:d.file,fromSymbol:null,toFile:c.fromFile,toSymbol:c.symbol,line:null,strength:"mixed"}));let u={...c,fromFile:c.fromFile};Os(e,n,t,u),_s(e,n,t,u)}}function Os(e,n,t,o){let{db:r,index:i,relationPolicy:a,addSymbol:s,pendingRelations:l}=e,{state:d,sourceOwnedCallsites:c,sourceRelationAtLine:u}=n;if(He(r,d.file)===null&&a.has("call")&&c.length>0){let p=(o.source==="compiler"?Me(r,i,o.symbol).matches:Tn(r,o.fromFile,o.importedName)).filter(m=>!V(m.symbol));for(let m of p){let f=c.filter(g=>g.calleeLeaf===o.localName).map(g=>g.line);if(f.length!==0){s(m,t+1,`source-call:${d.file}`,void 0,"none",!0);for(let g of f)Q(l,{kind:"call",evidence:"ast-callsite",...u(g),toFile:m.relativePath,toSymbol:m.symbol,line:g,strength:"candidate"})}}}}function _s(e,n,t,o){let{db:r,index:i,addSymbol:a,workspaces:s}=e,{state:l}=n;if(!l.promoteBoundaryImports||!Jl(l.file,o.fromFile,s))return;let d=o.source==="compiler"?Me(r,i,o.symbol).matches:Tn(r,o.fromFile,o.importedName);for(let c of d)if(Zl(c.relativePath,o.fromFile,s)&&!V(c.symbol)){let u=fe(l.file,s).relativeDir!==fe(c.relativePath,s).relativeDir;a(c,t+1,`boundary-import:${l.file}`,void 0,u?"cross-workspace-or-forward":"forward-regions")}}function Gs(e,n){let t=[...e.files.values()].filter(o=>!o.processed&&o.primary&&o.depth<=n);for(let o of t){o.processed=!0;let r=ks(e,o,n);Wn(e,r,n,"call"),Wn(e,r,n,"reference"),Wn(e,r,n,"contract-symbol"),Ds(e,r,n),$s(e,r,n)}}function js(e,n){let{relationPolicy:t,runtimeBoundaries:o}=e;for(let r of t.has("runtime-boundary")?o?.links??[]:[])Ks(e,r,n)}function Ks(e,n,t){let{boundaryObservations:o,sourceAllowed:r,boundaryObservationDepths:i,symbols:a,sourceConstructs:s}=e;if(!qs(e,n))return;let l=o.get(n.from),d=o.get(n.to);if(!l||!d||!r(l.source.file)||!r(d.source.file))return;let c=$o(l,t,i,a,s),u=$o(d,t,i,a,s);c===null&&u===null||Hs(e,n,l,d,c,u,t+1)}function qs(e,n){return!(e.evidenceFloor==="exact"&&n.strength!=="exact")&&!e.representedBoundaryLinkIds.has(n.id)}function Hs(e,n,t,o,r,i,a){let{addBoundaryObservation:s,sourceConstructs:l,boundaryObservationDepths:d,pendingRelations:c,representedBoundaryLinkIds:u}=e,p=s(t,r??a,`runtime-boundary:${n.joinRule}`),m=s(o,i??a,`runtime-boundary:${n.joinRule}`),f=p?null:Ao(l,t),g=m?null:Ao(l,o);d.set(t.id,r??a),d.set(o.id,i??a),Q(c,{kind:"runtime-boundary",evidence:`runtime-boundary:${n.joinRule}`,fromFile:t.source.file,fromSymbol:p,toFile:o.source.file,toSymbol:m,fromBoundaryParticipant:En(t),toBoundaryParticipant:En(o),fromSourceConstruct:f?te(f):void 0,toSourceConstruct:g?te(g):void 0,runtimeBoundaryKey:n.matchedKeyParts.map(y=>`${y.name}=${y.value}`).join(" "),line:t.source.startLine,strength:n.strength}),u.add(n.id)}function Us(e,n,t){let o=U(n.searches??[]),r=U(n.symbols??[]),i=Ws(n.relations),a=new Set(i),s=zs(n.evidenceFloor),l=Vs(n.sourceScopes),d=new Set(l),c=N=>d.has(Bn(N));if(o.length===0&&r.length===0)throw new Error("system-map requires at least one --search or --symbol anchor.");let{maxDepth:u,maxTopologyCharacters:p}=Ys(n),m=new yt(e),{fileGraph:f,reverseFileGraph:g,workspaces:y,runtimeBoundaries:b}=nd(e,m),h=new Map((b?.observations??[]).map(N=>[N.id,N])),x=new Set((b?.observations??[]).map(N=>`${N.source.file}\0${N.source.startLine}`)),M=new Set,T=new Map,E=new Map,P=new Map,v=new Map,z=[],X=new Map,I=new Map,S=[],O={filteredUnverifiedCallEdges:0,memberCallCandidateEdges:0,unresolvedMemberCallsites:0},_=new Set,oe=new Map,re=new Map,ye=N=>{let J=re.get(N);if(J)return J;let q=_n(e,N,{excludeIndexedTargets:!1});return re.set(N,q),q},G=(N,J,q,xe,Ce=!1)=>us(E,N,J,q,xe,Ce),le=(N,J,q,xe,Ce="none",je=!1)=>ps(P,G,N,J,q,xe,Ce,je),de=(N,J,q,xe,Ce=!1,je=!0)=>ms(v,G,N,J,q,xe,Ce,je),R=(N,J,q)=>gs({db:e,index:m,pendingRelations:X,addFile:G,addSymbol:le,addSourceConstruct:de,observation:N,depth:J,origin:q}),{omittedSymbolCandidates:ce,broadLiteralAnchors:nn,withheldLiteralMatches:tn}=fs({db:e,index:m,searches:o,symbolQueries:r,opts:n,boundaryObservationLocations:x,sourceAllowed:c,addFile:G,addSymbol:le,addSourceConstruct:de,literalHits:z,anchors:S}),Ee={db:e,index:m,relationPolicy:a,evidenceFloor:s,sourceAllowed:c,fileGraph:f,reverseFileGraph:g,workspaces:y,runtimeBoundaries:b,boundaryObservations:h,boundaryObservationDepths:T,representedBoundaryLinkIds:M,files:E,symbols:P,sourceConstructs:v,pendingRelations:X,externalImports:I,reverseExpandedSourceConstructs:_,serviceCallerFilesBySourceConstruct:oe,referenceCallFiles:new Map,traversalMetrics:O,memberCallTargetsForWholeFile:ye,addFile:G,addSymbol:le,addSourceConstruct:de,addBoundaryObservation:R};for(let N=0;N<u;N+=1)Is(Ee,N),Ps(Ee,N),Gs(Ee,N),js(Ee,N);return vs({db:e,opts:n,mode:t,searches:o,symbolQueries:r,maxDepth:u,maxTopologyCharacters:p,requestedRelationKinds:i,evidenceFloor:s,includedSourceScopes:l,workspaces:y,runtimeBoundaries:b,boundaryObservations:h,representedBoundaryLinkIds:M,files:E,symbols:P,sourceConstructs:v,literalHits:z,pendingRelations:X,externalImports:I,anchors:S,omittedSymbolCandidates:ce,broadLiteralAnchors:nn,withheldLiteralMatches:tn,filteredUnverifiedCallEdges:O.filteredUnverifiedCallEdges,memberCallCandidateEdges:O.memberCallCandidateEdges,unresolvedMemberCallsites:O.unresolvedMemberCallsites,sourceAllowed:c})}function Ws(e){let n=U(e&&e.length>0?e:wo),t=n.filter(o=>!wo.includes(o));if(t.length>0)throw new Error(`Unsupported system-map relation kind(s): ${t.join(", ")}`);return n}function zs(e){let n=e??"derived";if(n!=="exact"&&n!=="derived")throw new Error(`Unsupported system-map evidence floor: ${n}`);return n}function Vs(e){let n=U(e&&e.length>0?e:["production"]),t=["production","test","fixture","example","generated","script","unknown"],o=n.filter(r=>!t.includes(r));if(o.length>0)throw new Error(`Unsupported system-map source scope(s): ${o.join(", ")}`);return n}function Ys(e){let n=e.maxDepth??ns;if(!Number.isSafeInteger(n)||n<0)throw new RangeError(`maxDepth must be a non-negative safe integer; received ${n}`);let t=e.maxTopologyCharacters??cs;if(!Number.isSafeInteger(t)||t<=0)throw new RangeError(`maxTopologyCharacters must be a positive safe integer; received ${t}`);return{maxDepth:n,maxTopologyCharacters:t}}function Qs(e,n,t,o){let r=new Map,i=l=>{r.set(`${l.file}\0${l.line}`,l)};for(let l of o)i(l);let a=new Set(n.anchors.filter(l=>l.status==="matched").flatMap(l=>l.nodeIds));Xs(t,a,i);let s=n.edges.filter(l=>l.disposition==="emitted").flatMap(l=>l.evidence.flatMap(d=>d.location?[d.location]:[]));for(let l of s)i(l),Js(e,n,l,i);return[...r.values()].sort((l,d)=>l.file.localeCompare(d.file)||l.line-d.line)}function Xs(e,n,t){for(let o of e.steps)if(!(!o.location||!n.has(o.nodeId)||(o.behavior?.rawCharacters??1/0)>3e3))for(let r of o.behavior?.lines??[])r.signals.some(i=>ds.has(i))&&t({file:o.location.file,line:r.line,endLine:r.endLine})}function Js(e,n,t,o){let r=n.nodes.filter(a=>a.location?.file===t.file&&["symbol","source-construct","runtime-boundary-participant"].includes(a.kind)&&a.location.line<=t.line&&(a.location.endLine??a.location.line)>=t.line).sort((a,s)=>(a.location.endLine??a.location.line)-a.location.line-((s.location.endLine??s.location.line)-s.location.line)||a.id.localeCompare(s.id))[0];if(!r?.location)return;let i=ln(e,t.file,r.location.line,r.location.endLine??r.location.line,[t.line]);for(let a of i)o({file:t.file,line:a.line,endLine:a.endLine})}function Zs(e){if(e.ownerStartLine===null||e.ownerStartLine===void 0)throw new Error(`Literal hit ${e.file}:${e.line+1} has no source-owner start line.`);if(e.ownerEndLine===null||e.ownerEndLine===void 0)throw new Error(`Literal hit ${e.file}:${e.line+1} has no source-owner end line.`);return{file:e.file,name:e.ownerShortName??`${e.file}:${e.ownerStartLine+1}`,startLine:e.ownerStartLine,endLine:e.ownerEndLine,startColumn:e.ownerStartColumn,endColumn:e.ownerEndColumn}}function se(e){return`${e.file}\0${e.startLine}\0${e.endLine}\0${e.name}\0${e.startColumn??""}\0${e.endColumn??""}`}function te(e){return{file:e.file,name:e.name,startLine:e.startLine,endLine:e.endLine,...e.startColumn===void 0?{}:{startColumn:e.startColumn,endColumn:e.endColumn}}}function el(e,n,t,o){if(t.calleeLeaf===o.leaf)return!0;let r=it(e,n,t.calleeLeaf);return r!==null&&r.importedName===o.leaf&&r.sourcePath!==null&&Ln(r.sourcePath,o.relativePath)}function Je(e,n){if(n.startColumn!==void 0&&n.endColumn!==void 0)return te(n);let t=(j(e,n.file)?.callables??[]).filter(s=>s.startLine<=n.startLine&&s.endLine>=n.endLine),o=t.filter(s=>s.name===n.name),r=o.length>0?o:t;if(r.length>1)return te(n);let i=r.length===1?r[0]:void 0;if(i&&i.endLine>=n.endLine)return{file:n.file,name:/^source@\d+$/u.test(i.name)&&!/^source@\d+$/u.test(n.name)?n.name:i.name,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn};let a=Wo(e,n.file,n.startLine);return a&&a.endLine>=n.endLine?{file:n.file,name:a.name,startLine:a.startLine,endLine:a.endLine}:te(n)}function Ge(e){return K("source-construct",e.file,String(e.startLine),String(e.endLine),e.name,...e.startColumn===void 0?[]:[String(e.startColumn),String(e.endColumn)])}function Sn(e,n){let t=st(e,n.symbol,n.relativePath),o=new Set(["package-surface-file","transitive-package-surface"]),r=t.filter(a=>!o.has(a)||Ct(e,n)),i=r.some(a=>!o.has(a));return{evidence:r,priority:i||lt(e,n.symbol,n.relativePath)?2:1}}function nl(e,n){let t=Sn(e,n);return t.evidence.length>0?t.priority:0}function tl(e,n){let t=Se(e,n.file),o=t.filter(r=>r.startLine<=n.startLine&&r.endLine>=n.startLine).sort((r,i)=>r.endLine-r.startLine-(i.endLine-i.startLine)||r.startLine-i.startLine);for(let r of o){let i=Sn(e,r);if(i.evidence.length>0)return i}for(let r of rl(e,n.file,n.startLine)){let i=t.filter(a=>a.leaf===r.name).sort((a,s)=>Math.abs(a.startLine-r.startLine)-Math.abs(s.startLine-r.startLine)||a.symbol.localeCompare(s.symbol));for(let a of i){let s=Sn(e,a);if(s.evidence.length>0)return s}return{evidence:[],priority:0}}return{evidence:[],priority:0}}var ol=new Set(["variable_declarator","function_declaration","generator_function_declaration","class_declaration"]);function rl(e,n,t){let o=ee(e,n)?.rootNode;if(!o||o.startPosition.row>t||o.endPosition.row<t)return[];let r=[],i=(j(e,n)?.callables??[]).filter(s=>s.startLine<=t&&s.endLine>=t);if(i.length>0&&!Mn(i,t))return[];let a=Qn(o,t);for(;a;){if(ol.has(a.type)){let s=a.childForFieldName("name")??a.namedChild(0);(s?.type==="identifier"||s?.type==="type_identifier")&&r.push({name:s.text,startLine:a.startPosition.row})}a=a.parent}return r}function il(e){return[...new Map([...e.sourceConstructStates.values()].map(n=>Je(e.db,n)).map(n=>[se(n),n])).values()].sort((n,t)=>n.file.localeCompare(t.file)||n.startLine-t.startLine||n.endLine-t.endLine)}function al(e,n){return e.anchors.map((t,o)=>{let r=K("anchor",String(o),t.kind,t.query),i=[...e.symbolStates.values()].filter(c=>c.anchorQueries.has(t.query)).flatMap(c=>{if(!V(c.definition.symbol))return[ge(c.definition.symbol)];let u=n.filter(p=>p.file===c.definition.relativePath).map(p=>Ge(p));return[ge(c.definition.symbol),...u]}),a=[...e.sourceConstructStates.values()].filter(c=>c.anchorQueries.has(t.query)).map(c=>Ge(Je(e.db,c))),s=e.literalHits.filter(c=>c.query===t.query&&c.traversalSeed===!0&&c.ownerSymbol&&e.symbolStates.has(c.ownerSymbol)).map(c=>ge(c.ownerSymbol)),l=e.literalHits.filter(c=>c.query===t.query&&c.traversalSeed===!0&&!c.ownerSymbol&&c.ownerStartLine!==null&&c.ownerStartLine!==void 0&&c.ownerEndLine!==null&&c.ownerEndLine!==void 0).map(c=>Ge(Je(e.db,Zs(c)))),d=w(t.kind==="symbol"?[...i,...a]:s.length+l.length>0?[...s,...l]:t.seedRegionIds??[]);return{id:r,kind:t.kind,query:t.query,status:t.status,nodeIds:t.status==="ambiguous"?[]:d,candidateNodeIds:t.status==="ambiguous"?d:[],omittedCandidates:t.omittedSymbolCandidates??0}})}function sl(e){let n=new Map;for(let t of e)for(let o of[...t.nodeIds,...t.candidateNodeIds]){let r=n.get(o)??[];r.push(t.id),n.set(o,r)}return n}function ll(e,n,t){let o=e.relations.flatMap(s=>[s.fromBoundaryParticipant,s.toBoundaryParticipant].flatMap(l=>l?.ownerName?[l]:[])),r=e.regions.map(s=>({id:s.id,kind:"structural-region",label:s.label,disposition:"folded",location:null,anchorIds:w(t.get(s.id)??[]),attributes:{workspace:s.workspace,structuralPath:s.structuralPath,minimumDepth:s.minDepth,files:s.fileCount,symbols:s.symbolCount,expanded:s.expanded}}));for(let s of e.symbolStates.values())r.push(cl(e,s,t));for(let s of n)r.push(ul(e,s,t,o));let i=new Set(r.map(s=>s.id));for(let s of dl(e)){let l=_e(e,s);i.has(l)||r.push({id:l,kind:"file",label:s,disposition:"folded",location:{file:s,line:0},anchorIds:[],attributes:{regionId:e.regionForFile.get(s)?.id??""}})}let a=new Map;for(let s of e.relations)s.fromBoundaryParticipant&&a.set(s.fromBoundaryParticipant.observationId,s.fromBoundaryParticipant),s.toBoundaryParticipant&&a.set(s.toBoundaryParticipant.observationId,s.toBoundaryParticipant);for(let s of[...a.values()].sort((l,d)=>l.observationId.localeCompare(d.observationId)))r.push(pl(e,s));return r}function dl(e){return w([...e.relations.filter(n=>n.kind==="import").flatMap(n=>[n.fromFile,n.toFile]),...e.externalBoundaries.flatMap(n=>n.fromFiles)])}function _e(e,n){let t=Se(e.db,n).filter(o=>V(o.symbol));return t.length===1?ge(t[0].symbol):K("file",n)}function cl(e,n,t){let o=e.regionForFile.get(n.definition.relativePath)?.id;if(!o)throw new Error(`System-map symbol ${n.definition.symbol} has no structural region.`);let r=ge(n.definition.symbol),i=Sn(e.db,n.definition),a=dt(e.db,n.definition.relativePath,n.definition);return{id:r,kind:"symbol",label:$(n.definition.symbol),disposition:(t.get(r)?.length??0)>0?"emitted":"folded",location:{file:n.definition.relativePath,line:a?.startLine??n.definition.startLine,endLine:a?.endLine??n.definition.endLine,...a?.startColumn===void 0?{}:{startColumn:a.startColumn,endColumn:a.endColumn}},anchorIds:w(t.get(r)??[]),attributes:{regionId:o,depth:n.depth,leaf:n.definition.leaf??$(n.definition.symbol),referenceScope:n.referenceScope,...i.evidence.length>0?{publicEntry:!0,publicEntryPriority:i.priority,publicEntryEvidence:i.evidence.join(",")}:{}}}}function ul(e,n,t,o){let r=e.regionForFile.get(n.file)?.id;if(!r)throw new Error(`Source construct ${n.name} has no structural region.`);let i=Ge(n),s=o.find(d=>d.file===n.file&&d.line>=n.startLine&&d.line<=n.endLine)?.ownerName??n.name,l=tl(e.db,n);return{id:i,kind:"source-construct",label:s,disposition:(t.get(i)?.length??0)>0?"emitted":"folded",location:{file:n.file,line:n.startLine,endLine:n.endLine,...n.startColumn===void 0?{}:{startColumn:n.startColumn,endColumn:n.endColumn}},anchorIds:w(t.get(i)??[]),attributes:{regionId:r,leaf:s,sourceOwned:!0,...l.evidence.length>0?{publicEntry:!0,publicEntryPriority:l.priority,publicEntryEvidence:l.evidence.join(",")}:{}}}}function pl(e,n){let t=e.regionForFile.get(n.file)?.id;if(!t)throw new Error(`Runtime-boundary participant ${n.observationId} has no structural region.`);return{id:Xn(n.observationId),kind:"runtime-boundary-participant",label:n.address||n.ownerName||`${n.role} ${n.action}`,disposition:"folded",location:{file:n.file,line:n.line,endLine:n.endLine},anchorIds:[],attributes:{regionId:t,action:n.action,protocol:n.protocol,role:n.role,...n.address?{address:n.address}:{},ownerSymbol:n.ownerSymbol}}}function ml(e,n,t,o,r,i,a,s,l,d=!1){let c=zn(n,o?ge(o):null);if(c&&!V(o))return c;let u=zn(n,r?Xn(r.observationId):null);if(d&&u)return u;let p=gl(e,n,i);return p||u||fl(t,s,l,c,a)}function gl(e,n,t){return zn(n,t?Ge(Je(e,t)):null)}function zn(e,n){return n&&e.has(n)?n:null}function fl(e,n,t,o,r){let i=t===null?null:(e.get(n)??[]).filter(a=>a.startLine<=t&&a.endLine>=t).sort((a,s)=>a.endLine-a.startLine-(s.endLine-s.startLine)||a.startLine-s.startLine)[0]??null;return i?Ge(i):o??r}function yl(e,n,t){let o=new Set(n.map(c=>c.id)),r=ne(t,c=>c.file),i=(c,u,p,m,f,g,y=!1)=>ml(e.db,o,r,c,u,p,m,f,g,y),a=[];yd(e,a);let s=ne(e.relations,c=>`${c.kind==="import"?_e(e,c.fromFile):i(c.fromSymbol,c.fromBoundaryParticipant,c.fromSourceConstruct,c.fromRegionId,c.fromFile,c.line,c.kind==="runtime-boundary")}\0${c.kind==="import"?_e(e,c.toFile):i(c.toSymbol,c.toBoundaryParticipant,c.toSourceConstruct,c.toRegionId,c.toFile,null)}\0${c.kind}`),l=new Set,d=c=>{if(c.kind==="runtime-boundary"&&c.fromBoundaryParticipant){let u=Xn(c.fromBoundaryParticipant.observationId),p=i(c.fromSymbol,void 0,c.fromSourceConstruct,c.fromRegionId,c.fromFile,c.line);p!==u&&!l.has(u)&&(l.add(u),a.push({id:K("edge","boundary-observation",p,u),kind:"boundary-observation",fromNodeId:p,toNodeId:u,directed:!0,disposition:"folded",semantics:dn("boundary-observation"),evidence:[{method:"runtime-boundary-observation-owner",strength:c.strength??"unknown",identity:c.fromBoundaryParticipant.observationId,location:{file:c.fromBoundaryParticipant.file,line:c.fromBoundaryParticipant.line,endLine:c.fromBoundaryParticipant.endLine}}]}))}};for(let c of s.values()){let u=c[0],p=u.kind==="import"?_e(e,u.fromFile):i(u.fromSymbol,u.fromBoundaryParticipant,u.fromSourceConstruct,u.fromRegionId,u.fromFile,u.line,u.kind==="runtime-boundary"),m=u.kind==="import"?_e(e,u.toFile):i(u.toSymbol,u.toBoundaryParticipant,u.toSourceConstruct,u.toRegionId,u.toFile,null);d(u),(p===m?n.find(g=>g.id===p):null)?.kind!=="structural-region"&&a.push({id:K("edge",u.kind,p,m),kind:u.kind,fromNodeId:p,toNodeId:m,directed:!0,disposition:"folded",semantics:Ut(u),evidence:Rl(c.map(g=>({method:g.evidence,strength:g.strength??"unknown",identity:g.kind==="runtime-boundary"&&g.runtimeBoundaryKey?g.runtimeBoundaryKey:`${g.fromSymbol??g.fromFile} -> ${g.toSymbol??g.toFile}`,location:g.line===null?null:{file:g.fromFile,line:g.line}})))})}return a}function bl(e,n,t){let o=[];for(let r of e.externalBoundaries){let i=K("external",r.kind,r.name),a=w(r.fromFiles.map(s=>_e(e,s)));n.push({id:i,kind:r.kind,label:r.name,disposition:r.kind==="unresolved-import"?"unsupported":"folded",location:null,anchorIds:[],attributes:{}}),r.kind==="unresolved-import"&&o.push({id:K("frontier",r.kind,r.name,...a),kind:"import",direction:"outgoing",fromNodeIds:a,edgeIds:a.map(s=>K("edge",r.kind,s,i)),memberNodeIds:[i],memberCount:1,disposition:"unsupported",reason:`Module reference ${r.name} has no resolved repository target; missing or dynamic imports cannot establish dependency completeness.`,expansion:null});for(let s of a)t.push({id:K("edge",r.kind,s,i),kind:r.kind,fromNodeId:s,toNodeId:i,directed:!0,disposition:r.kind==="unresolved-import"?"unsupported":"folded",semantics:r.kind==="unresolved-import"?[{family:"identity",subtype:"imports-unresolved"}]:dn("external-import"),evidence:[{method:"indexed-or-source-import",strength:"mixed",identity:`${s} -> ${r.name}`,location:null}]})}return e.boundaryFrontiers.forEach((r,i)=>{let a=e.regionForFile.get(r.file)?.id;if(!a)throw new Error(`Runtime-boundary frontier ${r.observationId} has no system-map region.`);let s=K("unsupported","runtime-boundary",r.observationId,String(i)),l=K("edge","runtime-boundary-frontier",a,s);n.push({id:s,kind:"runtime-boundary-frontier",label:r.address,disposition:"unsupported",location:{file:r.file,line:r.line},anchorIds:[],attributes:{action:r.action,strength:r.strength,owner:r.ownerShortName}}),t.push({id:l,kind:"runtime-boundary-frontier",fromNodeId:a,toNodeId:s,directed:!0,disposition:"unsupported",evidence:[{method:"runtime-boundary-extractor",strength:r.strength,identity:r.observationId,location:{file:r.file,line:r.line}}]}),o.push({id:K("frontier","runtime-boundary",r.observationId,String(i)),kind:"runtime-boundary",direction:"unresolved",fromNodeIds:[a],edgeIds:[l],memberNodeIds:[s],memberCount:1,disposition:"unsupported",reason:r.reason,expansion:null})}),o}function hl(e,n){let t=n.topologyFrontiers.some(g=>g==="frontier:program-facts"),o=Co(e,{expandedFrontierIds:n.topologyFrontiers.filter(g=>g!=="frontier:program-facts"),routeIds:n.routeIds}),r=o.nodes.filter(g=>g.disposition==="emitted"||o.anchors.some(y=>y.status==="matched"&&y.nodeIds.includes(g.id))),i=n.relations.filter(g=>r.some(y=>vl(g,y))),a=n.boundaryFrontiers.filter(g=>r.some(y=>xl(g,y))),s=Vt(n.db,i,r),l=Zt(n.db,r),d=Jt(n.db,r),c=so(n.db,r,a),u=[...s.nodes,...l.nodes,...d.nodes,...c.nodes].map(g=>t&&g.disposition==="folded"?{...g,disposition:"emitted"}:g),p=[...s.edges,...l.edges,...d.edges,...c.edges].map(g=>t&&g.disposition==="folded"?{...g,disposition:"emitted"}:g),m=t?null:Cl(r,u,p),f=hn({anchors:o.anchors,nodes:[...o.nodes,...u],edges:[...o.edges,...p],paths:o.paths,frontiers:[...o.frontiers,...s.frontiers,...l.frontiers,...d.frontiers,...c.frontiers,...m?[m]:[]],scope:o.coverage.scope,blindSpots:[...o.coverage.blindSpots,...s.blindSpots,...l.blindSpots,...c.blindSpots],incompleteReasons:o.coverage.status==="incomplete"?[o.coverage.explanation]:[],...o.routeCatalog?{routeCatalog:o.routeCatalog}:{}});f.completion=o.completion;for(let g of f.frontiers)g.disposition==="folded"&&(g.id.startsWith("frontier:program-facts:")||(g.expansion=Il(n,g.id)));return f}function Ko(e,n){return[...e.filter(t=>t.status==="missing").map(t=>`${t.kind} selector ${JSON.stringify(t.query)} is ${t.status}`),...n>0?[`${n} ambiguous symbol candidate(s) were omitted`]:[]]}function Sl(e){let n=il(e),t=al(e,n),o=ll(e,n,sl(t)),r=yl(e,o,n),i=bl(e,o,r);return hl(hn({anchors:t,nodes:o,edges:r,paths:[],frontiers:i,scope:`explicit anchors; relations ${e.requestedRelationKinds.join(", ")}; depth ${e.maxDepth}; evidence floor ${e.evidenceFloor}; source scopes ${e.includedSourceScopes.join(", ")}`,blindSpots:[...e.blindSpots],incompleteReasons:Ko(e.anchors,e.omittedSymbolCandidates)}),e)}function vl(e,n){return e.fromSymbol&&n.id===ge(e.fromSymbol)||e.toSymbol&&n.id===ge(e.toSymbol)?!0:n.location?El(e,n.location):!1}function El(e,n){let t=n.endLine??n.line;return n.file===e.fromFile&&e.line!==null&&e.line>=n.line&&e.line<=t||n.file===e.toFile}function xl(e,n){if(!n.location||n.location.file!==e.file)return!1;let t=n.location.endLine??n.location.line;return e.line>=n.location.line&&e.line<=t||n.label===e.ownerShortName||typeof e.ownerShortName=="string"&&n.label.includes(e.ownerShortName)}function Cl(e,n,t){let o=w(n.filter(i=>i.disposition==="folded").map(i=>i.id)),r=w(t.filter(i=>i.disposition==="folded").map(i=>i.id));return o.length===0&&r.length===0?null:{id:K("frontier","program-facts"),kind:"program-facts",direction:"outgoing",fromNodeIds:w(e.map(i=>i.id)),edgeIds:r,memberNodeIds:o,memberCount:o.length,disposition:"folded",reason:"Control, data, state, and temporal facts are folded beneath the selected high-level owners.",expansion:null}}function Il(e,n){return`scip-query system-map ${[...e.anchors.flatMap(o=>o.kind==="literal"?[`--search ${F(o.query)}`]:[`--symbol ${F(o.query)}`]),`--depth ${e.maxDepth}`,...e.requestedRelationKinds.map(o=>`--relation ${F(o)}`),`--evidence-floor ${F(e.evidenceFloor)}`,...e.includedSourceScopes.map(o=>`--source-scope ${F(o)}`),...e.fullLiteralTraversal?["--full-literal-traversal"]:[],`--topology-characters ${e.maxTopologyCharacters}`,...e.expandedRegionIds.map(o=>`--expand ${F(o)}`),...e.topologyFrontiers.map(o=>`--frontier ${F(o)}`),...e.routeIds.map(o=>`--route ${F(o)}`),`--frontier ${F(n)}`].join(" ")}`}function Ll(e){let n=new Set;for(let t of e.nodes){if(t.disposition!=="emitted")continue;t.kind==="structural-region"&&n.add(t.id);let o=t.attributes.regionId;typeof o=="string"&&n.add(o)}return n}function Rl(e){let n=new Map;for(let t of e){let o=t.location?`${t.location.file}:${t.location.line}`:"";n.set(`${t.method}\0${t.strength}\0${t.identity??""}\0${o}`,t)}return[...n.values()].sort((t,o)=>t.method.localeCompare(o.method)||(t.identity??"").localeCompare(o.identity??"")||(t.location?.file??"").localeCompare(o.location?.file??"")||(t.location?.line??0)-(o.location?.line??0))}function K(...e){return e.map(n=>encodeURIComponent(n)).join(":")}function ge(e){return K("symbol",e)}function Ml(e,n,t,o,r,i,a,s,l,d){let c=[...o].sort((g,y)=>Ho(g,y,r)),p=c.slice(0,No).map(g=>g.id),m=c.slice(No).map(g=>g.id),f=[...e.map(g=>`--search ${F(g)}`),...n.map(g=>`--symbol ${F(g)}`),`--depth ${t}`,...i.map(g=>`--relation ${F(g)}`),`--evidence-floor ${F(a)}`,...s.map(g=>`--source-scope ${F(g)}`),...l?["--full-literal-traversal"]:[],`--topology-characters ${d}`,...p.map(g=>`--expand ${F(g)}`)];return{command:p.length===0?null:`scip-query system-map ${f.join(" ")}`,regionCount:p.length,regionIds:p,candidateRegionCount:o.length,omittedRegionIds:m}}function Nl(e,n,t,o,r,i,a,s,l,d,c,u,p){let m=[...l].sort((I,S)=>Ho(I,S,c)).filter(I=>!p||p.has(I.id)||u.has(I.id)),f=d.length>0?Math.floor(s*.4):0,g=s-f,y=bd(m,u,g),{selectedRegionIds:b}=y,h=y.estimatedCharacters,x=d.filter(I=>b.has(I.fromRegionId)&&b.has(I.toRegionId)).sort(wl),M=[];for(let I of x){let S=Po(I);M.length>0&&h+S>s||(M.push(vn(I)),h+=S)}let T=l.filter(I=>!b.has(I.id)).map(I=>I.id).sort(),E=new Set(M),P=d.filter(I=>!E.has(vn(I))).length,v=l.reduce((I,S)=>I+qo(S),0)+d.reduce((I,S)=>I+Po(S),0),z=m.every(I=>b.has(I.id))&&M.length===x.length,X=[...e.map(I=>`--search ${F(I)}`),...n.map(I=>`--symbol ${F(I)}`),`--depth ${t}`,...o.map(I=>`--relation ${F(I)}`),`--evidence-floor ${F(r)}`,...i.map(I=>`--source-scope ${F(I)}`),...a?["--full-literal-traversal"]:[],`--topology-characters ${Math.max(s,v)}`];return{maxCharacters:s,estimatedCharacters:h,totalEstimatedCharacters:v,regionIds:[...b],omittedRegionIds:T,relationKeys:M,omittedRelations:P,complete:z,expansionCommand:z?null:`scip-query system-map ${X.join(" ")}`}}function qo(e){return 120+e.id.length+e.anchorQueries.join(",").length+e.relationKinds.join(",").length+e.notableSymbols.slice(0,2).reduce((n,t)=>n+t.shortName.length+t.file.length,0)}function Po(e){return 70+e.fromRegionId.length+e.toRegionId.length+e.kinds.join(",").length+e.evidence.join(",").length}function wl(e,n){let t=o=>o.kinds.includes("runtime-boundary")?0:o.kinds.includes("contract-symbol")?1:2;return t(e)-t(n)||n.relationCount-e.relationCount||vn(e).localeCompare(vn(n))}function vn(e){return`${e.fromRegionId}\0${e.toRegionId}`}function Ho(e,n,t){let o=s=>t.has(s.id)?0:1,r=s=>s.sourceFileCount===0?1:0,i=s=>s.symbolCount+s.literalHitCount>0?0:1,a=s=>[...s.incomingRegionIds,...s.outgoingRegionIds].filter(l=>t.has(l)).length;return o(e)-o(n)||i(e)-i(n)||r(e)-r(n)||e.minDepth-n.minDepth||a(n)-a(e)||n.literalHitCount-e.literalHitCount||e.testFileCount-n.testFileCount||e.label.localeCompare(n.label)}function Tl(e){let n=[],t=new Set;for(let r of e.filter(i=>i.expanded))hd(r,n,t);let o=Fl(n,t);return{command:o.length===0?null:`scip-query inspect ${o.map(r=>`--at ${F(`${r.file}:${r.line+1}`)}`).join(" ")} --view behavior`,definitionCommand:null,candidateAnchors:n.length,selectedAnchors:o.length,omittedAnchors:n.length-o.length,anchors:o}}function Fl(e,n){let t=[...ne(e,a=>a.regionId).values()],o=[],r=new Set,i=Math.min(ss,24);for(let a of e)if(!(!n.has(a.file)||r.has(a.file))&&(o.push(a),r.add(a.file),o.length===i))return o;return Sd(t,o,r,i),o}function Pl(e,n,t,o){let r=s=>s.kind==="test"?2:s.kind==="barrel"?1:0,i=s=>(o.get(s.file)??[]).some(l=>l.traversalSeed)?0:1,a=s=>{let l=t.get(s.file)??[];return Math.min(5,...l.map(d=>Fe(d.origins)))};return r(e)-r(n)||i(e)-i(n)||a(e)-a(n)||e.depth-n.depth||e.file.localeCompare(n.file)}function kl(e,n,t,o){let r=[];for(let i of tt(e,{includeIgnored:!1}))Bl(e,n,i,t,o,r);return r}function Bl(e,n,t,o,r,i){let a=be(e,t);if(a.length===0)return;let s=[];for(let u=0;u<a.length;u+=1){let p=a[u]??"";p.includes(o)&&s.push({line:u,sourceLine:p})}if(s.length===0)return;let l=n.definitionsForFile(t),d=j(e,t)?.callables??[],c={db:e,relativePath:t,definitions:l,callables:d,boundaryObservationLocations:r,lexicalOwners:we(e,t,l)};for(let{line:u,sourceLine:p}of s){let m=new Map;for(let f=p.indexOf(o);f>=0;f=p.indexOf(o,f+Math.max(1,o.length))){let g=Dl(c,u,p,o,f);m.set(Ze(g),g)}i.push(...m.values())}}function Dl(e,n,t,o,r){let{definitions:i,boundaryObservationLocations:a,relativePath:s}=e,l=ee(e.db,s),d=j(e.db,s)?.language,c=l&&Ke(l.rootNode,n,n,he,{startColumn:r,endColumn:r+o.length}),u=c&&d?Rn(c,d):null,p=i.filter(h=>h.startLine<=n&&h.endLine>=n&&(h.startLine!==n||(h.startChar??0)<=r)&&(h.endLine!==n||h.endChar===void 0||h.endChar>=r+o.length)),m=u?e.lexicalOwners.get(Ne(u))??null:p.length===1?p[0]:null,f=m&&!V(m.symbol)?m:null,g=u??Al(e,n,f,null,m),y=a.has(`${s}\0${n}`),b=!!(f?.isFunctionLike||u);return{relativePath:s,line:n,sourceLine:t,ownerSymbol:f?.symbol??null,ownerShortName:$l(f,u,m),ownerStartLine:g.startLine,ownerEndLine:g.endLine,ownerStartColumn:u?.startColumn,ownerEndColumn:u?.endColumn,matchKind:ql(t,o),seedPriority:y?0:b?1:2}}function Al(e,n,t,o,r){let{db:i,relativePath:a}=e,s=t?.startLine??o?.startLine??r?.startLine??n,l=t?.endLine??o?.endLine??r?.endLine??n;return $n(i,a,n,s,l)}function $l(e,n,t){return e?$(e.symbol):n?.name??(t?$(t.symbol):null)}function Ol(e,n){let t={"exact-value":0,boundary:1,embedded:2};return e.seedPriority-n.seedPriority||t[e.matchKind]-t[n.matchKind]||e.relativePath.localeCompare(n.relativePath)||e.line-n.line}function Oe(e){return new Set(e.map(n=>`${n.relativePath}:${n.line}`)).size}function Ze(e){return`${e.relativePath}\0${e.line}\0${e.ownerSymbol??e.ownerShortName}\0${e.ownerStartColumn??""}\0${e.ownerEndColumn??""}`}function Uo(e,n,t){let o=j(e,n)?.callables??[],r=Mn(o,t);if(r)return{file:n,name:r.name,startLine:r.startLine,endLine:r.endLine,startColumn:r.startColumn,endColumn:r.endColumn};if(o.some(s=>s.startLine<=t&&s.endLine>=t))return null;let i=Wo(e,n,t);if(!i)return null;let a=$n(e,n,t,i.startLine,i.endLine);return{file:n,name:i.name,startLine:a.startLine,endLine:a.endLine}}function _l(e,n){if(e.type==="variable_declarator"){let t=e.childForFieldName("name")??e.namedChild(0),o=e.childForFieldName("value")??e.namedChild(1);if(t?.type==="identifier"&&o&&Yn(o,n))return{name:t.text,startLine:e.startPosition.row,endLine:e.endPosition.row}}return Gl(e,n)}function Gl(e,n){if(e.type==="pair"){let t=e.childForFieldName("key")??e.namedChild(0),o=e.childForFieldName("value")??e.namedChild(1),r=t?.text.replace(/^(?:['"])(.*)(?:['"])$/u,"$1");if(r&&o&&/^[A-Za-z_$][\w$]*$/u.test(r)&&Yn(o,n))return{name:r,startLine:e.startPosition.row,endLine:e.endPosition.row}}return null}function Wo(e,n,t){let o=ee(e,n)?.rootNode;if(!o||o.startPosition.row>t||o.endPosition.row<t)return null;let r=Qn(o,t);for(;r;){let a=_l(r,t);if(a)return a;r=r.parent}let i=An(e,n,t);return i?{name:`source@${t+1}`,startLine:i.startLine,endLine:i.endLine}:null}function Yn(e,n){return["arrow_function","function_expression","generator_function","generator_function_declaration"].includes(e.type)&&e.startPosition.row<=n&&e.endPosition.row>=n?!0:e.namedChildren.some(t=>t.startPosition.row<=n&&t.endPosition.row>=n&&Yn(t,n))}function Qn(e,n){let t=e.namedChildren.filter(o=>o.startPosition.row<=n&&o.endPosition.row>=n).sort((o,r)=>o.endIndex-o.startIndex-(r.endIndex-r.startIndex)||o.startPosition.row-r.startPosition.row)[0];return t?Qn(t,n):e}function jl(e,n){let t=n.match(/^(.+):(\d+)(?:-(\d+))?$/u);if(!t)return null;let o=ot(e,t[1],{allowMultiple:!1})[0]?.relativePath;if(!o)return null;let r=Math.max(0,Number.parseInt(t[2],10)-1),i=t[3]?Math.max(r,Number.parseInt(t[3],10)-1):r,a=j(e,o),s=ee(e,o);if(!a||!s)return null;let l=Ke(s.rootNode,r,i,he);if(!l||!he.has(l.type))return null;let d=l.namedChild(0),c=d?Rn(d,a.language):null;return c?{file:o,...c,name:c.name??"<anonymous>"}:null}function Kl(e){return{symbol:`source-construct:${e.file}:${e.startLine}:${e.endLine}:${e.name}`,shortName:e.name,relativePath:e.file,startLine:e.startLine,endLine:e.endLine}}function ql(e,n){let t=/[\p{L}\p{N}_$]/u,o=e.indexOf(n);for(;o>=0;){let r=e[o-1]??"",i=e[o+n.length]??"";if((r==="'"||r==='"'||r==="`")&&i===r)return"exact-value";if(!t.test(r)&&!t.test(i))return"boundary";o=e.indexOf(n,o+Math.max(1,n.length))}return"embedded"}function Vn(e){return rn(e)==="test"?!1:!/(?:^|[/._-])(?:fixtures?|mocks?|previews?|demos?|examples?|stories)(?:[/._-]|$)/iu.test(e)}function Hl(e,n){return e.matchKind!=="embedded"&&n(e.relativePath)&&(Bn(e.relativePath)!=="production"||Vn(e.relativePath))}function Ul(e,n){let t=[...n].sort(Wl),o=[],r=new Set;for(let i of t)if(!r.has(i.relativePath)&&(o.push(i),r.add(i.relativePath),o.length>=Mo))break;for(let i of t){if(o.length>=Mo)break;o.includes(i)||o.push(i)}return o.map(i=>({query:e,file:i.relativePath,line:i.line,ownerSymbol:i.ownerSymbol,ownerShortName:i.ownerShortName,ownerStartLine:i.ownerStartLine,ownerEndLine:i.ownerEndLine,ownerStartColumn:i.ownerStartColumn,ownerEndColumn:i.ownerEndColumn,sourceLine:i.sourceLine.trim(),matchKind:i.matchKind,traversalSeed:!1}))}function Wl(e,n){let t={"exact-value":0,boundary:1,embedded:2};return t[e.matchKind]-t[n.matchKind]||+(n.ownerSymbol!==null)-+(e.ownerSymbol!==null)||+!Vn(e.relativePath)-+!Vn(n.relativePath)||e.relativePath.localeCompare(n.relativePath)||e.line-n.line}function zl(e,n){let t=new Map;for(let o of n){let r=Vl(o.relativePath);t.set(r,(t.get(r)??0)+1)}return[...t].sort(([o,r],[i,a])=>a-r||o.localeCompare(i)).slice(0,is).map(([o])=>`scip-query search ${F(e)} --scope ${F(o)}`)}function Vl(e){let n=e.split("/").filter(Boolean);if(n.length<=1)return e;let t=n.slice(0,-1),o=t.lastIndexOf("src");return o>=0?t.slice(0,Math.min(t.length,o+3)).join("/"):t.slice(0,Math.min(t.length,3)).join("/")}function zo(e,n,t){let o=new Set(n.callerFileMap([t],{semantic:!1}).get(t.symbolId));o.add(t.relativePath);let r=[];for(let i of[...o].sort()){let a=at(e,i,t.symbol),s=a!==null,l=a??Yl(e,i,t);if(l.length===0){s||r.push({file:i,line:null,enclosingSymbol:null,compilerBound:s});continue}let d=n.definitionsForFile(i);for(let c of l)r.push({file:i,line:c,enclosingSymbol:Nn(d,c)?.symbol??null,compilerBound:s})}return r}function Yl(e,n,t){let o=on(e,n).filter(i=>i.importedName===t.leaf&&i.sourcePath!==null&&Ln(i.sourcePath,t.relativePath)),r=o.length>0?o.map(i=>i.localName??i.importedName):[t.leaf];return[...new Set(r.filter(Boolean).flatMap(i=>qe(e,n,i)))].sort((i,a)=>i-a)}function ko(e,n){let t=ee(e,n)?.rootNode,o=t&&an(n,t);if(o?.available){let i=on(e,n);return o.moduleReferences().flatMap(a=>{let s=a.literal?rt(e,n,a.specifier):null,l=s&&ut(e,s)?s:null,d=l?"internal":!a.literal||a.specifier.startsWith(".")||a.specifier.startsWith("/")?"unresolved":"external",c=i.filter(p=>l&&p.sourcePath===l),u={symbol:a.specifier,shortName:a.specifier,fromFile:l,source:"parsed-source",resolution:d};return c.length>0?c.map(p=>({...u,importedName:p.importedName,localName:p.localName??p.importedName})):[{...u,importedName:"*",localName:"*"}]})}let r=e.all(`SELECT DISTINCT gs.symbol, def_d.relative_path AS from_file
|
|
7
|
+
FROM mentions m
|
|
8
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
9
|
+
JOIN documents imp_d ON c.document_id = imp_d.id
|
|
10
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
11
|
+
LEFT JOIN (
|
|
12
|
+
SELECT m2.symbol_id, c2.document_id
|
|
13
|
+
FROM mentions m2
|
|
14
|
+
JOIN chunks c2 ON m2.chunk_id = c2.id
|
|
15
|
+
WHERE m2.role = 1
|
|
16
|
+
GROUP BY m2.symbol_id
|
|
17
|
+
) sym_def ON sym_def.symbol_id = gs.id
|
|
18
|
+
LEFT JOIN documents def_d ON sym_def.document_id = def_d.id
|
|
19
|
+
WHERE imp_d.relative_path = ? AND m.role = 2
|
|
20
|
+
ORDER BY def_d.relative_path, gs.symbol`,n);return r.length>0?r.map(i=>({symbol:i.symbol,shortName:$(i.symbol),importedName:Bo($(i.symbol)),localName:Bo($(i.symbol)),fromFile:i.from_file,source:"compiler"})):on(e,n).map(i=>{let a=Ql(i.importedName,i.localName,i.kind),s=i.localName??i.importedName,l=i.importedName==="default"?s:i.importedName;return{symbol:a,shortName:a,importedName:l,localName:s,fromFile:i.sourcePath,source:"parsed-source"}})}function Bo(e){return e.slice(e.lastIndexOf(":")+1).replace(/\(\)$/u,"")||e}function Ql(e,n,t){return t==="namespace"&&e==="*"&&n?`* as ${n}`:t==="default"&&n?`default as ${n}`:t==="side-effect"?"(side effect import)":n&&n!==e?`${e} as ${n}`:e}function Me(e,n,t){let o=wn(e,t);if(!o.match)return{matches:[],total:0,omitted:0};let r=[o.match,...o.candidates.map(a=>wn(e,a.symbol).match)].filter(a=>a!==null),i=new Map;for(let a of r){let s=n.definitionsForFile(a.relativePath).find(l=>l.symbol===a.symbol);s&&i.set(s.symbol,s)}return{matches:[...i.values()],total:o.total,omitted:Math.max(0,o.total-i.size)}}function Xl(e){return{symbol:e.symbol,shortName:$(e.symbol),relativePath:e.relativePath,startLine:e.startLine,endLine:e.endLine}}function Q(e,n){let t=[n.kind,n.fromFile,n.fromSymbol??"",n.toFile,n.toSymbol??"",n.fromBoundaryParticipant?.observationId??"",n.toBoundaryParticipant?.observationId??"",n.fromSourceConstruct?se(n.fromSourceConstruct):"",n.toSourceConstruct?se(n.toSourceConstruct):"",n.runtimeBoundaryKey??"",n.line??""].join("\0");e.set(t,n)}function En(e){return{observationId:e.id,action:e.action,protocol:e.protocol,role:e.role,address:Yo(e),file:e.source.file,line:e.source.startLine,endLine:e.source.endLine,ownerName:e.owner.name,ownerSymbol:e.owner.symbol}}function Do(e,n){let t=be(e,n.source.file);return We(e,n.source.file,0,Math.max(0,t.length-1),[n.source.startLine])}function Ao(e,n){let t=[...e.values()];for(let o of[n.owner,n.source]){let r=t.filter(i=>i.file===o.file&&i.startLine<=o.startLine&&i.endLine>=o.startLine).sort((i,a)=>i.endLine-i.startLine-(a.endLine-a.startLine)||i.startLine-a.startLine)[0];if(r)return r}return null}function $o(e,n,t,o,r){let i=[],a=t.get(e.id);a!==void 0&&a<=n&&i.push(a);for(let s of o.values()){if(s.depth>n)continue;let l=s.definition;Oo(l,e)&&i.push(s.depth)}for(let s of r.values())s.depth>n||Oo(s,e)&&i.push(s.depth);return i.length>0?Math.min(...i):null}function Oo(e,n){let t=e.relativePath??e.file;return[n.owner,n.source].some(o=>t===o.file&&e.startLine<=o.startLine&&e.endLine>=o.startLine)}function Xn(e){return K("runtime-boundary-participant",e)}function Jl(e,n,t){let o=fe(e,t),r=fe(n,t);return o.relativeDir!==r.relativeDir?!0:/(?:^|\/)(?:contracts?|schemas?|db\/schema)(?:\/|$)/u.test(n)}function Zl(e,n,t){return en(e,t).id===en(n,t).id}function Vo(e,n,t,o){if(e.referenceScope==="all")return!0;let r=en(n,o).id;return[...t.values()].some(a=>a.promoteBoundaryImports&&en(a.file,o).id===r)?!0:e.referenceScope!=="cross-workspace-or-forward"?!1:fe(n,o).relativeDir!==fe(e.definition.relativePath,o).relativeDir}function ed(e,n){let t={none:0,"forward-regions":1,"cross-workspace-or-forward":2,all:3};return t[e]>=t[n]?e:n}function nd(e,n){let t=To.get(e);if(t)return t;let o=n.fileDependencyGraph(),r={fileGraph:o,reverseFileGraph:td(o),workspaces:od(n.sourceFiles()),runtimeBoundaries:Et(e)};return To.set(e,r),r}function td(e){let n=new Map;for(let[t,o]of e)for(let r of o){let i=n.get(r)??new Set;i.add(t),n.set(r,i)}return n}function fe(e,n){return n.find(t=>e===t.relativeDir||e.startsWith(`${t.relativeDir}/`))??{name:"root",relativeDir:""}}function od(e){let n=new Set(["apps","packages","services","crates","libs","tools"]),t=new Map;for(let o of e){let r=o.split("/").filter(Boolean);if(r.length<3||!n.has(r[0]))continue;let i=`${r[0]}/${r[1]}`;t.set(i,{name:r[1],relativeDir:i})}return[...t.values()].sort((o,r)=>r.relativeDir.length-o.relativeDir.length)}function en(e,n){let t=fe(e,n),r=(t.relativeDir?e.slice(t.relativeDir.length+1):e).split("/").filter(Boolean);r[0]==="src"&&r.shift();let i=rd(r);return{id:`region:${t.relativeDir||"root"}:${i}`,label:`${t.name}:${i}`,workspace:t.name,structuralPath:i}}function rd(e){if(e.length<=1)return"root";let n=e[0],t=e[1];return["components","features","modules"].includes(n)?`${n}/${t}`:n==="db"?`${n}/${t}`:["contracts","routes","services"].includes(n)?n:n==="tests"||n==="__tests__"?"tests":n}function id(e,n,t,o,r,i,a){let s=ne([...e.values()],m=>i.get(m.file).id),l=ne([...n.values()],m=>i.get(m.definition.relativePath).id),d=ne(t,m=>i.get(m.file).id),c=new Map;for(let m of o)for(let f of new Set([m.fromRegionId,m.toRegionId])){let g=c.get(f)??[];g.push(m),c.set(f,g)}let u=ne(r,m=>m.toRegionId),p=ne(r,m=>m.fromRegionId);return[...s.entries()].map(([m,f])=>{let g=i.get(f[0].file),y=l.get(m)??[],b=d.get(m)??[],h=c.get(m)??[],x=a.has(m),M=y.map(ld).sort(pd).slice(0,as),T=f.filter(E=>rn(E.file)==="test").length;return{id:m,label:g.label,workspace:g.workspace,structuralPath:g.structuralPath,minDepth:Math.min(...f.map(E=>E.depth)),fileCount:f.length,sourceFileCount:f.length-T,testFileCount:T,symbolCount:y.length,literalHitCount:b.length,anchorQueries:w([...b.map(E=>E.query),...y.flatMap(E=>[...E.anchorQueries])]),relationKinds:w(h.map(E=>E.kind)),incomingRegionIds:w((u.get(m)??[]).map(E=>E.fromRegionId)),outgoingRegionIds:w((p.get(m)??[]).map(E=>E.toRegionId)),memberCallCandidateRelationCount:h.filter(E=>E.evidence==="ast-member-import-candidate").length,notableSymbols:M,omittedNotableSymbols:Math.max(0,y.length-M.length),expanded:x,files:x?f.map(ad).sort(md):[],symbols:x?y.map(sd).sort(gd):[],literalHits:x?[...b].sort(Xo):[],relations:x?[...h].sort(Qo):[]}}).sort((m,f)=>m.minDepth-f.minDepth||m.label.localeCompare(f.label))}function ad(e){return{file:e.file,kind:rn(e.file),depth:e.depth,origins:w([...e.origins])}}function sd(e){return{symbol:e.definition.symbol,shortName:$(e.definition.symbol),file:e.definition.relativePath,startLine:e.definition.startLine,endLine:e.definition.endLine,depth:e.depth,origins:w([...e.origins]),anchorQueries:w([...e.anchorQueries]),referenceExpansion:e.referenceScope!=="none",referenceScope:e.referenceScope}}function ld(e){return{shortName:$(e.definition.symbol),file:e.definition.relativePath,origins:w([...e.origins])}}function dd(e){return[...ne(e.filter(t=>t.fromRegionId!==t.toRegionId),t=>`${t.fromRegionId}\0${t.toRegionId}`).values()].map(t=>({fromRegionId:t[0].fromRegionId,toRegionId:t[0].toRegionId,kinds:w(t.map(o=>o.kind)),relationCount:t.length,fromFiles:w(t.map(o=>o.fromFile)),toFiles:w(t.map(o=>o.toFile)),fromSymbols:w(t.flatMap(o=>o.fromSymbol?[$(o.fromSymbol)]:[])),toSymbols:w(t.flatMap(o=>o.toSymbol?[$(o.toSymbol)]:[])),evidence:w(t.map(o=>o.evidence)),strengths:w(t.map(o=>o.strength??"unknown"))})).sort((t,o)=>t.fromRegionId.localeCompare(o.fromRegionId)||t.toRegionId.localeCompare(o.toRegionId))}function cd(e,n){return[...e.values()].map(t=>({kind:t.unresolved?"unresolved-import":"external-import",name:t.name,fromRegionIds:w([...t.fromFiles].flatMap(o=>{let r=n.get(o);return r?[r.id]:[]})),fromFiles:w([...t.fromFiles])})).sort((t,o)=>t.name.localeCompare(o.name))}function ud(e,n,t,o){let r=e.kind==="literal"?n.filter(i=>i.query===e.query).map(i=>i.file):[...t.values()].filter(i=>i.anchorQueries.has(e.query)).map(i=>i.definition.relativePath);return w(r.map(i=>o.get(i)?.id).filter(i=>!!i))}function Yo(e){return e.keyParts.map(n=>`${n.name}=${n.value}`).join(" ")}function w(e){return[...new Set(e)].sort()}function Qo(e,n){return e.fromRegionId.localeCompare(n.fromRegionId)||e.toRegionId.localeCompare(n.toRegionId)||e.kind.localeCompare(n.kind)||e.fromFile.localeCompare(n.fromFile)||e.toFile.localeCompare(n.toFile)||(e.line??-1)-(n.line??-1)}function pd(e,n){return Fe(e.origins)-Fe(n.origins)||e.shortName.localeCompare(n.shortName)}function md(e,n){return e.depth-n.depth||e.file.localeCompare(n.file)}function gd(e,n){return e.depth-n.depth||e.file.localeCompare(n.file)||e.symbol.localeCompare(n.symbol)}function Xo(e,n){return e.file.localeCompare(n.file)||e.line-n.line||e.query.localeCompare(n.query)}function fd(e,n,t){let o=Me(e.db,e.index,t).matches[0];o&&!V(o.symbol)&&e.addSymbol(o,0,"literal-owner",n,"all",!0)}function yd(e,n){for(let t of e.symbolStates.values()){let o=e.regionForFile.get(t.definition.relativePath)?.id;if(!o)continue;let r=ge(t.definition.symbol);n.push({id:K("edge","structural-membership",o,r),kind:"structural-membership",fromNodeId:o,toNodeId:r,directed:!0,disposition:"folded",semantics:dn("structural-membership"),evidence:[{method:"indexed-definition-file",strength:"exact",identity:t.definition.symbol,location:{file:t.definition.relativePath,line:t.definition.startLine,endLine:t.definition.endLine}}]})}}function bd(e,n,t){let o=new Set,r=0;for(let i of e){let a=qo(i);!n.has(i.id)&&o.size>0&&r+a>t||(o.add(i.id),r+=a)}return{selectedRegionIds:o,estimatedCharacters:r}}function hd(e,n,t){for(let a of e.symbols)a.origins.includes("symbol-anchor")&&t.add(a.file);let o=ne(e.symbols,a=>a.file),r=ne(e.literalHits,a=>a.file),i=[...e.files].sort((a,s)=>Pl(a,s,o,r));for(let a of i){let s=(o.get(a.file)??[]).sort(Tt)[0];if(s){n.push({kind:"symbol",regionId:e.id,file:s.file,line:s.startLine,endLine:s.endLine,label:s.shortName});continue}let l=(r.get(a.file)??[]).sort(Xo)[0];l&&n.push({kind:"literal",regionId:e.id,file:l.file,line:l.line,endLine:null,label:l.ownerShortName??l.query})}}function Sd(e,n,t,o){for(let r=0;n.length<o;r+=1){let i=!1;for(let a of e){let s=a[r];if(s&&(i=!0,!t.has(s.file)&&(n.push(s),t.add(s.file),n.length===o)))break}if(!i)break}}var Ed=["causal","structure","complete"],xd={causal:["execution","runtime","dataflow","state","temporal"],structure:["contract","identity","ownership","dependencies"],complete:ie},Cd=2,Id=48,Jo=64,Ld=5e4;function ku(e,n,t={}){let{symbols:o,searches:r}=Rd(n),{view:i,families:a,direction:s,subtypes:l,connecting:d,inventoryOnly:c,foldIds:u,maxDepth:p,maxEdges:m}=wd(t),f=_o(e,{symbols:o,searches:r,maxDepth:p,maxTopologyCharacters:Ld,relations:Bd(a)}),{allProjected:g,projected:y,rejected:b}=Nd(f,a,l),h=new Set(f.anchors.flatMap(R=>R.nodeIds));if(d&&h.size<2)throw new Error("Connecting evidence requires at least two resolved root nodes.");let x=new Set(y.map(R=>R.id)),M=xn(g,h,"incoming").filter(R=>x.has(R.id)),T=xn(g,h,"outgoing").filter(R=>x.has(R.id)),E=xn(g,h,"both").filter(R=>x.has(R.id)),P=_d(a,l,M,T,E),v={incoming:M,outgoing:T,both:E}[s],z=d?Wd(v,[...h],s):v,X=zd(z,h,s),I=[...z].sort((R,ce)=>Vd(R,ce,X)),{edges:S,folds:O,eligibleCount:_,omittedEdges:oe}=Fd(I,m,u,c),re=Pd(f,g,h,a,s),ye=re.filter(R=>R.disposition==="unsupported").length,G=[...b.values()].reduce((R,ce)=>R+ce,0),le=[...b].map(([R,ce])=>`Provider rejected ${ce} ${R} relationship(s); inspect the selected source before making absence claims.`),de=f.coverage.status==="incomplete"||G>0?"incomplete":oe>0?"bounded":"accounted";return{kind:"graph",view:t.families&&t.families.length>0?"custom":i,families:a,selection:{direction:s,subtypes:l,connecting:d,inventoryOnly:c,foldIds:u},targets:f.anchors.map(R=>({kind:R.kind,query:R.query,status:R.status,nodeIds:[...R.nodeIds],omittedCandidates:R.omittedCandidates})),inventory:P,edges:S,folds:O,coverage:{status:de,topologyStatus:f.coverage.status,scope:f.coverage.scope,maxDepth:p,maxEdges:m,matchedEdges:I.length,eligibleEdges:_,returnedEdges:S.length,omittedEdges:oe,frontierGroups:re.length,unsupportedFrontiers:ye,rejectedRelationships:G,blindSpots:U([...f.coverage.blindSpots,...re.filter(R=>R.disposition==="unsupported").map(R=>R.reason),...le,...Lt(a)]),explanation:Md({inventoryOnly:c,foldCount:u.length,matchedCount:I.length,status:de,omittedEdges:oe,topologyExplanation:f.coverage.explanation,rejectionNotes:le})}}}function Rd(e){let n=U([...e.symbols??[],...e.locations??[]]),t=U(e.searches??[]);if(n.length===0&&t.length===0)throw new Error("evidence requires at least one positional symbol, --symbol, --at, or --search selector.");return{symbols:n,searches:t}}function Md(e){return e.inventoryOnly?`${e.matchedCount} relationship(s) match the explicit projection; only exact inventory counts were requested.`:e.foldCount>0?`Every relationship in ${e.foldCount} explicitly selected recoverable fold(s) was emitted.`:e.status==="accounted"?"Every selected relationship in the bounded topology was emitted.":e.status==="bounded"?`${e.omittedEdges} selected relationship(s) were withheld by the explicit edge budget.`:[e.topologyExplanation,...e.rejectionNotes].join(" ")}function Nd(e,n,t){let o=new Map(e.nodes.map(l=>[l.id,l])),r=new Map,i=(l,d,c)=>{if(!n.includes(l)||t.length>0&&!t.includes(d))return;let u=`${l}/${d} (${c})`;r.set(u,(r.get(u)??0)+1)},a=e.edges.filter(l=>l.disposition==="emitted"||l.disposition==="folded").flatMap(l=>Dd(l,o,i)),s=a.filter(l=>n.includes(l.family)).filter(l=>t.length===0||t.includes(l.subtype));return{allProjected:a,projected:s,rejected:r}}function wd(e){let n=e.view??"causal",t=kd(e.families,n),o=e.direction??"both",r=U(e.subtypes??[]),i=e.connecting??!1,a=e.inventoryOnly??!1,s=U(e.foldIds??[]),l=e.maxDepth??Cd,d=e.maxEdges??Id;return Td({maxDepth:l,maxEdges:d,direction:o,inventoryOnly:a,foldIds:s}),{view:n,families:t,direction:o,subtypes:r,connecting:i,inventoryOnly:a,foldIds:s,maxDepth:l,maxEdges:d}}function Td({maxDepth:e,maxEdges:n,direction:t,inventoryOnly:o,foldIds:r}){if(!Number.isSafeInteger(e)||e<0)throw new RangeError(`Evidence depth must be a non-negative safe integer; received ${e}.`);if(!Number.isSafeInteger(n)||n<=0)throw new RangeError(`Evidence max edges must be a positive safe integer; received ${n}.`);if(!["incoming","outgoing","both"].includes(t))throw new Error(`Unsupported graph evidence direction: ${t}.`);if(o&&r.length>0)throw new Error("Evidence fold materialization cannot be combined with --inventory-only.")}function Fd(e,n,t,o){let r=Gd(e,n),i=Kd(r,t),a=o?[]:t.length>0?e.filter(c=>i.has(c.id)):e,s=t.length>0?a:a.slice(0,n),l=t.length>0||o?[]:r,d=Math.max(0,a.length-s.length);return{edges:s,folds:l,eligibleCount:a.length,omittedEdges:d}}function Pd(e,n,t,o,r){let i=new Set([...t,...xn(n,t,r).flatMap(s=>[s.from.id,s.to.id])]),a=new Map(e.edges.map(s=>[s.id,s]));return e.frontiers.filter(s=>{let l=s.edgeIds.flatMap(d=>a.has(d)?[a.get(d)]:[]);return l.length===0?!0:l.some(d=>{let c=d.semantics?.some(u=>{let p=rr(u);return p!==null&&o.includes(p)});return d.semantics?.length&&!c||!d.semantics?.length&&d.kind.startsWith("runtime-boundary")&&!o.includes("runtime")?!1:r!=="incoming"&&[d.fromNodeId,...s.fromNodeIds].some(u=>i.has(u))||r!=="outgoing"&&[d.toNodeId,...s.memberNodeIds].some(u=>i.has(u))})})}function kd(e,n){if(!Ed.includes(n))throw new Error(`Unsupported graph evidence view: ${n}.`);let t=e&&e.length>0?e:xd[n],o=t.filter(r=>!ie.includes(r));if(o.length>0)throw new Error(`Unsupported graph evidence family: ${o.join(", ")}.`);return U(t)}function Bd(e){return["call","contract-symbol","import","reference","runtime-boundary"]}function Dd(e,n,t){let o=n.get(e.fromNodeId),r=n.get(e.toNodeId);return!o||!r?[]:(e.semantics??[]).flatMap((i,a)=>{let s=rr(i);if(!s)return[];let l=Rt(s,i.subtype);if(!l)throw new Error(`No graph relation provider contract is registered for ${s}/${i.subtype}.`);let d=Od(e);return l.relation.evidenceStrengths.includes(d)?[{id:`${e.id}:${a}:${s}`,family:s,semanticFamily:i.family,subtype:i.subtype,from:Zo(o),to:Zo(r),sourceKind:e.kind,providerId:l.provider.id,supportCeiling:l.relation.supportCeiling,establishes:l.relation.establishes,nonClaims:[...l.relation.nonClaims],recoverWith:[...l.relation.recoverWith],evidenceStrength:d,evidenceMethods:U(e.evidence.map(c=>c.method)),evidenceConstituents:Ad(e.evidence),context:i.context?{...i.context}:null,attributes:i.attributes?{...i.attributes}:null}]:(t(s,i.subtype,d),[])})}function Ad(e){let n=new Map;for(let t of e)n.set(`${t.method}\0${t.strength}`,t);return[...n.values()].map(({method:t,strength:o})=>({method:t,strength:o}))}function rr(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 Yd(e.subtype)}}function Zo(e){let n=$d(e);return{id:e.id,kind:e.kind,label:n?$(n):e.label,symbol:n,location:e.location?{...e.location}:null}}function $d(e){return e.kind!=="symbol"||!e.id.startsWith("symbol:")?null:decodeURIComponent(e.id.slice(7))}function Od(e){let n=U(e.evidence.map(t=>t.strength));return n.length===1?n[0]:n.includes("exact")&&n.every(t=>t==="exact"||t==="derived")?"mixed":n.includes("candidate")?"candidate":n.includes("unknown")||n.length===0?"unknown":"mixed"}function xn(e,n,t){let o=Jn(e,t),r=new Map,i=new Map,a=[...n].sort();for(let s of a)i.set(s,0);for(let s=0;s<a.length;s+=1){let l=a[s],d=i.get(l);for(let c of o.get(l)??[])r.set(c.edge.id,c.edge),!i.has(c.next)&&(i.set(c.next,d+1),a.push(c.next))}return[...r.values()]}function Jn(e,n){let t=new Map,o=(r,i,a)=>{let s=t.get(r)??[];s.push({edge:a,next:i}),t.set(r,s)};for(let r of e)n!=="incoming"&&o(r.from.id,r.to.id,r),n!=="outgoing"&&o(r.to.id,r.from.id,r);for(let r of t.values())r.sort((i,a)=>i.edge.id.localeCompare(a.edge.id)||i.next.localeCompare(a.next));return t}function _d(e,n,t,o,r){let i=new Set;for(let c of[...t,...o,...r])i.add(`${c.family}\0${c.subtype}`);if(n.length>0)for(let c of e)for(let u of n)i.add(`${c}\0${u}`);let a=c=>{let u=new Map;for(let p of c){let m=`${p.family}\0${p.subtype}`;u.set(m,(u.get(m)??0)+1)}return u},s=a(t),l=a(o),d=a(r);return[...i].map(c=>{let[u,p]=c.split("\0");return{family:u,subtype:p,incoming:s.get(c)??0,outgoing:l.get(c)??0,both:d.get(c)??0}}).sort((c,u)=>ie.indexOf(c.family)-ie.indexOf(u.family)||c.subtype.localeCompare(u.subtype))}function Gd(e,n){let t=e.slice(n),o=new Map;for(let a of t){let s=jd(a),l=`${a.family}\0${s}`,d=o.get(l)??[];d.push(a),o.set(l,d)}let r=new Map(e.map((a,s)=>[a.id,s+1])),i=[];for(let[a,s]of[...o].sort(([l],[d])=>l.localeCompare(d))){let[l,d]=a.split("\0"),c=[...s].sort((u,p)=>u.id.localeCompare(p.id));for(let u=0;u<c.length;u+=Jo){let p=c.slice(u,u+Jo),m=p.map(b=>b.id),f=U(p.map(b=>b.subtype)).sort(),g=f.length===1?f[0]:"mixed",y=[...new Set(p.flatMap(b=>[b.from.id,b.to.id]))].sort();i.push({id:Ud(l,f.join("\0"),m),mode:qd(p),family:l,subtype:g,subtypes:f,region:d,edgeCount:m.length,edgeIds:m,nodeIds:y,minimumMaxEdges:Math.max(...m.map(b=>r.get(b)??e.length))})}}return i.sort((a,s)=>ie.indexOf(a.family)-ie.indexOf(s.family)||(a.region??"").localeCompare(s.region??"")||a.id.localeCompare(s.id))}function jd(e){let n=e.from.location?.file??`kind:${e.from.kind}`,t=e.to.location?.file??`kind:${e.to.kind}`;return n===t?n:`${n} -> ${t}`}function Kd(e,n){if(n.length===0)return new Set;let t=new Map(e.map(r=>[r.id,r])),o=n.filter(r=>!t.has(r));if(o.length>0){let r=e.map(i=>i.id).sort();throw new Error(`Unknown evidence fold ${o.join(", ")} for this projection. Available folds: ${r.join(", ")||"(none)"}.`)}return new Set(n.flatMap(r=>t.get(r).edgeIds))}function qd(e){let n=new Map,t=new Map,o=new Set;for(let i of e){o.add(i.from.id),o.add(i.to.id);let a=n.get(i.from.id)??new Set;a.add(i.to.id),n.set(i.from.id,a);let s=t.get(i.to.id)??new Set;s.add(i.from.id),t.set(i.to.id,s)}return Hd(o,n)?"scc":[...o].every(i=>(t.get(i)?.size??0)<=1&&(n.get(i)?.size??0)<=1)?"linear":"topology"}function Hd(e,n){let t=new Set,o=new Set,r=i=>{if(t.has(i))return!0;if(o.has(i))return!1;t.add(i);for(let a of n.get(i)??[])if(r(a))return!0;return t.delete(i),o.add(i),!1};return[...e].some(r)}function Ud(e,n,t){return`fold:${vd("sha256").update([e,n,...t].join("\0")).digest("hex").slice(0,16)}`}function Wd(e,n,t){let o=new Map,r=[...new Set(n)].sort();for(let i=0;i<r.length;i+=1)for(let a=i+1;a<r.length;a+=1){let s=[er(e,r[i],r[a],t)];t!=="both"&&s.push(er(e,r[a],r[i],t));for(let l of s.flat())o.set(l.id,l)}return[...o.values()]}function er(e,n,t,o){let r=Jn(e,o),i=new Map([[n,0]]),a=new Map,s=[n];for(let d=0;d<s.length;d+=1){let c=s[d],u=i.get(c);if(c!==t)for(let p of r.get(c)??[])i.has(p.next)||(i.set(p.next,u+1),a.set(p.next,{node:c,edge:p.edge}),s.push(p.next))}if(!i.has(t))return[];let l=[];for(let d=t;d!==n;){let c=a.get(d);if(!c)return[];l.push(c.edge),d=c.node}return l.reverse()}function zd(e,n,t){let o=Jn(e,t),r=new Map,i=[...n];for(let a of n)r.set(a,0);for(let a=0;a<i.length;a+=1){let s=i[a],l=r.get(s);for(let{next:d}of o.get(s)??[])r.has(d)||(r.set(d,l+1),i.push(d))}return r}function Vd(e,n,t){return nr(e,t)-nr(n,t)||tr(e)-tr(n)||or(e.evidenceStrength)-or(n.evidenceStrength)||ie.indexOf(e.family)-ie.indexOf(n.family)||e.from.label.localeCompare(n.from.label)||e.to.label.localeCompare(n.to.label)||e.subtype.localeCompare(n.subtype)||e.id.localeCompare(n.id)}function nr(e,n){return Math.min(n.get(e.from.id)??Number.MAX_SAFE_INTEGER,n.get(e.to.id)??Number.MAX_SAFE_INTEGER)}function tr(e){let n=[e.from,e.to].filter(t=>t.kind==="structural-region").length;return n===2?2:n}function or(e){switch(e){case"exact":return 0;case"mixed":return 1;case"derived":return 2;case"candidate":return 3;case"unknown":return 4}}function Yd(e){return e.startsWith("contains")||e.startsWith("owns-")?"ownership":e.startsWith("import")?"dependencies":"identity"}export{ie as a,Ed as b,ku as c};
|
|
21
|
+
//# sourceMappingURL=chunk-IIBAZNSW.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{a as se}from"./chunk-YRT2WLYY.js";import{o as ee,p as D,q as ne}from"./chunk-FC2EVQRM.js";import{a as N,c as re,d as ie,f as oe}from"./chunk-ETOIKRHO.js";import{a as te}from"./chunk-SV2LEFVM.js";import{a as O}from"./chunk-HXENDJC6.js";import{d as Q}from"./chunk-2IWUT6CJ.js";import{a as Y,c as E}from"./chunk-E3FDPXZK.js";import{b as X,c as y,d as Z}from"./chunk-72AD6ZRR.js";import{a as x,b as B}from"./chunk-T6DK3ZP7.js";import{na as w,qa as J,sa as W,ta as K,v as G}from"./chunk-5TNQJUR2.js";import Te from"path";function ce(e){return{configured:e.configured,boundaries:e.boundaries,coverage:e.coverage,policyCoverage:e.policyCoverage,dependencyRoles:e.dependencyRoles,cycles:e.cycles.map(t=>({boundaries:t.boundaries,origin:t.origin,fileCycleMembers:t.fileCycleMembers,violatesPolicy:t.violatesPolicy}))}}function R(e,t){return E(e)==="test"||/(^|\/)(fixtures|benchmarks)(\/|$)/.test(e)||(t?.testPaths??[]).some(n=>te(n,e))}function P(e,t){let n=new Map(e.map(s=>[s,new Set]));for(let s of t)s.resolution==="internal"&&s.target&&n.has(s.target)&&n.get(s.file)?.add(s.target);return n}function M(e,t){return e.filter(n=>!R(n.file,t)&&(!n.target||!R(n.target,t)))}function ze(e){return e.filter(t=>t.kind==="value"&&(t.syntax==="import"||t.syntax==="reexport"))}function ae(e){let t={internal:0,external:0,builtin:0,excluded:0,missing:0,ambiguous:0,dynamic:0};for(let n of e)t[n.resolution]++;return{resolutions:t,typeOnly:e.filter(n=>n.kind==="type").length,test:e.filter(n=>n.role==="test").length,deferredOrCommonJs:e.filter(n=>n.syntax==="dynamic-import"||n.syntax==="require").length,unresolved:e.filter(n=>n.resolution==="missing"||n.resolution==="ambiguous"||n.resolution==="dynamic"),excluded:e.filter(n=>n.resolution==="excluded")}}function ue(e,t){let n=ze(t),s=P(e,n);return O(s).components.filter(i=>i.length>1||s.get(i[0])?.has(i[0])).map(i=>{let r=new Set(i),c=n.filter(o=>o.resolution==="internal"&&r.has(o.file)&&o.target&&r.has(o.target));return{id:`dependency-cycle:${y([...i].sort().join("\0"))}`,rule:"dependency-cycle",evidence:"derived",summary:`${i.length} production files form a circular component of static value imports.`,score:i.length,sites:c.map(o=>({file:o.file,line:o.line})),details:c.map(o=>`${o.file}:${o.line} \u2192 ${o.target} (${o.syntax}, ${o.kind})`)}})}function de(e,t,n){let s=M(t,n),i=oe(P(e,s),e,n),r=new Map(e.map(o=>[o,N(n,o)])),c=i.forbiddenEdges.map(o=>{let u=s.filter(a=>a.resolution==="internal"&&a.target&&r.get(a.file)===o.from&&r.get(a.target)===o.to);return{id:`architecture:${o.from}:${o.to}`,rule:"architecture",evidence:"derived",summary:`${o.from} \u2192 ${o.to}: ${o.fileEdgeCount} production file dependencies violate the declared rule.`,sites:u.flatMap(a=>[{file:a.file,line:a.line},{file:a.target,line:1}]),score:o.fileEdgeCount,details:u.map(a=>`${a.file}:${a.line} \u2192 ${a.target} (${a.kind}, ${a.syntax})`)}});for(let o of i.cycles.filter(u=>u.violatesPolicy)){let u=s.filter(a=>a.resolution==="internal"&&a.target&&o.boundaries.includes(r.get(a.file)??"")&&o.boundaries.includes(r.get(a.target)??""));c.push({id:`architecture:group-cycle:${y(o.boundaries.join("\0"))}`,rule:"architecture",evidence:"derived",score:o.boundaries.length,summary:`${o.boundaries.length} declared groups violate requireAcyclic (${o.origin}); group identities are retained in architecture.cycles.`,sites:u.map(a=>({file:a.file,line:a.line})),details:[i.dependencyRoles.cycleMeaning,...u.map(a=>`${a.file}:${a.line} \u2192 ${a.target} (${a.kind}, ${a.syntax})`)]})}for(let o of i.boundaryLimits)c.push({id:`architecture:limit:${o.boundary}:${o.kind}`,rule:"architecture",evidence:"derived",score:o.observed,summary:`${o.boundary}: ${o.observed} ${o.kind} exceeds the declared limit ${o.limit}.`,sites:e.filter(u=>r.get(u)===o.boundary).map(u=>({file:u,line:1})),details:["A configured bound is a project rule, not proof that a group has multiple responsibilities."]});if(i.policyCoverage.requiresCompleteCoverage){for(let o of i.coverage.unmappedFiles)c.push({id:`architecture:unmapped:${o}`,rule:"architecture",evidence:"derived",score:1,summary:`${o} has no declared boundary and violates requireCompleteCoverage.`,sites:[{file:o,line:1}],details:[]});for(let o of i.coverage.ambiguousFiles)c.push({id:`architecture:ambiguous:${o.file}`,rule:"architecture",evidence:"derived",score:o.boundaries.length,summary:`${o.file} matches multiple declared boundaries and violates requireCompleteCoverage.`,sites:[{file:o.file,line:1}],details:o.boundaries})}return{rules:i,findings:c}}function le(e){return e.filter(t=>t.resolution==="missing"||t.resolution==="ambiguous").map(t=>({id:`broken-dependency:${t.file}:${t.specifier}`,rule:"broken-dependency",evidence:"candidate",summary:`${JSON.stringify(t.specifier)} ${t.resolution==="ambiguous"?"has conflicting project resolutions":"does not resolve in the captured internal source"}.`,sites:[{file:t.file,line:t.line}],score:1,details:[`Configuration: ${t.configs.join(", ")||"default compiler resolution"}.`,"Check the import, project configuration, generated files and custom loaders before treating this as a broken build."]}))}function pe(e,t){let n=r=>{let c=new Map;for(let o of r){let u=c.get(o.file)??[];u.push(JSON.stringify([o.specifier,o.target,o.resolution,o.kind,o.role,o.syntax,o.alternatives])),c.set(o.file,u)}return new Map([...c].map(([o,u])=>[o,u.sort().join(`
|
|
2
|
+
`)]))},s=n(e),i=n(t);return[...new Set([...s.keys(),...i.keys()])].filter(r=>s.get(r)!==i.get(r)).sort()}function fe(e){return e.rule==="dependency-cycle"||e.id.startsWith("architecture:group-cycle:")}function F(e,t){let n={"broken-dependency":0,architecture:1,"dependency-cycle":2,responsibility:3,duplication:4,crap:5,complexity:6};return n[e.rule]-n[t.rule]||t.score-e.score||e.id.localeCompare(t.id)}function me(e,t,n,s){return Ve(e,t,n,s).filter(i=>i.highestPriority!==void 0)}function Ve(e,t,n,s){let{groups:i,owners:r}=qe(e,s),{outgoing:c,incoming:o}=He(t,r,s),u=[...n].filter(d=>d.status!=="resolved"&&!fe(d)).sort(F),a=new Map(u.map((d,p)=>[d.id,p]));return Ue(u,i,r),[...i.values()].map(d=>({...d,files:d.files.sort(),consumers:[...o.get(d.id)??[]].sort(),dependencies:[...c.get(d.id)??[]].sort()})).sort((d,p)=>(a.get(d.primaryFindingIds[0])??1/0)-(a.get(p.primaryFindingIds[0])??1/0)||d.id.localeCompare(p.id))}function qe(e,t){let n=new Map,s=new Map;for(let i of e){let r=N(t,i),c=r?`boundary:${r}`:`directory:${Te.posix.dirname(i)}`;s.set(i,c),n.has(c)||n.set(c,{id:c,basis:r?"declared-boundary":"directory",files:[],consumers:[],dependencies:[],findingIds:[],primaryFindingIds:[],interpretation:"Grouping identifies declared membership or a shared directory. Review the observed contracts before changing ownership."}),n.get(c).files.push(i)}return{groups:n,owners:s}}function He(e,t,n){let s=new Map,i=new Map;for(let r of M(e,n)){if(r.resolution!=="internal"||!r.target)continue;let c=t.get(r.file),o=t.get(r.target);if(!c||!o||c===o)continue;let u=s.get(c)??new Set;u.add(r.target),s.set(c,u);let a=i.get(o)??new Set;a.add(r.file),i.set(o,a)}return{outgoing:s,incoming:i}}function Ue(e,t,n){for(let s of e){let i=s.sites.map(r=>n.get(r.file)).find(r=>r!==void 0);i&&t.get(i).primaryFindingIds.push(s.id);for(let r of new Set(s.sites.map(c=>n.get(c.file)).filter(c=>!!c))){let c=t.get(r);c.findingIds.length||(c.highestPriority=s.rule),c.findingIds.push(s.id)}}}function ge(e){let t=e.flatMap(s=>s.consumers),n=[];for(let s of e){if(s.functions.length<4)continue;let i=s.functions[0].fn.file,r=Ge(s.functions).map(o=>{let u=o.filter(d=>d.exports.length&&d.fn.tokenCount>=60),a=new Set(u.flatMap(d=>d.exports));return{functions:u,dependencies:[...new Set(o.flatMap(d=>d.dependencies))],consumers:t.filter(d=>d.target===i&&(a.has(d.name)||d.name==="*"))}}).filter(o=>o.functions.length>=2&&o.dependencies.length&&o.consumers.length),c=r.filter(o=>r.every(u=>o===u||!u.consumers.some(a=>o.consumers.some(d=>d.file===a.file))));c.length<2||n.push({id:`responsibility:${i}`,rule:"responsibility",evidence:"candidate",score:c.length,summary:`${i} contains ${c.length} substantial exported function groups with separate observed dependencies and named consumers.`,sites:c.flatMap(o=>o.functions.map(({fn:u})=>({file:i,line:u.startLine,name:u.name}))),details:c.map((o,u)=>`Group ${u+1}: ${o.functions.map(a=>a.fn.name).join(", ")}; dependencies: ${o.dependencies.join(", ")}; named importers: ${o.consumers.map(a=>`${a.file}:${a.line} (${a.name})`).join(", ")}.`).concat(["No shared same-file binding or imported module connects these groups in the covered top-level functions. Nested closures contribute their binding references to their containing function.","A shared public contract can justify keeping these groups together. Classes, indirect re-exports, dynamic consumers, external users and runtime resource identity are not established by this provider. Read those contracts before proposing a split."])})}return n}function Ge(e){let t=new Map(e.map((s,i)=>[String(i),new Set])),n=new Map;return e.forEach((s,i)=>{let r=String(i);for(let c of[...[s.declaration,...s.bindings].map(o=>`binding:${o}`),...s.dependencies.map(o=>`import:${o}`)]){let o=n.get(c);o!==void 0?(t.get(r).add(o),t.get(o).add(r)):n.set(c,r)}}),O(t).components.map(s=>s.map(i=>e[Number(i)]))}import{isDeepStrictEqual as an}from"util";import{existsSync as Je,lstatSync as We,readdirSync as Ke}from"fs";import{createHash as be}from"crypto";import{isAbsolute as Ye,join as I,relative as Xe,resolve as ye,sep as he}from"path";function z(e){let t=0,n=0,s=0,i=0,r=0,c=[];for(let a of e)switch(a.state){case"legacy":t+=1;break;case"current":n+=1;break;case"unsupported-older":s+=1,c.push(L(a));break;case"unsupported-future":i+=1,c.push(L(a));break;case"malformed":r+=1,c.push(L(a));break}let o=t+n,u=s+i+r;return{complete:u===0,total:e.length,accepted:o,legacy:t,current:n,unsupportedOlder:s,unsupportedFuture:i,malformed:r,omitted:u,issues:c}}function L(e){if(e.state==="legacy"||e.state==="current")throw new Error(`accepted record ${e.path} cannot become a compatibility issue`);return{path:e.path,state:e.state,reason:e.reason??e.state}}var T=I(".scipquery","suppressions"),Se="scip-query-suppression",Fe=1,_=2;function Ze(e){return I(e,T)}function Qe(e){let t=$(e);return/^[A-Za-z0-9_-]{1,120}$/.test(t)&&!/^(ID-|CON$|PRN$|AUX$|NUL$|COM[1-9]$|LPT[1-9]$)/i.test(t)?`${t}.json`:`ID-${be("sha256").update(t).digest("hex")}.json`}function $(e){if(e.id&&e.id.trim()!=="")return e.id.trim();let t=`${e.check??""}\0${e.file??""}`;return`CHECK-${be("sha256").update(t).digest("hex").slice(0,12).toUpperCase()}`}function en(e,t){let n=ye(e),s=Xe(n,ye(t));if(Ye(s)||s===".."||s.startsWith(`..${he}`))throw new Error("Suppression path must remain inside the project.");let i=n;for(let r of s.split(he))if(i=I(i,r),We(i,{throwIfNoEntry:!1})?.isSymbolicLink())throw new Error(`Symbolic links are not allowed in suppression storage: ${i}`)}function V(e,t){if(!x(e))return{state:"malformed",error:"not a suppression object"};let n=nn(e);if(typeof n!="number")return n;let s=tn(e.decision,n);if(s)return{state:"malformed",error:s};let i=rn(e);if("error"in i)return i;if(n===0)return{state:"legacy",suppression:i,record:e,schemaVersion:0};let r=on(e,i,t);return r?{state:"malformed",error:r}:{state:n===_?"current":"legacy",suppression:i,record:e,schemaVersion:n}}function nn(e){let t=e.schemaVersion;return t===void 0?["kind","suppressionIdentity","writer"].some(n=>e[n]!==void 0)?{state:"malformed",error:"suppression envelope metadata requires schemaVersion"}:0:typeof t!="number"||!Number.isSafeInteger(t)?{state:"malformed",error:"schemaVersion must be a positive safe integer"}:t!==Fe&&t!==_?{state:t>_?"unsupported-future":"unsupported-older",error:`unsupported schemaVersion ${String(t)}`}:e.kind!==void 0&&e.kind!==Se?{state:"malformed",error:`kind must be ${Se}`}:t}function tn(e,t){return t===Fe&&e!==void 0?"schemaVersion 1 cannot carry automated adjudication metadata":t===_&&!D(e)?"schemaVersion 2 requires a valid automated adjudication decision":t===0&&e!==void 0&&!D(e)?"invalid automated adjudication decision":null}function rn(e){if(typeof e.reason!="string"||e.reason.trim()==="")return{state:"malformed",error:"missing reason"};let t=cn(e);return!t.id?.trim()&&!t.check?.trim()?{state:"malformed",error:"needs an id or a check"}:t}function on(e,t,n){return e.suppressionIdentity!==$(t)||n!==void 0&&e.suppressionIdentity!==n&&Qe(t).slice(0,-5)!==n?"suppressionIdentity does not match the suppression target or filename":sn(e.writer)?B(e.createdAt)?e.updatedAt!==void 0&&!B(e.updatedAt)?"invalid updatedAt timestamp":null:"missing valid createdAt timestamp":"missing valid writer metadata"}function sn(e){return x(e)&&e.tool==="scip-query"&&typeof e.version=="string"&&e.version.trim()!==""}function ve(e){let t=Ze(e);if(en(e,t),!Je(t))return{suppressions:[],compatibility:z([]),warnings:[]};let n=new Map,s=new Set,i=[];for(let c of xe(t,i)){let o=I(t,c),u=`${T}/${c}`,a;try{a=JSON.parse(G(o,"suppression record"))}catch{i.push({path:u,state:"malformed",reason:"malformed JSON"});continue}let d=V(a,c.slice(0,-5));if("error"in d){i.push({path:u,state:d.state,reason:d.error});continue}let p=$(d.suppression),l=n.get(p);l&&JSON.stringify(l.suppression)!==JSON.stringify(d.suppression)?(s.add(p),i.push({path:u,state:"malformed",reason:`conflicting suppression identity also in ${l.path}`})):(i.push({path:u,state:d.state}),n.set(p,{suppression:d.suppression,path:u}))}let r=z(i);return{suppressions:[...n].filter(([c])=>!s.has(c)).map(([,c])=>c.suppression),compatibility:r,warnings:r.issues.map(c=>`${c.path}: ${c.reason} \u2014 ignored`)}}function xe(e,t,n=""){let s=[];for(let i of Ke(I(e,n),{withFileTypes:!0}).sort((r,c)=>r.name.localeCompare(c.name))){let r=n?`${n}/${i.name}`:i.name;i.isSymbolicLink()?t.push({path:`${T}/${r}`,state:"malformed",reason:"symbolic suppression storage entry"}):i.isDirectory()?s.push(...xe(e,t,r)):i.isFile()&&r.endsWith(".json")&&s.push(r)}return s}function cn(e){return{...typeof e.id=="string"?{id:e.id}:{},...typeof e.check=="string"?{check:e.check}:{},...typeof e.file=="string"?{file:e.file}:{},reason:e.reason,...typeof e.expiresAt=="string"?{expiresAt:e.expiresAt}:{},...typeof e.createdAt=="string"?{createdAt:e.createdAt}:{},...e.decision?{decision:e.decision}:{}}}function $e(e,t,n,s){let{suppressions:i,conflicts:r}=ln(pn(e,t,s)),c={now:Date.now(),contentHash(a){try{return y(t.files.get(a)??t.project.inputs.get(a)??J(e,a))}catch{return}}},o=i.map(a=>un(a,n,r,c)),u=new Set(o.filter(a=>a.outcome==="accepted").map(a=>a.id));if(ee(u.size,n.length))for(let a of o)a.outcome==="accepted"&&(a.outcome="escalated",a.reasons=["Automatic suppression rate requires policy review."]);return o}function un(e,t,n,s){let i={id:e.id,check:e.check,file:e.file},r=t.find(u=>u.id===e.id&&u.status!=="resolved");if(!r)return{...i,outcome:"unmatched",reasons:["No exact current finding in the requested scope."]};if(n.has($(e)))return{...i,outcome:"escalated",reasons:["Conflicting stored/configured suppression records require review."]};let c=dn(e,r);if(c)return{...i,outcome:"escalated",reasons:[c]};let o=ne(e,{id:r.id,check:r.rule,evidence:r.evidence,actionTier:r.evidence==="derived"?"direct":"signal",file:r.sites[0]?.file,targetFiles:r.sites.map(u=>u.file)},s);return{...i,outcome:o.kind,reasons:o.kind==="accepted"?[]:o.reasons}}function dn(e,t){if(e.check&&e.check!==t.rule||e.file&&!t.sites.some(n=>n.file===e.file))return"Suppression detector/file scope does not match the finding.";if(e.expiresAt&&!Number.isFinite(Date.parse(e.expiresAt)))return"Invalid suppression expiry."}function ln(e){let t=new Map,n=new Set;for(let s of e){let i=$(s),r=t.get(i);r&&!an(r,s)?n.add(i):t.set(i,s)}return{suppressions:[...t.values()],conflicts:n}}function pn(e,t,n){let s=[];try{let i=ve(e);s.push(...i.suppressions),n.push(...i.warnings.map(r=>`Suppression storage: ${r}`))}catch(i){n.push(`Suppression storage unavailable: ${i instanceof Error?i.message:String(i)}`)}return[...s,...fn(t,n)]}function fn(e,t){let n=[],s=e.project.inputs.get(".scipquery.json");if(s===void 0)return n;let i=Q(s);if(i.kind==="malformed"||i.kind==="unsupported")return n;let r=i.config.suppressions;if(r!==void 0&&!Array.isArray(r))return t.push(".scipquery.json suppressions must be an array."),n;for(let c of r??[]){let o=V(c);"error"in o?t.push(`Configured suppression: ${o.error}`):n.push(o.suppression)}return n}function Ce(e,t){if(!t)return{files:{},problem:"No source-matched coverage artifact supplied."};try{let n=JSON.parse(w(e,t).toString("utf8"));return n.schemaVersion!==1||!n.files||typeof n.files!="object"||Array.isArray(n.files)?{files:{},problem:"Expected a version 1 source-matched coverage artifact; use scripts/record-review-coverage.mjs."}:{files:n.files}}catch(n){return{files:{},problem:`Cannot read coverage: ${n instanceof Error?n.message:String(n)}`}}}function we(e,t,n,s){let i=l=>({status:"unavailable",reason:l});if(s.problem)return i(s.problem);let r=s.files[e.file];if(!r||r.sourceHash!==y(n))return i("Coverage missing or source hash does not match current bytes.");let{statementMap:c,s:o}=r.coverage??{};if(!x(c)||!x(o))return i("Malformed statement coverage.");let u=mn(c,o,n);if(!u)return i("Malformed statement coverage locations or counts.");let a=gn(e,t,u);if(a.size===0)return i("No measured executable lines in this function.");let d=[...a.values()].filter(Boolean).length,p=d/a.size;return{status:"available",basis:"istanbul-statement-start-lines",coveredLines:d,measuredLines:a.size,fraction:p,crap:Number((e.cyclomatic**2*(1-p)**3+e.cyclomatic).toFixed(2))}}function mn(e,t,n){let s=[0];for(let r=0;r<n.length;r++)n[r]===`
|
|
3
|
+
`&&s.push(r+1);let i=[];for(let[r,c]of Object.entries(e)){let o=c?.start?.line,u=c?.start?.column,a=t[r];if(!yn(o,u,a,s,n.length))return;i.push({line:o,offset:s[o-1]+u,count:a})}return i}function gn(e,t,n){let s=t.filter(r=>r!==e&&r.startOffset>e.startOffset&&r.endOffset<=e.endOffset),i=new Map;for(let{line:r,offset:c,count:o}of n)c<e.startOffset||c>=e.endOffset||s.some(u=>c>=u.startOffset&&c<u.endOffset)||i.set(r,(i.get(r)??!1)||o>0);return i}function yn(e,t,n,s,i){if(!Number.isInteger(e)||!Number.isInteger(t)||!Number.isInteger(n)||e<1||e>s.length||t<0||n<0)return!1;let r=s[e-1]+t,c=s[e]??i;return r<c}import{execFileSync as hn}from"child_process";var v={maxFiles:1e4,maxFileBytes:1024*1024},k=128*1024*1024,Sn=[{option:"includeGenerated",reason:"generated",matches:e=>/(^|\/)(__generated__|generated)(\/|$)/.test(e)},{option:"includeReferences",reason:"reference",matches:e=>/^(docs|agent_docs|\.agents|\.claude|\.codex)\/|(^|\/)(vendor|third_party|third-party)(\/|$)/.test(e)},{option:"includeTests",reason:"test",matches:e=>E(e)==="test"||/(^|\/)(fixtures|benchmarks)(\/|$)/.test(e)}];function q(e,t={}){if(!/\.[cm]?[jt]sx?$/.test(e))return"unsupported-language";if(/\.d\.[cm]?ts$/.test(e))return"declaration";if(Y(e))return"managed-output";for(let n of Sn)if(!t[n.option]&&n.matches(e))return n.reason}function Me(e,t={}){Ee(t);let n=je(e);return Ae("working-tree",n,t,s=>w(e,s,{maxBytes:t.maxFileBytes??v.maxFileBytes}).toString("utf8"))}function bn(e,t){return C(e,["rev-parse","--verify","--end-of-options",`${t}^{commit}`]).toString("utf8").trim()}function Ie(e,t,n={}){Ee(n);let s=bn(e,t),i=C(e,["ls-tree","-r","-z",s]).toString("utf8").split("\0").filter(Boolean),r=new Map;for(let a of i){let d=/^(100\d+) blob ([a-f0-9]+)\t([\s\S]+)$/.exec(a);d&&r.set(d[3],d[2])}let c=[...r.keys()].filter(a=>!q(a,n)).sort().slice(0,n.maxFiles??v.maxFiles),o=new Map,u=0;for(let a=0;a<c.length;a+=32){let d=c.slice(a,a+32),{readable:p,output:l}=Fn(e,d,r,n.maxFileBytes??v.maxFileBytes);if(p.length!==0){if(u+=l.length,u>k)break;vn(p,l,o)}}return Ae(s,[...r.keys()],n,a=>{let d=o.get(a);if(d!==void 0)return d;let p=r.get(a);if(a.endsWith(".json")&&p){if(Number(C(e,["cat-file","-s",p]).toString("utf8").trim())>(n.maxFileBytes??v.maxFileBytes))throw new Error("configuration exceeds file byte limit");return C(e,["cat-file","blob",p]).toString("utf8")}throw new Error("omitted by the Git source snapshot file/total byte limits")})}function Fn(e,t,n,s){let i=C(e,["cat-file","--batch-check"],t.map(o=>n.get(o)).join(`
|
|
4
|
+
`)+`
|
|
5
|
+
`).toString("utf8").trim().split(`
|
|
6
|
+
`),r=t.filter((o,u)=>Number(i[u]?.split(" ")[2])<=s);if(r.length===0)return{readable:r,output:Buffer.alloc(0)};let c=C(e,["cat-file","--batch"],r.map(o=>n.get(o)).join(`
|
|
7
|
+
`)+`
|
|
8
|
+
`);return{readable:r,output:c}}function vn(e,t,n){let s=0;for(let i of e){let r=t.indexOf(10,s),c=Number(t.subarray(s,r).toString("utf8").split(" ")[2]);if(r<0||!Number.isSafeInteger(c)||c<0||r+1+c>t.length)throw new Error("Invalid Git blob response while reading review base");n.set(i,t.subarray(r+1,r+1+c).toString("utf8")),s=r+1+c+1}}function ke(e,t,n={}){let s=je(e),i=s.filter(c=>!q(c,n)).sort(),r=[];(i.length!==t.eligibleFiles||i.slice(0,n.maxFiles??v.maxFiles).some(c=>!t.files.has(c)))&&r.push("Eligible source file set changed or was incomplete during analysis; rerun after edits settle."),Re(s).join(`
|
|
9
|
+
`)!==Re([...t.project.inventory]).join(`
|
|
10
|
+
`)&&r.push("Project configuration file set changed during analysis; rerun after edits settle.");for(let[c,o]of[...t.files,...t.project.inputs])try{w(e,c,{maxBytes:n.maxFileBytes??v.maxFileBytes}).toString("utf8")!==o&&r.push(`${c}: source changed during analysis; rerun after edits settle.`)}catch{r.push(`${c}: source unavailable during final freshness check.`)}return r}function Ae(e,t,n,s){let i={},r=t.filter(p=>{let l=q(p,n);return l&&(i[l]=(i[l]??0)+1),!l}).sort(),c=new Map,o=[],u=r.slice(0,n.maxFiles??v.maxFiles);u.length<r.length&&o.push(`${r.length-u.length} eligible files omitted by max-files; increase --max-files to cover them.`);let a=0;for(let p of u)try{let l=s(p);if(a+=Buffer.byteLength(l),a>k){o.push(`Snapshot exceeds ${k} bytes; ${u.length-c.size} remaining files omitted.`);break}c.set(p,l)}catch(l){o.push(`${p}: ${l instanceof Error?l.message:String(l)}`)}let d=re(t,r,p=>{let l=s(p);if(a+=Buffer.byteLength(l),a>k)throw new Error("source and configuration snapshot exceeds total byte limit");return l});return{revision:e,files:c,fingerprint:y([...c,...d.inputs].sort(([p],[l])=>p.localeCompare(l)).map(([p,l])=>`${JSON.stringify(p)}:${y(l)}`).join(`
|
|
11
|
+
`)),eligibleFiles:r.length,excludedFiles:t.length-r.length,exclusions:i,project:d,problems:o}}function Re(e){return e.filter(t=>/(^|\/)((ts|js)config[^/]*\.json|package\.json|\.scipquery\.json)$/.test(t)).sort()}function C(e,t,n){return hn("git",t,{cwd:e,input:n,maxBuffer:k,timeout:3e4,stdio:["pipe","pipe","pipe"]})}function je(e){return K(e).filter(t=>{try{return W(e,t)}catch{return!0}})}function Ee(e){for(let t of["maxFiles","maxFileBytes"]){let n=e[t];if(n!==void 0&&(!Number.isSafeInteger(n)||n<1))throw new Error(`${t} must be a positive safe integer.`)}}var Oe=[`TS/JS implemented functions; metric rules ${X}. Cognitive counts structural nesting and logical sequences; recursion and interprocedural behavior are not measured.`,"Duplication compares whole function body tokens (at least 60 tokens), retaining literals and property names. Renamed local bindings are candidates; similarity does not prove interchangeable behavior or justify deletion.","Dependencies use compiler resolution over captured source and project configuration, including aliases, repository package exports, literal dynamic imports and unshadowed CommonJS calls. External packages, excluded targets and unresolved imports are distinguished. Production file cycles use static value imports; type/test/deferred relationships remain separate. Runtime handoffs and custom loaders are not inferred.","Ownership and mixed responsibilities require evidence about callers, state and business rules; this scan does not infer a correct owner or an architectural grade."];function H(e,t={files:{},problem:"No source-matched coverage supplied."},n){n??=e.project.architecture;let s=[],i=[],r=[],c=[],o=[...e.problems];for(let[l,g]of e.files){let m=Z(l,g);if(o.push(...m.errors),m.errors.length>0)continue;i.push(...m.exports),s.push(...m.functions.map(b=>({...b,coverage:we(b,m.functions,g,t)})));let h=ie(m.sourceFile,e.files,e.project,m.checker);for(let b of h)b.role=R(l,n)?"test":"production";r.push(...h),R(l,n)||c.push(se(m,h))}let u=[...e.files.keys()],a=P(u,r),d=de(u,r,n),p=[...xn(s),...$n(s),...ue(u,M(r,n)),...d.findings,...le(r),...ge(c)];return{functions:s,exports:i,findings:p.sort(F),imports:r,graph:a,problems:o,architecture:d.rules}}function xn(e){let t=[];for(let n of e){let s={file:n.file,line:n.startLine,name:n.name};(n.cyclomatic>10||n.cognitive>15)&&t.push({id:`complexity:${n.file}:${n.name}`,rule:"complexity",evidence:"derived",summary:`${n.name}: cyclomatic ${n.cyclomatic}, cognitive ${n.cognitive}.`,sites:[s],score:Math.max(n.cyclomatic/10,n.cognitive/15),details:["Review branching and nesting while preserving decisions, effects, and error handling.",...n.contributions.filter(i=>i.cognitive>1).map(i=>`${n.file}:${i.line}:${i.column} ${i.kind}: +${i.cognitive} cognitive`)]}),n.coverage.status==="available"&&n.coverage.crap>=30&&t.push({id:`crap:${n.file}:${n.name}`,rule:"crap",evidence:"derived",score:n.coverage.crap,sites:[s],summary:`${n.name}: CRAP ${n.coverage.crap}, measured line coverage ${Math.round(n.coverage.fraction*100)}%.`,details:["CRAP = cyclomatic\xB2 \xD7 (1 \u2212 measured coverage)\xB3 + cyclomatic. Improve tests and simplify behavior where justified."]})}return t}function $n(e){let t=new Map;for(let n of e){if(n.tokenCount<60)continue;let s=n.renamedBodyHash,i=t.get(s)??[];i.push(n),t.set(s,i)}return[...t.values()].filter(n=>n.length>1).map(n=>{let s=new Set(n.map(r=>r.bodyHash)).size===1,i=n.map(r=>({file:r.file,line:r.startLine,name:r.name}));return{id:`duplication:${n[0].renamedBodyHash}`,rule:"duplication",evidence:"candidate",summary:`${n.length} functions share ${s?"identical body tokens":"body tokens after local binding renaming"}.`,sites:i,score:n.length,details:[`${n[0].tokenCount} tokens per body; comments and whitespace excluded; literals retained.`,"Read both contracts and callers. If these implementations own the same rule, reuse one owner; otherwise retain the separate responsibilities."]}})}function Lt(e,t={}){let{current:n,coverageInput:s,analysis:i,base:r,before:c,changedFiles:o,configurationChanges:u,relationshipChangedFiles:a,problems:d,scope:p,inScope:l,sourceComparable:g,changed:m,functionChanges:h}=wn(e,t),b=(c?h.flatMap(f=>f.after?[f.after]:[]):i.functions).filter(f=>l(f.file)),S=kn(b,!!t.coverage,s.problem),A=In(c,i,m,g,!n.project.problems.length&&!r?.project.problems.length).filter(f=>!p||f.sites.some(Le=>l(Le.file))).sort(F),_e=me([...n.files.keys()],i.imports,A,t.architecture??n.project.architecture),j=ae(i.imports);Cn(S,j,d);let U=$e(e,n,A,d),Be=new Set(U.filter(f=>f.outcome==="accepted").map(f=>f.id)),De=A.filter(f=>f.evidence==="derived"&&!Be.has(f.id)&&(!r||f.status==="introduced"||f.status==="worsened")).map(f=>f.id);return{mode:r?"review":"health",...r?{base:r.revision}:{},current:n.fingerprint,metricRules:"typescript-function-local-v1",changedFiles:o.filter(l),configurationChanges:u,relationshipChangedFiles:a.filter(l),architecture:ce(i.architecture),functions:h.filter(f=>l((f.after??f.before).file)).map(f=>g?f:{status:"uncomparable",before:f.before,after:f.after}),findings:A,suppressionDecisions:U,blockingFindingIds:De,modules:_e,affectedFiles:Mn(c,i,o,a,l),coverage:{status:d.length?"incomplete":"accounted",analyzedFiles:n.files.size,eligibleFiles:n.eligibleFiles,excludedFiles:n.excludedFiles,exclusions:n.exclusions,dependencies:j,analyzedFunctions:i.functions.length,unresolvedImports:j.resolutions.missing+j.resolutions.ambiguous,testCoverage:S,problems:d,limits:[...Oe,"Default exclusions: tests/fixtures/benchmarks, reference/vendor copies, generated files, declarations and build output. Use --include-tests, --include-references or --include-generated for the corresponding source roles.","Diff is the selected Git commit versus current files, including untracked files; staged-only review and inferred rename/split identity are not claimed.","Coverage without matching source hashes is unavailable, never zero. Base CRAP is unavailable unless independently measured against that base.","Affected files are transitive importers in the covered source graph. Use fresh diff-impact/evidence for symbol consumers and runtime effects."]}}}function Cn(e,t,n){e.requested&&e.reasons.length&&n.push(`Requested test coverage is incomplete: ${e.reasons.join("; ")}`),(t.resolutions.missing||t.resolutions.ambiguous)&&n.push(`${t.resolutions.missing} internal imports unresolved; ${t.resolutions.ambiguous} ambiguous. Inspect coverage.dependencies.unresolved or scoped findings.`)}function wn(e,t){let n=Me(e,t),s=Ce(e,t.coverage),i=H(n,s,t.architecture),r=t.base===void 0?void 0:Ie(e,t.base,t),c=r?H(r,void 0,t.architecture):void 0,{changedFiles:o,configurationChanges:u,relationshipChangedFiles:a,changed:d,files:p,functionChanges:l}=Rn(n,r,c,i,t.architecture),g=[...i.problems,...c?.problems.map(S=>`base: ${S}`)??[],...ke(e,n,t)],m=t.scope?.replaceAll("\\","/").replace(/^\.\//,"").replace(/\/$/,""),h=S=>!m||m==="."||S===m||S.startsWith(m+"/");m&&!p.some(h)&&g.push(`Scope ${JSON.stringify(m)} matches no analyzed source file; check the path and exclusions.`);let b=g.length===0;return g.push(...n.project.problems,...r?.project.problems.map(S=>`base: ${S}`)??[]),{current:n,coverageInput:s,analysis:i,base:r,before:c,changedFiles:o,configurationChanges:u,relationshipChangedFiles:a,problems:g,scope:m,inScope:h,sourceComparable:b,changed:d,functionChanges:l}}function Rn(e,t,n,s,i){let r=Ne(t?.files,e.files),c=Ne(t?.project.inputs,e.project.inputs),o=n?pe(n.imports,s.imports):[],u=t&&JSON.stringify(i??t.project.architecture)!==JSON.stringify(i??e.project.architecture),a=[...new Set([...e.files.keys(),...t?.files.keys()??[]])],d=new Set([...r,...o]);if(u)for(let l of a)d.add(l);let p=n?An(n.functions,s.functions):[];return{changedFiles:r,configurationChanges:c,relationshipChangedFiles:o,changed:d,files:a,functionChanges:p}}function Mn(e,t,n,s,i){return e?[...new Set([...s.filter(r=>i(r)&&!n.includes(r)),...Pe(e.graph,new Set([...n,...s].filter(i))),...Pe(t.graph,new Set([...n,...s].filter(i)))])].sort():[]}function Ne(e,t){return e?[...new Set([...e.keys(),...t.keys()])].filter(n=>e.get(n)!==t.get(n)).sort():[]}function In(e,t,n,s,i){let r=e?En(e,t,n,s,i):t.findings;if(e)for(let c of _n(e,t,n,s&&i)){let o=r.findIndex(u=>u.id===c.id);o>=0?r[o]=c:r.push(c)}return r}function kn(e,t,n){let s=0,i=new Set;for(let r of e)r.coverage.status==="available"?s++:i.add(r.coverage.reason);return t&&n&&i.add(n),{requested:t,available:s,unavailable:e.length-s,reasons:[...i]}}function An(e,t){let n=o=>`${o.file}:${o.name}`,s=o=>{let u=new Map;for(let a of o)u.set(n(a),[...u.get(n(a))??[],a]);return u},i=s(e),r=s(t),c=[];for(let o of[...new Set([...i.keys(),...r.keys()])].sort()){let u=i.get(o)??[],a=r.get(o)??[];c.push(...jn(u,a))}return c}function jn(e,t){let n=[];return e.length>1||t.length>1?e.map(s=>s.sourceHash).join()!==t.map(s=>s.sourceHash).join()&&n.push(...e.map(s=>({status:"uncomparable",before:s})),...t.map(s=>({status:"uncomparable",after:s}))):e[0]&&t[0]?e[0].sourceHash!==t[0].sourceHash&&n.push({status:"modified",before:e[0],after:t[0],delta:{cyclomatic:t[0].cyclomatic-e[0].cyclomatic,cognitive:t[0].cognitive-e[0].cognitive}}):t[0]?n.push({status:"added",after:t[0]}):e[0]&&n.push({status:"removed",before:e[0]}),n}function En(e,t,n,s,i=!0){let r=new Map(e.findings.map(d=>[d.id,d])),c=new Map(t.findings.map(d=>[d.id,d])),o=[],u=Pn(e.functions,t.functions),a=Nn(e.functions,t.functions);for(let d of t.findings){if(d.sites.length&&!d.sites.some(g=>n.has(g.file)))continue;let p=r.get(d.id),l=On(d,p,s,i,u,a);o.push({...d,status:l})}for(let d of e.findings)!c.has(d.id)&&d.sites.some(p=>n.has(p.file))&&o.push({...d,status:s&&(i||!["architecture","dependency-cycle","broken-dependency","responsibility"].includes(d.rule))?"resolved":"uncomparable"});return o}function On(e,t,n,s,i,r){let c="existing";return!n||e.rule==="crap"||!s&&["architecture","dependency-cycle","broken-dependency","responsibility"].includes(e.rule)||e.sites.some(o=>i.has(`${o.file}:${o.name}`))?c="uncomparable":t?(e.score>t.score||r.has(e.id))&&(c="worsened"):c="introduced",c}function Nn(e,t){let n=new Map(e.map(i=>[`complexity:${i.file}:${i.name}`,i])),s=new Set;for(let i of t){let r=`complexity:${i.file}:${i.name}`,c=n.get(r);c&&(i.cyclomatic>c.cyclomatic||i.cognitive>c.cognitive)&&s.add(r)}return s}function Pn(e,t){let n=r=>{let c=new Map;for(let o of r){let u=`${o.file}:${o.name}`;c.set(u,(c.get(u)??0)+1)}return c},s=n(e),i=n(t);return new Set([...s.keys(),...i.keys()].filter(r=>(s.get(r)??0)>1||(i.get(r)??0)>1))}function _n(e,t,n,s){let i=new Map(e.imports.map(c=>[`${c.file}:${c.specifier}`,c])),r=[];for(let c of t.imports){if(c.target)continue;let o=i.get(`${c.file}:${c.specifier}`);!o?.target||!n.has(o.target)||t.graph.has(o.target)||r.push({id:`broken-dependency:${c.file}:${c.specifier}`,rule:"broken-dependency",evidence:"derived",status:s?"introduced":"uncomparable",summary:"An unchanged import still refers to a removed source file.",sites:[{file:c.file,line:c.line},{file:o.target,line:1}],score:1,details:[`${c.specifier} resolved to ${o.target} at the base commit and no longer resolves in current source.`]})}return r}function Pe(e,t){let n=new Map;for(let[r,c]of e)for(let o of c){let u=n.get(o)??new Set;u.add(r),n.set(o,u)}let s=new Set(t),i=[...t];for(let r=0;r<i.length;r++)for(let c of n.get(i[r])??[])s.has(c)||(s.add(c),i.push(c));return[...s].filter(r=>!t.has(r)).sort()}export{Lt as a};
|
|
12
|
+
//# sourceMappingURL=chunk-INLMWEUU.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function d(r){let e=r?.match(/--max[-_]old[-_]space[-_]size(?:=|\s+)(\d+)/u);if(!e)return;let n=Number.parseInt(e[1],10);return Number.isInteger(n)&&n>0?n:void 0}function s(r,e){return[(r??"").replace(/(?:^|\s)--max[-_]old[-_]space[-_]size(?:=|\s+)\d+/gu," ").trim(),`--max-old-space-size=${e}`].filter(Boolean).join(" ")}function i(r,e){let n=[];for(let t=0;t<r.length;t+=e)n.push(r.slice(t,t+e));return n}export{d as a,s as b,i as c};
|
|
2
|
+
//# sourceMappingURL=chunk-IWQPAF4F.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import{f as b}from"./chunk-S6CZA3MV.js";import{a as N}from"./chunk-OGFV2BUX.js";import{b as S}from"./chunk-QXEUDXBT.js";import{P as h,k as f,s as g}from"./chunk-J5FJMODQ.js";import{a as x}from"./chunk-QOIXNWQR.js";import{c as u,d as I,h as E}from"./chunk-YULZRALL.js";import{l as p}from"./chunk-U5RIG3JP.js";import{ts as a}from"@ts-morph/common";function Q(e,t,o={}){return C(e,t,o)?.map(r=>({symbol:r.symbol,shortName:r.shortName,fromFile:r.fromFile,evidence:r.evidence}))??[]}function V(e,t){let o=S(e,t);if(o.candidates.length>0)throw new Error(`Ambiguous symbol: ${t}. Use an exact symbol.`);let r=o.match,s=r?D(e,r.symbol):[];if(!r&&!d(t))return[];let n=k(e,t,r);return d(t)&&n.length>0?n:v([...s,...n])}function ee(e,t,o={}){let r=N(e,t);if(!r)return[];let s=F(e,r),n=o.semantic===!1?null:y(e,r);return(n?_(n,s):s).filter(m=>!m.used).map(m=>({symbol:m.symbol,shortName:m.shortName,importedIn:m.importer}))}function _(e,t){let o=new Map;for(let s of t){let n=o.get(s.shortName);n?n.push(s):o.set(s.shortName,[s])}let r=e.map(s=>{let n=o.get(s.shortName),i=n?.shift();return n?.length===0&&o.delete(s.shortName),i?{...s,used:s.used||i.used}:s});return r.push(...[...o.values()].flat()),r}function D(e,t){return e.all(`SELECT DISTINCT gs.symbol, d.relative_path AS importer
|
|
2
|
+
FROM mentions m
|
|
3
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
4
|
+
JOIN documents d ON c.document_id = d.id
|
|
5
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
6
|
+
WHERE gs.symbol = ?
|
|
7
|
+
AND m.role = 2
|
|
8
|
+
ORDER BY d.relative_path`,t).filter(r=>!e.isIgnored(r.importer)).map(r=>({symbol:r.symbol,shortName:u(r.symbol),fromFile:r.importer,evidence:"indexed-import"}))}function k(e,t,o){let r=o?.relativePath??null,s=o?I(o.symbol):t.replace(/\(\)$/,""),n=o?E(o.symbol):!1,i=r?T(e,r,s):new Set([s]),m=new Set;for(let c of x(e,{includeIgnored:!1}))for(let O of h(e,c))P(O,c,{targetFile:r,targetLeaf:s,exportNames:i,targetIsModule:n,targetPattern:t})&&m.add(c);let l=d(t)?t.trim():null;return[...m].sort().map(c=>({symbol:l??o?.symbol??s,shortName:l??(o?u(o.symbol):s),fromFile:c,evidence:"source-import-candidate"}))}function v(e){let t=new Set,o=[];for(let r of e){let s=`${r.symbol}|${r.fromFile}`;t.has(s)||(t.add(s),o.push(r))}return o.sort((r,s)=>r.fromFile.localeCompare(s.fromFile)||r.shortName.localeCompare(s.shortName))}function P(e,t,o){return!e.sourcePath||o.targetFile&&p(e.sourcePath)!==p(o.targetFile)?!1:e.kind==="side-effect"?!!(o.targetFile&&o.targetIsModule):o.targetFile&&B(t)?!0:M(e,o)}function M(e,t){return e.kind==="namespace"&&L(e,t.targetPattern)||t.targetIsModule?!0:e.kind==="default"?t.exportNames.has("default"):e.kind==="named"&&t.exportNames.has(e.importedName)?!0:e.kind==="namespace"&&e.usedMembers.some(o=>t.exportNames.has(o))}function T(e,t,o){let r=new Set([o]);if(!/\.[cm]?[jt]sx?$/.test(t))return r;let s=f(e,t),n=a.createSourceFile(t,s,a.ScriptTarget.Latest,!0);for(let i of n.statements)if(A(i)===o&&r.add("default"),a.isExportDeclaration(i))for(let m of w(i))(m.propertyName??m.name).text===o&&r.add(m.name.text);return r}function A(e){if(a.isExportAssignment(e))return!e.isExportEquals&&a.isIdentifier(e.expression)?e.expression.text:void 0;if(a.isFunctionDeclaration(e)||a.isClassDeclaration(e))return e.modifiers?.some(t=>t.kind===a.SyntaxKind.DefaultKeyword)?e.name?.text:void 0}function w(e){return e.moduleSpecifier||!e.exportClause||!a.isNamedExports(e.exportClause)?[]:e.exportClause.elements}function L(e,t){let o=t.trim().replace(/\(\)$/,"");return d(o)?e.importedName===o||e.localName===o:!1}function d(e){let t=e.trim().replace(/\(\)$/,"");return t.includes(".")&&!t.includes("/")&&!t.includes(":")}function C(e,t,o={}){let r=N(e,t);if(!r)return null;let s=$(e,r,o)??[],n=F(e,r),i=o.semantic===!1?null:y(e,r),m=i?_(i,n):n;return[...s,...m.filter(l=>!s.some(c=>c.fromFile===l.fromFile&&I(c.symbol)===l.importedName))]}function $(e,t,o){let s=e.all(`SELECT DISTINCT
|
|
9
|
+
gs.symbol,
|
|
10
|
+
def_d.relative_path AS from_file,
|
|
11
|
+
imp_d.relative_path AS importer,
|
|
12
|
+
EXISTS (
|
|
13
|
+
SELECT 1
|
|
14
|
+
FROM mentions ref_m
|
|
15
|
+
JOIN chunks ref_c ON ref_m.chunk_id = ref_c.id
|
|
16
|
+
WHERE ref_m.symbol_id = gs.id
|
|
17
|
+
AND ref_m.role != 1
|
|
18
|
+
AND ref_c.document_id = imp_d.id
|
|
19
|
+
) AS used
|
|
20
|
+
FROM mentions m
|
|
21
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
22
|
+
JOIN documents imp_d ON c.document_id = imp_d.id
|
|
23
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
24
|
+
LEFT JOIN (
|
|
25
|
+
SELECT m2.symbol_id, c2.document_id
|
|
26
|
+
FROM mentions m2
|
|
27
|
+
JOIN chunks c2 ON m2.chunk_id = c2.id
|
|
28
|
+
WHERE m2.role = 1
|
|
29
|
+
GROUP BY m2.symbol_id
|
|
30
|
+
) sym_def ON sym_def.symbol_id = gs.id
|
|
31
|
+
LEFT JOIN documents def_d ON sym_def.document_id = def_d.id
|
|
32
|
+
WHERE imp_d.relative_path = ?
|
|
33
|
+
AND m.role = 2
|
|
34
|
+
ORDER BY def_d.relative_path, gs.symbol`,t).filter(n=>!e.isIgnored(n.importer));if(s.length>0){let n=o.semantic===!1?[]:b(e,t);return s.map(i=>({symbol:i.symbol,shortName:u(i.symbol),fromFile:i.from_file??"(external)",importer:i.importer,used:i.used!==0||n.some(m=>m.isUsed&&m.sourcePath===i.from_file),evidence:"indexed-import"}))}return null}function y(e,t){let o=b(e,t);return o.length>0?o.map(r=>{let s=R(r.importedName,r.localName,r.kind);return{symbol:s,shortName:s,fromFile:r.sourcePath??"(external)",importer:t,used:r.kind==="side-effect"?!0:r.isUsed,importedName:r.importedName,evidence:"semantic-import"}}):null}function F(e,t){let o=J(t,f(e,t));return h(e,t).map(r=>{let s=R(r.importedName,r.localName,r.kind),n=r.kind==="side-effect"||U(t,r)||o.has(r.localName??r.importedName)?!0:r.used;return{symbol:s,shortName:s,fromFile:r.sourcePath??"(external)",importer:t,used:n,importedName:r.importedName,evidence:"source-import-candidate"}})}function J(e,t){let o=new Set;if(g(e)!=="python")return o;let r=/(?:^|\n)\s*__all__\s*(?:\+?=)\s*[[(]([\s\S]*?)[\])]/g;for(let s of t.matchAll(r)){let n=s[1]??"";for(let i of n.matchAll(/(['"])([A-Za-z_]\w*)\1/g))o.add(i[2])}return o}function U(e,t){if(g(e)!=="rust"||t.used||t.kind==="side-effect")return!1;let o=t.localName??t.importedName;return o==="_"||/^[A-Z]/.test(o)}function R(e,t,o){return o==="namespace"&&e==="*"&&t?`* as ${t}`:o==="default"&&t?`default as ${t}`:o==="side-effect"?"(side effect import)":t&&t!==e?`${e} as ${t}`:e}function B(e){return/\.(?:c|h|cc|cpp|cxx|hpp|hh|hxx)$/i.test(e)}export{Q as a,V as b,ee as c};
|
|
35
|
+
//# sourceMappingURL=chunk-IZJ6YUKP.js.map
|