mta-mcp 2.2.0 → 2.3.1
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/bin/mta.cjs +43 -0
- package/dist/index.cjs +4784 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4769 -0
- package/dist/index.js.map +1 -0
- package/package.json +21 -10
- package/build/core/agentTemplate.d.ts +0 -33
- package/build/core/agentTemplate.d.ts.map +0 -1
- package/build/core/agentTemplate.js +0 -158
- package/build/core/agentTemplate.js.map +0 -1
- package/build/core/analyzers/eslint.d.ts +0 -51
- package/build/core/analyzers/eslint.d.ts.map +0 -1
- package/build/core/analyzers/eslint.js +0 -259
- package/build/core/analyzers/eslint.js.map +0 -1
- package/build/core/analyzers/index.d.ts +0 -9
- package/build/core/analyzers/index.d.ts.map +0 -1
- package/build/core/analyzers/index.js +0 -9
- package/build/core/analyzers/index.js.map +0 -1
- package/build/core/analyzers/registry.d.ts +0 -59
- package/build/core/analyzers/registry.d.ts.map +0 -1
- package/build/core/analyzers/registry.js +0 -241
- package/build/core/analyzers/registry.js.map +0 -1
- package/build/core/analyzers/tsconfig.d.ts +0 -45
- package/build/core/analyzers/tsconfig.d.ts.map +0 -1
- package/build/core/analyzers/tsconfig.js +0 -197
- package/build/core/analyzers/tsconfig.js.map +0 -1
- package/build/core/analyzers/types.d.ts +0 -176
- package/build/core/analyzers/types.d.ts.map +0 -1
- package/build/core/analyzers/types.js +0 -39
- package/build/core/analyzers/types.js.map +0 -1
- package/build/core/analyzers/vite.d.ts +0 -46
- package/build/core/analyzers/vite.d.ts.map +0 -1
- package/build/core/analyzers/vite.js +0 -211
- package/build/core/analyzers/vite.js.map +0 -1
- package/build/core/autoInitializer.d.ts +0 -34
- package/build/core/autoInitializer.d.ts.map +0 -1
- package/build/core/autoInitializer.js +0 -145
- package/build/core/autoInitializer.js.map +0 -1
- package/build/core/codeValidator.d.ts +0 -82
- package/build/core/codeValidator.d.ts.map +0 -1
- package/build/core/codeValidator.js +0 -287
- package/build/core/codeValidator.js.map +0 -1
- package/build/core/enhancedProjectAnalyzer.d.ts +0 -102
- package/build/core/enhancedProjectAnalyzer.d.ts.map +0 -1
- package/build/core/enhancedProjectAnalyzer.js +0 -312
- package/build/core/enhancedProjectAnalyzer.js.map +0 -1
- package/build/core/errors.d.ts +0 -84
- package/build/core/errors.d.ts.map +0 -1
- package/build/core/errors.js +0 -151
- package/build/core/errors.js.map +0 -1
- package/build/core/githubClient.d.ts +0 -26
- package/build/core/githubClient.d.ts.map +0 -1
- package/build/core/githubClient.js +0 -60
- package/build/core/githubClient.js.map +0 -1
- package/build/core/i18nDetector.d.ts +0 -47
- package/build/core/i18nDetector.d.ts.map +0 -1
- package/build/core/i18nDetector.js +0 -314
- package/build/core/i18nDetector.js.map +0 -1
- package/build/core/index.d.ts +0 -11
- package/build/core/index.d.ts.map +0 -1
- package/build/core/index.js +0 -14
- package/build/core/index.js.map +0 -1
- package/build/core/logger.d.ts +0 -91
- package/build/core/logger.d.ts.map +0 -1
- package/build/core/logger.js +0 -164
- package/build/core/logger.js.map +0 -1
- package/build/core/mappings/index.d.ts +0 -5
- package/build/core/mappings/index.d.ts.map +0 -1
- package/build/core/mappings/index.js +0 -5
- package/build/core/mappings/index.js.map +0 -1
- package/build/core/mappings/scenarioMappings.d.ts +0 -51
- package/build/core/mappings/scenarioMappings.d.ts.map +0 -1
- package/build/core/mappings/scenarioMappings.js +0 -105
- package/build/core/mappings/scenarioMappings.js.map +0 -1
- package/build/core/matching/index.d.ts +0 -8
- package/build/core/matching/index.d.ts.map +0 -1
- package/build/core/matching/index.js +0 -8
- package/build/core/matching/index.js.map +0 -1
- package/build/core/matching/intentAnalyzer.d.ts +0 -78
- package/build/core/matching/intentAnalyzer.d.ts.map +0 -1
- package/build/core/matching/intentAnalyzer.js +0 -255
- package/build/core/matching/intentAnalyzer.js.map +0 -1
- package/build/core/matching/standardMatcher.d.ts +0 -101
- package/build/core/matching/standardMatcher.d.ts.map +0 -1
- package/build/core/matching/standardMatcher.js +0 -299
- package/build/core/matching/standardMatcher.js.map +0 -1
- package/build/core/matching/weights.d.ts +0 -64
- package/build/core/matching/weights.d.ts.map +0 -1
- package/build/core/matching/weights.js +0 -334
- package/build/core/matching/weights.js.map +0 -1
- package/build/core/projectContextManager.d.ts +0 -39
- package/build/core/projectContextManager.d.ts.map +0 -1
- package/build/core/projectContextManager.js +0 -147
- package/build/core/projectContextManager.js.map +0 -1
- package/build/core/scenarioDetector.d.ts +0 -2
- package/build/core/scenarioDetector.d.ts.map +0 -1
- package/build/core/scenarioDetector.js +0 -2
- package/build/core/scenarioDetector.js.map +0 -1
- package/build/core/smartAgentMatcher.d.ts +0 -51
- package/build/core/smartAgentMatcher.d.ts.map +0 -1
- package/build/core/smartAgentMatcher.js +0 -493
- package/build/core/smartAgentMatcher.js.map +0 -1
- package/build/core/standardsManager.d.ts +0 -130
- package/build/core/standardsManager.d.ts.map +0 -1
- package/build/core/standardsManager.js +0 -600
- package/build/core/standardsManager.js.map +0 -1
- package/build/core/templates/discovery.d.ts +0 -41
- package/build/core/templates/discovery.d.ts.map +0 -1
- package/build/core/templates/discovery.js +0 -262
- package/build/core/templates/discovery.js.map +0 -1
- package/build/core/templates/types.d.ts +0 -80
- package/build/core/templates/types.d.ts.map +0 -1
- package/build/core/templates/types.js +0 -10
- package/build/core/templates/types.js.map +0 -1
- package/build/core/types.d.ts +0 -57
- package/build/core/types.d.ts.map +0 -1
- package/build/core/types.js +0 -22
- package/build/core/types.js.map +0 -1
- package/build/index.d.ts +0 -3
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -576
- package/build/index.js.map +0 -1
- package/build/tools/analyzeProject.d.ts +0 -12
- package/build/tools/analyzeProject.d.ts.map +0 -1
- package/build/tools/analyzeProject.js +0 -85
- package/build/tools/analyzeProject.js.map +0 -1
- package/build/tools/autoSetup.d.ts +0 -15
- package/build/tools/autoSetup.d.ts.map +0 -1
- package/build/tools/autoSetup.js +0 -291
- package/build/tools/autoSetup.js.map +0 -1
- package/build/tools/generateConfig.d.ts +0 -16
- package/build/tools/generateConfig.d.ts.map +0 -1
- package/build/tools/generateConfig.js +0 -379
- package/build/tools/generateConfig.js.map +0 -1
- package/build/tools/generateProjectAgent.d.ts +0 -15
- package/build/tools/generateProjectAgent.d.ts.map +0 -1
- package/build/tools/generateProjectAgent.js +0 -348
- package/build/tools/generateProjectAgent.js.map +0 -1
- package/build/tools/getCompactStandards.d.ts +0 -20
- package/build/tools/getCompactStandards.d.ts.map +0 -1
- package/build/tools/getCompactStandards.js +0 -367
- package/build/tools/getCompactStandards.js.map +0 -1
- package/build/tools/getSmartStandards.d.ts +0 -15
- package/build/tools/getSmartStandards.d.ts.map +0 -1
- package/build/tools/getSmartStandards.js +0 -201
- package/build/tools/getSmartStandards.js.map +0 -1
- package/build/tools/getStandardById.d.ts +0 -42
- package/build/tools/getStandardById.d.ts.map +0 -1
- package/build/tools/getStandardById.js +0 -289
- package/build/tools/getStandardById.js.map +0 -1
- package/build/tools/getTemplate.d.ts +0 -37
- package/build/tools/getTemplate.d.ts.map +0 -1
- package/build/tools/getTemplate.js +0 -78
- package/build/tools/getTemplate.js.map +0 -1
- package/build/tools/healthCheck.d.ts +0 -14
- package/build/tools/healthCheck.d.ts.map +0 -1
- package/build/tools/healthCheck.js +0 -237
- package/build/tools/healthCheck.js.map +0 -1
- package/build/tools/listAgents.d.ts +0 -10
- package/build/tools/listAgents.d.ts.map +0 -1
- package/build/tools/listAgents.js +0 -79
- package/build/tools/listAgents.js.map +0 -1
- package/build/tools/listTemplates.d.ts +0 -41
- package/build/tools/listTemplates.d.ts.map +0 -1
- package/build/tools/listTemplates.js +0 -81
- package/build/tools/listTemplates.js.map +0 -1
- package/build/tools/matchAgents.d.ts +0 -14
- package/build/tools/matchAgents.d.ts.map +0 -1
- package/build/tools/matchAgents.js +0 -70
- package/build/tools/matchAgents.js.map +0 -1
- package/build/tools/queryMappings.d.ts +0 -55
- package/build/tools/queryMappings.d.ts.map +0 -1
- package/build/tools/queryMappings.js +0 -119
- package/build/tools/queryMappings.js.map +0 -1
- package/build/tools/usePreset.d.ts +0 -23
- package/build/tools/usePreset.d.ts.map +0 -1
- package/build/tools/usePreset.js +0 -163
- package/build/tools/usePreset.js.map +0 -1
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 增强版项目分析器(简化版)
|
|
3
|
-
*
|
|
4
|
-
* 设计理念:只提供项目信息给 AI,不做决策
|
|
5
|
-
* 整合模块化分析器,提供更精准的项目检测能力
|
|
6
|
-
*
|
|
7
|
-
* @module core/enhancedProjectAnalyzer
|
|
8
|
-
*/
|
|
9
|
-
import * as fs from 'fs';
|
|
10
|
-
import * as path from 'path';
|
|
11
|
-
import * as crypto from 'crypto';
|
|
12
|
-
import glob from 'fast-glob';
|
|
13
|
-
import { toBasicFeatures } from './analyzers/types.js';
|
|
14
|
-
import { AnalyzerRegistry } from './analyzers/registry.js';
|
|
15
|
-
/**
|
|
16
|
-
* 增强版项目分析器
|
|
17
|
-
*/
|
|
18
|
-
export class EnhancedProjectAnalyzer {
|
|
19
|
-
logger;
|
|
20
|
-
registry;
|
|
21
|
-
cache = new Map();
|
|
22
|
-
cacheMaxAge = 5 * 60 * 1000; // 5 分钟
|
|
23
|
-
constructor(logger) {
|
|
24
|
-
this.logger = logger;
|
|
25
|
-
this.registry = new AnalyzerRegistry();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* 分析项目
|
|
29
|
-
*/
|
|
30
|
-
async analyze(workspaceFolder, options = {}) {
|
|
31
|
-
const rootPath = workspaceFolder.uri.fsPath;
|
|
32
|
-
const cacheKey = rootPath;
|
|
33
|
-
this.log(`🔍 开始增强分析项目: ${workspaceFolder.name}`);
|
|
34
|
-
// 检查缓存
|
|
35
|
-
if (options.useCache !== false) {
|
|
36
|
-
const cached = this.getCachedResult(cacheKey, rootPath);
|
|
37
|
-
if (cached) {
|
|
38
|
-
this.log(`📦 使用缓存结果`);
|
|
39
|
-
return {
|
|
40
|
-
features: cached,
|
|
41
|
-
basicFeatures: toBasicFeatures(cached),
|
|
42
|
-
fromCache: true
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// 执行分析
|
|
47
|
-
const features = await this.analyzeProjectFeatures(rootPath);
|
|
48
|
-
// 更新缓存
|
|
49
|
-
this.updateCache(cacheKey, rootPath, features);
|
|
50
|
-
this.log(`✅ 增强分析完成: ${features.projectType}`);
|
|
51
|
-
return {
|
|
52
|
-
features,
|
|
53
|
-
basicFeatures: toBasicFeatures(features),
|
|
54
|
-
fromCache: false
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 分析项目特征
|
|
59
|
-
*/
|
|
60
|
-
async analyzeProjectFeatures(rootPath) {
|
|
61
|
-
// 初始化特征
|
|
62
|
-
const features = {
|
|
63
|
-
frameworks: [],
|
|
64
|
-
languages: [],
|
|
65
|
-
tools: [],
|
|
66
|
-
keywords: [],
|
|
67
|
-
projectType: 'unknown'
|
|
68
|
-
};
|
|
69
|
-
// 1. 优先检测 Flutter 项目
|
|
70
|
-
const pubspecPath = path.join(rootPath, 'pubspec.yaml');
|
|
71
|
-
if (fs.existsSync(pubspecPath)) {
|
|
72
|
-
this.analyzeFlutterProject(pubspecPath, features);
|
|
73
|
-
features.projectType = 'flutter';
|
|
74
|
-
return features;
|
|
75
|
-
}
|
|
76
|
-
// 2. 分析 package.json
|
|
77
|
-
const packageJsonPath = path.join(rootPath, 'package.json');
|
|
78
|
-
if (fs.existsSync(packageJsonPath)) {
|
|
79
|
-
this.analyzePackageJson(packageJsonPath, features);
|
|
80
|
-
}
|
|
81
|
-
// 3. 分析项目结构
|
|
82
|
-
await this.analyzeProjectStructure(rootPath, features);
|
|
83
|
-
// 4. 推断项目类型
|
|
84
|
-
features.projectType = this.inferProjectType(features);
|
|
85
|
-
return features;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* 分析 Flutter 项目
|
|
89
|
-
*/
|
|
90
|
-
analyzeFlutterProject(pubspecPath, features) {
|
|
91
|
-
features.frameworks.push('Flutter');
|
|
92
|
-
features.languages.push('Dart');
|
|
93
|
-
try {
|
|
94
|
-
const content = fs.readFileSync(pubspecPath, 'utf-8');
|
|
95
|
-
// 状态管理
|
|
96
|
-
if (content.includes('provider:'))
|
|
97
|
-
features.keywords.push('state-management');
|
|
98
|
-
if (content.includes('riverpod:'))
|
|
99
|
-
features.keywords.push('state-management');
|
|
100
|
-
if (content.includes('bloc:') || content.includes('flutter_bloc:'))
|
|
101
|
-
features.keywords.push('state-management');
|
|
102
|
-
// 国际化
|
|
103
|
-
if (content.includes('flutter_localizations:') || content.includes('intl:')) {
|
|
104
|
-
features.keywords.push('i18n');
|
|
105
|
-
}
|
|
106
|
-
// 路由
|
|
107
|
-
if (content.includes('go_router:'))
|
|
108
|
-
features.tools.push('GoRouter');
|
|
109
|
-
// 网络
|
|
110
|
-
if (content.includes('dio:'))
|
|
111
|
-
features.tools.push('Dio');
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
this.log(`解析 pubspec.yaml 失败: ${error}`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* 分析 package.json
|
|
119
|
-
*/
|
|
120
|
-
analyzePackageJson(packageJsonPath, features) {
|
|
121
|
-
try {
|
|
122
|
-
const content = fs.readFileSync(packageJsonPath, 'utf-8');
|
|
123
|
-
const pkg = JSON.parse(content);
|
|
124
|
-
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
125
|
-
// 前端框架
|
|
126
|
-
if (allDeps['vue'])
|
|
127
|
-
features.frameworks.push('Vue 3');
|
|
128
|
-
if (allDeps['react'])
|
|
129
|
-
features.frameworks.push('React');
|
|
130
|
-
if (allDeps['@angular/core'])
|
|
131
|
-
features.frameworks.push('Angular');
|
|
132
|
-
if (allDeps['next'])
|
|
133
|
-
features.frameworks.push('Next.js');
|
|
134
|
-
if (allDeps['nuxt'])
|
|
135
|
-
features.frameworks.push('Nuxt.js');
|
|
136
|
-
// UI 库
|
|
137
|
-
if (allDeps['element-plus'])
|
|
138
|
-
features.tools.push('Element Plus');
|
|
139
|
-
if (allDeps['ant-design-vue'])
|
|
140
|
-
features.tools.push('Ant Design Vue');
|
|
141
|
-
if (allDeps['antd'])
|
|
142
|
-
features.tools.push('Ant Design');
|
|
143
|
-
// 构建工具
|
|
144
|
-
if (allDeps['vite'])
|
|
145
|
-
features.tools.push('Vite');
|
|
146
|
-
if (allDeps['webpack'])
|
|
147
|
-
features.tools.push('Webpack');
|
|
148
|
-
// 语言
|
|
149
|
-
if (allDeps['typescript'])
|
|
150
|
-
features.languages.push('TypeScript');
|
|
151
|
-
// 状态管理
|
|
152
|
-
if (allDeps['pinia'])
|
|
153
|
-
features.keywords.push('state-management');
|
|
154
|
-
if (allDeps['vuex'])
|
|
155
|
-
features.keywords.push('state-management');
|
|
156
|
-
if (allDeps['redux'])
|
|
157
|
-
features.keywords.push('state-management');
|
|
158
|
-
// 国际化
|
|
159
|
-
if (allDeps['vue-i18n'] || allDeps['i18next'])
|
|
160
|
-
features.keywords.push('i18n');
|
|
161
|
-
// 其他工具
|
|
162
|
-
if (allDeps['@logicflow/core'])
|
|
163
|
-
features.tools.push('LogicFlow');
|
|
164
|
-
if (allDeps['axios'])
|
|
165
|
-
features.keywords.push('data-fetching');
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
this.log(`解析 package.json 失败: ${error}`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* 分析项目结构
|
|
173
|
-
*/
|
|
174
|
-
async analyzeProjectStructure(rootPath, features) {
|
|
175
|
-
try {
|
|
176
|
-
const patterns = ['**/*.{vue,tsx,ts,js,jsx}'];
|
|
177
|
-
const files = await glob(patterns, {
|
|
178
|
-
cwd: rootPath,
|
|
179
|
-
ignore: ['**/node_modules/**', '**/dist/**', '**/build/**'],
|
|
180
|
-
onlyFiles: true
|
|
181
|
-
});
|
|
182
|
-
// 检测文件类型
|
|
183
|
-
if (files.some(f => f.endsWith('.vue'))) {
|
|
184
|
-
if (!features.frameworks.includes('Vue 3') && !features.frameworks.includes('Vue')) {
|
|
185
|
-
features.frameworks.push('Vue');
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (files.some(f => f.endsWith('.tsx'))) {
|
|
189
|
-
if (!features.frameworks.includes('React')) {
|
|
190
|
-
features.frameworks.push('React');
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (files.some(f => f.endsWith('.ts') || f.endsWith('.tsx'))) {
|
|
194
|
-
if (!features.languages.includes('TypeScript')) {
|
|
195
|
-
features.languages.push('TypeScript');
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
// 检测国际化
|
|
199
|
-
if (files.some(f => f.includes('/locales/') || f.includes('/i18n/'))) {
|
|
200
|
-
if (!features.keywords.includes('i18n')) {
|
|
201
|
-
features.keywords.push('i18n');
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
catch (error) {
|
|
206
|
-
this.log(`分析项目结构失败: ${error}`);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* 推断项目类型
|
|
211
|
-
*/
|
|
212
|
-
inferProjectType(features) {
|
|
213
|
-
const frameworks = features.frameworks.map(f => f.toLowerCase());
|
|
214
|
-
if (frameworks.some(f => f.includes('nuxt')))
|
|
215
|
-
return 'nuxt-app';
|
|
216
|
-
if (frameworks.some(f => f.includes('vue')))
|
|
217
|
-
return 'vue-app';
|
|
218
|
-
if (frameworks.some(f => f.includes('next')))
|
|
219
|
-
return 'next-app';
|
|
220
|
-
if (frameworks.some(f => f.includes('react')))
|
|
221
|
-
return 'react-app';
|
|
222
|
-
if (frameworks.some(f => f.includes('flutter')))
|
|
223
|
-
return 'flutter-app';
|
|
224
|
-
if (features.languages.includes('TypeScript'))
|
|
225
|
-
return 'typescript-project';
|
|
226
|
-
return 'unknown';
|
|
227
|
-
}
|
|
228
|
-
// ==================== 缓存 ====================
|
|
229
|
-
/**
|
|
230
|
-
* 获取缓存结果
|
|
231
|
-
*/
|
|
232
|
-
getCachedResult(cacheKey, rootPath) {
|
|
233
|
-
const entry = this.cache.get(cacheKey);
|
|
234
|
-
if (!entry)
|
|
235
|
-
return null;
|
|
236
|
-
// 检查过期
|
|
237
|
-
if (Date.now() - entry.timestamp > this.cacheMaxAge) {
|
|
238
|
-
this.cache.delete(cacheKey);
|
|
239
|
-
return null;
|
|
240
|
-
}
|
|
241
|
-
// 检查文件变化
|
|
242
|
-
if (this.checkFilesChanged(rootPath, entry.fileHashes)) {
|
|
243
|
-
this.cache.delete(cacheKey);
|
|
244
|
-
return null;
|
|
245
|
-
}
|
|
246
|
-
return entry.features;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* 更新缓存
|
|
250
|
-
*/
|
|
251
|
-
updateCache(cacheKey, rootPath, features) {
|
|
252
|
-
const fileHashes = this.calculateFileHashes(rootPath);
|
|
253
|
-
this.cache.set(cacheKey, {
|
|
254
|
-
features,
|
|
255
|
-
fileHashes,
|
|
256
|
-
timestamp: Date.now()
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* 计算关键文件哈希
|
|
261
|
-
*/
|
|
262
|
-
calculateFileHashes(rootPath) {
|
|
263
|
-
const hashes = new Map();
|
|
264
|
-
const keyFiles = ['package.json', 'pubspec.yaml', 'tsconfig.json'];
|
|
265
|
-
for (const file of keyFiles) {
|
|
266
|
-
const filePath = path.join(rootPath, file);
|
|
267
|
-
if (fs.existsSync(filePath)) {
|
|
268
|
-
try {
|
|
269
|
-
const content = fs.readFileSync(filePath);
|
|
270
|
-
const hash = crypto.createHash('md5').update(content).digest('hex');
|
|
271
|
-
hashes.set(file, hash);
|
|
272
|
-
}
|
|
273
|
-
catch {
|
|
274
|
-
// 忽略读取错误
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return hashes;
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* 检查文件是否变化
|
|
282
|
-
*/
|
|
283
|
-
checkFilesChanged(rootPath, oldHashes) {
|
|
284
|
-
const newHashes = this.calculateFileHashes(rootPath);
|
|
285
|
-
if (newHashes.size !== oldHashes.size)
|
|
286
|
-
return true;
|
|
287
|
-
for (const [file, hash] of newHashes) {
|
|
288
|
-
if (oldHashes.get(file) !== hash)
|
|
289
|
-
return true;
|
|
290
|
-
}
|
|
291
|
-
return false;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* 清除缓存
|
|
295
|
-
*/
|
|
296
|
-
clearCache() {
|
|
297
|
-
this.cache.clear();
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* 日志
|
|
301
|
-
*/
|
|
302
|
-
log(message) {
|
|
303
|
-
this.logger?.log(message);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* 获取默认分析器实例
|
|
308
|
-
*/
|
|
309
|
-
export function getDefaultAnalyzer(logger) {
|
|
310
|
-
return new EnhancedProjectAnalyzer(logger);
|
|
311
|
-
}
|
|
312
|
-
//# sourceMappingURL=enhancedProjectAnalyzer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedProjectAnalyzer.js","sourceRoot":"","sources":["../../src/core/enhancedProjectAnalyzer.ts"],"names":[],"mappings":"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"}
|
package/build/core/errors.d.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP 错误处理模块
|
|
3
|
-
*
|
|
4
|
-
* 提供统一的错误类型、错误码和错误响应格式
|
|
5
|
-
*
|
|
6
|
-
* @module core/errors
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* 错误码枚举
|
|
10
|
-
*/
|
|
11
|
-
export declare enum ErrorCode {
|
|
12
|
-
UNKNOWN = 1000,
|
|
13
|
-
INVALID_PARAMETER = 1001,
|
|
14
|
-
NOT_FOUND = 1002,
|
|
15
|
-
PERMISSION_DENIED = 1003,
|
|
16
|
-
PROJECT_NOT_FOUND = 2001,
|
|
17
|
-
PROJECT_PARSE_ERROR = 2002,
|
|
18
|
-
CONFIG_READ_ERROR = 2003,
|
|
19
|
-
STANDARD_NOT_FOUND = 3001,
|
|
20
|
-
STANDARD_LOAD_ERROR = 3002,
|
|
21
|
-
PRESET_NOT_FOUND = 3003,
|
|
22
|
-
TEMPLATE_NOT_FOUND = 4001,
|
|
23
|
-
TEMPLATE_PARSE_ERROR = 4002,
|
|
24
|
-
AGENT_NOT_FOUND = 5001,
|
|
25
|
-
AGENT_LOAD_ERROR = 5002,
|
|
26
|
-
CONFIG_GENERATE_ERROR = 6001,
|
|
27
|
-
FILE_WRITE_ERROR = 6002
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* MCP 统一错误类
|
|
31
|
-
*/
|
|
32
|
-
export declare class MCPError extends Error {
|
|
33
|
-
/** 错误码 */
|
|
34
|
-
readonly code: ErrorCode;
|
|
35
|
-
/** 原始错误 */
|
|
36
|
-
readonly cause?: Error;
|
|
37
|
-
/** 错误上下文 */
|
|
38
|
-
readonly context?: Record<string, unknown>;
|
|
39
|
-
constructor(code: ErrorCode, message?: string, options?: {
|
|
40
|
-
cause?: Error;
|
|
41
|
-
context?: Record<string, unknown>;
|
|
42
|
-
});
|
|
43
|
-
/**
|
|
44
|
-
* 转换为 JSON 格式(用于 MCP 响应)
|
|
45
|
-
*/
|
|
46
|
-
toJSON(): Record<string, unknown>;
|
|
47
|
-
/**
|
|
48
|
-
* 转换为 MCP 响应格式
|
|
49
|
-
*/
|
|
50
|
-
toResponse(): {
|
|
51
|
-
content: Array<{
|
|
52
|
-
type: string;
|
|
53
|
-
text: string;
|
|
54
|
-
}>;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 便捷错误创建函数
|
|
59
|
-
*/
|
|
60
|
-
export declare const Errors: {
|
|
61
|
-
invalidParam: (param: string, reason?: string) => MCPError;
|
|
62
|
-
notFound: (resource: string, id?: string) => MCPError;
|
|
63
|
-
projectNotFound: (path: string) => MCPError;
|
|
64
|
-
standardNotFound: (id: string) => MCPError;
|
|
65
|
-
presetNotFound: (preset: string) => MCPError;
|
|
66
|
-
templateNotFound: (id: string) => MCPError;
|
|
67
|
-
agentNotFound: (id: string) => MCPError;
|
|
68
|
-
fileWriteError: (path: string, cause?: Error) => MCPError;
|
|
69
|
-
wrap: (error: unknown, code?: ErrorCode) => MCPError;
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* 安全执行函数,捕获错误并转换为 MCPError
|
|
73
|
-
*/
|
|
74
|
-
export declare function safeExecute<T>(fn: () => Promise<T>, errorCode?: ErrorCode): Promise<T>;
|
|
75
|
-
/**
|
|
76
|
-
* 创建标准的错误响应
|
|
77
|
-
*/
|
|
78
|
-
export declare function errorResponse(error: unknown): {
|
|
79
|
-
content: Array<{
|
|
80
|
-
type: string;
|
|
81
|
-
text: string;
|
|
82
|
-
}>;
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,oBAAY,SAAS;IAEjB,OAAO,OAAO;IACd,iBAAiB,OAAO;IACxB,SAAS,OAAO;IAChB,iBAAiB,OAAO;IAGxB,iBAAiB,OAAO;IACxB,mBAAmB,OAAO;IAC1B,iBAAiB,OAAO;IAGxB,kBAAkB,OAAO;IACzB,mBAAmB,OAAO;IAC1B,gBAAgB,OAAO;IAGvB,kBAAkB,OAAO;IACzB,oBAAoB,OAAO;IAG3B,eAAe,OAAO;IACtB,gBAAgB,OAAO;IAGvB,qBAAqB,OAAO;IAC5B,gBAAgB,OAAO;CAC1B;AA6BD;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAC/B,UAAU;IACV,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,WAAW;IACX,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,YAAY;IACZ,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGvC,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC;IAcL;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASjC;;OAEG;IACH,UAAU,IAAI;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;CAQnE;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;0BACO,MAAM,WAAW,MAAM;yBAMxB,MAAM,OAAO,MAAM;4BAMhB,MAAM;2BAMP,MAAM;6BAMJ,MAAM;2BAMR,MAAM;wBAMT,MAAM;2BAMH,MAAM,UAAU,KAAK;kBAM9B,OAAO,SAAQ,SAAS;CAQzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,GAAE,SAA6B,GACzC,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAgBhG"}
|
package/build/core/errors.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP 错误处理模块
|
|
3
|
-
*
|
|
4
|
-
* 提供统一的错误类型、错误码和错误响应格式
|
|
5
|
-
*
|
|
6
|
-
* @module core/errors
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* 错误码枚举
|
|
10
|
-
*/
|
|
11
|
-
export var ErrorCode;
|
|
12
|
-
(function (ErrorCode) {
|
|
13
|
-
// 通用错误 1xxx
|
|
14
|
-
ErrorCode[ErrorCode["UNKNOWN"] = 1000] = "UNKNOWN";
|
|
15
|
-
ErrorCode[ErrorCode["INVALID_PARAMETER"] = 1001] = "INVALID_PARAMETER";
|
|
16
|
-
ErrorCode[ErrorCode["NOT_FOUND"] = 1002] = "NOT_FOUND";
|
|
17
|
-
ErrorCode[ErrorCode["PERMISSION_DENIED"] = 1003] = "PERMISSION_DENIED";
|
|
18
|
-
// 项目分析错误 2xxx
|
|
19
|
-
ErrorCode[ErrorCode["PROJECT_NOT_FOUND"] = 2001] = "PROJECT_NOT_FOUND";
|
|
20
|
-
ErrorCode[ErrorCode["PROJECT_PARSE_ERROR"] = 2002] = "PROJECT_PARSE_ERROR";
|
|
21
|
-
ErrorCode[ErrorCode["CONFIG_READ_ERROR"] = 2003] = "CONFIG_READ_ERROR";
|
|
22
|
-
// 规范相关错误 3xxx
|
|
23
|
-
ErrorCode[ErrorCode["STANDARD_NOT_FOUND"] = 3001] = "STANDARD_NOT_FOUND";
|
|
24
|
-
ErrorCode[ErrorCode["STANDARD_LOAD_ERROR"] = 3002] = "STANDARD_LOAD_ERROR";
|
|
25
|
-
ErrorCode[ErrorCode["PRESET_NOT_FOUND"] = 3003] = "PRESET_NOT_FOUND";
|
|
26
|
-
// 模板相关错误 4xxx
|
|
27
|
-
ErrorCode[ErrorCode["TEMPLATE_NOT_FOUND"] = 4001] = "TEMPLATE_NOT_FOUND";
|
|
28
|
-
ErrorCode[ErrorCode["TEMPLATE_PARSE_ERROR"] = 4002] = "TEMPLATE_PARSE_ERROR";
|
|
29
|
-
// Agent 相关错误 5xxx
|
|
30
|
-
ErrorCode[ErrorCode["AGENT_NOT_FOUND"] = 5001] = "AGENT_NOT_FOUND";
|
|
31
|
-
ErrorCode[ErrorCode["AGENT_LOAD_ERROR"] = 5002] = "AGENT_LOAD_ERROR";
|
|
32
|
-
// 配置生成错误 6xxx
|
|
33
|
-
ErrorCode[ErrorCode["CONFIG_GENERATE_ERROR"] = 6001] = "CONFIG_GENERATE_ERROR";
|
|
34
|
-
ErrorCode[ErrorCode["FILE_WRITE_ERROR"] = 6002] = "FILE_WRITE_ERROR";
|
|
35
|
-
})(ErrorCode || (ErrorCode = {}));
|
|
36
|
-
/**
|
|
37
|
-
* 错误码到消息的映射
|
|
38
|
-
*/
|
|
39
|
-
const ERROR_MESSAGES = {
|
|
40
|
-
[ErrorCode.UNKNOWN]: '未知错误',
|
|
41
|
-
[ErrorCode.INVALID_PARAMETER]: '参数无效',
|
|
42
|
-
[ErrorCode.NOT_FOUND]: '资源未找到',
|
|
43
|
-
[ErrorCode.PERMISSION_DENIED]: '权限不足',
|
|
44
|
-
[ErrorCode.PROJECT_NOT_FOUND]: '项目目录不存在',
|
|
45
|
-
[ErrorCode.PROJECT_PARSE_ERROR]: '项目解析失败',
|
|
46
|
-
[ErrorCode.CONFIG_READ_ERROR]: '配置文件读取失败',
|
|
47
|
-
[ErrorCode.STANDARD_NOT_FOUND]: '规范未找到',
|
|
48
|
-
[ErrorCode.STANDARD_LOAD_ERROR]: '规范加载失败',
|
|
49
|
-
[ErrorCode.PRESET_NOT_FOUND]: '预设未找到',
|
|
50
|
-
[ErrorCode.TEMPLATE_NOT_FOUND]: '模板未找到',
|
|
51
|
-
[ErrorCode.TEMPLATE_PARSE_ERROR]: '模板解析失败',
|
|
52
|
-
[ErrorCode.AGENT_NOT_FOUND]: 'Agent 未找到',
|
|
53
|
-
[ErrorCode.AGENT_LOAD_ERROR]: 'Agent 加载失败',
|
|
54
|
-
[ErrorCode.CONFIG_GENERATE_ERROR]: '配置生成失败',
|
|
55
|
-
[ErrorCode.FILE_WRITE_ERROR]: '文件写入失败',
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* MCP 统一错误类
|
|
59
|
-
*/
|
|
60
|
-
export class MCPError extends Error {
|
|
61
|
-
/** 错误码 */
|
|
62
|
-
code;
|
|
63
|
-
/** 原始错误 */
|
|
64
|
-
cause;
|
|
65
|
-
/** 错误上下文 */
|
|
66
|
-
context;
|
|
67
|
-
constructor(code, message, options) {
|
|
68
|
-
const defaultMessage = ERROR_MESSAGES[code] || '未知错误';
|
|
69
|
-
super(message || defaultMessage);
|
|
70
|
-
this.name = 'MCPError';
|
|
71
|
-
this.code = code;
|
|
72
|
-
this.cause = options?.cause;
|
|
73
|
-
this.context = options?.context;
|
|
74
|
-
// 保持正确的原型链
|
|
75
|
-
Object.setPrototypeOf(this, MCPError.prototype);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* 转换为 JSON 格式(用于 MCP 响应)
|
|
79
|
-
*/
|
|
80
|
-
toJSON() {
|
|
81
|
-
return {
|
|
82
|
-
error: true,
|
|
83
|
-
code: this.code,
|
|
84
|
-
message: this.message,
|
|
85
|
-
...(this.context && { context: this.context }),
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* 转换为 MCP 响应格式
|
|
90
|
-
*/
|
|
91
|
-
toResponse() {
|
|
92
|
-
return {
|
|
93
|
-
content: [{
|
|
94
|
-
type: 'text',
|
|
95
|
-
text: JSON.stringify(this.toJSON(), null, 2)
|
|
96
|
-
}]
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* 便捷错误创建函数
|
|
102
|
-
*/
|
|
103
|
-
export const Errors = {
|
|
104
|
-
invalidParam: (param, reason) => new MCPError(ErrorCode.INVALID_PARAMETER, `参数 "${param}" 无效${reason ? `: ${reason}` : ''}`, { context: { param } }),
|
|
105
|
-
notFound: (resource, id) => new MCPError(ErrorCode.NOT_FOUND, `${resource}${id ? ` "${id}"` : ''} 未找到`, { context: { resource, id } }),
|
|
106
|
-
projectNotFound: (path) => new MCPError(ErrorCode.PROJECT_NOT_FOUND, `项目目录不存在: ${path}`, { context: { path } }),
|
|
107
|
-
standardNotFound: (id) => new MCPError(ErrorCode.STANDARD_NOT_FOUND, `规范 "${id}" 未找到`, { context: { standardId: id } }),
|
|
108
|
-
presetNotFound: (preset) => new MCPError(ErrorCode.PRESET_NOT_FOUND, `预设 "${preset}" 未找到`, { context: { preset } }),
|
|
109
|
-
templateNotFound: (id) => new MCPError(ErrorCode.TEMPLATE_NOT_FOUND, `模板 "${id}" 未找到`, { context: { templateId: id } }),
|
|
110
|
-
agentNotFound: (id) => new MCPError(ErrorCode.AGENT_NOT_FOUND, `Agent "${id}" 未找到`, { context: { agentId: id } }),
|
|
111
|
-
fileWriteError: (path, cause) => new MCPError(ErrorCode.FILE_WRITE_ERROR, `文件写入失败: ${path}`, { cause, context: { path } }),
|
|
112
|
-
wrap: (error, code = ErrorCode.UNKNOWN) => {
|
|
113
|
-
if (error instanceof MCPError)
|
|
114
|
-
return error;
|
|
115
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
116
|
-
return new MCPError(code, message, {
|
|
117
|
-
cause: error instanceof Error ? error : undefined
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
/**
|
|
122
|
-
* 安全执行函数,捕获错误并转换为 MCPError
|
|
123
|
-
*/
|
|
124
|
-
export async function safeExecute(fn, errorCode = ErrorCode.UNKNOWN) {
|
|
125
|
-
try {
|
|
126
|
-
return await fn();
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
throw Errors.wrap(error, errorCode);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* 创建标准的错误响应
|
|
134
|
-
*/
|
|
135
|
-
export function errorResponse(error) {
|
|
136
|
-
if (error instanceof MCPError) {
|
|
137
|
-
return error.toResponse();
|
|
138
|
-
}
|
|
139
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
140
|
-
return {
|
|
141
|
-
content: [{
|
|
142
|
-
type: 'text',
|
|
143
|
-
text: JSON.stringify({
|
|
144
|
-
error: true,
|
|
145
|
-
code: ErrorCode.UNKNOWN,
|
|
146
|
-
message
|
|
147
|
-
}, null, 2)
|
|
148
|
-
}]
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=errors.js.map
|
package/build/core/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Logger } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* GitHub 客户端(Node.js 版本,无 VS Code 依赖)
|
|
4
|
-
*/
|
|
5
|
-
export declare class GitHubClient {
|
|
6
|
-
private logger?;
|
|
7
|
-
private readonly owner;
|
|
8
|
-
private readonly repo;
|
|
9
|
-
private readonly branch;
|
|
10
|
-
private readonly baseUrl;
|
|
11
|
-
private readonly rawBaseUrl;
|
|
12
|
-
constructor(logger?: Logger | undefined);
|
|
13
|
-
/**
|
|
14
|
-
* 列出目录中的文件
|
|
15
|
-
*/
|
|
16
|
-
listDirectoryFiles(dirPath: string): Promise<Array<{
|
|
17
|
-
name: string;
|
|
18
|
-
path: string;
|
|
19
|
-
type: string;
|
|
20
|
-
}>>;
|
|
21
|
-
/**
|
|
22
|
-
* 获取文件内容
|
|
23
|
-
*/
|
|
24
|
-
fetchFileContent(filePath: string): Promise<string>;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=githubClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"githubClient.d.ts","sourceRoot":"","sources":["../../src/core/githubClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC;;GAEG;AACH,qBAAa,YAAY;IAOT,OAAO,CAAC,MAAM,CAAC;IAN3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;gBAE9C,MAAM,CAAC,EAAE,MAAM,YAAA;IAEnC;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA0BvG;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgB5D"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
/**
|
|
3
|
-
* GitHub 客户端(Node.js 版本,无 VS Code 依赖)
|
|
4
|
-
*/
|
|
5
|
-
export class GitHubClient {
|
|
6
|
-
logger;
|
|
7
|
-
owner = 'ForLear';
|
|
8
|
-
repo = 'copilot-prompts';
|
|
9
|
-
branch = 'main';
|
|
10
|
-
baseUrl = 'https://api.github.com';
|
|
11
|
-
rawBaseUrl = 'https://raw.githubusercontent.com';
|
|
12
|
-
constructor(logger) {
|
|
13
|
-
this.logger = logger;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* 列出目录中的文件
|
|
17
|
-
*/
|
|
18
|
-
async listDirectoryFiles(dirPath) {
|
|
19
|
-
const url = `${this.baseUrl}/repos/${this.owner}/${this.repo}/contents/${dirPath}?ref=${this.branch}`;
|
|
20
|
-
try {
|
|
21
|
-
const response = await axios.get(url, {
|
|
22
|
-
headers: {
|
|
23
|
-
'Accept': 'application/vnd.github.v3+json',
|
|
24
|
-
'User-Agent': 'Copilot-Prompts-MCP-Server'
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
if (Array.isArray(response.data)) {
|
|
28
|
-
return response.data.map((item) => ({
|
|
29
|
-
name: item.name,
|
|
30
|
-
path: item.path,
|
|
31
|
-
type: item.type
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
this.logger?.error(`获取目录失败: ${error}`);
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* 获取文件内容
|
|
43
|
-
*/
|
|
44
|
-
async fetchFileContent(filePath) {
|
|
45
|
-
const url = `${this.rawBaseUrl}/${this.owner}/${this.repo}/${this.branch}/${filePath}`;
|
|
46
|
-
try {
|
|
47
|
-
const response = await axios.get(url, {
|
|
48
|
-
headers: {
|
|
49
|
-
'User-Agent': 'Copilot-Prompts-MCP-Server'
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
return response.data;
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
this.logger?.error(`获取文件失败: ${filePath}`);
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=githubClient.js.map
|