mycontext-cli 4.2.10 → 4.2.11

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 (126) hide show
  1. package/README.md +13 -4
  2. package/dist/README.md +13 -4
  3. package/dist/agents/implementations/ArchitectAgent.js.map +1 -1
  4. package/dist/agents/implementations/BuildStrategyAgent.js.map +1 -1
  5. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  6. package/dist/agents/implementations/DemoRecorderAgent.d.ts +73 -0
  7. package/dist/agents/implementations/DemoRecorderAgent.d.ts.map +1 -0
  8. package/dist/agents/implementations/DemoRecorderAgent.js +485 -0
  9. package/dist/agents/implementations/DemoRecorderAgent.js.map +1 -0
  10. package/dist/agents/implementations/DesignPipelineAgent.d.ts +4 -0
  11. package/dist/agents/implementations/DesignPipelineAgent.d.ts.map +1 -1
  12. package/dist/agents/implementations/DesignPipelineAgent.js +82 -10
  13. package/dist/agents/implementations/DesignPipelineAgent.js.map +1 -1
  14. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  15. package/dist/agents/implementations/FeaturePlannerAgent.d.ts +10 -0
  16. package/dist/agents/implementations/FeaturePlannerAgent.d.ts.map +1 -0
  17. package/dist/agents/implementations/FeaturePlannerAgent.js +35 -0
  18. package/dist/agents/implementations/FeaturePlannerAgent.js.map +1 -0
  19. package/dist/agents/implementations/QASubAgent.js.map +1 -1
  20. package/dist/agents/implementations/SecurityAgent.js.map +1 -1
  21. package/dist/agents/implementations/VOScriptExtractorAgent.d.ts +84 -0
  22. package/dist/agents/implementations/VOScriptExtractorAgent.d.ts.map +1 -0
  23. package/dist/agents/implementations/VOScriptExtractorAgent.js +414 -0
  24. package/dist/agents/implementations/VOScriptExtractorAgent.js.map +1 -0
  25. package/dist/agents/implementations/VisionNavigatorAgent.d.ts +52 -0
  26. package/dist/agents/implementations/VisionNavigatorAgent.d.ts.map +1 -0
  27. package/dist/agents/implementations/VisionNavigatorAgent.js +313 -0
  28. package/dist/agents/implementations/VisionNavigatorAgent.js.map +1 -0
  29. package/dist/agents/implementations/VisionTestCoordinator.d.ts +51 -0
  30. package/dist/agents/implementations/VisionTestCoordinator.d.ts.map +1 -0
  31. package/dist/agents/implementations/VisionTestCoordinator.js +348 -0
  32. package/dist/agents/implementations/VisionTestCoordinator.js.map +1 -0
  33. package/dist/agents/implementations/VisualValidatorAgent.d.ts +83 -0
  34. package/dist/agents/implementations/VisualValidatorAgent.d.ts.map +1 -0
  35. package/dist/agents/implementations/VisualValidatorAgent.js +472 -0
  36. package/dist/agents/implementations/VisualValidatorAgent.js.map +1 -0
  37. package/dist/agents/orchestrator/SubAgentOrchestrator.js.map +1 -1
  38. package/dist/cli.js +3 -0
  39. package/dist/cli.js.map +1 -1
  40. package/dist/clients/ClaudeSDKClient.d.ts +4 -0
  41. package/dist/clients/ClaudeSDKClient.d.ts.map +1 -1
  42. package/dist/clients/ClaudeSDKClient.js +8 -0
  43. package/dist/clients/ClaudeSDKClient.js.map +1 -1
  44. package/dist/clients/MyContextAIClient.d.ts +4 -0
  45. package/dist/clients/MyContextAIClient.d.ts.map +1 -1
  46. package/dist/clients/MyContextAIClient.js +69 -0
  47. package/dist/clients/MyContextAIClient.js.map +1 -1
  48. package/dist/clients/ProviderChain.d.ts +1 -0
  49. package/dist/clients/ProviderChain.d.ts.map +1 -1
  50. package/dist/clients/ProviderChain.js +3 -0
  51. package/dist/clients/ProviderChain.js.map +1 -1
  52. package/dist/clients/XAIClient.d.ts +4 -0
  53. package/dist/clients/XAIClient.d.ts.map +1 -1
  54. package/dist/clients/XAIClient.js +8 -0
  55. package/dist/clients/XAIClient.js.map +1 -1
  56. package/dist/commands/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +110 -204
  58. package/dist/commands/init.js.map +1 -1
  59. package/dist/commands/plan-feature.d.ts +3 -0
  60. package/dist/commands/plan-feature.d.ts.map +1 -0
  61. package/dist/commands/plan-feature.js +57 -0
  62. package/dist/commands/plan-feature.js.map +1 -0
  63. package/dist/commands/sanitize.d.ts.map +1 -1
  64. package/dist/commands/sanitize.js +95 -7
  65. package/dist/commands/sanitize.js.map +1 -1
  66. package/dist/commands/vision-test.d.ts +67 -0
  67. package/dist/commands/vision-test.d.ts.map +1 -0
  68. package/dist/commands/vision-test.js +347 -0
  69. package/dist/commands/vision-test.js.map +1 -0
  70. package/dist/core/ai/AICore.d.ts +13 -0
  71. package/dist/core/ai/AICore.d.ts.map +1 -1
  72. package/dist/core/ai/AICore.js +65 -0
  73. package/dist/core/ai/AICore.js.map +1 -1
  74. package/dist/doctor/rules/node-rules.d.ts.map +1 -1
  75. package/dist/doctor/rules/node-rules.js +41 -0
  76. package/dist/doctor/rules/node-rules.js.map +1 -1
  77. package/dist/interfaces/AIClient.d.ts +1 -0
  78. package/dist/interfaces/AIClient.d.ts.map +1 -1
  79. package/dist/interfaces/AIClient.js.map +1 -1
  80. package/dist/mcp/vision-test-runner.d.ts +57 -0
  81. package/dist/mcp/vision-test-runner.d.ts.map +1 -0
  82. package/dist/mcp/vision-test-runner.js +337 -0
  83. package/dist/mcp/vision-test-runner.js.map +1 -0
  84. package/dist/mcp/vision-testing-server.d.ts +38 -0
  85. package/dist/mcp/vision-testing-server.d.ts.map +1 -0
  86. package/dist/mcp/vision-testing-server.js +637 -0
  87. package/dist/mcp/vision-testing-server.js.map +1 -0
  88. package/dist/package.json +1 -1
  89. package/dist/services/gemini-vision.d.ts +3 -11
  90. package/dist/services/gemini-vision.d.ts.map +1 -1
  91. package/dist/services/gemini-vision.js +13 -132
  92. package/dist/services/gemini-vision.js.map +1 -1
  93. package/dist/services/llmClarifier.d.ts +9 -0
  94. package/dist/services/llmClarifier.d.ts.map +1 -0
  95. package/dist/services/llmClarifier.js +22 -0
  96. package/dist/services/llmClarifier.js.map +1 -0
  97. package/dist/services/vision-element-finder.d.ts +64 -0
  98. package/dist/services/vision-element-finder.d.ts.map +1 -0
  99. package/dist/services/vision-element-finder.js +446 -0
  100. package/dist/services/vision-element-finder.js.map +1 -0
  101. package/dist/types/flow-testing.d.ts +1 -1
  102. package/dist/types/flow-testing.d.ts.map +1 -1
  103. package/dist/types/vision-testing.d.ts +382 -0
  104. package/dist/types/vision-testing.d.ts.map +1 -0
  105. package/dist/types/vision-testing.js +9 -0
  106. package/dist/types/vision-testing.js.map +1 -0
  107. package/dist/utils/claudeAgentClient.d.ts +4 -0
  108. package/dist/utils/claudeAgentClient.d.ts.map +1 -1
  109. package/dist/utils/claudeAgentClient.js +8 -0
  110. package/dist/utils/claudeAgentClient.js.map +1 -1
  111. package/dist/utils/geminiClient.d.ts +41 -6
  112. package/dist/utils/geminiClient.d.ts.map +1 -1
  113. package/dist/utils/geminiClient.js +124 -18
  114. package/dist/utils/geminiClient.js.map +1 -1
  115. package/dist/utils/githubModelsClient.d.ts +19 -6
  116. package/dist/utils/githubModelsClient.d.ts.map +1 -1
  117. package/dist/utils/githubModelsClient.js +94 -7
  118. package/dist/utils/githubModelsClient.js.map +1 -1
  119. package/dist/utils/openRouterClient.d.ts +12 -3
  120. package/dist/utils/openRouterClient.d.ts.map +1 -1
  121. package/dist/utils/openRouterClient.js +91 -2
  122. package/dist/utils/openRouterClient.js.map +1 -1
  123. package/dist/utils/unifiedDesignContextLoader.d.ts.map +1 -1
  124. package/dist/utils/unifiedDesignContextLoader.js +15 -0
  125. package/dist/utils/unifiedDesignContextLoader.js.map +1 -1
  126. package/package.json +1 -1
@@ -32,16 +32,23 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.GeminiClient = void 0;
37
40
  const generative_ai_1 = require("@google/generative-ai");
38
41
  const logger_1 = require("./logger");
42
+ const openai_1 = __importDefault(require("openai"));
39
43
  /**
40
44
  * Gemini API Client using official Google Generative AI SDK
41
45
  * Supports text generation, multimodal interaction, and visual generation
42
46
  */
43
47
  class GeminiClient {
44
48
  constructor() {
49
+ this.clientType = "direct-api";
50
+ this.supportsTools = false;
51
+ this.supportsStreaming = false;
45
52
  this.MODELS = [
46
53
  "gemini-2.0-flash", // Latest stable Flash
47
54
  "gemini-2.0-flash-exp", // Experimental Flash 2.0
@@ -89,17 +96,96 @@ class GeminiClient {
89
96
  return !!this.getApiKey();
90
97
  }
91
98
  /**
92
- * Generate text completion using Gemini with fallback
99
+ * Set API key for Gemini API
93
100
  */
94
- async generateText(input, config) {
101
+ setApiKey(apiKey) {
102
+ this.apiKey = apiKey;
103
+ this.initializeClient();
104
+ }
105
+ /**
106
+ * Check connection to Gemini API
107
+ */
108
+ async checkConnection() {
109
+ try {
110
+ if (!this.genAI)
111
+ this.initializeClient();
112
+ if (!this.genAI)
113
+ return false;
114
+ const model = this.genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
115
+ await model.generateContent("ping");
116
+ return true;
117
+ }
118
+ catch (error) {
119
+ logger_1.logger.error("Gemini connection check failed:", error);
120
+ return false;
121
+ }
122
+ }
123
+ /**
124
+ * Get GitHub token for text backups
125
+ */
126
+ getGitHubToken() {
127
+ return process.env.GITHUB_TOKEN;
128
+ }
129
+ /**
130
+ * Generate text completion using Gemini or GitHub Models (Fallback/Cost-Saving)
131
+ */
132
+ async generateText(prompt, options = {}) {
133
+ const input = [{ role: "user", content: prompt }];
134
+ const config = {
135
+ temperature: options.temperature,
136
+ maxTokens: options.maxTokens,
137
+ };
138
+ const response = await this.executeGenerateText(input, config);
139
+ return response.content;
140
+ }
141
+ /**
142
+ * Internal generation logic that returns rich response
143
+ */
144
+ async executeGenerateText(input, config) {
145
+ const githubToken = this.getGitHubToken();
146
+ // Normalize input to array of messages
147
+ const messages = typeof input === "string" ? [{ role: "user", content: input }] : input;
148
+ // Use GitHub Models if available for strict text generation (Cost Savings)
149
+ if (githubToken) {
150
+ try {
151
+ logger_1.logger.debug("Routing text generation to GitHub Models for cost optimization");
152
+ const openai = new openai_1.default({
153
+ baseURL: "https://models.inference.ai.azure.com",
154
+ apiKey: githubToken,
155
+ });
156
+ const sysMsg = messages.find(m => m.role === "system");
157
+ const completion = await openai.chat.completions.create({
158
+ messages: messages.map(m => ({
159
+ role: m.role,
160
+ content: m.content
161
+ })),
162
+ model: "gpt-4o-mini",
163
+ temperature: config?.temperature ?? 0.7,
164
+ max_tokens: config?.maxTokens ?? 8192,
165
+ top_p: config?.topP ?? 0.95,
166
+ });
167
+ return {
168
+ content: completion.choices[0]?.message.content || "",
169
+ text: completion.choices[0]?.message.content || "",
170
+ model: "gpt-4o-mini (github-models)",
171
+ finishReason: completion.choices[0]?.finish_reason,
172
+ usage: completion.usage ? {
173
+ promptTokens: completion.usage.prompt_tokens,
174
+ completionTokens: completion.usage.completion_tokens,
175
+ totalTokens: completion.usage.total_tokens
176
+ } : undefined
177
+ };
178
+ }
179
+ catch (error) {
180
+ logger_1.logger.warn(`GitHub Models failed: ${error.message}. Falling back to Gemini...`);
181
+ }
182
+ }
95
183
  if (!this.genAI) {
96
184
  this.initializeClient();
97
185
  if (!this.genAI)
98
186
  throw new Error("Gemini API key not configured");
99
187
  }
100
188
  let lastError;
101
- // Normalize input to array of messages
102
- const messages = typeof input === "string" ? [{ role: "user", content: input }] : input;
103
189
  // Extract system instruction if present
104
190
  const systemMessage = messages.find(m => m.role === "system");
105
191
  const systemInstruction = systemMessage ? systemMessage.content : undefined;
@@ -179,7 +265,7 @@ class GeminiClient {
179
265
  try {
180
266
  logger_1.logger.debug("Gemini: Generating visual screen");
181
267
  const systemPrompt = this.buildVisualPrompt(prompt, context);
182
- const response = await this.generateText([
268
+ const response = await this.executeGenerateText([
183
269
  { role: "system", content: systemPrompt },
184
270
  { role: "user", content: prompt },
185
271
  ], config);
@@ -229,22 +315,45 @@ IMPORTANT: Output ONLY valid HTML code within \`\`\`html blocks.
229
315
  return content.trim();
230
316
  return content;
231
317
  }
318
+ /**
319
+ * Generate component using Gemini
320
+ */
321
+ async generateComponent(prompt, context, options = {}) {
322
+ const visualResponse = await this.generateVisualScreen(prompt, context, options);
323
+ return visualResponse.html;
324
+ }
325
+ /**
326
+ * Generate component refinement using Gemini
327
+ */
328
+ async generateComponentRefinement(componentCode, prompt, context, options = {}) {
329
+ const refinementPrompt = `Refine this component: ${prompt}\n\nExisting Code:\n${componentCode}`;
330
+ return this.generateText(refinementPrompt, options);
331
+ }
332
+ /**
333
+ * Generate text from image (Vision implementation of interface)
334
+ */
335
+ async generateVisionText(prompt, imagePath, options = {}) {
336
+ const response = await this.generateFromImage(prompt, imagePath, {
337
+ ...options,
338
+ systemPrompt: options.systemPrompt
339
+ });
340
+ return response.content;
341
+ }
232
342
  async generateScreenshot(html) {
233
343
  logger_1.logger.debug("Screenshot generation not yet implemented");
234
344
  return "";
235
345
  }
236
346
  /**
237
- * Test Gemini API connection
347
+ * List available models
238
348
  */
239
- async testConnection() {
240
- try {
241
- await this.generateText("Say 'Hello' if connected.");
242
- return true;
243
- }
244
- catch (error) {
245
- logger_1.logger.error("Gemini connection test failed:", error);
246
- return false;
247
- }
349
+ async listModels() {
350
+ return this.MODELS;
351
+ }
352
+ /**
353
+ * Cleanup resources
354
+ */
355
+ async cleanup() {
356
+ // No specific cleanup for Gemini SDK
248
357
  }
249
358
  /**
250
359
  * Generate text from image input (multimodal)
@@ -294,9 +403,6 @@ IMPORTANT: Output ONLY valid HTML code within \`\`\`html blocks.
294
403
  throw new Error(`Gemini vision generation failed: ${error.message}`);
295
404
  }
296
405
  }
297
- async listModels() {
298
- return this.MODELS;
299
- }
300
406
  getMimeType(filePath) {
301
407
  const ext = filePath.toLowerCase().split('.').pop();
302
408
  switch (ext) {
@@ -1 +1 @@
1
- {"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/utils/geminiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/utils/geminiClient.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,40 @@
1
- export declare class GitHubModelsClient {
1
+ import { AIClient, AIClientOptions, AgentContext } from "../interfaces/AIClient";
2
+ export declare class GitHubModelsClient implements AIClient {
3
+ readonly clientType: "direct-api";
4
+ readonly supportsTools = false;
5
+ readonly supportsStreaming = false;
2
6
  private apiKey;
3
7
  private baseUrl;
4
8
  constructor();
5
9
  hasApiKey(): boolean;
10
+ setApiKey(apiKey: string): void;
6
11
  /**
7
- * Test connection to GitHub Models API
12
+ * Check connection to GitHub Models API
8
13
  */
9
- testConnection(): Promise<boolean>;
14
+ checkConnection(): Promise<boolean>;
10
15
  /**
11
16
  * Generate text using GitHub Models
12
17
  */
13
- generateText(prompt: string, options?: any): Promise<string>;
18
+ generateText(prompt: string, options?: AIClientOptions): Promise<string>;
14
19
  /**
15
20
  * Generate component using GitHub Models
16
21
  */
17
- generateComponent(prompt: string, options?: any): Promise<string>;
22
+ generateComponent(prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
18
23
  /**
19
24
  * Generate component refinement
20
25
  */
21
- generateComponentRefinement(componentCode: string, prompt: string, options?: any): Promise<string>;
26
+ generateComponentRefinement(componentCode: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
27
+ /**
28
+ * Generate text from image using GitHub Models (GPT-4o Vision)
29
+ */
30
+ generateVisionText(prompt: string, imagePath: string, options?: AIClientOptions): Promise<string>;
22
31
  /**
23
32
  * List available models (placeholder - can be expanded)
24
33
  */
25
34
  listModels(): Promise<string[]>;
35
+ /**
36
+ * Cleanup resources
37
+ */
38
+ cleanup(): Promise<void>;
26
39
  }
27
40
  //# sourceMappingURL=githubModelsClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"githubModelsClient.d.ts","sourceRoot":"","sources":["../../src/utils/githubModelsClient.ts"],"names":[],"mappings":"AAIA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAA2C;;IAMnD,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAe/C;;OAEG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA4C7E;;OAEG;IACU,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlF;;OAEG;IACU,2BAA2B,CACtC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAG7C"}
1
+ {"version":3,"file":"githubModelsClient.d.ts","sourceRoot":"","sources":["../../src/utils/githubModelsClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEjF,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,QAAQ,CAAC,UAAU,EAAG,YAAY,CAAU;IAC5C,QAAQ,CAAC,aAAa,SAAS;IAC/B,QAAQ,CAAC,iBAAiB,SAAS;IAEnC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAA2C;;IAMnD,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACU,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAehD;;OAEG;IACU,YAAY,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAwClB;;OAEG;IACU,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACU,2BAA2B,CACtC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACU,kBAAkB,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAmDlB;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI5C;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
@@ -1,4 +1,37 @@
1
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
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -9,16 +42,22 @@ const logger_1 = require("./logger");
9
42
  const chalk_1 = __importDefault(require("chalk"));
10
43
  class GitHubModelsClient {
11
44
  constructor() {
45
+ this.clientType = "direct-api";
46
+ this.supportsTools = false;
47
+ this.supportsStreaming = false;
12
48
  this.baseUrl = "https://models.inference.ai.azure.com";
13
49
  this.apiKey = process.env.GITHUB_TOKEN || process.env.GITHUB_MODELS_API_KEY;
14
50
  }
15
51
  hasApiKey() {
16
52
  return !!this.apiKey;
17
53
  }
54
+ setApiKey(apiKey) {
55
+ this.apiKey = apiKey;
56
+ }
18
57
  /**
19
- * Test connection to GitHub Models API
58
+ * Check connection to GitHub Models API
20
59
  */
21
- async testConnection() {
60
+ async checkConnection() {
22
61
  if (!this.apiKey)
23
62
  return false;
24
63
  try {
@@ -54,9 +93,6 @@ class GitHubModelsClient {
54
93
  temperature,
55
94
  max_tokens: maxTokens,
56
95
  };
57
- if (options.jsonMode === true) {
58
- postData.response_format = { type: "json_object" };
59
- }
60
96
  const response = await axios_1.default.post(`${this.baseUrl}/chat/completions`, postData, {
61
97
  headers: {
62
98
  Authorization: `Bearer ${this.apiKey}`,
@@ -74,7 +110,7 @@ class GitHubModelsClient {
74
110
  /**
75
111
  * Generate component using GitHub Models
76
112
  */
77
- async generateComponent(prompt, options = {}) {
113
+ async generateComponent(prompt, context, options = {}) {
78
114
  const systemPrompt = `You are an expert React developer.
79
115
  Generate a high-quality, responsive React component using Tailwind CSS.
80
116
  Include necessary imports (Lucide, Radix, etc. as needed).
@@ -85,7 +121,7 @@ Return ONLY the code block.`;
85
121
  /**
86
122
  * Generate component refinement
87
123
  */
88
- async generateComponentRefinement(componentCode, prompt, options = {}) {
124
+ async generateComponentRefinement(componentCode, prompt, context, options = {}) {
89
125
  const systemPrompt = `You are an expert React developer.
90
126
  Refine the provided React component based on the user request.
91
127
  Maintain high quality, responsiveness, and Tailwind CSS patterns.
@@ -93,12 +129,63 @@ Return ONLY the updated code block.`;
93
129
  const fullPrompt = `${systemPrompt}\n\nExisting Code:\n\`\`\`tsx\n${componentCode}\n\`\`\`\n\nRequest: ${prompt}`;
94
130
  return this.generateText(fullPrompt, options);
95
131
  }
132
+ /**
133
+ * Generate text from image using GitHub Models (GPT-4o Vision)
134
+ */
135
+ async generateVisionText(prompt, imagePath, options = {}) {
136
+ if (!this.apiKey) {
137
+ throw new Error("GITHUB_TOKEN or GITHUB_MODELS_API_KEY not found in environment");
138
+ }
139
+ const model = options.model || "gpt-4o";
140
+ try {
141
+ const fs = await Promise.resolve().then(() => __importStar(require("fs")));
142
+ const imageData = await fs.promises.readFile(imagePath);
143
+ const base64Image = imageData.toString("base64");
144
+ const mimeType = imagePath.toLowerCase().endsWith(".png") ? "image/png" : "image/jpeg";
145
+ const postData = {
146
+ model,
147
+ messages: [
148
+ {
149
+ role: "user",
150
+ content: [
151
+ { type: "text", text: prompt },
152
+ {
153
+ type: "image_url",
154
+ image_url: {
155
+ url: `data:${mimeType};base64,${base64Image}`,
156
+ },
157
+ },
158
+ ],
159
+ },
160
+ ],
161
+ max_tokens: options.maxTokens || 4000,
162
+ };
163
+ const response = await axios_1.default.post(`${this.baseUrl}/chat/completions`, postData, {
164
+ headers: {
165
+ Authorization: `Bearer ${this.apiKey}`,
166
+ "Content-Type": "application/json",
167
+ },
168
+ });
169
+ return response.data.choices[0].message.content;
170
+ }
171
+ catch (error) {
172
+ const message = error.response?.data?.error?.message || error.message;
173
+ logger_1.logger.error(`GitHub Models Vision error: ${message}`);
174
+ throw new Error(`GitHub Models vision generation failed: ${message}`);
175
+ }
176
+ }
96
177
  /**
97
178
  * List available models (placeholder - can be expanded)
98
179
  */
99
180
  async listModels() {
100
181
  return ["gpt-4o", "gpt-4o-mini", "o1-preview", "o1-mini"];
101
182
  }
183
+ /**
184
+ * Cleanup resources
185
+ */
186
+ async cleanup() {
187
+ // No specific cleanup needed
188
+ }
102
189
  }
103
190
  exports.GitHubModelsClient = GitHubModelsClient;
104
191
  //# sourceMappingURL=githubModelsClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"githubModelsClient.js","sourceRoot":"","sources":["../../src/utils/githubModelsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"githubModelsClient.js","sourceRoot":"","sources":["../../src/utils/githubModelsClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,qCAAkC;AAClC,kDAA0B;AAG1B,MAAa,kBAAkB;IAQ7B;QAPS,eAAU,GAAG,YAAqB,CAAC;QACnC,kBAAa,GAAG,KAAK,CAAC;QACtB,sBAAiB,GAAG,KAAK,CAAC;QAG3B,YAAO,GAAG,uCAAuC,CAAC;QAGxD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC9E,CAAC;IAEM,SAAS;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,MAAc;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE;gBACxC,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACvC;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CACvB,MAAc,EACd,UAA2B,EAAE;QAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAE5C,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,QAAQ,GAAQ;gBACpB,KAAK;gBACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC7C,WAAW;gBACX,UAAU,EAAE,SAAS;aACtB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAClC,QAAQ,EACR;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;aACF,CACF,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAClD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YACtE,eAAM,CAAC,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAC5B,MAAc,EACd,OAAsB,EACtB,UAA2B,EAAE;QAE7B,MAAM,YAAY,GAAG;;;4BAGG,CAAC;QAEzB,MAAM,UAAU,GAAG,GAAG,YAAY,aAAa,MAAM,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,2BAA2B,CACtC,aAAqB,EACrB,MAAc,EACd,OAAsB,EACtB,UAA2B,EAAE;QAE7B,MAAM,YAAY,GAAG;;;oCAGW,CAAC;QAEjC,MAAM,UAAU,GAAG,GAAG,YAAY,kCAAkC,aAAa,wBAAwB,MAAM,EAAE,CAAC;QAClH,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAC7B,MAAc,EACd,SAAiB,EACjB,UAA2B,EAAE;QAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,wDAAa,IAAI,GAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;YAEvF,MAAM,QAAQ,GAAQ;gBACpB,KAAK;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;4BAC9B;gCACE,IAAI,EAAE,WAAW;gCACjB,SAAS,EAAE;oCACT,GAAG,EAAE,QAAQ,QAAQ,WAAW,WAAW,EAAE;iCAC9C;6BACF;yBACF;qBACF;iBACF;gBACD,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;aACtC,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAClC,QAAQ,EACR;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;aACF,CACF,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAClD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YACtE,eAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAClB,6BAA6B;IAC/B,CAAC;CACF;AA9LD,gDA8LC"}
@@ -1,10 +1,19 @@
1
- export declare class OpenRouterClient {
1
+ import { AIClient, AIClientOptions, AgentContext } from "../interfaces/AIClient";
2
+ export declare class OpenRouterClient implements AIClient {
3
+ readonly clientType: "direct-api";
4
+ readonly supportsTools = false;
5
+ readonly supportsStreaming = false;
2
6
  private client;
3
7
  private apiKey;
4
8
  constructor();
5
9
  hasApiKey(): boolean;
10
+ setApiKey(apiKey: string): void;
6
11
  checkConnection(): Promise<boolean>;
7
- generateText(prompt: string, options?: any): Promise<string>;
8
- generateComponent(prompt: string, options?: any): Promise<string>;
12
+ generateText(prompt: string, options?: AIClientOptions): Promise<string>;
13
+ generateComponent(prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
14
+ generateComponentRefinement(componentCode: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
15
+ generateVisionText(prompt: string, imagePath: string, options?: AIClientOptions): Promise<string>;
16
+ listModels(): Promise<string[]>;
17
+ cleanup(): Promise<void>;
9
18
  }
10
19
  //# sourceMappingURL=openRouterClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openRouterClient.d.ts","sourceRoot":"","sources":["../../src/utils/openRouterClient.ts"],"names":[],"mappings":"AAEA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;;IAoBrC,SAAS,IAAI,OAAO;IAId,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAahE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5E"}
1
+ {"version":3,"file":"openRouterClient.d.ts","sourceRoot":"","sources":["../../src/utils/openRouterClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEjF,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,UAAU,EAAG,YAAY,CAAU;IAC5C,QAAQ,CAAC,aAAa,SAAS;IAC/B,QAAQ,CAAC,iBAAiB,SAAS;IAEnC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;;IAoBrC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAYzB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAa5E,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAIZ,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAKZ,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAkCZ,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -1,4 +1,37 @@
1
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
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -7,6 +40,9 @@ exports.OpenRouterClient = void 0;
7
40
  const openai_1 = __importDefault(require("openai"));
8
41
  class OpenRouterClient {
9
42
  constructor() {
43
+ this.clientType = "direct-api";
44
+ this.supportsTools = false;
45
+ this.supportsStreaming = false;
10
46
  this.client = null;
11
47
  this.apiKey = null;
12
48
  this.apiKey =
@@ -27,6 +63,17 @@ class OpenRouterClient {
27
63
  hasApiKey() {
28
64
  return !!this.apiKey;
29
65
  }
66
+ setApiKey(apiKey) {
67
+ this.apiKey = apiKey;
68
+ this.client = new openai_1.default({
69
+ baseURL: "https://openrouter.ai/api/v1",
70
+ apiKey: this.apiKey,
71
+ defaultHeaders: {
72
+ "HTTP-Referer": "https://mycontext.dev",
73
+ "X-Title": "MyContext CLI",
74
+ },
75
+ });
76
+ }
30
77
  async checkConnection() {
31
78
  // Just check if client exists - don't make actual API call
32
79
  // (API calls in checkConnection cause false negatives)
@@ -36,16 +83,58 @@ class OpenRouterClient {
36
83
  if (!this.client)
37
84
  throw new Error("OpenRouter not configured");
38
85
  const response = await this.client.chat.completions.create({
39
- model: "deepseek/deepseek-r1", // OpenRouter format
86
+ model: options.model || "deepseek/deepseek-r1", // OpenRouter format
40
87
  messages: [{ role: "user", content: prompt }],
41
88
  temperature: options.temperature || 0.7,
42
89
  max_tokens: options.maxTokens || 4000,
43
90
  });
44
91
  return response.choices[0]?.message?.content || "";
45
92
  }
46
- async generateComponent(prompt, options = {}) {
93
+ async generateComponent(prompt, context, options = {}) {
47
94
  return this.generateText(prompt, options);
48
95
  }
96
+ async generateComponentRefinement(componentCode, prompt, context, options = {}) {
97
+ const fullPrompt = `Refine this component: ${prompt}\n\nExisting Code:\n${componentCode}`;
98
+ return this.generateText(fullPrompt, options);
99
+ }
100
+ async generateVisionText(prompt, imagePath, options = {}) {
101
+ if (!this.client)
102
+ throw new Error("OpenRouter not configured");
103
+ try {
104
+ const fs = await Promise.resolve().then(() => __importStar(require("fs")));
105
+ const imageBuffer = await fs.promises.readFile(imagePath);
106
+ const base64Image = imageBuffer.toString("base64");
107
+ const mimeType = imagePath.toLowerCase().endsWith(".png") ? "image/png" : "image/jpeg";
108
+ const response = await this.client.chat.completions.create({
109
+ model: options.model || "google/gemini-pro-1.5-vision", // Default vision model for OpenRouter
110
+ messages: [
111
+ {
112
+ role: "user",
113
+ content: [
114
+ { type: "text", text: prompt },
115
+ {
116
+ type: "image_url",
117
+ image_url: {
118
+ url: `data:${mimeType};base64,${base64Image}`,
119
+ },
120
+ },
121
+ ],
122
+ },
123
+ ],
124
+ max_tokens: options.maxTokens || 4000,
125
+ });
126
+ return response.choices[0]?.message?.content || "";
127
+ }
128
+ catch (error) {
129
+ throw new Error(`OpenRouter vision generation failed: ${error}`);
130
+ }
131
+ }
132
+ async listModels() {
133
+ return ["deepseek/deepseek-r1", "google/gemini-pro-1.5-vision", "anthropic/claude-3-sonnet"];
134
+ }
135
+ async cleanup() {
136
+ // No specific cleanup needed
137
+ }
49
138
  }
50
139
  exports.OpenRouterClient = OpenRouterClient;
51
140
  //# sourceMappingURL=openRouterClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openRouterClient.js","sourceRoot":"","sources":["../../src/utils/openRouterClient.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,MAAa,gBAAgB;IAI3B;QAHQ,WAAM,GAAkB,IAAI,CAAC;QAC7B,WAAM,GAAkB,IAAI,CAAC;QAGnC,IAAI,CAAC,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,4BAA4B;gBACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBAC9B,IAAI,CAAC;QAEP,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;gBACvB,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE;oBACd,cAAc,EAAE,uBAAuB;oBACvC,SAAS,EAAE,eAAe;iBAC3B;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,2DAA2D;QAC3D,uDAAuD;QACvD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,UAAe,EAAE;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,sBAAsB,EAAE,oBAAoB;YACnD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;YACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;SACtC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,UAAe,EAAE;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAhDD,4CAgDC"}
1
+ {"version":3,"file":"openRouterClient.js","sourceRoot":"","sources":["../../src/utils/openRouterClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unifiedDesignContextLoader.d.ts","sourceRoot":"","sources":["../../src/utils/unifiedDesignContextLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAA8C,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG/F;;;;;;;GAOG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAsB;IAQ/C,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACG,wBAAwB,CAAC,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC;QACxE,eAAe,EAAE,eAAe,CAAC;QACjC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,sBAAsB,EAAE,OAAO,CAAC;KACjC,CAAC;IA2GF;;OAEG;YACW,mBAAmB;IA4DjC;;OAEG;YACW,gBAAgB;IA+C9B;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAS1C;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IAoDF;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjD;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC/C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;OAEG;IACG,SAAS;IAIf;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAItC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAGzC"}
1
+ {"version":3,"file":"unifiedDesignContextLoader.d.ts","sourceRoot":"","sources":["../../src/utils/unifiedDesignContextLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAA8C,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG/F;;;;;;;GAOG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAsB;IAQ/C,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACG,wBAAwB,CAAC,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC;QACxE,eAAe,EAAE,eAAe,CAAC;QACjC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,sBAAsB,EAAE,OAAO,CAAC;KACjC,CAAC;IAkHF;;OAEG;YACW,mBAAmB;IAoEjC;;OAEG;YACW,gBAAgB;IA+C9B;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAS1C;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IAoDF;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjD;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC/C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;OAEG;IACG,SAAS;IAIf;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAItC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAGzC"}