mycontext-cli 0.2.2 → 0.2.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/dist/agents/implementations/CodeGenSubAgent.d.ts +0 -7
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +0 -7
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.d.ts +8 -6
- package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.js +74 -25
- package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts +2 -0
- package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.js +13 -4
- package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
- package/dist/agents/implementations/QASubAgent.d.ts +9 -0
- package/dist/agents/implementations/QASubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/QASubAgent.js +103 -22
- package/dist/agents/implementations/QASubAgent.js.map +1 -1
- package/dist/cli.js +11 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +3 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/enhance.d.ts +40 -0
- package/dist/commands/enhance.d.ts.map +1 -1
- package/dist/commands/enhance.js +192 -1
- package/dist/commands/enhance.js.map +1 -1
- package/dist/commands/generate-components.d.ts +1 -0
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +61 -22
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/refine.d.ts +94 -0
- package/dist/commands/refine.d.ts.map +1 -0
- package/dist/commands/refine.js +492 -0
- package/dist/commands/refine.js.map +1 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +45 -16
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/ai-providers.json +56 -0
- package/dist/config/dependencies.json +6 -3
- package/dist/utils/huggingFaceClient.d.ts +44 -0
- package/dist/utils/huggingFaceClient.d.ts.map +1 -0
- package/dist/utils/huggingFaceClient.js +169 -0
- package/dist/utils/huggingFaceClient.js.map +1 -0
- package/dist/utils/hybridAIClient.d.ts +74 -0
- package/dist/utils/hybridAIClient.d.ts.map +1 -0
- package/dist/utils/hybridAIClient.js +257 -0
- package/dist/utils/hybridAIClient.js.map +1 -0
- package/dist/utils/ollamaClient.d.ts +5 -12
- package/dist/utils/ollamaClient.d.ts.map +1 -1
- package/dist/utils/ollamaClient.js +118 -107
- package/dist/utils/ollamaClient.js.map +1 -1
- package/package.json +3 -1
- package/dist/cli/src/config/dependencies.json +0 -180
|
@@ -0,0 +1,257 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HybridAIClient = void 0;
|
|
37
|
+
const ollamaClient_1 = require("./ollamaClient");
|
|
38
|
+
const huggingFaceClient_1 = require("./huggingFaceClient");
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
class HybridAIClient {
|
|
42
|
+
constructor() {
|
|
43
|
+
this.providers = [];
|
|
44
|
+
this.currentProvider = null;
|
|
45
|
+
this.config = null;
|
|
46
|
+
this.loadConfig();
|
|
47
|
+
this.initializeProviders();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Load AI provider configuration
|
|
51
|
+
*/
|
|
52
|
+
loadConfig() {
|
|
53
|
+
try {
|
|
54
|
+
const configPath = path.join(__dirname, '../config/ai-providers.json');
|
|
55
|
+
const configData = fs.readFileSync(configPath, 'utf8');
|
|
56
|
+
this.config = JSON.parse(configData);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.log('[HybridAIClient] Could not load config, using defaults');
|
|
60
|
+
this.config = null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Initialize available AI providers based on configuration
|
|
65
|
+
*/
|
|
66
|
+
async initializeProviders() {
|
|
67
|
+
// Add Hugging Face if enabled and API key available
|
|
68
|
+
if (this.config?.huggingface.enabled) {
|
|
69
|
+
const huggingFaceClient = new huggingFaceClient_1.HuggingFaceClient();
|
|
70
|
+
if (huggingFaceClient.hasApiKey()) {
|
|
71
|
+
this.providers.push({
|
|
72
|
+
name: "huggingface",
|
|
73
|
+
priority: this.config.huggingface.priority,
|
|
74
|
+
client: huggingFaceClient,
|
|
75
|
+
isAvailable: () => huggingFaceClient.checkConnection(),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Add Ollama if enabled
|
|
80
|
+
if (this.config?.ollama.enabled) {
|
|
81
|
+
const ollamaClient = new ollamaClient_1.OllamaClient();
|
|
82
|
+
this.providers.push({
|
|
83
|
+
name: "ollama",
|
|
84
|
+
priority: this.config.ollama.priority,
|
|
85
|
+
client: ollamaClient,
|
|
86
|
+
isAvailable: () => ollamaClient.checkConnection(),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// Sort by priority
|
|
90
|
+
this.providers.sort((a, b) => a.priority - b.priority);
|
|
91
|
+
console.log(`[HybridAIClient] Initialized ${this.providers.length} providers:`, this.providers.map(p => `${p.name} (priority: ${p.priority})`).join(', '));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the best available provider
|
|
95
|
+
*/
|
|
96
|
+
async getBestProvider() {
|
|
97
|
+
if (this.currentProvider) {
|
|
98
|
+
const isAvailable = await this.currentProvider.isAvailable();
|
|
99
|
+
if (isAvailable) {
|
|
100
|
+
return this.currentProvider;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Find the first available provider
|
|
104
|
+
for (const provider of this.providers) {
|
|
105
|
+
try {
|
|
106
|
+
const isAvailable = await provider.isAvailable();
|
|
107
|
+
if (isAvailable) {
|
|
108
|
+
this.currentProvider = provider;
|
|
109
|
+
return provider;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.log(`[HybridAIClient] Provider ${provider.name} not available: ${error}`);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Generate component refinement using the best available provider
|
|
121
|
+
*/
|
|
122
|
+
async generateComponentRefinement(componentCode, prompt, options = {}) {
|
|
123
|
+
const provider = await this.getBestProvider();
|
|
124
|
+
if (!provider) {
|
|
125
|
+
throw new Error("No AI providers available. Please check Ollama or configure Hugging Face API key.");
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
console.log(`[HybridAIClient] Using provider: ${provider.name}`);
|
|
129
|
+
let result;
|
|
130
|
+
if (provider.name === "huggingface") {
|
|
131
|
+
const huggingFaceClient = provider.client;
|
|
132
|
+
result = await huggingFaceClient.generateComponentRefinement(componentCode, prompt, options);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const ollamaClient = provider.client;
|
|
136
|
+
result = await ollamaClient.generateComponent(componentCode, "mycontext-react");
|
|
137
|
+
}
|
|
138
|
+
// Extract code and explanation
|
|
139
|
+
const { code, explanation } = this.parseAIResponse(result);
|
|
140
|
+
return {
|
|
141
|
+
code,
|
|
142
|
+
provider: provider.name,
|
|
143
|
+
explanation,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.log(`[HybridAIClient] Provider ${provider.name} failed: ${error.message}`);
|
|
148
|
+
// Try next provider
|
|
149
|
+
const nextProvider = this.providers.find((p) => p.priority > provider.priority);
|
|
150
|
+
if (nextProvider) {
|
|
151
|
+
console.log(`[HybridAIClient] Trying next provider: ${nextProvider.name}`);
|
|
152
|
+
return this.generateComponentRefinement(componentCode, prompt, options);
|
|
153
|
+
}
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Generate new component using the best available provider
|
|
159
|
+
*/
|
|
160
|
+
async generateComponent(prompt, options = {}) {
|
|
161
|
+
const provider = await this.getBestProvider();
|
|
162
|
+
if (!provider) {
|
|
163
|
+
throw new Error("No AI providers available. Please check Ollama or configure Hugging Face API key.");
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
console.log(`[HybridAIClient] Using provider: ${provider.name}`);
|
|
167
|
+
let result;
|
|
168
|
+
if (provider.name === "huggingface") {
|
|
169
|
+
const huggingFaceClient = provider.client;
|
|
170
|
+
result = await huggingFaceClient.generateComponent(prompt, options);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
const ollamaClient = provider.client;
|
|
174
|
+
result = await ollamaClient.generateComponent(prompt, "mycontext-react");
|
|
175
|
+
}
|
|
176
|
+
// Extract code and explanation
|
|
177
|
+
const { code, explanation } = this.parseAIResponse(result);
|
|
178
|
+
return {
|
|
179
|
+
code,
|
|
180
|
+
provider: provider.name,
|
|
181
|
+
explanation,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
console.log(`[HybridAIClient] Provider ${provider.name} failed: ${error.message}`);
|
|
186
|
+
// Try next provider
|
|
187
|
+
const nextProvider = this.providers.find((p) => p.priority > provider.priority);
|
|
188
|
+
if (nextProvider) {
|
|
189
|
+
console.log(`[HybridAIClient] Trying next provider: ${nextProvider.name}`);
|
|
190
|
+
return this.generateComponent(prompt, options);
|
|
191
|
+
}
|
|
192
|
+
throw error;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Parse AI response to separate code from explanation
|
|
197
|
+
*/
|
|
198
|
+
parseAIResponse(response) {
|
|
199
|
+
// Look for code blocks first
|
|
200
|
+
const codeBlockMatch = response.match(/```(?:tsx|jsx|ts|js)?\n([\s\S]*?)```/);
|
|
201
|
+
if (codeBlockMatch) {
|
|
202
|
+
const code = codeBlockMatch[1].trim();
|
|
203
|
+
const explanation = response.replace(/```[\s\S]*?```/, "").trim();
|
|
204
|
+
return {
|
|
205
|
+
code,
|
|
206
|
+
explanation: explanation || undefined,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// Look for JSX/TSX content
|
|
210
|
+
const jsxMatch = response.match(/(?:export\s+)?(?:function|const)\s+\w+.*?{[\s\S]*?}/);
|
|
211
|
+
if (jsxMatch) {
|
|
212
|
+
const code = jsxMatch[0];
|
|
213
|
+
const explanation = response.replace(jsxMatch[0], "").trim();
|
|
214
|
+
return {
|
|
215
|
+
code,
|
|
216
|
+
explanation: explanation || undefined,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
// If no clear separation, return the whole response as code
|
|
220
|
+
return { code: response };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get provider status
|
|
224
|
+
*/
|
|
225
|
+
async getProviderStatus() {
|
|
226
|
+
const status = [];
|
|
227
|
+
for (const provider of this.providers) {
|
|
228
|
+
try {
|
|
229
|
+
const available = await provider.isAvailable();
|
|
230
|
+
status.push({
|
|
231
|
+
name: provider.name,
|
|
232
|
+
available,
|
|
233
|
+
priority: provider.priority,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
status.push({
|
|
238
|
+
name: provider.name,
|
|
239
|
+
available: false,
|
|
240
|
+
priority: provider.priority,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return status;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Set Hugging Face API key
|
|
248
|
+
*/
|
|
249
|
+
setHuggingFaceApiKey(apiKey) {
|
|
250
|
+
const huggingFaceProvider = this.providers.find((p) => p.name === "huggingface");
|
|
251
|
+
if (huggingFaceProvider) {
|
|
252
|
+
huggingFaceProvider.client.setApiKey(apiKey);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.HybridAIClient = HybridAIClient;
|
|
257
|
+
//# sourceMappingURL=hybridAIClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybridAIClient.js","sourceRoot":"","sources":["../../src/utils/hybridAIClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,23 +15,16 @@ export declare class OllamaClient {
|
|
|
15
15
|
private isAvailable;
|
|
16
16
|
constructor(baseUrl?: string);
|
|
17
17
|
checkConnection(): Promise<boolean>;
|
|
18
|
+
healthCheck(): Promise<{
|
|
19
|
+
status: string;
|
|
20
|
+
details?: string;
|
|
21
|
+
}>;
|
|
18
22
|
listModels(): Promise<OllamaModel[]>;
|
|
19
23
|
generateComponent(prompt: string, modelName?: string): Promise<string>;
|
|
20
24
|
createModel(modelName: string, modelfilePath: string): Promise<void>;
|
|
21
25
|
deleteModel(modelName: string): Promise<void>;
|
|
22
|
-
pullModel(modelName: string): Promise<void>;
|
|
23
|
-
getInstallationPath(): string;
|
|
24
|
-
isInstalled(): boolean;
|
|
25
|
-
getVersion(): Promise<string>;
|
|
26
|
-
getSystemInfo(): Promise<any>;
|
|
27
26
|
testConnection(): Promise<boolean>;
|
|
28
27
|
hasModel(modelName: string): Promise<boolean>;
|
|
29
|
-
|
|
30
|
-
getStats(): Promise<any>;
|
|
31
|
-
getStatus(): {
|
|
32
|
-
isAvailable: boolean;
|
|
33
|
-
baseUrl: string;
|
|
34
|
-
};
|
|
28
|
+
pullModel(modelName: string): Promise<void>;
|
|
35
29
|
}
|
|
36
|
-
export default OllamaClient;
|
|
37
30
|
//# sourceMappingURL=ollamaClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollamaClient.d.ts","sourceRoot":"","sources":["../../src/utils/ollamaClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ollamaClient.d.ts","sourceRoot":"","sources":["../../src/utils/ollamaClient.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAkB;gBAEzB,OAAO,GAAE,MAAiC;IAIhD,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAcnC,WAAW,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB5D,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAyBpC,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAA0B,GACpC,OAAO,CAAC,MAAM,CAAC;IAqDZ,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBpE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBlD"}
|
|
@@ -37,10 +37,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.OllamaClient = void 0;
|
|
40
|
-
|
|
40
|
+
// Using node-fetch for Node.js compatibility
|
|
41
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
41
42
|
const fs = __importStar(require("fs-extra"));
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
const os = __importStar(require("os"));
|
|
44
43
|
class OllamaClient {
|
|
45
44
|
constructor(baseUrl = "http://localhost:11434") {
|
|
46
45
|
this.isAvailable = false;
|
|
@@ -48,21 +47,62 @@ class OllamaClient {
|
|
|
48
47
|
}
|
|
49
48
|
async checkConnection() {
|
|
50
49
|
try {
|
|
51
|
-
const response = await
|
|
52
|
-
|
|
50
|
+
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/api/tags`, {
|
|
51
|
+
method: "GET",
|
|
52
|
+
headers: {
|
|
53
|
+
"Content-Type": "application/json",
|
|
54
|
+
},
|
|
53
55
|
});
|
|
54
|
-
|
|
55
|
-
return this.isAvailable;
|
|
56
|
+
return response.ok;
|
|
56
57
|
}
|
|
57
58
|
catch (error) {
|
|
58
|
-
this.isAvailable = false;
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
+
async healthCheck() {
|
|
63
|
+
try {
|
|
64
|
+
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/api/tags`, {
|
|
65
|
+
method: "GET",
|
|
66
|
+
headers: {
|
|
67
|
+
"Content-Type": "application/json",
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
if (response.ok) {
|
|
71
|
+
return { status: "healthy" };
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return {
|
|
75
|
+
status: "unhealthy",
|
|
76
|
+
details: `HTTP ${response.status}: ${response.statusText}`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return {
|
|
82
|
+
status: "error",
|
|
83
|
+
details: error.message,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
62
87
|
async listModels() {
|
|
63
88
|
try {
|
|
64
|
-
const
|
|
65
|
-
|
|
89
|
+
const controller = new AbortController();
|
|
90
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
|
|
91
|
+
try {
|
|
92
|
+
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/api/tags`, {
|
|
93
|
+
signal: controller.signal,
|
|
94
|
+
});
|
|
95
|
+
clearTimeout(timeoutId);
|
|
96
|
+
const data = (await response.json());
|
|
97
|
+
return data.models || [];
|
|
98
|
+
}
|
|
99
|
+
catch (fetchError) {
|
|
100
|
+
clearTimeout(timeoutId);
|
|
101
|
+
if (fetchError.name === "AbortError") {
|
|
102
|
+
throw new Error("Model listing timed out after 10 seconds");
|
|
103
|
+
}
|
|
104
|
+
throw fetchError;
|
|
105
|
+
}
|
|
66
106
|
}
|
|
67
107
|
catch (error) {
|
|
68
108
|
throw new Error(`Failed to list models: ${error}`);
|
|
@@ -70,17 +110,45 @@ class OllamaClient {
|
|
|
70
110
|
}
|
|
71
111
|
async generateComponent(prompt, modelName = "mycontext-react") {
|
|
72
112
|
try {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
113
|
+
const controller = new AbortController();
|
|
114
|
+
const timeoutId = setTimeout(() => controller.abort(), 600000); // 10 minute timeout
|
|
115
|
+
try {
|
|
116
|
+
// Use the correct Ollama API endpoint and format
|
|
117
|
+
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/api/generate`, {
|
|
118
|
+
method: "POST",
|
|
119
|
+
headers: {
|
|
120
|
+
"Content-Type": "application/json",
|
|
121
|
+
},
|
|
122
|
+
body: JSON.stringify({
|
|
123
|
+
model: modelName,
|
|
124
|
+
prompt: prompt,
|
|
125
|
+
stream: false,
|
|
126
|
+
options: {
|
|
127
|
+
temperature: 0.1,
|
|
128
|
+
top_p: 0.9,
|
|
129
|
+
repeat_penalty: 1.1,
|
|
130
|
+
num_predict: 2048, // Limit response length
|
|
131
|
+
},
|
|
132
|
+
}),
|
|
133
|
+
signal: controller.signal,
|
|
134
|
+
});
|
|
135
|
+
clearTimeout(timeoutId);
|
|
136
|
+
if (!response.ok) {
|
|
137
|
+
throw new Error(`Ollama API error: ${response.status} ${response.statusText}`);
|
|
138
|
+
}
|
|
139
|
+
const data = (await response.json());
|
|
140
|
+
if (!data.response) {
|
|
141
|
+
throw new Error("No response received from Ollama");
|
|
142
|
+
}
|
|
143
|
+
return data.response;
|
|
144
|
+
}
|
|
145
|
+
catch (fetchError) {
|
|
146
|
+
clearTimeout(timeoutId);
|
|
147
|
+
if (fetchError.name === "AbortError") {
|
|
148
|
+
throw new Error("Component generation timed out after 10 minutes");
|
|
149
|
+
}
|
|
150
|
+
throw fetchError;
|
|
151
|
+
}
|
|
84
152
|
}
|
|
85
153
|
catch (error) {
|
|
86
154
|
throw new Error(`Failed to generate component: ${error}`);
|
|
@@ -89,9 +157,15 @@ class OllamaClient {
|
|
|
89
157
|
async createModel(modelName, modelfilePath) {
|
|
90
158
|
try {
|
|
91
159
|
const modelfileContent = await fs.readFile(modelfilePath, "utf-8");
|
|
92
|
-
const response = await
|
|
93
|
-
|
|
94
|
-
|
|
160
|
+
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/api/create`, {
|
|
161
|
+
method: "POST",
|
|
162
|
+
headers: {
|
|
163
|
+
"Content-Type": "application/json",
|
|
164
|
+
},
|
|
165
|
+
body: JSON.stringify({
|
|
166
|
+
name: modelName,
|
|
167
|
+
modelfile: modelfileContent,
|
|
168
|
+
}),
|
|
95
169
|
});
|
|
96
170
|
if (response.status !== 200) {
|
|
97
171
|
throw new Error("Failed to create model");
|
|
@@ -103,111 +177,48 @@ class OllamaClient {
|
|
|
103
177
|
}
|
|
104
178
|
async deleteModel(modelName) {
|
|
105
179
|
try {
|
|
106
|
-
await
|
|
107
|
-
|
|
180
|
+
await (0, node_fetch_1.default)(`${this.baseUrl}/api/delete`, {
|
|
181
|
+
method: "DELETE",
|
|
182
|
+
headers: {
|
|
183
|
+
"Content-Type": "application/json",
|
|
184
|
+
},
|
|
185
|
+
body: JSON.stringify({ name: modelName }),
|
|
108
186
|
});
|
|
109
187
|
}
|
|
110
188
|
catch (error) {
|
|
111
189
|
throw new Error(`Failed to delete model: ${error}`);
|
|
112
190
|
}
|
|
113
191
|
}
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
const response = await axios_1.default.post(`${this.baseUrl}/api/pull`, {
|
|
117
|
-
name: modelName,
|
|
118
|
-
});
|
|
119
|
-
if (response.status !== 200) {
|
|
120
|
-
throw new Error("Failed to pull model");
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
throw new Error(`Failed to pull model: ${error}`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
getInstallationPath() {
|
|
128
|
-
const platform = os.platform();
|
|
129
|
-
const homeDir = os.homedir();
|
|
130
|
-
switch (platform) {
|
|
131
|
-
case "win32":
|
|
132
|
-
return path.join(homeDir, "AppData", "Local", "Programs", "Ollama", "ollama.exe");
|
|
133
|
-
case "darwin":
|
|
134
|
-
return "/usr/local/bin/ollama";
|
|
135
|
-
case "linux":
|
|
136
|
-
return "/usr/local/bin/ollama";
|
|
137
|
-
default:
|
|
138
|
-
return "/usr/local/bin/ollama";
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
isInstalled() {
|
|
142
|
-
try {
|
|
143
|
-
const installPath = this.getInstallationPath();
|
|
144
|
-
return fs.existsSync(installPath);
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
async getVersion() {
|
|
151
|
-
try {
|
|
152
|
-
const response = await axios_1.default.get(`${this.baseUrl}/api/version`);
|
|
153
|
-
return response.data.version;
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
throw new Error(`Failed to get version: ${error}`);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
async getSystemInfo() {
|
|
160
|
-
try {
|
|
161
|
-
const response = await axios_1.default.get(`${this.baseUrl}/api/ps`);
|
|
162
|
-
return response.data;
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
throw new Error(`Failed to get system info: ${error}`);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// Add missing methods for compatibility
|
|
192
|
+
// Additional methods needed by other parts of the codebase
|
|
169
193
|
async testConnection() {
|
|
170
194
|
return this.checkConnection();
|
|
171
195
|
}
|
|
172
196
|
async hasModel(modelName) {
|
|
173
197
|
try {
|
|
174
198
|
const models = await this.listModels();
|
|
175
|
-
return models.some(model => model.name === modelName);
|
|
199
|
+
return models.some((model) => model.name === modelName);
|
|
176
200
|
}
|
|
177
201
|
catch (error) {
|
|
178
202
|
return false;
|
|
179
203
|
}
|
|
180
204
|
}
|
|
181
|
-
async
|
|
182
|
-
// Implementation for backup functionality
|
|
183
|
-
console.log("Backup functionality not implemented yet");
|
|
184
|
-
}
|
|
185
|
-
async getStats() {
|
|
205
|
+
async pullModel(modelName) {
|
|
186
206
|
try {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
costSavings: 0
|
|
198
|
-
};
|
|
207
|
+
const response = await (0, node_fetch_1.default)(`${this.baseUrl}/api/pull`, {
|
|
208
|
+
method: "POST",
|
|
209
|
+
headers: {
|
|
210
|
+
"Content-Type": "application/json",
|
|
211
|
+
},
|
|
212
|
+
body: JSON.stringify({ name: modelName }),
|
|
213
|
+
});
|
|
214
|
+
if (response.status !== 200) {
|
|
215
|
+
throw new Error("Failed to pull model");
|
|
216
|
+
}
|
|
199
217
|
}
|
|
200
218
|
catch (error) {
|
|
201
|
-
throw new Error(`Failed to
|
|
219
|
+
throw new Error(`Failed to pull model: ${error}`);
|
|
202
220
|
}
|
|
203
221
|
}
|
|
204
|
-
getStatus() {
|
|
205
|
-
return {
|
|
206
|
-
isAvailable: this.isAvailable,
|
|
207
|
-
baseUrl: this.baseUrl,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
222
|
}
|
|
211
223
|
exports.OllamaClient = OllamaClient;
|
|
212
|
-
exports.default = OllamaClient;
|
|
213
224
|
//# sourceMappingURL=ollamaClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollamaClient.js","sourceRoot":"","sources":["../../src/utils/ollamaClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ollamaClient.js","sourceRoot":"","sources":["../../src/utils/ollamaClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mycontext-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "MyContext CLI - AI-powered component generation with shadcn/ui and Next.js 15 integration",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"commander": "^11.1.0",
|
|
43
43
|
"fs-extra": "^11.1.1",
|
|
44
44
|
"inquirer": "^9.2.12",
|
|
45
|
+
"node-fetch": "^2.7.0",
|
|
45
46
|
"ora": "^7.0.1",
|
|
46
47
|
"prompts": "^2.4.2",
|
|
47
48
|
"uuid": "^9.0.1"
|
|
@@ -51,6 +52,7 @@
|
|
|
51
52
|
"@types/inquirer": "^9.0.7",
|
|
52
53
|
"@types/jest": "^29.0.0",
|
|
53
54
|
"@types/node": "^20.0.0",
|
|
55
|
+
"@types/node-fetch": "^2.6.13",
|
|
54
56
|
"@types/uuid": "^9.0.7",
|
|
55
57
|
"jest": "^29.0.0",
|
|
56
58
|
"ts-jest": "^29.4.0",
|