@andrebuzeli/git-mcp 5.5.1 → 5.8.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.
- package/README.md +94 -6
- package/dist/config.d.ts +5 -131
- package/dist/config.js +28 -430
- package/dist/index.d.ts +1 -21
- package/dist/index.js +118 -140
- package/dist/providers/giteaProvider.d.ts +3 -0
- package/dist/providers/giteaProvider.js +12 -0
- package/dist/providers/githubProvider.d.ts +2 -0
- package/dist/providers/githubProvider.js +7 -0
- package/dist/providers/providerManager.d.ts +11 -0
- package/dist/providers/providerManager.js +48 -0
- package/dist/resources/toolsGuide.d.ts +12 -0
- package/dist/resources/toolsGuide.js +1491 -0
- package/dist/server.d.ts +7 -40
- package/dist/server.js +59 -696
- package/dist/tools/gitAnalytics.d.ts +29 -0
- package/dist/tools/gitAnalytics.js +72 -0
- package/dist/tools/gitArchive.d.ts +6 -0
- package/dist/tools/gitArchive.js +27 -0
- package/dist/tools/gitBackup.d.ts +10 -0
- package/dist/tools/gitBackup.js +44 -0
- package/dist/tools/gitBranches.d.ts +72 -0
- package/dist/tools/gitBranches.js +98 -0
- package/dist/tools/gitConfig.d.ts +34 -0
- package/dist/tools/gitConfig.js +73 -0
- package/dist/tools/gitFiles.d.ts +30 -0
- package/dist/tools/gitFiles.js +55 -0
- package/dist/tools/gitHistory.d.ts +17 -0
- package/dist/tools/gitHistory.js +365 -0
- package/dist/tools/gitIssues.d.ts +6 -0
- package/dist/tools/gitIssues.js +279 -0
- package/dist/tools/gitMonitor.d.ts +51 -0
- package/dist/tools/gitMonitor.js +102 -0
- package/dist/tools/gitPackages.d.ts +6 -0
- package/dist/tools/gitPackages.js +28 -0
- package/dist/tools/gitPulls.d.ts +6 -0
- package/dist/tools/gitPulls.js +288 -0
- package/dist/tools/gitRelease.d.ts +6 -0
- package/dist/tools/gitRelease.js +321 -0
- package/dist/tools/gitRemote.d.ts +51 -0
- package/dist/tools/gitRemote.js +68 -0
- package/dist/tools/gitReset.d.ts +34 -0
- package/dist/tools/gitReset.js +64 -0
- package/dist/tools/gitStash.d.ts +41 -0
- package/dist/tools/gitStash.js +67 -0
- package/dist/tools/gitSync.d.ts +25 -0
- package/dist/tools/gitSync.js +51 -0
- package/dist/tools/gitTags.d.ts +30 -0
- package/dist/tools/gitTags.js +69 -0
- package/dist/tools/gitUpdate.d.ts +14 -0
- package/dist/tools/gitUpdate.js +374 -0
- package/dist/tools/gitUpload.d.ts +11 -0
- package/dist/tools/gitUpload.js +342 -0
- package/dist/tools/gitWorkflow.d.ts +6 -0
- package/dist/tools/gitWorkflow.js +303 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.js +2 -0
- package/dist/utils/errors.d.ts +13 -0
- package/dist/utils/errors.js +22 -0
- package/dist/utils/safetyController.d.ts +1 -0
- package/dist/utils/safetyController.js +15 -0
- package/package.json +8 -3
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers/base-provider.d.ts +0 -66
- package/dist/providers/base-provider.d.ts.map +0 -1
- package/dist/providers/base-provider.js +0 -65
- package/dist/providers/base-provider.js.map +0 -1
- package/dist/providers/gitea-provider.d.ts +0 -79
- package/dist/providers/gitea-provider.d.ts.map +0 -1
- package/dist/providers/gitea-provider.js +0 -576
- package/dist/providers/gitea-provider.js.map +0 -1
- package/dist/providers/github-provider.d.ts +0 -74
- package/dist/providers/github-provider.d.ts.map +0 -1
- package/dist/providers/github-provider.js +0 -683
- package/dist/providers/github-provider.js.map +0 -1
- package/dist/providers/index.d.ts +0 -13
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -35
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/provider-factory.d.ts +0 -49
- package/dist/providers/provider-factory.d.ts.map +0 -1
- package/dist/providers/provider-factory.js +0 -193
- package/dist/providers/provider-factory.js.map +0 -1
- package/dist/providers/provider-operation-handler.d.ts +0 -115
- package/dist/providers/provider-operation-handler.d.ts.map +0 -1
- package/dist/providers/provider-operation-handler.js +0 -449
- package/dist/providers/provider-operation-handler.js.map +0 -1
- package/dist/providers/types.d.ts +0 -200
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/providers/types.js +0 -8
- package/dist/providers/types.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/tools/git-analytics.d.ts +0 -237
- package/dist/tools/git-analytics.d.ts.map +0 -1
- package/dist/tools/git-analytics.js +0 -819
- package/dist/tools/git-analytics.js.map +0 -1
- package/dist/tools/git-archive.d.ts +0 -113
- package/dist/tools/git-archive.d.ts.map +0 -1
- package/dist/tools/git-archive.js +0 -466
- package/dist/tools/git-archive.js.map +0 -1
- package/dist/tools/git-auto-monitor.d.ts +0 -180
- package/dist/tools/git-auto-monitor.d.ts.map +0 -1
- package/dist/tools/git-auto-monitor.js +0 -522
- package/dist/tools/git-auto-monitor.js.map +0 -1
- package/dist/tools/git-backup.d.ts +0 -105
- package/dist/tools/git-backup.d.ts.map +0 -1
- package/dist/tools/git-backup.js +0 -414
- package/dist/tools/git-backup.js.map +0 -1
- package/dist/tools/git-branches.d.ts +0 -183
- package/dist/tools/git-branches.d.ts.map +0 -1
- package/dist/tools/git-branches.js +0 -498
- package/dist/tools/git-branches.js.map +0 -1
- package/dist/tools/git-config.d.ts +0 -119
- package/dist/tools/git-config.d.ts.map +0 -1
- package/dist/tools/git-config.js +0 -449
- package/dist/tools/git-config.js.map +0 -1
- package/dist/tools/git-files.d.ts +0 -150
- package/dist/tools/git-files.d.ts.map +0 -1
- package/dist/tools/git-files.js +0 -527
- package/dist/tools/git-files.js.map +0 -1
- package/dist/tools/git-history.d.ts +0 -253
- package/dist/tools/git-history.d.ts.map +0 -1
- package/dist/tools/git-history.js +0 -824
- package/dist/tools/git-history.js.map +0 -1
- package/dist/tools/git-issues.d.ts +0 -164
- package/dist/tools/git-issues.d.ts.map +0 -1
- package/dist/tools/git-issues.js +0 -340
- package/dist/tools/git-issues.js.map +0 -1
- package/dist/tools/git-monitor.d.ts +0 -154
- package/dist/tools/git-monitor.d.ts.map +0 -1
- package/dist/tools/git-monitor.js +0 -531
- package/dist/tools/git-monitor.js.map +0 -1
- package/dist/tools/git-packages.d.ts +0 -157
- package/dist/tools/git-packages.d.ts.map +0 -1
- package/dist/tools/git-packages.js +0 -534
- package/dist/tools/git-packages.js.map +0 -1
- package/dist/tools/git-pulls.d.ts +0 -180
- package/dist/tools/git-pulls.d.ts.map +0 -1
- package/dist/tools/git-pulls.js +0 -369
- package/dist/tools/git-pulls.js.map +0 -1
- package/dist/tools/git-release.d.ts +0 -161
- package/dist/tools/git-release.d.ts.map +0 -1
- package/dist/tools/git-release.js +0 -466
- package/dist/tools/git-release.js.map +0 -1
- package/dist/tools/git-remote.d.ts +0 -128
- package/dist/tools/git-remote.d.ts.map +0 -1
- package/dist/tools/git-remote.js +0 -542
- package/dist/tools/git-remote.js.map +0 -1
- package/dist/tools/git-reset.d.ts +0 -120
- package/dist/tools/git-reset.d.ts.map +0 -1
- package/dist/tools/git-reset.js +0 -479
- package/dist/tools/git-reset.js.map +0 -1
- package/dist/tools/git-stash.d.ts +0 -124
- package/dist/tools/git-stash.d.ts.map +0 -1
- package/dist/tools/git-stash.js +0 -506
- package/dist/tools/git-stash.js.map +0 -1
- package/dist/tools/git-sync.d.ts +0 -154
- package/dist/tools/git-sync.d.ts.map +0 -1
- package/dist/tools/git-sync.js +0 -479
- package/dist/tools/git-sync.js.map +0 -1
- package/dist/tools/git-tags.d.ts +0 -136
- package/dist/tools/git-tags.d.ts.map +0 -1
- package/dist/tools/git-tags.js +0 -461
- package/dist/tools/git-tags.js.map +0 -1
- package/dist/tools/git-update.d.ts +0 -224
- package/dist/tools/git-update.d.ts.map +0 -1
- package/dist/tools/git-update.js +0 -948
- package/dist/tools/git-update.js.map +0 -1
- package/dist/tools/git-workflow.d.ts +0 -189
- package/dist/tools/git-workflow.d.ts.map +0 -1
- package/dist/tools/git-workflow.js +0 -542
- package/dist/tools/git-workflow.js.map +0 -1
- package/dist/utils/credential-manager.d.ts +0 -119
- package/dist/utils/credential-manager.d.ts.map +0 -1
- package/dist/utils/credential-manager.js +0 -450
- package/dist/utils/credential-manager.js.map +0 -1
- package/dist/utils/data-merger.d.ts +0 -49
- package/dist/utils/data-merger.d.ts.map +0 -1
- package/dist/utils/data-merger.js +0 -233
- package/dist/utils/data-merger.js.map +0 -1
- package/dist/utils/git-command-executor.d.ts +0 -330
- package/dist/utils/git-command-executor.d.ts.map +0 -1
- package/dist/utils/git-command-executor.js +0 -901
- package/dist/utils/git-command-executor.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -143
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -473
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/operation-error-handler.d.ts +0 -97
- package/dist/utils/operation-error-handler.d.ts.map +0 -1
- package/dist/utils/operation-error-handler.js +0 -367
- package/dist/utils/operation-error-handler.js.map +0 -1
- package/dist/utils/parameter-validator.d.ts +0 -49
- package/dist/utils/parameter-validator.d.ts.map +0 -1
- package/dist/utils/parameter-validator.js +0 -647
- package/dist/utils/parameter-validator.js.map +0 -1
- package/dist/utils/repository-checker.d.ts +0 -46
- package/dist/utils/repository-checker.d.ts.map +0 -1
- package/dist/utils/repository-checker.js +0 -151
- package/dist/utils/repository-checker.js.map +0 -1
- package/dist/utils/repository-detector.d.ts +0 -128
- package/dist/utils/repository-detector.d.ts.map +0 -1
- package/dist/utils/repository-detector.js +0 -422
- package/dist/utils/repository-detector.js.map +0 -1
- package/dist/utils/repository-sync.d.ts +0 -67
- package/dist/utils/repository-sync.d.ts.map +0 -1
- package/dist/utils/repository-sync.js +0 -344
- package/dist/utils/repository-sync.js.map +0 -1
- package/dist/utils/response-formatter.d.ts +0 -146
- package/dist/utils/response-formatter.d.ts.map +0 -1
- package/dist/utils/response-formatter.js +0 -378
- package/dist/utils/response-formatter.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -12
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -28
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/safety-warnings.d.ts +0 -56
- package/dist/utils/safety-warnings.d.ts.map +0 -1
- package/dist/utils/safety-warnings.js +0 -330
- package/dist/utils/safety-warnings.js.map +0 -1
- package/dist/utils/terminal-controller.d.ts +0 -79
- package/dist/utils/terminal-controller.d.ts.map +0 -1
- package/dist/utils/terminal-controller.js +0 -291
- package/dist/utils/terminal-controller.js.map +0 -1
- package/dist/utils/user-friendly-formatter.d.ts +0 -45
- package/dist/utils/user-friendly-formatter.d.ts.map +0 -1
- package/dist/utils/user-friendly-formatter.js +0 -175
- package/dist/utils/user-friendly-formatter.js.map +0 -1
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Terminal Controller
|
|
4
|
-
*
|
|
5
|
-
* Handles terminal command execution with proper error handling,
|
|
6
|
-
* timeout management, and cross-platform compatibility.
|
|
7
|
-
*/
|
|
8
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
-
if (k2 === undefined) k2 = k;
|
|
10
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
-
}) : (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
-
}) : function(o, v) {
|
|
22
|
-
o["default"] = v;
|
|
23
|
-
});
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
-
};
|
|
44
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.terminalController = exports.TerminalController = void 0;
|
|
46
|
-
const child_process_1 = require("child_process");
|
|
47
|
-
const util_1 = require("util");
|
|
48
|
-
const path_1 = __importDefault(require("path"));
|
|
49
|
-
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
50
|
-
class TerminalController {
|
|
51
|
-
defaultTimeout = 30000; // 30 seconds
|
|
52
|
-
defaultOptions = {
|
|
53
|
-
shell: true,
|
|
54
|
-
encoding: 'utf8'
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Execute command with promise-based interface
|
|
58
|
-
*/
|
|
59
|
-
async executeCommand(command, args = [], options = {}) {
|
|
60
|
-
const startTime = Date.now();
|
|
61
|
-
const mergedOptions = {
|
|
62
|
-
...this.defaultOptions,
|
|
63
|
-
...options,
|
|
64
|
-
timeout: options.timeout || this.defaultTimeout
|
|
65
|
-
};
|
|
66
|
-
return new Promise((resolve) => {
|
|
67
|
-
const child = (0, child_process_1.spawn)(command, args, {
|
|
68
|
-
cwd: mergedOptions.cwd,
|
|
69
|
-
env: { ...process.env, ...mergedOptions.env },
|
|
70
|
-
shell: false
|
|
71
|
-
});
|
|
72
|
-
let stdout = '';
|
|
73
|
-
let stderr = '';
|
|
74
|
-
child.stdout?.on('data', (data) => {
|
|
75
|
-
stdout += data.toString();
|
|
76
|
-
});
|
|
77
|
-
child.stderr?.on('data', (data) => {
|
|
78
|
-
stderr += data.toString();
|
|
79
|
-
});
|
|
80
|
-
let finished = false;
|
|
81
|
-
const finish = (code) => {
|
|
82
|
-
if (finished)
|
|
83
|
-
return;
|
|
84
|
-
finished = true;
|
|
85
|
-
resolve({
|
|
86
|
-
success: code === 0,
|
|
87
|
-
stdout: stdout.trim(),
|
|
88
|
-
stderr: stderr.trim(),
|
|
89
|
-
exitCode: code === null ? 1 : code,
|
|
90
|
-
executionTime: Date.now() - startTime,
|
|
91
|
-
command: `${command} ${args.join(' ')}`
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
child.on('close', (code) => finish(code));
|
|
95
|
-
child.on('error', (err) => {
|
|
96
|
-
stderr += err.message;
|
|
97
|
-
finish(1);
|
|
98
|
-
});
|
|
99
|
-
// Handle timeout
|
|
100
|
-
if (mergedOptions.timeout) {
|
|
101
|
-
setTimeout(() => {
|
|
102
|
-
try {
|
|
103
|
-
child.kill('SIGTERM');
|
|
104
|
-
}
|
|
105
|
-
catch { }
|
|
106
|
-
finish(1);
|
|
107
|
-
}, mergedOptions.timeout);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Execute command in specific directory
|
|
113
|
-
*/
|
|
114
|
-
async executeInDirectory(directory, command, args = [], options = {}) {
|
|
115
|
-
const resolvedPath = path_1.default.resolve(directory);
|
|
116
|
-
return this.executeCommand(command, args, {
|
|
117
|
-
...options,
|
|
118
|
-
cwd: resolvedPath
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Check if command exists in system PATH
|
|
123
|
-
*/
|
|
124
|
-
async commandExists(command) {
|
|
125
|
-
try {
|
|
126
|
-
const args = process.platform === 'win32' ? [command] : [command];
|
|
127
|
-
const cmd = process.platform === 'win32' ? 'where' : 'which';
|
|
128
|
-
const result = await this.executeCommand(cmd, args);
|
|
129
|
-
return result.success && result.stdout.length > 0;
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Get current working directory
|
|
137
|
-
*/
|
|
138
|
-
getCurrentDirectory() {
|
|
139
|
-
return process.cwd();
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Change working directory for subsequent commands
|
|
143
|
-
*/
|
|
144
|
-
setWorkingDirectory(directory) {
|
|
145
|
-
process.chdir(path_1.default.resolve(directory));
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Execute multiple commands in sequence
|
|
149
|
-
*/
|
|
150
|
-
async executeSequence(commands, stopOnError = true) {
|
|
151
|
-
const results = [];
|
|
152
|
-
for (const cmd of commands) {
|
|
153
|
-
const result = await this.executeCommand(cmd.command, cmd.args || [], cmd.options || {});
|
|
154
|
-
results.push(result);
|
|
155
|
-
if (!result.success && stopOnError) {
|
|
156
|
-
break;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return results;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Execute command with real-time output streaming
|
|
163
|
-
*/
|
|
164
|
-
async executeWithStreaming(command, args = [], options = {}) {
|
|
165
|
-
const startTime = Date.now();
|
|
166
|
-
const fullCommand = `${command} ${args.join(' ')}`;
|
|
167
|
-
return new Promise((resolve) => {
|
|
168
|
-
const child = (0, child_process_1.spawn)(command, args, {
|
|
169
|
-
cwd: options.cwd,
|
|
170
|
-
env: { ...process.env, ...options.env },
|
|
171
|
-
shell: options.shell !== false
|
|
172
|
-
});
|
|
173
|
-
let stdout = '';
|
|
174
|
-
let stderr = '';
|
|
175
|
-
child.stdout?.on('data', (data) => {
|
|
176
|
-
const text = data.toString();
|
|
177
|
-
stdout += text;
|
|
178
|
-
options.onStdout?.(text);
|
|
179
|
-
});
|
|
180
|
-
child.stderr?.on('data', (data) => {
|
|
181
|
-
const text = data.toString();
|
|
182
|
-
stderr += text;
|
|
183
|
-
options.onStderr?.(text);
|
|
184
|
-
});
|
|
185
|
-
child.on('close', (code) => {
|
|
186
|
-
resolve({
|
|
187
|
-
success: code === 0,
|
|
188
|
-
stdout: stdout.trim(),
|
|
189
|
-
stderr: stderr.trim(),
|
|
190
|
-
exitCode: code || 0,
|
|
191
|
-
executionTime: Date.now() - startTime,
|
|
192
|
-
command: fullCommand
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
child.on('error', (error) => {
|
|
196
|
-
resolve({
|
|
197
|
-
success: false,
|
|
198
|
-
stdout: stdout.trim(),
|
|
199
|
-
stderr: error.message,
|
|
200
|
-
exitCode: 1,
|
|
201
|
-
executionTime: Date.now() - startTime,
|
|
202
|
-
command: fullCommand
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
// Handle timeout
|
|
206
|
-
if (options.timeout) {
|
|
207
|
-
setTimeout(() => {
|
|
208
|
-
child.kill('SIGTERM');
|
|
209
|
-
}, options.timeout);
|
|
210
|
-
}
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Search for text in files using grep or findstr
|
|
215
|
-
*/
|
|
216
|
-
async searchInFiles(directory, query, options = {}) {
|
|
217
|
-
const isWindows = process.platform === 'win32';
|
|
218
|
-
if (isWindows) {
|
|
219
|
-
// Use findstr on Windows
|
|
220
|
-
const args = ['/S', '/N'];
|
|
221
|
-
if (!options.caseSensitive)
|
|
222
|
-
args.push('/I');
|
|
223
|
-
const filePattern = options.filePattern && options.filePattern !== '*' ? options.filePattern : '*';
|
|
224
|
-
// findstr usage: findstr [options] "searchString" filespec
|
|
225
|
-
args.push(query);
|
|
226
|
-
args.push(filePattern);
|
|
227
|
-
const result = await this.executeInDirectory(directory, 'findstr', args);
|
|
228
|
-
// findstr returns exit code 1 when no matches are found — treat as success with empty output
|
|
229
|
-
if (result.exitCode === 1 && !result.stdout.trim()) {
|
|
230
|
-
return {
|
|
231
|
-
success: true,
|
|
232
|
-
stdout: '',
|
|
233
|
-
stderr: '',
|
|
234
|
-
exitCode: 0,
|
|
235
|
-
executionTime: result.executionTime,
|
|
236
|
-
command: result.command
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
return result;
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
// Use grep on Unix-like systems
|
|
243
|
-
const args = ['-r', '-n'];
|
|
244
|
-
if (!options.caseSensitive)
|
|
245
|
-
args.push('-i');
|
|
246
|
-
if (options.filePattern && options.filePattern !== '*') {
|
|
247
|
-
args.push('--include', options.filePattern);
|
|
248
|
-
}
|
|
249
|
-
args.push(query, '.');
|
|
250
|
-
const result = await this.executeInDirectory(directory, 'grep', args);
|
|
251
|
-
// grep exit code 1 means no matches — normalize to success with empty output
|
|
252
|
-
if (result.exitCode === 1 && !result.stdout.trim()) {
|
|
253
|
-
return {
|
|
254
|
-
success: true,
|
|
255
|
-
stdout: '',
|
|
256
|
-
stderr: '',
|
|
257
|
-
exitCode: 0,
|
|
258
|
-
executionTime: result.executionTime,
|
|
259
|
-
command: result.command
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
return result;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Validate directory exists and is accessible
|
|
267
|
-
*/
|
|
268
|
-
async validateDirectory(directory) {
|
|
269
|
-
try {
|
|
270
|
-
const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
271
|
-
const stats = await fs.stat(directory);
|
|
272
|
-
return {
|
|
273
|
-
exists: true,
|
|
274
|
-
accessible: true,
|
|
275
|
-
isDirectory: stats.isDirectory(),
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
return {
|
|
280
|
-
exists: false,
|
|
281
|
-
accessible: false,
|
|
282
|
-
isDirectory: false,
|
|
283
|
-
error: error.message
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
exports.TerminalController = TerminalController;
|
|
289
|
-
// Export singleton instance
|
|
290
|
-
exports.terminalController = new TerminalController();
|
|
291
|
-
//# sourceMappingURL=terminal-controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-controller.js","sourceRoot":"","sources":["../../src/utils/terminal-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User-Friendly Response Formatter
|
|
3
|
-
*
|
|
4
|
-
* Converte respostas técnicas em formato JSON para respostas legíveis por humanos.
|
|
5
|
-
*/
|
|
6
|
-
import { ToolResult } from './response-formatter.js';
|
|
7
|
-
export declare class UserFriendlyFormatter {
|
|
8
|
-
/**
|
|
9
|
-
* Formata uma resposta técnica para uma versão amigável
|
|
10
|
-
*/
|
|
11
|
-
static formatResponse(result: ToolResult): string;
|
|
12
|
-
/**
|
|
13
|
-
* Formata resposta de sucesso
|
|
14
|
-
*/
|
|
15
|
-
private static formatSuccessResponse;
|
|
16
|
-
/**
|
|
17
|
-
* Formata resposta de erro
|
|
18
|
-
*/
|
|
19
|
-
private static formatErrorResponse;
|
|
20
|
-
/**
|
|
21
|
-
* Gera texto específico para cada tipo de operação bem-sucedida
|
|
22
|
-
*/
|
|
23
|
-
private static getOperationSpecificSuccess;
|
|
24
|
-
/**
|
|
25
|
-
* Gera texto de ajuda específico para cada tipo de erro
|
|
26
|
-
*/
|
|
27
|
-
private static getErrorSpecificHelp;
|
|
28
|
-
/**
|
|
29
|
-
* Resume os dados retornados em formato amigável
|
|
30
|
-
*/
|
|
31
|
-
private static summarizeData;
|
|
32
|
-
/**
|
|
33
|
-
* Formata um item de dados baseado em seu conteúdo
|
|
34
|
-
*/
|
|
35
|
-
private static formatDataItem;
|
|
36
|
-
/**
|
|
37
|
-
* Formata um valor para exibição amigável
|
|
38
|
-
*/
|
|
39
|
-
private static formatValue;
|
|
40
|
-
/**
|
|
41
|
-
* Capitaliza a primeira letra de uma string
|
|
42
|
-
*/
|
|
43
|
-
private static capitalizeFirstLetter;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=user-friendly-formatter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-friendly-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/user-friendly-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,qBAAa,qBAAqB;IAChC;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAQxD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAiBpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAwBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IA0B1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA6BnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAyB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAW1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAGrC"}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* User-Friendly Response Formatter
|
|
4
|
-
*
|
|
5
|
-
* Converte respostas técnicas em formato JSON para respostas legíveis por humanos.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.UserFriendlyFormatter = void 0;
|
|
9
|
-
class UserFriendlyFormatter {
|
|
10
|
-
/**
|
|
11
|
-
* Formata uma resposta técnica para uma versão amigável
|
|
12
|
-
*/
|
|
13
|
-
static formatResponse(result) {
|
|
14
|
-
if (result.success) {
|
|
15
|
-
return this.formatSuccessResponse(result);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
return this.formatErrorResponse(result);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Formata resposta de sucesso
|
|
23
|
-
*/
|
|
24
|
-
static formatSuccessResponse(result) {
|
|
25
|
-
const operation = result.metadata?.operation || 'Operação';
|
|
26
|
-
let output = `✅ ${this.capitalizeFirstLetter(operation)} concluído com sucesso!\n\n`;
|
|
27
|
-
// Adicionar detalhes específicos baseados na operação
|
|
28
|
-
if (result.metadata?.operation) {
|
|
29
|
-
output += this.getOperationSpecificSuccess(result);
|
|
30
|
-
}
|
|
31
|
-
// Adicionar resumo dos dados retornados (se houver)
|
|
32
|
-
if (result.data) {
|
|
33
|
-
output += this.summarizeData(result.data, result.metadata?.operation);
|
|
34
|
-
}
|
|
35
|
-
return output;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Formata resposta de erro
|
|
39
|
-
*/
|
|
40
|
-
static formatErrorResponse(result) {
|
|
41
|
-
const operation = result.metadata?.operation || 'Operação';
|
|
42
|
-
let output = `❌ Erro ao executar ${operation}\n\n`;
|
|
43
|
-
if (result.error?.message) {
|
|
44
|
-
output += `**Problema:** ${result.error.message}\n\n`;
|
|
45
|
-
}
|
|
46
|
-
if (result.error?.suggestions && result.error.suggestions.length > 0) {
|
|
47
|
-
output += "**Soluções possíveis:**\n";
|
|
48
|
-
result.error.suggestions.forEach((suggestion, index) => {
|
|
49
|
-
output += `${index + 1}. ${suggestion}\n`;
|
|
50
|
-
});
|
|
51
|
-
output += "\n";
|
|
52
|
-
}
|
|
53
|
-
// Adicionar detalhes específicos baseados no tipo de erro
|
|
54
|
-
if (result.error?.code) {
|
|
55
|
-
output += this.getErrorSpecificHelp(result);
|
|
56
|
-
}
|
|
57
|
-
return output;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Gera texto específico para cada tipo de operação bem-sucedida
|
|
61
|
-
*/
|
|
62
|
-
static getOperationSpecificSuccess(result) {
|
|
63
|
-
const operation = result.metadata?.operation;
|
|
64
|
-
const data = result.data;
|
|
65
|
-
switch (operation) {
|
|
66
|
-
case 'sync':
|
|
67
|
-
return `📦 Repositório sincronizado com sucesso!\n\n` +
|
|
68
|
-
`↓ Pull: Alterações remotas baixadas\n` +
|
|
69
|
-
`↑ Push: Alterações locais enviadas\n\n`;
|
|
70
|
-
case 'commit':
|
|
71
|
-
return `📝 Commit realizado com sucesso!\n\n` +
|
|
72
|
-
`${data?.message || 'Alterações salvas localmente'}\n\n`;
|
|
73
|
-
case 'list':
|
|
74
|
-
const count = Array.isArray(data) ? data.length :
|
|
75
|
-
(data?.items?.length || 'Vários');
|
|
76
|
-
return `📋 Listagem concluída: ${count} item(s) encontrado(s)\n\n`;
|
|
77
|
-
// Adicionar mais casos conforme necessário
|
|
78
|
-
default:
|
|
79
|
-
return '';
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Gera texto de ajuda específico para cada tipo de erro
|
|
84
|
-
*/
|
|
85
|
-
static getErrorSpecificHelp(result) {
|
|
86
|
-
const code = result.error?.code;
|
|
87
|
-
switch (code) {
|
|
88
|
-
case 'LOCAL_REPO_MISSING':
|
|
89
|
-
return `🔍 **Diagnóstico:** O repositório existe remotamente, mas não está inicializado localmente.\n\n` +
|
|
90
|
-
`Para resolver este problema, você pode:\n` +
|
|
91
|
-
`1. Inicializar um repositório local: \`git-workflow init\`\n` +
|
|
92
|
-
`2. Configurar o remote: \`git remote add origin <url>\`\n` +
|
|
93
|
-
`3. Fazer pull: \`git-workflow pull\`\n\n` +
|
|
94
|
-
`Ou simplesmente clonar o repositório: \`git clone <url>\`\n\n`;
|
|
95
|
-
case 'CONFIGURATION_ERROR':
|
|
96
|
-
return `⚙️ **Configuração:** Verifique as variáveis de ambiente para os providers.\n\n` +
|
|
97
|
-
`Para GitHub:\n` +
|
|
98
|
-
`- GITHUB_TOKEN\n` +
|
|
99
|
-
`- GITHUB_USERNAME\n\n` +
|
|
100
|
-
`Para Gitea:\n` +
|
|
101
|
-
`- GITEA_URL\n` +
|
|
102
|
-
`- GITEA_TOKEN\n` +
|
|
103
|
-
`- GITEA_USERNAME\n\n`;
|
|
104
|
-
// Adicionar mais casos conforme necessário
|
|
105
|
-
default:
|
|
106
|
-
return '';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Resume os dados retornados em formato amigável
|
|
111
|
-
*/
|
|
112
|
-
static summarizeData(data, operation) {
|
|
113
|
-
if (!data)
|
|
114
|
-
return '';
|
|
115
|
-
// Diferentes formatos de resumo baseados no tipo de dado
|
|
116
|
-
if (Array.isArray(data)) {
|
|
117
|
-
if (data.length === 0)
|
|
118
|
-
return "Nenhum item encontrado.\n";
|
|
119
|
-
if (data.length <= 5) {
|
|
120
|
-
return data.map(item => this.formatDataItem(item)).join('\n') + '\n';
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
return data.slice(0, 5).map(item => this.formatDataItem(item)).join('\n') +
|
|
124
|
-
`\n... e mais ${data.length - 5} item(s)\n`;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (typeof data === 'object' && data !== null) {
|
|
128
|
-
return Object.entries(data)
|
|
129
|
-
.filter(([key]) => !key.startsWith('_') && key !== 'metadata')
|
|
130
|
-
.map(([key, value]) => `${key}: ${this.formatValue(value)}`)
|
|
131
|
-
.join('\n') + '\n';
|
|
132
|
-
}
|
|
133
|
-
return `${data}\n`;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Formata um item de dados baseado em seu conteúdo
|
|
137
|
-
*/
|
|
138
|
-
static formatDataItem(item) {
|
|
139
|
-
if (typeof item === 'string')
|
|
140
|
-
return item;
|
|
141
|
-
if (typeof item === 'object' && item !== null) {
|
|
142
|
-
// Tenta encontrar campos de identificação comuns
|
|
143
|
-
const name = item.name || item.title || item.id || item.path;
|
|
144
|
-
if (name) {
|
|
145
|
-
const description = item.description || item.message || '';
|
|
146
|
-
return `- ${name}${description ? `: ${description}` : ''}`;
|
|
147
|
-
}
|
|
148
|
-
// Fallback para casos onde não há campo de identificação óbvio
|
|
149
|
-
return `- ${JSON.stringify(item).substring(0, 100)}${JSON.stringify(item).length > 100 ? '...' : ''}`;
|
|
150
|
-
}
|
|
151
|
-
return `- ${String(item)}`;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Formata um valor para exibição amigável
|
|
155
|
-
*/
|
|
156
|
-
static formatValue(value) {
|
|
157
|
-
if (value === null || value === undefined)
|
|
158
|
-
return '';
|
|
159
|
-
if (typeof value === 'object') {
|
|
160
|
-
if (Array.isArray(value)) {
|
|
161
|
-
return value.length > 0 ? `[${value.length} item(s)]` : '[]';
|
|
162
|
-
}
|
|
163
|
-
return '[objeto]';
|
|
164
|
-
}
|
|
165
|
-
return String(value);
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Capitaliza a primeira letra de uma string
|
|
169
|
-
*/
|
|
170
|
-
static capitalizeFirstLetter(str) {
|
|
171
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
exports.UserFriendlyFormatter = UserFriendlyFormatter;
|
|
175
|
-
//# sourceMappingURL=user-friendly-formatter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-friendly-formatter.js","sourceRoot":"","sources":["../../src/utils/user-friendly-formatter.ts"],"names":[],"mappings":"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"}
|