semantic-complexity 0.0.1-cedf2072 → 0.0.3-38ef2e6f

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 (57) hide show
  1. package/dist/canonical/convergence.d.ts +56 -0
  2. package/dist/canonical/convergence.d.ts.map +1 -0
  3. package/dist/canonical/convergence.js +149 -0
  4. package/dist/canonical/convergence.js.map +1 -0
  5. package/dist/canonical/index.d.ts +11 -0
  6. package/dist/canonical/index.d.ts.map +1 -0
  7. package/dist/canonical/index.js +11 -0
  8. package/dist/canonical/index.js.map +1 -0
  9. package/dist/canonical/profiles.d.ts +40 -0
  10. package/dist/canonical/profiles.d.ts.map +1 -0
  11. package/dist/canonical/profiles.js +182 -0
  12. package/dist/canonical/profiles.js.map +1 -0
  13. package/dist/canonical/types.d.ts +124 -0
  14. package/dist/canonical/types.d.ts.map +1 -0
  15. package/dist/canonical/types.js +46 -0
  16. package/dist/canonical/types.js.map +1 -0
  17. package/dist/gates/delta.d.ts +45 -0
  18. package/dist/gates/delta.d.ts.map +1 -0
  19. package/dist/gates/delta.js +260 -0
  20. package/dist/gates/delta.js.map +1 -0
  21. package/dist/gates/index.d.ts +9 -0
  22. package/dist/gates/index.d.ts.map +1 -0
  23. package/dist/gates/index.js +9 -0
  24. package/dist/gates/index.js.map +1 -0
  25. package/dist/gates/types.d.ts +96 -0
  26. package/dist/gates/types.d.ts.map +1 -0
  27. package/dist/gates/types.js +59 -0
  28. package/dist/gates/types.js.map +1 -0
  29. package/dist/index.d.ts +17 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +19 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/metrics/meta.d.ts +90 -0
  34. package/dist/metrics/meta.d.ts.map +1 -0
  35. package/dist/metrics/meta.js +144 -0
  36. package/dist/metrics/meta.js.map +1 -0
  37. package/dist/tensor/canonical.d.ts +53 -0
  38. package/dist/tensor/canonical.d.ts.map +1 -0
  39. package/dist/tensor/canonical.js +178 -0
  40. package/dist/tensor/canonical.js.map +1 -0
  41. package/dist/tensor/index.d.ts +22 -0
  42. package/dist/tensor/index.d.ts.map +1 -0
  43. package/dist/tensor/index.js +22 -0
  44. package/dist/tensor/index.js.map +1 -0
  45. package/dist/tensor/matrix.d.ts +62 -0
  46. package/dist/tensor/matrix.d.ts.map +1 -0
  47. package/dist/tensor/matrix.js +171 -0
  48. package/dist/tensor/matrix.js.map +1 -0
  49. package/dist/tensor/scoring.d.ts +73 -0
  50. package/dist/tensor/scoring.d.ts.map +1 -0
  51. package/dist/tensor/scoring.js +206 -0
  52. package/dist/tensor/scoring.js.map +1 -0
  53. package/dist/tensor/types.d.ts +176 -0
  54. package/dist/tensor/types.d.ts.map +1 -0
  55. package/dist/tensor/types.js +15 -0
  56. package/dist/tensor/types.js.map +1 -0
  57. package/package.json +13 -1
@@ -0,0 +1,171 @@
1
+ /**
2
+ * v0.0.3: Interaction Matrix for Second-Order Tensor Analysis
3
+ *
4
+ * M[i,j] represents the interaction strength between dimensions i and j.
5
+ * - Diagonal: self-interaction (typically 1.0)
6
+ * - Off-diagonal: cross-dimension interaction
7
+ */
8
+ /**
9
+ * Default interaction matrix (symmetric, positive semi-definite)
10
+ */
11
+ export const DEFAULT_MATRIX = [
12
+ // C N S A Λ
13
+ [1.0, 0.3, 0.2, 0.2, 0.3], // Control
14
+ [0.3, 1.0, 0.4, 0.8, 0.2], // Nesting × Async ↑
15
+ [0.2, 0.4, 1.0, 0.5, 0.9], // State × Coupling ↑↑
16
+ [0.2, 0.8, 0.5, 1.0, 0.4], // Async × Nesting ↑
17
+ [0.3, 0.2, 0.9, 0.4, 1.0], // Coupling × State ↑↑
18
+ ];
19
+ /**
20
+ * Module-type specific interaction matrices
21
+ */
22
+ export const MODULE_MATRICES = {
23
+ api: [
24
+ // API: Coupling interactions are critical
25
+ [1.0, 0.2, 0.3, 0.2, 0.4],
26
+ [0.2, 1.0, 0.3, 0.6, 0.2],
27
+ [0.3, 0.3, 1.0, 0.4, 1.5], // State × Coupling ↑↑↑
28
+ [0.2, 0.6, 0.4, 1.0, 0.5],
29
+ [0.4, 0.2, 1.5, 0.5, 1.0], // Coupling × State ↑↑↑
30
+ ],
31
+ lib: [
32
+ // LIB: Control/Nesting interactions are important
33
+ [1.0, 1.2, 0.2, 0.2, 0.2], // Control × Nesting ↑
34
+ [1.2, 1.0, 0.3, 0.5, 0.2], // Nesting × Control ↑
35
+ [0.2, 0.3, 1.0, 0.3, 0.6],
36
+ [0.2, 0.5, 0.3, 1.0, 0.3],
37
+ [0.2, 0.2, 0.6, 0.3, 1.0],
38
+ ],
39
+ app: [
40
+ // APP: State/Async interactions are critical
41
+ [1.0, 0.3, 0.3, 0.3, 0.3],
42
+ [0.3, 1.0, 0.5, 0.9, 0.2], // Nesting × Async ↑
43
+ [0.3, 0.5, 1.0, 1.3, 0.7], // State × Async ↑↑
44
+ [0.3, 0.9, 1.3, 1.0, 0.4], // Async × State ↑↑
45
+ [0.3, 0.2, 0.7, 0.4, 1.0],
46
+ ],
47
+ web: [
48
+ // WEB: Nesting is most important (component hierarchy)
49
+ [1.0, 0.5, 0.2, 0.4, 0.2],
50
+ [0.5, 1.5, 0.3, 0.6, 0.2], // Nesting self-weight ↑
51
+ [0.2, 0.3, 1.0, 0.3, 0.5],
52
+ [0.4, 0.6, 0.3, 1.0, 0.3],
53
+ [0.2, 0.2, 0.5, 0.3, 1.0],
54
+ ],
55
+ deploy: [
56
+ // DEPLOY: All interactions should be minimal
57
+ [1.0, 0.1, 0.1, 0.1, 0.2],
58
+ [0.1, 1.0, 0.1, 0.1, 0.1],
59
+ [0.1, 0.1, 1.0, 0.1, 0.3],
60
+ [0.1, 0.1, 0.1, 1.0, 0.2],
61
+ [0.2, 0.1, 0.3, 0.2, 1.0],
62
+ ],
63
+ unknown: DEFAULT_MATRIX,
64
+ };
65
+ /**
66
+ * Get interaction matrix for module type
67
+ */
68
+ export function getInteractionMatrix(moduleType) {
69
+ return MODULE_MATRICES[moduleType] ?? DEFAULT_MATRIX;
70
+ }
71
+ /**
72
+ * Convert Vector5D to array
73
+ */
74
+ export function vectorToArray(v) {
75
+ return [v.control, v.nesting, v.state, v.async, v.coupling];
76
+ }
77
+ /**
78
+ * Create Vector5D from array
79
+ */
80
+ export function arrayToVector(arr) {
81
+ if (arr.length !== 5) {
82
+ throw new Error('Vector5D requires exactly 5 values');
83
+ }
84
+ return {
85
+ control: arr[0],
86
+ nesting: arr[1],
87
+ state: arr[2],
88
+ async: arr[3],
89
+ coupling: arr[4],
90
+ };
91
+ }
92
+ /**
93
+ * Create zero vector
94
+ */
95
+ export function zeroVector() {
96
+ return { control: 0, nesting: 0, state: 0, async: 0, coupling: 0 };
97
+ }
98
+ /**
99
+ * Calculate L2 norm of vector
100
+ */
101
+ export function vectorNorm(v) {
102
+ const arr = vectorToArray(v);
103
+ return Math.sqrt(arr.reduce((sum, x) => sum + x * x, 0));
104
+ }
105
+ /**
106
+ * Calculate dot product of two vectors
107
+ */
108
+ export function dotProduct(v1, v2) {
109
+ const a1 = vectorToArray(v1);
110
+ const a2 = vectorToArray(v2);
111
+ return a1.reduce((sum, x, i) => sum + x * a2[i], 0);
112
+ }
113
+ /**
114
+ * Calculate quadratic form: v^T M v
115
+ *
116
+ * This captures dimension interactions.
117
+ */
118
+ export function quadraticForm(v, matrix) {
119
+ const arr = vectorToArray(v);
120
+ let result = 0;
121
+ for (let i = 0; i < 5; i++) {
122
+ for (let j = 0; j < 5; j++) {
123
+ result += arr[i] * matrix[i][j] * arr[j];
124
+ }
125
+ }
126
+ return result;
127
+ }
128
+ /**
129
+ * Check if matrix is positive semi-definite using diagonal dominance
130
+ * (conservative approximation)
131
+ */
132
+ export function isPositiveSemidefinite(matrix) {
133
+ for (let i = 0; i < 5; i++) {
134
+ let rowSum = 0;
135
+ for (let j = 0; j < 5; j++) {
136
+ if (i !== j) {
137
+ rowSum += Math.abs(matrix[i][j]);
138
+ }
139
+ }
140
+ if (matrix[i][i] < rowSum) {
141
+ return false;
142
+ }
143
+ }
144
+ return true;
145
+ }
146
+ /**
147
+ * Euclidean distance between two vectors
148
+ */
149
+ export function euclideanDistance(v1, v2) {
150
+ const a1 = vectorToArray(v1);
151
+ const a2 = vectorToArray(v2);
152
+ const sumSquares = a1.reduce((sum, x, i) => sum + Math.pow(x - a2[i], 2), 0);
153
+ return Math.sqrt(sumSquares);
154
+ }
155
+ /**
156
+ * Mahalanobis-like distance using interaction matrix
157
+ *
158
+ * δ(v, target) = sqrt((v - target)^T M (v - target))
159
+ */
160
+ export function mahalanobisDistance(v, target, matrix) {
161
+ const diff = {
162
+ control: v.control - target.control,
163
+ nesting: v.nesting - target.nesting,
164
+ state: v.state - target.state,
165
+ async: v.async - target.async,
166
+ coupling: v.coupling - target.coupling,
167
+ };
168
+ const result = quadraticForm(diff, matrix);
169
+ return Math.sqrt(Math.abs(result));
170
+ }
171
+ //# sourceMappingURL=matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/tensor/matrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * v0.0.3: Tensor-based Complexity Scoring
3
+ *
4
+ * score = v^T M v + <v, w> + ε‖v‖²
5
+ */
6
+ import type { TensorScore, Vector5D, ModuleType, ConvergenceAnalysis, HodgeDecomposition, ComplexityLevel, RefactoringRecommendation } from './types.js';
7
+ /**
8
+ * Default linear weights
9
+ */
10
+ export declare const DEFAULT_WEIGHTS: Vector5D;
11
+ /**
12
+ * Calculate tensor-based complexity score
13
+ *
14
+ * @param vector - 5D complexity vector
15
+ * @param moduleType - Module type for context-aware analysis
16
+ * @param epsilon - Regularization parameter (default: 2.0)
17
+ * @param weights - Linear weights (default: DEFAULT_WEIGHTS)
18
+ */
19
+ export declare function calculateTensorScore(vector: Vector5D, moduleType?: ModuleType, epsilon?: number, weights?: Vector5D): TensorScore;
20
+ /**
21
+ * Calculate convergence score
22
+ *
23
+ * Returns:
24
+ * < 0: Safe zone (converged)
25
+ * 0-1: ε-neighborhood (review needed)
26
+ * > 1: Violation zone
27
+ */
28
+ export declare function convergenceScore(current: number, threshold: number, epsilon: number): number;
29
+ /**
30
+ * Estimate Lipschitz constant from two points
31
+ *
32
+ * k = |f(x) - f(y)| / |x - y|
33
+ * For contraction mapping, we need k < 1
34
+ */
35
+ export declare function estimateLipschitz(v1: Vector5D, v2: Vector5D, score1: number, score2: number): number;
36
+ /**
37
+ * Analyze convergence status
38
+ */
39
+ export declare function analyzeConvergence(score: number, threshold?: number, epsilon?: number, options?: {
40
+ prevVector?: Vector5D;
41
+ currVector?: Vector5D;
42
+ prevScore?: number;
43
+ isOscillating?: boolean;
44
+ }): ConvergenceAnalysis;
45
+ /**
46
+ * Hodge decomposition of complexity vector
47
+ *
48
+ * - H^{2,0} (holomorphic): Control + Nesting → Local algorithmic
49
+ * - H^{0,2} (anti-holomorphic): State + Coupling → Global structural
50
+ * - H^{1,1} (harmonic): Async → Mixed/balanced
51
+ */
52
+ export declare function hodgeDecomposition(vector: Vector5D, weights?: Vector5D): HodgeDecomposition;
53
+ /**
54
+ * Classify complexity score into level
55
+ */
56
+ export declare function classifyComplexityLevel(score: number): ComplexityLevel;
57
+ /**
58
+ * Generate refactoring recommendations based on vector analysis
59
+ */
60
+ export declare function recommendRefactoring(vector: Vector5D, weights?: Vector5D): RefactoringRecommendation[];
61
+ /**
62
+ * Check if in safe zone (below threshold - ε)
63
+ */
64
+ export declare function isSafe(score: TensorScore): boolean;
65
+ /**
66
+ * Check if needs review (in ε-neighborhood)
67
+ */
68
+ export declare function needsReview(score: TensorScore): boolean;
69
+ /**
70
+ * Check if violates threshold
71
+ */
72
+ export declare function isViolation(score: TensorScore): boolean;
73
+ //# sourceMappingURL=scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/tensor/scoring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,UAAU,EACV,mBAAmB,EAEnB,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAM7B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,UAAsB,EAClC,OAAO,GAAE,MAAY,EACrB,OAAO,GAAE,QAA0B,GAClC,WAAW,CAwBb;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAMR;AAYD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAa,EACxB,OAAO,GAAE,MAAY,EACrB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,mBAAmB,CAyBrB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,QAA0B,GAClC,kBAAkB,CAqBpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAMtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,QAA0B,GAClC,yBAAyB,EAAE,CAqC7B;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEvD"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * v0.0.3: Tensor-based Complexity Scoring
3
+ *
4
+ * score = v^T M v + <v, w> + ε‖v‖²
5
+ */
6
+ import { getInteractionMatrix, quadraticForm, dotProduct, vectorNorm, vectorToArray, } from './matrix.js';
7
+ /**
8
+ * Default linear weights
9
+ */
10
+ export const DEFAULT_WEIGHTS = {
11
+ control: 1.0,
12
+ nesting: 1.5,
13
+ state: 2.0,
14
+ async: 2.5,
15
+ coupling: 3.0,
16
+ };
17
+ /**
18
+ * Calculate tensor-based complexity score
19
+ *
20
+ * @param vector - 5D complexity vector
21
+ * @param moduleType - Module type for context-aware analysis
22
+ * @param epsilon - Regularization parameter (default: 2.0)
23
+ * @param weights - Linear weights (default: DEFAULT_WEIGHTS)
24
+ */
25
+ export function calculateTensorScore(vector, moduleType = 'unknown', epsilon = 2.0, weights = DEFAULT_WEIGHTS) {
26
+ // Get interaction matrix for module type
27
+ const matrix = getInteractionMatrix(moduleType);
28
+ // Calculate components
29
+ const linear = dotProduct(vector, weights);
30
+ const quadratic = quadraticForm(vector, matrix) * 0.1; // Scale factor
31
+ const raw = linear + quadratic;
32
+ // ε-regularization
33
+ const normSquared = Math.pow(vectorNorm(vector), 2);
34
+ const regularization = epsilon * normSquared * 0.01; // Scale factor
35
+ const regularized = raw + regularization;
36
+ return {
37
+ linear: Math.round(linear * 100) / 100,
38
+ quadratic: Math.round(quadratic * 100) / 100,
39
+ raw: Math.round(raw * 100) / 100,
40
+ regularization: Math.round(regularization * 100) / 100,
41
+ regularized: Math.round(regularized * 100) / 100,
42
+ epsilon,
43
+ moduleType,
44
+ vector,
45
+ };
46
+ }
47
+ /**
48
+ * Calculate convergence score
49
+ *
50
+ * Returns:
51
+ * < 0: Safe zone (converged)
52
+ * 0-1: ε-neighborhood (review needed)
53
+ * > 1: Violation zone
54
+ */
55
+ export function convergenceScore(current, threshold, epsilon) {
56
+ if (epsilon === 0) {
57
+ return current > threshold - epsilon ? Infinity : 0;
58
+ }
59
+ const target = threshold - epsilon;
60
+ return (current - target) / epsilon;
61
+ }
62
+ /**
63
+ * Determine convergence status from score
64
+ */
65
+ function getConvergenceStatus(convScore, isOscillating = false) {
66
+ if (isOscillating)
67
+ return 'oscillating';
68
+ if (convScore < 0)
69
+ return 'safe';
70
+ if (convScore < 1)
71
+ return 'review';
72
+ return 'violation';
73
+ }
74
+ /**
75
+ * Estimate Lipschitz constant from two points
76
+ *
77
+ * k = |f(x) - f(y)| / |x - y|
78
+ * For contraction mapping, we need k < 1
79
+ */
80
+ export function estimateLipschitz(v1, v2, score1, score2) {
81
+ const a1 = vectorToArray(v1);
82
+ const a2 = vectorToArray(v2);
83
+ // Calculate vector distance
84
+ const vDist = Math.sqrt(a1.reduce((sum, x, i) => sum + Math.pow(x - a2[i], 2), 0));
85
+ if (vDist < 1e-10)
86
+ return 0;
87
+ // Calculate score distance
88
+ const sDist = Math.abs(score1 - score2);
89
+ return sDist / vDist;
90
+ }
91
+ /**
92
+ * Analyze convergence status
93
+ */
94
+ export function analyzeConvergence(score, threshold = 10.0, epsilon = 2.0, options) {
95
+ const target = threshold - epsilon;
96
+ const convScore = convergenceScore(score, threshold, epsilon);
97
+ // Estimate Lipschitz constant if vectors provided
98
+ let lipschitzEstimate = 0;
99
+ if (options?.prevVector && options?.currVector && options?.prevScore !== undefined) {
100
+ lipschitzEstimate = estimateLipschitz(options.prevVector, options.currVector, options.prevScore, score);
101
+ }
102
+ return {
103
+ score,
104
+ threshold,
105
+ epsilon,
106
+ convergenceScore: Math.round(convScore * 1000) / 1000,
107
+ status: getConvergenceStatus(convScore, options?.isOscillating),
108
+ distanceToTarget: Math.round((score - target) * 100) / 100,
109
+ distanceToThreshold: Math.round((threshold - score) * 100) / 100,
110
+ lipschitzEstimate: Math.round(lipschitzEstimate * 1000) / 1000,
111
+ };
112
+ }
113
+ /**
114
+ * Hodge decomposition of complexity vector
115
+ *
116
+ * - H^{2,0} (holomorphic): Control + Nesting → Local algorithmic
117
+ * - H^{0,2} (anti-holomorphic): State + Coupling → Global structural
118
+ * - H^{1,1} (harmonic): Async → Mixed/balanced
119
+ */
120
+ export function hodgeDecomposition(vector, weights = DEFAULT_WEIGHTS) {
121
+ // Algorithmic: Control + Nesting
122
+ const algorithmic = vector.control * weights.control + vector.nesting * weights.nesting;
123
+ // Architectural: State + Coupling
124
+ const architectural = vector.state * weights.state + vector.coupling * weights.coupling;
125
+ // Balanced: Async (bridges both worlds)
126
+ const balanced = vector.async * weights.async;
127
+ const total = algorithmic + architectural + balanced;
128
+ const balanceRatio = total > 0 ? balanced / total : 0;
129
+ return {
130
+ algorithmic: Math.round(algorithmic * 100) / 100,
131
+ architectural: Math.round(architectural * 100) / 100,
132
+ balanced: Math.round(balanced * 100) / 100,
133
+ total: Math.round(total * 100) / 100,
134
+ balanceRatio: Math.round(balanceRatio * 1000) / 1000,
135
+ isHarmonic: balanceRatio >= 0.3,
136
+ };
137
+ }
138
+ /**
139
+ * Classify complexity score into level
140
+ */
141
+ export function classifyComplexityLevel(score) {
142
+ if (score < 2)
143
+ return 'minimal';
144
+ if (score < 5)
145
+ return 'low';
146
+ if (score < 10)
147
+ return 'medium';
148
+ if (score < 20)
149
+ return 'high';
150
+ return 'extreme';
151
+ }
152
+ /**
153
+ * Generate refactoring recommendations based on vector analysis
154
+ */
155
+ export function recommendRefactoring(vector, weights = DEFAULT_WEIGHTS) {
156
+ const dimensions = ['control', 'nesting', 'state', 'async', 'coupling'];
157
+ const arr = vectorToArray(vector);
158
+ const wArr = vectorToArray(weights);
159
+ // Calculate weighted contributions
160
+ const weighted = arr.map((v, i) => v * wArr[i]);
161
+ const total = weighted.reduce((sum, w) => sum + w, 0);
162
+ if (total === 0)
163
+ return [];
164
+ // Calculate contributions and sort by weight
165
+ const contributions = dimensions.map((dim, i) => ({
166
+ dimension: dim,
167
+ weighted: weighted[i],
168
+ percentage: weighted[i] / total,
169
+ }));
170
+ contributions.sort((a, b) => b.weighted - a.weighted);
171
+ // Generate recommendations for top contributors
172
+ const actions = {
173
+ control: 'Extract complex conditionals into separate functions',
174
+ nesting: 'Flatten nested structures using early returns or guard clauses',
175
+ state: 'Reduce state mutations; consider immutable patterns',
176
+ async: 'Simplify async flow; reduce callback nesting',
177
+ coupling: 'Extract dependencies; use dependency injection',
178
+ };
179
+ return contributions
180
+ .filter(c => c.percentage >= 0.1) // Only dimensions contributing >= 10%
181
+ .map(c => ({
182
+ dimension: c.dimension,
183
+ priority: Math.min(5, Math.floor(c.percentage * 10) + 1),
184
+ action: actions[c.dimension],
185
+ expectedImpact: Math.round(c.weighted * 0.3 * 100) / 100, // Assume 30% reduction
186
+ }));
187
+ }
188
+ /**
189
+ * Check if in safe zone (below threshold - ε)
190
+ */
191
+ export function isSafe(score) {
192
+ return score.regularized < 8.0; // threshold(10) - ε(2)
193
+ }
194
+ /**
195
+ * Check if needs review (in ε-neighborhood)
196
+ */
197
+ export function needsReview(score) {
198
+ return score.regularized >= 8.0 && score.regularized < 10.0;
199
+ }
200
+ /**
201
+ * Check if violates threshold
202
+ */
203
+ export function isViolation(score) {
204
+ return score.regularized >= 10.0;
205
+ }
206
+ //# sourceMappingURL=scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/tensor/scoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * v0.0.3: Tensor Types
3
+ *
4
+ * Mathematical foundation:
5
+ * score^(2) = v^T M v + <v, w>
6
+ */
7
+ /**
8
+ * 5-dimensional complexity vector
9
+ */
10
+ export interface Vector5D {
11
+ control: number;
12
+ nesting: number;
13
+ state: number;
14
+ async: number;
15
+ coupling: number;
16
+ }
17
+ /**
18
+ * Module type for context-aware analysis
19
+ */
20
+ export type ModuleType = 'api' | 'lib' | 'app' | 'web' | 'deploy' | 'unknown';
21
+ /**
22
+ * Dimension indices
23
+ */
24
+ export declare const IDX_CONTROL = 0;
25
+ export declare const IDX_NESTING = 1;
26
+ export declare const IDX_STATE = 2;
27
+ export declare const IDX_ASYNC = 3;
28
+ export declare const IDX_COUPLING = 4;
29
+ /**
30
+ * 5x5 Interaction Matrix
31
+ */
32
+ export type Matrix5x5 = [
33
+ [
34
+ number,
35
+ number,
36
+ number,
37
+ number,
38
+ number
39
+ ],
40
+ [
41
+ number,
42
+ number,
43
+ number,
44
+ number,
45
+ number
46
+ ],
47
+ [
48
+ number,
49
+ number,
50
+ number,
51
+ number,
52
+ number
53
+ ],
54
+ [
55
+ number,
56
+ number,
57
+ number,
58
+ number,
59
+ number
60
+ ],
61
+ [
62
+ number,
63
+ number,
64
+ number,
65
+ number,
66
+ number
67
+ ]
68
+ ];
69
+ /**
70
+ * Tensor score result
71
+ */
72
+ export interface TensorScore {
73
+ /** Linear component: <v, w> */
74
+ linear: number;
75
+ /** Quadratic component: v^T M v */
76
+ quadratic: number;
77
+ /** Raw score: linear + quadratic */
78
+ raw: number;
79
+ /** Regularization term: ε‖v‖² */
80
+ regularization: number;
81
+ /** Final regularized score */
82
+ regularized: number;
83
+ /** Epsilon value used */
84
+ epsilon: number;
85
+ /** Module type used */
86
+ moduleType: ModuleType;
87
+ /** Complexity vector */
88
+ vector: Vector5D;
89
+ }
90
+ /**
91
+ * Convergence status
92
+ */
93
+ export type ConvergenceStatus = 'safe' | 'review' | 'violation' | 'oscillating';
94
+ /**
95
+ * Convergence analysis result
96
+ */
97
+ export interface ConvergenceAnalysis {
98
+ /** Current score */
99
+ score: number;
100
+ /** Threshold value */
101
+ threshold: number;
102
+ /** Epsilon value */
103
+ epsilon: number;
104
+ /** Convergence score: (score - target) / ε */
105
+ convergenceScore: number;
106
+ /** Status based on convergence score */
107
+ status: ConvergenceStatus;
108
+ /** Distance to target (threshold - ε) */
109
+ distanceToTarget: number;
110
+ /** Distance to threshold */
111
+ distanceToThreshold: number;
112
+ /** Lipschitz constant estimate */
113
+ lipschitzEstimate: number;
114
+ }
115
+ /**
116
+ * Hodge decomposition result
117
+ *
118
+ * H^k(Code) = ⊕_{p+q=k} H^{p,q}(Code)
119
+ */
120
+ export interface HodgeDecomposition {
121
+ /** H^{2,0}: Control + Nesting (algorithmic) */
122
+ algorithmic: number;
123
+ /** H^{0,2}: State + Coupling (architectural) */
124
+ architectural: number;
125
+ /** H^{1,1}: Async (balanced/harmonic) */
126
+ balanced: number;
127
+ /** Total complexity */
128
+ total: number;
129
+ /** Balance ratio: balanced / total */
130
+ balanceRatio: number;
131
+ /** Is in harmonic state (well-balanced) */
132
+ isHarmonic: boolean;
133
+ }
134
+ /**
135
+ * Complexity level classification
136
+ */
137
+ export type ComplexityLevel = 'minimal' | 'low' | 'medium' | 'high' | 'extreme';
138
+ /**
139
+ * Deviation from canonical form result
140
+ */
141
+ export interface DeviationResult {
142
+ /** Euclidean distance to canonical centroid */
143
+ euclideanDistance: number;
144
+ /** Mahalanobis-like distance using interaction matrix */
145
+ mahalanobisDistance: number;
146
+ /** Maximum deviation in any dimension */
147
+ maxDimensionDeviation: number;
148
+ /** Normalized deviation (0-1 scale) */
149
+ normalizedDeviation: number;
150
+ /** Whether vector is within canonical bounds */
151
+ isCanonical: boolean;
152
+ /** Whether vector is outside ALL canonical regions */
153
+ isOrphan: boolean;
154
+ /** Module type used for comparison */
155
+ moduleType: ModuleType;
156
+ /** Current vector */
157
+ vector: Vector5D;
158
+ /** Dimensions that violate canonical bounds */
159
+ violationDimensions: string[];
160
+ /** Status: canonical | deviated | orphan */
161
+ status: 'canonical' | 'deviated' | 'orphan';
162
+ }
163
+ /**
164
+ * Refactoring recommendation
165
+ */
166
+ export interface RefactoringRecommendation {
167
+ /** Dimension to address */
168
+ dimension: string;
169
+ /** Priority (1-5, higher = more urgent) */
170
+ priority: number;
171
+ /** Recommended action */
172
+ action: string;
173
+ /** Expected impact on score */
174
+ expectedImpact: number;
175
+ }
176
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tensor/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * v0.0.3: Tensor Types
3
+ *
4
+ * Mathematical foundation:
5
+ * score^(2) = v^T M v + <v, w>
6
+ */
7
+ /**
8
+ * Dimension indices
9
+ */
10
+ export const IDX_CONTROL = 0;
11
+ export const IDX_NESTING = 1;
12
+ export const IDX_STATE = 2;
13
+ export const IDX_ASYNC = 3;
14
+ export const IDX_COUPLING = 4;
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tensor/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC"}