scip-query 0.6.6 → 0.6.7

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.
Files changed (165) hide show
  1. package/README.md +20 -1
  2. package/dist/chunk-2AUZ3PLO.js +2 -0
  3. package/dist/{chunk-PIRXZGV6.js → chunk-2CC7RA6B.js} +2 -2
  4. package/dist/{chunk-OQZF2DQJ.js → chunk-2R7OKZE5.js} +2 -2
  5. package/dist/{chunk-7PRMSA4Z.js → chunk-2YA36CXK.js} +2 -2
  6. package/dist/chunk-3A2M7AF3.js +4 -0
  7. package/dist/chunk-3EJRPTTB.js +2 -0
  8. package/dist/chunk-3SWWYJPB.js +6 -0
  9. package/dist/chunk-4M4FEWBL.js +7 -0
  10. package/dist/{chunk-UUIWMLDX.js → chunk-4Y6KUJDO.js} +2 -2
  11. package/dist/{chunk-MO65UK5V.js → chunk-55ZJ2FCW.js} +2 -2
  12. package/dist/chunk-6FLGPRBR.js +5 -0
  13. package/dist/chunk-6XRB6ATD.js +16 -0
  14. package/dist/{chunk-VEXS3I3N.js → chunk-7EQ4J66C.js} +2 -2
  15. package/dist/{chunk-QFBJZHMV.js → chunk-7TGEXAN5.js} +2 -2
  16. package/dist/chunk-ABLXPGAZ.js +2 -0
  17. package/dist/{chunk-IKQYNTW3.js → chunk-BG7YU4DJ.js} +2 -2
  18. package/dist/chunk-D2R6IIEO.js +2 -0
  19. package/dist/{chunk-YJODB2F5.js → chunk-E47WMJ5F.js} +2 -2
  20. package/dist/chunk-EEA3R37V.js +11 -0
  21. package/dist/chunk-FAN2CVZT.js +2 -0
  22. package/dist/{chunk-HVNVO6UW.js → chunk-FYO3FPFH.js} +2 -2
  23. package/dist/chunk-G47V5V3U.js +90 -0
  24. package/dist/chunk-GS55K4WJ.js +85 -0
  25. package/dist/{chunk-I377UMS2.js → chunk-HADDFTMU.js} +2 -2
  26. package/dist/chunk-HTJ5BOYP.js +10 -0
  27. package/dist/chunk-IARIBTCL.js +2 -0
  28. package/dist/{chunk-E2V5SE6M.js → chunk-IBWYWAWE.js} +2 -2
  29. package/dist/{chunk-DLWRLPKO.js → chunk-ILQSK2KJ.js} +2 -2
  30. package/dist/{chunk-KBGFYKOJ.js → chunk-JVMXNDRU.js} +2 -2
  31. package/dist/{chunk-O6VBAW7P.js → chunk-K345WFTU.js} +2 -2
  32. package/dist/{chunk-GPY33RTH.js → chunk-K6ULLR7M.js} +2 -2
  33. package/dist/chunk-KCC3GMCX.js +2 -0
  34. package/dist/{chunk-7LSCW7NF.js → chunk-KQWFRAQI.js} +2 -2
  35. package/dist/chunk-KRVRD6KZ.js +5 -0
  36. package/dist/{chunk-QFZE73XF.js → chunk-KYGNCIJ6.js} +8 -8
  37. package/dist/chunk-LHLXHH43.js +2 -0
  38. package/dist/{chunk-IZ4KV37N.js → chunk-M7GBLQG4.js} +2 -2
  39. package/dist/{chunk-WFDTS7XL.js → chunk-MEVK6R7N.js} +2 -2
  40. package/dist/{chunk-Q2ALKKSE.js → chunk-OCQN6WF4.js} +2 -2
  41. package/dist/{chunk-ERRUE5G4.js → chunk-PQTGBYXV.js} +2 -2
  42. package/dist/{chunk-ZHHMG4UC.js → chunk-QYWGC7JV.js} +2 -2
  43. package/dist/{chunk-TLRA5TR6.js → chunk-R373SHXM.js} +2 -2
  44. package/dist/{chunk-MXWC53GJ.js → chunk-RRWPHKZA.js} +2 -2
  45. package/dist/{chunk-6GPFHZP3.js → chunk-RUAJV3TN.js} +2 -2
  46. package/dist/{chunk-Q4R2IYA3.js → chunk-S57GUI2T.js} +2 -2
  47. package/dist/chunk-SVUVC5VS.js +2 -0
  48. package/dist/{chunk-4TX5IMMK.js → chunk-T426XELO.js} +2 -2
  49. package/dist/chunk-TX7BHRMT.js +2 -0
  50. package/dist/{chunk-YXMHTJYY.js → chunk-TYRPQE6R.js} +2 -2
  51. package/dist/{chunk-Y4DS3MDC.js → chunk-WPY46NIL.js} +2 -2
  52. package/dist/{chunk-CYJMOTIH.js → chunk-X3Z4KZNX.js} +2 -2
  53. package/dist/{chunk-7X7FLQC5.js → chunk-ZNNCDAYX.js} +2 -2
  54. package/dist/cli.js +156 -145
  55. package/dist/{db-BZPa7dzJ.d.ts → db-DdlToIC-.d.ts} +1 -0
  56. package/dist/index.d.ts +4 -4
  57. package/dist/index.js +2 -2
  58. package/dist/queries/affected.d.ts +1 -1
  59. package/dist/queries/affected.js +1 -1
  60. package/dist/queries/bottlenecks.d.ts +1 -1
  61. package/dist/queries/bottlenecks.js +1 -1
  62. package/dist/queries/by-kind.d.ts +1 -1
  63. package/dist/queries/by-kind.js +1 -1
  64. package/dist/queries/call-graph.d.ts +1 -1
  65. package/dist/queries/call-graph.js +1 -1
  66. package/dist/queries/change-surface.d.ts +1 -1
  67. package/dist/queries/change-surface.js +1 -1
  68. package/dist/queries/code.d.ts +1 -1
  69. package/dist/queries/code.js +1 -1
  70. package/dist/queries/complexity-hotspots.d.ts +2 -1
  71. package/dist/queries/complexity-hotspots.js +1 -1
  72. package/dist/queries/complexity.d.ts +1 -1
  73. package/dist/queries/complexity.js +1 -1
  74. package/dist/queries/convergence.d.ts +1 -1
  75. package/dist/queries/convergence.js +1 -1
  76. package/dist/queries/coupling.d.ts +1 -1
  77. package/dist/queries/coupling.js +1 -1
  78. package/dist/queries/cycles.d.ts +1 -1
  79. package/dist/queries/cycles.js +1 -1
  80. package/dist/queries/dataflow.d.ts +1 -1
  81. package/dist/queries/dataflow.js +1 -1
  82. package/dist/queries/dead.d.ts +1 -1
  83. package/dist/queries/dead.js +1 -1
  84. package/dist/queries/deep-chains.d.ts +1 -1
  85. package/dist/queries/deep-chains.js +1 -1
  86. package/dist/queries/deps.d.ts +1 -1
  87. package/dist/queries/deps.js +1 -1
  88. package/dist/queries/diff-impact.d.ts +20 -2
  89. package/dist/queries/diff-impact.js +1 -1
  90. package/dist/queries/drift.d.ts +1 -1
  91. package/dist/queries/drift.js +1 -1
  92. package/dist/queries/extract-candidates.d.ts +2 -1
  93. package/dist/queries/extract-candidates.js +1 -1
  94. package/dist/queries/fan.d.ts +1 -1
  95. package/dist/queries/fan.js +1 -1
  96. package/dist/queries/files.d.ts +1 -1
  97. package/dist/queries/health-cache-control.d.ts +15 -0
  98. package/dist/queries/health-cache-control.js +2 -0
  99. package/dist/queries/health.d.ts +66 -2
  100. package/dist/queries/health.js +1 -1
  101. package/dist/queries/hierarchy.d.ts +1 -1
  102. package/dist/queries/hierarchy.js +1 -1
  103. package/dist/queries/hotspots.d.ts +1 -1
  104. package/dist/queries/hotspots.js +1 -1
  105. package/dist/queries/imports.d.ts +1 -1
  106. package/dist/queries/imports.js +1 -1
  107. package/dist/queries/index.d.ts +3 -3
  108. package/dist/queries/index.js +1 -1
  109. package/dist/queries/isolated.d.ts +1 -1
  110. package/dist/queries/isolated.js +1 -1
  111. package/dist/queries/members.d.ts +1 -1
  112. package/dist/queries/members.js +1 -1
  113. package/dist/queries/methods.d.ts +1 -1
  114. package/dist/queries/methods.js +1 -1
  115. package/dist/queries/outline.d.ts +1 -1
  116. package/dist/queries/outline.js +1 -1
  117. package/dist/queries/passthrough-candidates.d.ts +2 -1
  118. package/dist/queries/passthrough-candidates.js +1 -1
  119. package/dist/queries/redundant-reexports.d.ts +1 -1
  120. package/dist/queries/redundant-reexports.js +1 -1
  121. package/dist/queries/refs.d.ts +1 -1
  122. package/dist/queries/refs.js +1 -1
  123. package/dist/queries/similar-chains.d.ts +1 -1
  124. package/dist/queries/similar-chains.js +1 -1
  125. package/dist/queries/similar-files.d.ts +1 -1
  126. package/dist/queries/similar-files.js +1 -1
  127. package/dist/queries/similar-signatures.d.ts +1 -1
  128. package/dist/queries/similar-signatures.js +1 -1
  129. package/dist/queries/similar.d.ts +2 -1
  130. package/dist/queries/similar.js +1 -1
  131. package/dist/queries/slice.d.ts +1 -1
  132. package/dist/queries/slice.js +1 -1
  133. package/dist/queries/stale-abstractions.d.ts +4 -2
  134. package/dist/queries/stale-abstractions.js +1 -1
  135. package/dist/queries/stats.d.ts +1 -1
  136. package/dist/queries/surface.d.ts +1 -1
  137. package/dist/queries/surface.js +1 -1
  138. package/dist/queries/symbols.d.ts +1 -1
  139. package/dist/queries/symbols.js +1 -1
  140. package/dist/queries/system.d.ts +1 -1
  141. package/dist/queries/system.js +1 -1
  142. package/dist/queries/trace.d.ts +1 -1
  143. package/dist/queries/trace.js +1 -1
  144. package/dist/queries/wrapper-candidates.d.ts +2 -1
  145. package/dist/queries/wrapper-candidates.js +1 -1
  146. package/package.json +1 -1
  147. package/dist/chunk-25HOGELX.js +0 -2
  148. package/dist/chunk-2TLYCK2L.js +0 -11
  149. package/dist/chunk-3PVIYZ74.js +0 -84
  150. package/dist/chunk-6DVA22YE.js +0 -2
  151. package/dist/chunk-7YI2M2AQ.js +0 -2
  152. package/dist/chunk-AADJ7MCQ.js +0 -2
  153. package/dist/chunk-AV7BOODV.js +0 -4
  154. package/dist/chunk-AXP4H62Q.js +0 -6
  155. package/dist/chunk-C4C3T4K3.js +0 -2
  156. package/dist/chunk-CSRPJCWO.js +0 -2
  157. package/dist/chunk-GBDZY73J.js +0 -2
  158. package/dist/chunk-KW2F3WSV.js +0 -5
  159. package/dist/chunk-NIN762LD.js +0 -5
  160. package/dist/chunk-QPJG6VRT.js +0 -16
  161. package/dist/chunk-TUV2VI7D.js +0 -7
  162. package/dist/chunk-UAPNU7UP.js +0 -2
  163. package/dist/chunk-URCJTFOD.js +0 -2
  164. package/dist/chunk-VRC3WKKE.js +0 -2
  165. package/dist/chunk-Z4AMQWVY.js +0 -90
@@ -506,6 +506,7 @@ interface HealthReport {
506
506
  symbol: string;
507
507
  score: number;
508
508
  }>;
509
+ warnings?: string[];
509
510
  }
510
511
  interface ConvergenceResult {
511
512
  symbolA: {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as ScipDatabase, N as SymbolMatch, Q as SymbolLocation, V as IndexedDefinition, X as ScipSymbol, Y as ScipLocalSymbol, Z as SupportedLanguage, _ as IndexerConfig, $ as ProjectConfig, a0 as WatcherStatus } from './db-BZPa7dzJ.js';
2
- export { A as AffectedResult, B as BottleneckResult, a as ByKindResult, C as CallGraphResult, a1 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, a2 as DeadSymbolResult, k as DeepChainResult, l as DepResult, a3 as DescriptorSuffix, m as DiffImpactResult, a4 as DocumentPathCandidate, a5 as DriftResult, n as DriftSummary, a6 as EntryRootsConfig, E as ExtractCandidate, F as FanResult, o as FileResult, a7 as HealthAction, H as HealthReport, p as HierarchyNode, q as HotspotResult, I as ImportResult, a8 as IndexerOverrides, a9 as InstallMethod, r as IsolatedResult, M as MemberResult, s as MethodResult, O as OutlineNode, aa as ParsedReExport, ab as ParsedSourceExport, ac as ParsedSourceImport, P as PassthroughCandidate, K as RedundantReexport, R as RefResult, ad as ReferenceSite, ae as ScipDescriptor, af as ScipQueryConfig, ag as SemanticConfig, z as SimilarChainResult, y as SimilarFileResult, L as SimilarSignatureGroup, x as SimilarSymbolResult, J as SliceResult, G as StaleAbstraction, t as StatsResult, w as SurfaceResult, u as SymbolResult, v as SystemResult, T as TraceResult, ah as TypeScriptSemanticConfig, U as UnusedImportResult, ai as WatchConfig, W as WrapperCandidate, aj as createGitignoreFilter } from './db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, N as SymbolMatch, Q as SymbolLocation, V as IndexedDefinition, X as ScipSymbol, Y as ScipLocalSymbol, Z as SupportedLanguage, _ as IndexerConfig, $ as ProjectConfig, a0 as WatcherStatus } from './db-DdlToIC-.js';
2
+ export { A as AffectedResult, B as BottleneckResult, a as ByKindResult, C as CallGraphResult, a1 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, a2 as DeadSymbolResult, k as DeepChainResult, l as DepResult, a3 as DescriptorSuffix, m as DiffImpactResult, a4 as DocumentPathCandidate, a5 as DriftResult, n as DriftSummary, a6 as EntryRootsConfig, E as ExtractCandidate, F as FanResult, o as FileResult, a7 as HealthAction, H as HealthReport, p as HierarchyNode, q as HotspotResult, I as ImportResult, a8 as IndexerOverrides, a9 as InstallMethod, r as IsolatedResult, M as MemberResult, s as MethodResult, O as OutlineNode, aa as ParsedReExport, ab as ParsedSourceExport, ac as ParsedSourceImport, P as PassthroughCandidate, K as RedundantReexport, R as RefResult, ad as ReferenceSite, ae as ScipDescriptor, af as ScipQueryConfig, ag as SemanticConfig, z as SimilarChainResult, y as SimilarFileResult, L as SimilarSignatureGroup, x as SimilarSymbolResult, J as SliceResult, G as StaleAbstraction, t as StatsResult, w as SurfaceResult, u as SymbolResult, v as SystemResult, T as TraceResult, ah as TypeScriptSemanticConfig, U as UnusedImportResult, ai as WatchConfig, W as WrapperCandidate, aj as createGitignoreFilter } from './db-DdlToIC-.js';
3
3
  export { stats } from './queries/stats.js';
4
4
  export { files } from './queries/files.js';
5
5
  export { symbols } from './queries/symbols.js';
@@ -29,13 +29,13 @@ export { similarChains } from './queries/similar-chains.js';
29
29
  export { extractCandidates } from './queries/extract-candidates.js';
30
30
  export { affected } from './queries/affected.js';
31
31
  export { changeSurface } from './queries/change-surface.js';
32
- export { diffImpact } from './queries/diff-impact.js';
32
+ export { diffImpact, diffImpactPartial, diffImpactPlan, mergeDiffImpactPartials } from './queries/diff-impact.js';
33
33
  export { drift } from './queries/drift.js';
34
34
  export { wrapperCandidates } from './queries/wrapper-candidates.js';
35
35
  export { passthroughCandidates } from './queries/passthrough-candidates.js';
36
36
  export { staleAbstractions } from './queries/stale-abstractions.js';
37
37
  export { complexityHotspots } from './queries/complexity-hotspots.js';
38
- export { health } from './queries/health.js';
38
+ export { HEALTH_PHASES, health, healthPhase, healthReportFromPhases } from './queries/health.js';
39
39
  export { convergence } from './queries/convergence.js';
40
40
  export { code } from './queries/code.js';
41
41
  export { complexity } from './queries/complexity.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import"./chunk-FVH3Y44U.js";import{a as Ai}from"./chunk-DLWRLPKO.js";import{a as Di}from"./chunk-GBDZY73J.js";import{a as _i}from"./chunk-MXWC53GJ.js";import{a as Ni}from"./chunk-AV7BOODV.js";import{a as Ps}from"./chunk-E2V5SE6M.js";import{a as Fi}from"./chunk-IZ4KV37N.js";import{a as cs}from"./chunk-7PRMSA4Z.js";import{a as us}from"./chunk-KBGFYKOJ.js";import{a as ws}from"./chunk-WFDTS7XL.js";import{a as ks}from"./chunk-I377UMS2.js";import{a as $i}from"./chunk-QFBJZHMV.js";import{a as Bi,b as Wi,c as Ui}from"./chunk-UUIWMLDX.js";import{a as Gi}from"./chunk-IKQYNTW3.js";import{a as Li}from"./chunk-CSRPJCWO.js";import{a as Hi}from"./chunk-TLRA5TR6.js";import{a as ps}from"./chunk-QPJG6VRT.js";import{a as qi,b as Ji,c as zi,d as Xi}from"./chunk-HVNVO6UW.js";import{a as Ti}from"./chunk-KAM4C6ZD.js";import{a as xs}from"./chunk-25HOGELX.js";import{a as Oi}from"./chunk-QRYEOK3M.js";import{a as ms}from"./chunk-TUV2VI7D.js";import{a as os,b as as}from"./chunk-AXP4H62Q.js";import"./chunk-RKTDEIHF.js";import{a as bs}from"./chunk-NIN762LD.js";import{a as es}from"./chunk-7YI2M2AQ.js";import{a as hs}from"./chunk-6DVA22YE.js";import{a as fs}from"./chunk-GPY33RTH.js";import"./chunk-LJ2YWNQF.js";import{a as ls}from"./chunk-C4C3T4K3.js";import{a as is}from"./chunk-OQZF2DQJ.js";import{a as Rs}from"./chunk-Q4R2IYA3.js";import{a as Ss}from"./chunk-CYJMOTIH.js";import{a as Ki,b as Qi}from"./chunk-Q2ALKKSE.js";import{a as Yi}from"./chunk-PIRXZGV6.js";import{a as Is}from"./chunk-6GPFHZP3.js";import{a as Vi}from"./chunk-4TX5IMMK.js";import{a as rs}from"./chunk-O6VBAW7P.js";import{a as ji,b as Mi}from"./chunk-ERRUE5G4.js";import{a as gs}from"./chunk-AADJ7MCQ.js";import{a as Zi}from"./chunk-VRC3WKKE.js";import{a as ts,b as ns}from"./chunk-7X7FLQC5.js";import{a as ss}from"./chunk-YJODB2F5.js";import{a as ds}from"./chunk-2TLYCK2L.js";import{a as vs}from"./chunk-7LSCW7NF.js";import"./chunk-MO65UK5V.js";import{a as ys}from"./chunk-URCJTFOD.js";import{a as rt}from"./chunk-UAPNU7UP.js";import"./chunk-YXMHTJYY.js";import"./chunk-VEXS3I3N.js";import{a as ge,b as de}from"./chunk-Y4DS3MDC.js";import"./chunk-3PVIYZ74.js";import"./chunk-KW2F3WSV.js";import"./chunk-Z4AMQWVY.js";import"./chunk-ZHHMG4UC.js";import{n as et,o as tt,p as nt}from"./chunk-QFZE73XF.js";import it from"better-sqlite3";var H=class{db;config;pathFilter;constructor(t,n){this.config=t,this.pathFilter=n??null,this.db=new it(t.dbPath,{readonly:!0}),this.db.pragma("busy_timeout = 5000")}isIgnored(t){return this.pathFilter?.isIgnored(t)??!1}get localSymbolPredicate(){return`(
1
+ import"./chunk-FVH3Y44U.js";import{a as Ai}from"./chunk-ILQSK2KJ.js";import{a as Di}from"./chunk-3EJRPTTB.js";import{a as _i}from"./chunk-RRWPHKZA.js";import{a as Ni}from"./chunk-3A2M7AF3.js";import{a as Ds}from"./chunk-IBWYWAWE.js";import{a as Fi}from"./chunk-M7GBLQG4.js";import{a as cs}from"./chunk-2YA36CXK.js";import{a as us}from"./chunk-JVMXNDRU.js";import{a as Ls}from"./chunk-MEVK6R7N.js";import{a as Ts}from"./chunk-HADDFTMU.js";import{a as is}from"./chunk-2R7OKZE5.js";import{a as $i}from"./chunk-7TGEXAN5.js";import{a as Bi,b as Wi,c as Ui}from"./chunk-4Y6KUJDO.js";import{a as Gi}from"./chunk-BG7YU4DJ.js";import{a as Li}from"./chunk-LHLXHH43.js";import{a as Hi}from"./chunk-R373SHXM.js";import{a as ps,b as fs,c as ms,d as hs}from"./chunk-6XRB6ATD.js";import{a as qi,b as Ji,c as zi,d as Xi}from"./chunk-FYO3FPFH.js";import{a as Ti}from"./chunk-KAM4C6ZD.js";import{a as Rs,b as Is,c as ks,d as Ps}from"./chunk-TX7BHRMT.js";import{a as Ss}from"./chunk-KRVRD6KZ.js";import{a as Oi}from"./chunk-QRYEOK3M.js";import{a as ys}from"./chunk-4M4FEWBL.js";import{a as xs}from"./chunk-FAN2CVZT.js";import{a as os,b as as}from"./chunk-3SWWYJPB.js";import"./chunk-RKTDEIHF.js";import{a as es}from"./chunk-IARIBTCL.js";import{a as bs}from"./chunk-K6ULLR7M.js";import"./chunk-LJ2YWNQF.js";import{a as ls}from"./chunk-D2R6IIEO.js";import"./chunk-2AUZ3PLO.js";import{a as Es}from"./chunk-S57GUI2T.js";import{a as ws}from"./chunk-X3Z4KZNX.js";import{a as Ki,b as Qi}from"./chunk-OCQN6WF4.js";import{a as Yi}from"./chunk-2CC7RA6B.js";import{a as Os}from"./chunk-RUAJV3TN.js";import{a as Vi}from"./chunk-T426XELO.js";import{a as rs}from"./chunk-K345WFTU.js";import{a as ji,b as Mi}from"./chunk-PQTGBYXV.js";import{a as gs}from"./chunk-HTJ5BOYP.js";import{a as Zi}from"./chunk-KCC3GMCX.js";import{a as ts,b as ns}from"./chunk-ZNNCDAYX.js";import{a as ss}from"./chunk-E47WMJ5F.js";import{a as ds}from"./chunk-EEA3R37V.js";import{a as Cs}from"./chunk-KQWFRAQI.js";import"./chunk-55ZJ2FCW.js";import{a as vs}from"./chunk-ABLXPGAZ.js";import{a as rt}from"./chunk-SVUVC5VS.js";import"./chunk-TYRPQE6R.js";import"./chunk-7EQ4J66C.js";import{a as ge,b as de}from"./chunk-WPY46NIL.js";import"./chunk-GS55K4WJ.js";import"./chunk-6FLGPRBR.js";import"./chunk-G47V5V3U.js";import"./chunk-QYWGC7JV.js";import{p as et,q as tt,r as nt}from"./chunk-KYGNCIJ6.js";import it from"better-sqlite3";var H=class{db;config;pathFilter;constructor(t,n){this.config=t,this.pathFilter=n??null,this.db=new it(t.dbPath,{readonly:!0}),this.db.pragma("busy_timeout = 5000")}isIgnored(t){return this.pathFilter?.isIgnored(t)??!1}get localSymbolPredicate(){return`(
2
2
  EXISTS (
3
3
  SELECT 1
4
4
  FROM defn_enclosing_ranges local_der
@@ -144,5 +144,5 @@ Install manually from: https://github.com/sourcegraph/scip/releases`)}}function
144
144
  `),()=>{try{wr(t)}finally{R(e,{force:!0})}}}function Qr(e){ie(e.tempOutputScip,e.outputScip),ie(e.tempOutputDb,e.outputDb),ie(e.tempMetaPath,e.metaPath)}function ie(e,t){R(`${t}.tmp-replace`,{force:!0}),v(e,`${t}.tmp-replace`),v(`${t}.tmp-replace`,t)}function Yr(e,t){if(e<=1)return 1;let n=Number(process.env.SCIP_QUERY_INDEXER_CONCURRENCY??0),r=Number.isFinite(t)&&t&&t>0?t:Number.isFinite(n)&&n>0?n:Math.min(2,Math.max(1,Tr().length-1));return Math.max(1,Math.min(e,Math.floor(r)))}async function Zr(e,t,n,r){let i=e.filter(c=>c.config.defaultOutputPath),s=e.filter(c=>!c.config.defaultOutputPath),o=[],a=Yr(s.length,r),u=await ti(s,a,c=>se(c,t,n));if(a>1){let c=new Map;for(let g of u.filter(l=>l.skipped)){let l=s.find(d=>d.language===g.language);l&&(n(`Retrying ${l.language} indexer serially after parallel failure...`),c.set(l.language,await se(l,t,n)))}o.push(...u.map(g=>c.get(g.language)??g))}else o.push(...u);for(let c of i)o.push(await se(c,t,n));return o.sort((c,g)=>e.findIndex(l=>l.language===c.language)-e.findIndex(l=>l.language===g.language))}async function se(e,t,n){n(`Indexing ${e.language} with ${e.resolvedBinary}...`),R(e.scipPath,{force:!0});let r=Jr(e.config,t,e.scipPath);try{await ei(e.binary,e.args,{cwd:t,env:e.env,maxBuffer:50*1024*1024}),qr(e.config,t,e.scipPath)}catch(i){let s=i instanceof Error?i.message:String(i),o=`${e.resolvedBinary} indexer failed: ${s.split(`
145
145
  `)[0]}`;return n(`Skipping ${e.language}: ${o}`),{language:e.language,scipPath:e.scipPath,skipped:{language:e.language,reason:o}}}finally{zr(r)}if(!y(e.scipPath)){let i=`${e.resolvedBinary} indexer completed but did not produce ${e.scipPath}`;return n(`Skipping ${e.language}: ${i}`),{language:e.language,scipPath:e.scipPath,skipped:{language:e.language,reason:i}}}return{language:e.language,scipPath:e.scipPath}}function ei(e,t,n){return new Promise((r,i)=>{kr(e,[...t],n,s=>{s?i(s):r()})})}async function ti(e,t,n){if(e.length===0)return[];let r=new Array(e.length),i=0,s=Math.max(1,Math.min(e.length,t)),o=Array.from({length:s},async()=>{for(;i<e.length;){let a=i++;r[a]=await n(e[a])}});return await Promise.all(o),r}function ni(e,t,n){return{version:1,languages:[...t].sort(),pnpmWorkspaces:n.pnpmWorkspaces===!0,files:j(e)}}function ri(e,t){try{let n=JSON.parse(Or(e,"utf-8"));return n.version===2&&n.status==="complete"&&B(n.fingerprint)===B(t)&&B([...n.indexedLanguages??[]].sort())===B(t.languages)}catch{return!1}}function ii(e,t){He(e,`${JSON.stringify(t,null,2)}
146
146
  `)}function B(e){return JSON.stringify(e)}import{readFileSync as si,writeFileSync as oi,existsSync as qe,mkdirSync as ai}from"fs";import{join as x,resolve as Ge}from"path";import{createHash as ui}from"crypto";import{homedir as ci}from"os";var Je=".scipquery.json",li={enabled:!1,debounceMs:3e4,cooldownMs:6e4,ignore:[]};function gi(e){let t=x(e,Je);if(!qe(t))return{};try{let n=si(t,"utf-8");return JSON.parse(n)}catch{return{}}}function ze(e){return{...li,...e.watch}}function di(e,t){let n=process.env.SCIP_QUERY_CACHE_DIR;if(n)return oe(n);if(t?.dbPath)return oe(Ge(e,t.dbPath));let i=process.env.XDG_CACHE_HOME||x(ci(),".cache"),s=ui("sha256").update(Ge(e)).digest("hex").slice(0,12),o=x(i,"scip-query","projects",s);return oe(o)}function ae(e,t){let n=di(e,t);return{cacheDir:n,dbPath:x(n,"index.db"),indexPath:x(n,"index.scip"),metaPath:x(n,"meta.json")}}function pi(e,t){let n=x(e,Je);return qe(n)||oi(n,JSON.stringify({languages:t,watch:{enabled:!1,debounceMs:3e4,cooldownMs:6e4}},null,2)+`
147
- `),n}function oe(e){return ai(e,{recursive:!0}),e}import{watch as fi}from"fs";import{existsSync as Xe,renameSync as Ke}from"fs";import{join as mi,relative as hi}from"path";import{fork as bi}from"child_process";import yi from"ignore";var ue=class{projectRoot;watchConfig;indexPaths;languages;pnpmWorkspaces;onStatus;onReindexComplete;onError;status={state:"idle"};debounceTimer=null;cooldownTimer=null;dirty=!1;changedFiles=0;reindexInFlight=!1;lastReindexEnd=0;fsWatchers=[];gitignoreFilter;extraIgnore;stopped=!1;constructor(t){this.projectRoot=t.projectRoot,this.watchConfig=ze(t.config),this.indexPaths=ae(t.projectRoot,t.config),this.languages=t.languages,this.pnpmWorkspaces=t.config.indexer?.typescript?.pnpmWorkspaces??!1,this.onStatus=t.onStatus??(()=>{}),this.onReindexComplete=t.onReindexComplete??(()=>{}),this.onError=t.onError??(n=>console.error(n.message)),this.gitignoreFilter=I(t.projectRoot),this.extraIgnore=yi(),this.watchConfig.ignore.length>0&&this.extraIgnore.add(this.watchConfig.ignore)}start(){this.stopped=!1,this.setStatus({state:"idle"});try{let t=fi(this.projectRoot,{recursive:!0},(n,r)=>{r&&!this.stopped&&this.handleFileChange(r)});this.fsWatchers.push(t)}catch{this.onError(new Error("Failed to start file watcher. On Linux, you may need to increase inotify limits: sysctl -w fs.inotify.max_user_watches=524288"))}}stop(){this.stopped=!0;for(let t of this.fsWatchers)t.close();this.fsWatchers=[],this.clearDebounceTimer(),this.clearCooldownTimer(),this.setStatus({state:"idle"})}handleFileChange(t){let n=hi(this.projectRoot,mi(this.projectRoot,t));if(this.gitignoreFilter.isIgnored(n)||this.extraIgnore.ignores(n)||t.endsWith("index.db")||t.endsWith("index.scip")||t.endsWith("index.db.tmp")||t.endsWith(".scipquery.json"))return;if(this.changedFiles++,this.reindexInFlight){this.dirty=!0,this.setStatus({state:"indexing",startedAt:this.status.startedAt});return}if(this.status.state==="cooldown"){this.dirty=!0,this.setStatus({state:"cooldown",until:this.status.until,dirty:!0});return}this.clearDebounceTimer();let r=Date.now()+this.watchConfig.debounceMs;this.setStatus({state:"waiting",changedFiles:this.changedFiles,reindexAt:r}),this.debounceTimer=setTimeout(()=>{this.debounceTimer=null,this.triggerReindex()},this.watchConfig.debounceMs)}triggerReindex(){if(this.reindexInFlight||this.stopped)return;let t=Date.now()-this.lastReindexEnd;if(this.lastReindexEnd>0&&t<this.watchConfig.cooldownMs){let r=this.watchConfig.cooldownMs-t;this.dirty=!0;let i=Date.now()+r;this.setStatus({state:"cooldown",until:i,dirty:!0}),this.cooldownTimer=setTimeout(()=>{this.cooldownTimer=null,this.dirty&&!this.stopped&&(this.dirty=!1,this.triggerReindex())},r);return}this.reindexInFlight=!0,this.dirty=!1,this.changedFiles=0;let n=Date.now();this.setStatus({state:"indexing",startedAt:n}),this.runReindex().then(r=>{if(this.reindexInFlight=!1,this.lastReindexEnd=Date.now(),this.onReindexComplete(r),this.dirty&&!this.stopped){let i=Date.now()+this.watchConfig.cooldownMs;this.setStatus({state:"cooldown",until:i,dirty:!0}),this.cooldownTimer=setTimeout(()=>{this.cooldownTimer=null,this.dirty&&!this.stopped?(this.dirty=!1,this.triggerReindex()):this.setStatus({state:"idle"})},this.watchConfig.cooldownMs)}else this.setStatus({state:"idle"})}).catch(r=>{this.reindexInFlight=!1,this.lastReindexEnd=Date.now(),this.onError(r instanceof Error?r:new Error(String(r))),this.setStatus({state:"idle"})})}runReindex(){return new Promise((t,n)=>{let r=Date.now(),i=this.indexPaths.dbPath+".tmp",s=xi(this.indexPaths.indexPath),o=bi(new URL("./reindex-worker.js",import.meta.url).pathname,[],{env:{...process.env,SCIP_REINDEX_PROJECT_ROOT:this.projectRoot,SCIP_REINDEX_OUTPUT_SCIP:s,SCIP_REINDEX_OUTPUT_DB:i,SCIP_REINDEX_LANGUAGES:this.languages?.join(",")??"",SCIP_REINDEX_PNPM_WORKSPACES:this.pnpmWorkspaces?"1":""},stdio:"pipe"});o.on("exit",a=>{if(a===0)try{Xe(i)&&Ke(i,this.indexPaths.dbPath),Xe(s)&&Ke(s,this.indexPaths.indexPath),t(Date.now()-r)}catch(u){n(new Error(`Atomic swap failed: ${u}`))}else n(new Error(`Reindex worker exited with code ${a}`))}),o.on("error",n)})}setStatus(t){this.status=t,this.onStatus(t)}clearDebounceTimer(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null)}clearCooldownTimer(){this.cooldownTimer&&(clearTimeout(this.cooldownTimer),this.cooldownTimer=null)}};function xi(e){return e.endsWith(".scip")?e.slice(0,-5)+".tmp.scip":e+".tmp.scip"}import{existsSync as ce,mkdirSync as Si,symlinkSync as vi,readlinkSync as Ri,unlinkSync as Ii}from"fs";import{join as U,dirname as Qe,resolve as le}from"path";import{homedir as Ye,platform as ki}from"os";import{fileURLToPath as Pi}from"url";var wi=ki()==="win32",Ci=["concrete-plan","scip-explore","scip-debloat","scip-verify","scip-language-playbook"];function Ei(e={}){let t=e.quiet?()=>{}:console.log,n=Pi(import.meta.url),r=le(Qe(n),"..","skills"),i=[U(Ye(),".claude","skills"),U(Ye(),".codex","skills")],s={installed:[],skipped:[],alreadyLinked:[]};for(let o of i){let a=Qe(o);if(!ce(a))continue;Si(o,{recursive:!0});let u=o.includes(".codex")?"Codex":"Claude";for(let c of Ci){let g=U(r,c),l=U(o,c);if(!ce(g)){s.skipped.push(`${u}/${c}`);continue}if(ce(l)){try{let d=Ri(l);if(le(d)===le(g)){s.alreadyLinked.push(`${u}/${c}`),t(` ok: ${c} \u2192 ${u} (already linked)`);continue}}catch{s.skipped.push(`${u}/${c}`),t(` skip: ${c} \u2192 ${u} (exists, not a symlink)`);continue}Ii(l)}vi(g,l,wi?"junction":"dir"),s.installed.push(`${u}/${c}`),t(` done: ${c} \u2192 ${u}`)}}return s}export{X as INDEXER_CONFIGS,rt as ProjectIndex,H as ScipDatabase,ue as Watcher,gs as affected,m as augmentAuxiliaryDocuments,Me as augmentVueResolvedReferences,Zi as bottlenecks,ts as byKind,ss as callGraph,ds as changeSurface,vs as code,Rs as complexity,ys as complexityHotspots,Ss as convergence,Ki as coupling,I as createGitignoreFilter,Yi as cycles,Is as dataflow,Vi as dead,rs as deepChains,ji as deps,L as detectLanguages,ps as diffImpact,fs as drift,ls as extractCandidates,qi as fanIn,Ji as fanOut,Ti as files,F as getIndexerConfig,ft as getScipVersion,xs as health,is as hierarchy,$i as hotspots,Wi as importedBy,Bi as imports,pi as initProjectConfig,Ei as installSkills,h as isBinaryAvailable,V as isIndexerInstalled,pt as isScipInstalled,es as isolated,ns as kindCounts,nt as leafName,gi as loadProjectConfig,Gi as members,N as mergeScipFiles,Q as mergeScipIndexes,Li as methods,Hi as outline,et as parseSymbol,hs as passthroughCandidates,ht as printScipInstallInstructions,Mi as rdeps,Ps as redundantReexports,Fi as refs,Lr as reindex,ae as resolveIndexPaths,tt as shortenSymbol,os as similar,as as similarAll,cs as similarChains,us as similarFiles,ws as similarSignatures,ks as slice,bs as staleAbstractions,Oi as stats,Ai as surface,Di as symbols,_i as system,Qi as topCoupling,zi as topFanIn,Xi as topFanOut,Ni as trace,$ as tryInstallIndexer,T as tryInstallScipCli,Ui as unusedImports,ms as wrapperCandidates};
147
+ `),n}function oe(e){return ai(e,{recursive:!0}),e}import{watch as fi}from"fs";import{existsSync as Xe,renameSync as Ke}from"fs";import{join as mi,relative as hi}from"path";import{fork as bi}from"child_process";import yi from"ignore";var ue=class{projectRoot;watchConfig;indexPaths;languages;pnpmWorkspaces;onStatus;onReindexComplete;onError;status={state:"idle"};debounceTimer=null;cooldownTimer=null;dirty=!1;changedFiles=0;reindexInFlight=!1;lastReindexEnd=0;fsWatchers=[];gitignoreFilter;extraIgnore;stopped=!1;constructor(t){this.projectRoot=t.projectRoot,this.watchConfig=ze(t.config),this.indexPaths=ae(t.projectRoot,t.config),this.languages=t.languages,this.pnpmWorkspaces=t.config.indexer?.typescript?.pnpmWorkspaces??!1,this.onStatus=t.onStatus??(()=>{}),this.onReindexComplete=t.onReindexComplete??(()=>{}),this.onError=t.onError??(n=>console.error(n.message)),this.gitignoreFilter=I(t.projectRoot),this.extraIgnore=yi(),this.watchConfig.ignore.length>0&&this.extraIgnore.add(this.watchConfig.ignore)}start(){this.stopped=!1,this.setStatus({state:"idle"});try{let t=fi(this.projectRoot,{recursive:!0},(n,r)=>{r&&!this.stopped&&this.handleFileChange(r)});this.fsWatchers.push(t)}catch{this.onError(new Error("Failed to start file watcher. On Linux, you may need to increase inotify limits: sysctl -w fs.inotify.max_user_watches=524288"))}}stop(){this.stopped=!0;for(let t of this.fsWatchers)t.close();this.fsWatchers=[],this.clearDebounceTimer(),this.clearCooldownTimer(),this.setStatus({state:"idle"})}handleFileChange(t){let n=hi(this.projectRoot,mi(this.projectRoot,t));if(this.gitignoreFilter.isIgnored(n)||this.extraIgnore.ignores(n)||t.endsWith("index.db")||t.endsWith("index.scip")||t.endsWith("index.db.tmp")||t.endsWith(".scipquery.json"))return;if(this.changedFiles++,this.reindexInFlight){this.dirty=!0,this.setStatus({state:"indexing",startedAt:this.status.startedAt});return}if(this.status.state==="cooldown"){this.dirty=!0,this.setStatus({state:"cooldown",until:this.status.until,dirty:!0});return}this.clearDebounceTimer();let r=Date.now()+this.watchConfig.debounceMs;this.setStatus({state:"waiting",changedFiles:this.changedFiles,reindexAt:r}),this.debounceTimer=setTimeout(()=>{this.debounceTimer=null,this.triggerReindex()},this.watchConfig.debounceMs)}triggerReindex(){if(this.reindexInFlight||this.stopped)return;let t=Date.now()-this.lastReindexEnd;if(this.lastReindexEnd>0&&t<this.watchConfig.cooldownMs){let r=this.watchConfig.cooldownMs-t;this.dirty=!0;let i=Date.now()+r;this.setStatus({state:"cooldown",until:i,dirty:!0}),this.cooldownTimer=setTimeout(()=>{this.cooldownTimer=null,this.dirty&&!this.stopped&&(this.dirty=!1,this.triggerReindex())},r);return}this.reindexInFlight=!0,this.dirty=!1,this.changedFiles=0;let n=Date.now();this.setStatus({state:"indexing",startedAt:n}),this.runReindex().then(r=>{if(this.reindexInFlight=!1,this.lastReindexEnd=Date.now(),this.onReindexComplete(r),this.dirty&&!this.stopped){let i=Date.now()+this.watchConfig.cooldownMs;this.setStatus({state:"cooldown",until:i,dirty:!0}),this.cooldownTimer=setTimeout(()=>{this.cooldownTimer=null,this.dirty&&!this.stopped?(this.dirty=!1,this.triggerReindex()):this.setStatus({state:"idle"})},this.watchConfig.cooldownMs)}else this.setStatus({state:"idle"})}).catch(r=>{this.reindexInFlight=!1,this.lastReindexEnd=Date.now(),this.onError(r instanceof Error?r:new Error(String(r))),this.setStatus({state:"idle"})})}runReindex(){return new Promise((t,n)=>{let r=Date.now(),i=this.indexPaths.dbPath+".tmp",s=xi(this.indexPaths.indexPath),o=bi(new URL("./reindex-worker.js",import.meta.url).pathname,[],{env:{...process.env,SCIP_REINDEX_PROJECT_ROOT:this.projectRoot,SCIP_REINDEX_OUTPUT_SCIP:s,SCIP_REINDEX_OUTPUT_DB:i,SCIP_REINDEX_LANGUAGES:this.languages?.join(",")??"",SCIP_REINDEX_PNPM_WORKSPACES:this.pnpmWorkspaces?"1":""},stdio:"pipe"});o.on("exit",a=>{if(a===0)try{Xe(i)&&Ke(i,this.indexPaths.dbPath),Xe(s)&&Ke(s,this.indexPaths.indexPath),t(Date.now()-r)}catch(u){n(new Error(`Atomic swap failed: ${u}`))}else n(new Error(`Reindex worker exited with code ${a}`))}),o.on("error",n)})}setStatus(t){this.status=t,this.onStatus(t)}clearDebounceTimer(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null)}clearCooldownTimer(){this.cooldownTimer&&(clearTimeout(this.cooldownTimer),this.cooldownTimer=null)}};function xi(e){return e.endsWith(".scip")?e.slice(0,-5)+".tmp.scip":e+".tmp.scip"}import{existsSync as ce,mkdirSync as Si,symlinkSync as vi,readlinkSync as Ri,unlinkSync as Ii}from"fs";import{join as U,dirname as Qe,resolve as le}from"path";import{homedir as Ye,platform as ki}from"os";import{fileURLToPath as Pi}from"url";var wi=ki()==="win32",Ci=["concrete-plan","scip-explore","scip-debloat","scip-verify","scip-language-playbook"];function Ei(e={}){let t=e.quiet?()=>{}:console.log,n=Pi(import.meta.url),r=le(Qe(n),"..","skills"),i=[U(Ye(),".claude","skills"),U(Ye(),".codex","skills")],s={installed:[],skipped:[],alreadyLinked:[]};for(let o of i){let a=Qe(o);if(!ce(a))continue;Si(o,{recursive:!0});let u=o.includes(".codex")?"Codex":"Claude";for(let c of Ci){let g=U(r,c),l=U(o,c);if(!ce(g)){s.skipped.push(`${u}/${c}`);continue}if(ce(l)){try{let d=Ri(l);if(le(d)===le(g)){s.alreadyLinked.push(`${u}/${c}`),t(` ok: ${c} \u2192 ${u} (already linked)`);continue}}catch{s.skipped.push(`${u}/${c}`),t(` skip: ${c} \u2192 ${u} (exists, not a symlink)`);continue}Ii(l)}vi(g,l,wi?"junction":"dir"),s.installed.push(`${u}/${c}`),t(` done: ${c} \u2192 ${u}`)}}return s}export{Rs as HEALTH_PHASES,X as INDEXER_CONFIGS,rt as ProjectIndex,H as ScipDatabase,ue as Watcher,gs as affected,m as augmentAuxiliaryDocuments,Me as augmentVueResolvedReferences,Zi as bottlenecks,ts as byKind,ss as callGraph,ds as changeSurface,Cs as code,Es as complexity,vs as complexityHotspots,ws as convergence,Ki as coupling,I as createGitignoreFilter,Yi as cycles,Os as dataflow,Vi as dead,rs as deepChains,ji as deps,L as detectLanguages,ps as diffImpact,ms as diffImpactPartial,fs as diffImpactPlan,bs as drift,ls as extractCandidates,qi as fanIn,Ji as fanOut,Ti as files,F as getIndexerConfig,ft as getScipVersion,Is as health,ks as healthPhase,Ps as healthReportFromPhases,is as hierarchy,$i as hotspots,Wi as importedBy,Bi as imports,pi as initProjectConfig,Ei as installSkills,h as isBinaryAvailable,V as isIndexerInstalled,pt as isScipInstalled,es as isolated,ns as kindCounts,nt as leafName,gi as loadProjectConfig,Gi as members,hs as mergeDiffImpactPartials,N as mergeScipFiles,Q as mergeScipIndexes,Li as methods,Hi as outline,et as parseSymbol,xs as passthroughCandidates,ht as printScipInstallInstructions,Mi as rdeps,Ds as redundantReexports,Fi as refs,Lr as reindex,ae as resolveIndexPaths,tt as shortenSymbol,os as similar,as as similarAll,cs as similarChains,us as similarFiles,Ls as similarSignatures,Ts as slice,Ss as staleAbstractions,Oi as stats,Ai as surface,Di as symbols,_i as system,Qi as topCoupling,zi as topFanIn,Xi as topFanOut,Ni as trace,$ as tryInstallIndexer,T as tryInstallScipCli,Ui as unusedImports,ys as wrapperCandidates};
148
148
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, A as AffectedResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, A as AffectedResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-AADJ7MCQ.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as affected};
1
+ import{a}from"../chunk-HTJ5BOYP.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as affected};
2
2
  //# sourceMappingURL=affected.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, B as BottleneckResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, B as BottleneckResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-VRC3WKKE.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as bottlenecks};
1
+ import{a}from"../chunk-KCC3GMCX.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as bottlenecks};
2
2
  //# sourceMappingURL=bottlenecks.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, a as ByKindResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, a as ByKindResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  declare function byKind(db: ScipDatabase, kindQuery: string, opts?: {
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-7X7FLQC5.js";import"../chunk-QFZE73XF.js";export{a as byKind,b as kindCounts};
1
+ import{a,b}from"../chunk-ZNNCDAYX.js";import"../chunk-KYGNCIJ6.js";export{a as byKind,b as kindCounts};
2
2
  //# sourceMappingURL=by-kind.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, C as CallGraphResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, C as CallGraphResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-YJODB2F5.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as callGraph};
1
+ import{a}from"../chunk-E47WMJ5F.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as callGraph};
2
2
  //# sourceMappingURL=call-graph.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, b as ChangeSurfaceResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, b as ChangeSurfaceResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-2TLYCK2L.js";import"../chunk-MO65UK5V.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as changeSurface};
1
+ import{a}from"../chunk-EEA3R37V.js";import"../chunk-55ZJ2FCW.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as changeSurface};
2
2
  //# sourceMappingURL=change-surface.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, c as CodeResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, c as CodeResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-7LSCW7NF.js";import"../chunk-MO65UK5V.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as code};
1
+ import{a}from"../chunk-KQWFRAQI.js";import"../chunk-55ZJ2FCW.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as code};
2
2
  //# sourceMappingURL=code.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, d as ComplexityHotspot } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, d as ComplexityHotspot } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -16,6 +16,7 @@ declare function complexityHotspots(db: ScipDatabase, opts?: {
16
16
  scope?: string;
17
17
  minLoc?: number;
18
18
  limit?: number;
19
+ scanLimit?: number;
19
20
  }): ComplexityHotspot[];
20
21
 
21
22
  export { complexityHotspots };
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-URCJTFOD.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as complexityHotspots};
1
+ import{a}from"../chunk-ABLXPGAZ.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as complexityHotspots};
2
2
  //# sourceMappingURL=complexity-hotspots.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, e as ComplexityResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, e as ComplexityResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-Q4R2IYA3.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as complexity};
1
+ import{a}from"../chunk-S57GUI2T.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as complexity};
2
2
  //# sourceMappingURL=complexity.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, f as ConvergenceResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, f as ConvergenceResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-CYJMOTIH.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as convergence};
1
+ import{a}from"../chunk-X3Z4KZNX.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as convergence};
2
2
  //# sourceMappingURL=convergence.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, g as CouplingResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, g as CouplingResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-Q2ALKKSE.js";import"../chunk-MO65UK5V.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as coupling,b as topCoupling};
1
+ import{a,b}from"../chunk-OCQN6WF4.js";import"../chunk-55ZJ2FCW.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as coupling,b as topCoupling};
2
2
  //# sourceMappingURL=coupling.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, h as CycleResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, h as CycleResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-PIRXZGV6.js";import"../chunk-YXMHTJYY.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as cycles};
1
+ import{a}from"../chunk-2CC7RA6B.js";import"../chunk-TYRPQE6R.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as cycles};
2
2
  //# sourceMappingURL=cycles.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, D as DataflowResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, D as DataflowResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-6GPFHZP3.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as dataflow};
1
+ import{a}from"../chunk-RUAJV3TN.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as dataflow};
2
2
  //# sourceMappingURL=dataflow.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, i as DeadOptions, j as DeadSummary } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, i as DeadOptions, j as DeadSummary } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-4TX5IMMK.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as dead};
1
+ import{a}from"../chunk-T426XELO.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as dead};
2
2
  //# sourceMappingURL=dead.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, k as DeepChainResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, k as DeepChainResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-O6VBAW7P.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as deepChains};
1
+ import{a}from"../chunk-K345WFTU.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as deepChains};
2
2
  //# sourceMappingURL=deep-chains.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, l as DepResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, l as DepResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /** What internal files does this file depend on? (forward dependencies) */
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-ERRUE5G4.js";import"../chunk-MO65UK5V.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as deps,b as rdeps};
1
+ import{a,b}from"../chunk-PQTGBYXV.js";import"../chunk-55ZJ2FCW.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as deps,b as rdeps};
2
2
  //# sourceMappingURL=deps.js.map
@@ -1,6 +1,19 @@
1
- import { S as ScipDatabase, m as DiffImpactResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, m as DiffImpactResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
+ type ChangedSymbol = DiffImpactResult['changedSymbols'][number];
5
+ interface DiffImpactPlan {
6
+ changedFileLines: string[];
7
+ changedFiles: string[];
8
+ note?: string;
9
+ }
10
+ interface DiffImpactPartial {
11
+ changedSymbols: ChangedSymbol[];
12
+ consumerEntries: Array<{
13
+ file: string;
14
+ symbols: string[];
15
+ }>;
16
+ }
4
17
  /**
5
18
  * Given a git diff, compute the affected symbol set.
6
19
  * Finds all symbols defined in changed files, their fan-in,
@@ -9,5 +22,10 @@ import 'better-sqlite3';
9
22
  declare function diffImpact(db: ScipDatabase, opts?: {
10
23
  base?: string;
11
24
  }): DiffImpactResult;
25
+ declare function diffImpactPlan(db: ScipDatabase, opts?: {
26
+ base?: string;
27
+ }): DiffImpactPlan;
28
+ declare function diffImpactPartial(db: ScipDatabase, filesToAnalyze: readonly string[], allChangedFiles: readonly string[]): DiffImpactPartial;
29
+ declare function mergeDiffImpactPartials(changedFiles: readonly string[], partials: readonly DiffImpactPartial[]): DiffImpactResult;
12
30
 
13
- export { diffImpact };
31
+ export { type DiffImpactPartial, type DiffImpactPlan, diffImpact, diffImpactPartial, diffImpactPlan, mergeDiffImpactPartials };
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-QPJG6VRT.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as diffImpact};
1
+ import{a,b,c,d}from"../chunk-6XRB6ATD.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as diffImpact,c as diffImpactPartial,b as diffImpactPlan,d as mergeDiffImpactPartials};
2
2
  //# sourceMappingURL=diff-impact.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, n as DriftSummary } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, n as DriftSummary } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-GPY33RTH.js";import"../chunk-LJ2YWNQF.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as drift};
1
+ import{a}from"../chunk-K6ULLR7M.js";import"../chunk-LJ2YWNQF.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as drift};
2
2
  //# sourceMappingURL=drift.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, E as ExtractCandidate } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, E as ExtractCandidate } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -20,6 +20,7 @@ declare function extractCandidates(db: ScipDatabase, opts?: {
20
20
  minLoc?: number;
21
21
  minCallees?: number;
22
22
  limit?: number;
23
+ scanLimit?: number;
23
24
  }): ExtractCandidate[];
24
25
 
25
26
  export { extractCandidates };
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-C4C3T4K3.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as extractCandidates};
1
+ import{a}from"../chunk-D2R6IIEO.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as extractCandidates};
2
2
  //# sourceMappingURL=extract-candidates.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, F as FanResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, F as FanResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a,b,c,d}from"../chunk-HVNVO6UW.js";import"../chunk-MO65UK5V.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as fanIn,b as fanOut,c as topFanIn,d as topFanOut};
1
+ import{a,b,c,d}from"../chunk-FYO3FPFH.js";import"../chunk-55ZJ2FCW.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as fanIn,b as fanOut,c as topFanIn,d as topFanOut};
2
2
  //# sourceMappingURL=fan.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, o as FileResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, o as FileResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  declare function files(db: ScipDatabase, pattern: string): FileResult[];
@@ -0,0 +1,15 @@
1
+ import { S as ScipDatabase } from '../db-DdlToIC-.js';
2
+ import 'better-sqlite3';
3
+
4
+ /**
5
+ * Drop source-derived caches after one-shot whole-repo health phases.
6
+ * Interactive commands benefit from retaining these caches, but composite
7
+ * health runs can otherwise keep parsed trees, source strings, ts-morph
8
+ * projects, and identifier maps alive after the phase that needed them.
9
+ */
10
+ declare function clearHealthAnalysisCaches(db: ScipDatabase, opts?: {
11
+ semanticProvider?: boolean;
12
+ }): void;
13
+ declare function requestGarbageCollection(): void;
14
+
15
+ export { clearHealthAnalysisCaches, requestGarbageCollection };
@@ -0,0 +1,2 @@
1
+ import{a,b}from"../chunk-2AUZ3PLO.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as clearHealthAnalysisCaches,b as requestGarbageCollection};
2
+ //# sourceMappingURL=health-cache-control.js.map
@@ -1,6 +1,64 @@
1
- import { S as ScipDatabase, H as HealthReport } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, H as HealthReport } from '../db-DdlToIC-.js';
2
+ import { stats } from './stats.js';
2
3
  import 'better-sqlite3';
3
4
 
5
+ interface CountLocSummary {
6
+ count: number;
7
+ loc: number;
8
+ }
9
+ interface StaleSummary extends CountLocSummary {
10
+ unused: number;
11
+ singleUse: number;
12
+ }
13
+ interface DriftSummary {
14
+ count: number;
15
+ unusedImports: number;
16
+ layerViolations: number;
17
+ }
18
+ interface ComplexitySummary {
19
+ top: Array<{
20
+ symbol: string;
21
+ score: number;
22
+ }>;
23
+ extremeCount: number;
24
+ }
25
+ declare const HEALTH_PHASES: readonly ["overview", "dead", "isolated", "cycles", "similar", "extract-candidates", "wrapper-candidates", "passthrough-candidates", "stale-abstractions", "drift", "complexity-hotspots"];
26
+ type HealthPhaseName = typeof HEALTH_PHASES[number];
27
+ type HealthPhaseResult = {
28
+ phase: 'overview';
29
+ statsResult: ReturnType<typeof stats>;
30
+ warnings: string[];
31
+ } | {
32
+ phase: 'dead';
33
+ dead: CountLocSummary;
34
+ } | {
35
+ phase: 'isolated';
36
+ isolated: CountLocSummary;
37
+ } | {
38
+ phase: 'cycles';
39
+ realCycleCount: number;
40
+ } | {
41
+ phase: 'similar';
42
+ similarCount: number;
43
+ } | {
44
+ phase: 'extract-candidates';
45
+ extractCount: number;
46
+ } | {
47
+ phase: 'wrapper-candidates';
48
+ wrappers: CountLocSummary;
49
+ } | {
50
+ phase: 'passthrough-candidates';
51
+ passthroughs: CountLocSummary;
52
+ } | {
53
+ phase: 'stale-abstractions';
54
+ stale: StaleSummary;
55
+ } | {
56
+ phase: 'drift';
57
+ drift: DriftSummary;
58
+ } | {
59
+ phase: 'complexity-hotspots';
60
+ complexity: ComplexitySummary;
61
+ };
4
62
  /**
5
63
  * Single composite health report that runs all de-bloat analyses
6
64
  * and produces a prioritized action list.
@@ -13,6 +71,12 @@ import 'better-sqlite3';
13
71
  */
14
72
  declare function health(db: ScipDatabase, opts?: {
15
73
  scope?: string;
74
+ full?: boolean;
16
75
  }): HealthReport;
76
+ declare function healthPhase(db: ScipDatabase, phase: HealthPhaseName, opts?: {
77
+ scope?: string;
78
+ full?: boolean;
79
+ }): HealthPhaseResult;
80
+ declare function healthReportFromPhases(phaseResults: HealthPhaseResult[]): HealthReport;
17
81
 
18
- export { health };
82
+ export { HEALTH_PHASES, type HealthPhaseName, health, healthPhase, healthReportFromPhases };
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-25HOGELX.js";import"../chunk-QRYEOK3M.js";import"../chunk-TUV2VI7D.js";import"../chunk-AXP4H62Q.js";import"../chunk-RKTDEIHF.js";import"../chunk-NIN762LD.js";import"../chunk-7YI2M2AQ.js";import"../chunk-6DVA22YE.js";import"../chunk-GPY33RTH.js";import"../chunk-LJ2YWNQF.js";import"../chunk-C4C3T4K3.js";import"../chunk-PIRXZGV6.js";import"../chunk-4TX5IMMK.js";import"../chunk-URCJTFOD.js";import"../chunk-UAPNU7UP.js";import"../chunk-YXMHTJYY.js";import"../chunk-VEXS3I3N.js";import"../chunk-Y4DS3MDC.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as health};
1
+ import{a,b,c,d}from"../chunk-TX7BHRMT.js";import"../chunk-KRVRD6KZ.js";import"../chunk-QRYEOK3M.js";import"../chunk-4M4FEWBL.js";import"../chunk-FAN2CVZT.js";import"../chunk-3SWWYJPB.js";import"../chunk-RKTDEIHF.js";import"../chunk-IARIBTCL.js";import"../chunk-K6ULLR7M.js";import"../chunk-LJ2YWNQF.js";import"../chunk-D2R6IIEO.js";import"../chunk-2AUZ3PLO.js";import"../chunk-2CC7RA6B.js";import"../chunk-T426XELO.js";import"../chunk-ABLXPGAZ.js";import"../chunk-SVUVC5VS.js";import"../chunk-TYRPQE6R.js";import"../chunk-7EQ4J66C.js";import"../chunk-WPY46NIL.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as HEALTH_PHASES,b as health,c as healthPhase,d as healthReportFromPhases};
2
2
  //# sourceMappingURL=health.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, p as HierarchyNode } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, p as HierarchyNode } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-OQZF2DQJ.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as hierarchy};
1
+ import{a}from"../chunk-2R7OKZE5.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as hierarchy};
2
2
  //# sourceMappingURL=hierarchy.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, q as HotspotResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, q as HotspotResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-QFBJZHMV.js";import"../chunk-3PVIYZ74.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{a as hotspots};
1
+ import{a}from"../chunk-7TGEXAN5.js";import"../chunk-GS55K4WJ.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{a as hotspots};
2
2
  //# sourceMappingURL=hotspots.js.map
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase, I as ImportResult, U as UnusedImportResult } from '../db-BZPa7dzJ.js';
1
+ import { S as ScipDatabase, I as ImportResult, U as UnusedImportResult } from '../db-DdlToIC-.js';
2
2
  import 'better-sqlite3';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- import{a,b,c}from"../chunk-UUIWMLDX.js";import"../chunk-MO65UK5V.js";import"../chunk-KW2F3WSV.js";import"../chunk-Z4AMQWVY.js";import"../chunk-ZHHMG4UC.js";import"../chunk-QFZE73XF.js";export{b as importedBy,a as imports,c as unusedImports};
1
+ import{a,b,c}from"../chunk-4Y6KUJDO.js";import"../chunk-55ZJ2FCW.js";import"../chunk-6FLGPRBR.js";import"../chunk-G47V5V3U.js";import"../chunk-QYWGC7JV.js";import"../chunk-KYGNCIJ6.js";export{b as importedBy,a as imports,c as unusedImports};
2
2
  //# sourceMappingURL=imports.js.map
@@ -27,13 +27,13 @@ export { similarChains } from './similar-chains.js';
27
27
  export { extractCandidates } from './extract-candidates.js';
28
28
  export { affected } from './affected.js';
29
29
  export { changeSurface } from './change-surface.js';
30
- export { diffImpact } from './diff-impact.js';
30
+ export { diffImpact, diffImpactPartial, diffImpactPlan, mergeDiffImpactPartials } from './diff-impact.js';
31
31
  export { drift } from './drift.js';
32
32
  export { wrapperCandidates } from './wrapper-candidates.js';
33
33
  export { passthroughCandidates } from './passthrough-candidates.js';
34
34
  export { staleAbstractions } from './stale-abstractions.js';
35
35
  export { complexityHotspots } from './complexity-hotspots.js';
36
- export { health } from './health.js';
36
+ export { HEALTH_PHASES, health, healthPhase, healthReportFromPhases } from './health.js';
37
37
  export { convergence } from './convergence.js';
38
38
  export { code } from './code.js';
39
39
  export { complexity } from './complexity.js';
@@ -41,5 +41,5 @@ export { dataflow } from './dataflow.js';
41
41
  export { slice } from './slice.js';
42
42
  export { redundantReexports } from './redundant-reexports.js';
43
43
  export { similarSignatures } from './similar-signatures.js';
44
- import '../db-BZPa7dzJ.js';
44
+ import '../db-DdlToIC-.js';
45
45
  import 'better-sqlite3';