mycontext-cli 0.1.0

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 (94) hide show
  1. package/README.md +440 -0
  2. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +43 -0
  3. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +1 -0
  4. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +1440 -0
  5. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +1 -0
  6. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts +35 -0
  7. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts.map +1 -0
  8. package/dist/cli/src/agents/implementations/DocsSubAgent.js +351 -0
  9. package/dist/cli/src/agents/implementations/DocsSubAgent.js.map +1 -0
  10. package/dist/cli/src/agents/implementations/QASubAgent.d.ts +31 -0
  11. package/dist/cli/src/agents/implementations/QASubAgent.d.ts.map +1 -0
  12. package/dist/cli/src/agents/implementations/QASubAgent.js +190 -0
  13. package/dist/cli/src/agents/implementations/QASubAgent.js.map +1 -0
  14. package/dist/cli/src/agents/interfaces/SubAgent.d.ts +157 -0
  15. package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +1 -0
  16. package/dist/cli/src/agents/interfaces/SubAgent.js +7 -0
  17. package/dist/cli/src/agents/interfaces/SubAgent.js.map +1 -0
  18. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts +59 -0
  19. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -0
  20. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js +305 -0
  21. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js.map +1 -0
  22. package/dist/cli/src/agents/personalities/definitions.d.ts +34 -0
  23. package/dist/cli/src/agents/personalities/definitions.d.ts.map +1 -0
  24. package/dist/cli/src/agents/personalities/definitions.js +360 -0
  25. package/dist/cli/src/agents/personalities/definitions.js.map +1 -0
  26. package/dist/cli/src/cli.d.ts +3 -0
  27. package/dist/cli/src/cli.d.ts.map +1 -0
  28. package/dist/cli/src/cli.js +286 -0
  29. package/dist/cli/src/cli.js.map +1 -0
  30. package/dist/cli/src/commands/auth.d.ts +23 -0
  31. package/dist/cli/src/commands/auth.d.ts.map +1 -0
  32. package/dist/cli/src/commands/auth.js +212 -0
  33. package/dist/cli/src/commands/auth.js.map +1 -0
  34. package/dist/cli/src/commands/generate-components.d.ts +28 -0
  35. package/dist/cli/src/commands/generate-components.d.ts.map +1 -0
  36. package/dist/cli/src/commands/generate-components.js +680 -0
  37. package/dist/cli/src/commands/generate-components.js.map +1 -0
  38. package/dist/cli/src/commands/generate.d.ts +108 -0
  39. package/dist/cli/src/commands/generate.d.ts.map +1 -0
  40. package/dist/cli/src/commands/generate.js +1984 -0
  41. package/dist/cli/src/commands/generate.js.map +1 -0
  42. package/dist/cli/src/commands/init.d.ts +13 -0
  43. package/dist/cli/src/commands/init.d.ts.map +1 -0
  44. package/dist/cli/src/commands/init.js +91 -0
  45. package/dist/cli/src/commands/init.js.map +1 -0
  46. package/dist/cli/src/commands/list.d.ts +17 -0
  47. package/dist/cli/src/commands/list.d.ts.map +1 -0
  48. package/dist/cli/src/commands/list.js +209 -0
  49. package/dist/cli/src/commands/list.js.map +1 -0
  50. package/dist/cli/src/commands/preview.d.ts +23 -0
  51. package/dist/cli/src/commands/preview.d.ts.map +1 -0
  52. package/dist/cli/src/commands/preview.js +1200 -0
  53. package/dist/cli/src/commands/preview.js.map +1 -0
  54. package/dist/cli/src/commands/status.d.ts +21 -0
  55. package/dist/cli/src/commands/status.d.ts.map +1 -0
  56. package/dist/cli/src/commands/status.js +287 -0
  57. package/dist/cli/src/commands/status.js.map +1 -0
  58. package/dist/cli/src/commands/validate.d.ts +22 -0
  59. package/dist/cli/src/commands/validate.d.ts.map +1 -0
  60. package/dist/cli/src/commands/validate.js +259 -0
  61. package/dist/cli/src/commands/validate.js.map +1 -0
  62. package/dist/cli/src/types/index.d.ts +152 -0
  63. package/dist/cli/src/types/index.d.ts.map +1 -0
  64. package/dist/cli/src/types/index.js +3 -0
  65. package/dist/cli/src/types/index.js.map +1 -0
  66. package/dist/cli/src/utils/apiKeyManager.d.ts +137 -0
  67. package/dist/cli/src/utils/apiKeyManager.d.ts.map +1 -0
  68. package/dist/cli/src/utils/apiKeyManager.js +471 -0
  69. package/dist/cli/src/utils/apiKeyManager.js.map +1 -0
  70. package/dist/cli/src/utils/errorHandler.d.ts +105 -0
  71. package/dist/cli/src/utils/errorHandler.d.ts.map +1 -0
  72. package/dist/cli/src/utils/errorHandler.js +332 -0
  73. package/dist/cli/src/utils/errorHandler.js.map +1 -0
  74. package/dist/cli/src/utils/fileSystem.d.ts +58 -0
  75. package/dist/cli/src/utils/fileSystem.d.ts.map +1 -0
  76. package/dist/cli/src/utils/fileSystem.js +230 -0
  77. package/dist/cli/src/utils/fileSystem.js.map +1 -0
  78. package/dist/cli/src/utils/githubModels.d.ts +53 -0
  79. package/dist/cli/src/utils/githubModels.d.ts.map +1 -0
  80. package/dist/cli/src/utils/githubModels.js +239 -0
  81. package/dist/cli/src/utils/githubModels.js.map +1 -0
  82. package/dist/cli/src/utils/spinner.d.ts +28 -0
  83. package/dist/cli/src/utils/spinner.d.ts.map +1 -0
  84. package/dist/cli/src/utils/spinner.js +112 -0
  85. package/dist/cli/src/utils/spinner.js.map +1 -0
  86. package/dist/cli/src/utils/xaiClient.d.ts +59 -0
  87. package/dist/cli/src/utils/xaiClient.d.ts.map +1 -0
  88. package/dist/cli/src/utils/xaiClient.js +244 -0
  89. package/dist/cli/src/utils/xaiClient.js.map +1 -0
  90. package/dist/lib/analytics/usage-tracker.d.ts +125 -0
  91. package/dist/lib/analytics/usage-tracker.d.ts.map +1 -0
  92. package/dist/lib/analytics/usage-tracker.js +429 -0
  93. package/dist/lib/analytics/usage-tracker.js.map +1 -0
  94. package/package.json +64 -0
@@ -0,0 +1,471 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKeyManager.js","sourceRoot":"","sources":["../../../../src/utils/apiKeyManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Comprehensive Error Handling System for MyContext CLI
3
+ *
4
+ * Provides structured error handling, logging, and recovery mechanisms
5
+ * for AI providers, API calls, and CLI operations.
6
+ */
7
+ export declare enum ErrorType {
8
+ API_ERROR = "API_ERROR",
9
+ NETWORK_ERROR = "NETWORK_ERROR",
10
+ AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
11
+ VALIDATION_ERROR = "VALIDATION_ERROR",
12
+ FILE_SYSTEM_ERROR = "FILE_SYSTEM_ERROR",
13
+ CONFIGURATION_ERROR = "CONFIGURATION_ERROR",
14
+ AI_PROVIDER_ERROR = "AI_PROVIDER_ERROR",
15
+ RATE_LIMIT_ERROR = "RATE_LIMIT_ERROR",
16
+ TIMEOUT_ERROR = "TIMEOUT_ERROR",
17
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
18
+ }
19
+ export declare enum ErrorSeverity {
20
+ LOW = "LOW",
21
+ MEDIUM = "MEDIUM",
22
+ HIGH = "HIGH",
23
+ CRITICAL = "CRITICAL"
24
+ }
25
+ export interface StructuredError {
26
+ type: ErrorType;
27
+ severity: ErrorSeverity;
28
+ message: string;
29
+ code?: string | number;
30
+ details?: Record<string, unknown>;
31
+ timestamp: string;
32
+ source?: string;
33
+ retryable?: boolean;
34
+ retryAfter?: number;
35
+ suggestions?: string[];
36
+ }
37
+ export interface ErrorContext {
38
+ operation?: string;
39
+ provider?: string;
40
+ userId?: string;
41
+ requestId?: string;
42
+ metadata?: Record<string, unknown>;
43
+ }
44
+ export declare class MyContextError extends Error {
45
+ readonly type: ErrorType;
46
+ readonly severity: ErrorSeverity;
47
+ readonly code?: string | number;
48
+ readonly details?: Record<string, unknown>;
49
+ readonly timestamp: string;
50
+ readonly source?: string;
51
+ readonly retryable?: boolean;
52
+ readonly retryAfter?: number;
53
+ readonly suggestions?: string[];
54
+ constructor(structuredError: StructuredError);
55
+ toJSON(): StructuredError;
56
+ }
57
+ export declare class ErrorHandler {
58
+ private static instance;
59
+ private errorLog;
60
+ private maxLogSize;
61
+ private constructor();
62
+ static getInstance(): ErrorHandler;
63
+ /**
64
+ * Create a structured error from various input types
65
+ */
66
+ createError(error: unknown, context?: ErrorContext, defaultType?: ErrorType): MyContextError;
67
+ /**
68
+ * Handle AI provider specific errors
69
+ */
70
+ handleAIProviderError(error: unknown, provider: string, operation: string, requestData?: Record<string, unknown>): MyContextError;
71
+ /**
72
+ * Handle network and connectivity errors
73
+ */
74
+ handleNetworkError(error: unknown, context?: ErrorContext): MyContextError;
75
+ /**
76
+ * Handle file system errors
77
+ */
78
+ handleFileSystemError(error: unknown, filePath?: string): MyContextError;
79
+ /**
80
+ * Log error for debugging and monitoring
81
+ */
82
+ private logError;
83
+ /**
84
+ * Get recent errors for debugging
85
+ */
86
+ getRecentErrors(count?: number): StructuredError[];
87
+ /**
88
+ * Clear error log
89
+ */
90
+ clearErrors(): void;
91
+ /**
92
+ * Handle standard JavaScript errors
93
+ */
94
+ private handleStandardError;
95
+ /**
96
+ * Handle object-type errors (API responses, etc.)
97
+ */
98
+ private handleObjectError;
99
+ }
100
+ export declare const errorHandler: ErrorHandler;
101
+ export declare const createAIProviderError: (error: unknown, provider: string, operation: string) => MyContextError;
102
+ export declare const createNetworkError: (error: unknown, context?: ErrorContext) => MyContextError;
103
+ export declare const createFileSystemError: (error: unknown, filePath?: string) => MyContextError;
104
+ export declare const createError: (error: unknown, context?: ErrorContext, type?: ErrorType) => MyContextError;
105
+ //# sourceMappingURL=errorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../../src/utils/errorHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAChC;AAED,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,QAAQ,EAAE,aAAa,CAAC;IACxC,SAAgB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;gBAE3B,eAAe,EAAE,eAAe;IAc5C,MAAM,IAAI,eAAe;CAc1B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,UAAU,CAAO;IAEzB,OAAO;WAEO,WAAW,IAAI,YAAY;IAOzC;;OAEG;IACI,WAAW,CAChB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,EAC1B,WAAW,GAAE,SAAmC,GAC/C,cAAc;IA2CjB;;OAEG;IACI,qBAAqB,CAC1B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,cAAc;IA6DjB;;OAEG;IACI,kBAAkB,CACvB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,GACzB,cAAc;IAkBjB;;OAEG;IACI,qBAAqB,CAC1B,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,cAAc;IA0BjB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA2BhB;;OAEG;IACI,eAAe,CAAC,KAAK,SAAK,GAAG,eAAe,EAAE;IAIrD;;OAEG;IACI,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAqC1B;AAGD,eAAO,MAAM,YAAY,cAA6B,CAAC;AAGvD,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,EACd,UAAU,MAAM,EAChB,WAAW,MAAM,mBACgD,CAAC;AAEpE,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,EAAE,UAAU,YAAY,mBACxB,CAAC;AAElD,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,EAAE,WAAW,MAAM,mBAClB,CAAC;AAEtD,eAAO,MAAM,WAAW,GACtB,OAAO,OAAO,EACd,UAAU,YAAY,EACtB,OAAO,SAAS,mBACiC,CAAC"}