@andrebuzeli/git-mcp 4.0.21 → 5.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.
- package/README.md +59 -32
- package/dist/config.d.ts +0 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -27
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -3
- package/dist/index.js.map +1 -1
- package/dist/providers/gitea-provider.d.ts +5 -5
- package/dist/providers/gitea-provider.d.ts.map +1 -1
- package/dist/providers/gitea-provider.js +75 -220
- package/dist/providers/gitea-provider.js.map +1 -1
- package/dist/providers/github-provider.d.ts +0 -48
- package/dist/providers/github-provider.d.ts.map +1 -1
- package/dist/providers/github-provider.js +805 -849
- package/dist/providers/github-provider.js.map +1 -1
- package/dist/providers/provider-factory.d.ts +1 -1
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +4 -14
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/types.d.ts +1 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +91 -37
- package/dist/server.js.map +1 -1
- package/dist/tools/git-files.d.ts.map +1 -1
- package/dist/tools/git-files.js +103 -5
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-sync.d.ts.map +1 -1
- package/dist/tools/git-sync.js +104 -6
- package/dist/tools/git-sync.js.map +1 -1
- package/dist/tools/git-workflow.d.ts +55 -0
- package/dist/tools/git-workflow.d.ts.map +1 -1
- package/dist/tools/git-workflow.js +660 -7
- package/dist/tools/git-workflow.js.map +1 -1
- package/dist/utils/auto-detection.js +1 -1
- package/dist/utils/auto-detection.js.map +1 -1
- package/dist/utils/configuration-error-generator.d.ts +41 -0
- package/dist/utils/configuration-error-generator.d.ts.map +1 -0
- package/dist/utils/configuration-error-generator.js +168 -0
- package/dist/utils/configuration-error-generator.js.map +1 -0
- package/dist/utils/configuration-validator.d.ts +67 -0
- package/dist/utils/configuration-validator.d.ts.map +1 -0
- package/dist/utils/configuration-validator.js +257 -0
- package/dist/utils/configuration-validator.js.map +1 -0
- package/dist/utils/multi-provider-error-handler.d.ts +75 -0
- package/dist/utils/multi-provider-error-handler.d.ts.map +1 -0
- package/dist/utils/multi-provider-error-handler.js +276 -0
- package/dist/utils/multi-provider-error-handler.js.map +1 -0
- package/dist/utils/multi-provider-operation-handler.d.ts +113 -0
- package/dist/utils/multi-provider-operation-handler.d.ts.map +1 -0
- package/dist/utils/multi-provider-operation-handler.js +303 -0
- package/dist/utils/multi-provider-operation-handler.js.map +1 -0
- package/dist/utils/operation-error-handler.d.ts +69 -0
- package/dist/utils/operation-error-handler.d.ts.map +1 -0
- package/dist/utils/operation-error-handler.js +277 -0
- package/dist/utils/operation-error-handler.js.map +1 -0
- package/dist/utils/provider-operation-handler.d.ts +80 -0
- package/dist/utils/provider-operation-handler.d.ts.map +1 -0
- package/dist/utils/provider-operation-handler.js +201 -0
- package/dist/utils/provider-operation-handler.js.map +1 -0
- package/dist/utils/response-helper.js +1 -1
- package/dist/utils/response-helper.js.map +1 -1
- package/package.json +60 -60
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { VcsOperations } from '../providers/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result interface for individual provider operations within multi-provider context
|
|
4
|
+
*/
|
|
5
|
+
export interface ProviderOperationResult<T> {
|
|
6
|
+
success: boolean;
|
|
7
|
+
data?: T;
|
|
8
|
+
error?: string;
|
|
9
|
+
provider: 'github' | 'gitea';
|
|
10
|
+
executionTime?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Result interface for multi-provider operations
|
|
14
|
+
*/
|
|
15
|
+
export interface MultiProviderOperationResult<T> {
|
|
16
|
+
success: boolean;
|
|
17
|
+
message: string;
|
|
18
|
+
data: {
|
|
19
|
+
github?: ProviderOperationResult<T>;
|
|
20
|
+
gitea?: ProviderOperationResult<T>;
|
|
21
|
+
};
|
|
22
|
+
warnings?: string[];
|
|
23
|
+
summary: {
|
|
24
|
+
totalProviders: number;
|
|
25
|
+
successfulProviders: number;
|
|
26
|
+
failedProviders: number;
|
|
27
|
+
partialSuccess: boolean;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Configuration status for multi-provider operations
|
|
32
|
+
*/
|
|
33
|
+
export interface MultiProviderConfiguration {
|
|
34
|
+
github: {
|
|
35
|
+
configured: boolean;
|
|
36
|
+
available: boolean;
|
|
37
|
+
error?: string;
|
|
38
|
+
};
|
|
39
|
+
gitea: {
|
|
40
|
+
configured: boolean;
|
|
41
|
+
available: boolean;
|
|
42
|
+
error?: string;
|
|
43
|
+
};
|
|
44
|
+
totalConfigured: number;
|
|
45
|
+
hasAnyProvider: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Multi-Provider Operation Handler
|
|
49
|
+
* Handles simultaneous execution on both GitHub and Gitea providers
|
|
50
|
+
* with comprehensive error handling and partial success scenarios
|
|
51
|
+
*/
|
|
52
|
+
export declare class MultiProviderOperationHandler {
|
|
53
|
+
/**
|
|
54
|
+
* Execute operation on both providers simultaneously
|
|
55
|
+
*/
|
|
56
|
+
static executeOnBoth<T>(operation: (provider: VcsOperations) => Promise<T>): Promise<MultiProviderOperationResult<T>>;
|
|
57
|
+
/**
|
|
58
|
+
* Execute operation on a specific provider
|
|
59
|
+
*/
|
|
60
|
+
private static executeOnProvider;
|
|
61
|
+
/**
|
|
62
|
+
* Handle partial success scenarios where one provider fails
|
|
63
|
+
*/
|
|
64
|
+
static handlePartialSuccess<T>(githubResult?: ProviderOperationResult<T>, giteaResult?: ProviderOperationResult<T>): {
|
|
65
|
+
success: boolean;
|
|
66
|
+
message: string;
|
|
67
|
+
warnings: string[];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Aggregate results from multiple providers
|
|
71
|
+
*/
|
|
72
|
+
private static aggregateResults;
|
|
73
|
+
/**
|
|
74
|
+
* Get provider configuration status
|
|
75
|
+
*/
|
|
76
|
+
static getProviderConfiguration(): MultiProviderConfiguration;
|
|
77
|
+
/**
|
|
78
|
+
* Generate configuration warnings for missing providers
|
|
79
|
+
*/
|
|
80
|
+
private static generateConfigurationWarnings;
|
|
81
|
+
/**
|
|
82
|
+
* Create result for when no providers are configured
|
|
83
|
+
*/
|
|
84
|
+
private static createNoProvidersResult;
|
|
85
|
+
/**
|
|
86
|
+
* Create failed result for a specific provider
|
|
87
|
+
*/
|
|
88
|
+
private static createFailedResult;
|
|
89
|
+
/**
|
|
90
|
+
* Check if multi-provider operations are possible
|
|
91
|
+
*/
|
|
92
|
+
static canExecuteMultiProvider(): {
|
|
93
|
+
possible: boolean;
|
|
94
|
+
reason?: string;
|
|
95
|
+
availableProviders: ('github' | 'gitea')[];
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Get detailed provider status for debugging
|
|
99
|
+
*/
|
|
100
|
+
static getDetailedProviderStatus(): {
|
|
101
|
+
github: {
|
|
102
|
+
configured: boolean;
|
|
103
|
+
error?: string;
|
|
104
|
+
configurationHelp?: any;
|
|
105
|
+
};
|
|
106
|
+
gitea: {
|
|
107
|
+
configured: boolean;
|
|
108
|
+
error?: string;
|
|
109
|
+
configurationHelp?: any;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=multi-provider-operation-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-provider-operation-handler.d.ts","sourceRoot":"","sources":["../../src/utils/multi-provider-operation-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiProviderOperationHandler = void 0;
|
|
4
|
+
const index_js_1 = require("../providers/index.js");
|
|
5
|
+
const configuration_validator_js_1 = require("./configuration-validator.js");
|
|
6
|
+
const configuration_error_generator_js_1 = require("./configuration-error-generator.js");
|
|
7
|
+
const operation_error_handler_js_1 = require("./operation-error-handler.js");
|
|
8
|
+
/**
|
|
9
|
+
* Multi-Provider Operation Handler
|
|
10
|
+
* Handles simultaneous execution on both GitHub and Gitea providers
|
|
11
|
+
* with comprehensive error handling and partial success scenarios
|
|
12
|
+
*/
|
|
13
|
+
class MultiProviderOperationHandler {
|
|
14
|
+
/**
|
|
15
|
+
* Execute operation on both providers simultaneously
|
|
16
|
+
*/
|
|
17
|
+
static async executeOnBoth(operation) {
|
|
18
|
+
const startTime = Date.now();
|
|
19
|
+
// Get provider configuration status
|
|
20
|
+
const config = this.getProviderConfiguration();
|
|
21
|
+
// Handle case where no providers are configured
|
|
22
|
+
if (!config.hasAnyProvider) {
|
|
23
|
+
return this.createNoProvidersResult();
|
|
24
|
+
}
|
|
25
|
+
// Execute operations on available providers
|
|
26
|
+
const promises = [];
|
|
27
|
+
if (config.github.configured) {
|
|
28
|
+
promises.push(this.executeOnProvider('github', operation));
|
|
29
|
+
}
|
|
30
|
+
if (config.gitea.configured) {
|
|
31
|
+
promises.push(this.executeOnProvider('gitea', operation));
|
|
32
|
+
}
|
|
33
|
+
// Wait for all operations to complete
|
|
34
|
+
const results = await Promise.allSettled(promises);
|
|
35
|
+
// Process results
|
|
36
|
+
let githubResult;
|
|
37
|
+
let giteaResult;
|
|
38
|
+
let resultIndex = 0;
|
|
39
|
+
if (config.github.configured) {
|
|
40
|
+
const result = results[resultIndex];
|
|
41
|
+
githubResult = result.status === 'fulfilled'
|
|
42
|
+
? result.value
|
|
43
|
+
: this.createFailedResult('github', result.reason);
|
|
44
|
+
resultIndex++;
|
|
45
|
+
}
|
|
46
|
+
if (config.gitea.configured) {
|
|
47
|
+
const result = results[resultIndex];
|
|
48
|
+
giteaResult = result.status === 'fulfilled'
|
|
49
|
+
? result.value
|
|
50
|
+
: this.createFailedResult('gitea', result.reason);
|
|
51
|
+
}
|
|
52
|
+
return this.aggregateResults(config, githubResult, giteaResult);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Execute operation on a specific provider
|
|
56
|
+
*/
|
|
57
|
+
static async executeOnProvider(providerName, operation) {
|
|
58
|
+
const startTime = Date.now();
|
|
59
|
+
try {
|
|
60
|
+
// Get provider instance
|
|
61
|
+
const providerInstance = index_js_1.globalProviderFactory.getProvider(providerName);
|
|
62
|
+
if (!providerInstance) {
|
|
63
|
+
const configError = providerName === 'github'
|
|
64
|
+
? configuration_error_generator_js_1.ConfigurationErrorGenerator.generateGitHubError()
|
|
65
|
+
: configuration_error_generator_js_1.ConfigurationErrorGenerator.generateGiteaError();
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
provider: providerName,
|
|
69
|
+
error: `${providerName} provider is not configured. ${configuration_error_generator_js_1.ConfigurationErrorGenerator.formatErrorMessage(configError)}`,
|
|
70
|
+
executionTime: Date.now() - startTime
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// Execute operation
|
|
74
|
+
const result = await operation(providerInstance);
|
|
75
|
+
return {
|
|
76
|
+
success: true,
|
|
77
|
+
provider: providerName,
|
|
78
|
+
data: result,
|
|
79
|
+
executionTime: Date.now() - startTime
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const errorResponse = operation_error_handler_js_1.OperationErrorHandler.createErrorResponse(error instanceof Error ? error : new Error(String(error)), providerName);
|
|
84
|
+
return {
|
|
85
|
+
success: false,
|
|
86
|
+
provider: providerName,
|
|
87
|
+
error: errorResponse.formattedMessage,
|
|
88
|
+
executionTime: Date.now() - startTime
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Handle partial success scenarios where one provider fails
|
|
94
|
+
*/
|
|
95
|
+
static handlePartialSuccess(githubResult, giteaResult) {
|
|
96
|
+
const warnings = [];
|
|
97
|
+
const githubSuccess = githubResult?.success ?? false;
|
|
98
|
+
const giteaSuccess = giteaResult?.success ?? false;
|
|
99
|
+
if (githubSuccess && giteaSuccess) {
|
|
100
|
+
return {
|
|
101
|
+
success: true,
|
|
102
|
+
message: 'Operation completed successfully on both providers',
|
|
103
|
+
warnings: []
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (githubSuccess && !giteaSuccess) {
|
|
107
|
+
warnings.push(`Gitea operation failed: ${giteaResult?.error || 'Unknown error'}`);
|
|
108
|
+
return {
|
|
109
|
+
success: true, // Partial success
|
|
110
|
+
message: 'Operation completed on GitHub, failed on Gitea',
|
|
111
|
+
warnings
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if (!githubSuccess && giteaSuccess) {
|
|
115
|
+
warnings.push(`GitHub operation failed: ${githubResult?.error || 'Unknown error'}`);
|
|
116
|
+
return {
|
|
117
|
+
success: true, // Partial success
|
|
118
|
+
message: 'Operation completed on Gitea, failed on GitHub',
|
|
119
|
+
warnings
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Both failed
|
|
123
|
+
if (githubResult)
|
|
124
|
+
warnings.push(`GitHub: ${githubResult.error}`);
|
|
125
|
+
if (giteaResult)
|
|
126
|
+
warnings.push(`Gitea: ${giteaResult.error}`);
|
|
127
|
+
return {
|
|
128
|
+
success: false,
|
|
129
|
+
message: 'Operation failed on both providers',
|
|
130
|
+
warnings
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Aggregate results from multiple providers
|
|
135
|
+
*/
|
|
136
|
+
static aggregateResults(config, githubResult, giteaResult) {
|
|
137
|
+
const partialResult = this.handlePartialSuccess(githubResult, giteaResult);
|
|
138
|
+
const successfulProviders = [githubResult, giteaResult]
|
|
139
|
+
.filter(result => result?.success).length;
|
|
140
|
+
const failedProviders = [githubResult, giteaResult]
|
|
141
|
+
.filter(result => result && !result.success).length;
|
|
142
|
+
const result = {
|
|
143
|
+
success: partialResult.success,
|
|
144
|
+
message: partialResult.message,
|
|
145
|
+
data: {},
|
|
146
|
+
summary: {
|
|
147
|
+
totalProviders: config.totalConfigured,
|
|
148
|
+
successfulProviders,
|
|
149
|
+
failedProviders,
|
|
150
|
+
partialSuccess: successfulProviders > 0 && failedProviders > 0
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
// Add provider results
|
|
154
|
+
if (githubResult) {
|
|
155
|
+
result.data.github = githubResult;
|
|
156
|
+
}
|
|
157
|
+
if (giteaResult) {
|
|
158
|
+
result.data.gitea = giteaResult;
|
|
159
|
+
}
|
|
160
|
+
// Add warnings if any
|
|
161
|
+
if (partialResult.warnings.length > 0) {
|
|
162
|
+
result.warnings = partialResult.warnings;
|
|
163
|
+
}
|
|
164
|
+
// Add configuration warnings for missing providers
|
|
165
|
+
const configWarnings = this.generateConfigurationWarnings(config);
|
|
166
|
+
if (configWarnings.length > 0) {
|
|
167
|
+
result.warnings = [...(result.warnings || []), ...configWarnings];
|
|
168
|
+
}
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get provider configuration status
|
|
173
|
+
*/
|
|
174
|
+
static getProviderConfiguration() {
|
|
175
|
+
const githubValidation = configuration_validator_js_1.ConfigurationValidator.validateGitHubConfiguration();
|
|
176
|
+
const giteaValidation = configuration_validator_js_1.ConfigurationValidator.validateGiteaConfiguration();
|
|
177
|
+
const github = {
|
|
178
|
+
configured: githubValidation.valid,
|
|
179
|
+
available: githubValidation.valid,
|
|
180
|
+
error: githubValidation.error?.message
|
|
181
|
+
};
|
|
182
|
+
const gitea = {
|
|
183
|
+
configured: giteaValidation.valid,
|
|
184
|
+
available: giteaValidation.valid,
|
|
185
|
+
error: giteaValidation.error?.message
|
|
186
|
+
};
|
|
187
|
+
const totalConfigured = (github.configured ? 1 : 0) + (gitea.configured ? 1 : 0);
|
|
188
|
+
return {
|
|
189
|
+
github,
|
|
190
|
+
gitea,
|
|
191
|
+
totalConfigured,
|
|
192
|
+
hasAnyProvider: totalConfigured > 0
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Generate configuration warnings for missing providers
|
|
197
|
+
*/
|
|
198
|
+
static generateConfigurationWarnings(config) {
|
|
199
|
+
const warnings = [];
|
|
200
|
+
if (!config.github.configured && !config.gitea.configured) {
|
|
201
|
+
warnings.push('No providers are configured. Please configure at least one provider (GitHub or Gitea).');
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
if (!config.github.configured) {
|
|
205
|
+
warnings.push('GitHub provider is not configured. Configure GITHUB_TOKEN to enable GitHub operations.');
|
|
206
|
+
}
|
|
207
|
+
if (!config.gitea.configured) {
|
|
208
|
+
warnings.push('Gitea provider is not configured. Configure GITEA_URL and GITEA_TOKEN to enable Gitea operations.');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return warnings;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Create result for when no providers are configured
|
|
215
|
+
*/
|
|
216
|
+
static createNoProvidersResult() {
|
|
217
|
+
const githubError = configuration_error_generator_js_1.ConfigurationErrorGenerator.generateGitHubError();
|
|
218
|
+
const giteaError = configuration_error_generator_js_1.ConfigurationErrorGenerator.generateGiteaError();
|
|
219
|
+
return {
|
|
220
|
+
success: false,
|
|
221
|
+
message: 'No providers are configured',
|
|
222
|
+
data: {
|
|
223
|
+
github: {
|
|
224
|
+
success: false,
|
|
225
|
+
provider: 'github',
|
|
226
|
+
error: configuration_error_generator_js_1.ConfigurationErrorGenerator.formatErrorMessage(githubError)
|
|
227
|
+
},
|
|
228
|
+
gitea: {
|
|
229
|
+
success: false,
|
|
230
|
+
provider: 'gitea',
|
|
231
|
+
error: configuration_error_generator_js_1.ConfigurationErrorGenerator.formatErrorMessage(giteaError)
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
warnings: [
|
|
235
|
+
'Both GitHub and Gitea providers are not configured.',
|
|
236
|
+
'Please configure at least one provider to use multi-provider operations.'
|
|
237
|
+
],
|
|
238
|
+
summary: {
|
|
239
|
+
totalProviders: 0,
|
|
240
|
+
successfulProviders: 0,
|
|
241
|
+
failedProviders: 0,
|
|
242
|
+
partialSuccess: false
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Create failed result for a specific provider
|
|
248
|
+
*/
|
|
249
|
+
static createFailedResult(provider, reason) {
|
|
250
|
+
return {
|
|
251
|
+
success: false,
|
|
252
|
+
provider,
|
|
253
|
+
error: reason instanceof Error ? reason.message : String(reason)
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Check if multi-provider operations are possible
|
|
258
|
+
*/
|
|
259
|
+
static canExecuteMultiProvider() {
|
|
260
|
+
const config = this.getProviderConfiguration();
|
|
261
|
+
const availableProviders = [];
|
|
262
|
+
if (config.github.configured)
|
|
263
|
+
availableProviders.push('github');
|
|
264
|
+
if (config.gitea.configured)
|
|
265
|
+
availableProviders.push('gitea');
|
|
266
|
+
if (availableProviders.length === 0) {
|
|
267
|
+
return {
|
|
268
|
+
possible: false,
|
|
269
|
+
reason: 'No providers are configured',
|
|
270
|
+
availableProviders: []
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
possible: true,
|
|
275
|
+
availableProviders
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Get detailed provider status for debugging
|
|
280
|
+
*/
|
|
281
|
+
static getDetailedProviderStatus() {
|
|
282
|
+
const githubValidation = configuration_validator_js_1.ConfigurationValidator.validateGitHubConfiguration();
|
|
283
|
+
const giteaValidation = configuration_validator_js_1.ConfigurationValidator.validateGiteaConfiguration();
|
|
284
|
+
return {
|
|
285
|
+
github: {
|
|
286
|
+
configured: githubValidation.valid,
|
|
287
|
+
error: githubValidation.error?.message,
|
|
288
|
+
configurationHelp: !githubValidation.valid
|
|
289
|
+
? configuration_error_generator_js_1.ConfigurationErrorGenerator.generateGitHubError()
|
|
290
|
+
: undefined
|
|
291
|
+
},
|
|
292
|
+
gitea: {
|
|
293
|
+
configured: giteaValidation.valid,
|
|
294
|
+
error: giteaValidation.error?.message,
|
|
295
|
+
configurationHelp: !giteaValidation.valid
|
|
296
|
+
? configuration_error_generator_js_1.ConfigurationErrorGenerator.generateGiteaError()
|
|
297
|
+
: undefined
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
exports.MultiProviderOperationHandler = MultiProviderOperationHandler;
|
|
303
|
+
//# sourceMappingURL=multi-provider-operation-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-provider-operation-handler.js","sourceRoot":"","sources":["../../src/utils/multi-provider-operation-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ConfigurationError } from './configuration-error-generator.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detailed error information for operations
|
|
4
|
+
*/
|
|
5
|
+
export interface OperationError {
|
|
6
|
+
code: string;
|
|
7
|
+
message: string;
|
|
8
|
+
provider: string;
|
|
9
|
+
cause: string;
|
|
10
|
+
solution: string;
|
|
11
|
+
configuration?: ConfigurationError;
|
|
12
|
+
troubleshooting?: string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Operation error handler for Git MCP providers
|
|
16
|
+
* Provides comprehensive error handling with configuration guidance
|
|
17
|
+
*/
|
|
18
|
+
export declare class OperationErrorHandler {
|
|
19
|
+
/**
|
|
20
|
+
* Handle authentication errors with configuration guidance
|
|
21
|
+
*/
|
|
22
|
+
static handleAuthenticationError(error: Error, provider: string): OperationError;
|
|
23
|
+
/**
|
|
24
|
+
* Handle network errors with troubleshooting steps
|
|
25
|
+
*/
|
|
26
|
+
static handleNetworkError(error: Error, provider: string, endpoint?: string): OperationError;
|
|
27
|
+
/**
|
|
28
|
+
* Handle permission errors with access instructions
|
|
29
|
+
*/
|
|
30
|
+
static handlePermissionError(error: Error, provider: string, operation?: string): OperationError;
|
|
31
|
+
/**
|
|
32
|
+
* Handle resource not found errors
|
|
33
|
+
*/
|
|
34
|
+
static handleNotFoundError(error: Error, provider: string, resource?: string): OperationError;
|
|
35
|
+
/**
|
|
36
|
+
* Handle rate limiting errors
|
|
37
|
+
*/
|
|
38
|
+
static handleRateLimitError(error: Error, provider: string): OperationError;
|
|
39
|
+
/**
|
|
40
|
+
* Handle timeout errors
|
|
41
|
+
*/
|
|
42
|
+
static handleTimeoutError(error: Error, provider: string): OperationError;
|
|
43
|
+
/**
|
|
44
|
+
* Handle validation errors
|
|
45
|
+
*/
|
|
46
|
+
static handleValidationError(error: Error, provider: string, field?: string): OperationError;
|
|
47
|
+
/**
|
|
48
|
+
* Handle generic API errors
|
|
49
|
+
*/
|
|
50
|
+
static handleGenericError(error: Error, provider: string): OperationError;
|
|
51
|
+
/**
|
|
52
|
+
* Analyze error and return appropriate error handler result
|
|
53
|
+
*/
|
|
54
|
+
static analyzeAndHandleError(error: Error, provider: string, operation?: string): OperationError;
|
|
55
|
+
/**
|
|
56
|
+
* Format operation error as user-friendly message
|
|
57
|
+
*/
|
|
58
|
+
static formatErrorMessage(operationError: OperationError): string;
|
|
59
|
+
/**
|
|
60
|
+
* Create a comprehensive error response for API operations
|
|
61
|
+
*/
|
|
62
|
+
static createErrorResponse(error: Error, provider: string, operation?: string): {
|
|
63
|
+
success: false;
|
|
64
|
+
error: string;
|
|
65
|
+
details: OperationError;
|
|
66
|
+
formattedMessage: string;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=operation-error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/operation-error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAErG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAEhC;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAmBhF;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc;IAoB5F;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc;IA2ChG;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc;IAiB7F;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAiB3E;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAiBzE;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc;IAiB5F;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAiBzE;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc;IAyDhG;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM;IAuBjE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG;QAC9E,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,cAAc,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;CAWF"}
|