scip-query 0.7.2 → 0.8.1

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 (174) hide show
  1. package/README.md +179 -221
  2. package/dist/augment-vue-worker.js +1 -1
  3. package/dist/{chunk-OPWOX7NT.js → chunk-2EC4JTHC.js} +2 -2
  4. package/dist/{chunk-SVSLAUSJ.js → chunk-46ILZVMX.js} +2 -2
  5. package/dist/chunk-4A4JFNWG.js +2 -0
  6. package/dist/{chunk-QBXTQODK.js → chunk-4B7YLRXX.js} +2 -2
  7. package/dist/chunk-64UY7VTR.js +63 -0
  8. package/dist/chunk-66ORT3LS.js +2 -0
  9. package/dist/{chunk-VMS5YTBS.js → chunk-6G76D2YM.js} +2 -2
  10. package/dist/{chunk-PEU24CSY.js → chunk-6P5W4U6G.js} +2 -2
  11. package/dist/chunk-6ZFKI5EP.js +40 -0
  12. package/dist/{chunk-EVXQF7DM.js → chunk-7I6KNKE3.js} +2 -2
  13. package/dist/{chunk-EIGCLVKK.js → chunk-7TYJD45F.js} +2 -2
  14. package/dist/chunk-7UZWNW4E.js +2 -0
  15. package/dist/{chunk-GIRI7FHW.js → chunk-AGW2MVIO.js} +2 -2
  16. package/dist/chunk-APLCSDXL.js +4 -0
  17. package/dist/{chunk-JDFWJ7VK.js → chunk-BCFED24F.js} +2 -2
  18. package/dist/chunk-CVRXOP6M.js +3 -0
  19. package/dist/{chunk-2QNKEJ7R.js → chunk-D43L5PQF.js} +2 -2
  20. package/dist/chunk-DJTJ3DLZ.js +7 -0
  21. package/dist/chunk-EAU4RDFG.js +2 -0
  22. package/dist/{chunk-BI4F6GXI.js → chunk-EKP7XJ6L.js} +2 -2
  23. package/dist/{chunk-LLL7THVV.js → chunk-EM2PPDN7.js} +2 -2
  24. package/dist/{chunk-6QC7SCKV.js → chunk-FIPE5AQT.js} +2 -2
  25. package/dist/chunk-FTBT4RP2.js +7 -0
  26. package/dist/{chunk-TB2OYNRS.js → chunk-GD7XRHSV.js} +2 -2
  27. package/dist/{chunk-XDXZP3BE.js → chunk-GMEBYEMU.js} +2 -2
  28. package/dist/chunk-GTZAU7OL.js +2 -0
  29. package/dist/chunk-HVGNOUYP.js +2 -0
  30. package/dist/chunk-HVXIXDLV.js +2 -0
  31. package/dist/{chunk-5TB4N27G.js → chunk-I7OTKWNY.js} +2 -2
  32. package/dist/{chunk-RFCR2BRD.js → chunk-JAMU6FLN.js} +2 -2
  33. package/dist/chunk-JTCEWV7Q.js +2 -0
  34. package/dist/chunk-K4Z3FCUJ.js +6 -0
  35. package/dist/{chunk-WJQFABZN.js → chunk-K6YIGVL7.js} +2 -2
  36. package/dist/chunk-MKE7SEEX.js +2 -0
  37. package/dist/chunk-N5D5ZCBW.js +7 -0
  38. package/dist/{chunk-ROZNBWIF.js → chunk-NGLRXEWN.js} +2 -2
  39. package/dist/{chunk-IFGEPTH5.js → chunk-NK7TQQG4.js} +2 -2
  40. package/dist/chunk-NOVKLH2F.js +2 -0
  41. package/dist/chunk-OIMM7KMI.js +2 -0
  42. package/dist/chunk-OQSV6OS2.js +2 -0
  43. package/dist/chunk-PBGTMPJ7.js +2 -0
  44. package/dist/{chunk-YH6TTQEI.js → chunk-PCMVXWDC.js} +4 -4
  45. package/dist/{chunk-U75WH4XG.js → chunk-PE4EJOLN.js} +2 -2
  46. package/dist/chunk-PLFYFZX3.js +2 -0
  47. package/dist/{chunk-HTVLH3NL.js → chunk-QYQXPPDI.js} +2 -2
  48. package/dist/{chunk-P7UMQ7R7.js → chunk-RCRK4E7E.js} +2 -2
  49. package/dist/chunk-RIXOMSOR.js +20 -0
  50. package/dist/chunk-SB6I6O3P.js +2 -0
  51. package/dist/{chunk-X2JB54QF.js → chunk-SDGCKEB7.js} +2 -2
  52. package/dist/chunk-SLOIQKY7.js +2 -0
  53. package/dist/{chunk-4VYIZV3S.js → chunk-SOGLYIJ4.js} +4 -4
  54. package/dist/chunk-SSINY7HL.js +4 -0
  55. package/dist/{chunk-FU5WRWAN.js → chunk-TFO4OMJZ.js} +2 -2
  56. package/dist/chunk-TH4JVC34.js +71 -0
  57. package/dist/chunk-TQTVM27C.js +6 -0
  58. package/dist/{chunk-QP6FLI6D.js → chunk-TR5AU6A5.js} +2 -2
  59. package/dist/{chunk-4LKJMRT5.js → chunk-UQE3DSXY.js} +2 -2
  60. package/dist/{chunk-LXJTDFOV.js → chunk-UUDYI3FF.js} +2 -2
  61. package/dist/chunk-VDZL45XI.js +2 -0
  62. package/dist/{chunk-XANDY7N5.js → chunk-VN6B6HFB.js} +2 -2
  63. package/dist/{chunk-SDPP5KVQ.js → chunk-WC43FMAB.js} +2 -2
  64. package/dist/chunk-WEJYUS5O.js +2 -0
  65. package/dist/chunk-WQFOZIID.js +4 -0
  66. package/dist/chunk-XBFLIGWU.js +3 -0
  67. package/dist/{chunk-TGNL3ZKZ.js → chunk-XSZ5NC4O.js} +2 -2
  68. package/dist/{chunk-4T35WUCX.js → chunk-Z2AJQ7VA.js} +2 -2
  69. package/dist/{chunk-S5VMVNFM.js → chunk-ZIIQ55VK.js} +2 -2
  70. package/dist/chunk-ZJ737ZMD.js +2 -0
  71. package/dist/cli.js +171 -173
  72. package/dist/health-C6r2VgpA.d.ts +234 -0
  73. package/dist/index.d.ts +11 -18
  74. package/dist/index.js +1 -1
  75. package/dist/postinstall.js +4 -4
  76. package/dist/queries/affected.js +1 -1
  77. package/dist/queries/bottlenecks.js +1 -1
  78. package/dist/queries/by-kind.js +1 -1
  79. package/dist/queries/call-graph.js +1 -1
  80. package/dist/queries/change-surface.js +1 -1
  81. package/dist/queries/cleanup-plan.d.ts +66 -0
  82. package/dist/queries/cleanup-plan.js +2 -0
  83. package/dist/queries/co-change.d.ts +42 -0
  84. package/dist/queries/co-change.js +2 -0
  85. package/dist/queries/code.js +1 -1
  86. package/dist/queries/complexity-hotspots.js +1 -1
  87. package/dist/queries/complexity.js +1 -1
  88. package/dist/queries/convergence.js +1 -1
  89. package/dist/queries/coupling.js +1 -1
  90. package/dist/queries/cycles.js +1 -1
  91. package/dist/queries/dataflow.js +1 -1
  92. package/dist/queries/dead.js +1 -1
  93. package/dist/queries/deep-chains.js +1 -1
  94. package/dist/queries/deps.js +1 -1
  95. package/dist/queries/diff-gate.d.ts +52 -0
  96. package/dist/queries/diff-gate.js +2 -0
  97. package/dist/queries/diff-impact.js +1 -1
  98. package/dist/queries/doc-drift.d.ts +69 -0
  99. package/dist/queries/doc-drift.js +2 -0
  100. package/dist/queries/drift.js +1 -1
  101. package/dist/queries/extract-candidates.js +1 -1
  102. package/dist/queries/fan.js +1 -1
  103. package/dist/queries/health.d.ts +1 -1
  104. package/dist/queries/health.js +1 -1
  105. package/dist/queries/hierarchy.js +1 -1
  106. package/dist/queries/hotspots.js +1 -1
  107. package/dist/queries/imports.js +1 -1
  108. package/dist/queries/index.d.ts +38 -2
  109. package/dist/queries/index.js +1 -1
  110. package/dist/queries/isolated.js +1 -1
  111. package/dist/queries/members.js +1 -1
  112. package/dist/queries/methods.js +1 -1
  113. package/dist/queries/outline.d.ts +1 -0
  114. package/dist/queries/outline.js +1 -1
  115. package/dist/queries/passthrough-candidates.js +1 -1
  116. package/dist/queries/plan-context.d.ts +65 -0
  117. package/dist/queries/plan-context.js +2 -0
  118. package/dist/queries/recent-duplicates.d.ts +48 -0
  119. package/dist/queries/recent-duplicates.js +2 -0
  120. package/dist/queries/redundant-reexports.js +1 -1
  121. package/dist/queries/refs.js +1 -1
  122. package/dist/queries/self-audit.d.ts +58 -0
  123. package/dist/queries/self-audit.js +2 -0
  124. package/dist/queries/similar-chains.js +1 -1
  125. package/dist/queries/similar-files.d.ts +6 -0
  126. package/dist/queries/similar-files.js +1 -1
  127. package/dist/queries/similar-signatures.js +1 -1
  128. package/dist/queries/similar.js +1 -1
  129. package/dist/queries/slice.js +1 -1
  130. package/dist/queries/stale-abstractions.js +1 -1
  131. package/dist/queries/surface.js +1 -1
  132. package/dist/queries/symbols.js +1 -1
  133. package/dist/queries/system.js +1 -1
  134. package/dist/queries/trace.js +1 -1
  135. package/dist/queries/unused-params.d.ts +38 -0
  136. package/dist/queries/unused-params.js +2 -0
  137. package/dist/queries/wrapper-candidates.js +1 -1
  138. package/dist/reindex-worker.js +1 -1
  139. package/dist/reindex.js +1 -1
  140. package/dist/runtime.d.ts +3 -2
  141. package/dist/runtime.js +2 -2
  142. package/package.json +33 -1
  143. package/skills/concrete-plan/SKILL.md +37 -7
  144. package/skills/scip-ai-cleanup/SKILL.md +145 -0
  145. package/skills/scip-debloat/SKILL.md +37 -7
  146. package/skills/scip-doc-reconcile/SKILL.md +100 -0
  147. package/skills/scip-explore/SKILL.md +22 -9
  148. package/skills/scip-language-playbook/SKILL.md +4 -4
  149. package/skills/scip-maintainability/SKILL.md +264 -0
  150. package/skills/scip-verify/SKILL.md +2 -2
  151. package/dist/chunk-3X43EYFU.js +0 -3
  152. package/dist/chunk-4GPWGSOE.js +0 -40
  153. package/dist/chunk-5RGK4YA5.js +0 -63
  154. package/dist/chunk-5TT47UMX.js +0 -44
  155. package/dist/chunk-6QH2L26C.js +0 -71
  156. package/dist/chunk-6SR4UNWI.js +0 -2
  157. package/dist/chunk-6XEWA6FX.js +0 -2
  158. package/dist/chunk-7WHNTKSD.js +0 -2
  159. package/dist/chunk-BOVNTAKQ.js +0 -3
  160. package/dist/chunk-D62LLANH.js +0 -2
  161. package/dist/chunk-EDXML2HI.js +0 -4
  162. package/dist/chunk-EZQOVY3C.js +0 -2
  163. package/dist/chunk-IODTPF5H.js +0 -20
  164. package/dist/chunk-KJ6CW6EK.js +0 -2
  165. package/dist/chunk-NBUINPSH.js +0 -2
  166. package/dist/chunk-NHDPYW7O.js +0 -2
  167. package/dist/chunk-NKJKI6SE.js +0 -2
  168. package/dist/chunk-OPZQIJZU.js +0 -7
  169. package/dist/chunk-P3PVY6TX.js +0 -2
  170. package/dist/chunk-QE6MGGUY.js +0 -2
  171. package/dist/chunk-QVPYMZUJ.js +0 -6
  172. package/dist/chunk-RCJEFQOK.js +0 -4
  173. package/dist/chunk-UHMJYNTK.js +0 -2
  174. package/dist/health-x7B4Xu_6.d.ts +0 -119
@@ -0,0 +1,69 @@
1
+ import { S as ScipDatabase } from '../db-DdTPetj5.js';
2
+ import 'better-sqlite3';
3
+ import '../config-types-CGIeLEpY.js';
4
+
5
+ interface DocDriftSubject {
6
+ file: string;
7
+ /**
8
+ * 'reference': the doc's text mentions this file path.
9
+ * 'co-change': the doc historically changed in the same commits as this file.
10
+ * 'both': both evidence sources agree — strongest signal.
11
+ */
12
+ evidence: 'reference' | 'co-change' | 'both';
13
+ /** Commits where doc and subject changed together (0 for pure references). */
14
+ coChanges: number;
15
+ /** Commits touching the subject AFTER the doc's last change. */
16
+ changesSinceDocUpdate: number;
17
+ }
18
+ interface DocDriftFinding {
19
+ doc: string;
20
+ /** Unix seconds of the doc's last change; 0 = never changed in the window. */
21
+ docLastChangedAt: number;
22
+ /** Σ subject changes since the doc last changed — the staleness score. */
23
+ staleness: number;
24
+ subjects: DocDriftSubject[];
25
+ /** File paths the doc mentions that no longer exist (spec points at deleted code). */
26
+ brokenReferences: string[];
27
+ }
28
+ interface DocDriftResult {
29
+ /** False when git history is unavailable. */
30
+ available: boolean;
31
+ commitsAnalyzed: number;
32
+ /** Doc files scanned for content references. */
33
+ docsScanned: number;
34
+ findings: DocDriftFinding[];
35
+ }
36
+ /**
37
+ * Archival docs (dated plans, ADRs, RFCs, changelogs) record a moment in
38
+ * time — they cite code as of their date and are never meant to track it.
39
+ */
40
+ declare function isArchivalDoc(path: string): boolean;
41
+ /**
42
+ * Standards/docs drift, from two evidence sources:
43
+ *
44
+ * 1. CONTENT REFERENCES — the doc's text names file paths; those files kept
45
+ * changing after the doc last changed. Covers standards docs from day one
46
+ * (no history needed) and finds BROKEN references: paths the doc cites
47
+ * that no longer exist — a spec pointing at deleted code.
48
+ * 2. CO-CHANGE — the doc historically changed in the same commits as code
49
+ * files, then stopped while they kept churning. Catches implicit coupling
50
+ * the doc never names.
51
+ *
52
+ * A stale standards doc is worse than none when agents read it before
53
+ * implementing — they implement to a dead spec.
54
+ */
55
+ declare function docDrift(db: ScipDatabase, opts?: {
56
+ doc?: string;
57
+ limit?: number;
58
+ minCoupling?: number;
59
+ }): DocDriftResult;
60
+ /**
61
+ * Docs whose text cites any of the target files — diff-gate uses this to ask
62
+ * "you changed these files; which docs claim to describe them?"
63
+ */
64
+ declare function docsCitingFiles(db: ScipDatabase, targets: ReadonlySet<string>): Array<{
65
+ doc: string;
66
+ cited: string[];
67
+ }>;
68
+
69
+ export { type DocDriftFinding, type DocDriftResult, type DocDriftSubject, docDrift, docsCitingFiles, isArchivalDoc };
@@ -0,0 +1,2 @@
1
+ import{a,b,c}from"../chunk-OQSV6OS2.js";import"../chunk-N5D5ZCBW.js";import"../chunk-VDZL45XI.js";export{b as docDrift,c as docsCitingFiles,a as isArchivalDoc};
2
+ //# sourceMappingURL=doc-drift.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-OPWOX7NT.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as drift};
1
+ import{a}from"../chunk-2EC4JTHC.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as drift};
2
2
  //# sourceMappingURL=drift.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-D62LLANH.js";import"../chunk-MX6F756F.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as extractCandidates};
1
+ import{a}from"../chunk-HVXIXDLV.js";import"../chunk-V76FCF5F.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as extractCandidates};
2
2
  //# sourceMappingURL=extract-candidates.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c,d}from"../chunk-QP6FLI6D.js";import"../chunk-SDPP5KVQ.js";import"../chunk-IODTPF5H.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as fanIn,b as fanOut,c as topFanIn,d as topFanOut};
1
+ import{a,b,c,d}from"../chunk-TR5AU6A5.js";import"../chunk-WC43FMAB.js";import"../chunk-RIXOMSOR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as fanIn,b as fanOut,c as topFanIn,d as topFanOut};
2
2
  //# sourceMappingURL=fan.js.map
@@ -1,5 +1,5 @@
1
1
  import '../db-DdTPetj5.js';
2
2
  import './stats.js';
3
- export { H as HEALTH_PHASES, e as HealthPhaseName, h as health, c as healthPhase, d as healthReportFromPhases } from '../health-x7B4Xu_6.js';
3
+ export { H as HEALTH_PHASES, e as HealthPhaseName, h as health, c as healthPhase, d as healthReportFromPhases } from '../health-C6r2VgpA.js';
4
4
  import 'better-sqlite3';
5
5
  import '../config-types-CGIeLEpY.js';
@@ -1,2 +1,2 @@
1
- import{a,b,c,d}from"../chunk-UHMJYNTK.js";import"../chunk-EDXML2HI.js";import"../chunk-AQYBOORI.js";import"../chunk-OPZQIJZU.js";import"../chunk-3X43EYFU.js";import"../chunk-7WHNTKSD.js";import"../chunk-QVPYMZUJ.js";import"../chunk-RKTDEIHF.js";import"../chunk-HTVLH3NL.js";import"../chunk-OPWOX7NT.js";import"../chunk-D62LLANH.js";import"../chunk-WJQFABZN.js";import"../chunk-V76FCF5F.js";import"../chunk-BI4F6GXI.js";import"../chunk-EZQOVY3C.js";import"../chunk-MX6F756F.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as HEALTH_PHASES,b as health,c as healthPhase,d as healthReportFromPhases};
1
+ import{a,b,c,d}from"../chunk-GTZAU7OL.js";import"../chunk-JTCEWV7Q.js";import"../chunk-AQYBOORI.js";import"../chunk-DJTJ3DLZ.js";import"../chunk-SSINY7HL.js";import"../chunk-CVRXOP6M.js";import"../chunk-QYQXPPDI.js";import"../chunk-SLOIQKY7.js";import"../chunk-K4Z3FCUJ.js";import"../chunk-RKTDEIHF.js";import"../chunk-HVXIXDLV.js";import"../chunk-2EC4JTHC.js";import"../chunk-OIMM7KMI.js";import"../chunk-4A4JFNWG.js";import"../chunk-N5D5ZCBW.js";import"../chunk-K6YIGVL7.js";import"../chunk-V76FCF5F.js";import"../chunk-EKP7XJ6L.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as HEALTH_PHASES,b as health,c as healthPhase,d as healthReportFromPhases};
2
2
  //# sourceMappingURL=health.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-X2JB54QF.js";import"../chunk-EVXQF7DM.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as hierarchy};
1
+ import{a}from"../chunk-SDGCKEB7.js";import"../chunk-7I6KNKE3.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as hierarchy};
2
2
  //# sourceMappingURL=hierarchy.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-EIGCLVKK.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as hotspots};
1
+ import{a}from"../chunk-7TYJD45F.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as hotspots};
2
2
  //# sourceMappingURL=hotspots.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c}from"../chunk-FU5WRWAN.js";import"../chunk-SDPP5KVQ.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{b as importedBy,a as imports,c as unusedImports};
1
+ import{a,b,c}from"../chunk-TFO4OMJZ.js";import"../chunk-WC43FMAB.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{b as importedBy,a as imports,c as unusedImports};
2
2
  //# sourceMappingURL=imports.js.map
@@ -27,20 +27,56 @@ export { SimilarChainResult, similarChains } from './similar-chains.js';
27
27
  export { ExtractCandidate, extractCandidates } from './extract-candidates.js';
28
28
  export { AffectedResult, affected } from './affected.js';
29
29
  export { ChangeSurfaceEntry, ChangeSurfaceResult, changeSurface } from './change-surface.js';
30
+ export { CleanupBatch, CleanupPlanEntry, CleanupPlanResult, cleanupPlan } from './cleanup-plan.js';
31
+ export { DiffGateCheck, DiffGateFinding, DiffGateResult, diffGate } from './diff-gate.js';
32
+ export { CoChangeFinding, CoChangeResult, coChange } from './co-change.js';
33
+ export { DocDriftFinding, DocDriftResult, DocDriftSubject, docDrift } from './doc-drift.js';
34
+ export { RecentDuplicateFinding, RecentDuplicatesResult, recentDuplicates } from './recent-duplicates.js';
35
+ export { PlanContextOptions, PlanContextResult, planContext } from './plan-context.js';
36
+ import { S as ScipDatabase } from '../db-DdTPetj5.js';
30
37
  export { DiffImpactResult, diffImpact, diffImpactPartial, diffImpactPlan, mergeDiffImpactPartials } from './diff-impact.js';
31
38
  export { DriftResult, DriftSummary, drift } from './drift.js';
32
39
  export { WrapperCandidate, wrapperCandidates } from './wrapper-candidates.js';
33
40
  export { PassthroughCandidate, passthroughCandidates } from './passthrough-candidates.js';
34
41
  export { StaleAbstraction, staleAbstractions } from './stale-abstractions.js';
42
+ export { UnusedParamsFinding, unusedParams } from './unused-params.js';
35
43
  export { ComplexityHotspot, complexityHotspots } from './complexity-hotspots.js';
36
- export { H as HEALTH_PHASES, a as HealthAction, b as HealthReport, h as health, c as healthPhase, d as healthReportFromPhases } from '../health-x7B4Xu_6.js';
44
+ export { H as HEALTH_PHASES, a as HealthAction, b as HealthReport, h as health, c as healthPhase, d as healthReportFromPhases } from '../health-C6r2VgpA.js';
37
45
  export { ConvergenceResult, convergence } from './convergence.js';
38
46
  export { CodeResult, code } from './code.js';
39
47
  export { ComplexityResult, complexity } from './complexity.js';
40
48
  export { DataflowResult, dataflow } from './dataflow.js';
41
49
  export { SliceResult, slice } from './slice.js';
42
50
  export { RedundantReexport, redundantReexports } from './redundant-reexports.js';
51
+ export { AuditDisagreement, AuditQuestionScore, SelfAuditResult, selfAudit } from './self-audit.js';
43
52
  export { SimilarSignatureGroup, similarSignatures } from './similar-signatures.js';
44
- import '../db-DdTPetj5.js';
45
53
  import 'better-sqlite3';
46
54
  import '../config-types-CGIeLEpY.js';
55
+
56
+ interface HealthBaselineFile {
57
+ version: 1;
58
+ findings: string[];
59
+ }
60
+ interface BaselineComparison {
61
+ baselinePath: string;
62
+ baselineCount: number;
63
+ current: string[];
64
+ newFindings: string[];
65
+ fixedFindings: string[];
66
+ }
67
+ declare function collectBaselineFindings(db: ScipDatabase, opts?: {
68
+ scope?: string;
69
+ }): string[];
70
+ declare function writeHealthBaseline(db: ScipDatabase, opts?: {
71
+ path?: string;
72
+ scope?: string;
73
+ }): {
74
+ path: string;
75
+ findingCount: number;
76
+ };
77
+ declare function checkHealthBaseline(db: ScipDatabase, opts?: {
78
+ path?: string;
79
+ scope?: string;
80
+ }): BaselineComparison;
81
+
82
+ export { type BaselineComparison, type HealthBaselineFile, checkHealthBaseline, collectBaselineFindings, writeHealthBaseline };
@@ -1,2 +1,2 @@
1
- import{a as X}from"../chunk-4LKJMRT5.js";import{a as q}from"../chunk-6XEWA6FX.js";import{a as V}from"../chunk-TB2OYNRS.js";import{a as Q}from"../chunk-IFGEPTH5.js";import{a as re}from"../chunk-6QC7SCKV.js";import{a as J}from"../chunk-XANDY7N5.js";import{a as ee}from"../chunk-ROZNBWIF.js";import{a as $}from"../chunk-QE6MGGUY.js";import{a as oe}from"../chunk-VMS5YTBS.js";import{a as te}from"../chunk-RFCR2BRD.js";import{a as T}from"../chunk-X2JB54QF.js";import{a as L}from"../chunk-EIGCLVKK.js";import{a as U,b as W,c as _}from"../chunk-FU5WRWAN.js";import{a as Z}from"../chunk-S5VMVNFM.js";import{a as z}from"../chunk-XDXZP3BE.js";import{a as Y}from"../chunk-6SR4UNWI.js";import{a as d}from"../chunk-U75WH4XG.js";import{a as c,b as j}from"../chunk-GIRI7FHW.js";import{a as h,b as R,c as C,d as S}from"../chunk-PEU24CSY.js";import{a as I,b as D,c as H,d as A}from"../chunk-QP6FLI6D.js";import{a as F}from"../chunk-PG3ZI5IH.js";import{a as O,b as K,c as M,d as N}from"../chunk-UHMJYNTK.js";import{a as B}from"../chunk-EDXML2HI.js";import{a as G}from"../chunk-AQYBOORI.js";import{a as E}from"../chunk-OPZQIJZU.js";import"../chunk-3X43EYFU.js";import{a as v}from"../chunk-7WHNTKSD.js";import{a as k,b as w}from"../chunk-QVPYMZUJ.js";import"../chunk-RKTDEIHF.js";import{a as P}from"../chunk-HTVLH3NL.js";import{a as g}from"../chunk-OPWOX7NT.js";import{a as b}from"../chunk-D62LLANH.js";import{a as m}from"../chunk-4T35WUCX.js";import{a}from"../chunk-LLL7THVV.js";import{a as f}from"../chunk-WJQFABZN.js";import"../chunk-V76FCF5F.js";import{a as l}from"../chunk-5TB4N27G.js";import{a as x,b as i}from"../chunk-SVSLAUSJ.js";import{a as y}from"../chunk-BI4F6GXI.js";import{a as u}from"../chunk-JDFWJ7VK.js";import{b as n}from"../chunk-EZQOVY3C.js";import{a as e}from"../chunk-LXJTDFOV.js";import{a as t}from"../chunk-TGNL3ZKZ.js";import{a as r,b as o}from"../chunk-P7UMQ7R7.js";import{a as p}from"../chunk-2QNKEJ7R.js";import"../chunk-MX6F756F.js";import{a as s}from"../chunk-QBXTQODK.js";import"../chunk-SDPP5KVQ.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{O as HEALTH_PHASES,e as affected,t as bottlenecks,r as byKind,p as callGraph,s as changeSurface,m as code,a as complexity,f as complexityHotspots,l as convergence,x as coupling,y as cycles,u as dataflow,n as dead,d as deepChains,c as deps,h as diffImpact,C as diffImpactPartial,R as diffImpactPlan,g as drift,b as extractCandidates,I as fanIn,D as fanOut,F as files,K as health,M as healthPhase,N as healthReportFromPhases,T as hierarchy,L as hotspots,W as importedBy,U as imports,P as isolated,o as kindCounts,Z as members,S as mergeDiffImpactPartials,z as methods,Y as outline,v as passthroughCandidates,j as rdeps,re as redundantReexports,J as refs,k as similar,w as similarAll,ee as similarChains,$ as similarFiles,oe as similarSignatures,te as slice,B as staleAbstractions,G as stats,X as surface,q as symbols,V as system,i as topCoupling,H as topFanIn,A as topFanOut,Q as trace,_ as unusedImports,E as wrapperCandidates};
1
+ import{a as $}from"../chunk-PLFYFZX3.js";import{a as te}from"../chunk-VN6B6HFB.js";import{a as ue}from"../chunk-66ORT3LS.js";import{a as me}from"../chunk-NGLRXEWN.js";import{a as fe}from"../chunk-MKE7SEEX.js";import{a as ce}from"../chunk-6G76D2YM.js";import{a as ae}from"../chunk-ZIIQ55VK.js";import{a as ee}from"../chunk-GMEBYEMU.js";import{a as se}from"../chunk-ZJ737ZMD.js";import{a as xe}from"../chunk-SB6I6O3P.js";import{a as pe}from"../chunk-UQE3DSXY.js";import{a as oe}from"../chunk-GD7XRHSV.js";import{a as re}from"../chunk-NK7TQQG4.js";import{a as ie}from"../chunk-JAMU6FLN.js";import{a as le}from"../chunk-7UZWNW4E.js";import{a as ne}from"../chunk-FIPE5AQT.js";import{a as N,b as T,c as U,d as L}from"../chunk-TR5AU6A5.js";import{a as Q}from"../chunk-PG3ZI5IH.js";import{a as W,b as _,c as q,d as z}from"../chunk-GTZAU7OL.js";import"../chunk-JTCEWV7Q.js";import{a as J}from"../chunk-SDGCKEB7.js";import{a as V}from"../chunk-7TYJD45F.js";import{a as X,b as Y,c as Z}from"../chunk-TFO4OMJZ.js";import{a as y}from"../chunk-BCFED24F.js";import{a as h}from"../chunk-PE4EJOLN.js";import{a as j,b as R}from"../chunk-AGW2MVIO.js";import{a as E,b as O,c as v,d as M}from"../chunk-XBFLIGWU.js";import{a as K}from"../chunk-HVGNOUYP.js";import{a as G}from"../chunk-AQYBOORI.js";import{a as w}from"../chunk-DJTJ3DLZ.js";import{a as k}from"../chunk-SSINY7HL.js";import"../chunk-CVRXOP6M.js";import{a as H}from"../chunk-QYQXPPDI.js";import{a as A}from"../chunk-SLOIQKY7.js";import{a as I,b as B}from"../chunk-K4Z3FCUJ.js";import"../chunk-RKTDEIHF.js";import{a as P}from"../chunk-HVXIXDLV.js";import{a as C,b as g,c as S,d as D}from"../chunk-6P5W4U6G.js";import{b}from"../chunk-OQSV6OS2.js";import{a as F}from"../chunk-2EC4JTHC.js";import{a as f}from"../chunk-FTBT4RP2.js";import{b as a}from"../chunk-OIMM7KMI.js";import{b as m}from"../chunk-4A4JFNWG.js";import"../chunk-N5D5ZCBW.js";import{a as l}from"../chunk-Z2AJQ7VA.js";import{a as i}from"../chunk-EM2PPDN7.js";import{a as x}from"../chunk-K6YIGVL7.js";import"../chunk-V76FCF5F.js";import{a as n}from"../chunk-I7OTKWNY.js";import{a as u,b as c}from"../chunk-46ILZVMX.js";import{a as d}from"../chunk-EKP7XJ6L.js";import{a as e}from"../chunk-UUDYI3FF.js";import{a as t}from"../chunk-XSZ5NC4O.js";import{a as r,b as o}from"../chunk-RCRK4E7E.js";import{a as p}from"../chunk-D43L5PQF.js";import"../chunk-MX6F756F.js";import{a as s}from"../chunk-4B7YLRXX.js";import"../chunk-WC43FMAB.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{W as HEALTH_PHASES,e as affected,t as bottlenecks,r as byKind,p as callGraph,s as changeSurface,v as checkHealthBaseline,f as cleanupPlan,m as coChange,l as code,E as collectBaselineFindings,i as complexity,x as complexityHotspots,n as convergence,u as coupling,d as cycles,y as dataflow,a as dead,h as deepChains,j as deps,M as diffGate,C as diffImpact,S as diffImpactPartial,g as diffImpactPlan,b as docDrift,F as drift,P as extractCandidates,N as fanIn,T as fanOut,Q as files,_ as health,q as healthPhase,z as healthReportFromPhases,J as hierarchy,V as hotspots,Y as importedBy,X as imports,H as isolated,o as kindCounts,ae as members,D as mergeDiffImpactPartials,ee as methods,se as outline,A as passthroughCandidates,xe as planContext,R as rdeps,le as recentDuplicates,ne as redundantReexports,te as refs,ue as selfAudit,I as similar,B as similarAll,me as similarChains,fe as similarFiles,ce as similarSignatures,ie as slice,k as staleAbstractions,G as stats,pe as surface,$ as symbols,oe as system,c as topCoupling,U as topFanIn,L as topFanOut,re as trace,Z as unusedImports,K as unusedParams,w as wrapperCandidates,O as writeHealthBaseline};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-HTVLH3NL.js";import"../chunk-MX6F756F.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as isolated};
1
+ import{a}from"../chunk-QYQXPPDI.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as isolated};
2
2
  //# sourceMappingURL=isolated.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-S5VMVNFM.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as members};
1
+ import{a}from"../chunk-ZIIQ55VK.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as members};
2
2
  //# sourceMappingURL=members.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-XDXZP3BE.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as methods};
1
+ import{a}from"../chunk-GMEBYEMU.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as methods};
2
2
  //# sourceMappingURL=methods.js.map
@@ -7,6 +7,7 @@ interface OutlineNode {
7
7
  shortName: string;
8
8
  startLine: number;
9
9
  endLine: number;
10
+ signature: string | null;
10
11
  children: OutlineNode[];
11
12
  }
12
13
  /**
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-6SR4UNWI.js";import"../chunk-SDPP5KVQ.js";import"../chunk-EVXQF7DM.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as outline};
1
+ import{a}from"../chunk-ZJ737ZMD.js";import"../chunk-WC43FMAB.js";import"../chunk-7I6KNKE3.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as outline};
2
2
  //# sourceMappingURL=outline.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-7WHNTKSD.js";import"../chunk-V76FCF5F.js";import"../chunk-MX6F756F.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as passthroughCandidates};
1
+ import{a}from"../chunk-SLOIQKY7.js";import"../chunk-V76FCF5F.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as passthroughCandidates};
2
2
  //# sourceMappingURL=passthrough-candidates.js.map
@@ -0,0 +1,65 @@
1
+ import { S as ScipDatabase } from '../db-DdTPetj5.js';
2
+ import { AffectedResult } from './affected.js';
3
+ import { CallGraphResult } from './call-graph.js';
4
+ import { ChangeSurfaceResult } from './change-surface.js';
5
+ import { ComplexityResult } from './complexity.js';
6
+ import { DataflowResult } from './dataflow.js';
7
+ import { DepResult } from './deps.js';
8
+ import { SliceResult } from './slice.js';
9
+ import { SurfaceResult } from './surface.js';
10
+ import { SystemResult } from './system.js';
11
+ import { TraceResult } from './trace.js';
12
+ import 'better-sqlite3';
13
+ import '../config-types-CGIeLEpY.js';
14
+ import './symbols.js';
15
+
16
+ interface PlanContextOptions {
17
+ semantic?: boolean;
18
+ impactDepth?: number;
19
+ sliceDepth?: number;
20
+ scope?: string;
21
+ }
22
+ /** Decision-time history risk for the target's file, from the change graph. */
23
+ interface PlanContextHistory {
24
+ /** False when git history is unavailable or no file could be resolved. */
25
+ available: boolean;
26
+ file: string | null;
27
+ churn: {
28
+ changes: number;
29
+ fixChanges: number;
30
+ lastChangedAt: number;
31
+ } | null;
32
+ /** Files that usually change together with this one — edit checklist. */
33
+ coChangePartners: Array<{
34
+ file: string;
35
+ together: number;
36
+ confidence: number;
37
+ }>;
38
+ /** Detector suppressions present in the file — known accepted findings. */
39
+ suppressionsInFile: number;
40
+ }
41
+ interface PlanContextResult {
42
+ target: string;
43
+ matched: {
44
+ symbol: boolean;
45
+ file: boolean;
46
+ module: boolean;
47
+ };
48
+ history: PlanContextHistory;
49
+ trace: TraceResult;
50
+ callGraph: CallGraphResult | null;
51
+ complexity: ComplexityResult | null;
52
+ dataflow: DataflowResult | null;
53
+ backwardSlice: SliceResult | null;
54
+ forwardSlice: SliceResult | null;
55
+ affected: AffectedResult[];
56
+ changeSurface: ChangeSurfaceResult | null;
57
+ deps: DepResult[];
58
+ rdeps: DepResult[];
59
+ system: SystemResult;
60
+ surface: SurfaceResult[];
61
+ warnings: string[];
62
+ }
63
+ declare function planContext(db: ScipDatabase, target: string, opts?: PlanContextOptions): PlanContextResult;
64
+
65
+ export { type PlanContextHistory, type PlanContextOptions, type PlanContextResult, planContext };
@@ -0,0 +1,2 @@
1
+ import{a}from"../chunk-SB6I6O3P.js";import"../chunk-UQE3DSXY.js";import"../chunk-GD7XRHSV.js";import"../chunk-NK7TQQG4.js";import"../chunk-JAMU6FLN.js";import"../chunk-JTCEWV7Q.js";import"../chunk-BCFED24F.js";import"../chunk-AGW2MVIO.js";import"../chunk-4A4JFNWG.js";import"../chunk-N5D5ZCBW.js";import"../chunk-EM2PPDN7.js";import"../chunk-UUDYI3FF.js";import"../chunk-D43L5PQF.js";import"../chunk-MX6F756F.js";import"../chunk-4B7YLRXX.js";import"../chunk-WC43FMAB.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as planContext};
2
+ //# sourceMappingURL=plan-context.js.map
@@ -0,0 +1,48 @@
1
+ import { S as ScipDatabase } from '../db-DdTPetj5.js';
2
+ import 'better-sqlite3';
3
+ import '../config-types-CGIeLEpY.js';
4
+
5
+ interface RecentDuplicateFinding {
6
+ /** 'echo': recent code duplicating established code. 'twin': both sides are new. */
7
+ kind: 'echo' | 'twin';
8
+ echoSymbol: string;
9
+ echoFile: string;
10
+ /** Commits ago the echo's file was added. */
11
+ echoAgeCommits: number;
12
+ establishedSymbol: string;
13
+ establishedFile: string;
14
+ /** Commits ago the established file was added; null = older than the window. */
15
+ establishedAgeCommits: number | null;
16
+ similarity: number;
17
+ sharedCallees: string[];
18
+ }
19
+ interface RecentDuplicatesResult {
20
+ /** False when git history is unavailable. */
21
+ available: boolean;
22
+ windowCommits: number;
23
+ findings: RecentDuplicateFinding[];
24
+ }
25
+ /**
26
+ * Recent re-implementations: AI agents (and humans in a hurry) write new
27
+ * helpers that duplicate code they didn't know existed. Generic similarity
28
+ * finds the pairs; this makes them DIRECTIONAL using git file ages — which
29
+ * side is the established original, which is the recent echo.
30
+ *
31
+ * 'echo' → the new code should probably use or extend the established code;
32
+ * delete the echo.
33
+ * 'twin' → both sides landed recently (often one agent session duplicating
34
+ * itself); pick one and consolidate before they diverge.
35
+ *
36
+ * Pairs where both sides are established are ordinary `similar` territory
37
+ * and are skipped here.
38
+ */
39
+ declare function recentDuplicates(db: ScipDatabase, opts?: {
40
+ windowCommits?: number;
41
+ minSimilarity?: number;
42
+ limit?: number;
43
+ scope?: string;
44
+ scanLimit?: number;
45
+ semantic?: boolean;
46
+ }): RecentDuplicatesResult;
47
+
48
+ export { type RecentDuplicateFinding, type RecentDuplicatesResult, recentDuplicates };
@@ -0,0 +1,2 @@
1
+ import{a}from"../chunk-7UZWNW4E.js";import"../chunk-K4Z3FCUJ.js";import"../chunk-RKTDEIHF.js";import"../chunk-N5D5ZCBW.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as recentDuplicates};
2
+ //# sourceMappingURL=recent-duplicates.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-6QC7SCKV.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as redundantReexports};
1
+ import{a}from"../chunk-FIPE5AQT.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as redundantReexports};
2
2
  //# sourceMappingURL=redundant-reexports.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-XANDY7N5.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as refs};
1
+ import{a}from"../chunk-VN6B6HFB.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as refs};
2
2
  //# sourceMappingURL=refs.js.map
@@ -0,0 +1,58 @@
1
+ import { S as ScipDatabase } from '../db-DdTPetj5.js';
2
+ import 'better-sqlite3';
3
+ import '../config-types-CGIeLEpY.js';
4
+
5
+ type AuditQuestion = 'references' | 'callees';
6
+ interface AuditDisagreement {
7
+ symbol: string;
8
+ question: AuditQuestion;
9
+ /** Files only the cheap evidence path reported (potential false positives). */
10
+ cheapOnly: string[];
11
+ /** Files only the compiler oracle reported (potential misses). */
12
+ oracleOnly: string[];
13
+ }
14
+ interface AuditQuestionScore {
15
+ question: AuditQuestion;
16
+ /** Symbols where both paths produced a comparable (non-empty) answer. */
17
+ comparedSymbols: number;
18
+ /**
19
+ * Null when the oracle is partial for this question (it confirms positives
20
+ * but doesn't enumerate all of them), so "cheap-only" answers are
21
+ * unverified rather than wrong and no precision claim is valid.
22
+ */
23
+ precision: number | null;
24
+ recall: number;
25
+ /** Cheap-path answers the oracle could not confirm (only meaningful when precision is null). */
26
+ unverified: number;
27
+ }
28
+ interface SelfAuditResult {
29
+ /** False when no semantic provider is available — nothing to audit against. */
30
+ available: boolean;
31
+ sampleSize: number;
32
+ /** Fraction of sampled symbols the oracle could answer at all. */
33
+ oracleCoverage: number;
34
+ scores: AuditQuestionScore[];
35
+ /** Largest divergences — the actionable debugging targets. */
36
+ topDisagreements: AuditDisagreement[];
37
+ }
38
+ /**
39
+ * Accuracy oracle: score the cheap evidence paths (SCIP + source heuristics)
40
+ * against the embedded TypeScript compiler (ts-morph) on a deterministic
41
+ * sample of symbols.
42
+ *
43
+ * This measures *agreement with compiler semantics*, not absolute truth —
44
+ * the compiler misses dynamic dispatch too. Comparison is at file-set
45
+ * granularity ("which files reference/are called by this symbol") because
46
+ * symbol-identity schemes differ between providers while file attribution
47
+ * does not.
48
+ *
49
+ * The point: "make every command as accurate as possible" is only meaningful
50
+ * once accuracy is a number you can track. This is that number.
51
+ */
52
+ declare function selfAudit(db: ScipDatabase, opts?: {
53
+ samples?: number;
54
+ scope?: string;
55
+ maxDisagreements?: number;
56
+ }): SelfAuditResult;
57
+
58
+ export { type AuditDisagreement, type AuditQuestion, type AuditQuestionScore, type SelfAuditResult, selfAudit };
@@ -0,0 +1,2 @@
1
+ import{a}from"../chunk-66ORT3LS.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as selfAudit};
2
+ //# sourceMappingURL=self-audit.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-ROZNBWIF.js";import"../chunk-IODTPF5H.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as similarChains};
1
+ import{a}from"../chunk-NGLRXEWN.js";import"../chunk-RIXOMSOR.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as similarChains};
2
2
  //# sourceMappingURL=similar-chains.js.map
@@ -17,6 +17,12 @@ interface SimilarFileResult {
17
17
  * Two files that depend on (import from) the same set of other files
18
18
  * are structurally doing similar work. High Jaccard similarity between
19
19
  * their dependency sets = likely copy-paste variants or consolidation candidates.
20
+ *
21
+ * Evidence policy: a pair must share at least two *distinctive* deps —
22
+ * deps with low global fan-in. Files that overlap only on family
23
+ * infrastructure (the modules everyone in their directory imports) are
24
+ * not copy-paste variants; adapter families sharing an SDK scored 100%
25
+ * before this gate while differing in everything that matters.
20
26
  */
21
27
  declare function similarFiles(db: ScipDatabase, opts?: {
22
28
  minSimilarity?: number;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-QE6MGGUY.js";import"../chunk-RKTDEIHF.js";import"../chunk-IODTPF5H.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as similarFiles};
1
+ import{a}from"../chunk-MKE7SEEX.js";import"../chunk-RKTDEIHF.js";import"../chunk-RIXOMSOR.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as similarFiles};
2
2
  //# sourceMappingURL=similar-files.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-VMS5YTBS.js";import"../chunk-MX6F756F.js";import"../chunk-5RGK4YA5.js";import"../chunk-BOVNTAKQ.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as similarSignatures};
1
+ import{a}from"../chunk-6G76D2YM.js";import"../chunk-MX6F756F.js";import"../chunk-64UY7VTR.js";import"../chunk-WEJYUS5O.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as similarSignatures};
2
2
  //# sourceMappingURL=similar-signatures.js.map
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-QVPYMZUJ.js";import"../chunk-RKTDEIHF.js";import"../chunk-MX6F756F.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as similar,b as similarAll};
1
+ import{a,b}from"../chunk-K4Z3FCUJ.js";import"../chunk-RKTDEIHF.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as similar,b as similarAll};
2
2
  //# sourceMappingURL=similar.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-RFCR2BRD.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as slice};
1
+ import{a}from"../chunk-JAMU6FLN.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as slice};
2
2
  //# sourceMappingURL=slice.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-EDXML2HI.js";import"../chunk-3X43EYFU.js";import"../chunk-MX6F756F.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as staleAbstractions};
1
+ import{a}from"../chunk-SSINY7HL.js";import"../chunk-CVRXOP6M.js";import"../chunk-V76FCF5F.js";import"../chunk-MX6F756F.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as staleAbstractions};
2
2
  //# sourceMappingURL=stale-abstractions.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-4LKJMRT5.js";import"../chunk-SDPP5KVQ.js";import"../chunk-NBUINPSH.js";import"../chunk-NKJKI6SE.js";import"../chunk-IODTPF5H.js";import"../chunk-P3PVY6TX.js";import"../chunk-YH6TTQEI.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as surface};
1
+ import{a}from"../chunk-UQE3DSXY.js";import"../chunk-WC43FMAB.js";import"../chunk-NOVKLH2F.js";import"../chunk-TQTVM27C.js";import"../chunk-RIXOMSOR.js";import"../chunk-EAU4RDFG.js";import"../chunk-PCMVXWDC.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as surface};
2
2
  //# sourceMappingURL=surface.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-6XEWA6FX.js";import"../chunk-SDPP5KVQ.js";import"../chunk-EVXQF7DM.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as symbols};
1
+ import{a}from"../chunk-PLFYFZX3.js";import"../chunk-WC43FMAB.js";import"../chunk-7I6KNKE3.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as symbols};
2
2
  //# sourceMappingURL=symbols.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-TB2OYNRS.js";import"../chunk-SDPP5KVQ.js";import"../chunk-EVXQF7DM.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as system};
1
+ import{a}from"../chunk-GD7XRHSV.js";import"../chunk-WC43FMAB.js";import"../chunk-7I6KNKE3.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as system};
2
2
  //# sourceMappingURL=system.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-IFGEPTH5.js";import"../chunk-4GPWGSOE.js";import"../chunk-5RGK4YA5.js";import"../chunk-EVXQF7DM.js";import"../chunk-RCJEFQOK.js";import"../chunk-BOVNTAKQ.js";import"../chunk-KJ6CW6EK.js";import"../chunk-4VYIZV3S.js";import"../chunk-5TT47UMX.js";import"../chunk-NHDPYW7O.js";import"../chunk-NN3O7TPH.js";export{a as trace};
1
+ import{a}from"../chunk-NK7TQQG4.js";import"../chunk-6ZFKI5EP.js";import"../chunk-64UY7VTR.js";import"../chunk-7I6KNKE3.js";import"../chunk-APLCSDXL.js";import"../chunk-WEJYUS5O.js";import"../chunk-PBGTMPJ7.js";import"../chunk-SOGLYIJ4.js";import"../chunk-WQFOZIID.js";import"../chunk-NN3O7TPH.js";import"../chunk-VDZL45XI.js";export{a as trace};
2
2
  //# sourceMappingURL=trace.js.map
@@ -0,0 +1,38 @@
1
+ import { S as ScipDatabase } from '../db-DdTPetj5.js';
2
+ import 'better-sqlite3';
3
+ import '../config-types-CGIeLEpY.js';
4
+
5
+ interface UnusedParamsFinding {
6
+ symbol: string;
7
+ shortName: string;
8
+ file: string;
9
+ startLine: number;
10
+ endLine: number;
11
+ paramCount: number;
12
+ /** Trailing parameters never referenced in the body, in declaration order. */
13
+ unusedTrailing: string[];
14
+ }
15
+ /**
16
+ * Speculative generality: trailing parameters nobody uses — a signature AI
17
+ * move (options and hooks added "for later" that never came).
18
+ *
19
+ * Deliberately conservative, TS/JS only:
20
+ * - TRAILING runs only — removing a trailing parameter is type-safe under
21
+ * TypeScript's function variance; removing a mid-list one breaks the
22
+ * positional contract. (Rust is excluded: call sites break, and rustc
23
+ * already warns there.)
24
+ * - `_`-prefixed names are declared-intentional and skipped.
25
+ * - Functions with pattern/rest parameters are skipped entirely.
26
+ * - One-line bodies are skipped (line-granular usage can't tell a use from
27
+ * the declaration itself).
28
+ * - Externally-live (package surface / entryRoots) symbols are skipped —
29
+ * their signatures are API.
30
+ */
31
+ declare function unusedParams(db: ScipDatabase, opts?: {
32
+ scope?: string;
33
+ limit?: number;
34
+ scanLimit?: number;
35
+ files?: readonly string[];
36
+ }): UnusedParamsFinding[];
37
+
38
+ export { type UnusedParamsFinding, unusedParams };