@framingui/mcp-server 0.6.23 → 0.6.24
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 +3 -1
- package/dist/cli/agent-md-templates.d.ts.map +1 -1
- package/dist/cli/agent-md-templates.js +26 -22
- package/dist/cli/agent-md-templates.js.map +1 -1
- package/dist/cli/guide-template.d.ts.map +1 -1
- package/dist/cli/guide-template.js +13 -11
- package/dist/cli/guide-template.js.map +1 -1
- package/dist/cli/init.d.ts +18 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +298 -27
- package/dist/cli/init.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/tools/validate-environment.d.ts.map +1 -1
- package/dist/tools/validate-environment.js +62 -0
- package/dist/tools/validate-environment.js.map +1 -1
- package/package.json +17 -16
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -65,7 +65,7 @@ Use the guarded workflow for production work:
|
|
|
65
65
|
Choose one contract before relying on FramingUI defaults:
|
|
66
66
|
|
|
67
67
|
- `host-utility`: keep explicit utility styling
|
|
68
|
-
- `framingui-native`: import `@framingui/ui/styles` and use
|
|
68
|
+
- `framingui-native`: import `@framingui/ui/styles`, mount `FramingUIProvider`, and use the generated `framingui-theme`
|
|
69
69
|
- `migrate`: stop and decide the migration path first
|
|
70
70
|
|
|
71
71
|
## Slash Commands
|
|
@@ -117,6 +117,8 @@ FramingUI exposes guidance for:
|
|
|
117
117
|
- install the FramingUI screen-generation runtime and peer dependencies in one pass
|
|
118
118
|
- configure Tailwind content paths and `tailwindcss-animate`
|
|
119
119
|
- add `@import '@framingui/ui/styles';` to a detected global stylesheet
|
|
120
|
+
- generate a local `framingui-theme` module
|
|
121
|
+
- wire `FramingUIProvider` into `app/layout.tsx` or `src/main.tsx`
|
|
120
122
|
- verify the package install, Tailwind config, and stylesheet import before finishing
|
|
121
123
|
- create `.mcp.json`
|
|
122
124
|
- generate `FRAMINGUI-GUIDE.md`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-md-templates.d.ts","sourceRoot":"","sources":["../../src/cli/agent-md-templates.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"agent-md-templates.d.ts","sourceRoot":"","sources":["../../src/cli/agent-md-templates.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA8EpE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAsDpE"}
|
|
@@ -33,7 +33,7 @@ framingui-mcp login
|
|
|
33
33
|
### Style Contract Rules
|
|
34
34
|
|
|
35
35
|
- If the project stays \`host-utility\`, keep utility classes explicit.
|
|
36
|
-
- If the project uses \`framingui-native\`, ensure the global stylesheet imports \`@framingui/ui/styles\`
|
|
36
|
+
- If the project uses \`framingui-native\`, ensure the global stylesheet imports \`@framingui/ui/styles\` and the app root mounts \`FramingUIProvider\` with the generated \`framingui-theme\`.
|
|
37
37
|
|
|
38
38
|
### Slash Commands
|
|
39
39
|
|
|
@@ -56,19 +56,21 @@ Do not claim a FramingUI component is unavailable without checking \`list-compon
|
|
|
56
56
|
|
|
57
57
|
\`\`\`tsx
|
|
58
58
|
// ${importPath}
|
|
59
|
-
import '@framingui/ui
|
|
60
|
-
import
|
|
59
|
+
import { FramingUIProvider, Button, Card, CardContent, CardHeader, CardTitle } from '@framingui/ui';
|
|
60
|
+
import framinguiTheme from './framingui-theme';
|
|
61
61
|
|
|
62
62
|
export default function Page() {
|
|
63
63
|
return (
|
|
64
|
-
<
|
|
65
|
-
<
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
<FramingUIProvider theme={framinguiTheme}>
|
|
65
|
+
<Card>
|
|
66
|
+
<CardHeader>
|
|
67
|
+
<CardTitle>Ready for MCP-assisted UI work</CardTitle>
|
|
68
|
+
</CardHeader>
|
|
69
|
+
<CardContent>
|
|
70
|
+
<Button>Continue</Button>
|
|
71
|
+
</CardContent>
|
|
72
|
+
</Card>
|
|
73
|
+
</FramingUIProvider>
|
|
72
74
|
);
|
|
73
75
|
}
|
|
74
76
|
\`\`\`
|
|
@@ -96,7 +98,7 @@ FramingUI is available in this project through MCP.
|
|
|
96
98
|
### Style Contract
|
|
97
99
|
|
|
98
100
|
- \`host-utility\`: keep explicit utility styling
|
|
99
|
-
- \`framingui-native\`: import \`@framingui/ui/styles\`
|
|
101
|
+
- \`framingui-native\`: import \`@framingui/ui/styles\`, mount \`FramingUIProvider\`, then rely on FramingUI variants
|
|
100
102
|
- \`migrate\`: stop and clarify the migration path
|
|
101
103
|
|
|
102
104
|
### Allowed HTML
|
|
@@ -108,19 +110,21 @@ Interactive and form primitives should use FramingUI components when they exist.
|
|
|
108
110
|
|
|
109
111
|
\`\`\`tsx
|
|
110
112
|
// ${importPath}
|
|
111
|
-
import '@framingui/ui
|
|
112
|
-
import
|
|
113
|
+
import { FramingUIProvider, Button, Card, CardContent, CardHeader, CardTitle } from '@framingui/ui';
|
|
114
|
+
import framinguiTheme from './framingui-theme';
|
|
113
115
|
|
|
114
116
|
export default function Page() {
|
|
115
117
|
return (
|
|
116
|
-
<
|
|
117
|
-
<
|
|
118
|
-
<
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
118
|
+
<FramingUIProvider theme={framinguiTheme}>
|
|
119
|
+
<Card>
|
|
120
|
+
<CardHeader>
|
|
121
|
+
<CardTitle>FramingUI project setup</CardTitle>
|
|
122
|
+
</CardHeader>
|
|
123
|
+
<CardContent>
|
|
124
|
+
<Button>Continue</Button>
|
|
125
|
+
</CardContent>
|
|
126
|
+
</Card>
|
|
127
|
+
</FramingUIProvider>
|
|
124
128
|
);
|
|
125
129
|
}
|
|
126
130
|
\`\`\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-md-templates.js","sourceRoot":"","sources":["../../src/cli/agent-md-templates.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAE3E,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDJ,UAAU
|
|
1
|
+
{"version":3,"file":"agent-md-templates.js","sourceRoot":"","sources":["../../src/cli/agent-md-templates.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAE3E,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDJ,UAAU;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAE3E,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BJ,UAAU;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-template.d.ts","sourceRoot":"","sources":["../../src/cli/guide-template.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"guide-template.d.ts","sourceRoot":"","sources":["../../src/cli/guide-template.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAiG1D"}
|
|
@@ -47,7 +47,7 @@ Your global stylesheet should import:
|
|
|
47
47
|
@import '@framingui/ui/styles';
|
|
48
48
|
\`\`\`
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
Your root app entry should also mount \`FramingUIProvider\` with the generated \`framingui-theme\` module.
|
|
51
51
|
|
|
52
52
|
## Slash Commands
|
|
53
53
|
|
|
@@ -68,19 +68,21 @@ FramingUI guidance is available for:
|
|
|
68
68
|
|
|
69
69
|
\`\`\`tsx
|
|
70
70
|
// ${appFile}
|
|
71
|
-
import '@framingui/ui
|
|
72
|
-
import
|
|
71
|
+
import { FramingUIProvider, Button, Card, CardContent, CardHeader, CardTitle } from '@framingui/ui';
|
|
72
|
+
import framinguiTheme from './framingui-theme';
|
|
73
73
|
|
|
74
74
|
export default function Page() {
|
|
75
75
|
return (
|
|
76
|
-
<
|
|
77
|
-
<
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
<FramingUIProvider theme={framinguiTheme}>
|
|
77
|
+
<Card>
|
|
78
|
+
<CardHeader>
|
|
79
|
+
<CardTitle>FramingUI is ready</CardTitle>
|
|
80
|
+
</CardHeader>
|
|
81
|
+
<CardContent>
|
|
82
|
+
<Button>Continue</Button>
|
|
83
|
+
</CardContent>
|
|
84
|
+
</Card>
|
|
85
|
+
</FramingUIProvider>
|
|
84
86
|
);
|
|
85
87
|
}
|
|
86
88
|
\`\`\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-template.js","sourceRoot":"","sources":["../../src/cli/guide-template.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,SAAoB;IAChD,MAAM,OAAO,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAExE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmEJ,OAAO
|
|
1
|
+
{"version":3,"file":"guide-template.js","sourceRoot":"","sources":["../../src/cli/guide-template.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,SAAoB;IAChD,MAAM,OAAO,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAExE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BX,CAAC;AACF,CAAC"}
|
package/dist/cli/init.d.ts
CHANGED
|
@@ -3,21 +3,38 @@
|
|
|
3
3
|
* Bootstraps the FramingUI screen-generation runtime into a project.
|
|
4
4
|
*/
|
|
5
5
|
import { type Framework } from './guide-template.js';
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const SCREEN_GENERATION_RUNTIME_PACKAGES: readonly ["@framingui/ui", "@framingui/core", "@framingui/tokens", "@hookform/resolvers", "@radix-ui/react-alert-dialog", "@radix-ui/react-avatar", "@radix-ui/react-checkbox", "@radix-ui/react-dialog", "@radix-ui/react-dropdown-menu", "@radix-ui/react-label", "@radix-ui/react-navigation-menu", "@radix-ui/react-popover", "@radix-ui/react-progress", "@radix-ui/react-radio-group", "@radix-ui/react-scroll-area", "@radix-ui/react-select", "@radix-ui/react-separator", "@radix-ui/react-slider", "@radix-ui/react-slot", "@radix-ui/react-switch", "@radix-ui/react-tabs", "@radix-ui/react-toast", "@radix-ui/react-tooltip", "class-variance-authority", "clsx", "cmdk", "date-fns", "framer-motion", "lucide-react", "react-day-picker", "react-hook-form", "tailwind-merge", "zod"];
|
|
7
|
+
export declare const TAILWIND_V3_TOOLCHAIN_PACKAGES: {
|
|
8
|
+
readonly tailwindcss: "^3.4.17";
|
|
9
|
+
readonly postcss: "^8.4.38";
|
|
10
|
+
readonly autoprefixer: "^10.4.19";
|
|
11
|
+
readonly 'tailwindcss-animate': "^1.0.7";
|
|
12
|
+
};
|
|
13
|
+
export declare const SCREEN_GENERATION_PACKAGES: readonly ["@framingui/ui", "@framingui/core", "@framingui/tokens", "@hookform/resolvers", "@radix-ui/react-alert-dialog", "@radix-ui/react-avatar", "@radix-ui/react-checkbox", "@radix-ui/react-dialog", "@radix-ui/react-dropdown-menu", "@radix-ui/react-label", "@radix-ui/react-navigation-menu", "@radix-ui/react-popover", "@radix-ui/react-progress", "@radix-ui/react-radio-group", "@radix-ui/react-scroll-area", "@radix-ui/react-select", "@radix-ui/react-separator", "@radix-ui/react-slider", "@radix-ui/react-slot", "@radix-ui/react-switch", "@radix-ui/react-tabs", "@radix-ui/react-toast", "@radix-ui/react-tooltip", "class-variance-authority", "clsx", "cmdk", "date-fns", "framer-motion", "lucide-react", "react-day-picker", "react-hook-form", "tailwind-merge", "zod", ...string[]];
|
|
7
14
|
type InitVerification = {
|
|
8
15
|
installedPackagesOk: boolean;
|
|
9
16
|
missingPackages: string[];
|
|
10
17
|
styleImportOk: boolean;
|
|
11
18
|
styleImportPath?: string;
|
|
19
|
+
providerBootstrapOk: boolean;
|
|
20
|
+
providerEntryPath?: string;
|
|
21
|
+
themeModuleOk: boolean;
|
|
22
|
+
themeModulePath?: string;
|
|
12
23
|
tailwindFound: boolean;
|
|
13
24
|
tailwindUiContentOk: boolean;
|
|
14
25
|
tailwindAnimatePluginOk: boolean;
|
|
26
|
+
tailwindVersionOk: boolean;
|
|
27
|
+
detectedTailwindVersion?: string;
|
|
15
28
|
tailwindConfigPath?: string;
|
|
16
29
|
warnings: string[];
|
|
17
30
|
};
|
|
18
31
|
export declare function setupTailwind(cwd: string): string | undefined;
|
|
19
32
|
export declare function findBestStylesheet(cwd: string, framework: Framework): string | undefined;
|
|
20
33
|
export declare function setupCSS(cwd: string, framework: Framework): string | undefined;
|
|
34
|
+
export declare function setupThemeBootstrap(cwd: string, framework: Framework, themeId?: string): {
|
|
35
|
+
entryPath?: string;
|
|
36
|
+
themeModulePath?: string;
|
|
37
|
+
};
|
|
21
38
|
export declare function setupMCP(cwd: string): void;
|
|
22
39
|
export declare function verifyInitSetup(cwd: string): InitVerification;
|
|
23
40
|
export declare function initCommand(): Promise<void>;
|
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAepE,eAAO,MAAM,kCAAkC,qwBAkCrC,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;CAKjC,CAAC;AAEX,eAAO,MAAM,0BAA0B,kxBAG7B,CAAC;AAIX,KAAK,gBAAgB,GAAG;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAuRF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8C7D;AAmCD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAOxF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAmB9E;AAiDD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,EACpB,OAAO,SAAmB,GACzB;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAsDlD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAqB1C;AA6DD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAgF7D;AA8CD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsGjD"}
|
package/dist/cli/init.js
CHANGED
|
@@ -6,6 +6,7 @@ import fs from 'node:fs';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import { execSync } from 'node:child_process';
|
|
8
8
|
import readline from 'node:readline';
|
|
9
|
+
import { loadThemeV2 } from '@framingui/core';
|
|
9
10
|
import { generateGuide } from './guide-template.js';
|
|
10
11
|
import { generateClaudeMdSection, generateAgentsMdSection } from './agent-md-templates.js';
|
|
11
12
|
import { upsertFraminguiServerConfig } from './mcp-config.js';
|
|
@@ -14,7 +15,12 @@ const FRAMINGUI_UI_CONTENT_PATH = './node_modules/@framingui/ui/dist/**/*.{js,mj
|
|
|
14
15
|
const FRAMINGUI_STYLE_IMPORT = "@import '@framingui/ui/styles';";
|
|
15
16
|
const EXCLUDED_DIRS = new Set(['node_modules', '.git', '.next', 'dist', 'build', 'coverage']);
|
|
16
17
|
const MAX_SEARCH_DEPTH = 5;
|
|
17
|
-
|
|
18
|
+
const FRAMINGUI_TAILWIND_VERSION = '^3.4.17';
|
|
19
|
+
const FRAMINGUI_POSTCSS_VERSION = '^8.4.38';
|
|
20
|
+
const FRAMINGUI_AUTOPREFIXER_VERSION = '^10.4.19';
|
|
21
|
+
const FRAMINGUI_ANIMATE_VERSION = '^1.0.7';
|
|
22
|
+
const DEFAULT_THEME_ID = 'neutral-workspace';
|
|
23
|
+
export const SCREEN_GENERATION_RUNTIME_PACKAGES = [
|
|
18
24
|
'@framingui/ui',
|
|
19
25
|
'@framingui/core',
|
|
20
26
|
'@framingui/tokens',
|
|
@@ -47,9 +53,18 @@ export const SCREEN_GENERATION_PACKAGES = [
|
|
|
47
53
|
'react-day-picker',
|
|
48
54
|
'react-hook-form',
|
|
49
55
|
'tailwind-merge',
|
|
50
|
-
'tailwindcss-animate',
|
|
51
56
|
'zod',
|
|
52
57
|
];
|
|
58
|
+
export const TAILWIND_V3_TOOLCHAIN_PACKAGES = {
|
|
59
|
+
tailwindcss: FRAMINGUI_TAILWIND_VERSION,
|
|
60
|
+
postcss: FRAMINGUI_POSTCSS_VERSION,
|
|
61
|
+
autoprefixer: FRAMINGUI_AUTOPREFIXER_VERSION,
|
|
62
|
+
'tailwindcss-animate': FRAMINGUI_ANIMATE_VERSION,
|
|
63
|
+
};
|
|
64
|
+
export const SCREEN_GENERATION_PACKAGES = [
|
|
65
|
+
...SCREEN_GENERATION_RUNTIME_PACKAGES,
|
|
66
|
+
...Object.keys(TAILWIND_V3_TOOLCHAIN_PACKAGES),
|
|
67
|
+
];
|
|
53
68
|
function log(step, total, message) {
|
|
54
69
|
console.log(`\n[${step}/${total}] ${message}`);
|
|
55
70
|
}
|
|
@@ -122,17 +137,157 @@ function detectPackageManager(cwd) {
|
|
|
122
137
|
}
|
|
123
138
|
return 'npm';
|
|
124
139
|
}
|
|
125
|
-
function
|
|
126
|
-
const
|
|
140
|
+
function getInstalledPackageMap(packageJson) {
|
|
141
|
+
const installed = {};
|
|
142
|
+
if (!packageJson) {
|
|
143
|
+
return installed;
|
|
144
|
+
}
|
|
145
|
+
const fields = [
|
|
146
|
+
'dependencies',
|
|
147
|
+
'devDependencies',
|
|
148
|
+
'peerDependencies',
|
|
149
|
+
'optionalDependencies',
|
|
150
|
+
];
|
|
151
|
+
for (const field of fields) {
|
|
152
|
+
const deps = packageJson[field];
|
|
153
|
+
if (deps && typeof deps === 'object') {
|
|
154
|
+
Object.assign(installed, deps);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return installed;
|
|
158
|
+
}
|
|
159
|
+
function getInstalledMajor(versionSpec) {
|
|
160
|
+
if (!versionSpec) {
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
const match = versionSpec.match(/(\d+)(?:\.\d+)?(?:\.\d+)?/);
|
|
164
|
+
if (!match) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
return Number.parseInt(match[1], 10);
|
|
168
|
+
}
|
|
169
|
+
function themeV2ToDefinition(theme) {
|
|
170
|
+
const semantic = theme.tokens.semantic;
|
|
171
|
+
const surfaceRaw = semantic.background?.surface;
|
|
172
|
+
const brandRaw = semantic.background?.brand;
|
|
173
|
+
const borderRaw = semantic.border;
|
|
174
|
+
const textRaw = semantic.text;
|
|
175
|
+
return {
|
|
176
|
+
id: theme.id,
|
|
177
|
+
name: theme.name,
|
|
178
|
+
schemaVersion: theme.schemaVersion,
|
|
179
|
+
tokens: {
|
|
180
|
+
atomic: {
|
|
181
|
+
color: theme.tokens.atomic.color,
|
|
182
|
+
spacing: theme.tokens.atomic.spacing,
|
|
183
|
+
radius: theme.tokens.atomic.radius,
|
|
184
|
+
},
|
|
185
|
+
semantic: {
|
|
186
|
+
background: {
|
|
187
|
+
canvas: semantic.background?.canvas ?? 'atomic.color.neutral.50',
|
|
188
|
+
surface: {
|
|
189
|
+
subtle: surfaceRaw?.subtle ?? 'atomic.color.neutral.100',
|
|
190
|
+
default: surfaceRaw?.default ?? 'atomic.color.neutral.white',
|
|
191
|
+
emphasis: surfaceRaw?.emphasis ?? 'atomic.color.neutral.200',
|
|
192
|
+
},
|
|
193
|
+
brand: {
|
|
194
|
+
subtle: brandRaw?.subtle ?? 'atomic.color.brand.100',
|
|
195
|
+
default: brandRaw?.default ?? 'atomic.color.brand.500',
|
|
196
|
+
emphasis: brandRaw?.emphasis ?? 'atomic.color.brand.700',
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
border: {
|
|
200
|
+
default: {
|
|
201
|
+
subtle: borderRaw?.default?.subtle ?? 'atomic.color.neutral.100',
|
|
202
|
+
default: borderRaw?.default?.default ?? 'atomic.color.neutral.200',
|
|
203
|
+
emphasis: borderRaw?.default?.emphasis ?? 'atomic.color.neutral.300',
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
text: {
|
|
207
|
+
primary: textRaw?.primary ?? 'atomic.color.neutral.900',
|
|
208
|
+
secondary: textRaw?.secondary ?? 'atomic.color.neutral.600',
|
|
209
|
+
muted: textRaw?.muted ?? 'atomic.color.neutral.400',
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
stateLayer: theme.stateLayer
|
|
214
|
+
? {
|
|
215
|
+
hover: theme.stateLayer.hover
|
|
216
|
+
? { opacity: theme.stateLayer.hover.opacity ?? 0.08 }
|
|
217
|
+
: undefined,
|
|
218
|
+
disabled: theme.stateLayer.disabled
|
|
219
|
+
? {
|
|
220
|
+
opacity: theme.stateLayer.disabled.opacity ?? 0.38,
|
|
221
|
+
contentOpacity: theme.stateLayer.disabled.contentOpacity ?? 0.38,
|
|
222
|
+
}
|
|
223
|
+
: undefined,
|
|
224
|
+
}
|
|
225
|
+
: undefined,
|
|
226
|
+
typography: theme.typography
|
|
227
|
+
? {
|
|
228
|
+
fontFamily: theme.typography.fontFamily,
|
|
229
|
+
fontWeight: theme.typography.fontWeight,
|
|
230
|
+
}
|
|
231
|
+
: undefined,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
function serializeThemeModule(theme) {
|
|
235
|
+
return `const framinguiTheme = ${JSON.stringify(theme, null, 2)} as const;\n\nexport default framinguiTheme;\n`;
|
|
236
|
+
}
|
|
237
|
+
function upsertImport(content, statement) {
|
|
238
|
+
if (content.includes(statement)) {
|
|
239
|
+
return content;
|
|
240
|
+
}
|
|
241
|
+
const importMatches = [...content.matchAll(/^import\s.+;$/gm)];
|
|
242
|
+
if (importMatches.length > 0) {
|
|
243
|
+
const lastImport = importMatches[importMatches.length - 1];
|
|
244
|
+
const insertIndex = lastImport.index + lastImport[0].length;
|
|
245
|
+
return `${content.slice(0, insertIndex)}\n${statement}${content.slice(insertIndex)}`;
|
|
246
|
+
}
|
|
247
|
+
return `${statement}\n${content}`;
|
|
248
|
+
}
|
|
249
|
+
function runInstallCommand(cwd, command) {
|
|
127
250
|
logDetail(command);
|
|
128
251
|
try {
|
|
129
252
|
execSync(command, { cwd, stdio: 'inherit' });
|
|
130
|
-
return
|
|
253
|
+
return true;
|
|
131
254
|
}
|
|
132
255
|
catch {
|
|
133
|
-
return
|
|
256
|
+
return false;
|
|
134
257
|
}
|
|
135
258
|
}
|
|
259
|
+
function installPackages(cwd, pm) {
|
|
260
|
+
const packageJson = readProjectPackageJson(cwd);
|
|
261
|
+
const installed = getInstalledPackageMap(packageJson);
|
|
262
|
+
const runtimeMissing = SCREEN_GENERATION_RUNTIME_PACKAGES.filter(pkg => !installed[pkg]);
|
|
263
|
+
const tailwindVersion = installed.tailwindcss;
|
|
264
|
+
const tailwindMajor = getInstalledMajor(tailwindVersion);
|
|
265
|
+
if (tailwindMajor && tailwindMajor >= 4) {
|
|
266
|
+
return {
|
|
267
|
+
ok: false,
|
|
268
|
+
command: '',
|
|
269
|
+
reason: `Detected tailwindcss@${tailwindVersion}. FramingUI init currently targets Tailwind CSS v3. ` +
|
|
270
|
+
`Remove Tailwind v4 and install tailwindcss@${FRAMINGUI_TAILWIND_VERSION}, ` +
|
|
271
|
+
`postcss@${FRAMINGUI_POSTCSS_VERSION}, autoprefixer@${FRAMINGUI_AUTOPREFIXER_VERSION}.`,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
const toolchainMissing = Object.entries(TAILWIND_V3_TOOLCHAIN_PACKAGES)
|
|
275
|
+
.filter(([pkg]) => !installed[pkg])
|
|
276
|
+
.map(([pkg, version]) => `${pkg}@${version}`);
|
|
277
|
+
const commands = [];
|
|
278
|
+
if (runtimeMissing.length > 0) {
|
|
279
|
+
commands.push(`${pm} add ${runtimeMissing.join(' ')}`);
|
|
280
|
+
}
|
|
281
|
+
if (toolchainMissing.length > 0) {
|
|
282
|
+
commands.push(`${pm} add -D ${toolchainMissing.join(' ')}`);
|
|
283
|
+
}
|
|
284
|
+
if (commands.length === 0) {
|
|
285
|
+
logDetail('All FramingUI runtime and Tailwind v3 toolchain packages are already installed');
|
|
286
|
+
return { ok: true, command: '' };
|
|
287
|
+
}
|
|
288
|
+
const ok = commands.every(command => runInstallCommand(cwd, command));
|
|
289
|
+
return { ok, command: commands.join(' && ') };
|
|
290
|
+
}
|
|
136
291
|
const TAILWIND_CONFIG_CANDIDATES = [
|
|
137
292
|
'tailwind.config.ts',
|
|
138
293
|
'tailwind.config.js',
|
|
@@ -230,6 +385,85 @@ export function setupCSS(cwd, framework) {
|
|
|
230
385
|
logDetail(`${cssFile} updated`);
|
|
231
386
|
return cssPath;
|
|
232
387
|
}
|
|
388
|
+
function ensureNextRootLayout(cwd) {
|
|
389
|
+
const candidates = [
|
|
390
|
+
path.join(cwd, 'app/layout.tsx'),
|
|
391
|
+
path.join(cwd, 'app/layout.jsx'),
|
|
392
|
+
path.join(cwd, 'src/app/layout.tsx'),
|
|
393
|
+
path.join(cwd, 'src/app/layout.jsx'),
|
|
394
|
+
];
|
|
395
|
+
const existing = candidates.find(fileExists);
|
|
396
|
+
if (existing) {
|
|
397
|
+
return existing;
|
|
398
|
+
}
|
|
399
|
+
const appDir = fileExists(path.join(cwd, 'src/app'))
|
|
400
|
+
? path.join(cwd, 'src/app')
|
|
401
|
+
: path.join(cwd, 'app');
|
|
402
|
+
fs.mkdirSync(appDir, { recursive: true });
|
|
403
|
+
const layoutPath = path.join(appDir, 'layout.tsx');
|
|
404
|
+
const globalsImport = fileExists(path.join(appDir, 'globals.css'))
|
|
405
|
+
? "import './globals.css';\n"
|
|
406
|
+
: '';
|
|
407
|
+
const template = `${globalsImport}import { FramingUIProvider } from '@framingui/ui';\nimport framinguiTheme from './framingui-theme';\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n return (\n <html lang="en">\n <body>\n <FramingUIProvider theme={framinguiTheme}>{children}</FramingUIProvider>\n </body>\n </html>\n );\n}\n`;
|
|
408
|
+
fs.writeFileSync(layoutPath, template, 'utf-8');
|
|
409
|
+
return layoutPath;
|
|
410
|
+
}
|
|
411
|
+
function ensureViteEntry(cwd) {
|
|
412
|
+
const candidates = [
|
|
413
|
+
path.join(cwd, 'src/main.tsx'),
|
|
414
|
+
path.join(cwd, 'src/main.jsx'),
|
|
415
|
+
path.join(cwd, 'src/main.ts'),
|
|
416
|
+
path.join(cwd, 'src/main.js'),
|
|
417
|
+
];
|
|
418
|
+
const existing = candidates.find(fileExists);
|
|
419
|
+
if (existing) {
|
|
420
|
+
return existing;
|
|
421
|
+
}
|
|
422
|
+
const srcDir = path.join(cwd, 'src');
|
|
423
|
+
fs.mkdirSync(srcDir, { recursive: true });
|
|
424
|
+
const entryPath = path.join(srcDir, 'main.tsx');
|
|
425
|
+
const template = `import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport { FramingUIProvider } from '@framingui/ui';\nimport framinguiTheme from './framingui-theme';\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n <React.StrictMode>\n <FramingUIProvider theme={framinguiTheme}>\n <App />\n </FramingUIProvider>\n </React.StrictMode>\n);\n`;
|
|
426
|
+
fs.writeFileSync(entryPath, template, 'utf-8');
|
|
427
|
+
return entryPath;
|
|
428
|
+
}
|
|
429
|
+
export function setupThemeBootstrap(cwd, framework, themeId = DEFAULT_THEME_ID) {
|
|
430
|
+
const loadedTheme = loadThemeV2(themeId);
|
|
431
|
+
if (!loadedTheme) {
|
|
432
|
+
logDetail(`Unable to load bundled theme "${themeId}" for provider bootstrap`);
|
|
433
|
+
return {};
|
|
434
|
+
}
|
|
435
|
+
const theme = themeV2ToDefinition(loadedTheme);
|
|
436
|
+
if (framework === 'nextjs') {
|
|
437
|
+
const layoutPath = ensureNextRootLayout(cwd);
|
|
438
|
+
const themeModulePath = path.join(path.dirname(layoutPath), 'framingui-theme.ts');
|
|
439
|
+
if (!fileExists(themeModulePath)) {
|
|
440
|
+
fs.writeFileSync(themeModulePath, serializeThemeModule(theme), 'utf-8');
|
|
441
|
+
}
|
|
442
|
+
let content = fs.readFileSync(layoutPath, 'utf-8');
|
|
443
|
+
content = upsertImport(content, "import { FramingUIProvider } from '@framingui/ui';");
|
|
444
|
+
content = upsertImport(content, "import framinguiTheme from './framingui-theme';");
|
|
445
|
+
if (!content.includes('<FramingUIProvider theme={framinguiTheme}>')) {
|
|
446
|
+
content = content.replace(/\{children\}/, '<FramingUIProvider theme={framinguiTheme}>{children}</FramingUIProvider>');
|
|
447
|
+
}
|
|
448
|
+
fs.writeFileSync(layoutPath, content, 'utf-8');
|
|
449
|
+
logDetail(`${relativeToCwd(cwd, layoutPath)} configured with FramingUIProvider`);
|
|
450
|
+
return { entryPath: layoutPath, themeModulePath };
|
|
451
|
+
}
|
|
452
|
+
const entryPath = ensureViteEntry(cwd);
|
|
453
|
+
const themeModulePath = path.join(path.dirname(entryPath), 'framingui-theme.ts');
|
|
454
|
+
if (!fileExists(themeModulePath)) {
|
|
455
|
+
fs.writeFileSync(themeModulePath, serializeThemeModule(theme), 'utf-8');
|
|
456
|
+
}
|
|
457
|
+
let content = fs.readFileSync(entryPath, 'utf-8');
|
|
458
|
+
content = upsertImport(content, "import { FramingUIProvider } from '@framingui/ui';");
|
|
459
|
+
content = upsertImport(content, "import framinguiTheme from './framingui-theme';");
|
|
460
|
+
if (!content.includes('<FramingUIProvider theme={framinguiTheme}>')) {
|
|
461
|
+
content = content.replace(/<App\s*\/>/, '<FramingUIProvider theme={framinguiTheme}><App /></FramingUIProvider>');
|
|
462
|
+
}
|
|
463
|
+
fs.writeFileSync(entryPath, content, 'utf-8');
|
|
464
|
+
logDetail(`${relativeToCwd(cwd, entryPath)} configured with FramingUIProvider`);
|
|
465
|
+
return { entryPath, themeModulePath };
|
|
466
|
+
}
|
|
233
467
|
export function setupMCP(cwd) {
|
|
234
468
|
const mcpPath = path.join(cwd, '.mcp.json');
|
|
235
469
|
if (fileExists(mcpPath)) {
|
|
@@ -299,27 +533,28 @@ function readProjectPackageJson(cwd) {
|
|
|
299
533
|
return JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
300
534
|
}
|
|
301
535
|
function getInstalledPackageNames(packageJson) {
|
|
302
|
-
|
|
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;
|
|
536
|
+
return new Set(Object.keys(getInstalledPackageMap(packageJson)));
|
|
316
537
|
}
|
|
317
538
|
export function verifyInitSetup(cwd) {
|
|
318
539
|
const packageJson = readProjectPackageJson(cwd);
|
|
319
540
|
const installed = getInstalledPackageNames(packageJson);
|
|
541
|
+
const installedVersions = getInstalledPackageMap(packageJson);
|
|
320
542
|
const missingPackages = SCREEN_GENERATION_PACKAGES.filter(pkg => !installed.has(pkg));
|
|
543
|
+
const detectedTailwindVersion = installedVersions.tailwindcss;
|
|
544
|
+
const tailwindVersionOk = (() => {
|
|
545
|
+
const major = getInstalledMajor(detectedTailwindVersion);
|
|
546
|
+
return major === undefined || major < 4;
|
|
547
|
+
})();
|
|
321
548
|
const stylesheets = walkFiles(cwd).filter(filePath => /\.(css|scss)$/.test(filePath));
|
|
322
549
|
const stylesheetWithImport = stylesheets.find(filePath => fs.readFileSync(filePath, 'utf-8').includes(FRAMINGUI_STYLE_IMPORT));
|
|
550
|
+
const providerEntries = walkFiles(cwd).filter(filePath => /(app\/layout\.(t|j)sx?|src\/app\/layout\.(t|j)sx?|src\/main\.(t|j)sx?)$/.test(filePath.replaceAll(path.sep, '/')));
|
|
551
|
+
const providerEntry = providerEntries.find(filePath => {
|
|
552
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
553
|
+
return (content.includes('FramingUIProvider') &&
|
|
554
|
+
content.includes('framinguiTheme') &&
|
|
555
|
+
content.includes('theme={framinguiTheme}'));
|
|
556
|
+
});
|
|
557
|
+
const themeModule = walkFiles(cwd).find(filePath => /framingui-theme\.(t|j)sx?$/.test(filePath.replaceAll(path.sep, '/')));
|
|
323
558
|
const tailwind = readTailwindConfig(cwd);
|
|
324
559
|
const warnings = [];
|
|
325
560
|
if (missingPackages.length > 0) {
|
|
@@ -328,6 +563,12 @@ export function verifyInitSetup(cwd) {
|
|
|
328
563
|
if (!stylesheetWithImport) {
|
|
329
564
|
warnings.push(`Missing ${FRAMINGUI_STYLE_IMPORT} in a global stylesheet`);
|
|
330
565
|
}
|
|
566
|
+
if (!providerEntry) {
|
|
567
|
+
warnings.push('Missing FramingUIProvider bootstrap in app root (layout.tsx or main.tsx)');
|
|
568
|
+
}
|
|
569
|
+
if (!themeModule) {
|
|
570
|
+
warnings.push('Missing framingui-theme module for runtime theme injection');
|
|
571
|
+
}
|
|
331
572
|
if (!tailwind.found) {
|
|
332
573
|
warnings.push('Tailwind config not found');
|
|
333
574
|
}
|
|
@@ -339,14 +580,23 @@ export function verifyInitSetup(cwd) {
|
|
|
339
580
|
warnings.push('Tailwind config is missing the tailwindcss-animate plugin');
|
|
340
581
|
}
|
|
341
582
|
}
|
|
583
|
+
if (!tailwindVersionOk) {
|
|
584
|
+
warnings.push(`Detected tailwindcss@${detectedTailwindVersion}. FramingUI init currently supports Tailwind CSS v3 only`);
|
|
585
|
+
}
|
|
342
586
|
return {
|
|
343
587
|
installedPackagesOk: missingPackages.length === 0,
|
|
344
588
|
missingPackages,
|
|
345
589
|
styleImportOk: Boolean(stylesheetWithImport),
|
|
346
590
|
styleImportPath: stylesheetWithImport,
|
|
591
|
+
providerBootstrapOk: Boolean(providerEntry),
|
|
592
|
+
providerEntryPath: providerEntry,
|
|
593
|
+
themeModuleOk: Boolean(themeModule),
|
|
594
|
+
themeModulePath: themeModule,
|
|
347
595
|
tailwindFound: tailwind.found,
|
|
348
596
|
tailwindUiContentOk: tailwind.hasUiContentPath,
|
|
349
597
|
tailwindAnimatePluginOk: tailwind.hasAnimatePlugin,
|
|
598
|
+
tailwindVersionOk,
|
|
599
|
+
detectedTailwindVersion,
|
|
350
600
|
tailwindConfigPath: tailwind.configPath,
|
|
351
601
|
warnings,
|
|
352
602
|
};
|
|
@@ -382,15 +632,20 @@ function printResult(pm, verification) {
|
|
|
382
632
|
|
|
383
633
|
Recovery:
|
|
384
634
|
- Re-run package install:
|
|
385
|
-
${pm} add ${
|
|
635
|
+
${pm} add ${SCREEN_GENERATION_RUNTIME_PACKAGES.join(' ')}
|
|
636
|
+
${pm} add -D ${Object.entries(TAILWIND_V3_TOOLCHAIN_PACKAGES)
|
|
637
|
+
.map(([pkg, version]) => `${pkg}@${version}`)
|
|
638
|
+
.join(' ')}
|
|
386
639
|
- Ensure a global stylesheet imports:
|
|
387
640
|
${FRAMINGUI_STYLE_IMPORT}
|
|
641
|
+
- Ensure your root entry wraps the app with:
|
|
642
|
+
<FramingUIProvider theme={framinguiTheme}>...</FramingUIProvider>
|
|
388
643
|
|
|
389
644
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
390
645
|
}
|
|
391
646
|
export async function initCommand() {
|
|
392
647
|
const cwd = process.cwd();
|
|
393
|
-
const totalSteps =
|
|
648
|
+
const totalSteps = 10;
|
|
394
649
|
console.log('\n@framingui/mcp-server init\n');
|
|
395
650
|
if (!fileExists(path.join(cwd, 'package.json'))) {
|
|
396
651
|
console.error('package.json not found. Run this command from the project root.');
|
|
@@ -411,6 +666,9 @@ export async function initCommand() {
|
|
|
411
666
|
const installResult = installPackages(cwd, pm);
|
|
412
667
|
if (!installResult.ok) {
|
|
413
668
|
console.error('Package installation failed.');
|
|
669
|
+
if (installResult.reason) {
|
|
670
|
+
console.error(installResult.reason);
|
|
671
|
+
}
|
|
414
672
|
}
|
|
415
673
|
log(3, totalSteps, 'Configuring Tailwind CSS...');
|
|
416
674
|
try {
|
|
@@ -429,36 +687,49 @@ export async function initCommand() {
|
|
|
429
687
|
catch {
|
|
430
688
|
console.error('Failed to update the stylesheet import.');
|
|
431
689
|
}
|
|
432
|
-
log(5, totalSteps, '
|
|
690
|
+
log(5, totalSteps, 'Bootstrapping FramingUIProvider...');
|
|
691
|
+
try {
|
|
692
|
+
setupThemeBootstrap(cwd, framework);
|
|
693
|
+
}
|
|
694
|
+
catch {
|
|
695
|
+
console.error('Failed to configure FramingUIProvider bootstrap.');
|
|
696
|
+
}
|
|
697
|
+
log(6, totalSteps, 'Configuring MCP server...');
|
|
433
698
|
try {
|
|
434
699
|
setupMCP(cwd);
|
|
435
700
|
}
|
|
436
701
|
catch {
|
|
437
702
|
console.error('Failed to update .mcp.json.');
|
|
438
703
|
}
|
|
439
|
-
log(
|
|
704
|
+
log(7, totalSteps, 'Generating project guide...');
|
|
440
705
|
try {
|
|
441
706
|
setupGuide(cwd, framework);
|
|
442
707
|
}
|
|
443
708
|
catch {
|
|
444
709
|
console.error('Failed to generate FRAMINGUI-GUIDE.md.');
|
|
445
710
|
}
|
|
446
|
-
log(
|
|
711
|
+
log(8, totalSteps, 'Updating AI agent guides...');
|
|
447
712
|
try {
|
|
448
713
|
setupAgentMd(cwd, framework);
|
|
449
714
|
}
|
|
450
715
|
catch {
|
|
451
716
|
console.error('Failed to update CLAUDE.md / AGENTS.md.');
|
|
452
717
|
}
|
|
453
|
-
log(
|
|
718
|
+
log(9, totalSteps, 'Verifying FramingUI setup...');
|
|
454
719
|
const verification = verifyInitSetup(cwd);
|
|
455
720
|
if (verification.styleImportPath) {
|
|
456
721
|
logDetail(`Styles import found in ${relativeToCwd(cwd, verification.styleImportPath)}`);
|
|
457
722
|
}
|
|
723
|
+
if (verification.providerEntryPath) {
|
|
724
|
+
logDetail(`FramingUIProvider bootstrap found in ${relativeToCwd(cwd, verification.providerEntryPath)}`);
|
|
725
|
+
}
|
|
726
|
+
if (verification.themeModulePath) {
|
|
727
|
+
logDetail(`Theme module found at ${relativeToCwd(cwd, verification.themeModulePath)}`);
|
|
728
|
+
}
|
|
458
729
|
if (verification.tailwindConfigPath) {
|
|
459
730
|
logDetail(`Tailwind config verified at ${relativeToCwd(cwd, verification.tailwindConfigPath)}`);
|
|
460
731
|
}
|
|
461
|
-
log(
|
|
732
|
+
log(10, totalSteps, verification.warnings.length === 0 ? 'Setup complete' : 'Setup incomplete');
|
|
462
733
|
printResult(pm, verification);
|
|
463
734
|
if (!installResult.ok || verification.warnings.length > 0) {
|
|
464
735
|
process.exitCode = 1;
|
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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"}
|
package/dist/index.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-environment.d.ts","sourceRoot":"","sources":["../../src/tools/validate-environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-environment.d.ts","sourceRoot":"","sources":["../../src/tools/validate-environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AAmCnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CA4JpC"}
|
|
@@ -3,9 +3,34 @@
|
|
|
3
3
|
* SPEC-MCP-005 Phase 2: Check if user's project has required NPM packages installed
|
|
4
4
|
* SPEC-MCP-005: Tailwind CSS 설정 검증 확장
|
|
5
5
|
*/
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
6
8
|
import { readPackageJson } from '../utils/package-json-reader.js';
|
|
7
9
|
import { readTailwindConfig } from '../utils/tailwind-config-reader.js';
|
|
8
10
|
import { extractErrorMessage } from '../utils/error-handler.js';
|
|
11
|
+
function getInstalledMajor(versionSpec) {
|
|
12
|
+
if (!versionSpec) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const match = versionSpec.match(/(\d+)(?:\.\d+)?(?:\.\d+)?/);
|
|
16
|
+
if (!match) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return Number.parseInt(match[1], 10);
|
|
20
|
+
}
|
|
21
|
+
function findBootstrapEntry(projectPath) {
|
|
22
|
+
const candidates = [
|
|
23
|
+
'app/layout.tsx',
|
|
24
|
+
'app/layout.jsx',
|
|
25
|
+
'src/app/layout.tsx',
|
|
26
|
+
'src/app/layout.jsx',
|
|
27
|
+
'src/main.tsx',
|
|
28
|
+
'src/main.jsx',
|
|
29
|
+
'src/main.ts',
|
|
30
|
+
'src/main.js',
|
|
31
|
+
];
|
|
32
|
+
return candidates.find(candidate => fs.existsSync(path.join(projectPath, candidate)));
|
|
33
|
+
}
|
|
9
34
|
/**
|
|
10
35
|
* Validate user's environment for required dependencies
|
|
11
36
|
*
|
|
@@ -69,8 +94,15 @@ export async function validateEnvironmentTool(input) {
|
|
|
69
94
|
let tailwind;
|
|
70
95
|
if (checkTailwind !== false) {
|
|
71
96
|
const tailwindResult = readTailwindConfig(projectPath);
|
|
97
|
+
const installedTailwindVersion = installedPackages.tailwindcss;
|
|
98
|
+
const installedTailwindMajor = getInstalledMajor(installedTailwindVersion);
|
|
72
99
|
const issues = [];
|
|
73
100
|
const fixes = [];
|
|
101
|
+
if (installedTailwindMajor && installedTailwindMajor >= 4) {
|
|
102
|
+
issues.push(`tailwindcss@${installedTailwindVersion} detected — current FramingUI screen-generation setup expects Tailwind CSS v3`);
|
|
103
|
+
fixes.push('Downgrade to Tailwind CSS v3 and install the matching toolchain: ' +
|
|
104
|
+
'npm install -D tailwindcss@^3.4.17 postcss@^8.4.38 autoprefixer@^10.4.19 tailwindcss-animate@^1.0.7');
|
|
105
|
+
}
|
|
74
106
|
if (!tailwindResult.found) {
|
|
75
107
|
issues.push('tailwind.config.{ts,js,mjs,cjs} not found in project root');
|
|
76
108
|
fixes.push('Create a tailwind.config.ts file in your project root. ' +
|
|
@@ -91,6 +123,36 @@ export async function validateEnvironmentTool(input) {
|
|
|
91
123
|
"import animate from 'tailwindcss-animate'; plugins: [animate]");
|
|
92
124
|
}
|
|
93
125
|
}
|
|
126
|
+
const bootstrapEntry = findBootstrapEntry(projectPath);
|
|
127
|
+
if (!bootstrapEntry) {
|
|
128
|
+
issues.push('No app root entry found for FramingUIProvider bootstrap');
|
|
129
|
+
fixes.push('Create app/layout.tsx (Next.js) or src/main.tsx (Vite) and wrap the app with ' +
|
|
130
|
+
'<FramingUIProvider theme={framinguiTheme}>...</FramingUIProvider>');
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const bootstrapContent = fs.readFileSync(path.join(projectPath, bootstrapEntry), 'utf-8');
|
|
134
|
+
if (!bootstrapContent.includes('FramingUIProvider') ||
|
|
135
|
+
!bootstrapContent.includes('framinguiTheme') ||
|
|
136
|
+
!bootstrapContent.includes('theme={framinguiTheme}')) {
|
|
137
|
+
issues.push(`${bootstrapEntry} does not mount FramingUIProvider with the generated framinguiTheme`);
|
|
138
|
+
fixes.push(`Update ${bootstrapEntry} to import { FramingUIProvider } from '@framingui/ui', ` +
|
|
139
|
+
"import framinguiTheme from './framingui-theme', and wrap the app root with " +
|
|
140
|
+
'<FramingUIProvider theme={framinguiTheme}>...</FramingUIProvider>');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const themeModuleCandidates = [
|
|
144
|
+
'app/framingui-theme.ts',
|
|
145
|
+
'app/framingui-theme.js',
|
|
146
|
+
'src/app/framingui-theme.ts',
|
|
147
|
+
'src/app/framingui-theme.js',
|
|
148
|
+
'src/framingui-theme.ts',
|
|
149
|
+
'src/framingui-theme.js',
|
|
150
|
+
];
|
|
151
|
+
const hasThemeModule = themeModuleCandidates.some(candidate => fs.existsSync(path.join(projectPath, candidate)));
|
|
152
|
+
if (!hasThemeModule) {
|
|
153
|
+
issues.push('Generated framingui-theme module not found');
|
|
154
|
+
fixes.push('Generate a local framingui-theme module that exports a theme object and pass it to FramingUIProvider');
|
|
155
|
+
}
|
|
94
156
|
tailwind = {
|
|
95
157
|
configFound: tailwindResult.found,
|
|
96
158
|
configPath: tailwindResult.configPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-environment.js","sourceRoot":"","sources":["../../src/tools/validate-environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAE/D,6CAA6C;QAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,6BAA6B;aACzD,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;QAEvD,4DAA4D;QAC5D,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,WAAW,IAAI,gBAAgB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,uBAAuB;gBACvB,SAAS,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,eAAe,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEzD,8DAA8D;QAC9D,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,6BAA6B;QAC7B,IAAI,QAA+C,CAAC;QAEpD,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-environment.js","sourceRoot":"","sources":["../../src/tools/validate-environment.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framingui/mcp-server",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.24",
|
|
4
4
|
"description": "Framingui MCP Server with Claude Code integration and timestamp-based preview system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,12 +33,25 @@
|
|
|
33
33
|
"url": "https://github.com/soo-kate-yeon/framingui",
|
|
34
34
|
"directory": "packages/mcp-server"
|
|
35
35
|
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsc -b",
|
|
38
|
+
"dev": "tsc --watch",
|
|
39
|
+
"test": "vitest run",
|
|
40
|
+
"test:watch": "vitest",
|
|
41
|
+
"test:coverage": "vitest run --coverage",
|
|
42
|
+
"start": "node dist/index.js",
|
|
43
|
+
"inspect": "npx @anthropic-ai/mcp-inspector node dist/index.js",
|
|
44
|
+
"lint": "eslint src __tests__ --ext .ts --ignore-pattern 'src/**/*.js' --ignore-pattern 'src/**/*.d.ts'",
|
|
45
|
+
"typecheck": "tsc --noEmit",
|
|
46
|
+
"typecheck:tests": "tsc --project tsconfig.test.json --noEmit",
|
|
47
|
+
"prepublishOnly": "pnpm build"
|
|
48
|
+
},
|
|
36
49
|
"dependencies": {
|
|
37
50
|
"@anthropic-ai/sdk": "^0.40.0",
|
|
38
51
|
"@babel/parser": "^7.28.6",
|
|
39
52
|
"@babel/traverse": "^7.28.6",
|
|
40
53
|
"@framingui/core": "^0.4.3",
|
|
41
|
-
"@framingui/ui": "^0.6.
|
|
54
|
+
"@framingui/ui": "^0.6.11",
|
|
42
55
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
43
56
|
"zod": "^3.23.8"
|
|
44
57
|
},
|
|
@@ -86,17 +99,5 @@
|
|
|
86
99
|
"engines": {
|
|
87
100
|
"node": ">=20.0.0"
|
|
88
101
|
},
|
|
89
|
-
"license": "MIT"
|
|
90
|
-
|
|
91
|
-
"build": "tsc -b",
|
|
92
|
-
"dev": "tsc --watch",
|
|
93
|
-
"test": "vitest run",
|
|
94
|
-
"test:watch": "vitest",
|
|
95
|
-
"test:coverage": "vitest run --coverage",
|
|
96
|
-
"start": "node dist/index.js",
|
|
97
|
-
"inspect": "npx @anthropic-ai/mcp-inspector node dist/index.js",
|
|
98
|
-
"lint": "eslint src __tests__ --ext .ts --ignore-pattern 'src/**/*.js' --ignore-pattern 'src/**/*.d.ts'",
|
|
99
|
-
"typecheck": "tsc --noEmit",
|
|
100
|
-
"typecheck:tests": "tsc --project tsconfig.test.json --noEmit"
|
|
101
|
-
}
|
|
102
|
-
}
|
|
102
|
+
"license": "MIT"
|
|
103
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Tekton Contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|