scip-query 0.10.3 → 0.10.5
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/README.md +9 -8
- package/dist/{chunk-YVLHL6KQ.js → chunk-237YUOPK.js} +2 -2
- package/dist/chunk-56UN3DMK.js +2 -0
- package/dist/chunk-5UDFZC4D.js +2 -0
- package/dist/{chunk-X474LKJX.js → chunk-6UFMPECA.js} +2 -2
- package/dist/chunk-7JOTOWZO.js +4 -0
- package/dist/chunk-A7RNHUJH.js +20 -0
- package/dist/chunk-AYYIZ4BA.js +4 -0
- package/dist/chunk-BNKE4TT5.js +2 -0
- package/dist/chunk-MA7OVFHI.js +2 -0
- package/dist/chunk-ONPCQ2PM.js +6 -0
- package/dist/chunk-QUJBXLBY.js +2 -0
- package/dist/chunk-WBJZNPUT.js +2 -0
- package/dist/{chunk-4HOMAEDD.js → chunk-YUTRW57I.js} +2 -2
- package/dist/cli.js +211 -198
- package/dist/frontend-behavior-evidence-BxKpKWUu.d.ts +4 -0
- package/dist/postinstall.js +3 -3
- package/dist/queries/diff-gate.d.ts +4 -2
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.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.d.ts +1 -0
- package/dist/queries/index.js +1 -1
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +3 -2
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +3 -2
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/reindex-worker.js +8 -8
- package/dist/reindex.d.ts +1 -1
- package/dist/reindex.js +19 -19
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +2 -2
- package/dist/{scip-cli-a-xOztiK.d.ts → scip-cli-Bh1M_JPu.d.ts} +1 -1
- package/docs/AGENT_GUIDE.md +42 -5
- package/docs/AI_FAILURE_MODES.md +28 -21
- package/docs/COMMAND_REFERENCE.md +4 -2
- package/docs/analyzer-inventory.md +5 -1
- package/docs/analyzer-validation-ledger.md +8 -0
- package/package.json +7 -3
- package/scripts/build-scip-windows.mjs +75 -0
- package/skills/concrete-plan/SKILL.md +3 -5
- package/skills/concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-adoption/SKILL.md +120 -0
- package/skills/scip-adoption/agents/openai.yaml +4 -0
- package/skills/scip-ai-cleanup/SKILL.md +12 -4
- package/skills/scip-ai-cleanup/agents/openai.yaml +4 -0
- package/skills/scip-api-impact/SKILL.md +147 -0
- package/skills/scip-api-impact/agents/openai.yaml +4 -0
- package/skills/scip-debloat/SKILL.md +15 -13
- package/skills/scip-debloat/agents/openai.yaml +4 -0
- package/skills/scip-debug/SKILL.md +119 -0
- package/skills/scip-debug/agents/openai.yaml +4 -0
- package/skills/scip-diagram/SKILL.md +138 -0
- package/skills/scip-diagram/agents/openai.yaml +4 -0
- package/skills/scip-directory-architecture/SKILL.md +2 -2
- package/skills/scip-directory-architecture/agents/openai.yaml +4 -0
- package/skills/scip-doc-reconcile/SKILL.md +1 -3
- package/skills/scip-doc-reconcile/agents/openai.yaml +4 -0
- package/skills/scip-explore/SKILL.md +8 -2
- package/skills/scip-explore/agents/openai.yaml +4 -0
- package/skills/scip-health-audit/SKILL.md +158 -0
- package/skills/scip-health-audit/agents/openai.yaml +4 -0
- package/skills/scip-health-improve/SKILL.md +151 -0
- package/skills/scip-health-improve/agents/openai.yaml +4 -0
- package/skills/scip-language-playbook/SKILL.md +7 -4
- package/skills/scip-language-playbook/agents/openai.yaml +4 -0
- package/skills/scip-maintainability/SKILL.md +7 -3
- package/skills/scip-maintainability/agents/openai.yaml +4 -0
- package/skills/scip-query/SKILL.md +74 -33
- package/skills/scip-query/agents/openai.yaml +4 -0
- package/skills/scip-query-setup/SKILL.md +65 -18
- package/skills/scip-query-setup/agents/openai.yaml +3 -0
- package/skills/scip-react-maintainability/SKILL.md +2 -2
- package/skills/scip-react-maintainability/agents/openai.yaml +4 -0
- package/skills/scip-triage-issue/SKILL.md +112 -0
- package/skills/scip-triage-issue/agents/openai.yaml +4 -0
- package/skills/scip-verify/SKILL.md +83 -232
- package/skills/scip-verify/agents/openai.yaml +4 -0
- package/skills/scip-vue-maintainability/SKILL.md +2 -3
- package/skills/scip-vue-maintainability/agents/openai.yaml +4 -0
- package/vendor/scip/LICENSE.scip +201 -0
- package/vendor/scip/README.md +6 -0
- package/vendor/scip/win32-arm64/scip.exe +0 -0
- package/vendor/scip/win32-x64/scip.exe +0 -0
- package/dist/chunk-7ADUXFRZ.js +0 -2
- package/dist/chunk-GLJAAKDW.js +0 -4
- package/dist/chunk-GS33KGAY.js +0 -2
- package/dist/chunk-I7TSQZ3J.js +0 -4
- package/dist/chunk-NP5HYVLX.js +0 -20
- package/dist/chunk-NXIAHE7F.js +0 -5
- package/dist/chunk-O4L4AB3T.js +0 -2
- package/dist/chunk-TO54DY4O.js +0 -2
- package/dist/chunk-UMNENNTX.js +0 -2
package/dist/postinstall.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
3
|
-
${i.installed.length} skill(s) installed, ${i.alreadyLinked.length} already linked.`),!
|
|
4
|
-
scip CLI not found on PATH. Attempting auto-install...`),
|
|
2
|
+
import{c as g,d as k,e as m,f}from"./chunk-ONPCQ2PM.js";import{existsSync as p,mkdirSync as L,symlinkSync as v,readlinkSync as b,unlinkSync as q}from"fs";import{join as e,dirname as y,resolve as d}from"path";import{homedir as u,platform as A}from"os";import{fileURLToPath as C}from"url";var H=A()==="win32",U=["scip-query","scip-query-setup","scip-adoption","scip-health-audit","scip-health-improve","scip-api-impact","concrete-plan","scip-ai-cleanup","scip-debug","scip-explore","scip-triage-issue","scip-diagram","scip-debloat","scip-doc-reconcile","scip-directory-architecture","scip-maintainability","scip-react-maintainability","scip-vue-maintainability","scip-verify","scip-language-playbook"];function N(i={}){let l=i.quiet?()=>{}:console.log,o=C(import.meta.url),h=d(y(o),"..","skills"),I=[e(u(),".claude","skills"),e(u(),".codex","skills"),e(u(),".agents","skills")],n={installed:[],skipped:[],alreadyLinked:[]};for(let r of I){let $=y(r);if(!p($))continue;L(r,{recursive:!0});let t=R(r);for(let s of U){let a=e(h,s),c=e(r,s);if(!p(a)){n.skipped.push(`${t}/${s}`);continue}if(p(c)){try{let x=b(c);if(d(x)===d(a)){n.alreadyLinked.push(`${t}/${s}`),l(` ok: ${s} \u2192 ${t} (already linked)`);continue}}catch{n.skipped.push(`${t}/${s}`),l(` skip: ${s} \u2192 ${t} (exists, not a symlink)`);continue}q(c)}v(a,c,H?"junction":"dir"),n.installed.push(`${t}/${s}`),l(` done: ${s} \u2192 ${t}`)}}return n}function R(i){return i.includes(".codex")?"Codex":i.includes(".agents")?"Agents":"Claude"}function S(){console.log("scip-query: installing skills...");let i=N({quiet:!1});if(i.installed.length+i.alreadyLinked.length>0&&console.log(`
|
|
3
|
+
${i.installed.length} skill(s) installed, ${i.alreadyLinked.length} already linked.`),!g())console.log(`
|
|
4
|
+
scip CLI not found on PATH. Attempting auto-install...`),f(console.log)||m();else{let o=k();console.log(`
|
|
5
5
|
scip CLI: ${o??"installed"}`)}console.log("")}S();
|
|
6
6
|
//# sourceMappingURL=postinstall.js.map
|
|
@@ -5,13 +5,15 @@ import { DiffImpactPlan } from './diff-impact.js';
|
|
|
5
5
|
import { F as FindingSuppression } from '../config-types-Bj4sh28g.js';
|
|
6
6
|
import 'better-sqlite3';
|
|
7
7
|
|
|
8
|
+
type DiffGateActionTier = 'direct' | 'signal' | 'support';
|
|
9
|
+
type DocCitationKind = 'behavioral-claim' | 'configuration-example' | 'guide-reference' | 'intentional-record';
|
|
10
|
+
|
|
8
11
|
type DiffGateCheck = 'echo' | 'incomplete-migration' | 'co-change-partner' | 'doc-reference' | 'unused-params' | 'new-dead' | 'baseline';
|
|
9
12
|
/** Canonical check list — the CLI validates `--skip` values against this. */
|
|
10
13
|
declare const DIFF_GATE_CHECKS: readonly DiffGateCheck[];
|
|
11
14
|
type DiffGateEvidence = 'graph-fact' | 'semantic' | 'heuristic' | 'change-graph' | 'baseline';
|
|
12
15
|
type DiffGateSeverity = 'info' | 'warning' | 'error';
|
|
13
|
-
|
|
14
|
-
type DocCitationKind = 'behavioral-claim' | 'configuration-example' | 'guide-reference' | 'intentional-record';
|
|
16
|
+
|
|
15
17
|
interface DiffGateFinding {
|
|
16
18
|
id: string;
|
|
17
19
|
check: DiffGateCheck;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as a,e as b,f as c}from"../chunk-
|
|
1
|
+
import{d as a,e as b,f as c}from"../chunk-7JOTOWZO.js";import"../chunk-NNDYO2DX.js";import"../chunk-237YUOPK.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-A7RNHUJH.js";import"../chunk-AYYIZ4BA.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{a,b,c,d,e,f}from"../chunk-
|
|
1
|
+
import{b as a,c as b,d as c,e as d,f as e,g as f}from"../chunk-A7RNHUJH.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 GIT_DIFF_UNAVAILABLE_NOTE,b as diffImpact,d as diffImpactPartial,c as diffImpactPlan,f as fileContentAtBase,e as mergeDiffImpactPartials};
|
|
2
2
|
//# sourceMappingURL=diff-impact.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{c as a,d as b,e as c}from"../chunk-AYYIZ4BA.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-YUTRW57I.js";import"../chunk-O3OKSF6O.js";import"../chunk-3KLLFNT4.js";import"../chunk-QSXQT3NE.js";import"../chunk-5UDFZC4D.js";import"../chunk-BNKE4TT5.js";import"../chunk-WBJZNPUT.js";import"../chunk-56UN3DMK.js";import"../chunk-QUJBXLBY.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-237YUOPK.js";import"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-A7RNHUJH.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.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ export { AuditDisagreement, AuditQuestionScore, SelfAuditResult, selfAudit } fro
|
|
|
60
60
|
export { SimilarSignatureGroup, similarSignatures } from './similar-signatures.js';
|
|
61
61
|
import 'better-sqlite3';
|
|
62
62
|
import '../config-types-Bj4sh28g.js';
|
|
63
|
+
import '../frontend-behavior-evidence-BxKpKWUu.js';
|
|
63
64
|
import '../git-history-Dao3_Pu9.js';
|
|
64
65
|
|
|
65
66
|
interface HealthBaselineFile {
|
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-6UFMPECA.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-MA7OVFHI.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-YUTRW57I.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-5UDFZC4D.js";import{a as J}from"../chunk-BNKE4TT5.js";import{a as W}from"../chunk-WBJZNPUT.js";import{a as Q}from"../chunk-56UN3DMK.js";import"../chunk-QUJBXLBY.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 V}from"../chunk-EOZIZWW4.js";import{a as K}from"../chunk-CSWZFD46.js";import{a as G,b as O}from"../chunk-4ZUJJRWT.js";import{a as R,b as g,c as h,d as D,e as v}from"../chunk-7JOTOWZO.js";import{a as j}from"../chunk-NNDYO2DX.js";import{a as C}from"../chunk-237YUOPK.js";import"../chunk-B32FX5KB.js";import{a as y}from"../chunk-SPE4YCOT.js";import{a as x}from"../chunk-ZFMPHDAT.js";import{a as d}from"../chunk-C2QSK7E7.js";import{a as c,b as u}from"../chunk-UQJGTVHV.js";import"../chunk-3UVJJ6Z7.js";import{a as m}from"../chunk-G3WGZU5Q.js";import"../chunk-RHTJBYZ5.js";import{a as f}from"../chunk-DE7MA6OD.js";import"../chunk-VAA5FFIW.js";import{a as l}from"../chunk-7KCSELEV.js";import{c as t,d as o,e as r,f as a}from"../chunk-A7RNHUJH.js";import{d as p}from"../chunk-AYYIZ4BA.js";import{a as n}from"../chunk-AW4N6MGC.js";import{a as L}from"../chunk-OLD6PBU6.js";import{b as s}from"../chunk-C3MZZ2ZN.js";import{b as e}from"../chunk-EYLXU575.js";import"../chunk-KRGBLZT2.js";import{a as T}from"../chunk-LPLGJ4HO.js";import{a as k}from"../chunk-ESG4HBEF.js";import{a as E}from"../chunk-DAI74TJU.js";import"../chunk-PFOCOG57.js";import{a as I}from"../chunk-YYD245WG.js";import{a as w,b as B}from"../chunk-5QJXH6ZL.js";import{a as i}from"../chunk-CJJP64OC.js";import{a as S}from"../chunk-CFL2CNIF.js";import{a as A}from"../chunk-MUULWXSJ.js";import{a as b,b as P}from"../chunk-BKDXBJDQ.js";import{a as F}from"../chunk-Z4VHYJ5U.js";import"../chunk-B75HZHUP.js";import{a as H}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{D as DIFF_GATE_CHECKS,Z as HEALTH_PHASES,S as affected,A as bottlenecks,b as byKind,F as callGraph,H as changeSurface,h as checkHealthBaseline,L as cleanupPlan,e as coChange,T as code,R as collectBaselineFindings,k as complexity,E as complexityHotspots,I as convergence,w as coupling,i as cycles,V as dataflow,s as dead,K as deepChains,G as deps,v as diffGate,t as diffImpact,r as diffImpactPartial,o as diffImpactPlan,p as docDrift,n as drift,l 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,C as incompleteMigration,m as isolated,P as kindCounts,Re as localityCandidates,xe as members,a as mergeDiffImpactPartials,ne as methods,ue as outline,f as passthroughCandidates,Ce as planContext,O as rdeps,W as reactComponentDuplicates,Q as reactHookCandidates,z as reactLargeComponentPressure,ge as recentDuplicates,je as redundantReexports,le as refs,De as selfAudit,c as similar,u as similarAll,ye as similarChains,de as similarFiles,ve as similarSignatures,he as slice,x as staleAbstractions,d as stats,ce as surface,se as symbols,fe as system,B as topCoupling,U as topFanIn,_ as topFanOut,me as trace,ie as unusedImports,j as unusedParams,J as vueComponentDuplicates,X as vueComposableCandidates,Y as vueLargeViewPressure,y as wrapperCandidates,g as writeHealthBaseline};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-6UFMPECA.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-WBJZNPUT.js";import"../chunk-QUJBXLBY.js";import"../chunk-PVZMPG5I.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as reactComponentDuplicates};
|
|
2
2
|
//# sourceMappingURL=react-component-duplicates.js.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { S as ScipDatabase } from '../db-CTarohbZ.js';
|
|
2
|
+
import { F as FrontendBehaviorActionTier, a as FrontendBehaviorEvidenceClass } from '../frontend-behavior-evidence-BxKpKWUu.js';
|
|
2
3
|
import 'better-sqlite3';
|
|
3
4
|
import '../config-types-Bj4sh28g.js';
|
|
4
5
|
|
|
5
|
-
type ReactHookEvidenceClass =
|
|
6
|
-
type ReactHookActionTier =
|
|
6
|
+
type ReactHookEvidenceClass = FrontendBehaviorEvidenceClass;
|
|
7
|
+
type ReactHookActionTier = FrontendBehaviorActionTier;
|
|
7
8
|
interface ReactHookCandidateResult {
|
|
8
9
|
fileA: string;
|
|
9
10
|
componentA: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-56UN3DMK.js";import"../chunk-QUJBXLBY.js";import"../chunk-PVZMPG5I.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-EWC3UK4V.js";import"../chunk-D322LMSA.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as reactHookCandidates};
|
|
2
2
|
//# sourceMappingURL=react-hook-candidates.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-MA7OVFHI.js";import"../chunk-5UDFZC4D.js";import"../chunk-BNKE4TT5.js";import"../chunk-WBJZNPUT.js";import"../chunk-56UN3DMK.js";import"../chunk-QUJBXLBY.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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-BNKE4TT5.js";import"../chunk-QUJBXLBY.js";import"../chunk-PVZMPG5I.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-ERHOS6AW.js";import"../chunk-D322LMSA.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as vueComponentDuplicates};
|
|
2
2
|
//# sourceMappingURL=vue-component-duplicates.js.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { S as ScipDatabase } from '../db-CTarohbZ.js';
|
|
2
|
+
import { F as FrontendBehaviorActionTier, a as FrontendBehaviorEvidenceClass } from '../frontend-behavior-evidence-BxKpKWUu.js';
|
|
2
3
|
import 'better-sqlite3';
|
|
3
4
|
import '../config-types-Bj4sh28g.js';
|
|
4
5
|
|
|
5
|
-
type VueComposableEvidenceClass =
|
|
6
|
-
type VueComposableActionTier =
|
|
6
|
+
type VueComposableEvidenceClass = FrontendBehaviorEvidenceClass;
|
|
7
|
+
type VueComposableActionTier = FrontendBehaviorActionTier;
|
|
7
8
|
interface VueComposableCandidateResult {
|
|
8
9
|
fileA: string;
|
|
9
10
|
fileB: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-5UDFZC4D.js";import"../chunk-QUJBXLBY.js";import"../chunk-PVZMPG5I.js";import"../chunk-3UVJJ6Z7.js";import"../chunk-ERHOS6AW.js";import"../chunk-D322LMSA.js";import"../chunk-OBBDKQAG.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as vueComposableCandidates};
|
|
2
2
|
//# sourceMappingURL=vue-composable-candidates.js.map
|
package/dist/reindex-worker.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
`)){if(!r)continue;let a=U(r).toLowerCase();a&&t.add(a)}return t}catch{return null}}function ke(e,n){return n?.length?n.some(t=>e.has(t)):!1}function _(e,n){let t=e.indexOf(n);t!==-1&&e.splice(t,1)}import{existsSync as z,readdirSync as De}from"fs";import{join as R}from"path";var Oe={typescript:{language:"typescript",indexerBinary:"scip-typescript",checkCommand:"npx scip-typescript --version",indexArgs:({outputPath:e,pnpmWorkspaces:n,indexerBinary:t})=>{let r=["index","--infer-tsconfig","--output",e,"--no-progress-bar"];return n&&r.splice(1,0,"--pnpm-workspaces"),{binary:t,args:r}},markerFiles:["tsconfig.json"],installMethods:[{label:"npm",prerequisite:"npm",binary:"npm",args:["install","-g","@sourcegraph/scip-typescript"]}],installUrl:"https://github.com/sourcegraph/scip-typescript",bundledNpmPackage:"@sourcegraph/scip-typescript"},javascript:{language:"javascript",indexerBinary:"scip-typescript",checkCommand:"npx scip-typescript --version",indexArgs:({outputPath:e,indexerBinary:n})=>({binary:n,args:["index","--infer-tsconfig","--output",e,"--no-progress-bar"]}),markerFiles:["package.json"],installMethods:[{label:"npm",prerequisite:"npm",binary:"npm",args:["install","-g","@sourcegraph/scip-typescript"]}],installUrl:"https://github.com/sourcegraph/scip-typescript",bundledNpmPackage:"@sourcegraph/scip-typescript"},java:{language:"java",indexerBinary:"scip-java",checkCommand:"scip-java --version",indexArgs:({outputPath:e})=>({binary:"scip-java",args:["index","--output",e]}),markerFiles:["pom.xml","build.gradle"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-java/releases"},scala:{language:"scala",indexerBinary:"scip-java",checkCommand:"scip-java --version",indexArgs:({outputPath:e})=>({binary:"scip-java",args:["index","--output",e]}),markerFiles:["build.sbt"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-java/releases"},kotlin:{language:"kotlin",indexerBinary:"scip-java",checkCommand:"scip-java --version",indexArgs:({outputPath:e})=>({binary:"scip-java",args:["index","--output",e]}),markerFiles:["build.gradle.kts"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-java/releases"},rust:{language:"rust",indexerBinary:"rust-analyzer",checkCommand:"rust-analyzer --version",indexArgs:({outputPath:e})=>({binary:"rust-analyzer",args:["scip",".","--output",e]}),markerFiles:["Cargo.toml"],installMethods:[{label:"rustup",prerequisite:"rustup",binary:"rustup",args:["component","add","rust-analyzer"]}],installUrl:"https://github.com/rust-lang/rust-analyzer"},python:{language:"python",indexerBinary:"scip-python-plus",binaryAliases:["scip-python"],checkCommand:"scip-python-plus --version",indexArgs:({outputPath:e,indexerBinary:n})=>({binary:n,args:["index","--output",e,"--project-name","project"]}),markerFiles:["pyproject.toml","setup.py"],installMethods:[{label:"npm",prerequisite:"npm",binary:"npm",args:["install","-g","scip-python-plus"]}],installUrl:"https://github.com/PlunderStruck/scip-python",bundledNpmPackage:"scip-python-plus"},ruby:{language:"ruby",indexerBinary:"scip-ruby",checkCommand:"scip-ruby --version",indexArgs:({indexerBinary:e})=>({binary:e,args:["--dir","."]}),defaultOutputPath:"index.scip",markerFiles:["Gemfile"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-ruby/releases"},go:{language:"go",indexerBinary:"scip-go",checkCommand:"scip-go --version",indexArgs:({outputPath:e})=>({binary:"scip-go",args:["--output",e]}),markerFiles:["go.mod"],installMethods:[{label:"go install",prerequisite:"go",binary:"go",args:["install","github.com/sourcegraph/scip-go@latest"]}],installUrl:"https://github.com/sourcegraph/scip-go"},cpp:{language:"cpp",indexerBinary:"scip-clang",checkCommand:"scip-clang --version",indexArgs:({outputPath:e})=>({binary:"scip-clang",args:["--compdb-path","compile_commands.json","--index-output-path",e]}),markerFiles:["CMakeLists.txt","Makefile"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-clang/releases"},c:{language:"c",indexerBinary:"scip-clang",checkCommand:"scip-clang --version",indexArgs:({outputPath:e})=>({binary:"scip-clang",args:["--compdb-path","compile_commands.json","--index-output-path",e]}),markerFiles:["CMakeLists.txt","Makefile"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-clang/releases"},csharp:{language:"csharp",indexerBinary:"scip-dotnet",checkCommand:"scip-dotnet --version",indexArgs:({projectRoot:e,outputPath:n})=>({binary:"scip-dotnet",args:["index",J(e,[".sln",".csproj"])??e,"--output",n,"--working-directory",e]}),markerFiles:["*.csproj","*.sln"],installMethods:[{label:"dotnet",prerequisite:"dotnet",binary:"dotnet",args:["tool","install","--global","scip-dotnet"]}],installUrl:"https://github.com/sourcegraph/scip-dotnet/releases"},vb:{language:"vb",indexerBinary:"scip-dotnet",checkCommand:"scip-dotnet --version",indexArgs:({projectRoot:e,outputPath:n})=>({binary:"scip-dotnet",args:["index",J(e,[".sln",".vbproj"])??e,"--output",n,"--working-directory",e]}),markerFiles:["*.vbproj","*.sln"],installMethods:[{label:"dotnet",prerequisite:"dotnet",binary:"dotnet",args:["tool","install","--global","scip-dotnet"]}],installUrl:"https://github.com/sourcegraph/scip-dotnet/releases"},dart:{language:"dart",indexerBinary:"scip-dart",checkCommand:"scip-dart --version",indexArgs:({indexerBinary:e,outputPath:n})=>({binary:e,args:["--output",n]}),markerFiles:["pubspec.yaml"],installMethods:[{label:"dart pub",prerequisite:"dart",binary:"dart",args:["pub","global","activate","scip_dart"]}],installUrl:"https://github.com/Workiva/scip-dart/releases"},php:{language:"php",indexerBinary:"scip-php",projectLocalBinaries:["vendor/davidrjenni/scip-php/bin/scip-php","vendor/bin/scip-php"],checkCommand:"scip-php --version",indexArgs:({projectRoot:e,indexerBinary:n})=>{let t=R(e,"vendor","bin","scip-php"),r=R(e,"vendor","davidrjenni","scip-php","bin","scip-php");return{binary:"php",args:["-d","error_reporting=E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED",z(r)?r:z(t)?t:n]}},defaultOutputPath:"index.scip",markerFiles:["composer.json"],installMethods:[],installUrl:"https://github.com/davidrjenni/scip-php/releases"}};function k(e){return Oe[e]}function J(e,n){let t;try{t=De(e)}catch{return null}for(let r of t)if(n.some(a=>r.endsWith(a)))return R(e,r);return null}import{readFileSync as Le,writeFileSync as je}from"fs";import{create as D}from"@bufbuild/protobuf";import{deserializeSCIP as Ce,serializeSCIP as we,DocumentSchema as Ee,IndexSchema as $e,SymbolInformationSchema as Fe}from"@c4312/scip";function Be(e){if(e.length===0)throw new Error("Cannot merge zero SCIP indexes");if(e.length===1)return e[0];let n=Me(e),t=Ne(e.flatMap(a=>a.documents??[])),r=H(e.flatMap(a=>a.externalSymbols??[]));return D($e,{metadata:n,documents:t,externalSymbols:r})}function G(e,n){if(e.length===0)throw new Error("Cannot merge zero SCIP files");let t=e.map(a=>Ce(Le(a))),r=Be(t);return je(n,Buffer.from(we(r))),{documentCount:r.documents.length,externalSymbolCount:r.externalSymbols.length,inputCount:e.length}}function Me(e){let n=e[0]?.metadata;if(!n)return;let t=n.projectRoot;for(let r of e.slice(1)){let a=r.metadata?.projectRoot;if(t&&a&&a!==t)throw new Error(`Cannot merge SCIP indexes with different project roots: ${t} vs ${a}`)}return n}function Ne(e){let n=new Map;for(let t of e){let r=n.get(t.relativePath);if(!r){n.set(t.relativePath,t);continue}n.set(t.relativePath,D(Ee,{language:r.language||t.language,relativePath:r.relativePath||t.relativePath,occurrences:[...r.occurrences,...t.occurrences],symbols:H([...r.symbols,...t.symbols]),text:_e(r.text,t.text),positionEncoding:r.positionEncoding||t.positionEncoding}))}return[...n.values()]}function H(e){let n=new Map;for(let t of e){let r=n.get(t.symbol);if(!r){n.set(t.symbol,t);continue}n.set(t.symbol,D(Fe,{symbol:r.symbol,documentation:Te([...r.documentation,...t.documentation]),relationships:Ae([...r.relationships,...t.relationships]),kind:r.kind||t.kind,displayName:r.displayName||t.displayName,enclosingSymbol:r.enclosingSymbol||t.enclosingSymbol,signatureDocumentation:r.signatureDocumentation??t.signatureDocumentation}))}return[...n.values()]}function Ae(e){let n=new Set,t=[];for(let r of e){let a=[r.symbol,r.isReference?"1":"0",r.isImplementation?"1":"0",r.isTypeDefinition?"1":"0",r.isDefinition?"1":"0"].join("|");n.has(a)||(n.add(a),t.push(r))}return t}function _e(e,n){return e?n?e.length>=n.length?e:n:e:n}function Te(e){return[...new Set(e)]}import{readFileSync as Ue,writeFileSync as We}from"fs";import{create as X}from"@bufbuild/protobuf";import{deserializeSCIP as qe,DocumentSchema as ze,IndexSchema as Je,serializeSCIP as Ge,SymbolRole as He}from"@c4312/scip";function Q(e){let n;try{n=qe(Ue(e))}catch{return{removedDefinitionOccurrences:0,touchedDocuments:0}}let t=Xe(n);return t.removedDefinitionOccurrences>0&&We(e,Buffer.from(Ge(t.index))),{removedDefinitionOccurrences:t.removedDefinitionOccurrences,touchedDocuments:t.touchedDocuments}}function Xe(e){let n=new Set;for(let i of e.documents)for(let s of i.symbols)s.symbol&&n.add(s.symbol);for(let i of e.externalSymbols)i.symbol&&n.add(i.symbol);let t=0,r=0,a=[];for(let i of e.documents){let s=i.occurrences.filter(o=>(o.symbolRoles&He.Definition)===0||n.has(o.symbol)?!0:(t+=1,!1));if(s.length===i.occurrences.length){a.push(i);continue}r+=1,a.push(X(ze,{language:i.language,relativePath:i.relativePath,occurrences:s,symbols:i.symbols,text:i.text,positionEncoding:i.positionEncoding}))}return{index:t===0?e:X(Je,{metadata:e.metadata,documents:a,externalSymbols:e.externalSymbols}),removedDefinitionOccurrences:t,touchedDocuments:r}}import{execFile as Qe}from"child_process";import{existsSync as x,renameSync as L,rmSync as j}from"fs";import{cpus as Ke}from"os";import{join as K}from"path";function Ve(e,n,t){if(!e.defaultOutputPath)return;let r=K(n,e.defaultOutputPath);t!==r&&x(r)&&L(r,t)}function Ye(e,n,t){if(!e.defaultOutputPath)return null;let r=K(n,e.defaultOutputPath);if(r===t)return null;let a=`${t}.default-output-backup`;return j(a,{force:!0}),x(r)?(L(r,a),{defaultOutputPath:r,backupPath:a}):{defaultOutputPath:r,backupPath:null}}function Ze(e){e&&(j(e.defaultOutputPath,{force:!0}),e.backupPath&&x(e.backupPath)&&L(e.backupPath,e.defaultOutputPath))}function en(e,n){if(e<=1)return 1;let t=Number(process.env.SCIP_QUERY_INDEXER_CONCURRENCY??0),r=Number.isFinite(n)&&n&&n>0?n:Number.isFinite(t)&&t>0?t:Math.min(2,Math.max(1,Ke().length-1));return Math.max(1,Math.min(e,Math.floor(r)))}async function V(e,n,t,r){let a=e.filter(u=>u.config.defaultOutputPath),i=e.filter(u=>!u.config.defaultOutputPath),s=[],o=en(i.length,r),p=await tn(i,o,u=>O(u,n,t));if(o>1){let u=new Map;for(let c of p.filter(l=>l.skipped)){let l=i.find(h=>h.language===c.language);l&&(t(`Retrying ${l.language} indexer serially after parallel failure...`),u.set(l.language,await O(l,n,t)))}s.push(...p.map(c=>u.get(c.language)??c))}else s.push(...p);for(let u of a)s.push(await O(u,n,t));return s.sort((u,c)=>e.findIndex(l=>l.language===u.language)-e.findIndex(l=>l.language===c.language))}async function O(e,n,t){t(`Indexing ${e.language} with ${e.resolvedBinary}...`),j(e.scipPath,{force:!0});let r=Ye(e.config,n,e.scipPath);try{await nn(e.binary,e.args,{cwd:n,env:e.env,maxBuffer:50*1024*1024}),Ve(e.config,n,e.scipPath)}catch(a){let i=a instanceof Error?a.message:String(a),s=`${e.resolvedBinary} indexer failed: ${i.split(`
|
|
3
|
-
`)[0]}`;return t(`Skipping ${e.language}: ${s}`),{language:e.language,scipPath:e.scipPath,skipped:{language:e.language,reason:s}}}finally{
|
|
4
|
-
Install from: https://github.com/sourcegraph/scip/releases`);if(n("scip CLI not found on PATH. Attempting auto-install..."),!
|
|
5
|
-
Install manually from: https://github.com/sourcegraph/scip/releases`)}}function
|
|
1
|
+
import{a as I,b as R}from"./chunk-KPHKX4LP.js";import{a as h,b as v,f as _}from"./chunk-ONPCQ2PM.js";import{execFileSync as dn}from"child_process";import{closeSync as mn,copyFileSync as fn,existsSync as P,mkdirSync as M,mkdtempSync as hn,openSync as xn,readFileSync as se,renameSync as N,rmSync as A,writeFileSync as oe}from"fs";import{basename as S,dirname as d,extname as yn,join as g}from"path";import{execFileSync as he}from"child_process";import{existsSync as xe,readdirSync as U}from"fs";import{extname as W,join as q}from"path";var ye=new Set([".git",".hg",".svn",".idea",".vscode","node_modules","vendor","dist","build","target","bin","obj",".dart_tool",".gradle",".next",".venv","venv","__pycache__"]),be=[{language:"typescript",files:["tsconfig.json","tsconfig.base.json"],extensions:[".ts",".tsx",".mts",".cts"]},{language:"rust",files:["Cargo.toml"],extensions:[".rs"]},{language:"go",files:["go.mod"],extensions:[".go"]},{language:"java",files:["pom.xml","build.gradle","build.gradle.kts"],extensions:[".java"]},{language:"kotlin",files:["build.gradle.kts"],extensions:[".kt",".kts"]},{language:"scala",files:["build.sbt"],extensions:[".scala"]},{language:"python",files:["pyproject.toml","setup.py","setup.cfg","Pipfile"],extensions:[".py",".pyi"]},{language:"ruby",files:["Gemfile"],extensions:[".rb"]},{language:"cpp",files:["compile_commands.json","CMakeLists.txt","Makefile"],extensions:[".cc",".cpp",".cxx",".hpp",".hh",".hxx"]},{language:"c",files:["compile_commands.json","CMakeLists.txt","Makefile"],extensions:[".c",".h"]},{language:"csharp",globs:["*.csproj","*.sln"],extensions:[".cs"]},{language:"vb",globs:["*.vbproj"],extensions:[".vb"]},{language:"dart",files:["pubspec.yaml"],extensions:[".dart"]},{language:"php",files:["composer.json"],extensions:[".php"]},{language:"javascript",files:["package.json"],extensions:[".js",".jsx",".mjs",".cjs"]}];function z(e){let n=[],t=Se(e),r=Re(e);for(let a of be){if(Pe(e,a.files)){n.push(a.language);continue}if(ve(t,a.globs)){n.push(a.language);continue}De(r,a.extensions)&&n.push(a.language)}return n.includes("typescript")&&T(n,"javascript"),n.includes("cpp")&&!r.has(".c")&&T(n,"c"),n}function Se(e){try{return U(e)}catch{return[]}}function Pe(e,n){return n?.length?n.some(t=>xe(q(e,t))):!1}function ve(e,n){return n?.length?e.some(t=>n.some(r=>Ie(t,r))):!1}function Ie(e,n){if(n==="*")return!0;if(!n.includes("*"))return e===n;let[t,r]=n.split("*");return e.startsWith(t??"")&&e.endsWith(r??"")}function Re(e){let n=ke(e);if(n)return n;let t=new Set,r=[e];for(;r.length>0;){let a=r.pop();if(!a)continue;let i;try{i=U(a,{withFileTypes:!0})}catch{continue}for(let s of i){if(s.name.startsWith(".")&&!s.name.endsWith("proj")&&!s.name.endsWith("sln")&&s.isDirectory())continue;let o=q(a,s.name);if(s.isDirectory()){ye.has(s.name)||r.push(o);continue}let p=W(s.name).toLowerCase();p&&t.add(p)}}return t}function ke(e){try{let n=he("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:26214400,stdio:["ignore","pipe","ignore"]}),t=new Set;for(let r of n.split(`
|
|
2
|
+
`)){if(!r)continue;let a=W(r).toLowerCase();a&&t.add(a)}return t}catch{return null}}function De(e,n){return n?.length?n.some(t=>e.has(t)):!1}function T(e,n){let t=e.indexOf(n);t!==-1&&e.splice(t,1)}import{existsSync as J,readdirSync as Oe}from"fs";import{join as k}from"path";var Le={typescript:{language:"typescript",indexerBinary:"scip-typescript",checkCommand:"npx scip-typescript --version",indexArgs:({outputPath:e,pnpmWorkspaces:n,indexerBinary:t})=>{let r=["index","--infer-tsconfig","--output",e,"--no-progress-bar"];return n&&r.splice(1,0,"--pnpm-workspaces"),{binary:t,args:r}},markerFiles:["tsconfig.json"],installMethods:[{label:"npm",prerequisite:"npm",binary:"npm",args:["install","-g","@sourcegraph/scip-typescript"]}],installUrl:"https://github.com/sourcegraph/scip-typescript",bundledNpmPackage:"@sourcegraph/scip-typescript"},javascript:{language:"javascript",indexerBinary:"scip-typescript",checkCommand:"npx scip-typescript --version",indexArgs:({outputPath:e,indexerBinary:n})=>({binary:n,args:["index","--infer-tsconfig","--output",e,"--no-progress-bar"]}),markerFiles:["package.json"],installMethods:[{label:"npm",prerequisite:"npm",binary:"npm",args:["install","-g","@sourcegraph/scip-typescript"]}],installUrl:"https://github.com/sourcegraph/scip-typescript",bundledNpmPackage:"@sourcegraph/scip-typescript"},java:{language:"java",indexerBinary:"scip-java",checkCommand:"scip-java --version",indexArgs:({outputPath:e})=>({binary:"scip-java",args:["index","--output",e]}),markerFiles:["pom.xml","build.gradle"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-java/releases"},scala:{language:"scala",indexerBinary:"scip-java",checkCommand:"scip-java --version",indexArgs:({outputPath:e})=>({binary:"scip-java",args:["index","--output",e]}),markerFiles:["build.sbt"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-java/releases"},kotlin:{language:"kotlin",indexerBinary:"scip-java",checkCommand:"scip-java --version",indexArgs:({outputPath:e})=>({binary:"scip-java",args:["index","--output",e]}),markerFiles:["build.gradle.kts"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-java/releases"},rust:{language:"rust",indexerBinary:"rust-analyzer",checkCommand:"rust-analyzer --version",indexArgs:({outputPath:e})=>({binary:"rust-analyzer",args:["scip",".","--output",e]}),markerFiles:["Cargo.toml"],installMethods:[{label:"rustup",prerequisite:"rustup",binary:"rustup",args:["component","add","rust-analyzer"]}],installUrl:"https://github.com/rust-lang/rust-analyzer"},python:{language:"python",indexerBinary:"scip-python-plus",binaryAliases:["scip-python"],checkCommand:"scip-python-plus --version",indexArgs:({outputPath:e,indexerBinary:n})=>({binary:n,args:["index","--output",e,"--project-name","project"]}),markerFiles:["pyproject.toml","setup.py"],installMethods:[{label:"npm",prerequisite:"npm",binary:"npm",args:["install","-g","scip-python-plus"]}],installUrl:"https://github.com/PlunderStruck/scip-python",bundledNpmPackage:"scip-python-plus"},ruby:{language:"ruby",indexerBinary:"scip-ruby",checkCommand:"scip-ruby --version",indexArgs:({indexerBinary:e})=>({binary:e,args:["--dir","."]}),defaultOutputPath:"index.scip",markerFiles:["Gemfile"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-ruby/releases"},go:{language:"go",indexerBinary:"scip-go",checkCommand:"scip-go --version",indexArgs:({outputPath:e})=>({binary:"scip-go",args:["--output",e]}),markerFiles:["go.mod"],installMethods:[{label:"go install",prerequisite:"go",binary:"go",args:["install","github.com/sourcegraph/scip-go@latest"]}],installUrl:"https://github.com/sourcegraph/scip-go"},cpp:{language:"cpp",indexerBinary:"scip-clang",checkCommand:"scip-clang --version",indexArgs:({outputPath:e})=>({binary:"scip-clang",args:["--compdb-path","compile_commands.json","--index-output-path",e]}),markerFiles:["CMakeLists.txt","Makefile"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-clang/releases"},c:{language:"c",indexerBinary:"scip-clang",checkCommand:"scip-clang --version",indexArgs:({outputPath:e})=>({binary:"scip-clang",args:["--compdb-path","compile_commands.json","--index-output-path",e]}),markerFiles:["CMakeLists.txt","Makefile"],installMethods:[],installUrl:"https://github.com/sourcegraph/scip-clang/releases"},csharp:{language:"csharp",indexerBinary:"scip-dotnet",checkCommand:"scip-dotnet --version",indexArgs:({projectRoot:e,outputPath:n})=>({binary:"scip-dotnet",args:["index",G(e,[".sln",".csproj"])??e,"--output",n,"--working-directory",e]}),markerFiles:["*.csproj","*.sln"],installMethods:[{label:"dotnet",prerequisite:"dotnet",binary:"dotnet",args:["tool","install","--global","scip-dotnet"]}],installUrl:"https://github.com/sourcegraph/scip-dotnet/releases"},vb:{language:"vb",indexerBinary:"scip-dotnet",checkCommand:"scip-dotnet --version",indexArgs:({projectRoot:e,outputPath:n})=>({binary:"scip-dotnet",args:["index",G(e,[".sln",".vbproj"])??e,"--output",n,"--working-directory",e]}),markerFiles:["*.vbproj","*.sln"],installMethods:[{label:"dotnet",prerequisite:"dotnet",binary:"dotnet",args:["tool","install","--global","scip-dotnet"]}],installUrl:"https://github.com/sourcegraph/scip-dotnet/releases"},dart:{language:"dart",indexerBinary:"scip-dart",checkCommand:"scip-dart --version",indexArgs:({indexerBinary:e,outputPath:n})=>({binary:e,args:["--output",n]}),markerFiles:["pubspec.yaml"],installMethods:[{label:"dart pub",prerequisite:"dart",binary:"dart",args:["pub","global","activate","scip_dart"]}],installUrl:"https://github.com/Workiva/scip-dart/releases"},php:{language:"php",indexerBinary:"scip-php",projectLocalBinaries:["vendor/davidrjenni/scip-php/bin/scip-php","vendor/bin/scip-php"],checkCommand:"scip-php --version",indexArgs:({projectRoot:e,indexerBinary:n})=>{let t=k(e,"vendor","bin","scip-php"),r=k(e,"vendor","davidrjenni","scip-php","bin","scip-php");return{binary:"php",args:["-d","error_reporting=E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED",J(r)?r:J(t)?t:n]}},defaultOutputPath:"index.scip",markerFiles:["composer.json"],installMethods:[],installUrl:"https://github.com/davidrjenni/scip-php/releases"}};function D(e){return Le[e]}function G(e,n){let t;try{t=Oe(e)}catch{return null}for(let r of t)if(n.some(a=>r.endsWith(a)))return k(e,r);return null}import{readFileSync as Ce,writeFileSync as je}from"fs";import{create as O}from"@bufbuild/protobuf";import{deserializeSCIP as we,serializeSCIP as Ee,DocumentSchema as $e,IndexSchema as Be,SymbolInformationSchema as Fe}from"@c4312/scip";function Me(e){if(e.length===0)throw new Error("Cannot merge zero SCIP indexes");if(e.length===1)return e[0];let n=Ne(e),t=Ae(e.flatMap(a=>a.documents??[])),r=X(e.flatMap(a=>a.externalSymbols??[]));return O(Be,{metadata:n,documents:t,externalSymbols:r})}function H(e,n){if(e.length===0)throw new Error("Cannot merge zero SCIP files");let t=e.map(a=>we(Ce(a))),r=Me(t);return je(n,Buffer.from(Ee(r))),{documentCount:r.documents.length,externalSymbolCount:r.externalSymbols.length,inputCount:e.length}}function Ne(e){let n=e[0]?.metadata;if(!n)return;let t=n.projectRoot;for(let r of e.slice(1)){let a=r.metadata?.projectRoot;if(t&&a&&a!==t)throw new Error(`Cannot merge SCIP indexes with different project roots: ${t} vs ${a}`)}return n}function Ae(e){let n=new Map;for(let t of e){let r=n.get(t.relativePath);if(!r){n.set(t.relativePath,t);continue}n.set(t.relativePath,O($e,{language:r.language||t.language,relativePath:r.relativePath||t.relativePath,occurrences:[...r.occurrences,...t.occurrences],symbols:X([...r.symbols,...t.symbols]),text:Te(r.text,t.text),positionEncoding:r.positionEncoding||t.positionEncoding}))}return[...n.values()]}function X(e){let n=new Map;for(let t of e){let r=n.get(t.symbol);if(!r){n.set(t.symbol,t);continue}n.set(t.symbol,O(Fe,{symbol:r.symbol,documentation:Ue([...r.documentation,...t.documentation]),relationships:_e([...r.relationships,...t.relationships]),kind:r.kind||t.kind,displayName:r.displayName||t.displayName,enclosingSymbol:r.enclosingSymbol||t.enclosingSymbol,signatureDocumentation:r.signatureDocumentation??t.signatureDocumentation}))}return[...n.values()]}function _e(e){let n=new Set,t=[];for(let r of e){let a=[r.symbol,r.isReference?"1":"0",r.isImplementation?"1":"0",r.isTypeDefinition?"1":"0",r.isDefinition?"1":"0"].join("|");n.has(a)||(n.add(a),t.push(r))}return t}function Te(e,n){return e?n?e.length>=n.length?e:n:e:n}function Ue(e){return[...new Set(e)]}import{readFileSync as We,writeFileSync as qe}from"fs";import{create as Q}from"@bufbuild/protobuf";import{deserializeSCIP as ze,DocumentSchema as Je,IndexSchema as Ge,serializeSCIP as He,SymbolRole as Xe}from"@c4312/scip";function K(e){let n;try{n=ze(We(e))}catch{return{removedDefinitionOccurrences:0,touchedDocuments:0}}let t=Qe(n);return t.removedDefinitionOccurrences>0&&qe(e,Buffer.from(He(t.index))),{removedDefinitionOccurrences:t.removedDefinitionOccurrences,touchedDocuments:t.touchedDocuments}}function Qe(e){let n=new Set;for(let i of e.documents)for(let s of i.symbols)s.symbol&&n.add(s.symbol);for(let i of e.externalSymbols)i.symbol&&n.add(i.symbol);let t=0,r=0,a=[];for(let i of e.documents){let s=i.occurrences.filter(o=>(o.symbolRoles&Xe.Definition)===0||n.has(o.symbol)?!0:(t+=1,!1));if(s.length===i.occurrences.length){a.push(i);continue}r+=1,a.push(Q(Je,{language:i.language,relativePath:i.relativePath,occurrences:s,symbols:i.symbols,text:i.text,positionEncoding:i.positionEncoding}))}return{index:t===0?e:Q(Ge,{metadata:e.metadata,documents:a,externalSymbols:e.externalSymbols}),removedDefinitionOccurrences:t,touchedDocuments:r}}import{execFile as Ke}from"child_process";import{existsSync as x,renameSync as C,rmSync as j}from"fs";import{cpus as Ve}from"os";import{join as V}from"path";function Ye(e,n,t){if(!e.defaultOutputPath)return;let r=V(n,e.defaultOutputPath);t!==r&&x(r)&&C(r,t)}function Ze(e,n,t){if(!e.defaultOutputPath)return null;let r=V(n,e.defaultOutputPath);if(r===t)return null;let a=`${t}.default-output-backup`;return j(a,{force:!0}),x(r)?(C(r,a),{defaultOutputPath:r,backupPath:a}):{defaultOutputPath:r,backupPath:null}}function en(e){e&&(j(e.defaultOutputPath,{force:!0}),e.backupPath&&x(e.backupPath)&&C(e.backupPath,e.defaultOutputPath))}function nn(e,n){if(e<=1)return 1;let t=Number(process.env.SCIP_QUERY_INDEXER_CONCURRENCY??0),r=Number.isFinite(n)&&n&&n>0?n:Number.isFinite(t)&&t>0?t:Math.min(2,Math.max(1,Ve().length-1));return Math.max(1,Math.min(e,Math.floor(r)))}async function Y(e,n,t,r){let a=e.filter(u=>u.config.defaultOutputPath),i=e.filter(u=>!u.config.defaultOutputPath),s=[],o=nn(i.length,r),p=await rn(i,o,u=>L(u,n,t));if(o>1){let u=new Map;for(let c of p.filter(l=>l.skipped)){let l=i.find(f=>f.language===c.language);l&&(t(`Retrying ${l.language} indexer serially after parallel failure...`),u.set(l.language,await L(l,n,t)))}s.push(...p.map(c=>u.get(c.language)??c))}else s.push(...p);for(let u of a)s.push(await L(u,n,t));return s.sort((u,c)=>e.findIndex(l=>l.language===u.language)-e.findIndex(l=>l.language===c.language))}async function L(e,n,t){t(`Indexing ${e.language} with ${e.resolvedBinary}...`),j(e.scipPath,{force:!0});let r=Ze(e.config,n,e.scipPath);try{await tn(e.binary,e.args,{cwd:n,env:e.env,maxBuffer:50*1024*1024}),Ye(e.config,n,e.scipPath)}catch(a){let i=a instanceof Error?a.message:String(a),s=`${e.resolvedBinary} indexer failed: ${i.split(`
|
|
3
|
+
`)[0]}`;return t(`Skipping ${e.language}: ${s}`),{language:e.language,scipPath:e.scipPath,skipped:{language:e.language,reason:s}}}finally{en(r)}if(!x(e.scipPath)){let a=`${e.resolvedBinary} indexer completed but did not produce ${e.scipPath}`;return t(`Skipping ${e.language}: ${a}`),{language:e.language,scipPath:e.scipPath,skipped:{language:e.language,reason:a}}}return{language:e.language,scipPath:e.scipPath}}function tn(e,n,t){return new Promise((r,a)=>{Ke(e,[...n],t,i=>{i?a(i):r()})})}async function rn(e,n,t){if(e.length===0)return[];let r=new Array(e.length),a=0,i=Math.max(1,Math.min(e.length,n)),s=Array.from({length:i},async()=>{for(;a<e.length;){let o=a++;r[o]=await t(e[o])}});return await Promise.all(s),r}import{execFileSync as E}from"child_process";import{existsSync as w,readFileSync as an}from"fs";import{createRequire as sn}from"module";import{platform as on}from"os";import{dirname as Z,join as y}from"path";var un=sn(import.meta.url);function $(e){return[e.indexerBinary,...e.binaryAliases??[]]}function B(e){let n=$(e);return n.length===1?n[0]:n.join(" or ")}function b(e){for(let n of $(e))if(h(n))return n;return pn(e)}function ee(e){return b(e)!==null||ln(e)}function ln(e){return ne(e)!==null}function pn(e){let n=ne(e);if(!n)return null;let r=JSON.parse(an(n,"utf8")).bin;if(!r)return null;if(typeof r=="string")return y(Z(n),r);for(let a of $(e)){let i=r[a];if(i)return y(Z(n),i)}return null}function ne(e){if(!e.bundledNpmPackage)return null;try{return un.resolve(`${e.bundledNpmPackage}/package.json`)}catch{return null}}function te(e,n){for(let t of e.projectLocalBinaries??[]){let r=y(n,t);if(w(r))return r}return null}function re(e,n=process.env,t=e.indexerBinary){if(e.indexerBinary!=="scip-dotnet"||ie(t,n))return n;let r=cn(t,n);return r?{...n,DOTNET_ROOT:r}:n}function ae(e,n){let t=e.installMethods,r=B(e);if(!t?.length)return n(`No auto-install method available for ${r}.`),e.installUrl&&n(`Install manually from: ${e.installUrl}`),!1;for(let a of t)if(h(a.prerequisite)){n(`Installing ${r} via ${a.label}...`);try{E(a.binary,a.args,{stdio:"inherit",timeout:3e5,env:process.env});let i=b(e);if(i){let s=i===e.indexerBinary?"":` (using ${i})`;return n(`Successfully installed ${r} via ${a.label}${s}`),!0}n(`${a.label} command completed but ${r} was not found on PATH`)}catch(i){let s=i instanceof Error?i.message:String(i);n(`${a.label} install failed: ${s}`)}}return n(`Could not auto-install ${r}.`),e.installUrl&&n(`Install manually from: ${e.installUrl}`),!1}function cn(e,n){for(let t of gn(n))if(ie(e,{...n,DOTNET_ROOT:t}))return t;return null}function gn(e){let n=[],t=e.DOTNET_ROOT;if(t&&w(t)&&n.push(t),on()==="darwin"&&h("brew"))try{let r=E("brew",["--prefix","dotnet@9"],{stdio:"pipe",env:e}).toString().trim(),a=y(r,"libexec");w(a)&&!n.includes(a)&&n.push(a)}catch{}return n}function ie(e,n){try{return E(e,["--version"],{stdio:"pipe",env:n}),!0}catch{return!1}}async function ue(e){let{projectRoot:n,maxHeapMb:t=8192,onStatus:r=console.log,skipAutoInstall:a=!1}=e,i=bn(e),s=Date.now();M(d(i.outputScip),{recursive:!0}),M(d(i.outputDb),{recursive:!0});let o=e.languages??z(n);if(o.length===0)throw new Error("No supported languages detected in this project. Looked for: tsconfig.json, Cargo.toml, go.mod, pyproject.toml, etc.");r(`Detected languages: ${o.join(", ")}`);let p=Nn(n,o,{pnpmWorkspaces:e.pnpmWorkspaces}),u=Fn(g(d(i.outputDb),"index.lock")),c=null;try{let l=Sn({opts:e,paths:i,languages:o,fingerprint:p,start:s,onStatus:r});if(l)return l;On(a,r);let f=Pn(i);return c=f.runDir,await vn({opts:e,languages:o,projectRoot:n,paths:i,tempPaths:f,fingerprint:p,start:s,maxHeapMb:t,skipAutoInstall:a,onStatus:r})}finally{c&&A(c,{recursive:!0,force:!0}),u()}}function bn(e){let n=e.outputScip??g(e.projectRoot,"index.scip"),t=e.outputDb??g(e.projectRoot,"index.db");return{outputScip:n,outputDb:t,metaPath:g(d(t),"meta.json")}}function Sn(e){if(e.opts.skipIfUnchanged===!1||!P(e.paths.outputScip)||!P(e.paths.outputDb)||!An(e.paths.metaPath,e.fingerprint))return null;I({projectRoot:e.opts.projectRoot,dbPath:e.paths.outputDb,onStatus:e.onStatus});let n=Date.now()-e.start;return e.onStatus(`Index unchanged; reused existing SQLite index in ${(n/1e3).toFixed(1)}s`),{languages:e.languages,indexPath:e.paths.outputScip,dbPath:e.paths.outputDb,durationMs:n,reused:!0,skipped:[]}}function Pn(e){let n=hn(g(d(e.outputDb),"reindex-"));return{runDir:n,tempOutputScip:g(n,S(e.outputScip)),tempOutputDb:g(n,S(e.outputDb)),tempMetaPath:g(n,S(e.metaPath))}}async function vn(e){let n={...process.env,NODE_OPTIONS:`--max-old-space-size=${e.maxHeapMb}`},{indexedOutputs:t,skippedLanguages:r,reusedLanguages:a}=await In(e,n);a.length>0&&e.onStatus(`Reused ${a.length} cached language shard(s): ${a.join(", ")}`),Rn(e,n,t,r);let i=Date.now()-e.start;return e.onStatus(`Done in ${(i/1e3).toFixed(1)}s`),{languages:t.map(s=>s.language),indexPath:e.paths.outputScip,dbPath:e.paths.outputDb,durationMs:i,reused:!1,skipped:r}}async function In(e,n){let t=kn(e),r=new Set(t.map(u=>u.language));for(let u of r)e.onStatus(`Reusing cached ${u} SCIP shard (language inputs unchanged).`);let{preparedRuns:a,skippedLanguages:i}=Ln({languages:e.languages.filter(u=>!r.has(u)),tempOutputScip:e.tempPaths.tempOutputScip,projectRoot:e.projectRoot,env:n,skipAutoInstall:e.skipAutoInstall,pnpmWorkspaces:e.opts.pnpmWorkspaces,onStatus:e.onStatus}),s=await Y(a,e.projectRoot,e.onStatus,e.opts.indexerConcurrency),{indexedOutputs:o}=jn(s,i),p=[...t,...o];return wn(p,i,e.languages,e.opts.allowPartial,e.onStatus),{indexedOutputs:p,skippedLanguages:i,reusedLanguages:[...r]}}function Rn(e,n,t,r){Dn(e.paths.outputDb,t),En(t,e.tempPaths.tempOutputScip,e.onStatus),$n(e.tempPaths.tempOutputScip,e.tempPaths.tempOutputDb,n,e.onStatus),I({projectRoot:e.projectRoot,dbPath:e.tempPaths.tempOutputDb,onStatus:e.onStatus}),_n(e.tempPaths.tempMetaPath,{version:3,status:r.length===0?"complete":"partial",updatedAt:new Date().toISOString(),fingerprint:e.fingerprint,languageFingerprints:le(e.projectRoot,e.languages,{pnpmWorkspaces:e.opts.pnpmWorkspaces}),requestedLanguages:e.languages,indexedLanguages:t.map(a=>a.language),skipped:[...r]}),Mn({tempOutputScip:e.tempPaths.tempOutputScip,tempOutputDb:e.tempPaths.tempOutputDb,tempMetaPath:e.tempPaths.tempMetaPath,outputScip:e.paths.outputScip,outputDb:e.paths.outputDb,metaPath:e.paths.metaPath})}function kn(e){let n;try{n=JSON.parse(se(e.paths.metaPath,"utf-8"))}catch{return[]}if(n.version!==3||!n.languageFingerprints)return[];let t=[],r=le(e.projectRoot,e.languages,{pnpmWorkspaces:e.opts.pnpmWorkspaces});for(let a of e.languages){let i=pe(e.paths.outputDb,a);P(i)&&m(n.languageFingerprints[a])===m(r[a])&&t.push({language:a,scipPath:i})}return t}function Dn(e,n){for(let t of n){let r=pe(e,t.language);M(d(r),{recursive:!0}),t.scipPath!==r&&fn(t.scipPath,r)}}function On(e,n){if(!v()){if(e)throw new Error(`The scip CLI is required but not found on PATH.
|
|
4
|
+
Install from: https://github.com/sourcegraph/scip/releases`);if(n("scip CLI not found on PATH. Attempting auto-install..."),!_(n))throw new Error(`The scip CLI is required but could not be installed.
|
|
5
|
+
Install manually from: https://github.com/sourcegraph/scip/releases`)}}function Ln(e){let n=[],t=[],r=e.languages.map((a,i)=>({language:a,scipPath:e.languages.length>1?Bn(e.tempOutputScip,a,i):e.tempOutputScip}));for(let{language:a,scipPath:i}of r){let s=Cn({...e,language:a,scipPath:i});"skipped"in s?t.push(s.skipped):n.push(s.prepared)}return{preparedRuns:n,skippedLanguages:t}}function Cn(e){let n=D(e.language),t=B(n),r=te(n,e.projectRoot);if(!r&&!ee(n)){if(e.skipAutoInstall){let o=`${t} not found on PATH (auto-install disabled). ${n.installUrl??""}`.trim();return e.onStatus(`Skipping ${e.language}: ${o}`),{skipped:{language:e.language,reason:o}}}if(e.onStatus(`${t} not found. Attempting auto-install...`),!ae(n,e.onStatus)){let o=`${t} could not be auto-installed. ${n.installUrl?`Install manually from ${n.installUrl}`:`Install ${t} and put it on PATH.`}`;return e.onStatus(`Skipping ${e.language}: ${o}`),{skipped:{language:e.language,reason:o}}}}let a=r??b(n);if(!a){let o=`${t} was not found after installation checks.`;return e.onStatus(`Skipping ${e.language}: ${o}`),{skipped:{language:e.language,reason:o}}}let{binary:i,args:s}=n.indexArgs({projectRoot:e.projectRoot,outputPath:e.scipPath,pnpmWorkspaces:e.pnpmWorkspaces,indexerBinary:a});return{prepared:{language:e.language,scipPath:e.scipPath,config:n,resolvedBinary:a,binary:i,args:s,env:re(n,e.env,a)}}}function jn(e,n){let t=[];for(let r of e)r.skipped?n.push(r.skipped):t.push({language:r.language,scipPath:r.scipPath});return{indexedOutputs:t}}function wn(e,n,t,r,a){if(e.length===0){let i=n.map(s=>` - ${s.language}: ${s.reason}`).join(`
|
|
6
6
|
`);throw new Error(`No language indexers ran successfully. Install at least one indexer for the languages in this project.
|
|
7
7
|
`+i)}if(n.length!==0&&(a(`Indexed ${e.length} of ${t.length} languages; skipped ${n.map(i=>i.language).join(", ")}.`),!r))throw new Error(`Failed to index all required languages; preserving the previous index. Pass --allow-partial to intentionally write an incomplete index.
|
|
8
8
|
`+n.map(i=>` - ${i.language}: ${i.reason}`).join(`
|
|
9
|
-
`))}function
|
|
10
|
-
`),()=>{try{
|
|
11
|
-
`)}function
|
|
9
|
+
`))}function En(e,n,t){e.length>1?(t(`Merging ${e.length} language indexes...`),H(e.map(r=>r.scipPath),n)):e[0].scipPath!==n&&N(e[0].scipPath,n)}function $n(e,n,t,r){if(r("Converting to SQLite..."),!P(e))throw new Error(`SCIP index not found at ${e} after indexing`);try{let a=K(e);a.removedDefinitionOccurrences>0&&r(`Sanitized ${a.removedDefinitionOccurrences} invalid definition occurrences across ${a.touchedDocuments} documents before SQLite conversion.`);let i=v();if(!i)throw new Error("scip CLI is not available");dn(i,["expt-convert","--output",n,e],{env:t,stdio:"pipe",maxBuffer:50*1024*1024})}catch(a){let i=a instanceof Error?a.message:String(a);throw new Error(`Failed to convert SCIP index to SQLite: ${i}`,{cause:a})}}function Bn(e,n,t){let r=yn(e)||".scip",a=S(e,r);return g(d(e),`${a}.${t+1}.${n}${r}`)}function Fn(e){let n;try{n=xn(e,"wx")}catch(t){throw(typeof t=="object"&&t&&"code"in t?t.code:void 0)==="EEXIST"?new Error(`Another scip-query reindex is already running for ${d(e)}.`,{cause:t}):t}return oe(n,JSON.stringify({pid:process.pid,startedAt:new Date().toISOString()})+`
|
|
10
|
+
`),()=>{try{mn(n)}finally{A(e,{force:!0})}}}function Mn(e){F(e.tempOutputScip,e.outputScip),F(e.tempOutputDb,e.outputDb),F(e.tempMetaPath,e.metaPath)}function F(e,n){A(`${n}.tmp-replace`,{force:!0}),N(e,`${n}.tmp-replace`),N(`${n}.tmp-replace`,n)}function Nn(e,n,t){return{version:1,languages:[...n].sort(),pnpmWorkspaces:t.pnpmWorkspaces===!0,files:R(e)}}function le(e,n,t){return Object.fromEntries(n.map(r=>{let a=D(r).markerFiles;return[r,{version:1,languages:[r],pnpmWorkspaces:r==="typescript"&&t.pnpmWorkspaces===!0,files:R(e,{language:r,markerFiles:a})}]}))}function pe(e,n){return g(d(e),"language-indexes",`${n}.scip`)}function An(e,n){try{let t=JSON.parse(se(e,"utf-8"));return(t.version===2||t.version===3)&&t.status==="complete"&&m(t.fingerprint)===m(n)&&m([...t.indexedLanguages??[]].sort())===m(n.languages)}catch{return!1}}function _n(e,n){oe(e,`${JSON.stringify(n,null,2)}
|
|
11
|
+
`)}function m(e){return JSON.stringify(e)}var de=process.env.SCIP_REINDEX_PROJECT_ROOT,me=process.env.SCIP_REINDEX_OUTPUT_SCIP,fe=process.env.SCIP_REINDEX_OUTPUT_DB,ce=process.env.SCIP_REINDEX_LANGUAGES,Tn=process.env.SCIP_REINDEX_PNPM_WORKSPACES==="1";(!de||!me||!fe)&&(console.error("reindex-worker: missing required env vars"),process.exit(1));var ge=ce?ce.split(",").filter(Boolean):void 0;ue({projectRoot:de,outputScip:me,outputDb:fe,languages:ge?.length?ge:void 0,pnpmWorkspaces:Tn,onStatus:e=>process.stderr.write(`[reindex] ${e}
|
|
12
12
|
`)}).then(()=>{process.exit(0)}).catch(e=>{console.error(`reindex-worker error: ${e}`),process.exit(1)});
|
|
13
13
|
//# sourceMappingURL=reindex-worker.js.map
|
package/dist/reindex.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as SupportedLanguage, I as IndexerConfig } from './config-types-Bj4sh28g.js';
|
|
2
2
|
import { Index } from '@c4312/scip';
|
|
3
|
-
export { t as tryInstallScipCli } from './scip-cli-
|
|
3
|
+
export { t as tryInstallScipCli } from './scip-cli-Bh1M_JPu.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Detect which languages are present in a project directory by checking for
|