scip-query 0.24.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +247 -1
- package/README.md +111 -124
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-PRVFAGTQ.js +2 -0
- package/dist/call-graph-DVPAQV2F.js +2 -0
- package/dist/{call-graph-evidence-BociKRpF.d.ts → call-graph-evidence-CUtj8V2I.d.ts} +1 -1
- package/dist/chunk-2FSBGL5P.js +2 -0
- package/dist/chunk-2HLAFUCY.js +2 -0
- package/dist/chunk-2IWUT6CJ.js +3 -0
- package/dist/chunk-2KNN7GTQ.js +2 -0
- package/dist/chunk-2LHXRE2B.js +8 -0
- package/dist/{chunk-E65ELFKU.js → chunk-2YXE77TJ.js} +2 -2
- package/dist/chunk-36SGVCGX.js +2 -0
- package/dist/chunk-3ABBFPTP.js +2 -0
- package/dist/chunk-3IVFU4FD.js +3 -0
- package/dist/chunk-3JIQS44J.js +7 -0
- package/dist/chunk-3ZRB6DNK.js +7 -0
- package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
- package/dist/{chunk-BHKK5RJY.js → chunk-4BHGBMNO.js} +2 -2
- package/dist/chunk-4BP3UBDG.js +2 -0
- package/dist/chunk-4D6RO7G4.js +2 -0
- package/dist/chunk-4FEWQ6RH.js +2 -0
- package/dist/chunk-4IGEOBG7.js +2 -0
- package/dist/chunk-4QZXBUKC.js +2 -0
- package/dist/chunk-4WBDEVX2.js +4 -0
- package/dist/chunk-4WCUBZU3.js +8 -0
- package/dist/chunk-4WTUBQ36.js +40 -0
- package/dist/chunk-4XQ4O6IM.js +3 -0
- package/dist/chunk-55UQAMZO.js +4 -0
- package/dist/chunk-5D2LVK7O.js +125 -0
- package/dist/chunk-5IYJ56TT.js +2 -0
- package/dist/chunk-5PLMJC7Q.js +2 -0
- package/dist/chunk-5TNQJUR2.js +5 -0
- package/dist/chunk-62BDNPMI.js +2 -0
- package/dist/chunk-64DZ5TXR.js +7 -0
- package/dist/chunk-65245JCM.js +2 -0
- package/dist/chunk-6FFVZZL4.js +2 -0
- package/dist/chunk-6KO5JHAR.js +2 -0
- package/dist/chunk-6LRXOOSX.js +2 -0
- package/dist/chunk-6LSEIIF7.js +2 -0
- package/dist/chunk-6YMNWD3H.js +6 -0
- package/dist/chunk-72AD6ZRR.js +5 -0
- package/dist/chunk-73AAKPUC.js +4 -0
- package/dist/chunk-76CZ77DF.js +2 -0
- package/dist/chunk-7VPEEAAG.js +2 -0
- package/dist/chunk-7WTPQ4NX.js +14 -0
- package/dist/chunk-7Y5T6XDP.js +2 -0
- package/dist/chunk-A2IIGFMJ.js +5 -0
- package/dist/chunk-AB5KCTEV.js +2 -0
- package/dist/chunk-AC566WBP.js +6 -0
- package/dist/chunk-AGWFSTXC.js +3 -0
- package/dist/chunk-AOSIYPTA.js +2 -0
- package/dist/chunk-AUVEWPIF.js +2 -0
- package/dist/chunk-B56T42J3.js +25 -0
- package/dist/chunk-BIQEF5NE.js +2 -0
- package/dist/chunk-BL6XJKTA.js +3 -0
- package/dist/chunk-BMKOQJRI.js +2 -0
- package/dist/chunk-BOZ4EXBB.js +3 -0
- package/dist/chunk-BUTWYEPH.js +2 -0
- package/dist/chunk-BZB4QPIP.js +2 -0
- package/dist/{chunk-6ILKOOGH.js → chunk-CE357GEE.js} +4 -4
- package/dist/chunk-CFN45HFP.js +2 -0
- package/dist/chunk-CFYMZFXT.js +368 -0
- package/dist/chunk-CN5EH7O3.js +2 -0
- package/dist/chunk-D254DNNQ.js +4 -0
- package/dist/chunk-D3FDISIC.js +2 -0
- package/dist/chunk-D3NX5XIE.js +3 -0
- package/dist/chunk-DA7RPPDF.js +3 -0
- package/dist/chunk-DDMC3FON.js +3 -0
- package/dist/chunk-DIO3FUSG.js +2 -0
- package/dist/chunk-DJ2NNSUK.js +3 -0
- package/dist/chunk-DKYQIM3C.js +18 -0
- package/dist/{chunk-OHIV323X.js → chunk-DOOEL2IV.js} +2 -2
- package/dist/chunk-DVFP6PZI.js +2 -0
- package/dist/chunk-E3FDPXZK.js +2 -0
- package/dist/chunk-E7YNJLCB.js +2 -0
- package/dist/chunk-EFGW5JPH.js +2 -0
- package/dist/chunk-EJVTR244.js +13 -0
- package/dist/chunk-EOV7RTRZ.js +2 -0
- package/dist/chunk-ETOIKRHO.js +2 -0
- package/dist/chunk-EYK3ZAO2.js +3 -0
- package/dist/chunk-F2V2LPET.js +52 -0
- package/dist/chunk-F4LUHJTF.js +2 -0
- package/dist/chunk-F4PUT6IT.js +2 -0
- package/dist/chunk-F56GCXXS.js +5 -0
- package/dist/chunk-FC2EVQRM.js +2 -0
- package/dist/chunk-FL7NBMHP.js +3 -0
- package/dist/chunk-FMRN2TRL.js +3 -0
- package/dist/chunk-FVULPZDF.js +20 -0
- package/dist/chunk-GCKCF5FL.js +43 -0
- package/dist/chunk-GH2PYF46.js +2 -0
- package/dist/chunk-GHJAGXIP.js +2 -0
- package/dist/{chunk-2GJSD5GY.js → chunk-GMVSHUKZ.js} +2 -2
- package/dist/chunk-GS6KDO4R.js +2 -0
- package/dist/chunk-GUUBXNN7.js +2 -0
- package/dist/chunk-GVWX5T43.js +80 -0
- package/dist/chunk-GZKFETP5.js +2 -0
- package/dist/chunk-H4EQHO6J.js +9 -0
- package/dist/chunk-H73WY2RM.js +2 -0
- package/dist/chunk-H75GSPRV.js +60 -0
- package/dist/chunk-HDR3AHSV.js +61 -0
- package/dist/chunk-HQBSL74Y.js +2 -0
- package/dist/chunk-HRRFKWPZ.js +2 -0
- package/dist/chunk-HXENDJC6.js +2 -0
- package/dist/chunk-IIBAZNSW.js +21 -0
- package/dist/chunk-INLMWEUU.js +12 -0
- package/dist/chunk-IWQPAF4F.js +2 -0
- package/dist/chunk-IZJ6YUKP.js +35 -0
- package/dist/chunk-J2TMAIN5.js +60 -0
- package/dist/chunk-J5FJMODQ.js +142 -0
- package/dist/chunk-J7HZPIO3.js +2 -0
- package/dist/chunk-JEVRKFRL.js +2 -0
- package/dist/chunk-JFXSGAEB.js +30 -0
- package/dist/chunk-JVRTHGFS.js +3 -0
- package/dist/chunk-JYWEX7RR.js +360 -0
- package/dist/chunk-K3YL22N6.js +2 -0
- package/dist/chunk-K4CN7GXK.js +12 -0
- package/dist/chunk-K5TBVXU4.js +30 -0
- package/dist/chunk-KDDIE2DP.js +9 -0
- package/dist/chunk-KHWRRPV4.js +2 -0
- package/dist/chunk-KI6NBKDY.js +14 -0
- package/dist/chunk-KU3QRSTH.js +2 -0
- package/dist/chunk-KZBJWZJB.js +2 -0
- package/dist/chunk-L7GFM3NP.js +3 -0
- package/dist/chunk-LMO6PK3V.js +35 -0
- package/dist/chunk-LN4YXJJU.js +2 -0
- package/dist/chunk-LOVIZBJ4.js +43 -0
- package/dist/chunk-LPCRK4A2.js +11 -0
- package/dist/chunk-MMHZKBFA.js +2 -0
- package/dist/{chunk-A4WEAK35.js → chunk-MOQQBQRD.js} +2 -2
- package/dist/chunk-N2WN6I3L.js +2 -0
- package/dist/chunk-N3ORQT7L.js +2 -0
- package/dist/chunk-NAZ3RAIW.js +2 -0
- package/dist/chunk-NDUNO5JQ.js +2 -0
- package/dist/chunk-NEIWRNAZ.js +4 -0
- package/dist/chunk-NJJMVD65.js +2 -0
- package/dist/chunk-NLOQOBXI.js +20 -0
- package/dist/chunk-NOLZOVCU.js +2 -0
- package/dist/chunk-NOWINRRN.js +2 -0
- package/dist/chunk-NZAXKGRL.js +16 -0
- package/dist/chunk-O2C4UILI.js +2 -0
- package/dist/chunk-O3RHA6ZT.js +3 -0
- package/dist/chunk-O4UZSPPI.js +3 -0
- package/dist/chunk-OGFV2BUX.js +2 -0
- package/dist/chunk-OZCJXZK6.js +499 -0
- package/dist/chunk-P6ODM7BY.js +2 -0
- package/dist/{chunk-GHNPACNP.js → chunk-PAVGPRHJ.js} +2 -2
- package/dist/chunk-PH52RA7D.js +2 -0
- package/dist/chunk-PKN354TH.js +3 -0
- package/dist/chunk-PWOASWEG.js +11 -0
- package/dist/chunk-QIWXRW72.js +2 -0
- package/dist/chunk-QJRMOK5N.js +2 -0
- package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
- package/dist/chunk-QXEUDXBT.js +3 -0
- package/dist/chunk-QYUVVBMR.js +6 -0
- package/dist/chunk-QZ7KQZRN.js +2 -0
- package/dist/chunk-R6LQBUDH.js +2 -0
- package/dist/chunk-RBS42E55.js +20 -0
- package/dist/chunk-RSJKPCFX.js +26 -0
- package/dist/chunk-S6CZA3MV.js +2 -0
- package/dist/chunk-STMVAHJP.js +2 -0
- package/dist/chunk-SYVPTTVW.js +2 -0
- package/dist/chunk-T6DK3ZP7.js +2 -0
- package/dist/chunk-TKD34PHN.js +4 -0
- package/dist/chunk-TNNQFH7W.js +2 -0
- package/dist/chunk-TNV7SSUF.js +2 -0
- package/dist/chunk-TO7ZR3EH.js +8 -0
- package/dist/chunk-TOU3CHK4.js +2 -0
- package/dist/chunk-TRBI4UKT.js +2 -0
- package/dist/chunk-TZCVNCAN.js +4 -0
- package/dist/chunk-U4LZA5LL.js +3 -0
- package/dist/chunk-U5RIG3JP.js +3 -0
- package/dist/chunk-UP5KXN2I.js +2 -0
- package/dist/chunk-UQFR3NDH.js +5 -0
- package/dist/chunk-UXYXF7GV.js +2 -0
- package/dist/chunk-VB3GOKOS.js +2 -0
- package/dist/{chunk-4FR6GQIT.js → chunk-VF5JZICY.js} +2 -2
- package/dist/chunk-VTY3VK6E.js +2 -0
- package/dist/chunk-VX2O4RIS.js +2 -0
- package/dist/chunk-WKPV2TDZ.js +2 -0
- package/dist/chunk-WOFQ5DTB.js +2 -0
- package/dist/chunk-WS4C6TCK.js +2 -0
- package/dist/chunk-WXU3DGPU.js +2 -0
- package/dist/{chunk-ATXPTSEI.js → chunk-X6RMKHJQ.js} +7 -7
- package/dist/{chunk-44IETFOU.js → chunk-XHMN6ZX7.js} +2 -2
- package/dist/chunk-XHTVFLWW.js +2 -0
- package/dist/chunk-XKIDJCIK.js +2 -0
- package/dist/chunk-XTYTYZPT.js +2 -0
- package/dist/chunk-Y2JHHTTA.js +2 -0
- package/dist/chunk-YGVRMGYN.js +4 -0
- package/dist/chunk-YNQCGEQE.js +2 -0
- package/dist/chunk-YOQVEXVE.js +14 -0
- package/dist/chunk-YRT2WLYY.js +2 -0
- package/dist/chunk-YTAP5Y2G.js +2 -0
- package/dist/chunk-YTYWI7VB.js +2 -0
- package/dist/chunk-YULZRALL.js +2 -0
- package/dist/chunk-Z33WQG4Q.js +2 -0
- package/dist/chunk-ZGTYGDMF.js +16 -0
- package/dist/chunk-ZHMRSZFD.js +43 -0
- package/dist/chunk-ZHSP366W.js +10 -0
- package/dist/chunk-ZIBYCYKK.js +7 -0
- package/dist/chunk-ZLADLUE6.js +3 -0
- package/dist/chunk-ZO4YXUT6.js +4 -0
- package/dist/{chunk-MZPXPSUJ.js → chunk-ZR4HBC2H.js} +2 -2
- package/dist/cli-main.js +6 -6
- package/dist/cli.js +1 -1
- package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
- package/dist/code-IL5WH3NZ.js +2 -0
- package/dist/code-result-json-ANTBEDFP.js +4 -0
- package/dist/command-descriptors-HEEMDHTU.js +222 -0
- package/dist/deps-EOWFC6FD.js +2 -0
- package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
- package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
- package/dist/files-K4AI3JUM.js +2 -0
- package/dist/{health-BI2a9WPy.d.ts → health-BtfmNrfa.d.ts} +5 -79
- package/dist/hierarchy-6W5NDIFI.js +2 -0
- package/dist/imports-WH365QY4.js +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/members-K3PHMF5S.js +2 -0
- package/dist/methods-E7KVMBX4.js +2 -0
- package/dist/output-continuation-command-BJSY67SN.js +3 -0
- package/dist/output-pagination-UZJ5ACIX.js +24 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-EP24WT4X.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +15 -4
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +1 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +1 -0
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +3 -3
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity.d.ts +6 -3
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +1 -7
- package/dist/queries/context.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/dependence-slice.d.ts +46 -22
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.d.ts +1 -7
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +1 -1
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +2 -4
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.d.ts +121 -61
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +1 -0
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -3
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +15 -64
- package/dist/queries/index.js +1 -1
- package/dist/queries/locality-candidates.d.ts +4 -4
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.d.ts +2 -6
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +4 -14
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +4 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/review.d.ts +188 -0
- package/dist/queries/review.js +2 -0
- package/dist/queries/similar-files.d.ts +7 -10
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +19 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice-cohesion.d.ts +205 -0
- package/dist/queries/slice-cohesion.js +2 -0
- package/dist/queries/source-inspection.d.ts +6 -202
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.d.ts +2 -3
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stats.d.ts +1 -0
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +4 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/twin-drift.d.ts +1 -1
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +3 -15
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/query-service-fastpath.js +5 -5
- package/dist/query-service-server.js +4 -4
- package/dist/refs-CCBJG7WK.js +2 -0
- package/dist/refs-pagination-DRNLVU4S.js +2 -0
- package/dist/reindex-worker.js +79 -29
- package/dist/reindex.js +45 -45
- package/dist/repository-cache-worker.js +2 -0
- package/dist/runtime.d.ts +8 -8
- package/dist/runtime.js +3 -4
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/service-queries-2WAJI7R6.js +6 -0
- package/dist/source-inspection-91U9zdO3.d.ts +341 -0
- package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
- package/dist/stats-G7DIV6VU.js +2 -0
- package/dist/surface-IO55UALI.js +2 -0
- package/dist/system-ZBMSHJXU.js +2 -0
- package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
- package/dist/typescript-indexer.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +3 -3
- package/docs/AGENT_GUIDE.md +19 -128
- package/docs/CLI_JSON_OUTPUT.md +21 -17
- package/docs/COMMAND_REFERENCE.md +34 -49
- package/docs/CURRENT_COMMANDS.md +123 -0
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
- package/docs/DETECTOR_GUIDE.md +27 -23
- package/docs/PRODUCT_VISION.md +135 -0
- package/docs/PROPERTY_TESTING.md +73 -0
- package/docs/REVIEW.md +76 -0
- package/docs/SKILLS.md +51 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
- package/docs/accuracy-audit-checklist.md +34 -0
- package/docs/analyzer-inventory.md +2 -2
- package/package.json +18 -80
- package/scripts/evidence-product-contract.mjs +7 -3
- package/scripts/record-review-coverage.mjs +118 -0
- package/scripts/scip-windows-provenance.mjs +29 -19
- package/skills/scip-architecture-review/SKILL.md +57 -0
- package/skills/scip-architecture-review/agents/openai.yaml +4 -0
- package/skills/scip-architecture-review/references/design-checks.md +17 -0
- package/skills/scip-explore/SKILL.md +15 -59
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-explore/references/external-evidence.md +2 -2
- package/skills/scip-explore/references/information-model.md +26 -29
- package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
- package/skills/scip-integrity-audit/SKILL.md +53 -181
- package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
- package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
- package/skills/scip-plan/SKILL.md +39 -65
- package/skills/scip-plan/agents/openai.yaml +2 -2
- package/skills/scip-query/SKILL.md +28 -81
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-query/references/command-guide.md +169 -0
- package/skills/scip-setup/SKILL.md +4 -2
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/by-kind-H3P6BR5G.js +0 -2
- package/dist/call-graph-VTG2CUOQ.js +0 -2
- package/dist/chunk-26CT72HM.js +0 -2
- package/dist/chunk-2BMSSRBH.js +0 -2
- package/dist/chunk-2M2LSIMY.js +0 -7
- package/dist/chunk-2N6WBNDC.js +0 -29
- package/dist/chunk-2OOY75BW.js +0 -2
- package/dist/chunk-2USA3S3P.js +0 -3
- package/dist/chunk-2VAHDDLM.js +0 -133
- package/dist/chunk-2XWIUW5Z.js +0 -455
- package/dist/chunk-35NLDRZC.js +0 -2
- package/dist/chunk-3AF4TUFK.js +0 -3
- package/dist/chunk-3D4BOXW6.js +0 -20
- package/dist/chunk-3LO4FST5.js +0 -16
- package/dist/chunk-3WTY4LP2.js +0 -3
- package/dist/chunk-3Z5AMSK6.js +0 -29
- package/dist/chunk-4KBTHJLP.js +0 -2
- package/dist/chunk-5BIKR67W.js +0 -2
- package/dist/chunk-5PROPLHI.js +0 -2
- package/dist/chunk-5V7EPTII.js +0 -2
- package/dist/chunk-62LPZCBQ.js +0 -3
- package/dist/chunk-64O2JHQA.js +0 -2
- package/dist/chunk-6D4F5VWG.js +0 -10
- package/dist/chunk-6ERFBC3X.js +0 -3
- package/dist/chunk-6MFXCMZC.js +0 -2
- package/dist/chunk-6O7FACKB.js +0 -2
- package/dist/chunk-6TS3KOXR.js +0 -2
- package/dist/chunk-76QOU4PK.js +0 -3
- package/dist/chunk-7DUI77BN.js +0 -2
- package/dist/chunk-7F45LJKI.js +0 -2
- package/dist/chunk-7F7T6DCR.js +0 -2
- package/dist/chunk-7H6VHWWJ.js +0 -2
- package/dist/chunk-7HXT6YLU.js +0 -5
- package/dist/chunk-7KCZELVM.js +0 -2
- package/dist/chunk-7R4V5ES6.js +0 -6
- package/dist/chunk-7RIRIADH.js +0 -7
- package/dist/chunk-7ZLWLOGT.js +0 -2
- package/dist/chunk-AADQLOQ4.js +0 -38
- package/dist/chunk-AN76MGUE.js +0 -2
- package/dist/chunk-ANLNLY66.js +0 -2
- package/dist/chunk-AX7IDVFT.js +0 -2
- package/dist/chunk-B3X6KU75.js +0 -2
- package/dist/chunk-B7MPDEAK.js +0 -3
- package/dist/chunk-BBB5FBX4.js +0 -2
- package/dist/chunk-BJT7LSPK.js +0 -3
- package/dist/chunk-BJWFVAA5.js +0 -2
- package/dist/chunk-BKVWUP7Y.js +0 -2
- package/dist/chunk-BKZYTLGE.js +0 -35
- package/dist/chunk-BL6DCHQP.js +0 -2
- package/dist/chunk-BOW7SSQH.js +0 -43
- package/dist/chunk-C4RHHCKL.js +0 -7
- package/dist/chunk-C7C6AKAT.js +0 -117
- package/dist/chunk-CD6M6LS2.js +0 -16
- package/dist/chunk-CFE6PSG6.js +0 -2
- package/dist/chunk-CFNIGQMT.js +0 -2
- package/dist/chunk-CKBUBRYD.js +0 -2
- package/dist/chunk-CZW5MZ5B.js +0 -2
- package/dist/chunk-DBBZ63ZX.js +0 -2
- package/dist/chunk-DBN7DMJB.js +0 -18
- package/dist/chunk-DUULLZHZ.js +0 -3
- package/dist/chunk-DV5Y5NOS.js +0 -2
- package/dist/chunk-DZOIKCTM.js +0 -3
- package/dist/chunk-E4PKTOL3.js +0 -2
- package/dist/chunk-E7QR35ST.js +0 -2
- package/dist/chunk-EFSXAINW.js +0 -2
- package/dist/chunk-EHVEIEQN.js +0 -18
- package/dist/chunk-EHYDXE3Z.js +0 -2
- package/dist/chunk-EP63Y6LD.js +0 -2
- package/dist/chunk-EPX6NQN6.js +0 -4
- package/dist/chunk-ETC674NS.js +0 -5
- package/dist/chunk-F5GSBHC6.js +0 -3
- package/dist/chunk-FH3DGXC6.js +0 -2
- package/dist/chunk-FI7VGOR4.js +0 -16
- package/dist/chunk-FJF6VO2P.js +0 -2
- package/dist/chunk-FLMTCX5R.js +0 -2
- package/dist/chunk-FVFDOIM3.js +0 -2
- package/dist/chunk-G2HU5WRN.js +0 -2
- package/dist/chunk-G4ALYS4J.js +0 -2
- package/dist/chunk-G56I7K4W.js +0 -26
- package/dist/chunk-GC4DG2V5.js +0 -2
- package/dist/chunk-GG45PK4S.js +0 -4
- package/dist/chunk-GINH3YQU.js +0 -20
- package/dist/chunk-GTZZVLKJ.js +0 -2
- package/dist/chunk-GXXW5ZHH.js +0 -2
- package/dist/chunk-H5EXS3HM.js +0 -2
- package/dist/chunk-HAXXKRTD.js +0 -4
- package/dist/chunk-HEZWBAZY.js +0 -2
- package/dist/chunk-HMEWLMML.js +0 -2
- package/dist/chunk-HOBOVYPO.js +0 -11
- package/dist/chunk-HRFQ6GW5.js +0 -8
- package/dist/chunk-HX4X7KG3.js +0 -2
- package/dist/chunk-HYT2R7LX.js +0 -4
- package/dist/chunk-IKQVBVQL.js +0 -40
- package/dist/chunk-IW5XQG5G.js +0 -2
- package/dist/chunk-J6GLBBRK.js +0 -4
- package/dist/chunk-J7A4PWFX.js +0 -3
- package/dist/chunk-JCSAZ35V.js +0 -2
- package/dist/chunk-JDU2IV3A.js +0 -2
- package/dist/chunk-JFMEXGFE.js +0 -2
- package/dist/chunk-JFMI5SGB.js +0 -4
- package/dist/chunk-JJP37RGX.js +0 -57
- package/dist/chunk-JZ2A7LDM.js +0 -5
- package/dist/chunk-KMVGRIO2.js +0 -2
- package/dist/chunk-KNLQGXVH.js +0 -80
- package/dist/chunk-KVQCECPR.js +0 -2
- package/dist/chunk-KXXORBZ2.js +0 -4
- package/dist/chunk-L5KYH6U3.js +0 -35
- package/dist/chunk-L6XHYJPZ.js +0 -21
- package/dist/chunk-L7KTFEAV.js +0 -43
- package/dist/chunk-LDXHR5EL.js +0 -23
- package/dist/chunk-LEECKFCJ.js +0 -2
- package/dist/chunk-MHGDSBFX.js +0 -2
- package/dist/chunk-MLQVVDG3.js +0 -74
- package/dist/chunk-MOKUWRHO.js +0 -3
- package/dist/chunk-MPYAPMNE.js +0 -2
- package/dist/chunk-MTDBHTSF.js +0 -2
- package/dist/chunk-MV6SPXCR.js +0 -7
- package/dist/chunk-MWN53KRN.js +0 -60
- package/dist/chunk-MXNGIEPU.js +0 -3
- package/dist/chunk-N55KIE46.js +0 -2
- package/dist/chunk-NB4D3BNM.js +0 -2
- package/dist/chunk-NGKBOT6G.js +0 -23
- package/dist/chunk-NJGKXKQF.js +0 -2
- package/dist/chunk-NJQISBL4.js +0 -8
- package/dist/chunk-NJT3ZEKY.js +0 -16
- package/dist/chunk-NKMKZP6A.js +0 -2
- package/dist/chunk-NODFZ6ED.js +0 -2
- package/dist/chunk-NSM5IEVW.js +0 -2
- package/dist/chunk-NTGUVNR2.js +0 -3
- package/dist/chunk-NU3KFF2O.js +0 -57
- package/dist/chunk-NWLVNU66.js +0 -557
- package/dist/chunk-NYKZMCRC.js +0 -4
- package/dist/chunk-O6BUXZEH.js +0 -6
- package/dist/chunk-ODPDP7A4.js +0 -3
- package/dist/chunk-OIAPEKMT.js +0 -3
- package/dist/chunk-OIOC5EHF.js +0 -3
- package/dist/chunk-ONPPQM4G.js +0 -2
- package/dist/chunk-OUHEZBYI.js +0 -2
- package/dist/chunk-OVGYW7UD.js +0 -29
- package/dist/chunk-OYKU4B3Y.js +0 -2
- package/dist/chunk-POBJ6FR2.js +0 -5
- package/dist/chunk-PSZPMMWN.js +0 -2
- package/dist/chunk-PXTRBKRK.js +0 -3
- package/dist/chunk-Q5JRIHT3.js +0 -4
- package/dist/chunk-Q7ATHARX.js +0 -2
- package/dist/chunk-Q7CSKIDM.js +0 -5
- package/dist/chunk-QBQE7ZJ5.js +0 -3
- package/dist/chunk-QH22UIXP.js +0 -5
- package/dist/chunk-QXCKQTKR.js +0 -60
- package/dist/chunk-RBAD4GJ2.js +0 -13
- package/dist/chunk-RMDPFPNW.js +0 -2
- package/dist/chunk-ROPJDEJZ.js +0 -4
- package/dist/chunk-RVZC6TJE.js +0 -2
- package/dist/chunk-S4QZBKSR.js +0 -3
- package/dist/chunk-SCPMZ73U.js +0 -2
- package/dist/chunk-SIAP5RGI.js +0 -73
- package/dist/chunk-SIX4RFR3.js +0 -3
- package/dist/chunk-SKKXTABJ.js +0 -16
- package/dist/chunk-SSRFUQBD.js +0 -2
- package/dist/chunk-SYVJEEUJ.js +0 -3
- package/dist/chunk-T3CZAZSI.js +0 -8
- package/dist/chunk-T6DWDI5E.js +0 -3
- package/dist/chunk-T6HRIROJ.js +0 -7
- package/dist/chunk-TAA7HXHE.js +0 -2
- package/dist/chunk-TJ2JQYT3.js +0 -2
- package/dist/chunk-TULNMD5T.js +0 -368
- package/dist/chunk-U2FPY5XA.js +0 -3
- package/dist/chunk-U3SXIMII.js +0 -38
- package/dist/chunk-U6KCHXJ4.js +0 -2
- package/dist/chunk-UH3XSKS5.js +0 -9
- package/dist/chunk-UIFUZVCC.js +0 -2
- package/dist/chunk-UXKURIVI.js +0 -2
- package/dist/chunk-V2RBODHL.js +0 -2
- package/dist/chunk-VBKUWB6N.js +0 -2
- package/dist/chunk-VBV6ALJE.js +0 -2
- package/dist/chunk-VDGFWCQV.js +0 -2
- package/dist/chunk-VDSDOEWF.js +0 -2
- package/dist/chunk-VZPWVCLN.js +0 -20
- package/dist/chunk-WDSFQDPN.js +0 -2
- package/dist/chunk-WFA35BGR.js +0 -7
- package/dist/chunk-WLMP3OCW.js +0 -2
- package/dist/chunk-WSA52GOR.js +0 -2
- package/dist/chunk-WYPL7GF7.js +0 -2
- package/dist/chunk-X3YVZAKZ.js +0 -5
- package/dist/chunk-X6OGVFIT.js +0 -2
- package/dist/chunk-XDAUYDFT.js +0 -2
- package/dist/chunk-XKXTR6ZI.js +0 -9
- package/dist/chunk-Y5DFAW5W.js +0 -4
- package/dist/chunk-YSYPDRD5.js +0 -3
- package/dist/chunk-ZFVPWH62.js +0 -5
- package/dist/chunk-ZGIHTH27.js +0 -2
- package/dist/chunk-ZGIQN2SX.js +0 -2
- package/dist/chunk-ZHG4WAHR.js +0 -12
- package/dist/chunk-ZKB2XUEN.js +0 -4
- package/dist/chunk-ZLMXIQLC.js +0 -21
- package/dist/chunk-ZMCQIHI4.js +0 -2
- package/dist/code-TAVIKWJI.js +0 -2
- package/dist/code-result-json-5FEFQCAQ.js +0 -2
- package/dist/command-descriptors-7BKH53Y3.js +0 -343
- package/dist/dataflow-GFBTVDH3.js +0 -2
- package/dist/dependence-slice-GWGQCODG.js +0 -2
- package/dist/deps-4QHVDPYA.js +0 -2
- package/dist/direct-navigation-4UBC6HNW.js +0 -3
- package/dist/entry-map-QCTF4RVY.js +0 -2
- package/dist/files-M2UBF5HJ.js +0 -2
- package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
- package/dist/hierarchy-2UIHRLW4.js +0 -2
- package/dist/imports-WIE3YZOB.js +0 -2
- package/dist/members-YKD636DA.js +0 -2
- package/dist/methods-VDF4IMYG.js +0 -2
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
- package/dist/output-continuation-command-4UMDOOLO.js +0 -3
- package/dist/output-pagination-2GME6OPY.js +0 -19
- package/dist/project-reindex-XEQTRCV5.js +0 -3
- package/dist/queries/anchors.d.ts +0 -123
- package/dist/queries/anchors.js +0 -2
- package/dist/queries/complexity-hotspots.d.ts +0 -40
- package/dist/queries/complexity-hotspots.js +0 -2
- package/dist/queries/convergence.d.ts +0 -33
- package/dist/queries/convergence.js +0 -2
- package/dist/queries/dataflow.d.ts +0 -77
- package/dist/queries/dataflow.js +0 -2
- package/dist/queries/deep-chains.d.ts +0 -5
- package/dist/queries/deep-chains.js +0 -2
- package/dist/queries/extract-candidates.d.ts +0 -79
- package/dist/queries/extract-candidates.js +0 -2
- package/dist/queries/isolated.d.ts +0 -24
- package/dist/queries/isolated.js +0 -2
- package/dist/queries/plan-context.d.ts +0 -33
- package/dist/queries/plan-context.js +0 -2
- package/dist/queries/reference-neighborhood.d.ts +0 -4
- package/dist/queries/reference-neighborhood.js +0 -2
- package/dist/queries/reference-reachability.d.ts +0 -48
- package/dist/queries/reference-reachability.js +0 -2
- package/dist/queries/self-audit.d.ts +0 -69
- package/dist/queries/self-audit.js +0 -2
- package/dist/queries/similar-chains.d.ts +0 -48
- package/dist/queries/similar-chains.js +0 -2
- package/dist/queries/slice.d.ts +0 -4
- package/dist/queries/slice.js +0 -2
- package/dist/queries/stale-abstractions.d.ts +0 -72
- package/dist/queries/stale-abstractions.js +0 -2
- package/dist/queries/system-map.d.ts +0 -449
- package/dist/queries/system-map.js +0 -2
- package/dist/queries/trace.js +0 -2
- package/dist/queries/twin-ab.d.ts +0 -66
- package/dist/queries/twin-ab.js +0 -2
- package/dist/queries/value-flow.d.ts +0 -43
- package/dist/queries/value-flow.js +0 -2
- package/dist/queries/wrapper-candidates.d.ts +0 -49
- package/dist/queries/wrapper-candidates.js +0 -2
- package/dist/refs-JNK5CLM7.js +0 -2
- package/dist/refs-pagination-6BLRYGMV.js +0 -2
- package/dist/slice-PHPVNCWX.js +0 -2
- package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
- package/dist/stats-OOJ74B32.js +0 -2
- package/dist/surface-MQX5MPIV.js +0 -2
- package/dist/symbol-resolution-DBLVXLBC.js +0 -2
- package/dist/system-JOPKV4OG.js +0 -2
- package/dist/trace-I2P2YFH4.js +0 -2
- package/dist/value-flow-JJVMF7NP.js +0 -2
- package/skills/concrete-plan/SKILL.md +0 -8
- package/skills/concrete-plan/agents/openai.yaml +0 -4
- package/skills/conductor/SKILL.md +0 -110
- package/skills/conductor/agents/openai.yaml +0 -4
- package/skills/principal-maintainability-review/SKILL.md +0 -273
- package/skills/principal-maintainability-review/agents/openai.yaml +0 -4
- package/skills/scip-calibrate/SKILL.md +0 -102
- package/skills/scip-calibrate/agents/openai.yaml +0 -4
- package/skills/scip-claim-audit/SKILL.md +0 -113
- package/skills/scip-claim-audit/agents/openai.yaml +0 -4
- package/skills/scip-probe-reachability/SKILL.md +0 -93
- package/skills/scip-probe-reachability/agents/openai.yaml +0 -4
- package/skills/scip-root-cause/SKILL.md +0 -160
- package/skills/scip-root-cause/agents/openai.yaml +0 -4
- package/skills/scip-system-compression/SKILL.md +0 -252
- package/skills/scip-system-compression/agents/openai.yaml +0 -4
- package/skills/scip-system-compression/references/compression-atlas.md +0 -116
- package/skills/scip-system-compression/references/compression-patterns.md +0 -87
- package/skills/scip-twin-drift/SKILL.md +0 -109
- package/skills/scip-twin-drift/agents/openai.yaml +0 -4
|
@@ -1,103 +1,50 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scip-query
|
|
3
|
-
description: Use
|
|
4
|
-
metadata:
|
|
5
|
-
commands:
|
|
6
|
-
- template: 'scip-query watch --daemon'
|
|
7
|
-
when: 'When the user explicitly asks to use scip-query, make sure the background watcher for the exact target worktree is running before the first exploration command.'
|
|
8
|
-
- template: 'scip-query watch --status'
|
|
9
|
-
when: 'Check whether the watcher for the current worktree is running, refreshing, idle, or failed.'
|
|
10
|
-
- template: 'scip-query watch --stop'
|
|
11
|
-
when: 'Stop the watcher owned by the current worktree when the user asks to turn it off.'
|
|
12
|
-
- template: 'scip-query search <text>'
|
|
13
|
-
when: 'Locate exact repository text, a runtime key, or a compiler symbol; use `scip-query search -- <text>` when the literal starts with a dash.'
|
|
14
|
-
- template: 'scip-query outline <file>'
|
|
15
|
-
when: 'Locate compiler-owned constructs in a known file.'
|
|
16
|
-
- template: 'scip-query entrypoints <text>'
|
|
17
|
-
when: 'Locate an external callable root when its entry surface is known.'
|
|
18
|
-
- template: 'scip-query evidence --symbol <symbol> --edge <family> --direction <direction> --depth <n> --max-edges <n>'
|
|
19
|
-
when: 'Project explicitly selected typed relationships from one exact root.'
|
|
20
|
-
- template: 'scip-query inspect --at <file:line> --view behavior'
|
|
21
|
-
when: 'Read connected behavior for a named implementation gap.'
|
|
22
|
-
- template: 'scip-query code <selector>'
|
|
23
|
-
when: 'Read exact source only when syntax itself can change the decision.'
|
|
24
|
-
- template: 'scip-query diff-impact'
|
|
25
|
-
when: 'Map changed symbols and downstream consumers after an edit.'
|
|
26
|
-
- template: 'scip-query architecture'
|
|
27
|
-
when: 'Validate declared structural boundaries.'
|
|
28
|
-
- template: 'scip-query health --full'
|
|
29
|
-
when: 'Run configured cleanup and quality detectors.'
|
|
3
|
+
description: Use code relationships, module structure, quality findings and change impact to plan and review changes alongside ordinary source-reading tools.
|
|
30
4
|
---
|
|
31
5
|
|
|
32
|
-
#
|
|
6
|
+
# SCIP Query
|
|
33
7
|
|
|
34
|
-
|
|
35
|
-
## Command and question manual
|
|
8
|
+
scip-query connects code locations through observed relationships and measured quality findings. Use ordinary search and file tools to read source. Use scip-query when the question concerns consumers, execution, value flow, dependencies, reuse or maintenance problems.
|
|
36
9
|
|
|
37
|
-
|
|
38
|
-
| --- | --- |
|
|
39
|
-
| `scip-query watch --daemon` | When the user explicitly asks to use scip-query, make sure the background watcher for the exact target worktree is running before the first exploration command. |
|
|
40
|
-
| `scip-query watch --status` | Check whether the watcher for the current worktree is running, refreshing, idle, or failed. |
|
|
41
|
-
| `scip-query watch --stop` | Stop the watcher owned by the current worktree when the user asks to turn it off. |
|
|
42
|
-
| `scip-query search <text>` | Locate exact repository text, a runtime key, or a compiler symbol; use \`scip-query search -- <text>\` when the literal starts with a dash. |
|
|
43
|
-
| `scip-query outline <file>` | Locate compiler-owned constructs in a known file. |
|
|
44
|
-
| `scip-query entrypoints <text>` | Locate an external callable root when its entry surface is known. |
|
|
45
|
-
| `scip-query evidence --symbol <symbol> --edge <family> --direction <direction> --depth <n> --max-edges <n>` | Project explicitly selected typed relationships from one exact root. |
|
|
46
|
-
| `scip-query inspect --at <file:line> --view behavior` | Read connected behavior for a named implementation gap. |
|
|
47
|
-
| `scip-query code <selector>` | Read exact source only when syntax itself can change the decision. |
|
|
48
|
-
| `scip-query diff-impact` | Map changed symbols and downstream consumers after an edit. |
|
|
49
|
-
| `scip-query architecture` | Validate declared structural boundaries. |
|
|
50
|
-
| `scip-query health --full` | Run configured cleanup and quality detectors. |
|
|
10
|
+
An owner is the implementation responsible for a rule or resource, established from behavior and consumers. A finding identifies concrete code with evidence of a possible problem. Candidates require confirmation; names, folders and matching text alone do not establish ownership or interchangeable behavior.
|
|
51
11
|
|
|
52
|
-
|
|
53
|
-
<!-- END GENERATED SKILL COMMANDS -->
|
|
12
|
+
## Choose the work
|
|
54
13
|
|
|
55
|
-
|
|
14
|
+
| Situation | Analysis to use | Workflow |
|
|
15
|
+
| --------------------------- | ------------------------------------------------------------------------------------------ | --------------------------- |
|
|
16
|
+
| Understand a subsystem | `system --source`, then selected module dependencies or `evidence` | `$scip-explore` |
|
|
17
|
+
| Plan a substantial change | `context <target>` for reuse candidates; incoming/outgoing execution and relevant handoffs | `$scip-plan` |
|
|
18
|
+
| Evaluate architecture | Module dependencies, cycles and `architecture` for configured rules | `$scip-architecture-review` |
|
|
19
|
+
| Clean up code | `health` for complexity/duplication/dependencies; relevant specialist detectors | `$scip-architecture-review` |
|
|
20
|
+
| Check a feature's integrity | Live consumers and distinguishing behavior; relevant incomplete-implementation detectors | `$scip-integrity-audit` |
|
|
21
|
+
| Review actual edits | `review --base HEAD`, `diff-impact`, and architecture if dependencies changed | This guide |
|
|
22
|
+
| Install or repair the tool | `status`, then the diagnosed operation | `$scip-setup` |
|
|
56
23
|
|
|
57
|
-
|
|
24
|
+
Load only the needed workflow. Simple local lookups need no workflow ceremony. These are task boundaries, not a command battery. Use the relevant section of the [command guide](references/command-guide.md) when a more specific question needs a specialist command.
|
|
58
25
|
|
|
59
|
-
|
|
26
|
+
## Ask for relationships
|
|
60
27
|
|
|
61
|
-
|
|
28
|
+
Existing `file:line` locations are graph roots. Symbol lookup, `outline`, and `entrypoints` are useful when compiler identity, nesting or external roots are unclear. `code` and `inspect` are optional symbol-aware source tools; ordinary reads are usually sufficient for implementation details.
|
|
62
29
|
|
|
63
|
-
|
|
30
|
+
For example, `scip-query evidence --at src/service.ts:42 --edge execution --direction incoming --depth 1 --max-edges 30` asks for caller evidence. Repeat `--at` or `--symbol` to batch participants. Use outgoing execution for callees, dataflow for value origins/destinations, runtime for handoffs and dependencies for imports. Select state, temporal, contract, identity or containment relationships only when they answer a concrete question. Execution and supported runtime handoffs establish reachability; other relationship families do not become call claims.
|
|
64
31
|
|
|
65
|
-
|
|
66
|
-
### Choose a relationship deliberately
|
|
32
|
+
Before a substantial change, establish the existing central path, comparable features and reuse opportunities. A relationship query should settle an uncertainty about that path or the consequences of changing it. Read the relevant implementation with ordinary tools to verify decisions, errors, state changes and ordering.
|
|
67
33
|
|
|
68
|
-
|
|
69
|
-
|---|---|---|
|
|
70
|
-
| Who can call or reach this? | `execution` | `incoming` |
|
|
71
|
-
| What can this call or reach? | `execution` | `outgoing` |
|
|
72
|
-
| Where can this value come from? | `dataflow` | `incoming` |
|
|
73
|
-
| Where can this value go? | `dataflow` | `outgoing` |
|
|
74
|
-
| Which producer and consumer rendezvous? | `runtime` | `both` |
|
|
75
|
-
| What resource is observed or changed? | `state` | `both` |
|
|
76
|
-
| What occurs before or after this? | `temporal` | `both` |
|
|
77
|
-
| What interface constrains this? | `contract` | `both` |
|
|
78
|
-
| Are these observations the same entity? | `identity` | `both` |
|
|
79
|
-
| What contains or owns this? | `ownership` | `both` |
|
|
80
|
-
| What does this statically rely on? | `dependencies` | `outgoing` |
|
|
34
|
+
## Keep useful evidence
|
|
81
35
|
|
|
82
|
-
|
|
36
|
+
Exact is directly observed; derived is deterministically computed; candidates need confirmation; unknown cannot support a stronger claim. Respect material stale, unsupported or incomplete results. A saved result is the complete output of its query, not proof that every possible relationship was analyzed. Missing or bounded evidence cannot establish absence.
|
|
83
37
|
|
|
84
|
-
|
|
85
|
-
<!-- END GENERATED EXPLORATION MANUAL -->
|
|
38
|
+
Prefer concise human output. Read saved results selectively using normal search/read tools. Use `--json --json-output <path>` when programmatic filtering helps. Do not paste large raw JSON or rerun an already answered query. Optional compatibility cursors are useful only when an omitted detail could change the decision; there is no requirement to drain every page or read every saved byte.
|
|
86
39
|
|
|
87
|
-
|
|
40
|
+
Source `health`, `review` and `system --source` use current files. Indexed relationships require a fresh index. Respect disabled watching and configured rebuild policy. Check `capabilities --matrix` only for uncertain support that matters to the question.
|
|
88
41
|
|
|
89
|
-
|
|
42
|
+
## Review changes
|
|
90
43
|
|
|
91
|
-
|
|
44
|
+
After a nontrivial edit, run `scip-query review --base <commit>` and fresh `scip-query diff-impact` against the same base. Normally use HEAD before committing. Review includes new/untracked functions and repository peers; scope the displayed findings to the change when useful. Check `architecture` when module dependencies or policy changed. Use `health --indexed` only for a needed specialist question.
|
|
92
45
|
|
|
93
|
-
|
|
46
|
+
Confirm findings with source and behavioral checks before fixing them. Preserve existing owners, authorization, errors, state identity, ordering, concurrency and cleanup. Do not lower thresholds, widen rules or suppress findings to make a report pass.
|
|
94
47
|
|
|
95
|
-
|
|
48
|
+
CRAP combines complexity with actual test coverage. Use `scripts/record-review-coverage.mjs` with the real test command when this measure matters; missing or stale coverage is unavailable, never zero. See [review rules](../../docs/REVIEW.md).
|
|
96
49
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
An emitted `Continue exactly:` command is a cursor: a next-page read from one immutable rendered result. It is required transport, not optional evidence expansion. Run the emitted command unchanged and repeat until no continuation remains before interpreting that command's complete result. Do not rerun the original query or alter cursor flags. Continuation reads saved output without repository preparation, reindexing, or watcher startup. Printed recovery and expansion commands are different: run those only when their omitted evidence matters.
|
|
100
|
-
|
|
101
|
-
Prefer human output for agent reading. If a model-facing consumer genuinely needs JSON, add `--json --agent-output`; add `--result-only` only when the common envelope is unnecessary, and drain every emitted cursor before interpreting the result. Never send raw `--json` output through a model-facing terminal or tool. When a program needs the exhaustive machine payload, use `--json --json-output <path>` and inspect that file programmatically instead of injecting its complete contents into model context.
|
|
102
|
-
|
|
103
|
-
`inspect --view behavior` returns connected behavior for named units; `code` returns exact source. Treat source rendered by either command as already read. Batch independent roots and source gaps when practical. Use native tools only for edits, checks, binary content, or a specific unsupported gap reported by scip-query. After edits, use `diff-impact` when downstream consumers matter, `architecture` for declared boundaries, and `health` for configured quality or cleanup detectors.
|
|
50
|
+
Report changes, actual checks, justified retained findings and material limits. An empty report or passing mocked test alone does not establish correct behavior.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "SCIP Query"
|
|
3
|
-
short_description: "
|
|
4
|
-
default_prompt: "Use $scip-query
|
|
3
|
+
short_description: "Inspect relationships, smells, and changes."
|
|
4
|
+
default_prompt: "Use $scip-query to choose evidence and the workflow needed for this task."
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Choosing a scip-query command
|
|
2
|
+
|
|
3
|
+
Use this reference when the workflow names a question but you need to choose its command. Read the relevant section, then run `scip-query <command> --help` for flags. Do not run every row. This guide covers all 81 public commands; the five internal controls are explained separately.
|
|
4
|
+
|
|
5
|
+
An index is a saved database of code declarations and references produced by language tools. The **Index** column describes the current CLI prerequisite, not whether the answer is read from old source bytes. **Yes** requires a prepared index; additional language parsers or compiler services may still be needed. **No** requires no saved index; other requirements are stated in the row. **Mode** depends on the selected operation.
|
|
6
|
+
|
|
7
|
+
Current limitation: `files`, `search`, `code`, and `inspect` read current text but still pass through index preparation. Do not promise those commands work in a never-indexed checkout. `system --source`, source `health`, and `review` do. Their current-source analysis scans eligible files on each invocation; the incremental index watcher is a separate mechanism.
|
|
8
|
+
|
|
9
|
+
`<value>` is required; `[value]` is optional. Prefix the commands below with `scip-query`. Use exact identities returned by the tool, and preserve quoted paths. Every result is limited by its stated coverage. A candidate is a location worth investigating because it matches a disclosed pattern; it is not an instruction to change that code.
|
|
10
|
+
|
|
11
|
+
## Orientation and change review
|
|
12
|
+
|
|
13
|
+
Source `health` shows separate finding categories; `--limit` bounds each category so duplication cannot crowd out complexity. Unmatched suppression decisions are summarized after findings; `--full` retains their identities and reasons. Use `system --source <path-or-group>` for module files, dependencies and consumers. Indexed health has no overall grade. Its combined pair weight is the sum of existing detector weights; the raw pair count remains separate.
|
|
14
|
+
|
|
15
|
+
Use these for first-use assessment, planning around existing code, and checking an actual diff. Load `$scip-plan` for implementation order and preserved behavior.
|
|
16
|
+
|
|
17
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| `system [module]` | Inventory module groups, or examine the files, exports, imports, consumers and findings around one group. Start with `system --source`; select an exact path or printed group ID. | Mode | Source mode needs no index and covers eligible TS/JS. Bare indexed mode requires a module selector. Directories are provisional groups; exports are not complete interface contracts. |
|
|
20
|
+
| `health` | Find current TS/JS complexity, duplication and dependency findings on first use. Choose `--indexed` for the specialist framework, drift and cleanup report. | Mode | Default source mode needs no index. `--baseline` compares saved indexed finding identities; `--write-baseline` writes them. Both require an index and reject source-only options. No mode establishes overall design quality or runs every integrity detector. |
|
|
21
|
+
| `review` | Compare current TS/JS changes, including new/untracked functions, against `--base HEAD` or another commit. Use before committing. | No | Requires Git. Scope filters output while peer analysis remains broader. Read uncomparable functions manually. CRAP needs source-matched test coverage; missing coverage is unavailable. |
|
|
22
|
+
| `context <target>` | Gather indexed reuse and impact candidates around an already identified symbol, file or module before choosing an implementation owner. | Yes | A briefing of candidates; matching names and nearby code do not establish the live owner. Use source and consumers to decide. |
|
|
23
|
+
| `change-surface <file>` | Plan a change to one file: see its consumers, published interface, operational roots and explained risk. | Yes | Broader pre-change context than a reverse-import list. Risk signals do not predict which consumers will break. |
|
|
24
|
+
| `affected <symbol>` | Before editing a particular symbol, follow its reverse caller/reference relationships to possible consumers. | Yes | A conservative set of potentially affected symbols. It does not predict actual failures or cover unknown runtime connections. |
|
|
25
|
+
| `diff-impact` | After editing, map the actual Git diff to changed symbols and downstream consumers. Select the same `--base` used for review. | Yes | Complements source review with symbol relationships. Check unindexed paths and each evidence tier; a source fallback is not complete compiler-reference coverage. |
|
|
26
|
+
|
|
27
|
+
## Exploration
|
|
28
|
+
|
|
29
|
+
Use ordinary repository search and file tools for source text. Load `$scip-explore` when cross-file relationships or behavior need investigation. `context`, `call-graph`, `evidence` and dependency commands add structure beyond source reads; the locators and symbol-aware reads below are optional specialist controls.
|
|
30
|
+
|
|
31
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
32
|
+
| --- | --- | --- | --- |
|
|
33
|
+
| `files <pattern>` | The missing fact is a file path rather than a text occurrence. Match current project paths. | Yes | Current CLI prerequisite despite source-based file discovery. File membership does not establish compiler coverage. |
|
|
34
|
+
| `search <exact-text>` | Locate a literal or deliberately bounded `--regexp`, optionally within `--scope`. | Yes | Counts current text; compiler ownership is an aligned overlay. Preview ordering is not task relevance. Insert `--` before a literal beginning with a dash. |
|
|
35
|
+
| `outline <file>` | See indexed symbols and nesting in one known file before selecting a definition. | Yes | Compiler-owned structure, not evidence that a function runs. |
|
|
36
|
+
| `code <selectors...>` | Read exact definitions, file:line ranges, or file surfaces. Batch known selectors. | Yes | Text is current. File mode defaults to exported members; `--members all` requests the complete file. Source alone does not establish consumers. |
|
|
37
|
+
| `inspect` | Read several related implementation gaps together using repeated `--symbol`, `--at`, or `--search`; use `--view behavior` when behavior is the gap. | Yes | Deduplicated source and relationship context with explicit bounds. A preview cannot establish what every invocation passes. |
|
|
38
|
+
| `entrypoints [text]` | Find detected external roots or entry-surface candidates when the initiating implementation is unknown. | Yes | Visibility and few callers do not prove runtime ingress. Confirm registration and live consumers. |
|
|
39
|
+
| `entry-map <entry>` | View the indexed call structure from one detected entry, grouped by file. | Yes | Useful for the broad static path; does not prove runtime execution or capture every framework handoff. |
|
|
40
|
+
| `methods <className>` | Enumerate methods of one exact class rather than all constructs in its file. | Yes | Ambiguous/missing class selectors fail. Methods being present does not establish invocation. |
|
|
41
|
+
| `members <symbol>` | Enumerate children of a known symbol, including fields and nested types. | Yes | Broader than methods; structural containment does not establish responsibility or lifetime. |
|
|
42
|
+
| `hierarchy <symbol>` | Walk upward from a symbol to its indexed lexical containers. | Yes | Containers are code structure; runtime sharing and business ownership require separate evidence. |
|
|
43
|
+
| `by-kind <kind>` | Locate constructs by SCIP kind, such as classes or interfaces. | Yes | Kind is a compiler classification, not an architectural role. |
|
|
44
|
+
| `kind-counts` | Get a histogram of indexed construct kinds when composition is the question. | Yes | Index inventory counts; neither a repository quality measure nor a code-behavior review. |
|
|
45
|
+
| `refs <symbol>` | Locate references to one exact declaration, including non-call uses. | Yes | Distinguish compiler-bound references from candidates. References are broader than calls; limits and unsupported consumers prevent absence claims. |
|
|
46
|
+
| `call-graph <symbol>` | Follow incoming/outgoing static call relationships around one symbol. | Yes | Read exact/candidate labels and blind spots. A possible call is not an observed execution. |
|
|
47
|
+
| `evidence` | Project explicitly chosen execution, dataflow, runtime, state, temporal, contract, identity, ownership or dependency relationships. | Yes | Supply roots, `--edge`, direction, depth and edge bound. Only supported relationships are established; data/state edges do not become calls. |
|
|
48
|
+
| `dependence-slice <file:line>` | Trace a particular variable occurrence backward to its local prerequisites, or forward with `--forward`. Use `--variable`/`--column` to disambiguate. | Yes | Function-local value and control relationships. Does not prove whole-program flow, safe extraction, or heap identity across calls. |
|
|
49
|
+
| `session` | Check which evidence has already been delivered in an explicit `SCIP_QUERY_SESSION`; `--reset` clears that ledger. | Yes | The current handler opens the index. Delivered evidence is not a measure of task completion; no explicit session means the ledger is unavailable. |
|
|
50
|
+
|
|
51
|
+
## Architecture and dependencies
|
|
52
|
+
|
|
53
|
+
Load `$scip-architecture-review` to connect these observations to maintenance consequences. Review implementations and consumers before assigning responsibility or changing boundaries.
|
|
54
|
+
|
|
55
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
56
|
+
| --- | --- | --- | --- |
|
|
57
|
+
| `deps <file>` | List the internal files one file relies on. | Yes | File-level dependency view; use imports for imported symbol detail. Static reliance is not execution. |
|
|
58
|
+
| `rdeps <file>` | Find files depending on one file/module. | Yes | File consumers, not complete symbol invocations. Use affected for broader symbol impact. |
|
|
59
|
+
| `imports <file>` | Inspect the imported symbols used to connect a file to other implementations. | Yes | An import does not prove invocation. Dynamic/runtime registration may need separate evidence. |
|
|
60
|
+
| `imported-by <symbol>` | Identify files importing one symbol. | Yes | Narrower than refs: non-import uses are not this command's question. |
|
|
61
|
+
| `surface <module>` | Find indexed symbols with observed consumers outside the selected module. | Yes | Shows observed use, not every exported declaration or all consumers outside this repository. |
|
|
62
|
+
| `architecture` | Check declared file boundaries, allowed dependency directions and configured structural constraints. | Yes | Requires meaningful project rules. Read unmapped files and missing policy rows; compliance does not establish sound design. |
|
|
63
|
+
| `cycles` | Find cyclic file-dependency groups and a witness path through each. | Yes | All participating components are the unit of coverage, not every possible cycle path. A grouped-module cycle may differ from a file cycle. |
|
|
64
|
+
| `dependency-depth` | Examine long dependency paths after cyclic files are treated as one group. | Yes | Depth describes graph structure; it does not prescribe implementation order or measure runtime cost. |
|
|
65
|
+
| `coupling [file1] [file2]` | Compare two files, or rank file pairs, by shared-symbol relationships. | Yes | Shared symbols indicate structural connection, not a common business responsibility. |
|
|
66
|
+
| `co-change [file]` | Investigate files that repeatedly change together without a recorded dependency. | Yes | Also needs Git history. Co-change suggests hidden coordination; repository-wide edits and history gaps can mislead. |
|
|
67
|
+
| `hotspots` | Locate highly referenced symbols when choosing where to investigate broad impact. | Yes | Ranks referencing chunks or disclosed incoming evidence rows. Counts are not runtime frequency or architectural importance. |
|
|
68
|
+
| `fan-in [symbol]` | Count distinct referencing files for one symbol, or rank symbols by that count. | Yes | Different unit from hotspots; many consumers can indicate useful reuse. |
|
|
69
|
+
| `fan-out [file]` | Count external symbols used by one file, or rank files by that count. | Yes | Here external means outside the file. Counts do not establish excessive responsibilities. |
|
|
70
|
+
| `bottlenecks` | Locate potential coordination hubs using incoming files and outgoing cross-file callable targets. | Yes | Structural product, not measured runtime contention, throughput or failure risk. |
|
|
71
|
+
| `locality-candidates [symbol-or-file]` | Investigate placement when consumers cluster under a directory or ancestor. | Yes | Directory proximity suggests a question; it does not identify the correct conceptual owner. |
|
|
72
|
+
| `drift [module]` | Obtain a module-oriented shortlist of unused imports and architecture violations; add `--architecture` for policy context. | Yes | `--patterns` additionally reports unusual sibling dependencies and has weaker precision. Different dependencies can be intentional. |
|
|
73
|
+
|
|
74
|
+
## Simplification and cleanup
|
|
75
|
+
|
|
76
|
+
These are optional investigations within architecture/maintainability review. Begin with source health/review when their findings answer the question. Test the strongest reason the existing code might be necessary.
|
|
77
|
+
|
|
78
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
79
|
+
| --- | --- | --- | --- |
|
|
80
|
+
| `complexity <symbol>` | Inspect one indexed symbol's branch/cyclomatic estimate alongside fan-in/out and callees. | Yes | For before/after source cognitive complexity and CRAP, use review. Metric definitions differ; do not treat every complexity value as interchangeable. |
|
|
81
|
+
| `slice-cohesion [symbol]` | Investigate a function whose outputs may depend on separate sets of statements. | Yes | Local backward-slice candidates for separation. Shared state, effects, control, exceptions and lifecycle may require keeping the code together. |
|
|
82
|
+
| `passthrough-candidates` | Locate wrappers that mostly forward to one callee. | Yes | Adapters can enforce a contract or isolate change; forwarding alone does not justify deletion. |
|
|
83
|
+
| `similar [symbol] [other]` | Find or compare functions with similar callee fingerprints. | Yes | Similar callees do not prove equivalent behavior; inspect inputs, effects and consumers. |
|
|
84
|
+
| `similar-files [file]` | Find files with similar dependency profiles. | Yes | Structural neighbors, not proven duplicate implementations. |
|
|
85
|
+
| `recent-duplicates` | Look for duplication candidates associated with recently added files. | Yes | Uses Git file age; it does not know when each function was created. |
|
|
86
|
+
| `duplicate-bodies` | Locate exact small-body duplication candidates across files. | Yes | Matching bodies can operate under different contracts or state; source health supplies a different whole-function token comparison. |
|
|
87
|
+
| `similar-signatures` | Locate functions with similar normalized signature text as a lead for shared concepts. | Yes | Text resemblance does not prove identical resolved types, responsibilities or behavior. |
|
|
88
|
+
| `dead [scope]` | Distinguish repository-dead candidates, file-internal-only symbols and implicit-usage signals. | Yes | Examine the category and semantic coverage. External consumers, framework calls or incomplete indexing can invalidate a deletion. |
|
|
89
|
+
| `unused-imports <file>` | Inspect imports with no observed same-file references. | Yes | Confirm side effects, generated/framework uses and supported syntax before removal. |
|
|
90
|
+
| `unused-params` | Find trailing parameters whose bodies do not use them. | Yes | Public interfaces, callbacks, overrides and future-compatible contracts may still require them. |
|
|
91
|
+
| `redundant-reexports` | Investigate re-exports without resolved local source import/re-export consumers. | Yes | External package consumers remain unknown. A barrel can be a deliberate public interface. |
|
|
92
|
+
| `cleanup-plan` | Order unused-code deletion candidates and the further candidates their removal may expose. | Yes | `--verify` executes a project checker in an isolated HEAD snapshot; `--patch` prints that checked patch. Neither proves runtime behavior or validates uncommitted source as HEAD. |
|
|
93
|
+
| `doc-drift [doc]` | Find documentation whose referenced or historically co-changing code changed later. | Yes | Also needs Git history. Age is a lead, not proof that the documentation is wrong. |
|
|
94
|
+
|
|
95
|
+
## Framework investigations
|
|
96
|
+
|
|
97
|
+
Use the relevant framework rows after a concrete React/Vue concern, or after `health --indexed` points to one. Do not run both framework families on unrelated code. These reports require an index and their supported parser/compiler providers.
|
|
98
|
+
|
|
99
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
100
|
+
| --- | --- | --- | --- |
|
|
101
|
+
| `react-component-duplicates [file]` | Compare repeated JSX structure, props, events and bindings. | Yes | Similar component structure can conceal different behavior and ownership. |
|
|
102
|
+
| `react-hook-candidates [file]` | Investigate repeated state, effects, requests and handlers for a possible shared hook. | Yes | Preserve hook ordering, state lifetime, dependencies and cleanup. Shared syntax does not prove a valid hook contract. |
|
|
103
|
+
| `react-large-component-pressure [file]` | Find components with concentrated source, JSX and hook behavior. | Yes | Size and counts locate review candidates; they do not prove the component should split. |
|
|
104
|
+
| `vue-component-duplicates [file]` | Compare repeated template tags, bindings, slots and directives. | Yes | Verify script behavior and consumers; template resemblance is insufficient for consolidation. |
|
|
105
|
+
| `vue-composable-candidates [file]` | Investigate repeated state, effects, requests and template bindings for a possible shared composable. | Yes | A composable is a reusable function that organizes Vue reactive behavior. Preserve state ownership, subscriptions and cleanup. |
|
|
106
|
+
| `vue-large-view-pressure [file]` | Locate concentrated template/script/style behavior, including external script lines. | Yes | A large view may own one coherent operation; counts alone do not establish multiple responsibilities. |
|
|
107
|
+
|
|
108
|
+
## Implementation integrity
|
|
109
|
+
|
|
110
|
+
Load `$scip-integrity-audit` when the question is whether a feature fulfills its promise. Each detector below supplies candidates; verify live routing and independently expected behavior through a real consumer.
|
|
111
|
+
|
|
112
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
113
|
+
| --- | --- | --- | --- |
|
|
114
|
+
| `not-implemented` | Look for consumed or externally exposed placeholders: throw-stubs, TODO/default returns or empty bodies. | Yes | A legitimate no-op, abstract contract or deliberate unsupported operation may match. A clean scan does not establish feature completeness. |
|
|
115
|
+
| `decorative-checkers` | Investigate checker-named functions lacking detected explicit failure syntax. | Yes | Delegated checks, implicit exceptions and property effects may still reject bad input. Test both valid and invalid cases. |
|
|
116
|
+
| `test-quality` | Find assertion-free tests, skipped tests with history, and tests asserting the same literal supplied by their mocks. | Yes | These patterns do not prove a test is useless; execution, delegated assertions and the tested contract matter. |
|
|
117
|
+
| `incomplete-migration` | After extraction, find new helpers used at some sites while similar old sites remain. Choose `--base` deliberately. | Yes | Also needs Git. Similar call patterns are candidates; distinct contracts or a staged migration can explain coexistence. |
|
|
118
|
+
| `twin-drift` | Compare same/near-name functions across files whose bodies have diverged. | Yes | Names and divergence do not establish that implementations should agree. Compare their contracts and live consumers. |
|
|
119
|
+
|
|
120
|
+
Source suppression comments apply to their named analysis: `ignore-extract` to slice-cohesion, `ignore-similar` to similarity/duplicate-body checks, `ignore-twin` to twin drift, and `ignore-passthrough` to forwarding candidates. Legacy `ignore-wrapper` means passthrough and `ignore-stale` means dead-code exclusions. An unrelated annotation must not hide a placeholder or unused parameter. Bare `ignore` is an explicit blanket opt-out; unknown category names do not become blanket opt-outs. Inventory totals count annotations and unexpired records, not suppressed findings or detector precision. Revisit the recorded reason when behavior changes.
|
|
121
|
+
|
|
122
|
+
## Tool operations
|
|
123
|
+
|
|
124
|
+
Load `$scip-setup` when the tool itself needs attention. Configuration and integration writes are actions; use them for an authorized setup, repair or accepted decision, not routine orientation. A configured watcher can be stopped, and `autoStart: false` prevents automatic startup.
|
|
125
|
+
|
|
126
|
+
| Command | Use when / why this control | Index | Interpretation and limits |
|
|
127
|
+
| --- | --- | --- | --- |
|
|
128
|
+
| `status` | Inspect freshness, the active index, watcher state and cache ownership. | No | Can report a missing index. Freshness does not prove every provider is available. |
|
|
129
|
+
| `doctor` | Diagnose a reported configuration, freshness, dependency or capability problem. | No | Follow the specific diagnosis; diagnostic success is not a behavioral code audit. |
|
|
130
|
+
| `capabilities` | Check whether a named claim has provider/language support; use `--matrix` for detail. | No | Describes tool support and limits. Do not run the matrix as a routine orientation step. |
|
|
131
|
+
| `stats` | Inspect index row counts, database size and modification time. | Yes | Inventory and storage measurements, not code quality or proof of freshness. |
|
|
132
|
+
| `check-deps` | Check whether scip-query and the detected language indexers are runnable. | No | An executable being present does not establish a successful project index. |
|
|
133
|
+
| `init` | Create a starter `.scipquery.json` when configuration is wanted. | No | Writes configuration; it does not evaluate or discover correct architectural responsibilities. |
|
|
134
|
+
| `config-validate` | Validate configuration and structured suppression/architecture/coupling records after editing them. | No | Valid syntax and consistency do not establish that the chosen policy is good. |
|
|
135
|
+
| `setup` | Bootstrap skills, agent guidance, parsers, indexing and readiness checks for a project. | No | Creates local/project state and needs suitable language tools. `--health` adds indexed specialists; plain source health is a separate operation. |
|
|
136
|
+
| `reindex` | Create or refresh the saved compiler index after a diagnosed need. | No | Needs the language indexers. Ordinary updates can use the running incremental service; `--allow-expensive-rebuild` explicitly permits a whole-project fallback. `--force` requests a rebuild even when inputs are unchanged and also permits the whole-project fallback. |
|
|
137
|
+
| `watch` | Inspect (`--status`), start (`--daemon`), stop or prune the project service; bare invocation watches in the foreground. | Mode | Status/control can work without an index. Successful incremental refresh needs a baseline, providers and applicable project configuration; an initial rebuild must be permitted. |
|
|
138
|
+
| `augment-sources` | Add source documents skipped by the upstream indexer after confirming that coverage gap. | Yes | Mutates index documents; adding source text does not manufacture compiler-resolved relationships. |
|
|
139
|
+
| `augment-vue` | Add compiler-resolved Vue references for a specific `--project` configuration. | Yes | Mutates the index and needs Vue tooling. Inspect unresolved/skipped reasons rather than interpreting omitted references as absent. |
|
|
140
|
+
| `install-skills` | Install or repair the six workflow links in user-level agent roots. | No | Writes package-owned links; `--all` has the same result. Existing user-owned replacements are preserved. |
|
|
141
|
+
| `setup-agent` | Write/update managed project guidance in AGENTS.md and CLAUDE.md. | No | Writes instructions; it does not by itself establish a fresh index or agent compliance. |
|
|
142
|
+
| `uninstall` | Remove selected package-owned global skill links or project guidance. | No | Start with `--dry-run` when choosing scope. `--global` and `--project` address different integrations; unrelated user files are retained. |
|
|
143
|
+
| `suppress <id>` | Record a reviewed finding that should be retained, with a reason, reason code and counterevidence. | No | Writes a decision; saving a graph claim does not itself verify that claim. Commit relevant suppression records. Replacing a decision requires its exact revision. |
|
|
144
|
+
|
|
145
|
+
## Internal controls
|
|
146
|
+
|
|
147
|
+
These five registered controls are not additional analysis choices. Run an emitted continuation unchanged; do not invent worker invocations.
|
|
148
|
+
|
|
149
|
+
| Control | Purpose |
|
|
150
|
+
| --- | --- |
|
|
151
|
+
| `continue <cursor>` | Optional compatibility transport for a saved output page. Recover omitted details only when they can change the decision; one page cannot establish an exhaustive result. |
|
|
152
|
+
| `hook-architecture-stop` | Checkout-local architecture Stop hook installed by setup when its conditions are met. |
|
|
153
|
+
| `__diff-impact-batch` | Private diff-impact worker protocol. |
|
|
154
|
+
| `__health-phase` | Private indexed-health phase worker protocol. |
|
|
155
|
+
| `__health-semantic-prewarm` | Private health provider-preparation protocol. |
|
|
156
|
+
|
|
157
|
+
## Choosing between similar controls
|
|
158
|
+
|
|
159
|
+
- **Map, policy or behavior:** system inventories groups; architecture checks declared rules; evidence/inspect establish selected relationships and behavior. None supplies an overall design grade.
|
|
160
|
+
- **Before versus after an edit:** context/change-surface/affected support planning; review and diff-impact evaluate the actual diff and answer different questions about it.
|
|
161
|
+
- **File, import, reference or call:** deps/rdeps connect files; imports/imported-by describe imports; refs includes non-call references; call-graph describes possible calls. Select the relationship needed for the claim.
|
|
162
|
+
- **Inventory versus observed interface:** system/outline show declarations; surface shows observed outside-module use. Neither proves a complete external package API.
|
|
163
|
+
- **Measurement versus equivalence:** complexity and connectivity counts locate pressure; similarity detectors use different comparisons. Matching counts, signatures or bodies do not establish safe replacement.
|
|
164
|
+
- **Slice versus split:** dependence-slice explains one variable occurrence; slice-cohesion suggests separated local computations. Both still require behavior and effect checks before extraction.
|
|
165
|
+
- **Candidate list versus deletion procedure:** dead classifies usage signals; cleanup-plan orders possible deletions and offers an isolated checker run. Neither authorizes deletion by itself.
|
|
166
|
+
|
|
167
|
+
Full flag documentation is in [the command reference](../../../docs/COMMAND_REFERENCE.md). When this guide and a runtime packet disagree, preserve the packet's limits and report the mismatch; do not strengthen the claim to fit the guide.
|
|
168
|
+
|
|
169
|
+
Ordinary oversized human results are saved to a temporary file with a short preview. Search displays the selected matching windows once; `--full` requests all source windows. The `system --source` inventory shows groups and dependencies; select a group for file/export/import detail. `evidence --detail` adds provider contracts and limitations to the selected relationship projection. `code --bindings` and `inspect --bindings` explicitly add referenced literal values; source reads omit those additions by default.
|
|
@@ -5,6 +5,8 @@ description: Install, diagnose, index, watch, repair, or clean up scip-query for
|
|
|
5
5
|
|
|
6
6
|
# SCIP Setup
|
|
7
7
|
|
|
8
|
+
Load `$scip-query` for shared mechanics. The [tool-operations command guide](../scip-query/references/command-guide.md#tool-operations) distinguishes configuration, indexing, augmentation, watcher control, skill installation, suppression records and removal. Use its prerequisites and effects to select the specific operation needed.
|
|
9
|
+
|
|
8
10
|
Use this skill when the exploration surface itself is unavailable, stale, slow, or consuming unexpected disk or CPU. An operational diagnosis identifies the concrete state transition that prevented a checkout-local index from becoming or remaining fresh; it does not infer failure from elapsed time alone.
|
|
9
11
|
|
|
10
12
|
1. Run `scip-query status` to inspect the active checkout, index generation, freshness, watcher, and cache ownership.
|
|
@@ -13,6 +15,6 @@ Use this skill when the exploration surface itself is unavailable, stale, slow,
|
|
|
13
15
|
4. Run `scip-query watch` only when the repository needs a long-lived incremental watcher and setup did not establish one.
|
|
14
16
|
5. Use the exact recovery command printed by status or doctor. Do not delete caches, force a full rebuild, or reinstall globally merely because an index is stale; first identify whether configuration, project membership, toolchain identity, or an ordinary changed file caused the transition.
|
|
15
17
|
|
|
16
|
-
Each worktree owns its mutable generation and may reuse an immutable baseline from a related checkout. A full rebuild is justified when configuration, toolchain identity, or project membership invalidates the prior compiler graph. Ordinary edits should use the incremental path. Cache cleanup must retain active checkout generations and remove only records whose owning roots are gone or whose retention window has expired.
|
|
18
|
+
Each worktree owns its mutable generation and may reuse an immutable baseline from a related checkout. A full rebuild is justified when configuration, toolchain identity, or project membership invalidates the prior compiler graph. Ordinary edits should use the incremental path. The bundled TypeScript compiler and incremental emitter share declaration-based identifiers for anonymous types and inferred object properties. Upgrading an index from the older numbered identifiers requires one clean build; those generations cannot be mixed. If rebuild policy forbids recovery, the previous accepted generation remains intact but stale. Follow the printed recovery command without weakening resource policy. Cache cleanup must retain active checkout generations and remove only records whose owning roots are gone or whose retention window has expired.
|
|
17
19
|
|
|
18
|
-
After a repair, prove the requested outcome directly: status is fresh,
|
|
20
|
+
After a repair, prove the requested outcome directly: status is fresh, a supported source edit updates incrementally, an unsupported subset recovers through a clean build or preserves the accepted generation with an explicit stale-state reason, simultaneous worktrees remain isolated, deleted worktree caches age out, or repeated cleanup reaches a disk plateau. Do not run `health` as proof of index freshness and do not run exploration commands as a substitute for lifecycle diagnostics.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name:
|
|
3
|
-
short_description:
|
|
4
|
-
default_prompt:
|
|
2
|
+
display_name: "SCIP Setup"
|
|
3
|
+
short_description: "Install, diagnose, and repair scip-query."
|
|
4
|
+
default_prompt: "Use $scip-setup to identify and repair the concrete tool lifecycle problem."
|
package/dist/by-kind-H3P6BR5G.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a,b}from"./chunk-NGKBOT6G.js";import"./chunk-MTDBHTSF.js";import"./chunk-2VAHDDLM.js";import"./chunk-YXPUP5G2.js";import"./chunk-BL6DCHQP.js";import"./chunk-ATXPTSEI.js";import"./chunk-CKBUBRYD.js";import"./chunk-IW5XQG5G.js";import"./chunk-H5EXS3HM.js";import"./chunk-HGFDYOVB.js";import"./chunk-7HXT6YLU.js";import"./chunk-7F45LJKI.js";export{a as byKind,b as kindCounts};
|
|
2
|
-
//# sourceMappingURL=by-kind-H3P6BR5G.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-ZGIHTH27.js";import"./chunk-7KCZELVM.js";import"./chunk-BGBBVSH4.js";import"./chunk-AADQLOQ4.js";import"./chunk-MTDBHTSF.js";import"./chunk-WDSFQDPN.js";import"./chunk-ANLNLY66.js";import"./chunk-JCSAZ35V.js";import"./chunk-FI7VGOR4.js";import"./chunk-WRQXLNYE.js";import"./chunk-L7KTFEAV.js";import"./chunk-2USA3S3P.js";import"./chunk-BJT7LSPK.js";import"./chunk-5BIKR67W.js";import"./chunk-CZW5MZ5B.js";import"./chunk-F4FNK44D.js";import"./chunk-ODPDP7A4.js";import"./chunk-MOKUWRHO.js";import"./chunk-FVFDOIM3.js";import"./chunk-2VAHDDLM.js";import"./chunk-YXPUP5G2.js";import"./chunk-BL6DCHQP.js";import"./chunk-EHYDXE3Z.js";import"./chunk-2OOY75BW.js";import"./chunk-U6KCHXJ4.js";import"./chunk-T3I6NHBH.js";import"./chunk-ATXPTSEI.js";import"./chunk-CKBUBRYD.js";import"./chunk-IW5XQG5G.js";import"./chunk-T3CZAZSI.js";import"./chunk-B3PYOSCX.js";import"./chunk-H5EXS3HM.js";import"./chunk-HGFDYOVB.js";import"./chunk-JFMEXGFE.js";import"./chunk-7HXT6YLU.js";import"./chunk-7F45LJKI.js";export{a as callGraph};
|
|
2
|
-
//# sourceMappingURL=call-graph-VTG2CUOQ.js.map
|
package/dist/chunk-26CT72HM.js
DELETED
package/dist/chunk-2BMSSRBH.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as L}from"./chunk-BGBBVSH4.js";import{a as I}from"./chunk-BJWFVAA5.js";import{i as fe}from"./chunk-U3SXIMII.js";import{b as te,d as oe,e as re,f as ae,g as se,h as le,j as T,k as ce,l as _}from"./chunk-SKKXTABJ.js";import{d as ie}from"./chunk-KK7GPALL.js";import{f as ee,h as ne}from"./chunk-NJQISBL4.js";import{b as C}from"./chunk-FLMTCX5R.js";import{b as Q}from"./chunk-BOW7SSQH.js";import{a as U,e as W,i as P,j as A,l as X,m as Y,v,w as J,x as Z,y as $,z as N}from"./chunk-C7C6AKAT.js";import{t as z,v as S}from"./chunk-RBAD4GJ2.js";import{A as y,B as O,O as H,a as M}from"./chunk-ZLMXIQLC.js";import{h as B,m as D}from"./chunk-ETC674NS.js";import{d as w,y as G}from"./chunk-KNLQGXVH.js";function j(n,e,t={}){let i=new Map;if(e&&e.length===0)return i;let r=M(n,{includeIgnored:!1}),o=ae(n),a=e??J(n),f=new Set(a.map(m=>m.symbolId)),c=Ce(a);return ge(n,i,r,o,f,c),he(n,i,a,f),ve(n,i,r,o,f,c),t.semantic!==!1&&t.semanticEvidence&&Le(i,t.semanticEvidence.callerMap(n,Ie(a))),i}function ge(n,e,t,i,r,o){for(let a of t){if(!y(a))continue;let f=z(n,a);if(f)for(let c of f){if(o&&!o.has(c.calleeLeaf))continue;let m=oe(a,i.get(c.calleeLeaf)??[]);if(!m||m.length===0)continue;let s=re(n,a,m,c.memberAccess,c.calleeQualifier);s&&r.has(s.symbolId)&&s.file!==a&&K(e,s.symbolId,a)}}}function he(n,e,t,i){let r=Me(t);for(let o of Re(n,i))n.isIgnored(o.relative_path)||De(o,r.get(o.symbol_id))||K(e,o.symbol_id,o.relative_path)}function Re(n,e){return ie(n,e?[...e]:void 0)}function Me(n){let e=new Map;for(let t of n)e.set(t.symbolId,{docId:t.documentId,startLine:t.startLine,endLine:t.endLine});return e}function De(n,e){return!!e&&e.docId===n.document_id&&n.chunk_start>=e.startLine&&n.chunk_end<=e.endLine}function ve(n,e,t,i,r,o){for(let a of t){if(y(a)!=="rust")continue;let f=S(n,a,{includeRustAttributeNames:!0});if(f.length!==0)for(let{name:c}of f){if(o&&!o.has(c))continue;let m=i.get(c);if(m)for(let s of m)r.has(s.symbolId)&&s.file!==a&&K(e,s.symbolId,a)}}}function K(n,e,t){let i=n.get(e);i||(i=new Set,n.set(e,i)),i.add(t)}function Ce(n){let e=new Set;for(let t of n){let i="leaf"in t&&typeof t.leaf=="string"?t.leaf:"symbol"in t&&typeof t.symbol=="string"?W(t.symbol):"";i&&e.add(i)}return e.size>0?e:null}function Ie(n){return n.filter(e=>"relativePath"in e&&"symbol"in e&&"leaf"in e)}function Le(n,e){for(let[t,i]of e){let r=n.get(t);r||(r=new Set,n.set(t,r));for(let o of i)r.add(o)}}var Fe=w("cross-file-caller-files",{clearGroups:["whole-project","source-file"]}),xe=w("source-fallback-caller-files",{clearGroups:["whole-project","source-file"]});function ue(n,e,t){let i=e.filter(o=>!n.has(o.symbolId));if(i.length>0){let o=t(i);for(let a of i)n.set(a.symbolId,o.get(a.symbolId)??new Set)}let r=new Map;for(let o of e){let a=n.get(o.symbolId);a&&a.size>0&&r.set(o.symbolId,new Set(a))}return r}function q(n,e,t={}){if(e===void 0)return j(n,e,t);let i=ue(Fe.get(n,()=>new Map),e,r=>j(n,r,{semantic:!1}));return t.semantic===!1||!t.semanticEvidence?i:me(i,t.semanticEvidence.callerMap(n,e.filter(r=>"relativePath"in r&&"symbol"in r&&"leaf"in r)))}function V(n,e,t={}){return t.skipPath?_(n,e,t):ue(xe.get(n,()=>new Map),e,i=>_(n,i))}function de(n,e,t={}){let i=q(n,e,{semantic:t.semantic,semanticEvidence:t.semanticEvidence});return t.sourceFallback===!1?i:me(i,V(n,e))}function me(n,e){let t=new Map;for(let[i,r]of n)t.set(i,new Set(r));for(let[i,r]of e){let o=t.get(i)??new Set;for(let a of r)o.add(a);t.set(i,o)}return t}function be(n,e,t){let i=e.identifierResolution==="strict"?T:ce,r=e.candidateNames?se(e.candidateNames):null,o=0,a=0,f=0,c=0,m="";for(let s of e.paths)if(o+=1,m=s,!(!y(s)&&!(e.includeVueSfc&&O(s)))&&!n.isIgnored(s)&&!e.skipPath?.(s))try{if(r&&!le(B(n,s),r))continue;a+=1;let h=(u,b,k,g)=>{if(e.candidateNames&&!e.candidateNames.has(u))return;f+=1;let R=e.resolveTargets?e.resolveTargets({sourceFile:s,name:u,kind:b,defaultTargets:g}):g();for(let E of R)c+=1,t({sourceFile:s,name:u,target:E,occurrences:k,kind:b})},x=te(n,s);for(let[u,b]of x)h(u,"identifier",b.length,()=>i(n,s,u));for(let u of S(n,s,{includeCrossLanguageDispatchNames:e.includeCrossLanguageDispatchNames,includeRustAttributeNames:e.includeRustAttributeNames})){let b=u.kind==="cross-language-dispatch"?()=>T(n,s,u.name):()=>i(n,s,u.name);h(u.name,u.kind,u.occurrences,b)}}finally{e.afterPath?.(s),o%10===0&&G("source-reference-scan.progress",()=>{},()=>({scannedPaths:o,currentPath:m,candidateMatchedPaths:a,visitedNames:f,visitedHits:c}))}}function pe(n,e={}){let{scope:t,files:i,minLoc:r=1,maxLoc:o=Number.POSITIVE_INFINITY,excludeSymbol:a,excludeEntrySurfaces:f=!1,excludeTypesFiles:c=!1,excludeRootedSymbols:m=!1,requireFunctionLikeSymbol:s=!1,requireCallableSymbol:F=!1,excludeRustTraitImplMembers:h=!1,includeSuppressed:x=!1,sortByLocDesc:u=!1}=e,b=[],k=ke(n,{scope:t,files:i,requireFunctionLikeSymbol:s,requireCallableSymbol:F}),g=new Map,R=new Map,E=l=>{let d=g.get(l);if(d!==void 0)return d;let p=ee(n,l);return g.set(l,p),p},Se=l=>{let d=R.get(l);if(d!==void 0)return d;let p=C(l);return R.set(l,p),p};for(let l of k){let d=l.relativePath;if(n.isIgnored(d)||f&&E(d)||!Ee(l,{requireFunctionLikeSymbol:s,requireCallableSymbol:F})||a!==void 0&&l.symbol===a)continue;let p=L(l);p<r||p>o||c&&we(d)||m&&ne(n,l.symbol,d)||h&&X(l.symbol)||Se(d)!=="test"&&(Y(l.symbol)||!x&&D(n,d,l.startLine)||b.push(l))}return u?b.sort((l,d)=>L(d)-L(l)):b}function ke(n,e){return e.files!==void 0?[...new Set(e.files.map(i=>i.replace(/\\/g,"/")))].sort().filter(i=>!e.scope||i.includes(e.scope)).flatMap(i=>v(n,i)):e.requireCallableSymbol?N(n,{scope:e.scope,symbolMatches:P,sqlPrefilter:"callable"}):e.requireFunctionLikeSymbol?N(n,{scope:e.scope,symbolMatches:A,sqlPrefilter:"function-like"}):$(n,e.scope)}function Ee(n,e){return e.requireCallableSymbol?P(n.symbol):e.requireFunctionLikeSymbol?A(n.symbol):n.isFunctionLike}function we(n){return(n.split("/").pop()??"").includes("types")}var ye=class{constructor(e){this.db=e}db;scopedDefinitions(e){return Z(this.db,e)}definitionsForFile(e){return v(this.db,e)}productionCallableDefinitions(e={}){return pe(this.db,e)}calleeMap(e,t={}){return fe(this.db,e,{...t,semanticEvidence:I})}crossFileCallerMap(e,t={}){return q(this.db,e,{...t,semanticEvidence:I})}sourceFallbackCallerFiles(e,t={}){return V(this.db,e,t)}callerFileMap(e,t={}){return de(this.db,e,{...t,semanticEvidence:I})}frameworkReferencedSymbolIds(e){let t=new Map;for(let r of e){if(!r.leaf)continue;let o=t.get(r.leaf)??[];o.push(r.symbolId),t.set(r.leaf,o)}let i=new Set;for(let r of M(this.db,{includeIgnored:!1}))if(y(r)==="rust")for(let{name:o}of S(this.db,r,{includeRustAttributeNames:!0}))for(let a of t.get(o)??[])i.add(a);return i}symbolsWithNonSelfCallees(e,t={}){if(e.length===0)return new Set;let i=new Map(e.map(o=>[o.symbolId,o.symbol])),r=this.calleeMap(e,t);return new Set([...r.entries()].filter(([o,a])=>{let f=i.get(o);return a.some(c=>c.symbol!==f)}).map(([o])=>o))}fileDependencyGraph(e){return Q(this.db,e)}fileKind(e){return C(e)}hasSuppressionComment(e){return D(this.db,e.relativePath,e.startLine)}sourceFiles(){return H(this.db)}scanSourceReferences(e,t){be(this.db,e,t)}callableSignature(e){let t=U(this.db).forFile(e.relativePath,{facts:!0}).facts?.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine);return t?{paramCount:t.paramCount}:null}};export{V as a,me as b,ye as c};
|
|
2
|
-
//# sourceMappingURL=chunk-2BMSSRBH.js.map
|
package/dist/chunk-2M2LSIMY.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{a as z}from"./chunk-GHNPACNP.js";import{b as C}from"./chunk-6MFXCMZC.js";import{c as W}from"./chunk-RVZC6TJE.js";import{b as U}from"./chunk-POBJ6FR2.js";import{h as D}from"./chunk-AADQLOQ4.js";import{a as _}from"./chunk-HX4X7KG3.js";import{a as k,b as j,e as A}from"./chunk-2USA3S3P.js";import{C as I,K as O,T as p,Y as T,i as F,k as M,l as B}from"./chunk-2VAHDDLM.js";import{c as S,d as w,l as $}from"./chunk-BL6DCHQP.js";import{m as P}from"./chunk-7HXT6YLU.js";import{basename as me,extname as K}from"path";var oe=12,se=280;function y(n,e,t,o){let i=ae(n,e,t,o);if(i.size===0)return ce();let r=[],a=new Set,u=(l,d,c,f)=>{if(d===e&&c<=o&&f>=t)return;let m=`${d}:${c}:${f}:${l}`;a.has(m)||(a.add(m),r.push({name:l,relativePath:d,startLine:c,endLine:f}))};for(let l of p(n,e))i.has(l.leaf)&&u(l.leaf,l.relativePath,l.startLine,l.endLine);for(let l of O(n,e)){let d=l.localName;if(!d||!i.has(d)||!l.sourcePath||l.kind==="namespace")continue;let c=l.importedName==="default"?d:l.importedName;for(let f of _(n,l.sourcePath,c,{maxReexportDepth:3}))u(d,f.relativePath,f.startLine,f.endLine)}r.sort(H);let s=r.map(l=>{let d=le(n,l);return d?{...l,source:d}:null}).filter(l=>l!==null).slice(0,oe);return x(s)}function X(n,e=[]){return x(ue(n.flatMap(t=>t?.inline??[]),e))}function ae(n,e,t,o){let i=I(n,e),r=new Set;if(!i)return r;for(let a=t;a<=o;a+=1)for(let u of i.identifiersByLine[a]??[])r.add(u);return r}function le(n,e){if(e.startLine!==e.endLine)return null;let t=(B(n,e.relativePath)[e.startLine]??"").trim();if(!t||t.length>se)return null;let o=t.indexOf("=");if(o<0||t[o+1]===">")return null;let i=t.slice(o+1).replace(/(?:\/\/|#).*$/u,"").trim();if(!i||i.includes("${")||/\b(?:function|class|struct|interface|trait|enum|lambda)\b/u.test(i))return null;let a=i.replace(/(['"`])(?:\\.|(?!\1).)*\1/gu,"").replace(/\b(?:0[xX][\dA-Fa-f_]+|0[bB][01_]+|0[oO][0-7_]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[eE][+-]?\d+)?)n?\b/gu,""),u=new Set(["true","false","null","undefined","None","True","False"]);return(a.match(/[A-Za-z_][A-Za-z0-9_]*/gu)??[]).some(l=>!u.has(l))?null:t}function ue(n,e){let t=new Map;for(let o of n){if(de(o,e))continue;let i=`${o.relativePath}:${o.startLine}:${o.endLine}:${o.name}`;t.has(i)||t.set(i,{...o})}return[...t.values()].sort(H)}function de(n,e){return e.some(t=>t.relativePath===n.relativePath&&t.startLine<=n.startLine&&t.endLine>=n.endLine)}function H(n,e){return n.relativePath.localeCompare(e.relativePath)||n.startLine-e.startLine||n.name.localeCompare(e.name)}function x(n){return{coverage:"indexed-project-literal-values",inline:n}}function ce(){return x([])}function G(n,e){let t=W(n,e);if(!t)return[];let o=T(n,[t],{sort:!0});if(o.length===0)return[];let i=Math.max(0,M(F(n,t)).length-1),r=o.map(s=>({symbol:s.symbol,shortName:s.shortName,startLine:s.startLine,endLine:Math.min(s.endLine,i),signature:s.signature,children:[]})),a=new Map;for(let s of r)a.set(s.symbol,s);let u=[];for(let s=0;s<o.length;s++){let l=o[s],d=r[s];if(l.enclosingSymbol&&a.has(l.enclosingSymbol)){a.get(l.enclosingSymbol).children.push(d);continue}let c=null,f=1/0;for(let m of r)if(m!==d&&m.startLine<=d.startLine&&m.endLine>=d.endLine){if(m.startLine===d.startLine&&m.endLine===d.endLine&&!$(m.symbol,d.symbol))continue;let g=m.endLine-m.startLine;g<f&&(f=g,c=m)}c?c.children.push(d):u.push(d)}return u}function Je(n,e,t={}){let{context:o=0}=t,i=ie(e);if(i)return re(n,i.filePath,i.startLine,i.endLine,o);let r=ne(n,e);if(r)return Y(n,r);let a=k(n,e);return a?h(n,a,o):null}function Qe(n,e,t={}){if(e.length===0)throw new RangeError("code requires at least one selector.");if(e.length>24)throw new RangeError(`code accepts at most ${24} selectors per complete packet; received ${e.length}.`);let o=t.context??0,i=t.members??"exported",r=e.map(s=>ge(n,s,o,i)),a=r.flatMap(s=>s.results),u=a.map(s=>({relativePath:s.relativePath,startLine:s.startLine,endLine:s.endLine}));return{requested:e.length,matched:r.filter(s=>s.status==="matched").length,ambiguous:r.filter(s=>s.status==="ambiguous").length,missing:r.filter(s=>s.status==="missing").length,entries:r,bindingClosure:X(a.map(s=>s.bindingClosure),u)}}function ge(n,e,t,o){let i=ie(e);if(i){let d=re(n,i.filePath,i.startLine,i.endLine,t);return d?pe(n,e,d,t):R(n,e,"definition-source-unreadable")}let r=ne(n,e);if(r)return be(n,e,r,t,o);let a=j(n,e);if(!a.match)return R(n,e,"definition-not-found");let u=Ne(n,a),s=u.map(te);if(a.total>1){let d=a.total<=4&&u.length===a.total;return{selector:e,status:"ambiguous",kind:"source",totalCandidates:a.total,results:d?u.flatMap(c=>{let f=h(n,c,t);return f?[f]:[]}):[],definitions:[],candidates:s,omittedCandidates:Math.max(0,a.total-s.length),suggestions:[]}}let l=h(n,a.match,t);return l?Re(e,l):R(n,e,"definition-source-unreadable")}function pe(n,e,t,o){let i=p(n,t.relativePath).filter(l=>!Z(l,t.relativePath)),r=he(n,t,i),a=V(r.map(l=>h(n,l,o)).filter(l=>l!==null)).filter(l=>!ee(t,l)),u=new Set(a.map(l=>l.symbol)),s=r.filter(l=>!u.has(l.symbol)&&!(t.startLine<=l.startLine&&t.endLine>=l.endLine)).map(te);return{selector:e,status:"matched",kind:"source",totalCandidates:1,results:[t,...a],definitions:[],candidates:[],omittedCandidates:0,suggestions:[],rangeCoverage:{basis:"requested-range-and-same-file-call-closure",referencedDefinitions:r.length,returnedDefinitions:r.length-s.length,returnedBodies:a.length,omittedDefinitions:s.length,omittedLedger:s}}}function he(n,e,t){if(!b(e.freshness))return[];if(t.length===0)return[];let o=D(n,t,{additive:!1,semantic:!1}),i=new Map;for(let a of t){let u=i.get(a.symbol)??[];u.push(a),i.set(a.symbol,u)}let r=new Map;for(let a of t)if(!(a.endLine<e.startLine||a.startLine>e.endLine)){for(let u of o.get(a.symbolId)??[])if(u.file===e.relativePath&&!((u.source==="ast-callsite"||u.source==="scip-occurrence")&&(u.chunkId<e.startLine||u.chunkId>e.endLine)))for(let s of i.get(u.symbol)??[])r.set(s.symbolId,s)}return Q(n,[...r.values()],t)}function be(n,e,t,o,i){let r=t.relativePath,a=ye(n,r),u=b(t.freshness)?p(n,r).filter(g=>!Z(g,r)):[],s=u.filter(g=>z(n,g)),l=s.length>0?s:Ce(a,u),d=i==="all"?[]:Q(n,l,u),c=i==="all"||u.length===0?[Y(n,t)]:V(d.map(g=>h(n,g,o)).filter(g=>g!==null)),f=ve(a,c),m=Se(r,a,c),v=De(a);return{selector:e,status:"matched",kind:"file-source",totalCandidates:1,results:c,definitions:[],candidates:[],omittedCandidates:0,suggestions:[],fileCoverage:{members:i,basis:i==="all"||u.length===0?"complete-file-source":s.length>0?"explicit-exports-and-same-file-reference-closure":"top-level-and-same-file-reference-closure",totalDefinitions:v,returnedDefinitions:f,returnedBodies:c.length,omittedDefinitions:Math.max(0,v-f),omittedLedger:m}}}function Ce(n,e){let t=new Set(n.map(o=>o.symbol));return e.filter(o=>t.has(o.symbol))}function ye(n,e){return G(n,e).flatMap(t=>Le(t,e)?t.children:[t])}function Z(n,e){return J(e).has(n.leaf)}function Le(n,e){return J(e).has(w(n.symbol))}function J(n){let e=me(n);return new Set([e,e.slice(0,Math.max(0,e.length-K(e).length))])}function Q(n,e,t){if(e.length===0)return[];let o=D(n,t,{additive:!0,semantic:!1}),i=new Map;for(let u of t){let s=i.get(u.symbol)??[];s.push(u),i.set(u.symbol,s)}let r=new Map,a=[...e];for(;a.length>0;){let u=a.shift();if(!r.has(u.symbolId)){r.set(u.symbolId,u);for(let s of o.get(u.symbolId)??[])for(let l of i.get(s.symbol)??[])r.has(l.symbolId)||a.push(l)}}return[...r.values()].sort(xe)}function V(n){let e=[...n].sort((o,i)=>o.relativePath.localeCompare(i.relativePath)||o.startLine-i.startLine||i.endLine-o.endLine),t=[];for(let o of e)t.some(i=>ee(i,o))||t.push(o);return t}function Y(n,e){let t=e.text.split(`
|
|
2
|
-
`);return{symbol:e.relativePath,shortName:e.relativePath,relativePath:e.relativePath,startLine:0,endLine:Math.max(0,t.length-1),language:n.get("SELECT language FROM documents WHERE relative_path = ?",e.relativePath)?.language??E(e.relativePath),source:e.text,freshness:e.freshness,...b(e.freshness)?{bindingClosure:y(n,e.relativePath,0,Math.max(0,t.length-1))}:{}}}function ve(n,e){return L(n).filter(t=>e.some(o=>N(t,o))).length}function Se(n,e,t){let o=[];return q(o,n,e,t,0),o}function q(n,e,t,o,i){for(let r of t){if(o.some(u=>N(r,u)))continue;let a=L(r.children).filter(u=>!o.some(s=>N(u,s))).length;n.push({symbol:r.symbol,shortName:r.shortName,relativePath:e,startLine:r.startLine,endLine:r.endLine,signature:r.signature,depth:i,nestedDefinitions:a}),q(n,e,r.children,o,i+1)}}function L(n){return n.flatMap(e=>[e,...L(e.children)])}function De(n){return L(n).length}function N(n,e){return e.startLine<=n.startLine&&e.endLine>=n.endLine}function ee(n,e){return n.relativePath===e.relativePath&&n.startLine<=e.startLine&&n.endLine>=e.endLine}function xe(n,e){return n.startLine-e.startLine||e.endLine-n.endLine||n.symbol.localeCompare(e.symbol)}function Re(n,e){return{selector:n,status:"matched",kind:"source",totalCandidates:1,results:[e],definitions:[],candidates:[],omittedCandidates:0,suggestions:[]}}function R(n,e,t){return{selector:e,status:"missing",kind:"source",totalCandidates:0,results:[],definitions:[],candidates:[],omittedCandidates:0,suggestions:A(n,e,5),reason:t}}function ne(n,e){try{return C(n,e)}catch(t){if(t instanceof P)return null;throw t}}function Ne(n,e){if(!e.match)return[];let t=[e.match];for(let i of e.candidates){let r=p(n,i.relativePath).find(a=>a.symbol===i.symbol&&a.startLine===i.startLine);r&&t.push(r)}let o=new Set;return t.filter(i=>{let r=`${i.relativePath}:${i.startLine}:${i.endLine}:${i.symbol}`;return o.has(r)?!1:(o.add(r),!0)})}function te(n){return{symbol:n.symbol,shortName:S(n.symbol),relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine}}function ie(n){let e=n.match(/^(.+):(\d+)-(\d+)$/);if(!e)return null;let t=Number(e[2]),o=Number(e[3]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError(`Source range start line must be a positive integer, got "${e[2]}".`);if(!Number.isSafeInteger(o)||o<t)throw new RangeError(`Source range end line must be an integer at or after ${t}, got "${e[3]}".`);return{filePath:e[1],startLine:t,endLine:o}}function h(n,e,t){let o=n.get("SELECT language FROM documents WHERE relative_path = ?",e.relativePath),i=C(n,e.relativePath);if(!i)return null;let a=i.text.split(`
|
|
3
|
-
`),u=e.endLine<=e.startLine?U(n,e.relativePath,e.startLine,Number.MAX_SAFE_INTEGER):null,s=u?.unitType?u.unitStartLine:e.startLine,l=u?.unitType?u.unitEndLine:e.endLine,d=Math.max(0,s-t),c=Math.min(a.length-1,l+t),f=a.slice(d,c+1).join(`
|
|
4
|
-
`);return{symbol:e.symbol,shortName:S(e.symbol),relativePath:e.relativePath,startLine:d,endLine:c,language:o?.language??E(e.relativePath),source:f,freshness:i.freshness,...b(i.freshness)?{bindingClosure:y(n,e.relativePath,d,c)}:{}}}function re(n,e,t,o,i){let r=C(n,e);if(!r)return null;let a=n.get("SELECT language FROM documents WHERE relative_path = ?",r.relativePath),s=r.text.split(`
|
|
5
|
-
`);if(t>s.length)return null;let l=Math.max(0,t-1-i),d=Math.min(s.length-1,o-1+i),c=s.slice(l,d+1).join(`
|
|
6
|
-
`);return{symbol:`${r.relativePath}:${t}-${o}`,shortName:`${r.relativePath}:${t}-${o}`,relativePath:r.relativePath,startLine:l,endLine:d,language:a?.language??E(r.relativePath),source:c,freshness:r.freshness,...b(r.freshness)?{bindingClosure:y(n,r.relativePath,l,d)}:{}}}function b(n){return!!(n&&n.semantic.state!=="stale"&&n.semantic.basis!=="no-compiler-document")}function E(n){switch(K(n).toLowerCase()){case".ts":case".tsx":case".mts":case".cts":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":case".pyi":return"python";case".rs":return"rust";case".go":return"go";case".java":return"java";case".kt":case".kts":return"kotlin";case".scala":return"scala";case".rb":return"ruby";case".php":return"php";case".cs":return"csharp";case".vb":return"vb";case".dart":return"dart";case".c":case".h":return"c";case".cc":case".cpp":case".cxx":case".hpp":case".hh":case".hxx":return"cpp";case".vue":return"vue";default:return null}}export{G as a,Je as b,Qe as c};
|
|
7
|
-
//# sourceMappingURL=chunk-2M2LSIMY.js.map
|
package/dist/chunk-2N6WBNDC.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import{b as a}from"./chunk-RVZC6TJE.js";import{e as l}from"./chunk-JFMI5SGB.js";import{c as o,f as i}from"./chunk-BL6DCHQP.js";function _(e,t){let r=a(e,t);return r.length===0?[]:u([...c(e,r),...f(e,r)]).filter(s=>!e.isIgnored(s.relative_path)).map(d)}function R(e,t){let r=a(e,t);return r.length===0?[]:u(c(e,r)).filter(s=>!e.isIgnored(s.relative_path)).map(s=>({...d(s),basis:"external-reference"}))}function c(e,t){let r=t.map(()=>"?").join(", ");return e.all(`SELECT DISTINCT d1.relative_path, gs.symbol
|
|
2
|
-
FROM mentions m
|
|
3
|
-
JOIN chunks c ON m.chunk_id = c.id
|
|
4
|
-
JOIN documents d1 ON c.document_id = d1.id
|
|
5
|
-
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
6
|
-
WHERE d1.relative_path NOT IN (${r})
|
|
7
|
-
AND (
|
|
8
|
-
EXISTS (
|
|
9
|
-
SELECT 1
|
|
10
|
-
FROM defn_enclosing_ranges der
|
|
11
|
-
JOIN documents d2 ON der.document_id = d2.id
|
|
12
|
-
WHERE der.symbol_id = gs.id
|
|
13
|
-
AND d2.relative_path IN (${r})
|
|
14
|
-
)
|
|
15
|
-
OR EXISTS (
|
|
16
|
-
SELECT 1
|
|
17
|
-
FROM mentions def_m
|
|
18
|
-
JOIN chunks def_c ON def_m.chunk_id = def_c.id
|
|
19
|
-
JOIN documents d2 ON def_c.document_id = d2.id
|
|
20
|
-
WHERE def_m.symbol_id = gs.id
|
|
21
|
-
AND def_m.role = 1
|
|
22
|
-
AND d2.relative_path IN (${r})
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
AND m.role != 1
|
|
26
|
-
AND ${e.localSymbolPredicate}
|
|
27
|
-
${e.pathExclusionsFor("d1")}
|
|
28
|
-
ORDER BY d1.relative_path`,...t,...t,...t)}function f(e,t){let r=new l(e);return t.flatMap(s=>r.definitionsForFile(s).filter(n=>i(n.symbol)).map(n=>({relative_path:s,symbol:n.symbol})))}function u(e){let t=new Set;return e.filter(r=>{let s=`${r.relative_path}|${r.symbol}`;return t.has(s)?!1:(t.add(s),!0)})}function d(e){return{consumer:e.relative_path,symbol:e.symbol,shortName:o(e.symbol)}}export{_ as a,R as b};
|
|
29
|
-
//# sourceMappingURL=chunk-2N6WBNDC.js.map
|
package/dist/chunk-2OOY75BW.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as f,c as m}from"./chunk-JFMEXGFE.js";import{execFileSync as b}from"child_process";import{platform as S}from"os";var w=1e3,T=2*1024*1024,I=25;function N(e,n,r=M){let t=r.readIdentity(e),o=new Map;return t&&o.set(e,t),{rootPid:e,rootIdentity:t,ownsProcessGroup:n,knownMembers:o}}async function k(e,n,r=M){if(!e.rootIdentity){let a=await l(e,n.gracefulMs+n.forceMs,r);return{reaped:a,reason:a?"terminated":"identity-unavailable",detail:a?void 0:`Could not establish the birth identity of process ${e.rootPid}.`}}let t=h(e,r);if(t==="mismatch")return{reaped:!1,reason:"identity-mismatch",detail:`Process ${e.rootPid} no longer has the identity owned by this runner.`};if(t==="exited"&&!g(e,r))return{reaped:!0,reason:"terminated"};if(r.platform==="win32"){try{r.terminateWindowsTree(e.rootPid)}catch(u){let c=await l(e,n.forceMs,r);return{reaped:c,reason:c?"terminated":"signal-failed",detail:c?void 0:p(u)}}let a=await l(e,n.forceMs,r);return{reaped:a,reason:a?"terminated":"deadline"}}let o=P(e,"SIGTERM",r);if(await l(e,n.gracefulMs,r))return{reaped:!0,reason:"terminated"};let s=P(e,"SIGKILL",r);return await l(e,n.forceMs,r)?{reaped:!0,reason:"terminated"}:s?{reaped:!1,reason:s.reason,detail:s.detail}:o?{reaped:!1,reason:o.reason,detail:o.detail}:{reaped:!1,reason:"deadline",detail:`Process tree ${e.rootPid} did not exit before its termination deadline.`}}function h(e,n){let r=n.readIdentity(e.rootPid);if(!r)return"exited";if(!e.rootIdentity||!f(e.rootIdentity,r))return"mismatch";e.knownMembers.set(e.rootPid,r);for(let t of n.listDescendantPids(e.rootPid)){let o=n.readIdentity(t);o&&e.knownMembers.set(t,o)}return"owned"}function P(e,n,r){let t=h(e,r);if(t==="mismatch")return{reason:"identity-mismatch",detail:`Process ${e.rootPid} changed identity before ${n}.`};if(t==="owned"&&e.ownsProcessGroup)try{return r.signal(-e.rootPid,n),null}catch(i){if(!y(i))return{reason:"signal-failed",detail:p(i)}}let o=null;for(let i of e.knownMembers.values()){let s=r.readIdentity(i.pid);if(!(!s||!f(i,s)))try{r.signal(i.pid,n)}catch(d){!y(d)&&o===null&&(o=p(d))}}return o===null?null:{reason:"signal-failed",detail:o}}async function l(e,n,r){let t=r.now()+n;for(;g(e,r);){if(r.now()>=t)return!1;await r.sleep(Math.min(I,Math.max(1,t-r.now())))}return!0}function g(e,n){if(!e.rootIdentity&&n.isProcessAlive(e.rootPid))return!0;for(let r of e.knownMembers.values()){let t=n.readIdentity(r.pid);if(t&&f(r,t))return!0}return!!(e.ownsProcessGroup&&n.isProcessGroupAlive(e.rootPid))}function x(e){let n=R(!1),r=new Map;for(let s of n.split(/\r?\n/)){let d=/^\s*(\d+)\s+(\d+)\s*$/.exec(s);if(!d)continue;let a=Number(d[1]),u=Number(d[2]),c=r.get(u)??[];c.push(a),r.set(u,c)}let t=[],o=[...r.get(e)??[]],i=new Set;for(;o.length>0;){let s=o.pop();i.has(s)||(i.add(s),t.push(s),o.push(...r.get(s)??[]))}return t}function R(e){return b("ps",["-axo",e?"pid=,ppid=,rss=":"pid=,ppid="],{encoding:"utf8",timeout:w,maxBuffer:T,env:{...process.env,LC_ALL:"C",LANG:"C"},stdio:["ignore","pipe","ignore"]})}function y(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ESRCH"}function p(e){return e instanceof Error?e.message:String(e)}var M={platform:S(),now:Date.now,readIdentity:m,isProcessAlive(e){try{return process.kill(e,0),!0}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&n.code==="EPERM"}},isProcessGroupAlive(e){if(this.platform==="win32")return!1;try{return process.kill(-e,0),!0}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&n.code==="EPERM"}},listDescendantPids(e){if(this.platform==="win32")return[];try{return x(e)}catch{return[]}},signal(e,n){process.kill(e,n)},terminateWindowsTree(e){b("taskkill.exe",["/PID",String(e),"/T","/F"],{timeout:w,maxBuffer:T,stdio:"ignore",windowsHide:!0})},async sleep(e){await new Promise(n=>setTimeout(n,e))}};export{N as a,k as b};
|
|
2
|
-
//# sourceMappingURL=chunk-2OOY75BW.js.map
|
package/dist/chunk-2USA3S3P.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{$ as M,O as f,P as S,S as R}from"./chunk-2VAHDDLM.js";import{b as B}from"./chunk-YXPUP5G2.js";import{b as N,c as _,d as w,f as k,g as A,h as z}from"./chunk-BL6DCHQP.js";import{c as O}from"./chunk-IW5XQG5G.js";var T=O("symbol-resolution",{clearGroups:[]});function he(e,n){return G(e,n).match}function G(e,n){return T.get(e,n,()=>{let t=W(e,n.trim()).filter(i=>!e.isIgnored(i.relative_path));if(t.length>0)return L(e,t);let o=P(e,n);if(o&&!e.isIgnored(o.relative_path))return L(e,[o]);let r=H(e,n);if(r.length>0)return L(e,r);let s=U(e,n);return s.length>0?L(e,s):J(e,n)})}function H(e,n){let t=n.trim().replace(/\(\)$/u,""),o=t.lastIndexOf(":");if(o<=0||o===t.length-1||t.startsWith("local:"))return[];let r=t.slice(o+1);if(!/^[\p{L}_$][\p{L}\p{N}_$]*$/u.test(r))return[];let s=[`/${r}().`,`/${r}.`,`/${r}#`,`#${r}().`,`#${r}.`,`/${r}/`],i=`gs.display_name = ? OR ${s.map(()=>"instr(gs.symbol, ?) > 0").join(" OR ")}`,a=[r,...s],l=f(e,{where:i,params:a,orderBy:"d.relative_path, der.start_line",limit:200}),u=l.length>0?[]:S(e,{where:i,params:a,orderBy:"d.relative_path, start_line",limit:200}),p=R(l,u).filter(m=>!e.isIgnored(m.relative_path)).filter(m=>_(m.symbol).replace(/\(\)$/u,"")===t);return[...new Map(p.map(m=>[`${m.symbol}\0${m.relative_path}`,m])).values()]}function U(e,n){let t=Q(n),o=E(t);if(!o)return[];let r=`%${o.path}%`,s=o.leaf;return X(e,r,s,t)}function X(e,n,t,o){let r=R([],[...Y(e,n,t),...Z(e,n,t)]).filter(s=>!e.isIgnored(s.relative_path)).filter(s=>C(s,o)>1);return r.sort((s,i)=>C(i,o)-C(s,o)||s.end_line-s.start_line-(i.end_line-i.start_line)||s.start_line-i.start_line||s.symbol.localeCompare(i.symbol)),r}function Y(e,n,t){return f(e,{where:"d.relative_path LIKE ? AND (gs.display_name = ? OR gs.symbol LIKE ?)",params:[n,t,`%/${t}.%`]})}function Z(e,n,t){return S(e,{where:"d.relative_path LIKE ? AND (gs.display_name = ? OR gs.symbol LIKE ?)",params:[n,t,`%/${t}.%`]})}function J(e,n){let t=Q(n),o=ae(n),r=oe(e,o),s=se(r,n,t).filter(a=>!e.isIgnored(a.relative_path));if(s.length>0)return L(e,s);let i=[];for(let a of r){if(e.isIgnored(a.relative_path))continue;let l=re(a,n,t,o);l<=0||i.push({row:a,score:l})}return i.sort((a,l)=>l.score-a.score||a.row.end_line-a.row.start_line-(l.row.end_line-l.row.start_line)||a.row.relative_path.localeCompare(l.row.relative_path)||a.row.symbol.localeCompare(l.row.symbol)),L(e,i.map(a=>a.row))}function L(e,n){let t=n.map(r=>M(e,r)),o=t[0]??null;return{match:o,candidates:o?V(t,o):[],total:t.length}}function V(e,n){let t=new Set([`${n.symbolId}:${n.relativePath}:${n.startLine}`]),o=[];for(let r of e){let s=`${r.symbolId}:${r.relativePath}:${r.startLine}`;if(!t.has(s)&&(t.add(s),o.push({symbol:r.symbol,shortName:_(r.symbol),relativePath:r.relativePath,startLine:r.startLine}),o.length>=5))break}return o}function P(e,n){let t=n.match(/^(.+):(\d+)(?:-(\d+))?$/);if(!t)return;let[,o,r,s]=t,i=B(e,o,{allowMultiple:!1,requirePathMatch:!0})[0]?.relativePath;if(!i)return;let a=Math.max(0,parseInt(r,10)-1),l=s?Math.max(a,parseInt(s,10)-1):a;return ee(e,i,a,l)??te(e,i,a,l)}function ee(e,n,t,o){return f(e,{where:"d.relative_path = ? AND der.start_line <= ? AND der.end_line >= ?",params:[n,t,o],orderBy:"(der.end_line - der.start_line) ASC",limit:1})[0]}function te(e,n,t,o){return S(e,{where:"d.relative_path = ? AND c.start_line <= ? AND c.end_line >= ?",params:[n,t,o],orderBy:"(MAX(c.end_line) - MIN(c.start_line)) ASC",limit:1})[0]}function be(e,n){let t=W(e,n).find(o=>!e.isIgnored(o.relative_path));return t?M(e,t):null}function W(e,n){let t=f(e,{where:"gs.symbol = ?",params:[n],orderBy:"d.relative_path, der.start_line"}),o=t.length>0?[]:S(e,{where:"gs.symbol = ?",params:[n],orderBy:"d.relative_path, start_line"});return R(t,o)}function Se(e,n){if("symbol"in n&&"relativePath"in n)return n;let t=ne(e,n.symbolId)[0];return t?M(e,t):null}function ne(e,n){let t=f(e,{where:"gs.id = ?",params:[n],orderBy:"der.start_line, der.end_line"}),o=S(e,{where:"gs.id = ?",params:[n],orderBy:"start_line, end_line"});return R(t,o)}function oe(e,n){let t=n.map(()=>"(gs.symbol LIKE ? OR d.relative_path LIKE ? OR COALESCE(gs.display_name, '') LIKE ?)"),o=n.flatMap(a=>{let l=`%${a}%`;return[l,l,l]}),r=t.join(`
|
|
2
|
-
AND `),s=f(e,{where:r,params:o,limit:200}),i=S(e,{where:r,params:o,limit:200});return R(s,i)}function re(e,n,t,o){let r=n.trim(),s=t,i=s.replace(/\(\)$/,""),a=n.toLowerCase(),l=t.toLowerCase(),u=l.replace(/\(\)$/,""),p=e.symbol,m=_(e.symbol),y=w(e.symbol),g=e.display_name??"",$=e.symbol.toLowerCase(),d=m.toLowerCase(),h=y.toLowerCase(),x=g.toLowerCase(),b=e.relative_path.toLowerCase(),j=/[/:.]/.test(t),I=E(t),v=I?.leaf.toLowerCase(),c=0;return(p===r||p===s)&&(c+=1150),(m===r||m===s)&&(c+=1100),g===i&&(c+=1180),y===i&&(c+=1160),(`${y}()`===r||`${y}()`===s)&&(c+=955),($===a||$===l)&&(c+=1e3),(d===a||d===l)&&(c+=950),(b===a||b===l)&&(c+=925),(b.endsWith(`/${l}`)||b.endsWith(`/${a}`))&&(c+=875),x===u&&(c+=850),h===u&&(c+=825),(`${h}()`===a||`${h}()`===l)&&(c+=820),(d.endsWith(`:${l}`)||d.endsWith(`:${u}`)||d.endsWith(`:${u}()`))&&(c+=800),$.includes(l)&&(c+=120),d.includes(l)&&(c+=140),b.includes(l)&&(c+=140),x.includes(l)&&(c+=110),o.every(q=>{let D=q.toLowerCase();return $.includes(D)||d.includes(D)||b.includes(D)||x.includes(D)})&&(c+=100+o.length*15),I&&b.includes(I.path.toLowerCase())&&(c+=360,v&&(h===v||`${h}()`===v||`${h}()`==`${v}()`)&&(c+=700),k(e.symbol)&&(c+=180)),A(e.symbol)&&h===u&&(c+=60),!j&&z(e.symbol)&&(c-=160),c-=Math.min(50,Math.max(0,e.end_line-e.start_line)),c}function E(e){let n=e.trim().replace(/\\/g,"/"),t=n.lastIndexOf("/");if(t<=0||t===n.length-1)return null;let o=n.slice(t+1).replace(/\(\)$/,"");return!o||o.includes(".")?null:{path:n.slice(0,t),leaf:o}}function Q(e){return e.trim().replace(/\(\)$/,"").replace(/\(.*$/,"")}function ae(e){let n=Q(e),t=n.split(/[^A-Za-z0-9_]+/).map(o=>o.trim()).filter(o=>o.length>0);return t.length>0?[...new Set(t)]:[n]}function se(e,n,t){let o=n.trim(),r=e.filter(a=>{let l=_(a.symbol),u=w(a.symbol),p=(a.display_name??"").trim();return a.symbol===o||l===o||l===t||u===o||u===t||`${u}()`===o||p===o||p===t||`${p}()`===o||C(a,t)>1||a.relative_path===o});if(r.length===0)return[];let s=t.replace(/\(\)$/u,""),i=r.filter(a=>w(a.symbol)===s);if(i.length>0){i.sort((l,u)=>F(l,u,t));let a=i.filter(l=>A(l.symbol));return a.length>0?a:i}return r.sort((a,l)=>F(a,l,t)),r}function F(e,n,t){return C(n,t)-C(e,t)||e.end_line-e.start_line-(n.end_line-n.start_line)||e.relative_path.localeCompare(n.relative_path)||e.symbol.localeCompare(n.symbol)}function C(e,n){let t=E(n);if(!t)return 0;let o=e.relative_path.toLowerCase(),r=w(e.symbol).toLowerCase(),s=t.path.toLowerCase(),i=t.leaf.toLowerCase();return o.includes(s)?r!==i?1:k(e.symbol)?N(e.symbol)===null?5:4:N(e.symbol)===null?3:2:0}function ge(e,n,t=5){let o=K(n);if(!o)return[];let r=f(e,{where:"1 = 1",orderBy:"d.relative_path, der.start_line",limit:5e3}),s=new Map;for(let i of r){if(e.isIgnored(i.relative_path))continue;let a=_(i.symbol),l=w(i.symbol),u=i.display_name??l,p=[a,l,u].filter(g=>g.trim().length>0),m=Math.min(...p.map(g=>ie(K(g),o))),y=s.get(a);(!y||m<y.distance)&&s.set(a,{shortName:a,distance:m})}return[...s.values()].sort((i,a)=>i.distance-a.distance||i.shortName.localeCompare(a.shortName)).slice(0,t).map(i=>i.shortName)}function K(e){return Q(e).toLowerCase().replace(/[^a-z0-9_]+/g,"")}function ie(e,n){if(e===n)return 0;if(e.length===0)return n.length;if(n.length===0)return e.length;let t=Array.from({length:n.length+1},(o,r)=>r);for(let o=0;o<e.length;o++){let r=[o+1];for(let s=0;s<n.length;s++){let i=e[o]===n[s]?0:1;r[s+1]=Math.min(r[s]+1,t[s+1]+1,t[s]+i)}t=r}return t[n.length]}export{he as a,G as b,be as c,Se as d,ge as e};
|
|
3
|
-
//# sourceMappingURL=chunk-2USA3S3P.js.map
|