@andrebuzeli/git-mcp 2.29.0 → 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 +9 -9
  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: files
9
9
  *
10
- * DESCRIÇÃO:
11
- * Gerenciamento completo de arquivos e diretórios Gitea com múltiplas ações
10
+ * DESCRIÇÃO:
11
+ * Gerenciamento completo de arquivos e diretórios Gitea com múltiplas ações
12
12
  *
13
13
  * FUNCIONALIDADES:
14
- * - Criação de arquivos e diretórios
15
- * - Leitura e listagem de conteúdo
16
- * - Atualização de arquivos existentes
17
- * - Exclusão de arquivos e diretórios
18
- * - Busca por conteúdo e nome
19
- * - Controle de versão de arquivos
14
+ * - Criação de arquivos e diretórios
15
+ * - Leitura e listagem de conteúdo
16
+ * - Atualização de arquivos existentes
17
+ * - Exclusão de arquivos e diretórios
18
+ * - Busca por conteúdo e nome
19
+ * - Controle de versão de arquivos
20
20
  *
21
21
  * USO:
22
22
  * - Para gerenciar arquivos de projeto
23
- * - Para automatizar criação de arquivos
24
- * - Para backup e migração de conteúdo
25
- * - Para sincronização de arquivos
23
+ * - Para automatizar criação de arquivos
24
+ * - Para backup e migração de conteúdo
25
+ * - Para sincronização de arquivos
26
26
  *
27
- * RECOMENDAÇÕES:
27
+ * RECOMENDAÇÕES:
28
28
  * - Use mensagens de commit descritivas
29
- * - Mantenha estrutura de diretórios organizada
30
- * - Valide conteúdo antes de enviar
31
- * - Use branches para mudanças grandes
29
+ * - Mantenha estrutura de diretórios organizada
30
+ * - Valide conteúdo antes de enviar
31
+ * - Use branches para mudanças grandes
32
32
  */
33
33
  /**
34
- * Schema de validação para entrada da tool files
34
+ * Schema de validação para entrada da tool files
35
35
  *
36
- * VALIDAÇÕES:
37
- * - action: Ação obrigatória (get, create, update, delete, list, search)
38
- * - Parâmetros específicos por ação
39
- * - Validação de tipos e formatos
36
+ * VALIDAÇÕES:
37
+ * - action: Ação obrigatória (get, create, update, delete, list, search)
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 FilesInputSchema = zod_1.z.object({
47
47
  action: zod_1.z.enum(['get', 'create', 'update', 'delete', 'list', 'search', 'upload-project']),
48
- // Parâmetros comuns
48
+ // Parâmetros comuns
49
49
  // owner: obtido automaticamente do provider,
50
50
  repo: zod_1.z.string(),
51
51
  path: zod_1.z.string().optional(),
@@ -60,16 +60,16 @@ const FilesInputSchema = zod_1.z.object({
60
60
  ref: zod_1.z.string().optional(),
61
61
  // Para search
62
62
  query: zod_1.z.string().optional(),
63
- // Para list com paginação
63
+ // Para list com paginação
64
64
  page: zod_1.z.number().min(1).optional(),
65
65
  limit: zod_1.z.number().min(1).max(100).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,73 +84,73 @@ const FilesResultSchema = zod_1.z.object({
84
84
  /**
85
85
  * Tool: files
86
86
  *
87
- * DESCRIÇÃO:
88
- * Gerenciamento completo de arquivos e diretórios Gitea com múltiplas ações
87
+ * DESCRIÇÃO:
88
+ * Gerenciamento completo de arquivos e diretórios Gitea com múltiplas ações
89
89
  *
90
- * ACTIONS DISPONÍVEIS:
90
+ * ACTIONS DISPONÍVEIS:
91
91
  *
92
- * 1. get - Obter conteúdo de arquivo
93
- * Parâmetros:
94
- * - owner (obrigatório): Proprietário do repositório
95
- * - repo (obrigatório): Nome do repositório
96
- * - path (obrigatório): Caminho do arquivo
97
- * - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
92
+ * 1. get - Obter conteúdo de arquivo
93
+ * Parâmetros:
94
+ * - owner (obrigatório): Proprietário do repositório
95
+ * - repo (obrigatório): Nome do repositório
96
+ * - path (obrigatório): Caminho do arquivo
97
+ * - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
98
98
  *
99
99
  * 2. create - Criar novo arquivo
100
- * Parâmetros:
101
- * - owner (obrigatório): Proprietário do repositório
102
- * - repo (obrigatório): Nome do repositório
103
- * - path (obrigatório): Caminho do arquivo
104
- * - content (obrigatório): Conteúdo do arquivo
105
- * - message (obrigatório): Mensagem de commit
106
- * - branch (opcional): Branch de destino (padrão: branch padrão)
100
+ * Parâmetros:
101
+ * - owner (obrigatório): Proprietário do repositório
102
+ * - repo (obrigatório): Nome do repositório
103
+ * - path (obrigatório): Caminho do arquivo
104
+ * - content (obrigatório): Conteúdo do arquivo
105
+ * - message (obrigatório): Mensagem de commit
106
+ * - branch (opcional): Branch de destino (padrão: branch padrão)
107
107
  *
108
108
  * 3. update - Atualizar arquivo existente
109
- * Parâmetros:
110
- * - owner (obrigatório): Proprietário do repositório
111
- * - repo (obrigatório): Nome do repositório
112
- * - path (obrigatório): Caminho do arquivo
113
- * - content (obrigatório): Novo conteúdo
114
- * - message (obrigatório): Mensagem de commit
115
- * - sha (obrigatório): SHA do arquivo atual
116
- * - branch (opcional): Branch de destino (padrão: branch padrão)
109
+ * Parâmetros:
110
+ * - owner (obrigatório): Proprietário do repositório
111
+ * - repo (obrigatório): Nome do repositório
112
+ * - path (obrigatório): Caminho do arquivo
113
+ * - content (obrigatório): Novo conteúdo
114
+ * - message (obrigatório): Mensagem de commit
115
+ * - sha (obrigatório): SHA do arquivo atual
116
+ * - branch (opcional): Branch de destino (padrão: branch padrão)
117
117
  *
118
118
  * 4. delete - Deletar arquivo
119
- * Parâmetros:
120
- * - owner (obrigatório): Proprietário do repositório
121
- * - repo (obrigatório): Nome do repositório
122
- * - path (obrigatório): Caminho do arquivo
123
- * - message (obrigatório): Mensagem de commit
124
- * - sha (obrigatório): SHA do arquivo
125
- * - branch (opcional): Branch de destino (padrão: branch padrão)
119
+ * Parâmetros:
120
+ * - owner (obrigatório): Proprietário do repositório
121
+ * - repo (obrigatório): Nome do repositório
122
+ * - path (obrigatório): Caminho do arquivo
123
+ * - message (obrigatório): Mensagem de commit
124
+ * - sha (obrigatório): SHA do arquivo
125
+ * - branch (opcional): Branch de destino (padrão: branch padrão)
126
126
  *
127
- * 5. list - Listar conteúdo de diretório
128
- * Parâmetros:
129
- * - owner (obrigatório): Proprietário do repositório
130
- * - repo (obrigatório): Nome do repositório
131
- * - path (opcional): Caminho do diretório (padrão: raiz)
132
- * - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
133
- * - page (opcional): Página da listagem (padrão: 1)
134
- * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
127
+ * 5. list - Listar conteúdo de diretório
128
+ * Parâmetros:
129
+ * - owner (obrigatório): Proprietário do repositório
130
+ * - repo (obrigatório): Nome do repositório
131
+ * - path (opcional): Caminho do diretório (padrão: raiz)
132
+ * - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
133
+ * - page (opcional): Página da listagem (padrão: 1)
134
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
135
135
  *
136
- * 6. search - Buscar arquivos por conteúdo
137
- * Parâmetros:
138
- * - owner (obrigatório): Proprietário do repositório
139
- * - repo (obrigatório): Nome do repositório
140
- * - query (obrigatório): Termo de busca
141
- * - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
136
+ * 6. search - Buscar arquivos por conteúdo
137
+ * Parâmetros:
138
+ * - owner (obrigatório): Proprietário do repositório
139
+ * - repo (obrigatório): Nome do repositório
140
+ * - query (obrigatório): Termo de busca
141
+ * - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
142
142
  *
143
- * RECOMENDAÇÕES DE USO:
143
+ * RECOMENDAÇÕES DE USO:
144
144
  * - Use mensagens de commit descritivas
145
- * - Mantenha estrutura de diretórios organizada
146
- * - Valide conteúdo antes de enviar
147
- * - Use branches para mudanças grandes
148
- * - Documente mudanças importantes
149
- * - Mantenha histórico de commits limpo
145
+ * - Mantenha estrutura de diretórios organizada
146
+ * - Valide conteúdo antes de enviar
147
+ * - Use branches para mudanças grandes
148
+ * - Documente mudanças importantes
149
+ * - Mantenha histórico de commits limpo
150
150
  */
151
151
  exports.filesTool = {
152
152
  name: 'git-files',
153
- description: 'tool: Gerencia arquivos Git, upload, download, busca e sincronização\n──────────────\naction get: obtém arquivo específico\naction get requires: repo, path, provider\n───────────────\naction create: cria novo arquivo\naction create requires: repo, path, content, message, provider\n───────────────\naction update: atualiza arquivo existente\naction update requires: repo, path, content, message, sha, provider\n───────────────\naction delete: remove arquivo\naction delete requires: repo, path, message, provider\n───────────────\naction list: lista arquivos do diretório\naction list requires: repo, path, provider\n───────────────\naction search: busca conteúdo em arquivos\naction search requires: repo, query, provider\n───────────────\naction upload-project: envia projeto completo\naction upload-project requires: repo, projectPath, message, provider',
153
+ description: 'tool: Gerencia arquivos Git, upload, download, busca e sincronização\n──────────────\naction get: obtém arquivo específico\naction get requires: repo, path, provider\n───────────────\naction create: cria novo arquivo\naction create requires: repo, path, content, message, provider\n───────────────\naction update: atualiza arquivo existente\naction update requires: repo, path, content, message, sha, provider\n───────────────\naction delete: remove arquivo\naction delete requires: repo, path, message, provider\n───────────────\naction list: lista arquivos do diretório\naction list requires: repo, path, provider\n───────────────\naction search: busca conteúdo em arquivos\naction search requires: repo, query, provider\n───────────────\naction upload-project: envia projeto completo\naction upload-project requires: repo, projectPath, message, provider',
154
154
  inputSchema: {
155
155
  type: 'object',
156
156
  properties: {
@@ -179,37 +179,37 @@ exports.filesTool = {
179
179
  *
180
180
  * FUNCIONALIDADE:
181
181
  * - Valida entrada usando Zod schema
182
- * - Roteia para método específico baseado na ação
182
+ * - Roteia para método específico baseado na ação
183
183
  * - Trata erros de forma uniforme
184
184
  * - Retorna resultado padronizado
185
185
  *
186
186
  * FLUXO:
187
- * 1. Validação de entrada
188
- * 2. Roteamento por ação
189
- * 3. Execução do método específico
187
+ * 1. Validação de entrada
188
+ * 2. Roteamento por ação
189
+ * 3. Execução do método específico
190
190
  * 4. Tratamento de erros
191
191
  * 5. Retorno de resultado
192
192
  *
193
193
  * TRATAMENTO DE ERROS:
194
- * - Validação: erro de schema
195
- * - Execução: erro da operação
196
- * - Roteamento: ação não suportada
194
+ * - Validação: erro de schema
195
+ * - Execução: erro da operação
196
+ * - Roteamento: ação não suportada
197
197
  *
198
- * RECOMENDAÇÕES:
198
+ * RECOMENDAÇÕES:
199
199
  * - Sempre valide entrada antes de processar
200
- * - Trate erros específicos adequadamente
200
+ * - Trate erros específicos adequadamente
201
201
  * - Log detalhes de erro para debug
202
- * - Retorne mensagens de erro úteis
202
+ * - Retorne mensagens de erro úteis
203
203
  */
204
204
  async handler(input) {
205
205
  try {
206
206
  const validatedInput = FilesInputSchema.parse(input);
207
- // Aplicar auto-detecção apenas para owner dentro do provider especificado
207
+ // Aplicar auto-detecção apenas para owner dentro do provider especificado
208
208
  const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
209
- // Usar o provider especificado pelo usuário
209
+ // Usar o provider especificado pelo usuário
210
210
  const provider = index_js_1.globalProviderFactory.getProvider(processedInput.provider);
211
211
  if (!provider) {
212
- throw new Error(`Provider '${processedInput.provider}' não encontrado`);
212
+ throw new Error(`Provider '${processedInput.provider}' não encontrado`);
213
213
  }
214
214
  // Obter o owner do provider
215
215
  const owner = (await provider.getCurrentUser()).login;
@@ -229,49 +229,49 @@ exports.filesTool = {
229
229
  case 'upload-project':
230
230
  return await this.uploadProject(processedInput, provider, owner);
231
231
  default:
232
- throw new Error(`Ação não suportada: ${processedInput.action}`);
232
+ throw new Error(`Ação não suportada: ${processedInput.action}`);
233
233
  }
234
234
  }
235
235
  catch (error) {
236
236
  return {
237
237
  success: false,
238
238
  action: input.action,
239
- message: 'Erro na operação de arquivos',
239
+ message: 'Erro na operação de arquivos',
240
240
  error: error instanceof Error ? error.message : String(error)
241
241
  };
242
242
  }
243
243
  },
244
244
  /**
245
- * Obtém o conteúdo de um arquivo específico
245
+ * Obtém o conteúdo de um arquivo específico
246
246
  *
247
247
  * FUNCIONALIDADE:
248
- * - Retorna conteúdo completo do arquivo
248
+ * - Retorna conteúdo completo do arquivo
249
249
  * - Inclui metadados (SHA, tamanho, tipo)
250
- * - Suporta diferentes referências (branch, tag, commit)
250
+ * - Suporta diferentes referências (branch, tag, commit)
251
251
  *
252
- * PARÂMETROS OBRIGATÓRIOS:
253
- * - owner: Proprietário do repositório
254
- * - repo: Nome do repositório
252
+ * PARÂMETROS OBRIGATÓRIOS:
253
+ * - owner: Proprietário do repositório
254
+ * - repo: Nome do repositório
255
255
  * - path: Caminho do arquivo
256
256
  *
257
- * PARÂMETROS OPCIONAIS:
258
- * - ref: Branch, tag ou commit (padrão: branch padrão)
257
+ * PARÂMETROS OPCIONAIS:
258
+ * - ref: Branch, tag ou commit (padrão: branch padrão)
259
259
  *
260
- * VALIDAÇÕES:
261
- * - Todos os parâmetros obrigatórios
260
+ * VALIDAÇÕES:
261
+ * - Todos os parâmetros obrigatórios
262
262
  * - Arquivo deve existir no caminho especificado
263
- * - Referência deve ser válida
263
+ * - Referência deve ser válida
264
264
  *
265
- * RECOMENDAÇÕES:
266
- * - Use para leitura de arquivos de configuração
265
+ * RECOMENDAÇÕES:
266
+ * - Use para leitura de arquivos de configuração
267
267
  * - Verifique tamanho antes de ler arquivos grandes
268
- * - Use referências específicas para versões
269
- * - Trate arquivos binários adequadamente
268
+ * - Use referências específicas para versões
269
+ * - Trate arquivos binários adequadamente
270
270
  */
271
271
  async getFile(params, provider, owner) {
272
272
  try {
273
273
  if (!owner || !params.repo || !params.path) {
274
- throw new Error('repo e path são obrigatórios');
274
+ throw new Error('repo e path são obrigatórios');
275
275
  }
276
276
  const file = await provider.getFile(owner, params.repo, params.path, params.ref);
277
277
  return {
@@ -286,38 +286,38 @@ exports.filesTool = {
286
286
  }
287
287
  },
288
288
  /**
289
- * Cria um novo arquivo no repositório
289
+ * Cria um novo arquivo no repositório
290
290
  *
291
291
  * FUNCIONALIDADE:
292
- * - Cria arquivo com conteúdo especificado
293
- * - Faz commit automático com mensagem
294
- * - Suporta criação em branches específicas
292
+ * - Cria arquivo com conteúdo especificado
293
+ * - Faz commit automático com mensagem
294
+ * - Suporta criação em branches específicas
295
295
  *
296
- * PARÂMETROS OBRIGATÓRIOS:
297
- * - owner: Proprietário do repositório
298
- * - repo: Nome do repositório
296
+ * PARÂMETROS OBRIGATÓRIOS:
297
+ * - owner: Proprietário do repositório
298
+ * - repo: Nome do repositório
299
299
  * - path: Caminho do arquivo
300
- * - content: Conteúdo do arquivo
300
+ * - content: Conteúdo do arquivo
301
301
  * - message: Mensagem de commit
302
302
  *
303
- * PARÂMETROS OPCIONAIS:
304
- * - branch: Branch de destino (padrão: branch padrão)
303
+ * PARÂMETROS OPCIONAIS:
304
+ * - branch: Branch de destino (padrão: branch padrão)
305
305
  *
306
- * VALIDAÇÕES:
307
- * - Todos os parâmetros obrigatórios
308
- * - Caminho deve ser válido
309
- * - Usuário deve ter permissão de escrita
306
+ * VALIDAÇÕES:
307
+ * - Todos os parâmetros obrigatórios
308
+ * - Caminho deve ser válido
309
+ * - Usuário deve ter permissão de escrita
310
310
  *
311
- * RECOMENDAÇÕES:
311
+ * RECOMENDAÇÕES:
312
312
  * - Use mensagens de commit descritivas
313
- * - Valide conteúdo antes de enviar
314
- * - Use branches para mudanças grandes
315
- * - Documente propósito do arquivo
313
+ * - Valide conteúdo antes de enviar
314
+ * - Use branches para mudanças grandes
315
+ * - Documente propósito do arquivo
316
316
  */
317
317
  async createFile(params, provider, owner) {
318
318
  try {
319
319
  if (!owner || !params.repo || !params.path || !params.content || !params.message) {
320
- throw new Error('repo, path, content e message são obrigatórios');
320
+ throw new Error('repo, path, content e message são obrigatórios');
321
321
  }
322
322
  const result = await provider.createFile(owner, params.repo, params.path, params.content, params.message, params.branch);
323
323
  return {
@@ -332,41 +332,41 @@ exports.filesTool = {
332
332
  }
333
333
  },
334
334
  /**
335
- * Atualiza um arquivo existente no repositório
335
+ * Atualiza um arquivo existente no repositório
336
336
  *
337
337
  * FUNCIONALIDADE:
338
- * - Atualiza conteúdo do arquivo
339
- * - Faz commit com nova versão
338
+ * - Atualiza conteúdo do arquivo
339
+ * - Faz commit com nova versão
340
340
  * - Requer SHA do arquivo atual
341
341
  *
342
- * PARÂMETROS OBRIGATÓRIOS:
343
- * - owner: Proprietário do repositório
344
- * - repo: Nome do repositório
342
+ * PARÂMETROS OBRIGATÓRIOS:
343
+ * - owner: Proprietário do repositório
344
+ * - repo: Nome do repositório
345
345
  * - path: Caminho do arquivo
346
- * - content: Novo conteúdo
346
+ * - content: Novo conteúdo
347
347
  * - message: Mensagem de commit
348
348
  * - sha: SHA do arquivo atual
349
349
  *
350
- * PARÂMETROS OPCIONAIS:
351
- * - branch: Branch de destino (padrão: branch padrão)
350
+ * PARÂMETROS OPCIONAIS:
351
+ * - branch: Branch de destino (padrão: branch padrão)
352
352
  *
353
- * VALIDAÇÕES:
354
- * - Todos os parâmetros obrigatórios
353
+ * VALIDAÇÕES:
354
+ * - Todos os parâmetros obrigatórios
355
355
  * - Arquivo deve existir
356
- * - SHA deve ser válido
356
+ * - SHA deve ser válido
357
357
  *
358
- * RECOMENDAÇÕES:
358
+ * RECOMENDAÇÕES:
359
359
  * - Sempre obtenha SHA atual antes de atualizar
360
360
  * - Use mensagens de commit descritivas
361
- * - Verifique se arquivo não foi modificado por outro usuário
362
- * - Teste mudanças antes de commitar
361
+ * - Verifique se arquivo não foi modificado por outro usuário
362
+ * - Teste mudanças antes de commitar
363
363
  */
364
364
  async updateFile(params, provider, owner) {
365
365
  try {
366
366
  if (!owner || !params.repo || !params.path || !params.content || !params.message) {
367
- throw new Error('repo, path, content e message são obrigatórios');
367
+ throw new Error('repo, path, content e message são obrigatórios');
368
368
  }
369
- // Se não foi fornecido SHA, obter automaticamente
369
+ // Se não foi fornecido SHA, obter automaticamente
370
370
  let fileSha = params.sha;
371
371
  if (!fileSha) {
372
372
  try {
@@ -374,7 +374,7 @@ exports.filesTool = {
374
374
  fileSha = existingFile.sha;
375
375
  }
376
376
  catch (error) {
377
- throw new Error('Não foi possível obter SHA do arquivo. Forneça sha ou verifique se o arquivo existe.');
377
+ throw new Error('Não foi possível obter SHA do arquivo. Forneça sha ou verifique se o arquivo existe.');
378
378
  }
379
379
  }
380
380
  const result = await provider.updateFile(owner, params.repo, params.path, params.content, params.message, fileSha, params.branch);
@@ -390,40 +390,40 @@ exports.filesTool = {
390
390
  }
391
391
  },
392
392
  /**
393
- * Deleta um arquivo do repositório
393
+ * Deleta um arquivo do repositório
394
394
  *
395
395
  * FUNCIONALIDADE:
396
396
  * - Remove arquivo especificado
397
- * - Faz commit de exclusão
397
+ * - Faz commit de exclusão
398
398
  * - Requer SHA do arquivo
399
399
  *
400
- * PARÂMETROS OBRIGATÓRIOS:
401
- * - owner: Proprietário do repositório
402
- * - repo: Nome do repositório
400
+ * PARÂMETROS OBRIGATÓRIOS:
401
+ * - owner: Proprietário do repositório
402
+ * - repo: Nome do repositório
403
403
  * - path: Caminho do arquivo
404
404
  * - message: Mensagem de commit
405
405
  * - sha: SHA do arquivo
406
406
  *
407
- * PARÂMETROS OPCIONAIS:
408
- * - branch: Branch de destino (padrão: branch padrão)
407
+ * PARÂMETROS OPCIONAIS:
408
+ * - branch: Branch de destino (padrão: branch padrão)
409
409
  *
410
- * VALIDAÇÕES:
411
- * - Todos os parâmetros obrigatórios
410
+ * VALIDAÇÕES:
411
+ * - Todos os parâmetros obrigatórios
412
412
  * - Arquivo deve existir
413
- * - SHA deve ser válido
413
+ * - SHA deve ser válido
414
414
  *
415
- * RECOMENDAÇÕES:
416
- * - Confirme exclusão antes de executar
415
+ * RECOMENDAÇÕES:
416
+ * - Confirme exclusão antes de executar
417
417
  * - Use mensagens de commit descritivas
418
- * - Verifique dependências do arquivo
419
- * - Mantenha backup se necessário
418
+ * - Verifique dependências do arquivo
419
+ * - Mantenha backup se necessário
420
420
  */
421
421
  async deleteFile(params, provider, owner) {
422
422
  try {
423
423
  if (!owner || !params.repo || !params.path || !params.message) {
424
- throw new Error('repo, path e message são obrigatórios');
424
+ throw new Error('repo, path e message são obrigatórios');
425
425
  }
426
- // Se não foi fornecido SHA, obter automaticamente
426
+ // Se não foi fornecido SHA, obter automaticamente
427
427
  let fileSha = params.sha;
428
428
  if (!fileSha) {
429
429
  try {
@@ -431,7 +431,7 @@ exports.filesTool = {
431
431
  fileSha = existingFile.sha;
432
432
  }
433
433
  catch (error) {
434
- throw new Error('Não foi possível obter SHA do arquivo. Forneça sha ou verifique se o arquivo existe.');
434
+ throw new Error('Não foi possível obter SHA do arquivo. Forneça sha ou verifique se o arquivo existe.');
435
435
  }
436
436
  }
437
437
  const result = await provider.deleteFile(owner, params.repo, params.path, params.message, fileSha, params.branch);
@@ -447,39 +447,39 @@ exports.filesTool = {
447
447
  }
448
448
  },
449
449
  /**
450
- * Lista conteúdo de um diretório
450
+ * Lista conteúdo de um diretório
451
451
  *
452
452
  * FUNCIONALIDADE:
453
- * - Lista arquivos e subdiretórios
454
- * - Suporta paginação
453
+ * - Lista arquivos e subdiretórios
454
+ * - Suporta paginação
455
455
  * - Inclui metadados de cada item
456
456
  *
457
- * PARÂMETROS OBRIGATÓRIOS:
458
- * - owner: Proprietário do repositório
459
- * - repo: Nome do repositório
457
+ * PARÂMETROS OBRIGATÓRIOS:
458
+ * - owner: Proprietário do repositório
459
+ * - repo: Nome do repositório
460
460
  *
461
- * PARÂMETROS OPCIONAIS:
462
- * - path: Caminho do diretório (padrão: raiz)
463
- * - ref: Branch, tag ou commit (padrão: branch padrão)
464
- * - page: Página da listagem (padrão: 1)
465
- * - limit: Itens por página (padrão: 30, máximo: 100)
461
+ * PARÂMETROS OPCIONAIS:
462
+ * - path: Caminho do diretório (padrão: raiz)
463
+ * - ref: Branch, tag ou commit (padrão: branch padrão)
464
+ * - page: Página da listagem (padrão: 1)
465
+ * - limit: Itens por página (padrão: 30, máximo: 100)
466
466
  *
467
- * VALIDAÇÕES:
468
- * - e repo obrigatórios
469
- * - Diretório deve existir
467
+ * VALIDAÇÕES:
468
+ * - e repo obrigatórios
469
+ * - Diretório deve existir
470
470
  * - Page deve ser >= 1
471
471
  * - Limit deve ser entre 1 e 100
472
472
  *
473
- * RECOMENDAÇÕES:
474
- * - Use paginação para diretórios grandes
475
- * - Monitore número total de itens
476
- * - Use referências específicas para versões
477
- * - Organize estrutura de diretórios
473
+ * RECOMENDAÇÕES:
474
+ * - Use paginação para diretórios grandes
475
+ * - Monitore número total de itens
476
+ * - Use referências específicas para versões
477
+ * - Organize estrutura de diretórios
478
478
  */
479
479
  async listFiles(params, provider, owner) {
480
480
  try {
481
481
  if (!owner || !params.repo) {
482
- throw new Error('e repo são obrigatórios');
482
+ throw new Error('e repo são obrigatórios');
483
483
  }
484
484
  const path = params.path || '';
485
485
  const page = params.page || 1;
@@ -503,41 +503,41 @@ exports.filesTool = {
503
503
  }
504
504
  },
505
505
  /**
506
- * Busca arquivos por conteúdo
506
+ * Busca arquivos por conteúdo
507
507
  *
508
508
  * FUNCIONALIDADE:
509
- * - Busca arquivos que contenham texto específico
510
- * - Suporta diferentes referências
509
+ * - Busca arquivos que contenham texto específico
510
+ * - Suporta diferentes referências
511
511
  * - Retorna resultados relevantes
512
512
  *
513
- * PARÂMETROS OBRIGATÓRIOS:
514
- * - owner: Proprietário do repositório
515
- * - repo: Nome do repositório
513
+ * PARÂMETROS OBRIGATÓRIOS:
514
+ * - owner: Proprietário do repositório
515
+ * - repo: Nome do repositório
516
516
  * - query: Termo de busca
517
517
  *
518
- * PARÂMETROS OPCIONAIS:
519
- * - ref: Branch, tag ou commit (padrão: branch padrão)
518
+ * PARÂMETROS OPCIONAIS:
519
+ * - ref: Branch, tag ou commit (padrão: branch padrão)
520
520
  *
521
- * VALIDAÇÕES:
522
- * - Todos os parâmetros obrigatórios
521
+ * VALIDAÇÕES:
522
+ * - Todos os parâmetros obrigatórios
523
523
  * - Query deve ter pelo menos 3 caracteres
524
- * - Repositório deve existir
524
+ * - Repositório deve existir
525
525
  *
526
- * RECOMENDAÇÕES:
527
- * - Use termos de busca específicos
528
- * - Combine com filtros de diretório
529
- * - Use referências para versões específicas
530
- * - Analise resultados para relevância
526
+ * RECOMENDAÇÕES:
527
+ * - Use termos de busca específicos
528
+ * - Combine com filtros de diretório
529
+ * - Use referências para versões específicas
530
+ * - Analise resultados para relevância
531
531
  */
532
532
  async searchFiles(params, provider, owner) {
533
533
  try {
534
534
  if (!owner || !params.repo || !params.query) {
535
- throw new Error('repo e query são obrigatórios');
535
+ throw new Error('repo e query são obrigatórios');
536
536
  }
537
537
  if (params.query.length < 3) {
538
538
  throw new Error('Query deve ter pelo menos 3 caracteres');
539
539
  }
540
- // Implementar busca de arquivos por conteúdo
540
+ // Implementar busca de arquivos por conteúdo
541
541
  // Por enquanto, retorna mensagem de funcionalidade
542
542
  return {
543
543
  success: true,
@@ -545,8 +545,8 @@ exports.filesTool = {
545
545
  message: `Busca por '${params.query}' solicitada`,
546
546
  data: {
547
547
  query: params.query,
548
- ref: params.ref || 'branch padrão',
549
- results: 'Funcionalidade de busca será implementada'
548
+ ref: params.ref || 'branch padrão',
549
+ results: 'Funcionalidade de busca será implementada'
550
550
  }
551
551
  };
552
552
  }
@@ -555,38 +555,38 @@ exports.filesTool = {
555
555
  }
556
556
  },
557
557
  /**
558
- * Faz upload de todo o projeto para o repositório
558
+ * Faz upload de todo o projeto para o repositório
559
559
  *
560
560
  * FUNCIONALIDADE:
561
561
  * - Envia todos os arquivos do projeto local
562
- * - Ignora diretórios desnecessários (node_modules, .git, dist)
563
- * - Ignora arquivos temporários e logs
562
+ * - Ignora diretórios desnecessários (node_modules, .git, dist)
563
+ * - Ignora arquivos temporários e logs
564
564
  * - Faz commit com mensagem personalizada
565
565
  *
566
- * PARÂMETROS OBRIGATÓRIOS:
567
- * - owner: Proprietário do repositório
568
- * - repo: Nome do repositório
566
+ * PARÂMETROS OBRIGATÓRIOS:
567
+ * - owner: Proprietário do repositório
568
+ * - repo: Nome do repositório
569
569
  * - projectPath: Caminho do projeto local
570
570
  * - message: Mensagem de commit
571
571
  *
572
- * PARÂMETROS OPCIONAIS:
573
- * - branch: Branch de destino (padrão: branch padrão)
572
+ * PARÂMETROS OPCIONAIS:
573
+ * - branch: Branch de destino (padrão: branch padrão)
574
574
  *
575
- * VALIDAÇÕES:
576
- * - Todos os parâmetros obrigatórios
575
+ * VALIDAÇÕES:
576
+ * - Todos os parâmetros obrigatórios
577
577
  * - Projeto deve existir no caminho especificado
578
- * - Usuário deve ter permissão de escrita
578
+ * - Usuário deve ter permissão de escrita
579
579
  *
580
- * RECOMENDAÇÕES:
580
+ * RECOMENDAÇÕES:
581
581
  * - Use mensagens de commit descritivas
582
- * - Verifique se o repositório está limpo
583
- * - Use branches para mudanças grandes
582
+ * - Verifique se o repositório está limpo
583
+ * - Use branches para mudanças grandes
584
584
  * - Monitore erros de upload
585
585
  */
586
586
  async uploadProject(params, provider, owner) {
587
587
  try {
588
588
  if (!owner || !params.repo || !params.projectPath || !params.message) {
589
- throw new Error('repo, projectPath e message são obrigatórios');
589
+ throw new Error('repo, projectPath e message são obrigatórios');
590
590
  }
591
591
  const result = await provider.uploadProject(owner, params.repo, params.projectPath, params.message, params.branch);
592
592
  return {
@@ -605,7 +605,7 @@ exports.filesTool = {
605
605
  }
606
606
  },
607
607
  /**
608
- * Verifica se erro é relacionado a Git
608
+ * Verifica se erro é relacionado a Git
609
609
  */
610
610
  isGitRelatedError(errorMessage) {
611
611
  const gitKeywords = [