@andrebuzeli/git-mcp 2.29.1 → 2.29.2

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 (57) hide show
  1. package/dist/providers/provider-factory.js +3 -3
  2. package/dist/providers/provider-factory.js.map +1 -1
  3. package/dist/server.js +7 -7
  4. package/dist/server.js.map +1 -1
  5. package/dist/tools/git-archive.d.ts +10 -10
  6. package/dist/tools/git-archive.js +22 -22
  7. package/dist/tools/git-archive.js.map +1 -1
  8. package/dist/tools/git-branches.d.ts +145 -145
  9. package/dist/tools/git-branches.js +172 -172
  10. package/dist/tools/git-branches.js.map +1 -1
  11. package/dist/tools/git-commits.d.ts +156 -156
  12. package/dist/tools/git-commits.js +188 -188
  13. package/dist/tools/git-commits.js.map +1 -1
  14. package/dist/tools/git-config.d.ts +15 -15
  15. package/dist/tools/git-config.js +45 -45
  16. package/dist/tools/git-config.js.map +1 -1
  17. package/dist/tools/git-files.d.ts +199 -199
  18. package/dist/tools/git-files.js +221 -221
  19. package/dist/tools/git-files.js.map +1 -1
  20. package/dist/tools/git-initialize.d.ts +41 -41
  21. package/dist/tools/git-initialize.js +73 -73
  22. package/dist/tools/git-initialize.js.map +1 -1
  23. package/dist/tools/git-issues.d.ts +190 -190
  24. package/dist/tools/git-issues.js +226 -226
  25. package/dist/tools/git-issues.js.map +1 -1
  26. package/dist/tools/git-pulls.d.ts +209 -209
  27. package/dist/tools/git-pulls.js +226 -226
  28. package/dist/tools/git-pulls.js.map +1 -1
  29. package/dist/tools/git-releases.d.ts +157 -157
  30. package/dist/tools/git-releases.js +171 -171
  31. package/dist/tools/git-releases.js.map +1 -1
  32. package/dist/tools/git-remote.d.ts +6 -6
  33. package/dist/tools/git-remote.js +14 -14
  34. package/dist/tools/git-remote.js.map +1 -1
  35. package/dist/tools/git-repositories.d.ts +176 -176
  36. package/dist/tools/git-repositories.js +218 -218
  37. package/dist/tools/git-repositories.js.map +1 -1
  38. package/dist/tools/git-reset.d.ts +10 -10
  39. package/dist/tools/git-reset.js +15 -15
  40. package/dist/tools/git-reset.js.map +1 -1
  41. package/dist/tools/git-revert.d.ts +11 -11
  42. package/dist/tools/git-revert.js +18 -18
  43. package/dist/tools/git-revert.js.map +1 -1
  44. package/dist/tools/git-stash.d.ts +7 -7
  45. package/dist/tools/git-stash.js +11 -11
  46. package/dist/tools/git-stash.js.map +1 -1
  47. package/dist/tools/git-sync.d.ts +13 -13
  48. package/dist/tools/git-sync.js +34 -34
  49. package/dist/tools/git-sync.js.map +1 -1
  50. package/dist/tools/git-tags.d.ts +134 -134
  51. package/dist/tools/git-tags.js +152 -152
  52. package/dist/tools/git-tags.js.map +1 -1
  53. package/dist/tools/git-upload-project.js +7 -7
  54. package/dist/tools/git-upload-project.js.map +1 -1
  55. package/dist/utils/terminal-controller.js +7 -7
  56. package/dist/utils/terminal-controller.js.map +1 -1
  57. package/package.json +2 -2
@@ -7,45 +7,45 @@ const user_detection_js_1 = require("../utils/user-detection.js");
7
7
  /**
8
8
  * Tool: branches
9
9
  *
10
- * DESCRIÇÃO:
11
- * Gerenciamento completo de branches Gitea com múltiplas ações
10
+ * DESCRIÇÃO:
11
+ * Gerenciamento completo de branches Gitea com múltiplas ações
12
12
  *
13
13
  * FUNCIONALIDADES:
14
- * - Criação de novas branches
14
+ * - Criação de novas branches
15
15
  * - Listagem e busca de branches
16
- * - Obtenção de detalhes específicos
17
- * - Exclusão de branches
16
+ * - Obtenção de detalhes específicos
17
+ * - Exclusão de branches
18
18
  * - Merge de branches
19
- * - Comparação entre branches
19
+ * - Comparação entre branches
20
20
  *
21
21
  * USO:
22
22
  * - Para gerenciar fluxo de trabalho Git
23
23
  * - Para criar branches de feature
24
24
  * - Para organizar desenvolvimento
25
- * - Para controle de versão
25
+ * - Para controle de versão
26
26
  *
27
- * RECOMENDAÇÕES:
28
- * - Use convenções de nomenclatura consistentes
27
+ * RECOMENDAÇÕES:
28
+ * - Use convenções de nomenclatura consistentes
29
29
  * - Proteja branches importantes
30
30
  * - Mantenha branches limpas
31
- * - Documente propósito das branches
31
+ * - Documente propósito das branches
32
32
  */
33
33
  /**
34
- * Schema de validação para entrada da tool branches
34
+ * Schema de validação para entrada da tool branches
35
35
  *
36
- * VALIDAÇÕES:
37
- * - action: Ação obrigatória (create, list, get, delete, merge, compare)
38
- * - Parâmetros específicos por ação
39
- * - Validação de tipos e formatos
36
+ * VALIDAÇÕES:
37
+ * - action: Ação obrigatória (create, list, get, delete, merge, compare)
38
+ * - Parâmetros específicos por ação
39
+ * - Validação de tipos e formatos
40
40
  *
41
- * RECOMENDAÇÕES:
41
+ * RECOMENDAÇÕES:
42
42
  * - Sempre valide entrada antes de usar
43
- * - Use parâmetros opcionais adequadamente
44
- * - Documente parâmetros obrigatórios
43
+ * - Use parâmetros opcionais adequadamente
44
+ * - Documente parâmetros obrigatórios
45
45
  */
46
46
  const BranchesInputSchema = zod_1.z.object({
47
47
  action: zod_1.z.enum(['create', 'list', 'get', 'delete', 'merge', 'compare']),
48
- // Parâmetros comuns
48
+ // Parâmetros comuns
49
49
  repo: zod_1.z.string(),
50
50
  projectPath: zod_1.z.string().describe('Local project path for git operations'),
51
51
  provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'), // Para create
@@ -65,11 +65,11 @@ const BranchesInputSchema = zod_1.z.object({
65
65
  head_branch: zod_1.z.string().optional(),
66
66
  });
67
67
  /**
68
- * Schema de saída padronizado
68
+ * Schema de saída padronizado
69
69
  *
70
70
  * ESTRUTURA:
71
- * - success: Status da operação
72
- * - action: Ação executada
71
+ * - success: Status da operação
72
+ * - action: Ação executada
73
73
  * - message: Mensagem descritiva
74
74
  * - data: Dados retornados (opcional)
75
75
  * - error: Detalhes do erro (opcional)
@@ -84,63 +84,63 @@ const BranchesResultSchema = zod_1.z.object({
84
84
  /**
85
85
  * Tool: branches
86
86
  *
87
- * DESCRIÇÃO:
88
- * Gerenciamento completo de branches Gitea com múltiplas ações
87
+ * DESCRIÇÃO:
88
+ * Gerenciamento completo de branches Gitea com múltiplas ações
89
89
  *
90
- * ACTIONS DISPONÍVEIS:
90
+ * ACTIONS DISPONÍVEIS:
91
91
  *
92
92
  * 1. create - Criar nova branch
93
- * Parâmetros:
94
- * - owner (obrigatório): Proprietário do repositório
95
- * - repo (obrigatório): Nome do repositório
96
- * - branch_name (obrigatório): Nome da nova branch
97
- * - from_branch (obrigatório): Branch de origem
93
+ * Parâmetros:
94
+ * - owner (obrigatório): Proprietário do repositório
95
+ * - repo (obrigatório): Nome do repositório
96
+ * - branch_name (obrigatório): Nome da nova branch
97
+ * - from_branch (obrigatório): Branch de origem
98
98
  *
99
99
  * 2. list - Listar branches
100
- * Parâmetros:
101
- * - owner (obrigatório): Proprietário do repositório
102
- * - repo (obrigatório): Nome do repositório
103
- * - page (opcional): Página da listagem (padrão: 1)
104
- * - limit (opcional): Itens por página (padrão: 30)
100
+ * Parâmetros:
101
+ * - owner (obrigatório): Proprietário do repositório
102
+ * - repo (obrigatório): Nome do repositório
103
+ * - page (opcional): Página da listagem (padrão: 1)
104
+ * - limit (opcional): Itens por página (padrão: 30)
105
105
  *
106
106
  * 3. get - Obter detalhes da branch
107
- * Parâmetros:
108
- * - owner (obrigatório): Proprietário do repositório
109
- * - repo (obrigatório): Nome do repositório
110
- * - branch (obrigatório): Nome da branch
107
+ * Parâmetros:
108
+ * - owner (obrigatório): Proprietário do repositório
109
+ * - repo (obrigatório): Nome do repositório
110
+ * - branch (obrigatório): Nome da branch
111
111
  *
112
112
  * 4. delete - Deletar branch
113
- * Parâmetros:
114
- * - owner (obrigatório): Proprietário do repositório
115
- * - repo (obrigatório): Nome do repositório
116
- * - branch (obrigatório): Nome da branch
113
+ * Parâmetros:
114
+ * - owner (obrigatório): Proprietário do repositório
115
+ * - repo (obrigatório): Nome do repositório
116
+ * - branch (obrigatório): Nome da branch
117
117
  *
118
118
  * 5. merge - Fazer merge de branches
119
- * Parâmetros:
120
- * - owner (obrigatório): Proprietário do repositório
121
- * - repo (obrigatório): Nome do repositório
122
- * - head (obrigatório): Branch de origem
123
- * - base (obrigatório): Branch de destino
124
- * - merge_method (opcional): Método de merge (padrão: merge)
119
+ * Parâmetros:
120
+ * - owner (obrigatório): Proprietário do repositório
121
+ * - repo (obrigatório): Nome do repositório
122
+ * - head (obrigatório): Branch de origem
123
+ * - base (obrigatório): Branch de destino
124
+ * - merge_method (opcional): Método de merge (padrão: merge)
125
125
  *
126
126
  * 6. compare - Comparar branches
127
- * Parâmetros:
128
- * - owner (obrigatório): Proprietário do repositório
129
- * - repo (obrigatório): Nome do repositório
130
- * - base_branch (obrigatório): Branch base
131
- * - head_branch (obrigatório): Branch de comparação
127
+ * Parâmetros:
128
+ * - owner (obrigatório): Proprietário do repositório
129
+ * - repo (obrigatório): Nome do repositório
130
+ * - base_branch (obrigatório): Branch base
131
+ * - head_branch (obrigatório): Branch de comparação
132
132
  *
133
- * RECOMENDAÇÕES DE USO:
133
+ * RECOMENDAÇÕES DE USO:
134
134
  * - Use nomes descritivos para branches
135
135
  * - Mantenha branches principais protegidas
136
- * - Faça merge regularmente
137
- * - Documente propósito das branches
138
- * - Use convenções de nomenclatura
136
+ * - Faça merge regularmente
137
+ * - Documente propósito das branches
138
+ * - Use convenções de nomenclatura
139
139
  * - Limpe branches antigas
140
140
  */
141
141
  exports.branchesTool = {
142
142
  name: 'git-branches',
143
- description: 'tool: Gerencia branches Git, criação, listagem, merge e comparação\n──────────────\naction create: cria nova branch\naction create requires: repo, branch_name, from_branch, provider, projectPath\n───────────────\naction list: lista branches do repositório\naction list requires: repo, page, limit, provider, projectPath\n───────────────\naction get: obtém detalhes de branch\naction get requires: repo, branch, provider, projectPath\n───────────────\naction delete: remove branch\naction delete requires: repo, branch, provider, projectPath\n───────────────\naction merge: integra branches\naction merge requires: repo, head, base, merge_method, provider, projectPath\n───────────────\naction compare: compara branches\naction compare requires: repo, base_branch, head_branch, provider, projectPath',
143
+ description: 'tool: Gerencia branches Git, criação, listagem, merge e comparação\n──────────────\naction create: cria nova branch\naction create requires: repo, branch_name, from_branch, provider, projectPath\n───────────────\naction list: lista branches do repositório\naction list requires: repo, page, limit, provider, projectPath\n───────────────\naction get: obtém detalhes de branch\naction get requires: repo, branch, provider, projectPath\n───────────────\naction delete: remove branch\naction delete requires: repo, branch, provider, projectPath\n───────────────\naction merge: integra branches\naction merge requires: repo, head, base, merge_method, provider, projectPath\n───────────────\naction compare: compara branches\naction compare requires: repo, base_branch, head_branch, provider, projectPath',
144
144
  inputSchema: {
145
145
  type: 'object',
146
146
  properties: {
@@ -174,40 +174,40 @@ exports.branchesTool = {
174
174
  *
175
175
  * FUNCIONALIDADE:
176
176
  * - Valida entrada usando Zod schema
177
- * - Roteia para método específico baseado na ação
177
+ * - Roteia para método específico baseado na ação
178
178
  * - Trata erros de forma uniforme
179
179
  * - Retorna resultado padronizado
180
180
  *
181
181
  * FLUXO:
182
- * 1. Validação de entrada
183
- * 2. Roteamento por ação
184
- * 3. Execução do método específico
182
+ * 1. Validação de entrada
183
+ * 2. Roteamento por ação
184
+ * 3. Execução do método específico
185
185
  * 4. Tratamento de erros
186
186
  * 5. Retorno de resultado
187
187
  *
188
188
  * TRATAMENTO DE ERROS:
189
- * - Validação: erro de schema
190
- * - Execução: erro da operação
191
- * - Roteamento: ação não suportada
189
+ * - Validação: erro de schema
190
+ * - Execução: erro da operação
191
+ * - Roteamento: ação não suportada
192
192
  *
193
- * RECOMENDAÇÕES:
193
+ * RECOMENDAÇÕES:
194
194
  * - Sempre valide entrada antes de processar
195
- * - Trate erros específicos adequadamente
195
+ * - Trate erros específicos adequadamente
196
196
  * - Log detalhes de erro para debug
197
- * - Retorne mensagens de erro úteis
197
+ * - Retorne mensagens de erro úteis
198
198
  */
199
199
  async handler(input) {
200
200
  try {
201
201
  const validatedInput = BranchesInputSchema.parse(input);
202
- // Aplicar auto-detecção apenas para owner dentro do provider especificado
202
+ // Aplicar auto-detecção apenas para owner dentro do provider especificado
203
203
  const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
204
- // Usar o provider especificado pelo usuário ou o padrão se não especificado
204
+ // Usar o provider especificado pelo usuário ou o padrão se não especificado
205
205
  let provider;
206
206
  try {
207
207
  if (processedInput.provider) {
208
208
  const requestedProvider = index_js_1.globalProviderFactory.getProvider(processedInput.provider);
209
209
  if (!requestedProvider) {
210
- console.warn(`[BRANCHES] Provider '${processedInput.provider}' não encontrado, usando padrão`);
210
+ console.warn(`[BRANCHES] Provider '${processedInput.provider}' não encontrado, usando padrão`);
211
211
  provider = index_js_1.globalProviderFactory.getDefaultProvider();
212
212
  }
213
213
  else {
@@ -218,12 +218,12 @@ exports.branchesTool = {
218
218
  provider = index_js_1.globalProviderFactory.getDefaultProvider();
219
219
  }
220
220
  if (!provider) {
221
- throw new Error('Nenhum provider disponível');
221
+ throw new Error('Nenhum provider disponível');
222
222
  }
223
223
  }
224
224
  catch (providerError) {
225
225
  console.error('[BRANCHES] Erro ao obter provider:', providerError);
226
- throw new Error(`Erro de configuração do provider: ${providerError instanceof Error ? providerError.message : 'Provider não disponível'}`);
226
+ throw new Error(`Erro de configuração do provider: ${providerError instanceof Error ? providerError.message : 'Provider não disponível'}`);
227
227
  }
228
228
  switch (processedInput.action) {
229
229
  case 'create':
@@ -239,47 +239,47 @@ exports.branchesTool = {
239
239
  case 'compare':
240
240
  return await this.compareBranches(processedInput, provider);
241
241
  default:
242
- throw new Error(`Ação não suportada: ${processedInput.action}`);
242
+ throw new Error(`Ação não suportada: ${processedInput.action}`);
243
243
  }
244
244
  }
245
245
  catch (error) {
246
246
  return {
247
247
  success: false,
248
248
  action: input.action,
249
- message: 'Erro na operação de branches',
249
+ message: 'Erro na operação de branches',
250
250
  error: error instanceof Error ? error.message : String(error)
251
251
  };
252
252
  }
253
253
  },
254
254
  /**
255
- * Cria uma nova branch no repositório
255
+ * Cria uma nova branch no repositório
256
256
  *
257
257
  * FUNCIONALIDADE:
258
- * - Valida parâmetros obrigatórios
258
+ * - Valida parâmetros obrigatórios
259
259
  * - Cria branch a partir de branch existente
260
260
  * - Retorna detalhes da nova branch
261
261
  *
262
- * PARÂMETROS OBRIGATÓRIOS:
263
- * - owner: Proprietário do repositório
264
- * - repo: Nome do repositório
262
+ * PARÂMETROS OBRIGATÓRIOS:
263
+ * - owner: Proprietário do repositório
264
+ * - repo: Nome do repositório
265
265
  * - branch_name: Nome da nova branch
266
266
  * - from_branch: Branch de origem
267
267
  *
268
- * VALIDAÇÕES:
269
- * - Todos os parâmetros obrigatórios
268
+ * VALIDAÇÕES:
269
+ * - Todos os parâmetros obrigatórios
270
270
  * - Branch de origem deve existir
271
- * - Nome da nova branch deve ser único
271
+ * - Nome da nova branch deve ser único
272
272
  *
273
- * RECOMENDAÇÕES:
273
+ * RECOMENDAÇÕES:
274
274
  * - Use nomes descritivos para branches
275
- * - Crie a partir de branches estáveis
276
- * - Documente propósito da branch
277
- * - Use convenções de nomenclatura
275
+ * - Crie a partir de branches estáveis
276
+ * - Documente propósito da branch
277
+ * - Use convenções de nomenclatura
278
278
  */
279
279
  async createBranch(params, provider) {
280
280
  try {
281
281
  if (!params.repo || !params.branch_name || !params.from_branch) {
282
- throw new Error('Repo, branch_name e from_branch são obrigatórios');
282
+ throw new Error('Repo, branch_name e from_branch são obrigatórios');
283
283
  }
284
284
  const currentUser = await provider.getCurrentUser();
285
285
  const owner = currentUser.login;
@@ -296,35 +296,35 @@ exports.branchesTool = {
296
296
  }
297
297
  },
298
298
  /**
299
- * Lista todas as branches do repositório
299
+ * Lista todas as branches do repositório
300
300
  *
301
301
  * FUNCIONALIDADE:
302
- * - Lista branches com paginação
303
- * - Retorna informações básicas de cada branch
304
- * - Suporta filtros de paginação
302
+ * - Lista branches com paginação
303
+ * - Retorna informações básicas de cada branch
304
+ * - Suporta filtros de paginação
305
305
  *
306
- * PARÂMETROS OBRIGATÓRIOS:
307
- * - owner: Proprietário do repositório
308
- * - repo: Nome do repositório
306
+ * PARÂMETROS OBRIGATÓRIOS:
307
+ * - owner: Proprietário do repositório
308
+ * - repo: Nome do repositório
309
309
  *
310
- * PARÂMETROS OPCIONAIS:
311
- * - page: Página da listagem (padrão: 1)
312
- * - limit: Itens por página (padrão: 30, máximo: 100)
310
+ * PARÂMETROS OPCIONAIS:
311
+ * - page: Página da listagem (padrão: 1)
312
+ * - limit: Itens por página (padrão: 30, máximo: 100)
313
313
  *
314
- * VALIDAÇÕES:
315
- * - e repo obrigatórios
314
+ * VALIDAÇÕES:
315
+ * - e repo obrigatórios
316
316
  * - Page deve ser >= 1
317
317
  * - Limit deve ser entre 1 e 100
318
318
  *
319
- * RECOMENDAÇÕES:
320
- * - Use paginação para repositórios grandes
321
- * - Monitore número total de branches
319
+ * RECOMENDAÇÕES:
320
+ * - Use paginação para repositórios grandes
321
+ * - Monitore número total de branches
322
322
  * - Mantenha branches organizadas
323
323
  */
324
324
  async listBranches(params, provider) {
325
325
  try {
326
326
  if (!params.repo) {
327
- throw new Error('Repo é obrigatório');
327
+ throw new Error('Repo é obrigatório');
328
328
  }
329
329
  const currentUser = await provider.getCurrentUser();
330
330
  const owner = currentUser.login;
@@ -348,31 +348,31 @@ exports.branchesTool = {
348
348
  }
349
349
  },
350
350
  /**
351
- * Obtém detalhes de uma branch específica
351
+ * Obtém detalhes de uma branch específica
352
352
  *
353
353
  * FUNCIONALIDADE:
354
- * - Retorna informações completas da branch
354
+ * - Retorna informações completas da branch
355
355
  * - Inclui commit mais recente
356
- * - Informações de proteção e permissões
356
+ * - Informações de proteção e permissões
357
357
  *
358
- * PARÂMETROS OBRIGATÓRIOS:
359
- * - owner: Proprietário do repositório
360
- * - repo: Nome do repositório
358
+ * PARÂMETROS OBRIGATÓRIOS:
359
+ * - owner: Proprietário do repositório
360
+ * - repo: Nome do repositório
361
361
  * - branch: Nome da branch
362
362
  *
363
- * VALIDAÇÕES:
364
- * - Todos os parâmetros obrigatórios
365
- * - Branch deve existir no repositório
363
+ * VALIDAÇÕES:
364
+ * - Todos os parâmetros obrigatórios
365
+ * - Branch deve existir no repositório
366
366
  *
367
- * RECOMENDAÇÕES:
368
- * - Use para obter informações detalhadas
369
- * - Verifique status de proteção
367
+ * RECOMENDAÇÕES:
368
+ * - Use para obter informações detalhadas
369
+ * - Verifique status de proteção
370
370
  * - Monitore commits recentes
371
371
  */
372
372
  async getBranch(params, provider) {
373
373
  try {
374
374
  if (!params.repo || !params.branch) {
375
- throw new Error('Repo e branch são obrigatórios');
375
+ throw new Error('Repo e branch são obrigatórios');
376
376
  }
377
377
  const currentUser = await provider.getCurrentUser();
378
378
  const owner = currentUser.login;
@@ -389,33 +389,33 @@ exports.branchesTool = {
389
389
  }
390
390
  },
391
391
  /**
392
- * Deleta uma branch do repositório
392
+ * Deleta uma branch do repositório
393
393
  *
394
394
  * FUNCIONALIDADE:
395
395
  * - Remove branch especificada
396
- * - Valida permissões de exclusão
397
- * - Confirma exclusão bem-sucedida
396
+ * - Valida permissões de exclusão
397
+ * - Confirma exclusão bem-sucedida
398
398
  *
399
- * PARÂMETROS OBRIGATÓRIOS:
400
- * - owner: Proprietário do repositório
401
- * - repo: Nome do repositório
399
+ * PARÂMETROS OBRIGATÓRIOS:
400
+ * - owner: Proprietário do repositório
401
+ * - repo: Nome do repositório
402
402
  * - branch: Nome da branch a ser deletada
403
403
  *
404
- * VALIDAÇÕES:
405
- * - Todos os parâmetros obrigatórios
404
+ * VALIDAÇÕES:
405
+ * - Todos os parâmetros obrigatórios
406
406
  * - Branch deve existir
407
- * - Usuário deve ter permissão de exclusão
407
+ * - Usuário deve ter permissão de exclusão
408
408
  *
409
- * RECOMENDAÇÕES:
409
+ * RECOMENDAÇÕES:
410
410
  * - Confirme antes de deletar
411
411
  * - Verifique se branch foi mergeada
412
- * - Mantenha backup se necessário
413
- * - Documente motivo da exclusão
412
+ * - Mantenha backup se necessário
413
+ * - Documente motivo da exclusão
414
414
  */
415
415
  async deleteBranch(params, provider) {
416
416
  try {
417
417
  if (!params.repo || !params.branch) {
418
- throw new Error('Repo e branch são obrigatórios');
418
+ throw new Error('Repo e branch são obrigatórios');
419
419
  }
420
420
  const currentUser = await provider.getCurrentUser();
421
421
  const owner = currentUser.login;
@@ -436,33 +436,33 @@ exports.branchesTool = {
436
436
  *
437
437
  * FUNCIONALIDADE:
438
438
  * - Merge de branch de origem em branch de destino
439
- * - Suporta diferentes métodos de merge
439
+ * - Suporta diferentes métodos de merge
440
440
  * - Retorna resultado do merge
441
441
  *
442
- * PARÂMETROS OBRIGATÓRIOS:
443
- * - owner: Proprietário do repositório
444
- * - repo: Nome do repositório
445
- * - head: Branch de origem (será mergeada)
446
- * - base: Branch de destino (receberá o merge)
442
+ * PARÂMETROS OBRIGATÓRIOS:
443
+ * - owner: Proprietário do repositório
444
+ * - repo: Nome do repositório
445
+ * - head: Branch de origem (será mergeada)
446
+ * - base: Branch de destino (receberá o merge)
447
447
  *
448
- * PARÂMETROS OPCIONAIS:
449
- * - merge_method: Método de merge (merge, rebase, squash)
448
+ * PARÂMETROS OPCIONAIS:
449
+ * - merge_method: Método de merge (merge, rebase, squash)
450
450
  *
451
- * VALIDAÇÕES:
452
- * - Todos os parâmetros obrigatórios
451
+ * VALIDAÇÕES:
452
+ * - Todos os parâmetros obrigatórios
453
453
  * - Branches devem existir
454
- * - Não deve haver conflitos
454
+ * - Não deve haver conflitos
455
455
  *
456
- * RECOMENDAÇÕES:
456
+ * RECOMENDAÇÕES:
457
457
  * - Resolva conflitos antes do merge
458
- * - Escolha método de merge adequado
459
- * - Teste após o merge
460
- * - Documente mudanças
458
+ * - Escolha método de merge adequado
459
+ * - Teste após o merge
460
+ * - Documente mudanças
461
461
  */
462
462
  async mergeBranches(params, provider) {
463
463
  try {
464
464
  if (!params.repo || !params.head || !params.base) {
465
- throw new Error('Repo, head e base são obrigatórios');
465
+ throw new Error('Repo, head e base são obrigatórios');
466
466
  }
467
467
  const currentUser = await provider.getCurrentUser();
468
468
  const owner = currentUser.login;
@@ -473,13 +473,13 @@ exports.branchesTool = {
473
473
  await provider.getBranch(owner, params.repo, params.base);
474
474
  }
475
475
  catch (error) {
476
- throw new Error(`Uma das branches não existe: ${params.head} ou ${params.base}`);
476
+ throw new Error(`Uma das branches não existe: ${params.head} ou ${params.base}`);
477
477
  }
478
478
  // Criar pull request para fazer o merge
479
479
  const prTitle = `Merge ${params.head} into ${params.base}`;
480
- const prBody = `Merge automático da branch '${params.head}' na branch '${params.base}'\n\nMétodo: ${mergeMethod}`;
480
+ const prBody = `Merge automático da branch '${params.head}' na branch '${params.base}'\n\nMétodo: ${mergeMethod}`;
481
481
  const pullRequest = await provider.createPullRequest(owner, params.repo, prTitle, prBody, params.head, params.base);
482
- // Se o merge_method for merge direto, fazer merge automático
482
+ // Se o merge_method for merge direto, fazer merge automático
483
483
  if (mergeMethod === 'merge') {
484
484
  try {
485
485
  await provider.mergePullRequest(owner, params.repo, pullRequest.number, 'merge');
@@ -500,7 +500,7 @@ exports.branchesTool = {
500
500
  return {
501
501
  success: true,
502
502
  action: 'merge',
503
- message: `Pull request criado para merge de '${params.head}' em '${params.base}' (merge automático falhou)`,
503
+ message: `Pull request criado para merge de '${params.head}' em '${params.base}' (merge automático falhou)`,
504
504
  data: {
505
505
  head: params.head,
506
506
  base: params.base,
@@ -533,30 +533,30 @@ exports.branchesTool = {
533
533
  * Compara duas branches
534
534
  *
535
535
  * FUNCIONALIDADE:
536
- * - Compara diferenças entre branches
536
+ * - Compara diferenças entre branches
537
537
  * - Retorna commits diferentes
538
- * - Mostra divergências
538
+ * - Mostra divergências
539
539
  *
540
- * PARÂMETROS OBRIGATÓRIOS:
541
- * - owner: Proprietário do repositório
542
- * - repo: Nome do repositório
543
- * - base_branch: Branch base para comparação
540
+ * PARÂMETROS OBRIGATÓRIOS:
541
+ * - owner: Proprietário do repositório
542
+ * - repo: Nome do repositório
543
+ * - base_branch: Branch base para comparação
544
544
  * - head_branch: Branch a ser comparada
545
545
  *
546
- * VALIDAÇÕES:
547
- * - Todos os parâmetros obrigatórios
546
+ * VALIDAÇÕES:
547
+ * - Todos os parâmetros obrigatórios
548
548
  * - Ambas as branches devem existir
549
549
  *
550
- * RECOMENDAÇÕES:
551
- * - Use para verificar divergências
550
+ * RECOMENDAÇÕES:
551
+ * - Use para verificar divergências
552
552
  * - Compare antes de fazer merge
553
553
  * - Analise commits diferentes
554
- * - Documente diferenças importantes
554
+ * - Documente diferenças importantes
555
555
  */
556
556
  async compareBranches(params, provider) {
557
557
  try {
558
558
  if (!params.repo || !params.base_branch || !params.head_branch) {
559
- throw new Error('Repo, base_branch e head_branch são obrigatórios');
559
+ throw new Error('Repo, base_branch e head_branch são obrigatórios');
560
560
  }
561
561
  const currentUser = await provider.getCurrentUser();
562
562
  const owner = currentUser.login;
@@ -566,17 +566,17 @@ exports.branchesTool = {
566
566
  const headBranch = await provider.getBranch(owner, params.repo, params.head_branch);
567
567
  }
568
568
  catch (error) {
569
- throw new Error(`Uma das branches não existe: ${params.base_branch} ou ${params.head_branch}`);
569
+ throw new Error(`Uma das branches não existe: ${params.base_branch} ou ${params.head_branch}`);
570
570
  }
571
571
  // Obter commits de cada branch
572
572
  const baseCommits = await provider.listCommits(owner, params.repo, params.base_branch, 1, 10);
573
573
  const headCommits = await provider.listCommits(owner, params.repo, params.head_branch, 1, 10);
574
- // Comparar commits (simplificado - apenas verificar se há commits diferentes)
574
+ // Comparar commits (simplificado - apenas verificar se commits diferentes)
575
575
  const baseCommitShas = baseCommits.map(c => c.sha);
576
576
  const headCommitShas = headCommits.map(c => c.sha);
577
577
  const uniqueBaseCommits = baseCommits.filter(c => !headCommitShas.includes(c.sha));
578
578
  const uniqueHeadCommits = headCommits.filter(c => !baseCommitShas.includes(c.sha));
579
- // Usar compareCommits se disponível no provider
579
+ // Usar compareCommits se disponível no provider
580
580
  let detailedComparison = null;
581
581
  try {
582
582
  if (provider.compareCommits) {
@@ -584,12 +584,12 @@ exports.branchesTool = {
584
584
  }
585
585
  }
586
586
  catch (error) {
587
- console.warn('Comparação detalhada não disponível:', error);
587
+ console.warn('Comparação detalhada não disponível:', error);
588
588
  }
589
589
  return {
590
590
  success: true,
591
591
  action: 'compare',
592
- message: `Comparação entre '${params.base_branch}' e '${params.head_branch}' realizada com sucesso`,
592
+ message: `Comparação entre '${params.base_branch}' e '${params.head_branch}' realizada com sucesso`,
593
593
  data: {
594
594
  base: {
595
595
  branch: params.base_branch,
@@ -607,14 +607,14 @@ exports.branchesTool = {
607
607
  base_ahead: uniqueBaseCommits.length,
608
608
  head_ahead: uniqueHeadCommits.length,
609
609
  divergent: uniqueBaseCommits.length > 0 && uniqueHeadCommits.length > 0,
610
- mergeable: true, // Assumir mergeable por padrão
610
+ mergeable: true, // Assumir mergeable por padrão
611
611
  detailed: detailedComparison
612
612
  },
613
613
  summary: {
614
614
  can_merge: uniqueBaseCommits.length === 0 || uniqueHeadCommits.length === 0,
615
615
  requires_merge: uniqueBaseCommits.length > 0 && uniqueHeadCommits.length > 0,
616
- recommendation: uniqueBaseCommits.length === 0 ? 'head está à frente' :
617
- uniqueHeadCommits.length === 0 ? 'base está à frente' :
616
+ recommendation: uniqueBaseCommits.length === 0 ? 'head está à frente' :
617
+ uniqueHeadCommits.length === 0 ? 'base está à frente' :
618
618
  'branches divergiram'
619
619
  }
620
620
  }
@@ -625,7 +625,7 @@ exports.branchesTool = {
625
625
  }
626
626
  },
627
627
  /**
628
- * Verifica se erro é relacionado a Git
628
+ * Verifica se erro é relacionado a Git
629
629
  */
630
630
  isGitRelatedError(errorMessage) {
631
631
  const gitKeywords = [