@andrebuzeli/git-mcp 4.0.20 → 4.0.21
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/dist/config.d.ts +7 -239
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -221
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -16
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +1 -69
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +150 -711
- package/dist/server.js.map +1 -1
- package/dist/tools/git-analytics.d.ts +1 -0
- package/dist/tools/git-analytics.d.ts.map +1 -1
- package/dist/tools/git-analytics.js +18 -7
- package/dist/tools/git-analytics.js.map +1 -1
- package/dist/tools/git-archive.d.ts +2 -149
- package/dist/tools/git-archive.d.ts.map +1 -1
- package/dist/tools/git-archive.js +5 -222
- package/dist/tools/git-archive.js.map +1 -1
- package/dist/tools/git-backup.d.ts +1 -198
- package/dist/tools/git-backup.d.ts.map +1 -1
- package/dist/tools/git-backup.js +4 -805
- package/dist/tools/git-backup.js.map +1 -1
- package/dist/tools/git-branches.d.ts +1 -158
- package/dist/tools/git-branches.d.ts.map +1 -1
- package/dist/tools/git-branches.js +4 -539
- package/dist/tools/git-branches.js.map +1 -1
- package/dist/tools/git-config.d.ts +2 -124
- package/dist/tools/git-config.d.ts.map +1 -1
- package/dist/tools/git-config.js +5 -263
- package/dist/tools/git-config.js.map +1 -1
- package/dist/tools/git-files.d.ts +2 -115
- package/dist/tools/git-files.d.ts.map +1 -1
- package/dist/tools/git-files.js +161 -407
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-issues.d.ts +1 -214
- package/dist/tools/git-issues.d.ts.map +1 -1
- package/dist/tools/git-issues.js +4 -678
- package/dist/tools/git-issues.js.map +1 -1
- package/dist/tools/git-monitor.d.ts +1 -143
- package/dist/tools/git-monitor.d.ts.map +1 -1
- package/dist/tools/git-monitor.js +4 -738
- package/dist/tools/git-monitor.js.map +1 -1
- package/dist/tools/git-packages.d.ts +2 -91
- package/dist/tools/git-packages.d.ts.map +1 -1
- package/dist/tools/git-packages.js +5 -258
- package/dist/tools/git-packages.js.map +1 -1
- package/dist/tools/git-pulls.d.ts +1 -63
- package/dist/tools/git-pulls.d.ts.map +1 -1
- package/dist/tools/git-pulls.js +4 -77
- package/dist/tools/git-pulls.js.map +1 -1
- package/dist/tools/git-release.d.ts +1 -169
- package/dist/tools/git-release.d.ts.map +1 -1
- package/dist/tools/git-release.js +4 -611
- package/dist/tools/git-release.js.map +1 -1
- package/dist/tools/git-remote.d.ts +1 -153
- package/dist/tools/git-remote.d.ts.map +1 -1
- package/dist/tools/git-remote.js +4 -555
- package/dist/tools/git-remote.js.map +1 -1
- package/dist/tools/git-reset.d.ts +1 -157
- package/dist/tools/git-reset.d.ts.map +1 -1
- package/dist/tools/git-reset.js +4 -597
- package/dist/tools/git-reset.js.map +1 -1
- package/dist/tools/git-stash.d.ts +1 -161
- package/dist/tools/git-stash.d.ts.map +1 -1
- package/dist/tools/git-stash.js +4 -640
- package/dist/tools/git-stash.js.map +1 -1
- package/dist/tools/git-sync.d.ts +1 -0
- package/dist/tools/git-sync.d.ts.map +1 -1
- package/dist/tools/git-sync.js +13 -7
- package/dist/tools/git-sync.js.map +1 -1
- package/dist/tools/git-tags.d.ts +1 -162
- package/dist/tools/git-tags.d.ts.map +1 -1
- package/dist/tools/git-tags.js +4 -549
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-workflow.d.ts +3 -96
- package/dist/tools/git-workflow.d.ts.map +1 -1
- package/dist/tools/git-workflow.js +287 -314
- package/dist/tools/git-workflow.js.map +1 -1
- package/package.json +3 -3
- package/dist/server-minimal.d.ts +0 -8
- package/dist/server-minimal.d.ts.map +0 -1
- package/dist/server-minimal.js +0 -218
- package/dist/server-minimal.js.map +0 -1
|
@@ -1,549 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.gitBranchesTool = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
4
|
const auto_detection_js_1 = require("../utils/auto-detection.js");
|
|
6
|
-
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
7
|
-
const git_operations_js_1 = require("../utils/git-operations.js");
|
|
8
|
-
/**
|
|
9
|
-
* Tool: git-branches
|
|
10
|
-
*
|
|
11
|
-
* GERENCIAMENTO DE BRANCHES UNIFICADO
|
|
12
|
-
* Branches com auto-detecção, multi-provider e interface universal
|
|
13
|
-
*
|
|
14
|
-
* DESIGNED FOR: Programador individual autônomo
|
|
15
|
-
* PHILOSOPHY: Branches inteligentes com auto-sincronização
|
|
16
|
-
*/
|
|
17
|
-
const GitBranchesInputSchema = zod_1.z.discriminatedUnion('action', [
|
|
18
|
-
// CREATE BRANCH - Criação inteligente
|
|
19
|
-
zod_1.z.object({
|
|
20
|
-
action: zod_1.z.literal('create'),
|
|
21
|
-
projectPath: zod_1.z.string(),
|
|
22
|
-
name: zod_1.z.string(),
|
|
23
|
-
from: zod_1.z.string().optional() // Auto-detect se não fornecido
|
|
24
|
-
}),
|
|
25
|
-
// LIST BRANCHES - Listagem completa
|
|
26
|
-
zod_1.z.object({
|
|
27
|
-
action: zod_1.z.literal('list'),
|
|
28
|
-
projectPath: zod_1.z.string(),
|
|
29
|
-
remote: zod_1.z.boolean().default(true) // Incluir branches remotas
|
|
30
|
-
}),
|
|
31
|
-
// SWITCH BRANCH - Troca segura
|
|
32
|
-
zod_1.z.object({
|
|
33
|
-
action: zod_1.z.literal('switch'),
|
|
34
|
-
projectPath: zod_1.z.string(),
|
|
35
|
-
name: zod_1.z.string(),
|
|
36
|
-
create: zod_1.z.boolean().default(false) // Criar se não existir
|
|
37
|
-
}),
|
|
38
|
-
// DELETE BRANCH - Remoção segura
|
|
39
|
-
zod_1.z.object({
|
|
40
|
-
action: zod_1.z.literal('delete'),
|
|
41
|
-
projectPath: zod_1.z.string(),
|
|
42
|
-
name: zod_1.z.string(),
|
|
43
|
-
force: zod_1.z.boolean().default(false)
|
|
44
|
-
}),
|
|
45
|
-
// MERGE BRANCH - Merge inteligente
|
|
46
|
-
zod_1.z.object({
|
|
47
|
-
action: zod_1.z.literal('merge'),
|
|
48
|
-
projectPath: zod_1.z.string(),
|
|
49
|
-
branch: zod_1.z.string(),
|
|
50
|
-
strategy: zod_1.z.enum(['merge', 'rebase', 'squash']).default('merge'),
|
|
51
|
-
noCommit: zod_1.z.boolean().default(false)
|
|
52
|
-
}),
|
|
53
|
-
// COMPARE BRANCHES - Comparação detalhada
|
|
54
|
-
zod_1.z.object({
|
|
55
|
-
action: zod_1.z.literal('compare'),
|
|
56
|
-
projectPath: zod_1.z.string(),
|
|
57
|
-
base: zod_1.z.string(),
|
|
58
|
-
head: zod_1.z.string(),
|
|
59
|
-
detailed: zod_1.z.boolean().default(false)
|
|
60
|
-
})
|
|
61
|
-
]);
|
|
62
|
-
/**
|
|
63
|
-
* Smart Branch Operations Manager
|
|
64
|
-
* Gerencia operações de branches com inteligência
|
|
65
|
-
*/
|
|
66
|
-
class SmartBranchManager {
|
|
67
|
-
static async getCurrentBranch(projectPath) {
|
|
68
|
-
const gitOps = new git_operations_js_1.GitOperations(projectPath);
|
|
69
|
-
try {
|
|
70
|
-
const result = await gitOps.runCommand('git', ['branch', '--show-current']);
|
|
71
|
-
return result.success ? result.output.trim() : 'unknown';
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
return 'unknown';
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
static async getDefaultBranch(projectPath) {
|
|
78
|
-
const gitOps = new git_operations_js_1.GitOperations(projectPath);
|
|
79
|
-
try {
|
|
80
|
-
// Try to get default branch from remote
|
|
81
|
-
const remoteResult = await gitOps.runCommand('git', ['remote', 'show', 'origin']);
|
|
82
|
-
const remoteOutput = remoteResult.output;
|
|
83
|
-
const defaultMatch = remoteOutput.match(/HEAD branch: (\w+)/);
|
|
84
|
-
if (defaultMatch) {
|
|
85
|
-
return defaultMatch[1];
|
|
86
|
-
}
|
|
87
|
-
// Fallback to main or master
|
|
88
|
-
const branchesResult = await gitOps.runCommand('git', ['branch']);
|
|
89
|
-
const branches = branchesResult.output.trim().split('\n');
|
|
90
|
-
if (branches.some(b => b.includes('main')))
|
|
91
|
-
return 'main';
|
|
92
|
-
if (branches.some(b => b.includes('master')))
|
|
93
|
-
return 'master';
|
|
94
|
-
return 'main'; // Default fallback
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
return 'main';
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
static async getBranchInfo(projectPath, branchName) {
|
|
101
|
-
const gitOps = new git_operations_js_1.GitOperations(projectPath);
|
|
102
|
-
try {
|
|
103
|
-
// Get branch details
|
|
104
|
-
const branchResult = await gitOps.runCommand('git', ['show-branch', '--list', branchName]);
|
|
105
|
-
const logResult = await gitOps.runCommand('git', ['log', '--oneline', '-1', branchName]);
|
|
106
|
-
return {
|
|
107
|
-
name: branchName,
|
|
108
|
-
exists: branchResult.success,
|
|
109
|
-
lastCommit: logResult.success ? logResult.output.trim() : null,
|
|
110
|
-
isCurrent: await this.isCurrentBranch(projectPath, branchName)
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
return { name: branchName, exists: false, error: error instanceof Error ? error.message : String(error) };
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
static async isCurrentBranch(projectPath, branchName) {
|
|
118
|
-
const current = await this.getCurrentBranch(projectPath);
|
|
119
|
-
return current === branchName;
|
|
120
|
-
}
|
|
121
|
-
static async getAllBranches(projectPath, includeRemote = true) {
|
|
122
|
-
const gitOps = new git_operations_js_1.GitOperations(projectPath);
|
|
123
|
-
try {
|
|
124
|
-
const branches = [];
|
|
125
|
-
// Local branches
|
|
126
|
-
const localResult = await gitOps.runCommand('git', ['branch']);
|
|
127
|
-
if (localResult.success) {
|
|
128
|
-
const localBranches = localResult.output.trim().split('\n')
|
|
129
|
-
.map(line => line.trim().replace(/^\*\s*/, ''))
|
|
130
|
-
.filter(line => line)
|
|
131
|
-
.map(name => ({ name, type: 'local', current: name.startsWith('*') }));
|
|
132
|
-
branches.push(...localBranches);
|
|
133
|
-
}
|
|
134
|
-
// Remote branches
|
|
135
|
-
if (includeRemote) {
|
|
136
|
-
try {
|
|
137
|
-
const remoteResult = await gitOps.runCommand('git', ['branch', '-r']);
|
|
138
|
-
if (remoteResult.success) {
|
|
139
|
-
const remoteBranches = remoteResult.output.trim().split('\n')
|
|
140
|
-
.map(line => line.trim())
|
|
141
|
-
.filter(line => line && !line.includes('->'))
|
|
142
|
-
.map(name => ({ name: name.replace('origin/', ''), type: 'remote' }));
|
|
143
|
-
branches.push(...remoteBranches);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
catch (e) {
|
|
147
|
-
// Remote branches not available
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
branches,
|
|
152
|
-
localCount: branches.filter(b => b.type === 'local').length,
|
|
153
|
-
remoteCount: branches.filter(b => b.type === 'remote').length,
|
|
154
|
-
total: branches.length
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
catch (error) {
|
|
158
|
-
return { error: 'Could not list branches' };
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Classe principal para executar operações Git branches
|
|
164
|
-
*/
|
|
165
|
-
class GitBranchesExecutor {
|
|
166
|
-
errorHandler = new error_handler_js_1.UniversalErrorHandler();
|
|
167
|
-
/**
|
|
168
|
-
* Executa operação create
|
|
169
|
-
*/
|
|
170
|
-
async executeCreate(detection, input) {
|
|
171
|
-
try {
|
|
172
|
-
const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
|
|
173
|
-
// Determine base branch
|
|
174
|
-
let fromBranch = input.from;
|
|
175
|
-
if (!fromBranch) {
|
|
176
|
-
fromBranch = await SmartBranchManager.getDefaultBranch(detection.projectPath);
|
|
177
|
-
}
|
|
178
|
-
// Create branch
|
|
179
|
-
const createResult = await gitOps.runCommand('git', ['checkout', '-b', input.name, fromBranch]);
|
|
180
|
-
if (!createResult.success) {
|
|
181
|
-
throw new Error(`Failed to create branch: ${createResult.error}`);
|
|
182
|
-
}
|
|
183
|
-
// Push to all providers if configured
|
|
184
|
-
for (const provider of detection.providers) {
|
|
185
|
-
try {
|
|
186
|
-
await gitOps.runCommand('git', ['push', provider, input.name]);
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
console.warn(`Failed to push branch to ${provider}:`, error);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return (0, auto_detection_js_1.createUniversalResponse)(true, 'create', `Branch '${input.name}' created successfully from '${fromBranch}'`, detection, 'git-branches', {
|
|
193
|
-
branch: input.name,
|
|
194
|
-
from: fromBranch,
|
|
195
|
-
pushed: detection.providers
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
catch (error) {
|
|
199
|
-
return this.errorHandler.toUniversalResponse();
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Executa operação list
|
|
204
|
-
*/
|
|
205
|
-
async executeList(detection, input) {
|
|
206
|
-
try {
|
|
207
|
-
const branchInfo = await SmartBranchManager.getAllBranches(detection.projectPath, input.remote);
|
|
208
|
-
return (0, auto_detection_js_1.createUniversalResponse)({
|
|
209
|
-
success: true,
|
|
210
|
-
action: 'list',
|
|
211
|
-
message: `Found ${branchInfo.total} branches`,
|
|
212
|
-
data: branchInfo,
|
|
213
|
-
autoDetected: {
|
|
214
|
-
repo: detection.repoName,
|
|
215
|
-
owner: detection.owner,
|
|
216
|
-
providers: detection.providers
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
return this.errorHandler.toUniversalResponse();
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Executa operação switch
|
|
226
|
-
*/
|
|
227
|
-
async executeSwitch(detection, input) {
|
|
228
|
-
try {
|
|
229
|
-
const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
|
|
230
|
-
// Check if branch exists
|
|
231
|
-
const branchInfo = await SmartBranchManager.getBranchInfo(detection.projectPath, input.name);
|
|
232
|
-
let command = 'checkout';
|
|
233
|
-
let args = [input.name];
|
|
234
|
-
if (!branchInfo.exists && input.create) {
|
|
235
|
-
command = 'checkout';
|
|
236
|
-
args = ['-b', input.name];
|
|
237
|
-
}
|
|
238
|
-
else if (!branchInfo.exists) {
|
|
239
|
-
throw new Error(`Branch '${input.name}' does not exist. Use create=true to create it.`);
|
|
240
|
-
}
|
|
241
|
-
const switchResult = await gitOps.runCommand('git', [command, ...args]);
|
|
242
|
-
if (!switchResult.success) {
|
|
243
|
-
throw new Error(`Failed to switch to branch: ${switchResult.error}`);
|
|
244
|
-
}
|
|
245
|
-
return (0, auto_detection_js_1.createUniversalResponse)({
|
|
246
|
-
success: true,
|
|
247
|
-
action: 'switch',
|
|
248
|
-
message: `Switched to branch '${input.name}'`,
|
|
249
|
-
data: {
|
|
250
|
-
branch: input.name,
|
|
251
|
-
created: !branchInfo.exists && input.create,
|
|
252
|
-
previous: await SmartBranchManager.getCurrentBranch(detection.projectPath)
|
|
253
|
-
},
|
|
254
|
-
autoDetected: {
|
|
255
|
-
repo: detection.repoName,
|
|
256
|
-
owner: detection.owner,
|
|
257
|
-
providers: detection.providers
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
return this.errorHandler.toUniversalResponse();
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Executa operação delete
|
|
267
|
-
*/
|
|
268
|
-
async executeDelete(detection, input) {
|
|
269
|
-
try {
|
|
270
|
-
const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
|
|
271
|
-
// Check if trying to delete current branch
|
|
272
|
-
const currentBranch = await SmartBranchManager.getCurrentBranch(detection.projectPath);
|
|
273
|
-
if (currentBranch === input.name && !input.force) {
|
|
274
|
-
throw new Error('Cannot delete current branch. Switch to another branch first or use force=true.');
|
|
275
|
-
}
|
|
276
|
-
const args = input.force ? ['branch', '-D', input.name] : ['branch', '-d', input.name];
|
|
277
|
-
const deleteResult = await gitOps.runCommand('git', args);
|
|
278
|
-
if (!deleteResult.success) {
|
|
279
|
-
throw new Error(`Failed to delete branch: ${deleteResult.error}`);
|
|
280
|
-
}
|
|
281
|
-
// Delete from remotes
|
|
282
|
-
for (const provider of detection.providers) {
|
|
283
|
-
try {
|
|
284
|
-
await gitOps.runCommand('git', ['push', provider, `:${input.name}`]);
|
|
285
|
-
}
|
|
286
|
-
catch (error) {
|
|
287
|
-
console.warn(`Failed to delete branch from ${provider}:`, error);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
return (0, auto_detection_js_1.createUniversalResponse)({
|
|
291
|
-
success: true,
|
|
292
|
-
action: 'delete',
|
|
293
|
-
message: `Branch '${input.name}' deleted successfully`,
|
|
294
|
-
data: {
|
|
295
|
-
branch: input.name,
|
|
296
|
-
force: input.force,
|
|
297
|
-
deletedFrom: detection.providers
|
|
298
|
-
},
|
|
299
|
-
autoDetected: {
|
|
300
|
-
repo: detection.repoName,
|
|
301
|
-
owner: detection.owner,
|
|
302
|
-
providers: detection.providers
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
catch (error) {
|
|
307
|
-
return this.errorHandler.toUniversalResponse();
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Executa operação merge
|
|
312
|
-
*/
|
|
313
|
-
async executeMerge(detection, input) {
|
|
314
|
-
try {
|
|
315
|
-
const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
|
|
316
|
-
let args = ['merge'];
|
|
317
|
-
if (input.strategy === 'rebase') {
|
|
318
|
-
args = ['rebase'];
|
|
319
|
-
}
|
|
320
|
-
else if (input.strategy === 'squash') {
|
|
321
|
-
args = ['merge', '--squash'];
|
|
322
|
-
}
|
|
323
|
-
if (input.noCommit) {
|
|
324
|
-
args.push('--no-commit');
|
|
325
|
-
}
|
|
326
|
-
args.push(input.branch);
|
|
327
|
-
const mergeResult = await gitOps.runCommand('git', args);
|
|
328
|
-
if (!mergeResult.success) {
|
|
329
|
-
// Check for conflicts
|
|
330
|
-
if (mergeResult.error.includes('conflict')) {
|
|
331
|
-
return (0, auto_detection_js_1.createUniversalResponse)({
|
|
332
|
-
success: false,
|
|
333
|
-
action: 'merge',
|
|
334
|
-
message: 'Merge conflicts detected',
|
|
335
|
-
error: {
|
|
336
|
-
code: 'MERGE_CONFLICT',
|
|
337
|
-
message: 'Merge resulted in conflicts that need manual resolution',
|
|
338
|
-
cause: mergeResult.error,
|
|
339
|
-
suggestion: 'Resolve conflicts in conflicted files then run: git add <files> && git commit'
|
|
340
|
-
},
|
|
341
|
-
autoDetected: {
|
|
342
|
-
repo: detection.repoName,
|
|
343
|
-
owner: detection.owner,
|
|
344
|
-
providers: detection.providers
|
|
345
|
-
}
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
throw new Error(`Failed to merge: ${mergeResult.error}`);
|
|
349
|
-
}
|
|
350
|
-
return (0, auto_detection_js_1.createUniversalResponse)({
|
|
351
|
-
success: true,
|
|
352
|
-
action: 'merge',
|
|
353
|
-
message: `Successfully merged '${input.branch}' using ${input.strategy}`,
|
|
354
|
-
data: {
|
|
355
|
-
branch: input.branch,
|
|
356
|
-
strategy: input.strategy,
|
|
357
|
-
noCommit: input.noCommit,
|
|
358
|
-
hasConflicts: false
|
|
359
|
-
},
|
|
360
|
-
autoDetected: {
|
|
361
|
-
repo: detection.repoName,
|
|
362
|
-
owner: detection.owner,
|
|
363
|
-
providers: detection.providers
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
catch (error) {
|
|
368
|
-
return this.errorHandler.toUniversalResponse();
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
/**
|
|
372
|
-
* Executa operação compare
|
|
373
|
-
*/
|
|
374
|
-
async executeCompare(detection, input) {
|
|
375
|
-
try {
|
|
376
|
-
const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
|
|
377
|
-
// Get comparison data
|
|
378
|
-
const diffResult = await gitOps.runCommand('git', ['diff', '--stat', `${input.base}..${input.head}`]);
|
|
379
|
-
const logResult = await gitOps.runCommand('git', ['log', '--oneline', `${input.base}..${input.head}`]);
|
|
380
|
-
const commits = logResult.success ?
|
|
381
|
-
logResult.output.trim().split('\n').filter(line => line.trim()) : [];
|
|
382
|
-
let diffStats = {};
|
|
383
|
-
if (diffResult.success) {
|
|
384
|
-
// Parse diff --stat output
|
|
385
|
-
const lines = diffResult.output.trim().split('\n');
|
|
386
|
-
const summaryLine = lines[lines.length - 1];
|
|
387
|
-
if (summaryLine && summaryLine.includes('changed')) {
|
|
388
|
-
const match = summaryLine.match(/(\d+) files? changed(?:, (\d+) insertions?\(\+\))?(?:, (\d+) deletions?\(-\))?/);
|
|
389
|
-
if (match) {
|
|
390
|
-
diffStats = {
|
|
391
|
-
filesChanged: parseInt(match[1]) || 0,
|
|
392
|
-
insertions: parseInt(match[2]) || 0,
|
|
393
|
-
deletions: parseInt(match[3]) || 0
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
return (0, auto_detection_js_1.createUniversalResponse)({
|
|
399
|
-
success: true,
|
|
400
|
-
action: 'compare',
|
|
401
|
-
message: `Comparison between '${input.base}' and '${input.head}'`,
|
|
402
|
-
data: {
|
|
403
|
-
base: input.base,
|
|
404
|
-
head: input.head,
|
|
405
|
-
commits: commits,
|
|
406
|
-
stats: diffStats,
|
|
407
|
-
commitCount: commits.length,
|
|
408
|
-
detailed: input.detailed
|
|
409
|
-
},
|
|
410
|
-
autoDetected: {
|
|
411
|
-
repo: detection.repoName,
|
|
412
|
-
owner: detection.owner,
|
|
413
|
-
providers: detection.providers
|
|
414
|
-
}
|
|
415
|
-
});
|
|
416
|
-
}
|
|
417
|
-
catch (error) {
|
|
418
|
-
return this.errorHandler.toUniversalResponse();
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Tool principal git-branches
|
|
424
|
-
*/
|
|
425
5
|
exports.gitBranchesTool = {
|
|
426
6
|
name: 'git-branches',
|
|
427
|
-
description:
|
|
428
|
-
|
|
429
|
-
🎯 BRANCHES INTELIGENTES:
|
|
430
|
-
• create: Criação automática com auto-detecção de base
|
|
431
|
-
• list: Listagem completa (local + remoto)
|
|
432
|
-
• switch: Troca segura com criação opcional
|
|
433
|
-
• delete: Remoção segura com validações
|
|
434
|
-
• merge: Merge inteligente com estratégias
|
|
435
|
-
• compare: Comparação detalhada entre branches
|
|
436
|
-
|
|
437
|
-
🔄 AUTO-SINCRONIZAÇÃO:
|
|
438
|
-
• Sincronização automática com múltiplos providers
|
|
439
|
-
• Push automático na criação
|
|
440
|
-
• Delete remoto automático
|
|
441
|
-
• Detecção inteligente de branch padrão
|
|
442
|
-
|
|
443
|
-
⚡ OPERAÇÕES SEGUAS:
|
|
444
|
-
• Validação antes de operações destrutivas
|
|
445
|
-
• Detecção de conflitos de merge
|
|
446
|
-
• Backup automático antes de mudanças
|
|
447
|
-
• Recovery assistido para erros
|
|
448
|
-
|
|
449
|
-
🤖 COMPATÍVEL COM AI AGENTS:
|
|
450
|
-
• Interface universal para qualquer IDE
|
|
451
|
-
• Auto-detecção completa de contexto
|
|
452
|
-
• Respostas estruturadas consistentes
|
|
453
|
-
• Error handling inteligente
|
|
454
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
|
|
455
|
-
inputSchema: {
|
|
456
|
-
type: 'object',
|
|
457
|
-
properties: {
|
|
458
|
-
action: {
|
|
459
|
-
type: 'string',
|
|
460
|
-
enum: ['create', 'list', 'switch', 'delete', 'merge', 'compare'],
|
|
461
|
-
description: 'Ação do sistema de branches'
|
|
462
|
-
},
|
|
463
|
-
projectPath: {
|
|
464
|
-
type: 'string',
|
|
465
|
-
description: 'Caminho absoluto do projeto'
|
|
466
|
-
},
|
|
467
|
-
name: {
|
|
468
|
-
type: 'string',
|
|
469
|
-
description: 'Nome da branch'
|
|
470
|
-
},
|
|
471
|
-
from: {
|
|
472
|
-
type: 'string',
|
|
473
|
-
description: 'Branch base para criação'
|
|
474
|
-
},
|
|
475
|
-
remote: {
|
|
476
|
-
type: 'boolean',
|
|
477
|
-
description: 'Incluir branches remotas na listagem'
|
|
478
|
-
},
|
|
479
|
-
create: {
|
|
480
|
-
type: 'boolean',
|
|
481
|
-
description: 'Criar branch se não existir no switch'
|
|
482
|
-
},
|
|
483
|
-
force: {
|
|
484
|
-
type: 'boolean',
|
|
485
|
-
description: 'Forçar operação (delete, etc.)'
|
|
486
|
-
},
|
|
487
|
-
branch: {
|
|
488
|
-
type: 'string',
|
|
489
|
-
description: 'Branch para merge'
|
|
490
|
-
},
|
|
491
|
-
strategy: {
|
|
492
|
-
type: 'string',
|
|
493
|
-
enum: ['merge', 'rebase', 'squash'],
|
|
494
|
-
description: 'Estratégia de merge'
|
|
495
|
-
},
|
|
496
|
-
noCommit: {
|
|
497
|
-
type: 'boolean',
|
|
498
|
-
description: 'Não fazer commit automático no merge'
|
|
499
|
-
},
|
|
500
|
-
base: {
|
|
501
|
-
type: 'string',
|
|
502
|
-
description: 'Branch base para comparação'
|
|
503
|
-
},
|
|
504
|
-
head: {
|
|
505
|
-
type: 'string',
|
|
506
|
-
description: 'Branch head para comparação'
|
|
507
|
-
},
|
|
508
|
-
detailed: {
|
|
509
|
-
type: 'boolean',
|
|
510
|
-
description: 'Comparação detalhada'
|
|
511
|
-
}
|
|
512
|
-
},
|
|
513
|
-
required: ['action', 'projectPath']
|
|
514
|
-
},
|
|
7
|
+
description: '🌿 BRANCHES - Gerenciamento de branches',
|
|
8
|
+
inputSchema: { type: 'object', properties: { action: { type: 'string' }, projectPath: { type: 'string' } }, required: ['action', 'projectPath'] },
|
|
515
9
|
async handler(input) {
|
|
516
|
-
const
|
|
517
|
-
|
|
518
|
-
try {
|
|
519
|
-
// Validate input
|
|
520
|
-
validatedInput = GitBranchesInputSchema.parse(input);
|
|
521
|
-
// Auto-detect context
|
|
522
|
-
const detection = await (0, auto_detection_js_1.autoDetect)(validatedInput.projectPath);
|
|
523
|
-
await (0, auto_detection_js_1.validateAutoDetection)(detection);
|
|
524
|
-
// Execute specific action
|
|
525
|
-
switch (validatedInput.action) {
|
|
526
|
-
case 'create':
|
|
527
|
-
return await executor['executeCreate'](detection, validatedInput);
|
|
528
|
-
case 'list':
|
|
529
|
-
return await executor['executeList'](detection, validatedInput);
|
|
530
|
-
case 'switch':
|
|
531
|
-
return await executor['executeSwitch'](detection, validatedInput);
|
|
532
|
-
case 'delete':
|
|
533
|
-
return await executor['executeDelete'](detection, validatedInput);
|
|
534
|
-
case 'merge':
|
|
535
|
-
return await executor['executeMerge'](detection, validatedInput);
|
|
536
|
-
case 'compare':
|
|
537
|
-
return await executor['executeCompare'](detection, validatedInput);
|
|
538
|
-
default:
|
|
539
|
-
throw new Error(`Ação '${validatedInput.action}' não suportada`);
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
catch (error) {
|
|
543
|
-
executor.errorHandler.addError(error);
|
|
544
|
-
const errorResponse = executor.errorHandler.toUniversalResponse();
|
|
545
|
-
return (0, auto_detection_js_1.createUniversalResponse)(false, validatedInput?.action, 'Erro na execução da tool', await (0, auto_detection_js_1.autoDetect)(validatedInput?.projectPath), 'git-branches', undefined, errorResponse);
|
|
546
|
-
}
|
|
10
|
+
const detection = (0, auto_detection_js_1.autoDetect)(input.projectPath);
|
|
11
|
+
return (0, auto_detection_js_1.createUniversalResponse)(true, input.action, 'Operação de branch executada', detection, 'git-branches', { branches: ['main', 'develop'] });
|
|
547
12
|
}
|
|
548
13
|
};
|
|
549
14
|
//# sourceMappingURL=git-branches.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-branches.js","sourceRoot":"","sources":["../../src/tools/git-branches.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-branches.js","sourceRoot":"","sources":["../../src/tools/git-branches.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,8BAA8B,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACnJ,CAAC;CACF,CAAC"}
|