@andrebuzeli/git-mcp 2.47.3 → 3.0.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.
@@ -0,0 +1,617 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gitWorkflowTool = 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
+ const git_operations_js_1 = require("../utils/git-operations.js");
8
+ /**
9
+ * Tool: git-workflow
10
+ *
11
+ * FERRAMENTA UNIFICADA PARA WORKFLOW GIT COMPLETO
12
+ * Combina as funcionalidades essenciais de:
13
+ * - git-update-project (init, update, sync)
14
+ * - git-commits (create, push, pull)
15
+ * - git-stash (save, apply, list)
16
+ * - git-reset (soft, mixed, hard)
17
+ *
18
+ * DESIGNED FOR: Programador individual autônomo
19
+ * PHILOSOPHY: Simplicidade + Funcionalidade + Error Handling Robusto
20
+ */
21
+ const GitWorkflowInputSchema = zod_1.z.discriminatedUnion('action', [
22
+ // WORKFLOW PRINCIPAL - Substitui git-update-project
23
+ zod_1.z.object({
24
+ action: zod_1.z.literal('init'),
25
+ repo: zod_1.z.string(),
26
+ projectPath: zod_1.z.string(),
27
+ provider: zod_1.z.enum(['gitea', 'github']),
28
+ message: zod_1.z.string().min(1, 'Commit message is required'),
29
+ createRemote: zod_1.z.boolean().optional().default(false),
30
+ branch: zod_1.z.string().optional().default('main')
31
+ }),
32
+ zod_1.z.object({
33
+ action: zod_1.z.literal('commit'),
34
+ projectPath: zod_1.z.string(),
35
+ message: zod_1.z.string().min(1, 'Commit message is required'),
36
+ addAll: zod_1.z.boolean().optional().default(true),
37
+ push: zod_1.z.boolean().optional().default(false),
38
+ branch: zod_1.z.string().optional().default('main'),
39
+ provider: zod_1.z.enum(['gitea', 'github']).optional()
40
+ }),
41
+ zod_1.z.object({
42
+ action: zod_1.z.literal('sync'),
43
+ repo: zod_1.z.string(),
44
+ projectPath: zod_1.z.string(),
45
+ provider: zod_1.z.enum(['gitea', 'github']),
46
+ message: zod_1.z.string().min(1, 'Commit message is required'),
47
+ branch: zod_1.z.string().optional().default('main'),
48
+ forcePush: zod_1.z.boolean().optional().default(false)
49
+ }),
50
+ // STATUS E MONITORAMENTO
51
+ zod_1.z.object({
52
+ action: zod_1.z.literal('status'),
53
+ projectPath: zod_1.z.string(),
54
+ detailed: zod_1.z.boolean().optional().default(false)
55
+ }),
56
+ zod_1.z.object({
57
+ action: zod_1.z.literal('diff'),
58
+ projectPath: zod_1.z.string(),
59
+ staged: zod_1.z.boolean().optional().default(false),
60
+ file: zod_1.z.string().optional()
61
+ }),
62
+ zod_1.z.object({
63
+ action: zod_1.z.literal('log'),
64
+ projectPath: zod_1.z.string(),
65
+ limit: zod_1.z.number().optional().default(10),
66
+ oneline: zod_1.z.boolean().optional().default(true)
67
+ }),
68
+ // UNDO/REDO - Substitui git-stash + git-reset + git-revert
69
+ zod_1.z.object({
70
+ action: zod_1.z.literal('stash'),
71
+ projectPath: zod_1.z.string(),
72
+ name: zod_1.z.string().optional(),
73
+ includeUntracked: zod_1.z.boolean().optional().default(false)
74
+ }),
75
+ zod_1.z.object({
76
+ action: zod_1.z.literal('stash-list'),
77
+ projectPath: zod_1.z.string()
78
+ }),
79
+ zod_1.z.object({
80
+ action: zod_1.z.literal('stash-apply'),
81
+ projectPath: zod_1.z.string(),
82
+ index: zod_1.z.number().optional().default(0)
83
+ }),
84
+ zod_1.z.object({
85
+ action: zod_1.z.literal('reset'),
86
+ projectPath: zod_1.z.string(),
87
+ mode: zod_1.z.enum(['soft', 'mixed', 'hard']).optional().default('mixed'),
88
+ commit: zod_1.z.string().optional(),
89
+ confirm: zod_1.z.boolean().optional().default(false)
90
+ }),
91
+ // QUICK ACTIONS
92
+ zod_1.z.object({
93
+ action: zod_1.z.literal('pull'),
94
+ projectPath: zod_1.z.string(),
95
+ branch: zod_1.z.string().optional().default('main'),
96
+ provider: zod_1.z.enum(['gitea', 'github']).optional()
97
+ }),
98
+ zod_1.z.object({
99
+ action: zod_1.z.literal('push'),
100
+ projectPath: zod_1.z.string(),
101
+ branch: zod_1.z.string().optional().default('main'),
102
+ provider: zod_1.z.enum(['gitea', 'github']).optional(),
103
+ force: zod_1.z.boolean().optional().default(false)
104
+ })
105
+ ]);
106
+ const GitWorkflowResultSchema = zod_1.z.object({
107
+ success: zod_1.z.boolean(),
108
+ action: zod_1.z.string(),
109
+ message: zod_1.z.string(),
110
+ data: zod_1.z.any().optional(),
111
+ error: zod_1.z.string().optional(),
112
+ recoverable: zod_1.z.boolean().optional(),
113
+ suggestion: zod_1.z.string().optional()
114
+ });
115
+ /**
116
+ * Enhanced Error Handler with Recovery Suggestions
117
+ */
118
+ class WorkflowErrorHandler {
119
+ static handleError(error, context) {
120
+ const errorMessage = error instanceof Error ? error.message : String(error);
121
+ // Error patterns and recovery suggestions
122
+ const errorPatterns = [
123
+ {
124
+ pattern: /not a git repository/i,
125
+ suggestion: "Run 'git init' first or check the project path",
126
+ recoverable: true
127
+ },
128
+ {
129
+ pattern: /no commits/i,
130
+ suggestion: "Make initial commit first",
131
+ recoverable: true
132
+ },
133
+ {
134
+ pattern: /branch.*does not exist/i,
135
+ suggestion: "Create the branch first or check branch name",
136
+ recoverable: true
137
+ },
138
+ {
139
+ pattern: /merge conflict/i,
140
+ suggestion: "Resolve conflicts manually then commit",
141
+ recoverable: false
142
+ },
143
+ {
144
+ pattern: /authentication failed/i,
145
+ suggestion: "Check your token configuration",
146
+ recoverable: true
147
+ },
148
+ {
149
+ pattern: /permission denied/i,
150
+ suggestion: "Check repository permissions and token scope",
151
+ recoverable: true
152
+ }
153
+ ];
154
+ const matchedPattern = errorPatterns.find(p => p.pattern.test(errorMessage));
155
+ return {
156
+ success: false,
157
+ action: context,
158
+ message: `Error in ${context}: ${errorMessage}`,
159
+ error: errorMessage,
160
+ recoverable: matchedPattern?.recoverable || false,
161
+ suggestion: matchedPattern?.suggestion
162
+ };
163
+ }
164
+ }
165
+ exports.gitWorkflowTool = {
166
+ name: 'git-workflow',
167
+ description: `🛠️ GIT WORKFLOW UNIFICADO - Tudo que um programador individual precisa
168
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
169
+ 🎯 WORKFLOW PRINCIPAL:
170
+ • init: Inicializar projeto e fazer primeiro commit
171
+ • commit: Commit + push automático (mais inteligente)
172
+ • sync: Pull + commit + push completo
173
+
174
+ 📊 STATUS & MONITORAMENTO:
175
+ • status: Status detalhado do projeto
176
+ • diff: Ver diferenças nos arquivos
177
+ • log: Histórico de commits
178
+
179
+ 🔄 UNDO/REDO SYSTEM:
180
+ • stash: Salvar mudanças temporariamente
181
+ • stash-list: Listar stashes salvos
182
+ • stash-apply: Aplicar stash salvo
183
+ • reset: Desfazer commits com confirmação
184
+
185
+ ⚡ QUICK ACTIONS:
186
+ • pull: Baixar mudanças do remoto
187
+ • push: Enviar mudanças para remoto
188
+
189
+ ✨ DIFERENCIAIS:
190
+ • Error handling inteligente com sugestões de correção
191
+ • Auto-detecção de provider
192
+ • Operações seguras com confirmação
193
+ • Workflow otimizado para programador individual`,
194
+ inputSchema: {
195
+ type: 'object',
196
+ properties: {
197
+ action: {
198
+ type: 'string',
199
+ enum: ['init', 'commit', 'sync', 'status', 'diff', 'log', 'stash', 'stash-list', 'stash-apply', 'reset', 'pull', 'push'],
200
+ description: 'Workflow action to perform'
201
+ },
202
+ repo: { type: 'string', description: 'Repository name' },
203
+ projectPath: { type: 'string', description: 'Local project path' },
204
+ provider: { type: 'string', enum: ['gitea', 'github'], description: 'Git provider' },
205
+ message: { type: 'string', description: 'Commit message' },
206
+ createRemote: { type: 'boolean', description: 'Create remote repository', default: false },
207
+ branch: { type: 'string', description: 'Branch name', default: 'main' },
208
+ addAll: { type: 'boolean', description: 'Add all files before commit', default: true },
209
+ push: { type: 'boolean', description: 'Push after commit', default: false },
210
+ forcePush: { type: 'boolean', description: 'Force push', default: false },
211
+ detailed: { type: 'boolean', description: 'Detailed output', default: false },
212
+ staged: { type: 'boolean', description: 'Show staged changes', default: false },
213
+ file: { type: 'string', description: 'Specific file for diff' },
214
+ limit: { type: 'number', description: 'Limit for log', default: 10 },
215
+ oneline: { type: 'boolean', description: 'One line log format', default: true },
216
+ name: { type: 'string', description: 'Stash name' },
217
+ includeUntracked: { type: 'boolean', description: 'Include untracked files in stash', default: false },
218
+ index: { type: 'number', description: 'Stash index', default: 0 },
219
+ mode: { type: 'string', enum: ['soft', 'mixed', 'hard'], description: 'Reset mode', default: 'mixed' },
220
+ confirm: { type: 'boolean', description: 'Confirm destructive operation', default: false },
221
+ force: { type: 'boolean', description: 'Force push', default: false }
222
+ },
223
+ required: ['action', 'projectPath']
224
+ },
225
+ async handler(input) {
226
+ try {
227
+ const validatedInput = GitWorkflowInputSchema.parse(input);
228
+ switch (validatedInput.action) {
229
+ case 'init':
230
+ return await this.handleInit(validatedInput);
231
+ case 'commit':
232
+ return await this.handleCommit(validatedInput);
233
+ case 'sync':
234
+ return await this.handleSync(validatedInput);
235
+ case 'status':
236
+ return await this.handleStatus(validatedInput);
237
+ case 'diff':
238
+ return await this.handleDiff(validatedInput);
239
+ case 'log':
240
+ return await this.handleLog(validatedInput);
241
+ case 'stash':
242
+ return await this.handleStash(validatedInput);
243
+ case 'stash-list':
244
+ return await this.handleStashList(validatedInput);
245
+ case 'stash-apply':
246
+ return await this.handleStashApply(validatedInput);
247
+ case 'reset':
248
+ return await this.handleReset(validatedInput);
249
+ case 'pull':
250
+ return await this.handlePull(validatedInput);
251
+ case 'push':
252
+ return await this.handlePush(validatedInput);
253
+ default:
254
+ throw new Error(`Action '${validatedInput.action}' not supported`);
255
+ }
256
+ }
257
+ catch (error) {
258
+ return WorkflowErrorHandler.handleError(error, `workflow.${input.action}`);
259
+ }
260
+ },
261
+ async handleInit(params) {
262
+ const { repo, projectPath, message, createRemote, branch, provider } = params;
263
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
264
+ // Check if already a git repo
265
+ const isGit = await gitOps.isGitRepository();
266
+ if (isGit) {
267
+ return {
268
+ success: false,
269
+ action: 'init',
270
+ message: 'Project is already a Git repository',
271
+ suggestion: 'Use commit or sync instead'
272
+ };
273
+ }
274
+ try {
275
+ // Initialize git repo
276
+ const initResult = await gitOps.initRepository();
277
+ if (!initResult.success) {
278
+ throw new Error(`Failed to initialize Git repository: ${initResult.error}`);
279
+ }
280
+ // Add all files
281
+ const addResult = await gitOps.addFiles();
282
+ if (!addResult.success) {
283
+ throw new Error(`Failed to add files: ${addResult.error}`);
284
+ }
285
+ // Create initial commit
286
+ const commitResult = await gitOps.commit(message);
287
+ if (!commitResult.success) {
288
+ throw new Error(`Failed to create initial commit: ${commitResult.error}`);
289
+ }
290
+ // Create remote if requested
291
+ if (createRemote) {
292
+ const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)({ provider, repo }, provider);
293
+ if (processedInput.owner) {
294
+ const providerInstance = index_js_1.globalProviderFactory.getProvider(provider);
295
+ if (providerInstance) {
296
+ try {
297
+ const remoteResult = await providerInstance.createRepository(repo, `Project initialized via MCP`, false);
298
+ const remoteUrl = await providerInstance.getRepositoryUrl(processedInput.owner, repo);
299
+ // Add remote
300
+ const remoteAddResult = await gitOps.remote('add', 'origin', remoteUrl);
301
+ if (remoteAddResult.success) {
302
+ // Push to remote
303
+ const pushResult = await gitOps.push('origin', branch);
304
+ if (pushResult.success) {
305
+ return {
306
+ success: true,
307
+ action: 'init',
308
+ message: `Project initialized with remote repository`,
309
+ data: { remoteUrl, branch, commit: commitResult.output }
310
+ };
311
+ }
312
+ }
313
+ }
314
+ catch (remoteError) {
315
+ // Remote creation failed, but local repo is ready
316
+ console.warn('Remote creation failed:', remoteError);
317
+ }
318
+ }
319
+ }
320
+ }
321
+ return {
322
+ success: true,
323
+ action: 'init',
324
+ message: 'Project initialized successfully',
325
+ data: { branch, commit: commitResult.output }
326
+ };
327
+ }
328
+ catch (error) {
329
+ return WorkflowErrorHandler.handleError(error, 'init');
330
+ }
331
+ },
332
+ async handleCommit(params) {
333
+ const { projectPath, message, addAll, push, branch, provider } = params;
334
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
335
+ // Verify git repo
336
+ if (!(await gitOps.isGitRepository())) {
337
+ return WorkflowErrorHandler.handleError(new Error('Not a Git repository'), 'commit');
338
+ }
339
+ try {
340
+ // Add files if requested
341
+ if (addAll) {
342
+ const addResult = await gitOps.addFiles();
343
+ if (!addResult.success) {
344
+ throw new Error(`Failed to add files: ${addResult.error}`);
345
+ }
346
+ }
347
+ // Check if there are changes to commit
348
+ const statusResult = await gitOps.status({ porcelain: true });
349
+ if (!statusResult.output.trim()) {
350
+ return {
351
+ success: false,
352
+ action: 'commit',
353
+ message: 'No changes to commit',
354
+ suggestion: 'Make some changes first'
355
+ };
356
+ }
357
+ // Commit
358
+ const commitResult = await gitOps.commit(message);
359
+ if (!commitResult.success) {
360
+ throw new Error(`Commit failed: ${commitResult.error}`);
361
+ }
362
+ // Push if requested
363
+ if (push && provider) {
364
+ const pushResult = await gitOps.push('origin', branch);
365
+ if (!pushResult.success) {
366
+ return {
367
+ success: true,
368
+ action: 'commit',
369
+ message: 'Commit successful, but push failed',
370
+ data: { commit: commitResult.output },
371
+ error: pushResult.error,
372
+ suggestion: 'Check remote configuration or network connection'
373
+ };
374
+ }
375
+ }
376
+ return {
377
+ success: true,
378
+ action: 'commit',
379
+ message: push ? 'Commit and push successful' : 'Commit successful',
380
+ data: { commit: commitResult.output, pushed: push || false }
381
+ };
382
+ }
383
+ catch (error) {
384
+ return WorkflowErrorHandler.handleError(error, 'commit');
385
+ }
386
+ },
387
+ async handleSync(params) {
388
+ const { repo, projectPath, message, branch, forcePush, provider } = params;
389
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
390
+ try {
391
+ // Pull first
392
+ const pullResult = await gitOps.pull('origin', branch);
393
+ if (!pullResult.success && !pullResult.error?.includes('up-to-date')) {
394
+ console.warn('Pull failed:', pullResult.error);
395
+ }
396
+ // Add and commit
397
+ const addResult = await gitOps.addFiles();
398
+ if (!addResult.success) {
399
+ throw new Error(`Failed to add files: ${addResult.error}`);
400
+ }
401
+ const statusResult = await gitOps.status({ porcelain: true });
402
+ if (statusResult.output.trim()) {
403
+ const commitResult = await gitOps.commit(message);
404
+ if (!commitResult.success) {
405
+ throw new Error(`Commit failed: ${commitResult.error}`);
406
+ }
407
+ }
408
+ // Push
409
+ const pushOptions = {};
410
+ if (forcePush)
411
+ pushOptions.force = true;
412
+ const pushResult = await gitOps.push('origin', branch, pushOptions);
413
+ if (!pushResult.success) {
414
+ throw new Error(`Push failed: ${pushResult.error}`);
415
+ }
416
+ return {
417
+ success: true,
418
+ action: 'sync',
419
+ message: 'Sync completed successfully',
420
+ data: { pulled: pullResult.success, pushed: true, branch }
421
+ };
422
+ }
423
+ catch (error) {
424
+ return WorkflowErrorHandler.handleError(error, 'sync');
425
+ }
426
+ },
427
+ async handleStatus(params) {
428
+ const { projectPath, detailed } = params;
429
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
430
+ try {
431
+ const statusResult = await gitOps.status(detailed ? {} : { short: true });
432
+ if (!statusResult.success) {
433
+ throw new Error(`Status check failed: ${statusResult.error}`);
434
+ }
435
+ return {
436
+ success: true,
437
+ action: 'status',
438
+ message: 'Status retrieved successfully',
439
+ data: { status: statusResult.output, detailed }
440
+ };
441
+ }
442
+ catch (error) {
443
+ return WorkflowErrorHandler.handleError(error, 'status');
444
+ }
445
+ },
446
+ async handleDiff(params) {
447
+ const { projectPath, staged, file } = params;
448
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
449
+ try {
450
+ const diffOptions = { patch: true };
451
+ if (staged)
452
+ diffOptions.cached = true;
453
+ if (file)
454
+ diffOptions.path = file;
455
+ const diffResult = await gitOps.diff(diffOptions);
456
+ return {
457
+ success: true,
458
+ action: 'diff',
459
+ message: 'Diff retrieved successfully',
460
+ data: { diff: diffResult.output, staged, file }
461
+ };
462
+ }
463
+ catch (error) {
464
+ return WorkflowErrorHandler.handleError(error, 'diff');
465
+ }
466
+ },
467
+ async handleLog(params) {
468
+ const { projectPath, limit, oneline } = params;
469
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
470
+ try {
471
+ const logOptions = { maxCount: limit };
472
+ if (oneline)
473
+ logOptions.oneline = true;
474
+ const logResult = await gitOps.log(logOptions);
475
+ if (!logResult.success) {
476
+ throw new Error(`Log retrieval failed: ${logResult.error}`);
477
+ }
478
+ return {
479
+ success: true,
480
+ action: 'log',
481
+ message: 'Log retrieved successfully',
482
+ data: { log: logResult.output, limit, oneline }
483
+ };
484
+ }
485
+ catch (error) {
486
+ return WorkflowErrorHandler.handleError(error, 'log');
487
+ }
488
+ },
489
+ async handleStash(params) {
490
+ const { projectPath, name, includeUntracked } = params;
491
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
492
+ try {
493
+ const stashOptions = {};
494
+ if (name)
495
+ stashOptions.message = name;
496
+ if (includeUntracked)
497
+ stashOptions.includeUntracked = true;
498
+ const stashResult = await gitOps.stash('push', stashOptions);
499
+ if (!stashResult.success) {
500
+ throw new Error(`Stash failed: ${stashResult.error}`);
501
+ }
502
+ return {
503
+ success: true,
504
+ action: 'stash',
505
+ message: 'Changes stashed successfully',
506
+ data: { name, includeUntracked }
507
+ };
508
+ }
509
+ catch (error) {
510
+ return WorkflowErrorHandler.handleError(error, 'stash');
511
+ }
512
+ },
513
+ async handleStashList(params) {
514
+ const { projectPath } = params;
515
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
516
+ try {
517
+ const stashResult = await gitOps.stash('list');
518
+ return {
519
+ success: true,
520
+ action: 'stash-list',
521
+ message: 'Stash list retrieved successfully',
522
+ data: { stashes: stashResult.output }
523
+ };
524
+ }
525
+ catch (error) {
526
+ return WorkflowErrorHandler.handleError(error, 'stash-list');
527
+ }
528
+ },
529
+ async handleStashApply(params) {
530
+ const { projectPath, index } = params;
531
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
532
+ try {
533
+ const stashResult = await gitOps.stash('apply', { index });
534
+ if (!stashResult.success) {
535
+ throw new Error(`Stash apply failed: ${stashResult.error}`);
536
+ }
537
+ return {
538
+ success: true,
539
+ action: 'stash-apply',
540
+ message: 'Stash applied successfully',
541
+ data: { index }
542
+ };
543
+ }
544
+ catch (error) {
545
+ return WorkflowErrorHandler.handleError(error, 'stash-apply');
546
+ }
547
+ },
548
+ async handleReset(params) {
549
+ const { projectPath, mode, commit, confirm } = params;
550
+ if (mode === 'hard' && !confirm) {
551
+ return {
552
+ success: false,
553
+ action: 'reset',
554
+ message: 'Hard reset requires confirmation',
555
+ suggestion: 'Set confirm=true to proceed with hard reset'
556
+ };
557
+ }
558
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
559
+ try {
560
+ const resetResult = await gitOps.reset(commit || 'HEAD~1', { mode });
561
+ if (!resetResult.success) {
562
+ throw new Error(`Reset failed: ${resetResult.error}`);
563
+ }
564
+ return {
565
+ success: true,
566
+ action: 'reset',
567
+ message: `Reset (${mode}) completed successfully`,
568
+ data: { mode, commit }
569
+ };
570
+ }
571
+ catch (error) {
572
+ return WorkflowErrorHandler.handleError(error, 'reset');
573
+ }
574
+ },
575
+ async handlePull(params) {
576
+ const { projectPath, branch } = params;
577
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
578
+ try {
579
+ const pullResult = await gitOps.pull('origin', branch);
580
+ if (!pullResult.success && !pullResult.error?.includes('up-to-date')) {
581
+ throw new Error(`Pull failed: ${pullResult.error}`);
582
+ }
583
+ return {
584
+ success: true,
585
+ action: 'pull',
586
+ message: pullResult.error?.includes('up-to-date') ? 'Already up-to-date' : 'Pull completed successfully',
587
+ data: { branch, upToDate: pullResult.error?.includes('up-to-date') || false }
588
+ };
589
+ }
590
+ catch (error) {
591
+ return WorkflowErrorHandler.handleError(error, 'pull');
592
+ }
593
+ },
594
+ async handlePush(params) {
595
+ const { projectPath, branch, force } = params;
596
+ const gitOps = new git_operations_js_1.GitOperations(projectPath);
597
+ try {
598
+ const pushOptions = {};
599
+ if (force)
600
+ pushOptions.force = true;
601
+ const pushResult = await gitOps.push('origin', branch, pushOptions);
602
+ if (!pushResult.success) {
603
+ throw new Error(`Push failed: ${pushResult.error}`);
604
+ }
605
+ return {
606
+ success: true,
607
+ action: 'push',
608
+ message: 'Push completed successfully',
609
+ data: { branch, force }
610
+ };
611
+ }
612
+ catch (error) {
613
+ return WorkflowErrorHandler.handleError(error, 'push');
614
+ }
615
+ }
616
+ };
617
+ //# sourceMappingURL=git-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-workflow.js","sourceRoot":"","sources":["../../src/tools/git-workflow.ts"],"names":[],"mappings":"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"}