@cuijy/free-api 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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +299 -0
  3. package/bin/freeapi +8 -0
  4. package/dist/cli/commands/chat.d.ts +3 -0
  5. package/dist/cli/commands/chat.d.ts.map +1 -0
  6. package/dist/cli/commands/chat.js +39 -0
  7. package/dist/cli/commands/chat.js.map +1 -0
  8. package/dist/cli/commands/config.d.ts +3 -0
  9. package/dist/cli/commands/config.d.ts.map +1 -0
  10. package/dist/cli/commands/config.js +289 -0
  11. package/dist/cli/commands/config.js.map +1 -0
  12. package/dist/cli/commands/init.d.ts +3 -0
  13. package/dist/cli/commands/init.d.ts.map +1 -0
  14. package/dist/cli/commands/init.js +114 -0
  15. package/dist/cli/commands/init.js.map +1 -0
  16. package/dist/cli/commands/list.d.ts +3 -0
  17. package/dist/cli/commands/list.d.ts.map +1 -0
  18. package/dist/cli/commands/list.js +109 -0
  19. package/dist/cli/commands/list.js.map +1 -0
  20. package/dist/cli/commands/logs.d.ts +3 -0
  21. package/dist/cli/commands/logs.d.ts.map +1 -0
  22. package/dist/cli/commands/logs.js +51 -0
  23. package/dist/cli/commands/logs.js.map +1 -0
  24. package/dist/cli/commands/start.d.ts +3 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -0
  26. package/dist/cli/commands/start.js +34 -0
  27. package/dist/cli/commands/start.js.map +1 -0
  28. package/dist/cli/commands/status.d.ts +3 -0
  29. package/dist/cli/commands/status.d.ts.map +1 -0
  30. package/dist/cli/commands/status.js +45 -0
  31. package/dist/cli/commands/status.js.map +1 -0
  32. package/dist/cli/commands/stop.d.ts +3 -0
  33. package/dist/cli/commands/stop.d.ts.map +1 -0
  34. package/dist/cli/commands/stop.js +54 -0
  35. package/dist/cli/commands/stop.js.map +1 -0
  36. package/dist/cli/index.d.ts +3 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +79 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/index.d.ts +7 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +17 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/services/base/index.d.ts +112 -0
  45. package/dist/services/base/index.d.ts.map +1 -0
  46. package/dist/services/base/index.js +51 -0
  47. package/dist/services/base/index.js.map +1 -0
  48. package/dist/services/base/types.d.ts +114 -0
  49. package/dist/services/base/types.d.ts.map +1 -0
  50. package/dist/services/base/types.js +7 -0
  51. package/dist/services/base/types.js.map +1 -0
  52. package/dist/services/chatgpt/api-client.d.ts +81 -0
  53. package/dist/services/chatgpt/api-client.d.ts.map +1 -0
  54. package/dist/services/chatgpt/api-client.js +325 -0
  55. package/dist/services/chatgpt/api-client.js.map +1 -0
  56. package/dist/services/chatgpt/cli-adapter.d.ts +108 -0
  57. package/dist/services/chatgpt/cli-adapter.d.ts.map +1 -0
  58. package/dist/services/chatgpt/cli-adapter.js +315 -0
  59. package/dist/services/chatgpt/cli-adapter.js.map +1 -0
  60. package/dist/services/chatgpt/config-manager.d.ts +87 -0
  61. package/dist/services/chatgpt/config-manager.d.ts.map +1 -0
  62. package/dist/services/chatgpt/config-manager.js +344 -0
  63. package/dist/services/chatgpt/config-manager.js.map +1 -0
  64. package/dist/services/chatgpt/config-wizard.d.ts +35 -0
  65. package/dist/services/chatgpt/config-wizard.d.ts.map +1 -0
  66. package/dist/services/chatgpt/config-wizard.js +524 -0
  67. package/dist/services/chatgpt/config-wizard.js.map +1 -0
  68. package/dist/services/chatgpt/error-handler.d.ts +94 -0
  69. package/dist/services/chatgpt/error-handler.d.ts.map +1 -0
  70. package/dist/services/chatgpt/error-handler.js +409 -0
  71. package/dist/services/chatgpt/error-handler.js.map +1 -0
  72. package/dist/services/chatgpt/exports.d.ts +71 -0
  73. package/dist/services/chatgpt/exports.d.ts.map +1 -0
  74. package/dist/services/chatgpt/exports.js +81 -0
  75. package/dist/services/chatgpt/exports.js.map +1 -0
  76. package/dist/services/chatgpt/index.d.ts +125 -0
  77. package/dist/services/chatgpt/index.d.ts.map +1 -0
  78. package/dist/services/chatgpt/index.js +394 -0
  79. package/dist/services/chatgpt/index.js.map +1 -0
  80. package/dist/services/chatgpt/service-adapter.d.ts +152 -0
  81. package/dist/services/chatgpt/service-adapter.d.ts.map +1 -0
  82. package/dist/services/chatgpt/service-adapter.js +430 -0
  83. package/dist/services/chatgpt/service-adapter.js.map +1 -0
  84. package/dist/services/chatgpt/session-manager.d.ts +113 -0
  85. package/dist/services/chatgpt/session-manager.d.ts.map +1 -0
  86. package/dist/services/chatgpt/session-manager.js +396 -0
  87. package/dist/services/chatgpt/session-manager.js.map +1 -0
  88. package/dist/services/chatgpt/types.d.ts +130 -0
  89. package/dist/services/chatgpt/types.d.ts.map +1 -0
  90. package/dist/services/chatgpt/types.js +19 -0
  91. package/dist/services/chatgpt/types.js.map +1 -0
  92. package/dist/utils/config.d.ts +61 -0
  93. package/dist/utils/config.d.ts.map +1 -0
  94. package/dist/utils/config.js +215 -0
  95. package/dist/utils/config.js.map +1 -0
  96. package/package.json +91 -0
@@ -0,0 +1,524 @@
1
+ "use strict";
2
+ /**
3
+ * ChatGPT Configuration Wizard
4
+ * Interactive wizard to help users configure ChatGPT service
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ChatGPTConfigWizard = void 0;
11
+ exports.runConfigWizard = runConfigWizard;
12
+ const inquirer_1 = __importDefault(require("inquirer"));
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const types_1 = require("./types");
15
+ const config_manager_1 = require("./config-manager");
16
+ class ChatGPTConfigWizard {
17
+ configManager;
18
+ constructor() {
19
+ this.configManager = new config_manager_1.ChatGPTConfigManager();
20
+ }
21
+ /**
22
+ * Run the configuration wizard
23
+ */
24
+ async run() {
25
+ console.log(chalk_1.default.blue.bold('ChatGPT Configuration Wizard'));
26
+ console.log(chalk_1.default.gray('This wizard will help you configure the ChatGPT service.'));
27
+ console.log();
28
+ // Step 1: Choose mode
29
+ const modeAnswer = await inquirer_1.default.prompt([
30
+ {
31
+ type: 'list',
32
+ name: 'mode',
33
+ message: 'Select authentication mode:',
34
+ choices: [
35
+ {
36
+ name: 'Public Mode (No login required, limited tokens)',
37
+ value: 'public'
38
+ },
39
+ {
40
+ name: 'Authenticated Mode (Login with credentials, full access)',
41
+ value: 'authenticated'
42
+ }
43
+ ],
44
+ default: 'public'
45
+ }
46
+ ]);
47
+ const config = {
48
+ mode: modeAnswer.mode,
49
+ enabled: true
50
+ };
51
+ // Step 2: Configure API settings
52
+ const apiAnswers = await inquirer_1.default.prompt([
53
+ {
54
+ type: 'input',
55
+ name: 'base_url',
56
+ message: 'Enter API base URL:',
57
+ default: 'https://api.openai.com/v1/',
58
+ validate: (input) => {
59
+ try {
60
+ new URL(input);
61
+ return true;
62
+ }
63
+ catch {
64
+ return 'Please enter a valid URL (e.g., https://api.openai.com/v1/)';
65
+ }
66
+ }
67
+ },
68
+ {
69
+ type: 'list',
70
+ name: 'model',
71
+ message: 'Select default model:',
72
+ choices: [
73
+ { name: 'GPT-3.5 Turbo (Fast, cost-effective)', value: 'gpt-3.5-turbo' },
74
+ { name: 'GPT-3.5 Turbo 16K (Longer context)', value: 'gpt-3.5-turbo-16k' },
75
+ { name: 'GPT-4 (Most capable)', value: 'gpt-4' },
76
+ { name: 'GPT-4 Turbo (Latest GPT-4)', value: 'gpt-4-turbo-preview' }
77
+ ],
78
+ default: 'gpt-3.5-turbo'
79
+ },
80
+ {
81
+ type: 'number',
82
+ name: 'max_tokens',
83
+ message: 'Maximum tokens per response:',
84
+ default: 4096,
85
+ validate: (input) => {
86
+ if (input < 1 || input > 16384) {
87
+ return 'Please enter a value between 1 and 16384';
88
+ }
89
+ return true;
90
+ }
91
+ },
92
+ {
93
+ type: 'number',
94
+ name: 'temperature',
95
+ message: 'Temperature (0.0 to 2.0):',
96
+ default: 0.7,
97
+ validate: (input) => {
98
+ if (input < 0 || input > 2) {
99
+ return 'Please enter a value between 0.0 and 2.0';
100
+ }
101
+ return true;
102
+ }
103
+ }
104
+ ]);
105
+ Object.assign(config, apiAnswers);
106
+ // Step 3: Authentication configuration
107
+ if (config.mode === 'authenticated') {
108
+ const authAnswers = await inquirer_1.default.prompt([
109
+ {
110
+ type: 'input',
111
+ name: 'api_key',
112
+ message: 'Enter your OpenAI API key (sk-...):',
113
+ validate: (input) => {
114
+ if (!input.trim()) {
115
+ return 'API key is required for authenticated mode';
116
+ }
117
+ if (!input.startsWith('sk-')) {
118
+ return 'API key should start with "sk-"';
119
+ }
120
+ return true;
121
+ }
122
+ },
123
+ {
124
+ type: 'confirm',
125
+ name: 'save_password',
126
+ message: 'Save API key securely?',
127
+ default: true
128
+ }
129
+ ]);
130
+ if (authAnswers.save_password) {
131
+ config.api_key = authAnswers.api_key;
132
+ }
133
+ else {
134
+ console.log(chalk_1.default.yellow('Warning: API key will not be saved. You will need to enter it each time.'));
135
+ }
136
+ }
137
+ // Step 4: Advanced settings
138
+ const advancedAnswers = await inquirer_1.default.prompt([
139
+ {
140
+ type: 'confirm',
141
+ name: 'configure_advanced',
142
+ message: 'Configure advanced settings?',
143
+ default: false
144
+ }
145
+ ]);
146
+ if (advancedAnswers.configure_advanced) {
147
+ const advancedSettings = await inquirer_1.default.prompt([
148
+ {
149
+ type: 'number',
150
+ name: 'timeout',
151
+ message: 'Request timeout (milliseconds):',
152
+ default: 30000,
153
+ validate: (input) => {
154
+ if (input < 1000 || input > 300000) {
155
+ return 'Please enter a value between 1000 and 300000';
156
+ }
157
+ return true;
158
+ }
159
+ },
160
+ {
161
+ type: 'number',
162
+ name: 'max_retries',
163
+ message: 'Maximum retry attempts:',
164
+ default: 3,
165
+ validate: (input) => {
166
+ if (input < 0 || input > 10) {
167
+ return 'Please enter a value between 0 and 10';
168
+ }
169
+ return true;
170
+ }
171
+ },
172
+ {
173
+ type: 'number',
174
+ name: 'retry_delay',
175
+ message: 'Retry delay (milliseconds):',
176
+ default: 1000,
177
+ validate: (input) => {
178
+ if (input < 0 || input > 10000) {
179
+ return 'Please enter a value between 0 and 10000';
180
+ }
181
+ return true;
182
+ }
183
+ },
184
+ {
185
+ type: 'number',
186
+ name: 'requests_per_minute',
187
+ message: 'Requests per minute limit:',
188
+ default: 60,
189
+ validate: (input) => {
190
+ if (input < 1 || input > 1000) {
191
+ return 'Please enter a value between 1 and 1000';
192
+ }
193
+ return true;
194
+ }
195
+ },
196
+ {
197
+ type: 'number',
198
+ name: 'tokens_per_minute',
199
+ message: 'Tokens per minute limit:',
200
+ default: 150000,
201
+ validate: (input) => {
202
+ if (input < 1000 || input > 1000000) {
203
+ return 'Please enter a value between 1000 and 1000000';
204
+ }
205
+ return true;
206
+ }
207
+ },
208
+ {
209
+ type: 'number',
210
+ name: 'top_p',
211
+ message: 'Top-p sampling (0.0 to 1.0):',
212
+ default: 1,
213
+ validate: (input) => {
214
+ if (input < 0 || input > 1) {
215
+ return 'Please enter a value between 0.0 and 1.0';
216
+ }
217
+ return true;
218
+ }
219
+ },
220
+ {
221
+ type: 'number',
222
+ name: 'frequency_penalty',
223
+ message: 'Frequency penalty (-2.0 to 2.0):',
224
+ default: 0,
225
+ validate: (input) => {
226
+ if (input < -2 || input > 2) {
227
+ return 'Please enter a value between -2.0 and 2.0';
228
+ }
229
+ return true;
230
+ }
231
+ },
232
+ {
233
+ type: 'number',
234
+ name: 'presence_penalty',
235
+ message: 'Presence penalty (-2.0 to 2.0):',
236
+ default: 0,
237
+ validate: (input) => {
238
+ if (input < -2 || input > 2) {
239
+ return 'Please enter a value between -2.0 and 2.0';
240
+ }
241
+ return true;
242
+ }
243
+ }
244
+ ]);
245
+ Object.assign(config, advancedSettings);
246
+ }
247
+ else {
248
+ // Apply default advanced settings
249
+ Object.assign(config, {
250
+ timeout: 30000,
251
+ max_retries: 3,
252
+ retry_delay: 1000,
253
+ requests_per_minute: 60,
254
+ tokens_per_minute: 150000,
255
+ top_p: 1,
256
+ frequency_penalty: 0,
257
+ presence_penalty: 0
258
+ });
259
+ }
260
+ // Step 5: Test connection
261
+ const testAnswer = await inquirer_1.default.prompt([
262
+ {
263
+ type: 'confirm',
264
+ name: 'test_connection',
265
+ message: 'Test connection with current configuration?',
266
+ default: true
267
+ }
268
+ ]);
269
+ if (testAnswer.test_connection) {
270
+ await this.testConnection(config);
271
+ }
272
+ // Step 6: Save configuration
273
+ const saveAnswer = await inquirer_1.default.prompt([
274
+ {
275
+ type: 'confirm',
276
+ name: 'save_config',
277
+ message: 'Save configuration?',
278
+ default: true
279
+ }
280
+ ]);
281
+ if (saveAnswer.save_config) {
282
+ const finalConfig = config;
283
+ await this.saveConfiguration(finalConfig);
284
+ console.log(chalk_1.default.green('Configuration saved successfully!'));
285
+ return finalConfig;
286
+ }
287
+ else {
288
+ console.log(chalk_1.default.yellow('Configuration not saved.'));
289
+ return config;
290
+ }
291
+ }
292
+ /**
293
+ * Test connection with current configuration
294
+ */
295
+ async testConnection(config) {
296
+ console.log(chalk_1.default.blue('Testing connection...'));
297
+ try {
298
+ // Create a simple test
299
+ const testUrl = new URL(config.base_url);
300
+ console.log(chalk_1.default.gray(`Testing connection to: ${testUrl.origin}`));
301
+ // Simulate connection test
302
+ await new Promise(resolve => setTimeout(resolve, 1000));
303
+ console.log(chalk_1.default.green('✓ Connection test passed'));
304
+ console.log(chalk_1.default.gray(`Base URL: ${config.base_url}`));
305
+ console.log(chalk_1.default.gray(`Mode: ${config.mode}`));
306
+ console.log(chalk_1.default.gray(`Model: ${config.model}`));
307
+ }
308
+ catch (error) {
309
+ console.log(chalk_1.default.red('✗ Connection test failed'));
310
+ console.log(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
311
+ const retryAnswer = await inquirer_1.default.prompt([
312
+ {
313
+ type: 'confirm',
314
+ name: 'retry',
315
+ message: 'Retry with different settings?',
316
+ default: true
317
+ }
318
+ ]);
319
+ if (retryAnswer.retry) {
320
+ await this.run();
321
+ }
322
+ }
323
+ console.log();
324
+ }
325
+ /**
326
+ * Save configuration
327
+ */
328
+ async saveConfiguration(config) {
329
+ try {
330
+ await this.configManager.saveConfig(config);
331
+ console.log(chalk_1.default.gray(`Configuration saved to: ${this.configManager.getConfigFilePath()}`));
332
+ }
333
+ catch (error) {
334
+ console.log(chalk_1.default.red('Failed to save configuration:'));
335
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
336
+ const manualSaveAnswer = await inquirer_1.default.prompt([
337
+ {
338
+ type: 'confirm',
339
+ name: 'manual_save',
340
+ message: 'Save configuration manually?',
341
+ default: false
342
+ }
343
+ ]);
344
+ if (manualSaveAnswer.manual_save) {
345
+ console.log(chalk_1.default.yellow('Manual configuration:'));
346
+ console.log(JSON.stringify(config, null, 2));
347
+ console.log(chalk_1.default.yellow('Copy this configuration to your config file.'));
348
+ }
349
+ }
350
+ }
351
+ /**
352
+ * Quick setup with minimal prompts
353
+ */
354
+ async quickSetup() {
355
+ console.log(chalk_1.default.blue.bold('ChatGPT Quick Setup'));
356
+ console.log(chalk_1.default.gray('Minimal setup with default values.'));
357
+ console.log();
358
+ const answers = await inquirer_1.default.prompt([
359
+ {
360
+ type: 'input',
361
+ name: 'api_key',
362
+ message: 'Enter your OpenAI API key (optional for public mode):',
363
+ default: ''
364
+ },
365
+ {
366
+ type: 'confirm',
367
+ name: 'use_defaults',
368
+ message: 'Use default settings?',
369
+ default: true
370
+ }
371
+ ]);
372
+ const config = {
373
+ mode: answers.api_key ? types_1.ChatGPTMode.AUTHENTICATED : types_1.ChatGPTMode.PUBLIC,
374
+ enabled: true,
375
+ base_url: 'https://api.openai.com/v1/',
376
+ api_key: answers.api_key || undefined,
377
+ model: 'gpt-3.5-turbo', // Using string literal for simplicity
378
+ max_tokens: 4096,
379
+ temperature: 0.7,
380
+ top_p: 1,
381
+ frequency_penalty: 0,
382
+ presence_penalty: 0,
383
+ timeout: 30000,
384
+ max_retries: 3,
385
+ retry_delay: 1000,
386
+ requests_per_minute: 60,
387
+ tokens_per_minute: 150000
388
+ };
389
+ if (!answers.use_defaults) {
390
+ const customAnswers = await inquirer_1.default.prompt([
391
+ {
392
+ type: 'input',
393
+ name: 'base_url',
394
+ message: 'API base URL:',
395
+ default: config.base_url
396
+ },
397
+ {
398
+ type: 'list',
399
+ name: 'model',
400
+ message: 'Model:',
401
+ choices: ['gpt-3.5-turbo', 'gpt-3.5-turbo-16k', 'gpt-4', 'gpt-4-turbo-preview'],
402
+ default: config.model
403
+ }
404
+ ]);
405
+ Object.assign(config, customAnswers);
406
+ }
407
+ await this.saveConfiguration(config);
408
+ console.log(chalk_1.default.green('Quick setup completed!'));
409
+ return config;
410
+ }
411
+ /**
412
+ * Edit existing configuration
413
+ */
414
+ async editConfig() {
415
+ console.log(chalk_1.default.blue.bold('Edit ChatGPT Configuration'));
416
+ try {
417
+ const existingConfig = await this.configManager.loadConfig();
418
+ if (!existingConfig) {
419
+ console.log(chalk_1.default.yellow('No existing configuration found. Running setup wizard...'));
420
+ return this.run();
421
+ }
422
+ console.log(chalk_1.default.gray('Current configuration:'));
423
+ console.log(chalk_1.default.gray(`Mode: ${existingConfig.mode}`));
424
+ console.log(chalk_1.default.gray(`Model: ${existingConfig.model}`));
425
+ console.log(chalk_1.default.gray(`Base URL: ${existingConfig.base_url}`));
426
+ console.log();
427
+ const editAnswer = await inquirer_1.default.prompt([
428
+ {
429
+ type: 'list',
430
+ name: 'action',
431
+ message: 'What would you like to do?',
432
+ choices: [
433
+ { name: 'Edit all settings', value: 'edit_all' },
434
+ { name: 'Edit API key only', value: 'edit_key' },
435
+ { name: 'Test connection', value: 'test' },
436
+ { name: 'Cancel', value: 'cancel' }
437
+ ],
438
+ default: 'edit_key'
439
+ }
440
+ ]);
441
+ switch (editAnswer.action) {
442
+ case 'edit_all':
443
+ return this.run();
444
+ case 'edit_key':
445
+ const keyAnswer = await inquirer_1.default.prompt([
446
+ {
447
+ type: 'input',
448
+ name: 'api_key',
449
+ message: 'Enter new API key (leave empty to remove):',
450
+ default: existingConfig.api_key || ''
451
+ }
452
+ ]);
453
+ if (keyAnswer.api_key) {
454
+ existingConfig.api_key = keyAnswer.api_key;
455
+ existingConfig.mode = types_1.ChatGPTMode.AUTHENTICATED;
456
+ }
457
+ else {
458
+ delete existingConfig.api_key;
459
+ existingConfig.mode = types_1.ChatGPTMode.PUBLIC;
460
+ }
461
+ await this.saveConfiguration(existingConfig);
462
+ console.log(chalk_1.default.green('API key updated!'));
463
+ return existingConfig;
464
+ case 'test':
465
+ await this.testConnection(existingConfig);
466
+ return existingConfig;
467
+ case 'cancel':
468
+ console.log(chalk_1.default.yellow('Edit cancelled.'));
469
+ return existingConfig;
470
+ }
471
+ return existingConfig;
472
+ }
473
+ catch (error) {
474
+ console.log(chalk_1.default.red('Failed to edit configuration:'));
475
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
476
+ throw error;
477
+ }
478
+ }
479
+ }
480
+ exports.ChatGPTConfigWizard = ChatGPTConfigWizard;
481
+ /**
482
+ * Run configuration wizard from CLI
483
+ */
484
+ async function runConfigWizard() {
485
+ const wizard = new ChatGPTConfigWizard();
486
+ try {
487
+ const answers = await inquirer_1.default.prompt([
488
+ {
489
+ type: 'list',
490
+ name: 'action',
491
+ message: 'Select configuration action:',
492
+ choices: [
493
+ { name: 'Full setup wizard', value: 'full' },
494
+ { name: 'Quick setup', value: 'quick' },
495
+ { name: 'Edit existing configuration', value: 'edit' },
496
+ { name: 'Cancel', value: 'cancel' }
497
+ ],
498
+ default: 'quick'
499
+ }
500
+ ]);
501
+ switch (answers.action) {
502
+ case 'full':
503
+ await wizard.run();
504
+ break;
505
+ case 'quick':
506
+ await wizard.quickSetup();
507
+ break;
508
+ case 'edit':
509
+ await wizard.editConfig();
510
+ break;
511
+ case 'cancel':
512
+ console.log(chalk_1.default.yellow('Configuration cancelled.'));
513
+ break;
514
+ }
515
+ }
516
+ catch (error) {
517
+ console.log(chalk_1.default.red('Configuration wizard failed:'));
518
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
519
+ process.exit(1);
520
+ }
521
+ }
522
+ // Export default instance
523
+ exports.default = ChatGPTConfigWizard;
524
+ //# sourceMappingURL=config-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../../../src/services/chatgpt/config-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * ChatGPT Error Handler
3
+ * Centralized error handling and recovery mechanisms
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ export declare enum ChatGPTErrorCode {
7
+ NETWORK_ERROR = "NETWORK_ERROR",
8
+ TIMEOUT_ERROR = "TIMEOUT_ERROR",
9
+ CONNECTION_ERROR = "CONNECTION_ERROR",
10
+ API_ERROR = "API_ERROR",
11
+ RATE_LIMIT_EXCEEDED = "RATE_LIMIT_EXCEEDED",
12
+ QUOTA_EXCEEDED = "QUOTA_EXCEEDED",
13
+ INVALID_REQUEST = "INVALID_REQUEST",
14
+ AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
15
+ INVALID_CREDENTIALS = "INVALID_CREDENTIALS",
16
+ SESSION_EXPIRED = "SESSION_EXPIRED",
17
+ ACCESS_DENIED = "ACCESS_DENIED",
18
+ CONFIGURATION_ERROR = "CONFIGURATION_ERROR",
19
+ INVALID_CONFIG = "INVALID_CONFIG",
20
+ SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE",
21
+ MAINTENANCE_MODE = "MAINTENANCE_MODE",
22
+ CONTENT_FILTER = "CONTENT_FILTER",
23
+ POLICY_VIOLATION = "POLICY_VIOLATION",
24
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
25
+ }
26
+ export interface ChatGPTError {
27
+ code: ChatGPTErrorCode;
28
+ message: string;
29
+ details?: any;
30
+ retryable: boolean;
31
+ timestamp: number;
32
+ stack?: string;
33
+ }
34
+ export interface RecoveryAction {
35
+ action: string;
36
+ description: string;
37
+ automatic: boolean;
38
+ priority: number;
39
+ }
40
+ export declare class ChatGPTErrorHandler extends EventEmitter {
41
+ private errorHistory;
42
+ private maxHistorySize;
43
+ /**
44
+ * Handle an error
45
+ */
46
+ handleError(error: any, context?: string): ChatGPTError;
47
+ /**
48
+ * Normalize different error types to ChatGPTError
49
+ */
50
+ private normalizeError;
51
+ /**
52
+ * Handle Axios errors
53
+ */
54
+ private handleAxiosError;
55
+ /**
56
+ * Handle generic errors
57
+ */
58
+ private handleGenericError;
59
+ /**
60
+ * Get recovery actions for an error
61
+ */
62
+ getRecoveryActions(error: ChatGPTError): RecoveryAction[];
63
+ /**
64
+ * Check if error should trigger automatic recovery
65
+ */
66
+ shouldAutoRecover(error: ChatGPTError): boolean;
67
+ /**
68
+ * Get error statistics
69
+ */
70
+ getErrorStatistics(): {
71
+ totalErrors: number;
72
+ errorCounts: Record<ChatGPTErrorCode, number>;
73
+ retryableErrors: number;
74
+ lastErrorTime?: number;
75
+ mostCommonError?: ChatGPTErrorCode;
76
+ };
77
+ /**
78
+ * Clear error history
79
+ */
80
+ clearHistory(): void;
81
+ /**
82
+ * Get recent errors
83
+ */
84
+ getRecentErrors(limit?: number): ChatGPTError[];
85
+ /**
86
+ * Log error (in production, this would integrate with a logging system)
87
+ */
88
+ private logError;
89
+ /**
90
+ * Create a user-friendly error message
91
+ */
92
+ getUserFriendlyMessage(error: ChatGPTError): string;
93
+ }
94
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/services/chatgpt/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,oBAAY,gBAAgB;IAE1B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IAGrC,SAAS,cAAc;IACvB,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAGnC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAG/B,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IAGjC,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IAGrC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IAGrC,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAO;IAE7B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY;IAkBvD;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2DxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoC1B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE;IAkKzD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAK/C;;OAEG;IACH,kBAAkB,IAAI;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC9C,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,gBAAgB,CAAC;KACpC;IAmCD;;OAEG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACH,eAAe,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;IAI3C;;OAEG;IACH,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;CAwBpD"}