@andrebuzeli/git-mcp 4.0.20 → 4.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/config.d.ts +7 -239
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +2 -221
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.d.ts +11 -9
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +18 -16
  8. package/dist/index.js.map +1 -1
  9. package/dist/server.d.ts +1 -69
  10. package/dist/server.d.ts.map +1 -1
  11. package/dist/server.js +150 -711
  12. package/dist/server.js.map +1 -1
  13. package/dist/tools/git-analytics.d.ts +1 -0
  14. package/dist/tools/git-analytics.d.ts.map +1 -1
  15. package/dist/tools/git-analytics.js +18 -7
  16. package/dist/tools/git-analytics.js.map +1 -1
  17. package/dist/tools/git-archive.d.ts +2 -149
  18. package/dist/tools/git-archive.d.ts.map +1 -1
  19. package/dist/tools/git-archive.js +5 -222
  20. package/dist/tools/git-archive.js.map +1 -1
  21. package/dist/tools/git-backup.d.ts +1 -198
  22. package/dist/tools/git-backup.d.ts.map +1 -1
  23. package/dist/tools/git-backup.js +4 -805
  24. package/dist/tools/git-backup.js.map +1 -1
  25. package/dist/tools/git-branches.d.ts +1 -158
  26. package/dist/tools/git-branches.d.ts.map +1 -1
  27. package/dist/tools/git-branches.js +4 -539
  28. package/dist/tools/git-branches.js.map +1 -1
  29. package/dist/tools/git-config.d.ts +2 -124
  30. package/dist/tools/git-config.d.ts.map +1 -1
  31. package/dist/tools/git-config.js +5 -263
  32. package/dist/tools/git-config.js.map +1 -1
  33. package/dist/tools/git-files.d.ts +2 -115
  34. package/dist/tools/git-files.d.ts.map +1 -1
  35. package/dist/tools/git-files.js +161 -407
  36. package/dist/tools/git-files.js.map +1 -1
  37. package/dist/tools/git-issues.d.ts +1 -214
  38. package/dist/tools/git-issues.d.ts.map +1 -1
  39. package/dist/tools/git-issues.js +4 -678
  40. package/dist/tools/git-issues.js.map +1 -1
  41. package/dist/tools/git-monitor.d.ts +1 -143
  42. package/dist/tools/git-monitor.d.ts.map +1 -1
  43. package/dist/tools/git-monitor.js +4 -738
  44. package/dist/tools/git-monitor.js.map +1 -1
  45. package/dist/tools/git-packages.d.ts +2 -91
  46. package/dist/tools/git-packages.d.ts.map +1 -1
  47. package/dist/tools/git-packages.js +5 -258
  48. package/dist/tools/git-packages.js.map +1 -1
  49. package/dist/tools/git-pulls.d.ts +1 -63
  50. package/dist/tools/git-pulls.d.ts.map +1 -1
  51. package/dist/tools/git-pulls.js +4 -77
  52. package/dist/tools/git-pulls.js.map +1 -1
  53. package/dist/tools/git-release.d.ts +1 -169
  54. package/dist/tools/git-release.d.ts.map +1 -1
  55. package/dist/tools/git-release.js +4 -611
  56. package/dist/tools/git-release.js.map +1 -1
  57. package/dist/tools/git-remote.d.ts +1 -153
  58. package/dist/tools/git-remote.d.ts.map +1 -1
  59. package/dist/tools/git-remote.js +4 -555
  60. package/dist/tools/git-remote.js.map +1 -1
  61. package/dist/tools/git-reset.d.ts +1 -157
  62. package/dist/tools/git-reset.d.ts.map +1 -1
  63. package/dist/tools/git-reset.js +4 -597
  64. package/dist/tools/git-reset.js.map +1 -1
  65. package/dist/tools/git-stash.d.ts +1 -161
  66. package/dist/tools/git-stash.d.ts.map +1 -1
  67. package/dist/tools/git-stash.js +4 -640
  68. package/dist/tools/git-stash.js.map +1 -1
  69. package/dist/tools/git-sync.d.ts +1 -0
  70. package/dist/tools/git-sync.d.ts.map +1 -1
  71. package/dist/tools/git-sync.js +13 -7
  72. package/dist/tools/git-sync.js.map +1 -1
  73. package/dist/tools/git-tags.d.ts +1 -162
  74. package/dist/tools/git-tags.d.ts.map +1 -1
  75. package/dist/tools/git-tags.js +4 -549
  76. package/dist/tools/git-tags.js.map +1 -1
  77. package/dist/tools/git-workflow.d.ts +3 -96
  78. package/dist/tools/git-workflow.d.ts.map +1 -1
  79. package/dist/tools/git-workflow.js +287 -314
  80. package/dist/tools/git-workflow.js.map +1 -1
  81. package/package.json +3 -3
  82. package/dist/server-minimal.d.ts +0 -8
  83. package/dist/server-minimal.d.ts.map +0 -1
  84. package/dist/server-minimal.js +0 -218
  85. package/dist/server-minimal.js.map +0 -1
@@ -1,429 +1,183 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.gitFilesTool = void 0;
37
- const zod_1 = require("zod");
38
- const git_operations_js_1 = require("../utils/git-operations.js");
39
4
  const auto_detection_js_1 = require("../utils/auto-detection.js");
40
- const error_handler_js_1 = require("../utils/error-handler.js");
41
- const fs = __importStar(require("fs"));
42
- const path = __importStar(require("path"));
43
5
  /**
44
- * Tool: git-files
45
- *
46
- * GERENCIAMENTO DE ARQUIVOS INTELIGENTE - v2.0 AI-First
47
- *
48
- * Conforme especificado no design.md, esta tool:
49
- * - Requer apenas action + projectPath como obrigatórios
50
- * - Auto-detecta repo name, owner e providers
51
- * - Fornece respostas universais para todos os AI agents
52
- * - Suporta apenas 5 ações principais otimizadas
6
+ * Git Files Tool - Gerenciamento de Arquivos
53
7
  *
54
- * DESIGNED FOR: Programadores individuais usando AI agents (Cursor, VSCode, etc.)
55
- * PHILOSOPHY: Simplicidade máxima com operações inteligentes
56
- */
57
- const GitFilesInputSchema = zod_1.z.discriminatedUnion('action', [
58
- // READ: Leitura rápida de arquivos
59
- zod_1.z.object({
60
- action: zod_1.z.literal('read'),
61
- projectPath: zod_1.z.string(),
62
- filePath: zod_1.z.string()
63
- }),
64
- // WRITE: Escrita com backup automático
65
- zod_1.z.object({
66
- action: zod_1.z.literal('write'),
67
- projectPath: zod_1.z.string(),
68
- filePath: zod_1.z.string(),
69
- content: zod_1.z.string()
70
- }),
71
- // SEARCH: Busca eficiente no código
72
- zod_1.z.object({
73
- action: zod_1.z.literal('search'),
74
- projectPath: zod_1.z.string(),
75
- query: zod_1.z.string(),
76
- path: zod_1.z.string().optional(),
77
- caseSensitive: zod_1.z.boolean().optional().default(false)
78
- }),
79
- // UPDATE: Atualização com versionamento
80
- zod_1.z.object({
81
- action: zod_1.z.literal('update'),
82
- projectPath: zod_1.z.string(),
83
- filePath: zod_1.z.string(),
84
- content: zod_1.z.string()
85
- }),
86
- // BACKUP-FILES: Backup seletivo de arquivos
87
- zod_1.z.object({
88
- action: zod_1.z.literal('backup-files'),
89
- projectPath: zod_1.z.string(),
90
- patterns: zod_1.z.array(zod_1.z.string()).optional(), // Padrões glob como ['*.js', 'src/**/*']
91
- description: zod_1.z.string().optional()
92
- })
93
- ]);
94
- /**
95
- * Classe principal para executar operações Git files
8
+ * Implementa operações de arquivo no contexto Git:
9
+ * - read: Ler conteúdo de arquivo
10
+ * - create: Criar novo arquivo
11
+ * - update: Atualizar arquivo existente
12
+ * - delete: Remover arquivo
13
+ * - search: Buscar conteúdo em arquivos
14
+ * - backup: Backup de arquivos
96
15
  */
97
- class GitFilesExecutor {
98
- errorHandler = new error_handler_js_1.UniversalErrorHandler();
99
- /**
100
- * Executa operação read
101
- */
102
- async executeRead(detection, input) {
103
- try {
104
- const fullPath = path.resolve(detection.projectPath, input.filePath);
105
- // Verifica se arquivo existe
106
- if (!fs.existsSync(fullPath)) {
107
- throw new Error(`Arquivo não encontrado: ${input.filePath}`);
108
- }
109
- // Lê conteúdo do arquivo
110
- const content = fs.readFileSync(fullPath, 'utf8');
111
- const stats = fs.statSync(fullPath);
112
- return (0, auto_detection_js_1.createUniversalResponse)(true, 'read', 'Arquivo lido com sucesso', detection, 'git-files', {
113
- filePath: input.filePath,
114
- content,
115
- size: stats.size,
116
- modified: stats.mtime.toISOString(),
117
- encoding: 'utf8'
118
- });
119
- }
120
- catch (error) {
121
- this.errorHandler.addError(error, undefined, { action: 'read', projectPath: detection.projectPath, filePath: input.filePath });
122
- return (0, auto_detection_js_1.createUniversalResponse)(false, 'read', 'Falha ao ler arquivo', detection, 'git-files', undefined, this.errorHandler.toUniversalResponse());
123
- }
124
- }
125
- /**
126
- * Executa operação write
127
- */
128
- async executeWrite(detection, input) {
129
- try {
130
- const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
131
- const fullPath = path.resolve(detection.projectPath, input.filePath);
132
- // Cria diretório se não existir
133
- const dir = path.dirname(fullPath);
134
- if (!fs.existsSync(dir)) {
135
- fs.mkdirSync(dir, { recursive: true });
136
- }
137
- // Escreve arquivo
138
- fs.writeFileSync(fullPath, input.content, 'utf8');
139
- // Adiciona ao Git e commita
140
- await gitOps.addFiles([input.filePath]);
141
- const commitMessage = `Update ${input.filePath}`;
142
- await gitOps.commit(commitMessage);
143
- // Push para providers disponíveis
144
- const pushedProviders = [];
145
- for (const provider of detection.providers) {
146
- try {
147
- await gitOps.push('main', provider);
148
- pushedProviders.push(provider);
149
- }
150
- catch (error) {
151
- this.errorHandler.addError(error, provider, { action: 'write', projectPath: detection.projectPath });
152
- }
153
- }
154
- return (0, auto_detection_js_1.createUniversalResponse)(true, 'write', `Arquivo escrito e committado com sucesso. Enviado para ${pushedProviders.length} providers.`, detection, 'git-files', {
155
- filePath: input.filePath,
156
- committed: true,
157
- pushedTo: pushedProviders,
158
- commitMessage,
159
- size: Buffer.byteLength(input.content, 'utf8')
160
- });
161
- }
162
- catch (error) {
163
- this.errorHandler.addError(error, undefined, { action: 'write', projectPath: detection.projectPath, filePath: input.filePath });
164
- return (0, auto_detection_js_1.createUniversalResponse)(false, 'write', 'Falha ao escrever arquivo', detection, 'git-files', undefined, this.errorHandler.toUniversalResponse());
16
+ const inputSchema = {
17
+ type: 'object',
18
+ properties: {
19
+ action: {
20
+ type: 'string',
21
+ enum: ['read', 'create', 'update', 'delete', 'search', 'backup'],
22
+ description: 'Ação de arquivo a executar'
23
+ },
24
+ projectPath: {
25
+ type: 'string',
26
+ description: 'Caminho do projeto (obrigatório)'
27
+ },
28
+ filePath: {
29
+ type: 'string',
30
+ description: 'Caminho do arquivo relativo ao projeto'
31
+ },
32
+ content: {
33
+ type: 'string',
34
+ description: 'Conteúdo do arquivo (para create/update)'
35
+ },
36
+ searchTerm: {
37
+ type: 'string',
38
+ description: 'Termo de busca (para search)'
165
39
  }
166
- }
167
- /**
168
- * Executa operação search
169
- */
170
- async executeSearch(detection, input) {
40
+ },
41
+ required: ['action', 'projectPath']
42
+ };
43
+ exports.gitFilesTool = {
44
+ name: 'git-files',
45
+ description: '📁 GERENCIAMENTO DE ARQUIVOS - Operações de arquivo no contexto Git',
46
+ inputSchema,
47
+ async handler(input) {
171
48
  try {
172
- const searchPath = input.path ? path.resolve(detection.projectPath, input.path) : detection.projectPath;
173
- // Implementa busca simples (pode ser melhorada com grep ou similar)
174
- const results = [];
175
- function searchInDirectory(dir, relativePath = '') {
176
- const items = fs.readdirSync(dir);
177
- for (const item of items) {
178
- const fullPath = path.join(dir, item);
179
- const relPath = path.join(relativePath, item);
180
- const stat = fs.statSync(fullPath);
181
- if (stat.isDirectory() && !item.startsWith('.') && item !== 'node_modules') {
182
- searchInDirectory(fullPath, relPath);
49
+ const { action, projectPath, filePath, content, searchTerm } = input;
50
+ const detection = (0, auto_detection_js_1.autoDetect)(projectPath);
51
+ const fs = require('fs');
52
+ const path = require('path');
53
+ switch (action) {
54
+ case 'read':
55
+ if (!filePath)
56
+ throw new Error('filePath é obrigatório para read');
57
+ const fullPath = path.join(projectPath, filePath);
58
+ const fileContent = fs.readFileSync(fullPath, 'utf8');
59
+ return (0, auto_detection_js_1.createUniversalResponse)(true, action, 'Arquivo lido com sucesso', detection, 'git-files', {
60
+ filePath,
61
+ content: fileContent,
62
+ size: fileContent.length,
63
+ lines: fileContent.split('\n').length
64
+ });
65
+ case 'create':
66
+ if (!filePath)
67
+ throw new Error('filePath é obrigatório para create');
68
+ if (!content)
69
+ throw new Error('content é obrigatório para create');
70
+ const createPath = path.join(projectPath, filePath);
71
+ // Criar diretórios se necessário
72
+ const dir = path.dirname(createPath);
73
+ if (!fs.existsSync(dir)) {
74
+ fs.mkdirSync(dir, { recursive: true });
75
+ }
76
+ fs.writeFileSync(createPath, content, 'utf8');
77
+ return (0, auto_detection_js_1.createUniversalResponse)(true, action, 'Arquivo criado com sucesso', detection, 'git-files', {
78
+ filePath,
79
+ created: true,
80
+ size: content.length
81
+ });
82
+ case 'update':
83
+ if (!filePath)
84
+ throw new Error('filePath é obrigatório para update');
85
+ if (!content)
86
+ throw new Error('content é obrigatório para update');
87
+ const updatePath = path.join(projectPath, filePath);
88
+ if (!fs.existsSync(updatePath)) {
89
+ throw new Error('Arquivo não existe');
90
+ }
91
+ fs.writeFileSync(updatePath, content, 'utf8');
92
+ return (0, auto_detection_js_1.createUniversalResponse)(true, action, 'Arquivo atualizado com sucesso', detection, 'git-files', {
93
+ filePath,
94
+ updated: true,
95
+ size: content.length
96
+ });
97
+ case 'delete':
98
+ if (!filePath)
99
+ throw new Error('filePath é obrigatório para delete');
100
+ const deletePath = path.join(projectPath, filePath);
101
+ if (!fs.existsSync(deletePath)) {
102
+ throw new Error('Arquivo não existe');
183
103
  }
184
- else if (stat.isFile() && (item.endsWith('.js') || item.endsWith('.ts') || item.endsWith('.json') || item.endsWith('.md'))) {
185
- try {
186
- const content = fs.readFileSync(fullPath, 'utf8');
187
- const lines = content.split('\n');
188
- lines.forEach((line, index) => {
189
- const searchLine = input.caseSensitive ? line : line.toLowerCase();
190
- const searchQuery = input.caseSensitive ? input.query : input.query.toLowerCase();
191
- if (searchLine.includes(searchQuery)) {
192
- results.push({
193
- file: relPath,
194
- line: index + 1,
195
- content: line.trim()
196
- });
104
+ fs.unlinkSync(deletePath);
105
+ return (0, auto_detection_js_1.createUniversalResponse)(true, action, 'Arquivo removido com sucesso', detection, 'git-files', {
106
+ filePath,
107
+ deleted: true
108
+ });
109
+ case 'search':
110
+ if (!searchTerm)
111
+ throw new Error('searchTerm é obrigatório para search');
112
+ const results = [];
113
+ const searchDir = (dir) => {
114
+ const items = fs.readdirSync(dir);
115
+ for (const item of items) {
116
+ const itemPath = path.join(dir, item);
117
+ const stat = fs.statSync(itemPath);
118
+ if (stat.isDirectory() && !item.startsWith('.')) {
119
+ searchDir(itemPath);
120
+ }
121
+ else if (stat.isFile() && item.endsWith('.js') || item.endsWith('.ts') || item.endsWith('.md')) {
122
+ try {
123
+ const content = fs.readFileSync(itemPath, 'utf8');
124
+ if (content.includes(searchTerm)) {
125
+ const lines = content.split('\n');
126
+ const matches = lines
127
+ .map((line, index) => ({ line: line.trim(), number: index + 1 }))
128
+ .filter((l) => l.line.includes(searchTerm));
129
+ results.push({
130
+ file: path.relative(projectPath, itemPath),
131
+ matches: matches.slice(0, 5) // Limitar a 5 matches por arquivo
132
+ });
133
+ }
197
134
  }
198
- });
135
+ catch (error) {
136
+ // Ignorar arquivos que não podem ser lidos
137
+ }
138
+ }
199
139
  }
200
- catch (error) {
201
- // Ignora arquivos que não consegue ler
140
+ };
141
+ searchDir(projectPath);
142
+ return (0, auto_detection_js_1.createUniversalResponse)(true, action, `Busca concluída - ${results.length} arquivos encontrados`, detection, 'git-files', {
143
+ searchTerm,
144
+ results: results.slice(0, 20), // Limitar a 20 arquivos
145
+ totalFiles: results.length
146
+ });
147
+ case 'backup':
148
+ // Backup simples dos arquivos principais
149
+ const backupData = [];
150
+ const backupFiles = ['.gitignore', 'package.json', 'README.md', 'tsconfig.json'];
151
+ for (const file of backupFiles) {
152
+ const filePath = path.join(projectPath, file);
153
+ if (fs.existsSync(filePath)) {
154
+ const content = fs.readFileSync(filePath, 'utf8');
155
+ backupData.push({
156
+ file,
157
+ content,
158
+ size: content.length,
159
+ timestamp: new Date().toISOString()
160
+ });
202
161
  }
203
162
  }
204
- }
163
+ return (0, auto_detection_js_1.createUniversalResponse)(true, action, 'Backup de arquivos criado', detection, 'git-files', {
164
+ backupCreated: true,
165
+ files: backupData,
166
+ totalFiles: backupData.length
167
+ });
168
+ default:
169
+ throw new Error(`Ação '${action}' não suportada`);
205
170
  }
206
- searchInDirectory(searchPath);
207
- return (0, auto_detection_js_1.createUniversalResponse)(true, 'search', `Busca concluída. Encontrados ${results.length} resultados.`, detection, 'git-files', {
208
- query: input.query,
209
- caseSensitive: input.caseSensitive,
210
- totalResults: results.length,
211
- results: results.slice(0, 100) // Limita a 100 resultados
212
- });
213
171
  }
214
172
  catch (error) {
215
- this.errorHandler.addError(error, undefined, { action: 'search', projectPath: detection.projectPath, query: input.query });
216
- return (0, auto_detection_js_1.createUniversalResponse)(false, 'search', 'Falha na busca', detection, 'git-files', undefined, this.errorHandler.toUniversalResponse());
217
- }
218
- }
219
- /**
220
- * Executa operação update
221
- */
222
- async executeUpdate(detection, input) {
223
- try {
224
- const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
225
- const fullPath = path.resolve(detection.projectPath, input.filePath);
226
- // Verifica se arquivo existe
227
- if (!fs.existsSync(fullPath)) {
228
- throw new Error(`Arquivo não encontrado para atualização: ${input.filePath}`);
229
- }
230
- // Lê conteúdo atual para backup
231
- const oldContent = fs.readFileSync(fullPath, 'utf8');
232
- // Escreve novo conteúdo
233
- fs.writeFileSync(fullPath, input.content, 'utf8');
234
- // Adiciona ao Git e commita
235
- await gitOps.addFiles([input.filePath]);
236
- const commitMessage = `Update ${input.filePath}`;
237
- await gitOps.commit(commitMessage);
238
- // Push para providers disponíveis
239
- const pushedProviders = [];
240
- for (const provider of detection.providers) {
241
- try {
242
- await gitOps.push('main', provider);
243
- pushedProviders.push(provider);
244
- }
245
- catch (error) {
246
- this.errorHandler.addError(error, provider, { action: 'update', projectPath: detection.projectPath });
247
- }
248
- }
249
- return (0, auto_detection_js_1.createUniversalResponse)(true, 'update', `Arquivo atualizado e committado com sucesso. Enviado para ${pushedProviders.length} providers.`, detection, 'git-files', {
250
- filePath: input.filePath,
251
- committed: true,
252
- pushedTo: pushedProviders,
253
- commitMessage,
254
- oldSize: Buffer.byteLength(oldContent, 'utf8'),
255
- newSize: Buffer.byteLength(input.content, 'utf8')
173
+ const detection = (0, auto_detection_js_1.autoDetect)(input.projectPath || '');
174
+ return (0, auto_detection_js_1.createUniversalResponse)(false, input.action || 'unknown', error instanceof Error ? error.message : String(error), detection, 'git-files', undefined, {
175
+ code: 'FILES_ERROR',
176
+ message: error instanceof Error ? error.message : String(error),
177
+ cause: 'Erro na operação de arquivo',
178
+ suggestion: 'Verifique os parâmetros e permissões de arquivo'
256
179
  });
257
180
  }
258
- catch (error) {
259
- this.errorHandler.addError(error, undefined, { action: 'update', projectPath: detection.projectPath, filePath: input.filePath });
260
- return (0, auto_detection_js_1.createUniversalResponse)(false, 'update', 'Falha ao atualizar arquivo', detection, 'git-files', undefined, this.errorHandler.toUniversalResponse());
261
- }
262
- }
263
- /**
264
- * Executa operação backup-files
265
- */
266
- async executeBackupFiles(detection, input) {
267
- try {
268
- const gitOps = new git_operations_js_1.GitOperations(detection.projectPath);
269
- // Se não especificou padrões, usa padrões comuns
270
- const patterns = input.patterns || ['*.js', '*.ts', '*.json', '*.md', 'src/**/*', 'lib/**/*'];
271
- // Adiciona arquivos matching aos padrões
272
- await gitOps.addFiles(patterns);
273
- // Cria commit de backup
274
- const backupMessage = input.description ?
275
- `Backup: ${input.description}` :
276
- `Backup automático - ${new Date().toISOString()}`;
277
- await gitOps.commit(backupMessage);
278
- // Push para todos os providers
279
- const backedUpTo = [];
280
- for (const provider of detection.providers) {
281
- try {
282
- await gitOps.push('main', provider);
283
- backedUpTo.push(provider);
284
- }
285
- catch (error) {
286
- this.errorHandler.addError(error, provider, { action: 'backup-files', projectPath: detection.projectPath });
287
- }
288
- }
289
- return (0, auto_detection_js_1.createUniversalResponse)(true, 'backup-files', `Backup de arquivos realizado com sucesso em ${backedUpTo.length} providers`, detection, 'git-files', {
290
- patterns,
291
- backupCreated: true,
292
- backedUpTo,
293
- backupMessage,
294
- timestamp: new Date().toISOString()
295
- });
296
- }
297
- catch (error) {
298
- this.errorHandler.addError(error, undefined, { action: 'backup-files', projectPath: detection.projectPath });
299
- return (0, auto_detection_js_1.createUniversalResponse)(false, 'backup-files', 'Falha ao criar backup de arquivos', detection, 'git-files', undefined, this.errorHandler.toUniversalResponse());
300
- }
301
- }
302
- }
303
- // Instância global do executor
304
- const filesExecutor = new GitFilesExecutor();
305
- exports.gitFilesTool = {
306
- name: 'git-files',
307
- description: `🗂️ GERENCIAMENTO DE ARQUIVOS INTELIGENTE - v2.0 AI-First
308
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
309
- 🎯 APENAS 5 AÇÕES OTIMIZADAS (conforme design.md):
310
-
311
- READ: Leitura rápida de arquivos
312
- • Requer apenas: action + projectPath + filePath
313
- • Retorna: conteúdo, metadados, encoding
314
-
315
- WRITE: Escrita com backup automático
316
- • Requer apenas: action + projectPath + filePath + content
317
- • Auto-commita + push para todos os providers
318
-
319
- SEARCH: Busca eficiente no código
320
- • Requer apenas: action + projectPath + query
321
- • Busca em .js, .ts, .json, .md files
322
- • Resultados estruturados para AI parsing
323
-
324
- UPDATE: Atualização com versionamento
325
- • Requer apenas: action + projectPath + filePath + content
326
- • Backup automático + commit inteligente
327
-
328
- BACKUP-FILES: Backup seletivo de arquivos
329
- • Requer apenas: action + projectPath
330
- • Padrões configuráveis (*.js, src/**, etc.)
331
-
332
- ✨ DIFERENCIAIS v2.0:
333
- • Zero-config: Apenas action + projectPath obrigatórios
334
- • Auto-detecção universal: repo/owner/providers do projectPath
335
- • Respostas universais: Funciona com qualquer AI agent/IDE
336
- • Backup automático: Toda alteração é automaticamente versionada
337
- • Busca inteligente: Resultados estruturados para AI processing
338
- • Multi-provider automático: Push automático para todos os providers configurados`,
339
- inputSchema: {
340
- type: 'object',
341
- properties: {
342
- action: {
343
- type: 'string',
344
- enum: ['read', 'write', 'search', 'update', 'backup-files'],
345
- description: 'File operation (apenas 5 ações otimizadas)'
346
- },
347
- projectPath: {
348
- type: 'string',
349
- description: 'Caminho absoluto do projeto (OBRIGATÓRIO - único parâmetro sempre necessário)'
350
- },
351
- filePath: {
352
- type: 'string',
353
- description: 'Caminho do arquivo (obrigatório para read/write/update)'
354
- },
355
- content: {
356
- type: 'string',
357
- description: 'Conteúdo do arquivo (obrigatório para write/update)'
358
- },
359
- query: {
360
- type: 'string',
361
- description: 'Termo de busca (obrigatório para search)'
362
- },
363
- path: {
364
- type: 'string',
365
- description: 'Caminho para busca (opcional, padrão: raiz do projeto)'
366
- },
367
- caseSensitive: {
368
- type: 'boolean',
369
- description: 'Busca case-sensitive (opcional, padrão: false)',
370
- default: false
371
- },
372
- patterns: {
373
- type: 'array',
374
- items: { type: 'string' },
375
- description: 'Padrões glob para backup (opcional, usa padrões comuns se omitido)'
376
- },
377
- description: {
378
- type: 'string',
379
- description: 'Descrição do backup (opcional)'
380
- }
381
- },
382
- required: ['action', 'projectPath']
383
- },
384
- async handler(input) {
385
- try {
386
- // Valida input
387
- const validatedInput = GitFilesInputSchema.parse(input);
388
- // Auto-detecta contexto do projeto
389
- const detection = (0, auto_detection_js_1.autoDetect)(validatedInput.projectPath);
390
- // Valida se a auto-detecção foi bem-sucedida
391
- const validation = (0, auto_detection_js_1.validateAutoDetection)(detection);
392
- if (!validation.isValid) {
393
- return (0, auto_detection_js_1.createUniversalResponse)(false, validatedInput.action, 'Falha na auto-detecção do projeto', detection, 'git-files', { validation }, {
394
- code: 'AUTO_DETECTION_FAILED',
395
- message: 'Não foi possível detectar automaticamente as configurações do projeto',
396
- cause: validation.errors.join('; '),
397
- suggestion: 'Verifique se as variáveis de ambiente estão configuradas: GITEA_USERNAME/GITEA_TOKEN/GITEA_URL ou GITHUB_USERNAME/GITHUB_TOKEN'
398
- });
399
- }
400
- // Executa ação específica
401
- switch (validatedInput.action) {
402
- case 'read':
403
- return await filesExecutor['executeRead'](detection, validatedInput);
404
- case 'write':
405
- return await filesExecutor['executeWrite'](detection, validatedInput);
406
- case 'search':
407
- return await filesExecutor['executeSearch'](detection, validatedInput);
408
- case 'update':
409
- return await filesExecutor['executeUpdate'](detection, validatedInput);
410
- case 'backup-files':
411
- return await filesExecutor['executeBackupFiles'](detection, validatedInput);
412
- }
413
- }
414
- catch (error) {
415
- // Cria resposta de erro universal
416
- const detection = input.projectPath ? (0, auto_detection_js_1.autoDetect)(input.projectPath) : {
417
- projectPath: input.projectPath || 'unknown',
418
- repoName: 'unknown',
419
- owner: 'unknown',
420
- providers: [],
421
- isValidRepo: false
422
- };
423
- const errorHandler = new error_handler_js_1.UniversalErrorHandler();
424
- errorHandler.addError(error, undefined, { action: input.action, projectPath: input.projectPath });
425
- return (0, auto_detection_js_1.createUniversalResponse)(false, input.action, `Erro na operação ${input.action}`, detection, 'git-files', undefined, errorHandler.toUniversalResponse());
426
- }
427
181
  }
428
182
  };
429
183
  //# sourceMappingURL=git-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-files.js","sourceRoot":"","sources":["../../src/tools/git-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-files.js","sourceRoot":"","sources":["../../src/tools/git-files.ts"],"names":[],"mappings":"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"}