@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,7 @@
1
+ /**
2
+ * FreeAPI Main Entry Point
3
+ * This is the main entry point for the FreeAPI CLI tool
4
+ */
5
+ import { main } from './cli/index';
6
+ export { main };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * FreeAPI Main Entry Point
4
+ * This is the main entry point for the FreeAPI CLI tool
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.main = void 0;
8
+ const index_1 = require("./cli/index");
9
+ Object.defineProperty(exports, "main", { enumerable: true, get: function () { return index_1.main; } });
10
+ // If this file is executed directly, run the CLI
11
+ if (require.main === module) {
12
+ (0, index_1.main)().catch((error) => {
13
+ console.error('Error:', error.message);
14
+ process.exit(1);
15
+ });
16
+ }
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAmC;AAG1B,qFAHA,YAAI,OAGA;AAEb,iDAAiD;AACjD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAA,YAAI,GAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Base Service Adapter Interface
3
+ * Defines the common interface for all AI service adapters
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ import { ServiceConfig, ServiceStatus, ChatRequest, ChatResponse } from './types';
7
+ export declare abstract class BaseServiceAdapter extends EventEmitter {
8
+ protected name: string;
9
+ protected config: ServiceConfig;
10
+ protected status: 'initializing' | 'ready' | 'error' | 'stopped';
11
+ constructor(name: string, config: ServiceConfig);
12
+ /**
13
+ * Initialize the service
14
+ */
15
+ abstract initialize(): Promise<void>;
16
+ /**
17
+ * Send a chat message
18
+ */
19
+ abstract sendMessage(request: ChatRequest): Promise<ChatResponse>;
20
+ /**
21
+ * Get service status
22
+ */
23
+ abstract getStatus(): Promise<ServiceStatus>;
24
+ /**
25
+ * Get service information
26
+ */
27
+ abstract getInfo(): Promise<any>;
28
+ /**
29
+ * Update configuration
30
+ */
31
+ abstract updateConfig(newConfig: Partial<ServiceConfig>): Promise<void>;
32
+ /**
33
+ * Authenticate user (if applicable)
34
+ */
35
+ abstract authenticate(credentials: {
36
+ username: string;
37
+ password: string;
38
+ }): Promise<boolean>;
39
+ /**
40
+ * Test service connection
41
+ */
42
+ abstract testConnection(): Promise<boolean>;
43
+ /**
44
+ * Get conversations
45
+ */
46
+ abstract getConversations(): Promise<any[]>;
47
+ /**
48
+ * Get conversation by ID
49
+ */
50
+ abstract getConversation(conversationId: string): Promise<any>;
51
+ /**
52
+ * Delete conversation
53
+ */
54
+ abstract deleteConversation(conversationId: string): Promise<boolean>;
55
+ /**
56
+ * Get usage statistics
57
+ */
58
+ abstract getUsage(): Promise<any>;
59
+ /**
60
+ * Get error information
61
+ */
62
+ abstract getErrors(limit?: number): Promise<any[]>;
63
+ /**
64
+ * Get recovery actions
65
+ */
66
+ abstract getRecoveryActions(): Promise<any[]>;
67
+ /**
68
+ * Clear error history
69
+ */
70
+ abstract clearErrorHistory(): Promise<void>;
71
+ /**
72
+ * Backup configuration
73
+ */
74
+ abstract backupConfig(backupDir?: string): Promise<string>;
75
+ /**
76
+ * Restore configuration from backup
77
+ */
78
+ abstract restoreConfig(backupFile: string): Promise<void>;
79
+ /**
80
+ * List available backups
81
+ */
82
+ abstract listBackups(backupDir?: string): Promise<string[]>;
83
+ /**
84
+ * Reset configuration to defaults
85
+ */
86
+ abstract resetConfig(): Promise<void>;
87
+ /**
88
+ * Clean up resources
89
+ */
90
+ abstract destroy(): Promise<void>;
91
+ /**
92
+ * Get service name
93
+ */
94
+ getName(): string;
95
+ /**
96
+ * Get current status
97
+ */
98
+ getCurrentStatus(): string;
99
+ /**
100
+ * Get configuration
101
+ */
102
+ getConfig(): ServiceConfig;
103
+ /**
104
+ * Check if service is enabled
105
+ */
106
+ isEnabled(): boolean;
107
+ /**
108
+ * Enable/disable service
109
+ */
110
+ setEnabled(enabled: boolean): void;
111
+ }
112
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/base/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElF,8BAAsB,kBAAmB,SAAQ,YAAY;IAC3D,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAkB;gBAEtE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAM/C;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAEjE;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvE;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAE5F;;OAEG;IACH,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAErE;;OAEG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAInC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * Base Service Adapter Interface
4
+ * Defines the common interface for all AI service adapters
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BaseServiceAdapter = void 0;
8
+ const events_1 = require("events");
9
+ class BaseServiceAdapter extends events_1.EventEmitter {
10
+ name;
11
+ config;
12
+ status = 'initializing';
13
+ constructor(name, config) {
14
+ super();
15
+ this.name = name;
16
+ this.config = config;
17
+ }
18
+ /**
19
+ * Get service name
20
+ */
21
+ getName() {
22
+ return this.name;
23
+ }
24
+ /**
25
+ * Get current status
26
+ */
27
+ getCurrentStatus() {
28
+ return this.status;
29
+ }
30
+ /**
31
+ * Get configuration
32
+ */
33
+ getConfig() {
34
+ return { ...this.config };
35
+ }
36
+ /**
37
+ * Check if service is enabled
38
+ */
39
+ isEnabled() {
40
+ return this.config.enabled;
41
+ }
42
+ /**
43
+ * Enable/disable service
44
+ */
45
+ setEnabled(enabled) {
46
+ this.config.enabled = enabled;
47
+ this.emit('service:enabled', this.name, enabled);
48
+ }
49
+ }
50
+ exports.BaseServiceAdapter = BaseServiceAdapter;
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/base/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mCAAsC;AAGtC,MAAsB,kBAAmB,SAAQ,qBAAY;IACjD,IAAI,CAAS;IACb,MAAM,CAAgB;IACtB,MAAM,GAAmD,cAAc,CAAC;IAElF,YAAY,IAAY,EAAE,MAAqB;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAiGD;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AA7ID,gDA6IC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Base Service Types
3
+ * Common types used by all AI service adapters
4
+ */
5
+ export interface ServiceConfig {
6
+ name: string;
7
+ enabled: boolean;
8
+ type: 'chatgpt' | 'deepseek' | 'wenxin' | 'qwen' | 'custom';
9
+ version: string;
10
+ description?: string;
11
+ settings: {
12
+ base_url: string;
13
+ timeout: number;
14
+ max_retries: number;
15
+ retry_delay: number;
16
+ model: string;
17
+ max_tokens: number;
18
+ temperature: number;
19
+ top_p: number;
20
+ frequency_penalty: number;
21
+ presence_penalty: number;
22
+ requests_per_minute: number;
23
+ tokens_per_minute: number;
24
+ };
25
+ credentials?: {
26
+ username: string;
27
+ password: string;
28
+ api_key?: string;
29
+ access_token?: string;
30
+ refresh_token?: string;
31
+ };
32
+ metadata?: {
33
+ created_at: number;
34
+ updated_at: number;
35
+ last_used: number;
36
+ tags: string[];
37
+ };
38
+ }
39
+ export interface ChatRequest {
40
+ message: string;
41
+ conversationId?: string;
42
+ stream?: boolean;
43
+ temperature?: number;
44
+ maxTokens?: number;
45
+ systemPrompt?: string;
46
+ model?: string;
47
+ }
48
+ export interface ChatResponse {
49
+ id: string;
50
+ message: string;
51
+ conversationId: string;
52
+ usage: {
53
+ prompt_tokens: number;
54
+ completion_tokens: number;
55
+ total_tokens: number;
56
+ };
57
+ finishReason: string;
58
+ timestamp: number;
59
+ }
60
+ export interface ServiceStatus {
61
+ name: string;
62
+ status: 'initializing' | 'ready' | 'error' | 'stopped';
63
+ enabled: boolean;
64
+ mode: 'public' | 'authenticated';
65
+ authenticated: boolean;
66
+ hasActiveSession: boolean;
67
+ totalConversations: number;
68
+ totalTokens: number;
69
+ rateLimited: boolean;
70
+ errorCount: number;
71
+ lastError?: string;
72
+ usage: {
73
+ totalTokens: number;
74
+ promptTokens: number;
75
+ completionTokens: number;
76
+ requests: number;
77
+ };
78
+ }
79
+ export interface ErrorInfo {
80
+ code: string;
81
+ message: string;
82
+ timestamp: number;
83
+ retryable: boolean;
84
+ details?: any;
85
+ }
86
+ export interface RecoveryAction {
87
+ id: string;
88
+ name: string;
89
+ description: string;
90
+ action: () => Promise<boolean>;
91
+ priority: 'low' | 'medium' | 'high' | 'critical';
92
+ }
93
+ export interface BackupInfo {
94
+ filename: string;
95
+ size: number;
96
+ created_at: number;
97
+ service_name: string;
98
+ service_version: string;
99
+ }
100
+ export interface UsageStats {
101
+ tokens: {
102
+ total: number;
103
+ prompt: number;
104
+ completion: number;
105
+ };
106
+ requests: number;
107
+ rate_limited: boolean;
108
+ errors: {
109
+ total: number;
110
+ retryable: number;
111
+ last_error: number;
112
+ };
113
+ }
114
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/base/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QAGpB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QAGzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IAGF,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAGF,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACvD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,eAAe,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CAClD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Base Service Types
4
+ * Common types used by all AI service adapters
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/base/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * ChatGPT API Client
3
+ * Handles HTTP requests to ChatGPT API with authentication and rate limiting
4
+ */
5
+ import { ChatGPTConfig, RequestOptions, RateLimitInfo, ChatCompletionRequest, ChatCompletionResponse } from './types';
6
+ import { EventEmitter } from 'events';
7
+ export declare class ChatGPTAPIClient extends EventEmitter {
8
+ private client;
9
+ private config;
10
+ private rateLimitInfo;
11
+ constructor(config: ChatGPTConfig);
12
+ /**
13
+ * Get default headers for API requests
14
+ */
15
+ private getDefaultHeaders;
16
+ /**
17
+ * Add authentication headers to request
18
+ */
19
+ private addAuthHeaders;
20
+ /**
21
+ * Update rate limit information from response headers
22
+ */
23
+ private updateRateLimitInfo;
24
+ /**
25
+ * Handle API errors with retry logic
26
+ */
27
+ private handleError;
28
+ /**
29
+ * Retry request with exponential backoff
30
+ */
31
+ private retryWithBackoff;
32
+ /**
33
+ * Make an API request with rate limiting
34
+ */
35
+ request(options: RequestOptions): Promise<any>;
36
+ /**
37
+ * Send a chat completion request
38
+ */
39
+ chatCompletion(request: ChatCompletionRequest): Promise<ChatCompletionResponse>;
40
+ /**
41
+ * List available models
42
+ */
43
+ listModels(): Promise<any>;
44
+ /**
45
+ * Get model information
46
+ */
47
+ getModel(modelId: string): Promise<any>;
48
+ /**
49
+ * Check API status
50
+ */
51
+ checkStatus(): Promise<{
52
+ status: string;
53
+ version?: string;
54
+ error?: string;
55
+ }>;
56
+ /**
57
+ * Check if error is retryable
58
+ */
59
+ private isRetryableError;
60
+ /**
61
+ * Reset rate limit information
62
+ */
63
+ private resetRateLimit;
64
+ /**
65
+ * Utility function for delays
66
+ */
67
+ private delay;
68
+ /**
69
+ * Get current rate limit information
70
+ */
71
+ getRateLimitInfo(): RateLimitInfo;
72
+ /**
73
+ * Update configuration
74
+ */
75
+ updateConfig(newConfig: Partial<ChatGPTConfig>): void;
76
+ /**
77
+ * Get current configuration
78
+ */
79
+ getConfig(): ChatGPTConfig;
80
+ }
81
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../src/services/chatgpt/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,aAAa,EAEb,cAAc,EACd,aAAa,EAEb,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAgB;gBAIzB,MAAM,EAAE,aAAa;IAkDjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;YACW,WAAW;IAiDzB;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAkCpD;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYrF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAQhC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ7C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBlF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAWrD;;OAEG;IACH,SAAS,IAAI,aAAa;CAG3B"}