@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
@@ -1,14 +1,529 @@
1
1
  "use strict";
2
+ /**
3
+ * Git Packages Tool
4
+ *
5
+ * Package management tool providing comprehensive Git package operations.
6
+ * Supports both local package operations and remote provider operations.
7
+ *
8
+ * Operations: list, get, create, update, delete, publish, download
9
+ */
2
10
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gitPackagesTool = void 0;
4
- const auto_detection_js_1 = require("../utils/auto-detection.js");
5
- exports.gitPackagesTool = {
6
- name: 'git-packages',
7
- description: '📦 PACKAGES - Gerenciamento de packages',
8
- inputSchema: { type: 'object', properties: { action: { type: 'string' }, projectPath: { type: 'string' } }, required: ['action', 'projectPath'] },
9
- async handler(input) {
10
- const detection = (0, auto_detection_js_1.autoDetect)(input.projectPath);
11
- return (0, auto_detection_js_1.createUniversalResponse)(true, input.action, 'Package processado', detection, 'git-packages', { packages: [] });
12
- }
13
- };
11
+ exports.GitPackagesTool = void 0;
12
+ const git_command_executor_js_1 = require("../utils/git-command-executor.js");
13
+ const parameter_validator_js_1 = require("../utils/parameter-validator.js");
14
+ const operation_error_handler_js_1 = require("../utils/operation-error-handler.js");
15
+ const provider_operation_handler_js_1 = require("../providers/provider-operation-handler.js");
16
+ class GitPackagesTool {
17
+ gitExecutor;
18
+ providerHandler;
19
+ constructor(providerConfig) {
20
+ this.gitExecutor = new git_command_executor_js_1.GitCommandExecutor();
21
+ if (providerConfig) {
22
+ this.providerHandler = new provider_operation_handler_js_1.ProviderOperationHandler(providerConfig);
23
+ }
24
+ }
25
+ /**
26
+ * Execute git-packages operation
27
+ */
28
+ async execute(params) {
29
+ const startTime = Date.now();
30
+ try {
31
+ // Validate basic parameters
32
+ const validation = parameter_validator_js_1.ParameterValidator.validateToolParams('git-packages', params);
33
+ if (!validation.isValid) {
34
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Parameter validation failed: ${validation.errors.join(', ')}`, params.action, { validationErrors: validation.errors }, validation.suggestions);
35
+ }
36
+ // Validate operation-specific parameters
37
+ const operationValidation = parameter_validator_js_1.ParameterValidator.validateOperationParams('git-packages', params.action, params);
38
+ if (!operationValidation.isValid) {
39
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Operation validation failed: ${operationValidation.errors.join(', ')}`, params.action, { validationErrors: operationValidation.errors }, operationValidation.suggestions);
40
+ }
41
+ // Route to appropriate handler
42
+ const isRemoteOperation = this.isRemoteOperation(params.action);
43
+ if (isRemoteOperation) {
44
+ return await this.executeRemoteOperation(params, startTime);
45
+ }
46
+ else {
47
+ return await this.executeLocalOperation(params, startTime);
48
+ }
49
+ }
50
+ catch (error) {
51
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
52
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('EXECUTION_ERROR', `Failed to execute ${params.action}: ${errorMessage}`, params.action, { error: errorMessage }, ['Check the error details and try again']);
53
+ }
54
+ }
55
+ /**
56
+ * Execute local Git package operations
57
+ */
58
+ async executeLocalOperation(params, startTime) {
59
+ switch (params.action) {
60
+ case 'list':
61
+ return await this.handleListLocalPackages(params, startTime);
62
+ case 'get':
63
+ return await this.handleGetLocalPackage(params, startTime);
64
+ default:
65
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('UNSUPPORTED_LOCAL_OPERATION', `Local operation '${params.action}' is not supported. Use provider for remote package operations.`, params.action, {}, ['Specify a provider (github, gitea, or both) for remote package operations']);
66
+ }
67
+ }
68
+ /**
69
+ * Execute remote provider operations
70
+ */
71
+ async executeRemoteOperation(params, startTime) {
72
+ if (!this.providerHandler) {
73
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('PROVIDER_NOT_CONFIGURED', 'Provider handler is not configured for remote operations', params.action, {}, ['Configure GitHub or Gitea provider to use remote operations']);
74
+ }
75
+ if (!params.provider) {
76
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('PROVIDER_REQUIRED', 'Provider parameter is required for remote package operations', params.action, {}, ['Specify provider as: github, gitea, or both']);
77
+ }
78
+ const operation = {
79
+ provider: params.provider,
80
+ operation: this.mapActionToProviderOperation(params.action),
81
+ parameters: this.extractRemoteParameters(params),
82
+ requiresAuth: true,
83
+ isRemoteOperation: true
84
+ };
85
+ try {
86
+ const result = await this.providerHandler.executeOperation(operation);
87
+ return {
88
+ success: result.success,
89
+ data: result.partialFailure ? result : result.results[0]?.data,
90
+ error: result.success ? undefined : {
91
+ code: result.errors[0]?.error?.code || 'REMOTE_OPERATION_ERROR',
92
+ message: result.errors[0]?.error?.message || 'Remote operation failed',
93
+ details: result.errors,
94
+ suggestions: ['Check provider configuration and credentials']
95
+ },
96
+ metadata: {
97
+ provider: params.provider,
98
+ operation: params.action,
99
+ timestamp: new Date().toISOString(),
100
+ executionTime: Date.now() - startTime
101
+ }
102
+ };
103
+ }
104
+ catch (error) {
105
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
106
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('REMOTE_OPERATION_ERROR', `Remote operation failed: ${errorMessage}`, params.action, { error: errorMessage }, ['Check provider configuration and network connectivity']);
107
+ }
108
+ }
109
+ /**
110
+ * Handle list local packages operation (checks for package files)
111
+ */
112
+ async handleListLocalPackages(params, startTime) {
113
+ try {
114
+ const packages = [];
115
+ // Check for common package files
116
+ const packageFiles = [
117
+ { file: 'package.json', type: 'npm' },
118
+ { file: 'pom.xml', type: 'maven' },
119
+ { file: 'build.gradle', type: 'gradle' },
120
+ { file: 'Cargo.toml', type: 'cargo' },
121
+ { file: 'composer.json', type: 'composer' },
122
+ { file: 'setup.py', type: 'python' },
123
+ { file: 'pyproject.toml', type: 'python' },
124
+ { file: 'Dockerfile', type: 'container' },
125
+ { file: 'Chart.yaml', type: 'helm' },
126
+ { file: 'pubspec.yaml', type: 'dart' },
127
+ { file: 'go.mod', type: 'go' }
128
+ ];
129
+ for (const { file, type } of packageFiles) {
130
+ const filePath = `${params.projectPath}/${file}`;
131
+ try {
132
+ // Check if file exists using git ls-files or simple file check
133
+ const result = await this.gitExecutor.executeGitCommand('ls-files', [file], params.projectPath);
134
+ if (result.success && result.stdout.trim()) {
135
+ // File exists in git, try to read package info
136
+ const packageInfo = await this.extractPackageInfo(params.projectPath, file, type);
137
+ if (packageInfo) {
138
+ packages.push({
139
+ type,
140
+ file,
141
+ ...packageInfo,
142
+ isLocal: true
143
+ });
144
+ }
145
+ }
146
+ }
147
+ catch (error) {
148
+ // Continue checking other files
149
+ continue;
150
+ }
151
+ }
152
+ return {
153
+ success: true,
154
+ data: {
155
+ packages,
156
+ total: packages.length,
157
+ note: 'These are local package definitions. Use a provider for remote package registry operations.'
158
+ },
159
+ metadata: {
160
+ operation: 'list',
161
+ timestamp: new Date().toISOString(),
162
+ executionTime: Date.now() - startTime
163
+ }
164
+ };
165
+ }
166
+ catch (error) {
167
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
168
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('LIST_PACKAGES_ERROR', `Failed to list local packages: ${errorMessage}`, 'list', { error: errorMessage, projectPath: params.projectPath });
169
+ }
170
+ }
171
+ /**
172
+ * Handle get local package operation (gets package file info)
173
+ */
174
+ async handleGetLocalPackage(params, startTime) {
175
+ try {
176
+ if (!params.packageName && !params.packageType) {
177
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'Either packageName or packageType is required for get package operation', 'get', {}, ['Provide packageName (e.g., "package.json") or packageType (e.g., "npm")']);
178
+ }
179
+ // Determine package file based on name or type
180
+ let packageFile = params.packageName;
181
+ let packageType = params.packageType;
182
+ if (!packageFile && packageType) {
183
+ const typeToFile = {
184
+ 'npm': 'package.json',
185
+ 'maven': 'pom.xml',
186
+ 'gradle': 'build.gradle',
187
+ 'cargo': 'Cargo.toml',
188
+ 'composer': 'composer.json',
189
+ 'python': 'setup.py',
190
+ 'container': 'Dockerfile',
191
+ 'helm': 'Chart.yaml',
192
+ 'dart': 'pubspec.yaml',
193
+ 'go': 'go.mod'
194
+ };
195
+ packageFile = typeToFile[packageType];
196
+ }
197
+ if (!packageFile) {
198
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('INVALID_PACKAGE_TYPE', `Unknown package type: ${packageType}`, 'get', { packageType }, ['Use supported package types: npm, maven, gradle, cargo, composer, python, container, helm, dart, go']);
199
+ }
200
+ // Check if package file exists
201
+ const result = await this.gitExecutor.executeGitCommand('ls-files', [packageFile], params.projectPath);
202
+ if (!result.success || !result.stdout.trim()) {
203
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('PACKAGE_NOT_FOUND', `Package file '${packageFile}' not found in repository`, 'get', { packageFile }, ['Check if the package file exists and is tracked by git']);
204
+ }
205
+ // Extract package information
206
+ const packageInfo = await this.extractPackageInfo(params.projectPath, packageFile, packageType);
207
+ if (!packageInfo) {
208
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('PACKAGE_READ_ERROR', `Failed to read package information from '${packageFile}'`, 'get', { packageFile }, ['Check if the package file is valid and readable']);
209
+ }
210
+ return {
211
+ success: true,
212
+ data: {
213
+ file: packageFile,
214
+ type: packageType,
215
+ ...packageInfo,
216
+ isLocal: true,
217
+ note: 'This is a local package definition. Use a provider for remote package registry operations.'
218
+ },
219
+ metadata: {
220
+ operation: 'get',
221
+ timestamp: new Date().toISOString(),
222
+ executionTime: Date.now() - startTime
223
+ }
224
+ };
225
+ }
226
+ catch (error) {
227
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
228
+ return operation_error_handler_js_1.OperationErrorHandler.createToolError('GET_PACKAGE_ERROR', `Failed to get local package information: ${errorMessage}`, 'get', { error: errorMessage, projectPath: params.projectPath });
229
+ }
230
+ }
231
+ /**
232
+ * Extract package information from package files
233
+ */
234
+ async extractPackageInfo(projectPath, file, type) {
235
+ try {
236
+ const result = await this.gitExecutor.executeGitCommand('show', [`HEAD:${file}`], projectPath);
237
+ if (!result.success) {
238
+ return null;
239
+ }
240
+ const content = result.stdout;
241
+ switch (file) {
242
+ case 'package.json':
243
+ try {
244
+ const pkg = JSON.parse(content);
245
+ return {
246
+ name: pkg.name,
247
+ version: pkg.version,
248
+ description: pkg.description,
249
+ author: pkg.author,
250
+ license: pkg.license,
251
+ dependencies: pkg.dependencies ? Object.keys(pkg.dependencies).length : 0,
252
+ devDependencies: pkg.devDependencies ? Object.keys(pkg.devDependencies).length : 0,
253
+ scripts: pkg.scripts ? Object.keys(pkg.scripts) : [],
254
+ repository: pkg.repository,
255
+ homepage: pkg.homepage
256
+ };
257
+ }
258
+ catch {
259
+ return { name: 'Invalid package.json', error: 'Failed to parse JSON' };
260
+ }
261
+ case 'pom.xml':
262
+ // Basic XML parsing for Maven
263
+ const groupIdMatch = content.match(/<groupId>(.*?)<\/groupId>/);
264
+ const artifactIdMatch = content.match(/<artifactId>(.*?)<\/artifactId>/);
265
+ const versionMatch = content.match(/<version>(.*?)<\/version>/);
266
+ const nameMatch = content.match(/<name>(.*?)<\/name>/);
267
+ const descriptionMatch = content.match(/<description>(.*?)<\/description>/);
268
+ return {
269
+ groupId: groupIdMatch?.[1],
270
+ artifactId: artifactIdMatch?.[1],
271
+ name: nameMatch?.[1] || artifactIdMatch?.[1],
272
+ version: versionMatch?.[1],
273
+ description: descriptionMatch?.[1]
274
+ };
275
+ case 'Cargo.toml':
276
+ // Basic TOML parsing for Rust
277
+ const nameTomlMatch = content.match(/name\s*=\s*"([^"]+)"/);
278
+ const versionTomlMatch = content.match(/version\s*=\s*"([^"]+)"/);
279
+ const descriptionTomlMatch = content.match(/description\s*=\s*"([^"]+)"/);
280
+ const authorTomlMatch = content.match(/authors\s*=\s*\[(.*?)\]/s);
281
+ return {
282
+ name: nameTomlMatch?.[1],
283
+ version: versionTomlMatch?.[1],
284
+ description: descriptionTomlMatch?.[1],
285
+ authors: authorTomlMatch?.[1]?.split(',').map((a) => a.trim().replace(/"/g, ''))
286
+ };
287
+ case 'composer.json':
288
+ try {
289
+ const composer = JSON.parse(content);
290
+ return {
291
+ name: composer.name,
292
+ version: composer.version,
293
+ description: composer.description,
294
+ type: composer.type,
295
+ license: composer.license,
296
+ authors: composer.authors,
297
+ require: composer.require ? Object.keys(composer.require).length : 0,
298
+ requireDev: composer['require-dev'] ? Object.keys(composer['require-dev']).length : 0
299
+ };
300
+ }
301
+ catch {
302
+ return { name: 'Invalid composer.json', error: 'Failed to parse JSON' };
303
+ }
304
+ case 'Chart.yaml':
305
+ // Basic YAML parsing for Helm
306
+ const chartNameMatch = content.match(/name:\s*(.+)/);
307
+ const chartVersionMatch = content.match(/version:\s*(.+)/);
308
+ const chartDescMatch = content.match(/description:\s*(.+)/);
309
+ const appVersionMatch = content.match(/appVersion:\s*(.+)/);
310
+ return {
311
+ name: chartNameMatch?.[1]?.trim(),
312
+ version: chartVersionMatch?.[1]?.trim(),
313
+ description: chartDescMatch?.[1]?.trim(),
314
+ appVersion: appVersionMatch?.[1]?.trim()
315
+ };
316
+ case 'go.mod':
317
+ const moduleMatch = content.match(/module\s+(.+)/);
318
+ const goVersionMatch = content.match(/go\s+(.+)/);
319
+ return {
320
+ module: moduleMatch?.[1]?.trim(),
321
+ goVersion: goVersionMatch?.[1]?.trim(),
322
+ name: moduleMatch?.[1]?.split('/').pop()
323
+ };
324
+ default:
325
+ return {
326
+ name: file,
327
+ type: type || 'unknown',
328
+ size: content.length
329
+ };
330
+ }
331
+ }
332
+ catch (error) {
333
+ return null;
334
+ }
335
+ }
336
+ /**
337
+ * Check if operation is a remote operation
338
+ */
339
+ isRemoteOperation(action) {
340
+ // Most package operations require remote provider APIs
341
+ const remoteOperations = ['create', 'update', 'delete', 'publish', 'download'];
342
+ return remoteOperations.includes(action);
343
+ }
344
+ /**
345
+ * Extract parameters for remote operations
346
+ */
347
+ extractRemoteParameters(params) {
348
+ const remoteParams = {
349
+ projectPath: params.projectPath
350
+ };
351
+ // Common parameters
352
+ if (params.owner)
353
+ remoteParams.owner = params.owner;
354
+ if (params.repo)
355
+ remoteParams.repo = params.repo;
356
+ if (params.packageName)
357
+ remoteParams.package_name = params.packageName;
358
+ if (params.packageType)
359
+ remoteParams.package_type = params.packageType;
360
+ if (params.version)
361
+ remoteParams.version = params.version;
362
+ // Operation-specific parameters
363
+ switch (params.action) {
364
+ case 'list':
365
+ if (params.limit)
366
+ remoteParams.per_page = params.limit;
367
+ if (params.packageType)
368
+ remoteParams.package_type = params.packageType;
369
+ if (params.query)
370
+ remoteParams.q = params.query;
371
+ if (params.includeVersions !== undefined)
372
+ remoteParams.include_versions = params.includeVersions;
373
+ break;
374
+ case 'get':
375
+ // Get operations need packageName (already handled above)
376
+ if (params.includeVersions !== undefined)
377
+ remoteParams.include_versions = params.includeVersions;
378
+ break;
379
+ case 'create':
380
+ if (params.description)
381
+ remoteParams.description = params.description;
382
+ if (params.visibility)
383
+ remoteParams.visibility = params.visibility;
384
+ if (params.packageData)
385
+ remoteParams.package_data = params.packageData;
386
+ if (params.tags)
387
+ remoteParams.tags = params.tags;
388
+ break;
389
+ case 'update':
390
+ if (params.description)
391
+ remoteParams.description = params.description;
392
+ if (params.visibility)
393
+ remoteParams.visibility = params.visibility;
394
+ if (params.packageData)
395
+ remoteParams.package_data = params.packageData;
396
+ if (params.tags)
397
+ remoteParams.tags = params.tags;
398
+ break;
399
+ case 'delete':
400
+ // Delete operations need packageName and version (already handled above)
401
+ break;
402
+ case 'publish':
403
+ if (params.registry)
404
+ remoteParams.registry = params.registry;
405
+ if (params.packageData)
406
+ remoteParams.package_data = params.packageData;
407
+ break;
408
+ case 'download':
409
+ if (params.downloadPath)
410
+ remoteParams.download_path = params.downloadPath;
411
+ if (params.format)
412
+ remoteParams.format = params.format;
413
+ break;
414
+ }
415
+ return remoteParams;
416
+ }
417
+ /**
418
+ * Map git-packages actions to provider operations
419
+ */
420
+ mapActionToProviderOperation(action) {
421
+ const actionMap = {
422
+ 'list': 'package-list',
423
+ 'get': 'package-get',
424
+ 'create': 'package-create',
425
+ 'update': 'package-update',
426
+ 'delete': 'package-delete',
427
+ 'publish': 'package-publish',
428
+ 'download': 'package-download'
429
+ };
430
+ return actionMap[action] || action;
431
+ }
432
+ /**
433
+ * Get tool schema for MCP registration
434
+ */
435
+ static getToolSchema() {
436
+ return {
437
+ name: 'git-packages',
438
+ description: 'Git package management tool for package operations. Supports list, get, create, update, delete, publish, and download operations. Local operations work with package files, remote operations require a provider.',
439
+ inputSchema: {
440
+ type: 'object',
441
+ properties: {
442
+ action: {
443
+ type: 'string',
444
+ enum: ['list', 'get', 'create', 'update', 'delete', 'publish', 'download'],
445
+ description: 'The package operation to perform'
446
+ },
447
+ projectPath: {
448
+ type: 'string',
449
+ description: 'Absolute path to the project directory'
450
+ },
451
+ provider: {
452
+ type: 'string',
453
+ enum: ['github', 'gitea', 'both'],
454
+ description: 'Provider for remote operations (required for create, update, delete, publish, download)'
455
+ },
456
+ packageName: {
457
+ type: 'string',
458
+ description: 'Name of the package (required for most operations)'
459
+ },
460
+ packageType: {
461
+ type: 'string',
462
+ description: 'Type of package (npm, maven, container, etc.)'
463
+ },
464
+ version: {
465
+ type: 'string',
466
+ description: 'Package version (for get, create, update, delete, publish, download)'
467
+ },
468
+ description: {
469
+ type: 'string',
470
+ description: 'Package description (for create/update)'
471
+ },
472
+ visibility: {
473
+ type: 'string',
474
+ enum: ['public', 'private', 'internal'],
475
+ description: 'Package visibility (for create/update)'
476
+ },
477
+ packageData: {
478
+ type: 'object',
479
+ description: 'Package content/metadata (for create/update/publish)'
480
+ },
481
+ tags: {
482
+ type: 'array',
483
+ items: { type: 'string' },
484
+ description: 'Package tags (for create/update)'
485
+ },
486
+ downloadPath: {
487
+ type: 'string',
488
+ description: 'Path to save downloaded package (for download)'
489
+ },
490
+ format: {
491
+ type: 'string',
492
+ description: 'Package format for download (for download)'
493
+ },
494
+ registry: {
495
+ type: 'string',
496
+ description: 'Target registry for publishing (for publish)'
497
+ },
498
+ force: {
499
+ type: 'boolean',
500
+ description: 'Force operation (for delete, update)'
501
+ },
502
+ includeVersions: {
503
+ type: 'boolean',
504
+ description: 'Include version history (for list, get)'
505
+ },
506
+ owner: {
507
+ type: 'string',
508
+ description: 'Repository owner (for remote operations)'
509
+ },
510
+ repo: {
511
+ type: 'string',
512
+ description: 'Repository name (for remote operations)'
513
+ },
514
+ limit: {
515
+ type: 'number',
516
+ description: 'Maximum number of packages to return (for list)'
517
+ },
518
+ query: {
519
+ type: 'string',
520
+ description: 'Search query for packages (for list)'
521
+ }
522
+ },
523
+ required: ['action', 'projectPath']
524
+ }
525
+ };
526
+ }
527
+ }
528
+ exports.GitPackagesTool = GitPackagesTool;
14
529
  //# sourceMappingURL=git-packages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-packages.js","sourceRoot":"","sources":["../../src/tools/git-packages.ts"],"names":[],"mappings":";;;AAAA,kEAAoG;AAEvF,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,yCAAyC;IACtD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;IACjJ,KAAK,CAAC,OAAO,CAAC,KAAU;QACtB,MAAM,SAAS,GAAG,IAAA,8BAAU,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,IAAA,2CAAuB,EAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACxH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"git-packages.js","sourceRoot":"","sources":["../../src/tools/git-packages.ts"],"names":[],"mappings":"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"}