@172ai/containers-mcp-server 1.0.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 (43) hide show
  1. package/.env.example +43 -0
  2. package/README.md +366 -0
  3. package/dist/auth.d.ts +57 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +192 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/config.d.ts +84 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +246 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/server.d.ts +63 -0
  12. package/dist/server.d.ts.map +1 -0
  13. package/dist/server.js +886 -0
  14. package/dist/server.js.map +1 -0
  15. package/dist/services/buildService.d.ts +51 -0
  16. package/dist/services/buildService.d.ts.map +1 -0
  17. package/dist/services/buildService.js +268 -0
  18. package/dist/services/buildService.js.map +1 -0
  19. package/dist/services/capabilityService.d.ts +62 -0
  20. package/dist/services/capabilityService.d.ts.map +1 -0
  21. package/dist/services/capabilityService.js +240 -0
  22. package/dist/services/capabilityService.js.map +1 -0
  23. package/dist/services/containerService.d.ts +52 -0
  24. package/dist/services/containerService.d.ts.map +1 -0
  25. package/dist/services/containerService.js +251 -0
  26. package/dist/services/containerService.js.map +1 -0
  27. package/dist/services/fileService.d.ts +65 -0
  28. package/dist/services/fileService.d.ts.map +1 -0
  29. package/dist/services/fileService.js +330 -0
  30. package/dist/services/fileService.js.map +1 -0
  31. package/dist/setup.d.ts +30 -0
  32. package/dist/setup.d.ts.map +1 -0
  33. package/dist/setup.js +328 -0
  34. package/dist/setup.js.map +1 -0
  35. package/dist/types.d.ts +229 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +4 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils/errorHandler.d.ts +78 -0
  40. package/dist/utils/errorHandler.d.ts.map +1 -0
  41. package/dist/utils/errorHandler.js +269 -0
  42. package/dist/utils/errorHandler.js.map +1 -0
  43. package/package.json +81 -0
package/dist/setup.js ADDED
@@ -0,0 +1,328 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.MCPServerSetup = void 0;
41
+ const inquirer_1 = __importDefault(require("inquirer"));
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const ora_1 = __importDefault(require("ora"));
46
+ /**
47
+ * Interactive setup for the 172.ai MCP Server
48
+ */
49
+ class MCPServerSetup {
50
+ constructor() {
51
+ this.envPath = path.join(process.cwd(), '.env');
52
+ }
53
+ /**
54
+ * Run the setup process
55
+ */
56
+ async run() {
57
+ console.log(chalk_1.default.blue.bold('\n🚀 172.ai MCP Server Setup\n'));
58
+ console.log('Welcome to the 172.ai Container Management MCP Server setup!');
59
+ console.log('This will help you configure authentication and connection settings.\n');
60
+ try {
61
+ // Check if .env already exists
62
+ if (fs.existsSync(this.envPath)) {
63
+ const { overwrite } = await inquirer_1.default.prompt([
64
+ {
65
+ type: 'confirm',
66
+ name: 'overwrite',
67
+ message: 'Configuration file (.env) already exists. Overwrite?',
68
+ default: false
69
+ }
70
+ ]);
71
+ if (!overwrite) {
72
+ console.log(chalk_1.default.yellow('Setup cancelled. Existing configuration preserved.'));
73
+ return;
74
+ }
75
+ }
76
+ // Gather configuration
77
+ const config = await this.gatherConfiguration();
78
+ // Test connection
79
+ await this.testConnection(config);
80
+ // Save configuration
81
+ await this.saveConfiguration(config);
82
+ console.log(chalk_1.default.green.bold('\n✅ Setup completed successfully!'));
83
+ console.log('\nYou can now use the MCP server with your AI assistant.');
84
+ console.log('\nUseful commands:');
85
+ console.log(chalk_1.default.cyan(' npm start ') + '- Start the MCP server');
86
+ console.log(chalk_1.default.cyan(' npm run dev ') + '- Start in development mode');
87
+ console.log(chalk_1.default.cyan(' npm run configure') + '- Reconfigure settings');
88
+ }
89
+ catch (error) {
90
+ console.error(chalk_1.default.red('❌ Setup failed:'), error.message);
91
+ process.exit(1);
92
+ }
93
+ }
94
+ /**
95
+ * Gather configuration from user input
96
+ */
97
+ async gatherConfiguration() {
98
+ console.log(chalk_1.default.yellow('📋 Configuration\n'));
99
+ const answers = await inquirer_1.default.prompt([
100
+ {
101
+ type: 'input',
102
+ name: 'apiUrl',
103
+ message: '172.ai API URL:',
104
+ default: 'https://api.172.ai',
105
+ validate: (input) => {
106
+ if (!input.startsWith('http://') && !input.startsWith('https://')) {
107
+ return 'Please enter a valid HTTP/HTTPS URL';
108
+ }
109
+ return true;
110
+ }
111
+ },
112
+ {
113
+ type: 'list',
114
+ name: 'authMethod',
115
+ message: 'Authentication method:',
116
+ choices: [
117
+ { name: 'API Key (Recommended)', value: 'api_key' },
118
+ { name: 'OAuth Token', value: 'oauth_token' },
119
+ { name: 'OAuth Client Credentials', value: 'oauth_client' }
120
+ ]
121
+ }
122
+ ]);
123
+ // Get authentication details based on method
124
+ let authConfig = {};
125
+ if (answers.authMethod === 'api_key') {
126
+ const apiKeyAnswers = await inquirer_1.default.prompt([
127
+ {
128
+ type: 'password',
129
+ name: 'apiKey',
130
+ message: 'API Key:',
131
+ mask: '*',
132
+ validate: (input) => input.length > 0 || 'API Key is required'
133
+ }
134
+ ]);
135
+ authConfig = { apiKey: apiKeyAnswers.apiKey };
136
+ }
137
+ else if (answers.authMethod === 'oauth_token') {
138
+ const tokenAnswers = await inquirer_1.default.prompt([
139
+ {
140
+ type: 'password',
141
+ name: 'oauthToken',
142
+ message: 'OAuth Token:',
143
+ mask: '*',
144
+ validate: (input) => input.length > 0 || 'OAuth Token is required'
145
+ }
146
+ ]);
147
+ authConfig = { oauthToken: tokenAnswers.oauthToken };
148
+ }
149
+ else if (answers.authMethod === 'oauth_client') {
150
+ const clientAnswers = await inquirer_1.default.prompt([
151
+ {
152
+ type: 'input',
153
+ name: 'clientId',
154
+ message: 'OAuth Client ID:',
155
+ validate: (input) => input.length > 0 || 'Client ID is required'
156
+ },
157
+ {
158
+ type: 'password',
159
+ name: 'clientSecret',
160
+ message: 'OAuth Client Secret:',
161
+ mask: '*',
162
+ validate: (input) => input.length > 0 || 'Client Secret is required'
163
+ }
164
+ ]);
165
+ authConfig = {
166
+ clientId: clientAnswers.clientId,
167
+ clientSecret: clientAnswers.clientSecret
168
+ };
169
+ }
170
+ // Get additional settings
171
+ const advancedAnswers = await inquirer_1.default.prompt([
172
+ {
173
+ type: 'confirm',
174
+ name: 'configureAdvanced',
175
+ message: 'Configure advanced settings?',
176
+ default: false
177
+ }
178
+ ]);
179
+ let advancedConfig = {};
180
+ if (advancedAnswers.configureAdvanced) {
181
+ advancedConfig = await inquirer_1.default.prompt([
182
+ {
183
+ type: 'list',
184
+ name: 'environment',
185
+ message: 'Environment:',
186
+ choices: ['development', 'production', 'test'],
187
+ default: 'development'
188
+ },
189
+ {
190
+ type: 'list',
191
+ name: 'logLevel',
192
+ message: 'Log level:',
193
+ choices: ['error', 'warn', 'info', 'debug'],
194
+ default: 'info'
195
+ },
196
+ {
197
+ type: 'number',
198
+ name: 'requestTimeout',
199
+ message: 'Request timeout (ms):',
200
+ default: 30000,
201
+ validate: (input) => input > 0 || 'Timeout must be positive'
202
+ },
203
+ {
204
+ type: 'number',
205
+ name: 'rateLimitPerMinute',
206
+ message: 'Rate limit (requests per minute):',
207
+ default: 60,
208
+ validate: (input) => input > 0 || 'Rate limit must be positive'
209
+ }
210
+ ]);
211
+ }
212
+ return {
213
+ ...answers,
214
+ ...authConfig,
215
+ ...advancedConfig
216
+ };
217
+ }
218
+ /**
219
+ * Test connection with the provided configuration
220
+ */
221
+ async testConnection(config) {
222
+ const spinner = (0, ora_1.default)('🔍 Testing connection...').start();
223
+ try {
224
+ // Create temporary .env for testing
225
+ const tempEnvContent = this.createEnvContent(config);
226
+ const tempEnvPath = path.join(process.cwd(), '.env.temp');
227
+ fs.writeFileSync(tempEnvPath, tempEnvContent);
228
+ // Simulate connection test (in real implementation, this would make an API call)
229
+ await new Promise(resolve => setTimeout(resolve, 2000));
230
+ // Clean up temp file
231
+ fs.unlinkSync(tempEnvPath);
232
+ spinner.succeed(chalk_1.default.green('✅ Connection test successful'));
233
+ }
234
+ catch (error) {
235
+ spinner.fail(chalk_1.default.red('❌ Connection test failed'));
236
+ throw error;
237
+ }
238
+ }
239
+ /**
240
+ * Save configuration to .env file
241
+ */
242
+ async saveConfiguration(config) {
243
+ const spinner = (0, ora_1.default)('💾 Saving configuration...').start();
244
+ try {
245
+ const envContent = this.createEnvContent(config);
246
+ fs.writeFileSync(this.envPath, envContent);
247
+ spinner.succeed(chalk_1.default.green('✅ Configuration saved'));
248
+ }
249
+ catch (error) {
250
+ spinner.fail(chalk_1.default.red('❌ Failed to save configuration'));
251
+ throw error;
252
+ }
253
+ }
254
+ /**
255
+ * Create .env file content from configuration
256
+ */
257
+ createEnvContent(config) {
258
+ let content = `# 172.ai MCP Server Configuration
259
+ # Generated on ${new Date().toISOString()}
260
+
261
+ # API Configuration
262
+ CONTAINER_API_URL=${config.apiUrl}
263
+ NODE_ENV=${config.environment || 'development'}
264
+
265
+ `;
266
+ // Add authentication configuration
267
+ if (config.apiKey) {
268
+ content += `# Authentication (API Key)
269
+ API_KEY=${config.apiKey}
270
+
271
+ `;
272
+ }
273
+ else if (config.oauthToken) {
274
+ content += `# Authentication (OAuth Token)
275
+ OAUTH_TOKEN=${config.oauthToken}
276
+
277
+ `;
278
+ }
279
+ else if (config.clientId && config.clientSecret) {
280
+ content += `# Authentication (OAuth Client Credentials)
281
+ OAUTH_CLIENT_ID=${config.clientId}
282
+ OAUTH_CLIENT_SECRET=${config.clientSecret}
283
+
284
+ `;
285
+ }
286
+ // Add advanced configuration if provided
287
+ if (config.logLevel) {
288
+ content += `# Logging
289
+ LOG_LEVEL=${config.logLevel}
290
+
291
+ `;
292
+ }
293
+ if (config.requestTimeout) {
294
+ content += `# Timeouts
295
+ REQUEST_TIMEOUT=${config.requestTimeout}
296
+
297
+ `;
298
+ }
299
+ if (config.rateLimitPerMinute) {
300
+ content += `# Rate Limiting
301
+ RATE_LIMIT_PER_MINUTE=${config.rateLimitPerMinute}
302
+
303
+ `;
304
+ }
305
+ content += `# Security
306
+ VALIDATE_CERTIFICATES=true
307
+
308
+ # Additional settings (uncomment to customize)
309
+ # CONNECT_TIMEOUT=10000
310
+ # MAX_RETRIES=3
311
+ # BACKOFF_MULTIPLIER=2
312
+ # MAX_BACKOFF_MS=30000
313
+ # RATE_LIMIT_PER_HOUR=1000
314
+ # ALLOWED_SCOPES=containers:read,containers:write,builds:read,builds:write,files:read,files:write
315
+ `;
316
+ return content;
317
+ }
318
+ }
319
+ exports.MCPServerSetup = MCPServerSetup;
320
+ // Run setup if this file is executed directly
321
+ if (require.main === module) {
322
+ const setup = new MCPServerSetup();
323
+ setup.run().catch((error) => {
324
+ console.error('Setup failed:', error);
325
+ process.exit(1);
326
+ });
327
+ }
328
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ export interface MCPServerConfig {
2
+ baseUrl: string;
3
+ apiKey?: string;
4
+ oauthToken?: string;
5
+ clientId?: string;
6
+ clientSecret?: string;
7
+ environment: 'development' | 'production' | 'test';
8
+ logLevel: 'error' | 'warn' | 'info' | 'debug';
9
+ rateLimits: {
10
+ requestsPerMinute: number;
11
+ requestsPerHour: number;
12
+ };
13
+ timeouts: {
14
+ request: number;
15
+ connect: number;
16
+ };
17
+ retryConfig: {
18
+ maxRetries: number;
19
+ backoffMultiplier: number;
20
+ maxBackoffMs: number;
21
+ };
22
+ security: {
23
+ validateCertificates: boolean;
24
+ allowedScopes: string[];
25
+ };
26
+ }
27
+ export interface AuthTokenResponse {
28
+ access_token: string;
29
+ token_type: string;
30
+ expires_in: number;
31
+ refresh_token?: string;
32
+ scope?: string;
33
+ }
34
+ export interface ApiKeyInfo {
35
+ id: string;
36
+ name: string;
37
+ scope: string[];
38
+ isActive: boolean;
39
+ createdAt: string;
40
+ lastUsed?: string;
41
+ expiresAt?: string;
42
+ }
43
+ export interface Container {
44
+ id: string;
45
+ name: string;
46
+ description: string;
47
+ dockerfile: string;
48
+ tags: string[];
49
+ isPrivate: boolean;
50
+ createdAt: string;
51
+ updatedAt: string;
52
+ userId: string;
53
+ envVars?: Record<string, string>;
54
+ buildConfig?: BuildConfig;
55
+ }
56
+ export interface ContainerListResponse {
57
+ containers: Container[];
58
+ total: number;
59
+ page: number;
60
+ limit: number;
61
+ hasMore: boolean;
62
+ }
63
+ export interface CreateContainerRequest {
64
+ name: string;
65
+ description: string;
66
+ dockerfile: string;
67
+ tags?: string[];
68
+ isPrivate?: boolean;
69
+ envVars?: Record<string, string>;
70
+ }
71
+ export interface BuildConfig {
72
+ context: string;
73
+ dockerfile: string;
74
+ buildArgs?: Record<string, string>;
75
+ target?: string;
76
+ }
77
+ export interface BuildStatus {
78
+ id: string;
79
+ containerId: string;
80
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
81
+ startTime: string;
82
+ endTime?: string;
83
+ logs?: string[];
84
+ error?: string;
85
+ progress?: number;
86
+ }
87
+ export interface BuildListResponse {
88
+ builds: BuildStatus[];
89
+ total: number;
90
+ page: number;
91
+ limit: number;
92
+ hasMore: boolean;
93
+ }
94
+ export interface BuildLogEntry {
95
+ id: string;
96
+ containerId: string;
97
+ buildId: string;
98
+ timestamp: string;
99
+ level: 'info' | 'warn' | 'error' | 'debug';
100
+ message: string;
101
+ status: string;
102
+ createdAt: string;
103
+ }
104
+ export interface ContainerFile {
105
+ name: string;
106
+ path: string;
107
+ size?: number;
108
+ type?: 'file' | 'directory';
109
+ mimeType?: string;
110
+ lastModified?: string;
111
+ content?: string;
112
+ }
113
+ export interface FileListResponse {
114
+ files: ContainerFile[];
115
+ total: number;
116
+ path: string;
117
+ }
118
+ export interface FileUploadRequest {
119
+ containerId: string;
120
+ filePath: string;
121
+ content: string;
122
+ mimeType?: string;
123
+ encoding?: 'base64' | 'utf8';
124
+ }
125
+ export interface FileUploadResult {
126
+ id: string;
127
+ path: string;
128
+ name: string;
129
+ size: number;
130
+ mimeType: string;
131
+ uploadedAt: string;
132
+ }
133
+ export interface Capability {
134
+ id: string;
135
+ name: string;
136
+ description: string;
137
+ category: string;
138
+ version: string;
139
+ dependencies?: string[];
140
+ configuration?: Record<string, any>;
141
+ isActive: boolean;
142
+ }
143
+ export interface CapabilityListResponse {
144
+ capabilities: Capability[];
145
+ total: number;
146
+ page: number;
147
+ limit: number;
148
+ hasMore: boolean;
149
+ }
150
+ export interface APIError {
151
+ type: string;
152
+ message: string;
153
+ status: number;
154
+ code: string;
155
+ details?: any;
156
+ requestId?: string;
157
+ timestamp: string;
158
+ context?: string;
159
+ stack?: string;
160
+ }
161
+ export interface ProcessedError {
162
+ type: string;
163
+ message: string;
164
+ status: number;
165
+ code: string;
166
+ details?: any;
167
+ requestId: string;
168
+ timestamp: string;
169
+ context?: string;
170
+ stack?: string;
171
+ }
172
+ export interface ListContainersParams {
173
+ scope?: 'public' | 'myCollection' | 'all';
174
+ limit?: number;
175
+ offset?: number;
176
+ query?: string;
177
+ }
178
+ export interface GetContainerParams {
179
+ containerId: string;
180
+ }
181
+ export interface CreateContainerParams extends CreateContainerRequest {
182
+ }
183
+ export interface UpdateContainerParams {
184
+ containerId: string;
185
+ name?: string;
186
+ description?: string;
187
+ dockerfile?: string;
188
+ tags?: string[];
189
+ isPrivate?: boolean;
190
+ envVars?: Record<string, string>;
191
+ }
192
+ export interface DeleteContainerParams {
193
+ containerId: string;
194
+ }
195
+ export interface BuildContainerParams {
196
+ containerId: string;
197
+ buildArgs?: Record<string, string>;
198
+ target?: string;
199
+ }
200
+ export interface GetBuildStatusParams {
201
+ containerId: string;
202
+ buildId?: string;
203
+ }
204
+ export interface ListBuildsParams {
205
+ containerId?: string;
206
+ status?: string;
207
+ limit?: number;
208
+ offset?: number;
209
+ }
210
+ export interface UploadFileParams extends FileUploadRequest {
211
+ }
212
+ export interface GetFileContentParams {
213
+ containerId: string;
214
+ filePath: string;
215
+ }
216
+ export interface ListContainerFilesParams {
217
+ containerId: string;
218
+ path?: string;
219
+ }
220
+ export interface ListCapabilitiesParams {
221
+ category?: string;
222
+ limit?: number;
223
+ offset?: number;
224
+ query?: string;
225
+ }
226
+ export interface GetCapabilityParams {
227
+ capabilityId: string;
228
+ }
229
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Core MCP Server Types for 172.ai Container Management
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,wDAAwD"}
@@ -0,0 +1,78 @@
1
+ import { APIError, ProcessedError } from '../types';
2
+ /**
3
+ * Custom error class for API errors
4
+ */
5
+ export declare class ApiError extends Error {
6
+ readonly type: string;
7
+ readonly status: number;
8
+ readonly code: string;
9
+ readonly details?: any;
10
+ readonly requestId?: string;
11
+ readonly timestamp: string;
12
+ readonly context?: string;
13
+ constructor(message: string, status?: number, code?: string, details?: any, requestId?: string, context?: string);
14
+ /**
15
+ * Convert to API error response format
16
+ */
17
+ toResponse(): APIError;
18
+ }
19
+ /**
20
+ * Error handler class for processing different types of errors
21
+ */
22
+ export declare class ErrorHandler {
23
+ /**
24
+ * Process any error and return a standardized format
25
+ */
26
+ static processError(error: any, context?: string, requestId?: string): ProcessedError;
27
+ /**
28
+ * Create a standardized error for authentication issues
29
+ */
30
+ static createAuthError(message: string, details?: any): ApiError;
31
+ /**
32
+ * Create a standardized error for authorization issues
33
+ */
34
+ static createAuthorizationError(message: string, details?: any): ApiError;
35
+ /**
36
+ * Create a standardized error for validation issues
37
+ */
38
+ static createValidationError(message: string, details?: any): ApiError;
39
+ /**
40
+ * Create a standardized error for not found issues
41
+ */
42
+ static createNotFoundError(message: string, details?: any): ApiError;
43
+ /**
44
+ * Create a standardized error for rate limiting
45
+ */
46
+ static createRateLimitError(message?: string, details?: any): ApiError;
47
+ /**
48
+ * Create a standardized error for server errors
49
+ */
50
+ static createServerError(message: string, details?: any): ApiError;
51
+ /**
52
+ * Log error with appropriate level based on status
53
+ */
54
+ static logError(error: ProcessedError): void;
55
+ /**
56
+ * Handle errors in async operations
57
+ */
58
+ static handleAsync<T>(operation: () => Promise<T>, context?: string, requestId?: string): Promise<T>;
59
+ }
60
+ /**
61
+ * Utility functions for common error scenarios
62
+ */
63
+ export declare const ErrorUtils: {
64
+ /**
65
+ * Wrap async function with error handling
66
+ */
67
+ withErrorHandling: <T extends any[], R>(fn: (...args: T) => Promise<R>, context?: string) => (...args: T) => Promise<R>;
68
+ /**
69
+ * Check if error is retryable
70
+ */
71
+ isRetryable: (error: any) => boolean;
72
+ /**
73
+ * Get retry delay with exponential backoff
74
+ */
75
+ getRetryDelay: (attempt: number, baseDelay?: number) => number;
76
+ };
77
+ export default ErrorHandler;
78
+ //# sourceMappingURL=errorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/utils/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGpD;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,CAAC,EAAE,GAAG,CAAC;IAC9B,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAG/B,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAY,EACpB,IAAI,GAAE,MAAwB,EAC9B,OAAO,CAAC,EAAE,GAAG,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM;IAkBlB;;OAEG;IACH,UAAU,IAAI,QAAQ;CAavB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc;IA8FrF;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,QAAQ;IAIhE;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,QAAQ;IAIzE;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,QAAQ;IAItE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,QAAQ;IAIpE;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,GAAE,MAA8B,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,QAAQ;IAI7F;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,QAAQ;IAIlE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAgC5C;;OAEG;WACU,WAAW,CAAC,CAAC,EACxB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;CAgBd;AASD;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;wBACiB,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,MAChC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,YACpB,MAAM,MAEF,GAAG,MAAM,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;IAKvC;;OAEG;yBACkB,GAAG,KAAG,OAAO;IAsBlC;;OAEG;6BACsB,MAAM,cAAa,MAAM,KAAU,MAAM;CAKnE,CAAC;AAGF,eAAe,YAAY,CAAC"}