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.
- package/README.md +264 -71
- package/dist/agents/implementations/CodeGenSubAgent.d.ts +48 -0
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -0
- package/dist/agents/implementations/CodeGenSubAgent.js +1356 -0
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -0
- package/dist/agents/implementations/DocsSubAgent.d.ts +35 -0
- package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -0
- package/dist/agents/implementations/DocsSubAgent.js +351 -0
- package/dist/agents/implementations/DocsSubAgent.js.map +1 -0
- package/dist/agents/implementations/EnhancementAgent.d.ts +119 -0
- package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -0
- package/dist/agents/implementations/EnhancementAgent.js +598 -0
- package/dist/agents/implementations/EnhancementAgent.js.map +1 -0
- package/dist/agents/implementations/QASubAgent.d.ts +31 -0
- package/dist/agents/implementations/QASubAgent.d.ts.map +1 -0
- package/dist/agents/implementations/QASubAgent.js +190 -0
- package/dist/agents/implementations/QASubAgent.js.map +1 -0
- package/dist/agents/interfaces/SubAgent.d.ts +287 -0
- package/dist/agents/interfaces/SubAgent.d.ts.map +1 -0
- package/dist/agents/interfaces/SubAgent.js +7 -0
- package/dist/agents/interfaces/SubAgent.js.map +1 -0
- package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts +59 -0
- package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator/SubAgentOrchestrator.js +305 -0
- package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -0
- package/dist/agents/personalities/definitions.d.ts +32 -0
- package/dist/agents/personalities/definitions.d.ts.map +1 -0
- package/dist/agents/personalities/definitions.js +359 -0
- package/dist/agents/personalities/definitions.js.map +1 -0
- package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +1 -0
- package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +25 -91
- package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts +120 -0
- package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts.map +1 -0
- package/dist/cli/src/agents/implementations/EnhancementAgent.js +606 -0
- package/dist/cli/src/agents/implementations/EnhancementAgent.js.map +1 -0
- package/dist/cli/src/agents/interfaces/SubAgent.d.ts +130 -0
- package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +1 -1
- package/dist/cli/src/agents/personalities/definitions.d.ts +1 -1
- package/dist/cli/src/agents/personalities/definitions.d.ts.map +1 -1
- package/dist/cli/src/agents/personalities/definitions.js +31 -2
- package/dist/cli/src/agents/personalities/definitions.js.map +1 -1
- package/dist/cli/src/cli.js +12 -0
- package/dist/cli/src/cli.js.map +1 -1
- package/dist/cli/src/commands/enhance.d.ts +28 -0
- package/dist/cli/src/commands/enhance.d.ts.map +1 -0
- package/dist/cli/src/commands/enhance.js +246 -0
- package/dist/cli/src/commands/enhance.js.map +1 -0
- package/dist/cli/src/commands/generate-components.d.ts +0 -1
- package/dist/cli/src/commands/generate-components.d.ts.map +1 -1
- package/dist/cli/src/commands/generate-components.js +2 -2
- package/dist/cli/src/commands/generate-components.js.map +1 -1
- package/dist/cli/src/commands/generate.d.ts.map +1 -1
- package/dist/cli/src/commands/generate.js +8 -22
- package/dist/cli/src/commands/generate.js.map +1 -1
- package/dist/cli/src/commands/list.d.ts.map +1 -1
- package/dist/cli/src/commands/list.js +2 -1
- package/dist/cli/src/commands/list.js.map +1 -1
- package/dist/cli/src/commands/model.d.ts +25 -0
- package/dist/cli/src/commands/model.d.ts.map +1 -0
- package/dist/cli/src/commands/model.js +317 -0
- package/dist/cli/src/commands/model.js.map +1 -0
- package/dist/cli/src/commands/setup.d.ts +35 -0
- package/dist/cli/src/commands/setup.d.ts.map +1 -0
- package/dist/cli/src/commands/setup.js +412 -0
- package/dist/cli/src/commands/setup.js.map +1 -0
- package/dist/cli/src/config/dependencies.json +180 -0
- package/dist/cli/src/utils/componentValidator.d.ts +60 -0
- package/dist/cli/src/utils/componentValidator.d.ts.map +1 -0
- package/dist/cli/src/utils/componentValidator.js +191 -0
- package/dist/cli/src/utils/componentValidator.js.map +1 -0
- package/dist/cli/src/utils/designTokenExtractor.d.ts +94 -0
- package/dist/cli/src/utils/designTokenExtractor.d.ts.map +1 -0
- package/dist/cli/src/utils/designTokenExtractor.js +231 -0
- package/dist/cli/src/utils/designTokenExtractor.js.map +1 -0
- package/dist/cli/src/utils/ollamaClient.d.ts +37 -0
- package/dist/cli/src/utils/ollamaClient.d.ts.map +1 -0
- package/dist/cli/src/utils/ollamaClient.js +213 -0
- package/dist/cli/src/utils/ollamaClient.js.map +1 -0
- package/dist/cli/src/utils/spinner.d.ts +2 -0
- package/dist/cli/src/utils/spinner.d.ts.map +1 -1
- package/dist/cli/src/utils/spinner.js +7 -0
- package/dist/cli/src/utils/spinner.js.map +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +299 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth.d.ts +23 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +212 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/enhance.d.ts +25 -0
- package/dist/commands/enhance.d.ts.map +1 -0
- package/dist/commands/enhance.js +242 -0
- package/dist/commands/enhance.js.map +1 -0
- package/dist/commands/generate-components.d.ts +27 -0
- package/dist/commands/generate-components.d.ts.map +1 -0
- package/dist/commands/generate-components.js +680 -0
- package/dist/commands/generate-components.js.map +1 -0
- package/dist/commands/generate.d.ts +23 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +222 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +13 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +91 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +17 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +210 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/model.d.ts +25 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +317 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/preview.d.ts +23 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +1200 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/setup.d.ts +35 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +412 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +21 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +287 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/validate.d.ts +22 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +259 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/types/index.d.ts +154 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/apiKeyManager.d.ts +137 -0
- package/dist/utils/apiKeyManager.d.ts.map +1 -0
- package/dist/utils/apiKeyManager.js +471 -0
- package/dist/utils/apiKeyManager.js.map +1 -0
- package/dist/utils/componentValidator.d.ts +60 -0
- package/dist/utils/componentValidator.d.ts.map +1 -0
- package/dist/utils/componentValidator.js +191 -0
- package/dist/utils/componentValidator.js.map +1 -0
- package/dist/utils/designTokenExtractor.d.ts +94 -0
- package/dist/utils/designTokenExtractor.d.ts.map +1 -0
- package/dist/utils/designTokenExtractor.js +231 -0
- package/dist/utils/designTokenExtractor.js.map +1 -0
- package/dist/utils/errorHandler.d.ts +105 -0
- package/dist/utils/errorHandler.d.ts.map +1 -0
- package/dist/utils/errorHandler.js +332 -0
- package/dist/utils/errorHandler.js.map +1 -0
- package/dist/utils/fileSystem.d.ts +58 -0
- package/dist/utils/fileSystem.d.ts.map +1 -0
- package/dist/utils/fileSystem.js +230 -0
- package/dist/utils/fileSystem.js.map +1 -0
- package/dist/utils/githubModels.d.ts +53 -0
- package/dist/utils/githubModels.d.ts.map +1 -0
- package/dist/utils/githubModels.js +239 -0
- package/dist/utils/githubModels.js.map +1 -0
- package/dist/utils/ollamaClient.d.ts +37 -0
- package/dist/utils/ollamaClient.d.ts.map +1 -0
- package/dist/utils/ollamaClient.js +213 -0
- package/dist/utils/ollamaClient.js.map +1 -0
- package/dist/utils/spinner.d.ts +30 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +119 -0
- package/dist/utils/spinner.js.map +1 -0
- 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"}
|