scip-query 0.10.2 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-UNJG7P2I.js → chunk-4HOMAEDD.js} +2 -2
- package/dist/{chunk-FPMVCDIJ.js → chunk-7ADUXFRZ.js} +2 -2
- package/dist/{chunk-CNTEQMHA.js → chunk-EYLXU575.js} +2 -2
- package/dist/{chunk-WDUTG2ZR.js → chunk-GLJAAKDW.js} +2 -2
- package/dist/{chunk-5B53WB6E.js → chunk-I7TSQZ3J.js} +4 -4
- package/dist/chunk-KRGBLZT2.js +7 -0
- package/dist/chunk-UQJGTVHV.js +5 -0
- package/dist/{chunk-MHK7Z53U.js → chunk-X474LKJX.js} +2 -2
- package/dist/{chunk-FGCL6NDB.js → chunk-YVLHL6KQ.js} +2 -2
- package/dist/cli.js +168 -168
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/diff-gate.d.ts +6 -1
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/similar.d.ts +9 -1
- package/dist/queries/similar.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-DRAZH77R.js +0 -7
- package/dist/chunk-MHTDOFV7.js +0 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-EYLXU575.js";import"../chunk-KRGBLZT2.js";import"../chunk-ZQLO2SCU.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{c as classifyCoChangePartner,b as coChange,e as coChangeStructuralLinkChecker,d as declaredCouplingSuggestionForPair,a as isCoChangeNoiseFile};
|
|
2
2
|
//# sourceMappingURL=co-change.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { S as ScipDatabase } from '../db-CTarohbZ.js';
|
|
2
2
|
import { C as CoChangeCommitScope, a as CoChangeRecency, b as CoChangeSubjectContext } from '../git-history-Dao3_Pu9.js';
|
|
3
3
|
import { CoChangePartnerClass, DeclaredCouplingSuggestion } from './co-change.js';
|
|
4
|
+
import { DiffImpactPlan } from './diff-impact.js';
|
|
4
5
|
import { F as FindingSuppression } from '../config-types-Bj4sh28g.js';
|
|
5
6
|
import 'better-sqlite3';
|
|
6
7
|
|
|
@@ -118,5 +119,9 @@ declare function diffGate(db: ScipDatabase, opts?: {
|
|
|
118
119
|
minSimilarity?: number;
|
|
119
120
|
skip?: readonly DiffGateCheck[];
|
|
120
121
|
}): DiffGateResult;
|
|
122
|
+
declare function symbolPreexistenceChecker(projectRoot: string, base: string, diffPlan: DiffImpactPlan): (changedSymbol: {
|
|
123
|
+
symbol: string;
|
|
124
|
+
file: string;
|
|
125
|
+
}) => boolean;
|
|
121
126
|
|
|
122
|
-
export { DIFF_GATE_CHECKS, type DiffGateActionTier, type DiffGateCheck, type DiffGateEvidence, type DiffGateFinding, type DiffGateResult, type DiffGateRootCauseGroup, type DiffGateSeverity, type DocCitationKind, diffGate };
|
|
127
|
+
export { DIFF_GATE_CHECKS, type DiffGateActionTier, type DiffGateCheck, type DiffGateEvidence, type DiffGateFinding, type DiffGateResult, type DiffGateRootCauseGroup, type DiffGateSeverity, type DocCitationKind, diffGate, symbolPreexistenceChecker };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as a,e as b}from"../chunk-
|
|
1
|
+
import{d as a,e as b,f as c}from"../chunk-I7TSQZ3J.js";import"../chunk-NNDYO2DX.js";import"../chunk-YVLHL6KQ.js";import"../chunk-B32FX5KB.js";import"../chunk-SPE4YCOT.js";import"../chunk-ZFMPHDAT.js";import"../chunk-C2QSK7E7.js";import"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-G3WGZU5Q.js";import"../chunk-RHTJBYZ5.js";import"../chunk-DE7MA6OD.js";import"../chunk-VAA5FFIW.js";import"../chunk-7KCSELEV.js";import"../chunk-NP5HYVLX.js";import"../chunk-GLJAAKDW.js";import"../chunk-AW4N6MGC.js";import"../chunk-C3MZZ2ZN.js";import"../chunk-EYLXU575.js";import"../chunk-KRGBLZT2.js";import"../chunk-PFOCOG57.js";import"../chunk-CJJP64OC.js";import"../chunk-B75HZHUP.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as DIFF_GATE_CHECKS,b as diffGate,c as symbolPreexistenceChecker};
|
|
2
2
|
//# sourceMappingURL=diff-gate.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as a,c as b,d as c}from"../chunk-
|
|
1
|
+
import{b as a,c as b,d as c}from"../chunk-GLJAAKDW.js";import"../chunk-KRGBLZT2.js";import"../chunk-A4L36SZS.js";import"../chunk-7S5E7KWT.js";export{b as docDrift,c as docsCitingFiles,a as isArchivalDoc};
|
|
2
2
|
//# sourceMappingURL=doc-drift.js.map
|
package/dist/queries/health.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d}from"../chunk-
|
|
1
|
+
import{a,b,c,d}from"../chunk-4HOMAEDD.js";import"../chunk-O3OKSF6O.js";import"../chunk-3KLLFNT4.js";import"../chunk-QSXQT3NE.js";import"../chunk-O4L4AB3T.js";import"../chunk-GS33KGAY.js";import"../chunk-UMNENNTX.js";import"../chunk-TO54DY4O.js";import"../chunk-PVZMPG5I.js";import"../chunk-B32FX5KB.js";import"../chunk-SPE4YCOT.js";import"../chunk-ZFMPHDAT.js";import"../chunk-C2QSK7E7.js";import"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-G3WGZU5Q.js";import"../chunk-RHTJBYZ5.js";import"../chunk-DE7MA6OD.js";import"../chunk-VAA5FFIW.js";import"../chunk-7KCSELEV.js";import"../chunk-AW4N6MGC.js";import"../chunk-C3MZZ2ZN.js";import"../chunk-EYLXU575.js";import"../chunk-KRGBLZT2.js";import"../chunk-DAI74TJU.js";import"../chunk-PFOCOG57.js";import"../chunk-CJJP64OC.js";import"../chunk-B75HZHUP.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.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-
|
|
1
|
+
import{a}from"../chunk-YVLHL6KQ.js";import"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-NP5HYVLX.js";import"../chunk-B75HZHUP.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as incompleteMigration};
|
|
2
2
|
//# sourceMappingURL=incomplete-migration.js.map
|
package/dist/queries/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as se}from"../chunk-A3VNUGKJ.js";import{a as ye}from"../chunk-QVCCLDZI.js";import{a as de}from"../chunk-77YBOOYT.js";import{a as ve}from"../chunk-FNRPGGVI.js";import{a as Ce}from"../chunk-
|
|
1
|
+
import{a as se}from"../chunk-A3VNUGKJ.js";import{a as ye}from"../chunk-QVCCLDZI.js";import{a as de}from"../chunk-77YBOOYT.js";import{a as ve}from"../chunk-FNRPGGVI.js";import{a as Ce}from"../chunk-X474LKJX.js";import{a as fe}from"../chunk-ICXVNWMI.js";import{a as me}from"../chunk-X7ZY6FFF.js";import{a as he}from"../chunk-FIB4JPEX.js";import{a as ce}from"../chunk-YQH353VA.js";import{a as ge}from"../chunk-7ADUXFRZ.js";import{a as je}from"../chunk-ZSLT7NWQ.js";import{a as le}from"../chunk-5M4TYWVI.js";import{a as De}from"../chunk-E44ZMVNA.js";import{a as Re}from"../chunk-DJMK4DBL.js";import{a as xe}from"../chunk-NVFERV4U.js";import{a as ne}from"../chunk-5FOPAXWY.js";import{a as ue}from"../chunk-YUOAAR24.js";import{a as q,b as M,c as U,d as _}from"../chunk-CAWSSEVM.js";import{a as N}from"../chunk-B6MJ5VQV.js";import{a as Z,b as $,c as ee,d as te}from"../chunk-4HOMAEDD.js";import{a as Y}from"../chunk-O3OKSF6O.js";import"../chunk-3KLLFNT4.js";import{a as z}from"../chunk-QSXQT3NE.js";import{a as X}from"../chunk-O4L4AB3T.js";import{a as J}from"../chunk-GS33KGAY.js";import{a as W}from"../chunk-UMNENNTX.js";import{a as Q}from"../chunk-TO54DY4O.js";import"../chunk-PVZMPG5I.js";import{a as oe}from"../chunk-47UA45TU.js";import{a as re}from"../chunk-E7KERP7E.js";import{a as ae,b as pe,c as ie}from"../chunk-7OHWPJ5N.js";import{a as y}from"../chunk-EOZIZWW4.js";import{a as R}from"../chunk-CSWZFD46.js";import{a as g,b as h}from"../chunk-4ZUJJRWT.js";import{a as I,b as w,c as B,d as G,e as O}from"../chunk-I7TSQZ3J.js";import{a as K}from"../chunk-NNDYO2DX.js";import{a as V}from"../chunk-YVLHL6KQ.js";import"../chunk-B32FX5KB.js";import{a as E}from"../chunk-SPE4YCOT.js";import{a as T}from"../chunk-ZFMPHDAT.js";import{a as k}from"../chunk-C2QSK7E7.js";import{a as H,b as L}from"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import{a as P}from"../chunk-G3WGZU5Q.js";import"../chunk-RHTJBYZ5.js";import{a as F}from"../chunk-DE7MA6OD.js";import"../chunk-VAA5FFIW.js";import{a as b}from"../chunk-7KCSELEV.js";import{b as C,c as j,d as D,e as v}from"../chunk-NP5HYVLX.js";import{c as S}from"../chunk-GLJAAKDW.js";import{a as A}from"../chunk-AW4N6MGC.js";import{a as s}from"../chunk-OLD6PBU6.js";import{b as i}from"../chunk-C3MZZ2ZN.js";import{b as n}from"../chunk-EYLXU575.js";import"../chunk-KRGBLZT2.js";import{a as l}from"../chunk-LPLGJ4HO.js";import{a as m}from"../chunk-ESG4HBEF.js";import{a as f}from"../chunk-DAI74TJU.js";import"../chunk-PFOCOG57.js";import{a as c}from"../chunk-YYD245WG.js";import{a as u,b as x}from"../chunk-5QJXH6ZL.js";import{a as d}from"../chunk-CJJP64OC.js";import{a as e}from"../chunk-CFL2CNIF.js";import{a as t}from"../chunk-MUULWXSJ.js";import{a as o,b as r}from"../chunk-BKDXBJDQ.js";import{a}from"../chunk-Z4VHYJ5U.js";import"../chunk-B75HZHUP.js";import{a as p}from"../chunk-TM6GVHA6.js";import"../chunk-CTCAF3YA.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{G as DIFF_GATE_CHECKS,Z as HEALTH_PHASES,e as affected,t as bottlenecks,o as byKind,a as callGraph,p as changeSurface,B as checkHealthBaseline,s as cleanupPlan,n as coChange,l as code,I as collectBaselineFindings,m as complexity,f as complexityHotspots,c as convergence,u as coupling,d as cycles,y as dataflow,i as dead,R as deepChains,g as deps,O as diffGate,C as diffImpact,D as diffImpactPartial,j as diffImpactPlan,S as docDrift,A as drift,b as extractCandidates,q as fanIn,M as fanOut,N as files,$ as health,ee as healthPhase,te as healthReportFromPhases,oe as hierarchy,re as hotspots,pe as importedBy,ae as imports,V as incompleteMigration,P as isolated,r as kindCounts,Re as localityCandidates,xe as members,v as mergeDiffImpactPartials,ne as methods,ue as outline,F as passthroughCandidates,Ce as planContext,h as rdeps,W as reactComponentDuplicates,Q as reactHookCandidates,z as reactLargeComponentPressure,ge as recentDuplicates,je as redundantReexports,le as refs,De as selfAudit,H as similar,L as similarAll,ye as similarChains,de as similarFiles,ve as similarSignatures,he as slice,T as staleAbstractions,k as stats,ce as surface,se as symbols,fe as system,x as topCoupling,U as topFanIn,_ as topFanOut,me as trace,ie as unusedImports,K as unusedParams,J as vueComponentDuplicates,X as vueComposableCandidates,Y as vueLargeViewPressure,E as wrapperCandidates,w as writeHealthBaseline};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-X474LKJX.js";import"../chunk-ICXVNWMI.js";import"../chunk-X7ZY6FFF.js";import"../chunk-FIB4JPEX.js";import"../chunk-YQH353VA.js";import"../chunk-3KLLFNT4.js";import"../chunk-EOZIZWW4.js";import"../chunk-4ZUJJRWT.js";import"../chunk-EYLXU575.js";import"../chunk-KRGBLZT2.js";import"../chunk-ESG4HBEF.js";import"../chunk-CFL2CNIF.js";import"../chunk-Z4VHYJ5U.js";import"../chunk-B75HZHUP.js";import"../chunk-TM6GVHA6.js";import"../chunk-CTCAF3YA.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as planContext};
|
|
2
2
|
//# sourceMappingURL=plan-context.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-7ADUXFRZ.js";import"../chunk-O4L4AB3T.js";import"../chunk-GS33KGAY.js";import"../chunk-UMNENNTX.js";import"../chunk-TO54DY4O.js";import"../chunk-PVZMPG5I.js";import"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-KRGBLZT2.js";import"../chunk-B75HZHUP.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as recentDuplicates};
|
|
2
2
|
//# sourceMappingURL=recent-duplicates.js.map
|
|
@@ -72,6 +72,12 @@ interface SymbolFingerprint {
|
|
|
72
72
|
callees: Set<string>;
|
|
73
73
|
paramCount: number;
|
|
74
74
|
}
|
|
75
|
+
interface CalleeFingerprintIndex {
|
|
76
|
+
corpus: readonly SymbolFingerprint[];
|
|
77
|
+
candidateByCallee: ReadonlyMap<string, readonly SymbolFingerprint[]>;
|
|
78
|
+
docFreq: ReadonlyMap<string, number>;
|
|
79
|
+
ubiquityThreshold: number;
|
|
80
|
+
}
|
|
75
81
|
interface RankedSimilarResult {
|
|
76
82
|
result: SimilarSymbolResult;
|
|
77
83
|
order: number;
|
|
@@ -84,7 +90,9 @@ declare function getAllCalleeFingerprints(db: ScipDatabase, opts: {
|
|
|
84
90
|
scanLimit?: number;
|
|
85
91
|
semantic?: boolean;
|
|
86
92
|
}): SymbolFingerprint[];
|
|
93
|
+
declare function buildCalleeFingerprintIndex(corpus: readonly SymbolFingerprint[]): CalleeFingerprintIndex;
|
|
94
|
+
declare function candidateFingerprintsForTarget(target: SymbolFingerprint, index: CalleeFingerprintIndex): SymbolFingerprint[];
|
|
87
95
|
declare function meaningfulCallees(callees: Iterable<string>): Set<string>;
|
|
88
96
|
declare function classifySimilarityEvidence(sharedEvidence: readonly string[], basis: NonNullable<SimilarSymbolResult['similarityBasis']>): SimilarEvidenceClassification;
|
|
89
97
|
|
|
90
|
-
export { type RankedSimilarResult, type SimilarActionTier, type SimilarEvidenceClass, type SimilarEvidenceClassification, type SimilarSymbolResult, type SymbolFingerprint, classifySimilarityEvidence, getAllCalleeFingerprints, insertTopSimilarResult, meaningfulCallees, similar, similarAll };
|
|
98
|
+
export { type CalleeFingerprintIndex, type RankedSimilarResult, type SimilarActionTier, type SimilarEvidenceClass, type SimilarEvidenceClassification, type SimilarSymbolResult, type SymbolFingerprint, buildCalleeFingerprintIndex, candidateFingerprintsForTarget, classifySimilarityEvidence, getAllCalleeFingerprints, insertTopSimilarResult, meaningfulCallees, similar, similarAll };
|
package/dist/queries/similar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e,f}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h}from"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-B75HZHUP.js";import"../chunk-3ZYF3ELZ.js";import"../chunk-ZQLO2SCU.js";import"../chunk-BGBBVSH4.js";import"../chunk-GZCQTZLK.js";import"../chunk-YTR4CO5S.js";import"../chunk-HVTYSC26.js";import"../chunk-FUPDW5AC.js";import"../chunk-MZ7APUFN.js";import"../chunk-AUVBR62P.js";import"../chunk-FOQHUKNZ.js";import"../chunk-CRU42NJU.js";import"../chunk-3UW7VM4H.js";import"../chunk-JM72FNGA.js";import"../chunk-QLNGUWR7.js";import"../chunk-ERHOS6AW.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-A4L36SZS.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{e as buildCalleeFingerprintIndex,f as candidateFingerprintsForTarget,h as classifySimilarityEvidence,d as getAllCalleeFingerprints,c as insertTopSimilarResult,g as meaningfulCallees,a as similar,b as similarAll};
|
|
2
2
|
//# sourceMappingURL=similar.js.map
|
package/package.json
CHANGED
package/dist/chunk-DRAZH77R.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{d as y}from"./chunk-7S5E7KWT.js";import{execFileSync as j}from"child_process";var F=2e3,E=50,H=8,M=3,L=2160*60*60,P=/\b(?:fix(?:es|ed)?|bug|regression|hotfix)\b/i,D=3,O=/#\d+|\b[A-Z][A-Z0-9]+-\d+\b/g,B=/^([a-z][a-z0-9-]+)(?:\([^)]+\))?!?:/i;function x(e){let t=y(e,{clearGroups:["whole-project"]});return(n,o)=>{let i=N(n.config.projectRoot);if(!i)return null;let r=t.has(n)?t.get(n,()=>({head:"",value:null})):null;return r&&r.head===i?r.value:(t.invalidate(n),t.get(n,()=>({head:i,value:o(n.config.projectRoot,i)})).value)}}var I=x("git-commit-history");function A(e){return I(e,v)}function N(e){try{return C(e,["rev-parse","HEAD"]).trim()||null}catch{return null}}function C(e,t){return j("git",["-C",e,...t],{encoding:"utf-8",maxBuffer:64*1024*1024,stdio:["ignore","pipe","ignore"]})}function v(e,t){let n;try{n=C(e,["log","--no-merges","--name-only","-n",String(F),"--pretty=format:%x01%H%x00%ct%x00%s"])}catch{return null}let o=[],i=0;for(let r of n.split("")){if(r.trim()==="")continue;let a=r.indexOf(`
|
|
2
|
-
`),d=a>=0?r.slice(0,a):r,[f,g,h]=d.split("\0");if(!f||!g)continue;let c=a>=0?r.slice(a+1).split(`
|
|
3
|
-
`).map(s=>s.trim()).filter(s=>s!==""):[];if(c.length>E){i+=1;continue}o.push({hash:f,timestamp:Number(g)||0,subject:h??"",files:c})}return{head:t,commits:o,skippedBulkCommits:i}}function k(e){return P.test(e.subject)}function Q(e){let t=A(e);if(!t)return null;let n=new Map;for(let o of t.commits){let i=k(o);for(let r of o.files){let a=n.get(r)??{changes:0,fixChanges:0,lastChangedAt:0};a.changes+=1,i&&(a.fixChanges+=1),o.timestamp>a.lastChangedAt&&(a.lastChangedAt=o.timestamp),n.set(r,a)}}return n}function Y(e){let t=A(e);if(!t||t.commits.length===0)return null;let n=t.commits.map(o=>o.files.length).filter(o=>o>0).sort((o,i)=>o-i);return n.length===0?null:{medianFilesPerCommit:R(n,.5),p90FilesPerCommit:R(n,.9),commitsAnalyzed:n.length}}function R(e,t){let n=Math.min(e.length-1,Math.floor(e.length*t));return e[n]}var z=x("git-tracked-files");function ee(e){return z(e,t=>{try{let n=C(t,["ls-files"]);return new Set(n.split(`
|
|
4
|
-
`).map(o=>o.trim()).filter(o=>o!==""))}catch{return null}})}var G=x("git-file-adds");function te(e){return G(e,t=>U(t))}function U(e){let t;try{t=C(e,["log","--no-merges","--diff-filter=A","--name-only","-n",String(F),"--pretty=format:%x01%H%x00%ct%x00%s"])}catch{return null}let n=new Map,o=-1;for(let i of t.split("")){if(i.trim()==="")continue;o+=1;let r=i.indexOf(`
|
|
5
|
-
`),a=r>=0?i.slice(0,r):i,[,d]=a.split("\0"),f=Number(d)||0;if(!(r<0))for(let g of i.slice(r+1).split(`
|
|
6
|
-
`)){let h=g.trim();h!==""&&n.set(h,{commitsAgo:o,addedAt:f})}}return n}function ne(e,t={}){let{minTogether:n=4,minConfidence:o=.6,maxFilesPerCommit:i=E}=t,r=A(e);if(!r)return null;let a=new Map,d=new Map,f=0;for(let c of r.commits){let s=[...new Set(c.files)].sort();if(s.length>i)continue;c.timestamp>f&&(f=c.timestamp);let m=J(s);for(let u of s)a.set(u,(a.get(u)??0)+1);for(let u=0;u<s.length;u++)for(let b=u+1;b<s.length;b++){let p=`${s[u]}\0${s[b]}`,l=d.get(p)??{together:0,focusedTogether:0,broadTogether:0,lastTogetherAt:0,timestamps:[],subjects:[]};l.together+=1,m?l.broadTogether+=1:l.focusedTogether+=1,c.timestamp>l.lastTogetherAt&&(l.lastTogetherAt=c.timestamp),l.timestamps.push(c.timestamp),l.subjects.push(c.subject),d.set(p,l)}}let g=[],h=f-L;for(let[c,s]of d){let m=s.together;if(m<n)continue;let[u,b]=c.split("\0"),p=a.get(u)??m,l=a.get(b)??m,S=Math.max(m/p,m/l);if(S<o)continue;let _=s.broadTogether/m,T=s.timestamps.filter(w=>w>=h).length;g.push({fileA:u,fileB:b,together:m,confidence:S,changesA:p,changesB:l,focusedTogether:s.focusedTogether,broadTogether:s.broadTogether,broadCommitRatio:_,lastTogetherAt:s.lastTogetherAt,recentTogether:T,commitScope:K(s.broadTogether,m),recency:T>0?"recent":"stale",subjectContext:W(s.subjects)})}return g.sort((c,s)=>s.together-c.together||s.confidence-c.confidence||c.fileA.localeCompare(s.fileA)),g}function J(e){return e.length>=H?!0:V(e).size>=M}function V(e){let t=new Set;for(let n of e){let o=n.indexOf("/");t.add(o>=0?n.slice(0,o):".")}return t}function K(e,t){return e===0?"focused":e/t>=.5?"broad-sweep":"mixed"}function W(e){let t=new Set,n=[],o=[];for(let i of e){!o.includes(i)&&o.length<D&&o.push(i);for(let r of X(i))t.add(r);for(let r of i.match(O)??[])n.includes(r)||n.push(r)}return{subjectLabels:[...t].sort(),issueRefs:n,sampleSubjects:o,externalIssueLabelStatus:"unavailable"}}function X(e){let t=new Set,n=B.exec(e)?.[1]?.toLowerCase();return n&&t.add(Z(n)),/\b(?:feat|feature)\b/i.test(e)&&t.add("feature"),/\b(?:fix(?:es|ed)?|bug|regression|hotfix)\b/i.test(e)&&t.add("fix"),/\b(?:docs?|documentation|guide|readme)\b/i.test(e)&&t.add("docs"),/\brefactor(?:ing|ed)?\b/i.test(e)&&t.add("refactor"),/\btests?\b/i.test(e)&&t.add("test"),/\b(?:release|version|v\d+\.\d+)\b/i.test(e)&&t.add("release"),/\bchore\b/i.test(e)&&t.add("chore"),/\bbuild\b/i.test(e)&&t.add("build"),/\bci\b/i.test(e)&&t.add("ci"),/\bperf(?:ormance)?\b/i.test(e)&&t.add("perf"),[...t]}function Z(e){return e==="feat"?"feature":e}export{A as a,Q as b,Y as c,ee as d,te as e,ne as f};
|
|
7
|
-
//# sourceMappingURL=chunk-DRAZH77R.js.map
|
package/dist/chunk-MHTDOFV7.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{a as F,b as w,e as N,f as O}from"./chunk-3UVJJ6Z7.js";import{b as M}from"./chunk-B75HZHUP.js";import{a as R}from"./chunk-3ZYF3ELZ.js";import{a as I}from"./chunk-YTR4CO5S.js";import{a as T}from"./chunk-MZ7APUFN.js";import{c as d,d as E,g as A}from"./chunk-JM72FNGA.js";import{b as B}from"./chunk-D322LMSA.js";import{d as D}from"./chunk-7S5E7KWT.js";function Fe(e,i,n={}){let{minSimilarity:t=.4,limit:r=20}=n,l=ne(e,i,{semantic:n.semantic!==!1});if(!l)return[];if(!A(l.symbol))return[];let a=J(e,l,t,{scanLimit:n.scanLimit,semantic:n.semantic!==!1});return a.length>0?a.slice(0,r):ae(e,i,{minSimilarity:t,limit:r})}function J(e,i,n,t){let r=G(e,{minCallees:3,excludeSymbol:i.symbol,scanLimit:t.scanLimit,semantic:t.semantic}),l=N([i,...r].map(c=>c.callees)),a=[];for(let c of r){if(c.callees.size<3)continue;let s=j(i,c,l,{minSimilarity:n,requireSignificantShared:1,requireSharedCount:0});s&&a.push(s)}return a.sort((c,s)=>s.similarity-c.similarity),a}function j(e,i,n,t){let{similarity:r,significantShared:l}=O(e.callees,i.callees,n);if(r<t.minSimilarity)return null;let a=F(e.callees,i.callees).size;if(l.length<t.requireSignificantShared&&a<t.requireSharedCount)return null;let c=l.length>0?l:[...F(e.callees,i.callees)],s=K(c,"callees");return{symbolA:e.symbol,shortNameA:d(e.symbol),fileA:e.file,symbolB:i.symbol,shortNameB:d(i.symbol),fileB:i.file,similarity:r,similarityBasis:"callees",sharedCallees:c.map(d),uniqueToA:[...w(e.callees,i.callees)].map(d),uniqueToB:[...w(i.callees,e.callees)].map(d),...s}}function De(e,i={}){let{minSimilarity:n=.5,limit:t=20,scope:r,minCallees:l=4,crossFileOnly:a=!1,scanLimit:c}=i,s=G(e,{minCallees:l,scope:r,scanLimit:c,semantic:i.semantic!==!1}),o=N(s.map(m=>m.callees)),f=new Map;for(let m of s)for(let u of m.callees)f.set(u,(f.get(u)??0)+1);let b=Math.max(8,Math.ceil(Math.sqrt(s.length))),y=new Map;for(let m=0;m<s.length;m+=1)for(let u of s[m].callees){if((f.get(u)??0)>b)continue;let g=y.get(u);g||(g=[],y.set(u,g)),g.push(m)}let h=[],S=0,C=new Set;for(let m=0;m<s.length;m+=1){let u=s[m],g=new Set;for(let v of u.callees){let k=y.get(v);if(k)for(let p of k)p>m&&g.add(p)}for(let v of g){let k=`${m}|${v}`;if(C.has(k))continue;C.add(k);let p=s[v];if(a&&u.file===p.file)continue;if(u.paramCount>=0&&p.paramCount>=0){let X=Math.abs(u.paramCount-p.paramCount),Y=Math.max(2,Math.ceil(Math.max(u.paramCount,p.paramCount)*.5));if(X>Y)continue}let q=j(u,p,o,{minSimilarity:n,requireSignificantShared:2,requireSharedCount:4});q&&(ee(h,q,t,S),S+=1)}}return h.sort((m,u)=>u.result.similarity-m.result.similarity||m.order-u.order),h.map(m=>m.result)}function ee(e,i,n,t){if(n<=0)return;if(e.length<n){e.push({result:i,order:t});return}let r=0;for(let a=1;a<e.length;a+=1){let c=e[a],s=e[r];(c.result.similarity<s.result.similarity||c.result.similarity===s.result.similarity&&c.order>s.order)&&(r=a)}let l=e[r];i.similarity<=l.result.similarity||(e[r]={result:i,order:t})}var ie=["ScipDatabase#all","ScipDatabase#get","ScipDatabase#prepare","ScipDatabase#pathExclusionsFor","ScipDatabase#isIgnored","ScipDatabase#symbolNoiseFor","PerDbValue#get","PerDbValue#has",":storage:db:ScipDatabase:all",":storage:db:ScipDatabase:get",":storage:db:ScipDatabase:prepare",":storage:db:ScipDatabase:pathExclusionsFor",":storage:db:ScipDatabase:isIgnored",":storage:db:ScipDatabase:symbolNoiseFor",":storage:per-db-cache:PerDbValue:get",":storage:per-db-cache:PerDbValue:has"];function ne(e,i,n){let t=T(e,i),r=new R(e);if(!t)return null;let l=I(e,t,{semantic:n.semantic});return{symbol:t.symbol,file:t.relativePath,callees:U(l.map(a=>a.symbol)),paramCount:r.callableSignature(t)?.paramCount??-1}}var te=D("callee-fingerprint-corpus",{clearGroups:["whole-project","definition-catalog"]});function G(e,i){let{minCallees:n,scope:t,excludeSymbol:r,scanLimit:l}=i,a=i.semantic!==!1,c=te.get(e,()=>new Map),s=`${n}|${t??""}|${l??""}|${a}`,o=c.get(s);return o||(o=re(e,{minCallees:n,scope:t,scanLimit:l,semantic:a}),c.set(s,o)),r===void 0?o:o.filter(f=>f.symbol!==r)}function re(e,i){let{minCallees:n,scope:t,scanLimit:r,semantic:l}=i,a=new R(e),c=M(a.productionCallableDefinitions({scope:t,minLoc:5,sortByLocDesc:typeof r=="number"&&r>0}),r),s=a.calleeMap(c,{semantic:l});return c.map(o=>({symbol:o.symbol,file:o.relativePath,callees:U((s.get(o.symbolId)??[]).map(f=>f.symbol)),paramCount:a.callableSignature(o)?.paramCount??-1})).filter(o=>o.callees.size>=n)}function U(e){return new Set([...e].filter(i=>!se(i)))}function se(e){return ie.some(i=>e.includes(i))}function ae(e,i,n){let t=me(e,i);if(!t||t.tokens.size<3)return[];let r=n.minSimilarity>=.5?n.minSimilarity:.3,l=[],a=new Set,c=pe(ge(e));for(let s of t.tokens)for(let o of c.get(s)??[])a.add(o);for(let s of a){if(s.symbol===t.symbol||s.tokens.size<3)continue;let o=F(t.tokens,s.tokens);if(o.size<2)continue;let f=new Set([...t.tokens,...s.tokens]),b=f.size>0?o.size/f.size:0;b<r||l.push({symbolA:t.symbol,shortNameA:d(t.symbol),fileA:t.file,symbolB:s.symbol,shortNameB:d(s.symbol),fileB:s.file,similarity:b,similarityBasis:"source-tokens",sharedCallees:[...o].sort(),uniqueToA:[...w(t.tokens,s.tokens)].sort(),uniqueToB:[...w(s.tokens,t.tokens)].sort(),...K([...o],"source-tokens")})}return l.sort((s,o)=>o.similarity-s.similarity||s.shortNameB.localeCompare(o.shortNameB)),l.slice(0,n.limit)}function K(e,i){let n=e.flatMap(z),t=e.flatMap(m=>_(m,i)),r=L(n,V),l=L(n,Z),a=L(t,$),c=[...new Set(t.filter(P))],s=e.filter(m=>{let u=_(m,i);return u.some(g=>$.has(g))&&u.some(P)}).length,o=[];r.length>0&&o.push(`access/query scaffolding: ${r.slice(0,5).join(", ")}`),l.length>0&&o.push(`framework/generic scaffolding: ${l.slice(0,5).join(", ")}`),a.length>0&&o.push(`domain behavior verbs: ${a.slice(0,5).join(", ")}`),a.length>0&&c.length>0&&o.push(`domain-specific terms: ${c.slice(0,5).join(", ")}`);let f=i==="source-tokens"&&n.length>0&&n.every(m=>H.has(m));f&&o.push("shared source tokens are generic scaffolding");let b=a.length>0&&c.length>0,y=r.length+l.length>0,h=i==="callees"&&b&&e.length>=4&&c.length>=4&&s>=2,S=h?"domain-behavior":b?y?"mixed":"domain-behavior":r.length>0?"access-query-scaffolding":l.length>0||f?"framework-scaffolding":"structural-overlap";S==="structural-overlap"&&e.length>0&&o.push(`shared ${i} overlap has no recognized domain or scaffolding category`);let C=S==="domain-behavior"&&(e.length>=3||h)?"direct":"signal";return{evidenceClass:S,actionTier:C,evidenceClassReasons:o,recommendation:oe(S,C)}}function oe(e,i){return i==="direct"?"Shared domain behavior looks concrete; review for an extract/reuse opportunity.":e==="mixed"?"Shared evidence mixes domain behavior with scaffolding; review semantics before extracting anything.":e==="access-query-scaffolding"?"Shared evidence is mostly access/query scaffolding; compare product semantics before reusing code.":e==="structural-overlap"?"Shared structure has no domain or scaffolding classification; inspect names and behavior before reusing code.":"Shared evidence is mostly framework or generic scaffolding; treat as a contextual signal."}function L(e,i){return[...new Set(e.filter(n=>i.has(n)))]}function z(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(i=>i.length>1)}function _(e,i){if(i==="source-tokens")return z(e);let n=E(e);return z(n.length>0?n:le(e))}function le(e){return e.replace(/[()`]/g," ").replace(/\.[a-z][a-z0-9]+(?=\s|$)/gi," ").split(/[:/\\\s]+/).map(t=>t.trim()).filter(t=>/[A-Za-z]/.test(t)).at(-1)?.replace(/\.$/,"")??e}function P(e){return e.length>3&&!$.has(e)&&!V.has(e)&&!Z.has(e)&&!H.has(e)&&!ce.has(e)}var $=new Set(["archive","assign","book","cancel","create","delete","ensure","export","import","notify","persist","publish","restore","schedule","send","set","submit","sync","update","upload","validate","write"]),V=new Set(["access","auth","authorize","cache","context","db","find","get","guard","list","permission","permissions","prisma","query","request","response","role","route","session","sql","where"]),Z=new Set(["bytes","computed","crypto","describe","effect","expect","fetch","filter","hex","hook","json","map","mounted","on","promise","random","react","reduce","ref","render","state","test","token","trim","uuid","vue","watch"]),H=new Set(["bytes","crypto","data","false","get","hex","id","key","map","name","num","random","result","secret","set","string","to","token","true","type","value"]),ce=new Set(["best","backend","conflict","database","effect","effects","error","errors","frontend","found","helpers","javascript","module","modules","scip","shared","source","typescript","utils","with","workflow","workflows"]);function me(e,i){let n=T(e,i);if(!n||!A(n.symbol))return null;let t=ue(e,n);return t?{symbol:n.symbol,file:n.relativePath,tokens:t}:null}function ue(e,i){let n=E(i.symbol),t=W(e,i.relativePath,i.startLine,i.endLine,n),r=Q(t,n);return r.size>0?r:null}var fe=D("source-fingerprint-corpus",{clearGroups:["whole-project","definition-catalog"]});function ge(e){return fe.get(e,()=>de(e))}function pe(e){let i=new Map;for(let n of e)for(let t of n.tokens){let r=i.get(t);r||(r=[],i.set(t,r)),r.push(n)}return i}function de(e){return new R(e).productionCallableDefinitions().map(n=>({symbol:n.symbol,file:n.relativePath,tokens:Q(W(e,n.relativePath,n.startLine,n.endLine,n.leaf),n.leaf)})).filter(n=>n.tokens.size>0)}function W(e,i,n,t,r){let l=B(e,i);if(l.length===0)return"";if(t>=n&&t-n<=12)return l.slice(n,t+1).join(`
|
|
2
|
-
`);let a=[new RegExp(`\\bdef\\s+${x(r)}\\b`),new RegExp(`\\bfun\\s+${x(r)}\\b`),new RegExp(`\\bfn\\s+${x(r)}\\b`),new RegExp(`\\bfunction\\s+${x(r)}\\b`),new RegExp(`\\b${x(r)}\\s*\\(`)],c=l.findIndex(s=>a.some(o=>o.test(s)));if(c>=0){let s=c;for(let o=c+1;o<l.length&&o<=c+8;o++){let f=l[o]??"";if(o>c&&Se(f)||(s=o,f.trim()===""&&o>c+1))break}return l.slice(c,s+1).join(`
|
|
3
|
-
`)}return l.slice(n,Math.min(l.length,n+8)).join(`
|
|
4
|
-
`)}function Q(e,i){if(!e)return new Set;let n=new Set(["public","private","protected","final","static","class","def","fun","fn","function","return","string","bool","boolean","void","unit","self","this","new","const","let","var","end","pub"]),t=be(i),l=e.replace(/["'`]/g," ").replace(/\b\d+\b/g," NUM ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[^A-Za-z0-9_]+/g," ").replace(/_/g," ").toLowerCase().split(/\s+/).map(a=>a.trim()).filter(a=>a.length>1).filter(a=>!n.has(a)).filter(a=>!t.has(a));return new Set(l)}function be(e){return new Set(e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9_]+|_/).map(i=>i.toLowerCase()).filter(i=>i.length>1))}function Se(e){return/^\s*(?:def|fun|fn|function|class|trait|module|object|enum|interface|public|private|protected)\b/.test(e)}function x(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{Fe as a,De as b,ee as c,G as d,U as e,K as f};
|
|
5
|
-
//# sourceMappingURL=chunk-MHTDOFV7.js.map
|