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.
Files changed (180) hide show
  1. package/bin/mta.cjs +43 -0
  2. package/dist/index.cjs +4784 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +4769 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +21 -10
  9. package/build/core/agentTemplate.d.ts +0 -33
  10. package/build/core/agentTemplate.d.ts.map +0 -1
  11. package/build/core/agentTemplate.js +0 -158
  12. package/build/core/agentTemplate.js.map +0 -1
  13. package/build/core/analyzers/eslint.d.ts +0 -51
  14. package/build/core/analyzers/eslint.d.ts.map +0 -1
  15. package/build/core/analyzers/eslint.js +0 -259
  16. package/build/core/analyzers/eslint.js.map +0 -1
  17. package/build/core/analyzers/index.d.ts +0 -9
  18. package/build/core/analyzers/index.d.ts.map +0 -1
  19. package/build/core/analyzers/index.js +0 -9
  20. package/build/core/analyzers/index.js.map +0 -1
  21. package/build/core/analyzers/registry.d.ts +0 -59
  22. package/build/core/analyzers/registry.d.ts.map +0 -1
  23. package/build/core/analyzers/registry.js +0 -241
  24. package/build/core/analyzers/registry.js.map +0 -1
  25. package/build/core/analyzers/tsconfig.d.ts +0 -45
  26. package/build/core/analyzers/tsconfig.d.ts.map +0 -1
  27. package/build/core/analyzers/tsconfig.js +0 -197
  28. package/build/core/analyzers/tsconfig.js.map +0 -1
  29. package/build/core/analyzers/types.d.ts +0 -176
  30. package/build/core/analyzers/types.d.ts.map +0 -1
  31. package/build/core/analyzers/types.js +0 -39
  32. package/build/core/analyzers/types.js.map +0 -1
  33. package/build/core/analyzers/vite.d.ts +0 -46
  34. package/build/core/analyzers/vite.d.ts.map +0 -1
  35. package/build/core/analyzers/vite.js +0 -211
  36. package/build/core/analyzers/vite.js.map +0 -1
  37. package/build/core/autoInitializer.d.ts +0 -34
  38. package/build/core/autoInitializer.d.ts.map +0 -1
  39. package/build/core/autoInitializer.js +0 -145
  40. package/build/core/autoInitializer.js.map +0 -1
  41. package/build/core/codeValidator.d.ts +0 -82
  42. package/build/core/codeValidator.d.ts.map +0 -1
  43. package/build/core/codeValidator.js +0 -287
  44. package/build/core/codeValidator.js.map +0 -1
  45. package/build/core/enhancedProjectAnalyzer.d.ts +0 -102
  46. package/build/core/enhancedProjectAnalyzer.d.ts.map +0 -1
  47. package/build/core/enhancedProjectAnalyzer.js +0 -312
  48. package/build/core/enhancedProjectAnalyzer.js.map +0 -1
  49. package/build/core/errors.d.ts +0 -84
  50. package/build/core/errors.d.ts.map +0 -1
  51. package/build/core/errors.js +0 -151
  52. package/build/core/errors.js.map +0 -1
  53. package/build/core/githubClient.d.ts +0 -26
  54. package/build/core/githubClient.d.ts.map +0 -1
  55. package/build/core/githubClient.js +0 -60
  56. package/build/core/githubClient.js.map +0 -1
  57. package/build/core/i18nDetector.d.ts +0 -47
  58. package/build/core/i18nDetector.d.ts.map +0 -1
  59. package/build/core/i18nDetector.js +0 -314
  60. package/build/core/i18nDetector.js.map +0 -1
  61. package/build/core/index.d.ts +0 -11
  62. package/build/core/index.d.ts.map +0 -1
  63. package/build/core/index.js +0 -14
  64. package/build/core/index.js.map +0 -1
  65. package/build/core/logger.d.ts +0 -91
  66. package/build/core/logger.d.ts.map +0 -1
  67. package/build/core/logger.js +0 -164
  68. package/build/core/logger.js.map +0 -1
  69. package/build/core/mappings/index.d.ts +0 -5
  70. package/build/core/mappings/index.d.ts.map +0 -1
  71. package/build/core/mappings/index.js +0 -5
  72. package/build/core/mappings/index.js.map +0 -1
  73. package/build/core/mappings/scenarioMappings.d.ts +0 -51
  74. package/build/core/mappings/scenarioMappings.d.ts.map +0 -1
  75. package/build/core/mappings/scenarioMappings.js +0 -105
  76. package/build/core/mappings/scenarioMappings.js.map +0 -1
  77. package/build/core/matching/index.d.ts +0 -8
  78. package/build/core/matching/index.d.ts.map +0 -1
  79. package/build/core/matching/index.js +0 -8
  80. package/build/core/matching/index.js.map +0 -1
  81. package/build/core/matching/intentAnalyzer.d.ts +0 -78
  82. package/build/core/matching/intentAnalyzer.d.ts.map +0 -1
  83. package/build/core/matching/intentAnalyzer.js +0 -255
  84. package/build/core/matching/intentAnalyzer.js.map +0 -1
  85. package/build/core/matching/standardMatcher.d.ts +0 -101
  86. package/build/core/matching/standardMatcher.d.ts.map +0 -1
  87. package/build/core/matching/standardMatcher.js +0 -299
  88. package/build/core/matching/standardMatcher.js.map +0 -1
  89. package/build/core/matching/weights.d.ts +0 -64
  90. package/build/core/matching/weights.d.ts.map +0 -1
  91. package/build/core/matching/weights.js +0 -334
  92. package/build/core/matching/weights.js.map +0 -1
  93. package/build/core/projectContextManager.d.ts +0 -39
  94. package/build/core/projectContextManager.d.ts.map +0 -1
  95. package/build/core/projectContextManager.js +0 -147
  96. package/build/core/projectContextManager.js.map +0 -1
  97. package/build/core/scenarioDetector.d.ts +0 -2
  98. package/build/core/scenarioDetector.d.ts.map +0 -1
  99. package/build/core/scenarioDetector.js +0 -2
  100. package/build/core/scenarioDetector.js.map +0 -1
  101. package/build/core/smartAgentMatcher.d.ts +0 -51
  102. package/build/core/smartAgentMatcher.d.ts.map +0 -1
  103. package/build/core/smartAgentMatcher.js +0 -493
  104. package/build/core/smartAgentMatcher.js.map +0 -1
  105. package/build/core/standardsManager.d.ts +0 -130
  106. package/build/core/standardsManager.d.ts.map +0 -1
  107. package/build/core/standardsManager.js +0 -600
  108. package/build/core/standardsManager.js.map +0 -1
  109. package/build/core/templates/discovery.d.ts +0 -41
  110. package/build/core/templates/discovery.d.ts.map +0 -1
  111. package/build/core/templates/discovery.js +0 -262
  112. package/build/core/templates/discovery.js.map +0 -1
  113. package/build/core/templates/types.d.ts +0 -80
  114. package/build/core/templates/types.d.ts.map +0 -1
  115. package/build/core/templates/types.js +0 -10
  116. package/build/core/templates/types.js.map +0 -1
  117. package/build/core/types.d.ts +0 -57
  118. package/build/core/types.d.ts.map +0 -1
  119. package/build/core/types.js +0 -22
  120. package/build/core/types.js.map +0 -1
  121. package/build/index.d.ts +0 -3
  122. package/build/index.d.ts.map +0 -1
  123. package/build/index.js +0 -576
  124. package/build/index.js.map +0 -1
  125. package/build/tools/analyzeProject.d.ts +0 -12
  126. package/build/tools/analyzeProject.d.ts.map +0 -1
  127. package/build/tools/analyzeProject.js +0 -85
  128. package/build/tools/analyzeProject.js.map +0 -1
  129. package/build/tools/autoSetup.d.ts +0 -15
  130. package/build/tools/autoSetup.d.ts.map +0 -1
  131. package/build/tools/autoSetup.js +0 -291
  132. package/build/tools/autoSetup.js.map +0 -1
  133. package/build/tools/generateConfig.d.ts +0 -16
  134. package/build/tools/generateConfig.d.ts.map +0 -1
  135. package/build/tools/generateConfig.js +0 -379
  136. package/build/tools/generateConfig.js.map +0 -1
  137. package/build/tools/generateProjectAgent.d.ts +0 -15
  138. package/build/tools/generateProjectAgent.d.ts.map +0 -1
  139. package/build/tools/generateProjectAgent.js +0 -348
  140. package/build/tools/generateProjectAgent.js.map +0 -1
  141. package/build/tools/getCompactStandards.d.ts +0 -20
  142. package/build/tools/getCompactStandards.d.ts.map +0 -1
  143. package/build/tools/getCompactStandards.js +0 -367
  144. package/build/tools/getCompactStandards.js.map +0 -1
  145. package/build/tools/getSmartStandards.d.ts +0 -15
  146. package/build/tools/getSmartStandards.d.ts.map +0 -1
  147. package/build/tools/getSmartStandards.js +0 -201
  148. package/build/tools/getSmartStandards.js.map +0 -1
  149. package/build/tools/getStandardById.d.ts +0 -42
  150. package/build/tools/getStandardById.d.ts.map +0 -1
  151. package/build/tools/getStandardById.js +0 -289
  152. package/build/tools/getStandardById.js.map +0 -1
  153. package/build/tools/getTemplate.d.ts +0 -37
  154. package/build/tools/getTemplate.d.ts.map +0 -1
  155. package/build/tools/getTemplate.js +0 -78
  156. package/build/tools/getTemplate.js.map +0 -1
  157. package/build/tools/healthCheck.d.ts +0 -14
  158. package/build/tools/healthCheck.d.ts.map +0 -1
  159. package/build/tools/healthCheck.js +0 -237
  160. package/build/tools/healthCheck.js.map +0 -1
  161. package/build/tools/listAgents.d.ts +0 -10
  162. package/build/tools/listAgents.d.ts.map +0 -1
  163. package/build/tools/listAgents.js +0 -79
  164. package/build/tools/listAgents.js.map +0 -1
  165. package/build/tools/listTemplates.d.ts +0 -41
  166. package/build/tools/listTemplates.d.ts.map +0 -1
  167. package/build/tools/listTemplates.js +0 -81
  168. package/build/tools/listTemplates.js.map +0 -1
  169. package/build/tools/matchAgents.d.ts +0 -14
  170. package/build/tools/matchAgents.d.ts.map +0 -1
  171. package/build/tools/matchAgents.js +0 -70
  172. package/build/tools/matchAgents.js.map +0 -1
  173. package/build/tools/queryMappings.d.ts +0 -55
  174. package/build/tools/queryMappings.d.ts.map +0 -1
  175. package/build/tools/queryMappings.js +0 -119
  176. package/build/tools/queryMappings.js.map +0 -1
  177. package/build/tools/usePreset.d.ts +0 -23
  178. package/build/tools/usePreset.d.ts.map +0 -1
  179. package/build/tools/usePreset.js +0 -163
  180. 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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"}
@@ -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"}
@@ -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
@@ -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