@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,294 @@
1
+ /**
2
+ * CSS Generator for MCP Server (v2.1)
3
+ * SPEC-COMPONENT-001-D: Hybrid Export System
4
+ *
5
+ * Generates CSS Variables from ThemeV2 (v2.1 theme schema)
6
+ */
7
+ import { loadTheme, oklchToCSS } from '@tekton-ui/core';
8
+ /**
9
+ * ThemeV2 (v2.1)에서 CSS Variables 생성
10
+ *
11
+ * @param theme - ThemeV2 객체
12
+ * @returns CSS 생성 결과
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const theme = loadTheme('atlantic-magazine-v1');
17
+ * if (theme) {
18
+ * const result = generateCSS(theme);
19
+ * if (result.success) {
20
+ * console.log(result.css);
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ export function generateCSS(theme) {
26
+ try {
27
+ const lines = [
28
+ `/* Generated by Tekton - Theme: ${theme.id} */`,
29
+ `/* Schema Version: ${theme.schemaVersion} */`,
30
+ '',
31
+ ':root {',
32
+ ];
33
+ // ========================================================================
34
+ // Layer 1: Atomic Tokens
35
+ // ========================================================================
36
+ lines.push(' /* === Layer 1: Atomic Tokens === */');
37
+ // Colors (OKLCH format)
38
+ const { color } = theme.tokens.atomic;
39
+ if (color.brand) {
40
+ for (const [shade, oklch] of Object.entries(color.brand)) {
41
+ lines.push(` --color-brand-${shade}: ${oklchToCSS(oklch)};`);
42
+ }
43
+ }
44
+ if (color.neutral) {
45
+ for (const [shade, oklch] of Object.entries(color.neutral)) {
46
+ lines.push(` --color-neutral-${shade}: ${oklchToCSS(oklch)};`);
47
+ }
48
+ }
49
+ if (color.accent) {
50
+ for (const [shade, oklch] of Object.entries(color.accent)) {
51
+ lines.push(` --color-accent-${shade}: ${oklchToCSS(oklch)};`);
52
+ }
53
+ }
54
+ if (color.success) {
55
+ lines.push(` --color-success: ${oklchToCSS(color.success)};`);
56
+ }
57
+ if (color.warning) {
58
+ lines.push(` --color-warning: ${oklchToCSS(color.warning)};`);
59
+ }
60
+ if (color.error) {
61
+ lines.push(` --color-error: ${oklchToCSS(color.error)};`);
62
+ }
63
+ if (color.info) {
64
+ lines.push(` --color-info: ${oklchToCSS(color.info)};`);
65
+ }
66
+ // Spacing
67
+ lines.push('');
68
+ for (const [size, value] of Object.entries(theme.tokens.atomic.spacing)) {
69
+ lines.push(` --spacing-${size}: ${value};`);
70
+ }
71
+ // Radius
72
+ lines.push('');
73
+ for (const [size, value] of Object.entries(theme.tokens.atomic.radius)) {
74
+ lines.push(` --radius-${size}: ${value};`);
75
+ }
76
+ // ========================================================================
77
+ // Typography
78
+ // ========================================================================
79
+ lines.push('');
80
+ lines.push(' /* === Typography === */');
81
+ const { typography } = theme;
82
+ if (typography.fontFamily) {
83
+ for (const [name, value] of Object.entries(typography.fontFamily)) {
84
+ lines.push(` --font-family-${name}: ${value};`);
85
+ }
86
+ }
87
+ if (typography.fontSize) {
88
+ for (const [name, value] of Object.entries(typography.fontSize)) {
89
+ lines.push(` --font-size-${name}: ${value};`);
90
+ }
91
+ }
92
+ if (typography.fontWeight) {
93
+ for (const [name, value] of Object.entries(typography.fontWeight)) {
94
+ lines.push(` --font-weight-${name}: ${value};`);
95
+ }
96
+ }
97
+ if (typography.lineHeight) {
98
+ for (const [name, value] of Object.entries(typography.lineHeight)) {
99
+ lines.push(` --line-height-${name}: ${value};`);
100
+ }
101
+ }
102
+ if (typography.letterSpacing) {
103
+ for (const [name, value] of Object.entries(typography.letterSpacing)) {
104
+ lines.push(` --letter-spacing-${name}: ${value};`);
105
+ }
106
+ }
107
+ // ========================================================================
108
+ // Border
109
+ // ========================================================================
110
+ lines.push('');
111
+ lines.push(' /* === Border === */');
112
+ const { border } = theme;
113
+ if (border.width) {
114
+ for (const [name, value] of Object.entries(border.width)) {
115
+ lines.push(` --border-width-${name}: ${value};`);
116
+ }
117
+ }
118
+ if (border.radius) {
119
+ for (const [name, value] of Object.entries(border.radius)) {
120
+ lines.push(` --border-radius-${name}: ${value};`);
121
+ }
122
+ }
123
+ // ========================================================================
124
+ // Elevation
125
+ // ========================================================================
126
+ lines.push('');
127
+ lines.push(' /* === Elevation === */');
128
+ const { elevation } = theme;
129
+ if (elevation.level) {
130
+ for (const [name, value] of Object.entries(elevation.level)) {
131
+ lines.push(` --elevation-${name}: ${value};`);
132
+ }
133
+ }
134
+ // ========================================================================
135
+ // Motion
136
+ // ========================================================================
137
+ lines.push('');
138
+ lines.push(' /* === Motion === */');
139
+ const { motion } = theme;
140
+ if (motion.duration) {
141
+ for (const [name, value] of Object.entries(motion.duration)) {
142
+ lines.push(` --duration-${name}: ${value};`);
143
+ }
144
+ }
145
+ if (motion.easing) {
146
+ for (const [name, value] of Object.entries(motion.easing)) {
147
+ lines.push(` --easing-${name}: ${value};`);
148
+ }
149
+ }
150
+ // ========================================================================
151
+ // State Layer
152
+ // ========================================================================
153
+ lines.push('');
154
+ lines.push(' /* === State Layer === */');
155
+ const { stateLayer } = theme;
156
+ if (stateLayer.hover?.opacity !== undefined) {
157
+ lines.push(` --state-hover-opacity: ${stateLayer.hover.opacity};`);
158
+ }
159
+ if (stateLayer.pressed?.opacity !== undefined) {
160
+ lines.push(` --state-pressed-opacity: ${stateLayer.pressed.opacity};`);
161
+ }
162
+ if (stateLayer.focus?.opacity !== undefined) {
163
+ lines.push(` --state-focus-opacity: ${stateLayer.focus.opacity};`);
164
+ }
165
+ if (stateLayer.disabled?.opacity !== undefined) {
166
+ lines.push(` --state-disabled-opacity: ${stateLayer.disabled.opacity};`);
167
+ }
168
+ // ========================================================================
169
+ // Layer 2: Semantic Tokens
170
+ // ========================================================================
171
+ lines.push('');
172
+ lines.push(' /* === Layer 2: Semantic Tokens === */');
173
+ const { semantic } = theme.tokens;
174
+ // Background
175
+ if (semantic.background) {
176
+ if (semantic.background.canvas) {
177
+ lines.push(` --bg-canvas: ${semantic.background.canvas};`);
178
+ }
179
+ if (semantic.background.surface) {
180
+ for (const [name, value] of Object.entries(semantic.background.surface)) {
181
+ lines.push(` --bg-surface-${name}: ${value};`);
182
+ }
183
+ }
184
+ if (semantic.background.elevated) {
185
+ for (const [name, value] of Object.entries(semantic.background.elevated)) {
186
+ lines.push(` --bg-elevated-${name}: ${value};`);
187
+ }
188
+ }
189
+ }
190
+ // Foreground
191
+ if (semantic.foreground) {
192
+ if (semantic.foreground.primary) {
193
+ for (const [name, value] of Object.entries(semantic.foreground.primary)) {
194
+ lines.push(` --fg-primary-${name}: ${value};`);
195
+ }
196
+ }
197
+ if (semantic.foreground.secondary) {
198
+ for (const [name, value] of Object.entries(semantic.foreground.secondary)) {
199
+ lines.push(` --fg-secondary-${name}: ${value};`);
200
+ }
201
+ }
202
+ if (semantic.foreground.disabled) {
203
+ lines.push(` --fg-disabled: ${semantic.foreground.disabled};`);
204
+ }
205
+ if (semantic.foreground.placeholder) {
206
+ lines.push(` --fg-placeholder: ${semantic.foreground.placeholder};`);
207
+ }
208
+ }
209
+ // Border
210
+ if (semantic.border) {
211
+ if (semantic.border.default) {
212
+ for (const [name, value] of Object.entries(semantic.border.default)) {
213
+ lines.push(` --border-${name}: ${value};`);
214
+ }
215
+ }
216
+ if (semantic.border.focus) {
217
+ lines.push(` --border-focus: ${semantic.border.focus};`);
218
+ }
219
+ if (semantic.border.error) {
220
+ lines.push(` --border-error: ${semantic.border.error};`);
221
+ }
222
+ if (semantic.border.success) {
223
+ lines.push(` --border-success: ${semantic.border.success};`);
224
+ }
225
+ }
226
+ lines.push('}');
227
+ // ========================================================================
228
+ // Dark Mode (if present)
229
+ // ========================================================================
230
+ if (theme.darkMode?.tokens?.semantic) {
231
+ lines.push('');
232
+ lines.push('.dark {');
233
+ lines.push(' /* === Dark Mode Overrides === */');
234
+ const darkSemantic = theme.darkMode.tokens.semantic;
235
+ if (darkSemantic.background?.canvas) {
236
+ lines.push(` --bg-canvas: ${darkSemantic.background.canvas};`);
237
+ }
238
+ if (darkSemantic.background?.surface) {
239
+ for (const [name, value] of Object.entries(darkSemantic.background.surface)) {
240
+ lines.push(` --bg-surface-${name}: ${value};`);
241
+ }
242
+ }
243
+ lines.push('}');
244
+ }
245
+ return {
246
+ success: true,
247
+ css: lines.join('\n'),
248
+ };
249
+ }
250
+ catch (error) {
251
+ return {
252
+ success: false,
253
+ error: error instanceof Error ? error.message : 'Unknown error during CSS generation',
254
+ };
255
+ }
256
+ }
257
+ /**
258
+ * 테마 ID로 CSS 생성
259
+ *
260
+ * @param themeId - 테마 ID
261
+ * @returns CSS 생성 결과
262
+ */
263
+ export function generateCSSFromThemeId(themeId) {
264
+ const theme = loadTheme(themeId);
265
+ if (!theme) {
266
+ return {
267
+ success: false,
268
+ error: `Theme not found: ${themeId}`,
269
+ };
270
+ }
271
+ return generateCSS(theme);
272
+ }
273
+ /**
274
+ * CSS Variables만 추출 (전체 CSS 대신)
275
+ *
276
+ * @param theme - ThemeV2 객체
277
+ * @returns CSS Variables 객체 (key-value 쌍)
278
+ */
279
+ export function extractCSSVariables(theme) {
280
+ const result = generateCSS(theme);
281
+ if (!result.success || !result.css) {
282
+ return {};
283
+ }
284
+ const variables = {};
285
+ const variableRegex = /--([\w-]+):\s*([^;]+);/g;
286
+ let match;
287
+ while ((match = variableRegex.exec(result.css)) !== null) {
288
+ if (match[1] && match[2]) {
289
+ variables[`--${match[1]}`] = match[2].trim();
290
+ }
291
+ }
292
+ return variables;
293
+ }
294
+ //# sourceMappingURL=css-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-generator.js","sourceRoot":"","sources":["../../src/generators/css-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generators Module Index
3
+ * SPEC-COMPONENT-001-D: Hybrid Export System
4
+ *
5
+ * 3계층 Export 시스템:
6
+ * - CSS Generator: 테마에서 CSS Variables 생성
7
+ * - Core Resolver (Tier 1): @tekton-ui/ui에서 컴포넌트 가져오기
8
+ * - LLM Generator (Tier 2): Claude API로 커스텀 컴포넌트 생성
9
+ */
10
+ export { generateCSS, generateCSSFromThemeId, extractCSSVariables, type CSSGenerationResult, type ThemeV2, } from './css-generator.js';
11
+ export { isTier1Component, getTier1Example, getTier1Source, resolveFromTier1, resolveMultipleFromTier1, TIER1_COMPONENTS, type ComponentResolutionResult, } from './core-resolver.js';
12
+ export { generateWithLLM, generateMockComponent, resolveFromTier2, buildLLMContext, extractCodeFromResponse, validateGeneratedCode, type LLMGeneratorConfig, type LLMGenerationResult, type ValidationResult, } from './llm-generator.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generators Module Index
3
+ * SPEC-COMPONENT-001-D: Hybrid Export System
4
+ *
5
+ * 3계층 Export 시스템:
6
+ * - CSS Generator: 테마에서 CSS Variables 생성
7
+ * - Core Resolver (Tier 1): @tekton-ui/ui에서 컴포넌트 가져오기
8
+ * - LLM Generator (Tier 2): Claude API로 커스텀 컴포넌트 생성
9
+ */
10
+ // CSS Generator
11
+ export { generateCSS, generateCSSFromThemeId, extractCSSVariables, } from './css-generator.js';
12
+ // Core Resolver (Tier 1)
13
+ export { isTier1Component, getTier1Example, getTier1Source, resolveFromTier1, resolveMultipleFromTier1, TIER1_COMPONENTS, } from './core-resolver.js';
14
+ // LLM Generator (Tier 2)
15
+ export { generateWithLLM, generateMockComponent, resolveFromTier2, buildLLMContext, extractCodeFromResponse, validateGeneratedCode, } from './llm-generator.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,GAItB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,96 @@
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 { type ComponentSchema } from '@tekton-ui/core';
11
+ /**
12
+ * LLM 생성 설정
13
+ */
14
+ export interface LLMGeneratorConfig {
15
+ /** Anthropic API 키 (환경변수에서 가져옴) */
16
+ apiKey?: string;
17
+ /** 사용할 모델 */
18
+ model?: string;
19
+ /** 최대 재시도 횟수 */
20
+ maxRetries?: number;
21
+ /** 타임아웃 (밀리초) */
22
+ timeout?: number;
23
+ }
24
+ /**
25
+ * LLM 생성 결과
26
+ */
27
+ export interface LLMGenerationResult {
28
+ success: boolean;
29
+ code?: string;
30
+ componentName?: string;
31
+ attempts?: number;
32
+ validationErrors?: string[];
33
+ error?: string;
34
+ }
35
+ /**
36
+ * 코드 검증 결과
37
+ */
38
+ export interface ValidationResult {
39
+ valid: boolean;
40
+ errors: string[];
41
+ }
42
+ /**
43
+ * LLM 컨텍스트 빌드
44
+ * 컴포넌트 생성을 위한 프롬프트 구성
45
+ *
46
+ * @param componentName - 생성할 컴포넌트 이름
47
+ * @param description - 컴포넌트 설명
48
+ * @param schema - 컴포넌트 스키마 (있는 경우)
49
+ * @returns LLM 프롬프트
50
+ */
51
+ export declare function buildLLMContext(componentName: string, description?: string, schema?: ComponentSchema): string;
52
+ /**
53
+ * 생성된 코드에서 실제 코드 추출
54
+ * 마크다운 코드 블록 등을 처리
55
+ *
56
+ * @param response - LLM 응답 텍스트
57
+ * @returns 추출된 코드
58
+ */
59
+ export declare function extractCodeFromResponse(response: string): string;
60
+ /**
61
+ * 생성된 코드 검증
62
+ *
63
+ * @param code - 검증할 코드
64
+ * @param componentName - 컴포넌트 이름
65
+ * @returns 검증 결과
66
+ */
67
+ export declare function validateGeneratedCode(code: string, componentName: string): ValidationResult;
68
+ /**
69
+ * LLM을 사용하여 컴포넌트 생성 (재시도 로직 포함)
70
+ *
71
+ * @param componentName - 생성할 컴포넌트 이름
72
+ * @param description - 컴포넌트 설명
73
+ * @param config - LLM 설정
74
+ * @returns 생성 결과
75
+ */
76
+ export declare function generateWithLLM(componentName: string, description?: string, config?: LLMGeneratorConfig): Promise<LLMGenerationResult>;
77
+ /**
78
+ * Mock LLM 생성 (테스트용)
79
+ * API 키가 없을 때 사용
80
+ *
81
+ * @param componentName - 컴포넌트 이름
82
+ * @param description - 컴포넌트 설명
83
+ * @returns Mock 생성 결과
84
+ */
85
+ export declare function generateMockComponent(componentName: string, description?: string): LLMGenerationResult;
86
+ /**
87
+ * Tier 2 컴포넌트 해결
88
+ * LLM 생성 또는 Mock 생성 사용
89
+ *
90
+ * @param componentName - 컴포넌트 이름
91
+ * @param description - 컴포넌트 설명
92
+ * @param config - LLM 설정
93
+ * @returns 생성 결과
94
+ */
95
+ export declare function resolveFromTier2(componentName: string, description?: string, config?: LLMGeneratorConfig): Promise<LLMGenerationResult>;
96
+ //# sourceMappingURL=llm-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-generator.d.ts","sourceRoot":"","sources":["../../src/generators/llm-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAYD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,eAAe,GACvB,MAAM,CA4CR;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAgE3F;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAqF9B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,mBAAmB,CAwCrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAY9B"}