@aiready/context-analyzer 0.22.9 → 0.22.11
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/.turbo/turbo-build.log +33 -32
- package/.turbo/turbo-format-check.log +1 -1
- package/.turbo/turbo-lint.log +8 -0
- package/dist/chunk-HD4Y3GYL.mjs +124 -0
- package/dist/{chunk-M2EGQ36M.mjs → chunk-ISWPFG2C.mjs} +43 -98
- package/dist/{chunk-BQCISA2F.mjs → chunk-QW6ULRML.mjs} +32 -6
- package/dist/{chunk-WHB7QI7N.mjs → chunk-T733LS62.mjs} +23 -4
- package/dist/{cli-action-CXIHOVAC.mjs → cli-action-FV4G4OB6.mjs} +3 -3
- package/dist/{cli-action-3CWN7PBE.mjs → cli-action-HYSWE7F4.mjs} +3 -3
- package/dist/{cli-action-MLFCIW2O.mjs → cli-action-VIQZSWSP.mjs} +3 -3
- package/dist/{cli-action-E7UGP4KE.mjs → cli-action-W7TESWAV.mjs} +6 -8
- package/dist/cli.js +236 -191
- package/dist/cli.mjs +1 -1
- package/dist/console-report-AP4JYNQY.mjs +74 -0
- package/dist/html-report-ULELSIYG.mjs +73 -0
- package/dist/index.d.mts +69 -337
- package/dist/index.d.ts +69 -337
- package/dist/index.js +90 -452
- package/dist/index.mjs +9 -157
- package/dist/interactive-setup-JGFBFI3M.mjs +75 -0
- package/dist/{orchestrator-3ERQS3NW.mjs → orchestrator-QNE2E4TE.mjs} +2 -2
- package/dist/summary-GQRWW3A2.mjs +7 -0
- package/dist/summary-JTBS7CPM.mjs +7 -0
- package/dist/summary-TZFB6ZFM.mjs +7 -0
- package/package.json +2 -2
- package/src/__tests__/file-classification.fixtures.ts +57 -0
- package/src/__tests__/file-classification.test.ts +24 -929
- package/src/__tests__/provider.test.ts +6 -72
- package/src/classifier.ts +42 -42
- package/src/cli-action.ts +11 -6
- package/src/index.ts +30 -27
- package/src/provider.ts +1 -1
- package/src/summary.ts +65 -10
- package/dist/__tests__/analyzer.test.d.ts +0 -2
- package/dist/__tests__/analyzer.test.d.ts.map +0 -1
- package/dist/__tests__/analyzer.test.js +0 -198
- package/dist/__tests__/analyzer.test.js.map +0 -1
- package/dist/__tests__/auto-detection.test.d.ts +0 -2
- package/dist/__tests__/auto-detection.test.d.ts.map +0 -1
- package/dist/__tests__/auto-detection.test.js +0 -132
- package/dist/__tests__/auto-detection.test.js.map +0 -1
- package/dist/__tests__/cluster-detector.test.d.ts +0 -2
- package/dist/__tests__/cluster-detector.test.d.ts.map +0 -1
- package/dist/__tests__/cluster-detector.test.js +0 -121
- package/dist/__tests__/cluster-detector.test.js.map +0 -1
- package/dist/__tests__/contract.test.d.ts +0 -2
- package/dist/__tests__/contract.test.d.ts.map +0 -1
- package/dist/__tests__/contract.test.js +0 -59
- package/dist/__tests__/contract.test.js.map +0 -1
- package/dist/__tests__/enhanced-cohesion.test.d.ts +0 -2
- package/dist/__tests__/enhanced-cohesion.test.d.ts.map +0 -1
- package/dist/__tests__/enhanced-cohesion.test.js +0 -119
- package/dist/__tests__/enhanced-cohesion.test.js.map +0 -1
- package/dist/__tests__/file-classification.test.d.ts +0 -2
- package/dist/__tests__/file-classification.test.d.ts.map +0 -1
- package/dist/__tests__/file-classification.test.js +0 -749
- package/dist/__tests__/file-classification.test.js.map +0 -1
- package/dist/__tests__/fragmentation-advanced.test.d.ts +0 -2
- package/dist/__tests__/fragmentation-advanced.test.d.ts.map +0 -1
- package/dist/__tests__/fragmentation-advanced.test.js +0 -44
- package/dist/__tests__/fragmentation-advanced.test.js.map +0 -1
- package/dist/__tests__/fragmentation-coupling.test.d.ts +0 -2
- package/dist/__tests__/fragmentation-coupling.test.d.ts.map +0 -1
- package/dist/__tests__/fragmentation-coupling.test.js +0 -52
- package/dist/__tests__/fragmentation-coupling.test.js.map +0 -1
- package/dist/__tests__/fragmentation-log.test.d.ts +0 -2
- package/dist/__tests__/fragmentation-log.test.d.ts.map +0 -1
- package/dist/__tests__/fragmentation-log.test.js +0 -29
- package/dist/__tests__/fragmentation-log.test.js.map +0 -1
- package/dist/__tests__/provider.test.d.ts +0 -2
- package/dist/__tests__/provider.test.d.ts.map +0 -1
- package/dist/__tests__/provider.test.js +0 -72
- package/dist/__tests__/provider.test.js.map +0 -1
- package/dist/__tests__/remediation.test.d.ts +0 -2
- package/dist/__tests__/remediation.test.d.ts.map +0 -1
- package/dist/__tests__/remediation.test.js +0 -61
- package/dist/__tests__/remediation.test.js.map +0 -1
- package/dist/__tests__/scoring.test.d.ts +0 -2
- package/dist/__tests__/scoring.test.d.ts.map +0 -1
- package/dist/__tests__/scoring.test.js +0 -298
- package/dist/__tests__/scoring.test.js.map +0 -1
- package/dist/__tests__/structural-cohesion.test.d.ts +0 -2
- package/dist/__tests__/structural-cohesion.test.d.ts.map +0 -1
- package/dist/__tests__/structural-cohesion.test.js +0 -35
- package/dist/__tests__/structural-cohesion.test.js.map +0 -1
- package/dist/analyzer.d.ts +0 -37
- package/dist/analyzer.d.ts.map +0 -1
- package/dist/analyzer.js +0 -283
- package/dist/analyzer.js.map +0 -1
- package/dist/analyzers/python-context.d.ts +0 -38
- package/dist/analyzers/python-context.d.ts.map +0 -1
- package/dist/analyzers/python-context.js +0 -234
- package/dist/analyzers/python-context.js.map +0 -1
- package/dist/ast-utils.d.ts +0 -16
- package/dist/ast-utils.d.ts.map +0 -1
- package/dist/ast-utils.js +0 -81
- package/dist/ast-utils.js.map +0 -1
- package/dist/chunk-22ZO4EKZ.mjs +0 -1297
- package/dist/chunk-2HE27YEV.mjs +0 -1739
- package/dist/chunk-45P4RDYP.mjs +0 -607
- package/dist/chunk-474DEGWW.mjs +0 -1792
- package/dist/chunk-4SYIJ7CU.mjs +0 -1538
- package/dist/chunk-4U4LDWGF.mjs +0 -360
- package/dist/chunk-4XQVYYPC.mjs +0 -1470
- package/dist/chunk-5CLU3HYU.mjs +0 -1475
- package/dist/chunk-5K73Q3OQ.mjs +0 -1520
- package/dist/chunk-5N5DCJOV.mjs +0 -583
- package/dist/chunk-6AVS4KTM.mjs +0 -1536
- package/dist/chunk-6FQYIG6I.mjs +0 -1298
- package/dist/chunk-6I4552YB.mjs +0 -1467
- package/dist/chunk-6LPITDKG.mjs +0 -1539
- package/dist/chunk-72QC5QUS.mjs +0 -549
- package/dist/chunk-736QSHJP.mjs +0 -1807
- package/dist/chunk-7LUSCLGR.mjs +0 -2058
- package/dist/chunk-7VK3XTSH.mjs +0 -1756
- package/dist/chunk-7ZEJGWLN.mjs +0 -1363
- package/dist/chunk-AECWO7NQ.mjs +0 -1539
- package/dist/chunk-AEK3MZC5.mjs +0 -709
- package/dist/chunk-AJC3FR6G.mjs +0 -1509
- package/dist/chunk-AMPK6SWS.mjs +0 -1754
- package/dist/chunk-BA7QGUHN.mjs +0 -1722
- package/dist/chunk-BCEZGRXI.mjs +0 -1297
- package/dist/chunk-BD4NWUVG.mjs +0 -1242
- package/dist/chunk-BEZPBI5C.mjs +0 -1829
- package/dist/chunk-BHCRDEE4.mjs +0 -1745
- package/dist/chunk-BW463GQB.mjs +0 -1767
- package/dist/chunk-CAX2MOUZ.mjs +0 -1801
- package/dist/chunk-CBWM3EK5.mjs +0 -1854
- package/dist/chunk-CCBNKQYB.mjs +0 -1812
- package/dist/chunk-CDIVYADN.mjs +0 -2110
- package/dist/chunk-CVGIDSMN.mjs +0 -1522
- package/dist/chunk-D25B5LZR.mjs +0 -1739
- package/dist/chunk-D3SIHB2V.mjs +0 -2118
- package/dist/chunk-DD7UVNE3.mjs +0 -678
- package/dist/chunk-DMRZMS2U.mjs +0 -964
- package/dist/chunk-DXG5NIYL.mjs +0 -1527
- package/dist/chunk-EBXG2Q5Y.mjs +0 -2059
- package/dist/chunk-EH3PMNZQ.mjs +0 -569
- package/dist/chunk-EMYD7NS6.mjs +0 -137
- package/dist/chunk-EVX2W2BK.mjs +0 -1896
- package/dist/chunk-EWFR366Y.mjs +0 -1740
- package/dist/chunk-EX7HCWAO.mjs +0 -625
- package/dist/chunk-FNPSK3CG.mjs +0 -1760
- package/dist/chunk-FO6YT6RG.mjs +0 -1751
- package/dist/chunk-FYI56A5M.mjs +0 -1892
- package/dist/chunk-G3CCJCBI.mjs +0 -1521
- package/dist/chunk-G7PO3DNK.mjs +0 -1072
- package/dist/chunk-GFADGYXZ.mjs +0 -1752
- package/dist/chunk-GTRIBVS6.mjs +0 -1467
- package/dist/chunk-GXTGOLZT.mjs +0 -92
- package/dist/chunk-H4HWBQU6.mjs +0 -1530
- package/dist/chunk-HDFXSEFW.mjs +0 -605
- package/dist/chunk-HOUDVRG2.mjs +0 -1422
- package/dist/chunk-HQNHM2X7.mjs +0 -997
- package/dist/chunk-I54HL4FZ.mjs +0 -781
- package/dist/chunk-I77HFFZU.mjs +0 -1876
- package/dist/chunk-IKRP7ECY.mjs +0 -1754
- package/dist/chunk-ILMLGJGI.mjs +0 -1295
- package/dist/chunk-IPIE5TXJ.mjs +0 -1741
- package/dist/chunk-IRWCPDWD.mjs +0 -779
- package/dist/chunk-J3MUOWHC.mjs +0 -1747
- package/dist/chunk-J5TA3AZU.mjs +0 -1795
- package/dist/chunk-JH535NPP.mjs +0 -1619
- package/dist/chunk-JUHHOSHG.mjs +0 -1808
- package/dist/chunk-JZ2SE4DB.mjs +0 -1116
- package/dist/chunk-K2WFOBAZ.mjs +0 -1821
- package/dist/chunk-K6U64EL3.mjs +0 -517
- package/dist/chunk-KDUUZQBK.mjs +0 -1692
- package/dist/chunk-KGFWKSGJ.mjs +0 -1442
- package/dist/chunk-KGVMS4R5.mjs +0 -1750
- package/dist/chunk-KWIS5FQP.mjs +0 -1739
- package/dist/chunk-KYSZF5N6.mjs +0 -1876
- package/dist/chunk-LERPI33Y.mjs +0 -2060
- package/dist/chunk-M64RHH4D.mjs +0 -1896
- package/dist/chunk-MBE4AQP5.mjs +0 -1362
- package/dist/chunk-MR7WXHIE.mjs +0 -1833
- package/dist/chunk-MZP3G7TF.mjs +0 -2118
- package/dist/chunk-N2GQWNFG.mjs +0 -1527
- package/dist/chunk-N6XBOOVA.mjs +0 -564
- package/dist/chunk-NJUW6VED.mjs +0 -610
- package/dist/chunk-NOHK5DLU.mjs +0 -2173
- package/dist/chunk-NQA3F2HJ.mjs +0 -1532
- package/dist/chunk-NXXQ2U73.mjs +0 -1467
- package/dist/chunk-OP4G6GLN.mjs +0 -1876
- package/dist/chunk-ORLC5Y4J.mjs +0 -1787
- package/dist/chunk-OTCQL7DY.mjs +0 -2045
- package/dist/chunk-OUYSZZ7X.mjs +0 -1846
- package/dist/chunk-OZE3FVZT.mjs +0 -1089
- package/dist/chunk-P3T3H27S.mjs +0 -1895
- package/dist/chunk-P5YV5WIX.mjs +0 -1803
- package/dist/chunk-P74BO725.mjs +0 -1296
- package/dist/chunk-PDN74MG3.mjs +0 -1834
- package/dist/chunk-PJD4VCIH.mjs +0 -1722
- package/dist/chunk-PVVCCE6W.mjs +0 -755
- package/dist/chunk-PVVMK56C.mjs +0 -1793
- package/dist/chunk-Q2GDZ2FZ.mjs +0 -1794
- package/dist/chunk-QDGPR3L6.mjs +0 -1518
- package/dist/chunk-RQCIJO5Z.mjs +0 -1116
- package/dist/chunk-RRB2C34Q.mjs +0 -1738
- package/dist/chunk-RYIB5CWD.mjs +0 -781
- package/dist/chunk-S6OPP4L5.mjs +0 -1791
- package/dist/chunk-SAVOSPM3.mjs +0 -1522
- package/dist/chunk-SFK6XTJE.mjs +0 -2110
- package/dist/chunk-SIX4KMF2.mjs +0 -1468
- package/dist/chunk-SPAM2YJE.mjs +0 -1537
- package/dist/chunk-T6ZCOPPI.mjs +0 -538
- package/dist/chunk-TPF75CNP.mjs +0 -581
- package/dist/chunk-TWWPY7FD.mjs +0 -1754
- package/dist/chunk-U5R2FTCR.mjs +0 -1803
- package/dist/chunk-UG7OPVHB.mjs +0 -1521
- package/dist/chunk-UMZTAWDA.mjs +0 -1812
- package/dist/chunk-UU4HZ7ZT.mjs +0 -1849
- package/dist/chunk-UXC6QUZ7.mjs +0 -1801
- package/dist/chunk-VBWXHKGD.mjs +0 -1895
- package/dist/chunk-VIJTZPBI.mjs +0 -1470
- package/dist/chunk-VLV6MXPL.mjs +0 -1750
- package/dist/chunk-VTALAPQZ.mjs +0 -1241
- package/dist/chunk-W2KNBN6W.mjs +0 -1849
- package/dist/chunk-W37E7MW5.mjs +0 -1403
- package/dist/chunk-W76FEISE.mjs +0 -1538
- package/dist/chunk-WCFQYXQA.mjs +0 -1532
- package/dist/chunk-WKOZOHOU.mjs +0 -2060
- package/dist/chunk-WTQJNY4U.mjs +0 -1785
- package/dist/chunk-XBFM2Z4O.mjs +0 -1792
- package/dist/chunk-XIXAWCMS.mjs +0 -1760
- package/dist/chunk-XTAXUNQN.mjs +0 -1742
- package/dist/chunk-XY77XABG.mjs +0 -1545
- package/dist/chunk-XZ645X5U.mjs +0 -1425
- package/dist/chunk-Y6FXYEAI.mjs +0 -10
- package/dist/chunk-YCGDIGOG.mjs +0 -1467
- package/dist/chunk-YYB6NZE3.mjs +0 -1869
- package/dist/chunk-Z5WY6A4P.mjs +0 -1754
- package/dist/chunk-ZAMFWKIB.mjs +0 -1842
- package/dist/classifier.d.ts +0 -114
- package/dist/classifier.d.ts.map +0 -1
- package/dist/classifier.js +0 -439
- package/dist/classifier.js.map +0 -1
- package/dist/cli-action-SA7SCYNV.mjs +0 -95
- package/dist/cli-action-VCXBZGZP.mjs +0 -95
- package/dist/cli-action-YAJOJCXJ.mjs +0 -95
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cluster-detector.d.ts +0 -8
- package/dist/cluster-detector.d.ts.map +0 -1
- package/dist/cluster-detector.js +0 -70
- package/dist/cluster-detector.js.map +0 -1
- package/dist/defaults.d.ts +0 -7
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js +0 -54
- package/dist/defaults.js.map +0 -1
- package/dist/graph-builder.d.ts +0 -33
- package/dist/graph-builder.d.ts.map +0 -1
- package/dist/graph-builder.js +0 -225
- package/dist/graph-builder.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/metrics.d.ts +0 -34
- package/dist/metrics.d.ts.map +0 -1
- package/dist/metrics.js +0 -170
- package/dist/metrics.js.map +0 -1
- package/dist/orchestrator-3L3NAZYP.mjs +0 -10
- package/dist/orchestrator-5AL3XBPZ.mjs +0 -10
- package/dist/orchestrator-KMAKMHTD.mjs +0 -10
- package/dist/orchestrator-MONOZHVW.mjs +0 -10
- package/dist/orchestrator-R6MZT4Z2.mjs +0 -10
- package/dist/orchestrator-ZR7JSKWI.mjs +0 -10
- package/dist/provider.d.ts +0 -6
- package/dist/provider.d.ts.map +0 -1
- package/dist/provider.js +0 -48
- package/dist/provider.js.map +0 -1
- package/dist/python-context-3GZKN3LR.mjs +0 -162
- package/dist/python-context-GOH747QU.mjs +0 -202
- package/dist/python-context-O2EN3M6Z.mjs +0 -162
- package/dist/python-context-PAETRLDY.mjs +0 -185
- package/dist/python-context-TBI5FVFY.mjs +0 -203
- package/dist/python-context-UOPTQH44.mjs +0 -192
- package/dist/remediation.d.ts +0 -25
- package/dist/remediation.d.ts.map +0 -1
- package/dist/remediation.js +0 -98
- package/dist/remediation.js.map +0 -1
- package/dist/scoring.d.ts +0 -9
- package/dist/scoring.d.ts.map +0 -1
- package/dist/scoring.js +0 -142
- package/dist/scoring.js.map +0 -1
- package/dist/semantic-analysis.d.ts +0 -33
- package/dist/semantic-analysis.d.ts.map +0 -1
- package/dist/semantic-analysis.js +0 -303
- package/dist/semantic-analysis.js.map +0 -1
- package/dist/summary-7PZVW72O.mjs +0 -7
- package/dist/summary-LKUCJAIS.mjs +0 -7
- package/dist/summary.d.ts +0 -6
- package/dist/summary.d.ts.map +0 -1
- package/dist/summary.js +0 -92
- package/dist/summary.js.map +0 -1
- package/dist/types.d.ts +0 -124
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/output-formatter.d.ts +0 -14
- package/dist/utils/output-formatter.d.ts.map +0 -1
- package/dist/utils/output-formatter.js +0 -338
- package/dist/utils/output-formatter.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-classification.test.js","sourceRoot":"","sources":["../../src/__tests__/file-classification.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragmentation-advanced.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fragmentation-advanced.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { calculatePathEntropy, calculateDirectoryDistance } from '../analyzer';
|
|
3
|
-
describe('advanced fragmentation heuristics', () => {
|
|
4
|
-
it('path entropy is low when most files are in one directory', () => {
|
|
5
|
-
const files = [
|
|
6
|
-
'src/billing/a.ts',
|
|
7
|
-
'src/billing/b.ts',
|
|
8
|
-
'src/billing/c.ts',
|
|
9
|
-
'src/billing/d.ts',
|
|
10
|
-
'src/billing/e.ts',
|
|
11
|
-
'src/billing/f.ts',
|
|
12
|
-
'src/billing/g.ts',
|
|
13
|
-
'src/billing/h.ts',
|
|
14
|
-
'src/billing/i.ts',
|
|
15
|
-
'src/other/x.ts',
|
|
16
|
-
];
|
|
17
|
-
const entropy = calculatePathEntropy(files);
|
|
18
|
-
// 9 in one folder and 1 in another should yield low entropy (< 0.5)
|
|
19
|
-
expect(entropy).toBeLessThan(0.5);
|
|
20
|
-
});
|
|
21
|
-
it('path entropy is high when files are evenly distributed', () => {
|
|
22
|
-
const files = ['a/f1.ts', 'b/f2.ts', 'c/f3.ts', 'd/f4.ts', 'e/f5.ts'];
|
|
23
|
-
const entropy = calculatePathEntropy(files);
|
|
24
|
-
expect(entropy).toBeGreaterThan(0.8);
|
|
25
|
-
});
|
|
26
|
-
it('directory distance is low for sibling files and high for scattered files', () => {
|
|
27
|
-
const siblings = [
|
|
28
|
-
'src/auth/ui/button.ts',
|
|
29
|
-
'src/auth/ui/input.ts',
|
|
30
|
-
'src/auth/ui/modal.ts',
|
|
31
|
-
];
|
|
32
|
-
const scattered = [
|
|
33
|
-
'src/auth/ui/button.ts',
|
|
34
|
-
'src/payments/api/charge.ts',
|
|
35
|
-
'lib/analytics/track.ts',
|
|
36
|
-
];
|
|
37
|
-
const distSiblings = calculateDirectoryDistance(siblings);
|
|
38
|
-
const distScattered = calculateDirectoryDistance(scattered);
|
|
39
|
-
expect(distSiblings).toBeLessThan(distScattered);
|
|
40
|
-
expect(distSiblings).toBeLessThan(0.5);
|
|
41
|
-
expect(distScattered).toBeGreaterThan(0.6);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
//# sourceMappingURL=fragmentation-advanced.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragmentation-advanced.test.js","sourceRoot":"","sources":["../../src/__tests__/fragmentation-advanced.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE/E,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG;YACZ,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,gBAAgB;SACjB,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5C,oEAAoE;QACpE,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,QAAQ,GAAG;YACf,uBAAuB;YACvB,sBAAsB;YACtB,sBAAsB;SACvB,CAAC;QAEF,MAAM,SAAS,GAAG;YAChB,uBAAuB;YACvB,4BAA4B;YAC5B,wBAAwB;SACzB,CAAC;QAEF,MAAM,YAAY,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAE5D,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragmentation-coupling.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fragmentation-coupling.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { buildDependencyGraph, detectModuleClusters, calculateFragmentation, } from '../analyzer';
|
|
3
|
-
describe('fragmentation coupling discount', () => {
|
|
4
|
-
it('does not apply discount when files have no shared imports', () => {
|
|
5
|
-
const files = [
|
|
6
|
-
{
|
|
7
|
-
file: 'src/billing/a.ts',
|
|
8
|
-
content: `export const getBillingA = 1;`,
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
file: 'src/api/billing/b.ts',
|
|
12
|
-
content: `export const getBillingB = 2;`,
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
file: 'lib/billing/c.ts',
|
|
16
|
-
content: `export const getBillingC = 3;`,
|
|
17
|
-
},
|
|
18
|
-
];
|
|
19
|
-
const graph = buildDependencyGraph(files);
|
|
20
|
-
const clusters = detectModuleClusters(graph);
|
|
21
|
-
const cluster = clusters.find((c) => c.domain === 'billing');
|
|
22
|
-
expect(cluster).toBeDefined();
|
|
23
|
-
const base = calculateFragmentation(files.map((f) => f.file), 'billing');
|
|
24
|
-
// With no import similarity the coupling discount should be 0 -> fragmentation unchanged
|
|
25
|
-
expect(cluster.fragmentationScore).toBeCloseTo(base, 6);
|
|
26
|
-
});
|
|
27
|
-
it('applies up-to-20% discount when files share identical imports', () => {
|
|
28
|
-
const files = [
|
|
29
|
-
{
|
|
30
|
-
file: 'src/billing/a.ts',
|
|
31
|
-
content: `import { shared } from 'shared/module';\nexport const getBillingA = 1;`,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
file: 'src/api/billing/b.ts',
|
|
35
|
-
content: `import { shared } from 'shared/module';\nexport const getBillingB = 2;`,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
file: 'lib/billing/c.ts',
|
|
39
|
-
content: `import { shared } from 'shared/module';\nexport const getBillingC = 3;`,
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
const graph = buildDependencyGraph(files);
|
|
43
|
-
const clusters = detectModuleClusters(graph);
|
|
44
|
-
const cluster = clusters.find((c) => c.domain === 'billing');
|
|
45
|
-
expect(cluster).toBeDefined();
|
|
46
|
-
const base = calculateFragmentation(files.map((f) => f.file), 'billing');
|
|
47
|
-
const expected = base * 0.8; // full cohesion => 20% discount
|
|
48
|
-
// Allow small FP tolerance
|
|
49
|
-
expect(cluster.fragmentationScore).toBeCloseTo(expected, 6);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=fragmentation-coupling.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragmentation-coupling.test.js","sourceRoot":"","sources":["../../src/__tests__/fragmentation-coupling.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG;YACZ;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,+BAA+B;aACzC;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,+BAA+B;aACzC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,+BAA+B;aACzC;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9B,MAAM,IAAI,GAAG,sBAAsB,CACjC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACxB,SAAS,CACV,CAAC;QACF,yFAAyF;QACzF,MAAM,CAAC,OAAQ,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,KAAK,GAAG;YACZ;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,wEAAwE;aAClF;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,wEAAwE;aAClF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,wEAAwE;aAClF;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9B,MAAM,IAAI,GAAG,sBAAsB,CACjC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACxB,SAAS,CACV,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,gCAAgC;QAE7D,2BAA2B;QAC3B,MAAM,CAAC,OAAQ,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragmentation-log.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fragmentation-log.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { calculateFragmentation } from '../analyzer';
|
|
3
|
-
describe('calculateFragmentation (log scale option)', () => {
|
|
4
|
-
it('returns 0 for single file regardless of option', () => {
|
|
5
|
-
const files = ['src/user/user.ts'];
|
|
6
|
-
expect(calculateFragmentation(files, 'user')).toBe(0);
|
|
7
|
-
expect(calculateFragmentation(files, 'user', { useLogScale: true })).toBe(0);
|
|
8
|
-
});
|
|
9
|
-
it('matches linear formula when not using log scale', () => {
|
|
10
|
-
const files = ['a/one.ts', 'b/two.ts', 'c/three.ts', 'd/four.ts'];
|
|
11
|
-
const uniqueDirs = 4;
|
|
12
|
-
const linear = (uniqueDirs - 1) / (files.length - 1);
|
|
13
|
-
expect(calculateFragmentation(files, 'domain')).toBeCloseTo(linear);
|
|
14
|
-
});
|
|
15
|
-
it('computes normalized log-based fragmentation when requested', () => {
|
|
16
|
-
const files = [
|
|
17
|
-
'src/group/a.ts',
|
|
18
|
-
'src/group/b.ts',
|
|
19
|
-
'src/group/c.ts',
|
|
20
|
-
'lib/other/d.ts',
|
|
21
|
-
'tools/x/e.ts',
|
|
22
|
-
];
|
|
23
|
-
const dirs = new Set(files.map((f) => f.split('/').slice(0, -1).join('/')))
|
|
24
|
-
.size;
|
|
25
|
-
const expected = Math.log(dirs) / Math.log(files.length);
|
|
26
|
-
expect(calculateFragmentation(files, 'domain', { useLogScale: true })).toBeCloseTo(expected, 6);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
//# sourceMappingURL=fragmentation-log.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragmentation-log.test.js","sourceRoot":"","sources":["../../src/__tests__/fragmentation-log.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CACvE,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG;YACZ,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;SACf,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACxE,IAAI,CAAC;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,CACJ,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/provider.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
-
import { ContextAnalyzerProvider } from '../provider';
|
|
3
|
-
import * as analyzer from '../analyzer';
|
|
4
|
-
import * as summary from '../summary';
|
|
5
|
-
vi.mock('../analyzer', async () => {
|
|
6
|
-
const actual = await vi.importActual('../analyzer');
|
|
7
|
-
return {
|
|
8
|
-
...actual,
|
|
9
|
-
analyzeContext: vi.fn(),
|
|
10
|
-
};
|
|
11
|
-
});
|
|
12
|
-
vi.mock('../summary', async () => {
|
|
13
|
-
const actual = await vi.importActual('../summary');
|
|
14
|
-
return {
|
|
15
|
-
...actual,
|
|
16
|
-
generateSummary: vi.fn(),
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
describe('Context Analyzer Provider', () => {
|
|
20
|
-
it('should analyze and return SpokeOutput', async () => {
|
|
21
|
-
vi.mocked(analyzer.analyzeContext).mockResolvedValue([
|
|
22
|
-
{
|
|
23
|
-
file: 'file1.ts',
|
|
24
|
-
issues: ['issue'],
|
|
25
|
-
severity: 'major',
|
|
26
|
-
recommendations: ['fix'],
|
|
27
|
-
tokenCost: 100,
|
|
28
|
-
importDepth: 2,
|
|
29
|
-
contextBudget: 500,
|
|
30
|
-
cohesionScore: 0.8,
|
|
31
|
-
fragmentationScore: 0.1,
|
|
32
|
-
dependencyCount: 5,
|
|
33
|
-
dependencyList: [],
|
|
34
|
-
circularDeps: [],
|
|
35
|
-
domains: [],
|
|
36
|
-
exportCount: 1,
|
|
37
|
-
relatedFiles: [],
|
|
38
|
-
fileClassification: 'unknown',
|
|
39
|
-
potentialSavings: 0,
|
|
40
|
-
linesOfCode: 50,
|
|
41
|
-
},
|
|
42
|
-
]);
|
|
43
|
-
vi.mocked(summary.generateSummary).mockReturnValue({
|
|
44
|
-
totalFiles: 1,
|
|
45
|
-
});
|
|
46
|
-
const output = await ContextAnalyzerProvider.analyze({ rootDir: '.' });
|
|
47
|
-
expect(output.summary.totalFiles).toBe(1);
|
|
48
|
-
expect(output.results[0].fileName).toBe('file1.ts');
|
|
49
|
-
});
|
|
50
|
-
it('should score an output', () => {
|
|
51
|
-
const mockOutput = {
|
|
52
|
-
summary: {
|
|
53
|
-
score: 80,
|
|
54
|
-
avgContextBudget: 1000,
|
|
55
|
-
maxContextBudget: 5000,
|
|
56
|
-
avgImportDepth: 3,
|
|
57
|
-
maxImportDepth: 5,
|
|
58
|
-
avgFragmentation: 0.2,
|
|
59
|
-
criticalIssues: 0,
|
|
60
|
-
majorIssues: 0,
|
|
61
|
-
totalFiles: 10,
|
|
62
|
-
},
|
|
63
|
-
results: [],
|
|
64
|
-
};
|
|
65
|
-
const scoring = ContextAnalyzerProvider.score(mockOutput, {
|
|
66
|
-
rootDir: '.',
|
|
67
|
-
});
|
|
68
|
-
expect(scoring.score).toBeDefined();
|
|
69
|
-
expect(scoring.toolName).toBe('context-analyzer');
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
//# sourceMappingURL=provider.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.test.js","sourceRoot":"","sources":["../../src/__tests__/provider.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remediation.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/remediation.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { getClassificationRecommendations, getGeneralRecommendations, } from '../remediation';
|
|
3
|
-
describe('Remediation Logic', () => {
|
|
4
|
-
describe('getClassificationRecommendations', () => {
|
|
5
|
-
it('should return specific recommendations for barrel exports', () => {
|
|
6
|
-
const recs = getClassificationRecommendations('barrel-export', 'index.ts', []);
|
|
7
|
-
expect(recs[0]).toContain('Barrel export file detected');
|
|
8
|
-
});
|
|
9
|
-
it('should return specific recommendations for type definitions', () => {
|
|
10
|
-
const recs = getClassificationRecommendations('type-definition', 'types.ts', []);
|
|
11
|
-
expect(recs[0]).toContain('Type definition file');
|
|
12
|
-
});
|
|
13
|
-
it('should return general issues if classification is unknown', () => {
|
|
14
|
-
const issues = ['High complexity'];
|
|
15
|
-
const recs = getClassificationRecommendations('unknown', 'file.ts', issues);
|
|
16
|
-
expect(recs).toEqual(issues);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
describe('getGeneralRecommendations', () => {
|
|
20
|
-
const thresholds = {
|
|
21
|
-
maxContextBudget: 10000,
|
|
22
|
-
maxDepth: 5,
|
|
23
|
-
minCohesion: 0.6,
|
|
24
|
-
maxFragmentation: 0.5,
|
|
25
|
-
};
|
|
26
|
-
it('should identify high context budget as major severity', () => {
|
|
27
|
-
const result = getGeneralRecommendations({
|
|
28
|
-
contextBudget: 15000,
|
|
29
|
-
importDepth: 3,
|
|
30
|
-
circularDeps: [],
|
|
31
|
-
cohesionScore: 0.8,
|
|
32
|
-
fragmentationScore: 0.2,
|
|
33
|
-
}, thresholds);
|
|
34
|
-
expect(result.severity).toBe('major');
|
|
35
|
-
expect(result.issues[0]).toContain('High context budget');
|
|
36
|
-
});
|
|
37
|
-
it('should identify circular dependencies as critical severity', () => {
|
|
38
|
-
const result = getGeneralRecommendations({
|
|
39
|
-
contextBudget: 5000,
|
|
40
|
-
importDepth: 3,
|
|
41
|
-
circularDeps: [['a.ts', 'b.ts', 'a.ts']],
|
|
42
|
-
cohesionScore: 0.8,
|
|
43
|
-
fragmentationScore: 0.2,
|
|
44
|
-
}, thresholds);
|
|
45
|
-
expect(result.severity).toBe('critical');
|
|
46
|
-
expect(result.recommendations[0]).toContain('circular imports');
|
|
47
|
-
});
|
|
48
|
-
it('should identify low cohesion as minor severity', () => {
|
|
49
|
-
const result = getGeneralRecommendations({
|
|
50
|
-
contextBudget: 5000,
|
|
51
|
-
importDepth: 3,
|
|
52
|
-
circularDeps: [],
|
|
53
|
-
cohesionScore: 0.4,
|
|
54
|
-
fragmentationScore: 0.2,
|
|
55
|
-
}, thresholds);
|
|
56
|
-
expect(result.severity).toBe('minor');
|
|
57
|
-
expect(result.issues[0]).toContain('Low cohesion score');
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
//# sourceMappingURL=remediation.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remediation.test.js","sourceRoot":"","sources":["../../src/__tests__/remediation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/scoring.test.ts"],"names":[],"mappings":""}
|