@andrebuzeli/git-mcp 5.0.4 → 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 -4
  40. package/dist/server.d.ts.map +1 -1
  41. package/dist/server.js +439 -262
  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,378 @@
1
+ "use strict";
2
+ /**
3
+ * Response Formatter
4
+ *
5
+ * Utility for formatting consistent responses across all Git MCP tools.
6
+ * Provides standardized success/error response formats with metadata.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.responseFormatter = exports.ResponseFormatter = void 0;
10
+ class ResponseFormatter {
11
+ defaultOptions = {
12
+ includeMetadata: true,
13
+ includeTimestamp: true,
14
+ includeExecutionTime: true,
15
+ maxDataSize: 10000, // 10KB
16
+ truncateData: true
17
+ };
18
+ /**
19
+ * Format successful response
20
+ */
21
+ success(data, metadata, options = {}) {
22
+ const mergedOptions = { ...this.defaultOptions, ...options };
23
+ // Process data size if needed
24
+ let processedData = data;
25
+ if (mergedOptions.truncateData && mergedOptions.maxDataSize) {
26
+ processedData = this.truncateDataIfNeeded(data, mergedOptions.maxDataSize);
27
+ }
28
+ const result = {
29
+ success: true,
30
+ data: processedData
31
+ };
32
+ if (mergedOptions.includeMetadata) {
33
+ result.metadata = {
34
+ operation: metadata.operation,
35
+ timestamp: mergedOptions.includeTimestamp ? new Date().toISOString() : '',
36
+ executionTime: mergedOptions.includeExecutionTime ? (metadata.executionTime || 0) : 0
37
+ };
38
+ if (metadata.provider)
39
+ result.metadata.provider = metadata.provider;
40
+ if (metadata.toolName)
41
+ result.metadata.toolName = metadata.toolName;
42
+ if (metadata.projectPath)
43
+ result.metadata.projectPath = metadata.projectPath;
44
+ if (metadata.repositoryName)
45
+ result.metadata.repositoryName = metadata.repositoryName;
46
+ }
47
+ return result;
48
+ }
49
+ /**
50
+ * Format error response
51
+ */
52
+ error(code, message, details, metadata, options = {}) {
53
+ const mergedOptions = { ...this.defaultOptions, ...options };
54
+ const result = {
55
+ success: false,
56
+ error: {
57
+ code,
58
+ message,
59
+ details,
60
+ suggestions: this.generateSuggestions(code, message, details)
61
+ }
62
+ };
63
+ // Add configuration guide for specific error types
64
+ const configGuide = this.generateConfigurationGuide(code, details);
65
+ if (configGuide) {
66
+ result.error.configurationGuide = configGuide;
67
+ }
68
+ if (mergedOptions.includeMetadata && metadata) {
69
+ result.metadata = {
70
+ operation: metadata.operation,
71
+ timestamp: mergedOptions.includeTimestamp ? new Date().toISOString() : '',
72
+ executionTime: mergedOptions.includeExecutionTime ? (metadata.executionTime || 0) : 0
73
+ };
74
+ if (metadata.provider)
75
+ result.metadata.provider = metadata.provider;
76
+ if (metadata.toolName)
77
+ result.metadata.toolName = metadata.toolName;
78
+ if (metadata.projectPath)
79
+ result.metadata.projectPath = metadata.projectPath;
80
+ if (metadata.repositoryName)
81
+ result.metadata.repositoryName = metadata.repositoryName;
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Format validation error response
87
+ */
88
+ validationError(parameter, expectedFormat, actualValue, metadata) {
89
+ return this.error('VALIDATION_ERROR', `Invalid parameter: ${parameter}`, {
90
+ parameter,
91
+ expectedFormat,
92
+ actualValue,
93
+ example: this.generateParameterExample(parameter, expectedFormat)
94
+ }, metadata);
95
+ }
96
+ /**
97
+ * Format configuration error response
98
+ */
99
+ configurationError(missingConfig, provider, metadata) {
100
+ const providerText = provider ? ` for ${provider}` : '';
101
+ return this.error('CONFIGURATION_ERROR', `Missing required configuration${providerText}`, {
102
+ missingConfig,
103
+ provider
104
+ }, metadata);
105
+ }
106
+ /**
107
+ * Format Git error response
108
+ */
109
+ gitError(gitErrorType, gitMessage, command, metadata) {
110
+ return this.error(`GIT_${gitErrorType.toUpperCase()}`, `Git error: ${gitMessage}`, {
111
+ gitErrorType,
112
+ command,
113
+ workingDirectory: metadata?.projectPath
114
+ }, metadata);
115
+ }
116
+ /**
117
+ * Format provider error response
118
+ */
119
+ providerError(provider, apiError, statusCode, metadata) {
120
+ return this.error('PROVIDER_ERROR', `${provider} API error: ${apiError}`, {
121
+ provider,
122
+ statusCode,
123
+ apiError
124
+ }, metadata);
125
+ }
126
+ /**
127
+ * Format operation not supported error
128
+ */
129
+ operationNotSupported(operation, supportedOperations, toolName) {
130
+ return this.error('OPERATION_NOT_SUPPORTED', `Operation '${operation}' is not supported`, {
131
+ operation,
132
+ supportedOperations,
133
+ toolName
134
+ }, {
135
+ operation: 'validate_operation',
136
+ toolName
137
+ });
138
+ }
139
+ /**
140
+ * Format partial success response (for multi-provider operations)
141
+ */
142
+ partialSuccess(successResults, failedResults, metadata) {
143
+ const totalProviders = metadata.providers.length;
144
+ const successCount = successResults.length;
145
+ const failureCount = failedResults.length;
146
+ return {
147
+ success: successCount > 0, // Partial success if at least one succeeded
148
+ data: {
149
+ results: successResults,
150
+ summary: {
151
+ total: totalProviders,
152
+ successful: successCount,
153
+ failed: failureCount,
154
+ successRate: Math.round((successCount / totalProviders) * 100)
155
+ }
156
+ },
157
+ error: failureCount > 0 ? {
158
+ code: 'PARTIAL_FAILURE',
159
+ message: `${failureCount} out of ${totalProviders} providers failed`,
160
+ details: {
161
+ failedResults,
162
+ failedProviders: failedResults.map((r) => r.provider)
163
+ },
164
+ suggestions: [
165
+ 'Check failed provider configurations',
166
+ 'Verify network connectivity',
167
+ 'Review provider-specific error messages'
168
+ ]
169
+ } : undefined,
170
+ metadata: {
171
+ operation: metadata.operation,
172
+ timestamp: new Date().toISOString(),
173
+ executionTime: metadata.executionTime || 0,
174
+ toolName: metadata.toolName,
175
+ provider: metadata.providers.join(', ')
176
+ }
177
+ };
178
+ }
179
+ /**
180
+ * Format list response with pagination info
181
+ */
182
+ listResponse(items, pagination, metadata) {
183
+ const data = {
184
+ items,
185
+ count: items.length
186
+ };
187
+ if (pagination) {
188
+ data.pagination = pagination;
189
+ }
190
+ return this.success(data, metadata || { operation: 'list' });
191
+ }
192
+ /**
193
+ * Format status response
194
+ */
195
+ statusResponse(status, details, metadata) {
196
+ return this.success({
197
+ status,
198
+ details,
199
+ timestamp: new Date().toISOString()
200
+ }, metadata || { operation: 'status' });
201
+ }
202
+ /**
203
+ * Generate suggestions based on error code and message
204
+ */
205
+ generateSuggestions(code, message, details) {
206
+ const suggestions = [];
207
+ switch (code) {
208
+ case 'VALIDATION_ERROR':
209
+ suggestions.push('Check parameter format and try again');
210
+ suggestions.push('Refer to tool documentation for parameter examples');
211
+ break;
212
+ case 'CONFIGURATION_ERROR':
213
+ suggestions.push('Set required environment variables');
214
+ suggestions.push('Check configuration guide in error details');
215
+ break;
216
+ case 'GIT_NOT_A_REPOSITORY':
217
+ suggestions.push('Initialize Git repository with: git init');
218
+ suggestions.push('Ensure you are in the correct directory');
219
+ break;
220
+ case 'GIT_COMMAND_NOT_FOUND':
221
+ suggestions.push('Install Git from https://git-scm.com/');
222
+ suggestions.push('Ensure Git is in your system PATH');
223
+ break;
224
+ case 'PROVIDER_ERROR':
225
+ suggestions.push('Check API credentials and permissions');
226
+ suggestions.push('Verify network connectivity');
227
+ if (details?.statusCode === 401) {
228
+ suggestions.push('Verify authentication token is valid');
229
+ }
230
+ if (details?.statusCode === 403) {
231
+ suggestions.push('Check repository permissions');
232
+ }
233
+ if (details?.statusCode === 404) {
234
+ suggestions.push('Verify repository exists and is accessible');
235
+ }
236
+ break;
237
+ case 'OPERATION_NOT_SUPPORTED':
238
+ suggestions.push('Use one of the supported operations listed in details');
239
+ suggestions.push('Check tool documentation for available operations');
240
+ break;
241
+ default:
242
+ suggestions.push('Check error details for more information');
243
+ suggestions.push('Retry the operation after addressing the issue');
244
+ }
245
+ return suggestions;
246
+ }
247
+ /**
248
+ * Generate configuration guide for specific errors
249
+ */
250
+ generateConfigurationGuide(code, details) {
251
+ if (code === 'CONFIGURATION_ERROR') {
252
+ const provider = details?.provider;
253
+ if (provider === 'github') {
254
+ return {
255
+ requiredEnvVars: ['GITHUB_TOKEN', 'GITHUB_USERNAME'],
256
+ exampleConfig: {
257
+ GITHUB_TOKEN: 'ghp_xxxxxxxxxxxxxxxxxxxx',
258
+ GITHUB_USERNAME: 'your-github-username'
259
+ }
260
+ };
261
+ }
262
+ if (provider === 'gitea') {
263
+ return {
264
+ requiredEnvVars: ['GITEA_URL', 'GITEA_TOKEN', 'GITEA_USERNAME'],
265
+ exampleConfig: {
266
+ GITEA_URL: 'https://gitea.example.com',
267
+ GITEA_TOKEN: 'your-gitea-token',
268
+ GITEA_USERNAME: 'your-gitea-username'
269
+ }
270
+ };
271
+ }
272
+ // Multi-provider configuration
273
+ return {
274
+ requiredEnvVars: [
275
+ 'GITHUB_TOKEN', 'GITHUB_USERNAME',
276
+ 'GITEA_URL', 'GITEA_TOKEN', 'GITEA_USERNAME'
277
+ ],
278
+ exampleConfig: {
279
+ github: {
280
+ GITHUB_TOKEN: 'ghp_xxxxxxxxxxxxxxxxxxxx',
281
+ GITHUB_USERNAME: 'your-github-username'
282
+ },
283
+ gitea: {
284
+ GITEA_URL: 'https://gitea.example.com',
285
+ GITEA_TOKEN: 'your-gitea-token',
286
+ GITEA_USERNAME: 'your-gitea-username'
287
+ }
288
+ }
289
+ };
290
+ }
291
+ return undefined;
292
+ }
293
+ /**
294
+ * Generate parameter example based on parameter name and expected format
295
+ */
296
+ generateParameterExample(parameter, expectedFormat) {
297
+ const examples = {
298
+ projectPath: '/path/to/your/project',
299
+ provider: 'github | gitea | both',
300
+ action: 'create | list | get | update | delete',
301
+ repositoryName: 'my-repository',
302
+ branchName: 'feature/new-feature',
303
+ commitMessage: 'Add new feature',
304
+ tagName: 'v1.0.0',
305
+ issueNumber: 123,
306
+ pullRequestNumber: 456,
307
+ fileName: 'src/index.ts',
308
+ content: 'file content here',
309
+ title: 'Issue or PR title',
310
+ description: 'Detailed description',
311
+ labels: ['bug', 'enhancement'],
312
+ assignees: ['username1', 'username2']
313
+ };
314
+ return examples[parameter] || `<${expectedFormat}>`;
315
+ }
316
+ /**
317
+ * Truncate data if it exceeds maximum size
318
+ */
319
+ truncateDataIfNeeded(data, maxSize) {
320
+ const dataString = JSON.stringify(data);
321
+ if (dataString.length <= maxSize) {
322
+ return data;
323
+ }
324
+ // If data is too large, truncate and add indicator
325
+ const truncatedString = dataString.substring(0, maxSize - 100);
326
+ try {
327
+ // Try to parse truncated JSON (might be invalid)
328
+ return JSON.parse(truncatedString);
329
+ }
330
+ catch {
331
+ // If truncated JSON is invalid, return summary
332
+ return {
333
+ _truncated: true,
334
+ _originalSize: dataString.length,
335
+ _maxSize: maxSize,
336
+ _summary: this.generateDataSummary(data),
337
+ _note: 'Data was truncated due to size limits'
338
+ };
339
+ }
340
+ }
341
+ /**
342
+ * Generate summary of data structure
343
+ */
344
+ generateDataSummary(data) {
345
+ if (Array.isArray(data)) {
346
+ return {
347
+ type: 'array',
348
+ length: data.length,
349
+ sampleItems: data.slice(0, 3),
350
+ hasMore: data.length > 3
351
+ };
352
+ }
353
+ if (typeof data === 'object' && data !== null) {
354
+ const keys = Object.keys(data);
355
+ const summary = {
356
+ type: 'object',
357
+ keys: keys.slice(0, 10),
358
+ hasMoreKeys: keys.length > 10
359
+ };
360
+ // Include sample values for first few keys
361
+ for (let i = 0; i < Math.min(3, keys.length); i++) {
362
+ const key = keys[i];
363
+ summary[key] = typeof data[key] === 'object'
364
+ ? `[${typeof data[key]}]`
365
+ : data[key];
366
+ }
367
+ return summary;
368
+ }
369
+ return {
370
+ type: typeof data,
371
+ value: String(data).substring(0, 100)
372
+ };
373
+ }
374
+ }
375
+ exports.ResponseFormatter = ResponseFormatter;
376
+ // Export singleton instance
377
+ exports.responseFormatter = new ResponseFormatter();
378
+ //# sourceMappingURL=response-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Simple retry helper with exponential backoff.
3
+ */
4
+ export interface RetryOptions {
5
+ retries?: number;
6
+ factor?: number;
7
+ minTimeout?: number;
8
+ maxTimeout?: number;
9
+ retryOn?: (err: any) => boolean;
10
+ }
11
+ export declare function retry<T>(fn: () => Promise<T>, opts?: RetryOptions): Promise<T>;
12
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACjC;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BxF"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retry = retry;
4
+ async function retry(fn, opts = {}) {
5
+ const retries = typeof opts.retries === 'number' ? opts.retries : 3;
6
+ const factor = opts.factor || 2;
7
+ const minTimeout = opts.minTimeout || 200;
8
+ const maxTimeout = opts.maxTimeout || 5000;
9
+ const retryOn = opts.retryOn || ((err) => true);
10
+ let attempt = 0;
11
+ let lastError = null;
12
+ while (attempt <= retries) {
13
+ try {
14
+ return await fn();
15
+ }
16
+ catch (err) {
17
+ lastError = err;
18
+ if (attempt === retries || !retryOn(err)) {
19
+ break;
20
+ }
21
+ const wait = Math.min(maxTimeout, Math.round(minTimeout * Math.pow(factor, attempt)));
22
+ await new Promise((resolve) => setTimeout(resolve, wait));
23
+ attempt += 1;
24
+ }
25
+ }
26
+ throw lastError;
27
+ }
28
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";;AAWA,sBA0BC;AA1BM,KAAK,UAAU,KAAK,CAAI,EAAoB,EAAE,OAAqB,EAAE;IAC1E,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,GAAQ,IAAI,CAAC;IAE1B,OAAO,OAAO,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAChB,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM;YACR,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC"}
@@ -1,145 +1,79 @@
1
1
  /**
2
- * Controller para execução de comandos no terminal
3
- * Fornece interface padronizada para executar comandos Git e outros
2
+ * Terminal Controller
3
+ *
4
+ * Handles terminal command execution with proper error handling,
5
+ * timeout management, and cross-platform compatibility.
4
6
  */
5
- export interface TerminalCommand {
7
+ export interface CommandResult {
8
+ success: boolean;
9
+ stdout: string;
10
+ stderr: string;
11
+ exitCode: number;
12
+ executionTime: number;
6
13
  command: string;
7
- is_background: boolean;
8
- explanation: string;
9
14
  }
10
- export interface TerminalResult {
11
- exitCode: number;
12
- output: string;
13
- error: string;
15
+ export interface CommandOptions {
16
+ cwd?: string;
17
+ timeout?: number;
18
+ env?: Record<string, string>;
19
+ shell?: boolean;
20
+ encoding?: BufferEncoding;
14
21
  }
15
- /**
16
- * Executa um comando no terminal
17
- *
18
- * @param params Parâmetros do comando
19
- * @returns Promise com resultado da execução
20
- */
21
- export declare function runTerminalCmd(params: TerminalCommand & {
22
- projectPath?: string;
23
- }): Promise<TerminalResult>;
24
- /**
25
- * Executa comando Git usando GitOperations - 100% auto-suficiente
26
- *
27
- * @param gitCommand Comando Git a executar
28
- * @param projectPath Caminho do projeto
29
- * @param explanation Explicação do comando
30
- * @returns Promise com resultado
31
- */
32
- export declare function runGitCommand(gitCommand: string, projectPath: string, explanation: string): Promise<TerminalResult>;
33
- /**
34
- * Verifica se um diretório é um repositório Git - 100% auto-suficiente
35
- *
36
- * @param projectPath Caminho do projeto
37
- * @returns Promise<boolean>
38
- */
39
- export declare function isGitRepository(projectPath: string): Promise<boolean>;
40
- /**
41
- * Obtém status do repositório Git - 100% auto-suficiente
42
- *
43
- * @param projectPath Caminho do projeto
44
- * @returns Promise<TerminalResult>
45
- */
46
- export declare function getGitStatus(projectPath: string): Promise<TerminalResult>;
47
- /**
48
- * Adiciona arquivos ao stage - 100% auto-suficiente
49
- *
50
- * @param projectPath Caminho do projeto
51
- * @param files Arquivos específicos ou '.' para todos
52
- * @returns Promise<TerminalResult>
53
- */
54
- export declare function gitAdd(projectPath: string, files?: string): Promise<TerminalResult>;
55
- /**
56
- * Faz commit dos arquivos staged - 100% auto-suficiente
57
- *
58
- * @param projectPath Caminho do projeto
59
- * @param message Mensagem do commit
60
- * @returns Promise<TerminalResult>
61
- */
62
- export declare function gitCommit(projectPath: string, message: string): Promise<TerminalResult>;
63
- /**
64
- * Faz push para o repositório remoto - 100% auto-suficiente
65
- *
66
- * @param projectPath Caminho do projeto
67
- * @param branch Branch para fazer push
68
- * @param remote Remote (padrão: origin)
69
- * @returns Promise<TerminalResult>
70
- */
71
- export declare function gitPush(projectPath: string, branch?: string, remote?: string): Promise<TerminalResult>;
72
- /**
73
- * Faz pull do repositório remoto - 100% auto-suficiente
74
- *
75
- * @param projectPath Caminho do projeto
76
- * @param branch Branch para fazer pull
77
- * @param remote Remote (padrão: origin)
78
- * @returns Promise<TerminalResult>
79
- */
80
- export declare function gitPull(projectPath: string, branch?: string, remote?: string): Promise<TerminalResult>;
81
- /**
82
- * Inicializa um repositório Git
83
- *
84
- * @param projectPath Caminho do projeto
85
- * @param branch Branch inicial (padrão: main)
86
- * @returns Promise<TerminalResult>
87
- */
88
- export declare function gitInit(projectPath: string, branch?: string): Promise<TerminalResult>;
89
- /**
90
- * Obtém o branch atual
91
- *
92
- * @param projectPath Caminho do projeto
93
- * @returns Promise<string>
94
- */
95
- export declare function getCurrentBranch(projectPath: string): Promise<string>;
96
- /**
97
- * Obtém os remotes configurados
98
- *
99
- * @param projectPath Caminho do projeto
100
- * @returns Promise<string>
101
- */
102
- export declare function getRemotes(projectPath: string): Promise<string>;
103
- /**
104
- * Obtém o último commit
105
- *
106
- * @param projectPath Caminho do projeto
107
- * @returns Promise<string>
108
- */
109
- export declare function getLastCommit(projectPath: string): Promise<string>;
110
- /**
111
- * Obtém o log do Git
112
- *
113
- * @param projectPath Caminho do projeto
114
- * @param options Opções do git log
115
- * @returns Promise<string>
116
- */
117
- export declare function getGitLog(projectPath: string, options?: string[]): Promise<string>;
118
- /**
119
- * Obtém o histórico de um arquivo específico
120
- *
121
- * @param projectPath Caminho do projeto
122
- * @param filePath Caminho do arquivo
123
- * @param options Opções do git log
124
- * @returns Promise<string>
125
- */
126
- export declare function getFileHistory(projectPath: string, filePath: string, options?: string[]): Promise<string>;
127
- /**
128
- * Obtém o histórico de uma branch
129
- *
130
- * @param projectPath Caminho do projeto
131
- * @param branch Branch para análise
132
- * @param options Opções do git log
133
- * @returns Promise<string>
134
- */
135
- export declare function getBranchHistory(projectPath: string, branch: string, options?: string[]): Promise<string>;
136
- /**
137
- * Adiciona um remote
138
- *
139
- * @param projectPath Caminho do projeto
140
- * @param name Nome do remote
141
- * @param url URL do remote
142
- * @returns Promise<TerminalResult>
143
- */
144
- export declare function addRemote(projectPath: string, name: string, url: string): Promise<TerminalResult>;
22
+ export declare class TerminalController {
23
+ private defaultTimeout;
24
+ private defaultOptions;
25
+ /**
26
+ * Execute command with promise-based interface
27
+ */
28
+ executeCommand(command: string, args?: string[], options?: CommandOptions): Promise<CommandResult>;
29
+ /**
30
+ * Execute command in specific directory
31
+ */
32
+ executeInDirectory(directory: string, command: string, args?: string[], options?: CommandOptions): Promise<CommandResult>;
33
+ /**
34
+ * Check if command exists in system PATH
35
+ */
36
+ commandExists(command: string): Promise<boolean>;
37
+ /**
38
+ * Get current working directory
39
+ */
40
+ getCurrentDirectory(): string;
41
+ /**
42
+ * Change working directory for subsequent commands
43
+ */
44
+ setWorkingDirectory(directory: string): void;
45
+ /**
46
+ * Execute multiple commands in sequence
47
+ */
48
+ executeSequence(commands: Array<{
49
+ command: string;
50
+ args?: string[];
51
+ options?: CommandOptions;
52
+ }>, stopOnError?: boolean): Promise<CommandResult[]>;
53
+ /**
54
+ * Execute command with real-time output streaming
55
+ */
56
+ executeWithStreaming(command: string, args?: string[], options?: CommandOptions & {
57
+ onStdout?: (data: string) => void;
58
+ onStderr?: (data: string) => void;
59
+ }): Promise<CommandResult>;
60
+ /**
61
+ * Search for text in files using grep or findstr
62
+ */
63
+ searchInFiles(directory: string, query: string, options?: {
64
+ caseSensitive?: boolean;
65
+ filePattern?: string;
66
+ maxResults?: number;
67
+ }): Promise<CommandResult>;
68
+ /**
69
+ * Validate directory exists and is accessible
70
+ */
71
+ validateDirectory(directory: string): Promise<{
72
+ exists: boolean;
73
+ accessible: boolean;
74
+ isDirectory: boolean;
75
+ error?: string;
76
+ }>;
77
+ }
78
+ export declare const terminalController: TerminalController;
145
79
  //# sourceMappingURL=terminal-controller.d.ts.map