@andrebuzeli/git-mcp 5.0.5 → 5.0.6

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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -89
  3. package/dist/config.d.ts +72 -71
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +226 -139
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.d.ts +15 -17
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +133 -128
  10. package/dist/index.js.map +1 -1
  11. package/dist/providers/base-provider.d.ts +42 -153
  12. package/dist/providers/base-provider.d.ts.map +1 -1
  13. package/dist/providers/base-provider.js +42 -302
  14. package/dist/providers/base-provider.js.map +1 -1
  15. package/dist/providers/gitea-provider.d.ts +67 -118
  16. package/dist/providers/gitea-provider.d.ts.map +1 -1
  17. package/dist/providers/gitea-provider.js +487 -1161
  18. package/dist/providers/gitea-provider.js.map +1 -1
  19. package/dist/providers/github-provider.d.ts +70 -81
  20. package/dist/providers/github-provider.d.ts.map +1 -1
  21. package/dist/providers/github-provider.js +641 -278
  22. package/dist/providers/github-provider.js.map +1 -1
  23. package/dist/providers/index.d.ts +9 -9
  24. package/dist/providers/index.d.ts.map +1 -1
  25. package/dist/providers/index.js +13 -19
  26. package/dist/providers/index.js.map +1 -1
  27. package/dist/providers/provider-factory.d.ts +29 -59
  28. package/dist/providers/provider-factory.d.ts.map +1 -1
  29. package/dist/providers/provider-factory.js +134 -265
  30. package/dist/providers/provider-factory.js.map +1 -1
  31. package/dist/providers/provider-operation-handler.d.ts +93 -0
  32. package/dist/providers/provider-operation-handler.d.ts.map +1 -0
  33. package/dist/providers/provider-operation-handler.js +280 -0
  34. package/dist/providers/provider-operation-handler.js.map +1 -0
  35. package/dist/providers/types.d.ts +201 -355
  36. package/dist/providers/types.d.ts.map +1 -1
  37. package/dist/providers/types.js +3 -2
  38. package/dist/providers/types.js.map +1 -1
  39. package/dist/server.d.ts +34 -8
  40. package/dist/server.d.ts.map +1 -1
  41. package/dist/server.js +436 -494
  42. package/dist/server.js.map +1 -1
  43. package/dist/tools/git-analytics.d.ts +239 -16
  44. package/dist/tools/git-analytics.d.ts.map +1 -1
  45. package/dist/tools/git-analytics.js +737 -25
  46. package/dist/tools/git-analytics.js.map +1 -1
  47. package/dist/tools/git-archive.d.ts +109 -15
  48. package/dist/tools/git-archive.d.ts.map +1 -1
  49. package/dist/tools/git-archive.js +462 -10
  50. package/dist/tools/git-archive.js.map +1 -1
  51. package/dist/tools/git-backup.d.ts +101 -15
  52. package/dist/tools/git-backup.d.ts.map +1 -1
  53. package/dist/tools/git-backup.js +410 -10
  54. package/dist/tools/git-backup.js.map +1 -1
  55. package/dist/tools/git-branches.d.ts +141 -15
  56. package/dist/tools/git-branches.d.ts.map +1 -1
  57. package/dist/tools/git-branches.js +466 -11
  58. package/dist/tools/git-branches.js.map +1 -1
  59. package/dist/tools/git-config.d.ts +115 -15
  60. package/dist/tools/git-config.d.ts.map +1 -1
  61. package/dist/tools/git-config.js +446 -11
  62. package/dist/tools/git-config.js.map +1 -1
  63. package/dist/tools/git-files.d.ts +179 -59
  64. package/dist/tools/git-files.d.ts.map +1 -1
  65. package/dist/tools/git-files.js +682 -222
  66. package/dist/tools/git-files.js.map +1 -1
  67. package/dist/tools/git-issues.d.ts +158 -15
  68. package/dist/tools/git-issues.d.ts.map +1 -1
  69. package/dist/tools/git-issues.js +323 -11
  70. package/dist/tools/git-issues.js.map +1 -1
  71. package/dist/tools/git-monitor.d.ts +149 -14
  72. package/dist/tools/git-monitor.d.ts.map +1 -1
  73. package/dist/tools/git-monitor.js +528 -11
  74. package/dist/tools/git-monitor.js.map +1 -1
  75. package/dist/tools/git-packages.d.ts +163 -15
  76. package/dist/tools/git-packages.d.ts.map +1 -1
  77. package/dist/tools/git-packages.js +526 -11
  78. package/dist/tools/git-packages.js.map +1 -1
  79. package/dist/tools/git-pulls.d.ts +174 -15
  80. package/dist/tools/git-pulls.d.ts.map +1 -1
  81. package/dist/tools/git-pulls.js +352 -11
  82. package/dist/tools/git-pulls.js.map +1 -1
  83. package/dist/tools/git-release.d.ts +167 -15
  84. package/dist/tools/git-release.d.ts.map +1 -1
  85. package/dist/tools/git-release.js +465 -11
  86. package/dist/tools/git-release.js.map +1 -1
  87. package/dist/tools/git-remote.d.ts +124 -15
  88. package/dist/tools/git-remote.d.ts.map +1 -1
  89. package/dist/tools/git-remote.js +539 -11
  90. package/dist/tools/git-remote.js.map +1 -1
  91. package/dist/tools/git-reset.d.ts +100 -15
  92. package/dist/tools/git-reset.d.ts.map +1 -1
  93. package/dist/tools/git-reset.js +409 -11
  94. package/dist/tools/git-reset.js.map +1 -1
  95. package/dist/tools/git-stash.d.ts +120 -15
  96. package/dist/tools/git-stash.d.ts.map +1 -1
  97. package/dist/tools/git-stash.js +503 -11
  98. package/dist/tools/git-stash.js.map +1 -1
  99. package/dist/tools/git-sync.d.ts +160 -16
  100. package/dist/tools/git-sync.d.ts.map +1 -1
  101. package/dist/tools/git-sync.js +462 -113
  102. package/dist/tools/git-sync.js.map +1 -1
  103. package/dist/tools/git-tags.d.ts +142 -15
  104. package/dist/tools/git-tags.d.ts.map +1 -1
  105. package/dist/tools/git-tags.js +471 -11
  106. package/dist/tools/git-tags.js.map +1 -1
  107. package/dist/tools/git-workflow.d.ts +151 -80
  108. package/dist/tools/git-workflow.d.ts.map +1 -1
  109. package/dist/tools/git-workflow.js +407 -912
  110. package/dist/tools/git-workflow.js.map +1 -1
  111. package/dist/utils/credential-manager.d.ts +119 -0
  112. package/dist/utils/credential-manager.d.ts.map +1 -0
  113. package/dist/utils/credential-manager.js +450 -0
  114. package/dist/utils/credential-manager.js.map +1 -0
  115. package/dist/utils/git-command-executor.d.ts +326 -0
  116. package/dist/utils/git-command-executor.d.ts.map +1 -0
  117. package/dist/utils/git-command-executor.js +877 -0
  118. package/dist/utils/git-command-executor.js.map +1 -0
  119. package/dist/utils/logger.d.ts +143 -0
  120. package/dist/utils/logger.d.ts.map +1 -0
  121. package/dist/utils/logger.js +473 -0
  122. package/dist/utils/logger.js.map +1 -0
  123. package/dist/utils/operation-error-handler.d.ts +54 -41
  124. package/dist/utils/operation-error-handler.d.ts.map +1 -1
  125. package/dist/utils/operation-error-handler.js +211 -227
  126. package/dist/utils/operation-error-handler.js.map +1 -1
  127. package/dist/utils/parameter-validator.d.ts +41 -0
  128. package/dist/utils/parameter-validator.d.ts.map +1 -0
  129. package/dist/utils/parameter-validator.js +464 -0
  130. package/dist/utils/parameter-validator.js.map +1 -0
  131. package/dist/utils/repository-detector.d.ts +128 -0
  132. package/dist/utils/repository-detector.d.ts.map +1 -0
  133. package/dist/utils/repository-detector.js +422 -0
  134. package/dist/utils/repository-detector.js.map +1 -0
  135. package/dist/utils/response-formatter.d.ts +146 -0
  136. package/dist/utils/response-formatter.d.ts.map +1 -0
  137. package/dist/utils/response-formatter.js +378 -0
  138. package/dist/utils/response-formatter.js.map +1 -0
  139. package/dist/utils/retry.d.ts +12 -0
  140. package/dist/utils/retry.d.ts.map +1 -0
  141. package/dist/utils/retry.js +28 -0
  142. package/dist/utils/retry.js.map +1 -0
  143. package/dist/utils/terminal-controller.d.ts +73 -139
  144. package/dist/utils/terminal-controller.d.ts.map +1 -1
  145. package/dist/utils/terminal-controller.js +234 -459
  146. package/dist/utils/terminal-controller.js.map +1 -1
  147. package/package.json +79 -60
  148. package/dist/providers/error-handler.d.ts +0 -51
  149. package/dist/providers/error-handler.d.ts.map +0 -1
  150. package/dist/providers/error-handler.js +0 -176
  151. package/dist/providers/error-handler.js.map +0 -1
  152. package/dist/providers/github-provider-backup.d.ts +0 -81
  153. package/dist/providers/github-provider-backup.d.ts.map +0 -1
  154. package/dist/providers/github-provider-backup.js +0 -1179
  155. package/dist/providers/github-provider-backup.js.map +0 -1
  156. package/dist/providers/github-provider-complete.d.ts +0 -1
  157. package/dist/providers/github-provider-complete.d.ts.map +0 -1
  158. package/dist/providers/github-provider-complete.js +0 -2
  159. package/dist/providers/github-provider-complete.js.map +0 -1
  160. package/dist/tools/git-init.d.ts +0 -50
  161. package/dist/tools/git-init.d.ts.map +0 -1
  162. package/dist/tools/git-init.js +0 -258
  163. package/dist/tools/git-init.js.map +0 -1
  164. package/dist/tools/git-log.d.ts +0 -67
  165. package/dist/tools/git-log.d.ts.map +0 -1
  166. package/dist/tools/git-log.js +0 -320
  167. package/dist/tools/git-log.js.map +0 -1
  168. package/dist/tools/git-status.d.ts +0 -29
  169. package/dist/tools/git-status.d.ts.map +0 -1
  170. package/dist/tools/git-status.js +0 -182
  171. package/dist/tools/git-status.js.map +0 -1
  172. package/dist/tools/git-update.d.ts +0 -34
  173. package/dist/tools/git-update.d.ts.map +0 -1
  174. package/dist/tools/git-update.js +0 -191
  175. package/dist/tools/git-update.js.map +0 -1
  176. package/dist/utils/auto-detection.d.ts +0 -120
  177. package/dist/utils/auto-detection.d.ts.map +0 -1
  178. package/dist/utils/auto-detection.js +0 -259
  179. package/dist/utils/auto-detection.js.map +0 -1
  180. package/dist/utils/configuration-error-generator.d.ts +0 -41
  181. package/dist/utils/configuration-error-generator.d.ts.map +0 -1
  182. package/dist/utils/configuration-error-generator.js +0 -168
  183. package/dist/utils/configuration-error-generator.js.map +0 -1
  184. package/dist/utils/configuration-validator.d.ts +0 -67
  185. package/dist/utils/configuration-validator.d.ts.map +0 -1
  186. package/dist/utils/configuration-validator.js +0 -257
  187. package/dist/utils/configuration-validator.js.map +0 -1
  188. package/dist/utils/error-handler.d.ts +0 -107
  189. package/dist/utils/error-handler.d.ts.map +0 -1
  190. package/dist/utils/error-handler.js +0 -331
  191. package/dist/utils/error-handler.js.map +0 -1
  192. package/dist/utils/git-operations.d.ts +0 -200
  193. package/dist/utils/git-operations.d.ts.map +0 -1
  194. package/dist/utils/git-operations.js +0 -836
  195. package/dist/utils/git-operations.js.map +0 -1
  196. package/dist/utils/multi-provider-error-handler.d.ts +0 -75
  197. package/dist/utils/multi-provider-error-handler.d.ts.map +0 -1
  198. package/dist/utils/multi-provider-error-handler.js +0 -276
  199. package/dist/utils/multi-provider-error-handler.js.map +0 -1
  200. package/dist/utils/multi-provider-operation-handler.d.ts +0 -113
  201. package/dist/utils/multi-provider-operation-handler.d.ts.map +0 -1
  202. package/dist/utils/multi-provider-operation-handler.js +0 -303
  203. package/dist/utils/multi-provider-operation-handler.js.map +0 -1
  204. package/dist/utils/provider-operation-handler.d.ts +0 -80
  205. package/dist/utils/provider-operation-handler.d.ts.map +0 -1
  206. package/dist/utils/provider-operation-handler.js +0 -201
  207. package/dist/utils/provider-operation-handler.js.map +0 -1
  208. package/dist/utils/response-helper.d.ts +0 -57
  209. package/dist/utils/response-helper.d.ts.map +0 -1
  210. package/dist/utils/response-helper.js +0 -54
  211. package/dist/utils/response-helper.js.map +0 -1
  212. package/dist/utils/user-detection.d.ts +0 -25
  213. package/dist/utils/user-detection.d.ts.map +0 -1
  214. package/dist/utils/user-detection.js +0 -54
  215. package/dist/utils/user-detection.js.map +0 -1
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ /**
3
+ * Provider Operation Handler
4
+ *
5
+ * Unified interface for handling operations across multiple providers.
6
+ * Supports provider="both" with parallel execution, result aggregation,
7
+ * and partial failure handling.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ProviderOperationHandler = void 0;
11
+ const provider_factory_js_1 = require("./provider-factory.js");
12
+ class ProviderOperationHandler {
13
+ factory;
14
+ config;
15
+ constructor(config) {
16
+ this.config = config;
17
+ this.factory = new provider_factory_js_1.ProviderFactory(config);
18
+ }
19
+ /**
20
+ * Execute operation with unified interface
21
+ */
22
+ async executeOperation(operation) {
23
+ const startTime = Date.now();
24
+ try {
25
+ const provider = this.factory.createProviderFromString(operation.provider);
26
+ if (this.isMultiProvider(provider)) {
27
+ return this.executeMultiProviderOperation(provider, operation, startTime);
28
+ }
29
+ else {
30
+ return this.executeSingleProviderOperation(provider, operation, startTime);
31
+ }
32
+ }
33
+ catch (error) {
34
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
35
+ return this.formatOperationError(operation, startTime, errorMessage, error);
36
+ }
37
+ }
38
+ /**
39
+ * Execute operation on single provider
40
+ */
41
+ async executeSingleProviderOperation(provider, operation, startTime) {
42
+ try {
43
+ const result = await provider.executeOperation(operation.operation, operation.parameters);
44
+ return {
45
+ success: result.success,
46
+ results: [result],
47
+ partialFailure: false,
48
+ errors: result.success ? [] : [result],
49
+ metadata: {
50
+ operation: operation.operation,
51
+ provider: operation.provider,
52
+ executionTime: Date.now() - startTime,
53
+ timestamp: new Date().toISOString()
54
+ }
55
+ };
56
+ }
57
+ catch (error) {
58
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
59
+ const errorResult = {
60
+ success: false,
61
+ error: {
62
+ code: 'PROVIDER_EXECUTION_ERROR',
63
+ message: errorMessage,
64
+ details: error
65
+ },
66
+ provider: operation.provider
67
+ };
68
+ return {
69
+ success: false,
70
+ results: [],
71
+ partialFailure: false,
72
+ errors: [errorResult],
73
+ metadata: {
74
+ operation: operation.operation,
75
+ provider: operation.provider,
76
+ executionTime: Date.now() - startTime,
77
+ timestamp: new Date().toISOString()
78
+ }
79
+ };
80
+ }
81
+ }
82
+ /**
83
+ * Execute operation on multiple providers in parallel
84
+ */
85
+ async executeMultiProviderOperation(multiProvider, operation, startTime) {
86
+ try {
87
+ const results = await multiProvider.executeOperation(operation.operation, operation.parameters);
88
+ const successResults = results.filter(r => r.success);
89
+ const errorResults = results.filter(r => !r.success);
90
+ const hasSuccess = successResults.length > 0;
91
+ const hasErrors = errorResults.length > 0;
92
+ const partialFailure = hasSuccess && hasErrors;
93
+ return {
94
+ success: hasSuccess,
95
+ results: successResults,
96
+ partialFailure,
97
+ errors: errorResults,
98
+ metadata: {
99
+ operation: operation.operation,
100
+ provider: operation.provider,
101
+ executionTime: Date.now() - startTime,
102
+ timestamp: new Date().toISOString()
103
+ }
104
+ };
105
+ }
106
+ catch (error) {
107
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
108
+ return this.formatOperationError(operation, startTime, errorMessage, error);
109
+ }
110
+ }
111
+ /**
112
+ * Validate operation before execution
113
+ */
114
+ validateOperation(operation) {
115
+ const errors = [];
116
+ const warnings = [];
117
+ // Validate provider
118
+ if (!operation.provider) {
119
+ errors.push('Provider is required');
120
+ }
121
+ else if (!['github', 'gitea', 'both'].includes(operation.provider)) {
122
+ errors.push(`Invalid provider: ${operation.provider}. Valid options: github, gitea, both`);
123
+ }
124
+ // Validate operation name
125
+ if (!operation.operation) {
126
+ errors.push('Operation is required');
127
+ }
128
+ // Validate parameters
129
+ if (!operation.parameters) {
130
+ errors.push('Parameters are required');
131
+ }
132
+ // Check provider availability
133
+ if (operation.provider === 'github' && !this.factory.isProviderAvailable('github')) {
134
+ errors.push('GitHub provider is not configured');
135
+ }
136
+ if (operation.provider === 'gitea' && !this.factory.isProviderAvailable('gitea')) {
137
+ errors.push('Gitea provider is not configured');
138
+ }
139
+ if (operation.provider === 'both') {
140
+ const availableProviders = this.factory.getAvailableProviders();
141
+ if (availableProviders.length === 0) {
142
+ errors.push('No providers are configured');
143
+ }
144
+ else if (availableProviders.length === 1) {
145
+ warnings.push(`Only ${availableProviders[0]} provider is configured, 'both' will only use one provider`);
146
+ }
147
+ }
148
+ // Validate authentication requirements
149
+ if (operation.requiresAuth) {
150
+ if (operation.provider === 'github' && !this.config.github?.token) {
151
+ errors.push('GitHub authentication is required for this operation');
152
+ }
153
+ if (operation.provider === 'gitea' && !this.config.gitea?.token) {
154
+ errors.push('Gitea authentication is required for this operation');
155
+ }
156
+ }
157
+ return {
158
+ valid: errors.length === 0,
159
+ errors,
160
+ warnings
161
+ };
162
+ }
163
+ /**
164
+ * Get provider status and configuration
165
+ */
166
+ getProviderStatus() {
167
+ const githubValidation = this.factory.validateProviderConfig('github');
168
+ const giteaValidation = this.factory.validateProviderConfig('gitea');
169
+ const availableProviders = this.factory.getAvailableProviders();
170
+ return {
171
+ github: {
172
+ configured: githubValidation.valid,
173
+ available: this.factory.isProviderAvailable('github'),
174
+ missingFields: githubValidation.missingFields
175
+ },
176
+ gitea: {
177
+ configured: giteaValidation.valid,
178
+ available: this.factory.isProviderAvailable('gitea'),
179
+ missingFields: giteaValidation.missingFields
180
+ },
181
+ multiProvider: {
182
+ available: availableProviders.length > 1,
183
+ configuredProviders: availableProviders
184
+ }
185
+ };
186
+ }
187
+ /**
188
+ * Aggregate results from multiple providers
189
+ */
190
+ aggregateResults(results) {
191
+ const successResults = results.filter(r => r.success);
192
+ const failedResults = results.filter(r => !r.success);
193
+ // Combine data from successful results
194
+ let combinedData = {};
195
+ if (successResults.length === 1) {
196
+ combinedData = successResults[0].data;
197
+ }
198
+ else if (successResults.length > 1) {
199
+ // For multiple results, create an object with provider-specific data
200
+ combinedData = {};
201
+ successResults.forEach(result => {
202
+ combinedData[result.provider] = result.data;
203
+ });
204
+ }
205
+ return {
206
+ combinedData,
207
+ summary: {
208
+ totalProviders: results.length,
209
+ successfulProviders: successResults.length,
210
+ failedProviders: failedResults.length,
211
+ providers: results.map(r => r.provider)
212
+ }
213
+ };
214
+ }
215
+ /**
216
+ * Handle partial failures with retry logic
217
+ */
218
+ async handlePartialFailure(operation, results, retryOptions) {
219
+ const options = {
220
+ maxRetries: 1,
221
+ retryDelay: 1000,
222
+ retryFailedOnly: true,
223
+ ...retryOptions
224
+ };
225
+ const failedResults = results.filter(r => !r.success);
226
+ if (failedResults.length === 0 || options.maxRetries === 0) {
227
+ // No failures or no retries requested
228
+ return this.executeOperation(operation);
229
+ }
230
+ // Wait before retry
231
+ await new Promise(resolve => setTimeout(resolve, options.retryDelay));
232
+ if (options.retryFailedOnly) {
233
+ // Retry only failed providers
234
+ const failedProviders = failedResults.map(r => r.provider);
235
+ const retryOperation = {
236
+ ...operation,
237
+ provider: failedProviders.length === 1 ? failedProviders[0] : 'both'
238
+ };
239
+ return this.executeOperation(retryOperation);
240
+ }
241
+ else {
242
+ // Retry entire operation
243
+ return this.executeOperation(operation);
244
+ }
245
+ }
246
+ /**
247
+ * Check if provider is multi-provider
248
+ */
249
+ isMultiProvider(provider) {
250
+ return 'providers' in provider;
251
+ }
252
+ /**
253
+ * Format operation error
254
+ */
255
+ formatOperationError(operation, startTime, message, details) {
256
+ const errorResult = {
257
+ success: false,
258
+ error: {
259
+ code: 'OPERATION_ERROR',
260
+ message,
261
+ details
262
+ },
263
+ provider: operation.provider
264
+ };
265
+ return {
266
+ success: false,
267
+ results: [],
268
+ partialFailure: false,
269
+ errors: [errorResult],
270
+ metadata: {
271
+ operation: operation.operation,
272
+ provider: operation.provider,
273
+ executionTime: Date.now() - startTime,
274
+ timestamp: new Date().toISOString()
275
+ }
276
+ };
277
+ }
278
+ }
279
+ exports.ProviderOperationHandler = ProviderOperationHandler;
280
+ //# sourceMappingURL=provider-operation-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-operation-handler.js","sourceRoot":"","sources":["../../src/providers/provider-operation-handler.ts"],"names":[],"mappings":"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"}