mycontext-cli 0.1.2 → 0.1.3
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 +233 -15
- 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 +33 -1
- 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.map +1 -1
- package/dist/cli/src/commands/generate-components.js +2 -1
- package/dist/cli/src/commands/generate-components.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/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/package.json +3 -1
|
@@ -0,0 +1,412 @@
|
|
|
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.SetupCommand = void 0;
|
|
40
|
+
exports.registerSetupCommand = registerSetupCommand;
|
|
41
|
+
const spinner_1 = require("../utils/spinner");
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const fs = __importStar(require("fs-extra"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const os = __importStar(require("os"));
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
const inquirer = __importStar(require("inquirer"));
|
|
48
|
+
class SetupCommand {
|
|
49
|
+
constructor() {
|
|
50
|
+
this.setupConfigPath = path.join(os.homedir(), ".mycontext", "setup.json");
|
|
51
|
+
this.loadDependenciesConfig();
|
|
52
|
+
}
|
|
53
|
+
loadDependenciesConfig() {
|
|
54
|
+
const configPath = path.join(__dirname, "../config/dependencies.json");
|
|
55
|
+
this.dependenciesConfig = fs.readJsonSync(configPath);
|
|
56
|
+
}
|
|
57
|
+
async execute(options) {
|
|
58
|
+
console.log(chalk_1.default.blue("🚀 MyContext CLI Setup\n"));
|
|
59
|
+
// Check if already set up
|
|
60
|
+
if ((await this.isAlreadySetup()) && !options.force) {
|
|
61
|
+
console.log(chalk_1.default.green("✅ MyContext is already set up and working!"));
|
|
62
|
+
console.log(chalk_1.default.gray("Use --force to run setup again\n"));
|
|
63
|
+
await this.showCurrentStatus();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Show welcome and get user consent
|
|
67
|
+
if (!options.skipPrompts) {
|
|
68
|
+
const proceed = await this.getSetupConsent();
|
|
69
|
+
if (!proceed) {
|
|
70
|
+
console.log(chalk_1.default.yellow("Setup cancelled. You can run setup later with: mycontext setup"));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Run setup process
|
|
75
|
+
const spinner = new spinner_1.EnhancedSpinner("Starting setup...");
|
|
76
|
+
try {
|
|
77
|
+
await this.runSetupSteps(spinner, options);
|
|
78
|
+
await this.saveSetupConfig();
|
|
79
|
+
spinner.success({ text: "Setup completed successfully!" });
|
|
80
|
+
this.showSuccessMessage();
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
spinner.error({ text: "Setup failed" });
|
|
84
|
+
console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
85
|
+
await this.showFailureAlternatives();
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async getSetupConsent() {
|
|
90
|
+
const { prompts } = this.dependenciesConfig.setup;
|
|
91
|
+
console.log(chalk_1.default.cyan(prompts.welcome));
|
|
92
|
+
console.log("");
|
|
93
|
+
// Show benefits
|
|
94
|
+
prompts.benefits.forEach((benefit) => {
|
|
95
|
+
console.log(chalk_1.default.green(benefit));
|
|
96
|
+
});
|
|
97
|
+
console.log("");
|
|
98
|
+
console.log(chalk_1.default.yellow(`📦 ${prompts.storage_notice}`));
|
|
99
|
+
console.log(chalk_1.default.gray(`💡 ${prompts.alternatives}`));
|
|
100
|
+
console.log("");
|
|
101
|
+
const answers = await inquirer.default.prompt([
|
|
102
|
+
{
|
|
103
|
+
type: "confirm",
|
|
104
|
+
name: "proceed",
|
|
105
|
+
message: prompts.continue_prompt,
|
|
106
|
+
default: true,
|
|
107
|
+
},
|
|
108
|
+
]);
|
|
109
|
+
return answers.proceed;
|
|
110
|
+
}
|
|
111
|
+
async runSetupSteps(spinner, options) {
|
|
112
|
+
const steps = this.dependenciesConfig.setup.steps;
|
|
113
|
+
for (const step of steps) {
|
|
114
|
+
spinner.updateText(step.description);
|
|
115
|
+
try {
|
|
116
|
+
await this.executeStep(step);
|
|
117
|
+
console.log(chalk_1.default.green(` ✅ ${step.name}`));
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.log(chalk_1.default.red(` ❌ ${step.name}: ${error instanceof Error ? error.message : String(error)}`));
|
|
121
|
+
// Handle conditional steps
|
|
122
|
+
if (step.conditional) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async executeStep(step) {
|
|
130
|
+
switch (step.id) {
|
|
131
|
+
case "check_ollama":
|
|
132
|
+
await this.checkOllamaInstallation();
|
|
133
|
+
break;
|
|
134
|
+
case "install_ollama":
|
|
135
|
+
await this.installOllama();
|
|
136
|
+
break;
|
|
137
|
+
case "start_ollama":
|
|
138
|
+
await this.startOllamaService();
|
|
139
|
+
break;
|
|
140
|
+
case "check_model":
|
|
141
|
+
await this.checkModel();
|
|
142
|
+
break;
|
|
143
|
+
case "download_model":
|
|
144
|
+
await this.downloadModel();
|
|
145
|
+
break;
|
|
146
|
+
case "create_specialized_model":
|
|
147
|
+
await this.createSpecializedModel();
|
|
148
|
+
break;
|
|
149
|
+
case "test_generation":
|
|
150
|
+
await this.testGeneration();
|
|
151
|
+
break;
|
|
152
|
+
case "save_config":
|
|
153
|
+
await this.saveConfiguration();
|
|
154
|
+
break;
|
|
155
|
+
default:
|
|
156
|
+
throw new Error(`Unknown setup step: ${step.id}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async checkOllamaInstallation() {
|
|
160
|
+
try {
|
|
161
|
+
const result = (0, child_process_1.execSync)("ollama --version", { encoding: "utf8" });
|
|
162
|
+
console.log(chalk_1.default.gray(` Found Ollama: ${result.trim()}`));
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
throw new Error("Ollama not found. Will install.");
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async installOllama() {
|
|
169
|
+
const platform = os.platform();
|
|
170
|
+
const installation = this.dependenciesConfig.dependencies.ollama.installation[platform];
|
|
171
|
+
if (!installation) {
|
|
172
|
+
throw new Error(`Ollama installation not supported on ${platform}`);
|
|
173
|
+
}
|
|
174
|
+
console.log(chalk_1.default.yellow(" Installing Ollama..."));
|
|
175
|
+
try {
|
|
176
|
+
if (installation.method === "script") {
|
|
177
|
+
(0, child_process_1.execSync)(installation.command, { stdio: "inherit" });
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
throw new Error(`Manual installation required. Please visit: ${installation.url}`);
|
|
181
|
+
}
|
|
182
|
+
// Verify installation
|
|
183
|
+
(0, child_process_1.execSync)(installation.verify, { encoding: "utf8" });
|
|
184
|
+
console.log(chalk_1.default.green(" Ollama installed successfully"));
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
throw new Error(`Failed to install Ollama: ${error instanceof Error ? error.message : String(error)}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async startOllamaService() {
|
|
191
|
+
try {
|
|
192
|
+
// Try to ping Ollama service
|
|
193
|
+
const healthCheck = this.dependenciesConfig.health_checks.ollama_service;
|
|
194
|
+
(0, child_process_1.execSync)(healthCheck.command, { timeout: healthCheck.timeout });
|
|
195
|
+
console.log(chalk_1.default.gray(" Ollama service is running"));
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
// Try to start the service
|
|
199
|
+
try {
|
|
200
|
+
console.log(chalk_1.default.yellow(" Starting Ollama service..."));
|
|
201
|
+
if (os.platform() === "darwin") {
|
|
202
|
+
(0, child_process_1.execSync)("brew services start ollama", { stdio: "inherit" });
|
|
203
|
+
}
|
|
204
|
+
else if (os.platform() === "linux") {
|
|
205
|
+
(0, child_process_1.execSync)("sudo systemctl start ollama", { stdio: "inherit" });
|
|
206
|
+
}
|
|
207
|
+
// Wait and check again
|
|
208
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
209
|
+
(0, child_process_1.execSync)("ollama --version", { timeout: 10000 });
|
|
210
|
+
console.log(chalk_1.default.green(" Ollama service started"));
|
|
211
|
+
}
|
|
212
|
+
catch (startError) {
|
|
213
|
+
throw new Error("Failed to start Ollama service. Please start manually.");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
async checkModel() {
|
|
218
|
+
try {
|
|
219
|
+
const result = (0, child_process_1.execSync)("ollama list", { encoding: "utf8" });
|
|
220
|
+
if (result.includes("deepseek-coder:6.7b")) {
|
|
221
|
+
console.log(chalk_1.default.gray(" Found base model: deepseek-coder:6.7b"));
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
throw new Error("Base model not found");
|
|
225
|
+
}
|
|
226
|
+
if (result.includes("mycontext-react")) {
|
|
227
|
+
console.log(chalk_1.default.gray(" Found specialized model: mycontext-react"));
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
throw new Error("Specialized model not found");
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
if (error instanceof Error &&
|
|
235
|
+
error.message.includes("Base model not found")) {
|
|
236
|
+
throw new Error("Need to download base model");
|
|
237
|
+
}
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
async downloadModel() {
|
|
242
|
+
console.log(chalk_1.default.yellow(" Downloading base model (this may take a few minutes)..."));
|
|
243
|
+
try {
|
|
244
|
+
(0, child_process_1.execSync)("ollama pull deepseek-coder:6.7b", {
|
|
245
|
+
stdio: ["inherit", "pipe", "pipe"],
|
|
246
|
+
timeout: 300000, // 5 minutes
|
|
247
|
+
});
|
|
248
|
+
console.log(chalk_1.default.green(" Base model downloaded successfully"));
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
throw new Error("Failed to download base model. Check internet connection and disk space.");
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
async createSpecializedModel() {
|
|
255
|
+
const modelfilePath = path.join(os.tmpdir(), "Modelfile.mycontext");
|
|
256
|
+
const modelfileContent = `FROM deepseek-coder:6.7b
|
|
257
|
+
|
|
258
|
+
PARAMETER temperature 0.1
|
|
259
|
+
PARAMETER top_p 0.9
|
|
260
|
+
PARAMETER repeat_penalty 1.1
|
|
261
|
+
|
|
262
|
+
SYSTEM "You are MyContext React Component Generator for Next.js 15 with Shadcn UI.
|
|
263
|
+
|
|
264
|
+
AVAILABLE SHADCN UI COMPONENTS (import from @/components/ui/):
|
|
265
|
+
- import { Button } from '@/components/ui/button'
|
|
266
|
+
- import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
|
|
267
|
+
- import { Input } from '@/components/ui/input'
|
|
268
|
+
- import { Label } from '@/components/ui/label'
|
|
269
|
+
- import { Switch } from '@/components/ui/switch'
|
|
270
|
+
- import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
|
|
271
|
+
|
|
272
|
+
RULES:
|
|
273
|
+
- Always start with 'use client'
|
|
274
|
+
- Import React and cn from @/lib/utils
|
|
275
|
+
- Use design tokens: bg-card, text-foreground, bg-primary, etc
|
|
276
|
+
- Include className prop with cn()
|
|
277
|
+
- Export both named and default"`;
|
|
278
|
+
try {
|
|
279
|
+
await fs.writeFile(modelfilePath, modelfileContent);
|
|
280
|
+
console.log(chalk_1.default.yellow(" Creating specialized MyContext model..."));
|
|
281
|
+
(0, child_process_1.execSync)(`ollama create mycontext-react -f "${modelfilePath}"`, {
|
|
282
|
+
stdio: "inherit",
|
|
283
|
+
});
|
|
284
|
+
// Cleanup
|
|
285
|
+
await fs.remove(modelfilePath);
|
|
286
|
+
console.log(chalk_1.default.green(" Specialized model created: mycontext-react"));
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
throw new Error(`Failed to create specialized model: ${error instanceof Error ? error.message : String(error)}`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
async testGeneration() {
|
|
293
|
+
try {
|
|
294
|
+
console.log(chalk_1.default.yellow(" Testing component generation..."));
|
|
295
|
+
const testPrompt = "Create a simple button component";
|
|
296
|
+
const result = (0, child_process_1.execSync)(`ollama run mycontext-react "${testPrompt}"`, {
|
|
297
|
+
encoding: "utf8",
|
|
298
|
+
timeout: 30000,
|
|
299
|
+
});
|
|
300
|
+
// Basic validation
|
|
301
|
+
if (result.includes("import React") && result.includes("export")) {
|
|
302
|
+
console.log(chalk_1.default.green(" Component generation test passed"));
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
throw new Error("Generated component failed validation");
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
throw new Error(`Generation test failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
async saveConfiguration() {
|
|
313
|
+
const config = {
|
|
314
|
+
setupDate: new Date().toISOString(),
|
|
315
|
+
ollamaVersion: (0, child_process_1.execSync)("ollama --version", { encoding: "utf8" }).trim(),
|
|
316
|
+
modelName: "mycontext-react",
|
|
317
|
+
status: "configured",
|
|
318
|
+
};
|
|
319
|
+
await fs.ensureDir(path.dirname(this.setupConfigPath));
|
|
320
|
+
await fs.writeJson(this.setupConfigPath, config, { spaces: 2 });
|
|
321
|
+
console.log(chalk_1.default.gray(" Configuration saved"));
|
|
322
|
+
}
|
|
323
|
+
async isAlreadySetup() {
|
|
324
|
+
try {
|
|
325
|
+
const config = await fs.readJson(this.setupConfigPath);
|
|
326
|
+
return config.status === "configured";
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
async showCurrentStatus() {
|
|
333
|
+
try {
|
|
334
|
+
console.log(chalk_1.default.cyan("📊 Current Status:"));
|
|
335
|
+
// Check Ollama
|
|
336
|
+
const ollamaVersion = (0, child_process_1.execSync)("ollama --version", {
|
|
337
|
+
encoding: "utf8",
|
|
338
|
+
}).trim();
|
|
339
|
+
console.log(chalk_1.default.green(` ✅ Ollama: ${ollamaVersion}`));
|
|
340
|
+
// Check models
|
|
341
|
+
const models = (0, child_process_1.execSync)("ollama list", { encoding: "utf8" });
|
|
342
|
+
const hasSpecialized = models.includes("mycontext-react");
|
|
343
|
+
console.log(chalk_1.default[hasSpecialized ? "green" : "yellow"](` ${hasSpecialized ? "✅" : "⚠️"} MyContext Model: ${hasSpecialized ? "Ready" : "Missing"}`));
|
|
344
|
+
// Test generation
|
|
345
|
+
try {
|
|
346
|
+
(0, child_process_1.execSync)('ollama run mycontext-react "test"', { timeout: 10000 });
|
|
347
|
+
console.log(chalk_1.default.green(" ✅ Component Generation: Working"));
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
console.log(chalk_1.default.yellow(" ⚠️ Component Generation: Issues detected"));
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
console.log(chalk_1.default.red(" ❌ Setup incomplete or broken"));
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
showSuccessMessage() {
|
|
358
|
+
const { success_message } = this.dependenciesConfig.setup;
|
|
359
|
+
console.log("");
|
|
360
|
+
console.log(chalk_1.default.green(success_message));
|
|
361
|
+
console.log("");
|
|
362
|
+
console.log(chalk_1.default.cyan("🎯 Next Steps:"));
|
|
363
|
+
console.log(chalk_1.default.white(' mycontext generate-component "user profile card"'));
|
|
364
|
+
console.log(chalk_1.default.white(" mycontext generate-components auth"));
|
|
365
|
+
console.log(chalk_1.default.white(" mycontext model status"));
|
|
366
|
+
}
|
|
367
|
+
async saveSetupConfig() {
|
|
368
|
+
const configDir = path.join(os.homedir(), ".mycontext");
|
|
369
|
+
const configPath = path.join(configDir, "setup.json");
|
|
370
|
+
await fs.ensureDir(configDir);
|
|
371
|
+
const config = {
|
|
372
|
+
installedAt: new Date().toISOString(),
|
|
373
|
+
ollamaVersion: await this.getOllamaVersion(),
|
|
374
|
+
modelVersion: "deepseek-coder:6.7b",
|
|
375
|
+
status: "completed",
|
|
376
|
+
};
|
|
377
|
+
await fs.writeJson(configPath, config, { spaces: 2 });
|
|
378
|
+
}
|
|
379
|
+
async getOllamaVersion() {
|
|
380
|
+
try {
|
|
381
|
+
const { execSync } = await Promise.resolve().then(() => __importStar(require("child_process")));
|
|
382
|
+
const version = execSync("ollama --version", { encoding: "utf8" }).trim();
|
|
383
|
+
return version;
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
return "unknown";
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
async showFailureAlternatives() {
|
|
390
|
+
const { failure_alternatives } = this.dependenciesConfig.setup;
|
|
391
|
+
console.log("");
|
|
392
|
+
console.log(chalk_1.default.yellow("🔄 Alternative Options:"));
|
|
393
|
+
failure_alternatives.forEach((alt) => {
|
|
394
|
+
console.log(chalk_1.default.gray(` • ${alt}`));
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
exports.SetupCommand = SetupCommand;
|
|
399
|
+
function registerSetupCommand(program) {
|
|
400
|
+
program
|
|
401
|
+
.command("setup")
|
|
402
|
+
.description("Set up MyContext local AI environment")
|
|
403
|
+
.option("--local", "Force local setup mode")
|
|
404
|
+
.option("--cloud", "Use cloud/API mode")
|
|
405
|
+
.option("--force", "Force setup even if already configured")
|
|
406
|
+
.option("--skip-prompts", "Skip interactive prompts")
|
|
407
|
+
.action(async (options) => {
|
|
408
|
+
const setupCommand = new SetupCommand();
|
|
409
|
+
await setupCommand.execute(options);
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates React components for syntax, structure, and best practices.
|
|
5
|
+
* Used by the EnhancementAgent to ensure quality and compliance.
|
|
6
|
+
*/
|
|
7
|
+
export interface ComponentValidation {
|
|
8
|
+
isValid: boolean;
|
|
9
|
+
errors: ValidationError[];
|
|
10
|
+
warnings: ValidationWarning[];
|
|
11
|
+
score: number;
|
|
12
|
+
suggestions: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface ValidationError {
|
|
15
|
+
type: "syntax" | "structure" | "react" | "typescript" | "accessibility";
|
|
16
|
+
message: string;
|
|
17
|
+
line?: number;
|
|
18
|
+
severity: "error" | "warning";
|
|
19
|
+
}
|
|
20
|
+
export interface ValidationWarning {
|
|
21
|
+
type: "performance" | "accessibility" | "best-practice";
|
|
22
|
+
message: string;
|
|
23
|
+
line?: number;
|
|
24
|
+
suggestion: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class ComponentValidator {
|
|
27
|
+
/**
|
|
28
|
+
* Validate component syntax
|
|
29
|
+
*/
|
|
30
|
+
validateSyntax(componentCode: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Validate enhancement against constraints
|
|
33
|
+
*/
|
|
34
|
+
validateEnhancement(componentCode: string, constraints: {
|
|
35
|
+
maxDependencies: number;
|
|
36
|
+
targetFramework: "react" | "next";
|
|
37
|
+
uiLibrary: "shadcn" | "custom";
|
|
38
|
+
}): Promise<ComponentValidation>;
|
|
39
|
+
/**
|
|
40
|
+
* Extract dependencies from component code
|
|
41
|
+
*/
|
|
42
|
+
private extractDependencies;
|
|
43
|
+
/**
|
|
44
|
+
* Extract shadcn/ui components
|
|
45
|
+
*/
|
|
46
|
+
private extractShadcnComponents;
|
|
47
|
+
/**
|
|
48
|
+
* Check accessibility issues
|
|
49
|
+
*/
|
|
50
|
+
private checkAccessibility;
|
|
51
|
+
/**
|
|
52
|
+
* Check performance issues
|
|
53
|
+
*/
|
|
54
|
+
private checkPerformance;
|
|
55
|
+
/**
|
|
56
|
+
* Calculate validation score
|
|
57
|
+
*/
|
|
58
|
+
private calculateScore;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=componentValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentValidator.d.ts","sourceRoot":"","sources":["../../../../src/utils/componentValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B7D;;OAEG;IACG,mBAAmB,CACvB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE;QACX,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;QAClC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAChC,GACA,OAAO,CAAC,mBAAmB,CAAC;IA+C/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,cAAc;CAWvB"}
|