scip-query 0.19.4 → 0.19.6
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 +75 -1
- package/README.md +242 -49
- package/dist/augment-vue-worker.js +1 -1
- package/dist/{chunk-2YU7I3QO.js → chunk-24QNP7MN.js} +2 -2
- package/dist/{chunk-CNKAGUPL.js → chunk-26X7KCJR.js} +2 -2
- package/dist/{chunk-GPBBJ5Y4.js → chunk-273W2U4Y.js} +3 -3
- package/dist/{chunk-7GXM52MI.js → chunk-2CVXCGL4.js} +2 -2
- package/dist/{chunk-ABMYA4TN.js → chunk-2EZSOTSY.js} +2 -2
- package/dist/{chunk-HKEHS2AS.js → chunk-2GSQR6YA.js} +2 -2
- package/dist/{chunk-FECYOO5O.js → chunk-2OXVAGGT.js} +2 -2
- package/dist/chunk-2ZOCHAL2.js +8 -0
- package/dist/{chunk-QGXBRIM5.js → chunk-336DC5NJ.js} +2 -2
- package/dist/chunk-35SQLYCQ.js +2 -0
- package/dist/{chunk-VXQNNXJE.js → chunk-3OIKRYU5.js} +2 -2
- package/dist/{chunk-52ZYCAEO.js → chunk-47X75ZKH.js} +2 -2
- package/dist/{chunk-NPKYOIFM.js → chunk-4CGVLUDP.js} +2 -2
- package/dist/chunk-4RI4BJGT.js +8 -0
- package/dist/{chunk-P2PC2WGR.js → chunk-52HQTTPB.js} +2 -2
- package/dist/{chunk-YNRNA5LK.js → chunk-5OC3HWP5.js} +2 -2
- package/dist/{chunk-STOL2BTL.js → chunk-6XFC7PQ5.js} +2 -2
- package/dist/{chunk-J77UIT3I.js → chunk-6XHTISLI.js} +2 -2
- package/dist/chunk-6YTSKJJ3.js +2 -0
- package/dist/{chunk-BTEE5NZQ.js → chunk-7E3TH5ZN.js} +2 -2
- package/dist/{chunk-X6D5IC6I.js → chunk-7LABSJSR.js} +2 -2
- package/dist/chunk-7Q6VYYCH.js +2 -0
- package/dist/{chunk-FWUUZTIO.js → chunk-A43URCQ3.js} +2 -2
- package/dist/chunk-A63U2W3P.js +3 -0
- package/dist/{chunk-3MJ5YA4Y.js → chunk-ADFSIJP2.js} +2 -2
- package/dist/chunk-AOLE4DYM.js +6 -0
- package/dist/chunk-APMMR5Y2.js +2 -0
- package/dist/chunk-B5MHCHP3.js +107 -0
- package/dist/{chunk-4RSI5EMG.js → chunk-CSTYYXKC.js} +2 -2
- package/dist/{chunk-25LPM4DG.js → chunk-CYJM7CYF.js} +2 -2
- package/dist/{chunk-S44IULR6.js → chunk-DD5BOU5I.js} +2 -2
- package/dist/{chunk-YGAGTIDK.js → chunk-DGMCFMPG.js} +7 -7
- package/dist/{chunk-UOAV44HR.js → chunk-E2ZXPB7J.js} +2 -2
- package/dist/{chunk-IZKFSVBV.js → chunk-EVOC5I5I.js} +2 -2
- package/dist/{chunk-XTX6QHOF.js → chunk-F42A3AKG.js} +2 -2
- package/dist/{chunk-Q4IIEGXJ.js → chunk-FHCTEANE.js} +2 -2
- package/dist/{chunk-3SVWW4PN.js → chunk-FKGN4A4E.js} +2 -2
- package/dist/{chunk-IG7N5ZIK.js → chunk-FQTPPXNA.js} +2 -2
- package/dist/{chunk-F6O7AAC3.js → chunk-G4UQL4CP.js} +2 -2
- package/dist/chunk-GA64UPMI.js +6 -0
- package/dist/{chunk-ZXJYMGD3.js → chunk-GK3GRUJX.js} +2 -2
- package/dist/chunk-HEBAY673.js +2 -0
- package/dist/chunk-HELS7KFF.js +2 -0
- package/dist/{chunk-B5NLK2B3.js → chunk-IPDCSB6N.js} +2 -2
- package/dist/{chunk-M7MTH5NR.js → chunk-IYAOX36F.js} +2 -2
- package/dist/{chunk-YVVCVR2L.js → chunk-J7VT2CRB.js} +2 -2
- package/dist/{chunk-4333ETTV.js → chunk-JELJLXEE.js} +2 -2
- package/dist/{chunk-LBMJEAEW.js → chunk-JERWGHQT.js} +2 -2
- package/dist/chunk-JJJCO4QC.js +945 -0
- package/dist/{chunk-6E7UTQY7.js → chunk-JZNLMHWY.js} +2 -2
- package/dist/{chunk-R4FQGQ4X.js → chunk-K42M2KWT.js} +2 -2
- package/dist/{chunk-H7UKLTWJ.js → chunk-KLVJABXA.js} +2 -2
- package/dist/chunk-KP4KBDVF.js +3 -0
- package/dist/{chunk-RV2FQIX3.js → chunk-LMFVTUW2.js} +2 -2
- package/dist/chunk-LRTP3DKL.js +3 -0
- package/dist/{chunk-U6WNH5GC.js → chunk-MGBJHRFB.js} +2 -2
- package/dist/{chunk-QDV6RDCP.js → chunk-MLGTCX56.js} +2 -2
- package/dist/{chunk-54HA4ZXH.js → chunk-N3SE646F.js} +2 -2
- package/dist/{chunk-KP6XRY5Z.js → chunk-NBRUH7OE.js} +2 -2
- package/dist/{chunk-M7AIS73L.js → chunk-NN4ZIRPK.js} +2 -2
- package/dist/{chunk-I5RJM53C.js → chunk-NQLSSVOB.js} +2 -2
- package/dist/{chunk-4SALD7RU.js → chunk-OBKDTVZ3.js} +2 -2
- package/dist/{chunk-GBQ5NYPR.js → chunk-OHWZKLVA.js} +6 -6
- package/dist/{chunk-6NSFJYRC.js → chunk-OP3MTFJR.js} +2 -2
- package/dist/{chunk-EOOJGLDU.js → chunk-OQ2A4G2G.js} +2 -2
- package/dist/{chunk-DLWR3NUU.js → chunk-P6HBYNBE.js} +2 -2
- package/dist/{chunk-QVWS2VWZ.js → chunk-PC44K7RF.js} +2 -2
- package/dist/{chunk-A2EZV2UM.js → chunk-QBYYWGAT.js} +2 -2
- package/dist/{chunk-QRGV2F7L.js → chunk-QHKUY4FW.js} +2 -2
- package/dist/chunk-QHRL4LKM.js +2 -0
- package/dist/{chunk-I5AWSI2G.js → chunk-QQWOFXNW.js} +2 -2
- package/dist/{chunk-WQTAC523.js → chunk-RBFFD4V2.js} +2 -2
- package/dist/{chunk-SOAT6NLA.js → chunk-RJHCPSZ7.js} +2 -2
- package/dist/{chunk-VGRICIQI.js → chunk-RWRLUZ6U.js} +2 -2
- package/dist/{chunk-4T3LTWUS.js → chunk-S2GP3CU3.js} +2 -2
- package/dist/{chunk-HEXVUYFQ.js → chunk-SHKZ7OVJ.js} +2 -2
- package/dist/{chunk-NSS46APD.js → chunk-TFUU5MQQ.js} +2 -2
- package/dist/{chunk-IUFDSKGG.js → chunk-TYQ76QHQ.js} +2 -2
- package/dist/{chunk-NRCXJDHL.js → chunk-U5CNPPTZ.js} +2 -2
- package/dist/{chunk-MITTUCEH.js → chunk-UQK5CRUK.js} +2 -2
- package/dist/{chunk-XLTP42QA.js → chunk-UUJBLG6J.js} +2 -2
- package/dist/chunk-UXP636P5.js +144 -0
- package/dist/{chunk-64RFXJT5.js → chunk-VEVBIAOJ.js} +6 -6
- package/dist/chunk-VKRQDBW5.js +9 -0
- package/dist/{chunk-C7NIYIQ4.js → chunk-VOQFGC2W.js} +4 -4
- package/dist/{chunk-DZ74OMG6.js → chunk-VP542C25.js} +2 -2
- package/dist/{chunk-Q3AFUTGB.js → chunk-WMXRRBII.js} +2 -2
- package/dist/{chunk-ZGZUZ7XE.js → chunk-WXAAURU7.js} +2 -2
- package/dist/chunk-X3NLZHPA.js +20 -0
- package/dist/{chunk-WER3B7MI.js → chunk-XF3KLXN3.js} +2 -2
- package/dist/{chunk-NH5ALKPW.js → chunk-XVJ3V7LM.js} +2 -2
- package/dist/{chunk-4XTA5OMB.js → chunk-YGQN3XGZ.js} +2 -2
- package/dist/{chunk-CFMXJPHH.js → chunk-YHXBD52M.js} +2 -2
- package/dist/{chunk-7B3UPBVA.js → chunk-YLVE3SXZ.js} +2 -2
- package/dist/{chunk-YIJ7ZAA4.js → chunk-YTUD45PU.js} +2 -2
- package/dist/{chunk-VTKGCT3V.js → chunk-YWB2EBNB.js} +2 -2
- package/dist/{chunk-UKZBVX4U.js → chunk-Z2LHPIOM.js} +2 -2
- package/dist/chunk-Z5QQPJ3U.js +30 -0
- package/dist/{chunk-NZL2DBT7.js → chunk-ZLJLE6LK.js} +2 -2
- package/dist/{chunk-XYADIZHU.js → chunk-ZTTISZ7J.js} +2 -2
- package/dist/cli.js +3 -3
- package/dist/command-descriptors-SJDZ7QGR.js +617 -0
- package/dist/{config-types-D20KuvvZ.d.ts → config-types-BWQ5xPGI.d.ts} +4 -0
- package/dist/{db-G_II8yXU.d.ts → db-B0r1o7Vt.d.ts} +18 -1
- package/dist/direct-navigation-HTKOZEOM.js +3 -0
- package/dist/{health-oblXYgkF.d.ts → health-CFnlCiTz.d.ts} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/postinstall.js +1 -1
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +2 -2
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.d.ts +2 -2
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +2 -2
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +2 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +2 -2
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +2 -2
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +2 -2
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +2 -2
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +2 -2
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +2 -2
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +2 -2
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.d.ts +3 -3
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/deep-chains.d.ts +2 -2
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/deps.d.ts +2 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-gate.d.ts +30 -2
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +2 -2
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +2 -2
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +2 -2
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +2 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +2 -2
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +2 -2
- package/dist/queries/health.d.ts +3 -3
- 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 +2 -2
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +2 -2
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +17 -3
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- 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.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.d.ts +3 -3
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +2 -2
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +2 -2
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +2 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +2 -2
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +2 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +2 -2
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +2 -2
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +1 -1
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.d.ts +2 -2
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +2 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +2 -2
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/trace.d.ts +2 -2
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +3 -3
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.d.ts +2 -2
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.d.ts +2 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +2 -2
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +2 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +23 -24
- package/dist/reindex.d.ts +10 -4
- package/dist/reindex.js +33 -38
- package/dist/runtime.d.ts +167 -11
- package/dist/runtime.js +3 -2
- 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/{scip-cli-kRpaexVJ.d.ts → scip-cli-DCvnlZCu.d.ts} +5 -1
- package/dist/watch-server.js +5 -5
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/AI_FAILURE_MODES.md +18 -18
- package/docs/API_EVOLUTION.md +71 -0
- package/docs/CLI_JSON_OUTPUT.md +83 -0
- package/docs/COMMAND_REFERENCE.md +10 -8
- package/docs/COMMITTED_RECORD_COMPATIBILITY.md +117 -0
- package/docs/CONFIGURATION_WRITE_SAFETY.md +130 -0
- package/docs/DETECTOR_GUIDE.md +47 -47
- package/docs/DURABILITY.md +103 -0
- package/docs/INDEX_GENERATIONS.md +121 -0
- package/docs/LOCK_PROTOCOL.md +133 -0
- package/docs/MAILBOX_LIFECYCLE.md +197 -0
- package/docs/REINDEX_METADATA_COMPATIBILITY.md +84 -0
- package/docs/RUST_DURABLE_SESSION_PROTOCOL.md +126 -0
- package/docs/TELEMETRY_RETENTION.md +72 -0
- package/docs/TIME_SEMANTICS.md +77 -0
- package/docs/WATCH_REFRESH_REQUESTS.md +110 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +298 -0
- package/docs/analyzer-validation-ledger.md +24 -23
- package/docs/schemas/cli-json-envelope.schema.json +53 -0
- package/docs/schemas/npm-release-state.schema.json +146 -0
- package/docs/schemas/outcome-event-record.schema.json +39 -0
- package/docs/schemas/project-config.schema.json +247 -0
- package/docs/schemas/suppression-record.schema.json +31 -0
- package/docs/schemas/windows-sidecar-provenance.schema.json +137 -0
- package/package.json +15 -5
- package/scripts/build-scip-windows.mjs +180 -61
- package/scripts/scip-windows-provenance.mjs +364 -0
- package/scripts/verify-scip-windows.mjs +29 -0
- package/skills/_shared/SKILL.md +91 -242
- package/skills/_shared/agents/openai.yaml +1 -1
- package/skills/_shared/references/agent-contract-catalog.md +105 -0
- package/skills/_shared/references/command-catalog.md +118 -0
- package/skills/_shared/references/detector-precision-and-diffgate.md +59 -0
- package/skills/_shared/references/evidence-and-dead-code.md +25 -0
- package/skills/scip-audit/SKILL.md +76 -0
- package/skills/scip-audit/agents/openai.yaml +4 -0
- package/skills/scip-audit/references/claims.md +98 -0
- package/skills/scip-audit/references/cleanup.md +101 -0
- package/skills/scip-audit/references/directory.md +222 -0
- package/skills/scip-audit/references/frontend.md +130 -0
- package/skills/scip-audit/references/integrity.md +154 -0
- package/skills/scip-audit/references/maintainability.md +162 -0
- package/skills/scip-audit/references/twin-drift.md +104 -0
- package/skills/scip-diagnose/SKILL.md +52 -0
- package/skills/scip-diagnose/agents/openai.yaml +4 -0
- package/skills/scip-diagnose/references/debug.md +117 -0
- package/skills/{scip-probe-reachability/SKILL.md → scip-diagnose/references/probe-reachability.md} +12 -27
- package/skills/scip-diagnose/references/root-cause.md +145 -0
- package/skills/scip-diagnose/references/triage.md +119 -0
- package/skills/scip-explore/SKILL.md +53 -84
- package/skills/scip-explore/agents/openai.yaml +2 -2
- package/skills/scip-explore/references/diagrams.md +40 -0
- package/skills/scip-explore/references/language-playbook.md +49 -0
- package/skills/scip-improve/SKILL.md +56 -0
- package/skills/scip-improve/agents/openai.yaml +4 -0
- package/skills/scip-improve/references/cleanup-batches.md +53 -0
- package/skills/scip-improve/references/directory-moves.md +53 -0
- package/skills/scip-improve/references/doc-reconcile.md +30 -0
- package/skills/scip-improve/references/frontend-extraction.md +39 -0
- package/skills/scip-improve/references/maintainability-mechanism.md +43 -0
- package/skills/scip-improve/references/twin-drift.md +35 -0
- package/skills/scip-plan/SKILL.md +68 -0
- package/skills/scip-plan/agents/openai.yaml +4 -0
- package/skills/scip-plan/references/api-impact.md +19 -0
- package/skills/scip-plan/references/conductor.md +41 -0
- package/skills/scip-plan/references/high-assurance.md +43 -0
- package/skills/scip-plan/references/hyper-optimization.md +50 -0
- package/skills/scip-plan/references/tla-model.md +88 -0
- package/skills/scip-query/SKILL.md +52 -97
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-setup/SKILL.md +65 -176
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/skills/scip-setup/references/bootstrap-workflow.md +120 -0
- package/skills/scip-setup/references/language-verification.md +61 -0
- package/skills/scip-setup/references/lifecycle-commands.md +119 -0
- package/skills/scip-setup/references/per-repo-triage.md +24 -0
- package/skills/scip-verify/SKILL.md +123 -70
- package/skills/scip-verify/agents/openai.yaml +2 -2
- package/skills/scip-verify/references/calibrate-detectors.md +170 -0
- package/dist/chunk-2CTX5CMX.js +0 -4
- package/dist/chunk-2Y373BDD.js +0 -2
- package/dist/chunk-C2QSK7E7.js +0 -2
- package/dist/chunk-D4U5Q3FT.js +0 -7
- package/dist/chunk-K2ERX4UT.js +0 -3
- package/dist/chunk-KHE7J5ZN.js +0 -3
- package/dist/chunk-L7SPDE73.js +0 -84
- package/dist/chunk-LHMNRHGV.js +0 -3
- package/dist/chunk-LM72NQ7T.js +0 -3
- package/dist/chunk-MSWVMDAH.js +0 -122
- package/dist/chunk-NH7WNNQC.js +0 -20
- package/dist/chunk-OMPZHGHO.js +0 -2
- package/dist/chunk-SVLTAG5O.js +0 -927
- package/dist/chunk-U7DSEKOM.js +0 -30
- package/dist/chunk-V27BEQJN.js +0 -7
- package/dist/chunk-VMNZB6WI.js +0 -4
- package/dist/chunk-XBN5VO53.js +0 -2
- package/dist/chunk-ZAIILQNP.js +0 -5
- package/dist/command-descriptors-MFU4BCJ7.js +0 -612
- package/dist/direct-navigation-MRMQFIRB.js +0 -3
- package/skills/scip-api-impact/SKILL.md +0 -139
- package/skills/scip-api-impact/agents/openai.yaml +0 -4
- package/skills/scip-calibrate/SKILL.md +0 -131
- package/skills/scip-calibrate/agents/openai.yaml +0 -4
- package/skills/scip-claim-audit/SKILL.md +0 -106
- package/skills/scip-claim-audit/agents/openai.yaml +0 -4
- package/skills/scip-cleanup-audit/SKILL.md +0 -126
- package/skills/scip-cleanup-audit/agents/openai.yaml +0 -4
- package/skills/scip-cleanup-improve/SKILL.md +0 -84
- package/skills/scip-cleanup-improve/agents/openai.yaml +0 -4
- package/skills/scip-concrete-plan/SKILL.md +0 -262
- package/skills/scip-concrete-plan/agents/openai.yaml +0 -4
- package/skills/scip-conductor/SKILL.md +0 -133
- package/skills/scip-conductor/agents/openai.yaml +0 -4
- package/skills/scip-debug/SKILL.md +0 -130
- package/skills/scip-debug/agents/openai.yaml +0 -4
- package/skills/scip-diagram/SKILL.md +0 -110
- package/skills/scip-diagram/agents/openai.yaml +0 -4
- package/skills/scip-directory-architecture/SKILL.md +0 -254
- package/skills/scip-directory-architecture/agents/openai.yaml +0 -4
- package/skills/scip-doc-reconcile/SKILL.md +0 -89
- package/skills/scip-doc-reconcile/agents/openai.yaml +0 -4
- package/skills/scip-hyper-optimization/SKILL.md +0 -156
- package/skills/scip-hyper-optimization/agents/openai.yaml +0 -4
- package/skills/scip-integrity-audit/SKILL.md +0 -152
- package/skills/scip-integrity-audit/agents/openai.yaml +0 -4
- package/skills/scip-language-playbook/SKILL.md +0 -106
- package/skills/scip-language-playbook/agents/openai.yaml +0 -4
- package/skills/scip-maintainability/SKILL.md +0 -158
- package/skills/scip-maintainability/agents/openai.yaml +0 -4
- package/skills/scip-probe-reachability/agents/openai.yaml +0 -4
- package/skills/scip-react-maintainability/SKILL.md +0 -101
- package/skills/scip-react-maintainability/agents/openai.yaml +0 -4
- package/skills/scip-root-cause/SKILL.md +0 -150
- package/skills/scip-root-cause/agents/openai.yaml +0 -4
- package/skills/scip-tla-model-system/SKILL.md +0 -148
- package/skills/scip-tla-model-system/agents/openai.yaml +0 -4
- package/skills/scip-triage-issue/SKILL.md +0 -126
- package/skills/scip-triage-issue/agents/openai.yaml +0 -4
- package/skills/scip-twin-drift/SKILL.md +0 -107
- package/skills/scip-twin-drift/agents/openai.yaml +0 -4
- package/skills/scip-vue-maintainability/SKILL.md +0 -107
- package/skills/scip-vue-maintainability/agents/openai.yaml +0 -4
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import{d as pi,h as yi,i as R,j as Ct,k as hi,l as Ge,m as Si}from"./chunk-VOQFGC2W.js";import{a as ne,b as Le,d as h,f as Rr,g as fi,h as mi,i as Pr,l as je,o as gi,p as Pt,q as U,s as Cr,t as bi,v as Nr,w as xi}from"./chunk-VKRQDBW5.js";import{a as Tr,b as wr,e as kr}from"./chunk-HGFDYOVB.js";import{a as Me}from"./chunk-APMMR5Y2.js";import{readFileSync as ba,statSync as xa}from"fs";import{dirname as Ia,join as Ea}from"path";import{appendFileSync as oa,existsSync as sa,mkdirSync as aa,readFileSync as ca,renameSync as la,rmSync as ua,statSync as da,truncateSync as pa}from"fs";import{basename as fa,dirname as ma}from"path";var Nt=".previous",ga=".rotation.lock",ya=2e3,_r=class extends Error{constructor(r,n){super(`Timed out after ${n}ms waiting for rotating JSONL lock: ${r}`);this.lockPath=r;this.timeoutMs=n;this.name="RotatingJsonlLockTimeoutError"}lockPath;timeoutMs;code="ROTATING_JSONL_LOCK_TIMEOUT"},Ar=class extends Error{constructor(r){super(`Rotating JSONL lock ownership changed before release: ${r}`);this.lockPath=r;this.name="RotatingJsonlLockReleaseError"}lockPath;code="ROTATING_JSONL_LOCK_RELEASE_FAILED"},Ii=Object.freeze({monotonicNow:Me,wait(e){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,e)},tryAcquireLock(e,t){let r=je(e,{kind:"rotating-jsonl",detail:{target:fa(t)}});return r.kind==="acquired"?{kind:"acquired",lock:r.lock}:{kind:"contended"}},makeDirectory(e){aa(e,{recursive:!0})},exists:sa,readBytes(e){return ca(e)},size(e){return da(e).size},truncate:pa,remove(e){ua(e,{force:!0})},rename:la,append:oa});function Ei(e,t,r){let n=r.runtime??Ii,i=JSON.stringify(t);if(i===void 0)throw new TypeError("Rotating JSONL records must be JSON-serializable values.");let o=Buffer.from(`${i}
|
|
2
|
+
`),s=Math.max(1,Math.floor(r.maxSegmentBytes),o.length);return Ri(e,r.lockTimeoutMs,n,()=>{n.makeDirectory(ma(e));let a=ha(e,n);r.onPhase?.("tail-repaired");let c=`${e}${r.previousSuffix??Nt}`,l=!1,u=!1;return n.exists(e)&&n.size(e)+o.length>s&&(n.exists(c)&&(n.remove(c),u=!0),r.onPhase?.("previous-pruned"),n.rename(e,c),l=!0,r.onPhase?.("current-rotated")),n.append(e,o),r.onPhase?.("record-appended"),{lineBytes:o.length,segmentLimitBytes:s,repairedTailBytes:a,rotated:l,prunedPrevious:u}})}function vi(e,t={}){let r=t.runtime??Ii;return Ri(e,t.lockTimeoutMs,r,()=>{let n=[],i=0,o=`${e}${t.previousSuffix??Nt}`;for(let s of[o,e]){if(!r.exists(s))continue;let a=Sa(r.readBytes(s));n.push(...a.lines),i+=a.partialTailBytes}return{lines:n,ignoredPartialTailBytes:i}})}function Ri(e,t,r,n){let i=`${e}${ga}`,o=Math.max(0,t??ya),s=r.monotonicNow()+o,a;for(;;){let p=r.tryAcquireLock(i,e);if(p.kind==="acquired"){a=p.lock;break}let m=s-r.monotonicNow();if(m<=0)throw new _r(i,o);r.wait(Math.min(5,m))}let c=!1,l,u;try{u=n()}catch(p){c=!0,l=p}let d=!1;try{d=a.release()}catch(p){if(!c)throw p}if(c)throw l;if(!d)throw new Ar(i);return u}function ha(e,t){if(!t.exists(e))return 0;let r=t.readBytes(e);if(r.length===0||r[r.length-1]===10)return 0;let n=r.lastIndexOf(10),i=n<0?0:n+1;return t.truncate(e,i),r.length-i}function Sa(e){let t=e.lastIndexOf(10),r=t<0?0:t+1;return{lines:e.subarray(0,r).toString("utf8").split(`
|
|
3
|
+
`).filter(i=>i.length>0),partialTailBytes:e.length-r}}var va="reindex-activity.jsonl",Dr=Nt,Ra=1024*1024,Ta=1440*60*1e3,Ti=e=>ba(e,"utf8");function _t(e){return Ea(Ia(e),va)}function wa(e){if(e.reused)return 0;let t=wi(e.indexPath)+wi(e.dbPath);for(let r of e.shards??[])!r.reused&&r.outputBytes!==null&&(t+=r.outputBytes);return t}function xm(e,t){let r=t.lastRefresh;r&&Fr(_t(e),{version:1,event:"run",recordedAt:r.completedAt,trigger:r.trigger,result:r.result,durationMs:r.durationMs,estimatedLogicalOutputBytes:wa(t)})}function Im(e,t){Fr(_t(e),{version:1,event:"run",recordedAt:t.completedAt,trigger:t.trigger,result:"failed",durationMs:t.durationMs,estimatedLogicalOutputBytes:0})}function Em(e,t,r=new Date){Fr(_t(e),{version:1,event:"suppressed",recordedAt:r.toISOString(),trigger:t,reason:"completed-index-is-fresh"})}function ka(e,t,r=Ra,n){Ei(e,t,{maxSegmentBytes:r,previousSuffix:Dr,...n?{runtime:n}:{}})}function vm(e,t=new Date,r=Ta,n=Ti){let i=t.getTime(),o=i-r,s={windowStartedAt:new Date(o).toISOString(),windowEndedAt:t.toISOString(),runs:0,rebuilt:0,reused:0,failed:0,suppressed:0,estimatedLogicalOutputBytes:0,byTrigger:{}},a=_t(e),c=[];if(n===Ti)try{c=vi(a,{previousSuffix:Dr}).lines}catch{}else for(let l of[`${a}${Dr}`,a])try{c.push(...Na(n(l)))}catch{}for(let l of c){let u=Pa(l);if(!u)continue;let d=Date.parse(u.recordedAt);if(!(d<o||d>i)){if(s.byTrigger[u.trigger.kind]=(s.byTrigger[u.trigger.kind]??0)+1,u.event==="suppressed"){s.suppressed+=1;continue}s.runs+=1,s[u.result]+=1,s.estimatedLogicalOutputBytes+=u.estimatedLogicalOutputBytes}}return s}function Fr(e,t){try{ka(e,t)}catch{}}function Pa(e){try{let t=JSON.parse(e);if(!t||typeof t!="object")return null;let r=t;return r.version!==1||!Le(r.recordedAt)||!r.trigger||!Ca(r.trigger.kind)?null:r.event==="suppressed"?r.reason==="completed-index-is-fresh"?r:null:r.event!=="run"||r.result!=="rebuilt"&&r.result!=="reused"&&r.result!=="failed"||!Rr(r.durationMs)||!Rr(r.estimatedLogicalOutputBytes)?null:r}catch{return null}}function Ca(e){return e==="manual-cli"||e==="setup"||e==="watch-source"||e==="watch-startup"||e==="watch-demand"||e==="watch-git-head"||e==="watch-git-index"||e==="watch-git-state"||e==="unknown"}function wi(e){try{return xa(e).size}catch{return 0}}function Na(e){return e.endsWith(`
|
|
4
|
+
`)||(e=e.slice(0,Math.max(0,e.lastIndexOf(`
|
|
5
|
+
`)+1))),e.split(`
|
|
6
|
+
`).filter(t=>t.length>0)}import{createHash as _a}from"crypto";import{mkdirSync as Aa,realpathSync as Da}from"fs";import{homedir as Fa}from"os";import{join as be,resolve as ki}from"path";function Oa(e,t){let r=process.env.SCIP_QUERY_CACHE_DIR;if(r)return Or(r);if(t?.dbPath)return Or(ki(e,t.dbPath));let n=Lr(e);return Or(n)}function Pi(){let e=process.env.XDG_CACHE_HOME;return be(e||be(Fa(),".cache"),"scip-query")}function Lr(e){let t=ki(e);try{t=Da(t)}catch{}let r=_a("sha256").update(t).digest("hex").slice(0,12);return be(Pi(),"projects",r)}function Mr(e){if(!/^[a-f0-9]{24}$/.test(e))throw new Error(`invalid repository cache identity: ${e}`);return be(Pi(),"repositories",e)}function jr(e){return process.env.SCIP_QUERY_SHARED_CACHE!=="0"&&!process.env.SCIP_QUERY_CACHE_DIR&&!process.env.SCIP_QUERY_INDEX_DB&&!e?.dbPath}function Cm(e,t){let r=Oa(e,t);return{cacheDir:r,dbPath:be(r,"index.db"),indexPath:be(r,"index.scip"),metaPath:be(r,"meta.json")}}function Or(e){return Aa(e,{recursive:!0}),e}import{createHash as Wa}from"crypto";import{readFileSync as Va}from"fs";import{dirname as Ua,join as Ai}from"path";var Ci=["typescript","javascript","java","scala","kotlin","rust","python","ruby","go","cpp","c","csharp","vb","dart","php","clojure"];var Gr=2,At=3;var $r=new Set(Ci);function ie(e){let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch(s){return{kind:"malformed",reason:`invalid JSON: ${qa(s)}`}}if(!ne(t))return{kind:"malformed",reason:"metadata must be a JSON object"};let r=t.version;if(!Number.isInteger(r))return{kind:"malformed",reason:"version must be an integer"};if(r!==Gr&&r!==At)return{kind:"unsupported",version:r,direction:r<Gr?"older":"future"};let n=Ma(t,r);if(n)return{kind:"malformed",reason:n};let i=t,o={metadata:i,capabilities:La(i)};return r===Gr?{kind:"legacy",...o,metadata:i}:{kind:"supported",...o,metadata:i}}function Om(e){return e.kind==="legacy"||e.kind==="supported"?e.metadata:null}function Dt(e){if(e.kind!=="legacy"&&e.kind!=="supported"||!e.capabilities.stableGenerationIdentity)return null;let t=e.metadata;return JSON.stringify({version:t.version,status:t.status,updatedAt:t.updatedAt,fingerprint:t.fingerprint,indexedLanguages:t.indexedLanguages,scipCompanion:t.scipCompanion})}function La(e){let t=e.fingerprint!==void 0,r=ne(e.fingerprint),n=e.indexedLanguages!==void 0,i=e.status==="complete",o=e.version===At?e:null;return{usableForQuery:n,usableForEvidenceCache:t,publishableGeneration:i&&r&&n,stableGenerationIdentity:i&&t&&typeof e.updatedAt=="string",languageShardReuse:!!o?.languageFingerprints,typescriptProjectShardReuse:!!o?.typescriptProjectShards}}function Ma(e,t){if(e.status!=="complete"&&e.status!=="partial")return"status must be complete or partial";if(e.updatedAt!==void 0&&!Le(e.updatedAt))return"updatedAt must be a valid timestamp";for(let r of["requestedLanguages","indexedLanguages"])if(e[r]!==void 0&&!ja(e[r]))return`${r} must contain unique supported languages`;return e.skipped!==void 0&&!Ga(e.skipped)?"skipped must contain supported language/reason pairs":e.scipCompanion!==void 0&&e.scipCompanion!=="current"&&e.scipCompanion!=="deferred"?"scipCompanion must be current or deferred":t===At&&e.languageFingerprints!==void 0&&!$a(e.languageFingerprints)?"languageFingerprints must map supported languages to fingerprint objects":t===At&&e.typescriptProjectShards!==void 0&&!Ba(e.typescriptProjectShards)?"typescriptProjectShards must map project names to file fingerprints":null}function ja(e){return!Array.isArray(e)||!e.every(t=>typeof t=="string"&&$r.has(t))?!1:new Set(e).size===e.length}function Ga(e){return Array.isArray(e)&&e.every(t=>ne(t)&&typeof t.language=="string"&&$r.has(t.language)&&typeof t.reason=="string")}function $a(e){return ne(e)&&Object.entries(e).every(([t,r])=>$r.has(t)&&ne(r))}function Ba(e){return ne(e)&&Object.values(e).every(t=>ne(t)&&Array.isArray(t.files)&&t.files.every(pi))}function qa(e){return e instanceof Error?e.message:String(e)}var Ni=3,Ha=2,za="typescript-index";function qm(e){let t=Ai(e,za),r=bi(t);return{...r,requestDir:r.legacyRequestDir}}function Wm(e){let t=JSON.parse(e),r=t.protocolVersion,n=r===Ha;if(!n&&r!==Ni||typeof t.id!="string"||!t.id||typeof t.baseGeneration!="string"||!t.baseGeneration||typeof t.deadlineAtMs!="number"||!Number.isFinite(t.deadlineAtMs)||!Ja(t.request)||!n&&(t.mailboxVersion!==Cr||typeof t.operationKey!="string"||!/^[a-f0-9]{64}$/.test(t.operationKey)||t.id!==xi(t.operationKey)||typeof t.clientId!="string"||!t.clientId||typeof t.enqueuedAtMs!="number"||!Number.isFinite(t.enqueuedAtMs)||t.deadlineAtMs<t.enqueuedAtMs))throw new Error("TypeScript index service received an invalid mailbox request.");if(!n){let o=t,s=Nr("typescript-index-v3",{baseGeneration:o.baseGeneration,request:o.request});if(o.operationKey!==s)throw new Error("TypeScript index service received a mismatched mailbox operation identity.");return o}let i=Nr("typescript-index-v2",{id:t.id,baseGeneration:t.baseGeneration,request:t.request});return{protocolVersion:Ni,mailboxVersion:Cr,id:t.id,operationKey:i,clientId:"legacy-v2",enqueuedAtMs:t.deadlineAtMs,deadlineAtMs:t.deadlineAtMs,baseGeneration:t.baseGeneration,request:t.request}}function Vm(e){try{let t=Dt(ie(Va(Ai(Ua(e),"meta.json"),"utf8")));return t?Wa("sha256").update(t).digest("hex"):null}catch{return null}}function Ja(e){if(!e||typeof e!="object")return!1;let t=e,r=_i(t.modifiedFiles)?t.modifiedFiles:null,n=_i(t.affectedFiles)?t.affectedFiles:null;return t.kind==="emit-documents"&&typeof t.tsconfigPath=="string"&&!!t.tsconfigPath&&typeof t.projectArgument=="string"&&!!t.projectArgument&&typeof t.projectIdentity=="string"&&!!t.projectIdentity&&typeof t.producerIdentity=="string"&&!!t.producerIdentity&&r!==null&&r.length>0&&new Set(r).size===r.length&&n!==null&&n.length>0&&new Set(n).size===n.length&&r.every(i=>n.includes(i))}function _i(e){return Array.isArray(e)&&e.every(t=>typeof t=="string"&&t.length>0)}import{readFileSync as Xa}from"fs";import{join as Ft}from"path";var Km=5;var Ka="watch.lock",Ya="watch-state.json",Qa="watch-activity.json",Za="watch-refresh-requests";function Ym(e){return{lockPath:Ft(e,Ka),statePath:Ft(e,Ya),activityPath:Ft(e,Qa),refreshRequestsPath:Ft(e,Za)}}function Qm(e){try{return ec(JSON.parse(Xa(e,"utf8")))}catch{return null}}function ec(e){if(!e||typeof e!="object")return null;let t=e;if(t.version!==1||typeof t.protocolVersion!="number"||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.projectRoot!="string"||t.worktreeId!==void 0&&(typeof t.worktreeId!="string"||t.worktreeId.length===0)||typeof t.cliVersion!="string"||!w(t.startedAt)||!w(t.heartbeatAt)||!w(t.lastActivityAt)||!tc(t.watcher)||t.idleDeadlineAt!==void 0&&!w(t.idleDeadlineAt))return null;if(t.processIdentity!==void 0){let r=fi(t.processIdentity);if(!r||r.pid!==t.pid)return null;t.processIdentity=r}return t.indexGeneration!==void 0&&!/^[a-f0-9]{64}$/.test(t.indexGeneration)||t.lastError!==void 0&&!rc(t.lastError)||t.lastRefresh!==void 0&&!nc(t.lastRefresh)||t.reindexActivity!==void 0&&!ic(t.reindexActivity)||t.refreshRequests!==void 0&&!oc(t.refreshRequests)||t.typescriptSemantic!==void 0&&!sc(t.typescriptSemantic)||t.typescriptIndex!==void 0&&!ac(t.typescriptIndex)?null:t}function w(e){return Le(e)}function tc(e){if(!e||typeof e!="object"||!("state"in e))return!1;let t=e;switch(t.state){case"idle":return!0;case"waiting":return T(t.changedFiles)&&T(t.reindexAt);case"indexing":return T(t.startedAt);case"cooldown":return T(t.until)&&typeof t.dirty=="boolean";case"draining":return T(t.startedAt)&&typeof t.reason=="string";default:return!1}}function rc(e){if(!e||typeof e!="object")return!1;let t=e;return w(t.at)&&typeof t.message=="string"}function nc(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.trigger?.kind=="string"&&typeof t.result=="string"&&w(t.startedAt)&&w(t.completedAt)&&T(t.durationMs)}function ic(e){if(!e||typeof e!="object")return!1;let t=e;return!w(t.windowStartedAt)||!w(t.windowEndedAt)||!h(t.runs)||!h(t.rebuilt)||!h(t.reused)||!h(t.failed)||!h(t.suppressed)||!T(t.estimatedLogicalOutputBytes)||t.estimatedLogicalOutputBytes<0||!t.byTrigger||typeof t.byTrigger!="object"?!1:Object.values(t.byTrigger).every(r=>r===void 0||h(r))}function oc(e){if(!e||typeof e!="object")return!1;let t=e;return h(t.pending)&&h(t.claimed)&&h(t.completed)&&h(t.expired)&&h(t.invalid)&&(t.oldestPendingAt===void 0||w(t.oldestPendingAt))}function sc(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&(t.state==="idle"||t.state==="ready"||t.state==="unavailable"||t.state==="error")&&T(t.requests)&&T(t.sessionsCreated)&&T(t.sessionsReused)&&T(t.sessionsRefreshed)&&T(t.sessionsReplaced)&&T(t.projectsCreated)&&(t.lastRequestAt===void 0||w(t.lastRequestAt))&&(t.lastError===void 0||typeof t.lastError=="string")&&(t.busyUntil===void 0||w(t.busyUntil))&&(t.mailbox===void 0||Di(t.mailbox))}function ac(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&(t.state==="idle"||t.state==="ready"||t.state==="unavailable"||t.state==="error")&&h(t.requests)&&h(t.sessionsCreated)&&h(t.sessionsReplaced)&&h(t.initializations)&&h(t.programUpdates)&&h(t.documentsEmitted)&&h(t.documentsRemoved)&&(t.lastRequestAt===void 0||w(t.lastRequestAt))&&(t.lastDurationMs===void 0||T(t.lastDurationMs)&&t.lastDurationMs>=0)&&(t.lastError===void 0||typeof t.lastError=="string")&&(t.busyUntil===void 0||w(t.busyUntil))&&(t.mailbox===void 0||Di(t.mailbox))}function Di(e){if(!e||typeof e!="object")return!1;let t=e;return h(t.pending)&&h(t.inflight)&&h(t.responses)&&h(t.deadLetters)&&h(t.invalid)&&h(t.totalItems)&&T(t.totalBytes)&&t.totalBytes>=0&&t.totalItems===t.pending+t.inflight+t.responses+t.deadLetters&&(t.oldestPendingAt===void 0||w(t.oldestPendingAt))}function T(e){return typeof e=="number"&&Number.isFinite(e)}import{spawnSync as cc}from"child_process";import{createHash as lc}from"crypto";import{existsSync as uc,lstatSync as dc,realpathSync as pc}from"fs";import{dirname as fc,isAbsolute as mc,join as gc,resolve as Lt}from"path";var Mt={run(e,t){let r=Oi(e,t);return r.kind==="success"?r.output:void 0},runResult:Oi},yc=["rev-parse","--show-toplevel","--absolute-git-dir","--git-common-dir","HEAD","HEAD^{tree}"],Fi=/^[0-9a-f]{40,64}$/;function Li(e,t=Mt){let r=t.runResult(e,yc);if(r.kind==="success"){let n=hc(r.output);if(n)return Sc(n,t)}return bc(e,t)}function hc(e){let t=e.split(`
|
|
7
|
+
`).map(c=>c.trim());if(t.length!==5)return;let[r,n,i,o,s]=t;if(!r||!n||!i||!o||!s||!Fi.test(o)||!Fi.test(s))return;let a=xe(r);return{root:a,gitDir:xe(Ot(a,n)),commonDir:xe(Ot(a,i)),headCommit:o,treeOid:s}}function Sc(e,t){let r=t.run(e.root,["status","--porcelain=v1","-z","--untracked-files=all"]);return r===void 0?void 0:{...Mi(e.root,e.gitDir),commonDir:e.commonDir,repositoryId:qr("repository",e.commonDir),headCommit:e.headCommit,treeOid:e.treeOid,clean:r.length===0}}function bc(e,t){let r=xc(e,t);if(r.kind!=="worktree")return;let n=r.identity,i=n.projectRoot,o=t.run(i,["rev-parse","--git-common-dir"])?.trim();if(!o)return;let s=xe(Ot(i,o)),a=Br(t.run(i,["rev-parse","--verify","HEAD"])),c=Br(t.run(i,["rev-parse","--verify","HEAD^{tree}"])),l=t.run(i,["status","--porcelain=v1","-z","--untracked-files=all"]);if(l!==void 0)return{...n,commonDir:s,repositoryId:qr("repository",s),headCommit:a,treeOid:c,clean:l.length===0}}function xc(e,t=Mt){let r=t.runResult(e,["rev-parse","--show-toplevel"]);if(r.kind==="not-repository")return{kind:"non-git"};if(r.kind==="error")return r;let n=r.output.trim();if(!n)return{kind:"error",message:"Git returned an empty worktree root."};let i=xe(n),o=t.run(i,["rev-parse","--absolute-git-dir"])?.trim();if(!o)return{kind:"error",message:"Git did not return an absolute worktree directory."};let s=xe(Ot(i,o));return{kind:"worktree",identity:Mi(i,s)}}function Mi(e,t){return{projectRoot:e,gitDir:t,worktreeId:qr("worktree",`${e}\0${t}`)}}function Ic(e,t=Mt){let r=t.run(e,["worktree","list","--porcelain","-z"]);return r===void 0?[]:Ec(r)}function Ec(e){let t=[],r;for(let n of e.split("\0")){if(n===""){r&&t.push(r),r=void 0;continue}let i=n.indexOf(" "),o=i<0?n:n.slice(0,i),s=i<0?"":n.slice(i+1);if(o==="worktree"){r&&t.push(r),r={path:xe(s),detached:!1,bare:!1,prunable:!1,locked:!1};continue}r&&(o==="HEAD"?r.head=s:o==="branch"?r.branch=s:o==="detached"?r.detached=!0:o==="bare"?r.bare=!0:o==="prunable"?r.prunable=!0:o==="locked"&&(r.locked=!0))}return r&&t.push(r),t}function ig(e,t,r=Mt){return Br(r.run(e,t))}function Ot(e,t){return mc(t)?t:Lt(e,t)}function xe(e){try{return pc(e)}catch{return Lt(e)}}function qr(e,t){return lc("sha256").update(`${e}\0${t}`).digest("hex").slice(0,24)}function Br(e){return e?.trim()||void 0}function Oi(e,t){let r=cc("git",["-C",e,...t],{encoding:"utf-8",env:{...process.env,LC_ALL:"C"},maxBuffer:52428800,stdio:["ignore","pipe","pipe"],timeout:3e4,killSignal:"SIGKILL"});if(r.status===0)return{kind:"success",output:r.stdout.trimEnd()};let i=(typeof r.stderr=="string"?r.stderr.trim():"")||r.error?.message||`git exited with status ${r.status??"unknown"}`,o=r.error?.code;return(/not a git repository/i.test(i)||o==="ENOENT"&&uc(Lt(e)))&&!vc(e)?{kind:"not-repository"}:{kind:"error",message:i}}function vc(e){if(process.env.GIT_DIR||process.env.GIT_COMMON_DIR)return!0;let t=Lt(e);for(;;){try{return dc(gc(t,".git")),!0}catch(n){let i=n.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return!0}let r=fc(t);if(r===t)return!1;t=r}}import{join as Rc}from"path";var Tc=e=>{if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e.pid;return typeof t=="number"&&Number.isSafeInteger(t)&&t>0?{pid:t}:null};function ji(e,t={}){return Wr(Rc(e,"gc.lock"),t)}function Wr(e,t={}){let r=t.waitMs??0,n=t.pollMs??10,i=t.now??Me,o=i()+r;do{let s=wc(e);if(s)return kc(s);let a=o-i();if(a<=0)return null;Pc(Math.min(n,a))}while(i()<=o);return null}function wc(e){let t=je(e,{kind:"generic",parseLegacy:Tc});return t.kind==="acquired"?t.lock:null}function kc(e){return{release:()=>{e.release()}}}function Pc(e){let t=new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));Atomics.wait(t,0,0,e)}import{createHash as Cc}from"crypto";import{existsSync as Qe,readFileSync as Ze,statSync as zr}from"fs";import{basename as Nc,dirname as jt,join as oe}from"path";var Ie=1,Jr=1,et=".scipquery-generations",Gt="manifest.json";function M(e){return oe(jt(e),et)}function $e(e){try{let t=JSON.parse(Ze(oe(M(e),"state.json"),"utf8"));return Fc(t)?t:null}catch{return null}}function $t(e,t){return Bt(M(e),t)}function Bt(e,t){try{let r=JSON.parse(Ze(oe(e,t,Gt),"utf8"));return Dc(r,t)?r:null}catch{return null}}function Xr(e){let t=$e(e.dbPath);if(t){let r=_c(e,t.currentGeneration);if(r)return r;if(t.artifactSet==="immutable-v1")throw new Error(`Published SQLite generation ${t.currentGeneration} is missing or invalid.`)}if(Qe(oe(jt(e.dbPath),"index.lock")))throw new Error("Legacy SQLite publication is in progress; retry after the reindex lock is released.");return Ac(e,t?.currentGeneration)}function mg(e){let t=$e(e);if(t)return t.currentGeneration;try{let r=oe(jt(e),"meta.json"),n=Qe(r)?Ze(r,"utf8"):void 0;return Gi(e,n)}catch{return null}}function se(e){return Dt(ie(e))??e}function _c(e,t){try{let r=oe(M(e.dbPath),t),n=$t(e.dbPath,t);if(!n)return null;let i=Vr(r,n.database),o=n.index?Vr(r,n.index):void 0,s=n.metadata?Vr(r,n.metadata):void 0;return!Ur(i,n.database)||n.index&&(!o||!Ur(o,n.index))||n.metadata&&(!s||!Ur(s,n.metadata))?null:{identity:t,databasePath:i,...o?{indexPath:o}:{},...s?{metadataPath:s,metadataRaw:Ze(s,"utf8")}:{},source:"immutable"}}catch{return null}}function Ac(e,t){let r=K(e.dbPath),n=oe(jt(e.dbPath),"meta.json"),i=Qe(n)?Ze(n,"utf8"):void 0,o=Qe(e.indexPath)?e.indexPath:void 0;return{identity:t??Gi(e.dbPath,i),databasePath:e.dbPath,...o?{indexPath:o}:{},...i===void 0?{}:{metadataPath:n,metadataRaw:i},source:"legacy",databaseFileIdentity:r}}function Gi(e,t){let r=Cc("sha256").update("sqlite-generation-legacy-v1\0");return t!==void 0&&r.update(se(t)),r.update(`\0${K(e)}`),r.digest("hex")}function K(e){let t=zr(e);return`${t.dev}:${t.ino}:${t.size}:${t.mtimeMs}`}function Vr(e,t){if(Nc(t.file)!==t.file||t.file==="."||t.file==="..")throw new Error("SQLite generation manifest contains an unsafe artifact path");return oe(e,t.file)}function Ur(e,t){return Qe(e)&&zr(e).isFile()&&zr(e).size===t.size}function Dc(e,t){return e.version===Jr&&e.identity===t&&Hr(e.database)&&(e.index===void 0||Hr(e.index))&&(e.metadata===void 0||Hr(e.metadata))}function Hr(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.file=="string"&&!!t.file&&Number.isSafeInteger(t.size)&&(t.size??-1)>=0&&typeof t.sha256=="string"&&/^[a-f0-9]{64}$/.test(t.sha256)}function Fc(e){return e.version===Ie&&typeof e.currentGeneration=="string"&&!!e.currentGeneration&&typeof e.publishedAt=="string"&&Number.isFinite(Date.parse(e.publishedAt))&&(e.artifactSet===void 0||e.artifactSet==="immutable-v1")&&Oc(e.stableMirrors)&&Lc(e.previousGeneration)&&Mc(e.publication)}function Oc(e){if(e===void 0)return!0;if(!e||typeof e!="object")return!1;let t=e;return typeof t.databaseFileIdentity=="string"&&!!t.databaseFileIdentity&&(t.indexFileIdentity===void 0||typeof t.indexFileIdentity=="string"&&!!t.indexFileIdentity)}function Lc(e){if(e===void 0)return!0;if(!e||typeof e!="object")return!1;let t=e;return typeof t.generationIdentity=="string"&&!!t.generationIdentity&&typeof t.databasePath=="string"&&!!t.databasePath&&(t.metadataPath===void 0||typeof t.metadataPath=="string"&&!!t.metadataPath)}function Mc(e){if(e===void 0)return!0;if(!e||typeof e!="object")return!1;let t=e,r=[t.converterDurationMs,t.affectedDocumentCount,t.changedDocumentCount,t.producerDurationMs,t.materializationDurationMs,t.patchDurationMs].filter(n=>n!==void 0);return(t.mode==="incremental"||t.mode==="full")&&t.validation==="passed"&&t.converterDurationMs!==void 0&&r.every(n=>typeof n=="number"&&Number.isFinite(n)&&n>=0)&&(t.scipCompanion===void 0||t.scipCompanion==="current"||t.scipCompanion==="deferred")&&(t.typescriptOverlayGeneration===void 0||typeof t.typescriptOverlayGeneration=="string"&&!!t.typescriptOverlayGeneration)&&(t.scipCompanion!=="deferred"||!!t.typescriptOverlayGeneration)&&(t.fallbackReason===void 0||typeof t.fallbackReason=="string")}import jc from"better-sqlite3";var Gc=["node_modules",".git","dist","build","out","coverage","target",".next",".nuxt",".cache",".turbo",".nbb",".cpcache",".shadow-cljs",".scipquery-cache","__pycache__",".venv","venv"],$i=class{db;config;generation;pathFilter;statementCache=new Map;constructor(t,r){this.config=t,this.pathFilter=r??null;let n=$c(t);this.generation=n.generation,this.db=n.db,this.db.pragma("busy_timeout = 5000"),this.db.pragma("query_only = ON"),this.db.pragma("temp_store = MEMORY"),this.db.pragma("cache_size = -64000"),this.db.pragma("mmap_size = 268435456")}isIgnored(t){return this.pathFilter?.isIgnored(t)??!1}get localSymbolPredicate(){return`(
|
|
8
|
+
EXISTS (
|
|
9
|
+
SELECT 1
|
|
10
|
+
FROM defn_enclosing_ranges local_der
|
|
11
|
+
JOIN documents local_d ON local_der.document_id = local_d.id
|
|
12
|
+
WHERE local_der.symbol_id = gs.id
|
|
13
|
+
${this.pathExclusionsFor("local_d").trimStart()}
|
|
14
|
+
)
|
|
15
|
+
OR EXISTS (
|
|
16
|
+
SELECT 1
|
|
17
|
+
FROM mentions local_m
|
|
18
|
+
JOIN chunks local_c ON local_m.chunk_id = local_c.id
|
|
19
|
+
JOIN documents local_d ON local_c.document_id = local_d.id
|
|
20
|
+
WHERE local_m.symbol_id = gs.id
|
|
21
|
+
AND local_m.role = 1
|
|
22
|
+
${this.pathExclusionsFor("local_d").trimStart()}
|
|
23
|
+
)
|
|
24
|
+
)`}get pathExclusions(){return this.pathExclusionsFor("d")}get symbolNoise(){return this.symbolNoiseFor("gs")}pathExclusionsFor(...t){return t.flatMap(r=>Gc.flatMap(n=>[`AND ${r}.relative_path NOT LIKE '${n}/%'`,`AND ${r}.relative_path NOT LIKE '%/${n}/%'`])).join(`
|
|
25
|
+
`)}symbolNoiseFor(t){return`AND ${t}.symbol NOT LIKE '%().(%' AND ${t}.symbol NOT LIKE '%typeLiteral%'`}all(t,...r){return this.statement(t).all(...r)}get(t,...r){return this.statement(t).get(...r)}close(){this.statementCache.clear(),this.db.close()}statement(t){let r=this.statementCache.get(t);return r||(r=this.db.prepare(t),this.statementCache.set(t,r)),r}};function $c(e){for(let t=0;t<4;t+=1){let r=Xr(e),n=new jc(r.databasePath,{readonly:!0,fileMustExist:!0});if(r.source==="immutable")return{db:n,generation:r};try{let i=Xr(e);if(r.databaseFileIdentity===K(r.databasePath)&&i.source==="legacy"&&i.identity===r.identity&&i.databaseFileIdentity===r.databaseFileIdentity&&i.metadataRaw===r.metadataRaw)return{db:n,generation:r}}catch(i){throw n.close(),i}n.close()}throw new Error("SQLite index publication changed repeatedly while opening a coherent generation.")}import{createHash as Bc}from"crypto";import{existsSync as qc,mkdirSync as Wc}from"fs";import{dirname as Bi,join as Vc}from"path";import Kr from"better-sqlite3";var Uc="evidence.db";var Hc=["source-facts","definition-exclusions","doc-path-tokens","react-component-behavior-profiles"],Yr=new Set(Hc),zc=25e4,Jc=512*1024*1024;var qt=new WeakMap,Xc=R("evidence-content-hash",{clearGroups:["whole-project","source-file"]}),Kc=R("evidence-project-fingerprint",{clearGroups:["whole-project"]}),ae="evidence-v1",Be="version NOT LIKE 'evidence-%'";function Wt(e){return Bc("sha256").update(e).digest("hex")}function tt(e,t,r){return Xc.get(e,t,()=>Wt(r))}function qi(e){return Kc.get(e,"current",()=>{try{if(!e.generation.metadataRaw)return null;let t=ie(e.generation.metadataRaw);if(t.kind!=="legacy"&&t.kind!=="supported"||!t.capabilities.usableForEvidenceCache)return null;let r=t.metadata,n=[...r.indexedLanguages??[]].sort();return Wt(JSON.stringify({fingerprint:r.fingerprint,indexedLanguages:n,status:r.status}))}catch(t){return qe("project fingerprint unavailable",t),null}})}function qe(e,t){process.env.SCIP_QUERY_DEBUG&&console.error(`evidence-cache: ${e}: ${t instanceof Error?t.message:String(t)}`)}function rt(e){if(qt.has(e))return qt.get(e)??null;let t=null;try{let r=new Kr(Vc(Bi(e.config.dbPath),Uc));r.pragma("journal_mode = WAL"),r.pragma("busy_timeout = 5000"),r.pragma("synchronous = NORMAL"),r.exec(`
|
|
26
|
+
CREATE TABLE IF NOT EXISTS file_evidence (
|
|
27
|
+
kind TEXT NOT NULL,
|
|
28
|
+
relative_path TEXT NOT NULL,
|
|
29
|
+
content_hash TEXT NOT NULL,
|
|
30
|
+
version TEXT NOT NULL,
|
|
31
|
+
payload TEXT NOT NULL,
|
|
32
|
+
PRIMARY KEY (kind, relative_path)
|
|
33
|
+
);
|
|
34
|
+
CREATE TABLE IF NOT EXISTS project_evidence (
|
|
35
|
+
kind TEXT NOT NULL,
|
|
36
|
+
cache_key TEXT NOT NULL,
|
|
37
|
+
project_fingerprint TEXT NOT NULL,
|
|
38
|
+
version TEXT NOT NULL,
|
|
39
|
+
payload TEXT NOT NULL,
|
|
40
|
+
PRIMARY KEY (kind, cache_key)
|
|
41
|
+
);
|
|
42
|
+
CREATE TABLE IF NOT EXISTS semantic_callees (
|
|
43
|
+
relative_path TEXT NOT NULL,
|
|
44
|
+
symbol TEXT NOT NULL,
|
|
45
|
+
content_hash TEXT NOT NULL,
|
|
46
|
+
deps_digest TEXT NOT NULL,
|
|
47
|
+
version TEXT NOT NULL,
|
|
48
|
+
payload TEXT NOT NULL,
|
|
49
|
+
PRIMARY KEY (relative_path, symbol)
|
|
50
|
+
);
|
|
51
|
+
CREATE TABLE IF NOT EXISTS semantic_references (
|
|
52
|
+
relative_path TEXT NOT NULL,
|
|
53
|
+
symbol TEXT NOT NULL,
|
|
54
|
+
project_fingerprint TEXT NOT NULL,
|
|
55
|
+
version TEXT NOT NULL,
|
|
56
|
+
payload TEXT NOT NULL,
|
|
57
|
+
PRIMARY KEY (relative_path, symbol)
|
|
58
|
+
);
|
|
59
|
+
CREATE TABLE IF NOT EXISTS finding_outcome_ledger (
|
|
60
|
+
check_name TEXT NOT NULL,
|
|
61
|
+
finding_id TEXT NOT NULL,
|
|
62
|
+
first_seen INTEGER NOT NULL,
|
|
63
|
+
last_seen INTEGER NOT NULL,
|
|
64
|
+
times_shown INTEGER NOT NULL,
|
|
65
|
+
outcome TEXT NOT NULL,
|
|
66
|
+
PRIMARY KEY (check_name, finding_id)
|
|
67
|
+
);
|
|
68
|
+
CREATE TABLE IF NOT EXISTS finding_outcome_observations (
|
|
69
|
+
observation_id TEXT PRIMARY KEY,
|
|
70
|
+
fingerprint TEXT NOT NULL,
|
|
71
|
+
observed_at INTEGER NOT NULL
|
|
72
|
+
);
|
|
73
|
+
`),t={evidence:r,shared:Yc(e.config.sharedEvidenceDbPath),readFileEvidence:r.prepare("SELECT payload FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),readLegacyFileEvidence:r.prepare(`SELECT payload FROM file_evidence
|
|
74
|
+
WHERE kind = ? AND relative_path = ? AND content_hash = ? AND ${Be}
|
|
75
|
+
ORDER BY version DESC
|
|
76
|
+
LIMIT 1`),writeFileEvidence:r.prepare("INSERT OR REPLACE INTO file_evidence (kind, relative_path, content_hash, version, payload) VALUES (?, ?, ?, ?, ?)"),readProjectEvidence:r.prepare("SELECT payload FROM project_evidence WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND version = ?"),readLegacyProjectEvidence:r.prepare(`SELECT payload FROM project_evidence
|
|
77
|
+
WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND ${Be}
|
|
78
|
+
ORDER BY version DESC
|
|
79
|
+
LIMIT 1`),writeProjectEvidence:r.prepare("INSERT OR REPLACE INTO project_evidence (kind, cache_key, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)"),readCallees:r.prepare(`SELECT payload FROM semantic_callees
|
|
80
|
+
WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCallees:r.prepare(`SELECT payload FROM semantic_callees
|
|
81
|
+
WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND ${Be}
|
|
82
|
+
ORDER BY version DESC
|
|
83
|
+
LIMIT 1`),readCalleesForFile:r.prepare(`SELECT symbol, payload FROM semantic_callees
|
|
84
|
+
WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCalleesForFile:r.prepare(`SELECT symbol, payload FROM semantic_callees
|
|
85
|
+
WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND ${Be}
|
|
86
|
+
ORDER BY symbol, version DESC`),writeCallees:r.prepare(`INSERT OR REPLACE INTO semantic_callees
|
|
87
|
+
(relative_path, symbol, content_hash, deps_digest, version, payload) VALUES (?, ?, ?, ?, ?, ?)`),dropStaleCallees:r.prepare("DELETE FROM semantic_callees WHERE relative_path = ? AND content_hash != ?"),readReferences:r.prepare(`SELECT payload FROM semantic_references
|
|
88
|
+
WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferences:r.prepare(`SELECT payload FROM semantic_references
|
|
89
|
+
WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND ${Be}
|
|
90
|
+
ORDER BY version DESC
|
|
91
|
+
LIMIT 1`),readReferencesForFile:r.prepare(`SELECT symbol, payload FROM semantic_references
|
|
92
|
+
WHERE relative_path = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferencesForFile:r.prepare(`SELECT symbol, payload FROM semantic_references
|
|
93
|
+
WHERE relative_path = ? AND project_fingerprint = ? AND ${Be}
|
|
94
|
+
ORDER BY symbol, version DESC`),writeReferences:r.prepare(`INSERT OR REPLACE INTO semantic_references
|
|
95
|
+
(relative_path, symbol, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)`),dropStaleReferences:r.prepare("DELETE FROM semantic_references WHERE relative_path = ? AND project_fingerprint != ?"),readFindingOutcomeLedger:r.prepare("SELECT check_name, finding_id, first_seen, last_seen, times_shown, outcome FROM finding_outcome_ledger"),claimFindingOutcomeObservation:r.prepare(`INSERT OR IGNORE INTO finding_outcome_observations
|
|
96
|
+
(observation_id, fingerprint, observed_at) VALUES (?, ?, ?)`),readFindingOutcomeObservation:r.prepare("SELECT fingerprint FROM finding_outcome_observations WHERE observation_id = ?"),upsertFindingOutcomeLedgerRow:r.prepare(`INSERT INTO finding_outcome_ledger
|
|
97
|
+
(check_name, finding_id, first_seen, last_seen, times_shown, outcome)
|
|
98
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
99
|
+
ON CONFLICT(check_name, finding_id) DO UPDATE SET
|
|
100
|
+
first_seen = MIN(finding_outcome_ledger.first_seen, excluded.first_seen),
|
|
101
|
+
last_seen = MAX(finding_outcome_ledger.last_seen, excluded.last_seen),
|
|
102
|
+
times_shown = finding_outcome_ledger.times_shown + excluded.times_shown,
|
|
103
|
+
outcome = excluded.outcome`),updateFindingOutcomeLedgerRow:r.prepare(`UPDATE finding_outcome_ledger
|
|
104
|
+
SET first_seen = MIN(first_seen, ?),
|
|
105
|
+
last_seen = MAX(last_seen, ?),
|
|
106
|
+
outcome = ?
|
|
107
|
+
WHERE check_name = ? AND finding_id = ?`),trimFindingOutcomeLedgerCheck:r.prepare(`DELETE FROM finding_outcome_ledger
|
|
108
|
+
WHERE rowid IN (
|
|
109
|
+
SELECT rowid
|
|
110
|
+
FROM finding_outcome_ledger
|
|
111
|
+
WHERE check_name = ?
|
|
112
|
+
ORDER BY last_seen DESC, first_seen DESC, finding_id DESC
|
|
113
|
+
LIMIT -1 OFFSET ?
|
|
114
|
+
)`)}}catch(r){qe("disabled (open failed)",r)}return qt.set(e,t),t}function nt(e,t,r){qe(`disabled (${t})`,r),qt.set(e,null)}function Yc(e){if(!e)return null;try{Wc(Bi(e),{recursive:!0});let t=new Kr(e);return t.pragma("journal_mode = WAL"),t.pragma("busy_timeout = 250"),t.pragma("synchronous = NORMAL"),t.exec(`
|
|
115
|
+
CREATE TABLE IF NOT EXISTS file_evidence (
|
|
116
|
+
kind TEXT NOT NULL,
|
|
117
|
+
relative_path TEXT NOT NULL,
|
|
118
|
+
content_hash TEXT NOT NULL,
|
|
119
|
+
version TEXT NOT NULL,
|
|
120
|
+
payload TEXT NOT NULL,
|
|
121
|
+
last_accessed_at INTEGER NOT NULL,
|
|
122
|
+
PRIMARY KEY (kind, relative_path, content_hash, version)
|
|
123
|
+
);
|
|
124
|
+
`),{evidence:t,readFileEvidence:t.prepare("SELECT payload FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),writeFileEvidence:t.prepare(`INSERT INTO file_evidence (kind, relative_path, content_hash, version, payload, last_accessed_at)
|
|
125
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
126
|
+
ON CONFLICT(kind, relative_path, content_hash, version)
|
|
127
|
+
DO UPDATE SET payload = excluded.payload, last_accessed_at = excluded.last_accessed_at`)}}catch(t){return qe("shared cache disabled (open failed)",t),null}}function Qr(e,t,r){qe(`shared cache disabled (${t})`,r);try{e.shared?.evidence.close()}catch{}e.shared=null}function Tg(e,t={}){if(!qc(e))return null;let r;try{r=new Kr(e),r.pragma("busy_timeout = 50"),r.pragma("wal_checkpoint(TRUNCATE)");let n=r.prepare("SELECT COUNT(*) AS count FROM file_evidence").get().count,i=t.maxRows??zc,o=t.budgetBytes??Jc,s=Number(r.pragma("page_size",{simple:!0})),a=Number(r.pragma("page_count",{simple:!0})),c=Number(r.pragma("freelist_count",{simple:!0})),l=Math.max(0,a-c)*s,u=n>0&&l>o?Math.min(n,Math.ceil((l-o)/Math.max(1,l/n))):0,d=Math.max(n-i,u);return d>0&&(r.prepare(`DELETE FROM file_evidence WHERE rowid IN (
|
|
128
|
+
SELECT rowid FROM file_evidence ORDER BY last_accessed_at ASC, rowid ASC LIMIT ?
|
|
129
|
+
)`).run(d),r.pragma("wal_checkpoint(TRUNCATE)")),{deletedRows:d,remainingRows:n-d}}catch(n){return qe("shared cache maintenance skipped",n),null}finally{try{r?.close()}catch{}}}function Wi(e,t,r,n){let i=rt(e);if(!i)return null;try{let o=i.readFileEvidence.get(t,r,n,ae)??i.readLegacyFileEvidence.get(t,r,n);if(o?.payload!==void 0)return o.payload;if(!Yr.has(t)||!i.shared)return null;try{return i.shared.readFileEvidence.get(t,r,n,ae)?.payload??null}catch(s){return Qr(i,"file_evidence read",s),null}}catch(o){return nt(e,"file_evidence read",o),null}}function Vi(e,t,r,n,i){let o=rt(e);if(o)try{if(o.writeFileEvidence.run(t,r,n,ae,i),Yr.has(t)&&o.shared)try{o.shared.writeFileEvidence.run(t,r,n,ae,i,Date.now())}catch(s){Qr(o,"file_evidence write",s)}}catch(s){nt(e,"file_evidence write",s)}}function Ui(e,t){if(t.length===0)return;let r=rt(e);if(r)try{r.evidence.transaction(()=>{for(let i of t)r.writeFileEvidence.run(i.kind,i.relativePath,i.contentHash,ae,i.payload)})();let n=t.filter(i=>Yr.has(i.kind));if(n.length>0&&r.shared)try{r.shared.evidence.transaction(()=>{for(let i of n)r.shared.writeFileEvidence.run(i.kind,i.relativePath,i.contentHash,ae,i.payload,Date.now())})()}catch(i){Qr(r,"file_evidence batch write",i)}}catch(n){nt(e,"file_evidence batch write",n)}}function Hi(e,t,r,n){let i=rt(e);if(!i)return null;try{return(i.readProjectEvidence.get(t,r,n,ae)??i.readLegacyProjectEvidence.get(t,r,n))?.payload??null}catch(o){return nt(e,"project_evidence read",o),null}}function zi(e,t,r,n,i){let o=rt(e);if(o)try{o.writeProjectEvidence.run(t,r,n,ae,i)}catch(s){nt(e,"project_evidence write",s)}}function Zr(e){return typeof e=="object"&&e!==null}function kg(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")?e:null}import{execFileSync as Qc}from"child_process";import{existsSync as Zc,readdirSync as Xi}from"fs";import{extname as Ki,join as Yi}from"path";var Qi=new Set([".git",".hg",".svn",".idea",".vscode","node_modules","vendor","dist","build","target","bin","obj",".dart_tool",".gradle",".next",".venv","venv","__pycache__"]),el=[{language:"typescript",files:["tsconfig.json","tsconfig.base.json"],extensions:[".ts",".tsx",".mts",".cts"]},{language:"rust",files:["Cargo.toml"],extensions:[".rs"]},{language:"go",files:["go.mod"],extensions:[".go"]},{language:"java",files:["pom.xml","build.gradle","build.gradle.kts"],extensions:[".java"]},{language:"kotlin",files:["build.gradle.kts"],extensions:[".kt",".kts"]},{language:"scala",files:["build.sbt"],extensions:[".scala"]},{language:"clojure",files:["deps.edn","project.clj","bb.edn","shadow-cljs.edn"],extensions:[".clj",".cljs",".cljc"]},{language:"python",files:["pyproject.toml","setup.py","setup.cfg","Pipfile"],extensions:[".py",".pyi"]},{language:"ruby",files:["Gemfile"],extensions:[".rb"]},{language:"cpp",files:["compile_commands.json","CMakeLists.txt","Makefile"],extensions:[".cc",".cpp",".cxx",".hpp",".hh",".hxx"]},{language:"c",files:["compile_commands.json","CMakeLists.txt","Makefile"],extensions:[".c",".h"]},{language:"csharp",globs:["*.csproj","*.sln"],extensions:[".cs"]},{language:"vb",globs:["*.vbproj"],extensions:[".vb"]},{language:"dart",files:["pubspec.yaml"],extensions:[".dart"]},{language:"php",files:["composer.json"],extensions:[".php"]},{language:"javascript",files:["package.json"],extensions:[".js",".jsx",".mjs",".cjs"]}];function Ag(e){let t=[],r=tl(e),n=ol(e);for(let i of el){if(rl(e,i.files)){t.push(i.language);continue}if(nl(r,i.globs)){t.push(i.language);continue}al(n,i.extensions)&&t.push(i.language)}return t.includes("typescript")&&Ji(t,"javascript"),t.includes("cpp")&&!n.has(".c")&&Ji(t,"c"),t}function tl(e){try{return Xi(e)}catch{return[]}}function rl(e,t){return t?.length?t.some(r=>Zc(Yi(e,r))):!1}function nl(e,t){return t?.length?e.some(r=>t.some(n=>il(r,n))):!1}function il(e,t){if(t==="*")return!0;if(!t.includes("*"))return e===t;let[r,n]=t.split("*");return e.startsWith(r??"")&&e.endsWith(n??"")}function ol(e){let t=sl(e);if(t)return t;let r=new Set,n=[e];for(;n.length>0;){let i=n.pop();if(!i)continue;let o;try{o=Xi(i,{withFileTypes:!0})}catch{continue}for(let s of o){if(s.name.startsWith(".")&&!s.name.endsWith("proj")&&!s.name.endsWith("sln")&&s.isDirectory())continue;let a=Yi(i,s.name);if(s.isDirectory()){Qi.has(s.name)||n.push(a);continue}let c=Ki(s.name).toLowerCase();c&&r.add(c)}}return r}function sl(e){try{let t=Qc("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:26214400,stdio:["ignore","pipe","ignore"],timeout:3e4,killSignal:"SIGKILL"}),r=new Set;for(let n of t.split(`
|
|
130
|
+
`)){if(!n||n.split("/").some(o=>Qi.has(o)))continue;let i=Ki(n).toLowerCase();i&&r.add(i)}return r}catch{return null}}function al(e,t){return t?.length?t.some(r=>e.has(r)):!1}function Ji(e,t){let r=e.indexOf(t);r!==-1&&e.splice(r,1)}import{readFileSync as cl,writeFileSync as ll}from"fs";import{create as Zi}from"@bufbuild/protobuf";import{deserializeSCIP as ul,DocumentSchema as dl,IndexSchema as pl,serializeSCIP as fl,SymbolRole as ml}from"@c4312/scip";function Mg(e){let t;try{t=ul(cl(e))}catch{return{removedDefinitionOccurrences:0,touchedDocuments:0}}let r=en(t);return r.removedDefinitionOccurrences>0&&ll(e,Buffer.from(fl(r.index))),{removedDefinitionOccurrences:r.removedDefinitionOccurrences,touchedDocuments:r.touchedDocuments}}function en(e){let t=new Set;for(let o of e.documents)for(let s of o.symbols)s.symbol&&t.add(s.symbol);for(let o of e.externalSymbols)o.symbol&&t.add(o.symbol);let r=0,n=0,i=[];for(let o of e.documents){let s=o.occurrences.filter(a=>(a.symbolRoles&ml.Definition)===0||t.has(a.symbol)?!0:(r+=1,!1));if(s.length===o.occurrences.length){i.push(o);continue}n+=1,i.push(Zi(dl,{language:o.language,relativePath:o.relativePath,occurrences:s,symbols:o.symbols,text:o.text,positionEncoding:o.positionEncoding}))}return{index:r===0?e:Zi(pl,{metadata:e.metadata,documents:i,externalSymbols:e.externalSymbols}),removedDefinitionOccurrences:r,touchedDocuments:n}}import{readFileSync as tn,writeFileSync as rn}from"fs";import{create as it}from"@bufbuild/protobuf";import{deserializeSCIP as nn,serializeSCIP as on,DocumentSchema as gl,IndexSchema as eo,MetadataSchema as yl,SymbolInformationSchema as hl}from"@c4312/scip";function to(e){if(e.length===0)throw new Error("Cannot merge zero SCIP indexes");if(e.length===1)return e[0];let t=bl(e),r=xl(e.flatMap(i=>i.documents??[])),n=no(e.flatMap(i=>i.externalSymbols??[]));return it(eo,{metadata:t,documents:r,externalSymbols:n})}function Wg(e,t){if(e.length===0)throw new Error("Cannot merge zero SCIP files");let r=e.map(i=>nn(tn(i))),n=to(r);return rn(t,Buffer.from(on(n))),{documentCount:n.documents.length,externalSymbolCount:n.externalSymbols.length,inputCount:e.length}}function Vg(e,t){if(e.length===0)throw new Error("Cannot merge zero SCIP files");let r=e.map(i=>nn(tn(i))),n=en(to(r));return rn(t,Buffer.from(on(n.index))),{documentCount:n.index.documents.length,externalSymbolCount:n.index.externalSymbols.length,inputCount:e.length,removedDefinitionOccurrences:n.removedDefinitionOccurrences,touchedDocuments:n.touchedDocuments}}function Sl(e,t,r){let n=e.metadata;if(!n)throw new Error("Cannot rebase a SCIP index without metadata");if(n.projectRoot!==t)throw new Error(`Cannot rebase SCIP project root: expected ${t}, got ${n.projectRoot}`);return it(eo,{metadata:it(yl,{...n,projectRoot:r}),documents:e.documents,externalSymbols:e.externalSymbols})}function ro(e,t,r){let n=nn(tn(e)),i=Sl(n,t,r);rn(e,Buffer.from(on(i)))}function bl(e){let t=e[0]?.metadata;if(!t)return;let r=t.projectRoot;for(let n of e.slice(1)){let i=n.metadata?.projectRoot;if(r&&i&&i!==r)throw new Error(`Cannot merge SCIP indexes with different project roots: ${r} vs ${i}`)}return t}function xl(e){let t=new Map;for(let r of e){let n=t.get(r.relativePath);if(!n){t.set(r.relativePath,r);continue}t.set(r.relativePath,it(gl,{language:n.language||r.language,relativePath:n.relativePath||r.relativePath,occurrences:Il([...n.occurrences,...r.occurrences]),symbols:no([...n.symbols,...r.symbols]),text:vl(n.text,r.text),positionEncoding:n.positionEncoding||r.positionEncoding}))}return[...t.values()]}function Il(e){let t=new Set,r=[];for(let n of e){let i=JSON.stringify(n);t.has(i)||(t.add(i),r.push(n))}return r}function no(e){let t=new Map;for(let r of e){let n=t.get(r.symbol);if(!n){t.set(r.symbol,r);continue}t.set(r.symbol,it(hl,{symbol:n.symbol,documentation:Rl([...n.documentation,...r.documentation]),relationships:El([...n.relationships,...r.relationships]),kind:n.kind||r.kind,displayName:n.displayName||r.displayName,enclosingSymbol:n.enclosingSymbol||r.enclosingSymbol,signatureDocumentation:n.signatureDocumentation??r.signatureDocumentation}))}return[...t.values()]}function El(e){let t=new Set,r=[];for(let n of e){let i=[n.symbol,n.isReference?"1":"0",n.isImplementation?"1":"0",n.isTypeDefinition?"1":"0",n.isDefinition?"1":"0"].join("|");t.has(i)||(t.add(i),r.push(n))}return r}function vl(e,t){return e?t?e.length>=t.length?e:t:e:t}function Rl(e){return[...new Set(e)]}import{createHash as Dl}from"crypto";import{existsSync as st,mkdirSync as Fl,readFileSync as ct,readdirSync as un,renameSync as Ol,rmSync as xo,writeFileSync as Ll}from"fs";import{join as W}from"path";import{createHash as Tl}from"crypto";import{existsSync as an,mkdirSync as wl,readFileSync as Vt,readdirSync as Jg,renameSync as kl,rmSync as Xg,writeFileSync as Pl}from"fs";import{join as We}from"path";import{create as oo,fromBinary as so,toBinary as Cl}from"@bufbuild/protobuf";import{deserializeSCIP as Ut,DocumentSchema as cn,IndexSchema as ao,serializeSCIP as co}from"@c4312/scip";var Ht=1,ot="typescript-scip-fragments";function ey(e){if(e.length===0)throw new Error("affected TypeScript mini index requires documents");let t=new Set,r=[];for(let o of e){let s=Ee(o.relativePath);if(t.has(s))throw new Error(`duplicate TypeScript fragment replacement: ${s}`);if(t.add(s),o.bytes===null)throw new Error(`affected TypeScript mini index cannot contain a deleted document: ${s}`);let a=so(cn,o.bytes);if(a.relativePath!==s)throw new Error(`TypeScript fragment path mismatch: expected ${s}, got ${a.relativePath}`);r.push(a)}let n=co(oo(ao,{documents:r,externalSymbols:[]})),i=Ut(n);if(i.documents.length!==r.length||i.externalSymbols.length!==0)throw new Error("affected TypeScript SCIP index failed structural verification");return n}function zt(e){let t=We(e,ot);return{rootDir:t,blobDir:We(t,"blobs"),generationDir:We(t,"generations")}}function Nl(e){let t=Ut(e.indexBytes);So(t.metadata,bo(e)),ho(t.externalSymbols);let r=new Set,n=[];for(let o of t.documents){let s=Ee(o.relativePath);if(r.has(s))throw new Error(`duplicate TypeScript SCIP document path: ${s}`);r.add(s);let a=Cl(cn,o),c=e.documentIdentities.get(s)??(e.allowUntrackedDocuments?ve(JSON.stringify({version:1,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity,untrackedDocument:s,contentHash:ve(a)})):null);if(!c)throw new Error(`missing TypeScript document identity: ${s}`);n.push(fo(e.cacheDir,{relativePath:s,bytes:a,occurrences:o.occurrences.length,symbols:o.symbols.length,referenceFragments:[]},c))}let i=mo(e,n);return go(e.cacheDir,i),i}function ty(e){let t=zt(e.cacheDir);if(!an(ln(t,e.generationIdentity)))return Nl(e);let r=lo({cacheDir:e.cacheDir,generationIdentity:e.generationIdentity,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity});if(!e.allowUntrackedDocuments&&r.manifest.documents.length!==e.documentIdentities.size)throw new Error("TypeScript fragment generation document identities changed");for(let n of r.manifest.documents){let i=e.documentIdentities.get(n.relativePath);if(!(i===void 0&&e.allowUntrackedDocuments)&&i!==n.documentIdentity)throw new Error(`TypeScript fragment generation document identity changed: ${n.relativePath}`)}return r.manifest}function ry(e){let t=lo({cacheDir:e.cacheDir,generationIdentity:e.previousGenerationIdentity,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity}).manifest,r=new Map(t.documents.map(o=>[o.relativePath,o])),n=new Set;for(let o of e.fragments){let s=Ee(o.relativePath);if(n.has(s))throw new Error(`duplicate TypeScript fragment replacement: ${s}`);if(n.add(s),!r.has(s))throw new Error(`TypeScript fragment replacement has no prior document: ${s}`);let a=e.documentIdentities.get(s);if(!a)throw new Error(`missing TypeScript document identity: ${s}`);o.bytes===null?r.delete(s):r.set(s,fo(e.cacheDir,o,a))}if(n.size===0)throw new Error("TypeScript fragment generation requires at least one replacement");let i=mo(e,[...r.values()]);return go(e.cacheDir,i),i}function lo(e){let t=zt(e.cacheDir),r=ln(t,e.generationIdentity),n;try{n=yo(Vt(r,"utf8"))}catch(o){throw new Error(`TypeScript fragment generation is unavailable: ${o instanceof Error?o.message:String(o)}`,{cause:o})}if(n.generationIdentity!==e.generationIdentity)throw new Error("TypeScript fragment generation identity does not match its manifest path");if(e.producerIdentity&&n.producerIdentity!==e.producerIdentity)throw new Error("TypeScript fragment producer identity changed");if(e.projectIdentity&&n.projectIdentity!==e.projectIdentity)throw new Error("TypeScript fragment project identity changed");let i=new Map;for(let o of n.documents){let s=We(t.blobDir,`${o.blobHash}.scipdoc`),a=Vt(s);if(a.byteLength!==o.byteLength||ve(a)!==o.blobHash)throw new Error(`TypeScript fragment blob is corrupt: ${o.relativePath}`);i.set(o.relativePath,a)}return{manifest:n,fragments:i}}function uo(e){let t=po(e);return sn(t.baseIndex,t.completeDocuments,"assembled")}function ny(e){let t=po(e);return _l(t.deletedAffectedPaths),{completeIndexBytes:sn(t.baseIndex,t.completeDocuments,"assembled"),affectedIndexBytes:sn(t.baseIndex,t.affectedDocuments,"affected")}}function po(e){let t=Ut(e.baseIndexBytes);So(t.metadata,bo(e)),ho(t.externalSymbols);let r=new Map;for(let a of e.fragments){let c=Ee(a.relativePath);if(r.has(c))throw new Error(`duplicate TypeScript fragment replacement: ${c}`);r.set(c,a)}if(r.size===0)throw new Error("TypeScript index assembly requires at least one replacement");let n=new Set,i=[],o=[],s=[];for(let a of t.documents){let c=Ee(a.relativePath);if(n.has(c))throw new Error(`duplicate TypeScript SCIP document path: ${c}`);n.add(c);let l=r.get(c);if(!l){i.push(a);continue}if(r.delete(c),l.bytes===null){s.push(c);continue}let u=so(cn,l.bytes);if(u.relativePath!==c)throw new Error(`TypeScript fragment path mismatch: expected ${c}, got ${u.relativePath}`);i.push(u),o.push(u)}if(r.size>0)throw new Error(`TypeScript fragment replacement has no prior document: ${[...r.keys()].sort()[0]}`);return{baseIndex:t,completeDocuments:i,affectedDocuments:o,deletedAffectedPaths:s}}function sn(e,t,r){let n=co(oo(ao,{metadata:e.metadata,documents:t,externalSymbols:[]})),i=Ut(n);if(i.documents.length!==t.length||i.externalSymbols.length!==0)throw new Error(`${r} TypeScript SCIP index failed structural verification`);return n}function _l(e){if(e.length>0)throw new Error(`affected TypeScript mini index cannot contain a deleted document: ${e[0]}`)}function fo(e,t,r){if(t.bytes===null)throw new Error(`cannot persist an empty TypeScript fragment: ${t.relativePath}`);let n=Ee(t.relativePath),i=Buffer.from(t.bytes),o=ve(i),s=zt(e);wl(s.blobDir,{recursive:!0});let a=We(s.blobDir,`${o}.scipdoc`);if(an(a)){let c=Vt(a);if(c.byteLength!==i.byteLength||ve(c)!==o)throw new Error(`existing TypeScript fragment blob is corrupt: ${n}`)}else{let c=`${a}.${process.pid}.${Date.now()}.tmp`;Pl(c,i),kl(c,a)}return{relativePath:n,blobHash:o,byteLength:i.byteLength,documentIdentity:r}}function mo(e,t){if(!e.producerIdentity||!e.projectIdentity||!e.generationIdentity)throw new Error("TypeScript fragment generation identities must be non-empty");let r=[...t].sort((n,i)=>n.relativePath.localeCompare(i.relativePath));if(new Set(r.map(n=>n.relativePath)).size!==r.length)throw new Error("TypeScript fragment generation contains duplicate document paths");return{version:Ht,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity,generationIdentity:e.generationIdentity,createdAt:(e.now??(()=>new Date))().toISOString(),documents:r}}function go(e,t){let r=zt(e),n=ln(r,t.generationIdentity);if(an(n)){let i=yo(Vt(n,"utf8"));if(io(i)!==io(t))throw new Error(`TypeScript fragment generation is immutable: ${t.generationIdentity}`);return}Pt(n,t,{spacing:2,trailingNewline:!0})}function io(e){return ve(JSON.stringify({version:e.version,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity,generationIdentity:e.generationIdentity,documents:e.documents}))}function yo(e){let t=JSON.parse(e);if(t.version!==Ht||typeof t.producerIdentity!="string"||typeof t.projectIdentity!="string"||typeof t.generationIdentity!="string"||typeof t.createdAt!="string"||!Number.isFinite(Date.parse(t.createdAt))||!Array.isArray(t.documents))throw new Error("invalid TypeScript fragment generation manifest");let r=new Set;for(let n of t.documents){if(!n||typeof n.relativePath!="string"||typeof n.blobHash!="string"||!/^[a-f0-9]{64}$/.test(n.blobHash)||typeof n.byteLength!="number"||!Number.isInteger(n.byteLength)||n.byteLength<0||typeof n.documentIdentity!="string"||!n.documentIdentity)throw new Error("invalid TypeScript fragment record");if(Ee(n.relativePath),r.has(n.relativePath))throw new Error("duplicate TypeScript fragment record");r.add(n.relativePath)}return t}function ln(e,t){return We(e.generationDir,Al(t))}function Al(e){if(!e)throw new Error("TypeScript fragment generation identity must be non-empty");return`${ve(e)}.json`}function ho(e){if(e.length>0)throw new Error("scip-typescript emitted external symbols; incremental document assembly is unsupported")}function So(e,t){if(!e||typeof e!="object")throw new Error("TypeScript SCIP shard has no producer metadata");let r=e,n=r.toolInfo??r.tool_info;if(!n||typeof n!="object")throw new Error("TypeScript SCIP shard has no producer tool identity");let i=n;if(i.name!=="scip-typescript"||i.version!==t)throw new Error("TypeScript SCIP shard producer identity changed")}function bo(e){let t=e.packageVersion??e.runtime?.packageVersion;if(!t)throw new Error("scip-typescript package version is unavailable");return t}function Ee(e){if(!e||e.startsWith("/")||e.startsWith("\\")||e.includes("\\"))throw new Error(`invalid TypeScript SCIP document path: ${e}`);let t=e.split("/");if(t.includes("")||t.includes(".")||t.includes(".."))throw new Error(`invalid TypeScript SCIP document path: ${e}`);return e}function ve(e){return Tl("sha256").update(e).digest("hex")}var Jt=1,uy=64*1024*1024,lt="typescript-scip-overlays";function dy(e){let t=Eo(e.cacheDir,e.previousGenerationIdentity);if(!t&&!e.baseShardCurrent)throw new Error("deferred TypeScript SCIP base has no matching overlay generation");if(t&&(t.producerIdentity!==e.producerIdentity||t.projectIdentity!==e.projectIdentity))throw new Error("TypeScript overlay producer or project identity changed");let r=new Map((t?.overlays??[]).map(o=>[o.relativePath,o])),n=new Set;for(let o of e.fragments){let s=fn(o.relativePath);if(n.has(s))throw new Error(`duplicate TypeScript overlay: ${s}`);n.add(s),r.set(s,Ml(e.cacheDir,o))}if(n.size===0)throw new Error("TypeScript overlay generation requires affected documents");let i={version:Jt,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity,baseGenerationIdentity:t?.baseGenerationIdentity??e.previousGenerationIdentity,generationIdentity:e.nextGenerationIdentity,createdAt:(e.now??(()=>new Date))().toISOString(),overlays:[...r.values()].sort((o,s)=>o.relativePath.localeCompare(s.relativePath))};return jl(e.cacheDir,i),i}function py(e){let t=Eo(e.cacheDir,e.generationIdentity);if(!t)throw new Error("TypeScript overlay generation is unavailable");let r=t.overlays.map(n=>{if(n.blobHash===null)return{relativePath:n.relativePath,bytes:null,occurrences:0,symbols:0,referenceFragments:[]};let i=ct(W(ut(e.cacheDir),"blobs",`${n.blobHash}.scipdoc`));if(i.byteLength!==n.byteLength||at(i)!==n.blobHash)throw new Error(`TypeScript overlay blob is corrupt: ${n.relativePath}`);return{relativePath:n.relativePath,bytes:i,occurrences:0,symbols:0,referenceFragments:[]}});return uo({packageVersion:e.packageVersion,baseIndexBytes:e.baseIndexBytes,fragments:r})}function fy(e,t){let r=ut(e),n=W(r,"generations");if(!st(n))return;let i=new Set(t.map(pn)),o=new Set;for(let a of un(n).filter(c=>i.has(c))){let c=dn(ct(W(n,a),"utf8"));for(let l of c.overlays)l.blobHash&&o.add(`${l.blobHash}.scipdoc`)}for(let a of un(n))i.has(a)||xo(W(n,a),{force:!0});let s=W(r,"blobs");if(st(s))for(let a of un(s))o.has(a)||xo(W(s,a),{force:!0})}function Eo(e,t){let r=W(ut(e),"generations",pn(t));if(!st(r))return null;let n=dn(ct(r,"utf8"));if(n.generationIdentity!==t)throw new Error("TypeScript overlay generation identity does not match its path");return n}function Ml(e,t){let r=fn(t.relativePath);if(t.bytes===null)return{relativePath:r,blobHash:null,byteLength:0};let n=Buffer.from(t.bytes),i=at(n),o=W(ut(e),"blobs");Fl(o,{recursive:!0});let s=W(o,`${i}.scipdoc`);if(st(s)){let a=ct(s);if(a.byteLength!==n.byteLength||at(a)!==i)throw new Error(`existing TypeScript overlay blob is corrupt: ${r}`)}else{let a=`${s}.${process.pid}.${Date.now()}.tmp`;Ll(a,n),Ol(a,s)}return{relativePath:r,blobHash:i,byteLength:n.byteLength}}function jl(e,t){let r=W(ut(e),"generations",pn(t.generationIdentity));if(st(r)){let n=dn(ct(r,"utf8"));if(Io(n)!==Io(t))throw new Error(`TypeScript overlay generation is immutable: ${t.generationIdentity}`);return}Pt(r,t,{spacing:2,trailingNewline:!0})}function dn(e){let t=JSON.parse(e);if(t.version!==Jt||typeof t.producerIdentity!="string"||!t.producerIdentity||typeof t.projectIdentity!="string"||!t.projectIdentity||typeof t.baseGenerationIdentity!="string"||!t.baseGenerationIdentity||typeof t.generationIdentity!="string"||!t.generationIdentity||typeof t.createdAt!="string"||!Number.isFinite(Date.parse(t.createdAt))||!Array.isArray(t.overlays))throw new Error("invalid TypeScript overlay manifest");let r=new Set;for(let n of t.overlays){if(!n||typeof n.relativePath!="string"||n.blobHash!==null&&(typeof n.blobHash!="string"||!/^[a-f0-9]{64}$/.test(n.blobHash))||!Number.isInteger(n.byteLength)||n.byteLength<0||n.blobHash===null&&n.byteLength!==0)throw new Error("invalid TypeScript overlay record");if(fn(n.relativePath),r.has(n.relativePath))throw new Error("duplicate TypeScript overlay record");r.add(n.relativePath)}return t}function ut(e){return W(e,lt)}function pn(e){if(!e)throw new Error("TypeScript overlay generation identity must be non-empty");return`${at(e)}.json`}function Io(e){return at(JSON.stringify({version:e.version,producerIdentity:e.producerIdentity,projectIdentity:e.projectIdentity,baseGenerationIdentity:e.baseGenerationIdentity,generationIdentity:e.generationIdentity,overlays:e.overlays}))}function fn(e){if(!e||e.startsWith("/")||e.includes("\\")||e.split("/").some(t=>!t||t==="."))throw new Error(`invalid TypeScript overlay path: ${e}`);if(e.split("/").includes(".."))throw new Error(`invalid TypeScript overlay path: ${e}`);return e}function at(e){return Dl("sha256").update(e).digest("hex")}import{createHash as Sn}from"crypto";import{closeSync as wo,chmodSync as Gl,copyFileSync as $l,constants as Bl,existsSync as S,fsyncSync as ql,mkdirSync as vo,openSync as ko,readFileSync as Ve,readSync as Wl,readdirSync as Vl,renameSync as hn,rmSync as Xt,statSync as Kt}from"fs";import{basename as Po,dirname as H,join as g,relative as Ro}from"path";function Co(e){let t=M(e.outputDb),r=zl(e);e.onStage?.("after-recovery-retained");let n=e.preserveOutputScip?e.outputScip:e.tempOutputScip,i=In({generationRoot:t,databasePath:e.tempOutputDb,indexPath:S(n)?n:void 0,metadataPath:S(e.tempMetaPath)?e.tempMetaPath:void 0}),o=(e.now??(()=>new Date))().toISOString(),s={version:Ie,currentGeneration:i.identity,artifactSet:"immutable-v1",...r?{previousGeneration:r}:{},...e.publication?{publication:e.publication}:{},publishedAt:o};U(g(t,"state.json"),s,{spacing:2,trailingNewline:!0}),e.onStage?.("after-pointer-handoff"),e.preserveOutputScip||yn(e.tempOutputScip,e.outputScip),e.onStage?.("after-scip-handoff"),yn(e.tempOutputDb,e.outputDb),e.onStage?.("after-database-handoff"),yn(e.tempMetaPath,e.metaPath),e.onStage?.("after-metadata-handoff");let a=i.identity,c={...s,stableMirrors:xn(e.outputDb,e.outputScip)};return U(g(t,"state.json"),c,{spacing:2,trailingNewline:!0}),{currentGeneration:a,...r?{previousGeneration:r}:{}}}function Ul(e,t,r,n=()=>new Date){if(!S(e))return null;let i=$e(e),o=g(M(e),"state.json");if(i?.artifactSet==="immutable-v1"&&$t(e,i.currentGeneration))return i;let s=M(e),a=!i&&S(o)?Xl(r,e,t):void 0;if(a&&!Bt(s,a))return null;let c=In({generationRoot:s,databasePath:e,indexPath:S(t)?t:void 0,metadataPath:S(r)?r:void 0,forcedIdentity:i?.currentGeneration??a}),l={version:Ie,currentGeneration:c.identity,artifactSet:"immutable-v1",stableMirrors:xn(e,t),...i?.previousGeneration?{previousGeneration:i.previousGeneration}:{},...i?.publication?{publication:i.publication}:{},publishedAt:i?.publishedAt??n().toISOString()};return U(g(s,"state.json"),l,{spacing:2,trailingNewline:!0}),l}function Iy(e,t,r=()=>new Date){if(!S(e)||!S(t))throw new Error("metadata-only generation refresh requires stable database and metadata files");let n=$e(e),i=M(e),o=In({generationRoot:i,databasePath:e,indexPath:S(g(H(e),"index.scip"))?g(H(e),"index.scip"):void 0,metadataPath:t}),s=n&&n.currentGeneration!==o.identity?No(e,n.currentGeneration):void 0,a={version:Ie,currentGeneration:o.identity,artifactSet:"immutable-v1",stableMirrors:xn(e,g(H(e),"index.scip")),...s?{previousGeneration:s}:{},...n?.publication?{publication:n.publication}:{},publishedAt:r().toISOString()};return U(g(M(e),"state.json"),a,{spacing:2,trailingNewline:!0}),a}function bn(e,t=g(H(e),"meta.json")){let r=g(M(e),"state.json");if(!S(r))return{state:"legacy",statePath:r};let n=$e(e);if(!n)return{state:"invalid",statePath:r,reason:"generation state is malformed"};try{let i=$t(e,n.currentGeneration),o=i!==null,s=i?Hl(e,t,i,n):!1,a=n.previousGeneration?S(g(H(e),n.previousGeneration.databasePath)):!0;return!s||!o||!a?{state:"drifted",statePath:r,currentMatches:s,recoveryExists:a,generation:n,reason:o?s?"retained recovery database is missing":"stable database or metadata no longer matches the published generation":"published immutable generation is missing"}:{state:"current",statePath:r,currentMatches:s,recoveryExists:a,generation:n}}catch(i){return{state:"drifted",statePath:r,currentMatches:!1,recoveryExists:!1,generation:n,reason:i instanceof Error?i.message:String(i)}}}function Hl(e,t,r,n){if(n.stableMirrors&&(n.stableMirrors.databaseFileIdentity!==K(e)||n.stableMirrors.indexFileIdentity!==void 0&&n.stableMirrors.indexFileIdentity!==K(g(H(e),"index.scip")))||!To(e,r.database))return!1;let i=g(H(e),"index.scip");if(r.index&&!To(i,r.index))return!1;if(!r.metadata)return!S(t);if(!S(t))return!1;let o=g(M(e),r.identity,r.metadata.file);return S(o)&&se(Ve(t,"utf8"))===se(Ve(o,"utf8"))}function To(e,t){return S(e)&&Kt(e).isFile()&&Kt(e).size===t.size}function zl(e){let t=Ul(e.outputDb,e.outputScip,e.metaPath);return t?No(e.outputDb,t.currentGeneration):void 0}function xn(e,t){return{databaseFileIdentity:K(e),...S(t)?{indexFileIdentity:K(t)}:{}}}function No(e,t){let r=g(M(e),t),n=g(r,Po(e)),i=g(r,"meta.json");return{generationIdentity:t,databasePath:Ro(H(e),n),...S(i)?{metadataPath:Ro(H(e),i)}:{}}}function Jl(e){if(S(e))for(let t of Vl(e,{withFileTypes:!0}))t.isDirectory()&&t.name.endsWith(".tmp")&&Xt(g(e,t.name),{recursive:!0,force:!0})}function Xl(e,t,r=g(H(t),"index.scip")){let n=Sn("sha256").update("sqlite-generation-artifacts-v1\0");return n.update(Yt(t)),S(r)&&n.update(`\0${Yt(r)}`),S(e)&&n.update(`\0${se(Ve(e,"utf8"))}`),n.digest("hex")}function In(e){let t=mn(e.databasePath),r=e.indexPath?mn(e.indexPath):void 0,n=e.metadataPath?mn(e.metadataPath):void 0,i=e.forcedIdentity??Kl(t,r,e.metadataPath),o=g(e.generationRoot,i),s=g(o,Gt);if(S(s)){let c=Bt(e.generationRoot,i);if(c&&_o(o,c.database,t)&&Ql(o,c.index,r)&&Zl(o,c.metadata,e.metadataPath))return{identity:i};throw new Error(`SQLite generation ${i} already exists with different or corrupt artifacts.`)}vo(e.generationRoot,{recursive:!0}),Jl(e.generationRoot);let a=`${o}.${process.pid}.${Date.now()}.tmp`;Xt(a,{recursive:!0,force:!0}),vo(a,{recursive:!0});try{gn(e.databasePath,g(a,t.file)),r&&e.indexPath&&gn(e.indexPath,g(a,r.file)),n&&e.metadataPath&&gn(e.metadataPath,g(a,n.file)),U(g(a,Gt),{version:Jr,identity:i,database:t,...r?{index:r}:{},...n?{metadata:n}:{}},{spacing:2,trailingNewline:!0}),hn(a,o),gi(e.generationRoot)}finally{Xt(a,{recursive:!0,force:!0})}return{identity:i}}function Kl(e,t,r){let n=Sn("sha256").update("sqlite-generation-artifacts-v1\0");return n.update(e.sha256),t&&n.update(`\0${t.sha256}`),r&&n.update(`\0${se(Ve(r,"utf8"))}`),n.digest("hex")}function mn(e){return{file:Po(e),size:Kt(e).size,sha256:Yt(e)}}function Yt(e){let t=Sn("sha256"),r=ko(e,"r"),n=Buffer.allocUnsafe(1024*1024);try{for(;;){let i=Yl(r,n);if(i===0)break;t.update(n.subarray(0,i))}}finally{wo(r)}return t.digest("hex")}function Yl(e,t){let r=0;for(;r<t.length;){let n=Wl(e,t,r,t.length-r,null);if(r+=n,n===0)break}return r}function gn(e,t){$l(e,t,Bl.COPYFILE_FICLONE);let r=ko(t,"r");try{ql(r)}finally{wo(r)}Gl(t,292)}function _o(e,t,r){let n=g(e,t.file);return t.file===r.file&&t.size===r.size&&t.sha256===r.sha256&&S(n)&&Kt(n).size===t.size&&Yt(n)===t.sha256}function Ql(e,t,r){return!t||!r?t===r:_o(e,t,r)}function Zl(e,t,r){if(!t||!r)return t===void 0&&r===void 0;let n=g(e,t.file);return S(n)&&se(Ve(n,"utf8"))===se(Ve(r,"utf8"))}function yn(e,t){Xt(`${t}.tmp-replace`,{force:!0}),hn(e,`${t}.tmp-replace`),hn(`${t}.tmp-replace`,t)}import{createHash as $o,randomUUID as lu}from"crypto";import{constants as uu,copyFileSync as Lo,existsSync as le,lstatSync as du,mkdirSync as de,mkdtempSync as Bo,readdirSync as pu,readFileSync as ue,realpathSync as fu,renameSync as Re,rmSync as ce,statSync as mu}from"fs";import{dirname as qo,join as f,resolve as mt}from"path";import{setTimeout as gu}from"timers/promises";import{pathToFileURL as Mo}from"url";import{deserializeSCIP as Wo}from"@c4312/scip";import yu from"better-sqlite3";import{createRequire as eu}from"module";var tu=eu(import.meta.url),Ao=ru().version;function ru(){for(let e of["../package.json","../../package.json"])try{return tu(e)}catch{}return{version:"0.0.0"}}import{lstatSync as nu,readdirSync as iu}from"fs";import{join as ou,relative as su,resolve as En,sep as au}from"path";var dt=1,vn="language-indexes",Do=["index.db","index.scip","meta.json"],Fo=[vn,ot,lt];function Qt(e){let t=[];for(let r of Do)cu(e,r),t.push(r);for(let r of Fo)Oo(e,r,t);return{version:dt,files:t.sort()}}function Zt(e){if(!e||e.includes("\0")||e.startsWith("/")||e.includes("\\"))throw new Error(`invalid index artifact path: ${e||"<empty>"}`);let t=e.split("/");if(t.some(n=>!n||n==="."||n===".."))throw new Error(`invalid index artifact path: ${e}`);let r=t[0];if(!Do.includes(e)&&!Fo.includes(r))throw new Error(`index artifact path is not shareable: ${e}`);return e}function z(e,t){let r=Zt(t),n=En(e),i=En(n,...r.split("/"));if(i!==n&&!i.startsWith(`${n}${au}`))throw new Error(`index artifact escapes cache: ${t}`);return i}function Oo(e,t,r){let n=ou(e,t),i;try{i=iu(n,{withFileTypes:!0,encoding:"utf8"})}catch{return}for(let o of i){let s=`${t}/${o.name}`;if(o.isSymbolicLink())throw new Error(`index artifact cannot be a symlink: ${s}`);o.isDirectory()?Oo(e,s,r):o.isFile()&&r.push(Zt(s))}}function cu(e,t){let r=z(e,t),n;try{n=nu(r)}catch{throw new Error(`required index artifact is missing: ${t}`)}if(!n.isFile()||n.isSymbolicLink())throw new Error(`required index artifact is not a regular file: ${t}`);if(su(En(e),r).startsWith(".."))throw new Error(`index artifact escapes cache: ${t}`)}var Tn=1,jo="SCIP_QUERY_SHARED_CACHE",Rn=JSON.stringify({cliVersion:Ao,artifactCatalogVersion:dt,sqliteGenerationStoreVersion:Ie,typescriptFragmentStoreVersion:Ht,typescriptOverlayStoreVersion:Jt}),Vo="manifest.json",hu="shared-cache.json",wn=[vn,ot,lt];function Ky(e,t){if(!e.clean||!e.treeOid)return;let r=yt(JSON.stringify({version:Tn,repositoryId:e.repositoryId,treeOid:e.treeOid,fingerprint:t,producerIdentity:Rn}));return{repositoryId:e.repositoryId,worktreeId:e.worktreeId,projectRoot:e.projectRoot,treeOid:e.treeOid,fingerprint:t,producerIdentity:Rn,generationId:r,repositoryCacheDir:Mr(e.repositoryId)}}function Yy(e,t,r){if(process.env[jo]==="0")return`${jo}=0`;if(!jr(r))return"explicit cache or database override";if(mt(t)!==mt(f(Lr(e),"index.db")))return"index database is outside the managed worktree cache"}function Qy(e,t,r){if(!jr(t))return;let n=r??Li(e);return n?f(Mr(n.repositoryId),"evidence.db"):void 0}function ft(e,t=!0){let r=kn(e),n;try{n=xu(ue(f(r,Vo),"utf8"))}catch{return null}if(n.generationId!==e.generationId||n.repositoryId!==e.repositoryId||n.treeOid!==e.treeOid||n.producerIdentity!==e.producerIdentity||JSON.stringify(n.fingerprint)!==JSON.stringify(e.fingerprint))return null;if(!t)return n;try{for(let i of n.artifacts){let o=z(r,i.path),s=mu(o);if(!s.isFile()||s.size!==i.size||yt(ue(o))!==i.sha256)return null}}catch{return null}return n}function Zy(e){let t=ft(e.snapshot);if(t)return t;if(!Ho(e.sourceCacheDir,e.sourceProjectRoot,e.snapshot.fingerprint))throw new Error("source index is incomplete, incompatible, or corrupt");let r=Go(e.sourceCacheDir);if(!r)throw new Error("source index artifacts are incomplete");let n=Qt(e.sourceCacheDir),i=f(e.snapshot.repositoryCacheDir,"generations");de(i,{recursive:!0});let o=Bo(f(i,`.tmp-${process.pid}-`));try{let s=[];for(let d of n.files){let p=z(e.sourceCacheDir,d),m=z(o,d);gt(p,m);let y=ue(m);s.push({path:d,size:y.byteLength,sha256:yt(y)})}let a=Wo(ue(f(o,"index.scip"))).metadata?.projectRoot;if(!a)throw new Error("shared SCIP generation has no project root metadata");let c=Pn(e.sourceProjectRoot);if(a!==c)throw new Error("shared SCIP generation root does not match its source worktree");if(Go(e.sourceCacheDir)!==r||e.sourceStillValid&&!e.sourceStillValid())throw new Error("source index changed while staging a shared generation");let l={version:Tn,artifactCatalogVersion:dt,generationId:e.snapshot.generationId,repositoryId:e.snapshot.repositoryId,treeOid:e.snapshot.treeOid,fingerprint:e.snapshot.fingerprint,producerIdentity:e.snapshot.producerIdentity,sourceProjectRoot:e.sourceProjectRoot,scipProjectRoot:a,createdAt:(e.now??(()=>new Date))().toISOString(),artifacts:s.sort((d,p)=>d.path.localeCompare(p.path))};U(f(o,Vo),l,{spacing:2,trailingNewline:!0});let u=kn(e.snapshot);try{if(le(u)&&!ft(e.snapshot)){let d=`${u}.corrupt-${process.pid}-${Date.now()}`;Re(u,d),ce(d,{recursive:!0,force:!0})}Re(o,u)}catch(d){let p=ft(e.snapshot);if(p)return p;throw d}return l}finally{ce(o,{recursive:!0,force:!0})}}function eh(e){let t=kn(e.snapshot);de(e.targetCacheDir,{recursive:!0});let r=Wr(f(e.targetCacheDir,"cache-lifecycle.lock"),{waitMs:3e4});if(!r)throw new Error("timed out waiting for another cache hydration");let n,i,o=!1;try{n=Bo(f(e.targetCacheDir,".shared-hydrate-")),ku(e.manifest,e.snapshot);for(let c of e.manifest.artifacts){let l=z(t,c.path),u=z(n,c.path);gt(l,u);let d=ue(u);if(d.byteLength!==c.size||yt(d)!==c.sha256)throw new Error(`shared artifact is corrupt: ${c.path}`)}let s=Pn(e.targetProjectRoot);if(s!==e.manifest.scipProjectRoot)for(let c of e.manifest.artifacts)c.path.endsWith(".scip")&&ro(z(n,c.path),e.manifest.scipProjectRoot,s);if(!Ho(n,e.targetProjectRoot,e.snapshot.fingerprint,!1))throw new Error("staged shared generation failed completeness or integrity validation");i=Ru(e.targetCacheDir,n),o=!0,Tu(n,e.targetCacheDir,i),Co({tempOutputScip:f(n,"index.scip"),tempOutputDb:f(n,"index.db"),tempMetaPath:f(n,"meta.json"),outputScip:f(e.targetCacheDir,"index.scip"),outputDb:f(e.targetCacheDir,"index.db"),metaPath:f(e.targetCacheDir,"meta.json"),now:e.now});let a=bn(f(e.targetCacheDir,"index.db"),f(e.targetCacheDir,"meta.json"));if(a.state==="invalid"||a.state==="drifted")throw new Error(`hydrated SQLite generation failed validation: ${a.reason}`);Su(e.snapshot,e.targetCacheDir,e.action??"attached",e.now)}catch(s){throw o&&i&&wu(e.targetCacheDir,i),s}finally{n&&ce(n,{recursive:!0,force:!0}),r.release()}}async function th(e,t={}){let r=t.timeoutMs??3e4,n=t.pollMs??100,i=t.now??Me,o=i()+r,s=f(e.repositoryCacheDir,"locks"),a=f(s,`${e.generationId}.lock`),c=l=>{if(!l||typeof l!="object"||Array.isArray(l))return null;let u=l.pid;return typeof u=="number"&&Number.isSafeInteger(u)&&u>0?{pid:u}:null};for(;i()<=o;){if(ft(e))return{kind:"generation-ready"};let l=je(a,{kind:"shared-generation-build",detail:{generationId:e.generationId},parseLegacy:c});if(l.kind==="acquired")return{kind:"owner",release:()=>l.lock.release()};let u=o-i();if(u<=0)break;await gu(Math.min(n,u))}return ft(e)?{kind:"generation-ready"}:{kind:"timeout"}}function Su(e,t,r,n=void 0){let i={version:1,repositoryId:e.repositoryId,worktreeId:e.worktreeId,projectRoot:e.projectRoot,treeOid:e.treeOid,localCacheDir:t,baseGenerationId:e.generationId,activeGenerationId:e.generationId,lastAction:r,lastSeenAt:(n??(()=>new Date))().toISOString()},o={...i,ownershipChecksum:bu(i)};return vu(e.repositoryCacheDir,o,!0),o}function bu(e){return yt(JSON.stringify({version:1,repositoryId:e.repositoryId,worktreeId:e.worktreeId,projectRoot:mt(e.projectRoot),localCacheDir:mt(e.localCacheDir)}))}function xu(e){let t=JSON.parse(e);if(t.version!==Tn||t.artifactCatalogVersion!==dt||typeof t.generationId!="string"||!/^[a-f0-9]{64}$/.test(t.generationId)||typeof t.repositoryId!="string"||!/^[a-f0-9]{24}$/.test(t.repositoryId)||typeof t.treeOid!="string"||!t.treeOid||typeof t.producerIdentity!="string"||t.producerIdentity!==Rn||typeof t.sourceProjectRoot!="string"||typeof t.scipProjectRoot!="string"||typeof t.createdAt!="string"||!Number.isFinite(Date.parse(t.createdAt))||!t.fingerprint||!Array.isArray(t.artifacts))throw new Error("invalid shared generation manifest");let r=new Set;for(let n of t.artifacts){if(!n||typeof n.path!="string"||typeof n.size!="number"||n.size<0||typeof n.sha256!="string"||!/^[a-f0-9]{64}$/.test(n.sha256))throw new Error("invalid shared generation artifact");if(Zt(n.path),r.has(n.path))throw new Error(`duplicate shared generation artifact: ${n.path}`);r.add(n.path)}for(let n of["index.db","index.scip","meta.json"])if(!r.has(n))throw new Error(`shared generation is missing ${n}`);return t}function gt(e,t){de(qo(t),{recursive:!0});try{Lo(e,t,uu.COPYFILE_FICLONE)}catch{Lo(e,t)}}function Iu(e,t,r){de(e,{recursive:!0}),U(f(e,hu),{version:1,repositoryId:t,worktreeId:r},{spacing:2,trailingNewline:!0})}function Go(e){try{let t=Qt(e),r=$o("sha256");for(let n of t.files){let i=ue(z(e,n));r.update(n).update("\0").update(String(i.byteLength)).update("\0").update(i).update("\0")}return r.digest("hex")}catch{return null}}function Eu(e){try{let t=ie(ue(f(e,"meta.json"),"utf8"));return(t.kind==="legacy"||t.kind==="supported")&&t.capabilities.publishableGeneration?t.metadata:void 0}catch{return}}function kn(e){return f(e.repositoryCacheDir,"generations",e.generationId)}function vu(e,t,r){let n=ji(e,{waitMs:5e3});if(!n)throw new Error("repository cache cleanup is busy");try{if(r){let o=t.activeGenerationId;if(!o||!le(f(e,"generations",o)))throw new Error("shared generation disappeared before its lease was attached")}let i=f(e,"worktrees");de(i,{recursive:!0}),U(f(i,`${t.worktreeId}.json`),t,{spacing:2,trailingNewline:!0}),Iu(t.localCacheDir,t.repositoryId,t.worktreeId)}finally{n.release()}}function Ru(e,t){let r=f(t,".rollback"),n=new Map,i=new Map;de(r,{recursive:!0});for(let a of["index.scip","index.db","meta.json"]){let c=f(e,a),l=le(c);n.set(a,l),l&>(c,f(r,"stable",a))}for(let a of wn){let c=f(e,a),l=le(c);if(l){let u=du(c);if(!u.isDirectory()||u.isSymbolicLink())throw new Error(`managed artifact path is not a directory: ${a}`)}i.set(a,l)}let o=f(e,et),s=le(o);return s&&Uo(o,f(r,"sqlite-generations")),{root:r,stableFiles:n,managedDirectories:i,generationStoreExisted:s}}function Tu(e,t,r){for(let n of wn){let i=f(t,n);if(r.managedDirectories.get(n)){let s=f(r.root,"managed",n);de(qo(s),{recursive:!0}),Re(i,s)}let o=f(e,n);le(o)&&Re(o,i)}}function wu(e,t){for(let i of wn){let o=f(e,i),s=f(t.root,"managed",i);t.managedDirectories.get(i)?le(s)&&(ce(o,{recursive:!0,force:!0}),Re(s,o)):ce(o,{recursive:!0,force:!0})}for(let[i,o]of t.stableFiles){let s=f(e,i);if(!o){ce(s,{force:!0});continue}let a=`${s}.shared-restore-${lu()}`;gt(f(t.root,"stable",i),a),ce(s,{force:!0}),Re(a,s)}let r=f(e,et);ce(r,{recursive:!0,force:!0});let n=f(t.root,"sqlite-generations");t.generationStoreExisted&&le(n)&&Re(n,r)}function Uo(e,t){de(t,{recursive:!0});for(let r of pu(e,{withFileTypes:!0})){let n=f(e,r.name),i=f(t,r.name);if(r.isSymbolicLink())throw new Error(`managed cache backup cannot contain a symlink: ${n}`);r.isDirectory()?Uo(n,i):r.isFile()&>(n,i)}}function ku(e,t){if(e.generationId!==t.generationId||e.repositoryId!==t.repositoryId||e.treeOid!==t.treeOid||e.producerIdentity!==t.producerIdentity||JSON.stringify(e.fingerprint)!==JSON.stringify(t.fingerprint))throw new Error("shared generation manifest does not match the requested snapshot")}function Ho(e,t,r,n=!0,i=!0){try{let o=Eu(e);if(!o||JSON.stringify(o.fingerprint)!==JSON.stringify(r)||JSON.stringify([...o.indexedLanguages??[]].sort())!==JSON.stringify([...r.languages].sort()))return pt("source validation rejected metadata"),!1;let s=Qt(e),a=bn(f(e,"index.db"),f(e,"meta.json"));if(n?a.state!=="current":a.state==="invalid"||a.state==="drifted")return pt(`source validation rejected SQLite generation state ${a.state}`),!1;let c=new yu(f(e,"index.db"),{readonly:!0,fileMustExist:!0});try{if(i){if(c.pragma("quick_check(1)",{simple:!0})!=="ok")return!1}else c.pragma("schema_version",{simple:!0})}finally{c.close()}let l=Pn(t),d=(i?s.files.filter(p=>p.endsWith(".scip")):["index.scip"]).every(p=>{let m=Wo(ue(z(e,p))).metadata?.projectRoot;return m!==l&&pt(`source validation rejected SCIP root for ${p}: ${String(m)}`),m===l});return d||pt("source validation rejected SCIP project roots"),d}catch(o){return pt(`source validation failed: ${o instanceof Error?o.message:String(o)}`),!1}}function pt(e){process.env.SCIP_QUERY_DEBUG&&console.error(`shared-cache: ${e}`)}function Pn(e){try{return Mo(fu(e)).href}catch{return Mo(mt(e)).href}}function yt(e){return $o("sha256").update(e).digest("hex")}import{readFileSync as zo}from"fs";import{createRequire as Pu}from"module";import{dirname as An,isAbsolute as Cu,relative as Yo,resolve as fe,sep as Cn}from"path";var pe=Pu(import.meta.url),Nu=1,Jo="0.4.0";function _u(){try{let e=Qo();if(!e.available)return e;let{packageRoot:t}=e,r=pe.resolve("typescript",{paths:[t]}),n=pe(r),{FileIndexer:i}=pe(fe(t,"dist/src/FileIndexer.js")),{Input:o}=pe(fe(t,"dist/src/Input.js")),{Packages:s}=pe(fe(t,"dist/src/Packages.js")),a=pe(fe(t,"dist/src/scip.js"));if(!i||!o||!s||!a.scip?.Document||!a.scip.Index)return{available:!1,reason:"scip-typescript document runtime has an unsupported module shape"};let c={packageVersion:e.packageVersion,typescript:n,Document:a.scip.Document,Index:a.scip.Index,FileIndexer:i,Input:o,Packages:s};return{available:!0,runtime:c,producerIdentity:Dn(c)}}catch(e){return{available:!1,reason:`scip-typescript document runtime unavailable: ${e instanceof Error?e.message:String(e)}`}}}function sh(){let e=Qo();return e.available?{available:!0,packageVersion:e.packageVersion,typescriptVersion:e.typescriptVersion,producerIdentity:e.producerIdentity}:e}function Qo(){try{let e=pe.resolve("@sourcegraph/scip-typescript/package.json"),t=JSON.parse(zo(e,"utf8"));if(t.version!==Jo)return{available:!1,reason:`unsupported scip-typescript version ${String(t.version??"unknown")}; expected ${Jo}`};let r=An(e),n=pe.resolve("typescript/package.json",{paths:[r]}),i=JSON.parse(zo(n,"utf8"));return typeof i.version!="string"||!i.version?{available:!1,reason:"scip-typescript TypeScript compiler version is unavailable"}:{available:!0,packageRoot:r,packageVersion:t.version,typescriptVersion:i.version,producerIdentity:Zo(t.version,i.version)}}catch(e){return{available:!1,reason:`scip-typescript document producer unavailable: ${e instanceof Error?e.message:String(e)}`}}}function ah(e){let t=e.runtime===void 0?_u():e.runtime===null?{available:!1,reason:"scip-typescript document runtime unavailable"}:{available:!0,runtime:e.runtime,producerIdentity:Dn(e.runtime)};return t.available?{available:!0,emitter:new Nn(e,t.runtime)}:t}var Nn=class{producerIdentity;workspaceRoot;tsconfigPath;projectRoot;maxFileByteSize;runtime;host;config=null;includedFiles=new Set;program=null;checker=null;symbolTable=new Map;constructorTable=new Map;packages;fragments=new Map;stats={initializations:0,programUpdates:0,documentsEmitted:0,documentsRemoved:0,sourceNodesReused:0,sourceNodesReplaced:0,symbolEntriesPruned:0};constructor(t,r){this.workspaceRoot=fe(t.workspaceRoot),this.tsconfigPath=fe(this.workspaceRoot,t.tsconfigPath),this.projectRoot=t.projectRoot??Du(this.workspaceRoot,An(this.tsconfigPath)),this.maxFileByteSize=t.maxFileByteSize??1024*1024,this.runtime=r,this.producerIdentity=Dn(r);let n=Xo(r.typescript,this.tsconfigPath);this.config=n,this.host=new _n(r.typescript,n.options,this.workspaceRoot),this.packages=new r.Packages(this.projectRoot)}initialize(){let t=performance.now(),r=this.config??Xo(this.runtime.typescript,this.tsconfigPath);this.includedFiles=new Set(r.fileNames.map(Ue)),this.program=this.runtime.typescript.createProgram(r.fileNames,r.options,this.host.compilerHost),this.checker=this.program.getTypeChecker(),this.stats.initializations+=1;let n=[];for(let i of this.program.getSourceFiles())this.includedFiles.has(Ue(i.fileName))&&n.push(this.emitSourceFile(i));return this.result(n,t)}advance(t){if(!this.program||!this.checker||!this.config)return this.initializeAndAdvance(t);let r=performance.now(),n=er(t.modifiedFiles),i=er(t.affectedFiles);this.validateIncrementalPaths(n,i);let o=this.program,s=new Map;for(let c of n){let l=ht(this.workspaceRoot,c),u=o.getSourceFile(l);if(!u)throw new Error(`modified TypeScript source is unavailable: ${c}`);s.set(c,u),this.stats.symbolEntriesPruned+=Ko(this.symbolTable,u),this.stats.symbolEntriesPruned+=Ko(this.constructorTable,u),this.host.invalidate(l)}this.program=this.runtime.typescript.createProgram(this.config.fileNames,this.config.options,this.host.compilerHost,o),this.checker=this.program.getTypeChecker(),this.stats.programUpdates+=1;for(let[c,l]of s)this.program.getSourceFile(ht(this.workspaceRoot,c))===l?this.stats.sourceNodesReused+=1:this.stats.sourceNodesReplaced+=1;let a=i.map(c=>{let l=ht(this.workspaceRoot,c),u=this.program.getSourceFile(l);if(!u)throw new Error(`affected TypeScript source is unavailable: ${c}`);return this.emitSourceFile(u)});return this.result(a,r)}fragment(t){return this.fragments.get(tr(t))??null}snapshotStats(){return{...this.stats}}initializeAndAdvance(t){let r=this.initialize(),n=er(t.modifiedFiles),i=er(t.affectedFiles);this.validateIncrementalPaths(n,i);let o=new Set(i);return{...r,fragments:r.fragments.filter(s=>o.has(s.relativePath))}}validateIncrementalPaths(t,r){if(t.length===0)throw new Error("incremental TypeScript document update requires a modified file");if(r.length===0)throw new Error("incremental TypeScript document update requires an affected file");for(let n of t){let i=ht(this.workspaceRoot,n);if(!this.includedFiles.has(Ue(i)))throw new Error(`modified TypeScript file is outside the configured project: ${n}`)}for(let n of r){let i=ht(this.workspaceRoot,n);if(!this.includedFiles.has(Ue(i)))throw new Error(`affected TypeScript file is outside the configured project: ${n}`)}}emitSourceFile(t){if(!this.checker)throw new Error("TypeScript document emitter is not initialized");let r=tr(Yo(this.workspaceRoot,t.fileName)),n=new this.runtime.Document({relative_path:r,occurrences:[]});if(new this.runtime.FileIndexer(this.checker,{cwd:this.workspaceRoot,projectRoot:this.projectRoot,projectDisplayName:this.projectRoot,maxFileByteSizeNumber:this.maxFileByteSize},new this.runtime.Input(t.fileName,t.getText()),n,this.symbolTable,this.constructorTable,this.packages,t).index(),this.stats.documentsEmitted+=1,n.occurrences.length===0)return this.fragments.delete(r),this.stats.documentsRemoved+=1,{relativePath:r,bytes:null,occurrences:0,symbols:n.symbols.length,referenceFragments:[]};let o=n.serializeBinary();return this.fragments.set(r,o),{relativePath:r,bytes:o,occurrences:n.occurrences.length,symbols:n.symbols.length,referenceFragments:Au(r,n)}}result(t,r){return{producerIdentity:this.producerIdentity,fragments:t,durationMs:performance.now()-r,stats:this.snapshotStats()}}};function Au(e,t){let r=new Map;for(let n of t.occurrences){if(!n.symbol||(n.symbol_roles&1)!==0||n.range.length<3)continue;let i=n.range[0],o=n.range[1];if(!Number.isInteger(i)||!Number.isInteger(o))continue;let s={targetSymbol:n.symbol,location:{file:e,line:i,column:o}};r.set(`${n.symbol}\0${i}\0${o}`,s)}return[...r.values()].sort((n,i)=>n.targetSymbol.localeCompare(i.targetSymbol)||n.location.line-i.location.line||n.location.column-i.location.column)}var _n=class{compilerHost;sourceFiles=new Map;constructor(t,r,n){let i=t.createCompilerHost(r),o=i.getSourceFile.bind(i);this.compilerHost={...i,getCurrentDirectory:()=>n,getSourceFile:(s,a,c,l)=>{let u=Ue(s);if(this.sourceFiles.has(u))return this.sourceFiles.get(u);let d=o(s,a,c,l);return this.sourceFiles.set(u,d),d}}}invalidate(t){this.sourceFiles.delete(Ue(t))}};function Xo(e,t){let r=e.readConfigFile(t,e.sys.readFile);if(r.error)throw new Error(e.formatDiagnostics([r.error],e.createCompilerHost({})));let n=e.parseJsonConfigFileContent(r.config,e.sys,An(t)),i=n.errors.filter(o=>o.code!==18003);if(i.length>0)throw new Error(e.formatDiagnostics(i,e.createCompilerHost({})));return n}function Dn(e){return Zo(e.packageVersion,e.typescript.version)}function Zo(e,t){return`scip-typescript:${e}:typescript:${t}:document-adapter:${Nu}`}function Du(e,t){return tr(Yo(e,t))||"."}function ht(e,t){if(Cu(t))throw new Error(`expected a project-relative path: ${t}`);let r=fe(e,t),n=e.endsWith(Cn)?e:`${e}${Cn}`;if(r!==e&&!r.startsWith(n))throw new Error(`path escapes the project root: ${t}`);return r}function er(e){return[...new Set(e.map(tr))].sort()}function tr(e){return e.split(Cn).join("/").replace(/^\.\//,"")}function Ue(e){return fe(e)}function Ko(e,t){let r=0;for(let n of e.keys())if(Fu(n)){try{if(n.getSourceFile()!==t)continue}catch{continue}e.delete(n),r+=1}return r}function Fu(e){return!!(e&&typeof e=="object"&&"kind"in e&&"getSourceFile"in e)}import{spawn as Ou}from"child_process";import{performance as es}from"perf_hooks";var ph={probe:1e4,git:3e4,analysis:18e4,install:3e5,indexer:6e5},St=class extends Error{constructor(r,n,i,o={}){super(i,o.cause===void 0?void 0:{cause:o.cause});this.kind=r;this.label=n;this.name="BoundedProcessError",this.timedOut=o.timedOut??!1,this.reaped=o.reaped??!1,this.stdout=o.stdout??"",this.stderr=o.stderr??"",this.stdoutTruncated=o.stdoutTruncated??!1,this.stderrTruncated=o.stderrTruncated??!1}kind;label;timedOut;reaped;stdout;stderr;stdoutTruncated;stderrTruncated};function rr(e,t){if(!Number.isFinite(e)||e<=0)throw new TypeError(`${t} must be a positive finite number.`)}function ts(e,t,r,n){let i=Math.max(0,n-r);i>0&&e.push(t.subarray(0,i))}function rs(e,t,r){let n=Buffer.concat([...e,t]);e.length=0,e.push(n.subarray(Math.max(0,n.length-r)))}function Lu(e,t){if(e.exitCode!==null||e.signalCode!==null||e.pid===void 0)return!1;if(!t)return!0;let r=Pr(e.pid);return r!==null&&mi(t,r)}function fh(e){rr(e.timeoutMs,"timeoutMs"),rr(e.maxStdoutBytes,"maxStdoutBytes"),rr(e.maxStderrBytes,"maxStderrBytes");let t=e.terminationGraceMs??1e3;return rr(t,"terminationGraceMs"),new Promise((r,n)=>{let i=es.now(),o;try{o=Ou(e.command,[...e.args??[]],{cwd:e.cwd,env:e.env,detached:e.detached,stdio:["pipe","pipe","pipe"]})}catch(b){n(new St("spawn",e.label,`${e.label} could not start.`,{cause:b,reaped:!0}));return}let s=[],a=[],c=0,l=0,u=!1,d=!1,p=null,m=!1,y=null,re=o.pid===void 0?null:Pr(o.pid),L=b=>{p||m||(p=b,o.kill("SIGTERM"),y=setTimeout(()=>{!m&&Lu(o,re)&&o.kill("SIGKILL")},t),y.unref())},Ye=setTimeout(()=>{L({kind:"timeout",timedOut:!0,message:`${e.label} timed out after ${e.timeoutMs}ms.`})},e.timeoutMs);Ye.unref();let Oe=()=>{L({kind:"aborted",timedOut:!1,message:`${e.label} was cancelled.`})};e.signal?.addEventListener("abort",Oe,{once:!0}),e.signal?.aborted&&Oe(),o.stdout.on("data",b=>{let X=Buffer.isBuffer(b)?b:Buffer.from(b);e.outputLimitBehavior==="truncate-tail"?rs(s,X,e.maxStdoutBytes):ts(s,X,c,e.maxStdoutBytes),c+=X.length,c>e.maxStdoutBytes&&(u=!0,e.outputLimitBehavior!=="truncate-tail"&&L({kind:"stdout-limit",timedOut:!1,message:`${e.label} exceeded stdout limit (${e.maxStdoutBytes} bytes).`}))}),o.stderr.on("data",b=>{let X=Buffer.isBuffer(b)?b:Buffer.from(b);e.outputLimitBehavior==="truncate-tail"?rs(a,X,e.maxStderrBytes):ts(a,X,l,e.maxStderrBytes),l+=X.length,l>e.maxStderrBytes&&(d=!0,e.outputLimitBehavior!=="truncate-tail"&&L({kind:"stderr-limit",timedOut:!1,message:`${e.label} exceeded stderr limit (${e.maxStderrBytes} bytes).`}))}),o.on("error",b=>{if(!m&&!p){if(o.pid===void 0){clearTimeout(Ye),y&&clearTimeout(y),e.signal?.removeEventListener("abort",Oe),m=!0,n(new St("spawn",e.label,`${e.label} could not start: ${b.message}`,{cause:b,reaped:!0}));return}L({kind:"spawn",timedOut:!1,message:`${e.label} failed after start: ${b.message}`})}}),o.on("close",(b,X)=>{if(m)return;m=!0,clearTimeout(Ye),y&&clearTimeout(y),e.signal?.removeEventListener("abort",Oe);let ui=Buffer.concat(s).toString("utf8"),di=Buffer.concat(a).toString("utf8");if(p){n(new St(p.kind,e.label,p.message,{timedOut:p.timedOut,reaped:!0,stdout:ui,stderr:di,stdoutTruncated:u,stderrTruncated:d}));return}r({status:b,signal:X,stdout:ui,stderr:di,timedOut:!1,durationMs:es.now()-i,stdoutTruncated:u,stderrTruncated:d})}),e.input===void 0?o.stdin.end():o.stdin.end(e.input)})}var Mu=[P("source-facts",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/source/source-facts.ts"}),P("file-definitions",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/symbols/definition-catalog.ts"}),P("definition-exclusions",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/analysis/framework-patterns.ts"}),P("doc-path-tokens",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-products.test.ts",owner:"tests/storage/evidence-cache.test.ts"}),P("doc-path-evidence",{dependsOn:["content-hash","git-history","git-head","tool-version"],keyParts:["kind","relativePath","contentHash","trackedFiles","historyWindow","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/queries/cleanup/doc-drift.ts"}),P("source-imports",{dependsOn:["content-hash","import-resolution-fingerprint","config","tool-version"],keyParts:["kind","relativePath","contentHash","importResolutionFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/language-parsers/index.ts"}),P("source-reexports",{dependsOn:["content-hash","import-resolution-fingerprint","config","tool-version"],keyParts:["kind","relativePath","contentHash","importResolutionFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/language-parsers/index.ts"}),P("source-fingerprints",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/symbols/definition-catalog.test.ts",owner:"src/queries/cleanup/similar.ts"}),P("consumer-file-usage",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/queries/internal/consumer-evidence.ts"}),P("react-component-behavior-profiles",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/source/react-profile.ts"}),P("git-file-adds",{dependsOn:["git-head","git-history","tool-version"],keyParts:["kind","cacheKey","head","historyWindow","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/analysis/git-history.ts"}),P("typescript-reference-fragments",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-reference-fragments.test.ts",owner:"src/semantic/typescript/reference-fragment-shadow.ts"}),P("typescript-import-usage",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-semantic-provider.test.ts",owner:"src/semantic/shared-primitives.ts"}),P("typescript-signatures",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-semantic-provider.test.ts",owner:"src/semantic/shared-primitives.ts"}),nr("file-dependency-graph",{dependsOn:["project-fingerprint","indexed-language-set","import-resolution-fingerprint","tool-version"],keyParts:["kind","scope","projectFingerprint","payloadVersion"],stalenessTest:"tests/symbols/file-dep-graph.test.ts",owner:"src/symbols/graph/file-dep-graph.ts"}),nr("semantic-import-usage",{dependsOn:["project-fingerprint","indexed-language-set","import-resolution-fingerprint","tool-version"],keyParts:["kind","relativePath","projectFingerprint","language","semanticEngine","payloadVersion"],stalenessTest:"tests/semantic/rust/rust-semantic-cache-gate.test.ts",owner:"src/semantic/shared-primitives.ts"}),nr("semantic-signatures",{dependsOn:["project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","symbol","projectFingerprint","language","semanticEngine","payloadVersion"],stalenessTest:"tests/semantic/rust/rust-semantic-cache-gate.test.ts",owner:"src/semantic/shared-primitives.ts"}),nr("health-semantic-prewarm",{dependsOn:["project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","scope","cliVersion","projectFingerprint","payloadVersion"],stalenessTest:"tests/runtime/cli-support.test.ts",owner:"src/runtime/cli-support.ts"})];function bt(e){let t=new Map;return{kind:e.kind,read(r,n,i){let o=!1,s=0,a;if(Tr()){let c=qi(r);if(c){let l=`${c}\0${n}\0${i}`;a=t.get(l),a||(a=wr(["evidence-product-file-read-v1",e.kind,c,n,i]),t.set(l,a))}}return kr("evidence-product.file.read",()=>{let c=Wi(r,e.kind,n,i);if(c===null)return null;s=c.length;try{let l=e.deserialize(c);return o=l!==null,l}catch{return null}},()=>({...a?{workIdentity:a,workOutcome:"computed"}:{},scope:"file",kind:e.kind,available:!0,hit:o,payloadBytes:s}))},write(r,n,i,o){Vi(r,e.kind,n,i,e.serialize(o))},writeBatch(r,n){Ui(r,n.map(i=>({kind:e.kind,relativePath:i.relativePath,contentHash:i.contentHash,payload:e.serialize(i.value)})))}}}function bh(e){let t=new Map;return{kind:e.kind,read(r,n,i){let o=!1,s=0,a;if(Tr()){let c=`${i}\0${n}`;a=t.get(c),a||(a=wr(["evidence-product-project-read-v1",e.kind,i,n]),t.set(c,a))}return kr("evidence-product.project.read",()=>{let c=Hi(r,e.kind,n,i);if(c===null)return null;s=c.length;try{let l=e.deserialize(c);return o=l!==null,l}catch{return null}},()=>({...a?{workIdentity:a,workOutcome:"computed"}:{},scope:"project",kind:e.kind,available:!0,hit:o,payloadBytes:s}))},write(r,n,i,o){zi(r,e.kind,n,i,e.serialize(o))}}}function xt(e){let t=Mu.find(r=>r.kind===e);if(!t)throw new Error(`missing evidence product manifest entry for ${e}`);return t.invalidation}function P(e,t){return{scope:"file",kind:e,invalidation:{scope:"file",...t}}}function nr(e,t){return{scope:"project",kind:e,invalidation:{scope:"project",...t}}}import{isAbsolute as ju,relative as Gu}from"path";function C(e){return e.replace(/\\/g,"/")}function Eh(e,t){let r=Gu(e,t);return r===""||!r.startsWith("..")&&!ju(r)}var $u=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Rh(e){let t=e.toLowerCase();return $u.some(r=>t.endsWith(r))}import{createRequire as Bu}from"module";var ns=Bu(import.meta.url),It,ir;function qu(){if(It!==void 0)return It;try{It=ns("ts-morph")}catch{It=null}return It}function kh(){if(ir)return ir;let e=qu();if(!e)return"ts-morph:unavailable";let t="unknown";try{t=ns("ts-morph/package.json").version??"unknown"}catch{}return ir=`ts-morph:${t}:typescript:${e.ts.version}`,ir}function Ph(e,t){return t.map(r=>({tsconfigPath:r,project:new e.Project({tsConfigFilePath:r,skipFileDependencyResolution:!0})}))}function Ch(e,t,r){return{language:"typescript",availability:()=>({available:!1,reason:e,tsconfigPath:t,tsconfigPaths:r}),importUsage:()=>[],referencesFor:()=>[],calleesFor:()=>[],signatureFor:()=>null}}function _h(e,t,r){let n=new Set(r),i=new Map(r.map(o=>[o,[]]));for(let o of e)for(let s of t.get(o.symbolId)??[])n.has(s.file)&&i.get(s.file).push({targetSymbol:o.symbol,location:s});for(let[o,s]of i)i.set(o,Wu(s));return i}function Wu(e){let t=new Map;for(let r of e){let{location:n}=r;t.set(`${r.targetSymbol}\0${n.file}\0${n.line}\0${n.column}`,r)}return[...t.values()].sort((r,n)=>r.targetSymbol.localeCompare(n.targetSymbol)||Vu(r.location,n.location))}function Vu(e,t){return e.file.localeCompare(t.file)||e.line-t.line||e.column-t.column}import{existsSync as On,readFileSync as Ln,readdirSync as Uu,statSync as Hu}from"fs";import{join as He,relative as zu}from"path";function is(e){let t=Ju(e)??Qu(e);if(!t||t.length===0)return[];let r=[],n=new Set;for(let i of t)for(let o of Zu(e,i)){if(n.has(o))continue;n.add(o);let s=ed(e,o);s&&r.push(s)}return r}function Ju(e){let t=He(e,"pnpm-workspace.yaml");if(!On(t))return null;try{return Xu(Ln(t,"utf8"))}catch{return null}}function Xu(e){let t=[],r=!1;for(let n of e.split(/\r?\n/)){let i=Ku(n);if(!r){/^packages\s*:\s*$/.test(i.trim())&&(r=!0);continue}let o=/^\s+-\s*(.+)$/.exec(i);if(o){let s=Yu(o[1].trim());s&&t.push(s);continue}if(i.trim()!=="")break}return t}function Ku(e){let t=e.indexOf("#");return t===-1?e:e.slice(0,t)}function Yu(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Qu(e){let t=He(e,"package.json");if(!On(t))return null;try{let r=JSON.parse(Ln(t,"utf8"));return r.workspaces?Array.isArray(r.workspaces)?r.workspaces:r.workspaces.packages??[]:null}catch{return null}}function Zu(e,t){if(!t||t.startsWith("!")||t.includes("node_modules"))return[];if(!t.includes("*")){let s=He(e,t);return Fn(s)?[s]:[]}let r=t.indexOf("*"),n=t.slice(0,r).replace(/\/$/,""),i=t.slice(r+1).replace(/^\//,""),o=He(e,n||".");return Fn(o)?Uu(o).map(s=>He(o,s,i)).filter(Fn):[]}function Fn(e){try{return Hu(e).isDirectory()}catch{return!1}}function ed(e,t){let r=He(t,"package.json");if(!On(r))return null;try{let n=JSON.parse(Ln(r,"utf8"));return typeof n.name!="string"||n.name.length===0?null:{name:n.name,relativeDir:zu(e,t).replace(/\\/g,"/"),exports:n.exports}}catch{return null}}import{createRequire as td}from"module";import{existsSync as ke}from"fs";import{basename as os,dirname as A,extname as Y,join as j,relative as Te,resolve as v,sep as rd}from"path";var nd=Ct("indexed-paths",{clearGroups:[]}),id=Ct("indexed-path-digest",{clearGroups:[]}),od=R("tsconfig-alias-config",{clearGroups:["whole-project"]}),sd=R("tsconfig-alias-config-for-dir",{clearGroups:["whole-project"]}),ad=td(import.meta.url),Et;function cd(){if(Et!==void 0)return Et;try{Et=ad("typescript")}catch{Et=null}return Et}var ld=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"],ud=Ct("workspace-packages",{clearGroups:["whole-project"]}),we=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue"],or=[".py",".pyi"],D=[".java",".scala",".kt",".kts"],sr=[".rs"],ar=[".rb"],cr=[".c",".h",".cc",".cpp",".cxx",".hpp",".hh",".hxx"],me=[".cs",".vb"],lr=[".dart"],Pe=[".php"],ze=[".clj",".cljs",".cljc"],dd=new Set(we),Mn=new Set(or),ss=new Set(D),jn=new Set(sr),Gn=new Set(ar),as=new Set(cr),cs=new Set(me),$n=new Set(lr),ls=new Set(Pe),us=new Set(ze),pd=[{extensions:we,lookup:dd},{extensions:or,lookup:Mn},{extensions:D,lookup:ss},{extensions:sr,lookup:jn},{extensions:ar,lookup:Gn},{extensions:cr,lookup:as},{extensions:me,lookup:cs},{extensions:lr,lookup:$n},{extensions:Pe,lookup:ls},{extensions:ze,lookup:us}];function Q(e,t){return t.has(Y(e).toLowerCase())}function fd(e){return Q(e,Mn)}function md(e){return Q(e,ss)}function gd(e){return Q(e,jn)}function yd(e){return Q(e,Gn)}function hd(e){return Q(e,as)}function Sd(e){return Q(e,cs)}function ds(e){return Y(e).toLowerCase()===".vb"}function bd(e){return Q(e,$n)}function xd(e){return Q(e,ls)}function Id(e){return Q(e,us)}function Bn(e){let t=Y(e).toLowerCase();for(let r of pd)if(r.lookup.has(t))return r.extensions;return we}function Ed(e){return md(e)||Sd(e)||xd(e)}function ge(e,t,r){return fd(t)?Je(e,t,r):gd(t)?Z(e,t,r):yd(t)?ur(e,t,r):hd(t)?dr(e,t,r):Ed(t)?I(e,r.replace(/\\/g,"."),Bn(t)):bd(t)?pr(e,t,r):Id(t)?qn(e,r):vd(e,t,r)}function vd(e,t,r){if(!r.startsWith(".")&&!r.startsWith("/"))return Rd(e,t,r)??wd(e,r);let n=A(j(e.config.projectRoot,t)),i=v(n,r),o=ee(e);for(let s of Vn(i)){let a=C(Te(e.config.projectRoot,s));if(o.has(a)||ke(s))return a}return C(Te(e.config.projectRoot,i))}function Rd(e,t,r){let n=Ad(e,t);if(!n)return null;let i=ee(e);for(let o of Td(n,r)){let s=v(n.baseUrl,o);for(let a of Vn(s)){let c=C(Te(e.config.projectRoot,a));if(i.has(c)||ke(a))return c}}return null}function Td(e,t){let r=[];for(let[n,i]of Object.entries(e.paths)){let o=n.indexOf("*");if(o===-1){if(t!==n)continue;r.push(...i);continue}let s=n.slice(0,o),a=n.slice(o+1);if(!t.startsWith(s)||!t.endsWith(a)||t.length<s.length+a.length)continue;let c=t.slice(s.length,t.length-a.length);for(let l of i)r.push(l.includes("*")?l.replace("*",c):l)}return r}function wd(e,t){let r=Pd(kd(e),t);if(!r)return null;let n=ee(e);for(let i of Cd(r)){let o=v(e.config.projectRoot,r.pkg.relativeDir,i);for(let s of Vn(o)){let a=C(Te(e.config.projectRoot,s));if(n.has(a)||ke(s))return a}}return null}function kd(e){return ud.get(e,()=>is(e.config.projectRoot))}function Pd(e,t){let r=null;for(let n of e){let i=null;t===n.name?i="":t.startsWith(`${n.name}/`)&&(i=t.slice(n.name.length+1)),i!==null&&(!r||n.name.length>r.pkg.name.length)&&(r={pkg:n,subpath:i})}return r}function Cd(e){let t=[],r=Nd(e.pkg.exports,e.subpath);if(r){let n=_d(r);n&&t.push(n)}return t.push(e.subpath?`src/${e.subpath}`:"src/index"),t}function Nd(e,t){if(!e||typeof e!="object")return null;let r=t===""?".":`./${t}`;return ps(e[r])}function ps(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;let t=e;for(let r of["types","import","default","require","node"]){let n=ps(t[r]);if(n)return n}return null}function _d(e){let t=e.replace(/^\.\//,"");return t.startsWith("dist/")?`src/${t.slice(5)}`:null}function Ad(e,t){let r=C(A(t));return sd.get(e,r,()=>Dd(e,r))}function Dd(e,t){let r=cd();if(!r)return null;let n=v(e.config.projectRoot),i=v(n,t);for(;i===n||i.startsWith(n+rd);){for(let s of ld){let a=j(i,s);if(!ke(a))continue;let c=od.get(e,a,()=>Fd(r,a));if(c)return c}let o=A(i);if(o===i)break;i=o}return null}function Fd(e,t){try{let r=e.readConfigFile(t,e.sys.readFile);if(r.error||!r.config)return null;let n=e.parseJsonConfigFileContent(r.config,e.sys,A(t)),i=n.options.paths;return!i||Object.keys(i).length===0?null:{baseUrl:n.options.baseUrl?v(A(t),n.options.baseUrl):A(t),paths:i}}catch{return null}}function Je(e,t,r){let n=ee(e),i;if(r.startsWith(".")){let o=r.match(/^(\.+)(.*)$/);if(!o)return null;let s=o[1].length,a=o[2].replace(/^\./,""),c=A(j(e.config.projectRoot,t));for(let l=1;l<s;l++)c=A(c);i=a?v(c,a.replace(/\./g,"/")):c}else i=v(e.config.projectRoot,r.replace(/\./g,"/"));for(let o of Od(i)){let s=C(Te(e.config.projectRoot,o));if(n.has(s)||ke(o))return s}return null}function Z(e,t,r){if(!r)return null;let n=r.replace(/\s+as\s+.+$/,"").trim();if(!n.startsWith("crate::")&&!n.startsWith("self::")&&!n.startsWith("super::"))return null;let i=A(j(e.config.projectRoot,t)),o;return n.startsWith("crate::")?o=v(e.config.projectRoot,"src",n.slice(7).replace(/::/g,"/")):n.startsWith("self::")?o=v(i,n.slice(6).replace(/::/g,"/")):o=v(A(i),n.slice(7).replace(/::/g,"/")),Wn(e,Ld(o))}function ur(e,t,r){let n=A(j(e.config.projectRoot,t)),i=v(n,r);return Wn(e,Md(i))}function dr(e,t,r){let n=A(j(e.config.projectRoot,t)),i=[v(n,r),v(e.config.projectRoot,r),v(e.config.projectRoot,"include",r),v(e.config.projectRoot,"src",r)];return Wn(e,i)}function I(e,t,r){let n=ee(e),i=t.replace(/\\/g,".").replace(/::/g,".").replace(/^global::/,""),o=i.replace(/\./g,"/"),s=i.split(".").pop()??i;for(let c of r){let l=`${o}${c}`,u=[...n].find(d=>d.endsWith(l));if(u)return u}for(let c of r){let l=[...n].find(u=>os(u)===`${s}${c}`);if(l)return l}let a=[...n].filter(c=>r.includes(Y(c).toLowerCase())).filter(c=>c.includes(`/${o}/`)||c.includes(`/${s}/`)).sort((c,l)=>c.localeCompare(l));return a.length===1?a[0]:null}function pr(e,t,r){let n=ee(e);if(r.startsWith("package:")){let s=r.slice(8),a=s.indexOf("/");if(a<0)return null;let c=s.slice(a+1),l=C(c.startsWith("lib/")?c:`lib/${c}`);return n.has(l)?l:null}let i=A(j(e.config.projectRoot,t)),o=v(i,r);for(let s of jd(o)){let a=C(Te(e.config.projectRoot,s));if(n.has(a)||ke(s))return a}return null}function qn(e,t){let r=t.replace(/-/g,"_").replace(/\./g,"/"),n=ee(e);for(let i of ze){let o=`${r}${i}`,s=[...n].find(a=>a.endsWith(o));if(s)return s}for(let i of ze){let o=[...n].find(s=>os(s)===`${r.split("/").pop()}${i}`);if(o)return o}return null}function Od(e){let t=Y(e);return Mn.has(t)?[e]:[`${e}.py`,`${e}.pyi`,j(e,"__init__.py"),j(e,"__init__.pyi")]}function Wn(e,t){let r=ee(e);for(let n of t){let i=C(Te(e.config.projectRoot,n));if(r.has(i)||ke(n))return i}return null}function Ld(e){let t=Y(e);return jn.has(t)?[e]:[`${e}.rs`,j(e,"mod.rs")]}function Md(e){let t=Y(e);return Gn.has(t)?[e]:[`${e}.rb`,j(e,"index.rb")]}function jd(e){let t=Y(e);return $n.has(t)?[e]:[`${e}.dart`,e]}function Vn(e){let t=Y(e),r=new Set;if(t){r.add(e);for(let n of we)r.add(e.slice(0,-t.length)+n)}else for(let n of we)r.add(`${e}${n}`),r.add(j(e,`index${n}`));return[...r]}function ee(e){return nd.get(e,()=>new Set(Si(e,{includeIgnored:!1}).map(C)))}function Un(e){return id.get(e,()=>Wt([...ee(e)].sort().join(`
|
|
131
|
+
`)))}import{readFileSync as Gd}from"fs";import{join as $d}from"path";var Bd=R("source-text",{clearGroups:["whole-project","source-file"]}),qd=R("source-lines",{clearGroups:["whole-project","source-file"]});function F(e,t){let r=t.replace(/\\/g,"/");return Bd.get(e,r,()=>{let n=$d(e.config.projectRoot,r);try{return Gd(n,"utf-8")}catch(i){if(Wd(i))return"";throw i}})}function Wd(e){return typeof e=="object"&&e!==null&&"code"in e&&(e.code==="ENOENT"||e.code==="ENOTDIR")}function Jh(e,t){let r=t.replace(/\\/g,"/");return qd.get(e,r,()=>{let n=F(e,r);return n?n.split(`
|
|
132
|
+
`):[]})}import{basename as js}from"path";function Ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vd(e){return e.replace(/'''[\s\S]*?'''/g,ye).replace(/"""[\s\S]*?"""/g,ye).replace(/#.*$/gm,ye).replace(/\/\/.*$/gm,ye).replace(/\/\*[\s\S]*?\*\//g,ye).replace(/`(?:\\[\s\S]|[^`])*`/g,ye).replace(/'(?:\\.|[^'\\\r\n])*'/g,ye).replace(/"(?:\\.|[^"\\\r\n])*"/g,ye)}function ye(e){return e.replace(/[^\r\n]/g," ")}var eS=Ge("stripped-lines",{clearGroups:["whole-project","source-file"]});yi({name:"stripped-source-singleton",groups:["whole-project","source-file"],clearAll:()=>{fr=null,vt=""},clearFile:()=>{fr=null,vt=""}});var fr=null,vt="";function Ud(e){return fr===e||(fr=e,vt=Vd(e)),vt}function he(e,t,r){let n=Ud(e);return`${n.slice(0,t)}${" ".repeat(r-t)}${n.slice(r)}`}function N(e,t){return new RegExp(`\\b${Ce(t)}\\b`,"m").test(e)}function Xe(e,t){let r=new Set,n=new RegExp(`\\b${Ce(t)}\\s*\\.\\s*([A-Za-z_$][\\w$]*)`,"g");for(let i of e.matchAll(n)){let o=i[1];o&&r.add(o)}return[...r]}function Hn(e){let t=0;for(let r of e)r==="("&&(t+=1),r===")"&&(t-=1);return t}import{extname as fs}from"path";var Hd={".rs":"rust",".ts":"typescript",".mts":"typescript",".cts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".pyi":"python",".java":"java",".kt":"kotlin",".kts":"kotlin",".scala":"scala",".sc":"scala",".rb":"ruby",".c":"c",".h":"c",".cc":"cpp",".cpp":"cpp",".cxx":"cpp",".hpp":"cpp",".hh":"cpp",".hxx":"cpp",".cs":"csharp",".php":"php",".vb":"vb",".clj":"clojure",".cljs":"clojure",".cljc":"clojure"};function Ne(e){return Hd[fs(e).toLowerCase()]??null}function _e(e){return fs(e).toLowerCase()===".vue"}import{createRequire as zd}from"module";var k=zd(import.meta.url),mr=null,ms=!1;function Jd(){if(ms)return null;if(mr)return mr;try{return mr=k("tree-sitter"),mr}catch{return ms=!0,null}}var gs=new Map,gr=new Set;function Xd(e){if(gr.has(e))return null;let t=gs.get(e);if(t)return t;let r;try{switch(e){case"rust":r=k("tree-sitter-rust");break;case"typescript":r=k("tree-sitter-typescript").typescript;break;case"tsx":r=k("tree-sitter-typescript").tsx;break;case"javascript":r=k("tree-sitter-javascript");break;case"python":r=k("tree-sitter-python");break;case"java":r=k("tree-sitter-java");break;case"kotlin":r=k("tree-sitter-kotlin");break;case"scala":r=k("tree-sitter-scala");break;case"ruby":r=k("tree-sitter-ruby");break;case"c":r=k("tree-sitter-c");break;case"cpp":r=k("tree-sitter-cpp");break;case"csharp":r=k("tree-sitter-c-sharp");break;case"php":r=k("tree-sitter-php").php;break;case"vb":{let n=k("tree-sitter-vb-dotnet");r=n.language??n;break}case"clojure":return gr.add(e),null}}catch{return gr.add(e),null}return gs.set(e,r),r}var ys=new Map;function Kd(e){let t=ys.get(e);if(t)return t;let r=Xd(e);if(!r)return null;let n=Jd();if(!n)return null;let i=new n;try{i.setLanguage(r)}catch{return gr.add(e),null}return ys.set(e,i),i}function Yd(e,t){return e.parse(n=>n>=t.length?null:t.slice(n,Math.min(t.length,n+16384)))}function zn(e,t){let r=Kd(e);if(!r)return null;try{return Yd(r,t)}catch{return null}}import{posix as Jn}from"path";import{parse as Qd}from"@vue/compiler-sfc";var uS=hi("vue-sfc-units");function Zd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function ep(e){let t=e?.toLowerCase();return!t||t==="js"||t==="javascript"||t==="jsx"?"javascript":t==="ts"||t==="typescript"?"typescript":t==="tsx"?"tsx":null}function bs(e,t,r){let n={relativePath:t,template:null,scripts:[],styles:[],customBlocks:[],errors:[]};if(!r)return n;let i;try{i=Qd(r,{filename:t})}catch(s){return n.errors.push(Ss(s)),n}n.errors.push(...i.errors.map(Ss));let{descriptor:o}=i;return o.template&&(n.template=yr(e,t,"template",o.template)),o.script&&n.scripts.push(hs(e,t,o.script,!1)),o.scriptSetup&&n.scripts.push(hs(e,t,o.scriptSetup,!0)),n.styles=o.styles.map(s=>yr(e,t,"style",s)),n.customBlocks=o.customBlocks.map(s=>yr(e,t,"custom",s)),n.errors.push(...[n.template,...n.scripts,...n.styles,...n.customBlocks].flatMap(s=>s?.errors??[])),n}function hs(e,t,r,n){let i=yr(e,t,"script",r);return{...i,kind:"script",setup:n,astLanguage:ep(i.lang)}}function yr(e,t,r,n){let i=rp(n.attrs),o=typeof i.lang=="string"?i.lang:null,s=typeof i.src=="string"?i.src:typeof n.src=="string"?n.src:void 0;if(s){let c=tp(t,s);if(!c)return{kind:r,ownerPath:t,sourcePath:t,external:!0,src:s,attrs:i,lang:o,body:"",startLine:0,endLine:0,errors:[`Could not resolve Vue ${r} block source: ${s}`]};let l=F(e,c),u=l?Math.max(0,l.split(`
|
|
133
|
+
`).length-1):0;return{kind:r,ownerPath:t,sourcePath:c,external:!0,src:s,attrs:i,lang:o,body:l,startLine:0,endLine:u,errors:l?[]:[`Vue ${r} block source not found: ${c}`]}}let a=Math.max(0,n.loc.start.line-1);return{kind:r,ownerPath:t,sourcePath:t,external:!1,attrs:i,lang:o,body:n.content,startLine:a,endLine:Math.max(a,n.loc.end.line-1),errors:[]}}function tp(e,t){let r=t.split(/[?#]/,1)[0];if(!r||r.startsWith("/")||r.includes("://"))return null;let n=Zd(Jn.normalize(Jn.join(Jn.dirname(e),r)));return n===".."||n.startsWith("../")?null:n}function rp(e){return{...e}}function Ss(e){return e instanceof Error?e.message:String(e)}function hr(e,t,r){let i=bs(e,t,r).scripts.filter(s=>s.astLanguage&&s.body.length>0),o=i[0]?.astLanguage;return o?{body:i.map(s=>`${`
|
|
134
|
+
`.repeat(s.startLine)}${s.body}`).join(`
|
|
135
|
+
`),startLine:0,language:o}:null}var xs=Ge("ast-trees",{clearGroups:["whole-project","source-file"]});function J(e,t){if(_e(t))return np(e,t);let r=Ne(t);if(!r)return null;let n=F(e,t);return n?xs.get(e,t,n,()=>zn(r,n)):null}function np(e,t){let r=F(e,t);return r?xs.get(e,t,r,()=>{let n=hr(e,t,r);if(!n)return null;let i=`
|
|
136
|
+
`.repeat(n.startLine)+n.body;return zn(n.language,i)}):null}function Is(e,t){let r=ip(e,t);if(!r)return null;let n=Ae(r);return n?{calleeLeaf:n,memberAccess:op(r),line:e.startPosition.row}:null}function ip(e,t){if(t==="rust")return e.type==="call_expression"?e.childForFieldName("function")??e.namedChild(0):e.type==="macro_invocation"?e.childForFieldName("macro")??e.namedChild(0):null;if(t==="python")return e.type!=="call"?null:e.childForFieldName("function")??e.namedChild(0);if(t==="typescript"||t==="tsx"||t==="javascript"){if(e.type==="call_expression")return e.childForFieldName("function")??e.namedChild(0);if(e.type==="new_expression")return e.childForFieldName("constructor")??e.namedChild(0)}return null}function op(e){switch(e.type){case"field_expression":case"member_expression":case"attribute":return!0;default:return!1}}function Ae(e){switch(e.type){case"identifier":case"type_identifier":case"field_identifier":case"property_identifier":case"shorthand_property_identifier":return e.text;case"field_expression":case"member_expression":case"attribute":{let t=e.namedChild(e.namedChildCount-1);return t?Ae(t):null}case"generic_function":{let t=e.childForFieldName("function")??e.namedChild(0);return t?Ae(t):null}case"scoped_identifier":{let t=e.childForFieldName("name")??e.namedChild(e.namedChildCount-1);return t?Ae(t):null}case"super":case"self":case"this":return null;default:return null}}function Rt(e){return e.type==="comment"||e.type==="line_comment"||e.type==="block_comment"}var sp=new Set(["function_declaration","method_definition","method_signature","function_signature"]);function ws(e,t){let r=cp(e,t);if(r)return{name:r.name,startLine:r.definitionNode.startPosition.row,endLine:r.definitionNode.endPosition.row,paramCount:Rs(r.functionNode),params:Es(r.functionNode),paramsEndLine:vs(r.functionNode),isLiteralPassthrough:Ts(r.functionNode,t)};if(!ap(e.type,t))return null;let n=e.childForFieldName("name")??e.namedChildren.find(i=>i.type==="identifier"||i.type==="property_identifier");return n?{name:n.text,startLine:e.startPosition.row,endLine:e.endPosition.row,paramCount:Rs(e),params:Es(e),paramsEndLine:vs(e),isLiteralPassthrough:Ts(e,t)}:null}function ks(e){return e.namedChildren.find(t=>t.type==="parameters"||t.type==="formal_parameters")}function Es(e){let t=ks(e);if(!t)return[];let r=[];for(let n of t.namedChildren){if(Rt(n))continue;if(n.type==="identifier"){r.push({name:n.text,simple:!0});continue}let i=n.namedChildren.some(a=>a.type.endsWith("_modifier"))||/^\s*(?:public|private|protected|readonly|override)\b/.test(n.text),o=n.childForFieldName("pattern");if(!i&&o&&o.type==="identifier"){r.push({name:o.text,simple:!0});continue}let s=n.namedChildren.find(a=>a.type==="identifier");r.push({name:o?.type==="identifier"?o.text:s?.text??"",simple:!1})}return r}function vs(e){let t=ks(e);return t?t.endPosition.row:e.startPosition.row}function ap(e,t){return t==="rust"?e==="function_item"||e==="function_signature_item":t==="python"?e==="function_definition":t==="typescript"||t==="tsx"||t==="javascript"?sp.has(e):!1}function cp(e,t){if(t!=="typescript"&&t!=="tsx"&&t!=="javascript")return null;if(e.type==="variable_declarator"){let r=e.childForFieldName("name")??e.namedChild(0),n=e.childForFieldName("value")??e.namedChild(1);return!r||!n||n.type!=="arrow_function"&&n.type!=="function_expression"?null:{name:r.text,definitionNode:e,functionNode:n}}if(e.type==="public_field_definition"){let r=e.childForFieldName("name")??e.namedChild(0),n=e.childForFieldName("value")??e.namedChild(1);return!r||!n||n.type!=="arrow_function"&&n.type!=="function_expression"?null:{name:r.text,definitionNode:e,functionNode:n}}return null}function Rs(e){let t=e.namedChildren.find(n=>n.type==="parameters"||n.type==="formal_parameters");if(!t)return 0;let r=0;for(let n of t.namedChildren)Rt(n)||(r+=1);return r}function Ts(e,t){let r=e.namedChildren.find(d=>d.type==="block"||d.type==="statement_block");if(!r)return!1;let n=r.namedChildren.filter(d=>!Rt(d));if(n.length!==1)return!1;let i=n[0],o=null;if(i.type==="return_statement"||i.type==="expression_statement"?o=i.namedChild(0)??null:t==="rust"&&(i.type==="call_expression"||i.type==="macro_invocation")&&(o=i),!o)return!1;let s=t==="python"?"call":"call_expression";if(o.type!==s)return!1;let a=o.namedChildren.find(d=>d.type==="arguments"||d.type==="argument_list");if(!a)return!1;let c=a.namedChildren.filter(d=>!Rt(d)),l=e.namedChildren.find(d=>d.type==="parameters"||d.type==="formal_parameters");if(!l)return!1;let u=[];for(let d of l.namedChildren){if(d.type==="identifier"){u.push(d.text);continue}let p=d.namedChildren.find(m=>m.type==="identifier");p&&u.push(p.text)}if(c.length!==u.length)return!1;for(let d=0;d<u.length;d+=1){let p=c[d];if(p.type!=="identifier"||p.text!==u[d])return!1}return!0}var lp=new Set(["identifier","type_identifier","field_identifier"]),up=new Set(["identifier"]),dp=new Set(["identifier","property_identifier","type_identifier","shorthand_property_identifier","shorthand_property_identifier_pattern"]),pp=new Set(["rust","python"]),fp=/\{([^{}]*)\}/g,mp=/\b([A-Za-z_][\w]*)\b/g;function Ps(e,t){return gp(t).has(e.type)}function Cs(e,t){return pp.has(t)&&e.type==="string_content"}function Xn(e){let t=0;for(let n of e.values()){let i=n[n.length-1];i!==void 0&&i>t&&(t=i)}let r=new Array(t+1);for(let n=0;n<=t;n+=1)r[n]=new Set;for(let[n,i]of e)for(let o of i)r[o].add(n);return r}function gp(e){return e==="rust"?lp:e==="python"?up:dp}function Ns(e,t){let r=e.startPosition.row;for(let n of e.text.matchAll(fp)){let i=n[1]??"";for(let o of i.matchAll(mp))o[1]&&t(o[1],r)}}var yp=[/\bdefault\s*=\s*"([^"]+)"/g,/\bwith\s*=\s*"([^"]+)"/g,/\bserialize_with\s*=\s*"([^"]+)"/g,/\bdeserialize_with\s*=\s*"([^"]+)"/g,/\bskip_serializing_if\s*=\s*"([^"]+)"/g,/\bgetter\s*=\s*"([^"]+)"/g,/\brename_all_with\s*=\s*"([^"]+)"/g,/\bschema_with\s*=\s*"([^"]+)"/g],hp=/^#!?\[\s*serde\s*\(/,Sp=/^#!?\[\s*schemars\s*\(/,bp=/^#!?\[\s*validate\s*\(/,xp=new Set(["invoke","invokeTauriCommand","listen","once","emit","subscribe","dispatch","sendCommand","callRust"]);function _s(e,t,r){if(t!=="typescript"&&t!=="tsx"&&t!=="javascript"||e.type!=="call_expression")return;let n=e.childForFieldName("function")??e.namedChild(0);if(!n)return;let i=Ae(n);if(!i||!xp.has(i))return;let o=e.namedChildren.find(c=>c.type==="arguments");if(!o)return;let s=o.namedChild(0);if(!s||s.type!=="string")return;let a=s.namedChildren.find(c=>c.type==="string_fragment");a&&r.add(a.text)}function As(e,t){let r=hp.test(e),n=Sp.test(e),i=bp.test(e);if(!(!r&&!n&&!i))for(let o of yp){o.lastIndex=0;let s;for(;(s=o.exec(e))!==null;){let a=s[1],c=a.split("::").pop()??a;c==="is_none"&&/\bOption\b/.test(a)||c==="is_empty"&&/\b(String|Vec|HashMap|BTreeMap|HashSet|BTreeSet)\b/.test(a)||c&&t.add(c)}}}function Ds(e,t){let r=new Map,n=(s,a)=>{if(s===a)return;let c=r.get(s);c||(c=new Set,r.set(s,c)),c.add(a)},i=t==="python"?new Set(["identifier"]):new Set(["type_identifier"]),o=(s,a)=>{let c=l=>{i.has(l.type)&&l.text!==a&&n(l.text,a);for(let u of l.children)c(u)};for(let l of s.children)c(l)};if(t==="rust")for(let s of e.rootNode.descendantsOfType(["struct_item","enum_item","union_item","type_item"])){let a=s.namedChildren.find(l=>l.type==="type_identifier")?.text;if(!a)continue;let c=s.namedChildren.find(l=>l.type==="field_declaration_list"||l.type==="enum_variant_list"||l.type==="ordered_field_declaration_list");c&&o(c,a),s.type==="type_item"&&o(s,a)}else if(t==="python")for(let s of e.rootNode.descendantsOfType("class_definition")){let a=s.namedChildren.find(u=>u.type==="identifier")?.text;if(!a)continue;let c=s.childForFieldName("superclasses");c&&o(c,a);let l=s.namedChildren.find(u=>u.type==="block");if(l)for(let u of l.descendantsOfType("type"))for(let d of u.descendantsOfType("identifier"))d.text!==a&&n(d.text,a)}else for(let s of e.rootNode.descendantsOfType(["interface_declaration","type_alias_declaration","class_declaration"])){let a=s.namedChildren.find(c=>c.type==="type_identifier")?.text;a&&o(s,a)}return r}var Ip=new Map([["defn","function"],["defn-","function"],["defmacro","macro"],["defmacro-","macro"],["defmethod","method"]]),Kn=new Set(["catch","comment","def","defprotocol","defrecord","deftype","defmethod","defmacro","defmacro-","defn","defn-","do","doseq","dotimes","fn","for","if","let","loop","ns","quote","recur","throw","try","extend-protocol","extend-type","when","when-let","when-not"]);function Fs(e){let t=[],r=[],n=[],i=new Map,o=[],s=0,a=0,c=(l,u)=>{let d=i.get(l);if(!d){i.set(l,[u]);return}d[d.length-1]!==u&&d.push(u)};for(;a<e.length;){let l=e[a];if(l===`
|
|
137
|
+
`){s+=1,a+=1;continue}if(/\s|,/.test(l)){a+=1;continue}if(l===";"){a=br(e,a);continue}if(l==='"'){let y=wt(e,a,s);s=y.line,a=y.index;continue}if(l==="("||l==="["||l==="{"){o.push({kind:l,startLine:s,endLine:s,headTokens:[],tokens:[],children:[]}),a+=1;continue}if(l===")"||l==="]"||l==="}"){let y=o.pop();y&&(y.endLine=s,Ep(y,{callables:t,callSites:r,clojureMembers:n,recordIdentifier:c}),o[o.length-1]?.children.push(y)),a+=1;continue}if(Yn(l)){a+=1;continue}let u=s,d=a;for(;a<e.length&&!Qn(e[a]);)a+=1;let p=e.slice(d,a);if(!p)continue;let m={text:p,line:u};vp(o[o.length-1],m),c(G(p),u)}return{language:"clojure",callables:t,callSites:r,clojureMembers:n,typeContainerMap:new Map,identifierLineMap:i,identifiersByLine:Pp(i),fileIdentifiers:new Set(i.keys()),rustAttrReferencedNames:new Set,crossLanguageDispatchNames:new Set}}function Ep(e,t){if(e.kind!=="("||e.headTokens.length===0)return;let r=e.headTokens[0],n=G(r.text),i=Ip.get(r.text);if(i){let s=e.headTokens[1];if(s){let a=G(s.text);t.recordIdentifier(a,s.line),t.callables.push({name:a,startLine:e.startLine,endLine:e.endLine,paramCount:0,params:[],paramsEndLine:s.line,isLiteralPassthrough:!1,clojureKind:i})}}if(Rp(e,t),!n||Kn.has(r.text)||Kn.has(n)||n.startsWith(":"))return;let o=kp(r.text);t.callSites.push({calleeLeaf:o.leaf,calleeQualifier:o.qualifier,calleeText:o.text,memberAccess:!1,line:r.line})}function vp(e,t){e&&(e.headTokens.length<2&&e.headTokens.push(t),e.tokens.length<200&&e.tokens.push(t))}function Rp(e,t){let r=G(e.tokens[0]?.text??"");if(r==="defprotocol"){let n=G(e.tokens[1]?.text??"");if(!n)return;for(let i of Sr(e))Tt(t,n,"protocol",i,"protocol-method");return}if(r==="defrecord"||r==="deftype"){let n=G(e.tokens[1]?.text??"");if(!n)return;let i=r==="defrecord"?"record":"type",o=r==="defrecord"?"record-method":"type-method";for(let s of Sr(e))Tt(t,n,i,s,o);return}if(r==="extend-type"){let n=G(e.tokens[1]?.text??"");if(!n)return;for(let i of Sr(e))Tt(t,n,"extension",i,"extension-method");return}if(r==="extend-protocol"){let n=G(e.tokens[1]?.text??"");for(let i of Sr(e)){n&&Tt(t,n,"extension",i,"extension-method");let o=wp(e,i.startLine);o&&o!==n&&Tt(t,o,"extension",i,"extension-method")}}}function Sr(e){return e.children.filter(Tp)}function Tp(e){if(e.kind!=="(")return!1;let t=G(e.tokens[0]?.text??"");return!!(t&&!Kn.has(t)&&!t.startsWith(":"))}function Tt(e,t,r,n,i){let o=n.tokens[0],s=G(o?.text??"");!o||!s||(e.recordIdentifier(s,o.line),e.clojureMembers.push({ownerName:t,ownerKind:r,memberName:s,memberKind:i,startLine:n.startLine,endLine:n.endLine}))}function wp(e,t){let r=null;for(let n=2;n<e.tokens.length;n+=1){let i=e.tokens[n];if(i.line>t)break;let o=G(i.text);o&&!o.startsWith(":")&&(r=o)}return r}function G(e){return e.replace(/^#?['`~@]+/,"").split("/").pop()?.replace(/^\./,"")??""}function kp(e){let t=e.replace(/^#?['`~@]+/,""),r=t.lastIndexOf("/"),n=G(t);if(r<=0)return{leaf:n,text:t};let i=t.slice(0,r);return{leaf:n,qualifier:i,text:t}}function br(e,t){let r=t;for(;r<e.length&&e[r]!==`
|
|
138
|
+
`;)r+=1;return r}function wt(e,t,r){let n=t+1,i=r;for(;n<e.length;){let o=e[n];if(o==="\\"){n+=2;continue}if(o===`
|
|
139
|
+
`&&(i+=1),n+=1,o==='"')break}return{index:n,line:i}}function Yn(e){return e==="'"||e==="`"||e==="~"||e==="@"||e==="^"||e==="#"}function Qn(e){return/\s|,/.test(e)||e==="("||e===")"||e==="["||e==="]"||e==="{"||e==="}"||e==='"'||e===";"}function Pp(e){let t=[];for(let[r,n]of e)for(let i of n)t[i]??=new Set,t[i].add(r);return t}var Os=3,Cp=Ge("source-facts",{clearGroups:["whole-project","source-file"]}),Zn=bt({kind:"source-facts",invalidation:xt("source-facts"),serialize:Dp,deserialize:Fp});function Ls(e,t){return Np(e,t).facts}function Np(e,t){let r=F(e,t);if(!r)return{facts:null};let n=_p(e,t,r);return n?Cp.get(e,t,r,()=>Ap(e,t,n,r)):{facts:null}}function _p(e,t,r){return _e(t)?hr(e,t,r)?.language??null:Ne(t)}function Ap(e,t,r,n){let i=tt(e,t,n),o=Zn.read(e,t,i);if(o&&o.language===r)return{facts:o};if(r==="clojure"){let c=Fs(n);return Zn.write(e,t,i,c),{facts:c}}let s=J(e,t);if(!s)return{facts:null,unavailable:{language:r,reason:"parser-unavailable"}};let a=Op(s,r);return Zn.write(e,t,i,a),{facts:a}}function Dp(e){let t={version:Os,language:e.language,callables:e.callables,callSites:e.callSites,clojureMembers:e.clojureMembers,typeContainerMap:[...e.typeContainerMap.entries()].map(([r,n])=>[r,[...n]]),identifierLineMap:[...e.identifierLineMap.entries()],rustAttrReferencedNames:[...e.rustAttrReferencedNames],crossLanguageDispatchNames:[...e.crossLanguageDispatchNames]};return JSON.stringify(t)}function Fp(e){try{let t=JSON.parse(e);if(t.version!==Os||t.language==="clojure"&&(t.clojureMembers===void 0||t.callSites.some(n=>n.calleeText===void 0)))return null;let r=new Map(t.identifierLineMap);return{language:t.language,callables:t.callables,callSites:t.callSites,clojureMembers:t.clojureMembers??[],typeContainerMap:new Map(t.typeContainerMap.map(([n,i])=>[n,new Set(i)])),identifierLineMap:r,identifiersByLine:Xn(r),fileIdentifiers:new Set(r.keys()),rustAttrReferencedNames:new Set(t.rustAttrReferencedNames),crossLanguageDispatchNames:new Set(t.crossLanguageDispatchNames)}}catch{return null}}function Op(e,t){let r=[],n=[],i=new Set,o=new Set,s=new Map,a=(l,u)=>{let d=s.get(l);if(!d){s.set(l,[u]);return}d[d.length-1]!==u&&d.push(u)},c=l=>{let u=ws(l,t);u&&r.push(u);let d=Is(l,t);d&&n.push(d),_s(l,t,o),t==="rust"&&(l.type==="attribute_item"||l.type==="inner_attribute_item")&&As(l.text,i),Ps(l,t)&&a(l.text,l.startPosition.row),Cs(l,t)&&Ns(l,a);for(let p of l.children)c(p)};return c(e.rootNode),{language:t,callables:r,callSites:n,clojureMembers:[],typeContainerMap:Ds(e,t),identifierLineMap:s,identifiersByLine:Xn(s),fileIdentifiers:new Set(s.keys()),rustAttrReferencedNames:i,crossLanguageDispatchNames:o}}var Lp=new Set(["rust","typescript","tsx","javascript","python","clojure"]);function Mp(e,t){let r=Ls(e,t);return!r||!Lp.has(r.language)?null:r.callables.map(n=>({name:n.name,startLine:n.startLine,endLine:n.endLine}))}function Ms(e,t){return e.split(t).filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")}var jp=new Set(["identifier","type_identifier","property_identifier","shorthand_property_identifier","field_identifier"]);function _(e){let t=[],r=0,n=0;for(let i=0;i<e.length;i++){let o=e[i];(o==="{"||o==="["||o==="(")&&r++,(o==="}"||o==="]"||o===")")&&r--,o===","&&r===0&&(t.push(e.slice(n,i)),n=i+1)}return t.push(e.slice(n)),t}function O(e,t){for(let r of e.namedChildren)if(r.type===t)return r;return null}function E(e,t){let r=new Set,n=(i,o)=>{let s=o||t.has(i.type);!s&&jp.has(i.type)&&r.add(i.text);for(let a of i.children)n(a,s)};return n(e.rootNode,!1),r}function V(e,t,r,n,i,o,s){return{importedName:i,localName:o,sourcePath:s??I(e,n,Bn(t)),kind:"named",used:N(r,o),usedMembers:[]}}function x(e,t,r,n,i="named",o={}){return{importedName:e,localName:t,sourcePath:r,kind:i,used:n.has(t),usedMembers:[],isTypeOnly:o.isTypeOnly}}function te(e,t,r,n,i="named",o=[],s={}){return{importedName:e,localName:t,sourcePath:r,kind:i,used:n,usedMembers:o,isTypeOnly:s.isTypeOnly}}function De(e,t){return{importedName:e,localName:null,sourcePath:t,kind:"side-effect",used:!0,usedMembers:[]}}function Fe(e,t,r={}){return{importedName:e,localName:r.localName??null,sourcePath:t,kind:"namespace",used:r.used??!0,usedMembers:r.usedMembers??[],isTypeOnly:r.isTypeOnly}}function $(e,t,r){let n=[];for(let i of e.matchAll(t)){let o=i[0];if(!o||typeof i.index!="number")continue;let s=he(e,i.index,i.index+o.length);for(let a of r(i,s))n.push(a)}return n}function B(e,t,r,n){let i=J(e,t);if(i){let o=r(i);if(o)return o}return n()}function xr(e,t,r,n){let i=J(e,t),o=Ne(t),s=o?r[o]:void 0;return i&&s?s(i):n()}function Gs(e,t,r){return B(e,t,n=>$p(e,t,n),()=>Gp(e,t,r))}function Gp(e,t,r){return $(r,/^[ \t]*#include\s+[<"]([^">]+)[">]\s*$/gm,(n,i)=>{let o=n[1]?.trim();if(!o)return[];let s=js(o).replace(/\.[^.]+$/,"");return[te(o,s,dr(e,t,o),N(i,s))]})}function $p(e,t,r){let n=E(r,new Set(["preproc_include"])),i=[];for(let o of r.rootNode.descendantsOfType("preproc_include")){let s=null;for(let c of o.namedChildren){if(c.type==="system_lib_string"){s=c.text.replace(/^<|>$/g,"");break}if(c.type==="string_literal"){s=c.namedChildren.find(u=>u.type==="string_content")?.text??c.text.replace(/^"|"$/g,"");break}}if(!s)continue;let a=js(s).replace(/\.[^.]+$/,"");i.push(x(s,a,dr(e,t,s),n))}return i}var Bp=new Set([":require",":require-macros",":use"]),ri=String.raw`A-Za-z0-9_$*+!?.<>=-`;function Bs(e,t,r){let n=Qp(r);if(!n)return[];let i=Yp(r,n.start,n.end),o=[];for(let s of n.children.slice(2)){if(s.type!=="list"||s.children.length===0)continue;let a=q(s.children[0]);if(a){if(Bp.has(a)){for(let c of Vp(s.children.slice(1)))o.push(...Wp(e,c,i));continue}if(a===":import")for(let c of Hp(s.children.slice(1)))o.push(c)}}return o}function qp(e){return e.type==="list"&&q(e.children[0])==="ns"}function Wp(e,t,r){let n=qn(e,t.namespace),i=t.alias??t.namespace,o=Jp(r,i),s=[{importedName:t.namespace,localName:i,sourcePath:n,kind:"namespace",used:t.refers.length>0||t.referAll||o.length>0||Xp(r,t.namespace),usedMembers:o}];t.referAll&&s.push({importedName:"*",localName:null,sourcePath:n,kind:"side-effect",used:!0,usedMembers:[]});for(let a of t.refers)s.push({importedName:a,localName:a,sourcePath:n,kind:"named",used:Kp(r,a),usedMembers:[]});return s}function Vp(e){return e.flatMap(t=>Ir(t,null))}function Ir(e,t){if(e.type==="atom")return e.text.startsWith(":")?[]:[{namespace:ti(t,e.text),alias:null,refers:[],referAll:!1}];if(e.type==="vector")return e.children.length>0&&q(e.children[0])===null?e.children.flatMap(r=>Ir(r,t)):Up(e,t);if(e.type==="list"&&e.children.length>0){let r=q(e.children[0]);return r?!r||r.startsWith(":")?[]:e.children.slice(1).flatMap(n=>Ir(n,ti(t,r))):e.children.flatMap(n=>Ir(n,t))}return[]}function Up(e,t){let r=q(e.children[0]);if(!r||r.startsWith(":"))return[];let n={namespace:ti(t,r),alias:null,refers:[],referAll:!1};for(let i=1;i<e.children.length;i+=1){let o=q(e.children[i]);if(!o?.startsWith(":"))continue;let s=e.children[i+1];if((o===":as"||o===":as-alias")&&s){n.alias=q(s),i+=1;continue}o===":refer"&&s&&(q(s)===":all"?n.referAll=!0:(s.type==="vector"||s.type==="list")&&n.refers.push(...s.children.map(q).filter(zp)),i+=1)}return[n]}function Hp(e){let t=[];for(let r of e){if(r.type==="atom"){let i=r.text.split(".").pop()??r.text;t.push(te(i,i,null,!0));continue}if(r.type!=="vector")continue;let n=q(r.children[0]);if(n)for(let i of r.children.slice(1)){let o=q(i);o&&t.push(te(`${n}.${o}`,o,null,!0))}}return t}function ti(e,t){return e?`${e}.${t}`:t}function q(e){return e?.type==="atom"?e.text:null}function zp(e){return!!(e&&!e.startsWith(":"))}function Jp(e,t){let r=new Set,n=new RegExp(`${ni()}${Ce(t)}\\s*/\\s*([${ri}]+)`,"g");for(let i of e.matchAll(n)){let o=i[1];o&&r.add(o)}return[...r]}function Xp(e,t){return new RegExp(`${ni()}${Ce(t)}\\s*/`,"m").test(e)}function Kp(e,t){return new RegExp(`${ni()}${Ce(t)}(?![${ri}])`,"m").test(e)}function ni(){return`(?<![${ri}])`}function Yp(e,t,r){let n="",i=0;for(;i<e.length;){if(i>=t&&i<r){n+=e[i]===`
|
|
140
|
+
`?`
|
|
141
|
+
`:" ",i+=1;continue}let o=e[i];if(o===";"){let s=br(e,i);n+=$s(e.slice(i,s)),i=s;continue}if(o==='"'){let s=wt(e,i,0).index;n+=$s(e.slice(i,s)),i=s;continue}n+=o,i+=1}return n}function Qp(e){let t=0;for(;t<e.length&&(t=ii(e,t),!(t>=e.length));){let r=Er(e,t);if(!r){t+=1;continue}if(qp(r.form))return r.form;t=r.index}return null}function Er(e,t){let r=ii(e,t);if(e.startsWith("#?@",r)||e.startsWith("#?",r))return Zp(e,r);if(e.startsWith("#_",r)){let i=Er(e,r+2);return i?{form:{type:"atom",text:"",start:r,end:i.index},index:i.index}:null}for(;Yn(e[r]);)r+=1;let n=e[r];return n?n==="("?ei(e,r,"list",")"):n==="["?ei(e,r,"vector","]"):n==="{"?ei(e,r,"map","}"):n==='"'?{form:{type:"atom",text:"",start:r,end:wt(e,r,0).index},index:wt(e,r,0).index}:tf(e,r):null}function Zp(e,t){let r=e.startsWith("#?@",t)?3:2,n=Er(e,t+r);return n?{form:{type:"list",children:n.form.type==="list"||n.form.type==="vector"||n.form.type==="map"?ef(n.form.children):[],start:t,end:n.index},index:n.index}:null}function ef(e){let t=[];for(let r=0;r<e.length;r+=2){let n=q(e[r]),i=e[r+1];n?.startsWith(":")&&i&&t.push(i)}return t}function ei(e,t,r,n){let i=[],o=t+1;for(;o<e.length;){if(o=ii(e,o),e[o]===n)return{form:{type:r,children:i,start:t,end:o+1},index:o+1};let s=Er(e,o);if(!s){o+=1;continue}s.form.type==="atom"&&s.form.text===""||i.push(s.form),o=s.index}return{form:{type:r,children:i,start:t,end:e.length},index:e.length}}function tf(e,t){let r=t;for(;r<e.length&&!Qn(e[r]);)r+=1;return{form:{type:"atom",text:e.slice(t,r),start:t,end:r},index:r}}function ii(e,t){let r=t;for(;r<e.length;){let n=e[r];if(/\s|,/.test(n)){r+=1;continue}if(n===";"){r=br(e,r);continue}break}return r}function $s(e){return e.replace(/[^\r\n]/g," ")}function qs(e,t,r){let n=[];for(let i of r.matchAll(/^[ \t]*import\s+['"]([^'"]+)['"](?:\s+as\s+([A-Za-z_]\w*))?[\s\S]*?;$/gm)){let o=i[1]?.trim(),s=i[2]?.trim()??null,a=i[0];if(!o||!a||typeof i.index!="number")continue;let c=he(r,i.index,i.index+a.length);n.push({importedName:o,localName:s,sourcePath:pr(e,t,o),kind:s?"namespace":"side-effect",used:s?N(c,s):!0,usedMembers:s?Xe(c,s):[]})}return n}function Ws(e,t,r){let n=[];for(let i of r.matchAll(/^[ \t]*export\s+['"]([^'"]+)['"][\s\S]*?;$/gm)){let o=i[1]?.trim();o&&n.push({specifier:o,sourcePath:pr(e,t,o)})}return n}function Vs(e,t,r){return xr(e,t,{csharp:n=>nf(e,t,n),vb:n=>rf(e,t,n)},()=>{let n=ds(t)?/^[ \t]*Imports\s+(.+?)\s*$/gm:/^[ \t]*using\s+(.+?)\s*;$/gm;return $(r,n,(i,o)=>{let s=i[1]?.trim();if(!s)return[];let[a,c]=s.split(/\s*=\s*/),l=!!c,u=(l?c:a)?.trim()??s,d=u.split(".").pop()??u,p=l?a?.trim()??d:d;return[V(e,t,o,u,d,p,I(e,u,me))]})})}function rf(e,t,r){let n=E(r,new Set(["imports_statement"])),i=[];for(let o of r.rootNode.descendantsOfType("imports_statement")){let s=o.namedChildren.filter(p=>p.type==="namespace_name");if(s.length===0)continue;let a=s[s.length-1],c=s.length>1?s[0]:null,l=a.text,u=l.split(".").pop()??l,d=c?.text??u;i.push(x(u,d,I(e,l,me),n,c?"namespace":"named"))}return i}function nf(e,t,r){let n=E(r,new Set(["using_directive"])),i=[];for(let o of r.rootNode.descendantsOfType("using_directive")){let s=o.namedChildren;if(s.length===0)continue;let a=null,c;s.length>=2&&s[0].type==="identifier"&&(s[1].type==="qualified_name"||s[1].type==="identifier")?(a=s[0],c=s[1]):c=s[s.length-1];let l=c.text,u=l.split(".").pop()??l,d=a?.text??u;i.push(x(u,d,I(e,l,me),n,a?"namespace":"named"))}return i}var of=R("vue-non-script-identifiers",{clearGroups:["whole-project","source-file"]});function Us(e,t){return of.get(e,t,()=>{let r=new Set,n=F(e,t);if(!n)return r;let o=n.replace(/<script\b[^>]*>[\s\S]*?<\/script>/g,s=>s.replace(/[^\r\n]/g," ")).replace(/<!--[\s\S]*?-->/g,s=>s.replace(/[^\r\n]/g," ")).replace(/\/\*[\s\S]*?\*\//g,s=>s.replace(/[^\r\n]/g," "));for(let s of o.matchAll(/[A-Za-z_$][\w$]*/g))r.add(s[0]);return r})}function oi(e,t,r){return B(e,t,n=>af(e,t,n),()=>sf(e,t,r))}function sf(e,t,r){return Sf(r).flatMap(n=>bf(e,t,n.clause,n.specifier,n.start,n.end,r))}function af(e,t,r){let n=cf(e,t,r),i=[];for(let o of r.rootNode.descendantsOfType("import_statement"))i.push(...lf(e,t,r,o,n));return i}function cf(e,t,r){let n=E(r,new Set(["import_statement"]));if(_e(t))for(let i of Us(e,t))n.add(i);return n}function lf(e,t,r,n,i){let o=mf(n);if(!o)return[];let s=ge(e,t,o),a=O(n,"import_clause");return a?uf(r,a,s,i,gf(n.text)):[De("*",s)]}function uf(e,t,r,n,i){let o=[];for(let s of t.namedChildren)if(s.type==="identifier")o.push(df(s.text,r,n,i));else if(s.type==="namespace_import"){let a=pf(e,s,r,n,i);a&&o.push(a)}else s.type==="named_imports"&&o.push(...ff(s,r,n,i));return o}function df(e,t,r,n){return x("default",e,t,r,"default",{isTypeOnly:n})}function pf(e,t,r,n,i){let s=O(t,"identifier")?.text??"";if(!s)return null;let a=hf(e,s);return Fe("*",r,{localName:s,usedMembers:a,isTypeOnly:i,used:a.length>0||n.has(s)})}function ff(e,t,r,n){let i=[];for(let o of e.namedChildren){if(o.type!=="import_specifier")continue;let s=o.namedChild(0),a=o.namedChild(1);if(!s)continue;let c=s.text,l=a?.text??c;i.push(x(c,l,t,r,"named",{isTypeOnly:n||yf(o.text)}))}return i}function mf(e){let t=O(e,"string");if(!t)return null;let r=O(t,"string_fragment");return r?r.text:null}function gf(e){return/^\s*import\s+type\b/.test(e)}function yf(e){return/^\s*type\b/.test(e.trim())}function hf(e,t){let r=new Set;for(let n of e.rootNode.descendantsOfType("member_expression")){let i=n.namedChild(0),o=n.namedChild(1);!i||!o||i.type!=="identifier"||i.text!==t||(o.type==="property_identifier"||o.type==="identifier")&&r.add(o.text)}return[...r]}function Sf(e){let t=[],r=/^[ \t]*import\s+([\s\S]*?)\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let i of e.matchAll(r)){let o=i[0],s=i[1],a=i[2];!o||!a||typeof i.index!="number"||t.push({clause:s,specifier:a,start:i.index,end:i.index+o.length})}let n=/^[ \t]*import\s+['"]([^'"]+)['"]\s*;?/gm;for(let i of e.matchAll(n)){let o=i[0],s=i[1];!o||!s||typeof i.index!="number"||t.push({clause:null,specifier:s,start:i.index,end:i.index+o.length})}return t.sort((i,o)=>i.start-o.start)}function bf(e,t,r,n,i,o,s){let a=ge(e,t,n),c=he(s,i,o);return r?xf(r).map(u=>({...u,sourcePath:a})).map(u=>{if(u.kind==="namespace"){let d=Xe(c,u.localName);return Fe(u.importedName,u.sourcePath,{localName:u.localName,usedMembers:d,used:d.length>0||N(c,u.localName),isTypeOnly:u.isTypeOnly})}return u.kind==="side-effect"?De(u.importedName,u.sourcePath):te(u.importedName,u.localName??"",u.sourcePath,u.localName?N(c,u.localName):!1,u.kind,[],{isTypeOnly:u.isTypeOnly})}):[De("*",a)]}function xf(e){let t=e.trim(),r=/^type\b/.test(t),n=t.replace(/^type\s+/,""),[i,o]=If(n),s=[];return i&&s.push(...Hs(i,r)),o&&s.push(...Hs(o,r)),s}function Hs(e,t){let r=e.trim();if(!r)return[];if(r.startsWith("{")){let n=r.slice(1,-1).trim();return n?_(n).map(i=>{let o=i.trim(),s=t||/^type\b/.test(o),a=o.replace(/^type\s+/,""),[c,l]=a.split(/\s+as\s+/);return{importedName:c.trim(),localName:(l??c).trim(),kind:"named",isTypeOnly:s}}):[]}return r.startsWith("* as ")?[{importedName:"*",localName:r.slice(5).trim(),kind:"namespace",isTypeOnly:t}]:[{importedName:"default",localName:r,kind:"default",isTypeOnly:t}]}function If(e){let t=0;for(let r=0;r<e.length;r++){let n=e[r];if(n==="{"&&t++,n==="}"&&t--,n===","&&t===0)return[e.slice(0,r).trim(),e.slice(r+1).trim()]}return[e.trim(),null]}function si(e,t,r){let n=J(e,t);return n?kf(e,t,n):Ef(e,t,r)}function Ef(e,t,r){return[...vf(e,t,r),...Rf(e,t,r),...Tf(e,t,r)]}function vf(e,t,r){let n=[],i=/^[ \t]*export\s+(?:type\s+)?\{([\s\S]*?)\}\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let o of r.matchAll(i)){if(typeof o.index!="number")continue;let s=o[1]??"",a=o[2]??"",c=_(s).map(d=>wf(d.trim())).filter(d=>!!d),l=Ke(r,o.index),u=Ke(r,o.index+o[0].length-1);n.push({kind:"named",sourcePath:ge(e,t,a),names:c,startLine:l,endLine:u})}return n}function Rf(e,t,r){let n=[],i=/^[ \t]*export\s+\*\s+as\s+(\w+)\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let o of r.matchAll(i)){if(typeof o.index!="number")continue;let s=o[2]??"",a=Ke(r,o.index),c=Ke(r,o.index+o[0].length-1);n.push({kind:"star-as",sourcePath:ge(e,t,s),names:[],startLine:a,endLine:c})}return n}function Tf(e,t,r){let n=[],i=/^[ \t]*export\s+\*\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let o of r.matchAll(i)){if(typeof o.index!="number")continue;let s=o[1]??"",a=Ke(r,o.index),c=Ke(r,o.index+o[0].length-1);n.push({kind:"star",sourcePath:ge(e,t,s),names:[],startLine:a,endLine:c})}return n}function wf(e){if(!e)return null;let t=e.replace(/^type\s+/,"").trim();if(!t)return null;let r=t.match(/^(\w+)\s+as\s+(\w+)$/);if(r)return r[2]??null;let n=t.match(/^(\w+)$/);return n?n[1]??null:null}function Ke(e,t){let r=0;for(let n=0;n<t&&n<e.length;n++)e.charCodeAt(n)===10&&r++;return r}function kf(e,t,r){let n=[];for(let i of r.rootNode.descendantsOfType("export_statement")){let o=Pf(e,t,i);if(o===void 0)continue;let s=i.startPosition.row,a=i.endPosition.row,c=Cf(i,o,s,a);n.push(c)}return n}function Pf(e,t,r){let n=O(r,"string");if(!n)return;let i=O(n,"string_fragment");if(i)return ge(e,t,i.text)}function Cf(e,t,r,n){let i=O(e,"export_clause");if(i){let s=[];for(let a of i.namedChildren){if(a.type!=="export_specifier")continue;let c=a.namedChild(0),l=a.namedChild(1);c&&s.push((l??c).text)}return{kind:"named",sourcePath:t,names:s,startLine:r,endLine:n}}return O(e,"namespace_export")?{kind:"star-as",sourcePath:t,names:[],startLine:r,endLine:n}:{kind:"star",sourcePath:t,names:[],startLine:r,endLine:n}}function zs(e,t,r){return xr(e,t,{java:n=>Nf(e,t,n),kotlin:n=>_f(e,t,n),scala:n=>Af(e,t,n)},()=>$(r,/^[ \t]*import\s+(?:static\s+)?(.+?)\s*;?$/gm,(n,i)=>{let o=n[1]?.trim();return o?Df(e,t,o,i):[]}))}function Nf(e,t,r){let n=E(r,new Set(["import_declaration"])),i=[];for(let o of r.rootNode.descendantsOfType("import_declaration")){let s=o.children.some(d=>d.type==="asterisk"),c=o.namedChildren.find(d=>d.type==="scoped_identifier")??o.namedChildren.find(d=>d.type==="identifier");if(!c)continue;let l=c.text;if(s){i.push(Fe("*",I(e,l,D)));continue}let u=l.split(".").pop()??l;i.push(x(u,u,I(e,l,D),n))}return i}function _f(e,t,r){let n=E(r,new Set(["import_header","import_list"])),i=[];for(let o of r.rootNode.descendantsOfType("import_header")){let s=o.namedChildren.find(m=>m.type==="identifier");if(!s)continue;let a=o.namedChildren.some(m=>m.type==="wildcard_import"),c=o.namedChildren.find(m=>m.type==="import_alias");if(a){i.push(Fe("*",I(e,s.text,D)));continue}let l=s.text,u=l.split(".").pop()??l,p=c?.namedChild(0)?.text??u;i.push(x(u,p,I(e,l,D),n))}return i}function Af(e,t,r){let n=E(r,new Set(["import_declaration"])),i=[];for(let o of r.rootNode.descendantsOfType("import_declaration")){let s=o.namedChildren.find(d=>d.type==="namespace_selectors"||d.type==="namespace_wildcard"),a=o.namedChildren.filter(d=>d!==s&&(d.type==="identifier"||d.type==="stable_identifier")),c=a.map(d=>d.text).join(".");if(!c)continue;if(s?.type==="namespace_wildcard"){i.push(Fe("*",I(e,c,D)));continue}if(s?.type==="namespace_selectors"){for(let d of s.namedChildren)if(d.type==="arrow_renamed_identifier"){let[p,m]=d.namedChildren;if(!p)continue;let y=p.text,re=m?.text??y;if(y==="_")continue;i.push(x(y,re,I(e,`${c}.${y}`,D),n))}else if(d.type==="identifier"){let p=d.text;i.push(x(p,p,I(e,`${c}.${p}`,D),n))}continue}let l=a[a.length-1]?.text??c,u=a.slice(0,-1).map(d=>d.text).join(".")||c;i.push(x(l,l,I(e,u&&a.length>1?`${u}.${l}`:c,D),n))}return i}function Df(e,t,r,n){if(r.includes("{")&&r.includes("}")){let i=r.slice(0,r.indexOf("{")).replace(/\.$/,"").trim(),o=r.slice(r.indexOf("{")+1,r.lastIndexOf("}")).trim();return _(o).flatMap(s=>{let a=s.trim();if(!a)return[];let[c,l]=a.includes("=>")?a.split(/\s*=>\s*/):a.split(/\s+as\s+/),u=c?.trim();if(!u||u==="_")return[];let d=(l??u.split(".").pop()??u).trim(),p=u==="_"?i:`${i}.${u}`.replace(/\.\./g,".");return[V(e,t,n,p,u,d)]})}return[V(e,t,n,r,r.split(".").pop()??r,r.split(".").pop()??r)]}function Xs(e,t,r){return B(e,t,n=>Ff(e,t,n),()=>$(r,/^[ \t]*use\s+(.+?)\s*;$/gm,(n,i)=>{let o=n[1]?.trim();return o?_(o).flatMap(s=>{let a=s.trim();if(!a)return[];let[c,l]=a.split(/\s+as\s+/i),u=c?.trim()??a,d=u.split("\\").pop()??u,p=(l??d).trim();return[V(e,t,i,u,d,p,I(e,u.replace(/\\/g,"."),Pe))]}):[]}))}function Ff(e,t,r){let n=E(r,new Set(["namespace_use_declaration"])),i=[],o=(s,a,c)=>{i.push(x(a,c,I(e,s.replace(/\\/g,"."),Pe),n))};for(let s of r.rootNode.descendantsOfType("namespace_use_declaration")){let a=s.namedChildren.find(c=>c.type==="namespace_use_group");if(a){let c=s.namedChildren.find(l=>l.type==="namespace_name")?.text??"";for(let l of a.namedChildren){if(l.type!=="namespace_use_clause")continue;let{importedName:u,localName:d,qualified:p}=Js(l,c);u&&o(p,u,d)}continue}for(let c of s.namedChildren){if(c.type!=="namespace_use_clause")continue;let{importedName:l,localName:u,qualified:d}=Js(c,"");l&&o(d,l,u)}}return i}function Js(e,t){let r=e.namedChildren.find(l=>l.type==="qualified_name"),n=e.namedChildren.filter(l=>l.type==="name"),i="";r?i=r.text:n.length>=1&&(i=n[0].text);let o=r&&n.length>0?n[n.length-1]:null,s=i.split("\\").pop()??i,a=o?.text??s,c=t?`${t}\\${i}`:i;return{importedName:s,localName:a,qualified:c}}function Ys(e,t,r){return B(e,t,n=>Of(e,t,n),()=>Mf(r).flatMap(n=>Gf(e,t,n,r)))}function Of(e,t,r){let n=E(r,new Set(["import_statement","import_from_statement"])),i=[];for(let o of r.rootNode.descendantsOfType("import_statement"))for(let s of o.namedChildren){let a=Ks(s);if(!a)continue;let c=Je(e,t,a.qualifiedName);i.push({importedName:a.qualifiedName,localName:a.localName,sourcePath:c,kind:"namespace",used:n.has(a.localName),usedMembers:[]})}for(let o of r.rootNode.descendantsOfType("import_from_statement")){let s=o.namedChild(0);if(!s)continue;let a=Lf(s);if(a===null)continue;let c=Je(e,t,a);for(let l=1;l<o.namedChildCount;l+=1){let u=o.namedChild(l);if(u.type==="wildcard_import"){i.push({importedName:"*",localName:null,sourcePath:c,kind:"side-effect",used:!0,usedMembers:[]});continue}let d=Ks(u);d&&i.push({importedName:d.qualifiedName,localName:d.localName,sourcePath:c,kind:"named",used:n.has(d.localName),usedMembers:[]})}}return i}function Ks(e){if(e.type==="aliased_import"){let t=e.namedChild(0),r=e.namedChild(1);return!t||!r?null:{qualifiedName:t.text,localName:r.text}}if(e.type==="dotted_name"){let t=e.text;return{qualifiedName:t,localName:t.split(".")[0]??t}}return e.type==="identifier"?{qualifiedName:e.text,localName:e.text}:null}function Lf(e){if(e.type==="dotted_name")return e.text;if(e.type==="relative_import"){let t=O(e,"import_prefix")?.text??"",r=O(e,"dotted_name")?.text??"";return`${t}${r}`}return null}function Mf(e){let t=e.split(`
|
|
142
|
+
`),r=[],n=0;for(let i=0;i<t.length;i++){let o=t[i],s=o.trimStart(),a=n;if(n+=o.length+1,!s.startsWith("import ")&&!s.startsWith("from "))continue;let c=o,l=a+o.length,u=Hn(o);for(;i+1<t.length&&(u>0||c.trimEnd().endsWith("\\"));){i++;let p=t[i];c+=`
|
|
143
|
+
${p}`,l+=1+p.length,u+=Hn(p),n+=p.length+1}let d=jf(c);d&&r.push({...d,start:a,end:l})}return r}function jf(e){let t=e.replace(/\\\s*\n/g," ").trim();if(t.startsWith("import "))return{kind:"import",module:null,clause:t.slice(7).trim()};let r=t.match(/^from\s+([.\w]+)\s+import\s+([\s\S]+)$/);if(!r)return null;let n=r[2].trim();return n.startsWith("(")&&n.endsWith(")")&&(n=n.slice(1,-1).trim()),{kind:"from",module:r[1],clause:n}}function Gf(e,t,r,n){let i=he(n,r.start,r.end),o=r.clause.replace(/\n/g," ").trim();if(r.kind==="import")return _(o).flatMap(c=>{let l=c.trim().replace(/,$/,"");if(!l)return[];let[u,d]=l.split(/\s+as\s+/),p=u.trim(),m=(d??p.split(".")[0]??p).trim(),y=Je(e,t,p),re=Xe(i,m);return[{importedName:p,localName:m,sourcePath:y,kind:"namespace",used:N(i,m)||re.length>0,usedMembers:re}]});let s=r.module?Je(e,t,r.module):null,a=[];for(let c of _(o)){let l=c.trim().replace(/,$/,"");if(!l)continue;if(l==="*"){a.push({importedName:"*",localName:null,sourcePath:s,kind:"side-effect",used:!0,usedMembers:[]});continue}let[u,d]=l.split(/\s+as\s+/),p=(d??u).trim();a.push({importedName:u.trim(),localName:p,sourcePath:s,kind:"named",used:N(i,p),usedMembers:[]})}return a}import{basename as $f}from"path";function Qs(e,t,r){return B(e,t,n=>qf(e,t,n),()=>Bf(e,t,r))}function Bf(e,t,r){return $(r,/^[ \t]*(require_relative|require)\s+["']([^"']+)["']\s*$/gm,(n,i)=>{let o=n[1],s=n[2];if(!o||!s)return[];let a=o==="require_relative"?ur(e,t,s):null;if(a){let c=Zs(s);return[te(c,c,a,N(i,c))]}return[De(s,a)]})}function qf(e,t,r){let n=E(r,new Set([])),i=[],o=new Set(["require","require_relative","load"]);for(let s of r.rootNode.descendantsOfType("call")){let a=s.namedChild(0);if(!a||a.type!=="identifier"||!o.has(a.text))continue;let l=s.namedChildren.find(m=>m.type==="argument_list")?.namedChild(0);if(!l||l.type!=="string")continue;let d=l.namedChildren.find(m=>m.type==="string_content")?.text;if(!d)continue;let p=a.text==="require_relative"?ur(e,t,d):null;if(p){let m=Zs(d);i.push(x(m,m,p,n))}else i.push(De(d,p))}return i}function Zs(e){return Ms($f(e).replace(/\.[^.]+$/,""),/_/)}function ea(e,t,r){return B(e,t,n=>Wf(e,t,n),()=>$(r,/^[ \t]*use\s+(.+?)\s*;$/gm,(n,i)=>{let o=n[1]?.trim();return o?Vf(e,t,o,i):[]}))}function Wf(e,t,r){let n=E(r,new Set(["use_declaration"])),i=[];for(let o of r.rootNode.descendantsOfType("use_declaration")){let s=o.namedChild(0);if(s)for(let a of kt(s,"")){if(!a.importedName||a.importedName==="*")continue;let c=Z(e,t,a.qualifiedName)??Z(e,t,a.qualifiedName.split("::").slice(0,-1).join("::"));i.push(x(a.importedName,a.localName,c,n))}}return i}function kt(e,t){switch(e.type){case"identifier":case"super":case"crate":{let r=e.text;return[{qualifiedName:vr(t,r),importedName:r,localName:r}]}case"self":{let r=t.split("::").filter(Boolean).pop()??"self";return[{qualifiedName:t||"self",importedName:r,localName:r}]}case"scoped_identifier":{let r=e.text,n=r.split("::").pop()??r;return[{qualifiedName:vr(t,r),importedName:n,localName:n}]}case"scoped_use_list":{let r=e.namedChild(0),n=e.namedChild(1);if(!r||!n)return[];let i=vr(t,r.text),o=[];for(let s of n.namedChildren)o.push(...kt(s,i));return o}case"use_list":{let r=[];for(let n of e.namedChildren)r.push(...kt(n,t));return r}case"use_as_clause":{let r=e.namedChild(0),n=e.namedChild(1);if(!r||!n)return[];let i=kt(r,t),o=n.text;return i.map(s=>({...s,localName:o}))}case"use_wildcard":{let r=e.namedChild(0),n=r?r.text:"";return[{qualifiedName:vr(t,`${n}::*`),importedName:"*",localName:"*"}]}default:return[]}}function vr(e,t){return e?t?`${e}::${t}`:e:t}function Vf(e,t,r,n){let i=r.trim();if(i.includes("{")&&i.includes("}")){let u=i.slice(0,i.indexOf("{")).replace(/::$/,"").trim(),d=i.slice(i.indexOf("{")+1,i.lastIndexOf("}")).trim();return _(d).flatMap(p=>{let m=p.trim();if(!m)return[];if(m==="self"){let b=u.split("::").filter(Boolean).pop();return b?[V(e,t,n,u,b,b)]:[]}let[y,re]=m.split(/\s+as\s+/),L=y?.trim();if(!L)return[];let Ye=(re??L.split("::").pop()??L).trim(),Oe=`${u}::${L}`.replace(/::::/g,"::");return[V(e,t,n,Oe,L.split("::").pop()??L,Ye,Z(e,t,u))]})}let[o,s]=i.split(/\s+as\s+/),a=o?.trim()??i,c=(s??a.split("::").pop()??a).trim(),l=Z(e,t,a)??Z(e,t,a.split("::").slice(0,-1).join("::"));return[V(e,t,n,a,a.split("::").pop()??a,c,l)]}function ta(e,t,r){let n=J(e,t);if(n)return Uf(e,t,n);let i=[];for(let o of r.matchAll(/^[ \t]*pub\s+use\s+(.+?)\s*;$/gm)){let s=o[1]?.trim();s&&i.push(...zf(e,t,s))}return i}function Uf(e,t,r){let n=[];for(let i of r.rootNode.descendantsOfType("use_declaration")){if(!Hf(i))continue;let o=i.namedChildren.find(s=>s.type!=="visibility_modifier");if(o)for(let s of kt(o,""))s.importedName&&n.push(ai(e,t,s.qualifiedName))}return n}function Hf(e){for(let t of e.children)if(t.type==="visibility_modifier"&&t.text.startsWith("pub"))return!0;return!1}function zf(e,t,r){let n=r.trim();if(n.includes("{")&&n.includes("}")){let i=n.slice(0,n.indexOf("{")).replace(/::$/,"").trim(),o=n.slice(n.indexOf("{")+1,n.lastIndexOf("}")).trim();return _(o).flatMap(s=>{let a=s.trim();if(!a||a==="self")return[];let[c]=a.split(/\s+as\s+/),l=`${i}::${c?.trim()??a}`.replace(/::::/g,"::");return[ai(e,t,l)]})}return[ai(e,t,n)]}function ai(e,t,r){return{specifier:r,sourcePath:Z(e,t,r)??Z(e,t,r.split("::").slice(0,-1).join("::"))}}function Se({language:e,extensions:t,imports:r,parseImports:n}){return{language:e,extensions:t,capabilities:{imports:r},parseImports:n}}function ra(e,t){let r=t.toLowerCase();for(let n of e)for(let i of n.extensions)if(r.endsWith(i))return n;return null}var Jf={language:"javascript",extensions:we,capabilities:{imports:"ast-with-regex-fallback",reExports:"ast-with-regex-fallback"},parseImports:oi,parseReExports:si},Xf=Se({language:"python",extensions:or,imports:"ast-with-regex-fallback",parseImports:Ys}),Kf=Se({language:"jvm",extensions:D,imports:"ast-dispatch-with-regex-fallback",parseImports:zs}),Yf={language:"rust",extensions:sr,capabilities:{imports:"ast-with-regex-fallback",exports:"ast-with-regex-fallback"},parseImports:ea,parseExports:ta},Qf=Se({language:"ruby",extensions:ar,imports:"ast-with-regex-fallback",parseImports:Qs}),Zf=Se({language:"c/cpp",extensions:cr,imports:"ast-with-regex-fallback",parseImports:Gs}),em=Se({language:"dotnet",extensions:me,imports:"ast-dispatch-with-regex-fallback",parseImports:Vs}),tm={language:"dart",extensions:lr,capabilities:{imports:"regex-only",exports:"regex-only"},parseImports:qs,parseExports:Ws},rm=Se({language:"php",extensions:Pe,imports:"ast-with-regex-fallback",parseImports:Xs}),nm=Se({language:"clojure",extensions:ze,imports:"regex-only",parseImports:Bs}),im=[Jf,Xf,Kf,Yf,Qf,Zf,em,tm,rm,nm];function ci(e){return ra(im,e)}var li={clearGroups:["whole-project","source-file"]},om=R("source-imports",li),Ex=R("source-exports",li),sm=R("source-reexports",li),na=bt({kind:"source-imports",invalidation:xt("source-imports"),serialize:am,deserialize:cm}),ia=bt({kind:"source-reexports",invalidation:xt("source-reexports"),serialize:lm,deserialize:um});function vx(e,t){let r=C(t);return sm.get(e,r,()=>{let n=ci(r);if(!n?.parseReExports)return[];let i=F(e,r);if(!i)return[];let o=tt(e,r,i),s=Un(e),a=ia.read(e,r,o);if(a?.resolutionFingerprint===s)return a.reExports;let c=n.parseReExports(e,r,i);return ia.write(e,r,o,{resolutionFingerprint:s,reExports:c}),c})}function Rx(e,t){let r=C(t);return om.get(e,r,()=>{let n=ci(r);if(!n)return[];let i=F(e,r);if(!i)return[];let o=tt(e,r,i),s=Un(e),a=na.read(e,r,o);if(a?.resolutionFingerprint===s)return a.imports;let c=n.parseImports(e,r,i);return na.write(e,r,o,{resolutionFingerprint:s,imports:c}),c})}function am(e){return JSON.stringify(e)}function cm(e){try{let t=JSON.parse(e);return!Zr(t)||typeof t.resolutionFingerprint!="string"||!Array.isArray(t.imports)?null:{resolutionFingerprint:t.resolutionFingerprint,imports:t.imports}}catch{return null}}function lm(e){return JSON.stringify(e)}function um(e){try{let t=JSON.parse(e);return!Zr(t)||typeof t.resolutionFingerprint!="string"||!Array.isArray(t.reExports)?null:{resolutionFingerprint:t.resolutionFingerprint,reExports:t.reExports}}catch{return null}}export{Ci as a,At as b,ie as c,Om as d,La as e,Li as f,xc as g,Ic as h,ig as i,Ot as j,xe as k,ji as l,Wr as m,mg as n,$i as o,Wt as p,tt as q,qi as r,Tg as s,bt as t,bh as u,xt as v,Eh as w,is as x,Zu as y,ge as z,Zr as A,kg as B,F as C,Jh as D,Ce as E,J as F,Np as G,Mp as H,vx as I,Rx as J,$u as K,Rh as L,qu as M,kh as N,Ph as O,Ch as P,_h as Q,Nt as R,Ei as S,Ag as T,Mg as U,Wg as V,Vg as W,va as X,xm as Y,Im as Z,Em as _,vm as $,Pi as aa,Lr as ba,jr as ca,Cm as da,ey as ea,ty as fa,ry as ga,ny as ha,uy as ia,dy as ja,py as ka,fy as la,Co as ma,Ul as na,Iy as oa,bn as pa,Ky as qa,Yy as ra,Qy as sa,ft as ta,Zy as ua,eh as va,th as wa,Su as xa,bu as ya,sh as za,ah as Aa,Ni as Ba,qm as Ca,Wm as Da,Vm as Ea,Km as Fa,Ym as Ga,Qm as Ha,w as Ia,ph as Ja,St as Ka,fh as La};
|
|
144
|
+
//# sourceMappingURL=chunk-UXP636P5.js.map
|