@aiready/context-analyzer 0.21.5 → 0.21.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/.aiready/aiready-report-20260314-222254.json +39216 -0
  2. package/.aiready/aiready-report-20260314-223947.json +3413 -0
  3. package/.aiready/aiready-report-20260314-224112.json +3413 -0
  4. package/.aiready/aiready-report-20260314-224302.json +2973 -0
  5. package/.aiready/aiready-report-20260314-224939.json +3092 -0
  6. package/.aiready/aiready-report-20260314-225154.json +3092 -0
  7. package/.turbo/turbo-build.log +26 -24
  8. package/.turbo/turbo-test.log +41 -119
  9. package/dist/__tests__/analyzer.test.js +55 -14
  10. package/dist/__tests__/analyzer.test.js.map +1 -1
  11. package/dist/__tests__/cluster-detector.test.d.ts +2 -0
  12. package/dist/__tests__/cluster-detector.test.d.ts.map +1 -0
  13. package/dist/__tests__/cluster-detector.test.js +121 -0
  14. package/dist/__tests__/cluster-detector.test.js.map +1 -0
  15. package/dist/__tests__/contract.test.d.ts +2 -0
  16. package/dist/__tests__/contract.test.d.ts.map +1 -0
  17. package/dist/__tests__/contract.test.js +59 -0
  18. package/dist/__tests__/contract.test.js.map +1 -0
  19. package/dist/__tests__/enhanced-cohesion.test.js +12 -2
  20. package/dist/__tests__/enhanced-cohesion.test.js.map +1 -1
  21. package/dist/__tests__/file-classification.test.d.ts +2 -0
  22. package/dist/__tests__/file-classification.test.d.ts.map +1 -0
  23. package/dist/__tests__/file-classification.test.js +749 -0
  24. package/dist/__tests__/file-classification.test.js.map +1 -0
  25. package/dist/__tests__/fragmentation-advanced.test.js +2 -8
  26. package/dist/__tests__/fragmentation-advanced.test.js.map +1 -1
  27. package/dist/__tests__/fragmentation-coupling.test.js +2 -2
  28. package/dist/__tests__/fragmentation-coupling.test.js.map +1 -1
  29. package/dist/__tests__/fragmentation-log.test.js +3 -7
  30. package/dist/__tests__/fragmentation-log.test.js.map +1 -1
  31. package/dist/__tests__/provider.test.d.ts +2 -0
  32. package/dist/__tests__/provider.test.d.ts.map +1 -0
  33. package/dist/__tests__/provider.test.js +72 -0
  34. package/dist/__tests__/provider.test.js.map +1 -0
  35. package/dist/__tests__/remediation.test.d.ts +2 -0
  36. package/dist/__tests__/remediation.test.d.ts.map +1 -0
  37. package/dist/__tests__/remediation.test.js +61 -0
  38. package/dist/__tests__/remediation.test.js.map +1 -0
  39. package/dist/__tests__/scoring.test.js +196 -16
  40. package/dist/__tests__/scoring.test.js.map +1 -1
  41. package/dist/__tests__/structural-cohesion.test.js +8 -2
  42. package/dist/__tests__/structural-cohesion.test.js.map +1 -1
  43. package/dist/analyzer.d.ts +31 -94
  44. package/dist/analyzer.d.ts.map +1 -1
  45. package/dist/analyzer.js +260 -678
  46. package/dist/analyzer.js.map +1 -1
  47. package/dist/analyzers/python-context.d.ts.map +1 -1
  48. package/dist/analyzers/python-context.js +10 -8
  49. package/dist/analyzers/python-context.js.map +1 -1
  50. package/dist/ast-utils.d.ts +16 -0
  51. package/dist/ast-utils.d.ts.map +1 -0
  52. package/dist/ast-utils.js +81 -0
  53. package/dist/ast-utils.js.map +1 -0
  54. package/dist/chunk-64U3PNO3.mjs +94 -0
  55. package/dist/chunk-CDIVYADN.mjs +2110 -0
  56. package/dist/chunk-D3SIHB2V.mjs +2118 -0
  57. package/dist/chunk-FNPSK3CG.mjs +1760 -0
  58. package/dist/chunk-GXTGOLZT.mjs +92 -0
  59. package/dist/chunk-LERPI33Y.mjs +2060 -0
  60. package/dist/chunk-MZP3G7TF.mjs +2118 -0
  61. package/dist/chunk-NOHK5DLU.mjs +2173 -0
  62. package/dist/chunk-ORLC5Y4J.mjs +1787 -0
  63. package/dist/chunk-OTCQL7DY.mjs +2045 -0
  64. package/dist/chunk-SFK6XTJE.mjs +2110 -0
  65. package/dist/chunk-U5R2FTCR.mjs +1803 -0
  66. package/dist/chunk-UU4HZ7ZT.mjs +1849 -0
  67. package/dist/chunk-WKOZOHOU.mjs +2060 -0
  68. package/dist/chunk-XIXAWCMS.mjs +1760 -0
  69. package/dist/classifier.d.ts +114 -0
  70. package/dist/classifier.d.ts.map +1 -0
  71. package/dist/classifier.js +439 -0
  72. package/dist/classifier.js.map +1 -0
  73. package/dist/cli.js +590 -1071
  74. package/dist/cli.js.map +1 -1
  75. package/dist/cli.mjs +63 -533
  76. package/dist/cluster-detector.d.ts +8 -0
  77. package/dist/cluster-detector.d.ts.map +1 -0
  78. package/dist/cluster-detector.js +70 -0
  79. package/dist/cluster-detector.js.map +1 -0
  80. package/dist/defaults.d.ts +7 -0
  81. package/dist/defaults.d.ts.map +1 -0
  82. package/dist/defaults.js +54 -0
  83. package/dist/defaults.js.map +1 -0
  84. package/dist/graph-builder.d.ts +33 -0
  85. package/dist/graph-builder.d.ts.map +1 -0
  86. package/dist/graph-builder.js +225 -0
  87. package/dist/graph-builder.js.map +1 -0
  88. package/dist/index.d.mts +24 -31
  89. package/dist/index.d.ts +24 -31
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +788 -569
  92. package/dist/index.js.map +1 -1
  93. package/dist/index.mjs +265 -8
  94. package/dist/metrics.d.ts +34 -0
  95. package/dist/metrics.d.ts.map +1 -0
  96. package/dist/metrics.js +170 -0
  97. package/dist/metrics.js.map +1 -0
  98. package/dist/provider.d.ts +6 -0
  99. package/dist/provider.d.ts.map +1 -0
  100. package/dist/provider.js +48 -0
  101. package/dist/provider.js.map +1 -0
  102. package/dist/python-context-3GZKN3LR.mjs +162 -0
  103. package/dist/python-context-O2EN3M6Z.mjs +162 -0
  104. package/dist/remediation.d.ts +25 -0
  105. package/dist/remediation.d.ts.map +1 -0
  106. package/dist/remediation.js +98 -0
  107. package/dist/remediation.js.map +1 -0
  108. package/dist/scoring.d.ts +3 -7
  109. package/dist/scoring.d.ts.map +1 -1
  110. package/dist/scoring.js +57 -48
  111. package/dist/scoring.js.map +1 -1
  112. package/dist/semantic-analysis.d.ts +12 -23
  113. package/dist/semantic-analysis.d.ts.map +1 -1
  114. package/dist/semantic-analysis.js +172 -110
  115. package/dist/semantic-analysis.js.map +1 -1
  116. package/dist/summary.d.ts +6 -0
  117. package/dist/summary.d.ts.map +1 -0
  118. package/dist/summary.js +92 -0
  119. package/dist/summary.js.map +1 -0
  120. package/dist/types.d.ts +9 -2
  121. package/dist/types.d.ts.map +1 -1
  122. package/dist/utils/output-formatter.d.ts +14 -0
  123. package/dist/utils/output-formatter.d.ts.map +1 -0
  124. package/dist/utils/output-formatter.js +338 -0
  125. package/dist/utils/output-formatter.js.map +1 -0
  126. package/package.json +2 -2
  127. package/src/__tests__/analyzer.test.ts +1 -1
  128. package/src/__tests__/auto-detection.test.ts +1 -1
  129. package/src/__tests__/contract.test.ts +1 -1
  130. package/src/__tests__/enhanced-cohesion.test.ts +1 -1
  131. package/src/__tests__/file-classification.test.ts +1 -1
  132. package/src/__tests__/fragmentation-advanced.test.ts +1 -1
  133. package/src/__tests__/fragmentation-coupling.test.ts +1 -1
  134. package/src/__tests__/fragmentation-log.test.ts +1 -1
  135. package/src/__tests__/provider.test.ts +1 -1
  136. package/src/__tests__/structural-cohesion.test.ts +1 -1
  137. package/src/analyzer.ts +96 -309
  138. package/src/analyzers/python-context.ts +7 -76
  139. package/src/cli-action.ts +103 -0
  140. package/src/cli.ts +12 -693
  141. package/src/cluster-detector.ts +1 -1
  142. package/src/graph-builder.ts +9 -85
  143. package/src/index.ts +6 -0
  144. package/src/issue-analyzer.ts +143 -0
  145. package/src/semantic-analysis.ts +1 -14
  146. package/src/summary.ts +62 -106
  147. package/src/utils/dependency-graph-utils.ts +126 -0
  148. package/src/utils/output-formatter.ts +411 -0
  149. package/src/utils/string-utils.ts +17 -0
@@ -0,0 +1,92 @@
1
+ // src/utils/dependency-graph-utils.ts
2
+ function calculateImportDepthFromEdges(file, edges, visited = /* @__PURE__ */ new Set(), depth = 0) {
3
+ if (visited.has(file)) return depth;
4
+ const dependencies = edges.get(file);
5
+ if (!dependencies || dependencies.size === 0) return depth;
6
+ const nextVisited = new Set(visited);
7
+ nextVisited.add(file);
8
+ let maxDepth = depth;
9
+ for (const dep of dependencies) {
10
+ maxDepth = Math.max(
11
+ maxDepth,
12
+ calculateImportDepthFromEdges(dep, edges, nextVisited, depth + 1)
13
+ );
14
+ }
15
+ return maxDepth;
16
+ }
17
+ function getTransitiveDependenciesFromEdges(file, edges, visited = /* @__PURE__ */ new Set()) {
18
+ if (visited.has(file)) return [];
19
+ const nextVisited = new Set(visited);
20
+ nextVisited.add(file);
21
+ const dependencies = edges.get(file);
22
+ if (!dependencies || dependencies.size === 0) return [];
23
+ const allDeps = [];
24
+ for (const dep of dependencies) {
25
+ allDeps.push(dep);
26
+ allDeps.push(...getTransitiveDependenciesFromEdges(dep, edges, nextVisited));
27
+ }
28
+ return [...new Set(allDeps)];
29
+ }
30
+ function detectGraphCycles(edges) {
31
+ const cycles = [];
32
+ const visited = /* @__PURE__ */ new Set();
33
+ const recursionStack = /* @__PURE__ */ new Set();
34
+ function dfs(file, path) {
35
+ if (recursionStack.has(file)) {
36
+ const cycleStart = path.indexOf(file);
37
+ if (cycleStart !== -1) {
38
+ cycles.push([...path.slice(cycleStart), file]);
39
+ }
40
+ return;
41
+ }
42
+ if (visited.has(file)) return;
43
+ visited.add(file);
44
+ recursionStack.add(file);
45
+ const dependencies = edges.get(file);
46
+ if (dependencies) {
47
+ for (const dep of dependencies) {
48
+ dfs(dep, [...path, file]);
49
+ }
50
+ }
51
+ recursionStack.delete(file);
52
+ }
53
+ for (const file of edges.keys()) {
54
+ if (!visited.has(file)) {
55
+ dfs(file, []);
56
+ }
57
+ }
58
+ return cycles;
59
+ }
60
+ function detectGraphCyclesFromFile(file, edges) {
61
+ const cycles = [];
62
+ const visited = /* @__PURE__ */ new Set();
63
+ const recursionStack = /* @__PURE__ */ new Set();
64
+ function dfs(current, path) {
65
+ if (recursionStack.has(current)) {
66
+ const cycleStart = path.indexOf(current);
67
+ if (cycleStart !== -1) {
68
+ cycles.push([...path.slice(cycleStart), current]);
69
+ }
70
+ return;
71
+ }
72
+ if (visited.has(current)) return;
73
+ visited.add(current);
74
+ recursionStack.add(current);
75
+ const dependencies = edges.get(current);
76
+ if (dependencies) {
77
+ for (const dep of dependencies) {
78
+ dfs(dep, [...path, current]);
79
+ }
80
+ }
81
+ recursionStack.delete(current);
82
+ }
83
+ dfs(file, []);
84
+ return cycles;
85
+ }
86
+
87
+ export {
88
+ calculateImportDepthFromEdges,
89
+ getTransitiveDependenciesFromEdges,
90
+ detectGraphCycles,
91
+ detectGraphCyclesFromFile
92
+ };