@tekton-ui/mcp-server 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +980 -0
  3. package/dist/auth/cache.d.ts +28 -0
  4. package/dist/auth/cache.d.ts.map +1 -0
  5. package/dist/auth/cache.js +48 -0
  6. package/dist/auth/cache.js.map +1 -0
  7. package/dist/auth/guard.d.ts +13 -0
  8. package/dist/auth/guard.d.ts.map +1 -0
  9. package/dist/auth/guard.js +21 -0
  10. package/dist/auth/guard.js.map +1 -0
  11. package/dist/auth/state.d.ts +32 -0
  12. package/dist/auth/state.d.ts.map +1 -0
  13. package/dist/auth/state.js +72 -0
  14. package/dist/auth/state.js.map +1 -0
  15. package/dist/auth/theme-access.d.ts +10 -0
  16. package/dist/auth/theme-access.d.ts.map +1 -0
  17. package/dist/auth/theme-access.js +24 -0
  18. package/dist/auth/theme-access.js.map +1 -0
  19. package/dist/auth/verify.d.ts +44 -0
  20. package/dist/auth/verify.d.ts.map +1 -0
  21. package/dist/auth/verify.js +77 -0
  22. package/dist/auth/verify.js.map +1 -0
  23. package/dist/cli/credentials.d.ts +29 -0
  24. package/dist/cli/credentials.d.ts.map +1 -0
  25. package/dist/cli/credentials.js +66 -0
  26. package/dist/cli/credentials.js.map +1 -0
  27. package/dist/cli/index.d.ts +7 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +36 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/cli/login.d.ts +9 -0
  32. package/dist/cli/login.d.ts.map +1 -0
  33. package/dist/cli/login.js +120 -0
  34. package/dist/cli/login.js.map +1 -0
  35. package/dist/cli/logout.d.ts +9 -0
  36. package/dist/cli/logout.d.ts.map +1 -0
  37. package/dist/cli/logout.js +18 -0
  38. package/dist/cli/logout.js.map +1 -0
  39. package/dist/cli/status.d.ts +9 -0
  40. package/dist/cli/status.d.ts.map +1 -0
  41. package/dist/cli/status.js +31 -0
  42. package/dist/cli/status.js.map +1 -0
  43. package/dist/data/component-registry.d.ts +30 -0
  44. package/dist/data/component-registry.d.ts.map +1 -0
  45. package/dist/data/component-registry.js +320 -0
  46. package/dist/data/component-registry.js.map +1 -0
  47. package/dist/data/examples/screen-examples.d.ts +38 -0
  48. package/dist/data/examples/screen-examples.d.ts.map +1 -0
  49. package/dist/data/examples/screen-examples.js +500 -0
  50. package/dist/data/examples/screen-examples.js.map +1 -0
  51. package/dist/data/hint-generator.d.ts +16 -0
  52. package/dist/data/hint-generator.d.ts.map +1 -0
  53. package/dist/data/hint-generator.js +298 -0
  54. package/dist/data/hint-generator.js.map +1 -0
  55. package/dist/data/recipe-resolver.d.ts +48 -0
  56. package/dist/data/recipe-resolver.d.ts.map +1 -0
  57. package/dist/data/recipe-resolver.js +226 -0
  58. package/dist/data/recipe-resolver.js.map +1 -0
  59. package/dist/data/template-matcher.d.ts +50 -0
  60. package/dist/data/template-matcher.d.ts.map +1 -0
  61. package/dist/data/template-matcher.js +240 -0
  62. package/dist/data/template-matcher.js.map +1 -0
  63. package/dist/generators/core-resolver.d.ts +56 -0
  64. package/dist/generators/core-resolver.d.ts.map +1 -0
  65. package/dist/generators/core-resolver.js +490 -0
  66. package/dist/generators/core-resolver.js.map +1 -0
  67. package/dist/generators/css-generator.d.ts +49 -0
  68. package/dist/generators/css-generator.d.ts.map +1 -0
  69. package/dist/generators/css-generator.js +294 -0
  70. package/dist/generators/css-generator.js.map +1 -0
  71. package/dist/generators/index.d.ts +13 -0
  72. package/dist/generators/index.d.ts.map +1 -0
  73. package/dist/generators/index.js +16 -0
  74. package/dist/generators/index.js.map +1 -0
  75. package/dist/generators/llm-generator.d.ts +96 -0
  76. package/dist/generators/llm-generator.d.ts.map +1 -0
  77. package/dist/generators/llm-generator.js +296 -0
  78. package/dist/generators/llm-generator.js.map +1 -0
  79. package/dist/index.d.ts +3 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +818 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/schemas/mcp-schemas.d.ts +4132 -0
  84. package/dist/schemas/mcp-schemas.d.ts.map +1 -0
  85. package/dist/schemas/mcp-schemas.js +946 -0
  86. package/dist/schemas/mcp-schemas.js.map +1 -0
  87. package/dist/storage/blueprint-storage.d.ts +68 -0
  88. package/dist/storage/blueprint-storage.d.ts.map +1 -0
  89. package/dist/storage/blueprint-storage.js +135 -0
  90. package/dist/storage/blueprint-storage.js.map +1 -0
  91. package/dist/storage/timestamp-manager.d.ts +32 -0
  92. package/dist/storage/timestamp-manager.d.ts.map +1 -0
  93. package/dist/storage/timestamp-manager.js +59 -0
  94. package/dist/storage/timestamp-manager.js.map +1 -0
  95. package/dist/tools/export-screen.d.ts +34 -0
  96. package/dist/tools/export-screen.d.ts.map +1 -0
  97. package/dist/tools/export-screen.js +344 -0
  98. package/dist/tools/export-screen.js.map +1 -0
  99. package/dist/tools/generate-blueprint.d.ts +15 -0
  100. package/dist/tools/generate-blueprint.d.ts.map +1 -0
  101. package/dist/tools/generate-blueprint.js +165 -0
  102. package/dist/tools/generate-blueprint.js.map +1 -0
  103. package/dist/tools/generate-screen.d.ts +13 -0
  104. package/dist/tools/generate-screen.d.ts.map +1 -0
  105. package/dist/tools/generate-screen.js +82 -0
  106. package/dist/tools/generate-screen.js.map +1 -0
  107. package/dist/tools/get-screen-generation-context.d.ts +11 -0
  108. package/dist/tools/get-screen-generation-context.d.ts.map +1 -0
  109. package/dist/tools/get-screen-generation-context.js +316 -0
  110. package/dist/tools/get-screen-generation-context.js.map +1 -0
  111. package/dist/tools/list-components.d.ts +15 -0
  112. package/dist/tools/list-components.d.ts.map +1 -0
  113. package/dist/tools/list-components.js +46 -0
  114. package/dist/tools/list-components.js.map +1 -0
  115. package/dist/tools/list-icon-libraries.d.ts +12 -0
  116. package/dist/tools/list-icon-libraries.d.ts.map +1 -0
  117. package/dist/tools/list-icon-libraries.js +48 -0
  118. package/dist/tools/list-icon-libraries.js.map +1 -0
  119. package/dist/tools/list-screen-templates.d.ts +15 -0
  120. package/dist/tools/list-screen-templates.d.ts.map +1 -0
  121. package/dist/tools/list-screen-templates.js +63 -0
  122. package/dist/tools/list-screen-templates.js.map +1 -0
  123. package/dist/tools/list-themes.d.ts +13 -0
  124. package/dist/tools/list-themes.d.ts.map +1 -0
  125. package/dist/tools/list-themes.js +42 -0
  126. package/dist/tools/list-themes.js.map +1 -0
  127. package/dist/tools/list-tokens.d.ts +13 -0
  128. package/dist/tools/list-tokens.d.ts.map +1 -0
  129. package/dist/tools/list-tokens.js +92 -0
  130. package/dist/tools/list-tokens.js.map +1 -0
  131. package/dist/tools/preview-component.d.ts +18 -0
  132. package/dist/tools/preview-component.d.ts.map +1 -0
  133. package/dist/tools/preview-component.js +178 -0
  134. package/dist/tools/preview-component.js.map +1 -0
  135. package/dist/tools/preview-icon-library.d.ts +13 -0
  136. package/dist/tools/preview-icon-library.d.ts.map +1 -0
  137. package/dist/tools/preview-icon-library.js +63 -0
  138. package/dist/tools/preview-icon-library.js.map +1 -0
  139. package/dist/tools/preview-screen-template.d.ts +18 -0
  140. package/dist/tools/preview-screen-template.d.ts.map +1 -0
  141. package/dist/tools/preview-screen-template.js +101 -0
  142. package/dist/tools/preview-screen-template.js.map +1 -0
  143. package/dist/tools/preview-theme.d.ts +15 -0
  144. package/dist/tools/preview-theme.d.ts.map +1 -0
  145. package/dist/tools/preview-theme.js +71 -0
  146. package/dist/tools/preview-theme.js.map +1 -0
  147. package/dist/tools/validate-environment.d.ts +37 -0
  148. package/dist/tools/validate-environment.d.ts.map +1 -0
  149. package/dist/tools/validate-environment.js +153 -0
  150. package/dist/tools/validate-environment.js.map +1 -0
  151. package/dist/tools/validate-screen-definition.d.ts +10 -0
  152. package/dist/tools/validate-screen-definition.d.ts.map +1 -0
  153. package/dist/tools/validate-screen-definition.js +463 -0
  154. package/dist/tools/validate-screen-definition.js.map +1 -0
  155. package/dist/tools/validate-screen.d.ts +13 -0
  156. package/dist/tools/validate-screen.d.ts.map +1 -0
  157. package/dist/tools/validate-screen.js +106 -0
  158. package/dist/tools/validate-screen.js.map +1 -0
  159. package/dist/utils/dependency-extractor.d.ts +13 -0
  160. package/dist/utils/dependency-extractor.d.ts.map +1 -0
  161. package/dist/utils/dependency-extractor.js +232 -0
  162. package/dist/utils/dependency-extractor.js.map +1 -0
  163. package/dist/utils/error-handler.d.ts +29 -0
  164. package/dist/utils/error-handler.d.ts.map +1 -0
  165. package/dist/utils/error-handler.js +48 -0
  166. package/dist/utils/error-handler.js.map +1 -0
  167. package/dist/utils/logger.d.ts +8 -0
  168. package/dist/utils/logger.d.ts.map +1 -0
  169. package/dist/utils/logger.js +14 -0
  170. package/dist/utils/logger.js.map +1 -0
  171. package/dist/utils/package-json-reader.d.ts +37 -0
  172. package/dist/utils/package-json-reader.d.ts.map +1 -0
  173. package/dist/utils/package-json-reader.js +108 -0
  174. package/dist/utils/package-json-reader.js.map +1 -0
  175. package/dist/utils/tailwind-config-reader.d.ts +23 -0
  176. package/dist/utils/tailwind-config-reader.d.ts.map +1 -0
  177. package/dist/utils/tailwind-config-reader.js +81 -0
  178. package/dist/utils/tailwind-config-reader.js.map +1 -0
  179. package/package.json +72 -0
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Template Matcher Module
3
+ * SPEC-MCP-004 Phase 3: Blueprint Generator Enhancement
4
+ *
5
+ * 자연어 설명에서 최적의 Screen Template을 매칭합니다.
6
+ */
7
+ import { templateRegistry } from '@tekton-ui/ui';
8
+ /**
9
+ * 키워드-템플릿 매핑 정의
10
+ * 각 템플릿 ID에 대해 관련 키워드를 정의
11
+ */
12
+ const KEYWORD_TEMPLATE_MAP = {
13
+ // Auth Templates
14
+ 'auth.login': [
15
+ 'login',
16
+ 'sign in',
17
+ 'signin',
18
+ 'log in',
19
+ '로그인',
20
+ 'authentication',
21
+ 'auth page',
22
+ 'user login',
23
+ 'member login',
24
+ 'ログイン',
25
+ '登录',
26
+ ],
27
+ 'auth.signup': [
28
+ 'signup',
29
+ 'sign up',
30
+ 'register',
31
+ 'registration',
32
+ 'create account',
33
+ '회원가입',
34
+ 'new user',
35
+ 'join',
36
+ 'サインアップ',
37
+ '注册',
38
+ ],
39
+ 'auth.forgot-password': [
40
+ 'forgot password',
41
+ 'reset password',
42
+ 'password recovery',
43
+ '비밀번호 찾기',
44
+ 'recover account',
45
+ 'パスワードリセット',
46
+ '忘记密码',
47
+ ],
48
+ 'auth.verification': [
49
+ 'verification',
50
+ 'verify',
51
+ 'confirm email',
52
+ 'otp',
53
+ '인증',
54
+ 'code verification',
55
+ '認証',
56
+ '验证',
57
+ ],
58
+ // Dashboard Templates
59
+ 'dashboard.overview': [
60
+ 'dashboard',
61
+ 'analytics',
62
+ 'metrics',
63
+ 'stats',
64
+ 'statistics',
65
+ '대시보드',
66
+ 'admin panel',
67
+ 'overview',
68
+ 'kpi',
69
+ 'ダッシュボード',
70
+ '仪表板',
71
+ ],
72
+ // Core Templates
73
+ 'core.landing': [
74
+ 'landing',
75
+ 'landing page',
76
+ 'home',
77
+ 'homepage',
78
+ '랜딩',
79
+ 'hero',
80
+ 'marketing page',
81
+ 'ランディング',
82
+ '首页',
83
+ ],
84
+ 'core.profile': [
85
+ 'profile',
86
+ 'user profile',
87
+ 'my page',
88
+ '프로필',
89
+ 'account',
90
+ 'my account',
91
+ 'プロフィール',
92
+ '个人资料',
93
+ ],
94
+ 'core.preferences': [
95
+ 'settings',
96
+ 'preferences',
97
+ 'configuration',
98
+ '설정',
99
+ 'options',
100
+ 'config',
101
+ '設定',
102
+ '设置',
103
+ ],
104
+ // Feedback Templates
105
+ 'feedback.loading': ['loading', 'spinner', 'wait', '로딩', 'progress', 'ローディング', '加载中'],
106
+ 'feedback.error': ['error', '404', '500', 'not found', '오류', 'error page', 'エラー', '错误'],
107
+ 'feedback.empty': [
108
+ 'empty',
109
+ 'no data',
110
+ 'no results',
111
+ '빈 화면',
112
+ 'empty state',
113
+ 'nothing found',
114
+ '空',
115
+ '空状态',
116
+ ],
117
+ 'feedback.confirmation': [
118
+ 'confirm',
119
+ 'confirmation',
120
+ 'are you sure',
121
+ '확인',
122
+ 'modal confirm',
123
+ '確認',
124
+ '确认',
125
+ ],
126
+ 'feedback.success': [
127
+ 'success',
128
+ 'completed',
129
+ 'done',
130
+ '성공',
131
+ 'thank you',
132
+ 'congratulations',
133
+ '成功',
134
+ '成功',
135
+ ],
136
+ };
137
+ /**
138
+ * 템플릿 카테고리별 Shell/Page 토큰 권장 매핑
139
+ */
140
+ export const TEMPLATE_LAYOUT_RECOMMENDATIONS = {
141
+ auth: {
142
+ shell: 'shell.web.auth',
143
+ page: 'page.wizard',
144
+ description: 'Centered layout for authentication flows',
145
+ },
146
+ dashboard: {
147
+ shell: 'shell.web.dashboard',
148
+ page: 'page.dashboard',
149
+ description: 'Admin layout with sidebar for analytics',
150
+ },
151
+ core: {
152
+ shell: 'shell.web.app',
153
+ page: 'page.resource',
154
+ description: 'Standard app layout for content pages',
155
+ },
156
+ feedback: {
157
+ shell: 'shell.web.minimal',
158
+ page: 'page.empty',
159
+ description: 'Minimal layout for feedback states',
160
+ },
161
+ marketing: {
162
+ shell: 'shell.web.marketing',
163
+ page: 'page.detail',
164
+ description: 'Full-width layout for marketing pages',
165
+ },
166
+ };
167
+ /**
168
+ * 설명과 키워드 간 매칭 점수 계산
169
+ */
170
+ function calculateMatchScore(description, keywords) {
171
+ const normalizedDesc = description.toLowerCase();
172
+ const matched = [];
173
+ let score = 0;
174
+ for (const keyword of keywords) {
175
+ if (normalizedDesc.includes(keyword.toLowerCase())) {
176
+ matched.push(keyword);
177
+ // 긴 키워드에 더 높은 점수 부여
178
+ score += keyword.split(' ').length * 10;
179
+ }
180
+ }
181
+ return { score, matched };
182
+ }
183
+ /**
184
+ * 자연어 설명에서 최적의 템플릿 매칭
185
+ *
186
+ * @param description - 사용자의 자연어 화면 설명
187
+ * @param topN - 반환할 상위 N개 결과 (기본: 3)
188
+ * @returns 매칭된 템플릿 결과 배열 (신뢰도순 정렬)
189
+ */
190
+ export function matchTemplates(description, topN = 3) {
191
+ const results = [];
192
+ // 각 템플릿 키워드와 매칭
193
+ for (const [templateId, keywords] of Object.entries(KEYWORD_TEMPLATE_MAP)) {
194
+ const { score, matched } = calculateMatchScore(description, keywords);
195
+ if (score > 0) {
196
+ // 템플릿 메타데이터 가져오기
197
+ const template = templateRegistry.get(templateId);
198
+ const category = templateId.split('.')[0] || 'core';
199
+ results.push({
200
+ templateId,
201
+ templateName: template?.name || templateId,
202
+ category,
203
+ confidence: Math.min(100, score), // 0-100 범위로 제한
204
+ matchedKeywords: matched,
205
+ layoutRecommendation: TEMPLATE_LAYOUT_RECOMMENDATIONS[category] || {
206
+ shell: 'shell.web.app',
207
+ page: 'page.resource',
208
+ description: 'Default app layout',
209
+ },
210
+ });
211
+ }
212
+ }
213
+ // 신뢰도순 정렬 후 상위 N개 반환
214
+ return results.sort((a, b) => b.confidence - a.confidence).slice(0, topN);
215
+ }
216
+ /**
217
+ * 최적 단일 템플릿 반환
218
+ */
219
+ export function getBestMatch(description) {
220
+ const matches = matchTemplates(description, 1);
221
+ const firstMatch = matches[0];
222
+ return firstMatch ?? null;
223
+ }
224
+ /**
225
+ * 템플릿 ID로 레이아웃 권장사항 조회
226
+ */
227
+ export function getLayoutRecommendation(templateId) {
228
+ const category = templateId.split('.')[0];
229
+ if (!category) {
230
+ return null;
231
+ }
232
+ return TEMPLATE_LAYOUT_RECOMMENDATIONS[category] || null;
233
+ }
234
+ /**
235
+ * 모든 템플릿 키워드 목록 조회 (디버깅용)
236
+ */
237
+ export function getAllKeywordMappings() {
238
+ return { ...KEYWORD_TEMPLATE_MAP };
239
+ }
240
+ //# sourceMappingURL=template-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-matcher.js","sourceRoot":"","sources":["../../src/data/template-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Core Resolver for Tier 1 Export
3
+ * SPEC-COMPONENT-001-D: Hybrid Export System
4
+ *
5
+ * Tier 1: UI 라이브러리에서 컴포넌트 코드를 직접 가져옴
6
+ * - @tekton-ui/ui 패키지의 실제 구현을 참조
7
+ * - 사전 정의된 컴포넌트 템플릿 제공
8
+ */
9
+ /**
10
+ * 컴포넌트 해결 결과 타입
11
+ */
12
+ export interface ComponentResolutionResult {
13
+ success: boolean;
14
+ code?: string;
15
+ componentName?: string;
16
+ source?: 'tier1-ui' | 'tier1-example' | 'tier2-llm';
17
+ error?: string;
18
+ }
19
+ /**
20
+ * @tekton-ui/ui에서 지원하는 컴포넌트 목록
21
+ */
22
+ export declare const TIER1_COMPONENTS: string[];
23
+ /**
24
+ * Tier 1 컴포넌트인지 확인
25
+ */
26
+ export declare function isTier1Component(componentName: string): boolean;
27
+ /**
28
+ * Tier 1 예제 코드 가져오기
29
+ *
30
+ * @param componentName - 컴포넌트 이름
31
+ * @returns 해당 컴포넌트의 예제 코드
32
+ */
33
+ export declare function getTier1Example(componentName: string): ComponentResolutionResult;
34
+ /**
35
+ * @tekton-ui/ui 패키지에서 실제 컴포넌트 소스 코드 가져오기
36
+ *
37
+ * @param componentName - 컴포넌트 이름
38
+ * @returns 컴포넌트 소스 코드
39
+ */
40
+ export declare function getTier1Source(componentName: string): ComponentResolutionResult;
41
+ /**
42
+ * Tier 1에서 컴포넌트 해결 (예제 우선, 소스 fallback)
43
+ *
44
+ * @param componentName - 컴포넌트 이름
45
+ * @param preferSource - true면 소스 코드 우선, false면 예제 우선
46
+ * @returns 컴포넌트 해결 결과
47
+ */
48
+ export declare function resolveFromTier1(componentName: string, preferSource?: boolean): ComponentResolutionResult;
49
+ /**
50
+ * 여러 컴포넌트 해결
51
+ *
52
+ * @param componentNames - 컴포넌트 이름 배열
53
+ * @returns 각 컴포넌트의 해결 결과
54
+ */
55
+ export declare function resolveMultipleFromTier1(componentNames: string[]): Map<string, ComponentResolutionResult>;
56
+ //# sourceMappingURL=core-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-resolver.d.ts","sourceRoot":"","sources":["../../src/generators/core-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,GAAG,eAAe,GAAG,WAAW,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA6WD;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAA8B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,yBAAyB,CAgBhF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,yBAAyB,CA6D/E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,YAAY,UAAQ,GACnB,yBAAyB,CAmB3B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EAAE,GACvB,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAQxC"}