semantic-complexity 0.0.7-741984fb → 0.0.13-2aaf183b

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 (163) hide show
  1. package/dist/__tests__/analyzers.test.d.ts +5 -0
  2. package/dist/__tests__/analyzers.test.d.ts.map +1 -0
  3. package/dist/__tests__/analyzers.test.js +357 -0
  4. package/dist/__tests__/analyzers.test.js.map +1 -0
  5. package/dist/__tests__/gate.test.d.ts +5 -0
  6. package/dist/__tests__/gate.test.d.ts.map +1 -0
  7. package/dist/__tests__/gate.test.js +140 -0
  8. package/dist/__tests__/gate.test.js.map +1 -0
  9. package/dist/analyzers/bread.d.ts +63 -0
  10. package/dist/analyzers/bread.d.ts.map +1 -0
  11. package/dist/analyzers/bread.js +415 -0
  12. package/dist/analyzers/bread.js.map +1 -0
  13. package/dist/analyzers/cheese.d.ts +111 -0
  14. package/dist/analyzers/cheese.d.ts.map +1 -0
  15. package/dist/analyzers/cheese.js +881 -0
  16. package/dist/analyzers/cheese.js.map +1 -0
  17. package/dist/analyzers/ham.d.ts +33 -0
  18. package/dist/analyzers/ham.d.ts.map +1 -0
  19. package/dist/analyzers/ham.js +264 -0
  20. package/dist/analyzers/ham.js.map +1 -0
  21. package/dist/analyzers/index.d.ts +7 -0
  22. package/dist/analyzers/index.d.ts.map +1 -0
  23. package/dist/analyzers/index.js +7 -0
  24. package/dist/analyzers/index.js.map +1 -0
  25. package/dist/budget/index.d.ts +50 -0
  26. package/dist/budget/index.d.ts.map +1 -0
  27. package/dist/budget/index.js +138 -0
  28. package/dist/budget/index.js.map +1 -0
  29. package/dist/cli/index.d.ts +6 -0
  30. package/dist/cli/index.d.ts.map +1 -0
  31. package/dist/cli/index.js +103 -0
  32. package/dist/cli/index.js.map +1 -0
  33. package/dist/gate/index.d.ts +31 -0
  34. package/dist/gate/index.d.ts.map +1 -0
  35. package/dist/gate/index.js +117 -0
  36. package/dist/gate/index.js.map +1 -0
  37. package/dist/gate/waiver.d.ts +54 -0
  38. package/dist/gate/waiver.d.ts.map +1 -0
  39. package/dist/gate/waiver.js +280 -0
  40. package/dist/gate/waiver.js.map +1 -0
  41. package/dist/index.d.ts +8 -34
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +8 -49
  44. package/dist/index.js.map +1 -1
  45. package/dist/mcp/index.d.ts +5 -0
  46. package/dist/mcp/index.d.ts.map +1 -0
  47. package/dist/mcp/index.js +140 -0
  48. package/dist/mcp/index.js.map +1 -0
  49. package/dist/recommend/index.d.ts +32 -0
  50. package/dist/recommend/index.d.ts.map +1 -0
  51. package/dist/recommend/index.js +169 -0
  52. package/dist/recommend/index.js.map +1 -0
  53. package/dist/simplex/index.d.ts +26 -0
  54. package/dist/simplex/index.d.ts.map +1 -0
  55. package/dist/simplex/index.js +100 -0
  56. package/dist/simplex/index.js.map +1 -0
  57. package/dist/types/index.d.ts +39 -0
  58. package/dist/types/index.d.ts.map +1 -0
  59. package/dist/types/index.js +5 -0
  60. package/dist/types/index.js.map +1 -0
  61. package/package.json +27 -52
  62. package/LICENSE +0 -21
  63. package/README.md +0 -72
  64. package/dist/ast/index.d.ts +0 -2
  65. package/dist/ast/index.d.ts.map +0 -1
  66. package/dist/ast/index.js +0 -2
  67. package/dist/ast/index.js.map +0 -1
  68. package/dist/ast/parser.d.ts +0 -27
  69. package/dist/ast/parser.d.ts.map +0 -1
  70. package/dist/ast/parser.js +0 -273
  71. package/dist/ast/parser.js.map +0 -1
  72. package/dist/canonical/convergence.d.ts +0 -56
  73. package/dist/canonical/convergence.d.ts.map +0 -1
  74. package/dist/canonical/convergence.js +0 -149
  75. package/dist/canonical/convergence.js.map +0 -1
  76. package/dist/canonical/index.d.ts +0 -11
  77. package/dist/canonical/index.d.ts.map +0 -1
  78. package/dist/canonical/index.js +0 -11
  79. package/dist/canonical/index.js.map +0 -1
  80. package/dist/canonical/profiles.d.ts +0 -40
  81. package/dist/canonical/profiles.d.ts.map +0 -1
  82. package/dist/canonical/profiles.js +0 -182
  83. package/dist/canonical/profiles.js.map +0 -1
  84. package/dist/canonical/types.d.ts +0 -124
  85. package/dist/canonical/types.d.ts.map +0 -1
  86. package/dist/canonical/types.js +0 -46
  87. package/dist/canonical/types.js.map +0 -1
  88. package/dist/compare.d.ts +0 -31
  89. package/dist/compare.d.ts.map +0 -1
  90. package/dist/compare.js +0 -354
  91. package/dist/compare.js.map +0 -1
  92. package/dist/context/index.d.ts +0 -41
  93. package/dist/context/index.d.ts.map +0 -1
  94. package/dist/context/index.js +0 -253
  95. package/dist/context/index.js.map +0 -1
  96. package/dist/gates/delta.d.ts +0 -45
  97. package/dist/gates/delta.d.ts.map +0 -1
  98. package/dist/gates/delta.js +0 -260
  99. package/dist/gates/delta.js.map +0 -1
  100. package/dist/gates/index.d.ts +0 -9
  101. package/dist/gates/index.d.ts.map +0 -1
  102. package/dist/gates/index.js +0 -9
  103. package/dist/gates/index.js.map +0 -1
  104. package/dist/gates/types.d.ts +0 -96
  105. package/dist/gates/types.d.ts.map +0 -1
  106. package/dist/gates/types.js +0 -59
  107. package/dist/gates/types.js.map +0 -1
  108. package/dist/graph/call.d.ts +0 -63
  109. package/dist/graph/call.d.ts.map +0 -1
  110. package/dist/graph/call.js +0 -240
  111. package/dist/graph/call.js.map +0 -1
  112. package/dist/graph/dependency.d.ts +0 -52
  113. package/dist/graph/dependency.d.ts.map +0 -1
  114. package/dist/graph/dependency.js +0 -296
  115. package/dist/graph/dependency.js.map +0 -1
  116. package/dist/graph/index.d.ts +0 -3
  117. package/dist/graph/index.d.ts.map +0 -1
  118. package/dist/graph/index.js +0 -3
  119. package/dist/graph/index.js.map +0 -1
  120. package/dist/metrics/cognitive.d.ts +0 -42
  121. package/dist/metrics/cognitive.d.ts.map +0 -1
  122. package/dist/metrics/cognitive.js +0 -204
  123. package/dist/metrics/cognitive.js.map +0 -1
  124. package/dist/metrics/cyclomatic.d.ts +0 -31
  125. package/dist/metrics/cyclomatic.d.ts.map +0 -1
  126. package/dist/metrics/cyclomatic.js +0 -121
  127. package/dist/metrics/cyclomatic.js.map +0 -1
  128. package/dist/metrics/dimensional.d.ts +0 -32
  129. package/dist/metrics/dimensional.d.ts.map +0 -1
  130. package/dist/metrics/dimensional.js +0 -560
  131. package/dist/metrics/dimensional.js.map +0 -1
  132. package/dist/metrics/index.d.ts +0 -26
  133. package/dist/metrics/index.d.ts.map +0 -1
  134. package/dist/metrics/index.js +0 -120
  135. package/dist/metrics/index.js.map +0 -1
  136. package/dist/metrics/meta.d.ts +0 -90
  137. package/dist/metrics/meta.d.ts.map +0 -1
  138. package/dist/metrics/meta.js +0 -144
  139. package/dist/metrics/meta.js.map +0 -1
  140. package/dist/tensor/canonical.d.ts +0 -53
  141. package/dist/tensor/canonical.d.ts.map +0 -1
  142. package/dist/tensor/canonical.js +0 -192
  143. package/dist/tensor/canonical.js.map +0 -1
  144. package/dist/tensor/index.d.ts +0 -22
  145. package/dist/tensor/index.d.ts.map +0 -1
  146. package/dist/tensor/index.js +0 -22
  147. package/dist/tensor/index.js.map +0 -1
  148. package/dist/tensor/matrix.d.ts +0 -62
  149. package/dist/tensor/matrix.d.ts.map +0 -1
  150. package/dist/tensor/matrix.js +0 -187
  151. package/dist/tensor/matrix.js.map +0 -1
  152. package/dist/tensor/scoring.d.ts +0 -82
  153. package/dist/tensor/scoring.d.ts.map +0 -1
  154. package/dist/tensor/scoring.js +0 -233
  155. package/dist/tensor/scoring.js.map +0 -1
  156. package/dist/tensor/types.d.ts +0 -186
  157. package/dist/tensor/types.d.ts.map +0 -1
  158. package/dist/tensor/types.js +0 -15
  159. package/dist/tensor/types.js.map +0 -1
  160. package/dist/types.d.ts +0 -341
  161. package/dist/types.d.ts.map +0 -1
  162. package/dist/types.js +0 -22
  163. package/dist/types.js.map +0 -1
@@ -1,149 +0,0 @@
1
- /**
2
- * 수렴 분석기 (Convergence Analyzer)
3
- *
4
- * 현재 상태에서 정준 상태로의 거리 및 방향을 계산
5
- *
6
- * NP-hard가 P로 환원되는 이유:
7
- * - 모든 가능한 구조를 탐색하지 않음
8
- * - 타입별 정준형으로의 거리만 측정
9
- * - 거리 측정: O(n)
10
- */
11
- import { CANONICAL_PROFILES, getIdealMetaDimensions, isCanonical, } from './profiles.js';
12
- import { metaDistance, subtractMetaDimensions } from '../metrics/meta.js';
13
- // ─────────────────────────────────────────────────────────────────
14
- // 수렴 분석
15
- // ─────────────────────────────────────────────────────────────────
16
- /**
17
- * 편차 계산
18
- */
19
- export function calculateDeviation(current, ideal) {
20
- const securityDiff = current.security - ideal.security;
21
- const contextDiff = current.context - ideal.context;
22
- const behaviorDiff = current.behavior - ideal.behavior;
23
- return {
24
- security: Math.round(securityDiff * 100) / 100,
25
- context: Math.round(contextDiff * 100) / 100,
26
- behavior: Math.round(behaviorDiff * 100) / 100,
27
- total: Math.round(metaDistance(current, ideal) * 100) / 100,
28
- };
29
- }
30
- /**
31
- * 수렴 벡터 계산 (정준 상태로의 방향)
32
- */
33
- export function calculateConvergenceVector(current, ideal) {
34
- const diff = subtractMetaDimensions(ideal, current);
35
- const magnitude = Math.sqrt(diff.security * diff.security +
36
- diff.context * diff.context +
37
- diff.behavior * diff.behavior);
38
- if (magnitude === 0) {
39
- return { x: 0, y: 0, z: 0 };
40
- }
41
- // 정규화된 방향 벡터
42
- return {
43
- x: Math.round((diff.security / magnitude) * 100) / 100,
44
- y: Math.round((diff.context / magnitude) * 100) / 100,
45
- z: Math.round((diff.behavior / magnitude) * 100) / 100,
46
- };
47
- }
48
- /**
49
- * 수렴률 계산 (0-1, 1이면 완전 정준)
50
- */
51
- export function calculateConvergenceRate(deviation, maxDeviation = 50) {
52
- const rate = 1 - Math.min(deviation.total / maxDeviation, 1);
53
- return Math.round(rate * 100) / 100;
54
- }
55
- /**
56
- * 수렴 분석 수행
57
- */
58
- export function analyzeConvergence(moduleType, currentMeta) {
59
- const profile = CANONICAL_PROFILES[moduleType];
60
- const idealMeta = getIdealMetaDimensions(profile);
61
- const deviation = calculateDeviation(currentMeta, idealMeta);
62
- const vector = calculateConvergenceVector(currentMeta, idealMeta);
63
- const rate = calculateConvergenceRate(deviation);
64
- const stable = isCanonical(currentMeta, profile);
65
- return {
66
- moduleType,
67
- currentState: currentMeta,
68
- canonicalState: idealMeta,
69
- deviation,
70
- convergenceVector: vector,
71
- isStable: stable,
72
- convergenceRate: rate,
73
- };
74
- }
75
- // ─────────────────────────────────────────────────────────────────
76
- // 다중 모듈 분석
77
- // ─────────────────────────────────────────────────────────────────
78
- /**
79
- * 모든 모듈 타입에 대해 수렴 분석
80
- * 가장 적합한 모듈 타입 추천에 활용
81
- */
82
- export function analyzeAllModuleTypes(currentMeta) {
83
- const types = ['api', 'app', 'lib', 'deploy'];
84
- return types.map((type) => analyzeConvergence(type, currentMeta));
85
- }
86
- /**
87
- * 가장 가까운 정준 상태를 가진 모듈 타입 반환
88
- */
89
- export function findBestFitModuleType(currentMeta) {
90
- const results = analyzeAllModuleTypes(currentMeta);
91
- return results.reduce((best, current) => current.deviation.total < best.deviation.total ? current : best);
92
- }
93
- /**
94
- * 수렴 상태 판정
95
- */
96
- export function getConvergenceStatus(result) {
97
- if (result.isStable) {
98
- return 'canonical';
99
- }
100
- if (result.convergenceRate >= 0.8) {
101
- return 'near-canonical';
102
- }
103
- if (result.convergenceRate >= 0.5) {
104
- return 'drifting';
105
- }
106
- return 'divergent';
107
- }
108
- export function generateConvergenceAdvice(result) {
109
- const advice = [];
110
- const { currentState, canonicalState, deviation, moduleType } = result;
111
- // Security 편차 분석
112
- if (Math.abs(deviation.security) > 2) {
113
- advice.push({
114
- dimension: 'security',
115
- currentValue: currentState.security,
116
- idealValue: canonicalState.security,
117
- deviation: deviation.security,
118
- suggestion: deviation.security > 0
119
- ? `${moduleType} 모듈은 외부 의존성을 줄여야 합니다. 전역 접근과 환경 변수 사용을 최소화하세요.`
120
- : `${moduleType} 모듈에 보안 검증 로직이 부족합니다. 입력 검증을 강화하세요.`,
121
- });
122
- }
123
- // Context 편차 분석
124
- if (Math.abs(deviation.context) > 3) {
125
- advice.push({
126
- dimension: 'context',
127
- currentValue: currentState.context,
128
- idealValue: canonicalState.context,
129
- deviation: deviation.context,
130
- suggestion: deviation.context > 0
131
- ? `${moduleType} 모듈의 맥락 밀도가 높습니다. 중첩을 줄이고 로직을 분리하세요.`
132
- : `${moduleType} 모듈이 너무 단순합니다. 적절한 검증/처리 로직이 필요할 수 있습니다.`,
133
- });
134
- }
135
- // Behavior 편차 분석
136
- if (Math.abs(deviation.behavior) > 2) {
137
- advice.push({
138
- dimension: 'behavior',
139
- currentValue: currentState.behavior,
140
- idealValue: canonicalState.behavior,
141
- deviation: deviation.behavior,
142
- suggestion: deviation.behavior > 0
143
- ? `${moduleType} 모듈의 상태/비동기 복잡도가 높습니다. 순수 함수로 리팩토링하세요.`
144
- : `${moduleType} 모듈에 비즈니스 로직이 부족합니다.`,
145
- });
146
- }
147
- return advice;
148
- }
149
- //# sourceMappingURL=convergence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convergence.js","sourceRoot":"","sources":["../../src/canonical/convergence.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * 정준성(Canonicality) 프레임워크
3
- *
4
- * 모듈 타입 기반 P-NP 특수해 접근
5
- */
6
- export type { ModuleType, ModuleTypeInfo, MetaDimensions, MetaWeights, Range, CanonicalLevel, CanonicalProfile, Vector3D, Deviation, ConvergenceResult, Snapshot, } from './types.js';
7
- export { MODULE_TYPE_INFO, DEFAULT_META_WEIGHTS, LEVEL_RANGES, } from './types.js';
8
- export { CANONICAL_PROFILES, levelToRange, levelToMidpoint, getIdealMetaDimensions, getProfile, isWithinCanonicalRange, isCanonical, inferModuleType, } from './profiles.js';
9
- export { calculateDeviation, calculateConvergenceVector, calculateConvergenceRate, analyzeConvergence, analyzeAllModuleTypes, findBestFitModuleType, getConvergenceStatus, generateConvergenceAdvice, } from './convergence.js';
10
- export type { ConvergenceStatus, ConvergenceAdvice, } from './convergence.js';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canonical/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,KAAK,EACL,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * 정준성(Canonicality) 프레임워크
3
- *
4
- * 모듈 타입 기반 P-NP 특수해 접근
5
- */
6
- export { MODULE_TYPE_INFO, DEFAULT_META_WEIGHTS, LEVEL_RANGES, } from './types.js';
7
- // Profiles
8
- export { CANONICAL_PROFILES, levelToRange, levelToMidpoint, getIdealMetaDimensions, getProfile, isWithinCanonicalRange, isCanonical, inferModuleType, } from './profiles.js';
9
- // Convergence
10
- export { calculateDeviation, calculateConvergenceVector, calculateConvergenceRate, analyzeConvergence, analyzeAllModuleTypes, findBestFitModuleType, getConvergenceStatus, generateConvergenceAdvice, } from './convergence.js';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/canonical/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,cAAc;AACd,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * 모듈별 정준형 프로파일 정의
3
- *
4
- * 각 모듈 타입의 이상적인 메타 차원 범위를 정의
5
- * P-NP 관점: 모듈 타입이 제약 조건으로 작용하여 탐색 공간 축소
6
- */
7
- import type { ModuleType, CanonicalProfile, CanonicalLevel, MetaDimensions, Range } from './types.js';
8
- /**
9
- * 모든 정준형 프로파일
10
- */
11
- export declare const CANONICAL_PROFILES: Record<ModuleType, CanonicalProfile>;
12
- /**
13
- * 레벨을 수치 범위로 변환
14
- */
15
- export declare function levelToRange(level: CanonicalLevel): Range;
16
- /**
17
- * 레벨의 중앙값 반환
18
- */
19
- export declare function levelToMidpoint(level: CanonicalLevel): number;
20
- /**
21
- * 프로파일의 이상적 메타 차원값 반환
22
- */
23
- export declare function getIdealMetaDimensions(profile: CanonicalProfile): MetaDimensions;
24
- /**
25
- * 모듈 타입으로 프로파일 조회
26
- */
27
- export declare function getProfile(moduleType: ModuleType): CanonicalProfile;
28
- /**
29
- * 값이 정준 범위 내에 있는지 확인
30
- */
31
- export declare function isWithinCanonicalRange(value: number, level: CanonicalLevel, tolerance?: number): boolean;
32
- /**
33
- * 메타 차원이 프로파일의 정준 범위 내에 있는지 확인
34
- */
35
- export declare function isCanonical(meta: MetaDimensions, profile: CanonicalProfile): boolean;
36
- /**
37
- * 모듈 타입 자동 추론 (파일 경로 기반)
38
- */
39
- export declare function inferModuleType(filePath: string): ModuleType;
40
- //# sourceMappingURL=profiles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/canonical/profiles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,KAAK,EACN,MAAM,YAAY,CAAC;AAkFpB;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAKnE,CAAC;AAMF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CASzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAM7D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAMhF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAEnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,EACrB,SAAS,GAAE,MAAU,GACpB,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAwC5D"}
@@ -1,182 +0,0 @@
1
- /**
2
- * 모듈별 정준형 프로파일 정의
3
- *
4
- * 각 모듈 타입의 이상적인 메타 차원 범위를 정의
5
- * P-NP 관점: 모듈 타입이 제약 조건으로 작용하여 탐색 공간 축소
6
- */
7
- // ─────────────────────────────────────────────────────────────────
8
- // 정준형 프로파일 정의
9
- // ─────────────────────────────────────────────────────────────────
10
- /**
11
- * API 모듈 정준형
12
- *
13
- * 경계면 역할: 외부 입력 검증, 무상태, 얇은 레이어
14
- */
15
- const API_PROFILE = {
16
- type: 'api',
17
- ideal: {
18
- security: 'high', // 입력 검증, 인증/인가 집중
19
- context: 'low', // 단순한 라우팅, 최소 로직
20
- behavior: 'low', // 상태 없음, 부작용 최소
21
- },
22
- tolerance: {
23
- security: 5,
24
- context: 3,
25
- behavior: 3,
26
- },
27
- };
28
- /**
29
- * App 모듈 정준형
30
- *
31
- * 응용 로직: 비즈니스 로직 집중, 상태/비동기 허용
32
- */
33
- const APP_PROFILE = {
34
- type: 'app',
35
- ideal: {
36
- security: 'medium', // 내부 검증
37
- context: 'high', // 복잡한 비즈니스 로직 허용
38
- behavior: 'high', // 상태/비동기 허용
39
- },
40
- tolerance: {
41
- security: 5,
42
- context: 10,
43
- behavior: 10,
44
- },
45
- };
46
- /**
47
- * Lib 모듈 정준형
48
- *
49
- * 재사용 라이브러리: 순수 함수, 고응집, 저결합
50
- */
51
- const LIB_PROFILE = {
52
- type: 'lib',
53
- ideal: {
54
- security: 'low', // 외부 의존 최소
55
- context: 'low', // 단순하고 명확한 인터페이스
56
- behavior: 'low', // 순수 함수, 부작용 없음
57
- },
58
- tolerance: {
59
- security: 2,
60
- context: 5,
61
- behavior: 3,
62
- },
63
- };
64
- /**
65
- * Deploy 모듈 정준형
66
- *
67
- * 배포 구성: 선언적, 로직 최소
68
- */
69
- const DEPLOY_PROFILE = {
70
- type: 'deploy',
71
- ideal: {
72
- security: 'high', // 환경 변수, 시크릿 관리
73
- context: 'lowest', // 로직 없음
74
- behavior: 'lowest', // 부작용 없음
75
- },
76
- tolerance: {
77
- security: 3,
78
- context: 1,
79
- behavior: 1,
80
- },
81
- };
82
- /**
83
- * 모든 정준형 프로파일
84
- */
85
- export const CANONICAL_PROFILES = {
86
- api: API_PROFILE,
87
- app: APP_PROFILE,
88
- lib: LIB_PROFILE,
89
- deploy: DEPLOY_PROFILE,
90
- };
91
- // ─────────────────────────────────────────────────────────────────
92
- // 프로파일 유틸리티
93
- // ─────────────────────────────────────────────────────────────────
94
- /**
95
- * 레벨을 수치 범위로 변환
96
- */
97
- export function levelToRange(level) {
98
- const ranges = {
99
- lowest: { min: 0, max: 2 },
100
- low: { min: 0, max: 5 },
101
- medium: { min: 3, max: 10 },
102
- high: { min: 8, max: 20 },
103
- highest: { min: 15, max: Infinity },
104
- };
105
- return ranges[level];
106
- }
107
- /**
108
- * 레벨의 중앙값 반환
109
- */
110
- export function levelToMidpoint(level) {
111
- const range = levelToRange(level);
112
- if (range.max === Infinity) {
113
- return range.min + 10; // 무한대 처리
114
- }
115
- return (range.min + range.max) / 2;
116
- }
117
- /**
118
- * 프로파일의 이상적 메타 차원값 반환
119
- */
120
- export function getIdealMetaDimensions(profile) {
121
- return {
122
- security: levelToMidpoint(profile.ideal.security),
123
- context: levelToMidpoint(profile.ideal.context),
124
- behavior: levelToMidpoint(profile.ideal.behavior),
125
- };
126
- }
127
- /**
128
- * 모듈 타입으로 프로파일 조회
129
- */
130
- export function getProfile(moduleType) {
131
- return CANONICAL_PROFILES[moduleType];
132
- }
133
- /**
134
- * 값이 정준 범위 내에 있는지 확인
135
- */
136
- export function isWithinCanonicalRange(value, level, tolerance = 0) {
137
- const range = levelToRange(level);
138
- return value >= range.min - tolerance && value <= range.max + tolerance;
139
- }
140
- /**
141
- * 메타 차원이 프로파일의 정준 범위 내에 있는지 확인
142
- */
143
- export function isCanonical(meta, profile) {
144
- return (isWithinCanonicalRange(meta.security, profile.ideal.security, profile.tolerance.security) &&
145
- isWithinCanonicalRange(meta.context, profile.ideal.context, profile.tolerance.context) &&
146
- isWithinCanonicalRange(meta.behavior, profile.ideal.behavior, profile.tolerance.behavior));
147
- }
148
- /**
149
- * 모듈 타입 자동 추론 (파일 경로 기반)
150
- */
151
- export function inferModuleType(filePath) {
152
- const path = filePath.toLowerCase();
153
- // deploy 패턴
154
- if (path.includes('/deploy/') ||
155
- path.includes('/infra/') ||
156
- path.includes('/k8s/') ||
157
- path.includes('/helm/') ||
158
- path.includes('/terraform/') ||
159
- path.endsWith('.yaml') ||
160
- path.endsWith('.yml')) {
161
- return 'deploy';
162
- }
163
- // api 패턴
164
- if (path.includes('/api/') ||
165
- path.includes('/routes/') ||
166
- path.includes('/controllers/') ||
167
- path.includes('/handlers/') ||
168
- path.includes('/endpoints/')) {
169
- return 'api';
170
- }
171
- // lib 패턴
172
- if (path.includes('/lib/') ||
173
- path.includes('/utils/') ||
174
- path.includes('/helpers/') ||
175
- path.includes('/common/') ||
176
- path.includes('/shared/')) {
177
- return 'lib';
178
- }
179
- // 기본값: app
180
- return 'app';
181
- }
182
- //# sourceMappingURL=profiles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/canonical/profiles.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
1
- /**
2
- * 정준성(Canonicality) 프레임워크 타입 정의
3
- *
4
- * 햄 샌드위치 정리 기반:
5
- * - 🍞 Security: 구조 안정성
6
- * - 🧀 Context: 맥락 밀도
7
- * - 🥓 Behavior: 행동 보존성
8
- */
9
- /**
10
- * 모듈 타입 정의
11
- *
12
- * 각 타입은 독립된 문제 클래스를 형성하여
13
- * NP-hard → P 환원을 가능하게 함
14
- */
15
- export type ModuleType = 'api' | 'app' | 'lib' | 'deploy';
16
- /**
17
- * 모듈 타입 메타데이터
18
- */
19
- export interface ModuleTypeInfo {
20
- type: ModuleType;
21
- description: string;
22
- characteristics: string[];
23
- }
24
- export declare const MODULE_TYPE_INFO: Record<ModuleType, ModuleTypeInfo>;
25
- /**
26
- * 메타 차원 점수
27
- *
28
- * 기존 5개 차원을 3개 상위 축으로 집계:
29
- * - 🍞 Security: coupling + globalAccess + envDependency
30
- * - 🧀 Context: cognitive + nestingDepth + callbackDepth
31
- * - 🥓 Behavior: state + async + sideEffects
32
- */
33
- export interface MetaDimensions {
34
- /** 🍞 구조 안정성 (Security) */
35
- security: number;
36
- /** 🧀 맥락 밀도 (Context) */
37
- context: number;
38
- /** 🥓 행동 보존성 (Behavior) */
39
- behavior: number;
40
- }
41
- /**
42
- * 메타 차원 가중치
43
- */
44
- export interface MetaWeights {
45
- security: number;
46
- context: number;
47
- behavior: number;
48
- }
49
- export declare const DEFAULT_META_WEIGHTS: MetaWeights;
50
- /**
51
- * 수치 범위
52
- */
53
- export interface Range {
54
- min: number;
55
- max: number;
56
- }
57
- /**
58
- * 정준 레벨
59
- */
60
- export type CanonicalLevel = 'lowest' | 'low' | 'medium' | 'high' | 'highest';
61
- /**
62
- * 레벨별 범위 매핑
63
- */
64
- export declare const LEVEL_RANGES: Record<CanonicalLevel, Range>;
65
- /**
66
- * 모듈별 정준형 프로파일
67
- */
68
- export interface CanonicalProfile {
69
- type: ModuleType;
70
- ideal: {
71
- security: CanonicalLevel;
72
- context: CanonicalLevel;
73
- behavior: CanonicalLevel;
74
- };
75
- tolerance: {
76
- security: number;
77
- context: number;
78
- behavior: number;
79
- };
80
- }
81
- /**
82
- * 3D 벡터 (수렴 방향)
83
- */
84
- export interface Vector3D {
85
- x: number;
86
- y: number;
87
- z: number;
88
- }
89
- /**
90
- * 편차 정보
91
- */
92
- export interface Deviation {
93
- security: number;
94
- context: number;
95
- behavior: number;
96
- /** L2 norm (유클리드 거리) */
97
- total: number;
98
- }
99
- /**
100
- * 수렴 분석 결과
101
- */
102
- export interface ConvergenceResult {
103
- moduleType: ModuleType;
104
- currentState: MetaDimensions;
105
- canonicalState: MetaDimensions;
106
- deviation: Deviation;
107
- convergenceVector: Vector3D;
108
- /** 정준 상태 도달 여부 */
109
- isStable: boolean;
110
- /** 수렴률 (0-1, 1이면 완전 정준) */
111
- convergenceRate: number;
112
- }
113
- /**
114
- * 분석 스냅샷 (특정 시점의 상태)
115
- */
116
- export interface Snapshot {
117
- timestamp: number;
118
- commitHash?: string;
119
- moduleType: ModuleType;
120
- meta: MetaDimensions;
121
- functionCount: number;
122
- totalWeighted: number;
123
- }
124
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/canonical/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,CAqB/D,CAAC;AAMF;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,EAAE,WAIlC,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,KAAK,CAMtD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE;QACL,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAMD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,cAAc,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,QAAQ,CAAC;IAC5B,kBAAkB;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -1,46 +0,0 @@
1
- /**
2
- * 정준성(Canonicality) 프레임워크 타입 정의
3
- *
4
- * 햄 샌드위치 정리 기반:
5
- * - 🍞 Security: 구조 안정성
6
- * - 🧀 Context: 맥락 밀도
7
- * - 🥓 Behavior: 행동 보존성
8
- */
9
- export const MODULE_TYPE_INFO = {
10
- api: {
11
- type: 'api',
12
- description: '경계면 (internal/external)',
13
- characteristics: ['얇은 레이어', '무상태', '검증 집중'],
14
- },
15
- app: {
16
- type: 'app',
17
- description: '응용 로직',
18
- characteristics: ['상태/비동기 허용', '격리됨'],
19
- },
20
- lib: {
21
- type: 'lib',
22
- description: '재사용 라이브러리',
23
- characteristics: ['순수 함수', '고응집', '저결합'],
24
- },
25
- deploy: {
26
- type: 'deploy',
27
- description: '배포 구성',
28
- characteristics: ['선언적', '로직 최소'],
29
- },
30
- };
31
- export const DEFAULT_META_WEIGHTS = {
32
- security: 1.0,
33
- context: 1.0,
34
- behavior: 1.0,
35
- };
36
- /**
37
- * 레벨별 범위 매핑
38
- */
39
- export const LEVEL_RANGES = {
40
- lowest: { min: 0, max: 2 },
41
- low: { min: 0, max: 5 },
42
- medium: { min: 3, max: 10 },
43
- high: { min: 8, max: 20 },
44
- highest: { min: 15, max: Infinity },
45
- };
46
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/canonical/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuBH,MAAM,CAAC,MAAM,gBAAgB,GAAuC;IAClE,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,yBAAyB;QACtC,eAAe,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;KAC5C;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC;KACtC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,WAAW;QACxB,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;KACzC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;KAClC;CACF,CAAC;AAgCF,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;CACd,CAAC;AAmBF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC1B,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACvB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACzB,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;CACpC,CAAC"}
package/dist/compare.d.ts DELETED
@@ -1,31 +0,0 @@
1
- /**
2
- * McCabe 순환복잡도 vs 차원 복잡도 비교 분석기
3
- *
4
- * 사용법:
5
- * npx tsx src/compare.ts <파일경로>
6
- * npx tsx src/compare.ts <파일경로> --json
7
- * npx tsx src/compare.ts <파일경로> --threshold=10
8
- */
9
- import type { DimensionalHotspot } from './types.js';
10
- interface ComparisonResult {
11
- function: string;
12
- location: string;
13
- mccabe: number;
14
- mccabeGrade: 'low' | 'moderate' | 'high' | 'very-high';
15
- cognitive: number;
16
- cognitiveGrade: 'low' | 'moderate' | 'high' | 'very-high';
17
- dimensional: {
18
- weighted: number;
19
- control: number;
20
- nesting: number;
21
- state: number;
22
- async: number;
23
- coupling: number;
24
- };
25
- insights: string[];
26
- hotspots: DimensionalHotspot[];
27
- dimensionalRatio: number;
28
- }
29
- export declare function analyzeFile(filePath: string): ComparisonResult[];
30
- export {};
31
- //# sourceMappingURL=compare.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAA4B,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAM/E,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;IAGvD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;IAG1D,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAG/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAsID,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAmDhE"}