scip-query 0.1.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/IMPROVEMENTS.md +143 -0
- package/PLAN.md +320 -0
- package/README.md +1213 -0
- package/dist/chunk-2QZ23IBN.js +55 -0
- package/dist/chunk-2QZ23IBN.js.map +1 -0
- package/dist/chunk-36OMT7ZJ.js +144 -0
- package/dist/chunk-36OMT7ZJ.js.map +1 -0
- package/dist/chunk-3E2X7RIE.js +101 -0
- package/dist/chunk-3E2X7RIE.js.map +1 -0
- package/dist/chunk-3UOUTZQT.js +45 -0
- package/dist/chunk-3UOUTZQT.js.map +1 -0
- package/dist/chunk-3ZZJVBIO.js +88 -0
- package/dist/chunk-3ZZJVBIO.js.map +1 -0
- package/dist/chunk-4TYLS5XX.js +10 -0
- package/dist/chunk-4TYLS5XX.js.map +1 -0
- package/dist/chunk-5FGUEU7N.js +101 -0
- package/dist/chunk-5FGUEU7N.js.map +1 -0
- package/dist/chunk-5WTJAXY2.js +61 -0
- package/dist/chunk-5WTJAXY2.js.map +1 -0
- package/dist/chunk-6NBLIDF4.js +24 -0
- package/dist/chunk-6NBLIDF4.js.map +1 -0
- package/dist/chunk-6SXADWLW.js +43 -0
- package/dist/chunk-6SXADWLW.js.map +1 -0
- package/dist/chunk-6VJ6Q7IE.js +65 -0
- package/dist/chunk-6VJ6Q7IE.js.map +1 -0
- package/dist/chunk-7OZPA5OO.js +258 -0
- package/dist/chunk-7OZPA5OO.js.map +1 -0
- package/dist/chunk-BEPIEVLR.js +76 -0
- package/dist/chunk-BEPIEVLR.js.map +1 -0
- package/dist/chunk-BFSCMC22.js +42 -0
- package/dist/chunk-BFSCMC22.js.map +1 -0
- package/dist/chunk-BP2ATLK2.js +110 -0
- package/dist/chunk-BP2ATLK2.js.map +1 -0
- package/dist/chunk-CM454WL3.js +114 -0
- package/dist/chunk-CM454WL3.js.map +1 -0
- package/dist/chunk-DCKMSTJ4.js +74 -0
- package/dist/chunk-DCKMSTJ4.js.map +1 -0
- package/dist/chunk-DEZKCZXD.js +40 -0
- package/dist/chunk-DEZKCZXD.js.map +1 -0
- package/dist/chunk-DVWGWHFW.js +99 -0
- package/dist/chunk-DVWGWHFW.js.map +1 -0
- package/dist/chunk-EMDQWNYR.js +102 -0
- package/dist/chunk-EMDQWNYR.js.map +1 -0
- package/dist/chunk-FFSWWE5O.js +33 -0
- package/dist/chunk-FFSWWE5O.js.map +1 -0
- package/dist/chunk-FGXRVW7G.js +73 -0
- package/dist/chunk-FGXRVW7G.js.map +1 -0
- package/dist/chunk-FUHJCHS4.js +158 -0
- package/dist/chunk-FUHJCHS4.js.map +1 -0
- package/dist/chunk-GJFURBEW.js +64 -0
- package/dist/chunk-GJFURBEW.js.map +1 -0
- package/dist/chunk-GTILYBH6.js +102 -0
- package/dist/chunk-GTILYBH6.js.map +1 -0
- package/dist/chunk-JJP7KQND.js +1 -0
- package/dist/chunk-JJP7KQND.js.map +1 -0
- package/dist/chunk-JKP5GH6T.js +213 -0
- package/dist/chunk-JKP5GH6T.js.map +1 -0
- package/dist/chunk-KCBMVQL5.js +38 -0
- package/dist/chunk-KCBMVQL5.js.map +1 -0
- package/dist/chunk-KVSW5KYP.js +78 -0
- package/dist/chunk-KVSW5KYP.js.map +1 -0
- package/dist/chunk-LAWMH22O.js +172 -0
- package/dist/chunk-LAWMH22O.js.map +1 -0
- package/dist/chunk-LB7OS35Q.js +72 -0
- package/dist/chunk-LB7OS35Q.js.map +1 -0
- package/dist/chunk-LUSIFBXO.js +57 -0
- package/dist/chunk-LUSIFBXO.js.map +1 -0
- package/dist/chunk-MBVNHJVN.js +44 -0
- package/dist/chunk-MBVNHJVN.js.map +1 -0
- package/dist/chunk-MGNMHKX3.js +15 -0
- package/dist/chunk-MGNMHKX3.js.map +1 -0
- package/dist/chunk-N5KEREIA.js +41 -0
- package/dist/chunk-N5KEREIA.js.map +1 -0
- package/dist/chunk-NDSQYIWT.js +71 -0
- package/dist/chunk-NDSQYIWT.js.map +1 -0
- package/dist/chunk-NUZ4OMU3.js +28 -0
- package/dist/chunk-NUZ4OMU3.js.map +1 -0
- package/dist/chunk-QOV2R2WT.js +170 -0
- package/dist/chunk-QOV2R2WT.js.map +1 -0
- package/dist/chunk-SEFSL2GF.js +78 -0
- package/dist/chunk-SEFSL2GF.js.map +1 -0
- package/dist/chunk-T6ARFSBZ.js +103 -0
- package/dist/chunk-T6ARFSBZ.js.map +1 -0
- package/dist/chunk-TBP6BICL.js +46 -0
- package/dist/chunk-TBP6BICL.js.map +1 -0
- package/dist/chunk-TDNNOR6D.js +97 -0
- package/dist/chunk-TDNNOR6D.js.map +1 -0
- package/dist/chunk-TSPZOMHC.js +195 -0
- package/dist/chunk-TSPZOMHC.js.map +1 -0
- package/dist/chunk-UNTPVD36.js +55 -0
- package/dist/chunk-UNTPVD36.js.map +1 -0
- package/dist/chunk-VRUJH4BO.js +88 -0
- package/dist/chunk-VRUJH4BO.js.map +1 -0
- package/dist/chunk-VZ7AMAFL.js +76 -0
- package/dist/chunk-VZ7AMAFL.js.map +1 -0
- package/dist/chunk-XFXDXEUN.js +24 -0
- package/dist/chunk-XFXDXEUN.js.map +1 -0
- package/dist/chunk-YZAA4LYG.js +169 -0
- package/dist/chunk-YZAA4LYG.js.map +1 -0
- package/dist/chunk-Z73NYSBZ.js +92 -0
- package/dist/chunk-Z73NYSBZ.js.map +1 -0
- package/dist/chunk-ZJRYBOEE.js +125 -0
- package/dist/chunk-ZJRYBOEE.js.map +1 -0
- package/dist/cli.js +5798 -0
- package/dist/cli.js.map +1 -0
- package/dist/db-BxaevAyc.d.ts +683 -0
- package/dist/index.d.ts +254 -0
- package/dist/index.js +1271 -0
- package/dist/index.js.map +1 -0
- package/dist/postinstall.js +167 -0
- package/dist/postinstall.js.map +1 -0
- package/dist/queries/affected.d.ts +14 -0
- package/dist/queries/affected.js +9 -0
- package/dist/queries/affected.js.map +1 -0
- package/dist/queries/bottlenecks.d.ts +18 -0
- package/dist/queries/bottlenecks.js +8 -0
- package/dist/queries/bottlenecks.js.map +1 -0
- package/dist/queries/by-kind.d.ts +20 -0
- package/dist/queries/by-kind.js +10 -0
- package/dist/queries/by-kind.js.map +1 -0
- package/dist/queries/call-graph.d.ts +13 -0
- package/dist/queries/call-graph.js +9 -0
- package/dist/queries/call-graph.js.map +1 -0
- package/dist/queries/change-surface.d.ts +10 -0
- package/dist/queries/change-surface.js +9 -0
- package/dist/queries/change-surface.js.map +1 -0
- package/dist/queries/clean-signature.d.ts +9 -0
- package/dist/queries/clean-signature.js +7 -0
- package/dist/queries/clean-signature.js.map +1 -0
- package/dist/queries/code.d.ts +17 -0
- package/dist/queries/code.js +9 -0
- package/dist/queries/code.js.map +1 -0
- package/dist/queries/complexity-hotspots.d.ts +19 -0
- package/dist/queries/complexity-hotspots.js +9 -0
- package/dist/queries/complexity-hotspots.js.map +1 -0
- package/dist/queries/complexity.d.ts +13 -0
- package/dist/queries/complexity.js +9 -0
- package/dist/queries/complexity.js.map +1 -0
- package/dist/queries/convergence.d.ts +11 -0
- package/dist/queries/convergence.js +9 -0
- package/dist/queries/convergence.js.map +1 -0
- package/dist/queries/coupling.d.ts +17 -0
- package/dist/queries/coupling.js +9 -0
- package/dist/queries/coupling.js.map +1 -0
- package/dist/queries/cycles.d.ts +16 -0
- package/dist/queries/cycles.js +8 -0
- package/dist/queries/cycles.js.map +1 -0
- package/dist/queries/dataflow.d.ts +19 -0
- package/dist/queries/dataflow.js +9 -0
- package/dist/queries/dataflow.js.map +1 -0
- package/dist/queries/dead.d.ts +10 -0
- package/dist/queries/dead.js +9 -0
- package/dist/queries/dead.js.map +1 -0
- package/dist/queries/deep-chains.d.ts +16 -0
- package/dist/queries/deep-chains.js +8 -0
- package/dist/queries/deep-chains.js.map +1 -0
- package/dist/queries/deps.d.ts +9 -0
- package/dist/queries/deps.js +9 -0
- package/dist/queries/deps.js.map +1 -0
- package/dist/queries/diff-impact.d.ts +13 -0
- package/dist/queries/diff-impact.js +9 -0
- package/dist/queries/diff-impact.js.map +1 -0
- package/dist/queries/doc-coverage.d.ts +14 -0
- package/dist/queries/doc-coverage.js +8 -0
- package/dist/queries/doc-coverage.js.map +1 -0
- package/dist/queries/drift.d.ts +25 -0
- package/dist/queries/drift.js +8 -0
- package/dist/queries/drift.js.map +1 -0
- package/dist/queries/extract-candidates.d.ts +25 -0
- package/dist/queries/extract-candidates.js +9 -0
- package/dist/queries/extract-candidates.js.map +1 -0
- package/dist/queries/fan.d.ts +29 -0
- package/dist/queries/fan.js +14 -0
- package/dist/queries/fan.js.map +1 -0
- package/dist/queries/files.d.ts +6 -0
- package/dist/queries/files.js +7 -0
- package/dist/queries/files.js.map +1 -0
- package/dist/queries/health.d.ts +18 -0
- package/dist/queries/health.js +21 -0
- package/dist/queries/health.js.map +1 -0
- package/dist/queries/hierarchy.d.ts +13 -0
- package/dist/queries/hierarchy.js +8 -0
- package/dist/queries/hierarchy.js.map +1 -0
- package/dist/queries/hotspots.d.ts +13 -0
- package/dist/queries/hotspots.js +8 -0
- package/dist/queries/hotspots.js.map +1 -0
- package/dist/queries/imports.d.ts +19 -0
- package/dist/queries/imports.js +12 -0
- package/dist/queries/imports.js.map +1 -0
- package/dist/queries/index.d.ts +47 -0
- package/dist/queries/index.js +207 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/queries/isolated.d.ts +14 -0
- package/dist/queries/isolated.js +9 -0
- package/dist/queries/isolated.js.map +1 -0
- package/dist/queries/members.d.ts +10 -0
- package/dist/queries/members.js +8 -0
- package/dist/queries/members.js.map +1 -0
- package/dist/queries/methods.d.ts +6 -0
- package/dist/queries/methods.js +8 -0
- package/dist/queries/methods.js.map +1 -0
- package/dist/queries/outline.d.ts +10 -0
- package/dist/queries/outline.js +8 -0
- package/dist/queries/outline.js.map +1 -0
- package/dist/queries/passthrough-candidates.d.ts +18 -0
- package/dist/queries/passthrough-candidates.js +9 -0
- package/dist/queries/passthrough-candidates.js.map +1 -0
- package/dist/queries/redundant-reexports.d.ts +22 -0
- package/dist/queries/redundant-reexports.js +8 -0
- package/dist/queries/redundant-reexports.js.map +1 -0
- package/dist/queries/refs.d.ts +6 -0
- package/dist/queries/refs.js +7 -0
- package/dist/queries/refs.js.map +1 -0
- package/dist/queries/similar-chains.d.ts +29 -0
- package/dist/queries/similar-chains.js +8 -0
- package/dist/queries/similar-chains.js.map +1 -0
- package/dist/queries/similar-files.d.ts +19 -0
- package/dist/queries/similar-files.js +8 -0
- package/dist/queries/similar-files.js.map +1 -0
- package/dist/queries/similar-signatures.d.ts +21 -0
- package/dist/queries/similar-signatures.js +8 -0
- package/dist/queries/similar-signatures.js.map +1 -0
- package/dist/queries/similar.d.ts +34 -0
- package/dist/queries/similar.js +11 -0
- package/dist/queries/similar.js.map +1 -0
- package/dist/queries/slice.d.ts +21 -0
- package/dist/queries/slice.js +9 -0
- package/dist/queries/slice.js.map +1 -0
- package/dist/queries/stale-abstractions.d.ts +18 -0
- package/dist/queries/stale-abstractions.js +9 -0
- package/dist/queries/stale-abstractions.js.map +1 -0
- package/dist/queries/stats.d.ts +6 -0
- package/dist/queries/stats.js +7 -0
- package/dist/queries/stats.js.map +1 -0
- package/dist/queries/surface.d.ts +7 -0
- package/dist/queries/surface.js +8 -0
- package/dist/queries/surface.js.map +1 -0
- package/dist/queries/symbols.d.ts +6 -0
- package/dist/queries/symbols.js +9 -0
- package/dist/queries/symbols.js.map +1 -0
- package/dist/queries/system.d.ts +7 -0
- package/dist/queries/system.js +9 -0
- package/dist/queries/system.js.map +1 -0
- package/dist/queries/test-coverage.d.ts +22 -0
- package/dist/queries/test-coverage.js +11 -0
- package/dist/queries/test-coverage.js.map +1 -0
- package/dist/queries/trace.d.ts +6 -0
- package/dist/queries/trace.js +8 -0
- package/dist/queries/trace.js.map +1 -0
- package/dist/queries/wrapper-candidates.d.ts +17 -0
- package/dist/queries/wrapper-candidates.js +9 -0
- package/dist/queries/wrapper-candidates.js.map +1 -0
- package/dist/reindex-worker.js +368 -0
- package/dist/reindex-worker.js.map +1 -0
- package/docs/AGENT_GUIDE.md +359 -0
- package/package.json +70 -0
- package/reports/debloat/2026-04-10-scip-query-self-audit.md +161 -0
- package/skills/concrete-plan/SKILL.md +318 -0
- package/skills/scip-debloat/SKILL.md +413 -0
- package/skills/scip-explore/SKILL.md +235 -0
- package/skills/scip-verify/SKILL.md +323 -0
- package/src/cli.ts +1480 -0
- package/src/config.ts +117 -0
- package/src/db.ts +127 -0
- package/src/gitignore-filter.ts +143 -0
- package/src/index.ts +11 -0
- package/src/postinstall.ts +8 -0
- package/src/queries/affected.ts +86 -0
- package/src/queries/bottlenecks.ts +67 -0
- package/src/queries/by-kind.ts +204 -0
- package/src/queries/call-graph.ts +66 -0
- package/src/queries/change-surface.ts +110 -0
- package/src/queries/clean-signature.ts +22 -0
- package/src/queries/code.ts +101 -0
- package/src/queries/complexity-hotspots.ts +119 -0
- package/src/queries/complexity.ts +152 -0
- package/src/queries/convergence.ts +82 -0
- package/src/queries/coupling.ts +99 -0
- package/src/queries/cycles.ts +78 -0
- package/src/queries/dataflow.ts +128 -0
- package/src/queries/dead.ts +122 -0
- package/src/queries/deep-chains.ts +59 -0
- package/src/queries/deps.ts +46 -0
- package/src/queries/diff-impact.ts +204 -0
- package/src/queries/doc-coverage.ts +86 -0
- package/src/queries/drift.ts +224 -0
- package/src/queries/extract-candidates.ts +167 -0
- package/src/queries/fan.ts +148 -0
- package/src/queries/files.ts +16 -0
- package/src/queries/health.ts +324 -0
- package/src/queries/hierarchy.ts +49 -0
- package/src/queries/hotspots.ts +53 -0
- package/src/queries/imports.ts +95 -0
- package/src/queries/index.ts +45 -0
- package/src/queries/isolated.ts +67 -0
- package/src/queries/members.ts +54 -0
- package/src/queries/methods.ts +27 -0
- package/src/queries/outline.ts +52 -0
- package/src/queries/passthrough-candidates.ts +94 -0
- package/src/queries/redundant-reexports.ts +170 -0
- package/src/queries/refs.ts +27 -0
- package/src/queries/similar-chains.ts +314 -0
- package/src/queries/similar-files.ts +140 -0
- package/src/queries/similar-signatures.ts +151 -0
- package/src/queries/similar.ts +305 -0
- package/src/queries/slice.ts +154 -0
- package/src/queries/stale-abstractions.ts +82 -0
- package/src/queries/stats.ts +22 -0
- package/src/queries/surface.ts +34 -0
- package/src/queries/symbols.ts +39 -0
- package/src/queries/system.ts +86 -0
- package/src/queries/test-coverage.ts +106 -0
- package/src/queries/trace.ts +55 -0
- package/src/queries/wrapper-candidates.ts +112 -0
- package/src/query-support.ts +226 -0
- package/src/reindex/detect.ts +58 -0
- package/src/reindex/index.ts +153 -0
- package/src/reindex/indexers.ts +220 -0
- package/src/reindex/install.ts +125 -0
- package/src/reindex-worker.ts +35 -0
- package/src/setup.ts +202 -0
- package/src/symbol-parser.ts +278 -0
- package/src/types.ts +654 -0
- package/src/watch.ts +274 -0
- package/tests/gitignore-filter.test.ts +48 -0
- package/tests/queries.test.ts +300 -0
- package/tests/symbol-parser.test.ts +157 -0
- package/tsconfig.json +20 -0
- package/tsup.config.ts +40 -0
- package/vitest.config.ts +7 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { V as ScipSymbol, X as ScipLocalSymbol, Y as SupportedLanguage, Z as IndexerConfig, _ as ProjectConfig, $ as WatcherStatus } from './db-BxaevAyc.js';
|
|
2
|
+
export { A as AffectedResult, B as BottleneckResult, a as ByKindResult, C as CallGraphResult, a0 as ChangeSurfaceEntry, b as ChangeSurfaceResult, c as CodeResult, d as ComplexityHotspot, e as ComplexityResult, f as ConvergenceResult, g as CouplingResult, h as CycleResult, D as DataflowResult, i as DeadOptions, j as DeadSummary, a1 as DeadSymbolResult, k as DeepChainResult, l as DepResult, a2 as DescriptorSuffix, m as DiffImpactResult, n as DocCoverageResult, a3 as DriftResult, o as DriftSummary, E as ExtractCandidate, F as FanResult, p as FileResult, a4 as HealthAction, H as HealthReport, q as HierarchyNode, r as HotspotResult, I as ImportResult, a5 as IndexerOverrides, a6 as InstallMethod, s as IsolatedResult, M as MemberResult, t as MethodResult, O as OutlineNode, P as PassthroughCandidate, N as RedundantReexport, R as RefResult, S as ScipDatabase, a7 as ScipDescriptor, a8 as ScipQueryConfig, J as SimilarChainResult, G as SimilarFileResult, Q as SimilarSignatureGroup, z as SimilarSymbolResult, L as SliceResult, K as StaleAbstraction, u as StatsResult, x as SurfaceResult, v as SymbolResult, w as SystemResult, y as TestCoverageResult, T as TraceResult, U as UnusedImportResult, a9 as WatchConfig, W as WrapperCandidate, aa as createGitignoreFilter } from './db-BxaevAyc.js';
|
|
3
|
+
export { stats } from './queries/stats.js';
|
|
4
|
+
export { files } from './queries/files.js';
|
|
5
|
+
export { symbols } from './queries/symbols.js';
|
|
6
|
+
export { methods } from './queries/methods.js';
|
|
7
|
+
export { refs } from './queries/refs.js';
|
|
8
|
+
export { trace } from './queries/trace.js';
|
|
9
|
+
export { deps, rdeps } from './queries/deps.js';
|
|
10
|
+
export { system } from './queries/system.js';
|
|
11
|
+
export { surface } from './queries/surface.js';
|
|
12
|
+
export { dead } from './queries/dead.js';
|
|
13
|
+
export { hotspots } from './queries/hotspots.js';
|
|
14
|
+
export { importedBy, imports, unusedImports } from './queries/imports.js';
|
|
15
|
+
export { outline } from './queries/outline.js';
|
|
16
|
+
export { members } from './queries/members.js';
|
|
17
|
+
export { fanIn, fanOut, topFanIn, topFanOut } from './queries/fan.js';
|
|
18
|
+
export { coupling, topCoupling } from './queries/coupling.js';
|
|
19
|
+
export { cycles } from './queries/cycles.js';
|
|
20
|
+
export { bottlenecks } from './queries/bottlenecks.js';
|
|
21
|
+
export { isolated } from './queries/isolated.js';
|
|
22
|
+
export { byKind, kindCounts } from './queries/by-kind.js';
|
|
23
|
+
export { testCoverage, testCoverageSummary } from './queries/test-coverage.js';
|
|
24
|
+
export { docCoverage } from './queries/doc-coverage.js';
|
|
25
|
+
export { deepChains } from './queries/deep-chains.js';
|
|
26
|
+
export { hierarchy } from './queries/hierarchy.js';
|
|
27
|
+
export { callGraph } from './queries/call-graph.js';
|
|
28
|
+
export { similar, similarAll } from './queries/similar.js';
|
|
29
|
+
export { similarFiles } from './queries/similar-files.js';
|
|
30
|
+
export { similarChains } from './queries/similar-chains.js';
|
|
31
|
+
export { extractCandidates } from './queries/extract-candidates.js';
|
|
32
|
+
export { affected } from './queries/affected.js';
|
|
33
|
+
export { changeSurface } from './queries/change-surface.js';
|
|
34
|
+
export { diffImpact } from './queries/diff-impact.js';
|
|
35
|
+
export { drift } from './queries/drift.js';
|
|
36
|
+
export { wrapperCandidates } from './queries/wrapper-candidates.js';
|
|
37
|
+
export { passthroughCandidates } from './queries/passthrough-candidates.js';
|
|
38
|
+
export { staleAbstractions } from './queries/stale-abstractions.js';
|
|
39
|
+
export { complexityHotspots } from './queries/complexity-hotspots.js';
|
|
40
|
+
export { health } from './queries/health.js';
|
|
41
|
+
export { convergence } from './queries/convergence.js';
|
|
42
|
+
export { code } from './queries/code.js';
|
|
43
|
+
export { complexity } from './queries/complexity.js';
|
|
44
|
+
export { dataflow } from './queries/dataflow.js';
|
|
45
|
+
export { slice } from './queries/slice.js';
|
|
46
|
+
export { redundantReexports } from './queries/redundant-reexports.js';
|
|
47
|
+
export { similarSignatures } from './queries/similar-signatures.js';
|
|
48
|
+
import 'better-sqlite3';
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Parse a SCIP symbol string into its structured components.
|
|
52
|
+
* Works for any SCIP-indexed language (TypeScript, Java, Rust, Python, etc.)
|
|
53
|
+
*/
|
|
54
|
+
declare function parseSymbol(raw: string): ScipSymbol | ScipLocalSymbol;
|
|
55
|
+
/**
|
|
56
|
+
* Convert a parsed SCIP symbol to a short, human-readable name.
|
|
57
|
+
* Language-agnostic: works for any SCIP-indexed language.
|
|
58
|
+
*
|
|
59
|
+
* Examples:
|
|
60
|
+
* "scip-typescript npm @vega/api 0.1.3 src/modules/auth/auth.service.ts/AuthService#login()."
|
|
61
|
+
* → "auth.service:AuthService:login()"
|
|
62
|
+
*
|
|
63
|
+
* "scip-java maven com.example/mylib 1.0.0 com/example/MyClass#doStuff()."
|
|
64
|
+
* → "MyClass:doStuff()"
|
|
65
|
+
*
|
|
66
|
+
* "rust-analyzer cargo my-crate 0.1.0 src/lib.rs/MyStruct#new()."
|
|
67
|
+
* → "lib:MyStruct:new()"
|
|
68
|
+
*/
|
|
69
|
+
declare function shortenSymbol(raw: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Extract just the leaf name from a SCIP symbol.
|
|
72
|
+
* Useful when you only need the function/class/variable name without path context.
|
|
73
|
+
*/
|
|
74
|
+
declare function leafName(raw: string): string;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Detect which languages are present in a project directory
|
|
78
|
+
* by checking for marker files.
|
|
79
|
+
*/
|
|
80
|
+
declare function detectLanguages(projectRoot: string): SupportedLanguage[];
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Indexer configurations for each supported language.
|
|
84
|
+
* Each entry describes how to produce a SCIP index for that language.
|
|
85
|
+
*
|
|
86
|
+
* The `scip` CLI binary is required for all languages (to convert protobuf -> SQLite).
|
|
87
|
+
* Each language also needs its own SCIP indexer installed.
|
|
88
|
+
*/
|
|
89
|
+
declare const INDEXER_CONFIGS: Record<SupportedLanguage, IndexerConfig>;
|
|
90
|
+
/** Get the indexer config for a language */
|
|
91
|
+
declare function getIndexerConfig(language: SupportedLanguage): IndexerConfig;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Check if a binary is available on PATH.
|
|
95
|
+
*/
|
|
96
|
+
declare function isBinaryAvailable(name: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Check if an indexer's binary is available on PATH.
|
|
99
|
+
*/
|
|
100
|
+
declare function isIndexerInstalled(config: IndexerConfig): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Attempt to auto-install an indexer using its configured install methods.
|
|
103
|
+
* Tries each method in order, checking prerequisites first.
|
|
104
|
+
* Returns true if installation succeeded.
|
|
105
|
+
*/
|
|
106
|
+
declare function tryInstallIndexer(config: IndexerConfig, onStatus: (msg: string) => void): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Attempt to auto-install the `scip` CLI binary.
|
|
109
|
+
* Tries brew (macOS), then go install, then prints manual instructions.
|
|
110
|
+
* Returns true if installation succeeded.
|
|
111
|
+
*/
|
|
112
|
+
declare function tryInstallScipCli(onStatus: (msg: string) => void): boolean;
|
|
113
|
+
|
|
114
|
+
interface ReindexOptions {
|
|
115
|
+
projectRoot: string;
|
|
116
|
+
/** Override language detection — index only these languages */
|
|
117
|
+
languages?: SupportedLanguage[];
|
|
118
|
+
/** Path for the SCIP protobuf output (default: <projectRoot>/index.scip) */
|
|
119
|
+
outputScip?: string;
|
|
120
|
+
/** Path for the SQLite output (default: <projectRoot>/index.db) */
|
|
121
|
+
outputDb?: string;
|
|
122
|
+
/** Max Node.js heap size in MB (default: 8192) */
|
|
123
|
+
maxHeapMb?: number;
|
|
124
|
+
/** Callback for status updates */
|
|
125
|
+
onStatus?: (message: string) => void;
|
|
126
|
+
/** Extra flags for pnpm-workspace-aware TS indexing */
|
|
127
|
+
pnpmWorkspaces?: boolean;
|
|
128
|
+
/** Skip auto-install prompts */
|
|
129
|
+
skipAutoInstall?: boolean;
|
|
130
|
+
}
|
|
131
|
+
interface ReindexResult {
|
|
132
|
+
languages: SupportedLanguage[];
|
|
133
|
+
indexPath: string;
|
|
134
|
+
dbPath: string;
|
|
135
|
+
durationMs: number;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Reindex a project: detect languages, run the appropriate SCIP indexer(s),
|
|
139
|
+
* and convert the output to SQLite.
|
|
140
|
+
*/
|
|
141
|
+
declare function reindex(opts: ReindexOptions): Promise<ReindexResult>;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Load project config from .scipquery.json in the project root.
|
|
145
|
+
* Returns defaults for anything not specified.
|
|
146
|
+
*/
|
|
147
|
+
declare function loadProjectConfig(projectRoot: string): ProjectConfig;
|
|
148
|
+
/**
|
|
149
|
+
* Resolve the cache directory for a project's SCIP index.
|
|
150
|
+
*
|
|
151
|
+
* Default: ~/.cache/scip-query/projects/<hash>/
|
|
152
|
+
* Override: project config dbPath, or SCIP_QUERY_DB_PATH env var
|
|
153
|
+
*
|
|
154
|
+
* The hash is derived from the absolute project path so each
|
|
155
|
+
* project gets its own isolated index storage.
|
|
156
|
+
*/
|
|
157
|
+
declare function resolveCacheDir(projectRoot: string, config?: ProjectConfig): string;
|
|
158
|
+
/**
|
|
159
|
+
* Resolve all paths for a project's index files.
|
|
160
|
+
*/
|
|
161
|
+
declare function resolveIndexPaths(projectRoot: string, config?: ProjectConfig): {
|
|
162
|
+
cacheDir: string;
|
|
163
|
+
dbPath: string;
|
|
164
|
+
indexPath: string;
|
|
165
|
+
metaPath: string;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Scaffold a default .scipquery.json in the project root.
|
|
169
|
+
* Does not overwrite an existing config.
|
|
170
|
+
*/
|
|
171
|
+
declare function initProjectConfig(projectRoot: string, languages: string[]): string;
|
|
172
|
+
|
|
173
|
+
interface WatcherOptions {
|
|
174
|
+
projectRoot: string;
|
|
175
|
+
config: ProjectConfig;
|
|
176
|
+
languages?: SupportedLanguage[];
|
|
177
|
+
onStatus?: (status: WatcherStatus) => void;
|
|
178
|
+
onReindexComplete?: (durationMs: number) => void;
|
|
179
|
+
onError?: (error: Error) => void;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* File watcher that triggers single-flight background reindexing.
|
|
183
|
+
*
|
|
184
|
+
* Design:
|
|
185
|
+
* - Debounce: waits 30s (configurable) after the last file change
|
|
186
|
+
* - Single-flight: only one reindex runs at a time, never queued
|
|
187
|
+
* - Dirty flag: changes during reindex schedule ONE follow-up
|
|
188
|
+
* - Cooldown: minimum interval between reindex completions
|
|
189
|
+
* - Atomic swap: writes to index.db.tmp, renames on success
|
|
190
|
+
*/
|
|
191
|
+
declare class Watcher {
|
|
192
|
+
private projectRoot;
|
|
193
|
+
private watchConfig;
|
|
194
|
+
private indexPaths;
|
|
195
|
+
private languages?;
|
|
196
|
+
private pnpmWorkspaces;
|
|
197
|
+
private onStatus;
|
|
198
|
+
private onReindexComplete;
|
|
199
|
+
private onError;
|
|
200
|
+
private status;
|
|
201
|
+
private debounceTimer;
|
|
202
|
+
private cooldownTimer;
|
|
203
|
+
private dirty;
|
|
204
|
+
private changedFiles;
|
|
205
|
+
private reindexInFlight;
|
|
206
|
+
private lastReindexEnd;
|
|
207
|
+
private fsWatchers;
|
|
208
|
+
private gitignoreFilter;
|
|
209
|
+
private extraIgnore;
|
|
210
|
+
private stopped;
|
|
211
|
+
constructor(opts: WatcherOptions);
|
|
212
|
+
/** Start watching for file changes */
|
|
213
|
+
start(): void;
|
|
214
|
+
/** Stop watching and clean up */
|
|
215
|
+
stop(): void;
|
|
216
|
+
/** Get current watcher status */
|
|
217
|
+
getStatus(): WatcherStatus;
|
|
218
|
+
private handleFileChange;
|
|
219
|
+
private triggerReindex;
|
|
220
|
+
/**
|
|
221
|
+
* Run the reindex in a forked child process.
|
|
222
|
+
* Writes to index.db.tmp, then atomically renames to index.db.
|
|
223
|
+
*/
|
|
224
|
+
private runReindex;
|
|
225
|
+
private setStatus;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
interface InstallSkillsResult {
|
|
229
|
+
installed: string[];
|
|
230
|
+
skipped: string[];
|
|
231
|
+
alreadyLinked: string[];
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Install scip-query skills into both Claude Code (~/.claude/skills/)
|
|
235
|
+
* and Codex (~/.codex/skills/). Uses symlinks (junctions on Windows)
|
|
236
|
+
* so skills auto-update when the package updates.
|
|
237
|
+
*/
|
|
238
|
+
declare function installSkills(opts?: {
|
|
239
|
+
quiet?: boolean;
|
|
240
|
+
}): InstallSkillsResult;
|
|
241
|
+
/**
|
|
242
|
+
* Check if the `scip` CLI binary is available on PATH.
|
|
243
|
+
*/
|
|
244
|
+
declare function isScipInstalled(): boolean;
|
|
245
|
+
/**
|
|
246
|
+
* Get the scip CLI version if installed.
|
|
247
|
+
*/
|
|
248
|
+
declare function getScipVersion(): string | null;
|
|
249
|
+
/**
|
|
250
|
+
* Print instructions for installing the scip CLI binary.
|
|
251
|
+
*/
|
|
252
|
+
declare function printScipInstallInstructions(): void;
|
|
253
|
+
|
|
254
|
+
export { INDEXER_CONFIGS, IndexerConfig, ProjectConfig, ScipLocalSymbol, ScipSymbol, SupportedLanguage, Watcher, WatcherStatus, detectLanguages, getIndexerConfig, getScipVersion, initProjectConfig, installSkills, isBinaryAvailable, isIndexerInstalled, isScipInstalled, leafName, loadProjectConfig, parseSymbol, printScipInstallInstructions, reindex, resolveCacheDir, resolveIndexPaths, shortenSymbol, tryInstallIndexer, tryInstallScipCli };
|