@framingui/mcp-server 0.6.26 → 0.6.27
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/LICENSE +21 -0
- package/README.md +1 -2
- package/dist/__tests__/react-native-contract.test.d.ts +2 -0
- package/dist/__tests__/react-native-contract.test.d.ts.map +1 -0
- package/dist/__tests__/react-native-contract.test.js +50 -0
- package/dist/__tests__/react-native-contract.test.js.map +1 -0
- package/dist/auth/state.d.ts +5 -0
- package/dist/auth/state.d.ts.map +1 -1
- package/dist/auth/state.js +33 -0
- package/dist/auth/state.js.map +1 -1
- package/dist/cli/agent-md-templates.d.ts.map +1 -1
- package/dist/cli/agent-md-templates.js +54 -36
- 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 +17 -35
- package/dist/cli/guide-template.js.map +1 -1
- package/dist/cli/init.d.ts +2 -3
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +33 -48
- package/dist/cli/init.js.map +1 -1
- package/dist/data/component-fallback-catalog.d.ts +26 -0
- package/dist/data/component-fallback-catalog.d.ts.map +1 -0
- package/dist/data/component-fallback-catalog.js +149 -0
- package/dist/data/component-fallback-catalog.js.map +1 -0
- package/dist/data/react-native-runtime-catalog.d.ts +24 -0
- package/dist/data/react-native-runtime-catalog.d.ts.map +1 -0
- package/dist/data/react-native-runtime-catalog.js +265 -0
- package/dist/data/react-native-runtime-catalog.js.map +1 -0
- package/dist/index.js +114 -47
- package/dist/index.js.map +1 -1
- package/dist/platform-support.d.ts +22 -0
- package/dist/platform-support.d.ts.map +1 -0
- package/dist/platform-support.js +148 -0
- package/dist/platform-support.js.map +1 -0
- package/dist/project-context-resolution.d.ts +7 -0
- package/dist/project-context-resolution.d.ts.map +1 -0
- package/dist/project-context-resolution.js +21 -0
- package/dist/project-context-resolution.js.map +1 -0
- package/dist/project-context-state.d.ts +12 -0
- package/dist/project-context-state.d.ts.map +1 -0
- package/dist/project-context-state.js +14 -0
- package/dist/project-context-state.js.map +1 -0
- package/dist/project-context.d.ts +15 -0
- package/dist/project-context.d.ts.map +1 -0
- package/dist/project-context.js +78 -0
- package/dist/project-context.js.map +1 -0
- package/dist/prompts/getting-started.d.ts.map +1 -1
- package/dist/prompts/getting-started.js +27 -7
- package/dist/prompts/getting-started.js.map +1 -1
- package/dist/prompts/screen-workflow.d.ts.map +1 -1
- package/dist/prompts/screen-workflow.js +53 -2
- package/dist/prompts/screen-workflow.js.map +1 -1
- package/dist/schemas/mcp-schemas.d.ts +1058 -528
- package/dist/schemas/mcp-schemas.d.ts.map +1 -1
- package/dist/schemas/mcp-schemas.js +98 -0
- package/dist/schemas/mcp-schemas.js.map +1 -1
- package/dist/tools/detect-project-context.d.ts +3 -0
- package/dist/tools/detect-project-context.d.ts.map +1 -0
- package/dist/tools/detect-project-context.js +36 -0
- package/dist/tools/detect-project-context.js.map +1 -0
- package/dist/tools/get-screen-generation-context.d.ts.map +1 -1
- package/dist/tools/get-screen-generation-context.js +118 -18
- package/dist/tools/get-screen-generation-context.js.map +1 -1
- package/dist/tools/list-components.d.ts.map +1 -1
- package/dist/tools/list-components.js +42 -3
- package/dist/tools/list-components.js.map +1 -1
- package/dist/tools/preview-component.d.ts.map +1 -1
- package/dist/tools/preview-component.js +57 -7
- package/dist/tools/preview-component.js.map +1 -1
- package/dist/tools/preview-theme.d.ts.map +1 -1
- package/dist/tools/preview-theme.js +20 -2
- package/dist/tools/preview-theme.js.map +1 -1
- package/dist/tools/theme-authority.js +1 -1
- package/dist/tools/theme-authority.js.map +1 -1
- package/dist/tools/validate-environment.d.ts.map +1 -1
- package/dist/tools/validate-environment.js +102 -9
- 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 +41 -7
- package/dist/tools/validate-screen-definition.js.map +1 -1
- package/package.json +16 -17
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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.
|
package/README.md
CHANGED
|
@@ -115,8 +115,7 @@ FramingUI exposes guidance for:
|
|
|
115
115
|
`init` can:
|
|
116
116
|
|
|
117
117
|
- install the FramingUI screen-generation runtime and peer dependencies in one pass
|
|
118
|
-
-
|
|
119
|
-
- configure Tailwind content paths for Tailwind v3 projects
|
|
118
|
+
- configure Tailwind content paths and `tailwindcss-animate`
|
|
120
119
|
- add `@import '@framingui/ui/styles';` to a detected global stylesheet
|
|
121
120
|
- generate a local `framingui-theme` module
|
|
122
121
|
- wire `FramingUIProvider` into `app/layout.tsx` or `src/main.tsx`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-contract.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/react-native-contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { getPlatformSupportInfo, getImportStatementForPlatform, getReactNativeAuditRules, getSupportedPlatforms, } from '../platform-support.js';
|
|
3
|
+
import { GetScreenGenerationContextInputSchema, ListComponentsInputSchema, PreviewComponentInputSchema, ValidateEnvironmentInputSchema, } from '../schemas/mcp-schemas.js';
|
|
4
|
+
describe('React Native direct-write contract', () => {
|
|
5
|
+
it('exposes web and react-native platform targets', () => {
|
|
6
|
+
expect(getSupportedPlatforms()).toEqual(['web', 'react-native']);
|
|
7
|
+
});
|
|
8
|
+
it('marks primitive components as recommended for react-native direct write', () => {
|
|
9
|
+
const info = getPlatformSupportInfo('Button', 'react-native');
|
|
10
|
+
expect(info.supported).toBe(true);
|
|
11
|
+
expect(info.recommended).toBe(true);
|
|
12
|
+
expect(info.status).toBe('full');
|
|
13
|
+
expect(info.recommendedImports).toContain('@framingui/react-native');
|
|
14
|
+
expect(info.recommendedPackages).toContain('@framingui/react-native');
|
|
15
|
+
});
|
|
16
|
+
it('returns runtime package imports for primitives with extracted native exports', () => {
|
|
17
|
+
expect(getImportStatementForPlatform('Button', 'react-native')).toBe("import { Button } from '@framingui/react-native';");
|
|
18
|
+
expect(getImportStatementForPlatform('Input', 'react-native')).toBe("import { TextField } from '@framingui/react-native';");
|
|
19
|
+
});
|
|
20
|
+
it('marks web-centric components as avoid for react-native direct write', () => {
|
|
21
|
+
const info = getPlatformSupportInfo('Table', 'react-native');
|
|
22
|
+
expect(info.supported).toBe(false);
|
|
23
|
+
expect(info.status).toBe('avoid');
|
|
24
|
+
expect(info.notes[0]).toContain('web-only');
|
|
25
|
+
});
|
|
26
|
+
it('defines react-native audit rules for direct-write qc', () => {
|
|
27
|
+
const rules = getReactNativeAuditRules();
|
|
28
|
+
expect(rules.map(rule => rule.id)).toEqual([
|
|
29
|
+
'rn-hardcoded-color',
|
|
30
|
+
'rn-hardcoded-spacing',
|
|
31
|
+
'rn-web-classname',
|
|
32
|
+
]);
|
|
33
|
+
});
|
|
34
|
+
it('accepts react-native as a schema input target', () => {
|
|
35
|
+
expect(ListComponentsInputSchema.parse({ platform: 'react-native' }).platform).toBe('react-native');
|
|
36
|
+
expect(PreviewComponentInputSchema.parse({ componentId: 'button', platform: 'react-native' })
|
|
37
|
+
.platform).toBe('react-native');
|
|
38
|
+
expect(GetScreenGenerationContextInputSchema.parse({
|
|
39
|
+
description: 'profile screen',
|
|
40
|
+
platform: 'react-native',
|
|
41
|
+
}).platform).toBe('react-native');
|
|
42
|
+
expect(ValidateEnvironmentInputSchema.parse({
|
|
43
|
+
projectPath: '/tmp/project',
|
|
44
|
+
requiredPackages: [],
|
|
45
|
+
platform: 'react-native',
|
|
46
|
+
sourceFiles: ['/tmp/App.tsx'],
|
|
47
|
+
}).platform).toBe('react-native');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=react-native-contract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-contract.test.js","sourceRoot":"","sources":["../../src/__tests__/react-native-contract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/state.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export declare function setAuthData(authData: VerifyResponse | null): void;
|
|
|
13
13
|
* @returns Current authentication data or null if not authenticated
|
|
14
14
|
*/
|
|
15
15
|
export declare function getAuthData(): VerifyResponse | null;
|
|
16
|
+
/**
|
|
17
|
+
* Whether auth state was explicitly injected via login/verify/test helpers.
|
|
18
|
+
* When false, the server is operating on credential-file fallback only.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isAuthStateExplicitlySet(): boolean;
|
|
16
21
|
/**
|
|
17
22
|
* Store raw API key for data-client API calls
|
|
18
23
|
*/
|
package/dist/auth/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/auth/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/auth/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAmBlD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAQjE;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,cAAc,GAAG,IAAI,CA4BnD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAQ5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAoBnE"}
|
package/dist/auth/state.js
CHANGED
|
@@ -5,12 +5,14 @@
|
|
|
5
5
|
import { MemoryCache } from './cache.js';
|
|
6
6
|
import { info } from '../utils/logger.js';
|
|
7
7
|
import { isMasterAccount } from './theme-access.js';
|
|
8
|
+
import { loadCredentials } from '../cli/credentials.js';
|
|
8
9
|
// Cache TTL: 5 minutes (300,000 milliseconds)
|
|
9
10
|
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
10
11
|
// Global authentication data cache
|
|
11
12
|
const authCache = new MemoryCache();
|
|
12
13
|
// Current authentication state
|
|
13
14
|
let currentAuthData = null;
|
|
15
|
+
let authStateExplicitlySet = false;
|
|
14
16
|
// Raw API key (API 데이터 클라이언트에서 Bearer 헤더로 사용)
|
|
15
17
|
let rawApiKey = null;
|
|
16
18
|
/**
|
|
@@ -19,6 +21,7 @@ let rawApiKey = null;
|
|
|
19
21
|
*/
|
|
20
22
|
export function setAuthData(authData) {
|
|
21
23
|
currentAuthData = authData;
|
|
24
|
+
authStateExplicitlySet = true;
|
|
22
25
|
if (authData && authData.valid) {
|
|
23
26
|
authCache.set('auth', authData, CACHE_TTL_MS);
|
|
24
27
|
info('Authentication data cached for 5 minutes');
|
|
@@ -35,9 +38,32 @@ export function getAuthData() {
|
|
|
35
38
|
info('Using cached authentication data');
|
|
36
39
|
return cachedAuth;
|
|
37
40
|
}
|
|
41
|
+
if (!authStateExplicitlySet) {
|
|
42
|
+
const credentials = loadCredentials();
|
|
43
|
+
if (credentials?.api_key) {
|
|
44
|
+
rawApiKey = rawApiKey ?? credentials.api_key;
|
|
45
|
+
currentAuthData = {
|
|
46
|
+
valid: true,
|
|
47
|
+
user: {
|
|
48
|
+
id: 'credentials-user',
|
|
49
|
+
email: credentials.user_email,
|
|
50
|
+
plan: 'pro',
|
|
51
|
+
},
|
|
52
|
+
themes: { licensed: [] },
|
|
53
|
+
};
|
|
54
|
+
return currentAuthData;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
38
57
|
// Return current state
|
|
39
58
|
return currentAuthData;
|
|
40
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Whether auth state was explicitly injected via login/verify/test helpers.
|
|
62
|
+
* When false, the server is operating on credential-file fallback only.
|
|
63
|
+
*/
|
|
64
|
+
export function isAuthStateExplicitlySet() {
|
|
65
|
+
return authStateExplicitlySet;
|
|
66
|
+
}
|
|
41
67
|
/**
|
|
42
68
|
* Store raw API key for data-client API calls
|
|
43
69
|
*/
|
|
@@ -48,6 +74,12 @@ export function setRawApiKey(apiKey) {
|
|
|
48
74
|
* Get raw API key for data-client API calls
|
|
49
75
|
*/
|
|
50
76
|
export function getRawApiKey() {
|
|
77
|
+
if (!rawApiKey) {
|
|
78
|
+
const credentials = loadCredentials();
|
|
79
|
+
if (credentials?.api_key) {
|
|
80
|
+
rawApiKey = credentials.api_key;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
51
83
|
return rawApiKey;
|
|
52
84
|
}
|
|
53
85
|
/**
|
|
@@ -56,6 +88,7 @@ export function getRawApiKey() {
|
|
|
56
88
|
export function clearAuthData() {
|
|
57
89
|
currentAuthData = null;
|
|
58
90
|
rawApiKey = null;
|
|
91
|
+
authStateExplicitlySet = false;
|
|
59
92
|
authCache.clear();
|
|
60
93
|
info('Authentication data cleared');
|
|
61
94
|
}
|
package/dist/auth/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/auth/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/auth/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,CAgGpE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA0EpE"}
|
|
@@ -13,40 +13,43 @@ framingui-mcp login
|
|
|
13
13
|
|
|
14
14
|
### Production Screen Flow
|
|
15
15
|
|
|
16
|
-
1.
|
|
16
|
+
1. If the project path is known, call \`detect-project-context\` to establish the session default platform/runtime.
|
|
17
|
+
2. Decide the style contract:
|
|
17
18
|
- \`host-utility\`
|
|
18
19
|
- \`framingui-native\`
|
|
19
20
|
- \`migrate\`
|
|
20
|
-
|
|
21
|
+
3. Inspect the theme when defaults matter:
|
|
21
22
|
- \`preview-theme\`
|
|
22
|
-
|
|
23
|
+
4. Gather generation context:
|
|
23
24
|
- \`get-screen-generation-context\`
|
|
24
|
-
|
|
25
|
+
5. Resolve ambiguity before drafting:
|
|
25
26
|
- \`preview-component\`
|
|
26
27
|
- \`list-icon-libraries\` when icons are needed
|
|
27
|
-
|
|
28
|
+
6. Validate structure for web screen-definition work:
|
|
28
29
|
- \`validate-screen-definition\`
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
7. Write React or React Native code from the returned contract
|
|
31
|
+
8. Verify project integration:
|
|
31
32
|
- \`validate-environment\` with \`sourceFiles\`
|
|
32
33
|
|
|
33
|
-
###
|
|
34
|
+
### React Native Direct-Write Flow
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
- If the project uses \`framingui-native\`, ensure the global stylesheet imports \`@framingui/ui/styles\`, \`tailwindcss-animate\` is installed, and the app root mounts \`FramingUIProvider\` with the generated \`framingui-theme\`.
|
|
37
|
-
- In Tailwind v4 apps, do not add manual \`@source\` entries for \`@framingui/ui\` unless you are debugging the package itself. The shared styles import is the source of truth.
|
|
38
|
-
- Do not duplicate \`FramingUIProvider\` or re-declare theme tokens in app CSS.
|
|
36
|
+
For Expo or React Native targets:
|
|
39
37
|
|
|
40
|
-
|
|
38
|
+
1. Call \`detect-project-context\` with the project path when available
|
|
39
|
+
2. Call \`get-screen-generation-context\` without repeating \`platform\` unless you need an explicit override
|
|
40
|
+
3. Review only React Native compatible components and guidance
|
|
41
|
+
4. Write the screen directly with \`@framingui/react-native\` exports where available, then \`react-native\` primitives or local app abstractions
|
|
42
|
+
5. Run \`validate-environment\` with:
|
|
43
|
+
- \`platform: "react-native"\`
|
|
44
|
+
- \`projectPath\`
|
|
45
|
+
- \`requiredPackages\`
|
|
46
|
+
- \`sourceFiles\`
|
|
47
|
+
6. Fix any hardcoded style drift or web-only patterns before handoff
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
### Style Contract Rules
|
|
43
50
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
3. The root layout or entry mounts \`FramingUIProvider theme={framinguiTheme}\`.
|
|
47
|
-
4. The generated \`framingui-theme\` module is still the theme source of truth.
|
|
48
|
-
5. Host CSS is not overriding base primitives in a way that defeats FramingUI styles.
|
|
49
|
-
6. Page code is not carrying stale copied recipe utilities.
|
|
51
|
+
- If the project stays \`host-utility\`, keep utility classes explicit.
|
|
52
|
+
- 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\`.
|
|
50
53
|
|
|
51
54
|
### Slash Commands
|
|
52
55
|
|
|
@@ -64,6 +67,8 @@ Before changing recipes or component code, verify:
|
|
|
64
67
|
### Component Rule
|
|
65
68
|
|
|
66
69
|
Do not claim a FramingUI component is unavailable without checking \`list-components\` or \`preview-component\`.
|
|
70
|
+
Do not recommend \`@framingui/ui\` imports for React Native targets.
|
|
71
|
+
Prefer \`@framingui/react-native\` when the runtime surface exists for the requested primitive.
|
|
67
72
|
|
|
68
73
|
### Example
|
|
69
74
|
|
|
@@ -99,32 +104,45 @@ FramingUI is available in this project through MCP.
|
|
|
99
104
|
### Required Sequence
|
|
100
105
|
|
|
101
106
|
1. Confirm authentication if licensed themes are needed.
|
|
102
|
-
2.
|
|
103
|
-
3.
|
|
104
|
-
4. Use \`
|
|
105
|
-
5. Use \`
|
|
106
|
-
6. Use \`
|
|
107
|
-
7.
|
|
108
|
-
8.
|
|
109
|
-
9.
|
|
107
|
+
2. If the project path is known, call \`detect-project-context\` first.
|
|
108
|
+
3. Decide the style contract before generation.
|
|
109
|
+
4. Use \`preview-theme\` when theme defaults or recipes matter.
|
|
110
|
+
5. Use \`get-screen-generation-context\` as the main entry point.
|
|
111
|
+
6. Use \`preview-component\` for any ambiguous component contract.
|
|
112
|
+
7. Use \`list-icon-libraries\` before adding icons.
|
|
113
|
+
8. Validate structure with \`validate-screen-definition\` for web screen-definition work.
|
|
114
|
+
9. Write code directly from the returned contract.
|
|
115
|
+
10. Run \`validate-environment\` with \`sourceFiles\` before final handoff.
|
|
116
|
+
|
|
117
|
+
### React Native Projects
|
|
118
|
+
|
|
119
|
+
If the target project is Expo or React Native:
|
|
120
|
+
|
|
121
|
+
- call \`detect-project-context\` when the project path is available
|
|
122
|
+
- rely on the stored session default instead of repeating \`platform: "react-native"\` on every discovery call
|
|
123
|
+
- write the screen directly using \`@framingui/react-native\` where available, then host app primitives or local abstractions
|
|
124
|
+
- do **not** import \`@framingui/ui\`
|
|
125
|
+
- run \`validate-environment\` with \`platform: "react-native"\` and \`sourceFiles\`
|
|
126
|
+
- fix hardcoded colors, spacing, radius values, and web-only patterns such as \`className\`
|
|
127
|
+
|
|
128
|
+
### React Native / Expo
|
|
129
|
+
|
|
130
|
+
- Use \`get-screen-generation-context\` with \`platform: "react-native"\` for native direct-write work.
|
|
131
|
+
- Prefer \`@framingui/react-native\` exports before inventing app-local shells.
|
|
132
|
+
- Keep custom native layout inside \`StyleSheet.create\`.
|
|
133
|
+
- Run \`validate-environment\` with \`platform: "react-native"\` and \`sourceFiles\` to catch web-only drift.
|
|
110
134
|
|
|
111
135
|
### Style Contract
|
|
112
136
|
|
|
113
137
|
- \`host-utility\`: keep explicit utility styling
|
|
114
|
-
- \`framingui-native\`: import \`@framingui/ui/styles\`,
|
|
138
|
+
- \`framingui-native\`: import \`@framingui/ui/styles\`, mount \`FramingUIProvider\`, then rely on FramingUI variants
|
|
115
139
|
- \`migrate\`: stop and clarify the migration path
|
|
116
140
|
|
|
117
|
-
### Runtime Contract
|
|
118
|
-
|
|
119
|
-
- In Tailwind v4 apps, the shared FramingUI stylesheet import already handles package source scanning and animate plugin registration.
|
|
120
|
-
- Do not duplicate \`FramingUIProvider\` inside pages.
|
|
121
|
-
- Do not hand-copy FramingUI CSS variables into app stylesheets.
|
|
122
|
-
- If component shape or motion looks broken, check the install/runtime contract before editing recipes.
|
|
123
|
-
|
|
124
141
|
### Allowed HTML
|
|
125
142
|
|
|
126
143
|
Semantic wrappers such as \`header\`, \`nav\`, \`section\`, and \`footer\` may remain HTML.
|
|
127
144
|
Interactive and form primitives should use FramingUI components when they exist.
|
|
145
|
+
For React Native targets, use \`@framingui/react-native\` where available, then host app/native primitives instead of HTML or \`@framingui/ui\`.
|
|
128
146
|
|
|
129
147
|
### Example
|
|
130
148
|
|
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyEJ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmDJ,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,CA4G1D"}
|
|
@@ -20,18 +20,28 @@ framingui-mcp status
|
|
|
20
20
|
|
|
21
21
|
## Recommended Workflow
|
|
22
22
|
|
|
23
|
-
1.
|
|
23
|
+
1. If the project path is known, call \`detect-project-context\` first to store the default platform/runtime for this session.
|
|
24
|
+
2. Decide the style contract for this project:
|
|
24
25
|
- \`host-utility\`
|
|
25
26
|
- \`framingui-native\`
|
|
26
27
|
- \`migrate\`
|
|
27
|
-
|
|
28
|
+
3. Inspect theme and component contracts before drafting:
|
|
28
29
|
- \`preview-theme\`
|
|
29
30
|
- \`preview-component\`
|
|
30
31
|
- \`list-icon-libraries\` when icons are needed
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
4. Call \`get-screen-generation-context\`
|
|
33
|
+
5. For web projects, validate the generated definition with \`validate-screen-definition\`
|
|
34
|
+
6. Write React or React Native code from the returned contract
|
|
35
|
+
7. Run \`validate-environment\` with \`sourceFiles\` before handoff
|
|
36
|
+
|
|
37
|
+
If the detected project is Expo or React Native, keep using the direct-write path and do not repeat \`platform: "react-native"\` on every tool call unless you need an explicit override. Prefer \`@framingui/react-native\` where the runtime surface exists, then fall back to host primitives.
|
|
38
|
+
|
|
39
|
+
### React Native / Expo
|
|
40
|
+
|
|
41
|
+
- Call \`get-screen-generation-context\` with \`platform: "react-native"\`
|
|
42
|
+
- Prefer \`@framingui/react-native\` exports for common screen structure and controls
|
|
43
|
+
- Keep custom screen styles inside \`StyleSheet.create\`
|
|
44
|
+
- Run \`validate-environment\` with \`platform: "react-native"\` and \`sourceFiles\` before handoff
|
|
35
45
|
|
|
36
46
|
## Style Contract Rules
|
|
37
47
|
|
|
@@ -49,33 +59,6 @@ Your global stylesheet should import:
|
|
|
49
59
|
|
|
50
60
|
Your root app entry should also mount \`FramingUIProvider\` with the generated \`framingui-theme\` module.
|
|
51
61
|
|
|
52
|
-
This contract assumes:
|
|
53
|
-
|
|
54
|
-
- \`tailwindcss-animate\` is installed
|
|
55
|
-
- the stylesheet import happens exactly once at the app root
|
|
56
|
-
- \`FramingUIProvider\` is mounted exactly once near the root
|
|
57
|
-
- the generated \`framingui-theme\` module is the source of truth for theme tokens
|
|
58
|
-
|
|
59
|
-
For Tailwind v4 projects, \`@import '@framingui/ui/styles';\` already provides FramingUI package source scanning and the animate plugin hook. Do not copy manual \`@source\` blocks for \`@framingui/ui\` into app CSS unless you are debugging the package itself.
|
|
60
|
-
|
|
61
|
-
Do not:
|
|
62
|
-
|
|
63
|
-
- duplicate \`FramingUIProvider\` inside pages or sections
|
|
64
|
-
- re-declare FramingUI theme tokens by hand in \`globals.css\`
|
|
65
|
-
- mix \`framingui-native\` and ad hoc host-utility overrides without intent
|
|
66
|
-
- diagnose missing padding or height first as a theme bug; check the runtime contract before editing recipes
|
|
67
|
-
|
|
68
|
-
## Runtime Contract Checklist
|
|
69
|
-
|
|
70
|
-
When FramingUI components look unstyled or partially styled, check these first:
|
|
71
|
-
|
|
72
|
-
1. \`@import '@framingui/ui/styles';\` exists in the global stylesheet and only once.
|
|
73
|
-
2. \`tailwindcss-animate\` is installed.
|
|
74
|
-
3. The app root mounts \`FramingUIProvider theme={framinguiTheme}\`.
|
|
75
|
-
4. The project uses the generated \`framingui-theme\` module instead of copied CSS variables.
|
|
76
|
-
5. Host CSS is not overriding \`body\`, \`button\`, \`input\`, or other primitives in a way that defeats the theme contract.
|
|
77
|
-
6. Page code is not reimplementing FramingUI recipes with stale utility classes.
|
|
78
|
-
|
|
79
62
|
## Slash Commands
|
|
80
63
|
|
|
81
64
|
FramingUI guidance is available for:
|
|
@@ -120,8 +103,7 @@ export default function Page() {
|
|
|
120
103
|
- Treat templates as hints, not the final structure.
|
|
121
104
|
- Treat the validated screen definition as the production contract.
|
|
122
105
|
- Keep semantic wrappers as HTML only when there is no FramingUI primitive to replace them.
|
|
123
|
-
-
|
|
124
|
-
- If a Tailwind v4 app shows broken shape or missing motion, check the runtime contract before editing component code.
|
|
106
|
+
- For Expo / React Native targets, use \`detect-project-context\` once, prefer \`@framingui/react-native\` where possible, and avoid \`@framingui/ui\` imports.
|
|
125
107
|
`;
|
|
126
108
|
}
|
|
127
109
|
//# sourceMappingURL=guide-template.js.map
|
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6EJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BX,CAAC;AACF,CAAC"}
|
package/dist/cli/init.d.ts
CHANGED
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { type Framework } from './guide-template.js';
|
|
6
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_BUILD_PACKAGES: {
|
|
8
|
-
readonly 'tailwindcss-animate': "^1.0.7";
|
|
9
|
-
};
|
|
10
7
|
export declare const TAILWIND_V3_TOOLCHAIN_PACKAGES: {
|
|
11
8
|
readonly tailwindcss: "^3.4.17";
|
|
12
9
|
readonly postcss: "^8.4.38";
|
|
13
10
|
readonly autoprefixer: "^10.4.19";
|
|
11
|
+
readonly 'tailwindcss-animate': "^1.0.7";
|
|
14
12
|
};
|
|
15
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[]];
|
|
16
14
|
type InitVerification = {
|
|
@@ -39,6 +37,7 @@ export declare function setupThemeBootstrap(cwd: string, framework: Framework, t
|
|
|
39
37
|
};
|
|
40
38
|
export declare function setupMCP(cwd: string): void;
|
|
41
39
|
export declare function verifyInitSetup(cwd: string): InitVerification;
|
|
40
|
+
export declare function getInitSuccessMessage(projectPath: string): string;
|
|
42
41
|
export declare function initCommand(): Promise<void>;
|
|
43
42
|
export {};
|
|
44
43
|
//# sourceMappingURL=init.d.ts.map
|
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;AAQH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAepE,eAAO,MAAM,kCAAkC,qwBAkCrC,CAAC;AAEX,eAAO,MAAM,
|
|
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;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAejE;AAuCD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsGjD"}
|