@andrebuzeli/git-mcp 2.28.1 → 2.28.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 (154) hide show
  1. package/dist/client.d.ts +306 -306
  2. package/dist/client.js +298 -298
  3. package/dist/config.d.ts +310 -310
  4. package/dist/config.js +392 -392
  5. package/dist/index.d.ts +22 -22
  6. package/dist/index.js +89 -89
  7. package/dist/providers/base-provider.d.ts +160 -160
  8. package/dist/providers/base-provider.js +274 -274
  9. package/dist/providers/error-handler.d.ts +50 -50
  10. package/dist/providers/error-handler.js +175 -175
  11. package/dist/providers/gitea-provider.d.ts +97 -97
  12. package/dist/providers/gitea-provider.d.ts.map +1 -1
  13. package/dist/providers/gitea-provider.js +1015 -1001
  14. package/dist/providers/gitea-provider.js.map +1 -1
  15. package/dist/providers/github-provider.d.ts +104 -104
  16. package/dist/providers/github-provider.d.ts.map +1 -1
  17. package/dist/providers/github-provider.js +1248 -1234
  18. package/dist/providers/github-provider.js.map +1 -1
  19. package/dist/providers/index.d.ts +12 -12
  20. package/dist/providers/index.js +40 -40
  21. package/dist/providers/provider-factory.d.ts +74 -74
  22. package/dist/providers/provider-factory.d.ts.map +1 -1
  23. package/dist/providers/provider-factory.js +318 -311
  24. package/dist/providers/provider-factory.js.map +1 -1
  25. package/dist/providers/types.d.ts +318 -318
  26. package/dist/providers/types.js +6 -6
  27. package/dist/server.d.ts +76 -76
  28. package/dist/server.js +306 -306
  29. package/dist/tools/git-archive.d.ts +165 -165
  30. package/dist/tools/git-archive.js +233 -233
  31. package/dist/tools/git-branches.d.ts +430 -430
  32. package/dist/tools/git-branches.js +627 -627
  33. package/dist/tools/git-commits.d.ts +485 -485
  34. package/dist/tools/git-commits.js +735 -735
  35. package/dist/tools/git-commits.js.map +1 -1
  36. package/dist/tools/git-config.d.ts +140 -140
  37. package/dist/tools/git-config.js +268 -268
  38. package/dist/tools/git-files.d.ts +486 -486
  39. package/dist/tools/git-files.js +607 -607
  40. package/dist/tools/git-files.js.map +1 -1
  41. package/dist/tools/git-issues.d.ts +574 -571
  42. package/dist/tools/git-issues.d.ts.map +1 -1
  43. package/dist/tools/git-issues.js +741 -740
  44. package/dist/tools/git-issues.js.map +1 -1
  45. package/dist/tools/git-pulls.d.ts +697 -694
  46. package/dist/tools/git-pulls.d.ts.map +1 -1
  47. package/dist/tools/git-pulls.js +733 -732
  48. package/dist/tools/git-pulls.js.map +1 -1
  49. package/dist/tools/git-releases.d.ts +490 -487
  50. package/dist/tools/git-releases.d.ts.map +1 -1
  51. package/dist/tools/git-releases.js +558 -557
  52. package/dist/tools/git-releases.js.map +1 -1
  53. package/dist/tools/git-remote.d.ts +138 -138
  54. package/dist/tools/git-remote.js +274 -274
  55. package/dist/tools/git-repositories.d.ts +483 -483
  56. package/dist/tools/git-repositories.js +640 -640
  57. package/dist/tools/git-repositories.js.map +1 -1
  58. package/dist/tools/git-reset.d.ts +130 -130
  59. package/dist/tools/git-reset.js +223 -223
  60. package/dist/tools/git-revert.d.ts +149 -149
  61. package/dist/tools/git-revert.js +198 -198
  62. package/dist/tools/git-stash.d.ts +140 -140
  63. package/dist/tools/git-stash.js +269 -269
  64. package/dist/tools/git-sync.d.ts +178 -178
  65. package/dist/tools/git-sync.js +312 -312
  66. package/dist/tools/git-tags.d.ts +414 -411
  67. package/dist/tools/git-tags.d.ts.map +1 -1
  68. package/dist/tools/git-tags.js +486 -485
  69. package/dist/tools/git-tags.js.map +1 -1
  70. package/dist/tools/git-webhooks.d.ts +473 -470
  71. package/dist/tools/git-webhooks.d.ts.map +1 -1
  72. package/dist/tools/git-webhooks.js +544 -543
  73. package/dist/tools/git-webhooks.js.map +1 -1
  74. package/dist/utils/terminal-controller.d.ts +80 -80
  75. package/dist/utils/terminal-controller.js +345 -345
  76. package/dist/utils/user-detection.d.ts +24 -24
  77. package/dist/utils/user-detection.js +53 -53
  78. package/package.json +2 -2
  79. package/dist/tools/gh-actions.d.ts +0 -253
  80. package/dist/tools/gh-actions.d.ts.map +0 -1
  81. package/dist/tools/gh-actions.js +0 -390
  82. package/dist/tools/gh-actions.js.map +0 -1
  83. package/dist/tools/gh-analytics.d.ts +0 -264
  84. package/dist/tools/gh-analytics.d.ts.map +0 -1
  85. package/dist/tools/gh-analytics.js +0 -402
  86. package/dist/tools/gh-analytics.js.map +0 -1
  87. package/dist/tools/gh-code-review.d.ts +0 -305
  88. package/dist/tools/gh-code-review.d.ts.map +0 -1
  89. package/dist/tools/gh-code-review.js +0 -513
  90. package/dist/tools/gh-code-review.js.map +0 -1
  91. package/dist/tools/gh-codespaces.d.ts +0 -139
  92. package/dist/tools/gh-codespaces.d.ts.map +0 -1
  93. package/dist/tools/gh-codespaces.js +0 -283
  94. package/dist/tools/gh-codespaces.js.map +0 -1
  95. package/dist/tools/gh-deployments.d.ts +0 -301
  96. package/dist/tools/gh-deployments.d.ts.map +0 -1
  97. package/dist/tools/gh-deployments.js +0 -368
  98. package/dist/tools/gh-deployments.js.map +0 -1
  99. package/dist/tools/gh-gists.d.ts +0 -175
  100. package/dist/tools/gh-gists.d.ts.map +0 -1
  101. package/dist/tools/gh-gists.js +0 -322
  102. package/dist/tools/gh-gists.js.map +0 -1
  103. package/dist/tools/gh-projects.d.ts +0 -206
  104. package/dist/tools/gh-projects.d.ts.map +0 -1
  105. package/dist/tools/gh-projects.js +0 -359
  106. package/dist/tools/gh-projects.js.map +0 -1
  107. package/dist/tools/gh-security.d.ts +0 -275
  108. package/dist/tools/gh-security.d.ts.map +0 -1
  109. package/dist/tools/gh-security.js +0 -396
  110. package/dist/tools/gh-security.js.map +0 -1
  111. package/dist/tools/gh-sync.d.ts +0 -214
  112. package/dist/tools/gh-sync.d.ts.map +0 -1
  113. package/dist/tools/gh-sync.js +0 -379
  114. package/dist/tools/gh-sync.js.map +0 -1
  115. package/dist/tools/gh-workflows.d.ts +0 -291
  116. package/dist/tools/gh-workflows.d.ts.map +0 -1
  117. package/dist/tools/gh-workflows.js +0 -433
  118. package/dist/tools/gh-workflows.js.map +0 -1
  119. package/dist/tools/git-bundle.d.ts +0 -172
  120. package/dist/tools/git-bundle.d.ts.map +0 -1
  121. package/dist/tools/git-bundle.js +0 -242
  122. package/dist/tools/git-bundle.js.map +0 -1
  123. package/dist/tools/git-cherry-pick.d.ts +0 -159
  124. package/dist/tools/git-cherry-pick.d.ts.map +0 -1
  125. package/dist/tools/git-cherry-pick.js +0 -225
  126. package/dist/tools/git-cherry-pick.js.map +0 -1
  127. package/dist/tools/git-rebase.d.ts +0 -138
  128. package/dist/tools/git-rebase.d.ts.map +0 -1
  129. package/dist/tools/git-rebase.js +0 -214
  130. package/dist/tools/git-rebase.js.map +0 -1
  131. package/dist/tools/git-submodule.d.ts +0 -153
  132. package/dist/tools/git-submodule.d.ts.map +0 -1
  133. package/dist/tools/git-submodule.js +0 -290
  134. package/dist/tools/git-submodule.js.map +0 -1
  135. package/dist/tools/git-worktree.d.ts +0 -160
  136. package/dist/tools/git-worktree.d.ts.map +0 -1
  137. package/dist/tools/git-worktree.js +0 -270
  138. package/dist/tools/git-worktree.js.map +0 -1
  139. package/dist/tools/repositories.d.ts +0 -406
  140. package/dist/tools/repositories.d.ts.map +0 -1
  141. package/dist/tools/repositories.js +0 -570
  142. package/dist/tools/repositories.js.map +0 -1
  143. package/dist/tools/users.d.ts +0 -373
  144. package/dist/tools/users.d.ts.map +0 -1
  145. package/dist/tools/users.js +0 -500
  146. package/dist/tools/users.js.map +0 -1
  147. package/dist/tools/validator.d.ts +0 -171
  148. package/dist/tools/validator.d.ts.map +0 -1
  149. package/dist/tools/validator.js +0 -195
  150. package/dist/tools/validator.js.map +0 -1
  151. package/dist/tools/version-control.d.ts +0 -137
  152. package/dist/tools/version-control.d.ts.map +0 -1
  153. package/dist/tools/version-control.js +0 -165
  154. package/dist/tools/version-control.js.map +0 -1
@@ -1,513 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.codeReviewTool = void 0;
4
- const zod_1 = require("zod");
5
- const index_js_1 = require("../providers/index.js");
6
- const user_detection_js_1 = require("../utils/user-detection.js");
7
- /**
8
- * Tool: code-review
9
- *
10
- * DESCRIÇÃO:
11
- * Ferramenta completa de revisão de código com análise automatizada,
12
- * sugestões de melhorias, detecção de problemas e geração de relatórios.
13
- *
14
- * FUNCIONALIDADES:
15
- * - Análise de qualidade de código
16
- * - Detecção de bugs e vulnerabilidades
17
- * - Sugestões de otimização
18
- * - Revisão de commits e arquivos
19
- * - Geração de relatórios de qualidade
20
- * - Aplicação automática de correções
21
- *
22
- * USO:
23
- * - Para revisão automatizada de pull requests
24
- * - Para análise de qualidade de código
25
- * - Para detecção de problemas de segurança
26
- * - Para sugestões de melhorias de performance
27
- *
28
- * RECOMENDAÇÕES:
29
- * - Execute regularmente em novos commits
30
- * - Configure regras específicas por linguagem
31
- * - Use em conjunto com CI/CD
32
- * - Revise sugestões antes de aplicar
33
- */
34
- /**
35
- * Schema de validação para entrada da tool code-review
36
- */
37
- const CodeReviewInputSchema = zod_1.z.object({
38
- action: zod_1.z.enum(['analyze', 'review-file', 'review-commit', 'review-pr', 'generate-report', 'apply-suggestions']),
39
- // Parâmetros comuns
40
- repo: zod_1.z.string(),
41
- // Para analyze
42
- code: zod_1.z.string().optional(),
43
- language: zod_1.z.string().optional(),
44
- file_path: zod_1.z.string().optional(),
45
- // Para review-file e review-commit
46
- path: zod_1.z.string().optional(),
47
- sha: zod_1.z.string().optional(),
48
- branch: zod_1.z.string().optional(),
49
- // Para review-pr
50
- pull_number: zod_1.z.number().optional(),
51
- // Para generate-report
52
- report_type: zod_1.z.enum(['summary', 'detailed', 'security', 'performance']).optional(),
53
- include_suggestions: zod_1.z.boolean().optional(),
54
- // Para apply-suggestions
55
- suggestions: zod_1.z.array(zod_1.z.object({
56
- file_path: zod_1.z.string(),
57
- line_number: zod_1.z.number(),
58
- suggestion: zod_1.z.string(),
59
- severity: zod_1.z.enum(['low', 'medium', 'high', 'critical'])
60
- })).optional(),
61
- // Configurações
62
- rules: zod_1.z.array(zod_1.z.string()).optional(),
63
- exclude_patterns: zod_1.z.array(zod_1.z.string()).optional()
64
- }).refine((data) => {
65
- if (['analyze'].includes(data.action)) {
66
- return !!data.code || !!(data.repo && data.file_path);
67
- }
68
- if (['review-file', 'review-commit'].includes(data.action)) {
69
- return !!(data.repo && (data.path || data.sha));
70
- }
71
- if (['review-pr'].includes(data.action)) {
72
- return !!(data.repo && data.pull_number);
73
- }
74
- if (['apply-suggestions'].includes(data.action)) {
75
- return !!(data.repo && data.suggestions && data.suggestions.length > 0);
76
- }
77
- return !!data.repo;
78
- }, {
79
- message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
80
- });
81
- /**
82
- * Schema de validação para resultado da tool code-review
83
- */
84
- const CodeReviewResultSchema = zod_1.z.object({
85
- success: zod_1.z.boolean(),
86
- action: zod_1.z.string(),
87
- message: zod_1.z.string(),
88
- data: zod_1.z.any().optional(),
89
- error: zod_1.z.string().optional()
90
- });
91
- /**
92
- * Implementação da tool code-review
93
- */
94
- exports.codeReviewTool = {
95
- name: 'gh-code-review',
96
- description: 'tool: Análise de código GitHub para qualidade e detecção de problemas\n──────────────\naction analyze: análise geral de código\naction analyze requires: code, language, context, problem, rules, exclude_patterns\n───────────────\naction review-file: revisão de arquivo específico\naction review-file requires: repo, file_path, branch, rules, exclude_patterns\n───────────────\naction review-commit: revisão de commit específico\naction review-commit requires: repo, sha, branch, rules, exclude_patterns\n───────────────\naction review-pr: revisão de Pull Request\naction review-pr requires: repo, pull_number, rules, exclude_patterns\n───────────────\naction generate-report: geração de relatório\naction generate-report requires: repo, report_type, include_suggestions, branch\n───────────────\naction apply-suggestions: aplicar sugestões de correção\naction apply-suggestions requires: repo, suggestions, branch',
97
- inputSchema: {
98
- type: 'object',
99
- properties: {
100
- action: {
101
- type: 'string',
102
- enum: ['analyze', 'review-file', 'review-commit', 'review-pr', 'generate-report', 'apply-suggestions'],
103
- description: 'Ação a executar: analyze (análise), review-file (revisar arquivo), review-commit (revisar commit), review-pr (revisar PR), generate-report (gerar relatório), apply-suggestions (aplicar sugestões)'
104
- },
105
- repo: {
106
- type: 'string',
107
- description: 'Nome do repositório (OBRIGATÓRIO para ações que acessam repositório)'
108
- },
109
- code: { type: 'string', description: 'Código para análise direta' },
110
- language: { type: 'string', description: 'Linguagem de programação' },
111
- file_path: { type: 'string', description: 'Caminho do arquivo para análise' },
112
- path: { type: 'string', description: 'Caminho do arquivo' },
113
- sha: { type: 'string', description: 'SHA do commit' },
114
- branch: { type: 'string', description: 'Branch específica para análise' },
115
- pull_number: { type: 'number', description: 'Número do Pull Request' },
116
- report_type: { type: 'string', enum: ['summary', 'detailed', 'security', 'performance'], description: 'Tipo de relatório' },
117
- include_suggestions: { type: 'boolean', description: 'Incluir sugestões no relatório' },
118
- suggestions: {
119
- type: 'array',
120
- items: {
121
- type: 'object',
122
- properties: {
123
- file_path: { type: 'string' },
124
- line_number: { type: 'number' },
125
- suggestion: { type: 'string' },
126
- severity: { type: 'string', enum: ['low', 'medium', 'high', 'critical'] }
127
- }
128
- },
129
- description: 'Lista de sugestões para aplicar'
130
- },
131
- rules: { type: 'array', items: { type: 'string' }, description: 'Regras específicas para análise' },
132
- exclude_patterns: { type: 'array', items: { type: 'string' }, description: 'Padrões para excluir da análise' }
133
- },
134
- required: ['action', 'repo']
135
- },
136
- async handler(input) {
137
- try {
138
- const validatedInput = CodeReviewInputSchema.parse(input);
139
- // Fixar provider como github para tools exclusivas do GitHub
140
- const updatedParams = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, 'github');
141
- const provider = index_js_1.globalProviderFactory.getProvider('github');
142
- if (!provider) {
143
- throw new Error('Provider GitHub não encontrado');
144
- }
145
- switch (updatedParams.action) {
146
- case 'analyze':
147
- return await this.analyzeCode(validatedInput);
148
- case 'review-file':
149
- return await this.reviewCommit(updatedParams, provider);
150
- case 'review-commit':
151
- return await this.reviewPullRequest(updatedParams, provider);
152
- case 'review-pr':
153
- return await this.generateReport(updatedParams, provider);
154
- case 'generate-report':
155
- return await this.applySuggestions(updatedParams, provider);
156
- case 'apply-suggestions':
157
- return await this.applySuggestions(updatedParams, provider);
158
- default:
159
- throw new Error(`Ação não suportada: ${updatedParams.action}`);
160
- }
161
- }
162
- catch (error) {
163
- return {
164
- success: false,
165
- action: input.action || 'unknown',
166
- message: 'Erro na análise de código',
167
- error: error instanceof Error ? error.message : String(error)
168
- };
169
- }
170
- },
171
- /**
172
- * Análise geral de código
173
- */
174
- async analyzeCode(params) {
175
- try {
176
- // Esta tool é específica do GitHub
177
- const provider = index_js_1.globalProviderFactory.getProvider('github');
178
- let codeToAnalyze = params.code;
179
- let fileName = 'code.txt';
180
- // Se não foi fornecido código direto, buscar do repositório
181
- if (!codeToAnalyze && params.repo && params.file_path) {
182
- if (provider) {
183
- const currentUser = await provider.getCurrentUser();
184
- const owner = currentUser.login;
185
- const file = await provider.getFile((await provider.getCurrentUser()).login, params.repo, params.file_path);
186
- codeToAnalyze = file.content || '';
187
- fileName = params.file_path;
188
- }
189
- }
190
- if (!codeToAnalyze) {
191
- throw new Error('Código não fornecido para análise');
192
- }
193
- // Análise básica de qualidade
194
- const analysis = this.performCodeAnalysis(codeToAnalyze, params.language || 'unknown', fileName, params.rules);
195
- return {
196
- success: true,
197
- action: 'analyze',
198
- message: `Análise de código concluída para ${fileName}`,
199
- data: analysis
200
- };
201
- }
202
- catch (error) {
203
- throw new Error(`Falha na análise de código: ${error}`);
204
- }
205
- },
206
- /**
207
- * Revisão de arquivo específico
208
- */
209
- async reviewFile(params, provider) {
210
- try {
211
- if (!params.repo || !params.path) {
212
- throw new Error('Repo e path são obrigatórios');
213
- }
214
- const currentUser = await provider.getCurrentUser();
215
- const owner = currentUser.login;
216
- const file = await provider.getFile((await provider.getCurrentUser()).login, params.repo, params.path, params.branch);
217
- if (!file.content) {
218
- throw new Error('Arquivo não possui conteúdo para análise');
219
- }
220
- const analysis = this.performCodeAnalysis(file.content, this.detectLanguage(params.path), params.path, params.rules);
221
- return {
222
- success: true,
223
- action: 'review-file',
224
- message: `Revisão de arquivo '${params.path}' concluída`,
225
- data: {
226
- file: params.path,
227
- analysis,
228
- branch: params.branch || 'default'
229
- }
230
- };
231
- }
232
- catch (error) {
233
- throw new Error(`Falha na revisão de arquivo: ${error}`);
234
- }
235
- },
236
- /**
237
- * Revisão de commit específico
238
- */
239
- async reviewCommit(params, provider) {
240
- try {
241
- if (!params.repo || !params.sha) {
242
- throw new Error('Repo e sha são obrigatórios');
243
- }
244
- const currentUser = await provider.getCurrentUser();
245
- const owner = currentUser.login;
246
- const commit = await provider.getCommit((await provider.getCurrentUser()).login, params.repo, params.sha);
247
- // Análise básica da mensagem do commit
248
- const messageAnalysis = this.analyzeCommitMessage(commit.message);
249
- return {
250
- success: true,
251
- action: 'review-commit',
252
- message: `Revisão de commit ${params.sha.substring(0, 7)} concluída`,
253
- data: {
254
- commit: params.sha,
255
- message_analysis: messageAnalysis,
256
- author: commit.author,
257
- committer: commit.committer
258
- }
259
- };
260
- }
261
- catch (error) {
262
- throw new Error(`Falha na revisão de commit: ${error}`);
263
- }
264
- },
265
- /**
266
- * Revisão de Pull Request
267
- */
268
- async reviewPullRequest(params, provider) {
269
- try {
270
- if (!params.repo || !(params.pull_number || 0)) {
271
- throw new Error('Repo e pull_number são obrigatórios');
272
- }
273
- // Buscar informações do PR
274
- const currentUser = await provider.getCurrentUser();
275
- const owner = currentUser.login;
276
- const pr = await provider.getPullRequest((await provider.getCurrentUser()).login, params.repo, (params.pull_number || 0));
277
- const review = {
278
- pr_number: (params.pull_number || 0),
279
- title: pr.title,
280
- body: pr.body,
281
- changes: {
282
- additions: 'Não disponível',
283
- deletions: 'Não disponível',
284
- files_changed: 'Não disponível'
285
- },
286
- quality_score: this.calculateQualityScore(pr),
287
- suggestions: [
288
- 'Verificar se todos os testes estão passando',
289
- 'Revisar documentação atualizada',
290
- 'Verificar impacto em performance'
291
- ]
292
- };
293
- return {
294
- success: true,
295
- action: 'review-pr',
296
- message: `Revisão de PR #${(params.pull_number || 0)} concluída`,
297
- data: review
298
- };
299
- }
300
- catch (error) {
301
- throw new Error(`Falha na revisão de PR: ${error}`);
302
- }
303
- },
304
- /**
305
- * Geração de relatório de qualidade
306
- */
307
- async generateReport(params, provider) {
308
- try {
309
- // Validação movida para schema - owner/repo serão auto-detectados se não fornecidos
310
- const reportType = params.report_type || 'summary';
311
- const includeSuggestions = params.include_suggestions !== false;
312
- const report = {
313
- repository: `${params.repo}`,
314
- report_type: reportType,
315
- generated_at: new Date().toISOString(),
316
- summary: {
317
- total_files: 'Não disponível',
318
- quality_score: 'Não calculado',
319
- issues_found: 0,
320
- critical_issues: 0
321
- },
322
- recommendations: includeSuggestions ? [
323
- 'Implementar testes automatizados',
324
- 'Configurar linter específico da linguagem',
325
- 'Adicionar documentação técnica',
326
- 'Revisar dependências desatualizadas'
327
- ] : []
328
- };
329
- return {
330
- success: true,
331
- action: 'generate-report',
332
- message: `Relatório ${reportType} gerado com sucesso`,
333
- data: report
334
- };
335
- }
336
- catch (error) {
337
- throw new Error(`Falha na geração de relatório: ${error}`);
338
- }
339
- },
340
- /**
341
- * Aplicação de sugestões de correção
342
- */
343
- async applySuggestions(params, provider) {
344
- try {
345
- if (!params.repo || !params.suggestions) {
346
- throw new Error('Repo e suggestions são obrigatórios');
347
- }
348
- const applied = [];
349
- const failed = [];
350
- for (const suggestion of params.suggestions) {
351
- try {
352
- // Para cada sugestão, buscar o arquivo atual
353
- const currentUser = await provider.getCurrentUser();
354
- const owner = currentUser.login;
355
- const file = await provider.getFile((await provider.getCurrentUser()).login, params.repo, suggestion.file_path);
356
- if (file.content) {
357
- // Aplicar sugestão (simplificado - apenas marcar como aplicada)
358
- applied.push({
359
- file: suggestion.file_path,
360
- line: suggestion.line_number,
361
- suggestion: suggestion.suggestion,
362
- status: 'applied'
363
- });
364
- }
365
- }
366
- catch (error) {
367
- failed.push({
368
- file: suggestion.file_path,
369
- error: error instanceof Error ? error.message : String(error)
370
- });
371
- }
372
- }
373
- return {
374
- success: true,
375
- action: 'apply-suggestions',
376
- message: `Aplicadas ${applied.length} sugestões, ${failed.length} falharam`,
377
- data: {
378
- applied,
379
- failed,
380
- total: params.suggestions.length
381
- }
382
- };
383
- }
384
- catch (error) {
385
- throw new Error(`Falha na aplicação de sugestões: ${error}`);
386
- }
387
- },
388
- /**
389
- * Análise básica de código
390
- */
391
- performCodeAnalysis(code, language, fileName, rules) {
392
- const issues = [];
393
- const suggestions = [];
394
- const lines = code.split('\n');
395
- // Análise básica de complexidade
396
- if (lines.length > 300) {
397
- issues.push({
398
- type: 'complexity',
399
- severity: 'medium',
400
- message: 'Arquivo muito longo - considere dividir em módulos menores',
401
- line: 1
402
- });
403
- }
404
- // Detecção de código comentado
405
- let commentLines = 0;
406
- lines.forEach((line, index) => {
407
- if (line.trim().startsWith('//') || line.trim().startsWith('#') || line.trim().startsWith('/*')) {
408
- commentLines++;
409
- }
410
- // Detecção de console.log (comum em JS/TS)
411
- if (language === 'javascript' || language === 'typescript') {
412
- if (line.includes('console.log') && !rules?.includes('allow-console')) {
413
- issues.push({
414
- type: 'code-quality',
415
- severity: 'low',
416
- message: 'Uso de console.log detectado - considere remover para produção',
417
- line: index + 1
418
- });
419
- }
420
- }
421
- });
422
- // Análise de comentários
423
- const commentRatio = commentLines / lines.length;
424
- if (commentRatio < 0.1) {
425
- suggestions.push('Considere adicionar mais comentários explicativos');
426
- }
427
- return {
428
- file: fileName,
429
- language,
430
- lines_count: lines.length,
431
- comment_lines: commentLines,
432
- comment_ratio: Math.round(commentRatio * 100) / 100,
433
- issues,
434
- suggestions,
435
- quality_score: this.calculateQualityScore({ lines: lines.length, issues: issues.length })
436
- };
437
- },
438
- /**
439
- * Detecta linguagem baseada na extensão do arquivo
440
- */
441
- detectLanguage(filePath) {
442
- const ext = filePath.split('.').pop()?.toLowerCase();
443
- const languageMap = {
444
- 'js': 'javascript',
445
- 'ts': 'typescript',
446
- 'py': 'python',
447
- 'java': 'java',
448
- 'cpp': 'cpp',
449
- 'c': 'c',
450
- 'php': 'php',
451
- 'rb': 'ruby',
452
- 'go': 'go',
453
- 'rs': 'rust',
454
- 'swift': 'swift',
455
- 'kt': 'kotlin',
456
- 'scala': 'scala',
457
- 'html': 'html',
458
- 'css': 'css',
459
- 'scss': 'scss',
460
- 'md': 'markdown',
461
- 'json': 'json',
462
- 'xml': 'xml',
463
- 'yaml': 'yaml',
464
- 'yml': 'yaml'
465
- };
466
- return languageMap[ext || ''] || 'unknown';
467
- },
468
- /**
469
- * Análise de mensagem de commit
470
- */
471
- analyzeCommitMessage(message) {
472
- const analysis = {
473
- quality: 'good',
474
- suggestions: [],
475
- follows_conventions: false
476
- };
477
- // Verificar se segue convenção de commits
478
- const conventionalPattern = /^(feat|fix|docs|style|refactor|test|chore|perf|ci|build|revert)(\(.+\))?: .{1,50}/;
479
- analysis.follows_conventions = conventionalPattern.test(message);
480
- if (!analysis.follows_conventions) {
481
- analysis.suggestions.push('Considere usar conventional commits (feat:, fix:, docs:, etc.)');
482
- }
483
- if (message.length > 72) {
484
- analysis.quality = 'medium';
485
- analysis.suggestions.push('Mensagem muito longa - considere resumir na primeira linha');
486
- }
487
- if (message.length < 10) {
488
- analysis.quality = 'low';
489
- analysis.suggestions.push('Mensagem muito curta - seja mais descritivo');
490
- }
491
- return analysis;
492
- },
493
- /**
494
- * Calcula score de qualidade básico
495
- */
496
- calculateQualityScore(data) {
497
- let score = 100;
498
- // Penalizar por issues
499
- if (data.issues) {
500
- score -= data.issues * 10;
501
- }
502
- // Penalizar por complexidade
503
- if (data.lines && data.lines > 500) {
504
- score -= 20;
505
- }
506
- // Bonus por comentários adequados
507
- if (data.comment_ratio && data.comment_ratio > 0.2) {
508
- score += 10;
509
- }
510
- return Math.max(0, Math.min(100, score));
511
- }
512
- };
513
- //# sourceMappingURL=gh-code-review.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gh-code-review.js","sourceRoot":"","sources":["../../src/tools/gh-code-review.ts"],"names":[],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- import { z } from 'zod';
2
- import { VcsOperations } from '../providers/index.js';
3
- /**
4
- * Tool: gh-codespaces
5
- *
6
- * DESCRIÇÃO:
7
- * Gerenciamento de Codespaces GitHub (exclusivo GitHub) com múltiplas ações
8
- *
9
- * FUNCIONALIDADES:
10
- * - Listar codespaces
11
- * - Criar codespace
12
- * - Deletar codespace
13
- * - Iniciar codespace
14
- * - Parar codespace
15
- * - Rebuild codespace
16
- * - Obter logs do codespace
17
- *
18
- * USO:
19
- * - Para desenvolvimento em nuvem
20
- * - Para ambientes de desenvolvimento consistentes
21
- * - Para colaboração remota
22
- * - Para testes em diferentes ambientes
23
- *
24
- * RECOMENDAÇÕES:
25
- * - Use para projetos que precisam de ambientes específicos
26
- * - Configure devcontainers adequadamente
27
- * - Monitore uso de recursos
28
- * - Limpe codespaces não utilizados
29
- */
30
- declare const GhCodespacesInputSchema: z.ZodObject<{
31
- action: z.ZodEnum<["list", "create", "delete", "start", "stop", "rebuild", "logs"]>;
32
- repo: z.ZodString;
33
- projectPath: z.ZodString;
34
- codespace_name: z.ZodOptional<z.ZodString>;
35
- branch: z.ZodOptional<z.ZodString>;
36
- machine_type: z.ZodOptional<z.ZodString>;
37
- display_name: z.ZodOptional<z.ZodString>;
38
- codespace_id: z.ZodOptional<z.ZodString>;
39
- log_type: z.ZodOptional<z.ZodEnum<["build", "start", "stop"]>>;
40
- }, "strip", z.ZodTypeAny, {
41
- repo: string;
42
- action: "delete" | "list" | "create" | "logs" | "start" | "stop" | "rebuild";
43
- projectPath: string;
44
- branch?: string | undefined;
45
- codespace_name?: string | undefined;
46
- machine_type?: string | undefined;
47
- display_name?: string | undefined;
48
- codespace_id?: string | undefined;
49
- log_type?: "build" | "start" | "stop" | undefined;
50
- }, {
51
- repo: string;
52
- action: "delete" | "list" | "create" | "logs" | "start" | "stop" | "rebuild";
53
- projectPath: string;
54
- branch?: string | undefined;
55
- codespace_name?: string | undefined;
56
- machine_type?: string | undefined;
57
- display_name?: string | undefined;
58
- codespace_id?: string | undefined;
59
- log_type?: "build" | "start" | "stop" | undefined;
60
- }>;
61
- export type GhCodespacesInput = z.infer<typeof GhCodespacesInputSchema>;
62
- declare const GhCodespacesResultSchema: z.ZodObject<{
63
- success: z.ZodBoolean;
64
- action: z.ZodString;
65
- message: z.ZodString;
66
- data: z.ZodOptional<z.ZodAny>;
67
- error: z.ZodOptional<z.ZodString>;
68
- }, "strip", z.ZodTypeAny, {
69
- message: string;
70
- action: string;
71
- success: boolean;
72
- error?: string | undefined;
73
- data?: any;
74
- }, {
75
- message: string;
76
- action: string;
77
- success: boolean;
78
- error?: string | undefined;
79
- data?: any;
80
- }>;
81
- export type GhCodespacesResult = z.infer<typeof GhCodespacesResultSchema>;
82
- export declare const ghCodespacesTool: {
83
- name: string;
84
- description: string;
85
- inputSchema: {
86
- type: string;
87
- properties: {
88
- action: {
89
- type: string;
90
- enum: string[];
91
- description: string;
92
- };
93
- repo: {
94
- type: string;
95
- description: string;
96
- };
97
- projectPath: {
98
- type: string;
99
- description: string;
100
- };
101
- codespace_name: {
102
- type: string;
103
- description: string;
104
- };
105
- branch: {
106
- type: string;
107
- description: string;
108
- };
109
- machine_type: {
110
- type: string;
111
- description: string;
112
- };
113
- display_name: {
114
- type: string;
115
- description: string;
116
- };
117
- codespace_id: {
118
- type: string;
119
- description: string;
120
- };
121
- log_type: {
122
- type: string;
123
- enum: string[];
124
- description: string;
125
- };
126
- };
127
- required: string[];
128
- };
129
- handler(input: GhCodespacesInput): Promise<GhCodespacesResult>;
130
- list(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
131
- create(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
132
- delete(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
133
- start(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
134
- stop(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
135
- rebuild(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
136
- logs(params: GhCodespacesInput, provider: VcsOperations): Promise<GhCodespacesResult>;
137
- };
138
- export {};
139
- //# sourceMappingURL=gh-codespaces.d.ts.map