@framingui/mcp-server 0.6.19 → 0.6.21
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.
- package/README.md +79 -990
- package/dist/cli/agent-md-templates.d.ts +0 -12
- package/dist/cli/agent-md-templates.d.ts.map +1 -1
- package/dist/cli/agent-md-templates.js +73 -255
- package/dist/cli/agent-md-templates.js.map +1 -1
- package/dist/cli/guide-template.d.ts +0 -7
- package/dist/cli/guide-template.d.ts.map +1 -1
- package/dist/cli/guide-template.js +58 -157
- package/dist/cli/guide-template.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +3 -47
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +18 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +278 -108
- package/dist/cli/init.js.map +1 -1
- package/dist/index.js +39 -35
- package/dist/index.js.map +1 -1
- package/dist/prompts/getting-started.d.ts.map +1 -1
- package/dist/prompts/getting-started.js +6 -29
- package/dist/prompts/getting-started.js.map +1 -1
- package/dist/prompts/screen-workflow.d.ts +1 -4
- package/dist/prompts/screen-workflow.d.ts.map +1 -1
- package/dist/prompts/screen-workflow.js +84 -234
- package/dist/prompts/screen-workflow.js.map +1 -1
- package/dist/schemas/mcp-schemas.d.ts +212 -449
- package/dist/schemas/mcp-schemas.d.ts.map +1 -1
- package/dist/schemas/mcp-schemas.js +15 -69
- package/dist/schemas/mcp-schemas.js.map +1 -1
- package/dist/tools/get-screen-generation-context.d.ts.map +1 -1
- package/dist/tools/get-screen-generation-context.js +74 -117
- package/dist/tools/get-screen-generation-context.js.map +1 -1
- package/dist/tools/preview-component.js +1 -1
- package/dist/tools/preview-component.js.map +1 -1
- package/dist/tools/preview-screen-template.d.ts.map +1 -1
- package/dist/tools/preview-screen-template.js +0 -1
- package/dist/tools/preview-screen-template.js.map +1 -1
- package/dist/tools/validate-environment.d.ts.map +1 -1
- package/dist/tools/validate-environment.js +1 -84
- package/dist/tools/validate-environment.js.map +1 -1
- package/dist/tools/validate-screen-definition.d.ts.map +1 -1
- package/dist/tools/validate-screen-definition.js +0 -6
- package/dist/tools/validate-screen-definition.js.map +1 -1
- package/package.json +4 -4
package/dist/cli/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* framingui-mcp init
|
|
3
|
-
*
|
|
2
|
+
* framingui-mcp init command
|
|
3
|
+
* Bootstraps the FramingUI screen-generation runtime into a project.
|
|
4
4
|
*/
|
|
5
5
|
import fs from 'node:fs';
|
|
6
6
|
import path from 'node:path';
|
|
@@ -9,12 +9,47 @@ import readline from 'node:readline';
|
|
|
9
9
|
import { generateGuide } from './guide-template.js';
|
|
10
10
|
import { generateClaudeMdSection, generateAgentsMdSection } from './agent-md-templates.js';
|
|
11
11
|
import { upsertFraminguiServerConfig } from './mcp-config.js';
|
|
12
|
-
import {
|
|
13
|
-
// ─── 상수 ──────────────────────────────────────────────
|
|
12
|
+
import { readTailwindConfig } from '../utils/tailwind-config-reader.js';
|
|
14
13
|
const FRAMINGUI_UI_CONTENT_PATH = './node_modules/@framingui/ui/dist/**/*.{js,mjs}';
|
|
15
14
|
const FRAMINGUI_STYLE_IMPORT = "@import '@framingui/ui/styles';";
|
|
16
|
-
const
|
|
17
|
-
|
|
15
|
+
const EXCLUDED_DIRS = new Set(['node_modules', '.git', '.next', 'dist', 'build', 'coverage']);
|
|
16
|
+
const MAX_SEARCH_DEPTH = 5;
|
|
17
|
+
export const SCREEN_GENERATION_PACKAGES = [
|
|
18
|
+
'@framingui/ui',
|
|
19
|
+
'@framingui/core',
|
|
20
|
+
'@framingui/tokens',
|
|
21
|
+
'@hookform/resolvers',
|
|
22
|
+
'@radix-ui/react-alert-dialog',
|
|
23
|
+
'@radix-ui/react-avatar',
|
|
24
|
+
'@radix-ui/react-checkbox',
|
|
25
|
+
'@radix-ui/react-dialog',
|
|
26
|
+
'@radix-ui/react-dropdown-menu',
|
|
27
|
+
'@radix-ui/react-label',
|
|
28
|
+
'@radix-ui/react-navigation-menu',
|
|
29
|
+
'@radix-ui/react-popover',
|
|
30
|
+
'@radix-ui/react-progress',
|
|
31
|
+
'@radix-ui/react-radio-group',
|
|
32
|
+
'@radix-ui/react-scroll-area',
|
|
33
|
+
'@radix-ui/react-select',
|
|
34
|
+
'@radix-ui/react-separator',
|
|
35
|
+
'@radix-ui/react-slider',
|
|
36
|
+
'@radix-ui/react-slot',
|
|
37
|
+
'@radix-ui/react-switch',
|
|
38
|
+
'@radix-ui/react-tabs',
|
|
39
|
+
'@radix-ui/react-toast',
|
|
40
|
+
'@radix-ui/react-tooltip',
|
|
41
|
+
'class-variance-authority',
|
|
42
|
+
'clsx',
|
|
43
|
+
'cmdk',
|
|
44
|
+
'date-fns',
|
|
45
|
+
'framer-motion',
|
|
46
|
+
'lucide-react',
|
|
47
|
+
'react-day-picker',
|
|
48
|
+
'react-hook-form',
|
|
49
|
+
'tailwind-merge',
|
|
50
|
+
'tailwindcss-animate',
|
|
51
|
+
'zod',
|
|
52
|
+
];
|
|
18
53
|
function log(step, total, message) {
|
|
19
54
|
console.log(`\n[${step}/${total}] ${message}`);
|
|
20
55
|
}
|
|
@@ -25,11 +60,30 @@ function fileExists(filePath) {
|
|
|
25
60
|
return fs.existsSync(filePath);
|
|
26
61
|
}
|
|
27
62
|
function findFile(dir, candidates) {
|
|
28
|
-
return candidates.find(
|
|
63
|
+
return candidates.find(candidate => fileExists(path.join(dir, candidate)));
|
|
64
|
+
}
|
|
65
|
+
function walkFiles(dir, depth = 0) {
|
|
66
|
+
if (depth > MAX_SEARCH_DEPTH || !fileExists(dir)) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
70
|
+
const files = [];
|
|
71
|
+
for (const entry of entries) {
|
|
72
|
+
if (EXCLUDED_DIRS.has(entry.name)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const fullPath = path.join(dir, entry.name);
|
|
76
|
+
if (entry.isDirectory()) {
|
|
77
|
+
files.push(...walkFiles(fullPath, depth + 1));
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
files.push(fullPath);
|
|
81
|
+
}
|
|
82
|
+
return files;
|
|
83
|
+
}
|
|
84
|
+
function relativeToCwd(cwd, filePath) {
|
|
85
|
+
return path.relative(cwd, filePath).replaceAll(path.sep, '/');
|
|
29
86
|
}
|
|
30
|
-
/**
|
|
31
|
-
* stdin에서 사용자 선택을 받음
|
|
32
|
-
*/
|
|
33
87
|
async function askUser(question, options) {
|
|
34
88
|
const rl = readline.createInterface({
|
|
35
89
|
input: process.stdin,
|
|
@@ -45,7 +99,6 @@ async function askUser(question, options) {
|
|
|
45
99
|
});
|
|
46
100
|
});
|
|
47
101
|
}
|
|
48
|
-
// ─── Step 1: 프로젝트 감지 ─────────────────────────────
|
|
49
102
|
function detectFramework(cwd) {
|
|
50
103
|
const nextConfigs = ['next.config.ts', 'next.config.js', 'next.config.mjs'];
|
|
51
104
|
const viteConfigs = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs'];
|
|
@@ -57,13 +110,29 @@ function detectFramework(cwd) {
|
|
|
57
110
|
}
|
|
58
111
|
return null;
|
|
59
112
|
}
|
|
60
|
-
|
|
113
|
+
function detectPackageManager(cwd) {
|
|
114
|
+
if (fileExists(path.join(cwd, 'pnpm-lock.yaml'))) {
|
|
115
|
+
return 'pnpm';
|
|
116
|
+
}
|
|
117
|
+
if (fileExists(path.join(cwd, 'yarn.lock'))) {
|
|
118
|
+
return 'yarn';
|
|
119
|
+
}
|
|
120
|
+
if (fileExists(path.join(cwd, 'bun.lock')) || fileExists(path.join(cwd, 'bun.lockb'))) {
|
|
121
|
+
return 'bun';
|
|
122
|
+
}
|
|
123
|
+
return 'npm';
|
|
124
|
+
}
|
|
61
125
|
function installPackages(cwd, pm) {
|
|
62
|
-
const
|
|
63
|
-
logDetail(
|
|
64
|
-
|
|
126
|
+
const command = `${pm} add ${SCREEN_GENERATION_PACKAGES.join(' ')}`;
|
|
127
|
+
logDetail(command);
|
|
128
|
+
try {
|
|
129
|
+
execSync(command, { cwd, stdio: 'inherit' });
|
|
130
|
+
return { ok: true, command };
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return { ok: false, command };
|
|
134
|
+
}
|
|
65
135
|
}
|
|
66
|
-
// ─── Step 3: Tailwind CSS 설정 ──────────────────────────
|
|
67
136
|
const TAILWIND_CONFIG_CANDIDATES = [
|
|
68
137
|
'tailwind.config.ts',
|
|
69
138
|
'tailwind.config.js',
|
|
@@ -73,30 +142,24 @@ const TAILWIND_CONFIG_CANDIDATES = [
|
|
|
73
142
|
function setupTailwind(cwd) {
|
|
74
143
|
const configName = findFile(cwd, TAILWIND_CONFIG_CANDIDATES);
|
|
75
144
|
if (configName) {
|
|
76
|
-
// 기존 파일 수정
|
|
77
145
|
const configPath = path.join(cwd, configName);
|
|
78
146
|
let content = fs.readFileSync(configPath, 'utf-8');
|
|
79
|
-
// content 배열에 @framingui/ui 경로 추가
|
|
80
147
|
if (!content.includes('@framingui/ui')) {
|
|
81
148
|
content = content.replace(/(content\s*:\s*\[)/, `$1\n '${FRAMINGUI_UI_CONTENT_PATH}',`);
|
|
82
149
|
}
|
|
83
|
-
// plugins에 tailwindcss-animate 추가
|
|
84
150
|
if (!content.includes('tailwindcss-animate')) {
|
|
85
|
-
// plugins 배열이 있는 경우
|
|
86
151
|
if (/plugins\s*:\s*\[/.test(content)) {
|
|
87
152
|
content = content.replace(/(plugins\s*:\s*\[)/, `$1\n require('tailwindcss-animate'),`);
|
|
88
153
|
}
|
|
89
154
|
else {
|
|
90
|
-
// plugins가 없으면 content 닫는 ] 뒤에 추가
|
|
91
155
|
content = content.replace(/(content\s*:\s*\[[\s\S]*?\]\s*,?)/, `$1\n plugins: [require('tailwindcss-animate')],`);
|
|
92
156
|
}
|
|
93
157
|
}
|
|
94
158
|
fs.writeFileSync(configPath, content, 'utf-8');
|
|
95
|
-
logDetail(`${configName}
|
|
159
|
+
logDetail(`${configName} updated`);
|
|
160
|
+
return configPath;
|
|
96
161
|
}
|
|
97
|
-
|
|
98
|
-
// 새 파일 생성
|
|
99
|
-
const template = `import type { Config } from 'tailwindcss';
|
|
162
|
+
const template = `import type { Config } from 'tailwindcss';
|
|
100
163
|
|
|
101
164
|
const config: Config = {
|
|
102
165
|
content: [
|
|
@@ -110,32 +173,63 @@ const config: Config = {
|
|
|
110
173
|
|
|
111
174
|
export default config;
|
|
112
175
|
`;
|
|
113
|
-
|
|
114
|
-
|
|
176
|
+
const newPath = path.join(cwd, 'tailwind.config.ts');
|
|
177
|
+
fs.writeFileSync(newPath, template, 'utf-8');
|
|
178
|
+
logDetail('tailwind.config.ts created');
|
|
179
|
+
return newPath;
|
|
180
|
+
}
|
|
181
|
+
function stylesheetPriority(relativePath, framework) {
|
|
182
|
+
const normalized = relativePath.replaceAll('\\', '/');
|
|
183
|
+
const priorities = framework === 'nextjs'
|
|
184
|
+
? [
|
|
185
|
+
'app/globals.css',
|
|
186
|
+
'src/app/globals.css',
|
|
187
|
+
'styles/globals.css',
|
|
188
|
+
'app/globals.scss',
|
|
189
|
+
'src/app/globals.scss',
|
|
190
|
+
]
|
|
191
|
+
: ['src/index.css', 'src/main.css', 'index.css', 'src/index.scss', 'src/main.scss'];
|
|
192
|
+
const exactIndex = priorities.findIndex(candidate => normalized.endsWith(candidate));
|
|
193
|
+
if (exactIndex >= 0) {
|
|
194
|
+
return exactIndex;
|
|
195
|
+
}
|
|
196
|
+
if (normalized.endsWith('globals.css') || normalized.endsWith('globals.scss')) {
|
|
197
|
+
return 20;
|
|
198
|
+
}
|
|
199
|
+
if (normalized.endsWith('index.css') || normalized.endsWith('index.scss')) {
|
|
200
|
+
return 30;
|
|
201
|
+
}
|
|
202
|
+
if (normalized.endsWith('main.css') || normalized.endsWith('main.scss')) {
|
|
203
|
+
return 40;
|
|
204
|
+
}
|
|
205
|
+
if (normalized.endsWith('.css') || normalized.endsWith('.scss')) {
|
|
206
|
+
return 100;
|
|
115
207
|
}
|
|
208
|
+
return 999;
|
|
209
|
+
}
|
|
210
|
+
export function findBestStylesheet(cwd, framework) {
|
|
211
|
+
const files = walkFiles(cwd)
|
|
212
|
+
.filter(filePath => /\.(css|scss)$/.test(filePath))
|
|
213
|
+
.map(filePath => relativeToCwd(cwd, filePath))
|
|
214
|
+
.sort((a, b) => stylesheetPriority(a, framework) - stylesheetPriority(b, framework));
|
|
215
|
+
return files[0];
|
|
116
216
|
}
|
|
117
|
-
// ─── Step 4: CSS 임포트 추가 ────────────────────────────
|
|
118
217
|
function setupCSS(cwd, framework) {
|
|
119
|
-
const
|
|
120
|
-
? ['app/globals.css', 'src/app/globals.css', 'styles/globals.css']
|
|
121
|
-
: ['src/index.css', 'src/main.css', 'index.css'];
|
|
122
|
-
const cssFile = findFile(cwd, candidates);
|
|
218
|
+
const cssFile = findBestStylesheet(cwd, framework);
|
|
123
219
|
if (!cssFile) {
|
|
124
|
-
logDetail('
|
|
125
|
-
|
|
126
|
-
return;
|
|
220
|
+
logDetail('No stylesheet file found for FramingUI styles import');
|
|
221
|
+
return undefined;
|
|
127
222
|
}
|
|
128
223
|
const cssPath = path.join(cwd, cssFile);
|
|
129
224
|
const content = fs.readFileSync(cssPath, 'utf-8');
|
|
130
225
|
if (content.includes(FRAMINGUI_STYLE_IMPORT)) {
|
|
131
|
-
logDetail(`${cssFile} (
|
|
132
|
-
return;
|
|
226
|
+
logDetail(`${cssFile} (already configured)`);
|
|
227
|
+
return cssPath;
|
|
133
228
|
}
|
|
134
|
-
// 파일 상단에 import 추가
|
|
135
229
|
fs.writeFileSync(cssPath, `${FRAMINGUI_STYLE_IMPORT}\n\n${content}`, 'utf-8');
|
|
136
|
-
logDetail(`${cssFile}
|
|
230
|
+
logDetail(`${cssFile} updated`);
|
|
231
|
+
return cssPath;
|
|
137
232
|
}
|
|
138
|
-
// ─── Step 5: MCP 설정 ──────────────────────────────────
|
|
139
233
|
function setupMCP(cwd) {
|
|
140
234
|
const mcpPath = path.join(cwd, '.mcp.json');
|
|
141
235
|
if (fileExists(mcpPath)) {
|
|
@@ -143,155 +237,231 @@ function setupMCP(cwd) {
|
|
|
143
237
|
const config = JSON.parse(raw);
|
|
144
238
|
const result = upsertFraminguiServerConfig(config);
|
|
145
239
|
if (!result.updated) {
|
|
146
|
-
logDetail('.mcp.json
|
|
240
|
+
logDetail('.mcp.json already uses the latest FramingUI server config');
|
|
147
241
|
return;
|
|
148
242
|
}
|
|
149
243
|
fs.writeFileSync(mcpPath, JSON.stringify(result.config, null, 2) + '\n', 'utf-8');
|
|
150
|
-
logDetail(result.created ? '.mcp.json
|
|
151
|
-
|
|
152
|
-
else {
|
|
153
|
-
const result = upsertFraminguiServerConfig({});
|
|
154
|
-
fs.writeFileSync(mcpPath, JSON.stringify(result.config, null, 2) + '\n', 'utf-8');
|
|
155
|
-
logDetail('.mcp.json 생성 완료');
|
|
244
|
+
logDetail(result.created ? '.mcp.json updated' : '.mcp.json FramingUI server refreshed');
|
|
245
|
+
return;
|
|
156
246
|
}
|
|
247
|
+
const result = upsertFraminguiServerConfig({});
|
|
248
|
+
fs.writeFileSync(mcpPath, JSON.stringify(result.config, null, 2) + '\n', 'utf-8');
|
|
249
|
+
logDetail('.mcp.json created');
|
|
157
250
|
}
|
|
158
|
-
// ─── Step 6: 가이드 문서 생성 ──────────────────────────
|
|
159
251
|
function setupGuide(cwd, framework) {
|
|
160
252
|
const guidePath = path.join(cwd, 'FRAMINGUI-GUIDE.md');
|
|
161
253
|
if (fileExists(guidePath)) {
|
|
162
|
-
logDetail('FRAMINGUI-GUIDE.md
|
|
254
|
+
logDetail('FRAMINGUI-GUIDE.md already exists');
|
|
163
255
|
return;
|
|
164
256
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
logDetail('FRAMINGUI-GUIDE.md 생성 완료');
|
|
257
|
+
fs.writeFileSync(guidePath, generateGuide(framework), 'utf-8');
|
|
258
|
+
logDetail('FRAMINGUI-GUIDE.md created');
|
|
168
259
|
}
|
|
169
|
-
// ─── Step 7: CLAUDE.md / AGENTS.md 설정 ────────────────
|
|
170
260
|
function setupAgentMd(cwd, framework) {
|
|
171
|
-
// CLAUDE.md 섹션 추가 (기존 파일이 있으면 append, 없으면 생성)
|
|
172
261
|
const claudeMdPath = path.join(cwd, 'CLAUDE.md');
|
|
173
262
|
const claudeSection = generateClaudeMdSection(framework);
|
|
174
263
|
if (fileExists(claudeMdPath)) {
|
|
175
264
|
const existingContent = fs.readFileSync(claudeMdPath, 'utf-8');
|
|
176
265
|
if (existingContent.includes('## FramingUI Workflow')) {
|
|
177
|
-
logDetail('CLAUDE.md
|
|
266
|
+
logDetail('CLAUDE.md already contains the FramingUI section');
|
|
178
267
|
}
|
|
179
268
|
else {
|
|
180
269
|
fs.appendFileSync(claudeMdPath, `\n${claudeSection}`, 'utf-8');
|
|
181
|
-
logDetail('CLAUDE.md
|
|
270
|
+
logDetail('CLAUDE.md FramingUI section appended');
|
|
182
271
|
}
|
|
183
272
|
}
|
|
184
273
|
else {
|
|
185
274
|
fs.writeFileSync(claudeMdPath, `# Project Instructions\n${claudeSection}`, 'utf-8');
|
|
186
|
-
logDetail('CLAUDE.md
|
|
275
|
+
logDetail('CLAUDE.md created');
|
|
187
276
|
}
|
|
188
|
-
// AGENTS.md 섹션 추가 (기존 파일이 있으면 append, 없으면 생성)
|
|
189
277
|
const agentsMdPath = path.join(cwd, 'AGENTS.md');
|
|
190
278
|
const agentsSection = generateAgentsMdSection(framework);
|
|
191
279
|
if (fileExists(agentsMdPath)) {
|
|
192
280
|
const existingContent = fs.readFileSync(agentsMdPath, 'utf-8');
|
|
193
281
|
if (existingContent.includes('## FramingUI Workflow')) {
|
|
194
|
-
logDetail('AGENTS.md
|
|
282
|
+
logDetail('AGENTS.md already contains the FramingUI section');
|
|
195
283
|
}
|
|
196
284
|
else {
|
|
197
285
|
fs.appendFileSync(agentsMdPath, `\n${agentsSection}`, 'utf-8');
|
|
198
|
-
logDetail('AGENTS.md
|
|
286
|
+
logDetail('AGENTS.md FramingUI section appended');
|
|
199
287
|
}
|
|
200
288
|
}
|
|
201
289
|
else {
|
|
202
290
|
fs.writeFileSync(agentsMdPath, `# AI Agent Instructions\n${agentsSection}`, 'utf-8');
|
|
203
|
-
logDetail('AGENTS.md
|
|
291
|
+
logDetail('AGENTS.md created');
|
|
204
292
|
}
|
|
205
293
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
294
|
+
function readProjectPackageJson(cwd) {
|
|
295
|
+
const packageJsonPath = path.join(cwd, 'package.json');
|
|
296
|
+
if (!fileExists(packageJsonPath)) {
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
return JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
300
|
+
}
|
|
301
|
+
function getInstalledPackageNames(packageJson) {
|
|
302
|
+
const installed = new Set();
|
|
303
|
+
if (!packageJson) {
|
|
304
|
+
return installed;
|
|
305
|
+
}
|
|
306
|
+
const fields = ['dependencies', 'devDependencies', 'peerDependencies'];
|
|
307
|
+
for (const field of fields) {
|
|
308
|
+
const deps = packageJson[field];
|
|
309
|
+
if (deps && typeof deps === 'object') {
|
|
310
|
+
for (const pkgName of Object.keys(deps)) {
|
|
311
|
+
installed.add(pkgName);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return installed;
|
|
316
|
+
}
|
|
317
|
+
export function verifyInitSetup(cwd) {
|
|
318
|
+
const packageJson = readProjectPackageJson(cwd);
|
|
319
|
+
const installed = getInstalledPackageNames(packageJson);
|
|
320
|
+
const missingPackages = SCREEN_GENERATION_PACKAGES.filter(pkg => !installed.has(pkg));
|
|
321
|
+
const stylesheets = walkFiles(cwd).filter(filePath => /\.(css|scss)$/.test(filePath));
|
|
322
|
+
const stylesheetWithImport = stylesheets.find(filePath => fs.readFileSync(filePath, 'utf-8').includes(FRAMINGUI_STYLE_IMPORT));
|
|
323
|
+
const tailwind = readTailwindConfig(cwd);
|
|
324
|
+
const warnings = [];
|
|
325
|
+
if (missingPackages.length > 0) {
|
|
326
|
+
warnings.push(`Missing packages: ${missingPackages.join(', ')}`);
|
|
327
|
+
}
|
|
328
|
+
if (!stylesheetWithImport) {
|
|
329
|
+
warnings.push(`Missing ${FRAMINGUI_STYLE_IMPORT} in a global stylesheet`);
|
|
330
|
+
}
|
|
331
|
+
if (!tailwind.found) {
|
|
332
|
+
warnings.push('Tailwind config not found');
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
if (!tailwind.hasUiContentPath) {
|
|
336
|
+
warnings.push('Tailwind config is missing @framingui/ui content paths');
|
|
337
|
+
}
|
|
338
|
+
if (!tailwind.hasAnimatePlugin) {
|
|
339
|
+
warnings.push('Tailwind config is missing the tailwindcss-animate plugin');
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return {
|
|
343
|
+
installedPackagesOk: missingPackages.length === 0,
|
|
344
|
+
missingPackages,
|
|
345
|
+
styleImportOk: Boolean(stylesheetWithImport),
|
|
346
|
+
styleImportPath: stylesheetWithImport,
|
|
347
|
+
tailwindFound: tailwind.found,
|
|
348
|
+
tailwindUiContentOk: tailwind.hasUiContentPath,
|
|
349
|
+
tailwindAnimatePluginOk: tailwind.hasAnimatePlugin,
|
|
350
|
+
tailwindConfigPath: tailwind.configPath,
|
|
351
|
+
warnings,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
function printResult(pm, verification) {
|
|
355
|
+
if (verification.warnings.length === 0) {
|
|
356
|
+
console.log(`
|
|
209
357
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
210
358
|
|
|
211
|
-
FramingUI
|
|
359
|
+
FramingUI setup completed.
|
|
212
360
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
361
|
+
Verified:
|
|
362
|
+
- screen-generation runtime packages installed
|
|
363
|
+
- Tailwind content paths updated
|
|
364
|
+
- tailwindcss-animate configured
|
|
365
|
+
- @import '@framingui/ui/styles'; present
|
|
218
366
|
|
|
219
|
-
|
|
367
|
+
Next steps:
|
|
368
|
+
1. Run: framingui-mcp login
|
|
369
|
+
2. Restart your MCP client
|
|
370
|
+
3. Start with: get-screen-generation-context
|
|
371
|
+
|
|
372
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
console.error(`
|
|
376
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
377
|
+
|
|
378
|
+
FramingUI setup is incomplete.
|
|
379
|
+
|
|
380
|
+
Problems:
|
|
381
|
+
- ${verification.warnings.join('\n - ')}
|
|
382
|
+
|
|
383
|
+
Recovery:
|
|
384
|
+
- Re-run package install:
|
|
385
|
+
${pm} add ${SCREEN_GENERATION_PACKAGES.join(' ')}
|
|
386
|
+
- Ensure a global stylesheet imports:
|
|
387
|
+
${FRAMINGUI_STYLE_IMPORT}
|
|
220
388
|
|
|
221
389
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
222
390
|
}
|
|
223
|
-
// ─── 메인 ──────────────────────────────────────────────
|
|
224
391
|
export async function initCommand() {
|
|
225
392
|
const cwd = process.cwd();
|
|
226
|
-
const totalSteps =
|
|
393
|
+
const totalSteps = 9;
|
|
227
394
|
console.log('\n@framingui/mcp-server init\n');
|
|
228
|
-
// package.json 확인
|
|
229
395
|
if (!fileExists(path.join(cwd, 'package.json'))) {
|
|
230
|
-
console.error('package.json
|
|
396
|
+
console.error('package.json not found. Run this command from the project root.');
|
|
231
397
|
process.exit(1);
|
|
232
398
|
}
|
|
233
|
-
|
|
234
|
-
log(1, totalSteps, '프로젝트 감지 중...');
|
|
399
|
+
log(1, totalSteps, 'Detecting project...');
|
|
235
400
|
let framework = detectFramework(cwd);
|
|
236
401
|
if (!framework) {
|
|
237
|
-
const answer = await askUser('
|
|
402
|
+
const answer = await askUser('Could not detect the framework. Choose one:', [
|
|
403
|
+
'Next.js',
|
|
404
|
+
'Vite',
|
|
405
|
+
]);
|
|
238
406
|
framework = answer === 'Vite' ? 'vite' : 'nextjs';
|
|
239
407
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
// Step 2: 패키지 설치
|
|
243
|
-
log(2, totalSteps, '패키지 설치 중...');
|
|
408
|
+
logDetail(`Detected ${framework === 'nextjs' ? 'Next.js' : 'Vite'} project`);
|
|
409
|
+
log(2, totalSteps, 'Installing FramingUI screen-generation runtime...');
|
|
244
410
|
const pm = detectPackageManager(cwd);
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
catch {
|
|
249
|
-
console.error('패키지 설치에 실패했습니다. 수동으로 설치해 주세요:');
|
|
250
|
-
console.error(` ${pm} add ${PACKAGES_TO_INSTALL.join(' ')}`);
|
|
411
|
+
const installResult = installPackages(cwd, pm);
|
|
412
|
+
if (!installResult.ok) {
|
|
413
|
+
console.error('Package installation failed.');
|
|
251
414
|
}
|
|
252
|
-
|
|
253
|
-
log(3, totalSteps, 'Tailwind CSS 설정 중...');
|
|
415
|
+
log(3, totalSteps, 'Configuring Tailwind CSS...');
|
|
254
416
|
try {
|
|
255
417
|
setupTailwind(cwd);
|
|
256
418
|
}
|
|
257
419
|
catch {
|
|
258
|
-
console.error('
|
|
420
|
+
console.error('Failed to update Tailwind CSS configuration.');
|
|
259
421
|
}
|
|
260
|
-
|
|
261
|
-
log(4, totalSteps, 'CSS 토큰 임포트 추가 중...');
|
|
422
|
+
log(4, totalSteps, 'Adding FramingUI styles import...');
|
|
262
423
|
try {
|
|
263
|
-
setupCSS(cwd, framework);
|
|
424
|
+
const cssPath = setupCSS(cwd, framework);
|
|
425
|
+
if (!cssPath) {
|
|
426
|
+
console.error(`Could not find a stylesheet to update with ${FRAMINGUI_STYLE_IMPORT}`);
|
|
427
|
+
}
|
|
264
428
|
}
|
|
265
429
|
catch {
|
|
266
|
-
console.error('
|
|
267
|
-
console.error(` ${FRAMINGUI_STYLE_IMPORT}`);
|
|
430
|
+
console.error('Failed to update the stylesheet import.');
|
|
268
431
|
}
|
|
269
|
-
|
|
270
|
-
log(5, totalSteps, 'Claude Code MCP 설정 중...');
|
|
432
|
+
log(5, totalSteps, 'Configuring MCP server...');
|
|
271
433
|
try {
|
|
272
434
|
setupMCP(cwd);
|
|
273
435
|
}
|
|
274
436
|
catch {
|
|
275
|
-
console.error('
|
|
437
|
+
console.error('Failed to update .mcp.json.');
|
|
276
438
|
}
|
|
277
|
-
|
|
278
|
-
log(6, totalSteps, '가이드 문서 생성 중...');
|
|
439
|
+
log(6, totalSteps, 'Generating project guide...');
|
|
279
440
|
try {
|
|
280
441
|
setupGuide(cwd, framework);
|
|
281
442
|
}
|
|
282
443
|
catch {
|
|
283
|
-
console.error('
|
|
444
|
+
console.error('Failed to generate FRAMINGUI-GUIDE.md.');
|
|
284
445
|
}
|
|
285
|
-
|
|
286
|
-
log(7, totalSteps, 'AI 에이전트 가이드 설정 중...');
|
|
446
|
+
log(7, totalSteps, 'Updating AI agent guides...');
|
|
287
447
|
try {
|
|
288
448
|
setupAgentMd(cwd, framework);
|
|
289
449
|
}
|
|
290
450
|
catch {
|
|
291
|
-
console.error('
|
|
451
|
+
console.error('Failed to update CLAUDE.md / AGENTS.md.');
|
|
452
|
+
}
|
|
453
|
+
log(8, totalSteps, 'Verifying FramingUI setup...');
|
|
454
|
+
const verification = verifyInitSetup(cwd);
|
|
455
|
+
if (verification.styleImportPath) {
|
|
456
|
+
logDetail(`Styles import found in ${relativeToCwd(cwd, verification.styleImportPath)}`);
|
|
457
|
+
}
|
|
458
|
+
if (verification.tailwindConfigPath) {
|
|
459
|
+
logDetail(`Tailwind config verified at ${relativeToCwd(cwd, verification.tailwindConfigPath)}`);
|
|
460
|
+
}
|
|
461
|
+
log(9, totalSteps, verification.warnings.length === 0 ? 'Setup complete' : 'Setup incomplete');
|
|
462
|
+
printResult(pm, verification);
|
|
463
|
+
if (!installResult.ok || verification.warnings.length > 0) {
|
|
464
|
+
process.exitCode = 1;
|
|
292
465
|
}
|
|
293
|
-
// Step 8: 완료 메시지
|
|
294
|
-
log(8, totalSteps, '설정 완료');
|
|
295
|
-
printSuccess();
|
|
296
466
|
}
|
|
297
467
|
//# sourceMappingURL=init.js.map
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|