mycontext-cli 0.1.2 → 0.2.0

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 (169) hide show
  1. package/README.md +264 -71
  2. package/dist/agents/implementations/CodeGenSubAgent.d.ts +48 -0
  3. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -0
  4. package/dist/agents/implementations/CodeGenSubAgent.js +1356 -0
  5. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -0
  6. package/dist/agents/implementations/DocsSubAgent.d.ts +35 -0
  7. package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -0
  8. package/dist/agents/implementations/DocsSubAgent.js +351 -0
  9. package/dist/agents/implementations/DocsSubAgent.js.map +1 -0
  10. package/dist/agents/implementations/EnhancementAgent.d.ts +119 -0
  11. package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -0
  12. package/dist/agents/implementations/EnhancementAgent.js +598 -0
  13. package/dist/agents/implementations/EnhancementAgent.js.map +1 -0
  14. package/dist/agents/implementations/QASubAgent.d.ts +31 -0
  15. package/dist/agents/implementations/QASubAgent.d.ts.map +1 -0
  16. package/dist/agents/implementations/QASubAgent.js +190 -0
  17. package/dist/agents/implementations/QASubAgent.js.map +1 -0
  18. package/dist/agents/interfaces/SubAgent.d.ts +287 -0
  19. package/dist/agents/interfaces/SubAgent.d.ts.map +1 -0
  20. package/dist/agents/interfaces/SubAgent.js +7 -0
  21. package/dist/agents/interfaces/SubAgent.js.map +1 -0
  22. package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts +59 -0
  23. package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -0
  24. package/dist/agents/orchestrator/SubAgentOrchestrator.js +305 -0
  25. package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -0
  26. package/dist/agents/personalities/definitions.d.ts +32 -0
  27. package/dist/agents/personalities/definitions.d.ts.map +1 -0
  28. package/dist/agents/personalities/definitions.js +359 -0
  29. package/dist/agents/personalities/definitions.js.map +1 -0
  30. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +1 -0
  31. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  32. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +25 -91
  33. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +1 -1
  34. package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts +120 -0
  35. package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts.map +1 -0
  36. package/dist/cli/src/agents/implementations/EnhancementAgent.js +606 -0
  37. package/dist/cli/src/agents/implementations/EnhancementAgent.js.map +1 -0
  38. package/dist/cli/src/agents/interfaces/SubAgent.d.ts +130 -0
  39. package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +1 -1
  40. package/dist/cli/src/agents/personalities/definitions.d.ts +1 -1
  41. package/dist/cli/src/agents/personalities/definitions.d.ts.map +1 -1
  42. package/dist/cli/src/agents/personalities/definitions.js +31 -2
  43. package/dist/cli/src/agents/personalities/definitions.js.map +1 -1
  44. package/dist/cli/src/cli.js +12 -0
  45. package/dist/cli/src/cli.js.map +1 -1
  46. package/dist/cli/src/commands/enhance.d.ts +28 -0
  47. package/dist/cli/src/commands/enhance.d.ts.map +1 -0
  48. package/dist/cli/src/commands/enhance.js +246 -0
  49. package/dist/cli/src/commands/enhance.js.map +1 -0
  50. package/dist/cli/src/commands/generate-components.d.ts +0 -1
  51. package/dist/cli/src/commands/generate-components.d.ts.map +1 -1
  52. package/dist/cli/src/commands/generate-components.js +2 -2
  53. package/dist/cli/src/commands/generate-components.js.map +1 -1
  54. package/dist/cli/src/commands/generate.d.ts.map +1 -1
  55. package/dist/cli/src/commands/generate.js +8 -22
  56. package/dist/cli/src/commands/generate.js.map +1 -1
  57. package/dist/cli/src/commands/list.d.ts.map +1 -1
  58. package/dist/cli/src/commands/list.js +2 -1
  59. package/dist/cli/src/commands/list.js.map +1 -1
  60. package/dist/cli/src/commands/model.d.ts +25 -0
  61. package/dist/cli/src/commands/model.d.ts.map +1 -0
  62. package/dist/cli/src/commands/model.js +317 -0
  63. package/dist/cli/src/commands/model.js.map +1 -0
  64. package/dist/cli/src/commands/setup.d.ts +35 -0
  65. package/dist/cli/src/commands/setup.d.ts.map +1 -0
  66. package/dist/cli/src/commands/setup.js +412 -0
  67. package/dist/cli/src/commands/setup.js.map +1 -0
  68. package/dist/cli/src/config/dependencies.json +180 -0
  69. package/dist/cli/src/utils/componentValidator.d.ts +60 -0
  70. package/dist/cli/src/utils/componentValidator.d.ts.map +1 -0
  71. package/dist/cli/src/utils/componentValidator.js +191 -0
  72. package/dist/cli/src/utils/componentValidator.js.map +1 -0
  73. package/dist/cli/src/utils/designTokenExtractor.d.ts +94 -0
  74. package/dist/cli/src/utils/designTokenExtractor.d.ts.map +1 -0
  75. package/dist/cli/src/utils/designTokenExtractor.js +231 -0
  76. package/dist/cli/src/utils/designTokenExtractor.js.map +1 -0
  77. package/dist/cli/src/utils/ollamaClient.d.ts +37 -0
  78. package/dist/cli/src/utils/ollamaClient.d.ts.map +1 -0
  79. package/dist/cli/src/utils/ollamaClient.js +213 -0
  80. package/dist/cli/src/utils/ollamaClient.js.map +1 -0
  81. package/dist/cli/src/utils/spinner.d.ts +2 -0
  82. package/dist/cli/src/utils/spinner.d.ts.map +1 -1
  83. package/dist/cli/src/utils/spinner.js +7 -0
  84. package/dist/cli/src/utils/spinner.js.map +1 -1
  85. package/dist/cli.d.ts +3 -0
  86. package/dist/cli.d.ts.map +1 -0
  87. package/dist/cli.js +299 -0
  88. package/dist/cli.js.map +1 -0
  89. package/dist/commands/auth.d.ts +23 -0
  90. package/dist/commands/auth.d.ts.map +1 -0
  91. package/dist/commands/auth.js +212 -0
  92. package/dist/commands/auth.js.map +1 -0
  93. package/dist/commands/enhance.d.ts +25 -0
  94. package/dist/commands/enhance.d.ts.map +1 -0
  95. package/dist/commands/enhance.js +242 -0
  96. package/dist/commands/enhance.js.map +1 -0
  97. package/dist/commands/generate-components.d.ts +27 -0
  98. package/dist/commands/generate-components.d.ts.map +1 -0
  99. package/dist/commands/generate-components.js +680 -0
  100. package/dist/commands/generate-components.js.map +1 -0
  101. package/dist/commands/generate.d.ts +23 -0
  102. package/dist/commands/generate.d.ts.map +1 -0
  103. package/dist/commands/generate.js +222 -0
  104. package/dist/commands/generate.js.map +1 -0
  105. package/dist/commands/init.d.ts +13 -0
  106. package/dist/commands/init.d.ts.map +1 -0
  107. package/dist/commands/init.js +91 -0
  108. package/dist/commands/init.js.map +1 -0
  109. package/dist/commands/list.d.ts +17 -0
  110. package/dist/commands/list.d.ts.map +1 -0
  111. package/dist/commands/list.js +210 -0
  112. package/dist/commands/list.js.map +1 -0
  113. package/dist/commands/model.d.ts +25 -0
  114. package/dist/commands/model.d.ts.map +1 -0
  115. package/dist/commands/model.js +317 -0
  116. package/dist/commands/model.js.map +1 -0
  117. package/dist/commands/preview.d.ts +23 -0
  118. package/dist/commands/preview.d.ts.map +1 -0
  119. package/dist/commands/preview.js +1200 -0
  120. package/dist/commands/preview.js.map +1 -0
  121. package/dist/commands/setup.d.ts +35 -0
  122. package/dist/commands/setup.d.ts.map +1 -0
  123. package/dist/commands/setup.js +412 -0
  124. package/dist/commands/setup.js.map +1 -0
  125. package/dist/commands/status.d.ts +21 -0
  126. package/dist/commands/status.d.ts.map +1 -0
  127. package/dist/commands/status.js +287 -0
  128. package/dist/commands/status.js.map +1 -0
  129. package/dist/commands/validate.d.ts +22 -0
  130. package/dist/commands/validate.d.ts.map +1 -0
  131. package/dist/commands/validate.js +259 -0
  132. package/dist/commands/validate.js.map +1 -0
  133. package/dist/types/index.d.ts +154 -0
  134. package/dist/types/index.d.ts.map +1 -0
  135. package/dist/types/index.js +3 -0
  136. package/dist/types/index.js.map +1 -0
  137. package/dist/utils/apiKeyManager.d.ts +137 -0
  138. package/dist/utils/apiKeyManager.d.ts.map +1 -0
  139. package/dist/utils/apiKeyManager.js +471 -0
  140. package/dist/utils/apiKeyManager.js.map +1 -0
  141. package/dist/utils/componentValidator.d.ts +60 -0
  142. package/dist/utils/componentValidator.d.ts.map +1 -0
  143. package/dist/utils/componentValidator.js +191 -0
  144. package/dist/utils/componentValidator.js.map +1 -0
  145. package/dist/utils/designTokenExtractor.d.ts +94 -0
  146. package/dist/utils/designTokenExtractor.d.ts.map +1 -0
  147. package/dist/utils/designTokenExtractor.js +231 -0
  148. package/dist/utils/designTokenExtractor.js.map +1 -0
  149. package/dist/utils/errorHandler.d.ts +105 -0
  150. package/dist/utils/errorHandler.d.ts.map +1 -0
  151. package/dist/utils/errorHandler.js +332 -0
  152. package/dist/utils/errorHandler.js.map +1 -0
  153. package/dist/utils/fileSystem.d.ts +58 -0
  154. package/dist/utils/fileSystem.d.ts.map +1 -0
  155. package/dist/utils/fileSystem.js +230 -0
  156. package/dist/utils/fileSystem.js.map +1 -0
  157. package/dist/utils/githubModels.d.ts +53 -0
  158. package/dist/utils/githubModels.d.ts.map +1 -0
  159. package/dist/utils/githubModels.js +239 -0
  160. package/dist/utils/githubModels.js.map +1 -0
  161. package/dist/utils/ollamaClient.d.ts +37 -0
  162. package/dist/utils/ollamaClient.d.ts.map +1 -0
  163. package/dist/utils/ollamaClient.js +213 -0
  164. package/dist/utils/ollamaClient.js.map +1 -0
  165. package/dist/utils/spinner.d.ts +30 -0
  166. package/dist/utils/spinner.d.ts.map +1 -0
  167. package/dist/utils/spinner.js +119 -0
  168. package/dist/utils/spinner.js.map +1 -0
  169. package/package.json +11 -9
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AuthCommand = void 0;
40
+ const prompts_1 = __importDefault(require("prompts"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const fs = __importStar(require("fs-extra"));
43
+ const path = __importStar(require("path"));
44
+ class AuthCommand {
45
+ constructor() {
46
+ this.configDir = path.join(process.cwd(), ".mycontext");
47
+ this.authFile = path.join(this.configDir, "auth.json");
48
+ }
49
+ async execute() {
50
+ console.log(chalk_1.default.blue("šŸ” MyContext Authentication"));
51
+ console.log(chalk_1.default.gray("Authenticate using magic code sent to your email\n"));
52
+ try {
53
+ // Get email from user
54
+ const { email } = await (0, prompts_1.default)({
55
+ type: "text",
56
+ name: "email",
57
+ message: "Enter your email address:",
58
+ validate: (value) => {
59
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
60
+ return emailRegex.test(value) ? true : "Please enter a valid email";
61
+ },
62
+ });
63
+ if (!email) {
64
+ console.log(chalk_1.default.yellow("Authentication cancelled"));
65
+ return;
66
+ }
67
+ // Request magic code
68
+ console.log(chalk_1.default.yellow("šŸ“§ Sending magic code..."));
69
+ const response = await fetch("http://localhost:3000/api/auth/magic-code", {
70
+ method: "POST",
71
+ headers: { "Content-Type": "application/json" },
72
+ body: JSON.stringify({ email }),
73
+ });
74
+ if (!response.ok) {
75
+ const errorData = (await response.json());
76
+ throw new Error(errorData.error || "Failed to send magic code");
77
+ }
78
+ console.log(chalk_1.default.green("āœ… Magic code sent to your email"));
79
+ // Get magic code from user
80
+ const { code } = await (0, prompts_1.default)({
81
+ type: "text",
82
+ name: "code",
83
+ message: "Enter the magic code from your email:",
84
+ validate: (value) => value.length > 0 ? true : "Please enter the magic code",
85
+ });
86
+ if (!code) {
87
+ console.log(chalk_1.default.yellow("Authentication cancelled"));
88
+ return;
89
+ }
90
+ // Verify magic code
91
+ console.log(chalk_1.default.yellow("šŸ” Verifying magic code..."));
92
+ const verifyResponse = await fetch("http://localhost:3000/api/auth/verify", {
93
+ method: "POST",
94
+ headers: { "Content-Type": "application/json" },
95
+ body: JSON.stringify({ email, code }),
96
+ });
97
+ if (!verifyResponse.ok) {
98
+ const errorData = (await verifyResponse.json());
99
+ throw new Error(errorData.error || "Invalid magic code");
100
+ }
101
+ const authData = (await verifyResponse.json());
102
+ if (!authData.user) {
103
+ throw new Error("No user data received");
104
+ }
105
+ // Store authentication token
106
+ await this.storeAuthToken(authData.user);
107
+ console.log(chalk_1.default.green("āœ… Authentication successful!"));
108
+ console.log(chalk_1.default.gray(`Welcome, ${authData.user.email}`));
109
+ console.log(chalk_1.default.gray("You can now use MyContext CLI commands"));
110
+ }
111
+ catch (error) {
112
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
113
+ console.error(chalk_1.default.red("āŒ Authentication failed:"), errorMessage);
114
+ process.exit(1);
115
+ }
116
+ }
117
+ async status() {
118
+ const authConfig = await this.loadAuthConfig();
119
+ if (!authConfig) {
120
+ console.log(chalk_1.default.yellow("šŸ”’ Not authenticated"));
121
+ console.log(chalk_1.default.gray('Run "mycontext auth" to authenticate'));
122
+ return;
123
+ }
124
+ console.log(chalk_1.default.green("šŸ”“ Authenticated"));
125
+ console.log(chalk_1.default.gray(`Email: ${authConfig.email}`));
126
+ console.log(chalk_1.default.gray(`User ID: ${authConfig.userId}`));
127
+ console.log(chalk_1.default.gray(`Authenticated: ${new Date(authConfig.authenticatedAt).toLocaleString()}`));
128
+ }
129
+ async logout() {
130
+ const authConfig = await this.loadAuthConfig();
131
+ if (!authConfig) {
132
+ console.log(chalk_1.default.yellow("Already logged out"));
133
+ return;
134
+ }
135
+ try {
136
+ await fs.remove(this.authFile);
137
+ console.log(chalk_1.default.green("āœ… Logged out successfully"));
138
+ }
139
+ catch (error) {
140
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
141
+ console.error(chalk_1.default.red("āŒ Failed to logout:"), errorMessage);
142
+ }
143
+ }
144
+ async refresh() {
145
+ const authConfig = await this.loadAuthConfig();
146
+ if (!authConfig) {
147
+ console.log(chalk_1.default.yellow("Please authenticate first: mycontext auth"));
148
+ return;
149
+ }
150
+ console.log(chalk_1.default.yellow("šŸ”„ Refreshing authentication..."));
151
+ try {
152
+ // For now, just update the timestamp
153
+ // In the future, we could implement actual token refresh
154
+ await this.storeAuthToken({
155
+ id: authConfig.userId,
156
+ email: authConfig.email,
157
+ refreshToken: authConfig.refreshToken,
158
+ });
159
+ console.log(chalk_1.default.green("āœ… Authentication refreshed"));
160
+ }
161
+ catch (error) {
162
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
163
+ console.error(chalk_1.default.red("āŒ Failed to refresh:"), errorMessage);
164
+ }
165
+ }
166
+ async storeAuthToken(user) {
167
+ // Ensure config directory exists
168
+ await fs.ensureDir(this.configDir);
169
+ // Store authentication data
170
+ const authData = {
171
+ userId: user.id,
172
+ email: user.email,
173
+ refreshToken: user.refreshToken,
174
+ authenticatedAt: new Date().toISOString(),
175
+ };
176
+ await fs.writeJson(this.authFile, authData, { spaces: 2 });
177
+ }
178
+ // Helper method for other commands to check authentication
179
+ async requireAuth() {
180
+ const authConfig = await this.loadAuthConfig();
181
+ if (!authConfig?.refreshToken) {
182
+ console.log(chalk_1.default.yellow("Please authenticate first: mycontext auth"));
183
+ return false;
184
+ }
185
+ return true;
186
+ }
187
+ // Helper method for other commands to get user info
188
+ async getUserInfo() {
189
+ const authConfig = await this.loadAuthConfig();
190
+ if (!authConfig) {
191
+ return null;
192
+ }
193
+ return {
194
+ userId: authConfig.userId,
195
+ email: authConfig.email,
196
+ };
197
+ }
198
+ // Make loadAuthConfig public for other commands
199
+ async loadAuthConfig() {
200
+ try {
201
+ if (await fs.pathExists(this.authFile)) {
202
+ return (await fs.readJson(this.authFile));
203
+ }
204
+ }
205
+ catch (error) {
206
+ console.warn("Failed to load auth config:", error);
207
+ }
208
+ return null;
209
+ }
210
+ }
211
+ exports.AuthCommand = AuthCommand;
212
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ export interface EnhancementOptions {
4
+ prompt: string;
5
+ temperature?: number;
6
+ maxTokens?: number;
7
+ verbose?: boolean;
8
+ debug?: boolean;
9
+ output?: string;
10
+ }
11
+ export declare class EnhanceCommand {
12
+ private enhancementAgent;
13
+ constructor();
14
+ execute(target: string, options: EnhancementOptions): Promise<void>;
15
+ private enhanceSingleComponent;
16
+ private enhanceComponentGroup;
17
+ private getEnhancementPrompt;
18
+ private extractDesignContext;
19
+ private trackEnhancementUsage;
20
+ private displayEnhancementResults;
21
+ private displayGroupResults;
22
+ private calculateCredits;
23
+ }
24
+ export declare const enhance: Command;
25
+ //# sourceMappingURL=enhance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhance.d.ts","sourceRoot":"","sources":["../../src/commands/enhance.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,gBAAgB,CAAmB;;IAMrC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YA+B3D,sBAAsB;YA8CtB,qBAAqB;YAwErB,oBAAoB;IAoBlC,OAAO,CAAC,oBAAoB;YAad,qBAAqB;IAuBnC,OAAO,CAAC,yBAAyB;IAyBjC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;CAOzB;AAKD,eAAO,MAAM,OAAO,SAqBhB,CAAC"}
@@ -0,0 +1,242 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.enhance = exports.EnhanceCommand = void 0;
8
+ const commander_1 = require("commander");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const fs_extra_1 = __importDefault(require("fs-extra"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const spinner_1 = require("../utils/spinner");
13
+ const EnhancementAgent_1 = require("../agents/implementations/EnhancementAgent");
14
+ class EnhanceCommand {
15
+ constructor() {
16
+ this.enhancementAgent = new EnhancementAgent_1.EnhancementAgent();
17
+ }
18
+ async execute(target, options) {
19
+ const spinner = new spinner_1.EnhancedSpinner("Initializing enhancement...");
20
+ try {
21
+ spinner.start();
22
+ // Validate target
23
+ if (!target) {
24
+ throw new Error("Target component or group is required");
25
+ }
26
+ // Check if target is a file or group
27
+ const isFile = target.endsWith('.tsx') || target.endsWith('.jsx');
28
+ const isGroup = !isFile && !target.includes('.');
29
+ if (isFile) {
30
+ await this.enhanceSingleComponent(target, options, spinner);
31
+ }
32
+ else if (isGroup) {
33
+ await this.enhanceComponentGroup(target, options, spinner);
34
+ }
35
+ else {
36
+ throw new Error("Target must be a component file (.tsx/.jsx) or component group");
37
+ }
38
+ spinner.succeed("Enhancement completed successfully!");
39
+ }
40
+ catch (error) {
41
+ spinner.fail("Enhancement failed");
42
+ console.error(chalk_1.default.red("āŒ Error:"), error);
43
+ process.exit(1);
44
+ }
45
+ }
46
+ async enhanceSingleComponent(componentPath, options, spinner) {
47
+ spinner.updateText("Reading component file...");
48
+ // Read component file
49
+ const fullPath = path_1.default.resolve(componentPath);
50
+ if (!await fs_extra_1.default.pathExists(fullPath)) {
51
+ throw new Error(`Component file not found: ${componentPath}`);
52
+ }
53
+ const componentCode = await fs_extra_1.default.readFile(fullPath, 'utf-8');
54
+ const componentName = path_1.default.basename(fullPath, path_1.default.extname(fullPath));
55
+ // Get enhancement prompt
56
+ const prompt = await this.getEnhancementPrompt(options);
57
+ spinner.updateText("Enhancing component...");
58
+ // Run enhancement
59
+ const result = await this.enhancementAgent.run({
60
+ currentComponent: componentCode,
61
+ userPrompt: prompt,
62
+ designContext: this.extractDesignContext(componentCode),
63
+ constraints: {
64
+ maxDependencies: 5,
65
+ targetFramework: "react",
66
+ uiLibrary: "shadcn",
67
+ },
68
+ });
69
+ // Track usage
70
+ await this.trackEnhancementUsage(componentName, "single", result.validation.score);
71
+ // Save enhanced component
72
+ const outputPath = options.output || fullPath;
73
+ await fs_extra_1.default.writeFile(outputPath, result.enhancedComponent);
74
+ // Display results
75
+ this.displayEnhancementResults(result, componentName);
76
+ spinner.updateText("Enhancement completed!");
77
+ }
78
+ async enhanceComponentGroup(groupName, options, spinner) {
79
+ spinner.updateText("Reading component group...");
80
+ // Find component group directory
81
+ const groupDir = path_1.default.join("components", "generated", groupName);
82
+ if (!await fs_extra_1.default.pathExists(groupDir)) {
83
+ throw new Error(`Component group not found: ${groupName}`);
84
+ }
85
+ // Get all component files in group
86
+ const files = await fs_extra_1.default.readdir(groupDir);
87
+ const componentFiles = files.filter(file => file.endsWith('.tsx') && !file.endsWith('.d.ts'));
88
+ if (componentFiles.length === 0) {
89
+ throw new Error(`No component files found in group: ${groupName}`);
90
+ }
91
+ // Get enhancement prompt
92
+ const prompt = await this.getEnhancementPrompt(options);
93
+ spinner.updateText(`Enhancing ${componentFiles.length} components...`);
94
+ let totalScore = 0;
95
+ let enhancedCount = 0;
96
+ // Enhance each component
97
+ for (const file of componentFiles) {
98
+ try {
99
+ const filePath = path_1.default.join(groupDir, file);
100
+ const componentCode = await fs_extra_1.default.readFile(filePath, 'utf-8');
101
+ const componentName = path_1.default.basename(file, '.tsx');
102
+ spinner.updateText(`Enhancing ${componentName}...`);
103
+ const result = await this.enhancementAgent.run({
104
+ currentComponent: componentCode,
105
+ userPrompt: prompt,
106
+ designContext: this.extractDesignContext(componentCode),
107
+ constraints: {
108
+ maxDependencies: 5,
109
+ targetFramework: "react",
110
+ uiLibrary: "shadcn",
111
+ },
112
+ });
113
+ // Save enhanced component
114
+ await fs_extra_1.default.writeFile(filePath, result.enhancedComponent);
115
+ totalScore += result.validation.score;
116
+ enhancedCount++;
117
+ // Track usage
118
+ await this.trackEnhancementUsage(componentName, "group", result.validation.score);
119
+ }
120
+ catch (error) {
121
+ console.warn(chalk_1.default.yellow(`āš ļø Failed to enhance ${file}:`), error);
122
+ }
123
+ }
124
+ // Display group results
125
+ const averageScore = enhancedCount > 0 ? totalScore / enhancedCount : 0;
126
+ this.displayGroupResults(enhancedCount, componentFiles.length, averageScore);
127
+ spinner.updateText(`Enhanced ${enhancedCount}/${componentFiles.length} components`);
128
+ }
129
+ async getEnhancementPrompt(options) {
130
+ if (options.prompt) {
131
+ return options.prompt;
132
+ }
133
+ // Interactive prompt
134
+ const readline = require('readline');
135
+ const rl = readline.createInterface({
136
+ input: process.stdin,
137
+ output: process.stdout,
138
+ });
139
+ return new Promise((resolve) => {
140
+ rl.question(chalk_1.default.blue("Enter enhancement prompt: "), (answer) => {
141
+ rl.close();
142
+ resolve(answer.trim() || "Enhance this component with modern design patterns");
143
+ });
144
+ });
145
+ }
146
+ extractDesignContext(componentCode) {
147
+ // Simple extraction of design context from component
148
+ const colors = componentCode.match(/(?:bg-|text-|border-)([a-z]+-\d+|primary|secondary|accent)/g) || [];
149
+ const spacing = componentCode.match(/(?:p-|m-|gap-)(\d+|xs|sm|md|lg|xl)/g) || [];
150
+ return {
151
+ colors: [...new Set(colors.map((c) => c.split('-')[1]))],
152
+ spacing: spacing.length > 0 ? spacing[0]?.split('-')[1] || "md" : "md",
153
+ typography: "inter",
154
+ interactions: ["hover", "click"],
155
+ };
156
+ }
157
+ async trackEnhancementUsage(componentName, type, qualityScore) {
158
+ try {
159
+ // await usageTracker.trackUserAction({
160
+ // userId: "cli-user", // TODO: Get from auth
161
+ // action: "enhance_component",
162
+ // metadata: {
163
+ // componentName,
164
+ // type,
165
+ // qualityScore,
166
+ // timestamp: new Date().toISOString(),
167
+ // },
168
+ // timestamp: new Date(),
169
+ // });
170
+ console.log(chalk_1.default.gray(`šŸ“Š Usage tracking disabled for now`));
171
+ }
172
+ catch (error) {
173
+ console.warn(chalk_1.default.yellow("āš ļø Failed to track usage:"), error);
174
+ }
175
+ }
176
+ displayEnhancementResults(result, componentName) {
177
+ console.log(chalk_1.default.green(`\nāœ… Enhanced ${componentName}`));
178
+ console.log(chalk_1.default.gray(`Quality Score: ${result.validation.score}/100`));
179
+ if (result.changes.totalChanges > 0) {
180
+ console.log(chalk_1.default.gray(`Changes: ${result.changes.totalChanges} lines modified`));
181
+ }
182
+ if (result.suggestions.accessibility.length > 0) {
183
+ console.log(chalk_1.default.yellow("\nšŸ” Accessibility Suggestions:"));
184
+ result.suggestions.accessibility.forEach((suggestion) => {
185
+ console.log(chalk_1.default.gray(` • ${suggestion}`));
186
+ });
187
+ }
188
+ if (result.suggestions.performance.length > 0) {
189
+ console.log(chalk_1.default.blue("\n⚔ Performance Suggestions:"));
190
+ result.suggestions.performance.forEach((suggestion) => {
191
+ console.log(chalk_1.default.gray(` • ${suggestion}`));
192
+ });
193
+ }
194
+ console.log(chalk_1.default.gray(`\nšŸ’³ Credits used: ${this.calculateCredits(result.validation.score)}`));
195
+ }
196
+ displayGroupResults(enhancedCount, totalCount, averageScore) {
197
+ console.log(chalk_1.default.green(`\nāœ… Enhanced ${enhancedCount}/${totalCount} components`));
198
+ console.log(chalk_1.default.gray(`Average Quality Score: ${averageScore.toFixed(1)}/100`));
199
+ if (enhancedCount < totalCount) {
200
+ console.log(chalk_1.default.yellow(`āš ļø ${totalCount - enhancedCount} components failed to enhance`));
201
+ }
202
+ const totalCredits = this.calculateCredits(averageScore) * enhancedCount;
203
+ console.log(chalk_1.default.gray(`\nšŸ’³ Total credits used: ${totalCredits}`));
204
+ }
205
+ calculateCredits(qualityScore) {
206
+ // Credit calculation based on quality score
207
+ if (qualityScore >= 90)
208
+ return 3;
209
+ if (qualityScore >= 80)
210
+ return 2;
211
+ if (qualityScore >= 70)
212
+ return 1;
213
+ return 1; // Minimum credit cost
214
+ }
215
+ }
216
+ exports.EnhanceCommand = EnhanceCommand;
217
+ // CLI command setup
218
+ const enhanceCommand = new EnhanceCommand();
219
+ exports.enhance = new commander_1.Command("enhance")
220
+ .description("Enhance React components with AI-powered improvements")
221
+ .argument("<target>", "Component file (.tsx/.jsx) or component group name")
222
+ .option("-i, --input <path>", "Input component file path")
223
+ .option("-o, --output <path>", "Output file path (defaults to input)")
224
+ .option("-p, --prompt <text>", "Enhancement prompt")
225
+ .option("--temperature <number>", "Generation temperature (0-1)", "0.7")
226
+ .option("--max-tokens <number>", "Maximum tokens", "4000")
227
+ .option("--credits <number>", "Credit limit for enhancement")
228
+ .option("--yes", "Skip prompts (non-interactive mode)")
229
+ .action(async (target, options) => {
230
+ try {
231
+ await enhanceCommand.execute(target, {
232
+ ...options,
233
+ temperature: parseFloat(options.temperature),
234
+ maxTokens: parseInt(options.maxTokens),
235
+ });
236
+ }
237
+ catch (error) {
238
+ console.error(chalk_1.default.red("āŒ Enhancement failed:"), error);
239
+ process.exit(1);
240
+ }
241
+ });
242
+ //# sourceMappingURL=enhance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhance.js","sourceRoot":"","sources":["../../src/commands/enhance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { CommandOptions } from "../types";
2
+ interface GenerateComponentsOptions extends CommandOptions {
3
+ group?: string;
4
+ all?: boolean;
5
+ output?: string;
6
+ template?: string;
7
+ }
8
+ export declare class GenerateComponentsCommand {
9
+ private fs;
10
+ execute(target: string, options: GenerateComponentsOptions): Promise<void>;
11
+ private generateAllComponents;
12
+ private generateComponentGroup;
13
+ private generateComponent;
14
+ private storeComponent;
15
+ generateComponentCode(component: any, group: any, options: GenerateComponentsOptions): string;
16
+ private generateComponentName;
17
+ private generatePropsForType;
18
+ private generatePropsDestructuring;
19
+ private generateComponentLogic;
20
+ private generateBaseClasses;
21
+ private generateComponentJSX;
22
+ private generateActionFunctions;
23
+ private generateGroupIndex;
24
+ private generatePreviewPage;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=generate-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-components.d.ts","sourceRoot":"","sources":["../../src/commands/generate-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO1C,UAAU,yBAA0B,SAAQ,cAAc;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAEnB;AA8CD,qBAAa,yBAAyB;IACpC,OAAO,CAAC,EAAE,CAA2B;IAE/B,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC;YAiDF,qBAAqB;YAwErB,sBAAsB;YAuDtB,iBAAiB;YA8GjB,cAAc;IAmCrB,qBAAqB,CAC1B,SAAS,EAAE,GAAG,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,yBAAyB,GACjC,MAAM;IA8FT,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,0BAA0B;IA2BlC,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,oBAAoB;IA2F5B,OAAO,CAAC,uBAAuB;YAiDjB,kBAAkB;YA+BlB,mBAAmB;CAwClC"}