@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,344 @@
1
+ "use strict";
2
+ /**
3
+ * ChatGPT Configuration Manager
4
+ * Handles configuration loading, validation, and persistence
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.ChatGPTConfigManager = void 0;
41
+ const types_1 = require("./types");
42
+ const fs = __importStar(require("fs-extra"));
43
+ const path = __importStar(require("path"));
44
+ const os = __importStar(require("os"));
45
+ class ChatGPTConfigManager {
46
+ defaultConfig = {
47
+ mode: types_1.ChatGPTMode.PUBLIC,
48
+ enabled: true,
49
+ base_url: 'https://api.openai.com/v1/',
50
+ model: types_1.ChatGPTModel.GPT35_TURBO,
51
+ max_tokens: 4096,
52
+ temperature: 0.7,
53
+ top_p: 1,
54
+ frequency_penalty: 0,
55
+ presence_penalty: 0,
56
+ timeout: 30000,
57
+ max_retries: 3,
58
+ retry_delay: 1000,
59
+ requests_per_minute: 60,
60
+ tokens_per_minute: 150000
61
+ };
62
+ configDir;
63
+ configFile;
64
+ constructor(configDir) {
65
+ this.configDir = configDir || path.join(os.homedir(), '.freeapi', 'services', 'chatgpt');
66
+ this.configFile = path.join(this.configDir, 'config.json');
67
+ }
68
+ /**
69
+ * Load configuration from file or create default
70
+ */
71
+ async loadConfig() {
72
+ try {
73
+ await fs.ensureDir(this.configDir);
74
+ if (await fs.pathExists(this.configFile)) {
75
+ const configData = await fs.readJson(this.configFile);
76
+ const mergedConfig = this.mergeWithDefaults(configData);
77
+ const validation = this.validateConfig(mergedConfig);
78
+ if (!validation.valid) {
79
+ console.warn('Configuration validation warnings:', validation.warnings);
80
+ if (validation.errors.length > 0) {
81
+ throw new Error(`Invalid configuration: ${validation.errors.join(', ')}`);
82
+ }
83
+ }
84
+ return mergedConfig;
85
+ }
86
+ else {
87
+ // Create default config file
88
+ await this.saveConfig(this.defaultConfig);
89
+ return { ...this.defaultConfig };
90
+ }
91
+ }
92
+ catch (error) {
93
+ console.error('Failed to load configuration:', error);
94
+ return { ...this.defaultConfig };
95
+ }
96
+ }
97
+ /**
98
+ * Save configuration to file
99
+ */
100
+ async saveConfig(config) {
101
+ try {
102
+ await fs.ensureDir(this.configDir);
103
+ // Validate before saving
104
+ const validation = this.validateConfig(config);
105
+ if (!validation.valid) {
106
+ throw new Error(`Invalid configuration: ${validation.errors.join(', ')}`);
107
+ }
108
+ // Remove sensitive data if not in authenticated mode
109
+ const configToSave = { ...config };
110
+ if (configToSave.mode !== types_1.ChatGPTMode.AUTHENTICATED) {
111
+ delete configToSave.credentials;
112
+ }
113
+ await fs.writeJson(this.configFile, configToSave, { spaces: 2 });
114
+ }
115
+ catch (error) {
116
+ console.error('Failed to save configuration:', error);
117
+ throw error;
118
+ }
119
+ }
120
+ /**
121
+ * Merge user config with defaults
122
+ */
123
+ mergeWithDefaults(userConfig) {
124
+ const merged = { ...this.defaultConfig, ...userConfig };
125
+ // Ensure mode-specific settings
126
+ if (merged.mode === types_1.ChatGPTMode.PUBLIC) {
127
+ // Public mode doesn't need credentials
128
+ delete merged.credentials;
129
+ }
130
+ else if (merged.mode === types_1.ChatGPTMode.AUTHENTICATED) {
131
+ // Authenticated mode needs proper base URL
132
+ if (!merged.base_url || merged.base_url === this.defaultConfig.base_url) {
133
+ merged.base_url = 'https://chat.openai.com/backend-api/';
134
+ }
135
+ }
136
+ return merged;
137
+ }
138
+ /**
139
+ * Validate configuration
140
+ */
141
+ validateConfig(config) {
142
+ const errors = [];
143
+ const warnings = [];
144
+ // Validate mode
145
+ if (!Object.values(types_1.ChatGPTMode).includes(config.mode)) {
146
+ errors.push(`Invalid mode: ${config.mode}. Must be one of: ${Object.values(types_1.ChatGPTMode).join(', ')}`);
147
+ }
148
+ // Validate base URL
149
+ if (!config.base_url || !this.isValidUrl(config.base_url)) {
150
+ errors.push('Invalid base URL');
151
+ }
152
+ // Validate model
153
+ if (!Object.values(types_1.ChatGPTModel).includes(config.model)) {
154
+ warnings.push(`Model ${config.model} may not be supported`);
155
+ }
156
+ // Validate numeric ranges
157
+ if (config.max_tokens < 1 || config.max_tokens > 16384) {
158
+ errors.push('max_tokens must be between 1 and 16384');
159
+ }
160
+ if (config.temperature < 0 || config.temperature > 2) {
161
+ errors.push('temperature must be between 0 and 2');
162
+ }
163
+ if (config.top_p < 0 || config.top_p > 1) {
164
+ errors.push('top_p must be between 0 and 1');
165
+ }
166
+ if (config.frequency_penalty < -2 || config.frequency_penalty > 2) {
167
+ errors.push('frequency_penalty must be between -2 and 2');
168
+ }
169
+ if (config.presence_penalty < -2 || config.presence_penalty > 2) {
170
+ errors.push('presence_penalty must be between -2 and 2');
171
+ }
172
+ // Validate timeout
173
+ if (config.timeout < 1000 || config.timeout > 300000) {
174
+ warnings.push('timeout should be between 1000 and 300000 ms');
175
+ }
176
+ // Validate authenticated mode requirements
177
+ if (config.mode === types_1.ChatGPTMode.AUTHENTICATED) {
178
+ if (!config.credentials?.email || !config.credentials?.password) {
179
+ errors.push('Authenticated mode requires email and password');
180
+ }
181
+ if (config.base_url === this.defaultConfig.base_url) {
182
+ warnings.push('Authenticated mode should use chat.openai.com backend URL');
183
+ }
184
+ }
185
+ // Validate rate limits
186
+ if (config.requests_per_minute < 1) {
187
+ warnings.push('requests_per_minute should be at least 1');
188
+ }
189
+ if (config.tokens_per_minute < 1000) {
190
+ warnings.push('tokens_per_minute should be at least 1000');
191
+ }
192
+ return {
193
+ valid: errors.length === 0,
194
+ errors,
195
+ warnings
196
+ };
197
+ }
198
+ /**
199
+ * Check if string is a valid URL
200
+ */
201
+ isValidUrl(url) {
202
+ try {
203
+ new URL(url);
204
+ return true;
205
+ }
206
+ catch {
207
+ return false;
208
+ }
209
+ }
210
+ /**
211
+ * Get configuration file path
212
+ */
213
+ getConfigFilePath() {
214
+ return this.configFile;
215
+ }
216
+ /**
217
+ * Get configuration directory
218
+ */
219
+ getConfigDir() {
220
+ return this.configDir;
221
+ }
222
+ /**
223
+ * Get default configuration
224
+ */
225
+ getDefaultConfig() {
226
+ return { ...this.defaultConfig };
227
+ }
228
+ /**
229
+ * Create configuration from user input
230
+ */
231
+ createConfigFromInput(input) {
232
+ const config = {
233
+ ...this.defaultConfig,
234
+ mode: input.mode,
235
+ model: input.model || this.defaultConfig.model,
236
+ max_tokens: input.max_tokens || this.defaultConfig.max_tokens,
237
+ temperature: input.temperature || this.defaultConfig.temperature
238
+ };
239
+ // Set base URL
240
+ if (input.base_url) {
241
+ config.base_url = input.base_url;
242
+ }
243
+ else if (input.mode === types_1.ChatGPTMode.AUTHENTICATED) {
244
+ config.base_url = 'https://chat.openai.com/backend-api/';
245
+ }
246
+ // Set API key for public mode
247
+ if (input.mode === types_1.ChatGPTMode.PUBLIC && input.api_key) {
248
+ config.api_key = input.api_key;
249
+ }
250
+ // Set credentials for authenticated mode
251
+ if (input.mode === types_1.ChatGPTMode.AUTHENTICATED && input.email && input.password) {
252
+ config.credentials = {
253
+ email: input.email,
254
+ password: input.password
255
+ };
256
+ }
257
+ return config;
258
+ }
259
+ /**
260
+ * Encrypt sensitive data in configuration
261
+ */
262
+ encryptSensitiveData(config, encryptionKey) {
263
+ const encryptedConfig = { ...config };
264
+ // Simple XOR encryption for demo (in production use proper encryption)
265
+ if (encryptedConfig.api_key) {
266
+ encryptedConfig.api_key = this.xorEncrypt(encryptedConfig.api_key, encryptionKey);
267
+ }
268
+ if (encryptedConfig.credentials?.password) {
269
+ encryptedConfig.credentials.password = this.xorEncrypt(encryptedConfig.credentials.password, encryptionKey);
270
+ }
271
+ return encryptedConfig;
272
+ }
273
+ /**
274
+ * Decrypt sensitive data in configuration
275
+ */
276
+ decryptSensitiveData(config, encryptionKey) {
277
+ const decryptedConfig = { ...config };
278
+ if (decryptedConfig.api_key) {
279
+ decryptedConfig.api_key = this.xorEncrypt(decryptedConfig.api_key, encryptionKey);
280
+ }
281
+ if (decryptedConfig.credentials?.password) {
282
+ decryptedConfig.credentials.password = this.xorEncrypt(decryptedConfig.credentials.password, encryptionKey);
283
+ }
284
+ return decryptedConfig;
285
+ }
286
+ /**
287
+ * Simple XOR encryption for demo purposes
288
+ * In production, use proper encryption like AES
289
+ */
290
+ xorEncrypt(text, key) {
291
+ let result = '';
292
+ for (let i = 0; i < text.length; i++) {
293
+ const charCode = text.charCodeAt(i) ^ key.charCodeAt(i % key.length);
294
+ result += String.fromCharCode(charCode);
295
+ }
296
+ return Buffer.from(result).toString('base64');
297
+ }
298
+ /**
299
+ * Backup configuration
300
+ */
301
+ async backupConfig(backupDir) {
302
+ const backupPath = backupDir || path.join(this.configDir, 'backups');
303
+ await fs.ensureDir(backupPath);
304
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
305
+ const backupFile = path.join(backupPath, `config-backup-${timestamp}.json`);
306
+ if (await fs.pathExists(this.configFile)) {
307
+ await fs.copy(this.configFile, backupFile);
308
+ }
309
+ return backupFile;
310
+ }
311
+ /**
312
+ * Restore configuration from backup
313
+ */
314
+ async restoreConfig(backupFile) {
315
+ if (!(await fs.pathExists(backupFile))) {
316
+ throw new Error(`Backup file not found: ${backupFile}`);
317
+ }
318
+ const backupConfig = await fs.readJson(backupFile);
319
+ const mergedConfig = this.mergeWithDefaults(backupConfig);
320
+ const validation = this.validateConfig(mergedConfig);
321
+ if (!validation.valid) {
322
+ throw new Error(`Invalid backup configuration: ${validation.errors.join(', ')}`);
323
+ }
324
+ await this.saveConfig(mergedConfig);
325
+ return mergedConfig;
326
+ }
327
+ /**
328
+ * List available backups
329
+ */
330
+ async listBackups(backupDir) {
331
+ const backupPath = backupDir || path.join(this.configDir, 'backups');
332
+ if (!(await fs.pathExists(backupPath))) {
333
+ return [];
334
+ }
335
+ const files = await fs.readdir(backupPath);
336
+ return files
337
+ .filter(file => file.startsWith('config-backup-') && file.endsWith('.json'))
338
+ .map(file => path.join(backupPath, file))
339
+ .sort()
340
+ .reverse(); // Most recent first
341
+ }
342
+ }
343
+ exports.ChatGPTConfigManager = ChatGPTConfigManager;
344
+ //# sourceMappingURL=config-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/services/chatgpt/config-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * ChatGPT Configuration Wizard
3
+ * Interactive wizard to help users configure ChatGPT service
4
+ */
5
+ import { ChatGPTConfig } from './types';
6
+ export declare class ChatGPTConfigWizard {
7
+ private configManager;
8
+ constructor();
9
+ /**
10
+ * Run the configuration wizard
11
+ */
12
+ run(): Promise<ChatGPTConfig>;
13
+ /**
14
+ * Test connection with current configuration
15
+ */
16
+ private testConnection;
17
+ /**
18
+ * Save configuration
19
+ */
20
+ private saveConfiguration;
21
+ /**
22
+ * Quick setup with minimal prompts
23
+ */
24
+ quickSetup(): Promise<ChatGPTConfig>;
25
+ /**
26
+ * Edit existing configuration
27
+ */
28
+ editConfig(): Promise<ChatGPTConfig>;
29
+ }
30
+ /**
31
+ * Run configuration wizard from CLI
32
+ */
33
+ export declare function runConfigWizard(): Promise<void>;
34
+ export default ChatGPTConfigWizard;
35
+ //# sourceMappingURL=config-wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-wizard.d.ts","sourceRoot":"","sources":["../../../src/services/chatgpt/config-wizard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AAGrD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAuB;;IAM5C;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAsRnC;;OAEG;YACW,cAAc;IAqC5B;;OAEG;YACW,iBAAiB;IAyB/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAgE1C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;CA0E3C;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAyCrD;AAGD,eAAe,mBAAmB,CAAC"}