mta-mcp 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,334 +0,0 @@
1
- /**
2
- * 动态权重计算器
3
- *
4
- * 根据场景和项目类型动态调整匹配权重
5
- *
6
- * @module core/matching/weights
7
- */
8
- /**
9
- * 场景关键词映射
10
- */
11
- const SCENARIO_KEYWORDS = {
12
- 'new-component': ['创建', '新建', '添加', 'create', 'new', 'add', '组件', 'component', '页面', 'page', 'view'],
13
- 'bug-fix': ['修复', '修改', 'fix', 'bug', '问题', '错误', 'error', 'issue', '报错'],
14
- 'api-integration': ['api', '接口', '请求', 'request', 'fetch', 'axios', '后端', '调用', 'call'],
15
- 'refactoring': ['重构', '优化', 'refactor', '重写', '改进', 'improve', '整理'],
16
- 'styling': ['样式', 'style', 'css', 'scss', 'less', 'ui', 'layout', '布局', '颜色', 'color'],
17
- 'testing': ['测试', 'test', 'spec', 'jest', 'vitest', '单元测试', 'unit'],
18
- 'documentation': ['文档', 'doc', 'readme', '注释', 'comment', '说明'],
19
- 'performance': ['性能', 'performance', '优化', '速度', '加载', 'lazy', '缓存', 'cache'],
20
- 'general': []
21
- };
22
- /**
23
- * 基础权重配置
24
- */
25
- const BASE_WEIGHTS = {
26
- framework: 30,
27
- language: 15,
28
- library: 20,
29
- pattern: 15,
30
- scenario: 20
31
- };
32
- /**
33
- * 场景权重调整因子
34
- */
35
- const SCENARIO_WEIGHT_FACTORS = {
36
- 'new-component': {
37
- framework: 1.5, // 新组件需要严格遵循框架规范
38
- language: 1.0,
39
- library: 1.2,
40
- pattern: 1.5, // 设计模式很重要
41
- scenario: 1.3
42
- },
43
- 'bug-fix': {
44
- framework: 0.8,
45
- language: 1.3, // 语言细节更重要
46
- library: 1.0,
47
- pattern: 0.7,
48
- scenario: 1.5 // 场景匹配最重要
49
- },
50
- 'api-integration': {
51
- framework: 0.8,
52
- language: 1.0,
53
- library: 1.8, // 库使用规范最重要(axios、fetch 等)
54
- pattern: 1.2,
55
- scenario: 1.5
56
- },
57
- 'refactoring': {
58
- framework: 1.2,
59
- language: 1.2,
60
- library: 1.0,
61
- pattern: 1.8, // 设计模式最重要
62
- scenario: 1.0
63
- },
64
- 'styling': {
65
- framework: 1.0,
66
- language: 0.5,
67
- library: 1.5, // UI 库规范
68
- pattern: 1.0,
69
- scenario: 1.5
70
- },
71
- 'testing': {
72
- framework: 0.8,
73
- language: 1.0,
74
- library: 1.3,
75
- pattern: 1.2,
76
- scenario: 1.8 // 测试场景规范最重要
77
- },
78
- 'documentation': {
79
- framework: 0.5,
80
- language: 1.5, // 语言规范(JSDoc 等)
81
- library: 0.5,
82
- pattern: 1.0,
83
- scenario: 1.5
84
- },
85
- 'performance': {
86
- framework: 1.0,
87
- language: 1.2,
88
- library: 1.3,
89
- pattern: 1.5, // 性能模式
90
- scenario: 1.5
91
- },
92
- 'general': {
93
- framework: 1.0,
94
- language: 1.0,
95
- library: 1.0,
96
- pattern: 1.0,
97
- scenario: 1.0
98
- }
99
- };
100
- /**
101
- * 项目类型权重调整因子
102
- */
103
- const PROJECT_TYPE_WEIGHT_FACTORS = {
104
- 'vue-app': {
105
- framework: 1.5,
106
- language: 1.0,
107
- library: 1.2,
108
- pattern: 1.3,
109
- scenario: 1.0,
110
- preferredStandards: ['vue3-composition', 'element-plus', 'pinia-store']
111
- },
112
- 'react-app': {
113
- framework: 1.5,
114
- language: 1.2,
115
- library: 1.2,
116
- pattern: 1.3,
117
- scenario: 1.0,
118
- preferredStandards: ['react-hooks', 'typescript-strict']
119
- },
120
- 'flutter-app': {
121
- framework: 1.8,
122
- language: 1.5,
123
- library: 1.0,
124
- pattern: 1.5,
125
- scenario: 1.0,
126
- preferredStandards: ['flutter-bloc', 'dart-style']
127
- },
128
- 'node-backend': {
129
- framework: 1.0,
130
- language: 1.5,
131
- library: 1.3,
132
- pattern: 1.5,
133
- scenario: 1.2,
134
- preferredStandards: ['typescript-strict', 'api-design']
135
- },
136
- 'library': {
137
- framework: 0.8,
138
- language: 1.5,
139
- library: 1.0,
140
- pattern: 1.8,
141
- scenario: 0.8,
142
- preferredStandards: ['typescript-strict', 'api-design']
143
- },
144
- 'unknown': {
145
- framework: 1.0,
146
- language: 1.0,
147
- library: 1.0,
148
- pattern: 1.0,
149
- scenario: 1.0,
150
- preferredStandards: []
151
- }
152
- };
153
- /**
154
- * 动态权重计算器
155
- */
156
- export class DynamicWeightCalculator {
157
- baseWeights;
158
- constructor(customBaseWeights) {
159
- this.baseWeights = { ...BASE_WEIGHTS, ...customBaseWeights };
160
- }
161
- /**
162
- * 根据用户意图分析场景
163
- */
164
- analyzeScenario(userIntent) {
165
- if (!userIntent) {
166
- return 'general';
167
- }
168
- const normalizedIntent = userIntent.toLowerCase();
169
- // 计算每个场景的匹配分数
170
- const scores = Object.entries(SCENARIO_KEYWORDS)
171
- .map(([scenario, keywords]) => {
172
- const score = keywords.reduce((acc, keyword) => {
173
- return acc + (normalizedIntent.includes(keyword.toLowerCase()) ? 1 : 0);
174
- }, 0);
175
- return [scenario, score];
176
- })
177
- .filter(([_, score]) => score > 0)
178
- .sort((a, b) => b[1] - a[1]);
179
- return scores.length > 0 ? scores[0][0] : 'general';
180
- }
181
- /**
182
- * 根据文件路径推断场景
183
- */
184
- inferScenarioFromPath(filePath) {
185
- if (!filePath) {
186
- return 'general';
187
- }
188
- const path = filePath.toLowerCase();
189
- // 测试文件
190
- if (path.includes('.test.') || path.includes('.spec.') || path.includes('__tests__')) {
191
- return 'testing';
192
- }
193
- // API 相关
194
- if (path.includes('/api/') || path.includes('/services/') || path.includes('/http/')) {
195
- return 'api-integration';
196
- }
197
- // 样式文件
198
- if (path.endsWith('.css') || path.endsWith('.scss') || path.endsWith('.less') || path.endsWith('.styl')) {
199
- return 'styling';
200
- }
201
- // 组件/页面
202
- if (path.includes('/components/') || path.includes('/views/') || path.includes('/pages/')) {
203
- return 'new-component';
204
- }
205
- // 文档
206
- if (path.endsWith('.md') || path.includes('/docs/')) {
207
- return 'documentation';
208
- }
209
- return 'general';
210
- }
211
- /**
212
- * 计算动态权重
213
- */
214
- calculateWeights(scenario, projectType, projectFeatures) {
215
- // 获取场景因子
216
- const scenarioFactors = SCENARIO_WEIGHT_FACTORS[scenario] || SCENARIO_WEIGHT_FACTORS['general'];
217
- // 获取项目类型因子
218
- const projectFactors = PROJECT_TYPE_WEIGHT_FACTORS[projectType] || PROJECT_TYPE_WEIGHT_FACTORS['unknown'];
219
- // 计算最终权重
220
- const weights = {
221
- framework: Math.round(this.baseWeights.framework * scenarioFactors.framework * projectFactors.framework),
222
- language: Math.round(this.baseWeights.language * scenarioFactors.language * projectFactors.language),
223
- library: Math.round(this.baseWeights.library * scenarioFactors.library * projectFactors.library),
224
- pattern: Math.round(this.baseWeights.pattern * scenarioFactors.pattern * projectFactors.pattern),
225
- scenario: Math.round(this.baseWeights.scenario * scenarioFactors.scenario * projectFactors.scenario)
226
- };
227
- // 根据项目特征进行微调
228
- if (projectFeatures) {
229
- weights.framework = this.adjustByFeatures(weights.framework, projectFeatures, 'framework');
230
- weights.library = this.adjustByFeatures(weights.library, projectFeatures, 'library');
231
- }
232
- // 归一化权重(确保总和为 100)
233
- return this.normalizeWeights(weights);
234
- }
235
- /**
236
- * 根据项目特征微调权重
237
- */
238
- adjustByFeatures(weight, features, type) {
239
- const { confidence } = features;
240
- // 如果置信度高,增加对应权重
241
- if (type === 'framework' && confidence.framework >= 0.9) {
242
- return Math.round(weight * 1.2);
243
- }
244
- if (type === 'library' && confidence.libraries >= 0.9) {
245
- return Math.round(weight * 1.15);
246
- }
247
- // 如果置信度低,降低权重
248
- if (type === 'framework' && confidence.framework < 0.5) {
249
- return Math.round(weight * 0.8);
250
- }
251
- if (type === 'library' && confidence.libraries < 0.5) {
252
- return Math.round(weight * 0.85);
253
- }
254
- return weight;
255
- }
256
- /**
257
- * 归一化权重(总和为 100)
258
- */
259
- normalizeWeights(weights) {
260
- const total = Object.values(weights).reduce((a, b) => a + b, 0);
261
- if (total === 0) {
262
- return { ...BASE_WEIGHTS };
263
- }
264
- const factor = 100 / total;
265
- return {
266
- framework: Math.round(weights.framework * factor),
267
- language: Math.round(weights.language * factor),
268
- library: Math.round(weights.library * factor),
269
- pattern: Math.round(weights.pattern * factor),
270
- scenario: Math.round(weights.scenario * factor)
271
- };
272
- }
273
- /**
274
- * 获取场景推荐的规范
275
- */
276
- getScenarioRecommendations(scenario) {
277
- const recommendations = {
278
- 'new-component': ['vue3-composition', 'component-design', 'i18n'],
279
- 'bug-fix': ['debugging-guide', 'error-handling'],
280
- 'api-integration': ['api-design', 'axios-interceptor', 'error-handling'],
281
- 'refactoring': ['clean-code', 'design-patterns', 'solid-principles'],
282
- 'styling': ['css-architecture', 'responsive-design', 'accessibility'],
283
- 'testing': ['unit-testing', 'test-patterns', 'mocking'],
284
- 'documentation': ['jsdoc', 'markdown-style', 'api-documentation'],
285
- 'performance': ['performance-optimization', 'lazy-loading', 'caching'],
286
- 'general': []
287
- };
288
- return recommendations[scenario] || [];
289
- }
290
- /**
291
- * 获取项目类型推荐的规范
292
- */
293
- getProjectTypeRecommendations(projectType) {
294
- const factors = PROJECT_TYPE_WEIGHT_FACTORS[projectType];
295
- return factors?.preferredStandards || [];
296
- }
297
- /**
298
- * 综合分析并返回权重和推荐
299
- */
300
- analyze(userIntent, filePath, projectFeatures) {
301
- // 优先使用用户意图,其次使用文件路径推断
302
- const intentScenario = this.analyzeScenario(userIntent);
303
- const pathScenario = this.inferScenarioFromPath(filePath);
304
- // 如果用户有明确意图,使用用户意图;否则使用路径推断
305
- const scenario = intentScenario !== 'general' ? intentScenario : pathScenario;
306
- // 计算权重
307
- const weights = this.calculateWeights(scenario, projectFeatures.projectType, projectFeatures);
308
- // 收集推荐
309
- const scenarioRecs = this.getScenarioRecommendations(scenario);
310
- const projectRecs = this.getProjectTypeRecommendations(projectFeatures.projectType);
311
- // 去重并合并推荐
312
- const recommendations = [...new Set([...scenarioRecs, ...projectRecs])];
313
- return {
314
- scenario,
315
- weights,
316
- recommendations
317
- };
318
- }
319
- }
320
- /**
321
- * 获取默认权重计算器实例
322
- */
323
- export function getDefaultWeightCalculator() {
324
- return new DynamicWeightCalculator();
325
- }
326
- /**
327
- * 快速计算权重(便捷方法)
328
- */
329
- export function calculateDynamicWeights(userIntent, filePath, projectFeatures) {
330
- const calculator = getDefaultWeightCalculator();
331
- const result = calculator.analyze(userIntent, filePath, projectFeatures);
332
- return result.weights;
333
- }
334
- //# sourceMappingURL=weights.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"weights.js","sourceRoot":"","sources":["../../../src/core/matching/weights.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- /**
2
- * 项目上下文信息
3
- */
4
- export interface ProjectContext {
5
- name: string;
6
- type: string;
7
- techStack: string[];
8
- rootPath: string;
9
- }
10
- /**
11
- * 项目上下文管理器
12
- * 负责识别和加载项目配置
13
- */
14
- export declare class ProjectContextManager {
15
- private contextCache;
16
- /**
17
- * 从文件路径检测项目上下文
18
- * @param filePath 当前编辑的文件路径
19
- * @returns 项目上下文,如果未找到返回 null
20
- */
21
- detectProjectContext(filePath: string): ProjectContext | null;
22
- /**
23
- * 查找项目根目录
24
- */
25
- private findProjectRoot;
26
- /**
27
- * 解析 copilot-project.md 文件
28
- */
29
- private parseProjectConfig;
30
- /**
31
- * 从其他配置文件推断项目信息
32
- */
33
- private inferProjectContext;
34
- /**
35
- * 清除缓存
36
- */
37
- clearCache(): void;
38
- }
39
- //# sourceMappingURL=projectContextManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projectContextManager.d.ts","sourceRoot":"","sources":["../../src/core/projectContextManager.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,YAAY,CAA0C;IAE9D;;;;OAIG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IA8B7D;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
@@ -1,147 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- /**
4
- * 项目上下文管理器
5
- * 负责识别和加载项目配置
6
- */
7
- export class ProjectContextManager {
8
- contextCache = new Map();
9
- /**
10
- * 从文件路径检测项目上下文
11
- * @param filePath 当前编辑的文件路径
12
- * @returns 项目上下文,如果未找到返回 null
13
- */
14
- detectProjectContext(filePath) {
15
- const projectRoot = this.findProjectRoot(filePath);
16
- if (!projectRoot) {
17
- return null;
18
- }
19
- // 检查缓存
20
- if (this.contextCache.has(projectRoot)) {
21
- return this.contextCache.get(projectRoot);
22
- }
23
- // 尝试读取 copilot-project.md
24
- const projectConfigPath = path.join(projectRoot, '.github', 'copilot-project.md');
25
- if (fs.existsSync(projectConfigPath)) {
26
- const context = this.parseProjectConfig(projectConfigPath, projectRoot);
27
- if (context) {
28
- this.contextCache.set(projectRoot, context);
29
- return context;
30
- }
31
- }
32
- // 回退:从 package.json 或其他配置推断
33
- const fallbackContext = this.inferProjectContext(projectRoot);
34
- if (fallbackContext) {
35
- this.contextCache.set(projectRoot, fallbackContext);
36
- }
37
- return fallbackContext;
38
- }
39
- /**
40
- * 查找项目根目录
41
- */
42
- findProjectRoot(filePath) {
43
- let currentDir = path.dirname(filePath);
44
- const maxDepth = 10; // 最多向上查找10层
45
- let depth = 0;
46
- while (depth < maxDepth) {
47
- // 检查是否是项目根目录的标志
48
- const markers = [
49
- 'package.json',
50
- 'pubspec.yaml',
51
- '.git',
52
- 'go.mod',
53
- 'Cargo.toml'
54
- ];
55
- for (const marker of markers) {
56
- if (fs.existsSync(path.join(currentDir, marker))) {
57
- return currentDir;
58
- }
59
- }
60
- const parentDir = path.dirname(currentDir);
61
- if (parentDir === currentDir) {
62
- // 已到达根目录
63
- break;
64
- }
65
- currentDir = parentDir;
66
- depth++;
67
- }
68
- return null;
69
- }
70
- /**
71
- * 解析 copilot-project.md 文件
72
- */
73
- parseProjectConfig(configPath, rootPath) {
74
- try {
75
- const content = fs.readFileSync(configPath, 'utf-8');
76
- // 简单的正则解析
77
- const nameMatch = content.match(/项目名称[::]\s*(.+)/);
78
- const typeMatch = content.match(/项目类型[::]\s*(.+)/);
79
- const techStackMatch = content.match(/技术栈[::]\s*(.+)/);
80
- if (!nameMatch || !typeMatch) {
81
- return null;
82
- }
83
- return {
84
- name: nameMatch[1].trim(),
85
- type: typeMatch[1].trim(),
86
- techStack: techStackMatch ? techStackMatch[1].split(/[,,]/).map(s => s.trim()) : [],
87
- rootPath
88
- };
89
- }
90
- catch (error) {
91
- return null;
92
- }
93
- }
94
- /**
95
- * 从其他配置文件推断项目信息
96
- */
97
- inferProjectContext(rootPath) {
98
- const projectName = path.basename(rootPath);
99
- // 检查 package.json
100
- const packageJsonPath = path.join(rootPath, 'package.json');
101
- if (fs.existsSync(packageJsonPath)) {
102
- try {
103
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
104
- const techStack = [];
105
- // 检测 Vue
106
- if (packageJson.dependencies?.vue || packageJson.devDependencies?.vue) {
107
- techStack.push('vue');
108
- }
109
- // 检测 React
110
- if (packageJson.dependencies?.react || packageJson.devDependencies?.react) {
111
- techStack.push('react');
112
- }
113
- // 检测 TypeScript
114
- if (packageJson.devDependencies?.typescript) {
115
- techStack.push('typescript');
116
- }
117
- return {
118
- name: packageJson.name || projectName,
119
- type: techStack.includes('vue') ? 'vue' : techStack.includes('react') ? 'react' : 'javascript',
120
- techStack,
121
- rootPath
122
- };
123
- }
124
- catch (error) {
125
- // 解析失败,继续尝试其他方式
126
- }
127
- }
128
- // 检查 pubspec.yaml (Flutter)
129
- const pubspecPath = path.join(rootPath, 'pubspec.yaml');
130
- if (fs.existsSync(pubspecPath)) {
131
- return {
132
- name: projectName,
133
- type: 'flutter',
134
- techStack: ['flutter', 'dart'],
135
- rootPath
136
- };
137
- }
138
- return null;
139
- }
140
- /**
141
- * 清除缓存
142
- */
143
- clearCache() {
144
- this.contextCache.clear();
145
- }
146
- }
147
- //# sourceMappingURL=projectContextManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projectContextManager.js","sourceRoot":"","sources":["../../src/core/projectContextManager.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=scenarioDetector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenarioDetector.d.ts","sourceRoot":"","sources":["../../src/core/scenarioDetector.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=scenarioDetector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenarioDetector.js","sourceRoot":"","sources":["../../src/core/scenarioDetector.ts"],"names":[],"mappings":""}
@@ -1,51 +0,0 @@
1
- import { ProjectFeatures, AgentMetadata, Logger } from './types.js';
2
- /**
3
- * 工作区文件夹接口(简化版)
4
- */
5
- interface WorkspaceFolder {
6
- uri: {
7
- fsPath: string;
8
- };
9
- name: string;
10
- }
11
- /**
12
- * 智能 Agent 匹配器
13
- * 根据项目特征自动推荐和应用合适的 Agents
14
- */
15
- export declare class SmartAgentMatcher {
16
- private logger?;
17
- constructor(logger?: Logger | undefined);
18
- /**
19
- * 分析项目特征
20
- */
21
- analyzeProject(workspaceFolder: WorkspaceFolder): Promise<ProjectFeatures>;
22
- /**
23
- * 分析 package.json
24
- */
25
- private analyzePackageJson;
26
- /**
27
- * 分析 pubspec.yaml (Flutter 项目)
28
- */
29
- private analyzePubspecYaml;
30
- /**
31
- * 分析文件结构
32
- */
33
- private analyzeFileStructure;
34
- /**
35
- * 匹配 Agents
36
- */
37
- matchAgents(features: ProjectFeatures, availableAgents: AgentMetadata[]): AgentMetadata[];
38
- /**
39
- * 计算匹配分数
40
- */
41
- private calculateMatchScore;
42
- /**
43
- * 解析 Agent 元数据
44
- */
45
- parseAgentMetadata(filePath: string, content: string): AgentMetadata;
46
- private mergeFeatures;
47
- private inferProjectType;
48
- private log;
49
- }
50
- export {};
51
- //# sourceMappingURL=smartAgentMatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smartAgentMatcher.d.ts","sourceRoot":"","sources":["../../src/core/smartAgentMatcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpE;;GAEG;AACH,UAAU,eAAe;IACrB,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IACd,OAAO,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE,MAAM,YAAA;IAEnC;;OAEG;IACG,cAAc,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IA0ChF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsJ1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6C1B;;OAEG;YACW,oBAAoB;IA4DlC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;IAWzF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa;IAmDpE,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,GAAG;CAGd"}