@andrebuzeli/git-mcp 5.5.0 → 5.5.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/README.md +25 -0
- package/dist/config.d.ts +5 -131
- package/dist/config.js +28 -430
- package/dist/index.d.ts +1 -21
- package/dist/index.js +66 -144
- 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/server.d.ts +6 -40
- package/dist/server.js +30 -700
- 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 +97 -0
- package/dist/tools/gitConfig.d.ts +34 -0
- package/dist/tools/gitConfig.js +73 -0
- package/dist/tools/gitFiles.d.ts +24 -0
- package/dist/tools/gitFiles.js +53 -0
- package/dist/tools/gitIssues.d.ts +21 -0
- package/dist/tools/gitIssues.js +193 -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 +74 -0
- package/dist/tools/gitPulls.js +190 -0
- package/dist/tools/gitRelease.d.ts +34 -0
- package/dist/tools/gitRelease.js +99 -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/gitWorkflow.d.ts +69 -0
- package/dist/tools/gitWorkflow.js +129 -0
- package/dist/types.d.ts +10 -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 +7 -2
- 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 -828
- 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 -507
- 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 -536
- 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 -349
- 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 -378
- 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 -470
- 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 -551
- 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,507 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Git Branches Tool
|
|
4
|
-
*
|
|
5
|
-
* Branch management tool providing comprehensive Git branch operations.
|
|
6
|
-
* Supports both local Git operations and remote provider operations.
|
|
7
|
-
*
|
|
8
|
-
* Operations: create, list, get, delete, merge, compare
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.GitBranchesTool = void 0;
|
|
12
|
-
const git_command_executor_js_1 = require("../utils/git-command-executor.js");
|
|
13
|
-
const parameter_validator_js_1 = require("../utils/parameter-validator.js");
|
|
14
|
-
const operation_error_handler_js_1 = require("../utils/operation-error-handler.js");
|
|
15
|
-
const provider_operation_handler_js_1 = require("../providers/provider-operation-handler.js");
|
|
16
|
-
const config_js_1 = require("../config.js");
|
|
17
|
-
class GitBranchesTool {
|
|
18
|
-
gitExecutor;
|
|
19
|
-
providerHandler;
|
|
20
|
-
constructor(providerConfig) {
|
|
21
|
-
this.gitExecutor = new git_command_executor_js_1.GitCommandExecutor();
|
|
22
|
-
if (providerConfig) {
|
|
23
|
-
this.providerHandler = new provider_operation_handler_js_1.ProviderOperationHandler(providerConfig);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Execute git-branches operation
|
|
28
|
-
*/
|
|
29
|
-
async execute(params) {
|
|
30
|
-
const startTime = Date.now();
|
|
31
|
-
try {
|
|
32
|
-
// Validate basic parameters
|
|
33
|
-
const validation = parameter_validator_js_1.ParameterValidator.validateToolParams('git-branches', params);
|
|
34
|
-
if (!validation.isValid) {
|
|
35
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Parameter validation failed: ${validation.errors.join(', ')}`, params.action, { validationErrors: validation.errors }, validation.suggestions);
|
|
36
|
-
}
|
|
37
|
-
// Validate operation-specific parameters
|
|
38
|
-
const operationValidation = parameter_validator_js_1.ParameterValidator.validateOperationParams('git-branches', params.action, params);
|
|
39
|
-
if (!operationValidation.isValid) {
|
|
40
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('VALIDATION_ERROR', `Operation validation failed: ${operationValidation.errors.join(', ')}`, params.action, { validationErrors: operationValidation.errors }, operationValidation.suggestions);
|
|
41
|
-
}
|
|
42
|
-
// Route to appropriate handler
|
|
43
|
-
const isRemoteOperation = this.isRemoteOperation(params.action);
|
|
44
|
-
if (isRemoteOperation) {
|
|
45
|
-
return await this.executeRemoteOperation(params, startTime);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return await this.executeLocalOperation(params, startTime);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
53
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('EXECUTION_ERROR', `Failed to execute ${params.action}: ${errorMessage}`, params.action, { error: errorMessage }, ['Check the error details and try again']);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Execute local Git branch operations
|
|
58
|
-
*/
|
|
59
|
-
async executeLocalOperation(params, startTime) {
|
|
60
|
-
switch (params.action) {
|
|
61
|
-
case 'create':
|
|
62
|
-
return await this.handleCreateBranch(params, startTime);
|
|
63
|
-
case 'list':
|
|
64
|
-
return await this.handleListBranches(params, startTime);
|
|
65
|
-
case 'get':
|
|
66
|
-
return await this.handleGetBranch(params, startTime);
|
|
67
|
-
case 'delete':
|
|
68
|
-
return await this.handleDeleteBranch(params, startTime);
|
|
69
|
-
case 'merge':
|
|
70
|
-
return await this.handleMergeBranch(params, startTime);
|
|
71
|
-
case 'compare':
|
|
72
|
-
return await this.handleCompareBranches(params, startTime);
|
|
73
|
-
default:
|
|
74
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('UNSUPPORTED_OPERATION', `Local operation '${params.action}' is not supported`, params.action, {}, ['Use one of: create, list, get, delete, merge, compare']);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Execute remote provider operations
|
|
79
|
-
*/
|
|
80
|
-
async executeRemoteOperation(params, startTime) {
|
|
81
|
-
if (!this.providerHandler) {
|
|
82
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('PROVIDER_NOT_CONFIGURED', 'Provider handler is not configured for remote operations', params.action, {}, ['Configure GitHub or Gitea provider to use remote operations']);
|
|
83
|
-
}
|
|
84
|
-
if (!params.provider) {
|
|
85
|
-
if (config_js_1.configManager.isUniversalMode()) {
|
|
86
|
-
params.provider = 'both';
|
|
87
|
-
console.error(`[Universal Mode] Auto-applying both providers for ${params.action}`);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('PROVIDER_REQUIRED', 'Provider parameter is required for remote operations', params.action, {}, ['Specify provider as: github, gitea, or both']);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
const operation = {
|
|
94
|
-
provider: params.provider,
|
|
95
|
-
operation: this.mapActionToProviderOperation(params.action),
|
|
96
|
-
parameters: this.extractRemoteParameters(params),
|
|
97
|
-
requiresAuth: true,
|
|
98
|
-
isRemoteOperation: true
|
|
99
|
-
};
|
|
100
|
-
try {
|
|
101
|
-
const result = await this.providerHandler.executeOperation(operation);
|
|
102
|
-
return {
|
|
103
|
-
success: result.success,
|
|
104
|
-
data: result.partialFailure ? result : result.results[0]?.data,
|
|
105
|
-
error: result.success ? undefined : {
|
|
106
|
-
code: result.errors[0]?.error?.code || 'REMOTE_OPERATION_ERROR',
|
|
107
|
-
message: result.errors[0]?.error?.message || 'Remote operation failed',
|
|
108
|
-
details: result.errors,
|
|
109
|
-
suggestions: ['Check provider configuration and credentials']
|
|
110
|
-
},
|
|
111
|
-
metadata: {
|
|
112
|
-
provider: params.provider,
|
|
113
|
-
operation: params.action,
|
|
114
|
-
timestamp: new Date().toISOString(),
|
|
115
|
-
executionTime: Date.now() - startTime
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
121
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('REMOTE_OPERATION_ERROR', `Remote operation failed: ${errorMessage}`, params.action, { error: errorMessage }, ['Check provider configuration and network connectivity']);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Handle create branch operation
|
|
126
|
-
*/
|
|
127
|
-
async handleCreateBranch(params, startTime) {
|
|
128
|
-
try {
|
|
129
|
-
if (!params.branchName) {
|
|
130
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'branchName is required for branch creation', 'create', {}, ['Provide a name for the new branch']);
|
|
131
|
-
}
|
|
132
|
-
// Check if branch already exists
|
|
133
|
-
const existingBranches = await this.gitExecutor.listBranches(params.projectPath, { all: false });
|
|
134
|
-
if (existingBranches.success && existingBranches.branches?.includes(params.branchName)) {
|
|
135
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('BRANCH_EXISTS', `Branch '${params.branchName}' already exists`, 'create', { branchName: params.branchName }, ['Use a different branch name or delete the existing branch first']);
|
|
136
|
-
}
|
|
137
|
-
// Create branch
|
|
138
|
-
const result = await this.gitExecutor.createBranch(params.projectPath, params.branchName, params.sourceBranch);
|
|
139
|
-
if (!result.success) {
|
|
140
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(result.stderr, 'create branch', params.projectPath);
|
|
141
|
-
}
|
|
142
|
-
// Checkout branch if requested
|
|
143
|
-
let checkoutResult = null;
|
|
144
|
-
if (params.checkout) {
|
|
145
|
-
checkoutResult = await this.gitExecutor.checkoutBranch(params.projectPath, params.branchName);
|
|
146
|
-
if (!checkoutResult.success) {
|
|
147
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(checkoutResult.stderr, 'checkout branch', params.projectPath);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
success: true,
|
|
152
|
-
data: {
|
|
153
|
-
message: `Branch '${params.branchName}' created successfully`,
|
|
154
|
-
branchName: params.branchName,
|
|
155
|
-
sourceBranch: params.sourceBranch || 'current branch',
|
|
156
|
-
checkedOut: params.checkout || false,
|
|
157
|
-
output: result.stdout,
|
|
158
|
-
checkoutOutput: checkoutResult?.stdout
|
|
159
|
-
},
|
|
160
|
-
metadata: {
|
|
161
|
-
operation: 'create',
|
|
162
|
-
timestamp: new Date().toISOString(),
|
|
163
|
-
executionTime: Date.now() - startTime
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
169
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('CREATE_BRANCH_ERROR', `Failed to create branch: ${errorMessage}`, 'create', { error: errorMessage, projectPath: params.projectPath });
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Handle list branches operation
|
|
174
|
-
*/
|
|
175
|
-
async handleListBranches(params, startTime) {
|
|
176
|
-
try {
|
|
177
|
-
const result = await this.gitExecutor.listBranches(params.projectPath, {
|
|
178
|
-
all: true,
|
|
179
|
-
remote: params.remote
|
|
180
|
-
});
|
|
181
|
-
if (!result.success) {
|
|
182
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(result.stderr, 'list branches', params.projectPath);
|
|
183
|
-
}
|
|
184
|
-
// Get current branch
|
|
185
|
-
const currentBranchResult = await this.gitExecutor.getCurrentBranch(params.projectPath);
|
|
186
|
-
const currentBranch = currentBranchResult.success ? currentBranchResult.branch : null;
|
|
187
|
-
return {
|
|
188
|
-
success: true,
|
|
189
|
-
data: {
|
|
190
|
-
branches: result.branches || [],
|
|
191
|
-
remoteBranches: result.remoteBranches || [],
|
|
192
|
-
currentBranch,
|
|
193
|
-
total: (result.branches?.length || 0) + (result.remoteBranches?.length || 0),
|
|
194
|
-
raw: result.stdout
|
|
195
|
-
},
|
|
196
|
-
metadata: {
|
|
197
|
-
operation: 'list',
|
|
198
|
-
timestamp: new Date().toISOString(),
|
|
199
|
-
executionTime: Date.now() - startTime
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
205
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('LIST_BRANCHES_ERROR', `Failed to list branches: ${errorMessage}`, 'list', { error: errorMessage, projectPath: params.projectPath });
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Handle get branch operation
|
|
210
|
-
*/
|
|
211
|
-
async handleGetBranch(params, startTime) {
|
|
212
|
-
try {
|
|
213
|
-
if (!params.branchName) {
|
|
214
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'branchName is required for get branch operation', 'get', {}, ['Provide the name of the branch to get information about']);
|
|
215
|
-
}
|
|
216
|
-
// Get branch information
|
|
217
|
-
const branchInfo = await this.gitExecutor.getBranchInfo(params.projectPath, params.branchName);
|
|
218
|
-
if (!branchInfo.success) {
|
|
219
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(branchInfo.stderr, 'get branch info', params.projectPath);
|
|
220
|
-
}
|
|
221
|
-
// Get branch commits
|
|
222
|
-
const commitsResult = await this.gitExecutor.getBranchCommits(params.projectPath, params.branchName, 10);
|
|
223
|
-
return {
|
|
224
|
-
success: true,
|
|
225
|
-
data: {
|
|
226
|
-
branchName: params.branchName,
|
|
227
|
-
exists: branchInfo.exists,
|
|
228
|
-
isRemote: branchInfo.isRemote,
|
|
229
|
-
lastCommit: branchInfo.lastCommit,
|
|
230
|
-
commits: commitsResult.success ? commitsResult.commits : [],
|
|
231
|
-
upstream: branchInfo.upstream,
|
|
232
|
-
ahead: branchInfo.ahead,
|
|
233
|
-
behind: branchInfo.behind
|
|
234
|
-
},
|
|
235
|
-
metadata: {
|
|
236
|
-
operation: 'get',
|
|
237
|
-
timestamp: new Date().toISOString(),
|
|
238
|
-
executionTime: Date.now() - startTime
|
|
239
|
-
}
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
244
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('GET_BRANCH_ERROR', `Failed to get branch information: ${errorMessage}`, 'get', { error: errorMessage, projectPath: params.projectPath });
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Handle delete branch operation
|
|
249
|
-
*/
|
|
250
|
-
async handleDeleteBranch(params, startTime) {
|
|
251
|
-
try {
|
|
252
|
-
if (!params.branchName) {
|
|
253
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'branchName is required for branch deletion', 'delete', {}, ['Provide the name of the branch to delete']);
|
|
254
|
-
}
|
|
255
|
-
// Check if trying to delete current branch
|
|
256
|
-
const currentBranchResult = await this.gitExecutor.getCurrentBranch(params.projectPath);
|
|
257
|
-
if (currentBranchResult.success && currentBranchResult.branch === params.branchName) {
|
|
258
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('CANNOT_DELETE_CURRENT_BRANCH', `Cannot delete current branch '${params.branchName}'`, 'delete', { branchName: params.branchName }, ['Switch to a different branch before deleting this one']);
|
|
259
|
-
}
|
|
260
|
-
const result = await this.gitExecutor.deleteBranch(params.projectPath, params.branchName, params.force || false);
|
|
261
|
-
if (!result.success) {
|
|
262
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(result.stderr, 'delete branch', params.projectPath);
|
|
263
|
-
}
|
|
264
|
-
return {
|
|
265
|
-
success: true,
|
|
266
|
-
data: {
|
|
267
|
-
message: `Branch '${params.branchName}' deleted successfully`,
|
|
268
|
-
branchName: params.branchName,
|
|
269
|
-
forced: params.force || false,
|
|
270
|
-
output: result.stdout
|
|
271
|
-
},
|
|
272
|
-
metadata: {
|
|
273
|
-
operation: 'delete',
|
|
274
|
-
timestamp: new Date().toISOString(),
|
|
275
|
-
executionTime: Date.now() - startTime
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
catch (error) {
|
|
280
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
281
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('DELETE_BRANCH_ERROR', `Failed to delete branch: ${errorMessage}`, 'delete', { error: errorMessage, projectPath: params.projectPath });
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Handle merge branch operation
|
|
286
|
-
*/
|
|
287
|
-
async handleMergeBranch(params, startTime) {
|
|
288
|
-
try {
|
|
289
|
-
if (!params.branchName) {
|
|
290
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'branchName is required for branch merge', 'merge', {}, ['Provide the name of the branch to merge']);
|
|
291
|
-
}
|
|
292
|
-
// Get current branch (target branch)
|
|
293
|
-
const currentBranchResult = await this.gitExecutor.getCurrentBranch(params.projectPath);
|
|
294
|
-
if (!currentBranchResult.success) {
|
|
295
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(currentBranchResult.stderr, 'get current branch', params.projectPath);
|
|
296
|
-
}
|
|
297
|
-
const targetBranch = params.targetBranch || currentBranchResult.branch;
|
|
298
|
-
// Check for uncommitted changes
|
|
299
|
-
const statusResult = await this.gitExecutor.getStatus(params.projectPath);
|
|
300
|
-
if (statusResult.success && statusResult.parsedStatus &&
|
|
301
|
-
(statusResult.parsedStatus.modified.length > 0 || statusResult.parsedStatus.added.length > 0)) {
|
|
302
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('UNCOMMITTED_CHANGES', 'Cannot merge with uncommitted changes', 'merge', { uncommittedFiles: [...statusResult.parsedStatus.modified, ...statusResult.parsedStatus.added] }, ['Commit or stash your changes before merging']);
|
|
303
|
-
}
|
|
304
|
-
const result = await this.gitExecutor.mergeBranch(params.projectPath, params.branchName, { force: params.force });
|
|
305
|
-
if (!result.success) {
|
|
306
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(result.stderr, 'merge branch', params.projectPath);
|
|
307
|
-
}
|
|
308
|
-
return {
|
|
309
|
-
success: true,
|
|
310
|
-
data: {
|
|
311
|
-
message: `Branch '${params.branchName}' merged into '${targetBranch}' successfully`,
|
|
312
|
-
sourceBranch: params.branchName,
|
|
313
|
-
targetBranch,
|
|
314
|
-
mergeCommit: result.mergeCommit,
|
|
315
|
-
conflicts: result.conflicts || [],
|
|
316
|
-
output: result.stdout
|
|
317
|
-
},
|
|
318
|
-
metadata: {
|
|
319
|
-
operation: 'merge',
|
|
320
|
-
timestamp: new Date().toISOString(),
|
|
321
|
-
executionTime: Date.now() - startTime
|
|
322
|
-
}
|
|
323
|
-
};
|
|
324
|
-
}
|
|
325
|
-
catch (error) {
|
|
326
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
327
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MERGE_BRANCH_ERROR', `Failed to merge branch: ${errorMessage}`, 'merge', { error: errorMessage, projectPath: params.projectPath });
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Handle compare branches operation
|
|
332
|
-
*/
|
|
333
|
-
async handleCompareBranches(params, startTime) {
|
|
334
|
-
try {
|
|
335
|
-
if (!params.baseBranch || !params.compareBranch) {
|
|
336
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('MISSING_PARAMETER', 'baseBranch and compareBranch are required for comparison', 'compare', {}, ['Provide both branch names to compare']);
|
|
337
|
-
}
|
|
338
|
-
const result = await this.gitExecutor.compareBranches(params.projectPath, params.baseBranch, params.compareBranch);
|
|
339
|
-
if (!result.success) {
|
|
340
|
-
return operation_error_handler_js_1.OperationErrorHandler.handleGitError(result.stderr, 'compare branches', params.projectPath);
|
|
341
|
-
}
|
|
342
|
-
return {
|
|
343
|
-
success: true,
|
|
344
|
-
data: {
|
|
345
|
-
baseBranch: params.baseBranch,
|
|
346
|
-
compareBranch: params.compareBranch,
|
|
347
|
-
ahead: result.ahead || 0,
|
|
348
|
-
behind: result.behind || 0,
|
|
349
|
-
commits: result.commits || [],
|
|
350
|
-
files: result.files || [],
|
|
351
|
-
summary: {
|
|
352
|
-
totalCommits: result.commits?.length || 0,
|
|
353
|
-
filesChanged: result.files?.length || 0,
|
|
354
|
-
insertions: result.insertions || 0,
|
|
355
|
-
deletions: result.deletions || 0
|
|
356
|
-
}
|
|
357
|
-
},
|
|
358
|
-
metadata: {
|
|
359
|
-
operation: 'compare',
|
|
360
|
-
timestamp: new Date().toISOString(),
|
|
361
|
-
executionTime: Date.now() - startTime
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
catch (error) {
|
|
366
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
367
|
-
return operation_error_handler_js_1.OperationErrorHandler.createToolError('COMPARE_BRANCHES_ERROR', `Failed to compare branches: ${errorMessage}`, 'compare', { error: errorMessage, projectPath: params.projectPath });
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Check if operation is a remote operation
|
|
372
|
-
*/
|
|
373
|
-
isRemoteOperation(action) {
|
|
374
|
-
// For now, all branch operations are local
|
|
375
|
-
// Remote branch operations would be handled through git-workflow or specific remote tools
|
|
376
|
-
return false;
|
|
377
|
-
}
|
|
378
|
-
/**
|
|
379
|
-
* Extract parameters for remote operations
|
|
380
|
-
*/
|
|
381
|
-
extractRemoteParameters(params) {
|
|
382
|
-
const remoteParams = {
|
|
383
|
-
projectPath: params.projectPath
|
|
384
|
-
};
|
|
385
|
-
if (params.repo)
|
|
386
|
-
remoteParams.repo = params.repo;
|
|
387
|
-
if (params.branchName)
|
|
388
|
-
remoteParams.branchName = params.branchName;
|
|
389
|
-
return remoteParams;
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Map git-branches actions to provider operations
|
|
393
|
-
*/
|
|
394
|
-
mapActionToProviderOperation(action) {
|
|
395
|
-
const actionMap = {
|
|
396
|
-
'list': 'branch-list',
|
|
397
|
-
'get': 'branch-get',
|
|
398
|
-
'create': 'branch-create',
|
|
399
|
-
'delete': 'branch-delete'
|
|
400
|
-
};
|
|
401
|
-
return actionMap[action] || action;
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Get tool schema for MCP registration
|
|
405
|
-
*/
|
|
406
|
-
static getToolSchema() {
|
|
407
|
-
return {
|
|
408
|
-
name: 'git-branches',
|
|
409
|
-
description: 'Git branch management tool for branch lifecycle operations. Supports create, list, get, delete, merge, and compare operations. Includes safety warnings for destructive operations like branch deletion. In universal mode (GIT_MCP_MODE=universal), automatically executes on both GitHub and Gitea providers.',
|
|
410
|
-
inputSchema: {
|
|
411
|
-
type: 'object',
|
|
412
|
-
properties: {
|
|
413
|
-
action: {
|
|
414
|
-
type: 'string',
|
|
415
|
-
enum: ['create', 'list', 'get', 'delete', 'merge', 'compare'],
|
|
416
|
-
description: 'The branch operation to perform. WARNING: delete operation permanently removes branches and their commit history.'
|
|
417
|
-
},
|
|
418
|
-
projectPath: {
|
|
419
|
-
type: 'string',
|
|
420
|
-
description: 'Absolute path to the project directory'
|
|
421
|
-
},
|
|
422
|
-
branchName: {
|
|
423
|
-
type: 'string',
|
|
424
|
-
description: 'Name of the branch (required for create, get, delete, merge)'
|
|
425
|
-
},
|
|
426
|
-
sourceBranch: {
|
|
427
|
-
type: 'string',
|
|
428
|
-
description: 'Source branch to create from (for create action)'
|
|
429
|
-
},
|
|
430
|
-
targetBranch: {
|
|
431
|
-
type: 'string',
|
|
432
|
-
description: 'Target branch to merge into (for merge action)'
|
|
433
|
-
},
|
|
434
|
-
baseBranch: {
|
|
435
|
-
type: 'string',
|
|
436
|
-
description: 'Base branch for comparison (required for compare action)'
|
|
437
|
-
},
|
|
438
|
-
compareBranch: {
|
|
439
|
-
type: 'string',
|
|
440
|
-
description: 'Branch to compare against base (required for compare action)'
|
|
441
|
-
},
|
|
442
|
-
force: {
|
|
443
|
-
type: 'boolean',
|
|
444
|
-
description: 'Force operation (for delete, merge actions)'
|
|
445
|
-
},
|
|
446
|
-
remote: {
|
|
447
|
-
type: 'string',
|
|
448
|
-
description: 'Remote name (default: origin)'
|
|
449
|
-
},
|
|
450
|
-
checkout: {
|
|
451
|
-
type: 'boolean',
|
|
452
|
-
description: 'Checkout branch after creation (for create action)'
|
|
453
|
-
},
|
|
454
|
-
repo: {
|
|
455
|
-
type: 'string',
|
|
456
|
-
description: 'Repository name (for remote operations)'
|
|
457
|
-
}
|
|
458
|
-
},
|
|
459
|
-
required: ['action', 'projectPath'],
|
|
460
|
-
additionalProperties: false
|
|
461
|
-
},
|
|
462
|
-
errorCodes: {
|
|
463
|
-
'VALIDATION_ERROR': 'Parameter validation failed - check required parameters and format',
|
|
464
|
-
'BRANCH_EXISTS': 'Branch already exists - use different name or delete existing branch',
|
|
465
|
-
'BRANCH_NOT_FOUND': 'Branch not found - check branch name and remote configuration',
|
|
466
|
-
'MERGE_CONFLICT': 'Merge conflicts detected - resolve conflicts before completing merge',
|
|
467
|
-
'DIRTY_WORKING_TREE': 'Working directory has uncommitted changes - commit or stash first',
|
|
468
|
-
'NOT_A_GIT_REPOSITORY': 'Directory is not a Git repository - use git init first',
|
|
469
|
-
'PERMISSION_DENIED': 'Permission denied - check access rights and credentials'
|
|
470
|
-
},
|
|
471
|
-
warnings: {
|
|
472
|
-
'delete': 'Branch deletion is permanent and cannot be undone. Ensure branch is merged or no longer needed.',
|
|
473
|
-
'force': 'Force operations can cause data loss. Use with extreme caution.'
|
|
474
|
-
},
|
|
475
|
-
examples: [
|
|
476
|
-
{
|
|
477
|
-
description: 'List all branches',
|
|
478
|
-
input: {
|
|
479
|
-
action: 'list',
|
|
480
|
-
projectPath: '/path/to/project'
|
|
481
|
-
}
|
|
482
|
-
},
|
|
483
|
-
{
|
|
484
|
-
description: 'Create new feature branch',
|
|
485
|
-
input: {
|
|
486
|
-
action: 'create',
|
|
487
|
-
projectPath: '/path/to/project',
|
|
488
|
-
branchName: 'feature/new-feature',
|
|
489
|
-
sourceBranch: 'main',
|
|
490
|
-
checkout: true
|
|
491
|
-
}
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
description: 'Compare two branches',
|
|
495
|
-
input: {
|
|
496
|
-
action: 'compare',
|
|
497
|
-
projectPath: '/path/to/project',
|
|
498
|
-
baseBranch: 'main',
|
|
499
|
-
compareBranch: 'feature/new-feature'
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
]
|
|
503
|
-
};
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
exports.GitBranchesTool = GitBranchesTool;
|
|
507
|
-
//# sourceMappingURL=git-branches.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-branches.js","sourceRoot":"","sources":["../../src/tools/git-branches.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Configuration Tool
|
|
3
|
-
*
|
|
4
|
-
* Git configuration management tool providing comprehensive Git config operations.
|
|
5
|
-
* Supports get, set, unset, list, edit, and show operations for Git configuration.
|
|
6
|
-
*
|
|
7
|
-
* Operations: get, set, unset, list, edit, show
|
|
8
|
-
*/
|
|
9
|
-
import { ToolParams } from '../utils/parameter-validator.js';
|
|
10
|
-
import { ToolResult } from '../utils/operation-error-handler.js';
|
|
11
|
-
export interface GitConfigParams extends ToolParams {
|
|
12
|
-
action: 'get' | 'set' | 'unset' | 'list' | 'edit' | 'show';
|
|
13
|
-
key?: string;
|
|
14
|
-
value?: string;
|
|
15
|
-
global?: boolean;
|
|
16
|
-
local?: boolean;
|
|
17
|
-
system?: boolean;
|
|
18
|
-
showOrigin?: boolean;
|
|
19
|
-
showScope?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export declare class GitConfigTool {
|
|
22
|
-
private gitExecutor;
|
|
23
|
-
constructor();
|
|
24
|
-
/**
|
|
25
|
-
* Execute git-config operation
|
|
26
|
-
*/
|
|
27
|
-
execute(params: GitConfigParams): Promise<ToolResult>;
|
|
28
|
-
/**
|
|
29
|
-
* Validate operation-specific parameters
|
|
30
|
-
*/
|
|
31
|
-
private validateOperationParams;
|
|
32
|
-
/**
|
|
33
|
-
* Validate configuration key format
|
|
34
|
-
*/
|
|
35
|
-
private isValidConfigKey;
|
|
36
|
-
/**
|
|
37
|
-
* Handle get configuration operation
|
|
38
|
-
*/
|
|
39
|
-
private handleGet;
|
|
40
|
-
/**
|
|
41
|
-
* Handle set configuration operation
|
|
42
|
-
*/
|
|
43
|
-
private handleSet;
|
|
44
|
-
/**
|
|
45
|
-
* Handle unset configuration operation
|
|
46
|
-
*/
|
|
47
|
-
private handleUnset;
|
|
48
|
-
/**
|
|
49
|
-
* Handle list configuration operation
|
|
50
|
-
*/
|
|
51
|
-
private handleList;
|
|
52
|
-
/**
|
|
53
|
-
* Handle edit configuration operation
|
|
54
|
-
*/
|
|
55
|
-
private handleEdit;
|
|
56
|
-
/**
|
|
57
|
-
* Handle show configuration operation
|
|
58
|
-
*/
|
|
59
|
-
private handleShow;
|
|
60
|
-
/**
|
|
61
|
-
* Get scope string for display
|
|
62
|
-
*/
|
|
63
|
-
private getScopeString;
|
|
64
|
-
/**
|
|
65
|
-
* Group configurations by section
|
|
66
|
-
*/
|
|
67
|
-
private groupConfigsBySection;
|
|
68
|
-
/**
|
|
69
|
-
* Get tool schema for MCP registration
|
|
70
|
-
*/
|
|
71
|
-
static getToolSchema(): {
|
|
72
|
-
name: string;
|
|
73
|
-
description: string;
|
|
74
|
-
inputSchema: {
|
|
75
|
-
type: string;
|
|
76
|
-
properties: {
|
|
77
|
-
action: {
|
|
78
|
-
type: string;
|
|
79
|
-
enum: string[];
|
|
80
|
-
description: string;
|
|
81
|
-
};
|
|
82
|
-
projectPath: {
|
|
83
|
-
type: string;
|
|
84
|
-
description: string;
|
|
85
|
-
};
|
|
86
|
-
key: {
|
|
87
|
-
type: string;
|
|
88
|
-
description: string;
|
|
89
|
-
};
|
|
90
|
-
value: {
|
|
91
|
-
type: string;
|
|
92
|
-
description: string;
|
|
93
|
-
};
|
|
94
|
-
global: {
|
|
95
|
-
type: string;
|
|
96
|
-
description: string;
|
|
97
|
-
};
|
|
98
|
-
local: {
|
|
99
|
-
type: string;
|
|
100
|
-
description: string;
|
|
101
|
-
};
|
|
102
|
-
system: {
|
|
103
|
-
type: string;
|
|
104
|
-
description: string;
|
|
105
|
-
};
|
|
106
|
-
showOrigin: {
|
|
107
|
-
type: string;
|
|
108
|
-
description: string;
|
|
109
|
-
};
|
|
110
|
-
showScope: {
|
|
111
|
-
type: string;
|
|
112
|
-
description: string;
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
required: string[];
|
|
116
|
-
};
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=git-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-config.d.ts","sourceRoot":"","sources":["../../src/tools/git-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAsB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAyB,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAGxF,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAG3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAqB;;IAMxC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAgE3D;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAoC/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;YACW,SAAS;IA6DvB;;OAEG;YACW,SAAS;IA2CvB;;OAEG;YACW,WAAW;IA2DzB;;OAEG;YACW,UAAU;IA+CxB;;OAEG;YACW,UAAU;IAwCxB;;OAEG;YACW,UAAU;IAuExB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,MAAM,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDrB"}
|