mycontext-cli 0.2.0 → 0.2.2

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 (136) hide show
  1. package/README.md +17 -16
  2. package/dist/cli.js +6 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts +3 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +118 -11
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/setup.d.ts.map +1 -1
  9. package/dist/commands/setup.js +8 -0
  10. package/dist/commands/setup.js.map +1 -1
  11. package/dist/config/dependencies.json +180 -0
  12. package/package.json +9 -8
  13. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +0 -44
  14. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +0 -1
  15. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +0 -1374
  16. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +0 -1
  17. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts +0 -35
  18. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts.map +0 -1
  19. package/dist/cli/src/agents/implementations/DocsSubAgent.js +0 -351
  20. package/dist/cli/src/agents/implementations/DocsSubAgent.js.map +0 -1
  21. package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts +0 -120
  22. package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts.map +0 -1
  23. package/dist/cli/src/agents/implementations/EnhancementAgent.js +0 -606
  24. package/dist/cli/src/agents/implementations/EnhancementAgent.js.map +0 -1
  25. package/dist/cli/src/agents/implementations/QASubAgent.d.ts +0 -31
  26. package/dist/cli/src/agents/implementations/QASubAgent.d.ts.map +0 -1
  27. package/dist/cli/src/agents/implementations/QASubAgent.js +0 -190
  28. package/dist/cli/src/agents/implementations/QASubAgent.js.map +0 -1
  29. package/dist/cli/src/agents/interfaces/SubAgent.d.ts +0 -287
  30. package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +0 -1
  31. package/dist/cli/src/agents/interfaces/SubAgent.js +0 -7
  32. package/dist/cli/src/agents/interfaces/SubAgent.js.map +0 -1
  33. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts +0 -59
  34. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts.map +0 -1
  35. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js +0 -305
  36. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js.map +0 -1
  37. package/dist/cli/src/agents/personalities/definitions.d.ts +0 -34
  38. package/dist/cli/src/agents/personalities/definitions.d.ts.map +0 -1
  39. package/dist/cli/src/agents/personalities/definitions.js +0 -389
  40. package/dist/cli/src/agents/personalities/definitions.js.map +0 -1
  41. package/dist/cli/src/cli.d.ts +0 -3
  42. package/dist/cli/src/cli.d.ts.map +0 -1
  43. package/dist/cli/src/cli.js +0 -298
  44. package/dist/cli/src/cli.js.map +0 -1
  45. package/dist/cli/src/commands/auth.d.ts +0 -23
  46. package/dist/cli/src/commands/auth.d.ts.map +0 -1
  47. package/dist/cli/src/commands/auth.js +0 -212
  48. package/dist/cli/src/commands/auth.js.map +0 -1
  49. package/dist/cli/src/commands/enhance.d.ts +0 -28
  50. package/dist/cli/src/commands/enhance.d.ts.map +0 -1
  51. package/dist/cli/src/commands/enhance.js +0 -246
  52. package/dist/cli/src/commands/enhance.js.map +0 -1
  53. package/dist/cli/src/commands/generate-components.d.ts +0 -27
  54. package/dist/cli/src/commands/generate-components.d.ts.map +0 -1
  55. package/dist/cli/src/commands/generate-components.js +0 -680
  56. package/dist/cli/src/commands/generate-components.js.map +0 -1
  57. package/dist/cli/src/commands/generate.d.ts +0 -108
  58. package/dist/cli/src/commands/generate.d.ts.map +0 -1
  59. package/dist/cli/src/commands/generate.js +0 -1970
  60. package/dist/cli/src/commands/generate.js.map +0 -1
  61. package/dist/cli/src/commands/init.d.ts +0 -13
  62. package/dist/cli/src/commands/init.d.ts.map +0 -1
  63. package/dist/cli/src/commands/init.js +0 -91
  64. package/dist/cli/src/commands/init.js.map +0 -1
  65. package/dist/cli/src/commands/list.d.ts +0 -17
  66. package/dist/cli/src/commands/list.d.ts.map +0 -1
  67. package/dist/cli/src/commands/list.js +0 -210
  68. package/dist/cli/src/commands/list.js.map +0 -1
  69. package/dist/cli/src/commands/model.d.ts +0 -25
  70. package/dist/cli/src/commands/model.d.ts.map +0 -1
  71. package/dist/cli/src/commands/model.js +0 -317
  72. package/dist/cli/src/commands/model.js.map +0 -1
  73. package/dist/cli/src/commands/preview.d.ts +0 -23
  74. package/dist/cli/src/commands/preview.d.ts.map +0 -1
  75. package/dist/cli/src/commands/preview.js +0 -1200
  76. package/dist/cli/src/commands/preview.js.map +0 -1
  77. package/dist/cli/src/commands/setup.d.ts +0 -35
  78. package/dist/cli/src/commands/setup.d.ts.map +0 -1
  79. package/dist/cli/src/commands/setup.js +0 -412
  80. package/dist/cli/src/commands/setup.js.map +0 -1
  81. package/dist/cli/src/commands/status.d.ts +0 -21
  82. package/dist/cli/src/commands/status.d.ts.map +0 -1
  83. package/dist/cli/src/commands/status.js +0 -287
  84. package/dist/cli/src/commands/status.js.map +0 -1
  85. package/dist/cli/src/commands/validate.d.ts +0 -22
  86. package/dist/cli/src/commands/validate.d.ts.map +0 -1
  87. package/dist/cli/src/commands/validate.js +0 -259
  88. package/dist/cli/src/commands/validate.js.map +0 -1
  89. package/dist/cli/src/types/index.d.ts +0 -152
  90. package/dist/cli/src/types/index.d.ts.map +0 -1
  91. package/dist/cli/src/types/index.js +0 -3
  92. package/dist/cli/src/types/index.js.map +0 -1
  93. package/dist/cli/src/utils/apiKeyManager.d.ts +0 -137
  94. package/dist/cli/src/utils/apiKeyManager.d.ts.map +0 -1
  95. package/dist/cli/src/utils/apiKeyManager.js +0 -471
  96. package/dist/cli/src/utils/apiKeyManager.js.map +0 -1
  97. package/dist/cli/src/utils/componentValidator.d.ts +0 -60
  98. package/dist/cli/src/utils/componentValidator.d.ts.map +0 -1
  99. package/dist/cli/src/utils/componentValidator.js +0 -191
  100. package/dist/cli/src/utils/componentValidator.js.map +0 -1
  101. package/dist/cli/src/utils/designTokenExtractor.d.ts +0 -94
  102. package/dist/cli/src/utils/designTokenExtractor.d.ts.map +0 -1
  103. package/dist/cli/src/utils/designTokenExtractor.js +0 -231
  104. package/dist/cli/src/utils/designTokenExtractor.js.map +0 -1
  105. package/dist/cli/src/utils/errorHandler.d.ts +0 -105
  106. package/dist/cli/src/utils/errorHandler.d.ts.map +0 -1
  107. package/dist/cli/src/utils/errorHandler.js +0 -332
  108. package/dist/cli/src/utils/errorHandler.js.map +0 -1
  109. package/dist/cli/src/utils/fileSystem.d.ts +0 -58
  110. package/dist/cli/src/utils/fileSystem.d.ts.map +0 -1
  111. package/dist/cli/src/utils/fileSystem.js +0 -230
  112. package/dist/cli/src/utils/fileSystem.js.map +0 -1
  113. package/dist/cli/src/utils/githubModels.d.ts +0 -53
  114. package/dist/cli/src/utils/githubModels.d.ts.map +0 -1
  115. package/dist/cli/src/utils/githubModels.js +0 -239
  116. package/dist/cli/src/utils/githubModels.js.map +0 -1
  117. package/dist/cli/src/utils/ollamaClient.d.ts +0 -37
  118. package/dist/cli/src/utils/ollamaClient.d.ts.map +0 -1
  119. package/dist/cli/src/utils/ollamaClient.js +0 -213
  120. package/dist/cli/src/utils/ollamaClient.js.map +0 -1
  121. package/dist/cli/src/utils/spinner.d.ts +0 -30
  122. package/dist/cli/src/utils/spinner.d.ts.map +0 -1
  123. package/dist/cli/src/utils/spinner.js +0 -119
  124. package/dist/cli/src/utils/spinner.js.map +0 -1
  125. package/dist/cli/src/utils/xaiClient.d.ts +0 -59
  126. package/dist/cli/src/utils/xaiClient.d.ts.map +0 -1
  127. package/dist/cli/src/utils/xaiClient.js +0 -244
  128. package/dist/cli/src/utils/xaiClient.js.map +0 -1
  129. package/dist/lib/analytics/usage-tracker.d.ts +0 -125
  130. package/dist/lib/analytics/usage-tracker.d.ts.map +0 -1
  131. package/dist/lib/analytics/usage-tracker.js +0 -429
  132. package/dist/lib/analytics/usage-tracker.js.map +0 -1
  133. package/dist/utils/githubModels.d.ts +0 -53
  134. package/dist/utils/githubModels.d.ts.map +0 -1
  135. package/dist/utils/githubModels.js +0 -239
  136. package/dist/utils/githubModels.js.map +0 -1
@@ -1,471 +0,0 @@
1
- "use strict";
2
- /**
3
- * Secure API Key Management System for MyContext CLI
4
- *
5
- * Handles storage, validation, and secure access to API keys for multiple AI providers.
6
- * Supports environment variables, encrypted local storage, and secure key rotation.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.listAPIKeys = exports.removeAPIKey = exports.validateAPIKey = exports.setAPIKey = exports.getAPIKey = exports.apiKeyManager = exports.APIKeyManager = void 0;
43
- const fs = __importStar(require("fs-extra"));
44
- const path = __importStar(require("path"));
45
- const os = __importStar(require("os"));
46
- const crypto = __importStar(require("crypto"));
47
- const errorHandler_1 = require("./errorHandler");
48
- class APIKeyManager {
49
- constructor() {
50
- this.keys = new Map();
51
- this.providers = new Map();
52
- this.configPath = path.join(os.homedir(), ".mycontext", "api-keys.json");
53
- this.encryptionKey = this.getEncryptionKey();
54
- this.initializeProviders();
55
- }
56
- static getInstance() {
57
- if (!APIKeyManager.instance) {
58
- APIKeyManager.instance = new APIKeyManager();
59
- }
60
- return APIKeyManager.instance;
61
- }
62
- /**
63
- * Initialize supported AI providers
64
- */
65
- initializeProviders() {
66
- const providers = [
67
- {
68
- name: "xai",
69
- envVar: "XAI_API_KEY",
70
- validationUrl: "https://api.x.ai/v1/models",
71
- requiredPermissions: ["chat:completions"],
72
- rateLimits: { requests: 100, window: 3600 },
73
- },
74
- {
75
- name: "openai",
76
- envVar: "OPENAI_API_KEY",
77
- validationUrl: "https://api.openai.com/v1/models",
78
- requiredPermissions: ["chat:completions"],
79
- rateLimits: { requests: 3000, window: 3600 },
80
- },
81
- {
82
- name: "anthropic",
83
- envVar: "ANTHROPIC_API_KEY",
84
- validationUrl: "https://api.anthropic.com/v1/models",
85
- requiredPermissions: ["messages"],
86
- rateLimits: { requests: 100, window: 3600 },
87
- },
88
- {
89
- name: "google",
90
- envVar: "GOOGLE_API_KEY",
91
- validationUrl: "https://generativelanguage.googleapis.com/v1beta/models",
92
- requiredPermissions: ["generateContent"],
93
- rateLimits: { requests: 1000, window: 3600 },
94
- },
95
- ];
96
- providers.forEach((provider) => {
97
- this.providers.set(provider.name, provider);
98
- });
99
- }
100
- /**
101
- * Get or generate encryption key for secure storage
102
- */
103
- getEncryptionKey() {
104
- const keyPath = path.join(os.homedir(), ".mycontext", ".encryption-key");
105
- try {
106
- if (fs.existsSync(keyPath)) {
107
- return fs.readFileSync(keyPath, "utf-8");
108
- }
109
- }
110
- catch (error) {
111
- console.warn("Could not read existing encryption key:", error);
112
- }
113
- // Generate new encryption key
114
- const newKey = crypto.randomBytes(32).toString("hex");
115
- try {
116
- fs.ensureDirSync(path.dirname(keyPath));
117
- fs.writeFileSync(keyPath, newKey, { mode: 0o600 }); // Read/write for owner only
118
- return newKey;
119
- }
120
- catch (error) {
121
- console.warn("Could not save encryption key, using fallback:", error);
122
- // Fallback to environment-based key
123
- return (process.env.MYCONTEXT_ENCRYPTION_KEY ||
124
- crypto.randomBytes(32).toString("hex"));
125
- }
126
- }
127
- /**
128
- * Encrypt sensitive data
129
- */
130
- encrypt(data) {
131
- const iv = crypto.randomBytes(16);
132
- // Use PBKDF2 to derive a key from the encryption key
133
- const key = crypto.pbkdf2Sync(this.encryptionKey, iv, 100000, 32, "sha256");
134
- const cipher = crypto.createCipheriv("aes-256-cbc", key, iv);
135
- let encrypted = cipher.update(data, "utf8", "hex");
136
- encrypted += cipher.final("hex");
137
- return iv.toString("hex") + ":" + encrypted;
138
- }
139
- /**
140
- * Decrypt sensitive data
141
- */
142
- decrypt(encryptedData) {
143
- try {
144
- const [ivHex, encrypted] = encryptedData.split(":");
145
- const iv = Buffer.from(ivHex, "hex");
146
- // Use PBKDF2 to derive the same key from the encryption key
147
- const key = crypto.pbkdf2Sync(this.encryptionKey, iv, 100000, 32, "sha256");
148
- const decipher = crypto.createDecipheriv("aes-256-cbc", key, iv);
149
- let decrypted = decipher.update(encrypted, "hex", "utf8");
150
- decrypted += decipher.final("utf8");
151
- return decrypted;
152
- }
153
- catch (error) {
154
- throw new Error("Failed to decrypt API key data");
155
- }
156
- }
157
- /**
158
- * Load API keys from secure storage
159
- */
160
- async loadKeys() {
161
- try {
162
- if (!fs.existsSync(this.configPath)) {
163
- return;
164
- }
165
- const encryptedData = await fs.readFile(this.configPath, "utf-8");
166
- const decryptedData = this.decrypt(encryptedData);
167
- const keysData = JSON.parse(decryptedData);
168
- this.keys.clear();
169
- Object.entries(keysData).forEach(([provider, config]) => {
170
- this.keys.set(provider, config);
171
- });
172
- console.log(`📁 Loaded ${this.keys.size} API keys from secure storage`);
173
- }
174
- catch (error) {
175
- console.warn("Failed to load API keys from storage:", error);
176
- // Continue with environment variables only
177
- }
178
- }
179
- /**
180
- * Save API keys to secure storage
181
- */
182
- async saveKeys() {
183
- try {
184
- const keysData = {};
185
- this.keys.forEach((config, provider) => {
186
- keysData[provider] = config;
187
- });
188
- const jsonData = JSON.stringify(keysData, null, 2);
189
- const encryptedData = this.encrypt(jsonData);
190
- await fs.ensureDir(path.dirname(this.configPath));
191
- await fs.writeFile(this.configPath, encryptedData, { mode: 0o600 });
192
- console.log(`💾 Saved ${this.keys.size} API keys to secure storage`);
193
- }
194
- catch (error) {
195
- throw (0, errorHandler_1.createError)(error, { operation: "save_api_keys" }, errorHandler_1.ErrorType.FILE_SYSTEM_ERROR);
196
- }
197
- }
198
- /**
199
- * Get API key for a provider
200
- */
201
- async getKey(provider) {
202
- // Check environment variables first
203
- const envKey = this.getKeyFromEnvironment(provider);
204
- if (envKey) {
205
- return envKey;
206
- }
207
- // Check stored keys
208
- const storedKey = this.keys.get(provider);
209
- if (storedKey?.key) {
210
- // Update last used timestamp
211
- storedKey.lastUsed = new Date().toISOString();
212
- await this.saveKeys();
213
- return storedKey.key;
214
- }
215
- return null;
216
- }
217
- /**
218
- * Get API key from environment variables
219
- */
220
- getKeyFromEnvironment(provider) {
221
- const providerConfig = this.providers.get(provider);
222
- if (!providerConfig) {
223
- return null;
224
- }
225
- return process.env[providerConfig.envVar] || null;
226
- }
227
- /**
228
- * Set API key for a provider
229
- */
230
- async setKey(provider, key, options = {}) {
231
- // Validate the key format
232
- if (!this.validateKeyFormat(provider, key)) {
233
- throw (0, errorHandler_1.createError)(new Error(`Invalid API key format for ${provider}`), { operation: "set_api_key", provider }, errorHandler_1.ErrorType.VALIDATION_ERROR);
234
- }
235
- const config = {
236
- provider,
237
- key,
238
- createdAt: new Date().toISOString(),
239
- isValid: true,
240
- ...options,
241
- };
242
- this.keys.set(provider, config);
243
- await this.saveKeys();
244
- console.log(`✅ API key set for ${provider}`);
245
- }
246
- /**
247
- * Validate API key format
248
- */
249
- validateKeyFormat(provider, key) {
250
- if (!key || typeof key !== "string" || key.length < 10) {
251
- return false;
252
- }
253
- // Provider-specific validation
254
- switch (provider) {
255
- case "xai":
256
- return key.startsWith("xai_") && key.length >= 50;
257
- case "openai":
258
- return key.startsWith("sk-") && key.length >= 50;
259
- case "anthropic":
260
- return key.startsWith("sk-ant-") && key.length >= 50;
261
- case "google":
262
- return key.length >= 30; // Google API keys vary in format
263
- default:
264
- return key.length >= 20; // Generic minimum
265
- }
266
- }
267
- /**
268
- * Validate API key with provider
269
- */
270
- async validateKey(provider, key) {
271
- const apiKey = key || (await this.getKey(provider));
272
- if (!apiKey) {
273
- return {
274
- isValid: false,
275
- provider,
276
- error: "No API key found",
277
- };
278
- }
279
- const providerConfig = this.providers.get(provider);
280
- if (!providerConfig) {
281
- return {
282
- isValid: false,
283
- provider,
284
- error: "Unknown provider",
285
- };
286
- }
287
- // Basic format validation
288
- if (!this.validateKeyFormat(provider, apiKey)) {
289
- return {
290
- isValid: false,
291
- provider,
292
- error: "Invalid key format",
293
- };
294
- }
295
- // Online validation if URL is provided
296
- if (providerConfig.validationUrl) {
297
- try {
298
- const isValid = await this.validateWithProvider(provider, apiKey, providerConfig.validationUrl);
299
- return {
300
- isValid,
301
- provider,
302
- permissions: providerConfig.requiredPermissions,
303
- rateLimit: providerConfig.rateLimits,
304
- error: isValid ? undefined : "Key validation failed",
305
- };
306
- }
307
- catch (error) {
308
- return {
309
- isValid: false,
310
- provider,
311
- error: `Validation error: ${error instanceof Error ? error.message : "Unknown error"}`,
312
- };
313
- }
314
- }
315
- // Offline validation only
316
- return {
317
- isValid: true,
318
- provider,
319
- permissions: providerConfig.requiredPermissions,
320
- rateLimit: providerConfig.rateLimits,
321
- };
322
- }
323
- /**
324
- * Validate API key with provider's API
325
- */
326
- async validateWithProvider(provider, key, validationUrl) {
327
- try {
328
- const response = await fetch(validationUrl, {
329
- method: "GET",
330
- headers: {
331
- Authorization: `Bearer ${key}`,
332
- "User-Agent": "MyContext-CLI/1.0.0",
333
- },
334
- signal: AbortSignal.timeout(10000), // 10 second timeout
335
- });
336
- return response.ok;
337
- }
338
- catch (error) {
339
- console.warn(`Failed to validate ${provider} API key:`, error);
340
- return false;
341
- }
342
- }
343
- /**
344
- * Remove API key for a provider
345
- */
346
- async removeKey(provider) {
347
- if (this.keys.has(provider)) {
348
- this.keys.delete(provider);
349
- await this.saveKeys();
350
- console.log(`🗑️ API key removed for ${provider}`);
351
- }
352
- else {
353
- console.log(`ℹ️ No stored API key found for ${provider}`);
354
- }
355
- }
356
- /**
357
- * List all configured API keys
358
- */
359
- listKeys() {
360
- const result = [];
361
- this.providers.forEach((config, provider) => {
362
- const envKey = this.getKeyFromEnvironment(provider);
363
- const storedKey = this.keys.get(provider);
364
- let source = "none";
365
- let hasKey = false;
366
- if (envKey) {
367
- source = "environment";
368
- hasKey = true;
369
- }
370
- else if (storedKey?.key) {
371
- source = "storage";
372
- hasKey = true;
373
- }
374
- result.push({ provider, hasKey, source });
375
- });
376
- return result;
377
- }
378
- /**
379
- * Get provider configuration
380
- */
381
- getProviderConfig(provider) {
382
- return this.providers.get(provider);
383
- }
384
- /**
385
- * List all supported providers
386
- */
387
- getSupportedProviders() {
388
- return Array.from(this.providers.keys());
389
- }
390
- /**
391
- * Clear all stored API keys
392
- */
393
- async clearAllKeys() {
394
- this.keys.clear();
395
- await this.saveKeys();
396
- console.log("🗑️ All stored API keys cleared");
397
- }
398
- /**
399
- * Export API keys (for backup purposes)
400
- */
401
- async exportKeys(password) {
402
- const keysData = {};
403
- this.keys.forEach((config, provider) => {
404
- keysData[provider] = config;
405
- });
406
- const jsonData = JSON.stringify(keysData, null, 2);
407
- const encryptedData = this.encrypt(jsonData);
408
- // Additional encryption with user password
409
- const salt = crypto.randomBytes(16);
410
- const key = crypto.pbkdf2Sync(password, salt, 100000, 32, "sha256");
411
- const iv = crypto.randomBytes(16);
412
- const cipher = crypto.createCipheriv("aes-256-cbc", key, iv);
413
- let encrypted = cipher.update(encryptedData, "utf8", "hex");
414
- encrypted += cipher.final("hex");
415
- encrypted =
416
- salt.toString("hex") + ":" + iv.toString("hex") + ":" + encrypted;
417
- return JSON.stringify({
418
- version: "1.0",
419
- salt: salt.toString("hex"),
420
- data: encrypted,
421
- timestamp: new Date().toISOString(),
422
- });
423
- }
424
- /**
425
- * Import API keys from backup
426
- */
427
- async importKeys(backupData, password) {
428
- try {
429
- const backup = JSON.parse(backupData);
430
- if (backup.version !== "1.0") {
431
- throw new Error("Unsupported backup version");
432
- }
433
- // Decrypt with user password
434
- const [saltHex, ivHex, encrypted] = backup.data.split(":");
435
- const salt = Buffer.from(saltHex, "hex");
436
- const iv = Buffer.from(ivHex, "hex");
437
- const key = crypto.pbkdf2Sync(password, salt, 100000, 32, "sha256");
438
- const decipher = crypto.createDecipheriv("aes-256-cbc", key, iv);
439
- let decrypted = decipher.update(encrypted, "hex", "utf8");
440
- decrypted += decipher.final("utf8");
441
- // Decrypt with internal key
442
- const keysData = JSON.parse(this.decrypt(decrypted));
443
- // Validate and import keys
444
- for (const [provider, config] of Object.entries(keysData)) {
445
- if (this.validateKeyFormat(provider, config.key)) {
446
- this.keys.set(provider, config);
447
- }
448
- }
449
- await this.saveKeys();
450
- console.log(`📥 Imported ${Object.keys(keysData).length} API keys from backup`);
451
- }
452
- catch (error) {
453
- throw (0, errorHandler_1.createError)(error, { operation: "import_api_keys" }, errorHandler_1.ErrorType.VALIDATION_ERROR);
454
- }
455
- }
456
- }
457
- exports.APIKeyManager = APIKeyManager;
458
- // Export singleton instance
459
- exports.apiKeyManager = APIKeyManager.getInstance();
460
- // Utility functions
461
- const getAPIKey = (provider) => exports.apiKeyManager.getKey(provider);
462
- exports.getAPIKey = getAPIKey;
463
- const setAPIKey = (provider, key, options) => exports.apiKeyManager.setKey(provider, key, options);
464
- exports.setAPIKey = setAPIKey;
465
- const validateAPIKey = (provider, key) => exports.apiKeyManager.validateKey(provider, key);
466
- exports.validateAPIKey = validateAPIKey;
467
- const removeAPIKey = (provider) => exports.apiKeyManager.removeKey(provider);
468
- exports.removeAPIKey = removeAPIKey;
469
- const listAPIKeys = () => exports.apiKeyManager.listKeys();
470
- exports.listAPIKeys = listAPIKeys;
471
- //# sourceMappingURL=apiKeyManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiKeyManager.js","sourceRoot":"","sources":["../../../../src/utils/apiKeyManager.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Component Validator
3
- *
4
- * Validates React components for syntax, structure, and best practices.
5
- * Used by the EnhancementAgent to ensure quality and compliance.
6
- */
7
- export interface ComponentValidation {
8
- isValid: boolean;
9
- errors: ValidationError[];
10
- warnings: ValidationWarning[];
11
- score: number;
12
- suggestions: string[];
13
- }
14
- export interface ValidationError {
15
- type: "syntax" | "structure" | "react" | "typescript" | "accessibility";
16
- message: string;
17
- line?: number;
18
- severity: "error" | "warning";
19
- }
20
- export interface ValidationWarning {
21
- type: "performance" | "accessibility" | "best-practice";
22
- message: string;
23
- line?: number;
24
- suggestion: string;
25
- }
26
- export declare class ComponentValidator {
27
- /**
28
- * Validate component syntax
29
- */
30
- validateSyntax(componentCode: string): Promise<boolean>;
31
- /**
32
- * Validate enhancement against constraints
33
- */
34
- validateEnhancement(componentCode: string, constraints: {
35
- maxDependencies: number;
36
- targetFramework: "react" | "next";
37
- uiLibrary: "shadcn" | "custom";
38
- }): Promise<ComponentValidation>;
39
- /**
40
- * Extract dependencies from component code
41
- */
42
- private extractDependencies;
43
- /**
44
- * Extract shadcn/ui components
45
- */
46
- private extractShadcnComponents;
47
- /**
48
- * Check accessibility issues
49
- */
50
- private checkAccessibility;
51
- /**
52
- * Check performance issues
53
- */
54
- private checkPerformance;
55
- /**
56
- * Calculate validation score
57
- */
58
- private calculateScore;
59
- }
60
- //# sourceMappingURL=componentValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"componentValidator.d.ts","sourceRoot":"","sources":["../../../../src/utils/componentValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B7D;;OAEG;IACG,mBAAmB,CACvB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE;QACX,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;QAClC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAChC,GACA,OAAO,CAAC,mBAAmB,CAAC;IA+C/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,cAAc;CAWvB"}