scip-query 0.10.12 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
- package/README.md +164 -49
- package/dist/augment-vue-worker.js +1 -1
- package/dist/{chunk-RUV5IY25.js → chunk-2LQWMYG4.js} +2 -2
- package/dist/{chunk-KZ4MG5NY.js → chunk-2QGE5AEP.js} +2 -2
- package/dist/chunk-4D54JIU3.js +2 -0
- package/dist/{chunk-2GLNBCHB.js → chunk-52Q4JFDW.js} +2 -2
- package/dist/chunk-5AAAEZ2Z.js +2 -0
- package/dist/chunk-64PRNLKP.js +2 -0
- package/dist/chunk-6XA4LDHY.js +2 -0
- package/dist/chunk-72MFTCU5.js +38 -0
- package/dist/chunk-75X52JTA.js +2 -0
- package/dist/{chunk-LEHVP4DY.js → chunk-7ITCOJGD.js} +2 -2
- package/dist/chunk-7JZRFDCU.js +2 -0
- package/dist/{chunk-XRUGSM76.js → chunk-AZLKLZ5S.js} +2 -2
- package/dist/chunk-B4VYXRCQ.js +26 -0
- package/dist/chunk-BCNT6ODA.js +5 -0
- package/dist/chunk-BP2NAIAZ.js +2 -0
- package/dist/chunk-BVNO67DB.js +2 -0
- package/dist/{chunk-XHMVZFA6.js → chunk-CW3KZ7UF.js} +2 -2
- package/dist/{chunk-6BN3EHQE.js → chunk-D64L53WX.js} +2 -2
- package/dist/{chunk-T3AEVJBG.js → chunk-D7J6GZAG.js} +2 -2
- package/dist/chunk-ECVXWZ4Q.js +3 -0
- package/dist/chunk-EDB7Y442.js +2 -0
- package/dist/{chunk-4ISHQ7UW.js → chunk-ETU2I5JM.js} +4 -4
- package/dist/chunk-EXKLAEB4.js +18 -0
- package/dist/chunk-EZ5WDZ2Q.js +3 -0
- package/dist/{chunk-S2MRVIJ5.js → chunk-F5BJSNU5.js} +6 -6
- package/dist/chunk-FBCOFKEC.js +2 -0
- package/dist/chunk-FERAXG6Y.js +72 -0
- package/dist/chunk-FXG3PHVW.js +9 -0
- package/dist/{chunk-XUCZ3RQ5.js → chunk-G2UBOONK.js} +4 -4
- package/dist/chunk-GNG622H3.js +3 -0
- package/dist/{chunk-JS6B76AQ.js → chunk-H2NMIZFD.js} +2 -2
- package/dist/chunk-H7NSJ7L2.js +5 -0
- package/dist/chunk-HSU3M25J.js +21 -0
- package/dist/chunk-HXXMPYEF.js +2 -0
- package/dist/chunk-IRJDYTNZ.js +3 -0
- package/dist/chunk-ISLWJ4PY.js +10 -0
- package/dist/chunk-J5WVNZ6O.js +2 -0
- package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
- package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
- package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
- package/dist/chunk-KSUZS77X.js +16 -0
- package/dist/{chunk-A4UTLKHU.js → chunk-L2CX5GHZ.js} +2 -2
- package/dist/chunk-LFM3O5KX.js +2 -0
- package/dist/{chunk-ZUUNREKS.js → chunk-M72ZFN6E.js} +5 -5
- package/dist/chunk-MBKJ7GHT.js +102 -0
- package/dist/chunk-MJKJMWIM.js +2 -0
- package/dist/chunk-MKM7NBZK.js +43 -0
- package/dist/chunk-MTDBHTSF.js +2 -0
- package/dist/chunk-NAH5EAZS.js +6 -0
- package/dist/chunk-NJJ7AS4F.js +2 -0
- package/dist/{chunk-EOLGSSDR.js → chunk-NKT5EMEX.js} +2 -2
- package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
- package/dist/chunk-NQ75OVUU.js +40 -0
- package/dist/{chunk-TBCHRDAC.js → chunk-O3WDE26W.js} +2 -2
- package/dist/{chunk-VB2EZZPA.js → chunk-OPE5YXFE.js} +2 -2
- package/dist/chunk-ORBRX2QJ.js +2 -0
- package/dist/{chunk-OFXN2BCT.js → chunk-OSWF3HSF.js} +2 -2
- package/dist/{chunk-JJ5SAWBT.js → chunk-OVMUVXKQ.js} +2 -2
- package/dist/{chunk-NTSR6SRP.js → chunk-PH7ZFK6L.js} +2 -2
- package/dist/chunk-PXHPCWX5.js +2 -0
- package/dist/chunk-Q3B3FNCU.js +3 -0
- package/dist/{chunk-SQNHOOJ5.js → chunk-Q7S2DADC.js} +2 -2
- package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
- package/dist/chunk-QZ4JVECJ.js +2 -0
- package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
- package/dist/chunk-RA5MTIOO.js +2 -0
- package/dist/{chunk-RXINFVBN.js → chunk-RIQED5OU.js} +2 -2
- package/dist/chunk-T2FQ4GHD.js +9 -0
- package/dist/chunk-T6NGEV5I.js +2 -0
- package/dist/chunk-T7VQG55Q.js +2 -0
- package/dist/chunk-TFWDJDGO.js +2 -0
- package/dist/chunk-TG7QSYCJ.js +2 -0
- package/dist/{chunk-DQ6433ZG.js → chunk-TTMKELT7.js} +17 -8
- package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
- package/dist/chunk-UAHZ57BR.js +2 -0
- package/dist/chunk-URSSPS5H.js +2 -0
- package/dist/chunk-V3Z3IOWO.js +2 -0
- package/dist/{chunk-7C6JBBE4.js → chunk-V7CVBPWX.js} +2 -2
- package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
- package/dist/chunk-WIBFXSYB.js +6 -0
- package/dist/chunk-WS3Z6W3M.js +65 -0
- package/dist/chunk-WXVGNFAO.js +2 -0
- package/dist/chunk-XEMQUN3Z.js +20 -0
- package/dist/chunk-YCPASUCX.js +2 -0
- package/dist/chunk-YDDGCJJG.js +3 -0
- package/dist/{chunk-2UVCH7CQ.js → chunk-YPKBZ77R.js} +2 -2
- package/dist/chunk-YZXV3CU3.js +60 -0
- package/dist/chunk-Z3IPJKJP.js +4 -0
- package/dist/chunk-ZMGBWSFZ.js +2 -0
- package/dist/{chunk-GKB4JJDU.js → chunk-ZOIPAYRP.js} +2 -2
- package/dist/chunk-ZRIOGL7F.js +8 -0
- package/dist/cli.js +446 -280
- package/dist/{config-types-dvHOz0zU.d.ts → config-types-BrHl3Bge.d.ts} +57 -0
- package/dist/{db-rMZO5JFK.d.ts → db-_Bdx0E1W.d.ts} +1 -1
- package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
- package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
- package/dist/{health-CtTIGh6H.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
- package/dist/index.d.ts +4 -68
- package/dist/index.js +1 -1
- package/dist/postinstall.js +1 -4
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/bottlenecks.d.ts +2 -2
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +2 -2
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +12 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +2 -2
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +7 -3
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +42 -4
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +2 -2
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +12 -3
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +2 -2
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +3 -3
- package/dist/queries/dead.js +1 -1
- package/dist/queries/deep-chains.d.ts +2 -2
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/deps.d.ts +2 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-gate.d.ts +65 -8
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +21 -3
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +29 -2
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +15 -3
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +55 -0
- package/dist/queries/duplicate-bodies.js +2 -0
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +2 -2
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +4 -3
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +3 -3
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +2 -2
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -2
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +12 -7
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +11 -3
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +3 -2
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +7 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +3 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +4 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +17 -10
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +42 -3
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +1 -1
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +2 -2
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +2 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/trace.d.ts +2 -2
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +55 -0
- package/dist/queries/twin-ab.js +2 -0
- package/dist/queries/twin-drift.d.ts +97 -0
- package/dist/queries/twin-drift.js +2 -0
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.d.ts +7 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +3 -3
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +6 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +9 -9
- package/dist/reindex.d.ts +23 -4
- package/dist/reindex.js +19 -19
- package/dist/runtime.d.ts +11 -6
- package/dist/runtime.js +2 -2
- package/dist/{scip-cli-trnNvymv.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
- package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
- package/docs/AGENT_GUIDE.md +20 -18
- package/docs/AI_FAILURE_MODES.md +36 -13
- package/docs/API.md +1 -1
- package/docs/COMMAND_REFERENCE.md +57 -14
- package/docs/DETECTOR_GUIDE.md +20 -3
- package/docs/REGEX_POLICY.md +34 -0
- package/docs/analyzer-inventory.md +40 -3
- package/docs/analyzer-validation-ledger.md +34 -6
- package/package.json +39 -7
- package/scripts/build-scip-windows.mjs +10 -7
- package/skills/_shared/SKILL.md +243 -0
- package/skills/_shared/agents/openai.yaml +4 -0
- package/skills/scip-api-impact/SKILL.md +55 -71
- package/skills/scip-claim-audit/SKILL.md +105 -0
- package/skills/scip-claim-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-audit/SKILL.md +122 -0
- package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
- package/skills/scip-cleanup-improve/SKILL.md +84 -0
- package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
- package/skills/scip-concrete-plan/SKILL.md +181 -0
- package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-conductor/SKILL.md +133 -0
- package/skills/scip-conductor/agents/openai.yaml +4 -0
- package/skills/scip-debug/SKILL.md +60 -58
- package/skills/scip-diagram/SKILL.md +64 -94
- package/skills/scip-directory-architecture/SKILL.md +65 -107
- package/skills/scip-doc-reconcile/SKILL.md +56 -67
- package/skills/scip-explore/SKILL.md +78 -210
- package/skills/scip-hyper-optimization/SKILL.md +124 -198
- package/skills/scip-integrity-audit/SKILL.md +103 -0
- package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
- package/skills/scip-language-playbook/SKILL.md +56 -326
- package/skills/scip-maintainability/SKILL.md +80 -219
- package/skills/scip-probe-reachability/SKILL.md +92 -0
- package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
- package/skills/scip-query/SKILL.md +108 -124
- package/skills/scip-react-maintainability/SKILL.md +64 -82
- package/skills/scip-setup/SKILL.md +121 -0
- package/skills/scip-setup/agents/openai.yaml +4 -0
- package/skills/scip-tla-model-system/SKILL.md +150 -0
- package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
- package/skills/scip-triage-issue/SKILL.md +53 -41
- package/skills/scip-twin-drift/SKILL.md +107 -0
- package/skills/scip-twin-drift/agents/openai.yaml +4 -0
- package/skills/scip-verify/SKILL.md +70 -88
- package/skills/scip-vue-maintainability/SKILL.md +67 -94
- package/dist/chunk-2DOW7QCA.js +0 -71
- package/dist/chunk-2FMFF4RI.js +0 -2
- package/dist/chunk-5GXTUANY.js +0 -2
- package/dist/chunk-5JHEN5VN.js +0 -25
- package/dist/chunk-62ULXMQ7.js +0 -18
- package/dist/chunk-63CI3IXR.js +0 -102
- package/dist/chunk-7EK7OSWS.js +0 -2
- package/dist/chunk-7IWIMNHI.js +0 -2
- package/dist/chunk-7XTO4YXB.js +0 -8
- package/dist/chunk-AOWFUGDL.js +0 -2
- package/dist/chunk-AREANYIA.js +0 -3
- package/dist/chunk-AZBELWZQ.js +0 -7
- package/dist/chunk-B32FX5KB.js +0 -2
- package/dist/chunk-B6MJ5VQV.js +0 -2
- package/dist/chunk-CXWCLVYL.js +0 -2
- package/dist/chunk-CYHIKTJN.js +0 -3
- package/dist/chunk-DFSEARAU.js +0 -2
- package/dist/chunk-DVFP6PZI.js +0 -2
- package/dist/chunk-E3ADDB43.js +0 -2
- package/dist/chunk-F6IXELII.js +0 -20
- package/dist/chunk-FMGVZBS2.js +0 -2
- package/dist/chunk-GG5LHT27.js +0 -2
- package/dist/chunk-H7JF2CKK.js +0 -2
- package/dist/chunk-HHOMJCP5.js +0 -4
- package/dist/chunk-HRDSU5FN.js +0 -9
- package/dist/chunk-HWVYTJOV.js +0 -2
- package/dist/chunk-JNMLBL36.js +0 -2
- package/dist/chunk-L446VQYQ.js +0 -2
- package/dist/chunk-LDJUB7XW.js +0 -2
- package/dist/chunk-MYTUWXHK.js +0 -4
- package/dist/chunk-N25HPUOK.js +0 -2
- package/dist/chunk-NABVR6B7.js +0 -2
- package/dist/chunk-NBNEVLRC.js +0 -3
- package/dist/chunk-ONPCQ2PM.js +0 -6
- package/dist/chunk-Q5P7NOVM.js +0 -2
- package/dist/chunk-RGKRYO22.js +0 -4
- package/dist/chunk-RM2WQ75T.js +0 -2
- package/dist/chunk-ROGZXWN2.js +0 -2
- package/dist/chunk-RSSXKJ6J.js +0 -38
- package/dist/chunk-RVGEZYMQ.js +0 -2
- package/dist/chunk-SA3DPTHT.js +0 -7
- package/dist/chunk-SGTKURU6.js +0 -52
- package/dist/chunk-T4N2ZRVY.js +0 -21
- package/dist/chunk-THB6AM3V.js +0 -11
- package/dist/chunk-ULHLDOD6.js +0 -4
- package/dist/chunk-UQ73QF5D.js +0 -43
- package/dist/chunk-UUBMFL3F.js +0 -59
- package/dist/chunk-V5FGK3DZ.js +0 -2
- package/dist/chunk-WTY5FERW.js +0 -2
- package/dist/chunk-WUOB4DHH.js +0 -6
- package/dist/chunk-YFQIKYOP.js +0 -2
- package/dist/chunk-Z2LDWIJV.js +0 -5
- package/dist/chunk-ZNWWVYQL.js +0 -3
- package/skills/concrete-plan/SKILL.md +0 -372
- package/skills/concrete-plan/agents/openai.yaml +0 -4
- package/skills/scip-adoption/SKILL.md +0 -122
- package/skills/scip-adoption/agents/openai.yaml +0 -4
- package/skills/scip-ai-cleanup/SKILL.md +0 -153
- package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
- package/skills/scip-debloat/SKILL.md +0 -439
- package/skills/scip-debloat/agents/openai.yaml +0 -4
- package/skills/scip-health-audit/SKILL.md +0 -162
- package/skills/scip-health-audit/agents/openai.yaml +0 -4
- package/skills/scip-health-improve/SKILL.md +0 -155
- package/skills/scip-health-improve/agents/openai.yaml +0 -4
- package/skills/scip-query-setup/SKILL.md +0 -170
- package/skills/scip-query-setup/agents/openai.yaml +0 -3
- package/vendor/scip/README.md +0 -6
- package/vendor/scip/win32-arm64/scip.exe +0 -0
- package/vendor/scip/win32-x64/scip.exe +0 -0
|
@@ -67,6 +67,10 @@ interface ScipQueryConfig {
|
|
|
67
67
|
declaredCouplings?: DeclaredCouplingConfig[];
|
|
68
68
|
/** Optional analyzer configuration. */
|
|
69
69
|
locality?: LocalityConfig;
|
|
70
|
+
/** Enumeration-rot contracts: a declared key set that must track a ground-truth source. */
|
|
71
|
+
coverageContracts?: CoverageContractConfig[];
|
|
72
|
+
/** Documentation policy (snapshot-doc exemptions, ...). */
|
|
73
|
+
docs?: DocsConfig;
|
|
70
74
|
}
|
|
71
75
|
interface ProjectConfig {
|
|
72
76
|
/** Override which languages to index (default: auto-detect) */
|
|
@@ -75,6 +79,8 @@ interface ProjectConfig {
|
|
|
75
79
|
indexerConcurrency?: number;
|
|
76
80
|
/** Watch mode settings */
|
|
77
81
|
watch?: WatchConfig;
|
|
82
|
+
/** Agent hook behavior. */
|
|
83
|
+
hooks?: HookRuntimeConfig;
|
|
78
84
|
/** Per-language indexer overrides */
|
|
79
85
|
indexer?: Partial<Record<SupportedLanguage, IndexerOverrides>>;
|
|
80
86
|
/** Override the database storage path (default: ~/.cache/scip-query/<hash>/) */
|
|
@@ -89,11 +95,58 @@ interface ProjectConfig {
|
|
|
89
95
|
declaredCouplings?: DeclaredCouplingConfig[];
|
|
90
96
|
/** Optional locality analyzer configuration. */
|
|
91
97
|
locality?: LocalityConfig;
|
|
98
|
+
/** Enumeration-rot contracts: a declared key set that must track a ground-truth source. */
|
|
99
|
+
coverageContracts?: CoverageContractConfig[];
|
|
100
|
+
/** Documentation policy (snapshot-doc exemptions, ...). */
|
|
101
|
+
docs?: DocsConfig;
|
|
102
|
+
}
|
|
103
|
+
type CoverageContractKeySpec = {
|
|
104
|
+
type: 'object-literal-keys';
|
|
105
|
+
identifier: string;
|
|
106
|
+
} | {
|
|
107
|
+
type: 'string-array';
|
|
108
|
+
identifier: string;
|
|
109
|
+
} | {
|
|
110
|
+
type: 'markdown-list';
|
|
111
|
+
marker: string;
|
|
112
|
+
};
|
|
113
|
+
type CoverageContractSourceSpec = {
|
|
114
|
+
type: 'top-level-dirs';
|
|
115
|
+
path: string;
|
|
116
|
+
} | {
|
|
117
|
+
type: 'file-glob';
|
|
118
|
+
pattern: string;
|
|
119
|
+
} | {
|
|
120
|
+
type: 'registered-commands';
|
|
121
|
+
} | {
|
|
122
|
+
type: 'builtin-skills';
|
|
123
|
+
};
|
|
124
|
+
interface CoverageContractConfig {
|
|
125
|
+
/** Human-readable name for the contract, used in finding messages. */
|
|
126
|
+
name: string;
|
|
127
|
+
/** File the declared key set is extracted from. */
|
|
128
|
+
file: string;
|
|
129
|
+
/** How to extract the declared key set from `file`. */
|
|
130
|
+
keys: CoverageContractKeySpec;
|
|
131
|
+
/** The ground-truth source the declared key set must track. */
|
|
132
|
+
mustEqual: CoverageContractSourceSpec;
|
|
133
|
+
/** When false (the default), declared keys with no ground-truth match are also flagged. */
|
|
134
|
+
allowExtra?: boolean;
|
|
92
135
|
}
|
|
93
136
|
interface LocalityConfig {
|
|
94
137
|
/** Folder names that should be treated as architectural ownership boundaries. */
|
|
95
138
|
architecturalBoundarySegments?: string[];
|
|
96
139
|
}
|
|
140
|
+
interface DocsConfig {
|
|
141
|
+
/**
|
|
142
|
+
* Glob patterns (see src/analysis/glob-match.ts for supported syntax) for
|
|
143
|
+
* dated snapshot docs that intentionally cite code "as of" a moment in
|
|
144
|
+
* time — excluded from diff-gate's doc-reference check and doc-drift's
|
|
145
|
+
* default findings. A `<!-- scip-query: snapshot -->` marker inside a doc
|
|
146
|
+
* has the same effect regardless of its path.
|
|
147
|
+
*/
|
|
148
|
+
snapshotPaths?: string[];
|
|
149
|
+
}
|
|
97
150
|
interface DeclaredCouplingConfig {
|
|
98
151
|
/** Human-readable name for the maintenance unit. */
|
|
99
152
|
name: string;
|
|
@@ -145,6 +198,10 @@ interface WatchConfig {
|
|
|
145
198
|
/** Extra glob patterns to ignore beyond .gitignore */
|
|
146
199
|
ignore?: string[];
|
|
147
200
|
}
|
|
201
|
+
interface HookRuntimeConfig {
|
|
202
|
+
/** Prompt router mode for project-local hooks (default: single). */
|
|
203
|
+
router?: 'off' | 'single';
|
|
204
|
+
}
|
|
148
205
|
interface IndexerOverrides {
|
|
149
206
|
/** Enable pnpm workspace support (TypeScript) */
|
|
150
207
|
pnpmWorkspaces?: boolean;
|
package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
type FrontendBehaviorEvidenceClass = 'domain-behavior' | 'generic-workflow-scaffolding' | 'mixed' | 'shared-abstraction';
|
|
2
2
|
type FrontendBehaviorActionTier = 'signal' | 'support';
|
|
3
3
|
|
|
4
|
-
export type {
|
|
4
|
+
export type { FrontendBehaviorEvidenceClass as F, FrontendBehaviorActionTier as a };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as ScipDatabase } from './db-
|
|
1
|
+
import { S as ScipDatabase } from './db-_Bdx0E1W.js';
|
|
2
2
|
import { stats } from './queries/stats.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -70,12 +70,39 @@ interface GitEvidenceSummary {
|
|
|
70
70
|
changes: number;
|
|
71
71
|
fixChanges: number;
|
|
72
72
|
}>;
|
|
73
|
+
commitsScanned: number;
|
|
73
74
|
}
|
|
74
75
|
interface SuppressionSummary {
|
|
75
76
|
total: number;
|
|
76
77
|
byCategory: Record<string, number>;
|
|
77
78
|
}
|
|
78
79
|
|
|
80
|
+
/**
|
|
81
|
+
* Pure finding-outcome ledger math. Closes the round-1 finding "the
|
|
82
|
+
* validation axis computes per-detector lift and feeds nothing": this
|
|
83
|
+
* module tracks, per finding identity, whether a detector's output is
|
|
84
|
+
* actually being acted on — and reports that, without changing which
|
|
85
|
+
* findings get emitted (downranking stays a human/config decision).
|
|
86
|
+
*
|
|
87
|
+
* Storage lives in src/storage/evidence-cache.ts (finding_outcome_ledger
|
|
88
|
+
* table); this module is the pure transition + stats core the storage
|
|
89
|
+
* layer's rows flow through. Clock is injected everywhere so tests never
|
|
90
|
+
* depend on wall time.
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
interface DetectorPrecisionStats {
|
|
94
|
+
check: string;
|
|
95
|
+
/** Distinct finding identities ever recorded for this check. */
|
|
96
|
+
seen: number;
|
|
97
|
+
resolved: number;
|
|
98
|
+
suppressed: number;
|
|
99
|
+
stillOpen: number;
|
|
100
|
+
resolutionRate: number;
|
|
101
|
+
suppressionRate: number;
|
|
102
|
+
/** Age (days) of the oldest still-open finding; null when none are open. */
|
|
103
|
+
oldestOpenAgeDays: number | null;
|
|
104
|
+
}
|
|
105
|
+
|
|
79
106
|
type FindingEvidence = 'graph-fact' | 'heuristic' | 'change-graph';
|
|
80
107
|
interface HealthAction {
|
|
81
108
|
category: string;
|
|
@@ -155,6 +182,10 @@ interface HealthValidation {
|
|
|
155
182
|
fixDensity: number;
|
|
156
183
|
lift: number | null;
|
|
157
184
|
}>;
|
|
185
|
+
validationBasis: {
|
|
186
|
+
method: 'subject-regex';
|
|
187
|
+
commitsScanned: number;
|
|
188
|
+
};
|
|
158
189
|
}
|
|
159
190
|
interface HealthReport {
|
|
160
191
|
/** Headline = min(riskScore, hygieneScore); kept for compatibility. */
|
|
@@ -176,6 +207,10 @@ interface HealthReport {
|
|
|
176
207
|
isolatedLoc: number;
|
|
177
208
|
cycles: number;
|
|
178
209
|
similarPairs: number;
|
|
210
|
+
duplicateBodyGroups: number;
|
|
211
|
+
duplicateBodyLoc: number;
|
|
212
|
+
twinDriftGroups: number;
|
|
213
|
+
twinDriftLoc: number;
|
|
179
214
|
reactComponentDuplicatePairs: number;
|
|
180
215
|
reactHookCandidatePairs: number;
|
|
181
216
|
reactHookCandidateScoreCount: number;
|
|
@@ -193,6 +228,7 @@ interface HealthReport {
|
|
|
193
228
|
complexityHotspotCount: number;
|
|
194
229
|
hiddenCouplingPairs: number | null;
|
|
195
230
|
hiddenCouplingScoreCount: number | null;
|
|
231
|
+
coverageContractViolations: number;
|
|
196
232
|
};
|
|
197
233
|
axes: HealthAxes;
|
|
198
234
|
validation: HealthValidation | null;
|
|
@@ -208,9 +244,16 @@ interface HealthReport {
|
|
|
208
244
|
file?: string;
|
|
209
245
|
}>;
|
|
210
246
|
warnings?: string[];
|
|
247
|
+
/**
|
|
248
|
+
* Per-check finding-outcome stats from the finding_outcome_ledger
|
|
249
|
+
* (populated by `diff-gate --hook` runs) — resolution/suppression rate
|
|
250
|
+
* and open-finding age. Reports, never affects the score above. Empty
|
|
251
|
+
* until the ledger has data.
|
|
252
|
+
*/
|
|
253
|
+
detectorPrecision: DetectorPrecisionStats[];
|
|
211
254
|
}
|
|
212
255
|
|
|
213
|
-
declare const HEALTH_PHASES: readonly ["overview", "dead", "isolated", "cycles", "similar", "react-component-duplicates", "react-hook-candidates", "react-large-component-pressure", "vue-component-duplicates", "vue-composable-candidates", "vue-large-view-pressure", "extract-candidates", "wrapper-candidates", "passthrough-candidates", "stale-abstractions", "drift", "complexity-hotspots", "git-evidence", "suppressions"];
|
|
256
|
+
declare const HEALTH_PHASES: readonly ["overview", "dead", "isolated", "cycles", "similar", "duplicate-bodies", "twin-drift", "react-component-duplicates", "react-hook-candidates", "react-large-component-pressure", "vue-component-duplicates", "vue-composable-candidates", "vue-large-view-pressure", "extract-candidates", "wrapper-candidates", "passthrough-candidates", "stale-abstractions", "drift", "complexity-hotspots", "git-evidence", "suppressions", "coverage-contracts"];
|
|
214
257
|
type HealthPhaseName = (typeof HEALTH_PHASES)[number];
|
|
215
258
|
type HealthPhaseResult = {
|
|
216
259
|
phase: 'overview';
|
|
@@ -228,6 +271,12 @@ type HealthPhaseResult = {
|
|
|
228
271
|
} | {
|
|
229
272
|
phase: 'similar';
|
|
230
273
|
similarCount: number;
|
|
274
|
+
} | {
|
|
275
|
+
phase: 'duplicate-bodies';
|
|
276
|
+
duplicateBodies: CountLocSummary;
|
|
277
|
+
} | {
|
|
278
|
+
phase: 'twin-drift';
|
|
279
|
+
twinDrift: CountLocSummary;
|
|
231
280
|
} | {
|
|
232
281
|
phase: 'react-component-duplicates';
|
|
233
282
|
reactComponentDuplicates: CountLocSummary;
|
|
@@ -270,6 +319,9 @@ type HealthPhaseResult = {
|
|
|
270
319
|
} | {
|
|
271
320
|
phase: 'suppressions';
|
|
272
321
|
suppressions: SuppressionSummary;
|
|
322
|
+
} | {
|
|
323
|
+
phase: 'coverage-contracts';
|
|
324
|
+
coverageContracts: CountLocSummary;
|
|
273
325
|
};
|
|
274
326
|
/**
|
|
275
327
|
* Single composite health report that runs all de-bloat analyses
|
package/dist/index.d.ts
CHANGED
|
@@ -1,73 +1,9 @@
|
|
|
1
|
-
import { S as ScipDatabase } from './db-
|
|
2
|
-
export { c as createGitignoreFilter } from './db-
|
|
3
|
-
|
|
1
|
+
import { S as ScipDatabase } from './db-_Bdx0E1W.js';
|
|
2
|
+
export { c as createGitignoreFilter } from './db-_Bdx0E1W.js';
|
|
3
|
+
import { S as SymbolMatch, I as IndexedDefinition, a as ScipSymbol, b as ScipLocalSymbol } from './symbol-types-DaoeXKUt.js';
|
|
4
|
+
export { S as ScipQueryConfig } from './config-types-BrHl3Bge.js';
|
|
4
5
|
import 'better-sqlite3';
|
|
5
6
|
|
|
6
|
-
/**
|
|
7
|
-
* A symbol's location in the SCIP index. The minimum data needed to
|
|
8
|
-
* identify a definition: which document it lives in, which lines it
|
|
9
|
-
* spans, and the global symbol id. Used as a lightweight handle when
|
|
10
|
-
* the caller doesn't need the symbol's textual name or path.
|
|
11
|
-
*/
|
|
12
|
-
interface SymbolLocation {
|
|
13
|
-
documentId: number;
|
|
14
|
-
startLine: number;
|
|
15
|
-
endLine: number;
|
|
16
|
-
symbolId: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* A SymbolLocation plus the human-readable bits: the SCIP symbol string
|
|
20
|
-
* and the document's relative path. Returned by lookup helpers like
|
|
21
|
-
* `findFirstSymbolMatch` so callers don't have to round-trip through the
|
|
22
|
-
* documents table to get a path or symbol name.
|
|
23
|
-
*/
|
|
24
|
-
interface SymbolMatch extends SymbolLocation {
|
|
25
|
-
symbol: string;
|
|
26
|
-
relativePath: string;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* A full definition record: SymbolMatch plus per-symbol metadata
|
|
30
|
-
* (leaf name, parent type, kind, documentation, enclosing symbol).
|
|
31
|
-
* Used by the catalog APIs (`getDefinitionsForFile`, `getAllDefinitions`,
|
|
32
|
-
* `getScopedDefinitions`) so consumers don't have to re-derive any of
|
|
33
|
-
* these per-record.
|
|
34
|
-
*/
|
|
35
|
-
interface IndexedDefinition extends SymbolMatch {
|
|
36
|
-
leaf: string;
|
|
37
|
-
parentTypeName: string | null;
|
|
38
|
-
isFunctionLike: boolean;
|
|
39
|
-
isTypeLike: boolean;
|
|
40
|
-
kind: number | null;
|
|
41
|
-
documentation: string | null;
|
|
42
|
-
enclosingSymbol: string | null;
|
|
43
|
-
}
|
|
44
|
-
/** Parsed components of a SCIP symbol string */
|
|
45
|
-
interface ScipSymbol {
|
|
46
|
-
/** The indexer scheme (e.g. "scip-typescript", "scip-java", "rust-analyzer") */
|
|
47
|
-
scheme: string;
|
|
48
|
-
/** Package manager (e.g. "npm", "maven", "cargo") */
|
|
49
|
-
manager: string;
|
|
50
|
-
/** Package name (e.g. "@vega/api", "com.example/mylib") */
|
|
51
|
-
packageName: string;
|
|
52
|
-
/** Package version */
|
|
53
|
-
version: string;
|
|
54
|
-
/** Descriptor chain — the path to the symbol within the file */
|
|
55
|
-
descriptors: ScipDescriptor[];
|
|
56
|
-
/** The raw, unparsed symbol string */
|
|
57
|
-
raw: string;
|
|
58
|
-
}
|
|
59
|
-
interface ScipDescriptor {
|
|
60
|
-
name: string;
|
|
61
|
-
suffix: DescriptorSuffix;
|
|
62
|
-
}
|
|
63
|
-
type DescriptorSuffix = 'namespace' | 'type' | 'term' | 'method' | 'type-param' | 'parameter' | 'meta' | 'macro';
|
|
64
|
-
/** A local symbol (file-scoped, no cross-file identity) */
|
|
65
|
-
interface ScipLocalSymbol {
|
|
66
|
-
kind: 'local';
|
|
67
|
-
id: string;
|
|
68
|
-
raw: string;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
7
|
/**
|
|
72
8
|
* File classifier — one place to decide what role a source file plays.
|
|
73
9
|
*
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as l}from"./chunk-
|
|
1
|
+
import{a as l}from"./chunk-YZXV3CU3.js";import{a as n}from"./chunk-UAHZ57BR.js";import"./chunk-NAH5EAZS.js";import"./chunk-BGBBVSH4.js";import"./chunk-72MFTCU5.js";import"./chunk-MKM7NBZK.js";import"./chunk-YDDGCJJG.js";import"./chunk-ECVXWZ4Q.js";import"./chunk-XEMQUN3Z.js";import"./chunk-MTDBHTSF.js";import"./chunk-MBKJ7GHT.js";import{b as o,d as s,e as i}from"./chunk-HXXMPYEF.js";import"./chunk-T2FQ4GHD.js";import"./chunk-ISLWJ4PY.js";import"./chunk-WS3Z6W3M.js";import"./chunk-GNG622H3.js";import"./chunk-64MNV6AB.js";import"./chunk-7S5E7KWT.js";import c from"better-sqlite3";var d=["node_modules",".git","dist","build","out","coverage","target",".next",".nuxt",".cache",".turbo",".nbb",".cpcache",".shadow-cljs",".scipquery-cache","__pycache__",".venv","venv"],r=class{db;config;pathFilter;statementCache=new Map;constructor(t,e){this.config=t,this.pathFilter=e??null,this.db=new c(t.dbPath,{readonly:!0}),this.db.pragma("busy_timeout = 5000"),this.db.pragma("query_only = ON"),this.db.pragma("temp_store = MEMORY"),this.db.pragma("cache_size = -64000"),this.db.pragma("mmap_size = 268435456")}isIgnored(t){return this.pathFilter?.isIgnored(t)??!1}get localSymbolPredicate(){return`(
|
|
2
2
|
EXISTS (
|
|
3
3
|
SELECT 1
|
|
4
4
|
FROM defn_enclosing_ranges local_der
|
package/dist/postinstall.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
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
|
-
scip CLI: ${o??"installed"}`)}console.log("")}S();
|
|
2
|
+
import"./chunk-TFWDJDGO.js";import{existsSync as e,mkdirSync as n,symlinkSync as o,readlinkSync as r,unlinkSync as l,readdirSync as c}from"fs";import{join as p,dirname as u,resolve as d,relative as k,isAbsolute as g}from"path";import{homedir as f,platform as s}from"os";import{fileURLToPath as h}from"url";var S=s()==="win32";function i(){console.log("scip-query installed -- run 'scip-query setup' in a repo to enable skills, hooks, and the index.")}i();
|
|
6
3
|
//# sourceMappingURL=postinstall.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
2
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
3
|
+
import '../config-types-BrHl3Bge.js';
|
|
4
4
|
|
|
5
5
|
interface AffectedResult {
|
|
6
6
|
symbol: string;
|
package/dist/queries/affected.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-AZLKLZ5S.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as affected};
|
|
2
2
|
//# sourceMappingURL=affected.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
2
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
3
|
+
import '../config-types-BrHl3Bge.js';
|
|
4
4
|
|
|
5
5
|
interface BottleneckResult {
|
|
6
6
|
symbol: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-LFM3O5KX.js";import"../chunk-B75HZHUP.js";import"../chunk-UAHZ57BR.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as bottlenecks};
|
|
2
2
|
//# sourceMappingURL=bottlenecks.js.map
|
package/dist/queries/by-kind.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b}from"../chunk-
|
|
1
|
+
import{a,b}from"../chunk-V7CVBPWX.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as byKind,b as kindCounts};
|
|
2
2
|
//# sourceMappingURL=by-kind.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
2
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
3
|
+
import '../config-types-BrHl3Bge.js';
|
|
4
4
|
|
|
5
5
|
interface CallGraphResult {
|
|
6
6
|
symbol: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-MJKJMWIM.js";import"../chunk-B75HZHUP.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as callGraph};
|
|
2
2
|
//# sourceMappingURL=call-graph.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
2
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
3
|
+
import '../config-types-BrHl3Bge.js';
|
|
4
4
|
|
|
5
5
|
interface ChangeSurfaceEntry {
|
|
6
6
|
symbol: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-2QGE5AEP.js";import"../chunk-OSWF3HSF.js";import"../chunk-UAHZ57BR.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as changeSurface};
|
|
2
2
|
//# sourceMappingURL=change-surface.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
2
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
3
|
+
import '../config-types-BrHl3Bge.js';
|
|
4
4
|
|
|
5
5
|
interface CleanupPlanEntry {
|
|
6
6
|
symbol: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b}from"../chunk-
|
|
1
|
+
import{a,b}from"../chunk-O3WDE26W.js";import"../chunk-FBCOFKEC.js";import"../chunk-B75HZHUP.js";import"../chunk-UAHZ57BR.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{b as RemovedRangeIndex,a as cleanupPlan};
|
|
2
2
|
//# sourceMappingURL=cleanup-plan.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
2
|
import { C as CoChangeCommitScope, a as CoChangeRecency, b as CoChangeSubjectContext } from '../git-history-Dao3_Pu9.js';
|
|
3
3
|
import 'better-sqlite3';
|
|
4
|
-
import '../config-types-
|
|
4
|
+
import '../config-types-BrHl3Bge.js';
|
|
5
5
|
|
|
6
6
|
type CoChangePartnerClass = 'doc-code' | 'config-code' | 'schema-script' | 'model-view' | 'test-code' | 'same-feature' | 'unknown';
|
|
7
7
|
interface CoChangePartnerClassification {
|
|
@@ -69,6 +69,16 @@ declare function coChange(db: ScipDatabase, file?: string, opts?: {
|
|
|
69
69
|
limit?: number;
|
|
70
70
|
includeLinked?: boolean;
|
|
71
71
|
maxFilesPerCommit?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Caps how many of the (already together-count-sorted) candidate pairs
|
|
74
|
+
* get classified — the per-pair loop below does filesystem/graph lookups
|
|
75
|
+
* so its cost scales with candidate count on a large repo history. Set
|
|
76
|
+
* by the CLI's analysis-budget disclosure on large indexes; honoring it
|
|
77
|
+
* for real (rather than only disclosing it) keeps the disclosed budget
|
|
78
|
+
* truthful. Highest-`together` pairs are kept first since `coChangePairs`
|
|
79
|
+
* returns them pre-sorted by priority.
|
|
80
|
+
*/
|
|
81
|
+
scanLimit?: number;
|
|
72
82
|
}): CoChangeResult;
|
|
73
83
|
declare function classifyCoChangePartner(fileA: string, fileB: string): CoChangePartnerClassification;
|
|
74
84
|
declare function declaredCouplingSuggestionForPair(pair: CoChangePairEvidence, classification: CoChangePartnerClassification, structurallyLinked: boolean): DeclaredCouplingSuggestion | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e}from"../chunk-NJJ7AS4F.js";import"../chunk-FXG3PHVW.js";import"../chunk-NAH5EAZS.js";import"../chunk-XEMQUN3Z.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.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
|
package/dist/queries/code.d.ts
CHANGED
package/dist/queries/code.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-F5BJSNU5.js";import"../chunk-OSWF3HSF.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as code};
|
|
2
2
|
//# sourceMappingURL=code.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
|
+
import { BranchEstimateBasis } from './complexity.js';
|
|
2
3
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
4
|
+
import '../config-types-BrHl3Bge.js';
|
|
5
|
+
import '../symbol-types-DaoeXKUt.js';
|
|
4
6
|
|
|
5
7
|
interface ComplexityHotspot {
|
|
6
8
|
symbol: string;
|
|
@@ -12,13 +14,15 @@ interface ComplexityHotspot {
|
|
|
12
14
|
fanIn: number;
|
|
13
15
|
fanOut: number;
|
|
14
16
|
calleeCount: number;
|
|
17
|
+
branches: number;
|
|
18
|
+
estimateBasis: BranchEstimateBasis;
|
|
15
19
|
score: number;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
22
|
* Find complexity hotspots: symbols with a composite score based on
|
|
19
23
|
* LOC, fan-in, fan-out, and callee count.
|
|
20
24
|
*
|
|
21
|
-
* Score = (loc / 50) * (fanIn / 5) * max(fanOut / 5, 1)
|
|
25
|
+
* Score = (loc / 50) * (fanIn / 5) * max(fanOut / 5, 1) * max(cyclomatic / 5, 1)
|
|
22
26
|
*
|
|
23
27
|
* Bulk fan-in/out via caller evidence + buildCalleeMap so we pay
|
|
24
28
|
* one SQL pass per kind regardless of how many definitions we score —
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-Z3IPJKJP.js";import"../chunk-K6UI6EBZ.js";import"../chunk-KSUZS77X.js";import"../chunk-B75HZHUP.js";import"../chunk-UAHZ57BR.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as complexityHotspots};
|
|
2
2
|
//# sourceMappingURL=complexity-hotspots.js.map
|
|
@@ -1,6 +1,31 @@
|
|
|
1
|
-
import { S as ScipDatabase } from '../db-
|
|
1
|
+
import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
|
|
2
|
+
import { S as SymbolMatch } from '../symbol-types-DaoeXKUt.js';
|
|
2
3
|
import 'better-sqlite3';
|
|
3
|
-
import '../config-types-
|
|
4
|
+
import '../config-types-BrHl3Bge.js';
|
|
5
|
+
|
|
6
|
+
interface SyntaxNode {
|
|
7
|
+
type: string;
|
|
8
|
+
text: string;
|
|
9
|
+
startPosition: {
|
|
10
|
+
row: number;
|
|
11
|
+
column: number;
|
|
12
|
+
};
|
|
13
|
+
endPosition: {
|
|
14
|
+
row: number;
|
|
15
|
+
column: number;
|
|
16
|
+
};
|
|
17
|
+
startIndex: number;
|
|
18
|
+
endIndex: number;
|
|
19
|
+
childCount: number;
|
|
20
|
+
namedChildCount: number;
|
|
21
|
+
children: SyntaxNode[];
|
|
22
|
+
namedChildren: SyntaxNode[];
|
|
23
|
+
parent: SyntaxNode | null;
|
|
24
|
+
child(index: number): SyntaxNode | null;
|
|
25
|
+
namedChild(index: number): SyntaxNode | null;
|
|
26
|
+
childForFieldName(name: string): SyntaxNode | null;
|
|
27
|
+
descendantsOfType(type: string | string[]): SyntaxNode[];
|
|
28
|
+
}
|
|
4
29
|
|
|
5
30
|
interface ComplexityResult {
|
|
6
31
|
symbol: string;
|
|
@@ -9,8 +34,9 @@ interface ComplexityResult {
|
|
|
9
34
|
startLine: number;
|
|
10
35
|
endLine: number;
|
|
11
36
|
loc: number;
|
|
12
|
-
/** Branch count from
|
|
37
|
+
/** Branch count from AST when available, otherwise source-level regex fallback. */
|
|
13
38
|
branches: number;
|
|
39
|
+
estimateBasis: BranchEstimateBasis;
|
|
14
40
|
/** Cyclomatic complexity estimate: branches + 1 */
|
|
15
41
|
cyclomaticEstimate: number;
|
|
16
42
|
/** Number of distinct callees within the definition */
|
|
@@ -18,6 +44,11 @@ interface ComplexityResult {
|
|
|
18
44
|
fanIn: number;
|
|
19
45
|
fanOut: number;
|
|
20
46
|
}
|
|
47
|
+
type BranchEstimateBasis = 'ast' | 'regex-fallback';
|
|
48
|
+
interface BranchEstimate {
|
|
49
|
+
branches: number;
|
|
50
|
+
estimateBasis: BranchEstimateBasis;
|
|
51
|
+
}
|
|
21
52
|
/**
|
|
22
53
|
* Per-symbol complexity analysis combining source-level branch counting
|
|
23
54
|
* with index-level metrics (fan-in, fan-out, callee count).
|
|
@@ -28,5 +59,12 @@ interface ComplexityResult {
|
|
|
28
59
|
declare function complexity(db: ScipDatabase, symbolPattern: string, opts?: {
|
|
29
60
|
semantic?: boolean;
|
|
30
61
|
}): ComplexityResult | null;
|
|
62
|
+
declare function branchEstimateForDefinition(db: ScipDatabase, definition: SymbolMatch): BranchEstimate;
|
|
63
|
+
/**
|
|
64
|
+
* Count branch points in a parsed AST. The count follows the same practical
|
|
65
|
+
* McCabe approximation as the command output: decision nodes plus boolean
|
|
66
|
+
* decision operators.
|
|
67
|
+
*/
|
|
68
|
+
declare function countBranchesFromAst(node: SyntaxNode): number;
|
|
31
69
|
|
|
32
|
-
export { type ComplexityResult, complexity };
|
|
70
|
+
export { type BranchEstimateBasis, type ComplexityResult, branchEstimateForDefinition, complexity, countBranchesFromAst };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-KSUZS77X.js";import"../chunk-UAHZ57BR.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{b as branchEstimateForDefinition,a as complexity,c as countBranchesFromAst};
|
|
2
2
|
//# sourceMappingURL=complexity.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-RA5MTIOO.js";import"../chunk-BCNT6ODA.js";import"../chunk-KMVGRIO2.js";import"../chunk-B75HZHUP.js";import"../chunk-UAHZ57BR.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-72MFTCU5.js";import"../chunk-MKM7NBZK.js";import"../chunk-YDDGCJJG.js";import"../chunk-ECVXWZ4Q.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-MBKJ7GHT.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as convergence};
|
|
2
2
|
//# sourceMappingURL=convergence.js.map
|