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.
Files changed (54) hide show
  1. package/dist/agents/implementations/CodeGenSubAgent.d.ts +0 -7
  2. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  3. package/dist/agents/implementations/CodeGenSubAgent.js +0 -7
  4. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  5. package/dist/agents/implementations/DocsSubAgent.d.ts +8 -6
  6. package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
  7. package/dist/agents/implementations/DocsSubAgent.js +74 -25
  8. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  9. package/dist/agents/implementations/EnhancementAgent.d.ts +2 -0
  10. package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
  11. package/dist/agents/implementations/EnhancementAgent.js +13 -4
  12. package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
  13. package/dist/agents/implementations/QASubAgent.d.ts +9 -0
  14. package/dist/agents/implementations/QASubAgent.d.ts.map +1 -1
  15. package/dist/agents/implementations/QASubAgent.js +103 -22
  16. package/dist/agents/implementations/QASubAgent.js.map +1 -1
  17. package/dist/cli.js +11 -3
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/auth.d.ts.map +1 -1
  20. package/dist/commands/auth.js +3 -2
  21. package/dist/commands/auth.js.map +1 -1
  22. package/dist/commands/enhance.d.ts +40 -0
  23. package/dist/commands/enhance.d.ts.map +1 -1
  24. package/dist/commands/enhance.js +192 -1
  25. package/dist/commands/enhance.js.map +1 -1
  26. package/dist/commands/generate-components.d.ts +1 -0
  27. package/dist/commands/generate-components.d.ts.map +1 -1
  28. package/dist/commands/generate-components.js +61 -22
  29. package/dist/commands/generate-components.js.map +1 -1
  30. package/dist/commands/list.js +1 -1
  31. package/dist/commands/list.js.map +1 -1
  32. package/dist/commands/refine.d.ts +94 -0
  33. package/dist/commands/refine.d.ts.map +1 -0
  34. package/dist/commands/refine.js +492 -0
  35. package/dist/commands/refine.js.map +1 -0
  36. package/dist/commands/setup.d.ts.map +1 -1
  37. package/dist/commands/setup.js +45 -16
  38. package/dist/commands/setup.js.map +1 -1
  39. package/dist/config/ai-providers.json +56 -0
  40. package/dist/config/dependencies.json +6 -3
  41. package/dist/utils/huggingFaceClient.d.ts +44 -0
  42. package/dist/utils/huggingFaceClient.d.ts.map +1 -0
  43. package/dist/utils/huggingFaceClient.js +169 -0
  44. package/dist/utils/huggingFaceClient.js.map +1 -0
  45. package/dist/utils/hybridAIClient.d.ts +74 -0
  46. package/dist/utils/hybridAIClient.d.ts.map +1 -0
  47. package/dist/utils/hybridAIClient.js +257 -0
  48. package/dist/utils/hybridAIClient.js.map +1 -0
  49. package/dist/utils/ollamaClient.d.ts +5 -12
  50. package/dist/utils/ollamaClient.d.ts.map +1 -1
  51. package/dist/utils/ollamaClient.js +118 -107
  52. package/dist/utils/ollamaClient.js.map +1 -1
  53. package/package.json +3 -1
  54. 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
- backup(): Promise<void>;
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":"AAOA,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;IAanC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IASpC,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAA0B,GACpC,OAAO,CAAC,MAAM,CAAC;IAmBZ,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjD,mBAAmB,IAAI,MAAM;IAuB7B,WAAW,IAAI,OAAO;IAShB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAS7B,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAU7B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAmB9B,SAAS,IAAI;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAMvD;AAED,eAAe,YAAY,CAAC"}
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
- const axios_1 = __importDefault(require("axios"));
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 axios_1.default.get(`${this.baseUrl}/api/tags`, {
52
- timeout: 5000,
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
- this.isAvailable = response.status === 200;
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 response = await axios_1.default.get(`${this.baseUrl}/api/tags`);
65
- return response.data.models || [];
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 response = await axios_1.default.post(`${this.baseUrl}/api/generate`, {
74
- model: modelName,
75
- prompt: prompt,
76
- stream: false,
77
- options: {
78
- temperature: 0.1,
79
- top_p: 0.9,
80
- repeat_penalty: 1.1,
81
- },
82
- });
83
- return response.data.response;
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 axios_1.default.post(`${this.baseUrl}/api/create`, {
93
- name: modelName,
94
- modelfile: modelfileContent,
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 axios_1.default.delete(`${this.baseUrl}/api/delete`, {
107
- data: { name: modelName },
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
- async pullModel(modelName) {
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 backup() {
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
- // Return mock stats for now
188
- return {
189
- totalGenerations: 0,
190
- successfulGenerations: 0,
191
- avgGenerationTime: 0,
192
- avgQualityScore: 0,
193
- fastestGeneration: 0,
194
- slowestGeneration: 0,
195
- mostCommonType: 'N/A',
196
- apiCallsSaved: 0,
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 get stats: ${error}`);
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":"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"}
1
+ {"version":3,"file":"ollamaClient.js","sourceRoot":"","sources":["../../src/utils/ollamaClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,4DAA+B;AAC/B,6CAA+B;AAgB/B,MAAa,YAAY;IAIvB,YAAY,UAAkB,wBAAwB;QAF9C,gBAAW,GAAY,KAAK,CAAC;QAGnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;gBACvD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;gBACvD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;iBAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;YAEnF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;oBACvD,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;gBACnE,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,UAAe,EAAE,CAAC;gBACzB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,UAAU,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,YAAoB,iBAAiB;QAErC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB;YAEpF,IAAI,CAAC;gBACH,iDAAiD;gBACjD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,eAAe,EAAE;oBAC3D,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,SAAS;wBAChB,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE;4BACP,WAAW,EAAE,GAAG;4BAChB,KAAK,EAAE,GAAG;4BACV,cAAc,EAAE,GAAG;4BACnB,WAAW,EAAE,IAAI,EAAE,wBAAwB;yBAC5C;qBACF,CAAC;oBACF,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,YAAY,CAAC,SAAS,CAAC,CAAC;gBAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC9D,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;gBAE7D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,CAAC;gBAED,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC;YAAC,OAAO,UAAe,EAAE,CAAC;gBACzB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,UAAU,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,aAAqB;QACxD,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEnE,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,aAAa,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,gBAAgB;iBAC5B,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,IAAI,CAAC;YACH,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,aAAa,EAAE;gBACxC,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;gBACvD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC1C,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AApMD,oCAoMC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mycontext-cli",
3
- "version": "0.2.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",