mycontext-cli 2.0.8 → 2.0.9

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 (198) hide show
  1. package/dist/agents/communication/AgentCommunicationManager.d.ts +3 -3
  2. package/dist/agents/communication/AgentCommunicationManager.d.ts.map +1 -1
  3. package/dist/agents/communication/AgentCommunicationManager.js +7 -6
  4. package/dist/agents/communication/AgentCommunicationManager.js.map +1 -1
  5. package/dist/agents/evolution/CodeEvolutionEngine.d.ts.map +1 -1
  6. package/dist/agents/evolution/CodeEvolutionEngine.js +10 -7
  7. package/dist/agents/evolution/CodeEvolutionEngine.js.map +1 -1
  8. package/dist/agents/implementations/ArchitectAgent.js +2 -2
  9. package/dist/agents/implementations/ArchitectAgent.js.map +1 -1
  10. package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -1
  11. package/dist/agents/implementations/BackendDevAgent.js +4 -1
  12. package/dist/agents/implementations/BackendDevAgent.js.map +1 -1
  13. package/dist/agents/implementations/BuildStrategyAgent.d.ts.map +1 -1
  14. package/dist/agents/implementations/BuildStrategyAgent.js +4 -3
  15. package/dist/agents/implementations/BuildStrategyAgent.js.map +1 -1
  16. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  17. package/dist/agents/implementations/CodeGenSubAgent.js +6 -5
  18. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  19. package/dist/agents/implementations/DocsSubAgent.js +2 -2
  20. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  21. package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
  22. package/dist/agents/implementations/EnhancementAgent.js +6 -4
  23. package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
  24. package/dist/agents/implementations/InteractiveAgent.d.ts.map +1 -1
  25. package/dist/agents/implementations/InteractiveAgent.js +8 -1
  26. package/dist/agents/implementations/InteractiveAgent.js.map +1 -1
  27. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
  28. package/dist/agents/implementations/PromptConstructorAgent.js +79 -31
  29. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
  30. package/dist/agents/implementations/QASubAgent.js +2 -2
  31. package/dist/agents/implementations/QASubAgent.js.map +1 -1
  32. package/dist/agents/implementations/SecurityAgent.js +2 -2
  33. package/dist/agents/implementations/SecurityAgent.js.map +1 -1
  34. package/dist/agents/implementations/WorkflowAgent.d.ts +0 -1
  35. package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
  36. package/dist/agents/implementations/WorkflowAgent.js +6 -10
  37. package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
  38. package/dist/agents/intelligence/ProjectIntelligence.js +5 -5
  39. package/dist/agents/intelligence/ProjectIntelligence.js.map +1 -1
  40. package/dist/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -1
  41. package/dist/agents/orchestrator/SubAgentOrchestrator.js +4 -4
  42. package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -1
  43. package/dist/cli.js +8 -40
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/analyze.d.ts.map +1 -1
  46. package/dist/commands/analyze.js +9 -9
  47. package/dist/commands/analyze.js.map +1 -1
  48. package/dist/commands/enhance.d.ts.map +1 -1
  49. package/dist/commands/enhance.js +23 -78
  50. package/dist/commands/enhance.js.map +1 -1
  51. package/dist/commands/generate-components.d.ts.map +1 -1
  52. package/dist/commands/generate-components.js +12 -7
  53. package/dist/commands/generate-components.js.map +1 -1
  54. package/dist/commands/generate-todos.js +1 -1
  55. package/dist/commands/generate-todos.js.map +1 -1
  56. package/dist/commands/generate.d.ts.map +1 -1
  57. package/dist/commands/generate.js +57 -41
  58. package/dist/commands/generate.js.map +1 -1
  59. package/dist/commands/playbooks.d.ts.map +1 -1
  60. package/dist/commands/playbooks.js +14 -8
  61. package/dist/commands/playbooks.js.map +1 -1
  62. package/dist/commands/preview.js +1 -1
  63. package/dist/commands/preview.js.map +1 -1
  64. package/dist/commands/refine.d.ts.map +1 -1
  65. package/dist/commands/refine.js +5 -3
  66. package/dist/commands/refine.js.map +1 -1
  67. package/dist/commands/sanitize.d.ts.map +1 -1
  68. package/dist/commands/sanitize.js +11 -4
  69. package/dist/commands/sanitize.js.map +1 -1
  70. package/dist/commands/setup-database.d.ts.map +1 -1
  71. package/dist/commands/setup-database.js +9 -7
  72. package/dist/commands/setup-database.js.map +1 -1
  73. package/dist/commands/setup-instantdb.d.ts.map +1 -1
  74. package/dist/commands/setup-instantdb.js +9 -7
  75. package/dist/commands/setup-instantdb.js.map +1 -1
  76. package/dist/config/build-strategies.json +2 -2
  77. package/dist/{agents/personalities/definitions.d.ts → constants/subAgentPersonalities.d.ts} +2 -2
  78. package/dist/constants/subAgentPersonalities.d.ts.map +1 -0
  79. package/dist/{agents/personalities/definitions.js → constants/subAgentPersonalities.js} +2 -2
  80. package/dist/constants/subAgentPersonalities.js.map +1 -0
  81. package/dist/package.json +1 -1
  82. package/dist/types/analysis.d.ts +67 -0
  83. package/dist/types/analysis.d.ts.map +1 -0
  84. package/dist/types/analysis.js +7 -0
  85. package/dist/types/analysis.js.map +1 -0
  86. package/dist/types/components.d.ts +90 -0
  87. package/dist/types/components.d.ts.map +1 -0
  88. package/dist/types/components.js +7 -0
  89. package/dist/types/components.js.map +1 -0
  90. package/dist/types/enhancement.d.ts +127 -0
  91. package/dist/types/enhancement.d.ts.map +1 -0
  92. package/dist/types/enhancement.js +7 -0
  93. package/dist/types/enhancement.js.map +1 -0
  94. package/dist/types/index.d.ts +4 -0
  95. package/dist/types/index.d.ts.map +1 -1
  96. package/dist/types/index.js +25 -0
  97. package/dist/types/index.js.map +1 -1
  98. package/dist/types/progress.d.ts +88 -0
  99. package/dist/types/progress.d.ts.map +1 -0
  100. package/dist/types/progress.js +7 -0
  101. package/dist/types/progress.js.map +1 -0
  102. package/dist/utils/ProjectHealthMonitor.d.ts.map +1 -1
  103. package/dist/utils/ProjectHealthMonitor.js +47 -36
  104. package/dist/utils/ProjectHealthMonitor.js.map +1 -1
  105. package/dist/utils/agentDefinitions.d.ts +2 -2
  106. package/dist/utils/agentDefinitions.d.ts.map +1 -1
  107. package/dist/utils/agentDefinitions.js +40 -33
  108. package/dist/utils/agentDefinitions.js.map +1 -1
  109. package/dist/utils/buildStrategyManager.d.ts.map +1 -1
  110. package/dist/utils/buildStrategyManager.js +1 -1
  111. package/dist/utils/buildStrategyManager.js.map +1 -1
  112. package/dist/utils/claudeAgentClient.d.ts +0 -1
  113. package/dist/utils/claudeAgentClient.d.ts.map +1 -1
  114. package/dist/utils/claudeAgentClient.js +46 -39
  115. package/dist/utils/claudeAgentClient.js.map +1 -1
  116. package/dist/utils/hybridAIClient.d.ts +1 -9
  117. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  118. package/dist/utils/hybridAIClient.js +81 -78
  119. package/dist/utils/hybridAIClient.js.map +1 -1
  120. package/dist/utils/mcpAgentIntegration.d.ts.map +1 -1
  121. package/dist/utils/mcpAgentIntegration.js +1 -1
  122. package/dist/utils/mcpAgentIntegration.js.map +1 -1
  123. package/dist/utils/mcpTools.d.ts +5 -5
  124. package/dist/utils/mcpTools.d.ts.map +1 -1
  125. package/dist/utils/mcpTools.js +319 -241
  126. package/dist/utils/mcpTools.js.map +1 -1
  127. package/dist/utils/progressTracker.d.ts +3 -79
  128. package/dist/utils/progressTracker.d.ts.map +1 -1
  129. package/dist/utils/progressTracker.js +92 -68
  130. package/dist/utils/progressTracker.js.map +1 -1
  131. package/dist/utils/typeTemplateGenerator.d.ts.map +1 -1
  132. package/dist/utils/typeTemplateGenerator.js +125 -79
  133. package/dist/utils/typeTemplateGenerator.js.map +1 -1
  134. package/package.json +1 -1
  135. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts +0 -110
  136. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +0 -1
  137. package/dist/agents/implementations/ClaudeAgentWorkflow.js +0 -661
  138. package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +0 -1
  139. package/dist/agents/personalities/definitions.d.ts.map +0 -1
  140. package/dist/agents/personalities/definitions.js.map +0 -1
  141. package/dist/commands/model.d.ts +0 -22
  142. package/dist/commands/model.d.ts.map +0 -1
  143. package/dist/commands/model.js +0 -130
  144. package/dist/commands/model.js.map +0 -1
  145. package/dist/commands/normalize.d.ts +0 -5
  146. package/dist/commands/normalize.d.ts.map +0 -1
  147. package/dist/commands/normalize.js +0 -128
  148. package/dist/commands/normalize.js.map +0 -1
  149. package/dist/commands/pricing.d.ts +0 -15
  150. package/dist/commands/pricing.d.ts.map +0 -1
  151. package/dist/commands/pricing.js +0 -94
  152. package/dist/commands/pricing.js.map +0 -1
  153. package/dist/config/ai-providers.json +0 -102
  154. package/dist/config/pricing.json +0 -55
  155. package/dist/utils/aiClientFactory.d.ts +0 -93
  156. package/dist/utils/aiClientFactory.d.ts.map +0 -1
  157. package/dist/utils/aiClientFactory.js +0 -290
  158. package/dist/utils/aiClientFactory.js.map +0 -1
  159. package/dist/utils/aiClientRouter.d.ts +0 -121
  160. package/dist/utils/aiClientRouter.d.ts.map +0 -1
  161. package/dist/utils/aiClientRouter.js +0 -401
  162. package/dist/utils/aiClientRouter.js.map +0 -1
  163. package/dist/utils/apiKeyManager.d.ts +0 -137
  164. package/dist/utils/apiKeyManager.d.ts.map +0 -1
  165. package/dist/utils/apiKeyManager.js +0 -479
  166. package/dist/utils/apiKeyManager.js.map +0 -1
  167. package/dist/utils/claudeClient.d.ts +0 -28
  168. package/dist/utils/claudeClient.d.ts.map +0 -1
  169. package/dist/utils/claudeClient.js +0 -233
  170. package/dist/utils/claudeClient.js.map +0 -1
  171. package/dist/utils/geminiClient.d.ts +0 -61
  172. package/dist/utils/geminiClient.d.ts.map +0 -1
  173. package/dist/utils/geminiClient.js +0 -173
  174. package/dist/utils/geminiClient.js.map +0 -1
  175. package/dist/utils/githubModelsClient.d.ts +0 -27
  176. package/dist/utils/githubModelsClient.d.ts.map +0 -1
  177. package/dist/utils/githubModelsClient.js +0 -332
  178. package/dist/utils/githubModelsClient.js.map +0 -1
  179. package/dist/utils/huggingFaceClient.d.ts +0 -44
  180. package/dist/utils/huggingFaceClient.d.ts.map +0 -1
  181. package/dist/utils/huggingFaceClient.js +0 -169
  182. package/dist/utils/huggingFaceClient.js.map +0 -1
  183. package/dist/utils/openaiClient.d.ts +0 -24
  184. package/dist/utils/openaiClient.d.ts.map +0 -1
  185. package/dist/utils/openaiClient.js +0 -204
  186. package/dist/utils/openaiClient.js.map +0 -1
  187. package/dist/utils/qwenClient.d.ts +0 -22
  188. package/dist/utils/qwenClient.d.ts.map +0 -1
  189. package/dist/utils/qwenClient.js +0 -185
  190. package/dist/utils/qwenClient.js.map +0 -1
  191. package/dist/utils/streamingHandler.d.ts +0 -98
  192. package/dist/utils/streamingHandler.d.ts.map +0 -1
  193. package/dist/utils/streamingHandler.js +0 -259
  194. package/dist/utils/streamingHandler.js.map +0 -1
  195. package/dist/utils/xaiClient.d.ts +0 -19
  196. package/dist/utils/xaiClient.d.ts.map +0 -1
  197. package/dist/utils/xaiClient.js +0 -135
  198. package/dist/utils/xaiClient.js.map +0 -1
@@ -1,332 +0,0 @@
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.GitHubModelsClient = void 0;
40
- const node_fetch_1 = __importDefault(require("node-fetch"));
41
- const fs = __importStar(require("fs"));
42
- const path = __importStar(require("path"));
43
- class GitHubModelsClient {
44
- constructor() {
45
- this.baseUrl =
46
- process.env.GITHUB_MODELS_BASE_URL ||
47
- "https://models.github.ai/inference";
48
- this.token =
49
- process.env.MYCONTEXT_GITHUB_TOKEN || process.env.GITHUB_TOKEN || null;
50
- if (!this.token) {
51
- const loaded = this.loadTokenFromEnvFiles();
52
- if (loaded) {
53
- this.token = loaded;
54
- }
55
- }
56
- }
57
- hasApiKey() {
58
- return !!this.token;
59
- }
60
- /**
61
- * Load token from project-level env files without external deps
62
- * Priority: .mycontext/.env -> .env
63
- */
64
- loadTokenFromEnvFiles() {
65
- try {
66
- const cwd = process.cwd();
67
- const candidates = [
68
- path.join(cwd, ".mycontext", ".env"),
69
- path.join(cwd, ".env"),
70
- ];
71
- for (const file of candidates) {
72
- if (fs.existsSync(file)) {
73
- const raw = fs.readFileSync(file, "utf8");
74
- const lines = raw.split(/\r?\n/);
75
- for (const line of lines) {
76
- const trimmed = line.trim();
77
- if (!trimmed || trimmed.startsWith("#"))
78
- continue;
79
- const idx = trimmed.indexOf("=");
80
- if (idx === -1)
81
- continue;
82
- const key = trimmed.slice(0, idx).trim();
83
- const value = trimmed
84
- .slice(idx + 1)
85
- .trim()
86
- .replace(/^['"]|['"]$/g, "");
87
- if (!process.env[key]) {
88
- process.env[key] = value;
89
- }
90
- }
91
- const token = process.env.MYCONTEXT_GITHUB_TOKEN ||
92
- process.env.GITHUB_TOKEN ||
93
- null;
94
- if (token)
95
- return token;
96
- }
97
- }
98
- }
99
- catch {
100
- // ignore
101
- }
102
- return null;
103
- }
104
- headers() {
105
- const h = { "Content-Type": "application/json" };
106
- if (this.token)
107
- h.Authorization = `Bearer ${this.token}`;
108
- return h;
109
- }
110
- async checkConnection() {
111
- try {
112
- const controller = new AbortController();
113
- const timeout = setTimeout(() => controller.abort(), 15000);
114
- const res = await (0, node_fetch_1.default)(`${this.baseUrl}/chat/completions`, {
115
- method: "POST",
116
- headers: this.headers(),
117
- body: JSON.stringify({
118
- model: process.env.MYCONTEXT_MODEL || "grok-3",
119
- messages: [
120
- { role: "system", content: "ping" },
121
- { role: "user", content: "ping" },
122
- ],
123
- max_completion_tokens: 1,
124
- }),
125
- signal: controller.signal,
126
- });
127
- clearTimeout(timeout);
128
- // Consider any reachable response as available; details handled at call time
129
- return this.hasApiKey();
130
- }
131
- catch {
132
- // If we have a token, allow attempts even if the health probe fails
133
- return this.hasApiKey();
134
- }
135
- }
136
- async generateText(prompt, opts = {}) {
137
- const options = {
138
- model: opts.model || process.env.MYCONTEXT_MODEL || "grok-3",
139
- modelCandidates: opts.modelCandidates ||
140
- (process.env.MYCONTEXT_MODEL_CANDIDATES
141
- ? process.env.MYCONTEXT_MODEL_CANDIDATES.split(",")
142
- .map((s) => s.trim())
143
- .filter(Boolean)
144
- : undefined),
145
- temperature: opts.temperature ?? 0.2,
146
- maxTokens: opts.maxTokens ?? 1024,
147
- };
148
- const messages = [
149
- {
150
- role: "system",
151
- content: "You are a concise, expert product/dev assistant.",
152
- },
153
- { role: "user", content: prompt },
154
- ];
155
- // Get all available models from GitHub Models API
156
- let allModels = [];
157
- try {
158
- allModels = await this.listModels();
159
- console.log(`[GitHubModelsClient] Successfully fetched ${allModels.length} models from API`);
160
- }
161
- catch (error) {
162
- console.log(`[GitHubModelsClient] Could not fetch model list (${error}), using curated set`);
163
- }
164
- // Build model attempt list: primary, then candidates, then all available models
165
- const modelsToTry = Array.from(new Set([options.model, ...(options.modelCandidates || []), ...allModels]));
166
- const maxRetries = parseInt(process.env.MYCONTEXT_GITHUB_RETRIES || "1", // 1 retry to prioritize GitHub Models
167
- 10);
168
- console.log(`[GitHubModelsClient] Trying ${modelsToTry.length} models: ${modelsToTry.slice(0, 5).join(", ")}${modelsToTry.length > 5 ? "..." : ""}`);
169
- for (const modelName of modelsToTry) {
170
- let attempt = 0;
171
- while (attempt <= maxRetries) {
172
- const controller = new AbortController();
173
- const timeout = setTimeout(() => controller.abort(), 30000); // 30 second timeout for faster UX
174
- try {
175
- const res = await (0, node_fetch_1.default)(`${this.baseUrl}/chat/completions`, {
176
- method: "POST",
177
- headers: this.headers(),
178
- body: JSON.stringify({
179
- model: modelName,
180
- messages,
181
- max_completion_tokens: options.maxTokens,
182
- }),
183
- signal: controller.signal,
184
- });
185
- clearTimeout(timeout);
186
- if (!res.ok) {
187
- const txt = await res.text();
188
- // Handle rate limiting - fail fast for better UX
189
- if (res.status === 429) {
190
- const retryHeader = res.headers.get("retry-after");
191
- let waitSeconds = 5; // Default to 5s for faster UX
192
- if (retryHeader) {
193
- const numeric = parseInt(retryHeader, 10);
194
- if (Number.isFinite(numeric)) {
195
- waitSeconds = Math.min(numeric, 10); // Cap at 10s max
196
- }
197
- }
198
- console.log(`[GitHubModelsClient] Rate limited. Retry-After=${waitSeconds}s → waiting ${waitSeconds}s (attempt ${attempt + 1}/${maxRetries})`);
199
- attempt += 1;
200
- if (attempt <= maxRetries) {
201
- await new Promise((r) => setTimeout(r, waitSeconds * 1000));
202
- continue; // retry loop
203
- }
204
- else {
205
- // Max retries reached, try next model
206
- break;
207
- }
208
- }
209
- // Try next candidate for auth/not-found/validation errors
210
- if ((res.status === 401 ||
211
- res.status === 404 ||
212
- res.status === 422) &&
213
- modelsToTry.length > 1) {
214
- console.log(`[GitHubModelsClient] Model ${modelName} failed (HTTP ${res.status}). Trying next candidate...`);
215
- break; // break retry loop and move to next model
216
- }
217
- throw new Error(`HTTP ${res.status}: ${txt}`);
218
- }
219
- const data = await res.json();
220
- const content = data?.choices?.[0]?.message?.content ?? "";
221
- return String(content).trim();
222
- }
223
- catch (err) {
224
- clearTimeout(timeout);
225
- if (err?.name === "AbortError") {
226
- throw new Error("GitHub Models timed out after 60s");
227
- }
228
- // On network hiccups, allow a single quick retry if configured
229
- attempt += 1;
230
- if (attempt <= maxRetries) {
231
- console.log(`[GitHubModelsClient] Error: ${err?.message || err}. Retrying (${attempt}/${maxRetries})...`);
232
- await new Promise((r) => setTimeout(r, 1500));
233
- continue;
234
- }
235
- // Move to next model if available
236
- if (modelsToTry.length > 1) {
237
- console.log(`[GitHubModelsClient] Model ${modelName} error after retries. Trying next candidate...`);
238
- break;
239
- }
240
- throw new Error(`GitHub Models request failed: ${err?.message || err}`);
241
- }
242
- }
243
- }
244
- throw new Error("All GitHub Models candidates failed");
245
- }
246
- /**
247
- * Attempt to list available models from GitHub Models. Falls back to a curated set.
248
- */
249
- async listModels() {
250
- // GitHub Models API might not have a models listing endpoint
251
- // Try a few common endpoints, but don't rely on them
252
- const candidates = [
253
- `${this.baseUrl}/models`,
254
- `${this.baseUrl}/v1/models`,
255
- `${this.baseUrl}/v1/models?per_page=100`,
256
- `${this.baseUrl}/models?per_page=100`,
257
- ];
258
- for (const url of candidates) {
259
- try {
260
- const controller = new AbortController();
261
- const timeout = setTimeout(() => controller.abort(), 5000); // 5s timeout
262
- const res = await (0, node_fetch_1.default)(url, {
263
- headers: this.headers(),
264
- signal: controller.signal,
265
- });
266
- clearTimeout(timeout);
267
- if (!res.ok) {
268
- console.log(`[GitHubModelsClient] Endpoint ${url} returned ${res.status}`);
269
- continue;
270
- }
271
- const data = await res.json();
272
- console.log(`[GitHubModelsClient] Endpoint ${url} response:`, JSON.stringify(data).slice(0, 200) + "...");
273
- // Normalize: support various response formats
274
- let models = [];
275
- if (Array.isArray(data?.data)) {
276
- models = data.data
277
- .map((m) => m?.id || m?.name || m?.model_id)
278
- .filter(Boolean);
279
- }
280
- else if (Array.isArray(data?.models)) {
281
- models = data.models
282
- .map((m) => typeof m === "string" ? m : m?.id || m?.name || m?.model_id)
283
- .filter(Boolean);
284
- }
285
- else if (Array.isArray(data)) {
286
- models = data
287
- .map((m) => m?.id || m?.name || m?.model_id)
288
- .filter(Boolean);
289
- }
290
- if (models.length > 0) {
291
- console.log(`[GitHubModelsClient] Found ${models.length} available models from ${url}`);
292
- return models;
293
- }
294
- }
295
- catch (error) {
296
- console.log(`[GitHubModelsClient] Endpoint ${url} failed:`, error instanceof Error ? error.message : String(error));
297
- continue;
298
- }
299
- }
300
- // Curated fallback set commonly available on GitHub Models
301
- console.log("[GitHubModelsClient] No models endpoint found, using expanded curated set");
302
- return [
303
- process.env.MYCONTEXT_MODEL || "grok-3",
304
- "openai/gpt-4o",
305
- "openai/gpt-4o-mini",
306
- "claude-3-5-sonnet-20241022",
307
- "claude-3-5-haiku-20241022",
308
- "deepseek/DeepSeek-V3-0324",
309
- "deepseek/DeepSeek-Coder-V2",
310
- "meta/Llama-4-Scout-17B-16E-Instruct",
311
- "meta/llama-3.1-8b-instruct",
312
- "meta/llama-3.1-70b-instruct",
313
- "mistral-ai/Codestral-2501",
314
- "mistral-ai/Mistral-7B-Instruct-v0.3",
315
- "nvidia/llama-3.1-nemotron-70b-instruct",
316
- "qwen/qwen2.5-coder-32b-instruct",
317
- "qwen/qwen2.5-coder-7b-instruct",
318
- "google/gemini-2.0-flash",
319
- "google/gemini-1.5-pro",
320
- "microsoft/Phi-3.5-mini-instruct",
321
- "microsoft/Phi-3-medium-128k-instruct",
322
- ];
323
- }
324
- async generateComponent(prompt, opts) {
325
- return this.generateText(`Generate a single React component. Output only a code block.\n\n${prompt}`, opts);
326
- }
327
- async generateComponentRefinement(componentCode, prompt, opts) {
328
- return this.generateText(`Refine the following React component with the prompt. Return only a single code block.\n\nComponent:\n\`\`\`tsx\n${componentCode}\n\`\`\`\n\nPrompt: ${prompt}`, opts);
329
- }
330
- }
331
- exports.GitHubModelsClient = GitHubModelsClient;
332
- //# sourceMappingURL=githubModelsClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"githubModelsClient.js","sourceRoot":"","sources":["../../src/utils/githubModelsClient.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- export interface HuggingFaceResponse {
2
- generated_text: string;
3
- }
4
- export interface HuggingFaceOptions {
5
- model: string;
6
- temperature?: number;
7
- maxTokens?: number;
8
- topP?: number;
9
- doSample?: boolean;
10
- }
11
- export declare class HuggingFaceClient {
12
- private baseUrl;
13
- private apiKey;
14
- constructor(apiKey?: string);
15
- /**
16
- * Check if Hugging Face is available
17
- */
18
- checkConnection(): Promise<boolean>;
19
- /**
20
- * Generate component refinement using Hugging Face
21
- */
22
- generateComponentRefinement(componentCode: string, prompt: string, options?: Partial<HuggingFaceOptions>): Promise<string>;
23
- /**
24
- * Generate new components using Hugging Face
25
- */
26
- generateComponent(prompt: string, options?: Partial<HuggingFaceOptions>): Promise<string>;
27
- /**
28
- * Extract component code from generated text
29
- */
30
- private extractComponentCode;
31
- /**
32
- * Get request headers
33
- */
34
- private getHeaders;
35
- /**
36
- * Check if API key is configured
37
- */
38
- hasApiKey(): boolean;
39
- /**
40
- * Set API key
41
- */
42
- setApiKey(apiKey: string): void;
43
- }
44
- //# sourceMappingURL=huggingFaceClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"huggingFaceClient.d.ts","sourceRoot":"","sources":["../../src/utils/huggingFaceClient.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;CAExB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,CAAC,EAAE,MAAM;IAI3B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAYzC;;OAEG;IACG,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACxC,OAAO,CAAC,MAAM,CAAC;IA8DlB;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACxC,OAAO,CAAC,MAAM,CAAC;IAsDlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhC"}
@@ -1,169 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HuggingFaceClient = void 0;
7
- const node_fetch_1 = __importDefault(require("node-fetch"));
8
- class HuggingFaceClient {
9
- constructor(apiKey) {
10
- this.baseUrl = "https://api-inference.huggingface.co";
11
- this.apiKey = null;
12
- this.apiKey = apiKey || process.env.HUGGINGFACE_API_KEY || null;
13
- }
14
- /**
15
- * Check if Hugging Face is available
16
- */
17
- async checkConnection() {
18
- try {
19
- const response = await (0, node_fetch_1.default)(`${this.baseUrl}/models`, {
20
- headers: this.getHeaders(),
21
- signal: AbortSignal.timeout(10000), // 10 second timeout
22
- });
23
- return response.ok;
24
- }
25
- catch (error) {
26
- return false;
27
- }
28
- }
29
- /**
30
- * Generate component refinement using Hugging Face
31
- */
32
- async generateComponentRefinement(componentCode, prompt, options = {}) {
33
- const defaultOptions = {
34
- model: "mycontext/react-component-refiner", // Our specialized model
35
- temperature: 0.1,
36
- maxTokens: 2048,
37
- topP: 0.9,
38
- doSample: true,
39
- ...options,
40
- };
41
- try {
42
- const controller = new AbortController();
43
- const timeoutId = setTimeout(() => controller.abort(), 45000); // 45 second timeout
44
- const requestBody = {
45
- inputs: `Component Code:\n\`\`\`tsx\n${componentCode}\n\`\`\`\n\nRefinement Prompt: ${prompt}\n\nEnhanced Component:`,
46
- parameters: {
47
- temperature: defaultOptions.temperature,
48
- max_new_tokens: defaultOptions.maxTokens,
49
- top_p: defaultOptions.topP,
50
- do_sample: defaultOptions.doSample,
51
- return_full_text: false,
52
- },
53
- };
54
- console.log(`[HuggingFaceClient] Using model: ${defaultOptions.model}`);
55
- console.log(`[HuggingFaceClient] Sending request to: ${this.baseUrl}/models/${defaultOptions.model}`);
56
- const response = await (0, node_fetch_1.default)(`${this.baseUrl}/models/${defaultOptions.model}`, {
57
- method: "POST",
58
- headers: this.getHeaders(),
59
- body: JSON.stringify(requestBody),
60
- signal: controller.signal,
61
- });
62
- clearTimeout(timeoutId);
63
- if (!response.ok) {
64
- const errorText = await response.text();
65
- throw new Error(`HTTP ${response.status}: ${errorText}`);
66
- }
67
- const data = (await response.json());
68
- const generatedText = data[0]?.generated_text || "";
69
- // Extract just the component code if the model returns explanatory text
70
- return this.extractComponentCode(generatedText, componentCode);
71
- }
72
- catch (error) {
73
- if (error.name === "AbortError") {
74
- throw new Error("Component refinement timed out after 45 seconds");
75
- }
76
- throw new Error(`Failed to generate component refinement: ${error.message}`);
77
- }
78
- }
79
- /**
80
- * Generate new components using Hugging Face
81
- */
82
- async generateComponent(prompt, options = {}) {
83
- const defaultOptions = {
84
- model: "mycontext/react-component-generator", // Our component generation model
85
- temperature: 0.1,
86
- maxTokens: 2048,
87
- topP: 0.9,
88
- doSample: true,
89
- ...options,
90
- };
91
- try {
92
- const controller = new AbortController();
93
- const timeoutId = setTimeout(() => controller.abort(), 60000); // 60 second timeout
94
- const requestBody = {
95
- inputs: `Generate a React component for: ${prompt}\n\nComponent:`,
96
- parameters: {
97
- temperature: defaultOptions.temperature,
98
- max_new_tokens: defaultOptions.maxTokens,
99
- top_p: defaultOptions.topP,
100
- do_sample: defaultOptions.doSample,
101
- return_full_text: false,
102
- },
103
- };
104
- const response = await (0, node_fetch_1.default)(`${this.baseUrl}/models/${defaultOptions.model}`, {
105
- method: "POST",
106
- headers: this.getHeaders(),
107
- body: JSON.stringify(requestBody),
108
- signal: controller.signal,
109
- });
110
- clearTimeout(timeoutId);
111
- if (!response.ok) {
112
- const errorText = await response.text();
113
- throw new Error(`HTTP ${response.status}: ${errorText}`);
114
- }
115
- const data = (await response.json());
116
- const generatedText = data[0]?.generated_text || "";
117
- return this.extractComponentCode(generatedText);
118
- }
119
- catch (error) {
120
- if (error.name === "AbortError") {
121
- throw new Error("Component generation timed out after 60 seconds");
122
- }
123
- throw new Error(`Failed to generate component: ${error.message}`);
124
- }
125
- }
126
- /**
127
- * Extract component code from generated text
128
- */
129
- extractComponentCode(generatedText, originalCode) {
130
- // Look for code blocks
131
- const codeBlockMatch = generatedText.match(/```(?:tsx|jsx|ts|js)?\n([\s\S]*?)```/);
132
- if (codeBlockMatch) {
133
- return codeBlockMatch[1].trim();
134
- }
135
- // Look for JSX/TSX content
136
- const jsxMatch = generatedText.match(/(?:export\s+)?(?:function|const)\s+\w+.*?{[\s\S]*?}/);
137
- if (jsxMatch) {
138
- return jsxMatch[0];
139
- }
140
- // If no clear code found, return the original or the full text
141
- return originalCode || generatedText;
142
- }
143
- /**
144
- * Get request headers
145
- */
146
- getHeaders() {
147
- const headers = {
148
- "Content-Type": "application/json",
149
- };
150
- if (this.apiKey) {
151
- headers["Authorization"] = `Bearer ${this.apiKey}`;
152
- }
153
- return headers;
154
- }
155
- /**
156
- * Check if API key is configured
157
- */
158
- hasApiKey() {
159
- return !!this.apiKey;
160
- }
161
- /**
162
- * Set API key
163
- */
164
- setApiKey(apiKey) {
165
- this.apiKey = apiKey;
166
- }
167
- }
168
- exports.HuggingFaceClient = HuggingFaceClient;
169
- //# sourceMappingURL=huggingFaceClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"huggingFaceClient.js","sourceRoot":"","sources":["../../src/utils/huggingFaceClient.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- export interface OpenAIOptions {
2
- model: string;
3
- modelCandidates?: string[];
4
- temperature?: number;
5
- maxTokens?: number;
6
- }
7
- export declare class OpenAIClient {
8
- private baseUrl;
9
- private token;
10
- constructor();
11
- hasApiKey(): boolean;
12
- /**
13
- * Load token from project-level env files without external deps
14
- * Priority: .mycontext/.env -> .env
15
- */
16
- private loadTokenFromEnvFiles;
17
- checkConnection(): Promise<boolean>;
18
- generateText(prompt: string, options?: OpenAIOptions): Promise<string>;
19
- generateComponent(prompt: string, options?: OpenAIOptions): Promise<string>;
20
- generateComponentRefinement(componentCode: string, prompt: string, options?: OpenAIOptions): Promise<string>;
21
- listModels(): Promise<string[]>;
22
- setApiKey(apiKey: string): void;
23
- }
24
- //# sourceMappingURL=openaiClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openaiClient.d.ts","sourceRoot":"","sources":["../../src/utils/openaiClient.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAgB;;IAiB7B,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAqCvB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBnC,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAA0C,GAClD,OAAO,CAAC,MAAM,CAAC;IAsCZ,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAA0C,GAClD,OAAO,CAAC,MAAM,CAAC;IAeZ,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,aAA0C,GAClD,OAAO,CAAC,MAAM,CAAC;IAmBZ,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBrC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhC"}