@andrebuzeli/git-mcp 3.0.1 → 3.1.0

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 (61) hide show
  1. package/README.md +329 -356
  2. package/dist/server.d.ts.map +1 -1
  3. package/dist/server.js +83 -82
  4. package/dist/server.js.map +1 -1
  5. package/dist/tools/git-branches.d.ts +359 -125
  6. package/dist/tools/git-branches.d.ts.map +1 -1
  7. package/dist/tools/git-branches.js +530 -179
  8. package/dist/tools/git-branches.js.map +1 -1
  9. package/dist/tools/git-commits.d.ts +2 -2
  10. package/dist/tools/git-config.d.ts +2 -2
  11. package/dist/tools/git-files.d.ts +406 -246
  12. package/dist/tools/git-files.d.ts.map +1 -1
  13. package/dist/tools/git-files.js +499 -556
  14. package/dist/tools/git-files.js.map +1 -1
  15. package/dist/tools/git-issues.d.ts +10 -10
  16. package/dist/tools/git-packages.d.ts +2 -2
  17. package/dist/tools/git-projects.d.ts +57 -142
  18. package/dist/tools/git-projects.d.ts.map +1 -1
  19. package/dist/tools/git-projects.js +283 -281
  20. package/dist/tools/git-projects.js.map +1 -1
  21. package/dist/tools/git-publish.d.ts +327 -0
  22. package/dist/tools/git-publish.d.ts.map +1 -0
  23. package/dist/tools/git-publish.js +632 -0
  24. package/dist/tools/git-publish.js.map +1 -0
  25. package/dist/tools/git-pulls.d.ts +16 -16
  26. package/dist/tools/git-releases.d.ts +401 -131
  27. package/dist/tools/git-releases.d.ts.map +1 -1
  28. package/dist/tools/git-releases.js +469 -374
  29. package/dist/tools/git-releases.js.map +1 -1
  30. package/dist/tools/git-remote.d.ts +4 -4
  31. package/dist/tools/git-repositories.d.ts +8 -8
  32. package/dist/tools/git-reset.d.ts +65 -106
  33. package/dist/tools/git-reset.d.ts.map +1 -1
  34. package/dist/tools/git-reset.js +149 -265
  35. package/dist/tools/git-reset.js.map +1 -1
  36. package/dist/tools/git-stash.d.ts +68 -110
  37. package/dist/tools/git-stash.d.ts.map +1 -1
  38. package/dist/tools/git-stash.js +186 -311
  39. package/dist/tools/git-stash.js.map +1 -1
  40. package/dist/tools/git-sync.d.ts +80 -149
  41. package/dist/tools/git-sync.d.ts.map +1 -1
  42. package/dist/tools/git-sync.js +246 -346
  43. package/dist/tools/git-sync.js.map +1 -1
  44. package/dist/tools/git-tags.d.ts +2 -2
  45. package/dist/tools/git-update-project.d.ts +159 -4
  46. package/dist/tools/git-update-project.d.ts.map +1 -1
  47. package/dist/tools/git-update-project.js +349 -7
  48. package/dist/tools/git-update-project.js.map +1 -1
  49. package/dist/tools/git-workflow.d.ts +259 -200
  50. package/dist/tools/git-workflow.d.ts.map +1 -1
  51. package/dist/tools/git-workflow.js +498 -424
  52. package/dist/tools/git-workflow.js.map +1 -1
  53. package/package.json +14 -5
  54. package/dist/tools/git-undo.d.ts +0 -268
  55. package/dist/tools/git-undo.d.ts.map +0 -1
  56. package/dist/tools/git-undo.js +0 -516
  57. package/dist/tools/git-undo.js.map +0 -1
  58. package/dist/tools/git-versioning.d.ts +0 -286
  59. package/dist/tools/git-versioning.d.ts.map +0 -1
  60. package/dist/tools/git-versioning.js +0 -483
  61. package/dist/tools/git-versioning.js.map +0 -1
@@ -4,314 +4,316 @@ exports.gitProjectsTool = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const index_js_1 = require("../providers/index.js");
6
6
  const user_detection_js_1 = require("../utils/user-detection.js");
7
- const git_operations_js_1 = require("../utils/git-operations.js");
8
- /**
9
- * Tool: git-projects
10
- *
11
- * FERRAMENTA UNIFICADA PARA GERENCIAMENTO DE PROJETOS
12
- * Combina as funcionalidades essenciais de:
13
- * - git-repositories (CRUD de repositórios)
14
- * - git-files (operações básicas de arquivo)
15
- *
16
- * DESIGNED FOR: Programador individual autônomo
17
- * PHILOSOPHY: Simplicidade + Funcionalidade + Error Handling Robusto
18
- */
19
- const GitProjectsInputSchema = zod_1.z.discriminatedUnion('action', [
20
- // GERENCIAMENTO DE REPOSITÓRIOS
21
- zod_1.z.object({
22
- action: zod_1.z.literal('create'),
23
- name: zod_1.z.string(),
24
- description: zod_1.z.string().optional(),
25
- private: zod_1.z.boolean().optional().default(false),
26
- provider: zod_1.z.enum(['gitea', 'github'])
27
- }),
28
- zod_1.z.object({
29
- action: zod_1.z.literal('list'),
30
- provider: zod_1.z.enum(['gitea', 'github']),
31
- limit: zod_1.z.number().optional().default(20)
32
- }),
33
- zod_1.z.object({
34
- action: zod_1.z.literal('clone'),
35
- name: zod_1.z.string(),
36
- provider: zod_1.z.enum(['gitea', 'github']),
37
- projectPath: zod_1.z.string()
38
- }),
39
- // OPERAÇÕES DE ARQUIVO
40
- zod_1.z.object({
41
- action: zod_1.z.literal('create-file'),
42
- projectPath: zod_1.z.string(),
43
- filePath: zod_1.z.string(),
44
- content: zod_1.z.string()
45
- }),
46
- zod_1.z.object({
47
- action: zod_1.z.literal('read-file'),
48
- projectPath: zod_1.z.string(),
49
- filePath: zod_1.z.string()
50
- }),
51
- zod_1.z.object({
52
- action: zod_1.z.literal('list-files'),
53
- projectPath: zod_1.z.string(),
54
- path: zod_1.z.string().optional().default('.')
55
- })
56
- ]);
57
- const GitProjectsResultSchema = zod_1.z.object({
58
- success: zod_1.z.boolean(),
59
- action: zod_1.z.string(),
60
- message: zod_1.z.string(),
61
- data: zod_1.z.any().optional(),
62
- error: zod_1.z.string().optional(),
63
- recoverable: zod_1.z.boolean().optional(),
64
- suggestion: zod_1.z.string().optional()
7
+ // Schema de validação para entrada
8
+ const GitProjectsInputSchema = zod_1.z.object({
9
+ action: zod_1.z.enum(['list', 'get', 'create', 'update', 'delete', 'addItem', 'updateItem', 'deleteItem', 'listItems']),
10
+ repo: zod_1.z.string(),
11
+ provider: zod_1.z.enum(['gitea', 'github']),
12
+ projectPath: zod_1.z.string(),
13
+ project_id: zod_1.z.string().optional(),
14
+ name: zod_1.z.string().optional(),
15
+ description: zod_1.z.string().optional(),
16
+ updates: zod_1.z.object({}).passthrough().optional(),
17
+ item: zod_1.z.object({}).passthrough().optional(),
18
+ item_id: zod_1.z.string().optional(),
19
+ page: zod_1.z.number().min(1).default(1),
20
+ limit: zod_1.z.number().min(1).max(100).default(10)
65
21
  });
66
- /**
67
- * Enhanced Error Handler for Projects
68
- */
69
- class ProjectErrorHandler {
70
- static handleError(error, context) {
71
- const errorMessage = error instanceof Error ? error.message : String(error);
72
- const errorPatterns = [
73
- {
74
- pattern: /repository.*already exists/i,
75
- suggestion: "Choose a different repository name",
76
- recoverable: true
77
- },
78
- {
79
- pattern: /not found/i,
80
- suggestion: "Check repository name and permissions",
81
- recoverable: true
82
- },
83
- {
84
- pattern: /authentication failed/i,
85
- suggestion: "Verify your token configuration",
86
- recoverable: true
87
- },
88
- {
89
- pattern: /permission denied/i,
90
- suggestion: "Check repository access permissions",
91
- recoverable: true
92
- },
93
- {
94
- pattern: /directory.*not empty/i,
95
- suggestion: "Choose an empty directory or different path",
96
- recoverable: true
97
- }
98
- ];
99
- const matchedPattern = errorPatterns.find(p => p.pattern.test(errorMessage));
100
- return {
101
- success: false,
102
- action: context,
103
- message: `Error in ${context}: ${errorMessage}`,
104
- error: errorMessage,
105
- recoverable: matchedPattern?.recoverable || false,
106
- suggestion: matchedPattern?.suggestion
107
- };
108
- }
109
- }
110
22
  exports.gitProjectsTool = {
111
23
  name: 'git-projects',
112
- description: `📁 GERENCIAMENTO DE PROJETOS E ARQUIVOS
113
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
- 🏗️ REPOSITÓRIOS:
115
- • create: Criar novo repositório remoto
116
- • list: Listar seus repositórios
117
- • clone: Clonar repositório localmente
118
-
119
- 📄 ARQUIVOS:
120
- • create-file: Criar arquivo local
121
- • read-file: Ler arquivo local
122
- • list-files: Listar arquivos/diretórios
123
-
124
- ✨ DIFERENCIAIS:
125
- • Error handling inteligente com sugestões
126
- • Operações seguras com validação
127
- • Suporte completo a múltiplos providers`,
24
+ description: 'tool: Gerencia projetos Git para organização e planejamento\n──────────────\naction list: lista projetos do repositório\naction list requires: repo, provider, projectPath\n───────────────\naction get: obtém detalhes de projeto específico\naction get requires: repo, project_id, provider, projectPath\n───────────────\naction create: cria novo projeto\naction create requires: repo, name, description, provider, projectPath\n───────────────\naction update: atualiza projeto existente\naction update requires: repo, project_id, updates, provider, projectPath\n───────────────\naction delete: remove projeto\naction delete requires: repo, project_id, provider, projectPath\n───────────────\naction addItem: adiciona item ao projeto\naction addItem requires: repo, project_id, item, provider, projectPath\n───────────────\naction updateItem: atualiza item do projeto\naction updateItem requires: repo, project_id, item_id, updates, provider, projectPath\n───────────────\naction deleteItem: remove item do projeto\naction deleteItem requires: repo, project_id, item_id, provider, projectPath\n───────────────\naction listItems: lista itens do projeto\naction listItems requires: repo, project_id, provider, projectPath',
128
25
  inputSchema: {
129
26
  type: 'object',
130
27
  properties: {
131
28
  action: {
132
29
  type: 'string',
133
- enum: ['create', 'list', 'clone', 'create-file', 'read-file', 'list-files'],
134
- description: 'Project action to perform'
30
+ enum: ['list', 'get', 'create', 'update', 'delete', 'addItem', 'updateItem', 'deleteItem', 'listItems'],
31
+ description: 'Action to perform on projects'
32
+ },
33
+ repo: {
34
+ type: 'string',
35
+ description: 'Repository name'
36
+ },
37
+ provider: {
38
+ type: 'string',
39
+ enum: ['gitea', 'github'],
40
+ description: 'Provider to use (gitea or github)'
41
+ },
42
+ projectPath: {
43
+ type: 'string',
44
+ description: 'Local project path for git operations'
135
45
  },
136
- name: { type: 'string', description: 'Repository/project name' },
137
- description: { type: 'string', description: 'Project description' },
138
- private: { type: 'boolean', description: 'Private repository', default: false },
139
- provider: { type: 'string', enum: ['gitea', 'github'], description: 'Git provider' },
140
- projectPath: { type: 'string', description: 'Local project path' },
141
- filePath: { type: 'string', description: 'File path' },
142
- content: { type: 'string', description: 'File content' },
143
- path: { type: 'string', description: 'Directory path', default: '.' },
144
- limit: { type: 'number', description: 'Result limit', default: 20 }
46
+ project_id: {
47
+ type: 'string',
48
+ description: 'Project ID for get/update/delete operations'
49
+ },
50
+ name: {
51
+ type: 'string',
52
+ description: 'Project name for creation'
53
+ },
54
+ description: {
55
+ type: 'string',
56
+ description: 'Project description'
57
+ },
58
+ updates: {
59
+ type: 'object',
60
+ description: 'Updates to apply to project'
61
+ },
62
+ item: {
63
+ type: 'object',
64
+ description: 'Item to add to project'
65
+ },
66
+ item_id: {
67
+ type: 'string',
68
+ description: 'Item ID for update/delete operations'
69
+ },
70
+ page: {
71
+ type: 'number',
72
+ description: 'Page number',
73
+ minimum: 1
74
+ },
75
+ limit: {
76
+ type: 'number',
77
+ description: 'Items per page',
78
+ minimum: 1,
79
+ maximum: 100
80
+ }
145
81
  },
146
- required: ['action']
82
+ required: ['action', 'repo', 'provider', 'projectPath']
147
83
  },
148
84
  async handler(input) {
149
85
  try {
150
86
  const validatedInput = GitProjectsInputSchema.parse(input);
151
- switch (validatedInput.action) {
152
- case 'create':
153
- return await this.handleCreate(validatedInput);
87
+ // Aplicar auto-detecção apenas para owner/username dentro do provider especificado
88
+ const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
89
+ // Usar o provider especificado pelo usuário (obrigatório)
90
+ if (!processedInput.provider) {
91
+ throw new Error("Parâmetro 'provider' é obrigatório e não pode ser omitido");
92
+ }
93
+ const provider = index_js_1.globalProviderFactory.getProvider(processedInput.provider);
94
+ if (!provider) {
95
+ throw new Error(`Provider '${processedInput.provider}' não encontrado`);
96
+ }
97
+ switch (processedInput.action) {
154
98
  case 'list':
155
- return await this.handleList(validatedInput);
156
- case 'clone':
157
- return await this.handleClone(validatedInput);
158
- case 'create-file':
159
- return await this.handleCreateFile(validatedInput);
160
- case 'read-file':
161
- return await this.handleReadFile(validatedInput);
162
- case 'list-files':
163
- return await this.handleListFiles(validatedInput);
99
+ return await listProjects(provider, processedInput.repo, processedInput.page, processedInput.limit);
100
+ case 'get':
101
+ if (!processedInput.project_id) {
102
+ throw new Error('project_id is required for get action');
103
+ }
104
+ return await getProject(provider, processedInput.repo, processedInput.project_id);
105
+ case 'create':
106
+ if (!processedInput.name || !processedInput.description) {
107
+ throw new Error('name and description are required for create action');
108
+ }
109
+ return await createProject(provider, processedInput.repo, processedInput.name, processedInput.description);
110
+ case 'update':
111
+ if (!processedInput.project_id || !processedInput.updates) {
112
+ throw new Error('project_id and updates are required for update action');
113
+ }
114
+ return await updateProject(provider, processedInput.repo, processedInput.project_id, processedInput.updates);
115
+ case 'delete':
116
+ if (!processedInput.project_id) {
117
+ throw new Error('project_id is required for delete action');
118
+ }
119
+ return await deleteProject(provider, processedInput.repo, processedInput.project_id);
120
+ case 'addItem':
121
+ if (!processedInput.project_id || !processedInput.item) {
122
+ throw new Error('project_id and item are required for addItem action');
123
+ }
124
+ return await addProjectItem(provider, processedInput.repo, processedInput.project_id, processedInput.item);
125
+ case 'updateItem':
126
+ if (!processedInput.project_id || !processedInput.item_id || !processedInput.updates) {
127
+ throw new Error('project_id, item_id and updates are required for updateItem action');
128
+ }
129
+ return await updateProjectItem(provider, processedInput.repo, processedInput.project_id, processedInput.item_id, processedInput.updates);
130
+ case 'deleteItem':
131
+ if (!processedInput.project_id || !processedInput.item_id) {
132
+ throw new Error('project_id and item_id are required for deleteItem action');
133
+ }
134
+ return await deleteProjectItem(provider, processedInput.repo, processedInput.project_id, processedInput.item_id);
135
+ case 'listItems':
136
+ if (!processedInput.project_id) {
137
+ throw new Error('project_id is required for listItems action');
138
+ }
139
+ return await listProjectItems(provider, processedInput.repo, processedInput.project_id, processedInput.page, processedInput.limit);
164
140
  default:
165
- throw new Error(`Action '${validatedInput.action}' not supported`);
141
+ throw new Error(`Unknown action: ${processedInput.action}`);
166
142
  }
167
143
  }
168
144
  catch (error) {
169
- return ProjectErrorHandler.handleError(error, `projects.${input.action}`);
170
- }
171
- },
172
- async handleCreate(params) {
173
- const { name, description, private: isPrivate, provider } = params;
174
- try {
175
- const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)({ provider }, provider);
176
- const providerInstance = index_js_1.globalProviderFactory.getProvider(provider);
177
- if (!providerInstance) {
178
- throw new Error(`Provider ${provider} not configured`);
179
- }
180
- const repo = await providerInstance.createRepository(name, description || `Project created via MCP`, isPrivate);
181
145
  return {
182
- success: true,
183
- action: 'create',
184
- message: 'Repository created successfully',
185
- data: {
186
- name,
187
- url: repo.html_url,
188
- clone_url: repo.clone_url,
189
- private: repo.private
190
- }
146
+ success: false,
147
+ action: input.action,
148
+ message: 'Erro na operação de projetos',
149
+ error: error instanceof Error ? error.message : String(error)
191
150
  };
192
151
  }
193
- catch (error) {
194
- return ProjectErrorHandler.handleError(error, 'create');
195
- }
196
- },
197
- async handleList(params) {
198
- const { provider, limit } = params;
199
- try {
200
- const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)({ provider }, provider);
201
- const providerInstance = index_js_1.globalProviderFactory.getProvider(provider);
202
- if (!providerInstance) {
203
- throw new Error(`Provider ${provider} not configured`);
152
+ }
153
+ };
154
+ async function listProjects(provider, repo, page, limit) {
155
+ try {
156
+ const owner = (await provider.getCurrentUser()).login;
157
+ const projects = await provider.listProjects(owner, repo, page, limit);
158
+ return {
159
+ success: true,
160
+ action: 'list',
161
+ message: `${projects.length} projetos encontrados`,
162
+ data: {
163
+ projects,
164
+ page,
165
+ limit,
166
+ total: projects.length
204
167
  }
205
- const repos = await providerInstance.listRepositories(processedInput.owner, undefined, limit);
206
- return {
207
- success: true,
208
- action: 'list',
209
- message: `Found ${repos.length} repositories`,
210
- data: {
211
- repositories: repos.map(repo => ({
212
- name: repo.name,
213
- full_name: repo.full_name,
214
- description: repo.description,
215
- private: repo.private,
216
- html_url: repo.html_url,
217
- updated_at: repo.updated_at
218
- })),
219
- total: repos.length
220
- }
221
- };
222
- }
223
- catch (error) {
224
- return ProjectErrorHandler.handleError(error, 'list');
225
- }
226
- },
227
- async handleClone(params) {
228
- const { name, provider, projectPath } = params;
229
- try {
230
- const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)({ provider }, provider);
231
- const providerInstance = index_js_1.globalProviderFactory.getProvider(provider);
232
- if (!providerInstance) {
233
- throw new Error(`Provider ${provider} not configured`);
168
+ };
169
+ }
170
+ catch (error) {
171
+ throw new Error(`Falha ao listar projetos: ${error instanceof Error ? error.message : String(error)}`);
172
+ }
173
+ }
174
+ async function getProject(provider, repo, projectId) {
175
+ try {
176
+ const owner = (await provider.getCurrentUser()).login;
177
+ const project = await provider.getProject(owner, repo, projectId);
178
+ return {
179
+ success: true,
180
+ action: 'get',
181
+ message: 'Projeto obtido com sucesso',
182
+ data: {
183
+ project
234
184
  }
235
- const repo = await providerInstance.getRepository(processedInput.owner, name);
236
- const gitOps = new git_operations_js_1.GitOperations(projectPath);
237
- const cloneResult = await gitOps.cloneRepository(repo.clone_url);
238
- if (!cloneResult.success) {
239
- throw new Error(`Clone failed: ${cloneResult.error}`);
185
+ };
186
+ }
187
+ catch (error) {
188
+ throw new Error(`Falha ao obter projeto: ${error instanceof Error ? error.message : String(error)}`);
189
+ }
190
+ }
191
+ async function createProject(provider, repo, name, description) {
192
+ try {
193
+ const owner = (await provider.getCurrentUser()).login;
194
+ const project = await provider.createProject(owner, repo, {
195
+ name,
196
+ description,
197
+ state: 'open',
198
+ body: description
199
+ });
200
+ return {
201
+ success: true,
202
+ action: 'create',
203
+ message: `Projeto '${name}' criado com sucesso`,
204
+ data: {
205
+ project
240
206
  }
241
- return {
242
- success: true,
243
- action: 'clone',
244
- message: 'Repository cloned successfully',
245
- data: {
246
- path: projectPath,
247
- url: repo.clone_url,
248
- name: repo.name
249
- }
250
- };
251
- }
252
- catch (error) {
253
- return ProjectErrorHandler.handleError(error, 'clone');
254
- }
255
- },
256
- async handleCreateFile(params) {
257
- const { projectPath, filePath, content } = params;
258
- const gitOps = new git_operations_js_1.GitOperations(projectPath);
259
- try {
260
- const writeResult = await gitOps.writeFile(filePath, content);
261
- if (!writeResult.success) {
262
- throw new Error(`Failed to create file: ${writeResult.error}`);
207
+ };
208
+ }
209
+ catch (error) {
210
+ throw new Error(`Falha ao criar projeto: ${error instanceof Error ? error.message : String(error)}`);
211
+ }
212
+ }
213
+ async function updateProject(provider, repo, projectId, updates) {
214
+ try {
215
+ const owner = (await provider.getCurrentUser()).login;
216
+ const project = await provider.updateProject(owner, repo, projectId, updates);
217
+ return {
218
+ success: true,
219
+ action: 'update',
220
+ message: 'Projeto atualizado com sucesso',
221
+ data: {
222
+ project
263
223
  }
264
- return {
265
- success: true,
266
- action: 'create-file',
267
- message: 'File created successfully',
268
- data: {
269
- path: filePath,
270
- size: content.length
271
- }
272
- };
273
- }
274
- catch (error) {
275
- return ProjectErrorHandler.handleError(error, 'create-file');
276
- }
277
- },
278
- async handleReadFile(params) {
279
- const { projectPath, filePath } = params;
280
- const gitOps = new git_operations_js_1.GitOperations(projectPath);
281
- try {
282
- const readResult = await gitOps.readFile(filePath);
283
- if (!readResult.success) {
284
- throw new Error(`Failed to read file: ${readResult.error}`);
224
+ };
225
+ }
226
+ catch (error) {
227
+ throw new Error(`Falha ao atualizar projeto: ${error instanceof Error ? error.message : String(error)}`);
228
+ }
229
+ }
230
+ async function deleteProject(provider, repo, projectId) {
231
+ try {
232
+ const owner = (await provider.getCurrentUser()).login;
233
+ await provider.deleteProject(owner, repo, projectId);
234
+ return {
235
+ success: true,
236
+ action: 'delete',
237
+ message: 'Projeto deletado com sucesso',
238
+ data: {
239
+ deleted: true
285
240
  }
286
- return {
287
- success: true,
288
- action: 'read-file',
289
- message: 'File read successfully',
290
- data: readResult.data
291
- };
292
- }
293
- catch (error) {
294
- return ProjectErrorHandler.handleError(error, 'read-file');
295
- }
296
- },
297
- async handleListFiles(params) {
298
- const { projectPath, path } = params;
299
- const gitOps = new git_operations_js_1.GitOperations(projectPath);
300
- try {
301
- const listResult = await gitOps.listFiles(path);
302
- if (!listResult.success) {
303
- throw new Error(`Failed to list files: ${listResult.error}`);
241
+ };
242
+ }
243
+ catch (error) {
244
+ throw new Error(`Falha ao deletar projeto: ${error instanceof Error ? error.message : String(error)}`);
245
+ }
246
+ }
247
+ async function addProjectItem(provider, repo, projectId, item) {
248
+ try {
249
+ const owner = (await provider.getCurrentUser()).login;
250
+ const projectItem = await provider.addProjectItem(owner, repo, projectId, item);
251
+ return {
252
+ success: true,
253
+ action: 'addItem',
254
+ message: 'Item adicionado ao projeto com sucesso',
255
+ data: {
256
+ item: projectItem
304
257
  }
305
- return {
306
- success: true,
307
- action: 'list-files',
308
- message: 'Files listed successfully',
309
- data: listResult.data
310
- };
311
- }
312
- catch (error) {
313
- return ProjectErrorHandler.handleError(error, 'list-files');
314
- }
258
+ };
315
259
  }
316
- };
260
+ catch (error) {
261
+ throw new Error(`Falha ao adicionar item: ${error instanceof Error ? error.message : String(error)}`);
262
+ }
263
+ }
264
+ async function updateProjectItem(provider, repo, projectId, itemId, updates) {
265
+ try {
266
+ const owner = (await provider.getCurrentUser()).login;
267
+ const projectItem = await provider.updateProjectItem(owner, repo, projectId, itemId, updates);
268
+ return {
269
+ success: true,
270
+ action: 'updateItem',
271
+ message: 'Item do projeto atualizado com sucesso',
272
+ data: {
273
+ item: projectItem
274
+ }
275
+ };
276
+ }
277
+ catch (error) {
278
+ throw new Error(`Falha ao atualizar item: ${error instanceof Error ? error.message : String(error)}`);
279
+ }
280
+ }
281
+ async function deleteProjectItem(provider, repo, projectId, itemId) {
282
+ try {
283
+ const owner = (await provider.getCurrentUser()).login;
284
+ await provider.deleteProjectItem(owner, repo, projectId, itemId);
285
+ return {
286
+ success: true,
287
+ action: 'deleteItem',
288
+ message: 'Item do projeto deletado com sucesso',
289
+ data: {
290
+ deleted: true
291
+ }
292
+ };
293
+ }
294
+ catch (error) {
295
+ throw new Error(`Falha ao deletar item: ${error instanceof Error ? error.message : String(error)}`);
296
+ }
297
+ }
298
+ async function listProjectItems(provider, repo, projectId, page, limit) {
299
+ try {
300
+ const owner = (await provider.getCurrentUser()).login;
301
+ const items = await provider.listProjectItems(owner, repo, projectId, page, limit);
302
+ return {
303
+ success: true,
304
+ action: 'listItems',
305
+ message: `${items.length} itens encontrados no projeto`,
306
+ data: {
307
+ items,
308
+ projectId,
309
+ page,
310
+ limit,
311
+ total: items.length
312
+ }
313
+ };
314
+ }
315
+ catch (error) {
316
+ throw new Error(`Falha ao listar itens: ${error instanceof Error ? error.message : String(error)}`);
317
+ }
318
+ }
317
319
  //# sourceMappingURL=git-projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-projects.js","sourceRoot":"","sources":["../../src/tools/git-projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-projects.js","sourceRoot":"","sources":["../../src/tools/git-projects.ts"],"names":[],"mappings":"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"}