@andrebuzeli/git-mcp 5.0.9 → 5.2.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 +239 -80
- package/dist/__tests__/setup.d.ts +10 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +105 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/config.d.ts +43 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +168 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/providers/gitea-provider.d.ts.map +1 -1
- package/dist/providers/gitea-provider.js +3 -18
- package/dist/providers/gitea-provider.js.map +1 -1
- package/dist/providers/github-provider.d.ts.map +1 -1
- package/dist/providers/github-provider.js +3 -27
- package/dist/providers/github-provider.js.map +1 -1
- package/dist/server.d.ts +8 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +102 -6
- package/dist/server.js.map +1 -1
- package/dist/tools/git-archive.d.ts.map +1 -1
- package/dist/tools/git-archive.js +1 -3
- package/dist/tools/git-archive.js.map +1 -1
- package/dist/tools/git-automations.d.ts +257 -0
- package/dist/tools/git-automations.d.ts.map +1 -0
- package/dist/tools/git-automations.js +878 -0
- package/dist/tools/git-automations.js.map +1 -0
- package/dist/tools/git-bisect.d.ts +158 -0
- package/dist/tools/git-bisect.d.ts.map +1 -0
- package/dist/tools/git-bisect.js +571 -0
- package/dist/tools/git-bisect.js.map +1 -0
- package/dist/tools/git-branches.d.ts +48 -0
- package/dist/tools/git-branches.d.ts.map +1 -1
- package/dist/tools/git-branches.js +46 -4
- package/dist/tools/git-branches.js.map +1 -1
- package/dist/tools/git-changelog.d.ts +253 -0
- package/dist/tools/git-changelog.d.ts.map +1 -0
- package/dist/tools/git-changelog.js +728 -0
- package/dist/tools/git-changelog.js.map +1 -0
- package/dist/tools/git-cherry-pick.d.ts +150 -0
- package/dist/tools/git-cherry-pick.d.ts.map +1 -0
- package/dist/tools/git-cherry-pick.js +455 -0
- package/dist/tools/git-cherry-pick.js.map +1 -0
- package/dist/tools/git-dependencies.d.ts +233 -0
- package/dist/tools/git-dependencies.d.ts.map +1 -0
- package/dist/tools/git-dependencies.js +761 -0
- package/dist/tools/git-dependencies.js.map +1 -0
- package/dist/tools/git-files.d.ts +3 -26
- package/dist/tools/git-files.d.ts.map +1 -1
- package/dist/tools/git-files.js +26 -201
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-hooks.d.ts +146 -0
- package/dist/tools/git-hooks.d.ts.map +1 -0
- package/dist/tools/git-hooks.js +634 -0
- package/dist/tools/git-hooks.js.map +1 -0
- package/dist/tools/git-reset.d.ts +17 -1
- package/dist/tools/git-reset.d.ts.map +1 -1
- package/dist/tools/git-reset.js +69 -2
- package/dist/tools/git-reset.js.map +1 -1
- package/dist/tools/git-stats-personal.d.ts +210 -0
- package/dist/tools/git-stats-personal.d.ts.map +1 -0
- package/dist/tools/git-stats-personal.js +718 -0
- package/dist/tools/git-stats-personal.js.map +1 -0
- package/dist/tools/git-tags.d.ts.map +1 -1
- package/dist/tools/git-tags.js +11 -3
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-workflow.d.ts +45 -0
- package/dist/tools/git-workflow.d.ts.map +1 -1
- package/dist/tools/git-workflow.js +43 -4
- package/dist/tools/git-workflow.js.map +1 -1
- package/dist/utils/operation-error-handler.d.ts.map +1 -1
- package/dist/utils/operation-error-handler.js +55 -0
- package/dist/utils/operation-error-handler.js.map +1 -1
- package/dist/utils/parameter-validator.d.ts +9 -0
- package/dist/utils/parameter-validator.d.ts.map +1 -1
- package/dist/utils/parameter-validator.js +430 -7
- package/dist/utils/parameter-validator.js.map +1 -1
- package/dist/utils/safety-warnings.d.ts +56 -0
- package/dist/utils/safety-warnings.d.ts.map +1 -0
- package/dist/utils/safety-warnings.js +330 -0
- package/dist/utils/safety-warnings.js.map +1 -0
- package/package.json +81 -78
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Git Bisect Tool
|
|
4
|
+
*
|
|
5
|
+
* Git bisect management tool providing comprehensive Git bisect operations.
|
|
6
|
+
* Supports automated bug finding, manual bisect operations, and visualization.
|
|
7
|
+
*
|
|
8
|
+
* Operations: start, good, bad, skip, reset, run, log, visualize
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.GitBisectTool = 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
|
+
class GitBisectTool {
|
|
16
|
+
gitExecutor;
|
|
17
|
+
constructor() {
|
|
18
|
+
this.gitExecutor = new git_command_executor_js_1.GitCommandExecutor();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Execute git-bisect operation
|
|
22
|
+
*/
|
|
23
|
+
async execute(params) {
|
|
24
|
+
const startTime = Date.now();
|
|
25
|
+
try {
|
|
26
|
+
// Validate basic parameters
|
|
27
|
+
const validation = parameter_validator_js_1.ParameterValidator.validateToolParams('git-bisect', params);
|
|
28
|
+
if (!validation.isValid) {
|
|
29
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Parameter validation failed: ${validation.errors.join(', ')}`, params.action, { validationErrors: validation.errors }, validation.suggestions);
|
|
30
|
+
}
|
|
31
|
+
// Validate operation-specific parameters
|
|
32
|
+
const operationValidation = parameter_validator_js_1.ParameterValidator.validateOperationParams('git-bisect', params.action, params);
|
|
33
|
+
if (!operationValidation.isValid) {
|
|
34
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Operation validation failed: ${operationValidation.errors.join(', ')}`, params.action, { validationErrors: operationValidation.errors }, operationValidation.suggestions);
|
|
35
|
+
}
|
|
36
|
+
// Route to appropriate handler
|
|
37
|
+
switch (params.action) {
|
|
38
|
+
case 'start':
|
|
39
|
+
return await this.handleStart(params, startTime);
|
|
40
|
+
case 'good':
|
|
41
|
+
return await this.handleGood(params, startTime);
|
|
42
|
+
case 'bad':
|
|
43
|
+
return await this.handleBad(params, startTime);
|
|
44
|
+
case 'skip':
|
|
45
|
+
return await this.handleSkip(params, startTime);
|
|
46
|
+
case 'reset':
|
|
47
|
+
return await this.handleReset(params, startTime);
|
|
48
|
+
case 'run':
|
|
49
|
+
return await this.handleRun(params, startTime);
|
|
50
|
+
case 'log':
|
|
51
|
+
return await this.handleLog(params, startTime);
|
|
52
|
+
case 'visualize':
|
|
53
|
+
return await this.handleVisualize(params, startTime);
|
|
54
|
+
default:
|
|
55
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('INVALID_ACTION', `Unknown action: ${params.action}`, params.action, { supportedActions: ['start', 'good', 'bad', 'skip', 'reset', 'run', 'log', 'visualize'] }, ['Use one of the supported actions']);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
60
|
+
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']);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Start bisect session
|
|
65
|
+
*/
|
|
66
|
+
async handleStart(params, startTime) {
|
|
67
|
+
try {
|
|
68
|
+
let command = 'git bisect start';
|
|
69
|
+
// Add good and bad commits if provided
|
|
70
|
+
if (params.goodCommit && params.badCommit) {
|
|
71
|
+
command += ` ${params.badCommit} ${params.goodCommit}`;
|
|
72
|
+
}
|
|
73
|
+
else if (params.badCommit) {
|
|
74
|
+
command += ` ${params.badCommit}`;
|
|
75
|
+
}
|
|
76
|
+
const result = await this.gitExecutor.executeGitCommand(command, [], params.projectPath);
|
|
77
|
+
if (result.success) {
|
|
78
|
+
const executionTime = Date.now() - startTime;
|
|
79
|
+
return {
|
|
80
|
+
success: true,
|
|
81
|
+
data: {
|
|
82
|
+
bisect: {
|
|
83
|
+
status: 'started',
|
|
84
|
+
goodCommit: params.goodCommit,
|
|
85
|
+
badCommit: params.badCommit,
|
|
86
|
+
session: true
|
|
87
|
+
},
|
|
88
|
+
message: 'Bisect session started successfully',
|
|
89
|
+
executionTime
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('START_ERROR', `Failed to start bisect: ${result.stderr}`, params.action, { output: result.stdout, error: result.stderr }, ['Check commit hashes are valid', 'Ensure repository is clean', 'Check if bisect is already running']);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
99
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('START_ERROR', `Failed to start bisect: ${errorMessage}`, params.action, { error: errorMessage }, ['Check commit hashes are valid', 'Ensure repository is clean']);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Mark commit as good
|
|
104
|
+
*/
|
|
105
|
+
async handleGood(params, startTime) {
|
|
106
|
+
try {
|
|
107
|
+
let command = 'git bisect good';
|
|
108
|
+
if (params.commit) {
|
|
109
|
+
command += ` ${params.commit}`;
|
|
110
|
+
}
|
|
111
|
+
const result = await this.gitExecutor.executeGitCommand(command, [], params.projectPath);
|
|
112
|
+
if (result.success) {
|
|
113
|
+
const executionTime = Date.now() - startTime;
|
|
114
|
+
return {
|
|
115
|
+
success: true,
|
|
116
|
+
data: {
|
|
117
|
+
bisect: {
|
|
118
|
+
status: 'good-marked',
|
|
119
|
+
commit: params.commit || 'HEAD',
|
|
120
|
+
session: true
|
|
121
|
+
},
|
|
122
|
+
message: `Commit marked as good: ${params.commit || 'HEAD'}`,
|
|
123
|
+
executionTime
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return this.handleBisectResult(result, params, startTime);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
133
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('GOOD_ERROR', `Failed to mark commit as good: ${errorMessage}`, params.action, { commit: params.commit, error: errorMessage }, ['Check if bisect session is active', 'Verify commit hash is valid']);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Mark commit as bad
|
|
138
|
+
*/
|
|
139
|
+
async handleBad(params, startTime) {
|
|
140
|
+
try {
|
|
141
|
+
let command = 'git bisect bad';
|
|
142
|
+
if (params.commit) {
|
|
143
|
+
command += ` ${params.commit}`;
|
|
144
|
+
}
|
|
145
|
+
const result = await this.gitExecutor.executeGitCommand(command, [], params.projectPath);
|
|
146
|
+
if (result.success) {
|
|
147
|
+
const executionTime = Date.now() - startTime;
|
|
148
|
+
return {
|
|
149
|
+
success: true,
|
|
150
|
+
data: {
|
|
151
|
+
bisect: {
|
|
152
|
+
status: 'bad-marked',
|
|
153
|
+
commit: params.commit || 'HEAD',
|
|
154
|
+
session: true
|
|
155
|
+
},
|
|
156
|
+
message: `Commit marked as bad: ${params.commit || 'HEAD'}`,
|
|
157
|
+
executionTime
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
return this.handleBisectResult(result, params, startTime);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
167
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('BAD_ERROR', `Failed to mark commit as bad: ${errorMessage}`, params.action, { commit: params.commit, error: errorMessage }, ['Check if bisect session is active', 'Verify commit hash is valid']);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Skip commit
|
|
172
|
+
*/
|
|
173
|
+
async handleSkip(params, startTime) {
|
|
174
|
+
try {
|
|
175
|
+
let command = 'git bisect skip';
|
|
176
|
+
if (params.commit) {
|
|
177
|
+
command += ` ${params.commit}`;
|
|
178
|
+
}
|
|
179
|
+
const result = await this.gitExecutor.executeGitCommand(command, [], params.projectPath);
|
|
180
|
+
if (result.success) {
|
|
181
|
+
const executionTime = Date.now() - startTime;
|
|
182
|
+
return {
|
|
183
|
+
success: true,
|
|
184
|
+
data: {
|
|
185
|
+
bisect: {
|
|
186
|
+
status: 'skipped',
|
|
187
|
+
commit: params.commit || 'HEAD',
|
|
188
|
+
session: true
|
|
189
|
+
},
|
|
190
|
+
message: `Commit skipped: ${params.commit || 'HEAD'}`,
|
|
191
|
+
executionTime
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
return this.handleBisectResult(result, params, startTime);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
201
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('SKIP_ERROR', `Failed to skip commit: ${errorMessage}`, params.action, { commit: params.commit, error: errorMessage }, ['Check if bisect session is active', 'Verify commit hash is valid']);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Reset bisect session
|
|
206
|
+
*/
|
|
207
|
+
async handleReset(params, startTime) {
|
|
208
|
+
try {
|
|
209
|
+
const result = await this.gitExecutor.executeGitCommand('git', ['bisect', 'reset'], params.projectPath);
|
|
210
|
+
if (result.success) {
|
|
211
|
+
const executionTime = Date.now() - startTime;
|
|
212
|
+
return {
|
|
213
|
+
success: true,
|
|
214
|
+
data: {
|
|
215
|
+
bisect: {
|
|
216
|
+
status: 'reset',
|
|
217
|
+
session: false
|
|
218
|
+
},
|
|
219
|
+
message: 'Bisect session reset successfully',
|
|
220
|
+
executionTime
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('RESET_ERROR', `Failed to reset bisect: ${result.stderr}`, params.action, { output: result.stdout, error: result.stderr }, ['Check if bisect session is active']);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
230
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('RESET_ERROR', `Failed to reset bisect: ${errorMessage}`, params.action, { error: errorMessage }, ['Check if bisect session is active']);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Run automated bisect
|
|
235
|
+
*/
|
|
236
|
+
async handleRun(params, startTime) {
|
|
237
|
+
try {
|
|
238
|
+
if (!params.testScript && !params.testCommand) {
|
|
239
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_TEST', 'Either testScript or testCommand is required for automated bisect', params.action, { testScript: params.testScript, testCommand: params.testCommand }, ['Provide a test script or command to run']);
|
|
240
|
+
}
|
|
241
|
+
const testCommand = params.testCommand || params.testScript;
|
|
242
|
+
const result = await this.gitExecutor.executeGitCommand('git', ['bisect', 'run', testCommand], params.projectPath);
|
|
243
|
+
if (result.success) {
|
|
244
|
+
const executionTime = Date.now() - startTime;
|
|
245
|
+
return {
|
|
246
|
+
success: true,
|
|
247
|
+
data: {
|
|
248
|
+
bisect: {
|
|
249
|
+
status: 'completed',
|
|
250
|
+
testCommand,
|
|
251
|
+
session: false,
|
|
252
|
+
result: this.parseBisectResult(result.stdout)
|
|
253
|
+
},
|
|
254
|
+
message: 'Automated bisect completed successfully',
|
|
255
|
+
executionTime
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('RUN_ERROR', `Automated bisect failed: ${result.stderr}`, params.action, { output: result.stdout, error: result.stderr, testCommand }, ['Check test command is valid', 'Ensure test command returns proper exit codes', 'Check if bisect session is active']);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
265
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('RUN_ERROR', `Failed to run automated bisect: ${errorMessage}`, params.action, { testCommand: params.testCommand || params.testScript, error: errorMessage }, ['Check test command is valid', 'Ensure test command returns proper exit codes']);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Get bisect log
|
|
270
|
+
*/
|
|
271
|
+
async handleLog(params, startTime) {
|
|
272
|
+
try {
|
|
273
|
+
const result = await this.gitExecutor.executeGitCommand('git', ['bisect', 'log'], params.projectPath);
|
|
274
|
+
if (result.success) {
|
|
275
|
+
const executionTime = Date.now() - startTime;
|
|
276
|
+
return {
|
|
277
|
+
success: true,
|
|
278
|
+
data: {
|
|
279
|
+
bisect: {
|
|
280
|
+
log: result.stdout,
|
|
281
|
+
entries: this.parseBisectLog(result.stdout),
|
|
282
|
+
session: this.isBisectActive(result.stdout)
|
|
283
|
+
},
|
|
284
|
+
message: 'Bisect log retrieved successfully',
|
|
285
|
+
executionTime
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('LOG_ERROR', `Failed to get bisect log: ${result.stderr}`, params.action, { output: result.stdout, error: result.stderr }, ['Check if repository is valid']);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
295
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('LOG_ERROR', `Failed to get bisect log: ${errorMessage}`, params.action, { error: errorMessage }, ['Check repository state']);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Visualize bisect progress
|
|
300
|
+
*/
|
|
301
|
+
async handleVisualize(params, startTime) {
|
|
302
|
+
try {
|
|
303
|
+
let command = 'git log --oneline --graph --decorate';
|
|
304
|
+
if (params.format === 'graph') {
|
|
305
|
+
command = 'git log --graph --oneline --decorate --all';
|
|
306
|
+
}
|
|
307
|
+
else if (params.format === 'json') {
|
|
308
|
+
command = 'git log --pretty=format:"%H|%an|%ae|%ad|%s" --date=iso';
|
|
309
|
+
}
|
|
310
|
+
if (params.showAll) {
|
|
311
|
+
command += ' --all';
|
|
312
|
+
}
|
|
313
|
+
const result = await this.gitExecutor.executeGitCommand(command, [], params.projectPath);
|
|
314
|
+
if (result.success) {
|
|
315
|
+
const executionTime = Date.now() - startTime;
|
|
316
|
+
return {
|
|
317
|
+
success: true,
|
|
318
|
+
data: {
|
|
319
|
+
bisect: {
|
|
320
|
+
visualization: result.stdout,
|
|
321
|
+
format: params.format || 'text',
|
|
322
|
+
showAll: params.showAll || false,
|
|
323
|
+
session: await this.isBisectSessionActive(params.projectPath)
|
|
324
|
+
},
|
|
325
|
+
message: 'Bisect visualization generated successfully',
|
|
326
|
+
executionTime
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VISUALIZE_ERROR', `Failed to generate visualization: ${result.stderr}`, params.action, { output: result.stdout, error: result.stderr }, ['Check repository state', 'Verify Git is available']);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
336
|
+
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VISUALIZE_ERROR', `Failed to generate visualization: ${errorMessage}`, params.action, { error: errorMessage }, ['Check repository state']);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Handle bisect result (found or continue)
|
|
341
|
+
*/
|
|
342
|
+
handleBisectResult(result, params, startTime) {
|
|
343
|
+
const executionTime = Date.now() - startTime;
|
|
344
|
+
// Check if bisect found the first bad commit
|
|
345
|
+
if (result.stdout.includes('found first bad commit') || result.stdout.includes('is the first bad commit')) {
|
|
346
|
+
const firstBadCommit = this.extractFirstBadCommit(result.stdout);
|
|
347
|
+
return {
|
|
348
|
+
success: true,
|
|
349
|
+
data: {
|
|
350
|
+
bisect: {
|
|
351
|
+
status: 'found',
|
|
352
|
+
firstBadCommit,
|
|
353
|
+
session: false
|
|
354
|
+
},
|
|
355
|
+
message: `First bad commit found: ${firstBadCommit}`,
|
|
356
|
+
executionTime
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
// Check if bisect needs more information
|
|
361
|
+
if (result.stdout.includes('Bisecting:') || result.stdout.includes('testing commit')) {
|
|
362
|
+
return {
|
|
363
|
+
success: true,
|
|
364
|
+
data: {
|
|
365
|
+
bisect: {
|
|
366
|
+
status: 'testing',
|
|
367
|
+
session: true,
|
|
368
|
+
currentCommit: this.extractCurrentCommit(result.stdout),
|
|
369
|
+
remainingCommits: this.extractRemainingCommits(result.stdout)
|
|
370
|
+
},
|
|
371
|
+
message: 'Bisect in progress - test the current commit',
|
|
372
|
+
executionTime
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
// Handle other bisect states
|
|
377
|
+
return {
|
|
378
|
+
success: true,
|
|
379
|
+
data: {
|
|
380
|
+
bisect: {
|
|
381
|
+
status: 'updated',
|
|
382
|
+
session: true
|
|
383
|
+
},
|
|
384
|
+
message: 'Bisect state updated',
|
|
385
|
+
executionTime
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Check if bisect session is active
|
|
391
|
+
*/
|
|
392
|
+
async isBisectSessionActive(projectPath) {
|
|
393
|
+
try {
|
|
394
|
+
const result = await this.gitExecutor.executeGitCommand('git', ['bisect', 'log'], projectPath);
|
|
395
|
+
return result.success && this.isBisectActive(result.stdout);
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Check if bisect is active from log output
|
|
403
|
+
*/
|
|
404
|
+
isBisectActive(logOutput) {
|
|
405
|
+
return !logOutput.includes('git bisect reset');
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Extract first bad commit from bisect output
|
|
409
|
+
*/
|
|
410
|
+
extractFirstBadCommit(output) {
|
|
411
|
+
const match = output.match(/found first bad commit \[([a-f0-9]+)\]/);
|
|
412
|
+
return match ? match[1] : '';
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Extract current commit from bisect output
|
|
416
|
+
*/
|
|
417
|
+
extractCurrentCommit(output) {
|
|
418
|
+
const match = output.match(/testing commit ([a-f0-9]+)/);
|
|
419
|
+
return match ? match[1] : '';
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Extract remaining commits from bisect output
|
|
423
|
+
*/
|
|
424
|
+
extractRemainingCommits(output) {
|
|
425
|
+
const match = output.match(/Bisecting: (\d+) revisions left/);
|
|
426
|
+
return match ? parseInt(match[1]) : 0;
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Parse bisect result from output
|
|
430
|
+
*/
|
|
431
|
+
parseBisectResult(output) {
|
|
432
|
+
const lines = output.split('\n');
|
|
433
|
+
const result = {
|
|
434
|
+
firstBadCommit: null,
|
|
435
|
+
testedCommits: [],
|
|
436
|
+
totalCommits: 0
|
|
437
|
+
};
|
|
438
|
+
for (const line of lines) {
|
|
439
|
+
if (line.includes('found first bad commit')) {
|
|
440
|
+
const match = line.match(/found first bad commit \[([a-f0-9]+)\]/);
|
|
441
|
+
if (match) {
|
|
442
|
+
result.firstBadCommit = match[1];
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
else if (line.includes('Bisecting:')) {
|
|
446
|
+
const match = line.match(/Bisecting: (\d+) revisions left/);
|
|
447
|
+
if (match) {
|
|
448
|
+
result.totalCommits = parseInt(match[1]);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return result;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Parse bisect log entries
|
|
456
|
+
*/
|
|
457
|
+
parseBisectLog(logOutput) {
|
|
458
|
+
const entries = [];
|
|
459
|
+
const lines = logOutput.split('\n');
|
|
460
|
+
for (const line of lines) {
|
|
461
|
+
if (line.startsWith('git bisect start')) {
|
|
462
|
+
entries.push({
|
|
463
|
+
type: 'start',
|
|
464
|
+
command: line,
|
|
465
|
+
timestamp: new Date().toISOString()
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
else if (line.startsWith('git bisect good')) {
|
|
469
|
+
entries.push({
|
|
470
|
+
type: 'good',
|
|
471
|
+
commit: line.replace('git bisect good', '').trim(),
|
|
472
|
+
command: line,
|
|
473
|
+
timestamp: new Date().toISOString()
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
else if (line.startsWith('git bisect bad')) {
|
|
477
|
+
entries.push({
|
|
478
|
+
type: 'bad',
|
|
479
|
+
commit: line.replace('git bisect bad', '').trim(),
|
|
480
|
+
command: line,
|
|
481
|
+
timestamp: new Date().toISOString()
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
else if (line.startsWith('git bisect skip')) {
|
|
485
|
+
entries.push({
|
|
486
|
+
type: 'skip',
|
|
487
|
+
commit: line.replace('git bisect skip', '').trim(),
|
|
488
|
+
command: line,
|
|
489
|
+
timestamp: new Date().toISOString()
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
return entries;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Get tool schema for MCP registration
|
|
497
|
+
*/
|
|
498
|
+
static getToolSchema() {
|
|
499
|
+
return {
|
|
500
|
+
name: 'git-bisect',
|
|
501
|
+
description: 'Git bisect tool for automated bug finding. Supports manual and automated bisect operations to find the commit that introduced a bug.',
|
|
502
|
+
inputSchema: {
|
|
503
|
+
type: 'object',
|
|
504
|
+
properties: {
|
|
505
|
+
"action": {
|
|
506
|
+
"type": "string",
|
|
507
|
+
"enum": [
|
|
508
|
+
"start",
|
|
509
|
+
"good",
|
|
510
|
+
"bad",
|
|
511
|
+
"skip",
|
|
512
|
+
"reset",
|
|
513
|
+
"run",
|
|
514
|
+
"log",
|
|
515
|
+
"visualize"
|
|
516
|
+
],
|
|
517
|
+
"description": "The operation to perform"
|
|
518
|
+
},
|
|
519
|
+
"projectPath": {
|
|
520
|
+
"type": "string",
|
|
521
|
+
"description": "Path to the Git repository"
|
|
522
|
+
},
|
|
523
|
+
"goodCommit": {
|
|
524
|
+
"type": "string",
|
|
525
|
+
"description": "goodCommit parameter"
|
|
526
|
+
},
|
|
527
|
+
"badCommit": {
|
|
528
|
+
"type": "string",
|
|
529
|
+
"description": "badCommit parameter"
|
|
530
|
+
},
|
|
531
|
+
"testScript": {
|
|
532
|
+
"type": "string",
|
|
533
|
+
"description": "testScript parameter"
|
|
534
|
+
},
|
|
535
|
+
"testCommand": {
|
|
536
|
+
"type": "string",
|
|
537
|
+
"description": "testCommand parameter"
|
|
538
|
+
},
|
|
539
|
+
"commit": {
|
|
540
|
+
"type": "string",
|
|
541
|
+
"description": "commit parameter"
|
|
542
|
+
},
|
|
543
|
+
"format": {
|
|
544
|
+
"type": "string",
|
|
545
|
+
"description": "format parameter"
|
|
546
|
+
},
|
|
547
|
+
"showAll": {
|
|
548
|
+
"type": "string",
|
|
549
|
+
"description": "showAll parameter"
|
|
550
|
+
},
|
|
551
|
+
"noCheckout": {
|
|
552
|
+
"type": "string",
|
|
553
|
+
"description": "noCheckout parameter"
|
|
554
|
+
},
|
|
555
|
+
"firstParent": {
|
|
556
|
+
"type": "string",
|
|
557
|
+
"description": "firstParent parameter"
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
required: ['action', 'projectPath'],
|
|
561
|
+
additionalProperties: false
|
|
562
|
+
},
|
|
563
|
+
errorCodes: {
|
|
564
|
+
'VALIDATION_ERROR': 'Parameter validation failed',
|
|
565
|
+
'EXECUTION_ERROR': 'Tool execution failed'
|
|
566
|
+
}
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
exports.GitBisectTool = GitBisectTool;
|
|
571
|
+
//# sourceMappingURL=git-bisect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-bisect.js","sourceRoot":"","sources":["../../src/tools/git-bisect.ts"],"names":[],"mappings":"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"}
|
|
@@ -139,7 +139,55 @@ export declare class GitBranchesTool {
|
|
|
139
139
|
};
|
|
140
140
|
};
|
|
141
141
|
required: string[];
|
|
142
|
+
additionalProperties: boolean;
|
|
142
143
|
};
|
|
144
|
+
errorCodes: {
|
|
145
|
+
VALIDATION_ERROR: string;
|
|
146
|
+
BRANCH_EXISTS: string;
|
|
147
|
+
BRANCH_NOT_FOUND: string;
|
|
148
|
+
MERGE_CONFLICT: string;
|
|
149
|
+
DIRTY_WORKING_TREE: string;
|
|
150
|
+
NOT_A_GIT_REPOSITORY: string;
|
|
151
|
+
PERMISSION_DENIED: string;
|
|
152
|
+
};
|
|
153
|
+
warnings: {
|
|
154
|
+
delete: string;
|
|
155
|
+
force: string;
|
|
156
|
+
};
|
|
157
|
+
examples: ({
|
|
158
|
+
description: string;
|
|
159
|
+
input: {
|
|
160
|
+
action: string;
|
|
161
|
+
projectPath: string;
|
|
162
|
+
branchName?: undefined;
|
|
163
|
+
sourceBranch?: undefined;
|
|
164
|
+
checkout?: undefined;
|
|
165
|
+
baseBranch?: undefined;
|
|
166
|
+
compareBranch?: undefined;
|
|
167
|
+
};
|
|
168
|
+
} | {
|
|
169
|
+
description: string;
|
|
170
|
+
input: {
|
|
171
|
+
action: string;
|
|
172
|
+
projectPath: string;
|
|
173
|
+
branchName: string;
|
|
174
|
+
sourceBranch: string;
|
|
175
|
+
checkout: boolean;
|
|
176
|
+
baseBranch?: undefined;
|
|
177
|
+
compareBranch?: undefined;
|
|
178
|
+
};
|
|
179
|
+
} | {
|
|
180
|
+
description: string;
|
|
181
|
+
input: {
|
|
182
|
+
action: string;
|
|
183
|
+
projectPath: string;
|
|
184
|
+
baseBranch: string;
|
|
185
|
+
compareBranch: string;
|
|
186
|
+
branchName?: undefined;
|
|
187
|
+
sourceBranch?: undefined;
|
|
188
|
+
checkout?: undefined;
|
|
189
|
+
};
|
|
190
|
+
})[];
|
|
143
191
|
};
|
|
144
192
|
}
|
|
145
193
|
//# sourceMappingURL=git-branches.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-branches.d.ts","sourceRoot":"","sources":["../../src/tools/git-branches.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAsB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAyB,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAExF,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAGnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAC,CAA2B;gBAEvC,cAAc,CAAC,EAAE,cAAc;IAO3C;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAiD7D;;OAEG;YACW,qBAAqB;IAyBnC;;OAEG;YACW,sBAAsB;IA4DpC;;OAEG;YACW,kBAAkB;IAuEhC;;OAEG;YACW,kBAAkB;IAyChC;;OAEG;YACW,eAAe;IAmD7B;;OAEG;YACW,kBAAkB;IA2DhC;;OAEG;YACW,iBAAiB;IAsE/B;;OAEG;YACW,qBAAqB;IAuDnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;IACH,MAAM,CAAC,aAAa
|
|
1
|
+
{"version":3,"file":"git-branches.d.ts","sourceRoot":"","sources":["../../src/tools/git-branches.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAsB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAyB,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAExF,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAGnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAC,CAA2B;gBAEvC,cAAc,CAAC,EAAE,cAAc;IAO3C;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAiD7D;;OAEG;YACW,qBAAqB;IAyBnC;;OAEG;YACW,sBAAsB;IA4DpC;;OAEG;YACW,kBAAkB;IAuEhC;;OAEG;YACW,kBAAkB;IAyChC;;OAEG;YACW,eAAe;IAmD7B;;OAEG;YACW,kBAAkB;IA2DhC;;OAEG;YACW,iBAAiB;IAsE/B;;OAEG;YACW,qBAAqB;IAuDnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;IACH,MAAM,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GrB"}
|