@framingui/mcp-server 0.6.23 → 0.6.25

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 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 FramingUI variables/variants
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,CA4EpE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAoDpE"}
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\` before relying on FramingUI default variants.
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/styles';
60
- import { Button, Card, CardContent, CardHeader, CardTitle } from '@framingui/ui';
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
- <Card>
65
- <CardHeader>
66
- <CardTitle>Ready for MCP-assisted UI work</CardTitle>
67
- </CardHeader>
68
- <CardContent>
69
- <Button>Continue</Button>
70
- </CardContent>
71
- </Card>
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\` and then rely on FramingUI variants
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/styles';
112
- import { Button, Card, CardContent, CardHeader, CardTitle } from '@framingui/ui';
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
- <Card>
117
- <CardHeader>
118
- <CardTitle>FramingUI project setup</CardTitle>
119
- </CardHeader>
120
- <CardContent>
121
- <Button>Continue</Button>
122
- </CardContent>
123
- </Card>
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;;;;;;;;;;;;;;;;;CAiBd,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;;;;;;;;;;;;;;;;;CAiBd,CAAC;AACF,CAAC"}
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,CA+F1D"}
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
- Only use FramingUI default variants after that import is in place.
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/styles';
72
- import { Button, Card, CardContent, CardHeader, CardTitle } from '@framingui/ui';
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
- <Card>
77
- <CardHeader>
78
- <CardTitle>FramingUI is ready</CardTitle>
79
- </CardHeader>
80
- <CardContent>
81
- <Button>Continue</Button>
82
- </CardContent>
83
- </Card>
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;;;;;;;;;;;;;;;;;;;;;;;;CAwBX,CAAC;AACF,CAAC"}
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"}
@@ -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 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", "tailwindcss-animate", "zod"];
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>;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAUpE,eAAO,MAAM,0BAA0B,4xBAmC7B,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,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AA8GF,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;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAqB1C;AA6ED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAyC7D;AAyCD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAoFjD"}
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;AASX,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;AAkRF,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,CAiF7D;AAkDD,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
- export const SCREEN_GENERATION_PACKAGES = [
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,22 @@ 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
+ ];
68
+ function usesTailwindV4(versionSpec) {
69
+ const major = getInstalledMajor(versionSpec);
70
+ return major !== undefined && major >= 4;
71
+ }
53
72
  function log(step, total, message) {
54
73
  console.log(`\n[${step}/${total}] ${message}`);
55
74
  }
@@ -122,17 +141,152 @@ function detectPackageManager(cwd) {
122
141
  }
123
142
  return 'npm';
124
143
  }
125
- function installPackages(cwd, pm) {
126
- const command = `${pm} add ${SCREEN_GENERATION_PACKAGES.join(' ')}`;
144
+ function getInstalledPackageMap(packageJson) {
145
+ const installed = {};
146
+ if (!packageJson) {
147
+ return installed;
148
+ }
149
+ const fields = [
150
+ 'dependencies',
151
+ 'devDependencies',
152
+ 'peerDependencies',
153
+ 'optionalDependencies',
154
+ ];
155
+ for (const field of fields) {
156
+ const deps = packageJson[field];
157
+ if (deps && typeof deps === 'object') {
158
+ Object.assign(installed, deps);
159
+ }
160
+ }
161
+ return installed;
162
+ }
163
+ function getInstalledMajor(versionSpec) {
164
+ if (!versionSpec) {
165
+ return undefined;
166
+ }
167
+ const match = versionSpec.match(/(\d+)(?:\.\d+)?(?:\.\d+)?/);
168
+ if (!match) {
169
+ return undefined;
170
+ }
171
+ return Number.parseInt(match[1], 10);
172
+ }
173
+ function themeV2ToDefinition(theme) {
174
+ const semantic = theme.tokens.semantic;
175
+ const surfaceRaw = semantic.background?.surface;
176
+ const brandRaw = semantic.background?.brand;
177
+ const borderRaw = semantic.border;
178
+ const textRaw = semantic.text;
179
+ return {
180
+ id: theme.id,
181
+ name: theme.name,
182
+ schemaVersion: theme.schemaVersion,
183
+ tokens: {
184
+ atomic: {
185
+ color: theme.tokens.atomic.color,
186
+ spacing: theme.tokens.atomic.spacing,
187
+ radius: theme.tokens.atomic.radius,
188
+ },
189
+ semantic: {
190
+ background: {
191
+ canvas: semantic.background?.canvas ?? 'atomic.color.neutral.50',
192
+ surface: {
193
+ subtle: surfaceRaw?.subtle ?? 'atomic.color.neutral.100',
194
+ default: surfaceRaw?.default ?? 'atomic.color.neutral.white',
195
+ emphasis: surfaceRaw?.emphasis ?? 'atomic.color.neutral.200',
196
+ },
197
+ brand: {
198
+ subtle: brandRaw?.subtle ?? 'atomic.color.brand.100',
199
+ default: brandRaw?.default ?? 'atomic.color.brand.500',
200
+ emphasis: brandRaw?.emphasis ?? 'atomic.color.brand.700',
201
+ },
202
+ },
203
+ border: {
204
+ default: {
205
+ subtle: borderRaw?.default?.subtle ?? 'atomic.color.neutral.100',
206
+ default: borderRaw?.default?.default ?? 'atomic.color.neutral.200',
207
+ emphasis: borderRaw?.default?.emphasis ?? 'atomic.color.neutral.300',
208
+ },
209
+ },
210
+ text: {
211
+ primary: textRaw?.primary ?? 'atomic.color.neutral.900',
212
+ secondary: textRaw?.secondary ?? 'atomic.color.neutral.600',
213
+ muted: textRaw?.muted ?? 'atomic.color.neutral.400',
214
+ },
215
+ },
216
+ },
217
+ stateLayer: theme.stateLayer
218
+ ? {
219
+ hover: theme.stateLayer.hover
220
+ ? { opacity: theme.stateLayer.hover.opacity ?? 0.08 }
221
+ : undefined,
222
+ disabled: theme.stateLayer.disabled
223
+ ? {
224
+ opacity: theme.stateLayer.disabled.opacity ?? 0.38,
225
+ contentOpacity: theme.stateLayer.disabled.contentOpacity ?? 0.38,
226
+ }
227
+ : undefined,
228
+ }
229
+ : undefined,
230
+ typography: theme.typography
231
+ ? {
232
+ fontFamily: theme.typography.fontFamily,
233
+ fontWeight: theme.typography.fontWeight,
234
+ }
235
+ : undefined,
236
+ };
237
+ }
238
+ function serializeThemeModule(theme) {
239
+ return `const framinguiTheme = ${JSON.stringify(theme, null, 2)} as const;\n\nexport default framinguiTheme;\n`;
240
+ }
241
+ function upsertImport(content, statement) {
242
+ if (content.includes(statement)) {
243
+ return content;
244
+ }
245
+ const importMatches = [...content.matchAll(/^import\s.+;$/gm)];
246
+ if (importMatches.length > 0) {
247
+ const lastImport = importMatches[importMatches.length - 1];
248
+ const insertIndex = lastImport.index + lastImport[0].length;
249
+ return `${content.slice(0, insertIndex)}\n${statement}${content.slice(insertIndex)}`;
250
+ }
251
+ return `${statement}\n${content}`;
252
+ }
253
+ function runInstallCommand(cwd, command) {
127
254
  logDetail(command);
128
255
  try {
129
256
  execSync(command, { cwd, stdio: 'inherit' });
130
- return { ok: true, command };
257
+ return true;
131
258
  }
132
259
  catch {
133
- return { ok: false, command };
260
+ return false;
134
261
  }
135
262
  }
263
+ function installPackages(cwd, pm) {
264
+ const packageJson = readProjectPackageJson(cwd);
265
+ const installed = getInstalledPackageMap(packageJson);
266
+ const runtimeMissing = SCREEN_GENERATION_RUNTIME_PACKAGES.filter(pkg => !installed[pkg]);
267
+ const tailwindVersion = installed.tailwindcss;
268
+ const tailwindV4 = usesTailwindV4(tailwindVersion);
269
+ const toolchainMissing = tailwindV4
270
+ ? []
271
+ : Object.entries(TAILWIND_V3_TOOLCHAIN_PACKAGES)
272
+ .filter(([pkg]) => !installed[pkg])
273
+ .map(([pkg, version]) => `${pkg}@${version}`);
274
+ const commands = [];
275
+ if (runtimeMissing.length > 0) {
276
+ commands.push(`${pm} add ${runtimeMissing.join(' ')}`);
277
+ }
278
+ if (toolchainMissing.length > 0) {
279
+ commands.push(`${pm} add -D ${toolchainMissing.join(' ')}`);
280
+ }
281
+ if (commands.length === 0) {
282
+ logDetail(tailwindV4
283
+ ? 'All FramingUI runtime packages are already installed for the detected Tailwind v4 project'
284
+ : 'All FramingUI runtime and Tailwind v3 toolchain packages are already installed');
285
+ return { ok: true, command: '' };
286
+ }
287
+ const ok = commands.every(command => runInstallCommand(cwd, command));
288
+ return { ok, command: commands.join(' && ') };
289
+ }
136
290
  const TAILWIND_CONFIG_CANDIDATES = [
137
291
  'tailwind.config.ts',
138
292
  'tailwind.config.js',
@@ -230,6 +384,85 @@ export function setupCSS(cwd, framework) {
230
384
  logDetail(`${cssFile} updated`);
231
385
  return cssPath;
232
386
  }
387
+ function ensureNextRootLayout(cwd) {
388
+ const candidates = [
389
+ path.join(cwd, 'app/layout.tsx'),
390
+ path.join(cwd, 'app/layout.jsx'),
391
+ path.join(cwd, 'src/app/layout.tsx'),
392
+ path.join(cwd, 'src/app/layout.jsx'),
393
+ ];
394
+ const existing = candidates.find(fileExists);
395
+ if (existing) {
396
+ return existing;
397
+ }
398
+ const appDir = fileExists(path.join(cwd, 'src/app'))
399
+ ? path.join(cwd, 'src/app')
400
+ : path.join(cwd, 'app');
401
+ fs.mkdirSync(appDir, { recursive: true });
402
+ const layoutPath = path.join(appDir, 'layout.tsx');
403
+ const globalsImport = fileExists(path.join(appDir, 'globals.css'))
404
+ ? "import './globals.css';\n"
405
+ : '';
406
+ 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`;
407
+ fs.writeFileSync(layoutPath, template, 'utf-8');
408
+ return layoutPath;
409
+ }
410
+ function ensureViteEntry(cwd) {
411
+ const candidates = [
412
+ path.join(cwd, 'src/main.tsx'),
413
+ path.join(cwd, 'src/main.jsx'),
414
+ path.join(cwd, 'src/main.ts'),
415
+ path.join(cwd, 'src/main.js'),
416
+ ];
417
+ const existing = candidates.find(fileExists);
418
+ if (existing) {
419
+ return existing;
420
+ }
421
+ const srcDir = path.join(cwd, 'src');
422
+ fs.mkdirSync(srcDir, { recursive: true });
423
+ const entryPath = path.join(srcDir, 'main.tsx');
424
+ 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`;
425
+ fs.writeFileSync(entryPath, template, 'utf-8');
426
+ return entryPath;
427
+ }
428
+ export function setupThemeBootstrap(cwd, framework, themeId = DEFAULT_THEME_ID) {
429
+ const loadedTheme = loadThemeV2(themeId);
430
+ if (!loadedTheme) {
431
+ logDetail(`Unable to load bundled theme "${themeId}" for provider bootstrap`);
432
+ return {};
433
+ }
434
+ const theme = themeV2ToDefinition(loadedTheme);
435
+ if (framework === 'nextjs') {
436
+ const layoutPath = ensureNextRootLayout(cwd);
437
+ const themeModulePath = path.join(path.dirname(layoutPath), 'framingui-theme.ts');
438
+ if (!fileExists(themeModulePath)) {
439
+ fs.writeFileSync(themeModulePath, serializeThemeModule(theme), 'utf-8');
440
+ }
441
+ let content = fs.readFileSync(layoutPath, 'utf-8');
442
+ content = upsertImport(content, "import { FramingUIProvider } from '@framingui/ui';");
443
+ content = upsertImport(content, "import framinguiTheme from './framingui-theme';");
444
+ if (!content.includes('<FramingUIProvider theme={framinguiTheme}>')) {
445
+ content = content.replace(/\{children\}/, '<FramingUIProvider theme={framinguiTheme}>{children}</FramingUIProvider>');
446
+ }
447
+ fs.writeFileSync(layoutPath, content, 'utf-8');
448
+ logDetail(`${relativeToCwd(cwd, layoutPath)} configured with FramingUIProvider`);
449
+ return { entryPath: layoutPath, themeModulePath };
450
+ }
451
+ const entryPath = ensureViteEntry(cwd);
452
+ const themeModulePath = path.join(path.dirname(entryPath), 'framingui-theme.ts');
453
+ if (!fileExists(themeModulePath)) {
454
+ fs.writeFileSync(themeModulePath, serializeThemeModule(theme), 'utf-8');
455
+ }
456
+ let content = fs.readFileSync(entryPath, 'utf-8');
457
+ content = upsertImport(content, "import { FramingUIProvider } from '@framingui/ui';");
458
+ content = upsertImport(content, "import framinguiTheme from './framingui-theme';");
459
+ if (!content.includes('<FramingUIProvider theme={framinguiTheme}>')) {
460
+ content = content.replace(/<App\s*\/>/, '<FramingUIProvider theme={framinguiTheme}><App /></FramingUIProvider>');
461
+ }
462
+ fs.writeFileSync(entryPath, content, 'utf-8');
463
+ logDetail(`${relativeToCwd(cwd, entryPath)} configured with FramingUIProvider`);
464
+ return { entryPath, themeModulePath };
465
+ }
233
466
  export function setupMCP(cwd) {
234
467
  const mcpPath = path.join(cwd, '.mcp.json');
235
468
  if (fileExists(mcpPath)) {
@@ -299,27 +532,29 @@ function readProjectPackageJson(cwd) {
299
532
  return JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
300
533
  }
301
534
  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;
535
+ return new Set(Object.keys(getInstalledPackageMap(packageJson)));
316
536
  }
317
537
  export function verifyInitSetup(cwd) {
318
538
  const packageJson = readProjectPackageJson(cwd);
319
539
  const installed = getInstalledPackageNames(packageJson);
320
- const missingPackages = SCREEN_GENERATION_PACKAGES.filter(pkg => !installed.has(pkg));
540
+ const installedVersions = getInstalledPackageMap(packageJson);
541
+ const detectedTailwindVersion = installedVersions.tailwindcss;
542
+ const tailwindV4 = usesTailwindV4(detectedTailwindVersion);
543
+ const requiredPackages = tailwindV4
544
+ ? SCREEN_GENERATION_RUNTIME_PACKAGES
545
+ : SCREEN_GENERATION_PACKAGES;
546
+ const missingPackages = requiredPackages.filter(pkg => !installed.has(pkg));
547
+ const tailwindVersionOk = true;
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 (tailwindV4) {
584
+ warnings.push(`Detected tailwindcss@${detectedTailwindVersion}. FramingUI init will skip Tailwind v3-only toolchain setup and rely on your existing Tailwind v4 CSS-first configuration`);
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,22 @@ function printResult(pm, verification) {
382
632
 
383
633
  Recovery:
384
634
  - Re-run package install:
385
- ${pm} add ${SCREEN_GENERATION_PACKAGES.join(' ')}
635
+ ${pm} add ${SCREEN_GENERATION_RUNTIME_PACKAGES.join(' ')}
636
+ ${verification.detectedTailwindVersion && usesTailwindV4(verification.detectedTailwindVersion)
637
+ ? '(Tailwind v4 detected: keeping your existing Tailwind toolchain)'
638
+ : `${pm} add -D ${Object.entries(TAILWIND_V3_TOOLCHAIN_PACKAGES)
639
+ .map(([pkg, version]) => `${pkg}@${version}`)
640
+ .join(' ')}`}
386
641
  - Ensure a global stylesheet imports:
387
642
  ${FRAMINGUI_STYLE_IMPORT}
643
+ - Ensure your root entry wraps the app with:
644
+ <FramingUIProvider theme={framinguiTheme}>...</FramingUIProvider>
388
645
 
389
646
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
390
647
  }
391
648
  export async function initCommand() {
392
649
  const cwd = process.cwd();
393
- const totalSteps = 9;
650
+ const totalSteps = 10;
394
651
  console.log('\n@framingui/mcp-server init\n');
395
652
  if (!fileExists(path.join(cwd, 'package.json'))) {
396
653
  console.error('package.json not found. Run this command from the project root.');
@@ -411,6 +668,9 @@ export async function initCommand() {
411
668
  const installResult = installPackages(cwd, pm);
412
669
  if (!installResult.ok) {
413
670
  console.error('Package installation failed.');
671
+ if (installResult.reason) {
672
+ console.error(installResult.reason);
673
+ }
414
674
  }
415
675
  log(3, totalSteps, 'Configuring Tailwind CSS...');
416
676
  try {
@@ -429,36 +689,49 @@ export async function initCommand() {
429
689
  catch {
430
690
  console.error('Failed to update the stylesheet import.');
431
691
  }
432
- log(5, totalSteps, 'Configuring MCP server...');
692
+ log(5, totalSteps, 'Bootstrapping FramingUIProvider...');
693
+ try {
694
+ setupThemeBootstrap(cwd, framework);
695
+ }
696
+ catch {
697
+ console.error('Failed to configure FramingUIProvider bootstrap.');
698
+ }
699
+ log(6, totalSteps, 'Configuring MCP server...');
433
700
  try {
434
701
  setupMCP(cwd);
435
702
  }
436
703
  catch {
437
704
  console.error('Failed to update .mcp.json.');
438
705
  }
439
- log(6, totalSteps, 'Generating project guide...');
706
+ log(7, totalSteps, 'Generating project guide...');
440
707
  try {
441
708
  setupGuide(cwd, framework);
442
709
  }
443
710
  catch {
444
711
  console.error('Failed to generate FRAMINGUI-GUIDE.md.');
445
712
  }
446
- log(7, totalSteps, 'Updating AI agent guides...');
713
+ log(8, totalSteps, 'Updating AI agent guides...');
447
714
  try {
448
715
  setupAgentMd(cwd, framework);
449
716
  }
450
717
  catch {
451
718
  console.error('Failed to update CLAUDE.md / AGENTS.md.');
452
719
  }
453
- log(8, totalSteps, 'Verifying FramingUI setup...');
720
+ log(9, totalSteps, 'Verifying FramingUI setup...');
454
721
  const verification = verifyInitSetup(cwd);
455
722
  if (verification.styleImportPath) {
456
723
  logDetail(`Styles import found in ${relativeToCwd(cwd, verification.styleImportPath)}`);
457
724
  }
725
+ if (verification.providerEntryPath) {
726
+ logDetail(`FramingUIProvider bootstrap found in ${relativeToCwd(cwd, verification.providerEntryPath)}`);
727
+ }
728
+ if (verification.themeModulePath) {
729
+ logDetail(`Theme module found at ${relativeToCwd(cwd, verification.themeModulePath)}`);
730
+ }
458
731
  if (verification.tailwindConfigPath) {
459
732
  logDetail(`Tailwind config verified at ${relativeToCwd(cwd, verification.tailwindConfigPath)}`);
460
733
  }
461
- log(9, totalSteps, verification.warnings.length === 0 ? 'Setup complete' : 'Setup incomplete');
734
+ log(10, totalSteps, verification.warnings.length === 0 ? 'Setup complete' : 'Setup incomplete');
462
735
  printResult(pm, verification);
463
736
  if (!installResult.ok || verification.warnings.length > 0) {
464
737
  process.exitCode = 1;
@@ -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;AAKnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAqGpC"}
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;AAwCnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAsJpC"}
@@ -3,9 +3,38 @@
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 usesTailwindV4(versionSpec) {
22
+ const major = getInstalledMajor(versionSpec);
23
+ return major !== undefined && major >= 4;
24
+ }
25
+ function findBootstrapEntry(projectPath) {
26
+ const candidates = [
27
+ 'app/layout.tsx',
28
+ 'app/layout.jsx',
29
+ 'src/app/layout.tsx',
30
+ 'src/app/layout.jsx',
31
+ 'src/main.tsx',
32
+ 'src/main.jsx',
33
+ 'src/main.ts',
34
+ 'src/main.js',
35
+ ];
36
+ return candidates.find(candidate => fs.existsSync(path.join(projectPath, candidate)));
37
+ }
9
38
  /**
10
39
  * Validate user's environment for required dependencies
11
40
  *
@@ -69,14 +98,16 @@ export async function validateEnvironmentTool(input) {
69
98
  let tailwind;
70
99
  if (checkTailwind !== false) {
71
100
  const tailwindResult = readTailwindConfig(projectPath);
101
+ const installedTailwindVersion = installedPackages.tailwindcss;
72
102
  const issues = [];
73
103
  const fixes = [];
74
- if (!tailwindResult.found) {
104
+ const tailwindV4 = usesTailwindV4(installedTailwindVersion);
105
+ if (!tailwindResult.found && !tailwindV4) {
75
106
  issues.push('tailwind.config.{ts,js,mjs,cjs} not found in project root');
76
107
  fixes.push('Create a tailwind.config.ts file in your project root. ' +
77
108
  'See https://tailwindcss.com/docs/configuration for setup guide.');
78
109
  }
79
- else {
110
+ else if (tailwindResult.found) {
80
111
  if (!tailwindResult.hasUiContentPath) {
81
112
  issues.push('tailwind.config content paths do not include @framingui/ui — ' +
82
113
  'component styles (Dialog, AlertDialog, Popover, etc.) will not be compiled');
@@ -91,6 +122,39 @@ export async function validateEnvironmentTool(input) {
91
122
  "import animate from 'tailwindcss-animate'; plugins: [animate]");
92
123
  }
93
124
  }
125
+ else if (tailwindV4) {
126
+ fixes.push('Tailwind v4 detected. Keep your existing CSS-first setup and ensure your global stylesheet imports FramingUI styles.');
127
+ }
128
+ const bootstrapEntry = findBootstrapEntry(projectPath);
129
+ if (!bootstrapEntry) {
130
+ issues.push('No app root entry found for FramingUIProvider bootstrap');
131
+ fixes.push('Create app/layout.tsx (Next.js) or src/main.tsx (Vite) and wrap the app with ' +
132
+ '<FramingUIProvider theme={framinguiTheme}>...</FramingUIProvider>');
133
+ }
134
+ else {
135
+ const bootstrapContent = fs.readFileSync(path.join(projectPath, bootstrapEntry), 'utf-8');
136
+ if (!bootstrapContent.includes('FramingUIProvider') ||
137
+ !bootstrapContent.includes('framinguiTheme') ||
138
+ !bootstrapContent.includes('theme={framinguiTheme}')) {
139
+ issues.push(`${bootstrapEntry} does not mount FramingUIProvider with the generated framinguiTheme`);
140
+ fixes.push(`Update ${bootstrapEntry} to import { FramingUIProvider } from '@framingui/ui', ` +
141
+ "import framinguiTheme from './framingui-theme', and wrap the app root with " +
142
+ '<FramingUIProvider theme={framinguiTheme}>...</FramingUIProvider>');
143
+ }
144
+ }
145
+ const themeModuleCandidates = [
146
+ 'app/framingui-theme.ts',
147
+ 'app/framingui-theme.js',
148
+ 'src/app/framingui-theme.ts',
149
+ 'src/app/framingui-theme.js',
150
+ 'src/framingui-theme.ts',
151
+ 'src/framingui-theme.js',
152
+ ];
153
+ const hasThemeModule = themeModuleCandidates.some(candidate => fs.existsSync(path.join(projectPath, candidate)));
154
+ if (!hasThemeModule) {
155
+ issues.push('Generated framingui-theme module not found');
156
+ fixes.push('Generate a local framingui-theme module that exports a theme object and pass it to FramingUIProvider');
157
+ }
94
158
  tailwind = {
95
159
  configFound: tailwindResult.found,
96
160
  configPath: tailwindResult.configPath,
@@ -1 +1 @@
1
- {"version":3,"file":"validate-environment.js","sourceRoot":"","sources":["../../src/tools/validate-environment.ts"],"names":[],"mappings":"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"}
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.23",
3
+ "version": "0.6.25",
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.5",
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
- "scripts": {
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.