@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.
- package/dist/client.d.ts +306 -306
- package/dist/client.js +298 -298
- package/dist/config.d.ts +310 -310
- package/dist/config.js +392 -392
- package/dist/index.d.ts +22 -22
- package/dist/index.js +89 -89
- package/dist/providers/base-provider.d.ts +160 -160
- package/dist/providers/base-provider.js +274 -274
- package/dist/providers/error-handler.d.ts +50 -50
- package/dist/providers/error-handler.js +175 -175
- package/dist/providers/gitea-provider.d.ts +97 -97
- package/dist/providers/gitea-provider.d.ts.map +1 -1
- package/dist/providers/gitea-provider.js +1015 -1001
- package/dist/providers/gitea-provider.js.map +1 -1
- package/dist/providers/github-provider.d.ts +104 -104
- package/dist/providers/github-provider.d.ts.map +1 -1
- package/dist/providers/github-provider.js +1248 -1234
- package/dist/providers/github-provider.js.map +1 -1
- package/dist/providers/index.d.ts +12 -12
- package/dist/providers/index.js +40 -40
- package/dist/providers/provider-factory.d.ts +74 -74
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +318 -311
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/types.d.ts +318 -318
- package/dist/providers/types.js +6 -6
- package/dist/server.d.ts +76 -76
- package/dist/server.js +306 -306
- package/dist/tools/git-archive.d.ts +165 -165
- package/dist/tools/git-archive.js +233 -233
- package/dist/tools/git-branches.d.ts +430 -430
- package/dist/tools/git-branches.js +627 -627
- package/dist/tools/git-commits.d.ts +485 -485
- package/dist/tools/git-commits.js +735 -735
- package/dist/tools/git-commits.js.map +1 -1
- package/dist/tools/git-config.d.ts +140 -140
- package/dist/tools/git-config.js +268 -268
- package/dist/tools/git-files.d.ts +486 -486
- package/dist/tools/git-files.js +607 -607
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-issues.d.ts +574 -571
- package/dist/tools/git-issues.d.ts.map +1 -1
- package/dist/tools/git-issues.js +741 -740
- package/dist/tools/git-issues.js.map +1 -1
- package/dist/tools/git-pulls.d.ts +697 -694
- package/dist/tools/git-pulls.d.ts.map +1 -1
- package/dist/tools/git-pulls.js +733 -732
- package/dist/tools/git-pulls.js.map +1 -1
- package/dist/tools/git-releases.d.ts +490 -487
- package/dist/tools/git-releases.d.ts.map +1 -1
- package/dist/tools/git-releases.js +558 -557
- package/dist/tools/git-releases.js.map +1 -1
- package/dist/tools/git-remote.d.ts +138 -138
- package/dist/tools/git-remote.js +274 -274
- package/dist/tools/git-repositories.d.ts +483 -483
- package/dist/tools/git-repositories.js +640 -640
- package/dist/tools/git-repositories.js.map +1 -1
- package/dist/tools/git-reset.d.ts +130 -130
- package/dist/tools/git-reset.js +223 -223
- package/dist/tools/git-revert.d.ts +149 -149
- package/dist/tools/git-revert.js +198 -198
- package/dist/tools/git-stash.d.ts +140 -140
- package/dist/tools/git-stash.js +269 -269
- package/dist/tools/git-sync.d.ts +178 -178
- package/dist/tools/git-sync.js +312 -312
- package/dist/tools/git-tags.d.ts +414 -411
- package/dist/tools/git-tags.d.ts.map +1 -1
- package/dist/tools/git-tags.js +486 -485
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-webhooks.d.ts +473 -470
- package/dist/tools/git-webhooks.d.ts.map +1 -1
- package/dist/tools/git-webhooks.js +544 -543
- package/dist/tools/git-webhooks.js.map +1 -1
- package/dist/utils/terminal-controller.d.ts +80 -80
- package/dist/utils/terminal-controller.js +345 -345
- package/dist/utils/user-detection.d.ts +24 -24
- package/dist/utils/user-detection.js +53 -53
- package/package.json +2 -2
- package/dist/tools/gh-actions.d.ts +0 -253
- package/dist/tools/gh-actions.d.ts.map +0 -1
- package/dist/tools/gh-actions.js +0 -390
- package/dist/tools/gh-actions.js.map +0 -1
- package/dist/tools/gh-analytics.d.ts +0 -264
- package/dist/tools/gh-analytics.d.ts.map +0 -1
- package/dist/tools/gh-analytics.js +0 -402
- package/dist/tools/gh-analytics.js.map +0 -1
- package/dist/tools/gh-code-review.d.ts +0 -305
- package/dist/tools/gh-code-review.d.ts.map +0 -1
- package/dist/tools/gh-code-review.js +0 -513
- package/dist/tools/gh-code-review.js.map +0 -1
- package/dist/tools/gh-codespaces.d.ts +0 -139
- package/dist/tools/gh-codespaces.d.ts.map +0 -1
- package/dist/tools/gh-codespaces.js +0 -283
- package/dist/tools/gh-codespaces.js.map +0 -1
- package/dist/tools/gh-deployments.d.ts +0 -301
- package/dist/tools/gh-deployments.d.ts.map +0 -1
- package/dist/tools/gh-deployments.js +0 -368
- package/dist/tools/gh-deployments.js.map +0 -1
- package/dist/tools/gh-gists.d.ts +0 -175
- package/dist/tools/gh-gists.d.ts.map +0 -1
- package/dist/tools/gh-gists.js +0 -322
- package/dist/tools/gh-gists.js.map +0 -1
- package/dist/tools/gh-projects.d.ts +0 -206
- package/dist/tools/gh-projects.d.ts.map +0 -1
- package/dist/tools/gh-projects.js +0 -359
- package/dist/tools/gh-projects.js.map +0 -1
- package/dist/tools/gh-security.d.ts +0 -275
- package/dist/tools/gh-security.d.ts.map +0 -1
- package/dist/tools/gh-security.js +0 -396
- package/dist/tools/gh-security.js.map +0 -1
- package/dist/tools/gh-sync.d.ts +0 -214
- package/dist/tools/gh-sync.d.ts.map +0 -1
- package/dist/tools/gh-sync.js +0 -379
- package/dist/tools/gh-sync.js.map +0 -1
- package/dist/tools/gh-workflows.d.ts +0 -291
- package/dist/tools/gh-workflows.d.ts.map +0 -1
- package/dist/tools/gh-workflows.js +0 -433
- package/dist/tools/gh-workflows.js.map +0 -1
- package/dist/tools/git-bundle.d.ts +0 -172
- package/dist/tools/git-bundle.d.ts.map +0 -1
- package/dist/tools/git-bundle.js +0 -242
- package/dist/tools/git-bundle.js.map +0 -1
- package/dist/tools/git-cherry-pick.d.ts +0 -159
- package/dist/tools/git-cherry-pick.d.ts.map +0 -1
- package/dist/tools/git-cherry-pick.js +0 -225
- package/dist/tools/git-cherry-pick.js.map +0 -1
- package/dist/tools/git-rebase.d.ts +0 -138
- package/dist/tools/git-rebase.d.ts.map +0 -1
- package/dist/tools/git-rebase.js +0 -214
- package/dist/tools/git-rebase.js.map +0 -1
- package/dist/tools/git-submodule.d.ts +0 -153
- package/dist/tools/git-submodule.d.ts.map +0 -1
- package/dist/tools/git-submodule.js +0 -290
- package/dist/tools/git-submodule.js.map +0 -1
- package/dist/tools/git-worktree.d.ts +0 -160
- package/dist/tools/git-worktree.d.ts.map +0 -1
- package/dist/tools/git-worktree.js +0 -270
- package/dist/tools/git-worktree.js.map +0 -1
- package/dist/tools/repositories.d.ts +0 -406
- package/dist/tools/repositories.d.ts.map +0 -1
- package/dist/tools/repositories.js +0 -570
- package/dist/tools/repositories.js.map +0 -1
- package/dist/tools/users.d.ts +0 -373
- package/dist/tools/users.d.ts.map +0 -1
- package/dist/tools/users.js +0 -500
- package/dist/tools/users.js.map +0 -1
- package/dist/tools/validator.d.ts +0 -171
- package/dist/tools/validator.d.ts.map +0 -1
- package/dist/tools/validator.js +0 -195
- package/dist/tools/validator.js.map +0 -1
- package/dist/tools/version-control.d.ts +0 -137
- package/dist/tools/version-control.d.ts.map +0 -1
- package/dist/tools/version-control.js +0 -165
- package/dist/tools/version-control.js.map +0 -1
|
@@ -1,234 +1,234 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.gitArchiveTool = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const terminal_controller_js_1 = require("../utils/terminal-controller.js");
|
|
6
|
-
/**
|
|
7
|
-
* Tool: git-archive
|
|
8
|
-
*
|
|
9
|
-
* DESCRIÇÃO:
|
|
10
|
-
* Gerenciamento de arquivos Git (GitHub + Gitea) com múltiplas ações
|
|
11
|
-
*
|
|
12
|
-
* FUNCIONALIDADES:
|
|
13
|
-
* - Criar arquivo
|
|
14
|
-
* - Extrair arquivo
|
|
15
|
-
* - Listar conteúdo do arquivo
|
|
16
|
-
* - Verificar arquivo
|
|
17
|
-
* - Criar tarball
|
|
18
|
-
* - Criar zip
|
|
19
|
-
*
|
|
20
|
-
* USO:
|
|
21
|
-
* - Para criar releases
|
|
22
|
-
* - Para backup de código
|
|
23
|
-
* - Para distribuição de código
|
|
24
|
-
* - Para deploy de versões específicas
|
|
25
|
-
*
|
|
26
|
-
* RECOMENDAÇÕES:
|
|
27
|
-
* - Use para releases oficiais
|
|
28
|
-
* - Inclua apenas arquivos necessários
|
|
29
|
-
* - Teste arquivos antes da distribuição
|
|
30
|
-
*/
|
|
31
|
-
const GitArchiveInputSchema = zod_1.z.object({
|
|
32
|
-
action: zod_1.z.enum(['create', 'extract', 'list', 'verify']),
|
|
33
|
-
// owner: obtido automaticamente do provider,
|
|
34
|
-
repo: zod_1.z.string(),
|
|
35
|
-
provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'),
|
|
36
|
-
projectPath: zod_1.z.string().describe('Local project path for git operations'),
|
|
37
|
-
// Para create
|
|
38
|
-
archive_path: zod_1.z.string().optional(),
|
|
39
|
-
commit_or_tree: zod_1.z.string().optional(),
|
|
40
|
-
format: zod_1.z.enum(['tar', 'zip', 'tar.gz', 'tar.bz2']).optional(),
|
|
41
|
-
// Para extract
|
|
42
|
-
archive_file: zod_1.z.string().optional(),
|
|
43
|
-
extract_path: zod_1.z.string().optional(),
|
|
44
|
-
// Para list
|
|
45
|
-
list_archive: zod_1.z.string().optional(),
|
|
46
|
-
// Para verify
|
|
47
|
-
verify_archive: zod_1.z.string().optional(),
|
|
48
|
-
// Opções
|
|
49
|
-
prefix: zod_1.z.string().optional(),
|
|
50
|
-
output: zod_1.z.string().optional(),
|
|
51
|
-
});
|
|
52
|
-
const GitArchiveResultSchema = zod_1.z.object({
|
|
53
|
-
success: zod_1.z.boolean(),
|
|
54
|
-
action: zod_1.z.string(),
|
|
55
|
-
message: zod_1.z.string(),
|
|
56
|
-
data: zod_1.z.any().optional(),
|
|
57
|
-
error: zod_1.z.string().optional()
|
|
58
|
-
});
|
|
59
|
-
exports.gitArchiveTool = {
|
|
60
|
-
name: 'git-archive',
|
|
61
|
-
description: 'tool: Gerencia arquivos Git para distribuição e backup\n──────────────\naction create: cria arquivo compactado\naction create requires: repo, provider, projectPath, archive_path, commit_or_tree, format, prefix, output\n───────────────\naction extract: extrai arquivo compactado\naction extract requires: repo, provider, projectPath, archive_file, extract_path\n───────────────\naction list: lista conteúdo do arquivo\naction list requires: repo, provider, projectPath, list_archive\n───────────────\naction verify: verifica integridade do arquivo\naction verify requires: repo, provider, projectPath, verify_archive',
|
|
62
|
-
inputSchema: {
|
|
63
|
-
type: 'object',
|
|
64
|
-
properties: {
|
|
65
|
-
action: {
|
|
66
|
-
type: 'string',
|
|
67
|
-
enum: ['create', 'extract', 'list', 'verify'],
|
|
68
|
-
description: 'Action to perform on archives'
|
|
69
|
-
},
|
|
70
|
-
owner: { type: 'string', description: 'Repository owner' },
|
|
71
|
-
repo: { type: 'string', description: 'Repository name' },
|
|
72
|
-
provider: { type: 'string', enum: ['gitea', 'github'], description: 'Provider to use (gitea or github)' },
|
|
73
|
-
projectPath: { type: 'string', description: 'Local project path for git operations' },
|
|
74
|
-
archive_path: { type: 'string', description: 'Archive output path' },
|
|
75
|
-
commit_or_tree: { type: 'string', description: 'Commit or tree to archive' },
|
|
76
|
-
format: { type: 'string', enum: ['tar', 'zip', 'tar.gz', 'tar.bz2'], description: 'Archive format' },
|
|
77
|
-
archive_file: { type: 'string', description: 'Archive file to extract' },
|
|
78
|
-
extract_path: { type: 'string', description: 'Path to extract to' },
|
|
79
|
-
list_archive: { type: 'string', description: 'Archive to list' },
|
|
80
|
-
verify_archive: { type: 'string', description: 'Archive to verify' },
|
|
81
|
-
prefix: { type: 'string', description: 'Prefix for archive entries' },
|
|
82
|
-
output: { type: 'string', description: 'Output file path' }
|
|
83
|
-
},
|
|
84
|
-
required: ['action', 'repo', 'provider', 'projectPath']
|
|
85
|
-
},
|
|
86
|
-
async handler(input) {
|
|
87
|
-
try {
|
|
88
|
-
const validatedInput = GitArchiveInputSchema.parse(input);
|
|
89
|
-
switch (validatedInput.action) {
|
|
90
|
-
case 'create':
|
|
91
|
-
return await this.create(validatedInput);
|
|
92
|
-
case 'extract':
|
|
93
|
-
return await this.extract(validatedInput);
|
|
94
|
-
case 'list':
|
|
95
|
-
return await this.list(validatedInput);
|
|
96
|
-
case 'verify':
|
|
97
|
-
return await this.verify(validatedInput);
|
|
98
|
-
default:
|
|
99
|
-
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
return {
|
|
104
|
-
success: false,
|
|
105
|
-
action: input.action,
|
|
106
|
-
message: 'Erro na operação de archive',
|
|
107
|
-
error: error instanceof Error ? error.message : String(error)
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
async create(params) {
|
|
112
|
-
try {
|
|
113
|
-
if (!params.archive_path || !params.commit_or_tree) {
|
|
114
|
-
throw new Error('archive_path e commit_or_tree são obrigatórios para create');
|
|
115
|
-
}
|
|
116
|
-
const format = params.format || 'tar.gz';
|
|
117
|
-
let gitCommand = `archive --format=${format}`;
|
|
118
|
-
if (params.prefix) {
|
|
119
|
-
gitCommand += ` --prefix=${params.prefix}/`;
|
|
120
|
-
}
|
|
121
|
-
if (params.output) {
|
|
122
|
-
gitCommand += ` --output=${params.output}`;
|
|
123
|
-
}
|
|
124
|
-
gitCommand += ` ${params.commit_or_tree}`;
|
|
125
|
-
const result = await (0, terminal_controller_js_1.runGitCommand)(gitCommand, params.projectPath, 'Criando arquivo');
|
|
126
|
-
if (result.exitCode !== 0) {
|
|
127
|
-
throw new Error(`Falha ao criar arquivo: ${result.output}`);
|
|
128
|
-
}
|
|
129
|
-
return {
|
|
130
|
-
success: true,
|
|
131
|
-
action: 'create',
|
|
132
|
-
message: `Arquivo criado com sucesso: ${params.archive_path}`,
|
|
133
|
-
data: {
|
|
134
|
-
archive_path: params.archive_path,
|
|
135
|
-
commit_or_tree: params.commit_or_tree,
|
|
136
|
-
format,
|
|
137
|
-
prefix: params.prefix,
|
|
138
|
-
output: params.output,
|
|
139
|
-
output_result: result.output
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
throw new Error(`Falha ao criar arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
async extract(params) {
|
|
148
|
-
try {
|
|
149
|
-
if (!params.archive_file || !params.extract_path) {
|
|
150
|
-
throw new Error('archive_file e extract_path são obrigatórios para extract');
|
|
151
|
-
}
|
|
152
|
-
const result = await (0, terminal_controller_js_1.runTerminalCmd)({
|
|
153
|
-
command: `tar -xf ${params.archive_file} -C ${params.extract_path}`,
|
|
154
|
-
is_background: false,
|
|
155
|
-
explanation: 'Extraindo arquivo',
|
|
156
|
-
projectPath: params.projectPath
|
|
157
|
-
});
|
|
158
|
-
if (result.exitCode !== 0) {
|
|
159
|
-
throw new Error(`Falha ao extrair arquivo: ${result.output}`);
|
|
160
|
-
}
|
|
161
|
-
return {
|
|
162
|
-
success: true,
|
|
163
|
-
action: 'extract',
|
|
164
|
-
message: `Arquivo extraído com sucesso para ${params.extract_path}`,
|
|
165
|
-
data: {
|
|
166
|
-
archive_file: params.archive_file,
|
|
167
|
-
extract_path: params.extract_path,
|
|
168
|
-
output: result.output
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
throw new Error(`Falha ao extrair arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
async list(params) {
|
|
177
|
-
try {
|
|
178
|
-
if (!params.list_archive) {
|
|
179
|
-
throw new Error('list_archive é obrigatório para list');
|
|
180
|
-
}
|
|
181
|
-
const result = await (0, terminal_controller_js_1.runTerminalCmd)({
|
|
182
|
-
command: `tar -tf ${params.list_archive}`,
|
|
183
|
-
is_background: false,
|
|
184
|
-
explanation: 'Listando conteúdo do arquivo',
|
|
185
|
-
projectPath: params.projectPath
|
|
186
|
-
});
|
|
187
|
-
if (result.exitCode !== 0) {
|
|
188
|
-
throw new Error(`Falha ao listar arquivo: ${result.output}`);
|
|
189
|
-
}
|
|
190
|
-
const files = result.output.split('\n').filter((line) => line.trim());
|
|
191
|
-
return {
|
|
192
|
-
success: true,
|
|
193
|
-
action: 'list',
|
|
194
|
-
message: `Conteúdo do arquivo listado com sucesso: ${params.list_archive}`,
|
|
195
|
-
data: {
|
|
196
|
-
archive: params.list_archive,
|
|
197
|
-
files,
|
|
198
|
-
output: result.output
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
catch (error) {
|
|
203
|
-
throw new Error(`Falha ao listar arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
async verify(params) {
|
|
207
|
-
try {
|
|
208
|
-
if (!params.verify_archive) {
|
|
209
|
-
throw new Error('verify_archive é obrigatório para verify');
|
|
210
|
-
}
|
|
211
|
-
const result = await (0, terminal_controller_js_1.runTerminalCmd)({
|
|
212
|
-
command: `tar -tf ${params.verify_archive} > /dev/null`,
|
|
213
|
-
is_background: false,
|
|
214
|
-
explanation: 'Verificando arquivo',
|
|
215
|
-
projectPath: params.projectPath
|
|
216
|
-
});
|
|
217
|
-
const isValid = result.exitCode === 0;
|
|
218
|
-
return {
|
|
219
|
-
success: true,
|
|
220
|
-
action: 'verify',
|
|
221
|
-
message: `Arquivo ${isValid ? 'válido' : 'inválido'}: ${params.verify_archive}`,
|
|
222
|
-
data: {
|
|
223
|
-
archive: params.verify_archive,
|
|
224
|
-
valid: isValid,
|
|
225
|
-
output: result.output
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
catch (error) {
|
|
230
|
-
throw new Error(`Falha ao verificar arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gitArchiveTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const terminal_controller_js_1 = require("../utils/terminal-controller.js");
|
|
6
|
+
/**
|
|
7
|
+
* Tool: git-archive
|
|
8
|
+
*
|
|
9
|
+
* DESCRIÇÃO:
|
|
10
|
+
* Gerenciamento de arquivos Git (GitHub + Gitea) com múltiplas ações
|
|
11
|
+
*
|
|
12
|
+
* FUNCIONALIDADES:
|
|
13
|
+
* - Criar arquivo
|
|
14
|
+
* - Extrair arquivo
|
|
15
|
+
* - Listar conteúdo do arquivo
|
|
16
|
+
* - Verificar arquivo
|
|
17
|
+
* - Criar tarball
|
|
18
|
+
* - Criar zip
|
|
19
|
+
*
|
|
20
|
+
* USO:
|
|
21
|
+
* - Para criar releases
|
|
22
|
+
* - Para backup de código
|
|
23
|
+
* - Para distribuição de código
|
|
24
|
+
* - Para deploy de versões específicas
|
|
25
|
+
*
|
|
26
|
+
* RECOMENDAÇÕES:
|
|
27
|
+
* - Use para releases oficiais
|
|
28
|
+
* - Inclua apenas arquivos necessários
|
|
29
|
+
* - Teste arquivos antes da distribuição
|
|
30
|
+
*/
|
|
31
|
+
const GitArchiveInputSchema = zod_1.z.object({
|
|
32
|
+
action: zod_1.z.enum(['create', 'extract', 'list', 'verify']),
|
|
33
|
+
// owner: obtido automaticamente do provider,
|
|
34
|
+
repo: zod_1.z.string(),
|
|
35
|
+
provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'),
|
|
36
|
+
projectPath: zod_1.z.string().describe('Local project path for git operations'),
|
|
37
|
+
// Para create
|
|
38
|
+
archive_path: zod_1.z.string().optional(),
|
|
39
|
+
commit_or_tree: zod_1.z.string().optional(),
|
|
40
|
+
format: zod_1.z.enum(['tar', 'zip', 'tar.gz', 'tar.bz2']).optional(),
|
|
41
|
+
// Para extract
|
|
42
|
+
archive_file: zod_1.z.string().optional(),
|
|
43
|
+
extract_path: zod_1.z.string().optional(),
|
|
44
|
+
// Para list
|
|
45
|
+
list_archive: zod_1.z.string().optional(),
|
|
46
|
+
// Para verify
|
|
47
|
+
verify_archive: zod_1.z.string().optional(),
|
|
48
|
+
// Opções
|
|
49
|
+
prefix: zod_1.z.string().optional(),
|
|
50
|
+
output: zod_1.z.string().optional(),
|
|
51
|
+
});
|
|
52
|
+
const GitArchiveResultSchema = zod_1.z.object({
|
|
53
|
+
success: zod_1.z.boolean(),
|
|
54
|
+
action: zod_1.z.string(),
|
|
55
|
+
message: zod_1.z.string(),
|
|
56
|
+
data: zod_1.z.any().optional(),
|
|
57
|
+
error: zod_1.z.string().optional()
|
|
58
|
+
});
|
|
59
|
+
exports.gitArchiveTool = {
|
|
60
|
+
name: 'git-archive',
|
|
61
|
+
description: 'tool: Gerencia arquivos Git para distribuição e backup\n──────────────\naction create: cria arquivo compactado\naction create requires: repo, provider, projectPath, archive_path, commit_or_tree, format, prefix, output\n───────────────\naction extract: extrai arquivo compactado\naction extract requires: repo, provider, projectPath, archive_file, extract_path\n───────────────\naction list: lista conteúdo do arquivo\naction list requires: repo, provider, projectPath, list_archive\n───────────────\naction verify: verifica integridade do arquivo\naction verify requires: repo, provider, projectPath, verify_archive',
|
|
62
|
+
inputSchema: {
|
|
63
|
+
type: 'object',
|
|
64
|
+
properties: {
|
|
65
|
+
action: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
enum: ['create', 'extract', 'list', 'verify'],
|
|
68
|
+
description: 'Action to perform on archives'
|
|
69
|
+
},
|
|
70
|
+
owner: { type: 'string', description: 'Repository owner' },
|
|
71
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
72
|
+
provider: { type: 'string', enum: ['gitea', 'github'], description: 'Provider to use (gitea or github)' },
|
|
73
|
+
projectPath: { type: 'string', description: 'Local project path for git operations' },
|
|
74
|
+
archive_path: { type: 'string', description: 'Archive output path' },
|
|
75
|
+
commit_or_tree: { type: 'string', description: 'Commit or tree to archive' },
|
|
76
|
+
format: { type: 'string', enum: ['tar', 'zip', 'tar.gz', 'tar.bz2'], description: 'Archive format' },
|
|
77
|
+
archive_file: { type: 'string', description: 'Archive file to extract' },
|
|
78
|
+
extract_path: { type: 'string', description: 'Path to extract to' },
|
|
79
|
+
list_archive: { type: 'string', description: 'Archive to list' },
|
|
80
|
+
verify_archive: { type: 'string', description: 'Archive to verify' },
|
|
81
|
+
prefix: { type: 'string', description: 'Prefix for archive entries' },
|
|
82
|
+
output: { type: 'string', description: 'Output file path' }
|
|
83
|
+
},
|
|
84
|
+
required: ['action', 'repo', 'provider', 'projectPath']
|
|
85
|
+
},
|
|
86
|
+
async handler(input) {
|
|
87
|
+
try {
|
|
88
|
+
const validatedInput = GitArchiveInputSchema.parse(input);
|
|
89
|
+
switch (validatedInput.action) {
|
|
90
|
+
case 'create':
|
|
91
|
+
return await this.create(validatedInput);
|
|
92
|
+
case 'extract':
|
|
93
|
+
return await this.extract(validatedInput);
|
|
94
|
+
case 'list':
|
|
95
|
+
return await this.list(validatedInput);
|
|
96
|
+
case 'verify':
|
|
97
|
+
return await this.verify(validatedInput);
|
|
98
|
+
default:
|
|
99
|
+
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return {
|
|
104
|
+
success: false,
|
|
105
|
+
action: input.action,
|
|
106
|
+
message: 'Erro na operação de archive',
|
|
107
|
+
error: error instanceof Error ? error.message : String(error)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
async create(params) {
|
|
112
|
+
try {
|
|
113
|
+
if (!params.archive_path || !params.commit_or_tree) {
|
|
114
|
+
throw new Error('archive_path e commit_or_tree são obrigatórios para create');
|
|
115
|
+
}
|
|
116
|
+
const format = params.format || 'tar.gz';
|
|
117
|
+
let gitCommand = `archive --format=${format}`;
|
|
118
|
+
if (params.prefix) {
|
|
119
|
+
gitCommand += ` --prefix=${params.prefix}/`;
|
|
120
|
+
}
|
|
121
|
+
if (params.output) {
|
|
122
|
+
gitCommand += ` --output=${params.output}`;
|
|
123
|
+
}
|
|
124
|
+
gitCommand += ` ${params.commit_or_tree}`;
|
|
125
|
+
const result = await (0, terminal_controller_js_1.runGitCommand)(gitCommand, params.projectPath, 'Criando arquivo');
|
|
126
|
+
if (result.exitCode !== 0) {
|
|
127
|
+
throw new Error(`Falha ao criar arquivo: ${result.output}`);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
success: true,
|
|
131
|
+
action: 'create',
|
|
132
|
+
message: `Arquivo criado com sucesso: ${params.archive_path}`,
|
|
133
|
+
data: {
|
|
134
|
+
archive_path: params.archive_path,
|
|
135
|
+
commit_or_tree: params.commit_or_tree,
|
|
136
|
+
format,
|
|
137
|
+
prefix: params.prefix,
|
|
138
|
+
output: params.output,
|
|
139
|
+
output_result: result.output
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
throw new Error(`Falha ao criar arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
async extract(params) {
|
|
148
|
+
try {
|
|
149
|
+
if (!params.archive_file || !params.extract_path) {
|
|
150
|
+
throw new Error('archive_file e extract_path são obrigatórios para extract');
|
|
151
|
+
}
|
|
152
|
+
const result = await (0, terminal_controller_js_1.runTerminalCmd)({
|
|
153
|
+
command: `tar -xf ${params.archive_file} -C ${params.extract_path}`,
|
|
154
|
+
is_background: false,
|
|
155
|
+
explanation: 'Extraindo arquivo',
|
|
156
|
+
projectPath: params.projectPath
|
|
157
|
+
});
|
|
158
|
+
if (result.exitCode !== 0) {
|
|
159
|
+
throw new Error(`Falha ao extrair arquivo: ${result.output}`);
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
success: true,
|
|
163
|
+
action: 'extract',
|
|
164
|
+
message: `Arquivo extraído com sucesso para ${params.extract_path}`,
|
|
165
|
+
data: {
|
|
166
|
+
archive_file: params.archive_file,
|
|
167
|
+
extract_path: params.extract_path,
|
|
168
|
+
output: result.output
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
throw new Error(`Falha ao extrair arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
async list(params) {
|
|
177
|
+
try {
|
|
178
|
+
if (!params.list_archive) {
|
|
179
|
+
throw new Error('list_archive é obrigatório para list');
|
|
180
|
+
}
|
|
181
|
+
const result = await (0, terminal_controller_js_1.runTerminalCmd)({
|
|
182
|
+
command: `tar -tf ${params.list_archive}`,
|
|
183
|
+
is_background: false,
|
|
184
|
+
explanation: 'Listando conteúdo do arquivo',
|
|
185
|
+
projectPath: params.projectPath
|
|
186
|
+
});
|
|
187
|
+
if (result.exitCode !== 0) {
|
|
188
|
+
throw new Error(`Falha ao listar arquivo: ${result.output}`);
|
|
189
|
+
}
|
|
190
|
+
const files = result.output.split('\n').filter((line) => line.trim());
|
|
191
|
+
return {
|
|
192
|
+
success: true,
|
|
193
|
+
action: 'list',
|
|
194
|
+
message: `Conteúdo do arquivo listado com sucesso: ${params.list_archive}`,
|
|
195
|
+
data: {
|
|
196
|
+
archive: params.list_archive,
|
|
197
|
+
files,
|
|
198
|
+
output: result.output
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
throw new Error(`Falha ao listar arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
async verify(params) {
|
|
207
|
+
try {
|
|
208
|
+
if (!params.verify_archive) {
|
|
209
|
+
throw new Error('verify_archive é obrigatório para verify');
|
|
210
|
+
}
|
|
211
|
+
const result = await (0, terminal_controller_js_1.runTerminalCmd)({
|
|
212
|
+
command: `tar -tf ${params.verify_archive} > /dev/null`,
|
|
213
|
+
is_background: false,
|
|
214
|
+
explanation: 'Verificando arquivo',
|
|
215
|
+
projectPath: params.projectPath
|
|
216
|
+
});
|
|
217
|
+
const isValid = result.exitCode === 0;
|
|
218
|
+
return {
|
|
219
|
+
success: true,
|
|
220
|
+
action: 'verify',
|
|
221
|
+
message: `Arquivo ${isValid ? 'válido' : 'inválido'}: ${params.verify_archive}`,
|
|
222
|
+
data: {
|
|
223
|
+
archive: params.verify_archive,
|
|
224
|
+
valid: isValid,
|
|
225
|
+
output: result.output
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
throw new Error(`Falha ao verificar arquivo: ${error instanceof Error ? error.message : String(error)}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
234
|
//# sourceMappingURL=git-archive.js.map
|