@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.
- package/LICENSE +21 -0
- package/README.md +299 -0
- package/bin/freeapi +8 -0
- package/dist/cli/commands/chat.d.ts +3 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +39 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +289 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +114 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +109 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +51 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/start.d.ts +3 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +34 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +45 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +3 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +54 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +79 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/services/base/index.d.ts +112 -0
- package/dist/services/base/index.d.ts.map +1 -0
- package/dist/services/base/index.js +51 -0
- package/dist/services/base/index.js.map +1 -0
- package/dist/services/base/types.d.ts +114 -0
- package/dist/services/base/types.d.ts.map +1 -0
- package/dist/services/base/types.js +7 -0
- package/dist/services/base/types.js.map +1 -0
- package/dist/services/chatgpt/api-client.d.ts +81 -0
- package/dist/services/chatgpt/api-client.d.ts.map +1 -0
- package/dist/services/chatgpt/api-client.js +325 -0
- package/dist/services/chatgpt/api-client.js.map +1 -0
- package/dist/services/chatgpt/cli-adapter.d.ts +108 -0
- package/dist/services/chatgpt/cli-adapter.d.ts.map +1 -0
- package/dist/services/chatgpt/cli-adapter.js +315 -0
- package/dist/services/chatgpt/cli-adapter.js.map +1 -0
- package/dist/services/chatgpt/config-manager.d.ts +87 -0
- package/dist/services/chatgpt/config-manager.d.ts.map +1 -0
- package/dist/services/chatgpt/config-manager.js +344 -0
- package/dist/services/chatgpt/config-manager.js.map +1 -0
- package/dist/services/chatgpt/config-wizard.d.ts +35 -0
- package/dist/services/chatgpt/config-wizard.d.ts.map +1 -0
- package/dist/services/chatgpt/config-wizard.js +524 -0
- package/dist/services/chatgpt/config-wizard.js.map +1 -0
- package/dist/services/chatgpt/error-handler.d.ts +94 -0
- package/dist/services/chatgpt/error-handler.d.ts.map +1 -0
- package/dist/services/chatgpt/error-handler.js +409 -0
- package/dist/services/chatgpt/error-handler.js.map +1 -0
- package/dist/services/chatgpt/exports.d.ts +71 -0
- package/dist/services/chatgpt/exports.d.ts.map +1 -0
- package/dist/services/chatgpt/exports.js +81 -0
- package/dist/services/chatgpt/exports.js.map +1 -0
- package/dist/services/chatgpt/index.d.ts +125 -0
- package/dist/services/chatgpt/index.d.ts.map +1 -0
- package/dist/services/chatgpt/index.js +394 -0
- package/dist/services/chatgpt/index.js.map +1 -0
- package/dist/services/chatgpt/service-adapter.d.ts +152 -0
- package/dist/services/chatgpt/service-adapter.d.ts.map +1 -0
- package/dist/services/chatgpt/service-adapter.js +430 -0
- package/dist/services/chatgpt/service-adapter.js.map +1 -0
- package/dist/services/chatgpt/session-manager.d.ts +113 -0
- package/dist/services/chatgpt/session-manager.d.ts.map +1 -0
- package/dist/services/chatgpt/session-manager.js +396 -0
- package/dist/services/chatgpt/session-manager.js.map +1 -0
- package/dist/services/chatgpt/types.d.ts +130 -0
- package/dist/services/chatgpt/types.d.ts.map +1 -0
- package/dist/services/chatgpt/types.js +19 -0
- package/dist/services/chatgpt/types.js.map +1 -0
- package/dist/utils/config.d.ts +61 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +215 -0
- package/dist/utils/config.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ChatGPT Error Handler
|
|
4
|
+
* Centralized error handling and recovery mechanisms
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ChatGPTErrorHandler = exports.ChatGPTErrorCode = void 0;
|
|
8
|
+
const axios_1 = require("axios");
|
|
9
|
+
const events_1 = require("events");
|
|
10
|
+
var ChatGPTErrorCode;
|
|
11
|
+
(function (ChatGPTErrorCode) {
|
|
12
|
+
// Network errors
|
|
13
|
+
ChatGPTErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
14
|
+
ChatGPTErrorCode["TIMEOUT_ERROR"] = "TIMEOUT_ERROR";
|
|
15
|
+
ChatGPTErrorCode["CONNECTION_ERROR"] = "CONNECTION_ERROR";
|
|
16
|
+
// API errors
|
|
17
|
+
ChatGPTErrorCode["API_ERROR"] = "API_ERROR";
|
|
18
|
+
ChatGPTErrorCode["RATE_LIMIT_EXCEEDED"] = "RATE_LIMIT_EXCEEDED";
|
|
19
|
+
ChatGPTErrorCode["QUOTA_EXCEEDED"] = "QUOTA_EXCEEDED";
|
|
20
|
+
ChatGPTErrorCode["INVALID_REQUEST"] = "INVALID_REQUEST";
|
|
21
|
+
// Authentication errors
|
|
22
|
+
ChatGPTErrorCode["AUTHENTICATION_ERROR"] = "AUTHENTICATION_ERROR";
|
|
23
|
+
ChatGPTErrorCode["INVALID_CREDENTIALS"] = "INVALID_CREDENTIALS";
|
|
24
|
+
ChatGPTErrorCode["SESSION_EXPIRED"] = "SESSION_EXPIRED";
|
|
25
|
+
ChatGPTErrorCode["ACCESS_DENIED"] = "ACCESS_DENIED";
|
|
26
|
+
// Configuration errors
|
|
27
|
+
ChatGPTErrorCode["CONFIGURATION_ERROR"] = "CONFIGURATION_ERROR";
|
|
28
|
+
ChatGPTErrorCode["INVALID_CONFIG"] = "INVALID_CONFIG";
|
|
29
|
+
// Service errors
|
|
30
|
+
ChatGPTErrorCode["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE";
|
|
31
|
+
ChatGPTErrorCode["MAINTENANCE_MODE"] = "MAINTENANCE_MODE";
|
|
32
|
+
// Content errors
|
|
33
|
+
ChatGPTErrorCode["CONTENT_FILTER"] = "CONTENT_FILTER";
|
|
34
|
+
ChatGPTErrorCode["POLICY_VIOLATION"] = "POLICY_VIOLATION";
|
|
35
|
+
// Unknown errors
|
|
36
|
+
ChatGPTErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
37
|
+
})(ChatGPTErrorCode || (exports.ChatGPTErrorCode = ChatGPTErrorCode = {}));
|
|
38
|
+
class ChatGPTErrorHandler extends events_1.EventEmitter {
|
|
39
|
+
errorHistory = [];
|
|
40
|
+
maxHistorySize = 100;
|
|
41
|
+
/**
|
|
42
|
+
* Handle an error
|
|
43
|
+
*/
|
|
44
|
+
handleError(error, context) {
|
|
45
|
+
const chatGPTError = this.normalizeError(error, context);
|
|
46
|
+
// Add to history
|
|
47
|
+
this.errorHistory.push(chatGPTError);
|
|
48
|
+
if (this.errorHistory.length > this.maxHistorySize) {
|
|
49
|
+
this.errorHistory.shift();
|
|
50
|
+
}
|
|
51
|
+
// Emit error event
|
|
52
|
+
this.emit('error', chatGPTError);
|
|
53
|
+
// Log error
|
|
54
|
+
this.logError(chatGPTError);
|
|
55
|
+
return chatGPTError;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Normalize different error types to ChatGPTError
|
|
59
|
+
*/
|
|
60
|
+
normalizeError(error, context) {
|
|
61
|
+
const timestamp = Date.now();
|
|
62
|
+
let normalizedError;
|
|
63
|
+
if (error instanceof axios_1.AxiosError) {
|
|
64
|
+
normalizedError = this.handleAxiosError(error, context);
|
|
65
|
+
}
|
|
66
|
+
else if (error instanceof Error) {
|
|
67
|
+
normalizedError = this.handleGenericError(error, context);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
normalizedError = {
|
|
71
|
+
code: ChatGPTErrorCode.UNKNOWN_ERROR,
|
|
72
|
+
message: `Unknown error: ${String(error)}`,
|
|
73
|
+
details: error,
|
|
74
|
+
retryable: false,
|
|
75
|
+
timestamp
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
// Add stack trace if available
|
|
79
|
+
if (error.stack) {
|
|
80
|
+
normalizedError.stack = error.stack;
|
|
81
|
+
}
|
|
82
|
+
return normalizedError;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Handle Axios errors
|
|
86
|
+
*/
|
|
87
|
+
handleAxiosError(error, context) {
|
|
88
|
+
const status = error.response?.status;
|
|
89
|
+
const data = error.response?.data;
|
|
90
|
+
const message = data?.error?.message || error.message;
|
|
91
|
+
let code;
|
|
92
|
+
let retryable = false;
|
|
93
|
+
switch (status) {
|
|
94
|
+
case 400:
|
|
95
|
+
code = ChatGPTErrorCode.INVALID_REQUEST;
|
|
96
|
+
break;
|
|
97
|
+
case 401:
|
|
98
|
+
code = ChatGPTErrorCode.AUTHENTICATION_ERROR;
|
|
99
|
+
break;
|
|
100
|
+
case 403:
|
|
101
|
+
code = ChatGPTErrorCode.ACCESS_DENIED;
|
|
102
|
+
break;
|
|
103
|
+
case 404:
|
|
104
|
+
code = ChatGPTErrorCode.INVALID_REQUEST;
|
|
105
|
+
break;
|
|
106
|
+
case 429:
|
|
107
|
+
code = ChatGPTErrorCode.RATE_LIMIT_EXCEEDED;
|
|
108
|
+
retryable = true;
|
|
109
|
+
break;
|
|
110
|
+
case 500:
|
|
111
|
+
case 502:
|
|
112
|
+
case 503:
|
|
113
|
+
case 504:
|
|
114
|
+
code = ChatGPTErrorCode.SERVICE_UNAVAILABLE;
|
|
115
|
+
retryable = true;
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
if (error.code === 'ECONNABORTED') {
|
|
119
|
+
code = ChatGPTErrorCode.TIMEOUT_ERROR;
|
|
120
|
+
retryable = true;
|
|
121
|
+
}
|
|
122
|
+
else if (error.code === 'ENOTFOUND' || error.code === 'ECONNREFUSED') {
|
|
123
|
+
code = ChatGPTErrorCode.CONNECTION_ERROR;
|
|
124
|
+
retryable = true;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
code = ChatGPTErrorCode.API_ERROR;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
code,
|
|
132
|
+
message: context ? `[${context}] ${message}` : message,
|
|
133
|
+
details: {
|
|
134
|
+
status,
|
|
135
|
+
data: error.response?.data,
|
|
136
|
+
config: error.config,
|
|
137
|
+
url: error.config?.url,
|
|
138
|
+
method: error.config?.method
|
|
139
|
+
},
|
|
140
|
+
retryable,
|
|
141
|
+
timestamp: Date.now()
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Handle generic errors
|
|
146
|
+
*/
|
|
147
|
+
handleGenericError(error, context) {
|
|
148
|
+
let code;
|
|
149
|
+
let retryable = false;
|
|
150
|
+
const message = error.message.toLowerCase();
|
|
151
|
+
if (message.includes('network') || message.includes('connection')) {
|
|
152
|
+
code = ChatGPTErrorCode.NETWORK_ERROR;
|
|
153
|
+
retryable = true;
|
|
154
|
+
}
|
|
155
|
+
else if (message.includes('timeout')) {
|
|
156
|
+
code = ChatGPTErrorCode.TIMEOUT_ERROR;
|
|
157
|
+
retryable = true;
|
|
158
|
+
}
|
|
159
|
+
else if (message.includes('auth') || message.includes('login') || message.includes('credential')) {
|
|
160
|
+
code = ChatGPTErrorCode.AUTHENTICATION_ERROR;
|
|
161
|
+
}
|
|
162
|
+
else if (message.includes('config') || message.includes('setting')) {
|
|
163
|
+
code = ChatGPTErrorCode.CONFIGURATION_ERROR;
|
|
164
|
+
}
|
|
165
|
+
else if (message.includes('rate limit') || message.includes('too many requests')) {
|
|
166
|
+
code = ChatGPTErrorCode.RATE_LIMIT_EXCEEDED;
|
|
167
|
+
retryable = true;
|
|
168
|
+
}
|
|
169
|
+
else if (message.includes('quota') || message.includes('limit')) {
|
|
170
|
+
code = ChatGPTErrorCode.QUOTA_EXCEEDED;
|
|
171
|
+
}
|
|
172
|
+
else if (message.includes('content') || message.includes('filter')) {
|
|
173
|
+
code = ChatGPTErrorCode.CONTENT_FILTER;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
code = ChatGPTErrorCode.UNKNOWN_ERROR;
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
code,
|
|
180
|
+
message: context ? `[${context}] ${error.message}` : error.message,
|
|
181
|
+
details: { originalError: error },
|
|
182
|
+
retryable,
|
|
183
|
+
timestamp: Date.now()
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get recovery actions for an error
|
|
188
|
+
*/
|
|
189
|
+
getRecoveryActions(error) {
|
|
190
|
+
const actions = [];
|
|
191
|
+
switch (error.code) {
|
|
192
|
+
case ChatGPTErrorCode.NETWORK_ERROR:
|
|
193
|
+
case ChatGPTErrorCode.CONNECTION_ERROR:
|
|
194
|
+
actions.push({
|
|
195
|
+
action: 'check_network',
|
|
196
|
+
description: 'Check internet connection',
|
|
197
|
+
automatic: false,
|
|
198
|
+
priority: 1
|
|
199
|
+
}, {
|
|
200
|
+
action: 'retry',
|
|
201
|
+
description: 'Retry the request',
|
|
202
|
+
automatic: true,
|
|
203
|
+
priority: 2
|
|
204
|
+
});
|
|
205
|
+
break;
|
|
206
|
+
case ChatGPTErrorCode.TIMEOUT_ERROR:
|
|
207
|
+
actions.push({
|
|
208
|
+
action: 'increase_timeout',
|
|
209
|
+
description: 'Increase request timeout',
|
|
210
|
+
automatic: true,
|
|
211
|
+
priority: 1
|
|
212
|
+
}, {
|
|
213
|
+
action: 'retry',
|
|
214
|
+
description: 'Retry with exponential backoff',
|
|
215
|
+
automatic: true,
|
|
216
|
+
priority: 2
|
|
217
|
+
});
|
|
218
|
+
break;
|
|
219
|
+
case ChatGPTErrorCode.RATE_LIMIT_EXCEEDED:
|
|
220
|
+
actions.push({
|
|
221
|
+
action: 'wait',
|
|
222
|
+
description: 'Wait for rate limit reset',
|
|
223
|
+
automatic: true,
|
|
224
|
+
priority: 1
|
|
225
|
+
}, {
|
|
226
|
+
action: 'reduce_frequency',
|
|
227
|
+
description: 'Reduce request frequency',
|
|
228
|
+
automatic: true,
|
|
229
|
+
priority: 2
|
|
230
|
+
});
|
|
231
|
+
break;
|
|
232
|
+
case ChatGPTErrorCode.AUTHENTICATION_ERROR:
|
|
233
|
+
case ChatGPTErrorCode.INVALID_CREDENTIALS:
|
|
234
|
+
actions.push({
|
|
235
|
+
action: 'reauthenticate',
|
|
236
|
+
description: 'Re-authenticate with valid credentials',
|
|
237
|
+
automatic: false,
|
|
238
|
+
priority: 1
|
|
239
|
+
}, {
|
|
240
|
+
action: 'check_credentials',
|
|
241
|
+
description: 'Verify credentials are correct',
|
|
242
|
+
automatic: false,
|
|
243
|
+
priority: 2
|
|
244
|
+
});
|
|
245
|
+
break;
|
|
246
|
+
case ChatGPTErrorCode.SESSION_EXPIRED:
|
|
247
|
+
actions.push({
|
|
248
|
+
action: 'refresh_session',
|
|
249
|
+
description: 'Refresh session token',
|
|
250
|
+
automatic: true,
|
|
251
|
+
priority: 1
|
|
252
|
+
}, {
|
|
253
|
+
action: 'reauthenticate',
|
|
254
|
+
description: 'Re-authenticate user',
|
|
255
|
+
automatic: false,
|
|
256
|
+
priority: 2
|
|
257
|
+
});
|
|
258
|
+
break;
|
|
259
|
+
case ChatGPTErrorCode.CONFIGURATION_ERROR:
|
|
260
|
+
actions.push({
|
|
261
|
+
action: 'validate_config',
|
|
262
|
+
description: 'Validate configuration settings',
|
|
263
|
+
automatic: true,
|
|
264
|
+
priority: 1
|
|
265
|
+
}, {
|
|
266
|
+
action: 'reset_config',
|
|
267
|
+
description: 'Reset to default configuration',
|
|
268
|
+
automatic: false,
|
|
269
|
+
priority: 2
|
|
270
|
+
});
|
|
271
|
+
break;
|
|
272
|
+
case ChatGPTErrorCode.SERVICE_UNAVAILABLE:
|
|
273
|
+
actions.push({
|
|
274
|
+
action: 'retry',
|
|
275
|
+
description: 'Retry after delay',
|
|
276
|
+
automatic: true,
|
|
277
|
+
priority: 1
|
|
278
|
+
}, {
|
|
279
|
+
action: 'check_status',
|
|
280
|
+
description: 'Check service status',
|
|
281
|
+
automatic: false,
|
|
282
|
+
priority: 2
|
|
283
|
+
});
|
|
284
|
+
break;
|
|
285
|
+
case ChatGPTErrorCode.CONTENT_FILTER:
|
|
286
|
+
actions.push({
|
|
287
|
+
action: 'modify_content',
|
|
288
|
+
description: 'Modify message content',
|
|
289
|
+
automatic: false,
|
|
290
|
+
priority: 1
|
|
291
|
+
}, {
|
|
292
|
+
action: 'disable_filter',
|
|
293
|
+
description: 'Disable content filter (if available)',
|
|
294
|
+
automatic: false,
|
|
295
|
+
priority: 2
|
|
296
|
+
});
|
|
297
|
+
break;
|
|
298
|
+
default:
|
|
299
|
+
actions.push({
|
|
300
|
+
action: 'retry',
|
|
301
|
+
description: 'Retry the request',
|
|
302
|
+
automatic: true,
|
|
303
|
+
priority: 1
|
|
304
|
+
}, {
|
|
305
|
+
action: 'report',
|
|
306
|
+
description: 'Report error for investigation',
|
|
307
|
+
automatic: false,
|
|
308
|
+
priority: 2
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
return actions.sort((a, b) => a.priority - b.priority);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Check if error should trigger automatic recovery
|
|
315
|
+
*/
|
|
316
|
+
shouldAutoRecover(error) {
|
|
317
|
+
const recoveryActions = this.getRecoveryActions(error);
|
|
318
|
+
return recoveryActions.some(action => action.automatic);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get error statistics
|
|
322
|
+
*/
|
|
323
|
+
getErrorStatistics() {
|
|
324
|
+
const errorCounts = {};
|
|
325
|
+
let retryableErrors = 0;
|
|
326
|
+
let mostCommonError;
|
|
327
|
+
let maxCount = 0;
|
|
328
|
+
// Initialize all error codes to 0
|
|
329
|
+
Object.values(ChatGPTErrorCode).forEach(code => {
|
|
330
|
+
errorCounts[code] = 0;
|
|
331
|
+
});
|
|
332
|
+
// Count errors
|
|
333
|
+
this.errorHistory.forEach(error => {
|
|
334
|
+
errorCounts[error.code]++;
|
|
335
|
+
if (error.retryable) {
|
|
336
|
+
retryableErrors++;
|
|
337
|
+
}
|
|
338
|
+
if (errorCounts[error.code] > maxCount) {
|
|
339
|
+
maxCount = errorCounts[error.code];
|
|
340
|
+
mostCommonError = error.code;
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
const lastError = this.errorHistory[this.errorHistory.length - 1];
|
|
344
|
+
return {
|
|
345
|
+
totalErrors: this.errorHistory.length,
|
|
346
|
+
errorCounts,
|
|
347
|
+
retryableErrors,
|
|
348
|
+
lastErrorTime: lastError?.timestamp,
|
|
349
|
+
mostCommonError
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Clear error history
|
|
354
|
+
*/
|
|
355
|
+
clearHistory() {
|
|
356
|
+
this.errorHistory = [];
|
|
357
|
+
this.emit('history:cleared');
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Get recent errors
|
|
361
|
+
*/
|
|
362
|
+
getRecentErrors(limit = 10) {
|
|
363
|
+
return this.errorHistory.slice(-limit).reverse();
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Log error (in production, this would integrate with a logging system)
|
|
367
|
+
*/
|
|
368
|
+
logError(error) {
|
|
369
|
+
const logEntry = {
|
|
370
|
+
timestamp: new Date(error.timestamp).toISOString(),
|
|
371
|
+
code: error.code,
|
|
372
|
+
message: error.message,
|
|
373
|
+
retryable: error.retryable,
|
|
374
|
+
details: error.details
|
|
375
|
+
};
|
|
376
|
+
// In production, this would send to a logging service
|
|
377
|
+
console.error('ChatGPT Error:', logEntry);
|
|
378
|
+
// Emit log event for external handlers
|
|
379
|
+
this.emit('log', logEntry);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Create a user-friendly error message
|
|
383
|
+
*/
|
|
384
|
+
getUserFriendlyMessage(error) {
|
|
385
|
+
const baseMessages = {
|
|
386
|
+
[ChatGPTErrorCode.NETWORK_ERROR]: 'Network connection issue. Please check your internet connection.',
|
|
387
|
+
[ChatGPTErrorCode.TIMEOUT_ERROR]: 'Request timed out. The server is taking too long to respond.',
|
|
388
|
+
[ChatGPTErrorCode.CONNECTION_ERROR]: 'Cannot connect to the server. Please try again later.',
|
|
389
|
+
[ChatGPTErrorCode.API_ERROR]: 'API request failed. Please try again.',
|
|
390
|
+
[ChatGPTErrorCode.RATE_LIMIT_EXCEEDED]: 'Rate limit exceeded. Please wait before making more requests.',
|
|
391
|
+
[ChatGPTErrorCode.QUOTA_EXCEEDED]: 'Usage quota exceeded. Please check your account limits.',
|
|
392
|
+
[ChatGPTErrorCode.INVALID_REQUEST]: 'Invalid request. Please check your input.',
|
|
393
|
+
[ChatGPTErrorCode.AUTHENTICATION_ERROR]: 'Authentication failed. Please check your credentials.',
|
|
394
|
+
[ChatGPTErrorCode.INVALID_CREDENTIALS]: 'Invalid credentials. Please verify your login information.',
|
|
395
|
+
[ChatGPTErrorCode.SESSION_EXPIRED]: 'Session expired. Please log in again.',
|
|
396
|
+
[ChatGPTErrorCode.ACCESS_DENIED]: 'Access denied. You do not have permission to perform this action.',
|
|
397
|
+
[ChatGPTErrorCode.CONFIGURATION_ERROR]: 'Configuration error. Please check your settings.',
|
|
398
|
+
[ChatGPTErrorCode.INVALID_CONFIG]: 'Invalid configuration. Please update your settings.',
|
|
399
|
+
[ChatGPTErrorCode.SERVICE_UNAVAILABLE]: 'Service temporarily unavailable. Please try again later.',
|
|
400
|
+
[ChatGPTErrorCode.MAINTENANCE_MODE]: 'Service is under maintenance. Please try again later.',
|
|
401
|
+
[ChatGPTErrorCode.CONTENT_FILTER]: 'Content filtered. Your message may violate content policies.',
|
|
402
|
+
[ChatGPTErrorCode.POLICY_VIOLATION]: 'Policy violation detected. Please review the terms of service.',
|
|
403
|
+
[ChatGPTErrorCode.UNKNOWN_ERROR]: 'An unexpected error occurred. Please try again.'
|
|
404
|
+
};
|
|
405
|
+
return baseMessages[error.code] || baseMessages[ChatGPTErrorCode.UNKNOWN_ERROR];
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
exports.ChatGPTErrorHandler = ChatGPTErrorHandler;
|
|
409
|
+
//# sourceMappingURL=error-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/services/chatgpt/error-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatGPT Service Exports
|
|
3
|
+
* Main entry point for the ChatGPT service adapter
|
|
4
|
+
*/
|
|
5
|
+
export { ChatGPTServiceAdapter } from './service-adapter';
|
|
6
|
+
export { ChatGPTConfigManager } from './config-manager';
|
|
7
|
+
export { ChatGPTErrorHandler, ChatGPTErrorCode } from './error-handler';
|
|
8
|
+
export type { ChatGPTConfig, ChatGPTMode, ChatGPTModel, ChatMessage, ChatCompletionRequest, ChatCompletionResponse, Conversation, AuthenticationResponse, UsageStats } from './types';
|
|
9
|
+
export type { ServiceStatus, ServiceInfo } from './service-adapter';
|
|
10
|
+
export type { ConfigValidationResult } from './config-manager';
|
|
11
|
+
export type { ChatGPTError, RecoveryAction } from './error-handler';
|
|
12
|
+
export { ChatGPTConfigWizard, runConfigWizard } from './config-wizard';
|
|
13
|
+
/**
|
|
14
|
+
* Create a new ChatGPT service adapter instance
|
|
15
|
+
*/
|
|
16
|
+
export declare function createChatGPTService(encryptionKey?: string): any;
|
|
17
|
+
/**
|
|
18
|
+
* Default configuration for ChatGPT service
|
|
19
|
+
*/
|
|
20
|
+
export declare const defaultChatGPTConfig: {
|
|
21
|
+
mode: "public";
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
base_url: string;
|
|
24
|
+
model: "gpt-3.5-turbo";
|
|
25
|
+
max_tokens: number;
|
|
26
|
+
temperature: number;
|
|
27
|
+
top_p: number;
|
|
28
|
+
frequency_penalty: number;
|
|
29
|
+
presence_penalty: number;
|
|
30
|
+
timeout: number;
|
|
31
|
+
max_retries: number;
|
|
32
|
+
retry_delay: number;
|
|
33
|
+
requests_per_minute: number;
|
|
34
|
+
tokens_per_minute: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Service information
|
|
38
|
+
*/
|
|
39
|
+
export declare const serviceInfo: {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
description: string;
|
|
43
|
+
author: string;
|
|
44
|
+
repository: string;
|
|
45
|
+
documentation: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Example usage:
|
|
49
|
+
*
|
|
50
|
+
* ```typescript
|
|
51
|
+
* import { createChatGPTService } from './services/chatgpt';
|
|
52
|
+
*
|
|
53
|
+
* // Create service instance
|
|
54
|
+
* const chatGPT = createChatGPTService();
|
|
55
|
+
*
|
|
56
|
+
* // Initialize
|
|
57
|
+
* await chatGPT.initialize();
|
|
58
|
+
*
|
|
59
|
+
* // Send message
|
|
60
|
+
* const response = await chatGPT.sendMessage('Hello, how are you?');
|
|
61
|
+
* console.log(response.message.content);
|
|
62
|
+
*
|
|
63
|
+
* // Get service status
|
|
64
|
+
* const status = chatGPT.getStatus();
|
|
65
|
+
* console.log(status);
|
|
66
|
+
*
|
|
67
|
+
* // Clean up
|
|
68
|
+
* chatGPT.destroy();
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
//# sourceMappingURL=exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../src/services/chatgpt/exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,YAAY,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACX,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,aAAa,EACb,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,YAAY,EACZ,cAAc,EACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,CAGhE;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;CAehC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ChatGPT Service Exports
|
|
4
|
+
* Main entry point for the ChatGPT service adapter
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.serviceInfo = exports.defaultChatGPTConfig = exports.runConfigWizard = exports.ChatGPTConfigWizard = exports.ChatGPTErrorCode = exports.ChatGPTErrorHandler = exports.ChatGPTConfigManager = exports.ChatGPTServiceAdapter = void 0;
|
|
8
|
+
exports.createChatGPTService = createChatGPTService;
|
|
9
|
+
var service_adapter_1 = require("./service-adapter");
|
|
10
|
+
Object.defineProperty(exports, "ChatGPTServiceAdapter", { enumerable: true, get: function () { return service_adapter_1.ChatGPTServiceAdapter; } });
|
|
11
|
+
var config_manager_1 = require("./config-manager");
|
|
12
|
+
Object.defineProperty(exports, "ChatGPTConfigManager", { enumerable: true, get: function () { return config_manager_1.ChatGPTConfigManager; } });
|
|
13
|
+
var error_handler_1 = require("./error-handler");
|
|
14
|
+
Object.defineProperty(exports, "ChatGPTErrorHandler", { enumerable: true, get: function () { return error_handler_1.ChatGPTErrorHandler; } });
|
|
15
|
+
Object.defineProperty(exports, "ChatGPTErrorCode", { enumerable: true, get: function () { return error_handler_1.ChatGPTErrorCode; } });
|
|
16
|
+
// Configuration wizard
|
|
17
|
+
var config_wizard_1 = require("./config-wizard");
|
|
18
|
+
Object.defineProperty(exports, "ChatGPTConfigWizard", { enumerable: true, get: function () { return config_wizard_1.ChatGPTConfigWizard; } });
|
|
19
|
+
Object.defineProperty(exports, "runConfigWizard", { enumerable: true, get: function () { return config_wizard_1.runConfigWizard; } });
|
|
20
|
+
/**
|
|
21
|
+
* Create a new ChatGPT service adapter instance
|
|
22
|
+
*/
|
|
23
|
+
function createChatGPTService(encryptionKey) {
|
|
24
|
+
const { ChatGPTServiceAdapter } = require('./service-adapter');
|
|
25
|
+
return new ChatGPTServiceAdapter(encryptionKey);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Default configuration for ChatGPT service
|
|
29
|
+
*/
|
|
30
|
+
exports.defaultChatGPTConfig = {
|
|
31
|
+
mode: 'public',
|
|
32
|
+
enabled: true,
|
|
33
|
+
base_url: 'https://api.openai.com/v1/',
|
|
34
|
+
model: 'gpt-3.5-turbo',
|
|
35
|
+
max_tokens: 4096,
|
|
36
|
+
temperature: 0.7,
|
|
37
|
+
top_p: 1,
|
|
38
|
+
frequency_penalty: 0,
|
|
39
|
+
presence_penalty: 0,
|
|
40
|
+
timeout: 30000,
|
|
41
|
+
max_retries: 3,
|
|
42
|
+
retry_delay: 1000,
|
|
43
|
+
requests_per_minute: 60,
|
|
44
|
+
tokens_per_minute: 150000
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Service information
|
|
48
|
+
*/
|
|
49
|
+
exports.serviceInfo = {
|
|
50
|
+
name: 'ChatGPT',
|
|
51
|
+
version: '1.0.0',
|
|
52
|
+
description: 'OpenAI ChatGPT service with public and authenticated modes',
|
|
53
|
+
author: 'FreeAPI Team',
|
|
54
|
+
repository: 'https://github.com/naturecode-official/freeapi',
|
|
55
|
+
documentation: 'https://github.com/naturecode-official/freeapi/docs/chatgpt'
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Example usage:
|
|
59
|
+
*
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import { createChatGPTService } from './services/chatgpt';
|
|
62
|
+
*
|
|
63
|
+
* // Create service instance
|
|
64
|
+
* const chatGPT = createChatGPTService();
|
|
65
|
+
*
|
|
66
|
+
* // Initialize
|
|
67
|
+
* await chatGPT.initialize();
|
|
68
|
+
*
|
|
69
|
+
* // Send message
|
|
70
|
+
* const response = await chatGPT.sendMessage('Hello, how are you?');
|
|
71
|
+
* console.log(response.message.content);
|
|
72
|
+
*
|
|
73
|
+
* // Get service status
|
|
74
|
+
* const status = chatGPT.getStatus();
|
|
75
|
+
* console.log(status);
|
|
76
|
+
*
|
|
77
|
+
* // Clean up
|
|
78
|
+
* chatGPT.destroy();
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
//# sourceMappingURL=exports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../src/services/chatgpt/exports.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0CH,oDAGC;AA3CD,qDAA0D;AAAjD,wHAAA,qBAAqB,OAAA;AAC9B,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAC7B,iDAAwE;AAA/D,oHAAA,mBAAmB,OAAA;AAAE,iHAAA,gBAAgB,OAAA;AAgC9C,uBAAuB;AACvB,iDAAuE;AAA9D,oHAAA,mBAAmB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAE7C;;GAEG;AACH,SAAgB,oBAAoB,CAAC,aAAsB;IACzD,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,OAAO,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,QAAiB;IACvB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,4BAA4B;IACtC,KAAK,EAAE,eAAwB;IAC/B,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,GAAG;IAChB,KAAK,EAAE,CAAC;IACR,iBAAiB,EAAE,CAAC;IACpB,gBAAgB,EAAE,CAAC;IACnB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,IAAI;IACjB,mBAAmB,EAAE,EAAE;IACvB,iBAAiB,EAAE,MAAM;CAC1B,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,gDAAgD;IAC5D,aAAa,EAAE,6DAA6D;CAC7E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|