@framingui/mcp-server 0.6.9 → 0.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +52 -10
  2. package/dist/cli/commands.d.ts +2 -0
  3. package/dist/cli/commands.d.ts.map +1 -0
  4. package/dist/cli/commands.js +20 -0
  5. package/dist/cli/commands.js.map +1 -0
  6. package/dist/cli/help.d.ts +5 -0
  7. package/dist/cli/help.d.ts.map +1 -0
  8. package/dist/cli/help.js +59 -0
  9. package/dist/cli/help.js.map +1 -0
  10. package/dist/cli/index.d.ts +1 -1
  11. package/dist/cli/index.js +47 -3
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/init.d.ts.map +1 -1
  14. package/dist/cli/init.js +3 -13
  15. package/dist/cli/init.js.map +1 -1
  16. package/dist/cli/package-manager.d.ts +5 -0
  17. package/dist/cli/package-manager.d.ts.map +1 -0
  18. package/dist/cli/package-manager.js +34 -0
  19. package/dist/cli/package-manager.js.map +1 -0
  20. package/dist/cli/update.d.ts +8 -0
  21. package/dist/cli/update.d.ts.map +1 -0
  22. package/dist/cli/update.js +53 -0
  23. package/dist/cli/update.js.map +1 -0
  24. package/dist/commands/slash-command-adapters.d.ts +9 -0
  25. package/dist/commands/slash-command-adapters.d.ts.map +1 -0
  26. package/dist/commands/slash-command-adapters.js +113 -0
  27. package/dist/commands/slash-command-adapters.js.map +1 -0
  28. package/dist/commands/slash-command-registry.d.ts +25 -0
  29. package/dist/commands/slash-command-registry.d.ts.map +1 -0
  30. package/dist/commands/slash-command-registry.js +330 -0
  31. package/dist/commands/slash-command-registry.js.map +1 -0
  32. package/dist/data/component-props.d.ts +30 -0
  33. package/dist/data/component-props.d.ts.map +1 -0
  34. package/dist/data/component-props.js +537 -0
  35. package/dist/data/component-props.js.map +1 -0
  36. package/dist/data/component-registry.d.ts +30 -0
  37. package/dist/data/component-registry.d.ts.map +1 -0
  38. package/dist/data/component-registry.js +320 -0
  39. package/dist/data/component-registry.js.map +1 -0
  40. package/dist/data/examples/screen-examples.d.ts +38 -0
  41. package/dist/data/examples/screen-examples.d.ts.map +1 -0
  42. package/dist/data/examples/screen-examples.js +500 -0
  43. package/dist/data/examples/screen-examples.js.map +1 -0
  44. package/dist/index.js +7 -22
  45. package/dist/index.js.map +1 -1
  46. package/dist/prompts/a11y-workflow.d.ts +10 -0
  47. package/dist/prompts/a11y-workflow.d.ts.map +1 -0
  48. package/dist/prompts/a11y-workflow.js +46 -0
  49. package/dist/prompts/a11y-workflow.js.map +1 -0
  50. package/dist/prompts/command-help.d.ts +10 -0
  51. package/dist/prompts/command-help.d.ts.map +1 -0
  52. package/dist/prompts/command-help.js +87 -0
  53. package/dist/prompts/command-help.js.map +1 -0
  54. package/dist/prompts/doctor-workflow.d.ts +10 -0
  55. package/dist/prompts/doctor-workflow.d.ts.map +1 -0
  56. package/dist/prompts/doctor-workflow.js +37 -0
  57. package/dist/prompts/doctor-workflow.js.map +1 -0
  58. package/dist/prompts/getting-started.d.ts.map +1 -1
  59. package/dist/prompts/getting-started.js +18 -1
  60. package/dist/prompts/getting-started.js.map +1 -1
  61. package/dist/prompts/prompt-catalog.d.ts +26 -0
  62. package/dist/prompts/prompt-catalog.d.ts.map +1 -0
  63. package/dist/prompts/prompt-catalog.js +82 -0
  64. package/dist/prompts/prompt-catalog.js.map +1 -0
  65. package/dist/prompts/responsive-workflow.d.ts +10 -0
  66. package/dist/prompts/responsive-workflow.d.ts.map +1 -0
  67. package/dist/prompts/responsive-workflow.js +52 -0
  68. package/dist/prompts/responsive-workflow.js.map +1 -0
  69. package/dist/prompts/slash-commands.d.ts +10 -0
  70. package/dist/prompts/slash-commands.d.ts.map +1 -0
  71. package/dist/prompts/slash-commands.js +31 -0
  72. package/dist/prompts/slash-commands.js.map +1 -0
  73. package/dist/prompts/theme-swap-workflow.d.ts +10 -0
  74. package/dist/prompts/theme-swap-workflow.d.ts.map +1 -0
  75. package/dist/prompts/theme-swap-workflow.js +35 -0
  76. package/dist/prompts/theme-swap-workflow.js.map +1 -0
  77. package/dist/prompts/update-workflow.d.ts +10 -0
  78. package/dist/prompts/update-workflow.d.ts.map +1 -0
  79. package/dist/prompts/update-workflow.js +36 -0
  80. package/dist/prompts/update-workflow.js.map +1 -0
  81. package/dist/schemas/mcp-schemas.d.ts +220 -220
  82. package/dist/tools/generate-screen.d.ts.map +1 -1
  83. package/dist/tools/generate-screen.js +36 -28
  84. package/dist/tools/generate-screen.js.map +1 -1
  85. package/dist/tools/validate-screen-definition.d.ts.map +1 -1
  86. package/dist/tools/validate-screen-definition.js +38 -95
  87. package/dist/tools/validate-screen-definition.js.map +1 -1
  88. package/package.json +1 -1
package/README.md CHANGED
@@ -98,13 +98,17 @@ npx @framingui/mcp-server init
98
98
 
99
99
  ### CLI Commands
100
100
 
101
- | Command | Description |
102
- | ------------------------------------------ | --------------------- |
103
- | `npx -y @framingui/mcp-server@latest` | MCP stdio 서버 시작 |
104
- | `npx -y @framingui/mcp-server@latest init` | 프로젝트 초기 설정 |
105
- | `framingui-mcp login` | 브라우저 OAuth 로그인 |
106
- | `framingui-mcp logout` | 로그아웃 |
107
- | `framingui-mcp status` | 인증 상태 확인 |
101
+ | Command | Description |
102
+ | ------------------------------------------ | ------------------------ |
103
+ | `npx -y @framingui/mcp-server@latest` | MCP stdio 서버 시작 |
104
+ | `npx -y @framingui/mcp-server@latest init` | 프로젝트 초기 설정 |
105
+ | `framingui-mcp help` | CLI 도움말 |
106
+ | `framingui-mcp commands --format json` | command adapter export |
107
+ | `framingui-mcp login` | 브라우저 OAuth 로그인 |
108
+ | `framingui-mcp logout` | 로그아웃 |
109
+ | `framingui-mcp status` | 인증 상태 확인 |
110
+ | `framingui-mcp update --check` | 패키지 업데이트 점검 |
111
+ | `framingui-mcp server` | MCP stdio 서버 명시 시작 |
108
112
 
109
113
  ## Development Quick Start
110
114
 
@@ -602,7 +606,7 @@ See [Package Guide](../../docs/packages/mcp-server.md) for complete setup instru
602
606
 
603
607
  ## MCP Prompts (Universal Guidance)
604
608
 
605
- The MCP server provides 2 built-in prompts that work across all MCP clients:
609
+ The MCP server provides 9 built-in prompts that work across all MCP clients:
606
610
 
607
611
  ### 1. getting-started
608
612
 
@@ -630,11 +634,49 @@ The MCP server provides 2 built-in prompts that work across all MCP clients:
630
634
  - Step 4/4: validate-environment
631
635
  - Complete examples and troubleshooting
632
636
 
633
- **When to use**: Production screen generation, workflow clarification
637
+ **When to use**: Production screen generation and `/screen`, `/section`, `/draft` style workflows
638
+
639
+ ### 3. responsive-workflow
640
+
641
+ **Purpose**: Responsive optimization workflow behind `/responsive`
642
+
643
+ ### 4. a11y-workflow
644
+
645
+ **Purpose**: Accessibility audit workflow behind `/a11y`
646
+
647
+ ### 5. theme-swap-workflow
648
+
649
+ **Purpose**: Theme application workflow behind `/theme-swap`
650
+
651
+ ### 6. doctor-workflow
652
+
653
+ **Purpose**: Environment diagnosis workflow behind `/doctor` and `/install-check`
654
+
655
+ ### 7. slash-commands
656
+
657
+ **Purpose**: Slash command catalog for FramingUI design workflows
658
+
659
+ ### 8. command-help
660
+
661
+ **Purpose**: Detailed help for one slash command including usage, options, examples, and MCP workflow mapping
662
+
663
+ ### 9. update-workflow
664
+
665
+ **Purpose**: Maintenance workflow behind `/update`
666
+
667
+ ### CLI adapter export
668
+
669
+ You can export client-oriented slash command adapters from the CLI:
670
+
671
+ ```bash
672
+ framingui-mcp commands --client codex --format json
673
+ framingui-mcp commands --client claude-code --format markdown
674
+ framingui-mcp commands --client cursor --command /responsive --format text
675
+ ```
634
676
 
635
677
  **Note**: These prompts are platform-agnostic and work with Claude Code, OpenAI Codex, Cursor, Windsurf, and any MCP-compatible client.
636
678
 
637
- **Total Prompts**: 2
679
+ **Total Prompts**: 9
638
680
 
639
681
  ### 11. Preview Screen Template
640
682
 
@@ -0,0 +1,2 @@
1
+ export declare function commandsCommand(args: string[]): void;
2
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAcA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAYpD"}
@@ -0,0 +1,20 @@
1
+ import { renderSlashCommandAdapter, } from '../commands/slash-command-adapters.js';
2
+ function readOption(args, flag) {
3
+ const index = args.indexOf(flag);
4
+ if (index === -1) {
5
+ return undefined;
6
+ }
7
+ return args[index + 1];
8
+ }
9
+ export function commandsCommand(args) {
10
+ const formatArg = readOption(args, '--format') ?? 'text';
11
+ const clientArg = (readOption(args, '--client') ?? 'generic');
12
+ const commandArg = readOption(args, '--command');
13
+ const output = renderSlashCommandAdapter({
14
+ format: formatArg === 'json' || formatArg === 'markdown' ? formatArg : 'text',
15
+ client: clientArg,
16
+ command: commandArg,
17
+ });
18
+ console.log(output);
19
+ }
20
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,uCAAuC,CAAC;AAE/C,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC;IACzD,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,SAAS,CAA8B,CAAC;IAC3F,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,yBAAyB,CAAC;QACvC,MAAM,EAAE,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QAC7E,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function getCliGuideText(): string;
2
+ export declare function printHelp(): void;
3
+ export declare function printGuide(): void;
4
+ export declare function isInteractiveTerminal(): boolean;
5
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,IAAI,MAAM,CA6BxC;AAED,wBAAgB,SAAS,IAAI,IAAI,CAqBhC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
@@ -0,0 +1,59 @@
1
+ export function getCliGuideText() {
2
+ return `FramingUI MCP Server
3
+
4
+ FramingUI is a design-system workflow for generating production-ready UI with MCP-aware tools, prompts, and command metadata.
5
+
6
+ Quick start:
7
+ 1. Set up a project: framingui-mcp init
8
+ 2. Authenticate: framingui-mcp login
9
+ 3. Check status: framingui-mcp status
10
+ 4. Inspect commands: framingui-mcp commands --format text
11
+ 5. Start MCP server: framingui-mcp server
12
+
13
+ What you get:
14
+ - screen generation workflows
15
+ - responsive optimization guidance
16
+ - accessibility and theme-swap workflows
17
+ - environment diagnosis and install checks
18
+
19
+ Useful commands:
20
+ framingui-mcp help
21
+ framingui-mcp guide
22
+ framingui-mcp commands --command /responsive
23
+ framingui-mcp update --check
24
+
25
+ In MCP clients, use the built-in prompts:
26
+ - getting-started
27
+ - slash-commands
28
+ - command-help
29
+ `;
30
+ }
31
+ export function printHelp() {
32
+ console.log(`Usage: framingui-mcp <command>
33
+
34
+ Commands:
35
+ help Show CLI usage and FramingUI overview
36
+ guide Show first-run onboarding guide
37
+ commands Export slash command metadata for clients or humans
38
+ init Configure a project for FramingUI
39
+ login Authenticate via browser OAuth
40
+ logout Remove saved credentials
41
+ status Show current authentication status
42
+ update Update installed FramingUI packages in a project
43
+ server Start the MCP stdio server explicitly
44
+ -v, --version Print the CLI version
45
+
46
+ Examples:
47
+ framingui-mcp init
48
+ framingui-mcp commands --format markdown
49
+ framingui-mcp commands --command /responsive --format text
50
+ framingui-mcp update --check
51
+ framingui-mcp server`);
52
+ }
53
+ export function printGuide() {
54
+ console.log(getCliGuideText());
55
+ }
56
+ export function isInteractiveTerminal() {
57
+ return Boolean(process.stdin.isTTY && process.stdout.isTTY);
58
+ }
59
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;uBAmBS,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Framingui MCP CLI 라우터
4
- * 서브커맨드: login, logout, status, (없으면 MCP 서버 시작)
4
+ * 서브커맨드: help, guide, commands, login, logout, status, init, update, server
5
5
  */
6
6
  export {};
7
7
  //# sourceMappingURL=index.d.ts.map
package/dist/cli/index.js CHANGED
@@ -1,16 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Framingui MCP CLI 라우터
4
- * 서브커맨드: login, logout, status, (없으면 MCP 서버 시작)
4
+ * 서브커맨드: help, guide, commands, login, logout, status, init, update, server
5
5
  */
6
6
  const command = process.argv[2];
7
+ const args = process.argv.slice(3);
7
8
  switch (command) {
9
+ case '--help':
10
+ case '-h':
11
+ case 'help': {
12
+ const { printHelp } = await import('./help.js');
13
+ printHelp();
14
+ break;
15
+ }
16
+ case 'guide': {
17
+ const { printGuide } = await import('./help.js');
18
+ printGuide();
19
+ break;
20
+ }
8
21
  case '--version':
9
22
  case '-v': {
10
23
  const { printVersion } = await import('./version.js');
11
24
  printVersion();
12
25
  break;
13
26
  }
27
+ case 'commands': {
28
+ const { commandsCommand } = await import('./commands.js');
29
+ commandsCommand(args);
30
+ break;
31
+ }
14
32
  case 'login': {
15
33
  const { loginCommand } = await import('./login.js');
16
34
  try {
@@ -37,11 +55,37 @@ switch (command) {
37
55
  await initCommand();
38
56
  break;
39
57
  }
40
- default: {
41
- // 서브커맨드 없음 MCP stdio 서버 시작 (기존 동작 유지)
58
+ case 'update': {
59
+ const { updateCommand } = await import('./update.js');
60
+ try {
61
+ updateCommand(args);
62
+ }
63
+ catch (err) {
64
+ console.error(err instanceof Error ? err.message : String(err));
65
+ process.exit(1);
66
+ }
67
+ break;
68
+ }
69
+ case 'server': {
42
70
  await import('../index.js');
43
71
  break;
44
72
  }
73
+ case undefined: {
74
+ const { isInteractiveTerminal, printGuide } = await import('./help.js');
75
+ if (isInteractiveTerminal()) {
76
+ printGuide();
77
+ break;
78
+ }
79
+ await import('../index.js');
80
+ break;
81
+ }
82
+ default: {
83
+ const { printHelp } = await import('./help.js');
84
+ console.error(`Unknown command: ${command}`);
85
+ printHelp();
86
+ process.exit(1);
87
+ break;
88
+ }
45
89
  }
46
90
  export {};
47
91
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAIH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI,CAAC,CAAC,CAAC;QACV,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACtD,YAAY,EAAE,CAAC;QACf,MAAM;IACR,CAAC;IAED,KAAK,OAAO,CAAC,CAAC,CAAC;QACb,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,YAAY,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC,CAAC,CAAC;QACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,aAAa,EAAE,CAAC;QAChB,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC,CAAC,CAAC;QACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,aAAa,EAAE,CAAC;QAChB,MAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM;IACR,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;QACR,wCAAwC;QACxC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5B,MAAM;IACR,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyRH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAkFjD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2QH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAkFjD"}
package/dist/cli/init.js CHANGED
@@ -9,6 +9,7 @@ import readline from 'node:readline';
9
9
  import { generateGuide } from './guide-template.js';
10
10
  import { generateClaudeMdSection, generateAgentsMdSection } from './agent-md-templates.js';
11
11
  import { upsertFraminguiServerConfig } from './mcp-config.js';
12
+ import { buildAddCommand, detectPackageManager } from './package-manager.js';
12
13
  // ─── 상수 ──────────────────────────────────────────────
13
14
  const FRAMINGUI_UI_CONTENT_PATH = './node_modules/@framingui/ui/dist/**/*.{js,mjs}';
14
15
  const FRAMINGUI_STYLE_IMPORT = "@import '@framingui/ui/styles';";
@@ -56,20 +57,9 @@ function detectFramework(cwd) {
56
57
  }
57
58
  return null;
58
59
  }
59
- function detectPackageManager(cwd) {
60
- if (fileExists(path.join(cwd, 'pnpm-lock.yaml'))) {
61
- return 'pnpm';
62
- }
63
- if (fileExists(path.join(cwd, 'yarn.lock'))) {
64
- return 'yarn';
65
- }
66
- if (fileExists(path.join(cwd, 'bun.lock')) || fileExists(path.join(cwd, 'bun.lockb'))) {
67
- return 'bun';
68
- }
69
- return 'npm';
70
- }
60
+ // ─── Step 2: 패키지 매니저 감지 및 설치 ─────────────────
71
61
  function installPackages(cwd, pm) {
72
- const cmd = `${pm} add ${PACKAGES_TO_INSTALL.join(' ')}`;
62
+ const cmd = buildAddCommand(pm, PACKAGES_TO_INSTALL);
73
63
  logDetail(cmd);
74
64
  execSync(cmd, { cwd, stdio: 'inherit' });
75
65
  }
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAkB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAC;AAElG,wDAAwD;AAExD,MAAM,yBAAyB,GAAG,iDAAiD,CAAC;AACpF,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AACjE,MAAM,mBAAmB,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;AAErE,sDAAsD;AAEtD,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,UAAoB;IACjD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAE,OAAiB;IACxD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAExE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,KAAK,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE;YACjD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oDAAoD;AAEpD,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAE5E,IAAI,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gDAAgD;AAEhD,SAAS,eAAe,CAAC,GAAW,EAAE,EAAkB;IACtD,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,CAAC,CAAC;IACf,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,yDAAyD;AAEzD,MAAM,0BAA0B,GAAG;IACjC,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;IAE7D,IAAI,UAAU,EAAE,CAAC;QACf,WAAW;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnD,kCAAkC;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,YAAY,yBAAyB,IAAI,CAAC,CAAC;QAC7F,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC7C,oBAAoB;YACpB,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,yCAAyC,CAAC,CAAC;YAC7F,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,mCAAmC,EACnC,kDAAkD,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,SAAS,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,UAAU;QACV,MAAM,QAAQ,GAAG;;;;;;;OAOd,yBAAyB;;;;;;CAM/B,CAAC;QACE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1E,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,sDAAsD;AAEtD,SAAS,QAAQ,CAAC,GAAW,EAAE,SAAoB;IACjD,MAAM,UAAU,GACd,SAAS,KAAK,QAAQ;QACpB,CAAC,CAAC,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;QAClE,CAAC,CAAC,CAAC,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC9C,SAAS,CAAC,KAAK,sBAAsB,EAAE,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC7C,SAAS,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,sBAAsB,OAAO,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9E,SAAS,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC;AAClC,CAAC;AAED,wDAAwD;AAExD,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE5C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;QAC5C,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,0DAA0D,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,SAAS,CACP,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,uCAAuC,CAC/E,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAC/C,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,mDAAmD;AAEnD,SAAS,UAAU,CAAC,GAAW,EAAE,SAAoB;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAEvD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACxC,CAAC;AAED,wDAAwD;AAExD,SAAS,YAAY,CAAC,GAAW,EAAE,SAAoB;IACrD,8CAA8C;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,eAAe,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACtD,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,2BAA2B,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;QACpF,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAED,8CAA8C;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,eAAe,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACtD,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,4BAA4B,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;QACrF,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,kDAAkD;AAElD,SAAS,YAAY;IACnB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;iCAamB,CAAC,CAAC;AACnC,CAAC;AAED,wDAAwD;AAExD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,CAAC;IAErB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,kBAAkB;IAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,sCAAsC,EACtC,CAAC,SAAS,EAAE,MAAM,CAAC,CACpB,CAAC;QACF,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpD,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,SAAS,CAAC,GAAG,cAAc,OAAO,CAAC,CAAC;IAEpC,iBAAiB;IACjB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,0BAA0B;IAC1B,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,aAAa,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC1D,CAAC;IAED,qBAAqB;IACrB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,sBAAsB,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB;IACjB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB;IACpB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB;IACjB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5B,YAAY,EAAE,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type PackageManager = 'pnpm' | 'yarn' | 'bun' | 'npm';
2
+ export declare function detectPackageManager(cwd: string): PackageManager;
3
+ export declare function buildAddCommand(pm: PackageManager, packages: string[]): string;
4
+ export declare function buildUpdateCommand(pm: PackageManager, packages: string[]): string;
5
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/cli/package-manager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAM7D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAWhE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE9E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAYjF"}
@@ -0,0 +1,34 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ function fileExists(filePath) {
4
+ return fs.existsSync(filePath);
5
+ }
6
+ export function detectPackageManager(cwd) {
7
+ if (fileExists(path.join(cwd, 'pnpm-lock.yaml'))) {
8
+ return 'pnpm';
9
+ }
10
+ if (fileExists(path.join(cwd, 'yarn.lock'))) {
11
+ return 'yarn';
12
+ }
13
+ if (fileExists(path.join(cwd, 'bun.lock')) || fileExists(path.join(cwd, 'bun.lockb'))) {
14
+ return 'bun';
15
+ }
16
+ return 'npm';
17
+ }
18
+ export function buildAddCommand(pm, packages) {
19
+ return `${pm} add ${packages.join(' ')}`;
20
+ }
21
+ export function buildUpdateCommand(pm, packages) {
22
+ switch (pm) {
23
+ case 'pnpm':
24
+ return `pnpm up ${packages.join(' ')}`;
25
+ case 'yarn':
26
+ return `yarn up ${packages.join(' ')}`;
27
+ case 'bun':
28
+ return `bun update ${packages.join(' ')}`;
29
+ case 'npm':
30
+ default:
31
+ return `npm install ${packages.map(pkg => `${pkg}@latest`).join(' ')}`;
32
+ }
33
+ }
34
+ //# sourceMappingURL=package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/cli/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAkB,EAAE,QAAkB;IACpE,OAAO,GAAG,EAAE,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAkB,EAAE,QAAkB;IACvE,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,MAAM;YACT,OAAO,WAAW,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,WAAW,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,KAAK;YACR,OAAO,cAAc,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,KAAK,CAAC;QACX;YACE,OAAO,eAAe,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function getInstalledFraminguiPackages(cwd: string): string[];
2
+ export declare function getUpdatePlan(cwd: string): {
3
+ packageManager: string;
4
+ packages: string[];
5
+ command: string | null;
6
+ };
7
+ export declare function updateCommand(args: string[]): void;
8
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AA2BA,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CASnE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CASA;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAsBlD"}
@@ -0,0 +1,53 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ import { buildUpdateCommand, detectPackageManager } from './package-manager.js';
5
+ const UPDATE_CANDIDATES = [
6
+ '@framingui/ui',
7
+ '@framingui/core',
8
+ '@framingui/tokens',
9
+ '@framingui/mcp-server',
10
+ 'tailwindcss-animate',
11
+ ];
12
+ function findPackageJsonPath(cwd) {
13
+ const direct = path.join(cwd, 'package.json');
14
+ if (fs.existsSync(direct)) {
15
+ return direct;
16
+ }
17
+ throw new Error(`No package.json found in ${cwd}. Run this inside a project directory.`);
18
+ }
19
+ export function getInstalledFraminguiPackages(cwd) {
20
+ const packageJsonPath = findPackageJsonPath(cwd);
21
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
22
+ const installed = new Set([
23
+ ...Object.keys(packageJson.dependencies ?? {}),
24
+ ...Object.keys(packageJson.devDependencies ?? {}),
25
+ ]);
26
+ return UPDATE_CANDIDATES.filter(pkg => installed.has(pkg));
27
+ }
28
+ export function getUpdatePlan(cwd) {
29
+ const packageManager = detectPackageManager(cwd);
30
+ const packages = getInstalledFraminguiPackages(cwd);
31
+ return {
32
+ packageManager,
33
+ packages,
34
+ command: packages.length > 0 ? buildUpdateCommand(packageManager, packages) : null,
35
+ };
36
+ }
37
+ export function updateCommand(args) {
38
+ const cwdIndex = args.indexOf('--cwd');
39
+ const cwd = cwdIndex === -1 ? process.cwd() : path.resolve(args[cwdIndex + 1] ?? process.cwd());
40
+ const checkOnly = args.includes('--check');
41
+ const plan = getUpdatePlan(cwd);
42
+ if (!plan.command) {
43
+ throw new Error(`No installed FramingUI packages found in ${cwd}. Run \`framingui-mcp init\` or install @framingui/ui first.`);
44
+ }
45
+ console.log(`Detected package manager: ${plan.packageManager}`);
46
+ console.log(`Packages: ${plan.packages.join(', ')}`);
47
+ console.log(`Command: ${plan.command}`);
48
+ if (checkOnly) {
49
+ return;
50
+ }
51
+ execSync(plan.command, { cwd, stdio: 'inherit' });
52
+ }
53
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type SlashCommandAdapterFormat = 'json' | 'markdown' | 'text';
2
+ export type SlashCommandAdapterClient = 'generic' | 'codex' | 'claude-code' | 'cursor';
3
+ export interface SlashCommandAdapterOptions {
4
+ format: SlashCommandAdapterFormat;
5
+ client?: SlashCommandAdapterClient;
6
+ command?: string;
7
+ }
8
+ export declare function renderSlashCommandAdapter(options: SlashCommandAdapterOptions): string;
9
+ //# sourceMappingURL=slash-command-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-command-adapters.d.ts","sourceRoot":"","sources":["../../src/commands/slash-command-adapters.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEvF,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,yBAAyB,CAAC;IAClC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoHD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAyBrF"}
@@ -0,0 +1,113 @@
1
+ import { getSlashCommand, listSlashCommands, } from './slash-command-registry.js';
2
+ function getCommands(command) {
3
+ if (!command) {
4
+ return listSlashCommands();
5
+ }
6
+ const resolved = getSlashCommand(command);
7
+ return resolved ? [resolved] : [];
8
+ }
9
+ function getClientAdapterMeta(client) {
10
+ switch (client) {
11
+ case 'codex':
12
+ return {
13
+ title: 'FramingUI adapter for Codex',
14
+ integrationTarget: 'AGENTS.md or a Codex-specific command manifest',
15
+ notes: [
16
+ 'Render each command in slash completion and show `summary` plus `usage` on tab.',
17
+ 'When a command is selected, use `promptRecipe` as the fallback workflow guide.',
18
+ 'For focused help, request `command-help` with the command name.',
19
+ ],
20
+ };
21
+ case 'claude-code':
22
+ return {
23
+ title: 'FramingUI adapter for Claude Code',
24
+ integrationTarget: 'CLAUDE.md, command palette glue, or MCP prompt helpers',
25
+ notes: [
26
+ 'Surface slash commands from the canonical registry instead of hardcoding them.',
27
+ 'Use `slash-commands` as the catalog fallback when native slash UI is unavailable.',
28
+ 'Preserve MCP workflow order from the `workflow` field.',
29
+ ],
30
+ };
31
+ case 'cursor':
32
+ return {
33
+ title: 'FramingUI adapter for Cursor',
34
+ integrationTarget: '.cursor rules, custom command palette wiring, or MCP helper layer',
35
+ notes: [
36
+ 'Render short summaries in the command palette and full `usage` on selection.',
37
+ 'Use the registry `examples` to seed autocomplete or example prompts.',
38
+ 'Map `promptRecipe` into a fallback prompt path when command UX is limited.',
39
+ ],
40
+ };
41
+ case 'generic':
42
+ default:
43
+ return {
44
+ title: 'FramingUI generic command adapter',
45
+ integrationTarget: 'Any slash-command capable MCP client',
46
+ notes: [
47
+ 'Render `summary` in command lists and `usage` in inline help.',
48
+ 'Use `examples` for discoverability.',
49
+ 'Use `promptRecipe` and `command-help` as fallback guidance.',
50
+ ],
51
+ };
52
+ }
53
+ }
54
+ function renderMarkdown(commands, client) {
55
+ const meta = getClientAdapterMeta(client);
56
+ if (commands.length === 0) {
57
+ return `# ${meta.title}\n\nNo matching commands.`;
58
+ }
59
+ return [
60
+ `# ${meta.title}`,
61
+ '',
62
+ `Integration target: ${meta.integrationTarget}`,
63
+ '',
64
+ '## Adapter notes',
65
+ '',
66
+ ...meta.notes.map(note => `- ${note}`),
67
+ ...commands.flatMap(command => [
68
+ '',
69
+ `## ${command.name}`,
70
+ '',
71
+ command.summary,
72
+ '',
73
+ `- Usage: \`${command.usage}\``,
74
+ `- Prompt fallback: \`${command.promptRecipe}\``,
75
+ `- Workflow: ${command.workflow.map(step => `\`${step}\``).join(' -> ')}`,
76
+ `- Examples: ${command.examples.map(example => `\`${example}\``).join(', ')}`,
77
+ ]),
78
+ ].join('\n');
79
+ }
80
+ function renderText(commands, client) {
81
+ const meta = getClientAdapterMeta(client);
82
+ if (commands.length === 0) {
83
+ return `${meta.title}\n\nNo matching commands.`;
84
+ }
85
+ return [
86
+ meta.title,
87
+ `Integration target: ${meta.integrationTarget}`,
88
+ '',
89
+ 'Notes:',
90
+ ...meta.notes.map(note => ` - ${note}`),
91
+ '',
92
+ ...commands.map(command => `${command.name}\n ${command.summary}\n Usage: ${command.usage}\n Prompt: ${command.promptRecipe}`),
93
+ ].join('\n');
94
+ }
95
+ export function renderSlashCommandAdapter(options) {
96
+ const client = options.client ?? 'generic';
97
+ const commands = getCommands(options.command);
98
+ if (options.format === 'json') {
99
+ const meta = getClientAdapterMeta(client);
100
+ return JSON.stringify({
101
+ client,
102
+ title: meta.title,
103
+ integrationTarget: meta.integrationTarget,
104
+ notes: meta.notes,
105
+ commands,
106
+ }, null, 2);
107
+ }
108
+ if (options.format === 'markdown') {
109
+ return renderMarkdown(commands, client);
110
+ }
111
+ return renderText(commands, client);
112
+ }
113
+ //# sourceMappingURL=slash-command-adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-command-adapters.js","sourceRoot":"","sources":["../../src/commands/slash-command-adapters.ts"],"names":[],"mappings":"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"}