@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,296 @@
1
+ /**
2
+ * LLM Generator for Tier 2 Export
3
+ * SPEC-COMPONENT-001-D: Hybrid Export System
4
+ *
5
+ * Tier 2: LLM을 사용하여 커스텀 컴포넌트 생성
6
+ * - Claude API를 사용한 코드 생성
7
+ * - 생성된 코드 검증
8
+ * - 최대 3회 재시도 로직
9
+ */
10
+ import { getComponentSchema } from '@tekton-ui/core';
11
+ import { TIER1_COMPONENTS, getTier1Example } from './core-resolver.js';
12
+ /**
13
+ * 기본 설정
14
+ */
15
+ const DEFAULT_CONFIG = {
16
+ apiKey: process.env.ANTHROPIC_API_KEY || '',
17
+ model: 'claude-sonnet-4-20250514',
18
+ maxRetries: 3,
19
+ timeout: 30000,
20
+ };
21
+ /**
22
+ * LLM 컨텍스트 빌드
23
+ * 컴포넌트 생성을 위한 프롬프트 구성
24
+ *
25
+ * @param componentName - 생성할 컴포넌트 이름
26
+ * @param description - 컴포넌트 설명
27
+ * @param schema - 컴포넌트 스키마 (있는 경우)
28
+ * @returns LLM 프롬프트
29
+ */
30
+ export function buildLLMContext(componentName, description, schema) {
31
+ // Tier 1 예제들을 참조로 포함
32
+ const referenceExamples = TIER1_COMPONENTS.slice(0, 3)
33
+ .map(name => {
34
+ const result = getTier1Example(name);
35
+ return result.success ? `// Example: ${name}\n${result.code}` : '';
36
+ })
37
+ .filter(Boolean)
38
+ .join('\n\n');
39
+ let prompt = `Generate a React component following @tekton-ui/ui conventions.
40
+
41
+ ## Component Name
42
+ ${componentName}
43
+
44
+ ## Description
45
+ ${description || `A ${componentName} component`}
46
+
47
+ ## Requirements
48
+ 1. Use TypeScript with proper type definitions
49
+ 2. Use CSS Variables for theming (var(--component-property))
50
+ 3. Use @tekton-ui/ui imports where applicable
51
+ 4. Follow WCAG 2.1 AA accessibility guidelines
52
+ 5. Include proper aria attributes
53
+ 6. Export the component as named export
54
+
55
+ ## Reference Examples (from @tekton-ui/ui)
56
+ ${referenceExamples}
57
+
58
+ `;
59
+ if (schema) {
60
+ prompt += `## Component Schema
61
+ \`\`\`json
62
+ ${JSON.stringify(schema, null, 2)}
63
+ \`\`\`
64
+
65
+ `;
66
+ }
67
+ prompt += `## Output Format
68
+ Return ONLY the TypeScript code, no explanations. Start with imports.`;
69
+ return prompt;
70
+ }
71
+ /**
72
+ * 생성된 코드에서 실제 코드 추출
73
+ * 마크다운 코드 블록 등을 처리
74
+ *
75
+ * @param response - LLM 응답 텍스트
76
+ * @returns 추출된 코드
77
+ */
78
+ export function extractCodeFromResponse(response) {
79
+ // 마크다운 코드 블록 처리
80
+ const codeBlockMatch = response.match(/```(?:typescript|tsx|ts)?\n?([\s\S]*?)```/);
81
+ if (codeBlockMatch && codeBlockMatch[1]) {
82
+ return codeBlockMatch[1].trim();
83
+ }
84
+ // 코드 블록이 없으면 전체 응답 반환
85
+ return response.trim();
86
+ }
87
+ /**
88
+ * 생성된 코드 검증
89
+ *
90
+ * @param code - 검증할 코드
91
+ * @param componentName - 컴포넌트 이름
92
+ * @returns 검증 결과
93
+ */
94
+ export function validateGeneratedCode(code, componentName) {
95
+ const errors = [];
96
+ // 빈 코드 검사
97
+ if (!code || code.trim().length === 0) {
98
+ errors.push('Generated code is empty');
99
+ return { valid: false, errors };
100
+ }
101
+ // 최소 길이 검사
102
+ if (code.length < 50) {
103
+ errors.push('Generated code is too short (minimum 50 characters)');
104
+ }
105
+ // import 문 존재 확인
106
+ if (!code.includes('import')) {
107
+ errors.push('Missing import statements');
108
+ }
109
+ // export 문 존재 확인
110
+ if (!code.includes('export')) {
111
+ errors.push('Missing export statement');
112
+ }
113
+ // 컴포넌트 함수 정의 확인
114
+ const functionPatterns = [
115
+ new RegExp(`function\\s+${componentName}`),
116
+ new RegExp(`const\\s+${componentName}\\s*=`),
117
+ new RegExp(`export\\s+(default\\s+)?function\\s+${componentName}`),
118
+ ];
119
+ const hasComponentDefinition = functionPatterns.some(pattern => pattern.test(code));
120
+ if (!hasComponentDefinition) {
121
+ errors.push(`Component "${componentName}" definition not found`);
122
+ }
123
+ // return 문 확인 (JSX 반환)
124
+ if (!code.includes('return')) {
125
+ errors.push('Missing return statement');
126
+ }
127
+ // JSX 문법 확인 (기본적인 < > 태그)
128
+ if (!/<[A-Za-z]/.test(code)) {
129
+ errors.push('No JSX elements found');
130
+ }
131
+ // 구문 오류 가능성 검사
132
+ const openBraces = (code.match(/{/g) || []).length;
133
+ const closeBraces = (code.match(/}/g) || []).length;
134
+ if (openBraces !== closeBraces) {
135
+ errors.push(`Mismatched braces: ${openBraces} open, ${closeBraces} close`);
136
+ }
137
+ const openParens = (code.match(/\(/g) || []).length;
138
+ const closeParens = (code.match(/\)/g) || []).length;
139
+ if (openParens !== closeParens) {
140
+ errors.push(`Mismatched parentheses: ${openParens} open, ${closeParens} close`);
141
+ }
142
+ return {
143
+ valid: errors.length === 0,
144
+ errors,
145
+ };
146
+ }
147
+ /**
148
+ * LLM을 사용하여 컴포넌트 생성 (재시도 로직 포함)
149
+ *
150
+ * @param componentName - 생성할 컴포넌트 이름
151
+ * @param description - 컴포넌트 설명
152
+ * @param config - LLM 설정
153
+ * @returns 생성 결과
154
+ */
155
+ export async function generateWithLLM(componentName, description, config) {
156
+ const finalConfig = { ...DEFAULT_CONFIG, ...config };
157
+ // API 키 확인
158
+ if (!finalConfig.apiKey) {
159
+ return {
160
+ success: false,
161
+ componentName,
162
+ error: 'ANTHROPIC_API_KEY is not set. Please set it in environment variables.',
163
+ };
164
+ }
165
+ // 스키마 가져오기 (있는 경우)
166
+ let schema;
167
+ try {
168
+ schema = getComponentSchema(componentName);
169
+ }
170
+ catch {
171
+ // 스키마가 없어도 계속 진행
172
+ }
173
+ const prompt = buildLLMContext(componentName, description, schema);
174
+ let lastError;
175
+ let allValidationErrors = [];
176
+ for (let attempt = 1; attempt <= finalConfig.maxRetries; attempt++) {
177
+ try {
178
+ // Anthropic SDK 동적 import
179
+ const anthropicModule = await import('@anthropic-ai/sdk');
180
+ const Anthropic = anthropicModule.default || anthropicModule.Anthropic;
181
+ const client = new Anthropic({
182
+ apiKey: finalConfig.apiKey,
183
+ });
184
+ const response = await client.messages.create({
185
+ model: finalConfig.model,
186
+ max_tokens: 4096,
187
+ messages: [
188
+ {
189
+ role: 'user',
190
+ content: prompt +
191
+ (attempt > 1
192
+ ? `\n\nPrevious attempt failed validation with errors: ${allValidationErrors.join(', ')}. Please fix these issues.`
193
+ : ''),
194
+ },
195
+ ],
196
+ });
197
+ // 응답에서 텍스트 추출
198
+ const textContent = response.content.find((block) => block.type === 'text');
199
+ if (!textContent || textContent.type !== 'text') {
200
+ lastError = 'No text content in LLM response';
201
+ continue;
202
+ }
203
+ const rawCode = textContent.text;
204
+ const code = extractCodeFromResponse(rawCode);
205
+ // 코드 검증
206
+ const validation = validateGeneratedCode(code, componentName);
207
+ if (validation.valid) {
208
+ return {
209
+ success: true,
210
+ code,
211
+ componentName,
212
+ attempts: attempt,
213
+ };
214
+ }
215
+ allValidationErrors = [...allValidationErrors, ...validation.errors];
216
+ lastError = `Validation failed: ${validation.errors.join(', ')}`;
217
+ }
218
+ catch (error) {
219
+ lastError = error instanceof Error ? error.message : 'Unknown error during LLM generation';
220
+ }
221
+ }
222
+ return {
223
+ success: false,
224
+ componentName,
225
+ attempts: finalConfig.maxRetries,
226
+ validationErrors: allValidationErrors,
227
+ error: lastError || 'Max retries exceeded',
228
+ };
229
+ }
230
+ /**
231
+ * Mock LLM 생성 (테스트용)
232
+ * API 키가 없을 때 사용
233
+ *
234
+ * @param componentName - 컴포넌트 이름
235
+ * @param description - 컴포넌트 설명
236
+ * @returns Mock 생성 결과
237
+ */
238
+ export function generateMockComponent(componentName, description) {
239
+ const mockCode = `import * as React from 'react';
240
+ import { cn } from '@tekton-ui/ui';
241
+
242
+ export interface ${componentName}Props extends React.HTMLAttributes<HTMLDivElement> {
243
+ /** 컴포넌트 설명: ${description || componentName} */
244
+ children?: React.ReactNode;
245
+ }
246
+
247
+ /**
248
+ * ${componentName} Component
249
+ * ${description || `Auto-generated ${componentName} component`}
250
+ */
251
+ export const ${componentName} = React.forwardRef<HTMLDivElement, ${componentName}Props>(
252
+ ({ className, children, ...props }, ref) => {
253
+ return (
254
+ <div
255
+ ref={ref}
256
+ className={cn(
257
+ 'bg-[var(--surface-primary)] text-[var(--foreground-primary)]',
258
+ 'rounded-[var(--radius-md)] p-[var(--spacing-4)]',
259
+ className
260
+ )}
261
+ {...props}
262
+ >
263
+ {children}
264
+ </div>
265
+ );
266
+ }
267
+ );
268
+
269
+ ${componentName}.displayName = '${componentName}';
270
+ `;
271
+ return {
272
+ success: true,
273
+ code: mockCode,
274
+ componentName,
275
+ attempts: 1,
276
+ };
277
+ }
278
+ /**
279
+ * Tier 2 컴포넌트 해결
280
+ * LLM 생성 또는 Mock 생성 사용
281
+ *
282
+ * @param componentName - 컴포넌트 이름
283
+ * @param description - 컴포넌트 설명
284
+ * @param config - LLM 설정
285
+ * @returns 생성 결과
286
+ */
287
+ export async function resolveFromTier2(componentName, description, config) {
288
+ const finalConfig = { ...DEFAULT_CONFIG, ...config };
289
+ // API 키가 없으면 Mock 사용
290
+ if (!finalConfig.apiKey) {
291
+ console.warn(`[LLM Generator] ANTHROPIC_API_KEY not set, using mock generation for ${componentName}`);
292
+ return generateMockComponent(componentName, description);
293
+ }
294
+ return generateWithLLM(componentName, description, finalConfig);
295
+ }
296
+ //# sourceMappingURL=llm-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-generator.js","sourceRoot":"","sources":["../../src/generators/llm-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}